冀 婷
(西安石油大學(xué),陜西 西安 710065)
由于語(yǔ)音識(shí)別、圖像理解、EMG信號(hào)提取等技術(shù)的發(fā)展,基于語(yǔ)音、手勢(shì)姿態(tài)的人機(jī)交互技術(shù)應(yīng)用也在日益擴(kuò)展,因此繁衍出更多的創(chuàng)新型人機(jī)交互技術(shù)[1]。人機(jī)交互技術(shù)是由視覺(jué)傳感器檢測(cè)并獲取目標(biāo)的三維數(shù)據(jù),并將其通過(guò)計(jì)算機(jī)變成視覺(jué)實(shí)體,使圖形信息能夠被直觀地檢測(cè)和分析。傳統(tǒng)方法包括圖像信息檢測(cè)方法[2]、異常檢測(cè)法[3]。但是在當(dāng)前技術(shù)下,存在一個(gè)關(guān)鍵的技術(shù)難題:感知三維數(shù)據(jù),也就是如何進(jìn)行三維數(shù)據(jù)協(xié)同感知。在檢測(cè)中,如果過(guò)量采樣會(huì)造成數(shù)據(jù)堆疊,浪費(fèi)計(jì)算機(jī)軟硬件資源,若采樣不足也將造成空間頻譜混疊致使檢測(cè)結(jié)果出現(xiàn)偏差,所以理想的采樣選取是非常必要的。
為了提升檢測(cè)效果,本文構(gòu)建一種基于人機(jī)交互的三維數(shù)據(jù)協(xié)同可視檢測(cè)仿真,將柵格化的三維數(shù)據(jù)通過(guò)簇分類、特征提取與決策函數(shù),對(duì)目標(biāo)進(jìn)行精準(zhǔn)劃分與檢測(cè),該法具備較好的檢測(cè)準(zhǔn)確度和平穩(wěn)度。
該框架通過(guò)C/S結(jié)構(gòu)[4],由服務(wù)設(shè)備下達(dá)執(zhí)行命令,服務(wù)端保留目標(biāo)數(shù)據(jù)和相關(guān)參數(shù),如增添新目標(biāo),服務(wù)設(shè)備將發(fā)送新的執(zhí)行命令;其中不僅含有操作命令,而且包含反饋命令。為縮短反饋時(shí)長(zhǎng),采取用戶群互通的交互方法。
服務(wù)設(shè)備主要是執(zhí)行保存和下達(dá)等指令。數(shù)據(jù)傳輸?shù)街鲗?dǎo)的服務(wù)端后會(huì)保存至服務(wù)設(shè)備,然后再由該設(shè)備下達(dá)給各用戶端。
基于C/S結(jié)構(gòu)的服務(wù)設(shè)備和用戶端性能分類如圖1所示。
圖1 服務(wù)設(shè)備和用戶端性能分類圖
在三維數(shù)據(jù)協(xié)同可視檢測(cè)時(shí),需要將二維數(shù)據(jù)重建實(shí)現(xiàn)三維建模,即三維建模[5]等于是每個(gè)二維數(shù)據(jù)的堆疊。三維建模流程圖表明,閾值檢測(cè)行為是在閾值數(shù)量設(shè)置好后才執(zhí)行的,也就是說(shuō),通過(guò)灰度直方圖檢測(cè)、目標(biāo)邊緣灰度統(tǒng)計(jì)或固定閾值方法,能夠得出作為建?;A(chǔ)的邊界閾值數(shù)量。最后結(jié)合背景和材質(zhì),獲得三維數(shù)據(jù)圖像。當(dāng)渲染結(jié)果不太理想時(shí),可以通過(guò)調(diào)整需繪制的邊界數(shù)量或選擇不同閾值,來(lái)獲得令人滿意的結(jié)果。多數(shù)情況下,該構(gòu)建流程都可以使檢測(cè)目標(biāo)生成較為理想的三維數(shù)據(jù)結(jié)果。
由于Kinect傳感器的傳輸頻率比較快,獲取與反饋數(shù)據(jù)信息時(shí)基本實(shí)現(xiàn)同步傳達(dá),再加上三維數(shù)據(jù)協(xié)同模型采集的數(shù)據(jù)為點(diǎn)云數(shù)據(jù),所以協(xié)同感知環(huán)境下對(duì)目標(biāo)三維數(shù)據(jù)的提取又迅速又精準(zhǔn),而且還能實(shí)時(shí)檢測(cè)。
雖然獲得的點(diǎn)云數(shù)據(jù)較為精確,但數(shù)據(jù)量又龐大又散亂,因此,要通過(guò)鄰域查詢等途徑重建數(shù)據(jù)信息。采取柵格法[6]將點(diǎn)云數(shù)據(jù)進(jìn)行劃分,不僅可以提升鄰域查詢的效率,而且對(duì)數(shù)據(jù)篩選起著重要的作用。該法為一種普適又有效的分類方案,在實(shí)際操作中能夠快速對(duì)數(shù)據(jù)進(jìn)行劃分處理。
柵格分類法的具體步驟為:獲取背景信息的點(diǎn)云數(shù)據(jù),所測(cè)范圍內(nèi)目標(biāo)出現(xiàn)時(shí),Kinect傳感器將同步采集到點(diǎn)云數(shù)據(jù)P,設(shè)定P點(diǎn)的最大三維數(shù)值是xmax,ymax,zmax;最小三維數(shù)值是xmin,ymin,zmin。所有極值的坐標(biāo)交錯(cuò)后形成極小長(zhǎng)方體柵格,假設(shè)所測(cè)范圍的邊長(zhǎng)為L(zhǎng),空間點(diǎn)云被分成的柵格數(shù)量為n,由柵格化公式推算得出柵格數(shù)量n的公式
(1)
把獲得的點(diǎn)云數(shù)據(jù)與柵格一一對(duì)應(yīng)后,做差所得的結(jié)果就是該目標(biāo)在點(diǎn)云空間內(nèi)的點(diǎn)云信息。通過(guò)將柵格分類點(diǎn)云數(shù)據(jù)減去背景原始數(shù)據(jù),獲取目標(biāo)的點(diǎn)云信息,再以二維數(shù)據(jù)形式進(jìn)行存儲(chǔ),當(dāng)各數(shù)據(jù)點(diǎn)保存到相應(yīng)的柵格查詢數(shù)據(jù)庫(kù)時(shí),對(duì)其下達(dá)鄰域查詢指令,指令執(zhí)行時(shí)從該點(diǎn)柵格開(kāi)始查詢,如沒(méi)有查詢結(jié)果,則繼續(xù)查詢其周圍的柵格,從而減少對(duì)全部點(diǎn)云數(shù)據(jù)查詢的指令操作,簡(jiǎn)化非鄰域點(diǎn)的運(yùn)算,在一定程度上加快查詢速度。
通過(guò)柵格法采集可用的點(diǎn)云信息,得到基于Kinect傳感器的目標(biāo)數(shù)據(jù),將其排列成目標(biāo)的點(diǎn)云二維數(shù)值方陣,并假定該方陣是A1;根據(jù)旋轉(zhuǎn)矩陣[7]R和平移矩陣t推算成三維數(shù)值后,將得到的方陣假定為A,再利用模型和傳感器提取的點(diǎn)云數(shù)據(jù)得出目標(biāo)的三維坐標(biāo)數(shù)據(jù)。
為了使獲取的點(diǎn)云信息更為精準(zhǔn),在采集到經(jīng)柵格分類的點(diǎn)云數(shù)據(jù)后,需通過(guò)濾波算法做降噪處理。Kinect傳感器可以獲得所有點(diǎn)的三維點(diǎn)云信息(即各點(diǎn)的x、y、z數(shù)值),且模型提取的是目標(biāo)在y軸上的全部數(shù)據(jù)信息。
由獲得的點(diǎn)云數(shù)據(jù)得出水平方向y的極值(即ymin、ymax)和垂直方向z的極值(即zmin、zmax),把兩對(duì)極值投影至yz坐標(biāo)系上,設(shè)定O是三維數(shù)據(jù)協(xié)同模型坐標(biāo)系的原點(diǎn),y軸為x值等于0的點(diǎn)集合,也是該坐標(biāo)系的正方向;其中,ymin、ymax、zmin和zmax的投影點(diǎn)分別是點(diǎn)A、B、C、D。由Kinect傳感器和模型協(xié)同得到的旋轉(zhuǎn)矩陣R和平移矩陣t,推算出點(diǎn)A、B、C、D的三維坐標(biāo)數(shù)據(jù)。用點(diǎn)A舉例說(shuō)明
(xA,yA,zA)=R(x1,y1,z)+t
(2)
創(chuàng)建被點(diǎn)O、A、B、C、D所構(gòu)成的多面體,求得成像角度的過(guò)程如圖2所示。
圖2 三角形構(gòu)建示意圖
從上圖中可以得知多面體的所有線段長(zhǎng),用線段AB舉例說(shuō)明
(3)
多面體中含有三角形:ΔAOB、ΔAOC、ΔAOD、ΔBOC、ΔBOD、ΔCOD,用ΔAOB舉例說(shuō)明,由三角形余弦定理可知
(4)
根據(jù)上式即可得到所有三角形中以點(diǎn)O為頂點(diǎn)的全部角度,通過(guò)對(duì)比得出最大角度,也就是三維數(shù)據(jù)協(xié)同模型的可視范圍,為提高目標(biāo)數(shù)據(jù)信息采集的精準(zhǔn)度奠定基礎(chǔ)。
在人機(jī)交互的條件下,如想獲取更多目標(biāo)數(shù)據(jù)信息,那么要根據(jù)三維數(shù)據(jù)協(xié)同模型,將所測(cè)目標(biāo)歸類劃分,進(jìn)而對(duì)目標(biāo)的細(xì)節(jié)所屬進(jìn)行標(biāo)識(shí)并實(shí)現(xiàn)可視檢測(cè)。
2.3.1 k-means分類法
分類法中較為簡(jiǎn)潔有效的劃分方法為k-means算法[8],該算法具有普適性,其類別判定的標(biāo)準(zhǔn)為長(zhǎng)度,原理是根據(jù)長(zhǎng)度對(duì)目標(biāo)進(jìn)行劃分并組成有差異的簇,兩點(diǎn)間長(zhǎng)度愈短,那么屬于相同類別的可能性愈大,從而獲得一個(gè)分類準(zhǔn)則,即牢固又獨(dú)立的簇。
于某一存在空間里采集一組數(shù)據(jù){x1,…,xN},其被劃分成簇的數(shù)量為K,如果僅考慮歐幾里得空間方面,則應(yīng)該把長(zhǎng)度較短的點(diǎn)劃分成一個(gè)簇,而其它不同簇里的點(diǎn),其長(zhǎng)度應(yīng)該較長(zhǎng)。k-means算法的原理為提取K個(gè)分類中心μk(k=1,…,K),然后把全部數(shù)據(jù)分別劃分給與其之間長(zhǎng)度最短的分類中心,以達(dá)到各點(diǎn)與其所屬分類中心之間長(zhǎng)度的平方和為極小值的目的。
數(shù)據(jù)點(diǎn)xn用邏輯變量rnk∈{0,1}代替,針對(duì)分類k的劃分,當(dāng)數(shù)據(jù)點(diǎn)xn劃分為第k類別時(shí),那么rnk=1,反之,rnk=0。因此,對(duì)損失函數(shù)做出下列定義
(5)
上式,損失函數(shù)的分類標(biāo)準(zhǔn)是rnk,分類中心是μk。
當(dāng)損失函數(shù)J為極小值時(shí),求得全部數(shù)據(jù)點(diǎn)的分類標(biāo)準(zhǔn){rnk}與分類中心{μk}。此時(shí)的k-means算法通過(guò)將不斷變化的原始數(shù)據(jù)遞推為新數(shù)據(jù)的過(guò)程,使重復(fù)反饋的rnk和μk得到持續(xù)的交替改良。具體步驟如下:
首先,獲取分類中心μk的初始數(shù)據(jù),推算出損失函數(shù)J為極小值時(shí)的數(shù)據(jù)點(diǎn)分類標(biāo)準(zhǔn)rnk,根據(jù)損失函數(shù)定義,已知xn與μk值,損失函數(shù)J為rnk的線性函數(shù),因?yàn)閤n的數(shù)據(jù)點(diǎn)間毫無(wú)聯(lián)系,為了獲取各數(shù)據(jù)點(diǎn)n,把該數(shù)據(jù)點(diǎn)劃分到與其之間長(zhǎng)度最短的分類中心內(nèi),如下式所示
(6)
根據(jù)上式得到的rnk,推算出損失函數(shù)J為極小值時(shí)的分類中心μk。已知rnk值,損失函數(shù)J為μk的二次函數(shù),當(dāng)因變量J對(duì)自變量μk進(jìn)行求導(dǎo),導(dǎo)數(shù)值為0時(shí),那么有
(7)
所以μk取值推導(dǎo)為如下公式
(8)
關(guān)于第K個(gè)類別,當(dāng)rnk選定是1時(shí),數(shù)值為其類別內(nèi)點(diǎn)的數(shù)量,所以μk為其類別內(nèi)點(diǎn)的均值。
重復(fù)反饋的過(guò)程,等空間內(nèi)所有的數(shù)據(jù)信息全部處理完全后才會(huì)停止,數(shù)據(jù)分類效果逐漸趨于理想化。
目標(biāo)通過(guò)k-means算法分類處理后,其分割的各區(qū)域特征也要收集提取,通常采取的特征提取法為L(zhǎng)BP特征提取、Haar特征提取等。本文主要利用LBP特征提取法來(lái)獲得處理后的目標(biāo)特征。
2.3.2 LBP特征獲取
目標(biāo)特征為該目標(biāo)與其它目標(biāo)之間存在的差異點(diǎn)或者目標(biāo)自身具有的獨(dú)特特征。LBP算法[9](Local Binary Pattern,也叫局部二值模式)是用于對(duì)目標(biāo)細(xì)節(jié)紋理特征進(jìn)行分類的運(yùn)算符,其具備不變性的優(yōu)勢(shì),例如旋轉(zhuǎn)不變性、灰度不變性等,并展現(xiàn)出良好的分割效果,廣泛運(yùn)用于相關(guān)領(lǐng)域。
LBP算法是在由3×3個(gè)網(wǎng)格組成的框架里進(jìn)行運(yùn)算,該框架中間的像素值是與周圍8個(gè)像素值做大小比較的基礎(chǔ)值(即閾值)。如果比較的像素值比閾值大,那么將該像素所在的網(wǎng)格標(biāo)記成1;反之標(biāo)記成0。然后得到8位二進(jìn)制數(shù),也就是該框架中間像素點(diǎn)的LBP值,該值是紋理信息的展現(xiàn)。圖3為L(zhǎng)BP特征提取法的示例圖。
圖3 LBP特征提取法的示例圖
LBP算法提取目標(biāo)特征時(shí),該目標(biāo)的各像素點(diǎn)都會(huì)做像素值對(duì)比,并獲取其相應(yīng)的LBP值。
2.3.3 SVM分類與檢測(cè)
支持向量機(jī)[10](support vector machines)為一種二分類模型,以在特征空間內(nèi)搜索一分類面來(lái)分割樣本為目標(biāo),以距離最大化為分割原則,最后轉(zhuǎn)變成一個(gè)基本的非線性分類器。該模型是利用特征劃分來(lái)獲得目標(biāo)間隔,經(jīng)過(guò)多次的重復(fù)反饋獲得距離的極大值,其算法是對(duì)凸二次規(guī)劃問(wèn)題進(jìn)行解析的理想化算法。
支持向量機(jī)通常用于解析線性可分情況,解決間距過(guò)大的問(wèn)題。然而,當(dāng)數(shù)據(jù)處于線性不可分情況時(shí),根據(jù)非線性映射算法,低維空間里的線性不可分?jǐn)?shù)據(jù)被改成高維特征空間里的線性可分?jǐn)?shù)據(jù),然后通過(guò)線性算法實(shí)現(xiàn)對(duì)數(shù)據(jù)非線性特征的進(jìn)一步轉(zhuǎn)換,使其成為線性特征來(lái)進(jìn)行解析。提出支持向量機(jī)的初始動(dòng)機(jī)是要對(duì)兩類數(shù)據(jù)進(jìn)行歸化,分類情況分為四種:二分類線性可分;二分類線性不可分;二分類非線性可分;二分類非線性不可分。
二分類線性可分情況下,通過(guò)線性可分SVM,按照已知數(shù)據(jù)(xi,yi),得到如下的歸化平面公式
WX+b=0
(9)
上式,特征縮放系數(shù)分別是W、b。
該歸化平面不僅能夠?qū)煞N數(shù)據(jù)進(jìn)行精準(zhǔn)地劃分,還可以滿足兩個(gè)類別內(nèi)數(shù)據(jù)間距最大化的條件。當(dāng)上式中W和X代表維度矢量時(shí),則線性判斷基本公式如下所示:
g(x)=Wx+b
(10)
由于歸化平面不是只有一個(gè),所以要將幾何距離的極大值轉(zhuǎn)換成約束最優(yōu)化問(wèn)題,得出
(11)
(12)
(13)
根據(jù)式(13)完成三維數(shù)據(jù)協(xié)同可視檢測(cè),為檢驗(yàn)本文方法的有效性及可行性,需進(jìn)行仿真。
本文模型的開(kāi)發(fā)平臺(tái)是基于Windows XP系統(tǒng)的Visual studio c++2017,計(jì)算機(jī)配置是Pentiun(R)Dual-Core CPU 2.62GHZ內(nèi)核,2.00GB內(nèi)存;模型框架是在wxWidgets庫(kù)下完成,通過(guò)Opengl與Glew對(duì)目標(biāo)進(jìn)行繪制與顯示,利用Vcglib庫(kù)對(duì)目標(biāo)數(shù)據(jù)進(jìn)行采集。三維數(shù)據(jù)采集界面如圖4所示。
圖4 數(shù)據(jù)采集界面
為驗(yàn)證該模型檢測(cè)的準(zhǔn)確度與穩(wěn)定性,對(duì)實(shí)驗(yàn)對(duì)象采取相同環(huán)境下56個(gè)小時(shí)的重復(fù)檢測(cè),抽取測(cè)量數(shù)據(jù)如表1所示。
表1 各方法檢測(cè)數(shù)據(jù)量對(duì)比(單位:bit)
如表1所示,相同時(shí)間內(nèi),所提檢測(cè)的數(shù)據(jù)量更高,說(shuō)明所提方法檢測(cè)效率更高。
三種方法對(duì)三維數(shù)據(jù)進(jìn)行可視化檢測(cè)時(shí),不同輸出頻率代表波動(dòng)不同,波動(dòng)越小,說(shuō)明三維數(shù)據(jù)檢測(cè)能耗越低,檢測(cè)效率越高。對(duì)三種方法的輸出頻率進(jìn)行對(duì)比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如圖5所示。
圖5 不同方法輸出頻率對(duì)比圖
如圖5所示,文獻(xiàn)[2]方法、文獻(xiàn)[3]方法出數(shù)頻率較高,波動(dòng)較大,而所提方法輸出頻率逐漸降低,波動(dòng)較小,并且較為穩(wěn)定。說(shuō)明所提方法具有明顯優(yōu)勢(shì),實(shí)用價(jià)值較高。
為了進(jìn)一步驗(yàn)證檢測(cè)效果,對(duì)檢測(cè)結(jié)果偏差進(jìn)行實(shí)驗(yàn)對(duì)比,實(shí)驗(yàn)結(jié)果如圖6所示。
圖6 三種方法檢測(cè)結(jié)果偏差折線圖
通過(guò)上圖可以更加直觀地看出,所提所提方法偏差更小,具備更優(yōu)化、更理想的精準(zhǔn)度和穩(wěn)定性。
為了提升可視檢測(cè)應(yīng)用領(lǐng)域廣泛性及檢測(cè)結(jié)果準(zhǔn)確性,本文提出一種基于人機(jī)交互的三維數(shù)據(jù)協(xié)同可視檢測(cè),將人機(jī)交互時(shí)采集的點(diǎn)云數(shù)據(jù)柵格化,通過(guò)對(duì)目標(biāo)的特征提取、分類以及決策函數(shù),最終實(shí)現(xiàn)檢測(cè)的目的。所以,本文研究得出的方法具有良好的同步性與實(shí)時(shí)性,不僅檢測(cè)速度快,而且檢測(cè)的準(zhǔn)確率、精度俱佳,穩(wěn)定性極好。