在數字圖像處理中ATR(自動目標識別)是一個富有挑戰性的課題,特別是在背景環境不可控的情況下,其難度與復雜度不言而喻。國家也投入了大量的財力物力推進其發展,在各大高校、科研院所也有相應的機構進行專門的研發,在研究生學歷攻讀階段,也有相應的基礎和高級課程的設計。今天,我不是以一個科研人員的身份進行說話,而是站在一個普通的圖像算法應用工程師的角度總結下我的工作經驗,不足之處,多多海涵!
下面,我以一個人臉目標的檢測為例,使用OpenCV2.4.7做一個HOG+SVM的檢測實例。實例中,使用皮膚檢測分割作為快速目標檢測。HOG參數設置為64X64,Cell:16,Block:32,Bin:9
1、總體設計HOG是一個圖像的特征,全稱梯度方向直方圖,是使用圖像局部梯度對圖像進行描述的一種方式。SVM是一個高維度的分類器,全稱支持向量機,是一種結構化風險較低的分類器,也是目前研究領域較為熱門的分類器。我們關注的焦點不是如何實現他們,而是如何在開發中正確有效的使用他們。從總體上,可以將方案分為四大部分,一是分類器的訓練;二是目標疑似區提取,即檢測部分;三是使用分類器進行虛警踢除,即識別部分;四是聚類定位。
2、分類器的訓練部分主要是完成樣本的采集、管理、特征提取以及SVM的訓練。樣本的采集部分一般是使用現有的標準數據庫,或者使用PS一類的圖像處理軟件進行裁剪采集,需要說明的是所有樣本尺寸需一致,且符合HOG特征提取要求。樣本管理是正確的組織管理大量樣本,最好有一個樣本管理軟件。不要小看這部分,對于小量樣本來說管理部分確實簡單,但是,對于海量數據來說,其管理難度可想而知。特征提取部分我建議使用opencv的HOGDescriptor類進行實現,使用簡便。svm分類器訓練部分可以使用opencv的SVM類,但是,出于對訓練結果的可視性,我建議使用C語言版本的libSVM,這是***一大學教授耗時3年多編制而成,opencv也是使用他的源碼進行封裝,連調用接口都幾乎一致。完成訓練部分以后,保存訓練模型,以便于識別部分使用。特別提醒的是, 對于SVM的訓練而言,對訓練數據進行歸一化是一個很重要的過程,有可能影響到訓練的成功與否。
3、快速目標檢測 (1)原始圖像
目標疑似區提取是一個快速目標檢測的過程,這也是一個比較棘手的過程。目標疑似區提取有兩大原則,一是不能丟失目標,二是盡可能減少疑似區。根據這兩個原則,針對實際情況進行算法定制。常見的有局部對比度分割,或者是恒虛警算法、基于顏色的分割、基于邊緣的分割等等……局部對比度分割適用于尺寸較小,與周圍背景對比度強烈的目標。基于顏色分割適用目標顏色特征較為明顯的目標,如車牌、綠色植物、鼠標墊等。快速檢測部分的設計應該基于量大原則:一是目標不遺落原則。快速檢測部分只是在宏觀選上對目標進行篩選,此時遺落目標后續算法就毫無意了;二是高效原則。快速檢測部分應該是基于底層圖像信息,如亮度、邊緣等知識進行處理,盡可能減少算法耗時。
(2)、皮膚檢測
(3)、皮膚分割
4、目標識別部分是在快速檢測的結果上進行,快速檢測部分提供了目標的疑似區域,在疑似區域對應的原始圖像上,形成目標切片、提取特征、分類器判定,形成目標候選區域。目標識別部分的主要工作體現在分類器的訓練,因為識別部分只是使用與訓練部分相同的特征提取方式,以及分類模型的導入等。
(4)、HOG+SVM檢測
5、目標聚類部分的目的是為了準確找出目標的中心。在分類器鑒別后形成的目標候選點集合中,如果可以確認只存在一個目標,那么聚類部分就非常簡單了,只需要求出所有候選點的質心就是目標的中心了。對于目標個數不確定的情況,我們通常有這樣幾種解決方案:一是通過領域候選點矩陣進行聯通域提出,以每個聯通域的質心為目標中心。二是使用領域候選點增長法。
(5)、聚類結果
-
檢測
+關注
關注
5文章
4507瀏覽量
91596 -
數字圖像處理
+關注
關注
7文章
103瀏覽量
18939 -
識別
+關注
關注
3文章
173瀏覽量
31982
發布評論請先 登錄
相關推薦
評論