在圖394中,您可以看到用於計算 HOG 特徵的 VA 設計的基本結構。 對於來自採用 CameraLink 基本配置的攝影機所拍攝的灰階影像,其定向梯度直方圖(HOG) 是在 HierarchicalBox 中計算的 HOG中計算。 此直方圖會透過 DMA 傳送至 PC,此過程在設計「HOG_9Bins_Histogram.va」中實現。而在 VA 設計「HOG_4Bins_HistogramMax.va」 及「HOG_9Bins_HistogramMax.va」中,最大值分量會 轉發至 PC。 以下將說明「HOG_4Bins_HistogramMax.va」的設計結構。其結構與 其他兩個設計類似。針對各設計間可能存在的差異,我們將針對 相應的問題進行說明。預設平台為marathon VCL。這些設計實作可輕鬆調整 以適應其他平台或相機配置。
您可以查看 HierarchicalBox 的內容 HOG 的內容,請參見圖395。
對於原始輸入影像,x 方向和 y 方向的梯度是在 HierarchicalBox GradientFilter 中計算的。其實作方式如圖 47 所示。FIRkernelNxM 算子會產生一個 3x3 核心。FIRoperatorNxM_VerticalEdges 和 FIRoperatorNxM_HorizontalEdges 算子則根據方程式 47 來選取 x 方向和 y 方向的梯度。
針對此梯度,已根據式(48)將其模值與方向實作於該方塊中 大小與方向 中實現(內容與結構請參見圖397)。方框內的詳細註解 有助於理解所實作的公式。
將像素分組為 8x8 像素的方塊,是在 HierarchicalBox 中執行的 ExtractBlocks中進行。此盒子的輸出連結會將 單元格的梯度幅值與方向,以 64 像素寬的線條形式傳遞出去。這些資訊將作為輸入,用於 計算定向梯度直方圖(HOG), 該運算在 HierarchicalBox Histogram中進行。您可參閱圖398 了解其內容。
在此,梯度方向(可位於
設為
區域中)的分配會在 SplitOrientations算子中執行至四個 bin。這些 bin 為
,
,
進行明確的生命週期管理即呼叫
.
針對「HOG_9Bins_Histogram.va」與「HOG_9Bins_HistogramMax.va」這兩個設計,共九個區間(
設為
步長為
)。
梯度方向對特定 bin 的分配方式是計算該方向對該 bin 的權重。例如,針對 bin 1 的權重計算以及因此產生的分配(即
),如圖
399.
在此,bin 1 的權重
根據方程式
49 進行計算。在這個範例中,bin 之間的夾角距離為
CONST_Phi_45Deg
(operator (位於 box Sub45Deg中)。
bin 1 的角度 bin 方向也是
(operator CONST_Chi_45Deg)。然後,各個 bin 的加權因子會乘以梯度幅值(見圖 398)。在 boxes
HistogramColumn_0 設為 HistogramColumn_3 中,根據方程式計算每個直方圖行(針對每個 bin)的內容,即所有影像像素的加權梯度幅值總和。接著,透過使用
50 operator 合併直方圖行來產生 Histogram of
Oriented Gradients。 MergeKernel_Histogram.
由於只有每個核心元件的最後一個像素才是直方圖欄位的真實值,因此會在方塊中選取該像素
LastPixelOnly. 為了納入
區域梯度變化的考量,每個儲存格的梯度方向分佈圖(Histogram of Oriented Gradients)會組合成大小為 2x2 個儲存格的區塊,
重疊區域為
(請參閱本節的理論部分)。儲存格組合成
區塊的操作是在方塊中執行 ConcatenateWithNeighbors。其內容請參見圖
400.
對於每個包含「定向梯度直方圖」資訊的單元格(由單一像素表示),直方圖 中各區間的欄位之間以 運算子分隔 SplitKernel運算子分隔。針對每個核函數分量,會透過運算子 PixelNeighbours1xM 及 LineNeighboursNx1運算子來計算每個核成分在 x 和 y 方向上的相鄰像元。運算子來計算每個核心元件在 x 和 y 方向上的相鄰像素。 FIRoperatorNxM 會將 2x2 個單元的資訊進行求和。 此處不會進行歸一化處理。作為另一種實作方式,可透過設定運算子 將單元分組為區塊的步驟省略, 設定運算子 Const_Enable 設為零,即可省略將單元分組為區塊的步驟。計算出的方向梯度直方圖的最大值將被選取並存入 GetHistogramMax 中選取(參見圖 395)。其內容如圖401 所示。在設計 「HOG_9Bins_Histogram.va」中,省略了直方圖最大值選取的步驟。
最後,直方圖的極值或直方圖本身會以箱線圖呈現 可視化 (參見圖395)中以 紅色線條呈現。 在此框中(路徑:box 繪圖、 啟用原始)中,您可以透過設定參數 ModuloCount_Period (計數幀數)、 Is_InRange (設定幀範圍)以及 Const_Enable 或始終 (設定 Const_Enable 設為一)。最後一步,HOG 特徵會透過運算子 DmaToPC_DMA0將 HOG 特徵傳輸至電腦。在此,HOG 特徵可用作支援向量機 (SVP) 或卷積 神經網路 (CNN) 中物件偵測的描述子。

上一頁

