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?
Odpowiedz
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
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:
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.
Istnieje niedawne papier (HOGles) opublikowane w iccv 2013 na wizualizacji możliwości HOG, które mogą być bardzo pomocne, kod jest dostępny tutaj http://web.mit.edu/vondrick/ihog/#code
scikit-image zapewnia również wizualizacja HOG: http://scikit-image.org/docs/dev/auto_examples/plot_hog.html
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
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
Ta strona może pomóc: http://www.geocities.ws/talh_davidc/ – SomethingSomething