apocaliss92's picture
Coral (Edge TPU) builds of yunet-2023mar and yolox-tiny-plate (CamStack D710 addendum)
afd88f9 verified
|
Raw History Blame Contribute Delete
3.26 kB
metadata
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, tag detector-2026.10.1 (commit aed0df35ec2891c5a90437041ebeadb592cc516b), sha256 e5350bb2152eb44fa129b2438d1e39bbbf3c27accfe51cd893ce6e17d028d0b9.
  • Application: open-lpr (Apache-2.0).
  • Architecture: 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)).