Progreso enero 2024 - RoboticsURJC/tfg-dcampoamor GitHub Wiki

Portada enero 2024

SEMANA 34 (01/01/2024-07/01/2024)

SEMANA 35 (08/01/2024-14/01/2024)

SEMANA 36 (15/01/2024-21/01/2024)

SEMANA 37 (22/01/2024-28/01/2024)

SEMANA 38 (29/01/2024-04/02/2024)

Semana 34 (01/01/2024-07/01/2024)

  • Modificación del código de detección para evitar detecciones duplicadas

    Se utilizó en el código de detección de objetos, el fragmento de código que se elaboró para que las coordenadas centrales de los recuadros de los objetos detectados por el modelo se guardasen en una lista dinámica, con el uso de la lista data/coco.names que recogía los 80 objetos distintos pre entrenados que detecta el modelo YOLO(You Only Look Once) y cuyo desarrollo se recoge en Variaciones en programa para la detección de objetos por python del Progreso de noviembre 2023.

    Debido a que este fragmento del código deteccion_video_lista_dinamica.py no contemplaba la tolerancia que puede tener el modelo al detectar los objetos, y por tanto detectar el mismo objeto como si fueran varios, se modificó el código, para que se verificase en función de una tolerancia predefinida (inicialmente se usó un 5%), si la nueva posición detectada está dentro de la tolerancia de alguna posición ya detectada y almacenada mediante el calculo de la distancia euclidiana entre dos puntos en un plano bidimensional, y en caso de ser esta distancia menor a la tolerancia predefinida, no incluirla en la lista de posiciones.

    Inicialización tolerancia

    La prueba de funcionamiento de este añadido al código puede verse en Detección con tolerancia, mientras que el código utilizado es deteccion_video_tol.py

  • Elaboración de la memoria

    De manera paralela a la consecución de pruebas, se inició la elaboración de la memoria del trabajo.

SEMANA 35 (08/01/2024-14/01/2024)

  • Lectura sobre proyección y retroproyección de píxeles en imágenes e hipótesis suelo

    Se leyeron los documentos Open Vision System for Low-Cost Robotics Education.pdf así como Basic human–robot interaction system running on an embedded platform.pdf y los primeros capítulos del libro Multiple View Geometry in Computer Vision (Second Edition) de Richard Hartley y Andrew Zisserman sobre la retroproyección para estimar la posición tridimensional de puntos en el espacio a partir de sus proyecciones en imágenes bidimensionales y sobre la hipótesis suelo.

SEMANA 36 (15/01/2024-21/01/2024)

  • Cálculo de parámetros intrínsecos a la cámara utilizada para la detección de objetos

    La matriz K representa los parámetros intrínsecos de la cámara. A pesar de que los parámetros técnicos intrínsecos suele proporcionarlos el fabricante, los valores de K se obtienen con mayor precisión utilizando la herramienta PiCamCalibrator.

    A pesar de que inicialmente se creó para la calibración la PiCam, este programa coge 20 imágenes de tablero de ajedrez tomadas por la cámara a calibrar previamente mediante el programa captura_foto.py, y que se encuentran en la carpeta "chess_board". En estas imágenes, el algoritmo encuentra las esquinas y finalmente devuelve la matriz de parámetros intrínsecos de la cámara. El tablero de ajedrez utilizado es calibration_target_15mm.pdf.

    captura_foto.py

    Al intentar llevar a cabo la calibración de la cámara, se presentaron varios problemas debido a que el número de imágenes que esperaba recibir el programa no es mayor que 0 (nimages > 0) y probablemente, a que el tamaño y disposición de chess board utilizado para elaborar el programa original y el calibration_target_15mm.pdf no son iguales.

    error calibrator

  • Estudio de la velocidad de fotogramas de diferentes cámaras

    Para poder evaluar la velocidad de los fotogramas de las diferentes cámaras se elaboró el programa calculo_fotogramas.py, donde se solicitaba al usuario que eligiera una de las dos cámaras conectadas al ordenador (la propia cámara integrada o la cámara web externa) para evaluar esta velocidad.

    calculo fotogramas

    Al tratarse de cámaras de características similares, finalmente se optará por utilizar la cámara web externa, debido a la facilidad de acceso a datos y especificaciones técnicas de la misma.

SEMANA 37 (22/01/2024-28/01/2024)

  • Cálculo de parámetros intrínsecos a la cámara utilizada para la detección de objetos

    Debido a los problemas que se dieron al intentar llevar a cabo la calibración con el archivo calibration_target_15mm.pdf, se volvió a intentar llevar a cabo la calibración con una plantilla similar a la que se utilizó para el PiCamCalibrator, el chess_board_7x10.pdf.

    Para la calibración de la cámara web integrada del propio ordenador, se obtuvieron los siguientes parámetros:

    calibracion laptop

    matriz k laptop

    Mientras que para la calibración de la cámara C270 de Logitech , cuyas características son las siguientes:

    Resolución máxima Cámara de megapíxeles Tipo de enfoque Campo visual diagonal (dFoV)
    720p/30 fps 0.9 foco fijo 55°

    logi C270

    se obtuvieron los siguientes datos:

    calibracion camara

    matriz k camara

SEMANA 38 (29/01/2024-04/02/2024)

  • Cálculo de parámetros intrínsecos a la cámara utilizada para la detección de objetos

    Para comprobar si la primera calibración de la cámara C270 de Logitech había sido buena, se llevaron a cabo diez calibraciones más para comprobar los resultados entre sí con diferentes imágenes tomadas con el mismo chess board (chess_board_7x10.pdf).

    Una vez obtenidos los resultados de estas calibraciones, se calculó la media de las mediciones similares, despreciando la calibración que se consideraba un pico espúreo, y obteniendo finalmente la matriz K de parámetros intrínsecos de la cámara.

    Matriz K de parámetros intrínsecos

    Matriz K resultados

  • Cálculo de Transformaciones de sistemas de coordenadas

    Junto con las matrices de Rotación R y la matriz de Traslación T de la cámara, se realizó el cálculo de la transformación del sistema de coordenadas que viene definido por la multiplicación de las tres matrices.

    Para poder llevar a cabo este cálculo, se instaló la cámara en un trípode, situado a 33cm de altura del plano suelo, y con una inclinación de la cámara de 29º, cuya medición se corroboró con la aplicación de ERGONAUTAS RULER - Medición de ángulos en fotografías y vídeos de la Universidad Politécnica de Valencia.

    ERGONAUTAS

    Para el cálculo de la matriz de rotación, se utilizó la matriz relativa al giro en el eje Y, puesto que se presupone la mesa sobre la que está apoyado el trípode el plano suelo, y por tanto, la altura a la que se encuentra la cámara se considera el eje Z del mismo, siendo utilizado este dato para la matriz de traslación, en la que forzaremos que únicamente tenga valores en esta componente para simplificar estas pruebas.

    Rotacion eje Y

    Matriz R Matriz T

    Una vez definidas todas las matrices y cálculos individuales de las mismas, que pueden encontrarse detalladas en el documento Transformaciones de sistemas de coordenadas.xlsx, se lleva a cabo la multiplicación.

    Matriz KRT resultado