Where to get Peoplenet unpruned model and how to train it on Jetson?

• Hardware (T4/V100/Xavier/Nano/etc)
Jetson Xavier NX

Hi All,

I’m using this model from the NGC catalog with DeepStream pipeline to detect people and faces.
My ultimate goal is to detect only people with faces, i.e when they can be identified.
I wonder if it’s possible to train the model so it only detects people with their faces visible?
I take it that I need an unpruned model to do so but can only see deployable_quantized one if I click on Download - where can I get the unpruned one?
And can I perform such a training on Jetson Xavier NX?

Thanks

Actually you can directly use facenet model. See https://docs.nvidia.com/tao/tao-toolkit/text/model_zoo/cv_models/facedetectnet.html#intended-use-case .
You can use the deployable model to run inference. FaceDetect | NVIDIA NGC
And also if you need the unpruned one, please download from FaceDetect | NVIDIA NGC

No, please run TAO training in discrete GPUs, such as A100, A40, A30, A2, A16, A100x, A30x, V100, T4, Titan-RTX and Quadro-RTX, etc.
After training, you can run inference on any discrete GPUs or any Jetson devices.

The thing is peoples’ bboxes are primary objects in my use case (I want to make sure people wear high-vis vests and I can recognise them) so I don’t think that I can use Face Detect as it won’t provide me with such information.
The only option I can see is to use it as a secondary detector but as Peoplenet is already detecting faces, I can see no advantage in adding a secondary detector because it will slow down my pipeline and won’t add any new information or improve detection process. Or am I missing something?

Thanks for the hint on how to download different versions of a model, didn’t look into that tab.

I got it that I cannot use Jetson Xavier to run TAO training but is it the same with AGX Orin?

So, you can use peoplenet directly. It can detect persons, faces, bags. For bags, you can set class-id to ignore it when you run inference with deepstream. (Gst-nvdsanalytics — DeepStream 6.3 Release documentation)

Yes, TAO is designed on training on the platform with x86-based CPU and discrete GPUs.

Yes, that’s exactly what I’m doing - it detects persons and faces separately and then I do some filtering to filter out people that don’t have a matching face. It’s not ideal and takes additional time so I wanted to know if it’s possible (and if yes, how) to train peoplenet model so it only detects people with faces?
That way I would be able to disable detecting anything apart from persons and get rid of my filtering code.

So, your model aims to detect people with faces and also the people who wear high-vis vests?

Well, at the moment my goal is to detect if people wear/don’t wear safety gear like high-vis vests and/or helmets.
My app extracts from source video streams images of people with faces (need them for identification purposes), which then being analysed to check if they wear required safety gear.
So ideally I want my primary model to detect only people with their faces visible (and ignore faces with no corresponding person or person without a face visible).
And maybe a secondary model that would process those objects and add metadata/labels related to helmets/high-vis vests.
Does that make sense?
I have no experience in training pre-training models but was thinking that it could be possible to achieve that, just need some hints from experts on how to start.

You can use primary detector(for example, peoplenet) to detect the person. And then use second engine which is a classification model to classify two classes(wear safety gear, not wear safety gear).

Ok, but is it possible (and how exactly if it is) to train peoplenet model to detect person only if their face is visible?
Also, can you tell me what classification model can I use or what can I do if there is no ready-to-use model that allows such classification?
Again, I know how to use models with detectors/classifiers but I have no experience in creating custom models or training existing ones so any help on how to do that would be really appreciated.

For this case, there is not existing model. The peoplenet will detect the person no matter there is a face or not. You can prepare this kind of dataset(persons with only visible face) and train a detection model.

To train a classification model, you can prepare two folders. One is for wearing safety gear. Another is for not wearing safety gear. Then trigger training with tao classification network.
Refer to Image Classification (TF1) - NVIDIA Docs

For quick start for any TAO training, you can run jupyter notebook to get familiar with them.TAO Toolkit Quick Start Guide - NVIDIA Docs

There is no update from you for a period, assuming this is not an issue anymore.
Hence we are closing this topic. If need further support, please open a new one.
Thanks

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.