Wykrywanie ludzi to kluczowe zadanie w wielu dziedzinach, takich jak nadzór wideo, systemy wspomagania kierowcy (ADAS) i interakcja człowiek-robot. Jednym z popularnych podejść jest użycie deskryptorów HOG (Histogram of Oriented Gradients) w połączeniu z klasyfikatorem maszynowego uczenia.
Ten artykuł skupi się na rozwinięciu tego podejścia. Omówimy metodę wykrywania ludzi, która wykorzystuje HOG i radzi sobie z częściowym zasłanianiem (partial occlusion). Częściowe zasłanianie to sytuacja, w której część osoby jest niewidoczna z powodu przeszkód.
Czym jest HOG?
HOG to technika ekstrakcji cech używana w widzeniu komputerowym. Służy do opisu lokalnej struktury obrazu. Wykorzystuje rozkłady (histogramy) kierunków gradientów.
Gradienty obrazu reprezentują zmiany w intensywności pikseli. W HOG obraz dzieli się na małe komórki. Dla każdej komórki oblicza się histogram gradientów. Histogramy te są następnie normalizowane, aby zmniejszyć wpływ zmian oświetlenia. Znormalizowane histogramy są łączone, tworząc deskryptor HOG.
Kroki algorytmu HOG:
1. **Pre-processing:** Obraz jest zwykle skalowany do standardowego rozmiaru.
2. **Obliczanie gradientów:** Oblicza się gradienty (kierunek i magnitudę) dla każdego piksela.
3. **Obliczanie histogramów w komórkach:** Obraz dzieli się na małe komórki (np. 8x8 pikseli). Dla każdej komórki oblicza się histogram gradientów. Histogram reprezentuje rozkład kierunków gradientów w komórce.
4. **Normalizacja bloków:** Komórki są grupowane w większe bloki (np. 2x2 komórki). Histogramy komórek w bloku są normalizowane. Normalizacja zapobiega dominacji gradientów spowodowanych zmianami oświetlenia.
5. **Zebranie cech:** Znormalizowane histogramy bloków są łączone w jeden wektor cech. Ten wektor cech to deskryptor HOG.
HOG jest skuteczny w wykrywaniu ludzi, ponieważ dobrze opisuje kształt sylwetki. Gradienty koncentrują się wokół krawędzi, tworząc charakterystyczne wzory dla ludzi.
Obsługa Częściowego Zasłaniania
Częściowe zasłanianie stanowi wyzwanie dla systemów wykrywania ludzi. Standardowy HOG może zawieść, gdy część osoby jest zasłonięta. Potrzebujemy więc metody, która będzie odporna na takie sytuacje.
Jednym ze sposobów radzenia sobie z częściowym zasłanianiem jest użycie okien przesuwnych o różnych rozmiarach. System skanuje obraz za pomocą okien przesuwnych o różnych proporcjach i skalach. To pozwala na wykrycie ludzi o różnych rozmiarach i w różnych odległościach od kamery. Jeżeli część osoby jest zasłonięta, mniejsze okno przesuwne może nadal wykryć widoczną część.
Innym podejściem jest użycie modeli częściowych. W tym przypadku, zamiast modelować całą osobę jako jedną jednostkę, modeluje się różne części ciała (np. głowę, tułów, nogi). Każda część jest modelowana niezależnie za pomocą HOG lub innych cech. Podczas wykrywania, system szuka obecności tych części i relacji między nimi. Jeśli niektóre części są zasłonięte, system może nadal wykryć osobę na podstawie widocznych części.
Kluczowe jest także użycie robustnego klasyfikatora. Klasyfikator jest algorytmem uczenia maszynowego, który uczy się rozróżniać między obrazami zawierającymi ludzi a obrazami bez ludzi. Popularne klasyfikatory używane w połączeniu z HOG to Support Vector Machines (SVM) i AdaBoost. Klasyfikator trenuje się na zbiorze danych zawierającym obrazy ludzi i obrazy bez ludzi. Ważne jest, aby zbiór danych treningowych zawierał obrazy ludzi z częściowym zasłanianiem. To pomaga klasyfikatorowi nauczyć się rozpoznawać ludzi nawet w trudnych warunkach.
Przykładowe Metody:
1. **Latent SVM with Part-Based Models:** To podejście wykorzystuje model oparty na częściach. Używa SVM do klasyfikacji i uczy się ukrytych zmiennych, które reprezentują konfigurację części ciała.
2. **Deformable Parts Model (DPM):** DPM to popularny model oparty na częściach. Definiuje się korzeń (root filter) reprezentujący ogólny wygląd obiektu i filtry części (part filters) reprezentujące specyficzne części obiektu. Relacje przestrzenne między częściami są modelowane za pomocą funkcji kosztu deformacji.
3. **Contextual Reasoning:** Wykorzystanie kontekstu sceny może pomóc w radzeniu sobie z zasłanianiem. Na przykład, jeśli system wykryje nogi w dolnej części obrazu, może to zwiększyć prawdopodobieństwo, że cała osoba znajduje się w tym miejscu, nawet jeśli część ciała jest zasłonięta.
Praktyczne Zastosowania
Systemy wykrywania ludzi z obsługą częściowego zasłaniania znajdują zastosowanie w wielu obszarach.
Nadzór wideo: Systemy nadzoru mogą używać detektorów ludzi do monitorowania obszarów publicznych. Obsługa zasłaniania jest ważna, ponieważ ludzie często są zasłonięci przez inne obiekty, takie jak drzewa, samochody lub inni ludzie. System może alarmować o potencjalnych zagrożeniach lub śledzić ruch ludzi w czasie rzeczywistym.
Systemy wspomagania kierowcy (ADAS): ADAS wykorzystują detektory ludzi do ostrzegania kierowcy o obecności pieszych. Obsługa zasłaniania jest krytyczna, ponieważ piesi mogą być częściowo zasłonięci przez inne pojazdy lub przeszkody. System może pomóc w uniknięciu kolizji i poprawie bezpieczeństwa na drodze.
Robotyka: Roboty mogą używać detektorów ludzi do nawigacji w środowisku ludzkim. Obsługa zasłaniania pozwala robotowi na interakcję z ludźmi w sposób bardziej naturalny i bezpieczny. Robot może unikać kolizji z ludźmi i wykonywać zadania w sposób efektywny.
Analiza zachowań: Systemy wykrywania ludzi mogą być wykorzystywane do analizy zachowań ludzi w różnych środowiskach. Na przykład, można analizować ruch ludzi w sklepie, aby zoptymalizować układ sklepu i poprawić sprzedaż. Można także analizować zachowanie tłumu podczas imprez masowych, aby zapewnić bezpieczeństwo i porządek. Obsługa zasłaniania jest niezbędna do uzyskania dokładnych wyników analizy.
Podsumowanie
Wykrywanie ludzi z użyciem HOG jest skutecznym podejściem, ale wymaga rozwinięcia w celu obsługi częściowego zasłaniania. Użycie okien przesuwnych o różnych rozmiarach, modeli częściowych i robustnych klasyfikatorów poprawia odporność systemu na zasłanianie. Systemy takie znajdują zastosowanie w wielu dziedzinach, poprawiając bezpieczeństwo, efektywność i interakcję człowiek-maszyna. Rozwój algorytmów radzących sobie z zasłanianiem jest kluczowy dla budowy bardziej inteligentnych i niezawodnych systemów widzenia komputerowego.
