Training your own DOPE model
Overview
The DOPE network architecture is intended to be trained on objects of a specific class, which means that using DOPE for pose estimation of a custom object class requires training a custom model for that class.
NVIDIA Isaac Sim offers a convenient workflow for training a custom DOPE model using synthetic data generation (SDG).
Tutorial Walkthrough
Clone the Isaac Sim DOPE Training repository and follow the training instructions to prepare a custom DOPE model.
Using the Isaac Sim DOPE inference script, test the custom DOPE model’s inference capability and ensure that the quality is acceptable for your use case.
Follow steps 1-5 of the main DOPE quickstart.
At step 6, move the prepared
.pth
model output from the Isaac Sim DOPE Training script into the/tmp/models
path inside the Docker container.bash docker cp custom_model.pth isaac_ros_dev-x86_64-container:/tmp/models
At step 7, run the
dope_converter.py
script with the custom model:python3 /workspaces/isaac_ros-dev/src/isaac_ros_pose_estimation/isaac_ros_dope/scripts/dope_converter.py --format onnx --input /tmp/models/custom_model.pth
Proceed through steps 8-9.
At step 10, launch the ROS 2 launch file with the custom model:
ros2 launch isaac_ros_dope isaac_ros_dope_tensor_rt.launch.py model_file_path:=/tmp/models/custom_model.onnx engine_file_path:=/tmp/models/custom_model.plan
Continue with the rest of the quickstart. You should now be able to detect poses of custom objects.