# 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 `8` e `2`; - 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': ```text 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 determinato` se 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: ```text pytesseract ``` Binario non trovato: ```text tesseract.exe ``` Verifica: ```text 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 1. Installare Tesseract per Windows. 2. Verificare se `tesseract.exe` entra nel PATH. 3. Se non entra nel PATH, avviare il server con: ```powershell python flywms_wms_server.py --ocr-mode tesseract --tesseract-cmd "C:\Program Files\Tesseract-OCR\tesseract.exe" ``` 4. Testare sui crop etichetta gia' salvati. 5. 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.