2.1 KiB
2.1 KiB
Aggiornamento 2026-05-16 17:19
Milestone OCR alternativo
Stato corrente
EasyOCR e' stato giudicato troppo fragile e troppo pesante per la demo attuale:
- confonde cifre critiche, ad esempio
8e2; - puo' consumare molta RAM;
- puo' rallentare o bloccare i test;
- non e' adatto a restituire codici WMS se la confidenza e' bassa.
La regola semantica decisa e':
meglio "udc non determinato" che un codice sbagliato
Decisione
Testare Tesseract come alternativa piu' leggera e piu' controllabile per OCR numerico.
La logica prevista:
- whitelist solo cifre
0123456789; - piu' preprocess OpenCV;
- consenso tra varianti;
- soglia di confidenza;
- fallback
udc non determinatose il risultato e' assente o ambiguo.
Implementazione fatta
In flywms_wms_server.py:
- aggiunto supporto a
ocr_mode = tesseract; - aggiunto uso opzionale di
pytesseract; - aggiunto controllo preventivo del binario
tesseract.exe; - aggiunti preprocess:
- grayscale;
- sharpen;
- Otsu threshold;
- adaptive threshold;
- Otsu invertito;
- aggiunta logica di consenso;
- se Tesseract manca, il server non resta appeso.
Ambiente
Wrapper Python installato:
pytesseract
Binario non trovato:
tesseract.exe
Verifica:
Tesseract fallback: tesseract.exe non trovato nel PATH
OcrServerResult(text='udc non determinato', raw_text='', confidence=0.0, backend='tesseract-missing', fallback_used=True)
Prossimi passi
- Installare Tesseract per Windows.
- Verificare se
tesseract.exeentra nel PATH. - Se non entra nel PATH, avviare il server con:
python flywms_wms_server.py --ocr-mode tesseract --tesseract-cmd "C:\Program Files\Tesseract-OCR\tesseract.exe"
- Testare sui crop etichetta gia' salvati.
- Se resta fragile, valutare una mini rete neurale dedicata ai 10 caratteri numerici.
Nota
Il file flywms_navigation.ini non e' ancora stato aggiornato con la voce wms_tesseract_cmd perche' in questa fase il patch tool non e' riuscito a scriverlo. Il server ha comunque default interni funzionanti.