3D Object Pose Estimation: Replacing dolly

Hi,

In regards the 3D Object Pose Estimation ‘camera feed’ app:

If we trained our own model for a different object than the dolly, and generated a codebook, is this all that needs to be done?

I ask because I am having trouble getting the correct results with the camera feed.

I noticed in the BUILD file, this is included:

@resnet_object_detection_model

And upon further investigation, in resnet_object_detection_model.BUILD:

“# Resnet based object detection model (currently trained for dolly detection)”

Is there anything else that needs to be done for this to work on my own model other than what is documented? Do I need to replace this resnet_object_detection_model or is it meant to work with everything?

Thank you!

Ah, do we have to train object detection as well before doing pose estimation?

https://docs.nvidia.com/isaac/isaac/packages/detect_net/doc/detect_net.html

as far as I’ve got to known the general workflow for pose estimation for a new object is as follows:

object detection: create dataset using unity and tlt-toolbox->train object detector->export etlt model
pose estimation: train with unity and isaac->generate pb model->create a codebook
inference: put the etlt model the pb model and the codebook together as in the “pose_estimation_inference_camerafeed.app.json”. You have to replace the etlt model at “detect_net_inference.subgraph.json” with the one you generated

Exactly. You need to have trained model for your object (you can follow the detect_net example for that). Please see the workflow/scheme in the Application Overview for a better understanding.

You would then need to change the pose_encoder in the model file path to your specific file:

"object_pose_estimation.pose_encoder": {
   "TensorRTInference": {
      "model_file_path": "path_to_model"
   }
},

Additionally , follow the 3D Pose Documentation to check what else you may need to change. You can also look for “dolly” specific references in the application graphs to see if your missing something else.

Hello, i did all the steps mentioned, train object detection for own object, training autoencoder and creating codebook . But when i run the inference application using a sample image i get this error:

Currently stuck with this error. Do you may have a solution for that ?
thanks in advance

Hi Markus,
Have you run the TLT docker with sudo? Can you check if /home/markus/tlt-experiments/detectnet_v2/experiment_dir_final has write permissions?

If so, either change the permissions of the folder so that the app can write the generated TensorRT engine file or provide a different path (“engine_file_path” in the TensorRTInference configuration) to a location with writing permissions.

Thanks for that quick reply. That fixed the error . I have another question on training object detection. Is there a possibility to change the color of an object during generating simulated trainings data ?