1.9 KiB
1.9 KiB
Aggiornamento 2026-05-17 20:36
Test accuratezza codice intero YOLO OCR
E' stato creato il test:
C:\devel\yolo-ocr\tools\evaluate_code_accuracy.py
Scopo:
- usare il modello fine-tuned;
- rilevare le cifre su ogni crop;
- ordinare i bbox da sinistra a destra;
- ricostruire il codice UDC;
- confrontarlo con la ground truth derivata dalle label YOLO;
- produrre CSV e immagini annotate.
Primo test:
python tools\evaluate_code_accuracy.py --split test --device 0 --conf 0.25 --iou 0.50 --output outputs\code_eval_test
python tools\evaluate_code_accuracy.py --split all --device 0 --conf 0.25 --iou 0.50 --output outputs\code_eval_all
Risultati:
split=test
images=2
code_ok=0
code_accuracy=0.0000
char_accuracy=0.5385
split=all
images=26
code_ok=0
code_accuracy=0.0000
char_accuracy=0.5389
Esempi:
expected=187184 predicted=1871182
expected=182368 predicted=18288
Sono state provate anche soglie diverse:
conf=0.40 iou=0.40 -> code_accuracy=0.0000 char_accuracy=0.5316
conf=0.50 iou=0.40 -> code_accuracy=0.0385 char_accuracy=0.4872
conf=0.60 iou=0.40 -> code_accuracy=0.0000 char_accuracy=0.4487
Conclusione:
- il fine-tuning ha migliorato molto la capacita' di rilevare bbox cifra rispetto al modello generico;
- pero' la lettura del codice intero non e' ancora affidabile;
- gli errori principali sono duplicazioni, cifre mancanti e confusione nelle ultime cifre;
- il prefisso
182/187viene spesso agganciato, ma non basta per il WMS; - non conviene integrare ancora il modello in FlyWMS come OCR operativo.
Prossimi passi consigliati:
- aumentare dataset annotato;
- introdurre post-processing specifico per codice a 6 cifre;
- valutare crop piu' stretto della sola riga numerica;
- usare metriche di codice intero come criterio principale;
- integrare in FlyWMS solo come modalita' sperimentale quando il codice intero migliora.