NVIDIA
NVIDIA
TAO Pretrained Instance Segmentation
Model
NVIDIA
NVIDIA
TAO Pretrained Instance Segmentation

Pretrained weights to facilitate transfer learning using TAO Toolkit.

TAO Pretrained Instance Segmentation

Description:

The Instance Segmentation model identifies each instance of multiple objects in a frame at the pixel level. This model is ready for commercial use.

References:

Other TAO Pre-trained Models

Model Architecture:

Architecture Type: MaskRCNN
Network Architecture: ResNet

Input:

Input Type(s): Image
Input Format(s): Red, Green, Blue (RGB)
Input Parameters: 3D
Other Properties Related to Input: Minimum Resolution: B X 3 X 224 X 224; Maximum Resolution: B X 3 X 518 X 518; No minimum bit depth, alpha, or gamma

Output:

Output Type(s): Label(s), Bounding-Box(es), Segmentation Mask
Output Format: Label: Text String(s); Bounding Box: (x-coordinate, y-coordinate, width, height), Segmentation Mask: 2D
Other Properties Related to Output: Category Label(s): Object(s) detected, Confidence Scores, Segmentation Mask

Software Integration:

Runtime Engine(s):

  • TAO - 5.2
  • DeepStream - 6.1

Supported Hardware Architecture(s):

  • Ampere
  • Jetson
  • Hopper
  • Lovelace
  • Pascal
  • Turing
  • Volta

Supported Operating System(s):

  • Linux
  • Linux 4 Tegra

Model Version(s):

  • resnet10
  • resnet18
  • resnet34
  • resnet50
  • resnet101

Training & Evaluation:

Training Dataset:

Link: https://github.com/openimages/dataset/blob/main/READMEV3.md

Data Collection Method by dataset:

  • Unknown

Labeling Method by dataset:

  • Unknown

Properties:
Roughly 400,000 images and 7,000 validation images across thousands of classes as defined by Google OpenImages Version Three (3) dataset. Most of the human verifications have been done with in-house annotators at Google. A smaller part has been done with crowd-sourced verification from Image Labeler: Crowdsource app, g.co/imagelabeler.

Evaluation Dataset:

Link: https://github.com/openimages/dataset/blob/main/READMEV3.md

Data Collection Method by dataset:

  • Unknown

Labeling Method by dataset:

  • Unknown

Properties:
15,000 test images from Google OpenImages Version Three (3) dataset.

Instance Segmentation Using TAO

Instance segmentation is a popular computer vision technique that can identify each instance of multiple objects in a frame at the pixel level. Instance segmentation will not only produce bounding boxes around the object, but also segmentation masks. This model card contains pretrained weights that may be used as a starting point with the following instance segmentation networks in Train Adapt Optimize (TAO) Toolkit to facilitate transfer learning.

Following instance segmentation architecture are supported:

  • MaskRCNN

The pre-trained weights are trained on a subset of the Google OpenImages dataset. Following backbones are supported with these MaskRCNN networks.

  • resnet10/resnet18/resnet34/resnet50/resnet101

To see the full list of all the backbones, scroll over to the version history tab.

Note: These are unpruned models with just the feature extractor weights, and may not be used without re-training in an Instance segmentation application

Training Instance Segmentation Models Using TAO

The instance segmentation apps in TAO expect data in COCO format. TAO provides a simple command line interface to train a deep learning model for instance segmentation.

The models in this model area are only compatible with TAO Toolkit. For more information about using this model with TAO, please view the instructions here to install the TAO Launcher CLI and use with the instance segmentation trainer in TAO.

  1. Install the NGC CLI from ngc.nvidia.com

  2. Configure the NGC CLI using the following command

ngc config set
  1. To view all the backbones that are supported by Instance segmentation architecture in TAO:

    ngc registry model list nvidia/tao/pretrained_instance_segmentation:*
    
  2. Download the model:

    ngc registry model download-version nvidia/tao/pretrained_instance_segmentation:<template> --dest <path>
    

Instructions to run the sample notebook

  1. Get the NGC API key from the SETUP tab on the left. Please store this key for future use. Detailed instructions can be found here

  2. Configure the NGC command line interface using the command mentioned below and follow the prompts.

ngc config set
  1. Download the sample notebooks from NGC using the command below
ngc registry resource download-version "nvidia/tao_cv_samples:v1.0.2"
  1. Invoke the jupyter notebook using the following command

    jupyter notebook --ip 0.0.0.0 --port 8888 --allow-root
    
  2. Open an internet browser and type in the following URL to start running the notebooks when running on a local machine.

    http://0.0.0.0:8888
    

    If you wish to run view the notebook from a remote client, please modify the URL as follows:

    http://a.b.c.d:8888
    

    Where, the a.b.c.d is the IP address of the machine running the container.

Technical blogs

Suggested reading

Ethical Considerations:

NVIDIA believes Trustworthy AI is a shared responsibility and we have established policies and practices to enable development for a wide array of AI applications. When downloaded or used in accordance with our terms of service, developers should work with their supporting internal model team to ensure this model meets requirements for the relevant industry and use case and addresses unforeseen product misuse. For more detailed information on ethical considerations for this model, please see the Model Card++ Promise and the Explainability, Bias, Safety & Security, and Privacy Subcards.