Independent research on YOLOX (ABB) deployment using ONNX Runtime and OpenVINO for Data Matrix Code (DMC) tracking.
1
6 commits
updated Aug 22, 2026
A standalone execution pipeline optimized for detecting and locating Data Matrix Codes (DMC) and peened needle marks. This model is trained using the YOLOX architecture in standard ABB (Axis-Aligned Bounding Box) mode and compiled into a high-performance binary executable.
This repository represents a pure Proof of Concept (PoC) focused on the structural and geometric layout detection of DMC frames.
infer.gif)Demonstration of YOLOX-ABB tracking stability during manual paper adjustments:

Examples of ideal and defected patterns used during training:
Reference Pattern (good_DMC.png) | Multi-Defect Pattern (bad_DMC.png) |
|---|---|
![]() | ![]() |
The execution pipeline is optimized for standard Central Processing Units (CPU). Performance diagnostics are captured directly from the execution console:
Hardware Metadata (PC.png) | Inference Timings (speed.png) |
|---|---|
![]() | ![]() |
CUDA probe: cuInit failed).roi_track): ~10 ms per frame (guaranteeing stable 100 FPS performance on a standard CPU via ONNX Runtime and OpenVINO).settings.json)The runtime execution pipeline is fully configured via a local settings.json file. This architecture allows fine-tuning thread allocation, hardware providers, and detection thresholds without recompiling the application binary.
{
"camera_index": 0,
"cat_model": "model\\test_l.onnx",
"conf": 0.5,
"dev_ui_key": "1",
"ort_provider": "openvino",
"ort_intra_threads": 6,
"ort_inter_threads": 1,
"openvino_device_type": "multi",
"openvino_performance_hint": "latency",
"openvino_num_streams": 1,
"cuda_cudnn_algo_search": "heuristic",
"cuda_do_copy_in_default_stream": true,
"iou": 0.2,
"model": "model\\test_x.onnx",
"part_verdict_collect_ms": 3000,
"memory_diag_enabled": false,
"main_tensor_size": 640,
"refine_tensor_size": 320
}
"ort_provider": "openvino" — Routes execution through Intel's OpenVINO backend for accelerated CPU inference."openvino_device_type": "multi" — Utilizes both standard CPU cores and integrated graphics (iGPU) simultaneously."openvino_performance_hint": "latency" — Prioritizes minimum processing time per frame, reducing latency down to ~6ms."ort_intra_threads": 6 — Allocates internal computing threads across physical CPU cores (optimized for 6-core processors like the i5-11400)."model": "model\\test_x.onnx" / "cat_model": "model\\test_l.onnx" — Target paths for the YOLOX-ABB model graph and classification layouts."main_tensor_size": 640 / "refine_tensor_size": 320 — Input matrix scales for primary target interception and structural refinement."memory_diag_enabled": false — Enforced memory profiling switch. When set to true, the pipeline dynamically creates a local /logs directory and appends runtime memory consumption data every 15 seconds to trace and prevent potential memory leaks during long-run execution cycles."part_verdict_collect_ms": 3000 — Temporal validation window (3 seconds) used to accumulate sequential predictions before issuing a final output.This project references open-source architectures and runtimes under permissive execution terms (YOLOX — Apache 2.0 by Megvii, ONNX Runtime — MIT by Microsoft Corporation, Intel OpenVINO — Apache 2.0). However, this specific compiled binary package, wrapper architecture, and design config assembly are proprietary and governed strictly by the local LICENSE.md.
The pre-compiled binary executable and lightweight model weights (test_x.onnx — 3 MB, test_l.onnx — 4 MB) are distributed together as a compressed archive under the Releases tab.
To run the software, extract the archive and maintain the following directory layout:
├── your_folder/
├── DMC_Inspector.exe
├── settings.json
└── model/
├── test_x.onnx
└── test_l.onnx
Independent research on YOLOX (ABB) deployment using ONNX Runtime and OpenVINO for Data Matrix Code (DMC) tracking.
1
6 commits
updated Aug 22, 2026
A standalone execution pipeline optimized for detecting and locating Data Matrix Codes (DMC) and peened needle marks. This model is trained using the YOLOX architecture in standard ABB (Axis-Aligned Bounding Box) mode and compiled into a high-performance binary executable.
This repository represents a pure Proof of Concept (PoC) focused on the structural and geometric layout detection of DMC frames.
infer.gif)Demonstration of YOLOX-ABB tracking stability during manual paper adjustments:

Examples of ideal and defected patterns used during training:
Reference Pattern (good_DMC.png) | Multi-Defect Pattern (bad_DMC.png) |
|---|---|
![]() | ![]() |
The execution pipeline is optimized for standard Central Processing Units (CPU). Performance diagnostics are captured directly from the execution console:
Hardware Metadata (PC.png) | Inference Timings (speed.png) |
|---|---|
![]() | ![]() |
CUDA probe: cuInit failed).roi_track): ~10 ms per frame (guaranteeing stable 100 FPS performance on a standard CPU via ONNX Runtime and OpenVINO).settings.json)The runtime execution pipeline is fully configured via a local settings.json file. This architecture allows fine-tuning thread allocation, hardware providers, and detection thresholds without recompiling the application binary.
{
"camera_index": 0,
"cat_model": "model\\test_l.onnx",
"conf": 0.5,
"dev_ui_key": "1",
"ort_provider": "openvino",
"ort_intra_threads": 6,
"ort_inter_threads": 1,
"openvino_device_type": "multi",
"openvino_performance_hint": "latency",
"openvino_num_streams": 1,
"cuda_cudnn_algo_search": "heuristic",
"cuda_do_copy_in_default_stream": true,
"iou": 0.2,
"model": "model\\test_x.onnx",
"part_verdict_collect_ms": 3000,
"memory_diag_enabled": false,
"main_tensor_size": 640,
"refine_tensor_size": 320
}
"ort_provider": "openvino" — Routes execution through Intel's OpenVINO backend for accelerated CPU inference."openvino_device_type": "multi" — Utilizes both standard CPU cores and integrated graphics (iGPU) simultaneously."openvino_performance_hint": "latency" — Prioritizes minimum processing time per frame, reducing latency down to ~6ms."ort_intra_threads": 6 — Allocates internal computing threads across physical CPU cores (optimized for 6-core processors like the i5-11400)."model": "model\\test_x.onnx" / "cat_model": "model\\test_l.onnx" — Target paths for the YOLOX-ABB model graph and classification layouts."main_tensor_size": 640 / "refine_tensor_size": 320 — Input matrix scales for primary target interception and structural refinement."memory_diag_enabled": false — Enforced memory profiling switch. When set to true, the pipeline dynamically creates a local /logs directory and appends runtime memory consumption data every 15 seconds to trace and prevent potential memory leaks during long-run execution cycles."part_verdict_collect_ms": 3000 — Temporal validation window (3 seconds) used to accumulate sequential predictions before issuing a final output.This project references open-source architectures and runtimes under permissive execution terms (YOLOX — Apache 2.0 by Megvii, ONNX Runtime — MIT by Microsoft Corporation, Intel OpenVINO — Apache 2.0). However, this specific compiled binary package, wrapper architecture, and design config assembly are proprietary and governed strictly by the local LICENSE.md.
The pre-compiled binary executable and lightweight model weights (test_x.onnx — 3 MB, test_l.onnx — 4 MB) are distributed together as a compressed archive under the Releases tab.
To run the software, extract the archive and maintain the following directory layout:
├── your_folder/
├── DMC_Inspector.exe
├── settings.json
└── model/
├── test_x.onnx
└── test_l.onnx