Upgrading iApp License Plate Recognition
iApp LPR's current generation handles plate OCR well, and it is kept unchanged. Its make/model component, however, predates the recent Thai-market and EV wave — so it cannot recognize many current Thai or Chinese-EV vehicles. The new generation replaces make/model with a ConvNeXt-Small classifier trained on current Thai cars, and adds EV / Hybrid / Petrol inference and phased neighbor-country support — all backward-compatible.
Head-to-head: make/model on identical images
Both engines scored on the same held-out validation split (15% per class, seed 42 — never trained on). Current = iApp LPR (current generation); New = iApp LPR (new ConvNeXt classifier).
| Metric | iApp LPR (current) | iApp LPR (new) |
|---|---|---|
| loading… |
Training progression (NEW)
Iterative improvement as in-domain data deepened (images scraped via a clean-IP server, merged + de-duplicated):
| Model | Backbone | Classes | top-1 | top-5 |
|---|---|---|---|---|
| v1 | ConvNeXt-Tiny | 35 | 95.05% | 97.69% |
| v2 | ConvNeXt-Tiny | 64 | 97.84% | 99.41% |
| v3 | ConvNeXt-Small | 64 | 98.24% | 99.61% |
| v5 | ConvNeXt-Small | 73 | 97.44% | 99.49% |
| v6 (deployed) | ConvNeXt-Small | 73 | 99.18% | 99.79% |
Capabilities added
- Current Thai make/model — 73 well-covered classes incl. Chinese EVs & current pickups (175-model taxonomy).
- EV / Hybrid / Petrol — inferred from make/model via a maintained powertrain table. Honest by design:
models sold with multiple powertrains (e.g. Corolla Cross = Petrol + Hybrid) return
multiple+ a note, because powertrain is not determinable from a single image. - Neighbor countries — Malaysia (Latin OCR, production), Myanmar (Latin, beta), Laos (detection-only);
each tagged with
country_support_level. Lao/Burmese-script OCR is on the roadmap. - Backward compatible — all documented fields preserved; new fields are additive.
Methodology & honest limitations
- Backbone: timm ConvNeXt-Small (ImageNet-22k), 2-phase fine-tune, class-balanced sampling, RandAugment, label smoothing, FP32 on GPU.
- Data: in-domain used-car photos (One2car), merged + de-duplicated; ~10.4k images over 73 classes.
- Coverage limit: only ~73 of the 175-model taxonomy have enough images to train; the newest Chinese EVs are under-covered and supplemented on the roadmap.
- Small-n caveat: per-class validation sets are small (n shown in raw results); treat per-class numbers accordingly.
- Fuel is model-inferred, not image-derived; the most reliable signal is plate→registration lookup.
- Plate OCR is unchanged (iApp LPR current engine), e.g.
4กจ5564 · Bangkok · 94.3% conf.
Generated from whitepaper/results.json (measured) + runs/thaicar_v6/report.txt.