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

        ?

        基于深度圖像的動態(tài)指尖檢測

        2023-08-28 13:13:02敖良忠暢浩天丁堅賈文彬
        傳感器世界 2023年6期
        關(guān)鍵詞:深度檢測

        敖良忠 暢浩天 丁堅 賈文彬

        中國民用航空飛行學(xué)院航空發(fā)動機(jī)維修培訓(xùn)中心,四川廣漢 618307

        0 引言

        近幾年,計算機(jī)技術(shù)的發(fā)展使得人類生活的智能化成為主流,人機(jī)交互作為智能化的關(guān)鍵技術(shù),已經(jīng)變得越來越重要。機(jī)器人與人的交互方式一般包括語音交互、視覺交互、觸覺交互以及虛擬現(xiàn)實(shí)/增強(qiáng)現(xiàn)實(shí)等等。機(jī)器視覺技術(shù)的蓬勃發(fā)展促使視覺交互成為人機(jī)交互的主流方式,也促進(jìn)了機(jī)器人演示編程的發(fā)展。機(jī)器人演示編程即人教機(jī)器人如何去做,通過視覺傳感器拍攝人的演示過程引導(dǎo)機(jī)器人工作是機(jī)器人演示編程的常用方法。手勢作為視覺交互的一種方式,更貼近人與人的交流方法。在手勢識別的特征提取中,手掌區(qū)域和指尖是最常用的特征,指尖的動態(tài)檢測是對手勢實(shí)時跟蹤的主要手段。指尖檢測有基于輪廓特征分析的[1-2],有基于膚色空間提取前景手部圖像的[3-4],上述方法都是針對手部的彩色圖像,容易受到光照與背景的影響。在深度相機(jī)推出之前,只能獲取手部的彩色圖像信息,目前,大多數(shù)深度相機(jī)廠家推出的深度相機(jī)都可以同時獲取彩色和深度圖像信息。近幾年,基于深度信息進(jìn)行手勢識別與指尖檢測已經(jīng)有很多的相關(guān)研究。

        1 概述

        高晨等人[5]利用Kinect 獲取深度圖像,使用Open NI 手部跟蹤器檢測出手部位置,根據(jù)手部位置進(jìn)行深度閾值分割,提出一種結(jié)合凸包和曲率檢測指尖的算法。徐春鳳等人[6]研究了一種依托NITE 庫函數(shù)獲取手部信息,再使用道格拉斯-普克算法得到手的輪廓曲線,最后利用輪廓分析法,從凸包點(diǎn)中識別出指尖。上述2 種方法都可以檢測多個指尖,但是在手指并攏的情況下會出現(xiàn)誤檢,并且依賴第三方庫提供的手部跟蹤函數(shù)。姚玲等人[7]設(shè)計了一種將測地線距離和凸包結(jié)合的指尖檢測方法,該方法在手指并攏時也有很好的檢測效果。孟浩等人[8]提出了基于Kinect深度信息的指尖檢測-跟蹤-監(jiān)督算法。文獻(xiàn)[7]與文獻(xiàn)[8]的檢測方法具有較高的準(zhǔn)確性與較強(qiáng)的魯棒性,但是計算量較大,在跟蹤速度上略有不足。

        本文提出一種基于深度圖像的動態(tài)指尖檢測方法。首先,對獲取的深度圖像進(jìn)行預(yù)處理,改善圖像質(zhì)量;再運(yùn)用本文提出的距離分割,將所需距離范圍內(nèi)的前景深度圖像分割出來;之后,將前景深度圖像二值化,對二值圖像使用幀差法,去除靜態(tài)的部分;再運(yùn)用形態(tài)學(xué)算法將靜態(tài)的噪聲去除掉,得到動態(tài)的手部區(qū)域。針對手部區(qū)域,先運(yùn)用canny 算子提取手部輪廓;再獲取輪廓凸包點(diǎn)并計算其曲率。由于單用曲率判定指尖點(diǎn)魯棒性并不高,所以需要結(jié)合重心距離法來判斷正確的指尖點(diǎn),得到指尖點(diǎn)的像素坐標(biāo)后,就可以提取該點(diǎn)的深度信息;最后,依據(jù)相機(jī)的內(nèi)部參數(shù)與指尖點(diǎn)的像素坐標(biāo)得出指尖點(diǎn)在相機(jī)坐標(biāo)系下的三維信息。整體算法流程如圖1 所示。

        2 手部輪廓獲取

        2.1 深度圖像預(yù)處理

        圖2 是由PrimeSense Camine 1.08 深度傳感器采集的場景深度圖像??梢钥闯觯捎谠撛O(shè)備本身硬件的原因,用該設(shè)備采集的深度圖像質(zhì)量并不高,存在較多的噪聲與空洞。

        為了后續(xù)的輪廓提取和指尖檢測取得更好的效果,需要對獲取的場景深度圖像進(jìn)行預(yù)處理。由于深度圖像存在的椒鹽噪聲較多,本文采用中值濾波的方法去除噪聲。中值濾波是一種非線性平滑技術(shù),通過滑動窗口掃描整幅圖像,將窗口內(nèi)的像素值從大到小排列,將其中位數(shù)作為窗口中心點(diǎn)的像素值[9]。

        中值濾波原理如圖3 所示,設(shè)一個3×3 大小的掃描窗口,找出9 個像素值的中位數(shù),將其作為中心點(diǎn)的像素值,可以有效去除像素值為0 或?yàn)?55 的點(diǎn)。

        中值濾波效果如圖4 所示??梢钥闯觯?jīng)過中值濾波的圖像邊緣鋸齒感明顯減小,同時,圖像邊緣輪廓的重要特征依然存在,且去除了手部少部分的空洞。

        2.2 距離分割與二值化

        PrimeSense Camine 1.08深度傳感器測距范圍在0.6~3.5 m 之間,如果想要較為準(zhǔn)確地檢測到手部區(qū)域,手必須在這個范圍內(nèi)活動。在實(shí)際應(yīng)用中,例如體感游戲,手勢識別機(jī)器人控制等一般不需要這么大的活動范圍。

        假設(shè)在實(shí)際應(yīng)用中,需要在1~1.5 m 的范圍內(nèi)實(shí)時檢測到手部區(qū)域,這時可以設(shè)定一個測距范圍(可以是0.8~1.7 m)將手部分割出來,即依據(jù)距相機(jī)的距離進(jìn)行分割。具體算法如下:

        遍歷中值濾波后的圖像的所有像素點(diǎn),并提取每一個點(diǎn)的深度信息,將深度信息在0.8~1.7 m(根據(jù)實(shí)際情況進(jìn)行調(diào)整)的像素點(diǎn)賦值為0,其他的像素點(diǎn)賦值為255,這樣就得到了分割后的二值圖像,如圖5 所示。

        可以看到,成功獲得了手部區(qū)域的輪廓,但是在0.8~1.7 m 這個范圍內(nèi)還有一把靜態(tài)的椅子存在,所以同時也獲得了椅背區(qū)域的輪廓。

        2.3 幀差法

        為了獲得手部的二值圖像,只有將前景二值圖像中靜態(tài)的部分去除。本文采用幀差法去除靜態(tài)的背景。幀差法是對連續(xù)2 幀圖像進(jìn)行差分,得到對應(yīng)像素灰度值的變化。其主要工作流程如圖6 所示。

        其中,fk(x,y)、fk-1(x,y)為連續(xù)的2 幀圖像;Dx(x,y)為幀差圖像;T1為設(shè)定的閾值。出現(xiàn)物體運(yùn)動時,幀與幀之間會出現(xiàn)較為明顯的差別,2 幀相減,得到2 幀圖像亮度差的絕對值,判斷它是否大于閾值[11]來分析視頻或圖像序列的運(yùn)動特性。差分圖像值為0,代表2個圖像之間沒有發(fā)生運(yùn)動位置;值為1,則代表2 個圖像之間發(fā)生變化的位置。

        運(yùn)用幀差法處理前景二值圖像后的結(jié)果如圖7所示。

        幀差法雖然去除掉大部分靜態(tài)的椅背部分,但依舊有椅背邊緣的毛刺、噪聲存在,會影響后續(xù)對手部輪廓的提取。

        為解決上述問題,可以使用OpenCV 庫中的形態(tài)學(xué)算法腐蝕(erode)。腐蝕算法是針對圖像中的高亮部分即二值圖像中的白色區(qū)域。為了不過多改變輪廓原有特征,同時能去除邊緣毛刺,經(jīng)過多次實(shí)驗(yàn),將腐蝕算法的窗口設(shè)定為3×3 的大小,效果如圖8 所示。

        2.4 提取手部輪廓

        在獲得形態(tài)學(xué)算法處理的手部二值圖像后,本文選用Canny 邊緣檢測算法提取手部輪廓。Canny 邊緣檢測算法是對信噪比和定位之乘積的最優(yōu)化逼近算子,用來計算圖像邊緣的梯度幅度和相位值,選取合理幅度閾值來確定邊緣點(diǎn)。檢測效果如圖9 所示。

        3 指尖檢測

        3.1 提取輪廓凸包

        凸包[12-14]是一個計算幾何圖形學(xué)中的概念。在二維空間中,凸包可以當(dāng)成一條剛好圍住所有點(diǎn)的圓圈。對于給定二維平面上的點(diǎn)集,凸包常常就是將最外層的點(diǎn)連接起來構(gòu)成的凸多邊形,它能包圍點(diǎn)集中所有的點(diǎn)。OpenCV 中提供了函數(shù)convexHull 用于對物體輪廓凸包進(jìn)行檢測,其API 如下:

        convexHull(InputArray points, OutputArray hull,bool clockwise=false, bool returnPoints=true)

        其中,points 是輸入的二維點(diǎn)集;hull 是輸出參數(shù),用于輸出函數(shù)調(diào)用后找到的凸包;clockwise 是檢索方向,當(dāng)標(biāo)識符為真時,輸出凸包為順時針方向,否則為逆時針方向;returnPoints 是操作標(biāo)識符,默認(rèn)值為true,此時返回各凸包的各個點(diǎn),當(dāng)輸出數(shù)組std::vector 時,此標(biāo)識被忽略。

        對手部輪廓提取凸包的效果如圖10 所示。

        3.2 檢測凸包點(diǎn)曲率

        將手部最大輪廓和凸包的公共點(diǎn)作為指尖的候選點(diǎn),設(shè)候選指尖點(diǎn)集為C,對于任意屬于C的點(diǎn)Pi,在指尖點(diǎn)位置輪廓兩邊尋找距離指尖點(diǎn)最近的k個像素點(diǎn)。計算向量PiPi-k和PiPi+k之間所形成的夾角的k余弦值[10]:

        由式(2)可知,向量PiPi-k和PiPi+k的k值決定k余弦的值??梢栽O(shè)定一個閾值β,當(dāng)k余弦值大于閾值時,Pi即為指尖點(diǎn)。使用k曲率檢測算法得到的Pi點(diǎn)如圖11 所示。

        從圖11 中看出,雖然檢測出了正確的指尖點(diǎn),但也存在一些誤檢點(diǎn)。

        3.3 重心距離法

        檢測曲率的方法雖然能夠檢測到指尖點(diǎn),但有時從深度圖像提取到的手部輪廓效果并不好,會出現(xiàn)誤檢點(diǎn),所以就需要將誤檢點(diǎn)剔除。將曲率檢測得出的正確指尖點(diǎn)和誤檢點(diǎn)作為新的候選指尖點(diǎn),并放入新的點(diǎn)集D,再通過重心距離法尋找正確指尖點(diǎn)。

        已知二值圖像I(x,y),設(shè)像素點(diǎn)坐標(biāo)為i、j,它的(p+q)階矩Mpq為:

        由上述公式可知,圖像的0 階矩為:

        圖像的1 階矩為:

        通過0 階矩與1 階矩可以計算出手部輪廓的重心坐標(biāo),如式(7):

        得到重心坐標(biāo)之后,遍歷點(diǎn)集D,計算點(diǎn)集D中每個點(diǎn)到重心的距離的平方。

        將D中距離重心最遠(yuǎn)的點(diǎn)作為正確的指尖點(diǎn),并提取其二維像素坐標(biāo),如圖12所示。

        3.4 指尖點(diǎn)三維坐標(biāo)

        結(jié)合輪廓曲率與重心距離法,得到指尖點(diǎn)在初始深度圖像中的二維像素坐標(biāo),之后就可以提取該像素點(diǎn)的深度值。已知指尖點(diǎn)的像素坐標(biāo)及其深度值,再結(jié)合深度相機(jī)紅外鏡頭的內(nèi)參就可以計算出指尖點(diǎn)在相機(jī)坐標(biāo)系下的三維坐標(biāo)。

        深度相機(jī)紅外鏡頭的內(nèi)參可由張正友標(biāo)定法[15]獲得,結(jié)果如下:

        其中,(Cx,Cy)為主點(diǎn)坐標(biāo);(fx,fy)為焦距。

        已知指尖點(diǎn)像素坐標(biāo)(u,v),深度值d、s是深度圖的縮放因子,由式(8)可得指尖點(diǎn)在相機(jī)坐標(biāo)系下的三維坐標(biāo)(x,y,z):

        4 動態(tài)指尖檢測實(shí)驗(yàn)

        通過深度相機(jī)采集一段手部運(yùn)動的深度圖像視頻流,運(yùn)用本文的方法檢測動態(tài)指尖,觀察檢測的效果,并從中隨機(jī)截取9 幀進(jìn)行分析,如圖13 所示。

        圖14 是使用本文算法的指尖檢測結(jié)果??梢钥闯觯S機(jī)的幾幀圖像中,指尖位置、手部姿態(tài)各不相同,但是運(yùn)用本文算法都能準(zhǔn)確地檢測到指尖點(diǎn)。

        4.1 誤差實(shí)驗(yàn)

        第1 步,將一個圓錐形工件放在距離深度相機(jī)紅外鏡頭的1 m 處,盡量使使圓錐頂點(diǎn)的實(shí)際深度信息為1 m;第2 步,開啟深度相機(jī)并運(yùn)行檢測程序;第3 步,使手指運(yùn)動到圓錐頂點(diǎn)處并記錄此時程序輸出的指尖點(diǎn)深度信息;第4 步,重復(fù)第3 步,共記錄5 次。此為1組實(shí)驗(yàn)。

        改變工件位置,分別在距離相機(jī)紅外鏡頭1.1 m、1.2 m、1.3 m、1.4 m 以及1.5 m 處,共做6 組實(shí)驗(yàn)。實(shí)驗(yàn)數(shù)據(jù)如表1 所示。

        表1 實(shí)驗(yàn)數(shù)據(jù)

        4.2 誤差分析

        從表1 數(shù)據(jù)可以看出,幾組數(shù)據(jù)的標(biāo)準(zhǔn)差都比較大,在3 mm 左右,每組實(shí)驗(yàn)的重復(fù)精度較差。主要原因是在實(shí)驗(yàn)中,人控制手指去重復(fù)觸碰圓錐的頂點(diǎn)時并不能保證手指每次都會運(yùn)動到絕對的同一個點(diǎn),存在人為誤差;還有一個影響因素就是設(shè)備本身存在的重復(fù)定位精度誤差。

        在表1 數(shù)據(jù)中,每組實(shí)驗(yàn)的均值都與實(shí)驗(yàn)預(yù)設(shè)的數(shù)據(jù)有差值,這個差值在1.418 mm 到20.654 mm 之間。這個誤差來源一方面是由于測量工具、人為因素以及相機(jī)外殼等原因,使得圓錐工件并不能完全準(zhǔn)確地放置在實(shí)驗(yàn)預(yù)想的位置,會導(dǎo)致一定的位置誤差;另一方面就是設(shè)備本身的絕對精度誤差。

        5 結(jié)束語

        本文提出的基于深度圖像的動態(tài)指尖檢測算法實(shí)現(xiàn)了指尖的實(shí)時快速跟蹤,并且手部在不同姿態(tài)下都能定位指尖的位置,不受外界環(huán)境光線的影響,具有較高的魯棒性,但是準(zhǔn)確性方面會受到深度圖像質(zhì)量以及傳感器本身精度的影響。由于本文提出的檢測方法主要用于機(jī)器人的演示編程,而演示編程是人來引導(dǎo)機(jī)器人工作,會存在較大的人為誤差,所以并不能用于對精度要求較高的機(jī)器人作業(yè)。但是演示編程的最大優(yōu)點(diǎn)就是快速性、便捷性,本文的方法完全符合演示編程對快速性以及便捷性的要求。由于設(shè)備的限制,本文實(shí)驗(yàn)應(yīng)用的深度相機(jī)精度并不高,如果能采用精度更高的視覺傳感器,可以降低系統(tǒng)誤差,從而提升檢測結(jié)果的準(zhǔn)確性。

        猜你喜歡
        深度檢測
        “不等式”檢測題
        “一元一次不等式”檢測題
        “一元一次不等式組”檢測題
        “幾何圖形”檢測題
        “角”檢測題
        深度理解一元一次方程
        深度觀察
        深度觀察
        深度觀察
        深度觀察
        午夜国产在线| 亚洲一区二区三区免费的视频| 亚洲国产视频精品一区二区| av中文码一区二区三区| 99久久国产精品免费热| 亚洲av成人片色在线观看高潮 | 国产亚州精品女人久久久久久| 天堂中文在线资源| 最近中文av字幕在线中文| 色哟哟av网站在线观看| 青青草免费手机直播视频| 国产精品女直播一区二区| 中国精品18videosex性中国| 免费观看的av毛片的网站| 青草热久精品视频在线观看| 亚洲精品尤物av在线网站| 亚洲成人av一区二区| 虎白女粉嫩粉嫩的18在线观看| 精品福利一区二区三区免费视频| 久久视频在线| 欧美成aⅴ人高清免费| 国产精品国产三级国产AvkTV| 久久国产精品美女厕所尿尿av| 久久久国产精品无码免费专区| 久久亚洲国产成人精品性色| 中文乱码人妻系列一区二区| 中文字幕亚洲综合久久| 性色av色香蕉一区二区蜜桃| 国产白袜脚足j棉袜在线观看| 国产亚洲av手机在线观看| 一区二区无码精油按摩| 亚洲女同同性一区二区| 国产精品久久久久aaaa| 双乳被一左一右吃着动态图| 色丁香在线观看| 亚洲天堂av另类在线播放| 老女人下面毛茸茸的视频| 热99re久久精品这里都是精品免费| 亚洲av纯肉无码精品动漫| 国产精品女丝袜白丝袜| 日韩精品乱码中文字幕|