# Change Log Major updates and new features to this project will be listed in this document. ## May 5, 2023 * [WebRTC](docs/aux-streaming.md#webrtc) support and [WebApp Framework](README.md#webapp-frameworks) tutorials: * [WebRTC Server](docs/webrtc-server.md) * [HTML / JavaScript](docs/webrtc-html.md) * [Flask + REST](docs/webrtc-flask.md) * [Plotly Dashboard](docs/webrtc-dash.md) * [Recognizer (Interactive Training)](docs/webrtc-recognizer.md) * Support for [TAO detection models](docs/detectnet-tao.md) in `detectNet` * Added [`actionNet`](docs/actionnet.md) (action/activity recognition) * Added [`backgroundNet`](docs/backgroundnet.md) (foreground/background segmentation/removal) * Added [`objectTracker`](c/tracking) - [IoU object tracking](docs/detectnet-tracking.md) for detectNet * [Image Tagging and Multi-Label Classification](docs/imagenet-tagging.md) (support for [`topK`](https://github.com/dusty-nv/jetson-inference/blob/b50bf1d5eefed73acda5c963513e0d8c79d18be3/c/imageNet.h#L201) in imageNet) * [Temporal smoothing of classification results](https://github.com/dusty-nv/jetson-inference/blob/b50bf1d5eefed73acda5c963513e0d8c79d18be3/c/imageNet.h#L271) in imageNet * Automatic model downloader => [`data/networks/models.json`](data/networks/models.json) * Build TensorRT timing cache for quick loading of updated models (or models that share layer configurations) * Zero-copy interoperability of Python [cudaImage](https://github.com/dusty-nv/jetson-inference/blob/master/docs/aux-image.md#image-capsules-in-python) with other libraries: * [`__cuda_array_interface__`](docs/aux-image.md#cuda-array-interface) (Numba, PyTorch, CuPy, PyCUDA, VPI, and [others](https://numba.readthedocs.io/en/stable/cuda/cuda_array_interface.html#interoperability)) * [`__array__`](docs/aux-image.md#accessing-as-a-numpy-array) interface ([Numpy](https://numpy.org/doc/stable/reference/arrays.interface.html)) * Train higher-resolution detection models with [`train_ssd.py --resolution=N`](https://github.com/dusty-nv/pytorch-ssd/blob/86155c0c410e0959df0184b24af6a8f59f49fbe5/train_ssd.py#L49) * Compute per-class Mean Average Precision (mAP) with [`train_ssd.py --validate-mean-ap`](https://github.com/dusty-nv/pytorch-ssd/blob/86155c0c410e0959df0184b24af6a8f59f49fbe5/train_ssd.py#L98) * Tensorboard logging in [`train.py`](https://github.com/dusty-nv/pytorch-classification/blob/819b105087c397c23cd81fd9446b5f0a0213db94/train.py#L95) / [`train_ssd.py`](https://github.com/dusty-nv/pytorch-ssd/blob/86155c0c410e0959df0184b24af6a8f59f49fbe5/train_ssd.py#L114) * Added [RTSP server](docs/aux-streaming.md#rtsp) video output * Added optional timeout status code to [`videoSource.Capture()`](https://github.com/dusty-nv/jetson-utils/blob/0bcb19b498326eb866a80d7d13388b2e59bc9dfd/video/videoSource.h#L235) * Added [`--input-save`](docs/aux-streaming.md#input-options) and [`--output-save`](docs/aux-streaming.md#output-options) for dumping video to disk in addition to the primary I/O stream * Added [`ros_deep_learning`](https://github.com/dusty-nv/ros_deep_learning) package as a submodule and to container builds * Added x86_64 + dGPU support and WSL2 for [Docker container](docs/aux-docker.md#x86-support) * Automated testing with [`test-models.py`](tools/test-models.py) and [`test-cuda.sh`](https://github.com/dusty-nv/jetson-utils/blob/master/python/examples/test-cuda.sh) ## April 8, 2022 * Added support for JetPack 5.0 and [Jetson AGX Orin](https://developer.nvidia.com/embedded/jetson-agx-orin-developer-kit) * Conditionally use NVIDIA V4L2-based hardware codecs when on JetPack 5.0 and newer * Minor bug fixes and improvements ## August 3, 2021 * Added [Pose Estimation with PoseNet](docs/posenet.md) with pre-trained models * Added [Mononocular Depth with DepthNet](docs/depthnet.md) with pre-trained models * Added support for [`cudaMemcpy()` from Python](docs/aux-image.md#copying-images) * Added support for [drawing 2D shapes with CUDA](docs/aux-image.md#drawing-shapes) ## August 31, 2020 * Added initial support for [Running in Docker Containers](docs/aux-docker.md) * Changed OpenGL behavior to show window on first frame * Minor bug fixes and improvements ## July 15, 2020 > **note:** API changes from this update are intended to be backwards-compatible, so previous code should still run. * [Re-training SSD-Mobilenet](docs/pytorch-ssd.md) Object Detection tutorial with PyTorch * Support for [collection of object detection datasets](docs/pytorch-collect-detection.md) and bounding-box labeling in `camera-capture` tool * [`videoSource`](docs/aux-streaming.md#source-code) and [`videoOutput`](docs/aux-streaming.md#source-code) APIs for C++/Python that supports multiple types of video streams: * [MIPI CSI cameras](docs/aux-streaming.md#mipi-csi-cameras) * [V4L2 cameras](docs/aux-streaming.md#v4l2-cameras) * [RTP](docs/aux-streaming.md#rtp) / [RTSP](docs/aux-streaming.md#rtsp) * [Videos](docs/aux-streaming.md#video-files) & [Images](docs/aux-streaming.md#image-files) * [Image sequences](docs/aux-streaming.md#image-files) * [OpenGL windows](docs/aux-streaming.md#output-streams) * Unified the `-console` and `-camera` samples to process both images and video streams * [`imagenet.cpp`](examples/imagenet/imagenet.cpp) / [`imagenet.py`](python/examples/imagenet.py) * [`detectnet.cpp`](examples/detectnet/detectnet.cpp) / [`detectnet.py`](python/examples/detectnet.py) * [`segnet.cpp`](examples/segnet/segnet.cpp) / [`segnet.py`](python/examples/segnet.py) * Support for `uchar3/uchar4/float3/float4` images (default is now `uchar3` as opposed to `float4`) * Replaced opaque Python memory capsule with [`jetson.utils.cudaImage`](docs/aux-image.md#image-capsules-in-python) object * See [Image Capsules in Python](docs/aux-image.md#image-capsules-in-python) for more info * Images are now subscriptable/indexable from Python to directly access the pixel dataset * Numpy ndarray conversion now supports `uchar3/uchar4/float3/float4` formats * [`cudaConvertColor()`](https://github.com/dusty-nv/jetson-utils/blob/a587c20ad95d71efd47f9c91e3fbf703ad48644d/cuda/cudaColorspace.h#L31) automated colorspace conversion function (RGB, BGR, YUV, Bayer, grayscale, ect) * Python CUDA bindings for `cudaResize()`, `cudaCrop()`, `cudaNormalize()`, `cudaOverlay()` * See [Image Manipulation with CUDA](docs/aux-image.md) and [`cuda-examples.py`](https://github.com/dusty-nv/jetson-utils/blob/master/python/examples/cuda-examples.py) for examples of using these * Transitioned to using Python3 by default since Python 2.7 is now past EOL * DIGITS tutorial is now marked as deprecated (replaced by PyTorch transfer learning tutorial) * Logging can now be controlled/disabled from the command line (e.g. `--log-level=verbose`) Thanks to everyone from the forums and GitHub who helped to test these updates in advance! ## October 3, 2019 * Added new pre-trained FCN-ResNet18 semantic segmentation models: | Dataset | Resolution | CLI Argument | Accuracy | Jetson Nano | Jetson Xavier | |:------------:|:----------:|--------------|:--------:|:-----------:|:-------------:| | [Cityscapes](https://www.cityscapes-dataset.com/) | 512x256 | `fcn-resnet18-cityscapes-512x256` | 83.3% | 48 FPS | 480 FPS | | [Cityscapes](https://www.cityscapes-dataset.com/) | 1024x512 | `fcn-resnet18-cityscapes-1024x512` | 87.3% | 12 FPS | 175 FPS | | [Cityscapes](https://www.cityscapes-dataset.com/) | 2048x1024 | `fcn-resnet18-cityscapes-2048x1024` | 89.6% | 3 FPS | 47 FPS | | [DeepScene](http://deepscene.cs.uni-freiburg.de/) | 576x320 | `fcn-resnet18-deepscene-576x320` | 96.4% | 26 FPS | 360 FPS | | [DeepScene](http://deepscene.cs.uni-freiburg.de/) | 864x480 | `fcn-resnet18-deepscene-864x480` | 96.9% | 14 FPS | 190 FPS | | [Multi-Human](https://lv-mhp.github.io/) | 512x320 | `fcn-resnet18-mhp-512x320` | 86.5% | 34 FPS | 370 FPS | | [Multi-Human](https://lv-mhp.github.io/) | 640x360 | `fcn-resnet18-mhp-512x320` | 87.1% | 23 FPS | 325 FPS | | [Pascal VOC](http://host.robots.ox.ac.uk/pascal/VOC/) | 320x320 | `fcn-resnet18-voc-320x320` | 85.9% | 45 FPS | 508 FPS | | [Pascal VOC](http://host.robots.ox.ac.uk/pascal/VOC/) | 512x320 | `fcn-resnet18-voc-512x320` | 88.5% | 34 FPS | 375 FPS | | [SUN RGB-D](http://rgbd.cs.princeton.edu/) | 512x400 | `fcn-resnet18-sun-512x400` | 64.3% | 28 FPS | 340 FPS | | [SUN RGB-D](http://rgbd.cs.princeton.edu/) | 640x512 | `fcn-resnet18-sun-640x512` | 65.1% | 17 FPS | 224 FPS | ## July 19, 2019 * Python API support for imageNet, detectNet, and camera/display utilities * Python examples for processing static images and live camera streaming * Support for interacting with numpy ndarrays from CUDA * Onboard re-training of ResNet-18 models with PyTorch * Example datasets: 800MB Cat/Dog and 1.5GB PlantCLEF * Camera-based tool for collecting and labeling custom datasets * Text UI tool for selecting/downloading pre-trained models * New pre-trained image classification models (on 1000-class ImageNet ILSVRC) * ResNet-18, ResNet-50, ResNet-101, ResNet-152 * VGG-16, VGG-19 * Inception-v4 * New pre-trained object detection models (on 90-class MS-COCO) * SSD-Mobilenet-v1 * SSD-Mobilenet-v2 * SSD-Inception-v2 * API Reference documentation for C++ and Python * Command line usage info for all examples, run with --help * Output of network profiler times, including pre/post-processing * Improved font rasterization using system TTF fonts ##

© 2016-2020 NVIDIA | Table of Contents