亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于OpenCV的人體輪廓檢測算法

        2020-08-12 02:32:50黃志遠(yuǎn)
        關(guān)鍵詞:高斯輪廓算子

        張 藝,匡 毅,王 梅,黃志遠(yuǎn),胡 松

        (成都理工大學(xué) 信息科學(xué)與技術(shù)學(xué)院,四川 成都 610059)

        0 引 言

        近年來,隨著人工智能與計算機(jī)視覺不斷地融入人們的生活,與之相關(guān)的人體輪廓檢測技術(shù)變得越來越重要。人體輪廓檢測除了民用,還廣泛運(yùn)用于如機(jī)場社會安全以及軍事偵察掃描等領(lǐng)域。下面根據(jù)人體輪廓檢測在現(xiàn)實中的各個領(lǐng)域的應(yīng)用作簡要說明:

        在自動駕駛方面,人體輪廓檢測可以運(yùn)用于實現(xiàn)車輛或駕駛?cè)藛T對于路況信息的實時精準(zhǔn)判斷,并對即將可能發(fā)生的危險進(jìn)行提前預(yù)警,以減少由于駕駛?cè)藛T注意力不集中或者疲勞駕駛等原因造成的車禍等安全隱患;在監(jiān)控系統(tǒng)方面,人體輪廓檢測可以運(yùn)用于家庭、學(xué)校、銀行、醫(yī)院等私人或公共領(lǐng)域場所,在遇到可疑人員靠近時可以通過人體輪廓檢測提前做出預(yù)警反應(yīng);在機(jī)場安全方面,人體輪廓檢測可以幫助機(jī)場安全監(jiān)管人員及時發(fā)現(xiàn)機(jī)場的安全隱患,對于機(jī)場的可疑人員或閑雜人等進(jìn)行提前預(yù)警,以減少不必要的安全事故;在軍事偵察方面,人體輪廓檢測可以幫助士兵或作戰(zhàn)指揮人員在戰(zhàn)場或演習(xí)過程中及時提早發(fā)現(xiàn)可疑人員或隱蔽的敵人。對于無人機(jī)偵察以及飛機(jī)障礙規(guī)避等方面都有較大的作用。

        基于OpenCV(open computer vision library)的人體輪廓邊緣檢測算法就是在各種研究的基礎(chǔ)上逐步成型與發(fā)展并日趨成熟,對于人體輪廓檢測在線性與非線性濾波、形態(tài)學(xué)處理以及各種檢測算法方面奠定了基礎(chǔ)和重要的借鑒經(jīng)驗。

        1 研究內(nèi)容

        人體輪廓檢測是計算機(jī)視覺領(lǐng)域的研究熱點,但現(xiàn)如今相關(guān)的論文及文獻(xiàn)并不是很多,其中面臨的問題也還有很多。該研究圍繞基于OpenCV的人體輪廓檢測展開,利用OpenCV-3.1.0視覺庫和Visual Studio 2012組建實驗平臺,針對圖像的去噪處理、圖像的形態(tài)學(xué)處理、基于OpenCV的邊緣檢測、孔洞填充、尋找輪廓、繪制輪廓等重點和難點進(jìn)行了研究[1]。

        主要研究內(nèi)容有以下幾點:

        (1)對人體輪廓檢測的發(fā)展現(xiàn)狀及國內(nèi)外學(xué)者的相關(guān)研究內(nèi)容及研究現(xiàn)狀進(jìn)行調(diào)研。

        (2)將搜尋獲取到的圖像進(jìn)行檢索,得到包含人體的圖像后進(jìn)行標(biāo)記與儲存。

        (3)為了減少圖像上的噪點,以防圖像失真,要對標(biāo)記儲存的含有人體的圖像進(jìn)行高斯濾波。

        (4)為了進(jìn)一步消除噪聲并且將圖像中獨立的元素分割出來,將去噪后的圖像進(jìn)行形態(tài)學(xué)處理,為了找出圖像中的局部最大值,對圖像進(jìn)行膨脹處理。

        (5)為了更好地將圖像轉(zhuǎn)換為圖像數(shù)據(jù),進(jìn)行Sobel邊緣檢測處理。

        (6)為了將人體更好地提取出來,在進(jìn)行邊緣檢測之后要對圖像進(jìn)行孔洞填充,之后進(jìn)行尋找人體輪廓以及繪制人體輪廓。

        2 圖像處理

        OpenCV和MATLAB都可對人體輪廓檢測進(jìn)行相關(guān)的處理[2],但OpenCV有大量優(yōu)化的代碼庫,而且可以在各種平臺上進(jìn)行圖像處理,而MATLAB的運(yùn)行較為緩慢,且計算機(jī)視覺方面的圖像處理工具箱成本較高,因此OpenCV應(yīng)用更普遍,因為其相關(guān)功能應(yīng)用完全免費,而且兩者的邊緣輪廓檢測效果差別不大。綜上所述,在計算機(jī)視覺及人體輪廓檢測方面,OpenCV更加適用。

        2.1 圖像去噪

        圖像的去噪處理即是對圖像進(jìn)行濾波操作。目的在于抽出圖像的特征以及去掉數(shù)字化圖像中的噪聲成分。通過調(diào)研發(fā)現(xiàn)高斯濾波更適用于人體輪廓檢測,所以文中重點討論的對象為高斯濾波。

        高斯濾波其實就是用高斯函數(shù)進(jìn)行濾波,是一種低通濾波[3]。高斯濾波是一種被廣泛使用的線性平滑濾波,雖然其效率比不上其他濾波,但在消除圖像方面一般被認(rèn)為是最有用的濾波。其原理的核心也是鄰域均值,不過和均值濾波不同的是,高斯濾波是首先設(shè)定一個模板(卷積、掩模等),然后將模塊確定的鄰域內(nèi)的像素點進(jìn)行加權(quán)平均,再將平均后的加權(quán)平均灰度值賦予模塊中心像素點。高斯濾波可以這樣掃描整個圖像的像素點然后各個進(jìn)行加權(quán)平均。

        另外,高斯濾波的效果使得圖像就像半透明一樣,與鏡頭的焦外成像效果不太一樣,圖像與正態(tài)分布進(jìn)行卷積得到高斯模糊,由于高斯函數(shù)經(jīng)過傅里葉變換得到另一種不一樣的高斯函數(shù),所以高斯濾波是一種低通濾波,其不斷減弱了圖像邊緣的頻率變化,對于消除正態(tài)分布形狀的噪聲效果很好[4]。均值為零的一維高斯函數(shù)為:

        G(x)=exp(-x2/(2sigma2))

        (1)

        可以看出在高斯濾波器中,像素的權(quán)重與距離其中心像素點的數(shù)值成正比。故而均值為零的二維高斯函數(shù)為:

        (2)

        高斯函數(shù)封裝在GaussianBlur函數(shù)中,其作用就是將圖像與高斯核函數(shù)進(jìn)行卷積,對支持這一運(yùn)算的就過濾掉。其函數(shù)原型為:C++:void GaussianBlur (InputArray src,OutputArray dst,Size ksize,double sigmaX,double sigmaY=0,int borderType=BORDER_DEFAULT)。

        其中,第一個參數(shù)為輸入圖像,即InputArray為輸入函數(shù)接口,表示src的類型,輸入圖像后填入mat類的對象。這個函數(shù)可以操作任意通道數(shù)的圖像,所以函數(shù)針對通道是獨立的。第二個參數(shù)為目標(biāo)圖像,即輸出OutputArray類型的dst,將原圖像進(jìn)行克隆,輸出具有相同類型及尺寸的目標(biāo)圖。第三個參數(shù)為設(shè)置Size類型的內(nèi)核的大小,如Size(4,4)即表示4*4的內(nèi)核大小。第四個參數(shù)即為高斯核函數(shù)于X方向上的標(biāo)準(zhǔn)差。第五個參數(shù)即為高斯核函數(shù)于Y方向上的標(biāo)準(zhǔn)差。第六個參數(shù)為整型的borderType,一般也有默認(rèn)值BORDER_DEFAULT。

        高斯濾波結(jié)果如圖1所示。

        圖1 原圖像與高斯濾波后圖像對比

        2.2 圖像形態(tài)學(xué)處理

        膨脹處理是一種經(jīng)典圖像形態(tài)學(xué)濾波,而圖像形態(tài)學(xué)即數(shù)學(xué)形態(tài)學(xué),形態(tài)學(xué)處理即針對離散圖片進(jìn)行的一種濾波模式,膨脹處理的原理與圖像腐蝕恰好相反[5]。圖像膨脹處理即首先確定一個任意形狀的結(jié)構(gòu)元素,此結(jié)構(gòu)元素一般較小且多為正多邊形及圓形。以中心像素點為錨點,將結(jié)構(gòu)元素與圖像進(jìn)行卷積,而后分析結(jié)構(gòu)元素與圖像的擊中點(即為結(jié)構(gòu)元素包含于圖像的部分),將錨點對圖像中的像素逐一掃描,并將結(jié)構(gòu)元素中像素點灰度最大值賦予錨點,又因為圖像中白色灰度值最高,即高亮度的部分會隨著灰度值賦予錨點的過程范圍逐漸變大。隨之而來低灰度值的部分則范圍變小,由此實現(xiàn)圖像膨脹處理。圖像膨脹處理的具體操作示意如圖2所示。

        圖2 膨脹操作示意圖

        膨脹的表達(dá)式如下:

        src(x+x',y+y')

        (3)

        圖像膨脹效果如圖3所示。

        圖3 原圖像與膨脹處理后圖像對比

        2.3 基于OpenCV的邊緣檢測

        圖像邊緣檢測在基于OpenCV的輪廓檢測中是極為重要的一環(huán),在圖像去噪與增強(qiáng)之后一般常用閾值化的方法進(jìn)行檢測。圖像的邊緣檢測是許多圖像分析的重要基礎(chǔ),比如在目標(biāo)區(qū)域識別領(lǐng)域、圖像分割領(lǐng)域以及區(qū)域形狀提取領(lǐng)域等等,也可以應(yīng)用到圖像識別領(lǐng)域來達(dá)到提取圖像的一般特征的目的[6-8]。圖像邊緣檢測在現(xiàn)如今的工程應(yīng)用中占有積極重要的地位,也是現(xiàn)如今的一個熱點問題,在許多圖像分析中都是首先要解決的問題。而基于OpenCV的邊緣檢測算子也有很多,比如最優(yōu)的Canny算子、Robert算子、Sobel算子、Laplacian算子、Prewitt算子、Krisch算子和Scharr濾波器等,該研究將以Canny算子、Sobel算子、Laplacian算子以及Scharr濾波器為例來講述數(shù)字圖像處理中的邊緣檢測。

        Sobel算子是一種典型的高通線性濾波器,其實是一種離散微分算子且主要用于邊緣檢測,具有方向性,會根據(jù)核的不同而改變其圖像的垂直頻率或水平頻率。其通過微分求導(dǎo)與高斯函數(shù)結(jié)合可求出圖像任何一處灰度的法向量或梯度矢量。

        通過設(shè)置坐標(biāo)零點的灰度值為128,而暗色則為負(fù)值,亮色為正值,然后這種基于方向的濾波器就會很容易地將核矩陣包含正負(fù)數(shù),然后保存到16位有符號的圖像中。而后再通過閾值化算法得到二值化圖像,從而獲得圖像的輪廓[9-10]。

        Sobel算法求出的各個點的梯度公式為:

        (4)

        Sobel算子的邊緣檢測結(jié)果如圖4所示。

        圖4 Sobel算子的邊緣檢測結(jié)果與原圖對比

        2.4 孔洞填充

        孔洞填充是此研究基于OpenCV的人體輪廓檢測的一個十分重要的步驟,同樣在很多輪廓檢測與提取中此函數(shù)也發(fā)揮了非常重要的作用。然而OpenCV并沒有像漫水填充一樣將其封裝成函數(shù)。其作用即為進(jìn)行另一種方式和目的的重建膨脹處理[11]。通過形態(tài)學(xué)膨脹填充將圖像中做需要的輪廓進(jìn)行標(biāo)記和提取,并制作目標(biāo)圖像的掩膜。當(dāng)與種子點相連接的連通區(qū)域幾乎全被染成特定顏色時,即完成孔洞填充。

        3 輪廓提取

        3.1 尋找并繪制人體輪廓

        作為人體輪廓檢測的最后一個步驟,為了實現(xiàn)對圖像中的人體輪廓提取,最終要進(jìn)行尋找人體輪廓,即要用到cvfindContours()函數(shù)[12]。在二值圖像中,findContours()函數(shù)的第一個參數(shù)即為輸入源圖像[13-19],從而使得通過Canny或Sobel等邊緣檢測算子進(jìn)行邊緣檢測后的圖像既得到了圖像的輪廓邊緣檢測又使得圖像進(jìn)行了灰度及二值化處理。第二個參數(shù)即為將上一步檢測得到的人體輪廓及運(yùn)算結(jié)果(函數(shù)調(diào)用)存儲為有方向的點的形式。第三個參數(shù)即為將圖像經(jīng)過以上處理后得到的拓?fù)湫畔⑦M(jìn)行輸出,并將檢測到的圖像中的所有物體的輪廓表示成索引編號的方式。第四個參數(shù)即表示上一步中圖像輪廓索引編號后的檢索的模式。第五個參數(shù)即為各種函數(shù)中輪廓選取的各種可選的近似辦法。最后一個參數(shù)即為每個圖像中輪廓像素點的可選的偏移值[20-21]。

        尋找輪廓之后,人體輪廓提取最重要的步驟即為繪制輪廓,即drawContours()函數(shù)。其中,繪制輪廓函數(shù)的第一個參數(shù)為目標(biāo)圖像,即Mat類的源圖像。第二個參數(shù)即為將所有輸入得到的圖像輪廓數(shù)據(jù)進(jìn)行存儲繼而存儲為有方向的點的形式。第三個參數(shù)即為是否繪制圖像輪廓的指示。第四個參數(shù)即為選擇及設(shè)置即將繪制出的輪廓的顏色。第五個參數(shù)即為表示所繪制圖像輪廓的邊緣粗細(xì)。第六個參數(shù)即為選擇線條的類型。第七個參數(shù)即為層次結(jié)構(gòu)信息。第八個參數(shù)即為表示在圖像輪廓的繪制中的最大的等級類型。最后一個參數(shù)即為表示即將繪制出的圖像輪廓的偏移參數(shù)[22]。

        3.2 輪廓檢測正確率測試

        第一組如圖5所示(正確率:86.7%)。

        第二組如圖6所示(正確率:95.5%)。

        第三組如圖7所示(正確率:92.9%)。

        (a)第一組測試原圖 (b)測試結(jié)果

        (a)第二組測試原圖 (b)測試結(jié)果

        (a)第三組測試原圖 (b)測試結(jié)果

        平均人體輪廓檢測正確率為:91.7%,符合預(yù)期目標(biāo)。

        4 結(jié)束語

        通過該研究討論,得出較為清晰的結(jié)論,即人體輪廓檢測雖然可以有眾多研究方案,如除了OpenCV還有MATLAB及Delphi等平臺或軟件可進(jìn)行圖像處理及輪廓檢測,但通過對比與分析,OpenCV更加適合于人體輪廓檢測的研究。而后對于圖像的預(yù)處理的諸多方案進(jìn)行分析研究得出結(jié)論,高斯濾波更加適合于人體輪廓檢測。在圖像預(yù)處理之后進(jìn)行了Canny算子或濾波器為基礎(chǔ)的眾多邊緣檢測算法,通過對比分析得出結(jié)論,Sobel算子更加適合于進(jìn)行含有人體輪廓圖像的人體邊緣檢測。

        然而此研究依然有許多問題與不足,比如此研究是基于人體輪廓做出的相關(guān)邊緣檢測,但各式各樣的圖像實在太多,所以各種各樣的人體輪廓背景的圖像也太多,當(dāng)圖像的灰度復(fù)雜度太大以及邊緣的閾值并不容易由二階微分或結(jié)構(gòu)元素掃描而得出的時候,對于人體輪廓的檢測則需要進(jìn)一步的優(yōu)化以提高人體檢測的正確率,且此研究的研究內(nèi)容在得出人體輪廓后的人數(shù)總結(jié)方面還有所欠缺,這些將會在今后加以完善。

        猜你喜歡
        高斯輪廓算子
        小高斯的大發(fā)現(xiàn)
        擬微分算子在Hp(ω)上的有界性
        OPENCV輪廓識別研究與實踐
        各向異性次Laplace算子和擬p-次Laplace算子的Picone恒等式及其應(yīng)用
        基于實時輪廓誤差估算的數(shù)控系統(tǒng)輪廓控制
        天才數(shù)學(xué)家——高斯
        一類Markov模算子半群與相應(yīng)的算子值Dirichlet型刻畫
        Roper-Suffridge延拓算子與Loewner鏈
        在線學(xué)習(xí)機(jī)制下的Snake輪廓跟蹤
        有限域上高斯正規(guī)基的一個注記
        久久精品国产自清天天线| 一区二区三区国产高清视频| 国产精品亚洲色婷婷99久久精品 | 亚洲精品视频中文字幕| 中文字幕在线日亚洲9| 中文乱码人妻系列一区二区| 国产午夜精品美女裸身视频69| 男人天堂插插综合搜索| 亚洲成a人v欧美综合天堂| 久久国产精久久精产国| 无码高潮久久一级一级喷水 | 久久亚洲av无码西西人体| 极品尤物高潮潮喷在线视频 | 99久久99久久精品免费看蜜桃| 中文亚洲av片在线观看不卡| 韩国三级大全久久网站| 沐浴偷拍一区二区视频| 免费a级毛片18以上观看精品| 欧美自拍区| 中文天堂一区二区三区| 美女视频黄是免费| 国产亚洲精品aaaaaaa片| 亚洲色图视频在线观看网站| 久久精品亚洲一区二区三区画质 | 亚洲福利天堂网福利在线观看| 久久久精品少妇—二区| 亚洲欧洲成人精品香蕉网| 97免费人妻在线视频| 国产午夜av一区二区三区| 亚洲女同恋av中文一区二区| 激情综合色综合久久综合| 国产婷婷丁香五月麻豆| 亚洲av色香蕉一区二区三区软件| 丰满人妻被两个按摩师| 天堂а√在线最新版中文| 粉嫩av一区二区在线观看| 久久九九精品国产av| 无码精品人妻一区二区三区人妻斩| 国产精品欧美韩国日本久久| 精品精品国产三级av在线 | 日本岛国精品中文字幕|