Skip to content

Home

What models or features are you interested in seeing in JetNet? Let us know!

JetNet is a collection of models, datasets, and tools that make it easy to explore neural networks on NVIDIA Jetson (and desktop too!). It can easily be used and extended with Python.

It easy to use

JetNet comes with tools that allow you to easily build , profile and demo models. This helps you easily try out models to see what is right for your application.

For example, here is how you would run a live web demo for different tasks

jetnet demo jetnet.torchvision.RESNET18_IMAGENET_TRT_FP16

and then open your browser to <ip_address>:8000 to view the detections:

jetnet demo jetnet.yolox.YOLOX_NANO_TRT_FP16

and then open your browser to <ip_address>:8000 to view the detections:

jetnet demo jetnet.trt_pose.RESNET18_HAND_224X224_TRT_FP16

and then open your browser to <ip_address>:8000 to view the detections:

jetnet demo jetnet.easyocr.EASYOCR_EN_TRT_FP16

and then open your browser to <ip_address>:8000 to view the detections:

jetnet demo jetnet.mmdet.MASK_RCNN_R50_FPN_1X_COCO_TRT_FP16

and then open your browser to <ip_address>:8000 to view the detections:

It's implementation agnostic

JetNet has well defined interfaces for tasks like classification, detection, pose estimation, and text detection. This means models have a familiar interface, regardless of which framework they are implemented in. As a user, this lets you easily use a variety of models without re-learning a new interface for each one.

class ClassificationModel:

    def get_labels(self) -> Sequence[str]:
        raise NotImplementedError

    def __call__(self, x: Image) -> Classification:
        raise NotImplementedError
class DetectionModel:

    def get_labels(self) -> Sequence[str]:
        raise NotImplementedError

    def __call__(self, x: Image) -> DetectionSet:
        raise NotImplementedError
class PoseModel:

    def get_keypoints(self) -> Sequence[str]:
        raise NotImplementedError

    def get_skeleton(self) -> Sequence[Tuple[int, int]]:
        raise NotImplementedError

    def __call__(self, x: Image) -> PoseSet:
        raise NotImplementedError
class TextDetectionModel:

    def __call__(self, x: Image) -> TextDetectionSet:
        raise NotImplementedError

It's highly reproducible and configurable

JetNet models are defined as pydantic types, which means they they can be easily validated, modified, and exported to JSON. The models include an init function which is used to perform all steps necessary to prepare the model for execution, like downloading weights, downloading calibration data and optimizing with TensorRT.

For example, the following models, which include TensorRT optimization can be re-created with a single line

from jetnet.torchvision import RESNET18_IMAGENET_TRT_FP16

model = RESNET18_IMAGENET_TRT_FP16.build()
from jetnet.yolox import YOLOX_NANO_TRT_FP16

model = YOLOX_NANO_TRT_FP16.build()
from jetnet.trt_pose import RESNET18_BODY_224X224_TRT_FP16

model = RESNET18_BODY_224X224_TRT_FP16.build()
from jetnet.easyocr import EASYOCR_EN_TRT_FP16

model = EASYOCR_EN_TRT_FP16.build()
from jetnet.mmdet import MASK_RCNN_R50_FPN_1X_COCO_TRT_FP16

model = MASK_RCNN_R50_FPN_1X_COCO_TRT_FP16.build()

It's easy to set up

JetNet comes with pre-built docker containers for Jetson and Desktop. In case these don't work for you, manual setup instructions are provided. Check out the Setup page for details.

Get Started!

Head on over the Setup to configure your system to run JetNet.

Please note, if a task isn't supported that you would like to see in JetNet, let us know on GitHub. You can open an issue, discussion or even a pull-request to get things started. We welcome all feedback!