Files
flywms/aggiornamento-2026-05-16-17-19.md
2026-05-19 08:52:44 +02:00

85 lines
2.1 KiB
Markdown

# 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.