Skip to content

Czarko-exe/YOLO-Compression-Analysis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📉 YOLOv8 Robustness & Compression Analysis

Projekt Zaliczeniowy: Sygnały i Obrazy Cyfrowe Semestr: 3 (Informatyczne Systemy Automatyki)

Projekt badawczy mający na celu sprawdzenie odporności modelu detekcji obiektów (YOLOv8) na ekstremalną degradację sygnału wizyjnego. Narzędzie automatycznie szuka "punktu krytycznego" – najmniejszego rozmiaru pliku (w bajtach), przy którym obiekt jest nadal poprawnie klasyfikowany przez sztuczną inteligencję.

📊 Case Study: Test "Auta"

Parametr Obraz Oryginalny Obraz Przetworzony Zmiana
Wizualizacja Oryginał Skompresowany -
Rozmiar pliku 2,95 MB 7,56 KB 📉 -99,75%
Pewność YOLO 0.94 (94%) 0.52 (52%) 📉 -0.42
Status ✅ Wykryto ✅ Wykryto Sukces

Wniosek: Usunięcie ponad 99% informacji z pliku (szum, kolor, detale tekstury) wpłynęło na pewność algorytmu w stopniu marginalnym. Potwierdza to tezę, że modele wizyjne są odporne na degradację sygnału wysokoczęstotliwościowego.

🎓 Kontekst Akademicki

Projekt stanowi podsumowanie wiedzy zdobytej podczas laboratoriów z przedmiotu Sygnały i Obrazy Cyfrowe. Program integruje techniki przetwarzania sygnałów poznane w trakcie semestru:

  • Interpolacja Obrazów: Wykorzystanie algorytmów (np. Bicubic) do skalowania obrazu (Downsampling).
  • Przekształcenia Przestrzeni Barw: Analiza wpływu konwersji RGB -> Grayscale na skuteczność detekcji.
  • Kompresja Stratna: Badanie wpływu kwantyzacji JPEG (Quality Factor) na utratę kluczowych cech obrazu.

🤖 AI-Assisted Development

Zgodnie z rekomendacją prowadzącego przedmiot, projekt był realizowany przy wsparciu Large Language Models (LLM). Modele GenAI pełniły rolę "wirtualnego asystenta" (Copilot) i były wykorzystywane do:

  • Refaktoryzacji kodu i poprawy czytelności (Clean Code).
  • Optymalizacji pętli przetwarzania obrazów.
  • Analizy błędów biblioteki ultralytics.

To podejście pozwoliło na szybsze prototypowanie i skupienie się na analizie wyników (Signal Processing), zamiast na walce ze składnią.

⚙️ Metodyka Przetwarzania Sygnału

Zastosowany potok przetwarzania (pipeline) składa się z trzech etapów, dobranych tak, aby maksymalnie zredukować entropię pliku przy zachowaniu cech kluczowych dla sieci konwolucyjnych:

Krok I: Interpolacja (Skalowanie)

Wykorzystano metodę Najbliższego Sąsiada (Nearest-Neighbor).

  • Dlaczego? Choć dla ludzkiego oka daje ona efekt "pikselozy", dla algorytmu jest optymalna – w przeciwieństwie do metod wygładzających (jak Bilinear), Nearest-Neighbor sztucznie wyostrza krawędzie i granice obiektów, co ułatwia detekcję kształtów przez YOLO.

Krok II: Estymacja (Przestrzeń Barw)

Konwersja RGB -> Grayscale.

  • Teoria: Redukcja sygnału z trzech kanałów do jednego. Przy klasyfikacji obiektów (np. samochód, kot) kluczowa jest geometria i kontrast, a nie informacja o chrominancji (kolorze).

Krok III: Aproksymacja (Kompresja Stratna)

Agresywna kwantyzacja JPEG.

  • Teoria: Algorytm traktuje obraz nie jako zbiór punktów, lecz jako superpozycję fal (transformata DCT). Dzieląc obraz na bloki, uśredniamy wartości ("zerujemy" wysokie częstotliwości odpowiadające za detale), zostawiając tylko główne składowe sygnału.

🛠️ Technologie

  • Python 3.x
  • OpenCV (cv2) – Operacje na macierzach, interpolacja, kompresja.
  • Ultralytics YOLO – State-of-the-art Object Detection.
  • NumPy – Obliczenia numeryczne.

About

Badanie odporności modelu YOLOv8 na ekstremalną kompresję stratną i degradację obrazu (Python + OpenCV).

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages