9.5 Bildrektifizierung und Vorverarbeitung

Docker-Nutzungsreferenz: Modul 3.7 Docker

Isaac ROS Bildverzerrungsverarbeitung: https://nvidia-isaac-ros.github.io/repositories_and_packages/isaac_ros_image_pipeline/index.html

Übersicht

Die Isaac ROS-Bildverzerrungsverarbeitung verwendet die Isaac ROS Image Pipeline, ein Paket für Bildverarbeitungsfunktionen. Die Kameraausgabe erfordert in der Regel eine Vorverarbeitung, um die Eingabeanforderungen einer Vielzahl von Sensorfunktionen zu erfüllen. Dazu gehören Zuschneiden, Größenanpassung, Spiegeln, Korrektur von Linsenverzerrungen und Farbraumumwandlung. Für Stereokameras ist eine zusätzliche Verarbeitung erforderlich, um eine visuelle Differenz zwischen dem linken und rechten Bild und der Lichtwolke zu erzeugen, wodurch eine tiefe Wahrnehmung erreicht wird.

Schnellstart

Um die Entwicklung zu vereinfachen, verwenden wir hauptsächlich Isaac ROS Dev Docker-Images und führen darauf Auswirkungs-Demonstrationen durch. Die Demonstration erfordert nicht die Installation eines Kameragerätes, um Datenströme von der Kamera durch Abspielen der rosbag-Datei zu simulieren.

Hinweis: Wenn Sie auf Ihrem eigenen Gerät installieren oder die Kamera anschließen möchten, um andere Funktionen zu entwickeln, beziehen Sie sich bitte auf das offizielle Isaac ROS-Netzwerk, um die Kamera mit dem angegebenen Modell von NVIDIA zu verbinden.

Größe ändern:

Öffnen Sie ein Terminal, wechseln Sie in den Arbeitsbereich und betreten Sie den Isaac ROS-Entwicklungscontainer.

bash

cd ${ISAAC_ROS_WS}/src

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

Führen Sie den folgenden Startbefehl aus:

bash

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

Öffnen Sie ein zweites Terminal und betreten Sie den Container.

bash

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

Führen Sie den folgenden Befehl aus:

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

Ergebnis anzeigen

Öffnen Sie das dritte Terminal und betreten Sie den Container.

bash

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

Führen Sie den folgenden Befehl aus:

bash

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

Farbumwandlung

Öffnen Sie ein Terminal und wechseln Sie in den Arbeitsbereich

Hinweis: Wenn der Container bereits geöffnet wurde und andere Befehle bedient wurden, starten Sie den Befehl, nachdem das erste Terminal ein exit aus allen Docker-Containern ausgeführt hat.

Öffnen Sie ein Terminal, wechseln Sie in den Arbeitsbereich und betreten Sie den Isaac ROS-Entwicklungscontainer.

bash

cd ${ISAAC_ROS_WS}/src

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

Führen Sie den folgenden Startbefehl aus:

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

Öffnen Sie ein zweites Terminal und betreten Sie den Container.

bash

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

Führen Sie den folgenden Befehl aus:

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

Ergebnis anzeigen

Öffnen Sie das dritte Terminal und betreten Sie den Container.

bash

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

Führen Sie den folgenden Befehl aus:

bash

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

Zuschneiden

Öffnen Sie ein Terminal, wechseln Sie in den Arbeitsbereich und betreten Sie den Isaac ROS-Entwicklungscontainer.

bash

cd ${ISAAC_ROS_WS}/src

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

Führen Sie den folgenden Startbefehl aus:

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

Öffnen Sie ein zweites Terminal und betreten Sie den Container.

bash

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

Führen Sie den folgenden Befehl aus:

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

Ergebnis anzeigen

Öffnen Sie das dritte Terminal und betreten Sie den Container.

bash

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

Führen Sie den folgenden Befehl aus:

bash

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

Rektifizieren

Öffnen Sie ein Terminal, wechseln Sie in den Arbeitsbereich und betreten Sie den Isaac ROS-Entwicklungscontainer.

bash

cd ${ISAAC_ROS_WS}/src

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

Führen Sie den folgenden Startbefehl aus:

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

Öffnen Sie ein zweites Terminal und betreten Sie den Container.

bash

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

Führen Sie den folgenden Befehl aus:

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

Ergebnis anzeigen

Öffnen Sie das dritte Terminal und betreten Sie den Container.

bash

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

Führen Sie den folgenden Befehl aus:

bash

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

Spiegeln

Öffnen Sie ein Terminal, wechseln Sie in den Arbeitsbereich und betreten Sie den Isaac ROS-Entwicklungscontainer.

bash

cd ${ISAAC_ROS_WS}/src

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

Führen Sie den folgenden Startbefehl aus:

bash

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

Öffnen Sie ein zweites Terminal und betreten Sie den Container.

bash

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

Führen Sie den folgenden Befehl aus:

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

Ergebnis anzeigen

Öffnen Sie das dritte Terminal und betreten Sie den Container.

bash

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

Führen Sie den folgenden Befehl aus:

bash

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