任 雁,劉 佳
(河南林業(yè)職業(yè)學(xué)院,河南 洛陽 471000)
在機器人視覺的自動報警機器人中,最重要的工作就是實現(xiàn)機器人對運動目標的跟蹤[1],對目標特征的提取和對目標進行圖像分割是這項技術(shù)的基礎(chǔ)和關(guān)鍵。其中目標動作特征作為最主要的識別分割。目前許多監(jiān)控設(shè)置只能夠錄制案發(fā)視頻,卻不能在案發(fā)時迅速發(fā)出警報,導(dǎo)致許多案件不能被及時發(fā)現(xiàn),給破案造成了難度。
銀行預(yù)警安防智能機器人基于機械視覺通過感知模塊來實時監(jiān)測當前區(qū)域人們的運動狀態(tài)[2],對于銀行預(yù)警安防機器人,能夠準確檢測出當前人們的運動狀態(tài),而后通過主控模塊控制機器人的警報發(fā)送;通過定位模塊定位機器人所處位置,并可以通過手勢識別來判斷銀行的情形。
利用寬動態(tài)攝像頭等組成的感知模塊,能夠?qū)崟r、準確地檢測人們的動作。然而,由于環(huán)境本身的固有特性,隨著色彩、光照的外界變化,會產(chǎn)生不同程度的偏差,必須通過一些補光方法,對色彩采集數(shù)據(jù)進行融合,使拍攝的圖像與真實現(xiàn)場相吻合,其設(shè)計流程圖如圖1所示。
圖1 設(shè)計流程圖
機器人基于機械視覺,通過特征提取能夠偵測到目標在監(jiān)控區(qū)域內(nèi)的動作,通過特征提取模塊,進行模塊對比來判斷目標動作異常。
特征提取模塊可以分為兩項,分別是特征提取、手勢識別。其中圖像處理的初級運算是特征提取,其通過分析檢查所有單個的像素,從而確定這個像素是否代表了某個特征。
單目視覺的靜態(tài)手勢作為一種極為簡單的識別技術(shù),是手勢識別目前能夠運行的基礎(chǔ)。手勢識別這種模板匹配技術(shù)可以匹配待識別的手勢特征和提前儲存的模板參數(shù)特征,進而測量它們之間的相似度并完成任務(wù)。手勢識別會自動選取最小距離對應(yīng)的模板手勢作為它的識別結(jié)果。
本機器人使用圖像差分運算和圖像的小波變化來完成對目標的動態(tài)偵測,見圖2。
圖2 動態(tài)偵測直方圖
小波壓縮[3]能夠有效地將資料壓縮至最小,能夠使信息被迅速處理,便于數(shù)據(jù)的傳輸壓縮方法來確保本機器人對目標監(jiān)控的實時性和準確性。
圖3 是二維離散小波轉(zhuǎn)換的算法流程圖,輸入訊號x[m,n],由圖3 中順序可以得到,沿n 方向做離散小波轉(zhuǎn)換做完一階二維的離散小波變換。可以看出高頻部分,左下角位水平方向的邊緣,右上方為垂直方向的邊緣,右下方為圖像的角落。而左上角為低頻,可繼續(xù)做小波轉(zhuǎn)換,分出更粗略、接近原影像的縮圖,來達到壓縮效果。
圖3 算法流程圖
高斯噪聲可以被高斯濾波去除,高斯濾波屬于一種平滑的線性濾波,廣泛地應(yīng)用于圖像處理過程中減少高斯噪聲的工作[4],高斯濾波的實質(zhì)是加權(quán)平均在處理整幅圖像的應(yīng)用,它的目的是得到每個單個像素點的加權(quán)平均值,對圖像上每一個像素點本身和其相鄰區(qū)域的像素進行加權(quán)平均。
每一個在圖像中的像素都能使用模板掃描得到,在確定了每一個像素的值后,該模板中心點像素的值就會被先前由模板掃描確定的像素的加權(quán)平均后的灰度值代替。
高斯噪聲會任選一組瞬時值中的n 個,它的值服從正態(tài)分布,即按n 個變數(shù)的高斯概率定律來分布,屬于隨機噪聲,以下是它的概率密度函數(shù)表示:
高斯函數(shù)的密度函數(shù)曲線如圖4 所示。
圖4 高斯函數(shù)密度曲線圖
手勢識別是在現(xiàn)有手勢識別基礎(chǔ)上通過解決手心追蹤定位問題來實現(xiàn)手勢的識別和實施性的高效性[5]。
一個特定圖像中的所有顏色和具有與其相似的顏色的像素點均可被手勢識別中的自適應(yīng)閾值經(jīng)過操作得到,自適應(yīng)閾值能夠識別被二值化處理的圖像中莫表區(qū)域的特征,獲取目標手勢區(qū)域需要對二值化處理的圖像進行腐蝕,圖像平滑處理和膨脹處理,以便自適應(yīng)閾值讀取其中的手勢信息,確定當前的手勢,進行圖像目標區(qū)域特征的識別[6],見圖5。
圖5 手勢識別流程圖
手勢識別算法在機器人中完成目標手勢的確定和判斷[7],見圖6。
圖6 手掌的二值化圖像
(1)確定肢體最長和最邊緣的位置,手掌最先被確定,第一次掃描手覆蓋的區(qū)域,將該區(qū)域中最大的一列確定為MN,再記錄最長的像素為DMax和它包含的列數(shù)k,接著進行下一次掃描,確定并標記手的各個邊緣,如左邊緣AE,右邊緣BF。以上的具體操作法方法為:當手的最邊緣第一次出現(xiàn)列數(shù)滿足小于或等于k 且圖形像素點的顏色連續(xù)三次相同時,將之一列像素記為PQ,這一列的編號記為kPQ。
手的上邊緣:如果掃描的圖像區(qū)域中有格式大于DMax的像素點,并且其列數(shù)滿足小于或等于kPQ,該像素區(qū)域的像素變化幅度最明顯,則將其記為MK,編號為LMK。
經(jīng)測試,一個正常人的五根手指張開時最左邊緣和最右邊緣的最長部位之間的比值很接近0.50 或0.66 等數(shù)值。
(2)中點圓弧曲線確定。確定AB、CD、EF 后,分別取起點,記為M、K、N,其坐標依次為M(XM,YM)、K(XK,YK)、N(XN,YN)。位于一段圓弧中心的極半徑經(jīng)過三個確定的點,可用三角函數(shù)求出該極半徑。進而求得直線MK、NK的中垂線的方程L1、L2 隨后求的L1 與L2 的交點O,此交點即為由M、K、N 三點確定的唯一圓O(X0,Y0)的圓心,其圓心坐標及半徑R。
(3)確定最大內(nèi)接圓和其備選點后,在圓弧MN 上均等取出一定個數(shù)的點作為手掌的備選點,文章以選取五個作為演示,例如其中一個備選點為P,我們記該點到手心的每一個邊緣的直線距離為D1、D2、D3、D4、D5,被選取的點在掃描過的區(qū)域內(nèi)外接圓半徑的最大值將由以上數(shù)據(jù)中的最小值代替。
分別計算被選取的五個備選點最大外接圓半徑,確定其圓心為P,并將其最大直徑記為DMax,由此得到手指到手心最大內(nèi)切圓的半徑,手心的近似位置即為點P 所在位置。
(4)手指交割圓的確定[8]。將以上過程確定的手心近似位置點P 作為圓心,并以DMax的1/2 為半徑畫圓,然后逐個檢查該圓上每個像素點突變程度,從而判定手掌的具體位置以及手指和所畫的圓相交的情況,理解這個手勢具體的含義。
圖7、圖8 為不同光照條件下原始圖像對目標進行特征提取并進行二值化的結(jié)果,從中可以看出系統(tǒng)在不同環(huán)境下有著很好的適應(yīng)度。
圖7 光照強時
在圖7 情況下機器人能準確地提取出目標的二值化圖像,對比模板后不會進行報警;圖8 情況下,機器人根據(jù)目標的手勢動作,對比模版后已經(jīng)顯示報警。其中圖7為目標無動作異常時,圖8 是目標使用手勢提取功能。
圖8 光照弱時
基于機械視覺的銀行預(yù)警安防智能機器人的手勢識別的實驗結(jié)果如圖9 所示。
圖9 實驗結(jié)果圖
在本文中,作者提出了一種新的方法,它不僅能夠檢測目標的動作特征還能檢測手勢,主要過程是:
(1)提取RGB 圖像中的膚色物體,通過選擇最近位置來確定目標的位置。
(2)從深度圖像中分割目標更精確的形狀,根據(jù)RGB 圖像中檢測到的近似的位置,然后得到手的二進制圖像,如果兩個目標同時被檢測,可以使用二均值聚類成功將其分開。
(3)通過計算每個手連接區(qū)域的最大內(nèi)切圓的中心來確定手掌上中心,通過Graham 掃描算法找到每只手的凸包,通過組成等腰三角形和為等腰定點設(shè)置最小閾值,從凸包定點中選擇點來組成指尖。
(4)通過與數(shù)據(jù)庫中的手勢進行對比,發(fā)現(xiàn)一致時報警。