19

Wprowadzam histogram zorientowanych gradientów z "Histogramów zorientowanych gradientów do wykrywania człowieka" i chciałbym wizualizować wynik. Wszystkie artykuły na temat tych funkcji używają standardowej wizualizacji, ale nie mogę znaleźć żadnego opisu, w jaki sposób są one generowane. Byłbym wdzięczny za wyjaśnienie lub pomocny link.W jaki sposób funkcje HoG są reprezentowane graficznie?

+0

Czy możesz przesłać zrzut ekranu?Widziałem kilka pokazujących orientację gradientu w rozmiarze proporcjonalnym do liczby, ale nie jestem pewien, czy mówimy o tym samym. – carlosdc

+0

Ta strona może pomóc: http://www.geocities.ws/talh_davidc/ – SomethingSomething

Odpowiedz

12

Wizualizacje można zobaczyć w dokumentach można interpretować następująco:

deskryptor składa się z komórek M * N obejmujących okno obrazu w siatce. Każda komórka jest reprezentowana przez histogram orientacji krawędzi, gdzie liczba dyskretnych orientacji krawędzi jest parametrem (zwykle 9). Histogram komórki jest wizualizowany przez "gwiazdkę" pokazującą siłę orientacji krawędzi w histogramie: im silniejsza jest określona orientacja, tym dłużej jest ona względna względem innych.

Należy zauważyć, że istnieją różne schematy normalizacji: schematy lokalne, w których komórka jest znormalizowana tylko w odniesieniu do sąsiednich komórek (jak w oryginalnym dokumencie Dalal-Triggs) lub schematy globalne, w których długość orientacji jest znormalizowana przez wszystkie komórki. Zauważ też, że niektórzy autorzy używają wielu lokalnych normalizacji na komórkę (na przykład tej, o której mówię poniżej), ale wizualizacja pokazuje tylko jedną (lub średnią z nich).

Kod Matlaba do prac przełomowych Felzenszwalba i in. wizualizuje komórki, malując je na obrazie, gdzie siłę wizualizuje się na podstawie intensywności krawędzi zamiast długości. Możesz go znaleźć w pakiecie, który podają tutaj (DPM). Sprawdzić funkcji o nazwie HOGpicture.m

Poniższy przykład ilustruje model roweru (od Felzenszwalb i in.), Z HOG składa się z 7 * 11 komórek, gdzie każda z 8 orientacji

HoG model of a bike, taken from Felzenszwalb et al

10

Blog o nazwie Jurgenwiki ma przykładowy kod (zwany get_hogdescriptor_visu()) do wizualizacji deskryptorów HOG w OpenCV. W przeszłości kopiowałem/wklejałem kod Jurgenwiki do pliku C++, przekazywałem funkcje HOG do get_hogdescriptor_visu(), a wizualizacja wyglądała całkiem nieźle. Oto przykład:

enter image description here

Jedno zastrzeżenie kodu Jurgenwiki jest to, że spodziewa się wykorzystać domyślne parametry (np HOGDescriptor() bloki 16x16, 8x8, 9 komórek kosze orientacji). Jeśli jednak używasz parametrów niestandardowych w urządzeniu HOGDescriptor, możesz dostosować kod Jurgenwiki, aby pasował do parametrów HOG.

This StackOverflow post jest również bardzo przydatny.

0

Tutaj chcę zadać jedno pytanie, że dwie klatki sekwencji osoby chodzącej i wyodrębniamy HOG każdego obrazu, a następnie wziąć różnicę obu HOG's. Chcę wiedzieć, jakie informacje otrzymujemy w ostatecznej (Różnicowej) wizualizacji HOG.

Dziękujemy