Pokazywanie postów oznaczonych etykietą detekcja twarzy. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą detekcja twarzy. Pokaż wszystkie posty

sobota, 22 października 2011

Odnajdywanie twarzy za pomocą obrazu HSV

Zainspirowany algorytmem http://www.matmidia.mat.puc-rio.br/sibgrapi2009/media/posters/59928.pdf postanowiłem spróbować wyszukiwania twarzy za pomocą obrazu HSV.
Największym problemem okazało się dobranie dobrych parametrów koloru skóry. Po próbach osiągnąłem zadowalające efekty stosując parametry, które znajdziecie w kodzie poniżej:

Algorytm wyszukiwania jest bardzo prosty. Konwertujemy obraz do przestrzeni HSV a następnie podświetlamy tylko wartości z danego przedziału.

Dalsze czynności to odszukanie konturów i wybranie największego obszaru.

niedziela, 31 lipca 2011

Przeszukiwanie pikseli na obrazie

Detekcję twarzy rozpocząłem od wyszukania pierwszego niezerowego piksela na binarnym obrazie różnicowym.



Aby odczytać pojedynczy piksel musiałem przekształcić obraz z formatu Mat na IplImage i użyć metody cvGetReal2D. Iteruję po pikselu poczynając od górnego lewego rogu. Kiedy wartość jest większa od zera zwracam ten punkt (warto zwrócić uwagę na odwrotną kolejność współrzędnych w cvGetReal2D a w konstruktorze Point).
Na wszelki wypadek gdyby wszystkie piksele były czarne zwracam na końcu wartość Point(0,0)

sobota, 30 lipca 2011

Detekcja ruchu za pomocą obrazu różnicowego

Aby odnaleźć twarz na obrazie możemy wykorzystać również analizę obrazu różnicowego. Idea takiej operacji jest bardzo prosta. Pobieramy ramkę obrazu (dla wygody zmieniamy ją na odcienie szarości) i porównujemy z następną.
Z pomocą przychodzi nam metoda absdiff(ramka1, ramka2, wyjście). Po działaniu absdiff otrzymujemy obraz gdzie jasny kolor oznacza różnice.
Podczas operacji może przeszkadzać nam szum na obrazie wideo. Aby go usunąć możemy zastosować binaryzację, erozję i dylatację obrazu wynikowego.
Poniżej kod prezentujący daną metodę oraz przykład działania.




Detekcja twarzy za pomocą kaskady Haara

Poszukując informacji o detekcji twarzy znalazłem ciekawy film obrazujący działanie wyszukiwania twarzy metodą Viola Jones. Na filmie widać jak części obrazu są porównywane do zapisanych integral images. Widać również że jeden sukces wyszukiwania nie wystarcza i przeprowadzanych jest kilka przebiegów aby potwierdzić czy znaleziono twarz.

OpenCV Face Detection: Visualized from Adam Harvey on Vimeo.