85 lines
2.1 KiB
Markdown
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.
|