9.2 Dieptesegmentatie

Docker-gebruiksreferentie: Module 3.7 Docker

Officiële Isaac ROS Depth Segmentation-link: https://nvidia-isaac-ros.github.io/repositories_and_packages/isaac_ros_depth_segmentation/index.html

Overzicht

Isaac ROS Depth Segmentation biedt een versneld NVIDIA diepe-partitiepakket. Het isaac ros bi3d-pakket gebruikt een geoptimaliseerd Bi3D DNN-model om een stereodiepteschatting te leveren via binarisatie en wordt gebruikt voor diepte-scheiding. Diepte-partities kunnen worden gebruikt om te bepalen of de barrière zich in een aangrenzend gebied bevindt en om botsingen met de barrière tijdens het navigeren te voorkomen.

Bi3D wordt gebruikt voor knoopdiagrammen die in diepte zijn gescheiden van de tijd-gesynchroniseerde input van rechts-rechts stereobeelden. Bi3D-beelden moeten worden gecorrigeerd en aangepast om in de juiste invoerresolutie te passen. De breedteverhouding van het beeld moet worden behouden; daarom kan het nodig zijn om bij te snijden en het formaat aan te passen om de invoerbreedteverhouding te behouden. De DNN-code, DNN-redenering en DNN-decoderingen maken deel uit van het Bi3D-knooppunt. De redenering wordt uitgevoerd met TensorRT omdat het Bi3D DNN-model is ontworpen om te optimaliseren met TensorRT-ondersteuning.

In vergelijking met andere stereovisuele functies voorspelt de dieptesegmentatie of de barrière zich in een aangrenzend gebied bevindt (in plaats van in continue diepte) en voorspelt tegelijkertijd vrije ruimte op afstand van de grond, wat andere functies meestal niet bieden. Bovendien, in tegenstelling tot andere stereovisuele functies in Isaac ROS, wordt de diepte gescheiden op de NVIDIA DLA (Deep Learning Accelerator), die onafhankelijk is van de GPU.

Snelstart

Om de ontwikkeling te vereenvoudigen, gebruiken we voornamelijk Isaac ROS Dev Docker-images en voeren we daarop impactdemonstraties uit. De demonstratie vereist niet de installatie van een camera-apparaat om datastromen van de camera te simuleren door het rosbag-bestand af te spelen.

Als u van plan bent de workflow op echte hardware of met een aangesloten camera uit te voeren, raadpleeg dan de officiële Isaac ROS-documentatie voor ondersteunde camera-instellingen.

Open een terminal en ga naar de werkruimte

bash

cd ${ISAAC_ROS_WS}/src
Ga de Isaac ROS Dev Docker-container binnen
cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
./scripts/run_dev.sh

Voer de volgende startopdracht uit:

Opmerking: Voor het gebruik van een officieel voorbeeld kan wetenschappelijke toegang nodig zijn, zorg ervoor dat uw netwerkomgeving reguliere toegang heeft tot GitHub

bash

cd /workspaces/isaac_ros-dev/src

# Voorbeeldrepository (biedt snelstart-launches zoals isaac_ros_examples.launch.py)
git clone -b release-3.2 https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_examples.git

# Repository voor Bi3D (Dieptesegmentatie / Bi3D)
git clone -b release-3.2 https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_depth_segmentation.git

# Repository voor algemene hulpprogramma's (run_dev, scripts en gedeelde afhankelijkheden/configuratie)
git clone -b release-3.2 https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_common.git
cd /workspaces/isaac_ros-dev

# Zorg ervoor dat rosdep beschikbaar is (het is meestal vooraf geïnstalleerd in de dev-container)
sudo apt-get update
rosdep update

# Installeer werkruimte-afhankelijkheden
rosdep install --from-paths src --ignore-src -r -y

# Bouwen
colcon build --symlink-install


ros2 launch isaac_ros_examples isaac_ros_examples.launch.py \
launch_fragments:=bi3d \
interface_specs_file:=${ISAAC_ROS_WS}/isaac_ros_assets/isaac_ros_bi3d/rosbag_quickstart_interface_specs.json \
featnet_engine_file_path:=${ISAAC_ROS_WS}/isaac_ros_assets/models/bi3d_proximity_segmentation/featnet.plan \
segnet_engine_file_path:=${ISAAC_ROS_WS}/isaac_ros_assets/models/bi3d_proximity_segmentation/segnet.plan \
max_disparity_values:=10

Open een tweede terminal en ga de container binnen.

bash

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

Voer de volgende opdracht uit:

bash

ros2 bag play --loop ${ISAAC_ROS_WS}/isaac_ros_assets/isaac_ros_bi3d/bi3dnode_rosbag

Het resultaat bekijken

Open de derde terminal en ga de container binnen.

bash

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

Voer de volgende opdracht uit: om de dieptepartitie te zien

bash

 ros2 run isaac_ros_bi3d isaac_ros_bi3d_visualizer.py --max_disparity_value 30

Open de vierde terminal en ga de container binnen.

bash

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

Voer de volgende opdracht uit: zie afbeeldingen

bash

ros2 run image_view image_view --ros-args -r image:=right/image_rect