9.5 Rectification et prétraitement d'images

Référence d'utilisation Docker : Module 3.7 Docker

Traitement de déformation d'images Isaac ROS : https://nvidia-isaac-ros.github.io/repositories_and_packages/isaac_ros_image_pipeline/index.html

Vue d'ensemble

Le traitement de déformation d'images Isaac ROS utilise le pipeline d'images Isaac ROS, un package pour les fonctions de traitement d'images. La sortie de la caméra nécessite généralement un prétraitement pour répondre aux exigences d'entrée d'une variété de fonctions de capteurs. Cela inclut le recadrage, le redimensionnement, le miroir, la correction des déformations de l'objectif et la conversion de l'espace colorimétrique. Pour les caméras stéréo, un traitement supplémentaire est nécessaire pour générer une différence visuelle entre l'image gauche et droite et le nuage de lumière, permettant ainsi une perception profonde.

Démarrage rapide

Afin de simplifier le développement, nous utilisons principalement les images Docker Isaac ROS Dev et effectuons des démonstrations d'impact sur celles-ci. La démonstration ne nécessite l'installation d'aucun dispositif de caméra pour simuler les flux de données de la caméra en lisant le fichier rosbag.

Note : Si vous souhaitez l'installer sur votre propre équipement ou connecter la caméra pour développer d'autres fonctionnalités, veuillez vous référer au site officiel d'Isaac ROS pour connecter la caméra avec le modèle spécifié de NVIDIA.

Redimensionner :

Ouvrez un terminal, déplacez-vous dans l'espace de travail et entrez dans le conteneur de développement Isaac ROS.

bash

cd ${ISAAC_ROS_WS}/src

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

Exécutez la commande de lancement suivante :

bash

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

Ouvrez un deuxième terminal et entrez dans le conteneur.

bash

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

Exécutez la commande suivante :

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

Voir le résultat

Ouvrez le troisième terminal et entrez dans le conteneur.

bash

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

Exécutez la commande suivante :

bash

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

Conversion de couleur

Ouvrez un terminal et déplacez-vous dans l'espace de travail

Note : Si le conteneur a été ouvert et que d'autres commandes ont été exécutées, démarrez la commande après que le premier terminal ait fait exit pour quitter tous les conteneurs docker.

Ouvrez un terminal, déplacez-vous dans l'espace de travail et entrez dans le conteneur de développement Isaac ROS.

bash

cd ${ISAAC_ROS_WS}/src

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

Exécutez la commande de lancement suivante :

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

Ouvrez un deuxième terminal et entrez dans le conteneur.

bash

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

Exécutez la commande suivante :

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

Voir le résultat

Ouvrez le troisième terminal et entrez dans le conteneur.

bash

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

Exécutez la commande suivante :

bash

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

Recadrage

Ouvrez un terminal, déplacez-vous dans l'espace de travail et entrez dans le conteneur de développement Isaac ROS.

bash

cd ${ISAAC_ROS_WS}/src

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

Exécutez la commande de lancement suivante :

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

Ouvrez un deuxième terminal et entrez dans le conteneur.

bash

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

Exécutez la commande suivante :

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

Voir le résultat

Ouvrez le troisième terminal et entrez dans le conteneur.

bash

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

Exécutez la commande suivante :

bash

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

Rectifier

Ouvrez un terminal, déplacez-vous dans l'espace de travail et entrez dans le conteneur de développement Isaac ROS.

bash

cd ${ISAAC_ROS_WS}/src

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

Exécutez la commande de lancement suivante :

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

Ouvrez un deuxième terminal et entrez dans le conteneur.

bash

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

Exécutez la commande suivante :

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

Voir le résultat

Ouvrez le troisième terminal et entrez dans le conteneur.

bash

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

Exécutez la commande suivante :

bash

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

Retournement

Ouvrez un terminal, déplacez-vous dans l'espace de travail et entrez dans le conteneur de développement Isaac ROS.

bash

cd ${ISAAC_ROS_WS}/src

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

Exécutez la commande de lancement suivante :

bash

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

Ouvrez un deuxième terminal et entrez dans le conteneur.

bash

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

Exécutez la commande suivante :

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

Voir le résultat

Ouvrez le troisième terminal et entrez dans le conteneur.

bash

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

Exécutez la commande suivante :

bash

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