https://www.ultralytics.com/

# Instrukcja instalacji YOLO dla projektu transformacji obrazów

## Wymagania

Aby używać funkcji detekcji i segmentacji obiektów YOLO, musisz zainstalować bibliotekę `ultralytics`.

## Instalacja

### Krok 1: Zainstaluj bibliotekę ultralytics

```bash
pip install ultralytics
```

### Krok 2: Zainstaluj dodatkowe zależności (opcjonalnie)

Jeśli chcesz używać GPU (NVIDIA CUDA):

```bash
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
```

Dla CPU (wystarczy podstawowa instalacja):

```bash
pip install torch torchvision torchaudio
```

## Dostępne modele YOLO w programie

### 1. YOLO_DETECT (Opcja 15)
- **Model**: YOLOv8n (nano - najszybszy)
- **Zastosowanie**: Szybka detekcja obiektów
- **Czas**: ~50-100ms na obraz
- **Dokładność**: Dobra
- **Klasy**: 80 klas obiektów (COCO dataset)

### 2. YOLO_DETECT_MEDIUM (Opcja 16)
- **Model**: YOLOv8s (small - średni)
- **Zastosowanie**: Balans między szybkością a dokładnością
- **Czas**: ~100-200ms na obraz
- **Dokładność**: Bardzo dobra

### 3. YOLO_DETECT_LARGE (Opcja 17)
- **Model**: YOLOv8m (medium - duży)
- **Zastosowanie**: Wysoka dokładność detekcji
- **Czas**: ~200-400ms na obraz
- **Dokładność**: Doskonała

### 4. YOLO_SEGMENT (Opcja 18)
- **Model**: YOLOv8n-seg (segmentacja)
- **Zastosowanie**: Segmentacja obiektów (dokładne kontury)
- **Czas**: ~100-200ms na obraz
- **Wizualizacja**: Kolorowe maski na obiektach

## Wykrywane klasy obiektów (COCO dataset)

YOLO wykrywa 80 klas obiektów, w tym:

**Osoby i zwierzęta:**
- person, cat, dog, horse, sheep, cow, elephant, bear, zebra, giraffe

**Pojazdy:**
- bicycle, car, motorcycle, airplane, bus, train, truck, boat

**Przedmioty codziennego użytku:**
- bottle, wine glass, cup, fork, knife, spoon, bowl
- chair, couch, bed, dining table, toilet
- tv, laptop, mouse, remote, keyboard, cell phone

**Sport i rekreacja:**
- frisbee, skis, snowboard, sports ball, kite, baseball bat
- skateboard, surfboard, tennis racket

**Jedzenie:**
- banana, apple, sandwich, orange, broccoli, carrot, hot dog, pizza, donut, cake

I wiele innych...

## Jak działa wizualizacja

### Detekcja obiektów (YOLO_DETECT*)
- Prostokąty wokół wykrytych obiektów
- Różne kolory dla różnych klas
- Etykiety z nazwą klasy i pewnością detekcji (np. "person: 0.95")
- Wyświetlenie listy wykrytych obiektów w konsoli

### Segmentacja obiektów (YOLO_SEGMENT)
- Kolorowe maski nakładane na obiekty (40% przezroczystości)
- Kontury obiektów
- Etykiety z nazwą klasy i pewnością
- Precyzyjne wyznaczenie granic obiektów

## Pierwsze uruchomienie

Przy pierwszym uruchomieniu każdej opcji YOLO:
1. Model zostanie automatycznie pobrany z internetu (~6-50 MB w zależności od modelu)
2. Model zostanie zapisany lokalnie w katalogu użytkownika
3. Kolejne uruchomienia będą używały zapisanego modelu (szybsze)

## Przykład użycia

1. Uruchom program: `python test_transform.py`
2. Wybierz źródło obrazu (plik, URL lub domyślny)
3. Wybierz opcję 15-18 (YOLO)
4. Poczekaj na przetworzenie (pierwsze uruchomienie może potrwać dłużej)
5. Zobacz wyniki w oknie porównawczym i w konsoli

## Rozwiązywanie problemów

### Błąd: "YOLO nie jest dostępne"
```bash
pip install ultralytics
```

### Błąd: "No module named 'torch'"
```bash
pip install torch torchvision
```

### Wolne działanie
- Użyj YOLO_DETECT (opcja 15) zamiast YOLO_DETECT_LARGE
- Zmniejsz rozmiar obrazu przed przetwarzaniem
- Rozważ użycie GPU (wymaga NVIDIA CUDA)

### Brak wykrytych obiektów
- Upewnij się, że obraz zawiera obiekty z listy COCO
- Spróbuj użyć modelu YOLO_DETECT_LARGE (opcja 17) dla lepszej dokładności
- Sprawdź jakość i rozdzielczość obrazu

## Więcej informacji

- Dokumentacja Ultralytics: https://docs.ultralytics.com/
- YOLOv8 GitHub: https://github.com/ultralytics/ultralytics
- COCO Dataset: https://cocodataset.org/
