2.0 KiB
Duck Stain YOLO
MVP aplikacji okienkowej do podgladu kamery USB, wykrywania etykiety modelem YOLOv8 i zapisu zdjec/filmow z metadanymi JSON.
Uruchomienie
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python main.py
Na macOS z Tesseractem:
brew install tesseract
Na Ubuntu/WSL:
sudo apt install tesseract-ocr
Na Linuksie requirements.txt wymusza CPU build PyTorch, zeby nie pobierac wariantu CUDA. Na macOS pip zainstaluje standardowy wariant CPU dla procesora Intel.
Umiesc wytrenowany model jako models/best.pt albo zmien detection.model_path w app_config.json.
Konfiguracja
Glowny plik konfiguracji: app_config.json.
Istotne ustawienia:
camera.width,camera.height,camera.fps- rozdzielczosc i FPS kamery.camera.rotation_degrees- obrot obrazu z kamery:0,90,180albo270.camera.properties- parametry OpenCV ustawiane na kamerze, np. jasnosc, kontrast, ekspozycja.nulloznacza brak wymuszania wartosci.detection.mode-bestrysuje najlepsza etykiete,allrysuje wszystkie wykrycia.detection.frame_stride- YOLO uruchamiany co N klatek podczas aktywnego wykrywania.label_data.models,label_data.colors- slowniki do walidacji tekstu z etykiety.ocr.enabled,ocr.engine- wlaczenie OCR i wybor silnika:none,tesseract,paddle.
Zdjecia trafiaja do captures/photos, filmy do captures/videos. Obok kazdego pliku media zapisywany jest JSON z aktualnym wynikiem detekcji/OCR.
Testowanie OCR poza aplikacja
OCR mozna testowac na gotowych cropach bez uruchamiania kamery i YOLO:
.venv-lin/bin/python -m app.ocr.cli crop --engine none
.venv-lin/bin/python -m app.ocr.cli crop --engine tesseract
.venv-lin/bin/python -m app.ocr.cli crop --engine paddle --json
Backend PaddleOCR jest opcjonalny. Zaleznosci do testow PaddleOCR sa w osobnym pliku:
.venv-lin/bin/pip install -r requirements-ocr-paddle.txt