File size: 3,255 Bytes
81fc931 afd88f9 81fc931 afd88f9 81fc931 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | ---
license: apache-2.0
library_name: onnx
tags:
- object-detection
- license-plate-detection
- yolox
- camstack
---
# YOLOX-tiny licence-plate detector — CamStack build
Single-class (`plate`) detector, re-packaged for the CamStack inference pool.
The `plate-detection` step's only model, catalog id `yolox-tiny-plate`.
| Format | File | Precision |
| --- | --- | --- |
| ONNX | `onnx/camstack-yolox-tiny-plate.onnx` | fp32 |
| OpenVINO IR | `openvino/camstack-yolox-tiny-plate.{xml,bin}` | fp16 weights |
| CoreML | `coreml/camstack-yolox-tiny-plate.mlpackage` | fp16 |
| TFLite (Coral Edge TPU) | `tflite/camstack-yolox-tiny-plate_edgetpu.tflite` | int8 |
| TFLite (CPU, the Edge TPU file's source) | `tflite/camstack-yolox-tiny-plate_int8.tflite` | int8 |
## Source
- Model: `plate_yolox_tiny_640.onnx` from
[faisalthaheem/open-lpr-models](https://huggingface.co/faisalthaheem/open-lpr-models), tag `detector-2026.10.1`
(commit `aed0df35ec2891c5a90437041ebeadb592cc516b`), sha256 `e5350bb2152eb44fa129b2438d1e39bbbf3c27accfe51cd893ce6e17d028d0b9`.
- Application: [open-lpr](https://github.com/faisalthaheem/open-lpr) (Apache-2.0).
- Architecture: [YOLOX](https://github.com/Megvii-BaseDetection/YOLOX)
(Megvii, Apache-2.0); pretrained from COCO `yolox_tiny.pth`, then fine-tuned
by the open-lpr project. The weights' Apache-2.0 status rests on the open-lpr
repository licence and its NOTICE, which state that YOLOX code and its
same-repository release weights are Apache-2.0 and that no Ultralytics
weights were used.
## Modifications
The input and output contract is adapted in the graph; the upstream weights are
untouched. The input `images` takes **RGB float in [0,1]** (NCHW,
1x3x640x640); `Mul(255)` then `Gather([2,1,0], axis=1)` give the upstream
graph its BGR 0..255 tensor. The upstream output `[1, 8400, 6]`
(cx, cy, w, h, obj, cls) is reshaped to `output0 [1, 5, 8400]`
(cx, cy, w, h, obj*cls). The OpenVINO and CoreML files are converted from that
edited ONNX. Built by `scripts/build-yolox-plate-model.py` in the CamStack
repository; see `SOURCE.md`.
The TFLite files are built by `scripts/build-yolox-plate-edgetpu.py` from that
edited ONNX: YOLOX's Focus stem (four strided slices and a concat) is rewritten
as the mathematically equivalent 6x6 stride-2 convolution, the input prefix is
folded into it, and the graph ends at the raw head — per stride `s`,
`reg_s` (dx, dy, log w, log h) and `score_s` (obj*cls), which the CamStack
`yolo` postprocessor decodes. It is quantised to full integer (int8,
per-channel weights; input uint8 with scale 1/255) on CamStack vehicle crops,
and the Edge TPU file is that graph compiled with `edgetpu_compiler` 14.1.
## Training data
**Unknown terms.** Per the upstream NOTICE and manifest: an annotated
licence-plate corpus (Simanno) plus community-contributed photographs,
pseudo-labelled by a teacher model. The training imagery is not published; the
upstream NOTICE states the community photographs contain real licence plates,
faces and vehicles and were "uploaded without consent obtained".
## Licence
Apache-2.0. The upstream `LICENSE` and `NOTICE` are reproduced verbatim in this
folder; the NOTICE must accompany any redistribution (Apache-2.0 §4(d)).
|