欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

python中hog函數(shù),python hog特征提取

hog特征為什么可以用于行人識別能不能用于其他識別

hog描述子在opencv中為HOGDescriptor。

專注于為中小企業(yè)提供成都網(wǎng)站設計、網(wǎng)站建設服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)泰安免費做網(wǎng)站提供優(yōu)質(zhì)的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上千企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。

2. 可以調(diào)用該描述子setSVMDetector方法給用于對hog特征進行分類的svm模型的系數(shù)賦值,這里的參數(shù)為HOGDescriptor::getDefaultPeopleDetector()時表示采用系統(tǒng)默認的參數(shù),因為這些參數(shù)是用很多圖片訓練而來的。

3. 對輸入圖片進行行人檢測時由于圖片的大小不一樣,所以要用到多尺度檢測。這里是用hog類的方法detectMultiScale。參數(shù)解釋如下:

HOGDescriptor::detectMultiScale(const GpuMat img, vectorRect found_locations, doublehit_threshold=0, Size win_stride=Size(), Size padding=Size(), double scale0=1.05, int group_threshold=2)

該函數(shù)表示對輸入的圖片img進行多尺度行人檢測 img為輸入待檢測的圖片;found_locations為檢測到目標區(qū)域列表;參數(shù)3為程序內(nèi)部計算為行人目標的閾值,也就是檢測到的特征到SVM分類超平面的距離;參數(shù)4為滑動窗口每次移動的距離。它必須是塊移動的整數(shù)倍;參數(shù)5為圖像擴充的大小;參數(shù)6為比例系數(shù),即滑動窗口每次增加的比例;參數(shù)7為組閾值,即校正系數(shù),當一個目標被多個窗口檢測出來時,該參數(shù)此時就起了調(diào)節(jié)作用,為0時表示不起調(diào)節(jié)作用。

4. ?最后對檢測出來的目標矩形框,要采用一些方法處理,比如說2個目標框嵌套著,則選擇最外面的那個框。

5. ?因為hog檢測出的矩形框比實際人體框要稍微大些,所以需要對這些矩形框大小尺寸做一些調(diào)整。

extractHOGFeatures

features = extractHOGFeatures(I);

[features,validPoints] = extractHOGFeatures(I,Points);

[_,visualization] = extractHOGFeatures(I,_);

[_] = extractHOGFeatures(_,Name,Value);

其中,I為3-D彩色圖像或2-D灰度圖像,features為1xN的HOG描述子向量,N為描述子的長度,該描述子是輸入圖像區(qū)域的局部形狀信息編碼。當指定Points(同extractFeatures函數(shù)輸入Points)時,則獲取指定點附近的HOG描述子,visualization表示可用于任何可視化的函數(shù)的輸入?yún)?shù),例如plot(visualization),Name為用一對單引號包含的字符串,Value為對應Name的值。

Name Value

'CellSize'HOG單元(HOG cell)大小,默認值為[8,8],為捕獲大尺度空間信息,可以增加‘CellSize'的取值

’BlockSize'塊中單元的大小,默認值為[2,2],當取值較大時將降低抑制局部亮度變化的能力,當取值較小時,能夠抑制亮度變化

‘BlockOverlap'相鄰塊(block)之間的重疊HOG單元的個數(shù),默認值為ceil(BlockSize/2),該參數(shù)只在從區(qū)域(region)獲取HOG特征時有用。

’NumBins'方向直方圖分段(orientation histogram bins)的數(shù)目,默認值為9,必須為正整數(shù),如果想要獲取精細的方向信息,該值可以設置大一些,但是將增加處理時間和HOG特征長度

‘UseSignedOrienation'默認值為false,當該值置為true時,方向直方圖中所取方向的范圍為[-180,180],若置為false,方向的取值范圍為[0,180],此時,方向角度小于0的將統(tǒng)計如+180bins中,利用帶符號的方向,可以區(qū)分區(qū)域中從light-to-dark和dark-to-light

【中級】圖像特征工程:HOG 特征描述符

英文原文:

邊翻譯邊學習

特征工程是機器學習算法領域重要的角色。這是進行最多次試驗的地方:從現(xiàn)有特征中設計新特征并提高我們模型的性能。世界上一些頂級數(shù)據(jù)科學家們依靠特征工程來提高他們在黑客馬拉松中的排行榜分數(shù)。我相信你甚至會在結(jié)構化數(shù)據(jù)上使用各種特征工程技術。

我們能否將此技術擴展到非結(jié)構化數(shù)據(jù),比如圖像?對于計算機視覺愛好者來說,這是一個有趣的問題,我們將在本文中解釋它。準備好以特征提取的形式對圖像數(shù)據(jù)進行特征工程吧!

我假設你已經(jīng)閱讀了: 【初級】使用 Python 從圖像數(shù)據(jù)中提取特征

在本文中,我將向您介紹一種流行的圖像特征提取技術——定向梯度直方圖( Histogram of Oriented Gradients 或 HOG)。我們將了解什么是 HOG 特征描述符,它的工作原理(算法背后的完整數(shù)學),最后,將會在 Python 中實現(xiàn)它。

下面的兩個圖像。你能區(qū)分圖像中的物體嗎?

我們可以清楚地分辨右圖有一只狗,左圖有一輛汽車。現(xiàn)在讓這個任務稍微復雜一點,識別下圖中顯示的物體:

我想你還是可以分辨出吧?圖1 有包含很多信息,比如物體的形狀、顏色、邊緣、背景等。而圖2 的信息相對少得多(只有形狀和邊緣),但足以區(qū)分兩個圖像。

我想你已經(jīng)對特征描述符有一些感覺了吧?在圖2 中,我們很容易區(qū)分對象,因為它具有識別對象所需的必要信息。這正是特征描述符的作用: 它是圖像的簡化表示,僅包含有關圖像的最重要信息 。

以下是一些最受歡迎特征描述符的:

在本文中,我們將重點介紹 HOG (定向梯度直方圖)特征描述符及其工作原理。讓我們開始吧!

HOG,是一種特征描述符,常用于從圖像數(shù)據(jù)中提取特征。它廣泛用于計算機視覺任務中的目標檢測。

讓我們看一下 HOG 與其他特征描述符不同的一些重要方面:

對此進行正式定義: HOG 特征描述符是計算圖像局部梯度方向的出現(xiàn)次數(shù) 。

我們現(xiàn)在應該對 HOG 特征描述符是什么有了一個基本的了解。是時候深入研究其背后的核心思想了。讓我們開始討論計算 HOG 的分步過程。

考慮以下尺寸 (180 x 280) 的圖像。讓我們詳細了解一下如何為該圖像創(chuàng)建 HOG 特征:

這是大多數(shù)人都非常熟悉的步驟。預處理數(shù)據(jù)是任何機器學習項目中的關鍵步驟,處理圖像時也不例外。

我們需要對圖像進行預處理并將寬高比降低到 1:2。圖像大小最好是 64 x 128。這是因為我們將把圖像分成 8 8 和 16 16 塊來提取特征。具有指定的大小 (64 x 128) 將使我們所有的計算變得非常簡單。事實上,這是 原始論文 中使用的確切值。

回到我們的例子,讓調(diào)整原圖像為 64 x 128。這是調(diào)整后的圖像:

下一步是計算圖像中每個像素的梯度。梯度是 x 和 y 方向的微小變化。這里將從圖像中取出一小塊并計算其梯度:

我們將獲得此區(qū)域的像素值。假設我們在給定的區(qū)域生成以下像素矩陣(此處顯示的矩陣僅用作示例,這些不是給定區(qū)域的原始像素值):

這里突出顯示了像素值 85。首先確定 x 方向的梯度(或變化),我們需要從右側(cè)的像素值中減去左側(cè)的值。同樣,為了計算 y 方向的梯度,我們將從所選像素上方的像素值中減去下方的像素值。

因此,該像素在 x 和 y 方向上的梯度為:

這個過程會給我們兩個新矩陣——一個存儲 x 方向上的梯度,另一個存儲 y 方向上的梯度。這類似于使用大小為 1 的 Sobel Kernel。 當強度發(fā)生急劇變化時,例如邊緣周圍,幅度會更高 。

我們分別計算了 x 和 y 方向的梯度。對圖像中的所有像素重復相同的過程。下一步是使用這些值找到大小和方向。

使用我們在上一步中計算的梯度,我們現(xiàn)在將確定每個像素值的大小和方向。在這一步中,我們將使用畢達哥拉斯定理,如下圖所示:

梯度分為是水平和豎直,對于前面的示例,我們將 和 設為 11 和 8。應用勾股定理來計算總梯度幅度:

接下來計算其方向:

因此,角度的值將是:

計算結(jié)果是 36。對于每個像素值,我們都能計算出其梯度值和方向。我們需要使用這些梯度值和方向生成直方圖。

直方圖是顯示一組連續(xù)數(shù)據(jù)的頻率分布的圖。x 軸表示數(shù)據(jù)值,y 軸表示其頻率。在這里,我們將用x 軸表示角度,用y 軸表示頻率。

讓我們從最簡單的生成直方圖的方法開始。我們將獲取每個像素值,找到像素的方向并更新頻率表。還是討論圖三中的紅色像素 85。由于該像素的方向是 36,我們將在角度值 36 上添加一個數(shù)字,表示頻率:

對所有像素值做重復相同的操作,我們最終得到一個頻率表,表示角度和這些角度在圖像中的出現(xiàn)次數(shù)。此頻率表可用于生成 x 軸上的角度值和 y 軸上的頻率的直方圖。這是創(chuàng)建直方圖的一種方法。由于每個桶的是1,所以此處生成了180個大小相同的桶。

這種方法與前面的方法類似,不同之處在于這里的每個桶的大小為 20。因此,在這里得到的桶數(shù)為 9。同樣,對于每個像素,我們將檢查方向,并以 9 x 1 矩陣的形式存儲方向值的頻率。繪制這將為我們提供直方圖:

在這里,我們將像素梯度的貢獻添加到像素梯度任一側(cè)的 bin 中。更高的貢獻應該是對更接近方向的 bin 值。

在 HOG 特征描述符中創(chuàng)建的直方圖不是為整個圖像生成的。相反,圖像被分成 8×8 個單元格,并為每個單元格計算定向梯度的直方圖。通過這樣做,我們獲得了較小塊的特征(或直方圖),這些塊又代表了整個圖像。我們當然可以在這里將這個值從 8 x 8 更改為 16 x 16 或 32 x 32。如果我們將圖像分成 8×8 個單元格并生成直方圖,我們將為每個單元格得到一個 9 x 1 的矩陣。該矩陣是使用我們在上一節(jié)中討論的方法 3 生成的。

一旦我們?yōu)閳D像中的 8×8 塊生成了 HOG,下一步就是對直方圖進行歸一化。

我們在了解這是如何完成之前,首先了解為什么要這樣做很重要。盡管我們已經(jīng)為圖像的 8×8 單元創(chuàng)建了 HOG 特征,但圖像的梯度對整體照明很敏感。這意味著對于特定圖片,圖像的某些部分與其他部分相比會非常亮。我們無法從圖像中完全消除這一點。但是我們可以通過采用 16×16 塊對梯度進行歸一化來減少這種光照變化。這是一個可以解釋如何創(chuàng)建 16×16 塊的示例:

在這里,我們將組合四個 8×8 的單元格來創(chuàng)建一個 16×16 的塊。我們已經(jīng)知道每個 8×8 單元格都有一個 9×1 的直方圖矩陣。因此,我們將有四個 9×1 矩陣即一個 36×1 矩陣。為了標準化這個矩陣,我們將這些值中的每一個除以這些值的平方和的平方根進行歸一化,結(jié)果將是大小為 36×1 的歸一化向量。

我們現(xiàn)在處于為圖像生成 HOG 特征的最后一步。到目前為止,我們已經(jīng)為圖像的 16×16 塊創(chuàng)建了特征。現(xiàn)在,我們將結(jié)合所有這些來獲得最終圖像的特征。

您能猜出給定圖像的特征總數(shù)是多少嗎?我們首先需要找出一張 64×128 的圖像有多少這樣的 16×16 塊?我們將有 105 (7×15) 個 16×16 的塊。這 105 個塊中的每一個都有一個 36×1 的向量作為特征。因此,圖像的總特征將為 105 x 36×1 = 3780 個特征。我們現(xiàn)在將為單個圖像生成 HOG 特征,并驗證我們最終是否獲得相同數(shù)量的特征。

我們將看到如何在單個圖像上生成 HOG 特征,以及是否可以將其應用于更大的數(shù)據(jù)集。

如果不進行 resize,結(jié)果如下:

這時我們就提取出了對象識別時輸入到機器學習中的圖片HOG特征了。

在python怎么調(diào)用hog特征

1.對原圖像gamma校正,img=sqrt(img); 2.求圖像豎直邊緣,水平邊緣,邊緣強度,邊緣斜率。 3.將圖像每16*16(取其他也可以)個像素分到一個cell中。對于256*256的lena來說,就分成了16*16個cell了。 4.對于每個cell求其梯度方向直方圖。

用HOG對圖像進行特征提取,對于參數(shù)Params = [9 180 10 0 0]; 這幾個數(shù)都代表什么意思啊??

C#開發(fā)語言中 params 是關鍵字,可以指定在參數(shù)數(shù)目可變處采用參數(shù)的方法參數(shù)。在函數(shù)的參數(shù)數(shù)目可變而執(zhí)行的代碼差異很小的時候很有用!

params關鍵字表示函數(shù)的參數(shù)是可變個數(shù)的,即可變的方法參數(shù),例如Console.WriteLine( "{0},{1} ",i,j); 就像DELPHI 里 WRITELN 函數(shù)一樣,用于表示類型相同,但參數(shù)數(shù)量不確定.

在方法聲明中的 params 關鍵字之后不允許任何其他參數(shù),并且在方法聲明中只允許一個 params 關鍵字。

關于參數(shù)數(shù)組,需掌握以下幾點。

(1)若形參表中含一個參數(shù)數(shù)組,則該參數(shù)數(shù)組必須位于形參列表的最后;

(2)參數(shù)數(shù)組必須是一維數(shù)組;

(3)不允許將params修飾符與ref和out修飾符組合起來使用;

(4)與參數(shù)數(shù)組對應的實參可以是同一類型的數(shù)組名,也可以是任意多個與該數(shù)組的元素屬于同一類型的變量;

(5)若實參是數(shù)組則按引用傳遞,若實參是變量或表達式則按值傳遞。

(6)用法:可變的方法參數(shù),也稱數(shù)組型參數(shù),適合于方法的參數(shù)個數(shù)不知的情況,用于傳遞大量的數(shù)組集合參數(shù);當使用數(shù)組參數(shù)時,可通過使用params關鍵字在形參表中指定多種方法參數(shù),并在方法的參數(shù)表中指定一個數(shù)組,形式為:方法修飾符 返回類型 方法名(params 類型[] 變量名)

{

方法體

}

希望對你有用

當前題目:python中hog函數(shù),python hog特征提取
分享鏈接:http://chinadenli.net/article8/dsesdip.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版ChatGPT微信小程序手機網(wǎng)站建設App設計建站公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設