魏文韜,劉 飛,秦常程,喻洪流,倪 偉
(上海理工大學(xué) 康復(fù)工程與技術(shù)研究所,上海 200093)
嘴部識別對于機(jī)器人視覺交互具有重要的研究價值.給定任意一張人臉圖像,檢測并確定嘴的位置,在機(jī)器人控制交互式檢測系統(tǒng)尤為重要.實(shí)際場景下,由于嘴部的姿態(tài)、臉部的表情和光線變化較大,在不受約束的條件下拍攝圖片,高精度的嘴部檢測是一個具有挑戰(zhàn)性的問題.在以往的方法中,提取人工特征并將其作為二值分類進(jìn)行建模求解已成為嘴部估計(jì)的標(biāo)準(zhǔn)步驟,這種方法難以處理姿態(tài)各異、狀態(tài)模型的嘴部.因此,建立一個機(jī)器人交互場景下的嘴態(tài)識別系統(tǒng)具有重要的理論與實(shí)際應(yīng)用價值.
隨著深度學(xué)習(xí)的發(fā)展,各種目標(biāo)檢測算法被提出,逐漸取代傳統(tǒng)的檢測算法.卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)是一種重要的深度學(xué)習(xí)方法,它是一種前饋神經(jīng)網(wǎng)絡(luò),圖像可以直接作為網(wǎng)絡(luò)的輸入,可自動從圖像數(shù)據(jù)中抽取特征,避免傳統(tǒng)識別算法中復(fù)雜特征提取和數(shù)據(jù)重建過程,在圖像識別領(lǐng)域應(yīng)用廣泛.CNN在目標(biāo)檢測任務(wù)上表現(xiàn)出優(yōu)越的性能[1-5],其檢測框架包括基于區(qū)域的方法與基于回歸的方法[2].一類是RCNN系列的基于區(qū)域的目標(biāo)檢測算法[3],如Fast R-CNN、Faster R-CNN[4]以及R-FCN等,這類算法的檢測結(jié)果精度較高,但速度較慢.另一類是以YOLO[2]為代表的將檢測轉(zhuǎn)化為回歸問題求解,如YOLO、SSD[6]等,這類算法檢測速度較快,但精度較低且對于小目標(biāo)的檢測效果不理想.相比于候選區(qū)域的方法,直接預(yù)測邊界框的方法能提高目標(biāo)檢測系統(tǒng)的檢測速度.但YOLO網(wǎng)絡(luò)直接對原始圖像進(jìn)行網(wǎng)格劃分,會使目標(biāo)位置過于粗糙.SSD加以改進(jìn),對不同深度網(wǎng)絡(luò)層回歸采用不同尺度窗口,因SSD采用的候選框選取機(jī)制,對小目標(biāo)的檢測效果仍差于Faster R-CNN.
Faster R-CNN將區(qū)域生成網(wǎng)絡(luò)(Region Proposal Networks,RPN)[3]和 Fast R-CNN[4]檢測網(wǎng)絡(luò)融合,實(shí)現(xiàn)了高精度的實(shí)時檢測.隨著Faster R-CNN使用CNN網(wǎng)絡(luò)結(jié)構(gòu)層數(shù)由淺到深,有ZF[6]、VGG[7]、GoogleNet[8]和ResNet[9]等,盡管更深的網(wǎng)絡(luò)可能帶來更高的精度,但會導(dǎo)致檢測速度降低.因此,對于具體問題,研究合適的基礎(chǔ)網(wǎng)絡(luò)結(jié)構(gòu)和訓(xùn)練方法以保證較高精度的同時確保實(shí)時性,是目前其主要研究方向之一[10].
為了解決復(fù)雜多變的交互場景下喂食機(jī)器人對于嘴的識別,本文以喂食機(jī)器人與人交互這一任務(wù)為例,基于Faster R-CNN目標(biāo)檢測網(wǎng)絡(luò)進(jìn)行改進(jìn)實(shí)現(xiàn)人臉和嘴部的精確識別,在Caffe GPU深度學(xué)習(xí)框架上進(jìn)行實(shí)驗(yàn).結(jié)果表明,采用改進(jìn)的Faster R-CNN目標(biāo)檢測網(wǎng)絡(luò)能夠?qū)θ四樧觳靠焖俸途珳?zhǔn)的識別.
Faster R-CNN是由2個模塊組成:生成候選區(qū)域的RPN模塊和Fast R-CNN目標(biāo)檢測模塊.RPN模塊產(chǎn)生候選區(qū)域,并利用“注意力”機(jī)制,讓Fast RCNN有方向性的檢測目標(biāo).首先,RPN網(wǎng)絡(luò)預(yù)先產(chǎn)生可能是人臉和嘴部的目標(biāo)候選框,然后Fast RCNN基于提取出的候選框來對目標(biāo)檢測識別.
針對R-CNN和Fast R-CNN中selective search算法生成目標(biāo)建議框的速度問題,Faster R-CNN引入了區(qū)域建議網(wǎng)絡(luò)代替Selective Search算法用于生成目標(biāo)建議框[11],極大地提升了目標(biāo)建議框的生成速度.
RPN的基本思想是在特征圖上找到所有可能的目標(biāo)候選區(qū)域,它通過在原始的網(wǎng)絡(luò)結(jié)構(gòu)上添加卷積層和全連接層來同時在每個位置上回歸目標(biāo)邊界框和預(yù)測目標(biāo)分?jǐn)?shù).RPN采用的是滑動窗口機(jī)制,每個滑動窗口都會產(chǎn)生一個短的特征向量來輸入到全連接層中進(jìn)行位置和類別的預(yù)測.在每個滑動窗口位置同時預(yù)測多個候選區(qū)域,其中每個位置的預(yù)測候選區(qū)域的數(shù)量為k.因此,回歸層具有4k個輸出,編碼k個邊界框的4個坐標(biāo),分類器輸出2k個概率分?jǐn)?shù),預(yù)測每個區(qū)域的所屬目標(biāo)的概率和所屬背景的概率.“proposal”為目標(biāo)生成層,該層中剔除跨越邊界的目標(biāo)框,并通過非極大值抑制[12]結(jié)合目標(biāo)框前景得分篩選部分目標(biāo)框,最后通過目標(biāo)框的回歸信息得到RPN網(wǎng)絡(luò)給出目標(biāo)建議框,最后選取256個目標(biāo)建議框作為RPN網(wǎng)絡(luò)的輸出.
在訓(xùn)練RPN網(wǎng)絡(luò)時,為每個候選框分配一個二值標(biāo)簽,用于網(wǎng)絡(luò)訓(xùn)練,將以下2種情況分配正標(biāo)簽:
(1)與某個真實(shí)目標(biāo)區(qū)域框的IoU(Intersectionover-Union)最大的候選框.
(2)與任意真實(shí)目標(biāo)區(qū)域框的IoU大于0.7的候選框.為所有真實(shí)目標(biāo)候選框的IoU小于0.3的候選框分配負(fù)標(biāo)簽,然后進(jìn)行網(wǎng)絡(luò)訓(xùn)練并微調(diào)參數(shù).圖像的損失函數(shù)定義如式(1)所示.
其中,i表示小批次處理中的第i個候選框索引,pi是第i個候選框?yàn)槟繕?biāo)的概率,若i為候選目標(biāo),則pi*為1,否則為0.ti={tx,ty,tw,th}是一個向量,表示預(yù)測的參數(shù)化的候選框坐標(biāo).ti*是對應(yīng)的是真實(shí)目標(biāo)框的坐標(biāo)向量.ti和ti*的定義如式(2)所示.
其中,(x,y)為區(qū)域框的中心點(diǎn)坐標(biāo);(xa,ya)為候選框的中心點(diǎn)坐標(biāo);(x*,y*)為目標(biāo)真實(shí)框的坐標(biāo),w和h為包圍框的寬和高.算法的目的在于找到一種關(guān)系將原始框映射到與真實(shí)框G更接近的回歸狂.
分類的損失函數(shù)Lcls定義如式(3)所示.
回歸的損失函數(shù)Lreg定義如式(4)所示.
其中,R是smoothL1函數(shù),smoothL1函數(shù)如式(5)所示.
Fast R-CNN負(fù)責(zé)對感興趣區(qū)域進(jìn)行類別分類和位置邊框微調(diào),判斷RPN找出的感興趣區(qū)域是否包含目標(biāo)以及該目標(biāo)的類別,并修正框的位置坐標(biāo).RPN給出了2000個候選框,Fast R-CNN網(wǎng)絡(luò)需要在2000個候選框上繼續(xù)進(jìn)行分類和位置參數(shù)的回歸.
首先挑選128個樣本感興趣區(qū)域,使用RoI Pooling層將這些不同尺寸的區(qū)域全部下采樣到同一個尺度上.RoI Pooling是一種特殊的下采樣操作,給定一張圖片的特征圖,假設(shè)該特征圖的維度是512×(H/16)×(W/16),以及128個候選區(qū)域的坐標(biāo)(其維度為128×4),RoI Pooling層將候選區(qū)域的維度統(tǒng)一下采樣成512×7×7 的維度,最終可得到維度為 128×512×7×7 的向量,可將其看成是一批尺寸為128、通道數(shù)為512、大小為7×7的特征圖.此過程將挑選出的感興趣區(qū)域全部下采樣成7×7尺寸,以實(shí)現(xiàn)權(quán)值共享.所有感興趣區(qū)域被下采樣成512×7×7的特征圖后,以一維向量形式初始化前兩層全連接層,最后輸入到用來分類的全連接層和邊界框回歸的全連接層.
Faster R-CNN只利用最后一個卷積層的特征圖進(jìn)行目標(biāo)檢測,無法更加精確的檢測到一些更小的物體.為了解決這一問題,本文在Faster R-CNN的網(wǎng)絡(luò)基礎(chǔ)上結(jié)合多尺度特征圖.
最近的許多研究表明了淺卷積層的特征圖具有更高的分辨率,有助于檢測小目標(biāo).這些方法表明,結(jié)合不同卷積層的特征圖可以提高檢測性能.本文在每個卷積塊中利用多個層的特征圖.如圖1所示,首先將不同的卷積層連接到同一個卷積塊中(如VGG-16中的conv5_3和conv5_2層),然后對不同卷積塊的特征圖(如VGG-16中的conv4和conv5塊)進(jìn)行元素求和.因?yàn)椴煌木矸e塊有不同大小的特征圖,需要共享相同的大小特征圖,這樣才能執(zhí)行元素的求和操作.為此,采用反卷積層放大后一層特征圖的分辨率,在原始模型中添加了一個1×1的步長為2的卷積層,用于恢復(fù)特征圖的大小,因?yàn)榻?jīng)過上采樣后特征圖的大小比原始模型擴(kuò)大了兩倍,實(shí)驗(yàn)證明改進(jìn)后的多尺度特征圖具有較高的精度和較低的計(jì)算成本.
圖1 多尺度特征圖結(jié)合
不同尺度特征圖生成策略對檢測性能具有一定的影響.一般來說,集成更多的卷積特征圖具有更高的檢測精度,但是會消耗更多的計(jì)算成本.本文利用一種新的策略結(jié)合每個卷積塊的多層特征圖,通過在原始Faster R-CNN中引入不同策略進(jìn)行比較.
表1列出了在不同卷積層,多尺度特征圖上的mAP和處理時間.從表1可見,增加集成卷積特征圖數(shù)量將提高網(wǎng)絡(luò)的檢測準(zhǔn)確率.然而,conv5_3+conv2,conv5_3+conv4_3+conv3_3相對于conv5_3+conv4_3僅提高0.1%,且速度慢了一倍左右.比較單個卷積層之間的結(jié)果,conv5_3/2相對于conv5_3提高了2.8%的檢測精度,處理時間基本不變,表明conv5中結(jié)合兩層特征圖可以實(shí)現(xiàn)不同卷積層特征的互補(bǔ),提高了特征完整性.同時conv5_3/2+conv4_3/2相對與conv5_3/2提高了0.5%的檢測精度,且僅增加了較少的額外計(jì)算成本.最后,conv5_3/2+conv4_3/2相對與conv5_3+conv4_3和conv5_3+conv4_3+conv3_3提高了檢測精度的同時,消耗了較少的額外計(jì)算成本.上述結(jié)果表明,改進(jìn)后的生成策略比現(xiàn)有的策略更有效.
表1 不同生成策略mAP和FPS對比
本實(shí)驗(yàn)主要為驗(yàn)證改進(jìn)的Faster R-CNN算法在不同場景下的人臉圖片上嘴部檢測的有效性和優(yōu)越性,將該算法應(yīng)用到機(jī)器人嘴部交互場景上,能夠讓機(jī)器人快速完成嘴部的定位與檢測,完成相應(yīng)的交互功能.
由于關(guān)于嘴部檢測研究未曾發(fā)現(xiàn)公共數(shù)據(jù)集,所以本實(shí)驗(yàn)使用的數(shù)據(jù)是自行采集和網(wǎng)上收集等方式獲得的,共3000張,包含各種場景和不同質(zhì)量的圖片,特別是光線較暗、成像質(zhì)量較差、目標(biāo)干擾、多角度的圖像增多.然后利用LabelImg工具對圖像進(jìn)行詳細(xì)的標(biāo)注.根據(jù)實(shí)驗(yàn)要求,將標(biāo)注好的圖像數(shù)據(jù)轉(zhuǎn)換為LMDB格式.如圖2,對人臉和嘴部進(jìn)行人工標(biāo)注,另外搜集了1000張不同場景和不同光線下的圖片來進(jìn)行方法測試,對提出方法的有效性進(jìn)行驗(yàn)證.本研究使用LabelImg分別對訓(xùn)練集、驗(yàn)證集和測試集圖片上的人臉和嘴部進(jìn)行統(tǒng)一的標(biāo)注.
實(shí)驗(yàn)環(huán)境配置:GPU:GeForce GTX1050Ti,CUDA9.0,Ubuntu16.04,顯存4 GB.實(shí)驗(yàn)使用caffe深度學(xué)習(xí)框架進(jìn)行相關(guān)代碼和參數(shù)訓(xùn)練,目標(biāo)檢測框架選擇VGG16作為特征提取網(wǎng)絡(luò),使用端到端的聯(lián)合方式進(jìn)行訓(xùn)練.
本文算法在訓(xùn)練網(wǎng)絡(luò)模型的過程中,為了能夠使得梯度下降法有較好的性能,需要把學(xué)習(xí)率的值設(shè)定在合適的范圍內(nèi),太大的學(xué)習(xí)率導(dǎo)致學(xué)習(xí)的不穩(wěn)定,太小值又會導(dǎo)致極長的訓(xùn)練時間.訓(xùn)練模型的學(xué)習(xí)速率、衰減系數(shù)和動量參數(shù)的選取直接影響到最終的訓(xùn)練速度和結(jié)果,本文選取一些較常用的學(xué)習(xí)率和衰減系數(shù)作為候選值,如表1所示.將衰減系數(shù)確定為0.001,學(xué)習(xí)速率的選取值有0.1、0.01、0.001,動量參數(shù)的選取值有0.5和0.9,在衰減系數(shù)不變的情況下,首先確定了學(xué)習(xí)率,然后確定動量大小.其中當(dāng)學(xué)習(xí)率為0.1時,訓(xùn)練無法收斂,可能是學(xué)習(xí)率初始值設(shè)置過大的原因.由表2可知,最終確定衰減系數(shù)為0.1,初始學(xué)習(xí)率為0.001,動量參數(shù)大小為0.9.如圖3所示,當(dāng)訓(xùn)練迭代到5×103時,損失函數(shù)值趨于平穩(wěn).
表2 不同參數(shù)對應(yīng)的測試精度
由于RPN網(wǎng)絡(luò)是Faster R-CNN和核心網(wǎng)絡(luò),大大提高了獲取候選框的效率,由表2可知,Faster R-CNN在不同的基礎(chǔ)特征提取網(wǎng)絡(luò)上的檢測效果差異很大.ZF網(wǎng)絡(luò)相對于VGG16來說,是一種小型的卷積網(wǎng)絡(luò),將其作為Faster R-CNN的基礎(chǔ)特征提取網(wǎng)絡(luò)對人臉和嘴部檢測識別VGG16網(wǎng)絡(luò)的mAP基本能達(dá)到90%以上,而ZF的mAP在85%左右,但是ZF對圖像的處理速度明顯比VGG16大約快3倍.在實(shí)際的交互場景下,VGG16對每幅圖像處理時間為0.2 s左右仍然是可以接受的,因此,綜合考慮識別準(zhǔn)確率和處理速率兩個因素,VGG16仍然優(yōu)于ZF網(wǎng)絡(luò).
圖2是在不同的光線、角度和距離的場景下,檢測嘴部的效果,結(jié)果表明本文的檢測算法可以在光線較暗的場景下實(shí)現(xiàn)嘴部的定位和識別,并且在一定的角度和距離場景下實(shí)現(xiàn)準(zhǔn)確的檢測.準(zhǔn)確率表明在機(jī)器人交互場景下,算法的有效性和可靠性.Faster RCNN與本文算法比較如表3所示.結(jié)果表明Faster RCNN網(wǎng)絡(luò)的準(zhǔn)確率在82.35%左右,測試耗時為1.02 s左右,誤檢率為12.32%,漏檢率6.13%;改進(jìn)的Faster R-CNN網(wǎng)絡(luò)的準(zhǔn)確率在92.43%,測試耗時為1.23 s左右,誤檢率為4.58%,漏檢率為3.28%.由于是在Faster R-CNN網(wǎng)絡(luò)上加入多尺度特征結(jié)合模塊,網(wǎng)絡(luò)復(fù)雜度增加,測試耗時較長,將底層和高層的特征圖進(jìn)行融合,對于不同尺度的目標(biāo)能夠準(zhǔn)確的定位與識別.對于小目標(biāo)的檢測率明顯提高,同時降低了誤檢率與漏檢率.
表3 檢測結(jié)果對比
改進(jìn)的Faster R-CNN是基于兩階段R-CNN框架,其中檢測是一個結(jié)合分類和邊界框回歸的多任務(wù)學(xué)習(xí)問題.與目標(biāo)識別不同,需要一個交并比(IOU)閾值來定義正/負(fù).然而,通常使用的閾值u(通常u=0.5)對正樣本的要求相當(dāng)寬松.產(chǎn)生的檢測器經(jīng)常產(chǎn)生噪聲邊界框(FP).假設(shè)大多數(shù)人會經(jīng)??紤]相似正負(fù)樣本,通過IOU≥0.5測試.雖然在u=0.5條件下獲得的樣本豐富多樣,但會使訓(xùn)練能夠有效地區(qū)分相似正負(fù)樣本的檢測器變得困難,造成檢測仍然存在一定的誤差.
目標(biāo)檢測作為計(jì)算機(jī)視覺領(lǐng)域的基本任務(wù)一直受到科研人員的關(guān)注,目標(biāo)檢測方法的性能直接關(guān)系到高層領(lǐng)域的研究.但通用目標(biāo)檢測方法在小目標(biāo)檢測上效果不佳,專門為小目標(biāo)檢測設(shè)計(jì)的方法通用性差.故本文改進(jìn)Faster R-CNN并應(yīng)用到嘴部識別中,引入了多尺度特征結(jié)合,結(jié)合不同卷積層特征圖,實(shí)現(xiàn)對小目標(biāo)的準(zhǔn)確識別.通過對嘴部目標(biāo)識別的對比實(shí)驗(yàn),驗(yàn)證了改進(jìn)的算法對不同場景下的嘴部識別具有較好的效果.改進(jìn)的Faster R-CNN要求高質(zhì)量的圖片,通過添加不同場景圖像,昏暗的燈光下,質(zhì)量差,目標(biāo)干擾的訓(xùn)練數(shù)據(jù)集可以有效提高目標(biāo)識別的準(zhǔn)確性目標(biāo)檢測算法在低像素和復(fù)雜環(huán)境和提高識別算法的魯棒性.接下來的研究工作是多網(wǎng)絡(luò)進(jìn)一步改進(jìn),減少檢測計(jì)算成本和時間,對網(wǎng)絡(luò)進(jìn)一步壓縮,使得能夠在嵌入式設(shè)備上完成實(shí)時檢測任務(wù).