宋 玲,夏智敏
廣西大學(xué) 計(jì)算機(jī)與電子信息學(xué)院,南寧530004
人體關(guān)鍵點(diǎn)檢測(cè)是一種基于目標(biāo)檢測(cè)算法并應(yīng)用在人體關(guān)鍵點(diǎn)信息捕捉上的智能算法,具有能將空間中的人體信息通過(guò)攝像頭轉(zhuǎn)化為可量化處理的數(shù)據(jù)信息的功能。傳統(tǒng)目標(biāo)檢測(cè)方法對(duì)于人體關(guān)鍵點(diǎn)檢測(cè)問(wèn)題的研究由于應(yīng)用場(chǎng)景繁多的干擾因素與不穩(wěn)定性一直進(jìn)度緩慢,如特征點(diǎn)匹配算法[1]、基于梯度特征的目標(biāo)檢測(cè)算法[2]、K均值聚類(lèi)算法等[3]。近年來(lái)深度學(xué)習(xí)的興起對(duì)于人體關(guān)鍵點(diǎn)檢測(cè)問(wèn)題的解決提供了新的思路,但是復(fù)雜的網(wǎng)絡(luò)模型往往意味著需要較高硬件水平的支持與較長(zhǎng)的計(jì)算時(shí)間,多數(shù)深度學(xué)習(xí)網(wǎng)絡(luò)模型需要耗費(fèi)大量的人力物力與計(jì)算成本。人體關(guān)鍵點(diǎn)的檢測(cè)算法也從局限于單人關(guān)鍵點(diǎn)檢測(cè)發(fā)展到多人情況下的人體關(guān)鍵點(diǎn)檢測(cè)。而多人情況下的人體關(guān)鍵點(diǎn)檢測(cè)往往伴隨著更復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu),意味著更高的計(jì)算成本與更長(zhǎng)的訓(xùn)練時(shí)間。在這個(gè)移動(dòng)終端普及化與倡導(dǎo)智能自動(dòng)化的今天,一個(gè)良好的適用于人體關(guān)鍵點(diǎn)檢測(cè)問(wèn)題的網(wǎng)絡(luò)模型應(yīng)該具有較強(qiáng)魯棒性、較低的計(jì)算成本、較好的識(shí)別精度、能容納多名使用者等的特點(diǎn)。
區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(Regions with Convolution Neural Network,R-CNN)[4]系列網(wǎng)絡(luò)模型是近年目標(biāo)檢測(cè)算法中的一直在發(fā)展的較為成熟的網(wǎng)絡(luò)結(jié)構(gòu),通過(guò)構(gòu)建數(shù)個(gè)甚至數(shù)十上百個(gè)卷積層-激活層-池化層的卷積結(jié)構(gòu)來(lái)對(duì)圖像進(jìn)行特征提取,把目標(biāo)檢測(cè)問(wèn)題拆分為回歸與分類(lèi)兩個(gè)問(wèn)題的集合,并使用大樣本下有監(jiān)督的預(yù)訓(xùn)練與小樣本微調(diào)的方式來(lái)解決具體模型難以訓(xùn)練甚至過(guò)擬合等問(wèn)題。該系列網(wǎng)絡(luò)能一定程度上解決復(fù)雜場(chǎng)景中的目標(biāo)檢測(cè),但由于參數(shù)多,模型計(jì)算復(fù)雜度高,需要較高質(zhì)量的硬件平臺(tái)支撐,在應(yīng)用的廣泛性與普適性上仍然有較大局限性。
掩膜區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(Mask Regions with Convolution Neural Network,Mask R-CNN)[5]作為近年來(lái)提出的較為完善的卷積網(wǎng)絡(luò)模型,它在處理多目標(biāo)下的目標(biāo)檢測(cè)、目標(biāo)分類(lèi)以及像素級(jí)目標(biāo)分割等問(wèn)題上取得了良好的效果,但由于其復(fù)雜的特征信息提取網(wǎng)絡(luò)與參數(shù)量大的特點(diǎn),會(huì)存在計(jì)算成本過(guò)高、迭代次數(shù)過(guò)多等問(wèn)題,因而需要較長(zhǎng)時(shí)間的訓(xùn)練與較高配置的硬件支持。
輕量化模型是為了讓深度網(wǎng)絡(luò)能夠在移動(dòng)終端或車(chē)載電腦這類(lèi)便攜性較強(qiáng)但算力不夠的設(shè)備上運(yùn)行,從模型尺寸、模型參數(shù)、卷積方式等不同角度進(jìn)行優(yōu)化而創(chuàng)造出來(lái)的網(wǎng)絡(luò)模型,由于其參數(shù)量較小,模型結(jié)構(gòu)較為簡(jiǎn)單,所以訓(xùn)練與運(yùn)行速度較快,但精度相對(duì)于正常的卷積網(wǎng)絡(luò)模型較低。如何在保證精度的同時(shí)加快訓(xùn)練與運(yùn)行速度,并降低訓(xùn)練成本,是本文的切入點(diǎn)。
本文提出一種使用輕量級(jí)網(wǎng)絡(luò)結(jié)構(gòu)ShuffleNet[6]去改進(jìn)原始Mask R-CNN 的網(wǎng)絡(luò)模型(ShuffleNet Mask R-CNN,SN Mask R-CNN),通過(guò)將Mask R-CNN 中用于特征提取的殘差網(wǎng)絡(luò)替換為SN-Resnet,并用通道重排來(lái)保證信息準(zhǔn)確度,降低了參數(shù)量與網(wǎng)絡(luò)復(fù)雜度,提升了模型訓(xùn)練和運(yùn)行速度;同時(shí)取消Mask R-CNN中分割掩膜可視化操作,保留計(jì)算結(jié)果并入邊框回歸中進(jìn)行聯(lián)合計(jì)算,并優(yōu)化了損失函數(shù),在相同迭代次數(shù)時(shí)能獲得更精確的檢測(cè)結(jié)果,從而提升網(wǎng)絡(luò)訓(xùn)練速度,加快檢測(cè)時(shí)間。
在2015 年以前的人體關(guān)鍵點(diǎn)檢測(cè)的研究問(wèn)題中,大多數(shù)方法都是將其視作一個(gè)回歸問(wèn)題,通過(guò)回歸求出精確的關(guān)鍵點(diǎn)坐標(biāo)(x,y),因?yàn)槿梭w姿態(tài)的靈活性和隨機(jī)性,這種方法在模型的可拓展性上表現(xiàn)較差。2015年,Pfister等人[7]提出的的流動(dòng)卷積網(wǎng)絡(luò)(Flowing ConvNets)將其視為檢測(cè)問(wèn)題,使用的卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)結(jié)構(gòu)是基于加深A(yù)lexNet[8]層數(shù)來(lái)提高精度,但該方法對(duì)于人體關(guān)鍵點(diǎn)檢測(cè)估計(jì)范圍有限,只能覆蓋半身的關(guān)鍵點(diǎn);2016年,Wei等人[9]提出的卷積姿態(tài)機(jī)(Convolutional Pose Machines,CPM)方法使用順序化的卷積架構(gòu)來(lái)表達(dá)空間信息和紋理信息,保證了精度,但運(yùn)行速度較為緩慢;在不同的比賽中也涌現(xiàn)出很多使用全卷積網(wǎng)絡(luò)和對(duì)抗網(wǎng)絡(luò)等復(fù)雜化的神經(jīng)網(wǎng)絡(luò)模型實(shí)現(xiàn)人體關(guān)鍵點(diǎn)檢測(cè)的算法,然而大多仍然停留在單人關(guān)鍵點(diǎn)檢測(cè)的問(wèn)題上,普適性和實(shí)用性較差。
多人關(guān)鍵點(diǎn)檢測(cè)有兩種主流的研究方法:自頂向下和自底向上。前者是先識(shí)別出當(dāng)前視野域有多少個(gè)人體實(shí)例,再根據(jù)每個(gè)實(shí)例來(lái)進(jìn)行關(guān)鍵點(diǎn)檢測(cè)從而完成姿態(tài)檢測(cè);后者是識(shí)別當(dāng)前視野域中所有的關(guān)鍵節(jié)點(diǎn),再將每個(gè)關(guān)鍵節(jié)點(diǎn)拼接成數(shù)個(gè)人體實(shí)例。評(píng)價(jià)多人姿態(tài)性能好壞的依據(jù)主要是來(lái)自兩大數(shù)據(jù)集:MPII 多人數(shù)據(jù)集[10]和微軟COCO 關(guān)鍵點(diǎn)數(shù)據(jù)集[11]。在多人體關(guān)鍵點(diǎn)的檢測(cè)問(wèn)題中,網(wǎng)絡(luò)模型需要忍受來(lái)自人體定位和骨骼識(shí)別的雙重誤差,這也是近年來(lái)的優(yōu)化方向和等待解決的問(wèn)題。
2016 年,Rajchl 等人[12]提出的深度切割網(wǎng)絡(luò)模型(Deepcut),采用自底向上的方法,結(jié)合CNN 和聚類(lèi)的方法輸出姿態(tài)估計(jì)結(jié)果,精確度較高但是耗時(shí)過(guò)長(zhǎng);Insafutdinov等人[13]提出的更深切割網(wǎng)絡(luò)模型(Deepercut),使用圖像條件匹配算法,將聚類(lèi)得到的候選節(jié)點(diǎn)進(jìn)行數(shù)據(jù)壓縮,在速度上明顯優(yōu)于Deepcut,但時(shí)間復(fù)雜度并未顯著降低;由何凱明等人提出的Mask R-CNN是一種優(yōu)秀的集成多任務(wù)網(wǎng)絡(luò)模型,繼承于更快速區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(Faster Region-based Convolutional Network,F(xiàn)aster R-CNN)[14]的算法思想,加入了Mask 掩膜分支,并且使用感興趣區(qū)域?qū)R(RoI Align)的方法對(duì)感興趣區(qū)域池化(RoI Pooling)進(jìn)行了改良,在COCO數(shù)據(jù)集上的表現(xiàn)超越現(xiàn)有其他的方法,達(dá)到了較高的準(zhǔn)確度。
寇大磊等[15]根據(jù)目標(biāo)檢測(cè)優(yōu)化方法對(duì)近幾年提出的框架進(jìn)行了梳理和總結(jié),詳細(xì)分析并驗(yàn)證了R-CNN系列、YOLO系列等模型在不同行人數(shù)據(jù)集下的表現(xiàn)與優(yōu)缺點(diǎn);童靖然等[16]提出的基于可見(jiàn)和紅外雙模態(tài)特征金字塔融合的行人檢測(cè)算法,從多模態(tài)的角度使用銳化特征的特征金字塔融合方法對(duì)行人檢測(cè)問(wèn)題進(jìn)行了特征強(qiáng)化,在光照較差和低分辨率的情況下仍然有較好的檢測(cè)效果;謝林江等[17]提出了一種加入選擇性注意層的改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)模型,該模型采用LBP紋理處理和梯度處理進(jìn)行訓(xùn)練,能夠過(guò)濾復(fù)雜背景,突出行人特征,在INRIA、NICTA 和Daimler 行人數(shù)據(jù)集上均取得了較高的檢測(cè)準(zhǔn)確率;Li等[18]提出了一種集成了卷積神經(jīng)網(wǎng)絡(luò)與基于零件模型的零件過(guò)濾器的網(wǎng)絡(luò)模型,能夠在存在行人、汽車(chē)等多種檢測(cè)類(lèi)別與檢測(cè)物體被遮擋的實(shí)驗(yàn)情況下,取得較高的檢測(cè)準(zhǔn)確率;Punn 等[19]提出了一種利用R-CNN 架構(gòu)的面向軟件的方法,借助擁塞控制預(yù)警系統(tǒng)從人行道、天橋等場(chǎng)景中識(shí)別區(qū)域內(nèi)人群密度和異常人群的運(yùn)動(dòng);Liu 等[20]提出了一種漸進(jìn)定位擬合模塊對(duì)單級(jí)檢測(cè)器SSD網(wǎng)絡(luò)模型中的錨定框選擇進(jìn)行改善,并結(jié)合殘差學(xué)習(xí)和多尺度上下文編碼的優(yōu)點(diǎn),提出一個(gè)瓶頸塊增強(qiáng)預(yù)測(cè)變量的判別能力,該模型在行人檢測(cè)問(wèn)題的精度和速度上都具有有效地提升;杜鵬等[21]提出了一種自注意力模態(tài)融合網(wǎng)絡(luò),利用對(duì)抗網(wǎng)絡(luò)和多模態(tài)模型得到的特征數(shù)據(jù)進(jìn)行特征融合,在進(jìn)行一次有監(jiān)督的訓(xùn)練后便能自動(dòng)地對(duì)跨模態(tài)學(xué)習(xí)網(wǎng)絡(luò)的特征在通道層面進(jìn)行篩選,此網(wǎng)絡(luò)結(jié)構(gòu)在跨模態(tài)行人再識(shí)別問(wèn)題上與現(xiàn)有方法相比有著較大的性能提升;徐守坤等[22]提出了一種將HOG-CSLBP 特征提取層與YOLOv2 進(jìn)行結(jié)合的網(wǎng)絡(luò)模型,該網(wǎng)絡(luò)根據(jù)維度聚類(lèi)方法與數(shù)據(jù)集來(lái)進(jìn)行YOLOv2網(wǎng)絡(luò)的先驗(yàn)框的個(gè)數(shù)與唯獨(dú)值的動(dòng)態(tài)調(diào)整,與傳統(tǒng)的YOLOv2網(wǎng)絡(luò)相比,在行人背景復(fù)雜以及行人遮掩嚴(yán)重的情況下較大幅度降低了行人檢測(cè)的漏檢率。不止在行人檢測(cè)方面,神經(jīng)網(wǎng)絡(luò)還在生活中的許多場(chǎng)景獲得了成功的實(shí)際應(yīng)用,例如車(chē)牌識(shí)別、目標(biāo)識(shí)別、人臉識(shí)別等等。
圖1 Faster R-CNN網(wǎng)絡(luò)結(jié)構(gòu)
Mask R-CNN 是以Faster R-CNN 為網(wǎng)絡(luò)原型基礎(chǔ)改進(jìn)的網(wǎng)絡(luò)模型,F(xiàn)aster R-CNN為模型結(jié)構(gòu)如圖1所示。
它提出的區(qū)域推薦網(wǎng)絡(luò)(Region Proposal Network,RPN)網(wǎng)絡(luò)結(jié)構(gòu),替換了初代的快速區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(Fast R-CNN)[23]中較為耗時(shí)的選擇性搜索方法,同時(shí)也降低了網(wǎng)絡(luò)的卷積運(yùn)算量。但在小目標(biāo)檢測(cè)問(wèn)題中往往沒(méi)有足夠的信息可供識(shí)別,所以會(huì)出現(xiàn)目標(biāo)丟失或者誤檢、漏檢的情況發(fā)生。對(duì)此問(wèn)題Mask R-CNN應(yīng)用了特征金字塔網(wǎng)絡(luò)(Feature Pyramid Networks,F(xiàn)PN)[24]的思想,提出了如圖2 的殘差-特征金字塔網(wǎng)絡(luò)ResNet-FPN,保留每個(gè)階段中間特征圖的特征信息,從而確保小目標(biāo)的特征信息不會(huì)因?yàn)樯顚泳矸e而被過(guò)濾掉,強(qiáng)化所有視野域中所有目標(biāo)的特征。
圖2 ResNet-FPN網(wǎng)絡(luò)結(jié)構(gòu)
Mask R-CNN也對(duì)Faster R-CNN中的RoI Pooling進(jìn)行了優(yōu)化,采用了雙線性插值法的RoI Align 進(jìn)行替代,保留小數(shù)位的像素值計(jì)算結(jié)果,使得在根據(jù)特征圖計(jì)算出的回歸框不會(huì)因?yàn)槿≌僮鞫鴮?dǎo)致像素移動(dòng),避免了特征圖與原始圖像出現(xiàn)不對(duì)齊情況的發(fā)生,同時(shí)也提升了檢測(cè)精度。經(jīng)過(guò)RoI Align處理過(guò)后的特征圖即可進(jìn)入全鏈接網(wǎng)絡(luò)中進(jìn)行分類(lèi)與回歸,Mask R-CNN作為像素級(jí)的分割網(wǎng)絡(luò),在進(jìn)行分類(lèi)與回歸操作時(shí),創(chuàng)新性地加入了一條并行掩膜分支,這條分支在經(jīng)過(guò)一次全卷積神經(jīng)網(wǎng)絡(luò)后,會(huì)將目標(biāo)框內(nèi)的像素進(jìn)行分類(lèi),輸出覆蓋檢測(cè)目標(biāo)的可視化掩膜范圍,其網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
圖3 Mask R-CNN網(wǎng)絡(luò)結(jié)構(gòu)
在Mask R-CNN論文中的實(shí)驗(yàn)表明,在多目標(biāo)下的目標(biāo)檢測(cè)、目標(biāo)分類(lèi)以及像素級(jí)目標(biāo)分割的問(wèn)題上取得了良好的效果,但是實(shí)驗(yàn)耗時(shí)量較大,硬件配置要求較高。
ShuffleNet是由北京曠視科技有限公司提出的一種計(jì)算開(kāi)支很小但準(zhǔn)確率高的網(wǎng)絡(luò),主要應(yīng)用于移動(dòng)平臺(tái)如無(wú)人機(jī)、各種機(jī)器人、手機(jī)等。很多研究往往是對(duì)基礎(chǔ)網(wǎng)絡(luò)架構(gòu)進(jìn)行修剪、壓縮、低精度表示等處理來(lái)達(dá)到降低計(jì)算量的目的,而ShuffleNet 是一種通過(guò)提高計(jì)算效率從而提升網(wǎng)絡(luò)性能的基礎(chǔ)網(wǎng)絡(luò)。
原始Mask R-CNN 網(wǎng)絡(luò)模型中的ResNet,Google團(tuán)隊(duì)提出的輕量級(jí)網(wǎng)絡(luò)模型MobileNet[25]等的網(wǎng)絡(luò)模型設(shè)計(jì)大部分是使用深度分離卷積和分組卷積來(lái)權(quán)衡模型表示能力與計(jì)算量,里面的逐點(diǎn)卷積計(jì)算往往是沒(méi)有被考慮到的,而這些數(shù)量眾多的1×1卷積是需要的計(jì)算量很大,同時(shí)在小網(wǎng)絡(luò)結(jié)構(gòu)中對(duì)于逐點(diǎn)卷積的過(guò)多使用會(huì)限制特征圖通道的數(shù)量,進(jìn)而影響到模型的性能。ShuffleNet提出使用逐點(diǎn)分組卷積來(lái)替代普通的逐點(diǎn)卷積操作,并使用通道重排來(lái)對(duì)特征圖通道中的信息傳遞過(guò)程進(jìn)行改善,減小了計(jì)算復(fù)雜度,并相對(duì)于其他網(wǎng)絡(luò)會(huì)擁有更多的特征圖通道數(shù),ShuffleNet 中的分組卷積與通道重排操作如圖4所示。
圖4 ShuffleNet中的分組卷積與通道重排操作
相對(duì)于ResNet龐大的參數(shù)量和輕量級(jí)網(wǎng)絡(luò)MobileNet中存在的分組逐點(diǎn)卷積導(dǎo)致的特征信息組間交流不夠等存在的不足,ShuffleNet能在做到精簡(jiǎn)參數(shù)量的同時(shí),使得特征圖每個(gè)分組都進(jìn)行信息交流,避免特征信息孤島化。
針對(duì)Mask R-CNN 在人體關(guān)鍵點(diǎn)檢測(cè)中存在的不足,從對(duì)原始網(wǎng)絡(luò)模型進(jìn)行輕量化角度出發(fā),本文改進(jìn)的目標(biāo)如下:
(1)在保留原有精度的條件下,降低網(wǎng)絡(luò)模型的參數(shù)量,以及低計(jì)算復(fù)雜度;
(2)加快網(wǎng)絡(luò)模型在訓(xùn)練時(shí)的收斂速度,在同等迭代次數(shù)中達(dá)到更好效果,減少訓(xùn)練成本。
基于上述考慮,提出一種改進(jìn)的Mask R-CNN網(wǎng)絡(luò)模型SN Mask R-CNN,使用輕量級(jí)ShuffleNet 網(wǎng)絡(luò)對(duì)Mask R-CNN 原始網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行改進(jìn),降低參數(shù)量,并使用通道重排的方法保證原有精度;使用Mask R-CNN掩膜分支計(jì)算結(jié)果與邊框回歸結(jié)果進(jìn)行聯(lián)合計(jì)算,加快訓(xùn)練網(wǎng)絡(luò)模型的收斂速度。
Mask R-CNN 檢測(cè)模型使用的是基于Resnet 的定制網(wǎng)絡(luò),其運(yùn)算的基本單元如圖5所示。
圖5 Resnet基本單元
圖6 SN-Resnet基本單元
其特征提取的基礎(chǔ)網(wǎng)絡(luò)為Resnet-50 模型,在殘差基本單元中,對(duì)于輸入的特征信息,先通過(guò)1×1 卷積核對(duì)其進(jìn)行通道降維,再通過(guò)3×3的卷積核進(jìn)行特征卷積計(jì)算,最后通過(guò)1×1 卷積核進(jìn)行通道升維,將輸出結(jié)果h(x)與輸入殘差基本單元前的初始數(shù)據(jù)x進(jìn)行運(yùn)算,使得殘差網(wǎng)絡(luò)學(xué)習(xí)只需要學(xué)習(xí)其殘差F(x)=h(x)-x,通過(guò)該方法計(jì)算的檢測(cè)準(zhǔn)確率不會(huì)隨著網(wǎng)絡(luò)加深而下降,也解決了傳統(tǒng)卷積網(wǎng)絡(luò)信息丟失與梯度爆炸或者消失的問(wèn)題。
在殘差網(wǎng)絡(luò)單元中傳輸特征計(jì)算的過(guò)程中,所有數(shù)值是在一個(gè)批次內(nèi)進(jìn)行計(jì)算,意味著特征圖中的每個(gè)通道都需要對(duì)應(yīng)的權(quán)重參數(shù),在算法模型的訓(xùn)練過(guò)程中,大量的逐點(diǎn)卷積會(huì)給CPU 和GPU 帶來(lái)巨大的壓力,也會(huì)降低模型訓(xùn)練速度。
和傳統(tǒng)殘差網(wǎng)絡(luò)的基本單元不同,本文使用SNResnet基本單元對(duì)逐點(diǎn)卷積進(jìn)行分組,在每次分組逐點(diǎn)卷積運(yùn)算結(jié)束后進(jìn)行一次特征信息的通道重排,以最小的計(jì)算成本來(lái)抵消特征信息分組造成的信息閉塞的后果。SN-Resnet基本單元如圖6,在1×1的逐點(diǎn)卷積計(jì)算之前便對(duì)輸入的特征信息進(jìn)行g(shù)等分組,如將256通道的特征信息分成4組,每64通道為一組,4組共用一個(gè)卷積核參數(shù),參數(shù)量可以減少為原來(lái)的1/4倍,合適的分組數(shù)選取能在最大程度上保證結(jié)果的準(zhǔn)備率,同時(shí)減少訓(xùn)練中參數(shù)的數(shù)量來(lái)提高網(wǎng)絡(luò)模型的訓(xùn)練效率。
通道重排channel shuffle操作是在卷積計(jì)算后對(duì)特征信息進(jìn)行特征通道的拆解與重組,以便特征信息進(jìn)行組間信息交換,具體操作如圖7所示。
圖7 通道重排操作
這種運(yùn)算方式既利用了分組逐點(diǎn)卷積計(jì)算將輸入限制在每個(gè)組內(nèi)的操作,來(lái)獲得較低復(fù)雜度的優(yōu)越性,又在計(jì)算中對(duì)不同的組進(jìn)行特征重組的操作,來(lái)充分利用了不同組間的特征信息,避免了分組卷積的特征信息孤島化。
綜上,采取以下操作對(duì)參數(shù)量問(wèn)題進(jìn)行優(yōu)化:
(1)根據(jù)ShuffleNet的主要思想對(duì)ResNet的殘差單元進(jìn)行改造,使用分組逐點(diǎn)卷積來(lái)代替原來(lái)的逐點(diǎn)卷積結(jié)構(gòu),即對(duì)輸入特征圖進(jìn)行g(shù)組的等分操作,根據(jù)特征圖的通道數(shù)C來(lái)確定每組C/g個(gè)通道。故此時(shí)只需要準(zhǔn)備C/g個(gè)圖的權(quán)重參數(shù)即可,相比殘差網(wǎng)絡(luò)中的參數(shù)量減少了g倍。
(2)分組逐點(diǎn)卷積顯著地降低了殘差單元的參數(shù)量,但僅僅對(duì)輸入特征圖進(jìn)行分組會(huì)導(dǎo)致分組特征孤島化,造成局部最優(yōu)解的情況,即在卷積過(guò)程中,只有組內(nèi)信息才可以進(jìn)行信息交流,組間信息無(wú)法進(jìn)行此操作。故引入通道重排的思想,對(duì)每個(gè)分組繼續(xù)進(jìn)行g(shù)等分操作,交換特征圖信息后再進(jìn)入下一卷積層,完成組間信息的交流。在實(shí)驗(yàn)中,有通道重排的網(wǎng)絡(luò)始終優(yōu)于沒(méi)有通道重排的網(wǎng)絡(luò),錯(cuò)誤率降低0.9%~4.0%。尤其是在組數(shù)較大時(shí)(如g=5),前者遠(yuǎn)遠(yuǎn)優(yōu)于后者。
在原始Mask R-CNN 網(wǎng)絡(luò)中,Mask 掩膜分支是作為區(qū)分不同物體實(shí)例的策略,用于實(shí)現(xiàn)像素到像素的圖像分割,通過(guò)雙線性插值方法來(lái)保證輸入與輸出的圖像像素的一一對(duì)應(yīng)。在特征提取模塊運(yùn)算結(jié)束后,對(duì)每個(gè)感興趣區(qū)ROI進(jìn)行一次分類(lèi)預(yù)測(cè),并根據(jù)卷積網(wǎng)絡(luò)的分類(lèi)結(jié)果對(duì)預(yù)測(cè)的物體使用不同顏色的掩膜進(jìn)行遮蓋并進(jìn)行可視化,作為對(duì)物體整體輪廓的描述,來(lái)進(jìn)行實(shí)例分割。
在原始網(wǎng)絡(luò)中,掩膜分支是獨(dú)立于目標(biāo)分類(lèi)與邊框回歸的分支存在的,對(duì)于物體分類(lèi)的掩膜覆蓋操作對(duì)于多種類(lèi)分類(lèi)有良好的視覺(jué)效果,如圖8中的彩色半透明掩膜,其具體操作是對(duì)圖像中的所有可識(shí)別類(lèi)物體進(jìn)行實(shí)例分割,并對(duì)分割出來(lái)的不同物體使用不同單色半透明掩膜進(jìn)行覆蓋,提升可視化效果。如圖例中的人與人實(shí)例、人與酒杯實(shí)例、人與沖浪板實(shí)例能夠清楚地區(qū)分開(kāi)。
圖8 實(shí)例的掩膜分割可視化
實(shí)例的掩膜分割可視化在原始網(wǎng)絡(luò)中是必須的,因?yàn)镸ask R-CNN 使用的VG 訓(xùn)練數(shù)據(jù)集包含有3 000個(gè)實(shí)例類(lèi)別,在多類(lèi)目標(biāo)檢測(cè)問(wèn)題中,用不同顏色的掩膜對(duì)實(shí)例分割的視覺(jué)效果有著良好效果。但由于其可視化繪制手段的精度是像素級(jí)別,會(huì)花費(fèi)較多的訓(xùn)練時(shí)間。
本文只需對(duì)人這一單一類(lèi)的輪廓與關(guān)鍵點(diǎn)進(jìn)行檢測(cè),在本改進(jìn)SN Mask R-CNN 網(wǎng)絡(luò)中,在可視化的操作中完成對(duì)人實(shí)例的像素框可視化即可直觀地觀察到人體關(guān)鍵點(diǎn)檢測(cè)的結(jié)果。故在網(wǎng)絡(luò)中取消掩膜分割的可視化操作,將掩膜分支得到的結(jié)果與邊框回歸結(jié)果進(jìn)行聯(lián)合計(jì)算,并相應(yīng)修改損失函數(shù),優(yōu)化方案如圖9,充分利用了兩個(gè)分支的計(jì)算結(jié)果,使得人體所在的像素框能更快接近訓(xùn)練集中標(biāo)注的像素框,減少迭代次數(shù),同時(shí)保留掩膜實(shí)例分割的計(jì)算結(jié)果,能避免不同實(shí)例間的關(guān)鍵點(diǎn)錯(cuò)連、漏連的情況發(fā)生。
圖9 迭代次數(shù)優(yōu)化策略
圖9中,圖(a)為骨骼關(guān)鍵點(diǎn)檢測(cè)計(jì)算的回歸框,圖(b)為掩膜分割得到的實(shí)例像素框,圖(c)為聯(lián)合圖(a)和(b)計(jì)算結(jié)果得到的人體實(shí)例所在的像素框。
為了減小網(wǎng)絡(luò)中的參數(shù)量和計(jì)算復(fù)雜度,在基于準(zhǔn)確率較高的Mask R-CNN 網(wǎng)絡(luò)中引入帶有ShuffleNet基本思想的分組逐點(diǎn)卷積與通道重排的SN-Resnet基本單元,在SN-Resnet的基本單元中,首先使用1×1卷積核對(duì)通道進(jìn)行g(shù)等分組來(lái)計(jì)算逐點(diǎn)分組卷積,然后進(jìn)行3×3的深度分離卷積操作來(lái)減小計(jì)算量,最后采用線性的1×1 卷積進(jìn)行降維操作,避免對(duì)特征信息的破壞[26],SN-Resnet 結(jié)構(gòu)的具體參數(shù)與原始?xì)埐罹W(wǎng)絡(luò)對(duì)比如表1所示。
在經(jīng)過(guò)RoI Align Layer計(jì)算得到的原圖大小的特征圖之后,原始Mask R-CNN會(huì)進(jìn)行多任務(wù)損失函數(shù)的計(jì)算,分別是為圖片中的對(duì)象實(shí)例進(jìn)行目標(biāo)分類(lèi)、產(chǎn)生邊界框和分割掩膜操作,并相應(yīng)地根據(jù)三者之和進(jìn)行損失計(jì)算:
式中,Lloss是當(dāng)前網(wǎng)絡(luò)模型的總損失,Lcls、Lbox、Lmask分別對(duì)應(yīng)特征圖在計(jì)算目標(biāo)分類(lèi)、邊框回歸、掩膜分割與真實(shí)值相差結(jié)果的損失。
為了加快模型收斂,提高效率,取消掩膜分割中的掩膜可視化操作,保留掩膜分割的數(shù)值計(jì)算部分,將其并入至邊界框的計(jì)算結(jié)果,即邊框回歸操作中,根據(jù)掩膜分割計(jì)算中得到的掩膜邊界值與邊框回歸計(jì)算后的實(shí)例邊框值進(jìn)行一次極值比對(duì),如式(2)~(4),式中(x,y,w,h)代表邊框回歸與掩膜分割計(jì)算結(jié)果的表現(xiàn)形式,x和y代表特征框的左上角像素坐標(biāo),w和h代表該特征框的寬度與高度。設(shè)邊框回歸操作得到的結(jié)果為(Bx,By,Bw,Bh),通過(guò)遍歷掩膜分割計(jì)算的結(jié)果為(Mx,My,Mw,Mh),當(dāng)邊框回歸操作結(jié)果與遍歷掩膜分割計(jì)算結(jié)果存在全包含關(guān)系時(shí),即Bi>Mi,i∈(x,y,w,h)與Bi<Mi,i∈(x,y,w,h)時(shí),最終獲得邊框回歸計(jì)算結(jié)果(Px,Py,Pw,Ph)為:
除此之外的情況下,最終獲得的邊框回歸計(jì)算結(jié)果(Px,Py,Pw,Ph)為:
其中,x的取值隨著邊框回歸與掩膜分割的計(jì)算結(jié)果所對(duì)比取極值后的對(duì)應(yīng)邊數(shù)。
假設(shè)輸入圖像像素為H×W,數(shù)據(jù)集中分類(lèi)數(shù)為M,圖像中實(shí)例數(shù)為N每個(gè)實(shí)例n所在的像素框?yàn)镠n×Wn,則原始Mask R-CNN的實(shí)例可視化的算法時(shí)間復(fù)雜度為目標(biāo)分類(lèi)、邊框回歸與掩膜可視化之和,即為O(O(class)+O(box)×Wn×M)2)。在SN Mask R-CNN中,對(duì)于實(shí)例的分類(lèi)數(shù)為單一的人實(shí)例,即M為1。同時(shí)由于不需要對(duì)每個(gè)像素進(jìn)行判斷是否需要覆蓋有色的半透明掩膜,故算法的時(shí)間復(fù)雜度為O(O(class)+O(box)×Wn+O(P))。通過(guò)復(fù)雜度分析可以發(fā)現(xiàn),SN Mask R-CNN在可視化操作上的算法時(shí)間復(fù)雜度明顯低于原始Mask R-CNN。
表1 SN-Resnet結(jié)構(gòu)與原始Resnet的具體參數(shù)對(duì)比
通過(guò)聯(lián)合邊框回歸與掩膜分割并行計(jì)算的結(jié)果來(lái)決定最終邊框回歸的結(jié)果,可以在模型訓(xùn)練時(shí)的反向傳播進(jìn)行權(quán)重參數(shù)更新的過(guò)程中,減少迭代次數(shù),有效加快訓(xùn)練速度。
在評(píng)估一個(gè)CNN 網(wǎng)絡(luò)的計(jì)算復(fù)雜度時(shí),浮點(diǎn)運(yùn)算數(shù)是一個(gè)常用的衡量指標(biāo),即“每秒浮點(diǎn)運(yùn)算次數(shù)”,此數(shù)值越高,代表對(duì)主機(jī)運(yùn)算能力的需求就越高。
假設(shè)輸入的特征圖大小為高度H乘以寬度W乘以通道數(shù)C,即H×W×C,輸出通道數(shù)為M,分組卷積的組數(shù)為g,那么可以計(jì)算出三種模型的浮點(diǎn)運(yùn)算數(shù)。如表2為本文實(shí)驗(yàn)中使用的Mask R-CNN網(wǎng)絡(luò)、輕量級(jí)MobileNet R-CNN 網(wǎng)絡(luò)與SN Mask R-CNN 網(wǎng)絡(luò)的浮點(diǎn)運(yùn)算數(shù)的計(jì)算結(jié)果。
表2 三種網(wǎng)絡(luò)的浮點(diǎn)運(yùn)算數(shù)
本文提出的SN Mask R-CNN 網(wǎng)絡(luò)模型的運(yùn)行流程如下:
(1)圖片預(yù)處理
在訓(xùn)練開(kāi)始時(shí)候,首先分批次處理圖片,將照片縮放至1 024×1 024 的固定大小,縮放過(guò)程中保留圖片正常寬高比,在無(wú)像素的區(qū)域進(jìn)行填0 操作,輸入的照片分解為RBG 三個(gè)通道,每個(gè)像素點(diǎn)對(duì)應(yīng)的值為該點(diǎn)在對(duì)應(yīng)通道的0~255灰度值。
(2)特征提取與確定興趣區(qū)域
將數(shù)字化的圖片數(shù)據(jù)輸入經(jīng)過(guò)預(yù)訓(xùn)練處理的特征提取器中,本文選取的特征提取器是ShuffleNet-FPN網(wǎng)絡(luò),通過(guò)7×7的大卷積核,步長(zhǎng)為3的卷積層與池化層對(duì)圖片進(jìn)行快速降維,進(jìn)入ShuffleNet-FPN 的特征提取器,通過(guò)使用分組數(shù)g=3 的四個(gè)ShuffleNet單元塊進(jìn)行快速計(jì)算,在每個(gè)分辨率階段使用最后運(yùn)算結(jié)果得到的特征圖作為該層的代表特征圖,設(shè)為C1~C5,對(duì)C2~C5層進(jìn)行1×1 小卷積核運(yùn)算進(jìn)行降維,計(jì)算出特征層P2~P5,將其輸入至RPN區(qū)域建議網(wǎng)絡(luò)。
RPN 網(wǎng)絡(luò)根據(jù)特征圖的語(yǔ)義信息確立興趣區(qū)輸出Anchor候選窗口,對(duì)每個(gè)候選窗口生產(chǎn)三種規(guī)模的候選框并在特征圖上進(jìn)行滑窗操作,根據(jù)真實(shí)值進(jìn)行比對(duì),根據(jù)重疊度(Intersection over Union,IOU,本文采取IoU≥0.5)保留候選框,并使用非極大值抑制(Non Maximum Suppression,NMS)保留得分最高的候選框。
進(jìn)入RoI Align通過(guò)雙線性插值保留像素級(jí)別的運(yùn)算精度,確定同一語(yǔ)義信息候選框在每層特征圖中對(duì)應(yīng)像素內(nèi)容位置不變。
(3)目標(biāo)分類(lèi)、邊框回歸、掩膜分割結(jié)果計(jì)算
確立語(yǔ)義信息候選框后的結(jié)果經(jīng)過(guò)兩個(gè)全鏈接層對(duì)池化結(jié)果通過(guò)Softmax 與Smoothl1 函數(shù)進(jìn)行目標(biāo)分類(lèi)和邊框回歸,同時(shí)并行地通過(guò)全卷積網(wǎng)絡(luò)(Fully Convolutional Network,F(xiàn)CN)對(duì)RoI 池化結(jié)果掩膜分割的計(jì)算,保留計(jì)算結(jié)果,并遍歷掩膜中的像素點(diǎn)位置,將結(jié)果傳入邊框回歸結(jié)果中進(jìn)行聯(lián)合計(jì)算,保留極值。
(4)計(jì)算損失函數(shù),更新學(xué)習(xí)率并調(diào)整權(quán)重參數(shù)
計(jì)算損失函數(shù),更新學(xué)習(xí)率,通過(guò)反向傳播調(diào)整各層的權(quán)重參數(shù)。
(5)重復(fù)訓(xùn)練
繼續(xù)讀取訓(xùn)練集中的圖片進(jìn)行(1)~(4)的訓(xùn)練步驟。
(6)訓(xùn)練完成
訓(xùn)練次數(shù)達(dá)到設(shè)定迭代數(shù)后停止,輸出權(quán)重文件。
SN Mask R-CNN網(wǎng)絡(luò)模型結(jié)構(gòu)如圖10所示。
本實(shí)驗(yàn)使用的服務(wù)器配置如下:
CPU 為Inter?Core ?i5-8250U CPU @1.6 GHz 1.80 GHz;GPU 為NVIDA GeForce GTX 1050 with Max-Q Design 4g;系統(tǒng)環(huán)境為Windows 10 家庭中文版;CUDA 9.0;Python 3.5;TensorFlow 1.12.0;Keras 2.0.8;Jupyter Notebook;固態(tài)硬盤(pán)為256 GB;云平臺(tái)為T(mén)itan XP E5-1620 8核32G 2 TB硬盤(pán)。
圖10 SN Mask R-CNN網(wǎng)絡(luò)模型結(jié)構(gòu)
本實(shí)驗(yàn)使用官方提供的通過(guò)R-CNN 模型預(yù)訓(xùn)練得到的初始權(quán)重參數(shù),在tensorflow 的keras 框架下,在Microsoft COCO2017數(shù)據(jù)集中,使用SN Mask R-CNN網(wǎng)絡(luò)結(jié)構(gòu)完成模型的訓(xùn)練并更新特征提取模塊中參數(shù),并將完成訓(xùn)練的模型進(jìn)行人體關(guān)鍵點(diǎn)檢測(cè),并將其結(jié)果與原始Mask R-CNN 網(wǎng)絡(luò)與MobileNet Mask R-CNN進(jìn)行對(duì)比。
本文云平臺(tái)實(shí)驗(yàn)是分別在Microsoft COCO2017數(shù)據(jù)集中的訓(xùn)練集和驗(yàn)證集進(jìn)行訓(xùn)練與測(cè)試的。其中,人體關(guān)鍵點(diǎn)數(shù)據(jù)集包含18個(gè)關(guān)鍵點(diǎn):鼻子-0、脖子-1(計(jì)算獲得,在數(shù)據(jù)集中未標(biāo)注)、右肩-2、右肘-3、右手腕-4、左肩-5、左肘-6、左手腕-7、右臀-8、右膝蓋-9、右腳踝-10、左臀-11、左膝蓋-12、左腳踝-13、右眼-14、左眼-15、右耳朵-16、左耳朵-17;在人體關(guān)鍵點(diǎn)可視化繪制中,將頭部整體視為一個(gè)關(guān)鍵點(diǎn),故繪制結(jié)果保留14 個(gè)關(guān)鍵點(diǎn):頭部、脖子、左肩、右肩、左肘、右肘、左手腕、右手腕、左臀、右臀、左膝蓋、右膝蓋、左腳踝、右腳踝。COCO 數(shù)據(jù)集中的關(guān)鍵點(diǎn)標(biāo)注與保留繪制的關(guān)鍵點(diǎn),如圖11所示。
圖11 COCO數(shù)據(jù)集中的關(guān)鍵點(diǎn)(左)與保留繪制的關(guān)鍵點(diǎn)(右)
4.3.1 模型訓(xùn)練
在極客云通信云平臺(tái)上,創(chuàng)建了具有深度學(xué)習(xí)框架和相應(yīng)環(huán)境的Docker。Titan XP E5-1620 8 核32G 顯卡用于訓(xùn)練,對(duì)改進(jìn)的SN Mask R-CNN網(wǎng)絡(luò)模型進(jìn)行160 000 次迭代,學(xué)習(xí)率為0.005,在120 000 次迭代時(shí)將學(xué)習(xí)率減至10%,總訓(xùn)練時(shí)間為64 h。對(duì)于MobileNet Mask R-CNN 和原始Mask R-CNN 進(jìn)行相同的訓(xùn)練配置,時(shí)間耗費(fèi)為66 h和72 h。
如圖12為三種Mask R-CNN網(wǎng)絡(luò)在訓(xùn)練時(shí)平均損失隨迭代次數(shù)的變化曲線圖??梢钥闯鲈谟?xùn)練初期,三種網(wǎng)絡(luò)的損失下降速率均較快,中期Mask R-CNN收斂速度最慢,MobileNet次之,改進(jìn)SN Mask R-CNN網(wǎng)絡(luò)模型在45 000次迭代前的損失下降速度最快,在80 000次迭代以后的損失開(kāi)始趨近平穩(wěn),其收斂速度是三者中最快。
圖12 三種網(wǎng)絡(luò)模型的損失函數(shù)值
4.3.2 實(shí)驗(yàn)結(jié)果
(1)迭代次數(shù)對(duì)精度影響的結(jié)果
在模型進(jìn)行到20 000、40 000、100 000、160 000 次迭代之時(shí)進(jìn)行實(shí)驗(yàn),使用驗(yàn)證集中隨機(jī)500張圖片對(duì)三種網(wǎng)絡(luò)進(jìn)行人體關(guān)鍵點(diǎn)準(zhǔn)確率計(jì)算,來(lái)驗(yàn)證迭代次數(shù)對(duì)于檢測(cè)精度的影響,實(shí)驗(yàn)結(jié)果如表3所示。
表3 云服務(wù)器中的測(cè)試結(jié)果%
隨著迭代次數(shù)的增加,三個(gè)網(wǎng)絡(luò)對(duì)于精度都有提升,但原始網(wǎng)絡(luò)由于參數(shù)數(shù)量的優(yōu)勢(shì),在提升效果上要強(qiáng)于兩個(gè)輕量級(jí)的網(wǎng)絡(luò),但SN Mask R-CNN在前期就達(dá)到了較高精度,故在前期同等迭代次數(shù)的實(shí)驗(yàn)中,結(jié)果準(zhǔn)確率優(yōu)于原始Mask R-CNN 與MobileNet Mask R-CNN網(wǎng)絡(luò)。
(2)網(wǎng)絡(luò)檢測(cè)效率的結(jié)果
使用驗(yàn)證集中隨機(jī)500 張圖片對(duì)三種網(wǎng)絡(luò)進(jìn)行準(zhǔn)確率計(jì)算,設(shè)定重疊度IoU≥0.5,進(jìn)行500 次實(shí)驗(yàn)后結(jié)果如表4。其中,Mask R-CNN 的準(zhǔn)確率為74.2%,Mobile Mask R-CNN 的準(zhǔn)確率為68.9%,SN Mask R-CNN準(zhǔn)確率為73.4%,但后兩者由于采用了輕量化的網(wǎng)絡(luò)結(jié)構(gòu)模型,存儲(chǔ)大小僅有82 MB 和94 MB,明顯小于280 MB 的原始Mask R-CNN 模型,可以節(jié)省60%以上的存儲(chǔ)空間。在檢測(cè)速度的對(duì)比上,原始Mask RCNN 的總檢測(cè)時(shí)間為553 s,約為1.11 s 檢測(cè)一幀圖片,MobileNet 的總檢測(cè)時(shí)間為412 s,平均檢測(cè)時(shí)間約為0.82 s,改進(jìn)SN Mask R-CNN的總檢測(cè)時(shí)間約為389 s,平均檢測(cè)時(shí)間約為0.78 s。
表4 云服務(wù)器中的測(cè)試結(jié)果
4.3.3 結(jié)果分析
首先本文提出的SN Mask R-CNN 模型采用了輕量化網(wǎng)絡(luò)結(jié)構(gòu),在參數(shù)量和計(jì)算量上對(duì)比原始Mask R-CNN 網(wǎng)絡(luò)模型明顯減少,提升了檢測(cè)速度。第二是為了保證精確度,使用通道重排的方式保證分組后的特征信息得到組間交流的機(jī)會(huì)。最后使用掩膜分割結(jié)果與邊框回歸結(jié)果進(jìn)行聯(lián)合計(jì)算,可以減少在同樣的檢測(cè)效果下的迭代次數(shù),提升模型訓(xùn)練效率。由此可以看出改進(jìn)SN Mask R-CNN 具有比原始Mask R-CNN 和MobileNet Mask R-CNN 表現(xiàn)更為優(yōu)秀、內(nèi)存較小、靈活性更強(qiáng)、檢測(cè)時(shí)間更快的特點(diǎn)。
理想的人體關(guān)鍵點(diǎn)檢測(cè)算法的場(chǎng)景是使用者單人位于攝像頭視野范圍中,此時(shí)的系統(tǒng)穩(wěn)定性和識(shí)別率是最高的,而現(xiàn)實(shí)中的場(chǎng)景往往伴隨著各種干擾因素,例如突入攝像頭的路人、車(chē)輛、雜物,還有使用者自身的自遮擋行為都會(huì)對(duì)系統(tǒng)的穩(wěn)定性與識(shí)別率造成影響。故實(shí)驗(yàn)場(chǎng)景設(shè)置無(wú)干擾的單使用者無(wú)干擾場(chǎng)景和存在干擾因素的場(chǎng)景進(jìn)行模擬實(shí)驗(yàn)。本文實(shí)驗(yàn)將進(jìn)行多組,并隨即穿插使用者自遮擋行為與復(fù)雜背景的情況進(jìn)行對(duì)比實(shí)驗(yàn),分析實(shí)驗(yàn)結(jié)果圖并記錄實(shí)驗(yàn)速度。
在本地的NVIDA GeForce GTX 1050 with Max-Q Design 4g的實(shí)驗(yàn)環(huán)境中,由于硬件配置較為低端,對(duì)于圖片檢測(cè)的效率較云平臺(tái)低。在圖片測(cè)試中,Mask RCNN 的單圖片測(cè)試時(shí)間為8.5 s,MobileNet Mask RCNN的單圖片測(cè)試時(shí)間為4.3 s,改進(jìn)SN Mask R-CNN的單圖片測(cè)試時(shí)間為3.5 s,若應(yīng)用于視頻流的檢測(cè),進(jìn)行5 s 提取一幀關(guān)鍵幀的操作是可行的,對(duì)于本項(xiàng)目具有一定的實(shí)際意義。
本文設(shè)置了多種應(yīng)用場(chǎng)景,進(jìn)行了對(duì)比實(shí)驗(yàn)和驗(yàn)證實(shí)驗(yàn),實(shí)驗(yàn)素材使用的是網(wǎng)絡(luò)公開(kāi)的拍攝視頻與圖片素材,根據(jù)不同的實(shí)驗(yàn)場(chǎng)景與結(jié)果可以進(jìn)行模型精度的對(duì)比分析。
圖13 與圖14 是單人為主的場(chǎng)景的實(shí)驗(yàn),圖中的(a)、(b)、(c)、(d)分別代表原始樣本與圖片經(jīng)過(guò)Mask R-CNN、MobileNet Mask R-CNN、SN Mask R-CNN網(wǎng)絡(luò)模型的計(jì)算結(jié)果。圖13 存在人體自遮擋情況,圖14存在異物遮擋人體的情況。
圖13 單人場(chǎng)景1
圖14 單人場(chǎng)景2
圖13實(shí)驗(yàn)場(chǎng)景比較簡(jiǎn)單,僅有一塊黑色幕布遮擋,Mask R-CNN 和MobileNet Mask R-CNN 都 誤 將 黑 色幕布識(shí)別為人,而改進(jìn)SN Mask R-CNN 未錯(cuò)誤識(shí)別,三者都成功識(shí)別出右邊的半張臉為人,對(duì)于人體自遮擋情況均有良好的識(shí)別效果;在實(shí)驗(yàn)場(chǎng)景圖14 中存在異物遮擋人體情況,人體重要關(guān)鍵點(diǎn)信息未成功在圖片上顯示,三者均表現(xiàn)不佳。
如圖15 至圖20 是多人場(chǎng)景的實(shí)驗(yàn),圖中的(a)、(b)、(c)、(d)分別代表原始樣本與圖片經(jīng)過(guò)Mask RCNN、MobileNet Mask R-CNN、SN Mask R-CNN網(wǎng)絡(luò)模型的計(jì)算結(jié)果。
圖15 多人場(chǎng)景1
圖16 多人場(chǎng)景2
在本部分實(shí)驗(yàn)場(chǎng)景中,全身或者絕大部分身體入鏡的測(cè)試對(duì)象識(shí)別效果較好,入鏡部分較少、背對(duì)攝像頭以及存在異物和其他人體遮擋的情況下的測(cè)試對(duì)象識(shí)別效果較差,值得一提的是在圖15中,Mask R-CNN與SN Mask R-CNN 均識(shí)別出背對(duì)攝像機(jī)測(cè)試對(duì)象的左肘關(guān)鍵點(diǎn),而MobileNet Mask R-CNN對(duì)于此節(jié)點(diǎn)的識(shí)別效果欠佳,在圖17至19這種極為復(fù)雜的場(chǎng)景中,人體的自遮擋與被遮擋一定程度上會(huì)影響關(guān)鍵點(diǎn)的識(shí)別率,從整體結(jié)果上可觀察出其中Mask R-CNN 的識(shí)別正確率是最高的,SN Mask R-CNN 次之,而且會(huì)有部分關(guān)鍵點(diǎn)的檢測(cè)和Mask R-CNN 位置不一致,但仍處于正確范圍內(nèi),其原因是特征提取計(jì)算模塊的不同。而MobileNet Mask R-CNN 偶爾會(huì)出現(xiàn)丟失實(shí)例或者關(guān)鍵點(diǎn)的情況,例如圖17 未捕捉圖像中坐在最左邊大象上的人體信息,圖18 丟失右下實(shí)例的關(guān)鍵點(diǎn)等。對(duì)于如圖20 這種人數(shù)繁多且背景復(fù)雜的情形,三種網(wǎng)絡(luò)均未捕捉到圖像右上部分的身穿黑色T恤人體實(shí)例,其原因是該實(shí)例位于圖像中最遠(yuǎn)位置處,黑色衣物和背景顏色接近且該實(shí)例圖像細(xì)節(jié)丟失嚴(yán)重,屬于合理誤差。
對(duì)于該部分的實(shí)驗(yàn)數(shù)據(jù)如表5,圖13至圖20依次對(duì)應(yīng)表內(nèi)的Scene1至Scene8。
圖17 多人場(chǎng)景3
圖18 多人場(chǎng)景4
圖19 多人場(chǎng)景5
圖20 多人場(chǎng)景6
表5 人體關(guān)鍵點(diǎn)檢測(cè)本地實(shí)驗(yàn)結(jié)果
實(shí)驗(yàn)結(jié)果表明,SN Mask R-CNN 網(wǎng)絡(luò)模型在單人與多人的關(guān)鍵點(diǎn)檢測(cè)問(wèn)題上均表現(xiàn)良好,在精度上能與原始Mask R-CNN網(wǎng)絡(luò)模型相當(dāng),在運(yùn)行時(shí)間上優(yōu)于原始Mask R-CNN與MobileNet Mask R-CNN,說(shuō)明本文對(duì)Mask R-CNN 網(wǎng)絡(luò)的改進(jìn)能在一定程度上提高了網(wǎng)絡(luò)對(duì)遮擋情況下的識(shí)別能力、較強(qiáng)的抗干擾能力以及網(wǎng)絡(luò)模型的運(yùn)行效率,而MobileNet Mask R-CNN出現(xiàn)的誤檢情況則說(shuō)明本文的SN Mask R-CNN 模型采取的特征信息通道重排措施在提升網(wǎng)絡(luò)模型的精度方面有較好的作用。檢測(cè)速度的提升將能為其他模塊節(jié)省更多的時(shí)間去完成更復(fù)雜的任務(wù),在人體關(guān)鍵點(diǎn)檢測(cè)的實(shí)際應(yīng)用上起到重要的作用。
本文基于原始Mask R-CNN網(wǎng)絡(luò),提出了一種應(yīng)用于人體關(guān)鍵點(diǎn)檢測(cè)問(wèn)題的SN Mask R-CNN網(wǎng)絡(luò)模型,即使用SN-Resnet 網(wǎng)絡(luò)替換了原始?xì)埐罹W(wǎng)絡(luò)Resnet,使用通道重排方法使得分組逐點(diǎn)卷積的組間信息能夠互相交流,降低了計(jì)算復(fù)雜度;取消Mask R-CNN 中分割掩膜可視化操作,將計(jì)算結(jié)果并入邊框回歸進(jìn)行聯(lián)合計(jì)算,并優(yōu)化損失函數(shù),在同等迭代次數(shù)中獲得了更好的檢測(cè)精度與更高的檢測(cè)效率。在對(duì)比實(shí)驗(yàn)中可以發(fā)現(xiàn),在保留精度的情況下,可以提升效率與減少程序響應(yīng)時(shí)間,網(wǎng)絡(luò)訓(xùn)練完成后,檢測(cè)任務(wù)在配置較低的筆記本上即可完成對(duì)人體關(guān)鍵點(diǎn)的檢測(cè),并預(yù)計(jì)隨著配置的增高可進(jìn)一步提高檢測(cè)效率,具有較好的普適性與應(yīng)用性。但在人體被大面積遮擋或者人體丟失大部分細(xì)節(jié)的情況下,R-CNN系列的方法會(huì)出現(xiàn)識(shí)別率不佳的情況,如何有效地解決這一問(wèn)題是下一步研究的重點(diǎn)。