NGC | Catalog
CatalogModelsPeopleNet Transformer

PeopleNet Transformer

For downloads and more information, please view on a desktop device.
Logo for PeopleNet Transformer

Description

3 class object detection network to detect people in an image.

Publisher

-

Use Case

Object Detection

Framework

Transfer Learning Toolkit

Latest Version

deployable_v1.0

Modified

December 9, 2022

Size

86.53 MB

PeopleNet Transformer Model Card

Model Overview

The models described in this card detect one or more physical objects from three categories within an image and return a box around each object, as well as a category label for each object. Three categories of objects detected by these models are – persons, bags and faces.

Model Architecture

This model is based on the Deformable DETR object detector with ResNet50 as a feature extractor. This architecture utilizes the attention modules that only attend to a small set of key sampling points around a reference to optimize training and inference speed. PeopleNet-Transformer was modified from the original Deformable DETR by reducing the number of features from the backbone from 4 to 2 for optimized performance.

Training

This model was trained using the Deformable DETR entrypoint in TAO. The training algorithm optimizes the network to minimize the localization and confidence loss for the objects.

Training Data

PeopleNet-Transformer model was trained on a proprietary dataset with more than 1.5 million images and more than 39 million objects for person class. The training dataset consists of a mix of camera heights, crowd-density, and field-of view (FOV). Approximately half of the training data consisted of images captured in an indoor office environment. For this case, the camera is typically set up at approximately 10 feet height, 45-degree angle and has close field-of-view. This content was chosen to improve accuracy of the models for convenience-store retail analytics use-case.

Training Dataset Object Distribution
Category Number of Images Number of Persons Number of Bags Number of Faces
Natural 1043763 16609798 4238989 5690946
Rotated 501176 7666737 2021704 2662528
Simulation 27417 368914 0 92916
Total 1544939 24645449 6260693 8446390
Training Data Ground-truth Labeling Guidelines

The training dataset is created by labeling ground-truth bounding-boxes and categories by human labelers. Following guidelines were used while labelling the training data for NVIDIA PeopleNet model. If you are looking to re-train with your own dataset, please follow the guideline below for highest accuracy.

PeopleNet-Transformer project labelling guidelines:

  1. All objects that fall under one of the three classes (person, face, bag) in the image and are larger than the smallest bounding-box limit for the corresponding class (height >= 10px OR width >= 10px @1920x1080) are labeled with the appropriate class label.

  2. If a person is carrying an object please mark the bounding-box to include the carried object as long as it doesn’t affect the silhouette of the person. For example, exclude a rolling bag if they are pulling it behind them and are distinctly visible as separate object. But include a backpack, purse etc. that do not alter the silhouette of the pedestrian significantly.

  3. Occlusion: For partially occluded objects that do not belong a person class and are visible approximately 60% or are marked as visible objects with bounding box around visible part of the object. These objects are marked as partially occluded. Objects under 60% visibility are not annotated.

  4. Occlusion for person class: If an occluded person’s head and shoulders are visible and the visible height is approximately 20% or more, then these objects are marked by the bounding box around the visible part of the person object. If the head and shoulders are not visible please follow the Occlusion guidelines in item 3 above.

  5. Truncation: For an object other than a person that is at the edge of the frame with visibility of 60% or more visible are marked with the truncation flag for the object.

  6. Truncation for person class: If a truncated person’s head and shoulders are visible and the visible height is approximately 20% or more mark the bounding box around the visible part of the person object. If the head and shoulders are not visible please follow the Truncation guidelines in item 5 above.

  7. Each frame is not required to have an object.

Performance

Evaluation Data

The inference performance of PeopleNet-Transformer model was measured against more than 90000 proprietary images across a variety of environments. The frames are high resolution images 1920x1080 pixels resized to 960x544 pixels before passing to the PeopleNet-Transformer detection model.

Methodology and KPI

The true positives, false positives, false negatives are calculated using intersection-over-union (IOU) criterion greater than 0.5. In addition, we have also added KPI with IOU criterion of greater than 0.8 for extended-hand sequences where tight bounding box is a requirement for subsequent human pose estimation algorithms. The KPI for the evaluation data are reported in the table below. Model is evaluated based on precision, recall and accuracy.

Network PeopleNet-Transformer FP32 PeopleNet-Transformer FP16
Content Precision Recall Accuracy Precision Recall Accuracy
Generic 94.27 83.69 79.69 93.74 83.06 78.74
Office 95.65 93.87 90.63 96.07 93.10 89.68
Café 94.21 81.98 78.05 94.04 81.43 77.43
Extended-hands (IOU > 0.8) 86.87 79.12 70.67 86.21 77.82 69.20

Real-time Inference Performance

The inference is run on the provided unpruned model at INT8 precision. The inference performance is run using trtexec on Jetson AGX Xavier, Xavier NX, Orin, Orin NX and NVIDIA T4, and Ampere GPU. The Jetson devices are running at Max-N configuration for maximum GPU frequency. The performance shown here is the inference only performance. The end-to-end performance with streaming video data might slightly vary depending on other bottlenecks in the hardware and software.

Model Arch Inference Resolution Precision Batch size Xavier NX AGX Xavier Orin NX 16GB Orin 64GB T4 A100 A30 A10 A2
PeopleNet-Transformer 3x960x544 FP16 1 9 14 13 32 43 176 110 93 26

How to use this model

These models need to be used with NVIDIA Hardware and Software. For Hardware, the models can run on any NVIDIA GPU including NVIDIA Jetson devices. These models can only be used with Train Adapt Optimize (TAO) Toolkit, DeepStream SDK or TensorRT.

The primary use case intended for these models is detecting people in a color (RGB) image. The model can be used to detect people from photos and videos by using appropriate video or image decoding and pre-processing. As a secondary use case the model can also be used to detect bags and faces from images or videos. However, these additional classes are not the main intended use for these models.

It is intended for training and fine-tune using Train Adapt Optimize (TAO) Toolkit and the users' dataset of re-identification. High fidelity models can be trained to the new use cases. The Jupyter notebook available as a part of TAO container can be used to re-train.

The model is also intended for easy deployment to the edge using DeepStream SDK or TensorRT. DeepStream provides facility to create efficient video analytic pipelines to capture, decode and pre-process the data before running inference.

The model is encrypted and can be decrypted with the following key:

  • Model load key: nvidia_tao

Please make sure to use this as the key for all TAO commands that require a model load key.

Input

B X 3 X 544 X 960 (B C H W)

Output

Category labels (people) and bounding-box coordinates for each detected people in the input image.

Input image
Output image

Instructions to use pretrained model with TAO

In order, to use these models as a pretrained weights for transfer learning, please use the snippet below as template for the model_config component of the experiment spec file to train a Deformable DETR model. For more information on the experiment spec file, please refer to the TAO Toolkit User Guide.

pretrained_path: /path/to/the/model.tlt
model_config:
  backbone: resnet50
  num_feature_levels: 2
  dec_layers: 6
  enc_layers: 6
  num_queries: 300
  with_box_refine: True
  dropout_ratio: 0.3

Instructions to deploy these models with DeepStream

To create the entire end-to-end video analytic application, deploy these models with DeepStream SDK. DeepStream SDK is a streaming analytic toolkit to accelerate building AI-based video analytic applications. DeepStream supports direct integration of these models into the deepstream sample app.

To deploy these models with DeepStream 6.1, please follow the instructions below:

Download and install DeepStream SDK. The installation instructions for DeepStream are provided in DeepStream development guide. The config files for the purpose-built models are located in:

/opt/nvidia/deepstream is the default DeepStream installation directory. This path will be different if you are installing in a different directory.

You will need 1 config files and 1 label file. These files are provided in NVIDIA-AI-IOT.

pgie_ddetr_tao_config.txt - Main config file for DeepStream app
ddetr_labels.txt - Label file with 3 classes

Key Parameters in pgie_ddetr_tao_config.txt

labelfile-path=../../models/ddetr/ddetr_labels.txt
model-engine-file=../../models/ddetr/ddetr_266.etlt_b1_gpu0_fp16.engine
tlt-encoded-model=../../models/ddetr/ddetr_266.etlt
tlt-model-key=nvidia_tao
## 0=FP32, 1=INT8, 2=FP16 mode
network-mode=2
num-detected-classes=4
output-blob-names=pred_boxes;pred_logits
infer-dims=3;544;960

Run deepstream-app:

deepstream-app -c deepstream_app_source1_ddetr.txt

Documentation to deploy with DeepStream is provided in "Deploying to DeepStream" chapter of TAO User Guide.

Limitations

Very Small Objects

NVIDIA PeopleNet Transformer model were trained to detect objects larger than 10x10 pixels. Therefore it may not be able to detect objects that are smaller than 10x10 pixels.

Occluded Objects

When objects are occluded or truncated such that less than 20% of the object is visible, they may not be detected by the PeopleNet Transformer model. For people class objects, the model will detect occluded people as long as head and shoulders are visible. However if the person’s head and/or shoulders are not visible, the object might not be detected unless more than 60% of the person is visible.

Dark-lighting, Monochrome or Infrared Camera Images

The PeopleNet Transformer model were trained on RGB images in good lighting conditions. Therefore, images captured in dark lighting conditions or a monochrome image or IR camera image may not provide good detection results.

Warped and Blurry Images

The PeopleNet Transformer models were not trained on fish-eye lense cameras or moving cameras. Therefore, the models may not perform well for warped images and images that have motion-induced or other blur.

Face and Bag class

Although bag and face class are included in the model, the accuracy of these classes will be much lower than people class. Some re-training will be required on these classes to improve accuracy.

Model versions

  • trainable_v1.0 - Pre-trained model for PeopleNet Transformer.
  • deployable_v1.0 - Model for re-identification deployable to DeepStream or TensorRT.

References

Citations

  • Zhu, X., Su, W., Lu, L., Li, B., Wang, X., Dai, J.: Deformable DETR: Deformable Transformers for End-to-End Object Detection

Using TAO Pre-trained Models

License

License to use the model is covered by the Model EULA. By downloading the unpruned or pruned version of the model, you accept the terms and conditions of these licenses.

Technical blogs

Suggested reading

Ethical AI

NVIDIA ReIdentificationNet model creates embeddings for identifying objects captured in different scenes.

NVIDIA’s platforms and application frameworks enable developers to build a wide array of AI applications. Consider potential algorithmic bias when choosing or creating the models being deployed. Work with the model’s developer to ensure that it meets the requirements for the relevant industry and use case; that the necessary instruction and documentation are provided to understand error rates, confidence intervals, and results; and that the model is being used under the conditions and in the manner intended.