9.5 Rectificación y preprocesamiento de imágenes

Referencia de uso de Docker: Módulo 3.7 Docker

Procesamiento de deformación de imágenes Isaac ROS: https://nvidia-isaac-ros.github.io/repositories_and_packages/isaac_ros_image_pipeline/index.html

Descripción general

El procesamiento de deformación de imágenes Isaac ROS utiliza el Isaac ROS image pipeline, un paquete para funciones de procesamiento de imágenes. La salida de la cámara generalmente requiere preprocesamiento para cumplir con los requisitos de entrada de una variedad de funciones de sensor. Esto incluye recorte, redimensionamiento, espejado, corrección de deformaciones de la lente y conversión del espacio de color. Para cámaras estéreo, se requiere procesamiento adicional para generar una diferencia visual entre la imagen izquierda y derecha y la nube de luz, logrando así una percepción profunda.

Inicio rápido

Para simplificar el desarrollo, utilizamos principalmente las imágenes Docker de Isaac ROS Dev y realizamos demostraciones de impacto sobre ellas. La demostración no requiere la instalación de ningún dispositivo de cámara para simular flujos de datos desde la cámara mediante la reproducción del archivo rosbag.

Nota: Si desea instalar en su propio equipo o conectar la cámara para desarrollar otras funciones, consulte la red oficial de Isaac ROS para conectar la cámara con el modelo especificado de NVIDIA.

Redimensionar:

Abra una terminal, muévase al espacio de trabajo y entre en el contenedor de desarrollo Isaac ROS.

bash

cd ${ISAAC_ROS_WS}/src

cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
./scripts/run_dev.sh

Ejecute el siguiente comando de inicio:

bash

ros2 launch isaac_ros_examples isaac_ros_examples.launch.py launch_fragments:=resize

Abra una segunda terminal y entre en el contenedor.

bash

cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
./scripts/run_dev.sh

Ejecute el siguiente comando:

bash

ros2 bag play --loop ${ISAAC_ROS_WS}/isaac_ros_assets/isaac_ros_image_proc/quickstart --remap /hawk_0_left_rgb_image:=/image_raw /hawk_0_left_rgb_camera_info:=/camera_info

Ver el resultado

Abra la tercera terminal y entre en el contenedor.

bash

cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
./scripts/run_dev.sh

Ejecute el siguiente comando:

bash

ros2 run image_view image_view --ros-args --remap image:=resize/image

Conversión de color

Abra una terminal y muévase al espacio de trabajo

Nota: Si el contenedor ya se ha abierto y se han operado otros comandos, inicie el comando después de que la primera terminal haya hecho exit para salir de todos los contenedores docker.

Abra una terminal, muévase al espacio de trabajo y entre en el contenedor de desarrollo Isaac ROS.

bash

cd ${ISAAC_ROS_WS}/src

cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
./scripts/run_dev.sh

Ejecute el siguiente comando de inicio:

bash

ros2 launch isaac_ros_examples isaac_ros_examples.launch.py launch_fragments:=color_conversion interface_specs_file:=${ISAAC_ROS_WS}/isaac_ros_assets/isaac_ros_image_proc/quickstart_interface_specs.json

Abra una segunda terminal y entre en el contenedor.

bash

cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
./scripts/run_dev.sh

Ejecute el siguiente comando:

bash

ros2 bag play --loop ${ISAAC_ROS_WS}/isaac_ros_assets/isaac_ros_image_proc/quickstart --remap /hawk_0_left_rgb_image:=/image_raw /hawk_0_left_rgb_camera_info:=/camera_info

Ver el resultado

Abra la tercera terminal y entre en el contenedor.

bash

cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
./scripts/run_dev.sh

Ejecute el siguiente comando:

bash

ros2 run image_view image_view --ros-args --remap image:=image_mono

Recorte

Abra una terminal, muévase al espacio de trabajo y entre en el contenedor de desarrollo Isaac ROS.

bash

cd ${ISAAC_ROS_WS}/src

cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
./scripts/run_dev.sh

Ejecute el siguiente comando de inicio:

bash

ros2 launch isaac_ros_examples isaac_ros_examples.launch.py launch_fragments:=crop interface_specs_file:=${ISAAC_ROS_WS}/isaac_ros_assets/isaac_ros_image_proc/quickstart_interface_specs.json

Abra una segunda terminal y entre en el contenedor.

bash

cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
./scripts/run_dev.sh

Ejecute el siguiente comando:

bash

ros2 bag play --loop ${ISAAC_ROS_WS}/isaac_ros_assets/isaac_ros_image_proc/quickstart --remap /hawk_0_left_rgb_image:=/image_raw /hawk_0_left_rgb_camera_info:=/camera_info

Ver el resultado

Abra la tercera terminal y entre en el contenedor.

bash

cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
./scripts/run_dev.sh

Ejecute el siguiente comando:

bash

ros2 run image_view image_view --ros-args --remap image:=crop/image

Rectificar

Abra una terminal, muévase al espacio de trabajo y entre en el contenedor de desarrollo Isaac ROS.

bash

cd ${ISAAC_ROS_WS}/src

cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
./scripts/run_dev.sh

Ejecute el siguiente comando de inicio:

bash

ros2 launch isaac_ros_examples isaac_ros_examples.launch.py launch_fragments:=rectify_mono interface_specs_file:=${ISAAC_ROS_WS}/isaac_ros_assets/isaac_ros_image_proc/quickstart_interface_specs.json

Abra una segunda terminal y entre en el contenedor.

bash

cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
./scripts/run_dev.sh

Ejecute el siguiente comando:

bash

ros2 bag play --loop ${ISAAC_ROS_WS}/isaac_ros_assets/isaac_ros_image_proc/quickstart --remap /hawk_0_left_rgb_image:=/image_raw /hawk_0_left_rgb_camera_info:=/camera_info

Ver el resultado

Abra la tercera terminal y entre en el contenedor.

bash

cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
./scripts/run_dev.sh

Ejecute el siguiente comando:

bash

ros2 run image_view image_view --ros-args --remap image:=image_rect

Voltear

Abra una terminal, muévase al espacio de trabajo y entre en el contenedor de desarrollo Isaac ROS.

bash

cd ${ISAAC_ROS_WS}/src

cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
./scripts/run_dev.sh

Ejecute el siguiente comando de inicio:

bash

ros2 launch isaac_ros_examples isaac_ros_examples.launch.py launch_fragments:=flip

Abra una segunda terminal y entre en el contenedor.

bash

cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
./scripts/run_dev.sh

Ejecute el siguiente comando:

bash

ros2 bag play --loop ${ISAAC_ROS_WS}/isaac_ros_assets/isaac_ros_image_proc/quickstart --remap /hawk_0_left_rgb_image:=/image_raw /hawk_0_left_rgb_camera_info:=/camera_info

Ver el resultado

Abra la tercera terminal y entre en el contenedor.

bash

cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
./scripts/run_dev.sh

Ejecute el siguiente comando:

bash

ros2 run image_view image_view --ros-args --remap image:=image_flipped