pipeline in linea single thread
This commit is contained in:
94
aggiornamento-2026-05-16-20-12.md
Normal file
94
aggiornamento-2026-05-16-20-12.md
Normal file
@@ -0,0 +1,94 @@
|
||||
# Aggiornamento 2026-05-16 20:12
|
||||
|
||||
## Primo test YOLO digits su crop etichetta
|
||||
|
||||
E' stato scaricato il progetto:
|
||||
|
||||
```text
|
||||
C:\devel\yolo-ocr\external\yolov8-digits-detection
|
||||
```
|
||||
|
||||
Sono state trovate 28 immagini di test in:
|
||||
|
||||
```text
|
||||
C:\devel\yolo-ocr\immagini_test
|
||||
```
|
||||
|
||||
Nota: la cartella indicata verbalmente come `C:\yolo-ocr\immagini_test` non esisteva; le immagini erano nella cartella corretta `C:\devel\yolo-ocr\immagini_test`.
|
||||
|
||||
## Runner creato
|
||||
|
||||
E' stato creato:
|
||||
|
||||
```text
|
||||
C:\devel\yolo-ocr\tools\batch_yolo_digits.py
|
||||
```
|
||||
|
||||
Il runner:
|
||||
|
||||
- carica i modelli ONNX del progetto;
|
||||
- non installa PyTorch;
|
||||
- evita `pytorch_lightning`, usato dal progetto solo per logging;
|
||||
- esegue inferenza CPU;
|
||||
- ordina le cifre rilevate da sinistra a destra;
|
||||
- salva un CSV con codice, numero cifre, confidenza media e tempo;
|
||||
- salva immagini annotate con bbox delle cifre;
|
||||
- salva una tavola di controllo visivo.
|
||||
|
||||
## Risultato con soglia 0.25
|
||||
|
||||
Output:
|
||||
|
||||
```text
|
||||
immagini=28
|
||||
codici_numerici=24
|
||||
load_sec=2.679
|
||||
infer_ms_medio=52.7
|
||||
conf=0.25
|
||||
iou=0.7
|
||||
```
|
||||
|
||||
Il modello e' veloce: circa 53 ms per crop su CPU.
|
||||
|
||||
Qualita':
|
||||
|
||||
- riconosce davvero alcune cifre stampate;
|
||||
- quindi la pista YOLO digits e' concreta;
|
||||
- tuttavia spesso riconosce solo una parte del codice;
|
||||
- alcuni crop restituiscono 1-3 cifre invece del codice completo;
|
||||
- il modello out-of-the-box non e' ancora sufficiente per lettura affidabile UDC.
|
||||
|
||||
## Risultato con soglia 0.10
|
||||
|
||||
Output:
|
||||
|
||||
```text
|
||||
immagini=28
|
||||
codici_numerici=27
|
||||
load_sec=1.881
|
||||
infer_ms_medio=61.5
|
||||
conf=0.1
|
||||
iou=0.7
|
||||
```
|
||||
|
||||
La soglia piu' bassa fa trovare piu' cifre, ma introduce duplicati e classi sbagliate. Quindi il problema non si risolve solo abbassando la soglia.
|
||||
|
||||
## Conclusione
|
||||
|
||||
Il modello esistente e' utile come base sperimentale, ma non e' pronto da integrare nel WMS come OCR affidabile.
|
||||
|
||||
La cosa positiva e' che:
|
||||
|
||||
- il modello e' leggero;
|
||||
- gira senza PyTorch;
|
||||
- riconosce cifre stampate almeno parzialmente;
|
||||
- la velocita' e' adeguata;
|
||||
- puo' diventare molto interessante con fine-tuning su immagini reali delle nostre etichette.
|
||||
|
||||
Prossimo passo consigliato:
|
||||
|
||||
1. migliorare preprocessing e crop locale, cercando di isolare meglio la riga numerica;
|
||||
2. creare una piccola tabella ground truth per le 28 immagini;
|
||||
3. misurare accuracy reale cifra per cifra e codice intero;
|
||||
4. valutare fine-tuning del modello con immagini nostre annotate.
|
||||
|
||||
Reference in New Issue
Block a user