在圖372中,您可以看到用於計算 HOG 特徵的 VA 設計的基本結構。 對於來自採用 CameraLink 基本配置的相機所拍攝的灰階影像,其定向梯度直方圖(HOG)是在 HierarchicalBox 中計算的 HOG中計算。 此直方圖會透過 DMA 傳送至電腦,相關設計為「HOG_9Bins_Histogram.vad」。在 VA 設計「HOG_4Bins_HistogramMax.vad」 及「HOG_9Bins_HistogramMax.vad」中,最大值分量會 傳送至電腦。 以下將說明「HOG_4Bins_HistogramMax.vad」的設計結構。其結構與 其他兩個設計相似。針對各設計間可能存在的差異, 我們將針對相應的問題進行說明。預設平台為marathon VCL。這些設計的實作可輕鬆 調整以適用於其他平台或相機配置。
圖 372. VA 設計「HOG_9Bins_Histogram.vad」、「HOG_9Bins_HistogramMax.vad」及「HOG_4Bins_HistogramMax.vad」的基本設計架構
您可以查看 HierarchicalBox 的內容 HOG 的內容,請參見圖373。
對於原始輸入影像,其 x 方向與 y 方向的梯度是在 HierarchicalBox 中計算的 GradientFilter中計算原始輸入影像在 x 軸與 y 軸方向的梯度。其實作如圖47 所示。該 運算子 FIRkernelNxM 運算子會產生一個 3x3 核。運算子 FIRoperatorNxM_VerticalEdges 與 FIRoperatorNxM_HorizontalEdges 會根據式(47) 選取 x 方向與 y 方向的梯度。
針對此梯度,已根據式 (48) 將其大小與方向實作於該方塊中 大小與方向 中實現(內容與結構請參見圖375)。方塊內的詳細註解 有助於理解所實作的公式。
將像素分組為 8x8 像素的方塊,是在 HierarchicalBox 中執行的 ExtractBlocks中進行。此模組的輸出連結會將 區塊的梯度幅度與方向,以 64 像素寬的線條形式傳送出去。這些資訊將作為 計算「定向梯度直方圖」的輸入, 該計算在 HierarchicalBox Histogram中進行。您可參閱圖376 查看其內容。
此處給出了梯度方向的賦值,其可能位於一個區域內,該區域為
設為
, 將物品分裝至四個箱子,此操作
在箱子內進行 SplitOrientations. 這些垃圾桶是
,
,
進行明確的生命週期管理即呼叫
.
對於「HOG_9Bins_Histogram.vad」和「HOG_9Bins_HistogramMax.vad」這兩個設計,共有九個區間(
設為
追隨……的腳步
) 存在。
將梯度方向指派至特定區間的方式,
是透過計算該方向在該區間中的權重來實現。舉例來說,權重計算以及據此
對第 1 個區間的指派,其方式是
,如圖所示。
377.
這裡的重量
根據式()
49 針對第 1 區間進行計算。角度距離
在此範例中,垃圾桶之間的距離是
(operator CONST_Phi_45Deg 在
盒子裡 Sub45Deg). 第 1 個區間的角度區間取向
也是
(operator CONST_Chi_45Deg). 接著,將每個區間的
加權因子與梯度模值相乘(參見圖 376). 在方框中
直方圖欄位_0 設為 直方圖欄位_3 根據公式,計算每個直方圖欄位(每個區間)的內容。
50 其計算方式為所有影像像素加權梯度幅值的總和。接著透過將直方圖欄位與運算子合併,
生成「定向梯度直方圖」 MergeKernel_Histogram.
每個核函數分量的最後一個像素才是直方圖欄位的真實值,因此該像素會被選入方框中
僅最後一個像素. 為了考量
局部梯度變化,每個單元的「定向梯度直方圖」會被整合為 2x2 單元大小的區塊,每個區塊
的重疊量為
(參見本節的理論部分)。將單元
組合成區塊的過程是在該方框中進行的 ConcatenateWithNeighbors. 請參閱圖中的內容。
378.
對於每個包含「定向梯度直方圖」資訊的細胞(由單一像素代表),該直方圖 中各區間的欄位會以 運算子分隔 SplitKernel運算子分隔。針對每個核函數分量,會透過運算子 PixelNeighbours1xM 及 LineNeighboursNx1運算子,計算出各核成分在 x 和 y 方向上的鄰接單元格。運算子來計算。運算子 FIRoperatorNxM 會將 2x2 個單元的資訊進行加總。 此處不會進行正規化。作為另一種實作方式,可透過設定運算子 將單元分組為區塊的步驟省略,方法是將運算子 Const_Enable 設為零,即可省略將單元分組為區塊的步驟。所計算的定向梯度直方圖中的最大值會被選取至方塊 GetHistogramMax 中選取(參見圖 373)。其內容如圖379 所示。在設計 「HOG_9Bins_Histogram.vad」中,省略了直方圖最大值的選取步驟。
最後,直方圖的極值或直方圖本身會以箱線圖形式呈現 以 (參見圖373)中,以 紅色線條呈現。 在此方框中(路徑:box 繪圖、 啟用原始圖像)中,您可以透過設定參數 來將原始影像與 HOG 特徵 同時視覺化顯示若干幀 ModuloCount_Period (計數幀數)、 Is_InRange (設定幀範圍)以及 Const_Enable 或始終 (設定 Const_Enable 設為一)。最後一步,HOG 特徵會透過運算子 DmaToPC_DMA0將 HOG 特徵傳輸至電腦。在此,HOG 特徵可用作支援向量機(SVP)或卷積 神經網路(CNN)中物件偵測的描述子。

上一頁

