NVIDIA/ACCV-Lab
Python
Captured source
source ↗NVIDIA/ACCV-Lab
Description: Accelerated Computer Vision Lab (ACCV-Lab) is a systematic collection of packages with the common goal to facilitate end-to-end efficient training in the ADAS domain, each package offering tools & best practices for a specific aspect/task in this domain.
Language: Python
License: Apache-2.0
Stars: 63
Forks: 9
Open issues: 5
Created: 2025-11-10T02:33:50Z
Pushed: 2026-06-09T12:34:41Z
Default branch: main
Fork: no
Archived: no
README:
ACCV-Lab Overview
Accelerated Computer Vision Lab (ACCV-Lab) is a systematic collection of packages with the common goal to facilitate end-to-end efficient training in the ADAS domain, each package offering tools & best practices for a specific aspect/task in this domain.
Resources
The following resources provide an overview of the project and its capabilities:
| Type | Title | Date | Link | |------|-------|------|------| | 📝 Blog | Accelerate Assisted Driving Training with NVIDIA ACCV-Lab Open-Source Toolkit 【CN】 | 2025-12-24 | NVIDIA Tech Blog | | 🎬 Video | ADAS & Robotics - Overview of ACCV-Lab for Data Loading and Model Training Acceleration 【EN】 | 2025-11-19 | Bilibili | | 🎬 Video | Video Training for ADAS 【CN】 and DALI-Based Image Preprocessing Pipeline 【EN】 | 2025-06-12 | Bilibili | | 🎬 Video | Batching Helpers: Optimizing Loss Computation 【EN】 | 2025-06-12 | Bilibili |
Contained Packages
This section provides a brief overview of the contained packages & evaluations performed on them. Please also see the CONTAINED PACKAGES section in the documentation for a more detailed description of the packages, their functionality and usage, as well as the API reference for each package and examples demonstrating the usage of the packages. Evaluation results are also provided for some of the packages (On-Demand Video Decoder, Batching Helpers, Multi-Tensor Copier, DALI Pipeline Framework).
> ℹ️ Note: We are planning to add demos for packages contained in ACCV-Lab in the future. Apart from > acting as tutorials show-casing real-world examples, they will include the implementation of the experiments > which were used to obtain the evaluation results as shown in the documentation of the contained packages.
The contained packages are:
- On-Demand Video Decoder: Designed for efficiently obtaining video frames from video files. Focused on
the ADAS training domain, implementing access patterns typical for training workloads to ensure high throughput and low latency. Enables training directly from videos with performance similar to image-based training.
- Batching Helpers: Facilitates easy-to-implement batching for non‑uniform sample sizes, a common issue in
loss computation in the ADAS domain.
- Multi-Tensor Copier: Efficient copying of tensors in nested structures (lists, tuples, dicts) from
CPU to GPU. Automatically finds all tensors in the structure, asynchronously applies pinned memory staging, packs small tensors into a single transfer, and performs other optimizations to significantly reduce the overhead of copying many small, variable-size tensors e.g. typical in ADAS training meta-data.
- DALI Pipeline Framework: Framework on top of
NVIDIA DALI that simplifies creation of pipelines for typical ADAS use‑cases and enables integration into existing training implementations with minimal changes.
- Draw Heatmap: Utility for drawing Gaussian heatmaps (e.g. for object detection training) on the GPU.
Optionally, this package can process data in the batched format defined in the Batching Helpers package.
- Optim Test Tools: Utilities for testing and profiling the optimizations. This functionality can be used
during development and evaluation of optimizations.
For more details on the packages (including performance evaluation results), please see the documentation for each package in the CONTAINED PACKAGES section of the documentation.
> ⚠️ Important: If you are reading this in the README.md file (and not in the HTML documentation), > please note that there is a full documentation available, containing this page, the guides, and additional > content (e.g. API reference, examples with detailed explanations, ...). You can view the documentation > online at NVIDIA.github.io/ACCV-Lab, or build a local copy as outlined > in the Quick Start section below.
Quick Start
A docker file setting up the environment to install and use the ACCV-Lab package is available in the docker/ directory. It allows building an image and using it as root (build without any parameters), but also allows to configure a specific user (see the Dockerfile for the parameters).
The image can be built as follows (run from inside the docker/ directory):
# Build container to be used as root docker build -t image_name:tag . # Build container for the current user docker build \ --build-arg USER_ID=$(id -u) \ --build-arg USER_NAME=$(id -un) \ --build-arg GROUP_ID=$(id -g) \ --build-arg GROUP_NAME=$(id -gn) \ -t image_name:tag .
> ⚠️ Important: If you want to run the On-Demand Video Decoder package inside the docker container, you > need to install and use the Nvidia container runtime. > Please see the [Docker Guide](docs/guides/DOCKER_GUIDE.md) for more details.
Before installing the packages, you need to make sure that git submodules are initialized. This can e.g. be done by running the following command in your cloned version of the repository:
git submodule update --init --recursive
There are scripts available for the common tasks such as installing the contained packages or building the documentation. The basic commands are:
# Install all namespace packages ./scripts/install_local.sh # Install in development mode (see "Important" note below) ./scripts/install_local.sh -e # Build documentation. This needs to be done after installing the packages, as the generation of the API # documentation relies on the installed packages. ./scripts/build_docs.sh
> ⚠️ Important: Note that for some of the contained namespace packages, an editable build (i.e. > development mode) may not be possible.…
Excerpt shown — open the source for the full document.