olesha-ai/yolox-dmc-inference

Independent research on YOLOX (ABB) deployment using ONNX Runtime and OpenVINO for Data Matrix Code (DMC) tracking.

1

6 commits

updated Aug 22, 2026

See the code

See what people are saying

SourceMessageScoreDate

Synthetic DPM / needle-peen pattern generator for YOLO training (Windows, Nim) (r/computervision)

I built a small Windows GUI tool that generates synthetic Direct Part Marking–style patterns (needle / peen dots on steel) for detector training. It is not a real ECC200 encoder — no serial numbers, just geometric L-frame + fill dots, Good/Bad classes, and mechanical-style defects (squash, tilt,…

1

Oct 1, 2026

README

yolox-dmc-inference

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.


License & Commercial Restrictions

  • Project License: Distributed strictly under the proprietary Non-Commercial Research and Educational License (see the local LICENSE.md file).
  • Strict Non-Commercial Use: Any execution of this software binary, configurations, or trained model weights for commercial purposes, industrial production lines, factory floors, or corporate automation frameworks is strictly PROHIBITED.
  • Independent Research: This is a personal, independent research project conducted entirely in a domestic environment using privately owned consumer hardware. It is completely independent of, and has no relation to, any commercial entities, brands, or corporate employers.

Training Methodology & Data (Synthetic Only)

This repository represents a pure Proof of Concept (PoC) focused on the structural and geometric layout detection of DMC frames.

  • Synthetic Dataset: The underlying network was trained exclusively on artificial images generated by the standalone DPM-Pattern-Image-Generator utility.
  • No Factory Testing: Due to technical constraints, this model has NOT been tested or validated on real-world industrial marked hardware or live manufacturing lines. There is no training data derived from proprietary physical parts.
  • Domestic Verification: Functional verification was performed in a domestic environment using a standard desktop webcam and printed paper sheets displaying the artificially generated synthetic patterns.

Visual Demonstration

Domestic Inference Verification (infer.gif)

Demonstration of YOLOX-ABB tracking stability during manual paper adjustments:

Inference Demo

Synthetic Dataset Samples

Examples of ideal and defected patterns used during training:

Reference Pattern (good_DMC.png)Multi-Defect Pattern (bad_DMC.png)
Good DMCBad DMC

Hardware Specifications & Performance Logs

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)
Hardware MetadataInference Timings
  • Execution Hardware: 11th Gen Intel Core i5-11400 @ 2.60GHz (No GPU required, CUDA probe: cuInit failed).
  • Neural Network Inference: ~6.1 – 6.7 ms per individual frame.
  • Total Tracking Loop (roi_track): ~10 ms per frame (guaranteeing stable 100 FPS performance on a standard CPU via ONNX Runtime and OpenVINO).

Configuration Layout (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
}

Parameter Breakdown:

  • Inference Engine Routing:
    • "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.
  • Resource Allocation:
    • "ort_intra_threads": 6 — Allocates internal computing threads across physical CPU cores (optimized for 6-core processors like the i5-11400).
  • Neural Network Topology:
    • "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 Diagnostics:
    • "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.
  • Temporal Validation:
    • "part_verdict_collect_ms": 3000 — Temporal validation window (3 seconds) used to accumulate sequential predictions before issuing a final output.

Compliance Summary

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.


Distribution & Execution Directory

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
computer-vision
cpu-inference
data-matrix
independent-research
object-detection
onnxruntime
openvino
yolox

olesha-ai/yolox-dmc-inference

Independent research on YOLOX (ABB) deployment using ONNX Runtime and OpenVINO for Data Matrix Code (DMC) tracking.

1

6 commits

updated Aug 22, 2026

See the code

See what people are saying

SourceMessageScoreDate

Synthetic DPM / needle-peen pattern generator for YOLO training (Windows, Nim) (r/computervision)

I built a small Windows GUI tool that generates synthetic Direct Part Marking–style patterns (needle / peen dots on steel) for detector training. It is not a real ECC200 encoder — no serial numbers, just geometric L-frame + fill dots, Good/Bad classes, and mechanical-style defects (squash, tilt,…

1

Oct 1, 2026

README

yolox-dmc-inference

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.


License & Commercial Restrictions

  • Project License: Distributed strictly under the proprietary Non-Commercial Research and Educational License (see the local LICENSE.md file).
  • Strict Non-Commercial Use: Any execution of this software binary, configurations, or trained model weights for commercial purposes, industrial production lines, factory floors, or corporate automation frameworks is strictly PROHIBITED.
  • Independent Research: This is a personal, independent research project conducted entirely in a domestic environment using privately owned consumer hardware. It is completely independent of, and has no relation to, any commercial entities, brands, or corporate employers.

Training Methodology & Data (Synthetic Only)

This repository represents a pure Proof of Concept (PoC) focused on the structural and geometric layout detection of DMC frames.

  • Synthetic Dataset: The underlying network was trained exclusively on artificial images generated by the standalone DPM-Pattern-Image-Generator utility.
  • No Factory Testing: Due to technical constraints, this model has NOT been tested or validated on real-world industrial marked hardware or live manufacturing lines. There is no training data derived from proprietary physical parts.
  • Domestic Verification: Functional verification was performed in a domestic environment using a standard desktop webcam and printed paper sheets displaying the artificially generated synthetic patterns.

Visual Demonstration

Domestic Inference Verification (infer.gif)

Demonstration of YOLOX-ABB tracking stability during manual paper adjustments:

Inference Demo

Synthetic Dataset Samples

Examples of ideal and defected patterns used during training:

Reference Pattern (good_DMC.png)Multi-Defect Pattern (bad_DMC.png)
Good DMCBad DMC

Hardware Specifications & Performance Logs

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)
Hardware MetadataInference Timings
  • Execution Hardware: 11th Gen Intel Core i5-11400 @ 2.60GHz (No GPU required, CUDA probe: cuInit failed).
  • Neural Network Inference: ~6.1 – 6.7 ms per individual frame.
  • Total Tracking Loop (roi_track): ~10 ms per frame (guaranteeing stable 100 FPS performance on a standard CPU via ONNX Runtime and OpenVINO).

Configuration Layout (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
}

Parameter Breakdown:

  • Inference Engine Routing:
    • "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.
  • Resource Allocation:
    • "ort_intra_threads": 6 — Allocates internal computing threads across physical CPU cores (optimized for 6-core processors like the i5-11400).
  • Neural Network Topology:
    • "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 Diagnostics:
    • "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.
  • Temporal Validation:
    • "part_verdict_collect_ms": 3000 — Temporal validation window (3 seconds) used to accumulate sequential predictions before issuing a final output.

Compliance Summary

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.


Distribution & Execution Directory

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
computer-vision
cpu-inference
data-matrix
independent-research
object-detection
onnxruntime
openvino
yolox