SDK Version: 2.3.3
RELEASE_NOTES
# RELEASE_NOTES
v3.1.1 / 2026-04-21
Fixed
- Fix typo error in document(DX-APP User Manual)
Added
- Add License information for third-party models & datasets
v3.1.0 / 2026-04-06
Changed
- Unified 5-layer architecture and design patterns across Python and C++ implementations
- App Entry point ->
yolov5s_sync.cpp:yolov5s_sync.py - Runner Pipeline orchestration (Sync/Async) ->
sync_detection_runner.hpp:sync_runner.py - Factory Per-model component assembly ->
yolov5s_factory.hpp:yolov5s_factory.py - Component Preprocessor / Postprocessor / Visualizer ->
processors/*.hpp:processors/*.py - Interface Abstract contracts ->
i_factory.hpp,i_processor.hpp:i_factory.py,i_processor.py
- App Entry point ->
- Consolidated cross-language(Python : c++) common modules and 1:1 mapping structure
- Modernized
run_demo.shwith a 3-stage interactive menu supporting variable AI tasks --model,--image,--videoarguments are now optional — when omitted, task-appropriate default sample image/video is automatically selectedsetup_sample_models.shmigrated to Python-based downloader — supports--list,--dry-run,--category,--modelsand other granular download optionssetup.shnow integrates model download options — e.g.setup.sh --models YoloV7 YoloV8Sto download specific modelsrun_demo.shfully redesigned — 18 demo models, 3-stage interactive menu (Task→Mode→Input), unified C++/Python support,--task/--mode/--inputCLI arguments for non-interactive usage- Display windows now show original resolution frames with auto-sized window (~1/4 screen area)
Added
- Supported new Depth Estimation task featuring FastDepth for monocular depth estimation
- Supported new Image Restoration task featuring DnCNN, Zero-DCE, and ESPCN models
- Migrated Full DX-Model Zoo encompassing 280 models across 17 taskcategories with 560 C++/Python examples (sync+async)
- Added yolov8, v9, v10, v11, v12 PPU models and C++/Python examples
- Implemented https://sdk.deepx.ai manifest-based DX-ModelZoo auto-download system (
scripts/download_models.py) - Auto-download for models and videos — automatically invokes
setup_sample_models.shwhen model file is missing, videos viasetup_sample_videos.sh - Interactive mode for
scripts/run_examples.sh— 6-stage menu (Language→Category→Filter→ExecMode→InputType→Options) when run without arguments, with case-insensitive keyword filtering dx_tool.sh rununified withrun_examples.shinteractive mode- Real-time performance table output during example execution
--show-logoption for Python examples — controls per-frame detailed log output
v3.0.4 / 2026-03-27
Changed
Test Infrastructure Restructuring
tests/common/: extracted shared test constants (constants.py) and utilities (utils.py) from individual test files into a reusable module- Unified Visualization Tests: consolidated per-task visualization test scripts into
tests/cpp_example/test_visualization.pyandtests/python_example/test_visualization.py— auto-discover all sync/async executables and scripts - Feature Test Suite: added dedicated test modules for
--save/--save-dir(test_save_mode.py),--dump-tensors(test_dump_tensors.py),DXAPP_VERIFY(test_verify.py),--loop(test_multi_loop.py),SIGINT/SIGTERM(test_signal_handling.py) - Deleted 4 redundant root-level test scripts (
run_e2e_test.sh,run_visualization_test.sh,run_inference_test.sh,run_unit_test.sh) — all functionality covered byrun_tc.sh
Documentation Comprehensive Update
- README.md: added CLI Reference (full argument tables for C++/Python), Advanced Features section (signal handling, run directory,
DXAPP_VERIFY, tensor dump, model config, version compatibility, headless mode), environment variables table, updated module counts and test tree - C++ Usage Guide (
03): added CLI Arguments table (12 flags), Advanced Features section, updated utility count (6→8) - Python Usage Guide (
05): added CLI Arguments table (13 flags), Advanced Features section, updated module counts (processors 34→35 description, visualizers 9→10 description) - Example Source Structure (
11): updated C++ utility count (6→8), Python utility count (6→7), added complete test infrastructure section with 9 test categories,tests/common/documentation - C++ Test README: added visualization tests, feature tests (5 types), test infrastructure section, updated coverage summary
- Python Test README: expanded to all 14 task directories, added
test_visualization.py,tests/common/reference
Added
tests/common/constants.py— shared test constants (paths, timeouts, patterns)tests/common/utils.py— shared test utilities (discovery, execution, validation)tests/cpp_example/test_visualization.py— unified C++ visualization result teststests/cpp_example/test_save_mode.py—--save/--save-dirflag teststests/cpp_example/test_dump_tensors.py—--dump-tensorsoutput teststests/cpp_example/test_verify.py—DXAPP_VERIFYenvironment variable teststests/cpp_example/test_multi_loop.py—--looprepeated execution teststests/cpp_example/test_signal_handling.py— SIGINT/SIGTERM graceful shutdown teststests/python_example/test_visualization.py— unified Python visualization result tests
Removed
run_e2e_test.sh— replaced byrun_tc.sh --cpp --e2erun_visualization_test.sh— replaced byrun_tc.sh --cpp --vizrun_inference_test.sh— replaced byrun_tc.sh --pythonrun_unit_test.sh— replaced byrun_tc.sh --unit
v3.0.3 / 2026-03-13
Changed
- Expanded model support across multiple AI task categories
Fixed
Post-Processing Bug Fixes (16 models)
- Segmentation (bisenetv1, bisenetv2, deeplabv3plusmobilenet): Fixed pre-argmaxed NPU output (uint16
[1,H,W]) being misinterpreted as logits — added heuristic detection for integer dtype / shape[0]==1 - NanoDet (nanodet_repvgg, nanodet_repvgga1): Fixed degenerate bounding boxes (y2==y1) caused by clipping to image boundary — added zero-area box filter
- FastDepth (fastdepth_1): Fixed
DepthResultnot handled by verify_serialize.py — added DepthResult serialization handler - YOLOv5Pose PPU (yolov5pose_ppu): Fixed raw logit keypoint confidence (negative values) — applied sigmoid activation
- YOLOX (yoloxs, yoloxtiny, yolox_l_leaky, yolox_s_leaky, yolox_s_wide_leaky): Fixed zero bounding boxes from raw logit coordinates — implemented standalone
YOLOXPostprocessorwith grid decode (cx=(cx_raw+grid_x)*stride) - YOLOv7 Face (yolov7_face, yolov7s_face, yolov7_w6_face, yolov7_w6_tta_face): Fixed confidence > 1.0 from misread column layout — added auto-dispatch by output column count (16-col vs 21-col) with sigmoid on raw class logit
Added
Shared Runtime Layer (common/)
- C++ (
src/cpp_example/common/): Base interfaces (IFactory,IProcessor,IVisualizer,IInputSource), 45 processors, 24 task-specific sync/async runner pairs, 12 visualizers, input source abstraction, config loader, utility - Python (
src/python_example/common/): Base interfaces (IFactory,IProcessor,IVisualizer,IInputSource), 35 processors, genericSyncRunner/AsyncRunner, 10 visualizers, input source abstraction,ModelConfigloader, utility - Both languages share the same 7-module architecture (
base/,config/,processors/,runner/,inputs/,visualizers/,utility/) and factory-based delegation pattern
Model Registry System
config/model_registry.json: centralized registry of 280 models with per-model metadata (task, postprocessor, input dimensions, thresholds)scripts/add_model.sh: registry-driven auto-generation of factory files, config.json, and entry-point scripts (4 variants per model)
Numerical Verification Framework
scripts/verify_inference_output.py: 14 task-specific validators for bounding boxes, confidence ranges, class IDs, keypoints, segmentation masks, depth maps, embeddingsscripts/inference_verify_rules.json: configurable thresholds per task typecommon/runner/verify_serialize.py: result-to-JSON serialization for automated comparisonscripts/validate_models.sh --numerical: full-pipeline NPU verification for all supported models
New Model Families
- DAMOYOLO (5 variants), NanoDet (2), CenterNet, SSD MobileNet V1/V2, YOLOv3, YOLOv6
- FastDepth, MiDaS (depth estimation)
- CLIP, ArcFace (embedding)
- DnCNN, Zero-DCE (image denoising/enhancement)
- ESPCN (super resolution)
- Hand Landmark (2 variants)
- BiSeNet V1/V2, SegFormer (semantic segmentation)
- YOLOv7Face (4 variants), RetinaFace (face detection)
- YOLOv26 OBB, Seg, Pose, Cls variants
CI/CD Integration
python-test.yml: automated unit/CLI/integration tests on PR (Python, no NPU required)npu-model-verify.yml: NPU numerical verification pipeline (self-hosted runner with NPU hardware)
v3.0.2 / 2026-02-10
Changed
- Copy of dxrt and vkpkg DLLs into the dx-app/bin directory when building with MSVC.
Fixed
- Remove experimental filesystem includes and update float literals in example cpp files for build error on windows
- Refactor apply_argmax to reduce nesting and fix gcovr warnings
Added
- Added vcpkg installation script for windows build.
v3.0.1 / 2026-02-05
Fixed
- Hardcoded attribute size in YOLO post-processing to dynamically adjust based on model output shape
Added
- Add yolov26 cls, yolo26 pose, yolo26 seg, yolo26 obb examples
v3.0.0 / 2026-01-02
Changed
Major Project Structure Refactoring
- Complete overhaul from existing demo applications to example system: To improve user understanding, separated the previously integrated example code by Task (classification, object detection, segmentation, face recognition, pose estimation) / Model (EfficientNet, YOLO, YOLO_PPU, SCRFD, ...) / Inference method (sync, async) / Post-processing (pure python, pybind)
: Complete removal of legacy C++ demo code indemos/directory and provision ofrun_demo.shandrun_demo.batbased on separated examples
: Transition to newsrc/cpp_example/andsrc/python_example/structure
Build System Improvements
- Improved CMake configuration and enhanced shared library support
- Updated C++17 and Visual Studio 2022(v143) configuration for Windows build
- Adjusted DXRT include and link directories for cross-compilation
Complete Reconstruction of C++ / Python Example System
- Support for synchronous and asynchronous execution modes
- Support for various input sources: image, video, camera, RTSP stream
- Real-time processing mode: Performance measurement without GUI using
--no-displayoption - Enhanced performance profiling:
: Latency measurement for each stage: preprocessing, inference, post-processing
: E2E(End-to-End) FPS calculation and performance report generation
: Automatic generation of timestamp-based performance report files
Model Support Expansion
- YOLOv10, YOLOv11, YOLOv12 examples added
- YOLOv8 Segmentation (YOLOv8-seg) support
- DeepLabv3 segmentation model support
- PPU (Post-Processing Unit) module integration:
: YOLOv5, YOLOv7 PPU version support
: SCRFD PPU version support
: Both Python and C++ examples provided
Documentation Improvements
- Newly written example guides and installation guides
- Added detailed usage examples and parameter descriptions for each model
Fixed
Code Quality Improvements
- Added try-catch error handling to all projects
- Improved
std::exceptionhandling and throwstd::invalid_argumentwhen layer requirements are not met - Removed
using namespace stdusage and improved code clarity with explicitstd::usage - Improved parameter handling and frame processing logic
- Enhanced argument validation and error messages
Input Processing Improvements
- Set
cv2.CAP_PROP_BUFFERSIZE(buffer size 1) for camera and RTSP speed improvement - Fixed input_tensor passing to maintain memory reference until asynchronous inference completes
Added
Post-processing Library (dx_postprocess)
- Pybind11-based Python binding:
: Provides Python binding for C++ post-processing functions
: Automatically installs to current Python execution environment
Multi-channel Processing Support
- C++ YOLOv5s multi-channel processing: Multi-channel support using frame provider
- Added multi-input source examples
- Enhanced multi-model image inference using preprocessing threads
Test Infrastructure Construction
- Pytest-based integrated test system:
: Automated testing for all Python examples
: Achieved code coverage of 93.65% or higher
: E2E(End-to-End) test framework
: Includes all model tests for classification, object detection, segmentation, and pose estimation - Added
.coveragercfile for code coverage configuration - Support for display mode and E2E mode testing
New Examples and Features
-
Classification Models:
: EfficientNet example integration
: ImageNet classification examples (synchronous/asynchronous) -
Object Detection Models:
: YOLOv5, YOLOv7, YOLOv8, YOLOv9, YOLOv10(python only), YOLOv11(python only), YOLOv12(python only)
: YOLOX
: SCRFD (face detection)
: YOLOv5-Face
: YOLOv5-Pose (pose estimation) -
Segmentation Models:
: YOLOv8-seg (instance segmentation)
: DeepLabv3 (semantic segmentation) -
Pose Estimation:
: YOLOv5-Pose examples
: Added skeleton drawing functionality
Removed or Replaced
Legacy Demo Removal
- Complete removal of
demos/classification/ - Complete removal of
demos/object_detection/ - Complete removal of
demos/segmentation/ - Complete removal of
demos/pose_estimation/ - Complete removal of
demos/face_recognition/ - Removal of
demos/denoiser/ - Removal of
demos/dncnn_yolo/ - Removal of
demos/object_det_and_seg/ - Removal of
demos/noiseVideoMaker/
Legacy Configuration File Removal
- Complete removal of JSON configuration files in
example/directory - Removal of
example/dx_postprocess/JSON files - Removal of Debian package related files (
debian/) - Removal of Docker build files (
docker/Dockerfile.app.build)
Legacy Code Cleanup
- Removal of
demo_utils/directory - Removal of duplicate or unused code
- Removal of old YOLOv5 post-processing files
- Removal of RISCV64 architecture support
Migration Guide
Notice for Existing Users
v3.0.0 is a major update that includes Breaking Changes compared to v2.x.
- Demo Code: The existing
demos/directory has been completely removed. Please refer to the new examples insrc/cpp_example/andsrc/python_example/. - JSON Configuration Files: JSON files in the existing
example/directory have been removed. Python examples are configured directly through command-line arguments. - YOLO Post-processing Type Names: Some have been changed, but aliases are provided for backward compatibility.
Recommended Upgrade Path
- (1) Refer to Python example documentation
- (2) Check example code in
src/python_example/orsrc/cpp_example/directory - (3) Install Python dependencies through
requirements.txt - (4) Use build scripts (
build.shorbuild.bat)
Known Issues
- When using the PPU model for face detection & pose estimation,
dx-compiler v2.1.0 and v2.2.0does not currently support converting face and pose models to PPU format. This feature will be added in a future release. The PPU models used in the demo were converted using dx-compilerv1.0.0(dx_com v1.60.1).
v2.1.0 / 2025-11-28
Changed
- Enhance build script documentation and usage instructions
- Update cmake configuration in build.bat to use C++17 and v143 for enhance documentation windows build script(visual studio 2022)
- Model package updated from version 2.0.0 to 2.1.0 to support PPU models
- Improved demo script with additional PPU-Demo (1, 4, 6, 8, 11)
- Added CPU-specific PyTorch wheel source (https://download.pytorch.org/whl/cpu) in templates/python/requirements.txt.
Fixed
- Fix Windows MSBuild compilation warnings by replacing implicit type casts with explicit static_cast
- Improve tensor allocation in imagenet classification example
- Update numBoxes calculation based on post-processing type in LayerReorder
- Rename YOLO post-processing types and add aliasing for backward compatibility
- Add VSCode configuration files for usability
- Fixed errors that occurred when using VAAPI with camera input
- Enhanced yolo application to display final FPS even when forcefully terminated during camera input usage
- Enhance user input handling for run_demo selection with re-prompt loops (invalid input re-asks instead of timing out)
Added
- Windows Environment Support
DX-APP now fully supports the Windows operating system! In response to user requests, we've expanded compatibility beyond Linux to include Windows, enabling a broader range of development environments to take advantage of DX-APP.
: OS: Windows 10 / 11
: Deepx M1 Driver Version: v1.7.1 or higher
: Deepx M1 Runtime Lib Version: v3.1.0 or higher
: Python: Version 3.8 or higher (required for Python module support)
: Compiler: Visual Studio Community 2022 (required for building C++ examples) - Add automated build script (build.bat) for automatic build and Visual Studio solution generation
- Three new PPU data types : BBOX (for object detection) / POSE (for pose estimation keypoints) / FACE (for face detection landmarks)
- Enhanced post-processing functions to support PPU inference output format
Known Issues
- DeepLabV3 Semantic Segmentation model accuracy may be slightly degraded in dx-compiler(dx_com) v2.1.0. This will be fixed in the next release. The DeepLabV3 model used in the demo was converted using dx-compiler v2.0.0.
- When using the PPU model for face detection & pose estimation, dx-compiler v2.1.0 does not currently support converting face and pose models to PPU format. This feature will be added in a future release. The PPU models used in the demo were converted using dx-compiler v1.0.0(dx_com v1.60.1).
v2.0.0 / 2025-08-14
Changed
- Moved the YOLO post-processing guide from 07_Python_Examples.md to a new, dedicated document 08_YOLO_Post_Processing_Pybind11.md.
- Refactored yolo_pybind_example.py to use a RunAsync() + Wait() structure instead of callbacks. This ensures the output tensor order is correctly handled.
- Major code refactoring and restructuring of demo applications
- Consolidated common utilities into directory
- Removed deprecated and legacy codes
- Update documentation and resources
- YoloPostProcess now filters and selects the correct tensor by output_name when USE_ORT=ON
- Command-line help messages in various demos have been improved to clearly mark required parameters.
- Replaced YOLOv5s-1 example json to YOLOv5s-6 json configuration file has been added for object detection.
- Documentation has been updated to add Python requirements and modified some images.
- feat: add OS and architecture checks in build script & update CPU specifications in documentation
Fixed
- FPS calculation bug in yolo_multi
- Removed postprocessing code for legacy PPU models
- Fixed postprocessing logic to support new output shapes of YOLO models when USE_ORT=OFF
- fix typo error in framebuffer info file path (yolo_multi app)
- Improve error messages for output tensor size mismatch and missing in Yolo post processing
- Rename output tensors in json config 'yolov5s6_example.json'
Added
- Added to cleanly purge the pip-installed package and local build artifacts (shared library, dist-info/egg-info, and build directory).
- Added version guards in templates/python/yolo_pybind_example.py to ensure compatibility with DX-RT ≥ 3.0.0 and DXNN model version ≥ 7
- Enhanced the JSON configuration to support a target_output_tensor_name key and a name field for each layer parameter.
- Added a feature to filter output tensor using the target_output_tensor_name provided in the JSON configuration
- Added a feature to automatically reorder model layer parameters in the JSON configuration to match the model's actual output tensor sequence.
- Enhanced demo applications
- Added for easy demo execution
- Added SCRFD decoding method for run_detector example
- Added postprocessing support for yolo_pose and yolo_face models (available only when USE_ORT=ON)
- Listed supported YOLO model types for YoloPostProcess in README
- feat: add uninstall script and enhance color utility functions
v1.11.0 / 2025-07-24
Changed
- feat: enhance --clean option in build script for pybind artifacts
- feat: update dxnn models version(1.40.2 to 1.60.1)
- feat: auto run setup script or display a guide message when a file not found error occurs during example execution
Fixed
- feat: Improve error message readability in install, build scripts
: Apply color to error messages
: Reorder message output to display errors before help messages - Update tensor index assignment in Yolo layer reordering
- fix: resolve dx_postprocess Python lib build error and improve error handling
v1.10.0 / 2025-06-17
- Initial create dx-app
- demo : classification
- demo : object detection
- demo : pose estimation
- demo : multi models for object detection and segmentation
- demo : semantic segmentation
- demo : multi channel oject detection
- template : classification
- template : object detection
- template : python example (sync/async/pybind c++)