日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【计算机视觉】方向梯度直方图(Histogram of Oriented Gradient,HOG)

發布時間:2024/1/18 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【计算机视觉】方向梯度直方图(Histogram of Oriented Gradient,HOG) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 1. HOG 簡述
    • 2. HOG 工作流程
      • 第一步、對圖像的顏色空間進行歸一化
      • 第二步、計算每個像素點的梯度
      • 第三步、為每個單元構建梯度方向直方圖
      • 第四步、塊內梯度直方圖歸一化
    • 3. 舉個例子
    • 4. HOG 可視化

1. HOG 簡述

HOG(Histogram of Oriented Gradient)方向梯度直方圖是 Dalal 和 Triggs 在 2005 的 CVPR 上提出的一種解決人體目標檢測的圖像描述子,用于表征圖像局部梯度方向和梯度強度分布特性。其具體思想是:在一副圖像中,局部目標的形狀能夠被梯度或邊緣的方向密度分布很好地描述。該方法通過統計局部區域的梯度方向直方圖來構成特征,能夠很好地描述人體的邊緣,提取人體的外形信息和運動信息,形成豐富的特征集。Dalal 等提出的 HOG+SVM 算法當時在行人檢測上取得了巨大的成功,而此后涌現的許多算法,大多是以該算法為基礎框架。

2. HOG 工作流程

梯度方向直方圖顧名思義就是計算圖像中各像素的梯度方向,統計成為直方圖作為特征表示目標。其大致有以下4步:

第一步、對圖像的顏色空間進行歸一化

因為圖像的采集環境、裝置等因素,采集到的圖像效果可能不是很好,所以需要對采集到的圖像進行預處理。其中包括:將圖像灰度化和 Gamma 校正。使用 Gamma 校正法對輸入圖像進行顏色空間的標準化的目的是調節圖像的對比度,降低圖像局部的陰影和光照變化所造成的影響,同時可以抑制噪音的干擾。

第二步、計算每個像素點的梯度

在HOG特征提取的過程中,梯度計算采用簡單的水平邊緣算子 [-1,0,1] 和垂直邊緣算子 [-1,0,1]^T。通過與圖像進行卷積操作來獲得梯度信息。圖像中某像素點 (x,y) 的梯度可以用如下公式計算:
G x ( x , y ) = H ( x + 1 , y ) ? H ( x ? 1 , y ) G y ( x , y ) = H ( x , y + 1 ) ? H ( x , y ? 1 ) G_x(x,y) = H(x+1,y)-H(x-1,y) \\ G_y(x,y) = H(x,y+1)-H(x,y-1) Gx?(x,y)=H(x+1,y)?H(x?1,y)Gy?(x,y)=H(x,y+1)?H(x,y?1)
G ( x , y ) = G x ( x , y ) 2 + G y ( x , y ) 2 G(x,y) = \sqrt{G_x(x,y)^2+G_y(x,y)^2} G(x,y)=Gx?(x,y)2+Gy?(x,y)2 ?
θ ( x , y ) = a r c t a n G y ( x , y ) G x ( x , y ) \theta (x,y) = arctan\frac{G_y(x,y)}{G_x(x,y)} θ(x,y)=arctanGx?(x,y)Gy?(x,y)?
公式中 x 表示水平方向,y 表示豎直方向,G 表示梯度的大小, θ \theta θ 表示梯度的方向。

第三步、為每個單元構建梯度方向直方圖

這一步的目的是為局部圖像區域提供一個編碼,同時能夠保持對圖像中人體對象的姿勢和外觀的弱敏感性。將圖像分成若干個大小相同的單元(cell),作者原文文將每個單元設置成 8x8 像素。原文將梯度方向每 20 度作為一個區間,平均分為 9 個區間(bin)(因為 tan 的周期為 π \pi π,所以分成 9 份),如下圖所示:

在每個單元格中,以每個像素點處的梯度大小作為權值統計梯度方向區間的直方圖。每個區間分別對應一定的角度范圍,9 個區間即為直方圖的橫軸,而這些角度范圍內所對應的梯度的累加值即為直方圖的縱軸。

第四步、塊內梯度直方圖歸一化

像素點、單元和區塊之間的關系如下圖所示。

將小的單元(cell)合并成大的區塊(block),每個塊內歸一化梯度直方圖即可得到該塊的 HOG 特征。這么做是因為局部光照的變化以及前景-背景對比度的變化,使得梯度強度的變化范圍非常大。這就需要對梯度強度做歸一化。歸一化能夠進一步地對光照、陰影和邊緣進行壓縮。一個塊內所有單元的縱軸值串聯起來歸一化后得到的向量被稱作該塊 HOG 描述子。圖像中所有塊的 HOG 描述子串聯起來即得到該圖像的 HOG 特征向量。原文一個區塊設置成 2x2 單元。

3. 舉個例子

比如 INRIA 數據集中圖像剪裁后的大小為 64x128,故每張圖像共有 8x16 的單元(cell),每個單元(cell)有一個 9 維的特征向量,把一個塊內的特征向量串聯起來,所以每個區塊(block)是 (2x2)x9=36 維,用塊對樣本圖像進行掃描,掃描步長為一個單元(區塊可以重疊),最后將所有塊的特征串聯起來,所以每張圖像的HOG特征維度為:36x7x15=3780 。

4. HOG 可視化

在數據集 INRIA 中選擇一個圖像,將其剪裁為大小 64x128,按照上述 HOG 參數進行 HOG 可視化,效果如下:

可視化時將整個圖像作為一個 Block 來使用,即 HOG 可視化圖像展示的是圖像中每個 cell 的梯度直方圖,其中每條線的方向代表著這個單元內每個像素點的梯度方向。在圖中可以發現,直方圖的主要方向捕獲了這個人的外形,尤其在軀干和腿。

總結

以上是生活随笔為你收集整理的【计算机视觉】方向梯度直方图(Histogram of Oriented Gradient,HOG)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。