Files
duck-stain-yolo/README.md

61 lines
2.0 KiB
Markdown

# Duck Stain YOLO
MVP aplikacji okienkowej do podgladu kamery USB, wykrywania etykiety modelem YOLOv8 i zapisu zdjec/filmow z metadanymi JSON.
## Uruchomienie
```bash
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python main.py
```
Na macOS z Tesseractem:
```bash
brew install tesseract
```
Na Ubuntu/WSL:
```bash
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`, `180` albo `270`.
- `camera.properties` - parametry OpenCV ustawiane na kamerze, np. jasnosc, kontrast, ekspozycja. `null` oznacza brak wymuszania wartosci.
- `detection.mode` - `best` rysuje najlepsza etykiete, `all` rysuje 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:
```bash
.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:
```bash
.venv-lin/bin/pip install -r requirements-ocr-paddle.txt
```