poeticoding/yolo_elixir
67.4
Adequate · 18 September 2026
1.3k
lines of production code
Elixir
with Python
1
measurement over time
What this system is
This system is an Elixir library for performing object detection using YOLO models, specifically supporting the Ultralytics family (YOLOv8, YOLO11) and YOLOX. It provides a model-agnostic inference pipeline that handles preprocessing, post-processing, and non-maximum suppression, while leveraging the Ortex backend for hardware-accelerated execution on various platforms. The library also includes utilities for exporting models to ONNX format and mapping detections to semantic class labels.
Features
Added COCO class labels for object detection
A new \coco\_classes.json\ file has been added to the models directory, containing the 80 standard class labels for the COCO dataset (e.g., person, car, dog). This enables the application to map detected object bounding boxes to their corresponding semantic names.
models · high confidence
Added YOLOX support and refactored Ultralytics model implementation
Users can now load and run YOLOX models, which are handled by a new \YOLO.Models.YOLOX\ module that implements specific preprocessing (no normalization) and postprocessing logic, including a custom score calculation for non-maximum suppression. The existing \YOLO.Models.YoloV8\ module has been renamed to \YOLO.Models.Ultralytics\ to reflect support for both YOLOv8 and YOLOv11 models; this refactor also updates the default NMS function signature and simplifies the internal preprocessing pipeline.
lib/yolo/models · high confidence
Behavioural changes
Added module documentation for YOLO
The YOLO module now includes a @moduledoc block that explains its role as the main entry point and library context for YOLO object detection in Elixir, clarifying that it delegates functionality to underlying model and utility modules.
lib · high confidence
Generalized model export script and updated ONNX opset
The Python script for converting models to ONNX format has been renamed from yolov8\_to\_onnx.py to ultralytics\_to\_onnx.py and generalized to accept any model name via the first command-line argument, rather than being hardcoded to YOLOv8 sizes. Additionally, the ONNX export operation now uses opset version 12 instead of version 9, which may affect compatibility with older ONNX runtimes.
python · high confidence
Migration from EXLA to Ortex for ML backend configuration
The application has removed the previous EXLA-based configuration files (benchee.exs, dev.exs, test.exs) and updated the main config to use the Ortex library. Users will now benefit from platform-specific hardware acceleration: DirectML on Windows, CoreML on macOS, and CUDA/TensorRT on Linux. The ML backend is now configured with EXLA as the compiler but hosted on the client side.
config · high confidence
Updated YOLO benchmarks to support Ultralytics models and multiple backends
The benchmark suite has been updated to benchmark the newer Ultralytics YOLO models (e.g., YOLO11) instead of the previous YOLOv8 models. The Elixir benchmarks now use the \EMLX\ compiler and backend by default, and the Python benchmark script (\ultralytics\_yolo.py\) now accepts command-line arguments to specify the model path and device (CPU, CUDA, or MPS), replacing the hardcoded CPU-only configuration.
benchmarks · high confidence
Updated and expanded example notebooks for YOLO object detection
The examples directory has been refreshed to align with the 0.2.0 release. Several older notebooks relying on the \yolo\_fast\_nms\ dependency and \Kino.FS\ for file handling have been removed (\yolo\_fast\_nms\, \yolov8\_single\_image\, \yolov8\_webcam\). They are replaced by new, self-contained Livebook examples (\ultralytics\_yolo\, \webcam\, \yolo\_oiv7\, \yolox\) that demonstrate running YOLOv8, YOLOv11, and YOLOX models on CPU. These new examples use \Pythonx\ to handle Ultralytics model export to ONNX and \Evision\ for image loading, providing updated workflows for single-image inference, real-time webcam detection, and Open Images V7 classification.
examples · high confidence
YOLOX support, model-agnostic post-processing, and landscape scaling fix
The library now supports YOLOX models alongside the existing Ultralytics YOLO family via a new \YOLO.Models.YOLOX\ implementation and a generic \YOLO.Model\ behaviour that allows model-specific initialization data (like grids and strides). Post-processing in \YOLO.NMS\ has been rewritten to be model-agnostic, handling various output tensor shapes and optional transposition rather than assuming a fixed YOLOv8 format. Additionally, a bug in \YOLO.FrameScalers\ that incorrectly calculated dimensions for landscape images has been fixed, and documentation has been added for the scaler implementations and the new \init/1\ callback.
lib/yolo · high confidence
Test coverage
Expanded test coverage for YOLOX, frame scaling, and NMS
Added integration tests for YOLOX models (nano and s variants) to verify detection accuracy on sample images, and unit tests for the YOLOX model implementation to validate grid and stride calculations for different input sizes. Updated frame scaler tests to cover landscape, portrait, square, and extreme aspect ratio images, ensuring correct scaling and padding behavior. Added tests for the Non-Maximum Suppression (NMS) module to verify handling of batch dimensions, transposition, and dynamic model output shapes. Renamed YOLOv8 tests to Ultralytics to reflect the model implementation name change.
test · high confidence
Dependencies
Update project dependencies and documentation structure
This release bumps the project version to 0.2.0 and updates several key dependencies: the core \ortex\ library is upgraded from 0.1.9 to 0.1.10, \exla\ is updated to version 0.9, and \yolo\_fast\_nms\ is updated to 0.2. Development tooling now includes \dialyxir\ (1.4) for static analysis, while \benchee\ is restricted to the dev environment. The Python dependencies for \ultralytics\, \onnx\, and \onnxruntime\ are also updated to their latest versions (8.3.155, 1.18.0, and 1.22.0 respectively). Additionally, the documentation structure has been expanded to include new guides and examples, and the project files now explicitly include the LICENSE file.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Baseline
- First survey — no prior run to compare against. CAI 67.
Lenses
- Code Health 100
- Architecture 69
- Maturity 59
- Readiness 70
- Security 89
Changes since last survey
- 18 commits — 15 feature/other, 3 fixes
By area
- (root) — 9 commits
- lib/yolo — 7 commits
- (repo) — 1 commit
- guides/images — 1 commit
Notable commits
- fix: added dialyxir and fixed dialyzer errors (#18)
- fix: fixed scaler issue with landscape images, Added additional tests. (#23)
- fix: yolox: removed fixed number of classes. (#24)
- change: Merge pull request #1 from vladdoster/patch-1
- change: Updated README for v0.1.2 (#9)
- change: YOLOX naming refactoring and tests (#13)
- change: YOLOX support (#10)
- change: added guides/
- change: bumped version (#8)
- change: doc main: readme
- change: docs: correct README typos
- change: docs: updated docs and examples for 0.2.0 release (#17)
- change: feat: post-processing faster and model-agnostic (#15)
- change: optional exla 0.9.2
- change: refactoring: YOLOX onnx models under models/ directory (#16)
- change: updated README.md
- change: v0.1.1
- change: v0.1.2 (#7)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
poeticoding/yolo_elixir was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 18 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit f2072d3909efb913aa0a7c0bde0392c443ee1849 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-5d04157a340d.