OpenCV HOG-Feature Datenlayout?

8

Ich arbeite mit OpenCV CPU-Version von Histogramm von Orientierten Gradienten ( HOG ). Ich verwende ein 32x32 Bild mit 4x4 Zellen, 4x4 Blöcken, keine Überlappung zwischen Blöcken und 15 Orientierungsbins. OpenCV HOGDescriptor gibt mir einen 1D Feature Vektor der Länge 960. Dies macht Sinn, weil (32 * 32 Pixel) * (15 Orientierungen) / (4 * 4 Zellen) = 960.

Ich bin mir jedoch nicht sicher, wie diese 960-Nummern im Speicher angeordnet sind. Mein rate wäre, dass es so ist:

%Vor%

Natürlich ist dies ein 2D-Problem, das in 1D abgeflacht ist, also würde es tatsächlich so aussehen:

%Vor%

Habe ich also die richtige Idee für das Datenlayout? Oder ist es etwas anderes?

Hier ist mein Beispielcode dafür:

%Vor%

Zugehörige Ressourcen: Dieser StackOverflow-Beitrag und dieses Tutorial hat mir geholfen, mit dem OpenCV HOGDescriptor zu beginnen.

    
solvingPuzzles 12.11.2012, 21:33
quelle

1 Antwort

1

Ich glaube, Sie haben die richtige Idee.

In seiner Originalarbeit Histogramme von orientierten Farbverläufen für die menschliche Erkennung (Seite 2) sagt es

  

[...] Das Detektorfenster ist mit einem Gitter aus sich überlappenden Blöcken versehen, in denen Histogramm von ausgerichteten Gradientenmerkmalsvektoren extrahiert werden. [...]

     

[...] Tiling des Erkennungsfensters mit einem dichten (tatsächlich überlappenden) Raster von HOG-Deskriptoren und   Verwenden des kombinierten Feature-Vektors [...]

Alles, worüber gesprochen wird, ist Tiling zusammen. Obwohl keine Detailinformationen darüber eingeführt werden, wie sie genau zusammengefügt werden können. Ich denke, es sollte hier keine ausgefallenen Dinge passieren (sonst werden sie darüber reden), d. H. Nur regelmäßig verketten (von links nach rechts, von oben nach unten).

Immerhin ist es vernünftig und der einfachste Weg, um die Daten zu gestalten.

Bearbeiten: Sie werden sich selbst mehr überzeugen, wenn Sie sich wie Personen auf die Daten zugreifen und sie visualisieren .

%Vor%     
herohuyongtao 16.01.2014, 06:00
quelle