徐婉晴,王保棟,黃藝美,李金屏*
(1.濟(jì)南大學(xué)信息科學(xué)與工程學(xué)院,濟(jì)南 250022;2.山東省網(wǎng)絡(luò)環(huán)境智能計(jì)算技術(shù)重點(diǎn)實(shí)驗(yàn)室(濟(jì)南大學(xué)),濟(jì)南 250022;3.山東省“十三五”高校信息處理與認(rèn)知計(jì)算重點(diǎn)實(shí)驗(yàn)室(濟(jì)南大學(xué)),濟(jì)南 250022)
(?通信作者電子郵箱ise_lijp@ujn.edu.cn)
吸煙嚴(yán)重危害人類的身體健康,并且在公共場(chǎng)所吸煙存在很多潛在的危害,不少研究者采用不同方法對(duì)吸煙行為展開研究[1-4]。目前關(guān)于吸煙行為的計(jì)算機(jī)視覺檢測(cè)算法主要是利用深度學(xué)習(xí)模型對(duì)煙頭、煙霧、人臉進(jìn)行檢測(cè),進(jìn)而判斷出吸煙行為[1-2]。盡管深度學(xué)習(xí)對(duì)圖像數(shù)據(jù)特征都有著很好的非線性學(xué)習(xí)能力,但是需要大量且多樣的數(shù)據(jù)集進(jìn)行訓(xùn)練,并且當(dāng)人物處于復(fù)雜環(huán)境時(shí),識(shí)別難度會(huì)增加。僅利用目標(biāo)檢測(cè)的方法識(shí)別吸煙行為忽略了吸煙行為與吸煙者肢體動(dòng)作之間的關(guān)系。一些學(xué)者在研究過程中將目標(biāo)檢測(cè)算法和動(dòng)作識(shí)別算法進(jìn)行了結(jié)合來檢測(cè)吸煙行為,例如文獻(xiàn)[3]中針對(duì)出租車司機(jī)設(shè)計(jì)了一種采用支持向量機(jī)(Support Vector Machine,SVM)對(duì)吸煙煙霧特征和抖煙動(dòng)作特征進(jìn)行建模和分類來檢測(cè)吸煙行為的方法,由于出租車會(huì)擋住司機(jī)的吸煙動(dòng)作,所以只能檢測(cè)司機(jī)的抖煙動(dòng)作以及飄出窗外的煙霧。文獻(xiàn)[4]中利用幀差法與膚色檢測(cè)法首先判斷出人物手部運(yùn)動(dòng)軌跡,排除非吸煙行為,然后提取手部區(qū)域圖像,使用顏色特征檢測(cè)煙頭。該方法的檢測(cè)思路是先篩選出疑似吸煙行為,較大提升了算法的運(yùn)算效率;但方法對(duì)于手部運(yùn)動(dòng)軌跡的判斷較為粗糙,難以應(yīng)對(duì)復(fù)雜場(chǎng)景中的干擾。
人體動(dòng)作與骨骼關(guān)鍵點(diǎn)之間存在著十分密切的聯(lián)系,并且隨著人體姿態(tài)估計(jì)算法的發(fā)展[5-7],人體骨骼關(guān)鍵點(diǎn)定位的準(zhǔn)確性也越來越高。已有學(xué)者利用人體的關(guān)鍵點(diǎn)進(jìn)行吸煙行為的識(shí)別,如文獻(xiàn)[8]中提出了一種基于人體關(guān)節(jié)點(diǎn)的吸煙行為識(shí)別方法,可檢測(cè)多人場(chǎng)景中的吸煙行為,然而只能識(shí)別符合一定周期性的吸煙過程。
本文結(jié)合人體骨骼關(guān)鍵點(diǎn)信息與目標(biāo)檢測(cè)算法提出了一種吸煙行為檢測(cè)算法,利用左手腕、右手腕、左眼睛、右眼睛、左嘴角、右嘴角共6 個(gè)關(guān)鍵點(diǎn),計(jì)算出手腕到兩嘴角中點(diǎn)的距離和手腕到同側(cè)眼睛的距離,得出這兩個(gè)距離的比值——吸煙動(dòng)作比例(Smoking Action Ratio,SAR)。經(jīng)過大量實(shí)驗(yàn)發(fā)現(xiàn),SAR 值呈現(xiàn)出規(guī)律性,當(dāng)人物存在吸煙動(dòng)作時(shí),SAR 總是集中在某一范圍內(nèi),將人物存在吸煙動(dòng)作時(shí)的SAR 命名為吸煙動(dòng)作黃金比例(Golden Ratio of Smoking Action,GRSA),即判定為吸煙動(dòng)作的最佳SAR 比例,與其他動(dòng)作可以較好地區(qū)分。
本文主要工作是:
1)利用人體骨骼關(guān)鍵點(diǎn)(手腕、嘴角、眼睛)的位置關(guān)系,提出SAR 的計(jì)算方法,設(shè)定判別規(guī)則以檢測(cè)吸煙行為,即人物的SAR是否處于當(dāng)前環(huán)境下的GRSA。
2)利用YOLOv4檢測(cè)視頻中是否存在煙頭,并結(jié)合GRSA和YOLOv4 算法對(duì)煙頭的檢測(cè)來確定吸煙行為的可能性高低,設(shè)定閾值得到吸煙行為的最終判定結(jié)果。
3)針對(duì)不同場(chǎng)景不同人員的吸煙行為進(jìn)行檢測(cè),對(duì)比了單獨(dú)使用YOLOv4、單獨(dú)使用GRSA 方法以及將YOLOv4 和GRSA結(jié)合的實(shí)驗(yàn)結(jié)果,驗(yàn)證本文算法的有效性和可行性。
本文的算法流程如圖1 所示。首先利用AlphaPose 模型檢測(cè)出左右手腕關(guān)鍵點(diǎn),利用RetinaFace 模型檢測(cè)出左右眼睛和左右嘴角關(guān)鍵點(diǎn),獲得其坐標(biāo)值。接著根據(jù)關(guān)鍵點(diǎn)的坐標(biāo)可計(jì)算出SAR 值,與當(dāng)前環(huán)境下的GRSA 比較,記錄SAR 屬于GRSA 的持續(xù)時(shí)間t,將t與閾值T比較,作出是否屬于GRSA 的判定;同時(shí),利用YOLOv4 模型作出是否存在煙頭的判定。由這兩個(gè)判定依據(jù)按照設(shè)定的規(guī)則得到吸煙行為可能性等級(jí)。
圖1 本文算法流程Fig.1 Flowchart of the proposed algorithm
AlphaPose 是一個(gè)多人姿態(tài)估計(jì)的開源系統(tǒng),在MSCOCO數(shù)據(jù)集上的平均精度均值(mean Average Precision,mAP)達(dá)到61.8%,在MPII 數(shù)據(jù)集上的mAP 達(dá)到76.7%[9]。該系統(tǒng)使用的是區(qū)域多人姿態(tài)估計(jì)(Regional Multi-Person Pose Estimation,RMPE)框架,見圖2。RMPE 在原有的單人姿態(tài)估計(jì)模塊(Single-Person Pose Estimator,SPPE)上增加了對(duì)稱空間變換網(wǎng)絡(luò)(Symmetric Space Transformation Network,SSTN)、由姿態(tài)引導(dǎo)的樣本生成器(Pose-Guided Proposals Generator,PGPG)、姿態(tài)非極大值抑制器(Parametric Pose Non-Maximum Suppression,PPNMS)三個(gè)模塊。SPPE 是針對(duì)單人圖像進(jìn)行訓(xùn)練的,而且對(duì)定位錯(cuò)誤十分敏感,因此RMPE 引入SSTN 和平行的SPPE 來增強(qiáng)SPPE 的效果。SSTN 是由空間轉(zhuǎn)換器網(wǎng)絡(luò)(Spatial Transformer Network,STN)和空間去轉(zhuǎn)換器網(wǎng)絡(luò)(Spatial De-Transformer Network,SDTN)組成的,被分別放在SPPE的前、后,由STN獲取人體樣本,由SDTN產(chǎn)生姿態(tài)樣本。Parallel SPPE 在訓(xùn)練部分作為一個(gè)額外的調(diào)節(jié)器,以避免局部最小值。最后的PPNMS 是為了消除冗余姿態(tài)估計(jì)。PGPG的作用是為了增加現(xiàn)有的訓(xùn)練樣本。根據(jù)文獻(xiàn)[9]在COCO和MPII 數(shù)據(jù)集上對(duì)多種骨骼檢測(cè)模型進(jìn)行的對(duì)比結(jié)果,本文采用效果較好的AlphaPose檢測(cè)視頻中的人體目標(biāo),得到人體的各個(gè)骨骼關(guān)鍵點(diǎn)在該幀圖像中的(x,y)坐標(biāo),用到其中的左手腕、右手腕2 個(gè)關(guān)鍵點(diǎn)。AlphaPose 骨骼關(guān)鍵點(diǎn)檢測(cè)效果如圖2所示。
圖2 RMPE框架的流程Fig.2 Flowchart of RMPE framework
對(duì)現(xiàn)有的人臉檢測(cè)算法[10-15]進(jìn)行研究發(fā)現(xiàn),RetinaFace 模型可以較好地應(yīng)用于本文的吸煙檢測(cè)問題。RetinaFace 是一種單級(jí)人臉檢測(cè)算法,利用多任務(wù)聯(lián)合額外監(jiān)督學(xué)習(xí)和自監(jiān)督學(xué)習(xí)的優(yōu)點(diǎn),可以對(duì)不同尺度的人臉進(jìn)行像素級(jí)定位[15]。該算法是基于特征金字塔設(shè)計(jì)的,在主干網(wǎng)絡(luò)的選擇上使用了輕量級(jí)網(wǎng)絡(luò)MobileNet,具有獨(dú)立的上下文模塊。根據(jù)上下文模塊計(jì)算多任務(wù)損失函數(shù),RetinaFace 可以在單個(gè)CPU 上實(shí)時(shí)運(yùn)行完成多尺度的人臉檢測(cè)、人臉對(duì)齊、像素級(jí)人臉分析和人臉密集關(guān)鍵點(diǎn)三維分析任務(wù),可同時(shí)輸出人臉框和5 個(gè)人臉關(guān)鍵點(diǎn)信息。本文用到其中的4 個(gè)關(guān)鍵點(diǎn),分別是:左眼睛、右眼睛、左嘴角、右嘴角。RetinaFace 人臉檢測(cè)效果如圖3所示。
圖3 人臉檢測(cè)效果Fig.3 Detection effect of face
1.3.1 思路分析
當(dāng)人物有吸煙行為時(shí),最顯著的特征是手部十分靠近嘴部,而手部靠近嘴部的行為,也可能出現(xiàn)于喝水、撓頭、扶眼鏡時(shí)?;谌梭w骨骼關(guān)鍵點(diǎn)信息判定吸煙行為的關(guān)鍵就在于如何利用關(guān)鍵點(diǎn)之間的位置信息將吸煙行為與其他行為良好地區(qū)分開??紤]到若計(jì)算手部到嘴部的距離,當(dāng)距離較小時(shí),有可能是吸煙行為,但是由于視頻中人物大小不確定導(dǎo)致閾值難以確定;若是在手部和嘴部關(guān)鍵點(diǎn)附近設(shè)定一個(gè)區(qū)域范圍,當(dāng)兩個(gè)區(qū)域有重合時(shí),計(jì)算交并比,存在的問題是設(shè)定多大的區(qū)域范圍仍然難以確定;因此本文采用比值的方法去除量綱,解決了閾值難以確定的問題。利用(右/左)手腕部到嘴部的距離d1與(右/左)手腕部到(右/左)眼睛的距離d2的比值(如圖4 所示),即SAR。SAR 的分母是手腕到眼睛的距離d2而不用手腕到其他部位的距離,主要是考慮到眼睛和嘴巴總是會(huì)處于同一個(gè)平面,當(dāng)人側(cè)身面對(duì)攝像頭的時(shí)候,有一定的魯棒性,并且不同人的手的大小和五官之間的距離相差不會(huì)太大,相對(duì)于身高更有普遍性。
圖4 吸煙動(dòng)作比例示意圖Fig.4 Schematic diagram of SAR
1.3.2 數(shù)據(jù)處理
通過AlphaPose 和RetinaFace 得到6 個(gè)關(guān)鍵點(diǎn)的坐標(biāo),坐標(biāo)以圖像左上角為原點(diǎn),如圖5所示。
圖5 以圖像左上角為原點(diǎn)的坐標(biāo)系Fig.5 Coordinate system with top left corner of image as origin
根據(jù)式(1)可計(jì)算出手腕到嘴巴的歐氏距離d1和手腕到眼睛的歐氏距離d2,由式(2)得到SAR值,即SAR。若由于關(guān)鍵點(diǎn)檢測(cè)不準(zhǔn)確或手腕與眼睛重合等原因?qū)е耫2的值為0,則令d2=1。
對(duì)視頻進(jìn)行逐幀處理,以視頻當(dāng)前幀數(shù)序列為X軸,以SAR 值序列為Y軸,畫出實(shí)時(shí)曲線圖。如圖6 所示,點(diǎn)線代表的是左手腕的SAR 值,虛線代表的是右手腕的SAR 值,兩條黑色實(shí)線之間代表當(dāng)前環(huán)境下的GRSA 范圍。圖6(b)中標(biāo)注的框1 對(duì)應(yīng)圖6(a)中的抽煙動(dòng)作,框2 對(duì)應(yīng)的是圖6(a)中的扶眼鏡動(dòng)作。由于扶眼鏡動(dòng)作和抽煙動(dòng)作之間的間隔動(dòng)作序列含有的信息量很少,所以沒有展示出來。兩種動(dòng)作均選取了關(guān)鍵幀以展示動(dòng)作過程,圖7、8 類似。圖7(b)中框3 對(duì)應(yīng)的是圖7(a)中的左臂自然下垂,右臂晃動(dòng)水杯的動(dòng)作,框4對(duì)應(yīng)的是圖7(a)中喝水動(dòng)作的過程,框5對(duì)應(yīng)的是圖7中檢測(cè)不到某些關(guān)鍵點(diǎn)因而顯示異常值的情況;圖8(b)中框6 對(duì)應(yīng)的是圖8(a)中的撓頭的動(dòng)作。從實(shí)驗(yàn)中發(fā)現(xiàn),本文的GRSA 吸煙檢測(cè)算法可以較好地區(qū)分吸煙動(dòng)作和非吸煙動(dòng)作。
圖6 吸煙動(dòng)作和扶眼鏡動(dòng)作及其對(duì)應(yīng)的SAR值Fig.6 Smoking and glasses-holding behaviors and their corresponding SARs
圖7 正常狀態(tài)和喝水動(dòng)作及其對(duì)應(yīng)的SAR值Fig.7 Normal condition and drinking water behaviors and their corresponding SARs
圖8 撓頭動(dòng)作及其對(duì)應(yīng)的SARFig.8 Scratching head behavior and its corresponding SAR
YOLOv4 是一個(gè)簡(jiǎn)單且高效的目標(biāo)檢測(cè)算法,該算法在YOLOv3 的基礎(chǔ)上,從各個(gè)方面引入一些優(yōu)化方法[16]。其中訓(xùn)練時(shí)采用Mosaic 數(shù)據(jù)增強(qiáng)方法、跨小批量標(biāo)準(zhǔn)化CmBN(Cross mini-Batch Normalization)和自對(duì)抗訓(xùn)練SAT(Self-Adversarial-Training),保留了YOLOv3 的 head 部分,CSPDarknet53 作為主干網(wǎng)絡(luò),并使用Mish 激活函數(shù)和Dropblock 丟棄方式,同時(shí)Neck 結(jié)構(gòu)采用了SPP(Spatial Pyramid Pooling)模塊、FPN+PAN(Feature Pyramid Network+Path Aggregation Network)的方式。輸出層的錨框機(jī)制和YOLOv3 相同,主要改進(jìn)的是訓(xùn)練時(shí)的損失函數(shù),采用CIOU_Loss 回歸方式,以及預(yù)測(cè)框篩選方式由NMS(Non Maximum Suppression)變?yōu)镈IOU_nms?;赮OLOv3 的改進(jìn)使得YOLOv4 模型在檢測(cè)速度和精度上達(dá)到了目前為止的最優(yōu)匹配。本文利用YOLOv4 算法對(duì)4 900 張吸煙圖片進(jìn)行訓(xùn)練和測(cè)試,在GRSA 吸煙檢測(cè)算法的基礎(chǔ)上進(jìn)一步提高吸煙行為檢測(cè)的準(zhǔn)確率。煙頭檢測(cè)效果如圖8 所示,圖中“smoke”表示檢測(cè)到煙頭,“smoke”后面的數(shù)字“0.97”表示置信率。通過實(shí)驗(yàn)測(cè)試發(fā)現(xiàn),YOLOv4 在檢測(cè)煙頭的問題中有較好的效果,其準(zhǔn)確率信息在表4中給出。
將視頻中人物的SAR 屬于GRSA 的持續(xù)時(shí)間t大于T作為判據(jù)一,將YOLOv4 是否檢測(cè)到煙頭作為判據(jù)二,通過這兩個(gè)判據(jù)得出吸煙行為可能性高低。本文中,判據(jù)一所占的權(quán)重設(shè)置為60%,判據(jù)二所占的權(quán)重設(shè)置為40%。當(dāng)SAR 屬于GRSA 的持續(xù)時(shí)間t>T,且YOLOv4 檢測(cè)到煙頭,則吸煙行為可能性用概率可以表示為100%。依此類推,當(dāng)滿足判據(jù)一不滿足判據(jù)二時(shí),吸煙行為可能性用概率表示為60%;當(dāng)不滿足判據(jù)一而滿足判據(jù)二時(shí),吸煙行為可能性用概率表示為40%;當(dāng)判據(jù)一和判據(jù)二均不滿足時(shí),吸煙行為可能性用概率表示為0%。為了公共場(chǎng)所的安全考慮,吸煙行為可能性若大于等于40%,則判定為存在吸煙行為,見表1。本文進(jìn)行實(shí)驗(yàn)時(shí),將視頻以20 幀/s 進(jìn)行提取,當(dāng)SAR 屬于GRSA 的圖像大于15幀時(shí),認(rèn)為滿足條件,相當(dāng)于T取值為0.75 s。
圖9 煙頭檢測(cè)效果圖Fig.9 Cigarette butt detection effect diagram
表1 吸煙行為判定方法Tab.1 Method for judging smoking behavior
實(shí)驗(yàn)運(yùn)行環(huán)境為Python3.7 和Pytorch 1.5,硬件平臺(tái)使用的GPU 為2080Ti,內(nèi)存為32 GB。由于目前沒有公開的關(guān)于吸煙視頻的數(shù)據(jù)集,為了驗(yàn)證本文所提出算法的合理性與有效性,錄制了300 個(gè)視頻片段,每個(gè)片段約30 s,其中包含室內(nèi)、室外不同環(huán)境下不同人物的不同動(dòng)作,見表2?;旌细鞣N動(dòng)作的視頻除了包括吸煙、喝水、撓頭的動(dòng)作,還有其他一些例如揮手、拍手、彎腰等可以明顯區(qū)分于吸煙的動(dòng)作。視頻可根據(jù)攝像頭和人臉的相對(duì)高度分為兩類,一類是攝像頭和人臉大致處于同一水平線高度,另一類是攝像頭處于人臉斜上方約45°。YOLOv4 中使用的數(shù)據(jù)集來源于網(wǎng)絡(luò)上的吸煙圖片和非吸煙圖片,其中訓(xùn)練集包含4 410 張,測(cè)試集490 張,數(shù)據(jù)標(biāo)注使用的是labelimg圖像標(biāo)注軟件。
表2 不同視頻類別及數(shù)目統(tǒng)計(jì)Tab.2 Statistics of different video categories and their numbers
根據(jù)本文算法中設(shè)定的判定規(guī)則,可知當(dāng)吸煙行為可能性為中等、較高、高時(shí),判定為吸煙行為;當(dāng)吸煙行為可能性為低時(shí),判定為非吸煙行為。在本文中,使用查準(zhǔn)率P、查全率R兩個(gè)指標(biāo)評(píng)估算法的分類效果。查準(zhǔn)率和查全率根據(jù)式(3)和(4)計(jì)算。
其中:a表示判定正確的吸煙行為的樣本數(shù)量,b表示非吸煙行為被判定為吸煙行為的樣本數(shù)量,c表示吸煙行為被判定為非吸煙行為的樣本數(shù)量。
2.3.1 閾值分析
為確定GRSA 的最佳取值,通過拍攝的吸煙視頻測(cè)試,得到以下測(cè)試結(jié)果,如表3(加粗?jǐn)?shù)字表示最佳性能),用標(biāo)準(zhǔn)①~⑥表示實(shí)驗(yàn)中GRSA 所設(shè)定的范圍。當(dāng)人臉和攝像頭大致處于同一水平高度時(shí),標(biāo)準(zhǔn)①的查全率最高,可以應(yīng)用于對(duì)于吸煙把控非常嚴(yán)格的場(chǎng)所,但其對(duì)應(yīng)的查準(zhǔn)率太低;標(biāo)準(zhǔn)③對(duì)應(yīng)的查準(zhǔn)率最高,但其查全率在80%左右,會(huì)漏掉很多吸煙行為。相比之下,標(biāo)準(zhǔn)②將[0.6,0.8]設(shè)置為GRSA 來判定吸煙行為的效果最好,查準(zhǔn)率對(duì)應(yīng)92.8%,查全率對(duì)應(yīng)92.4%。同樣,當(dāng)攝像頭處于人臉斜上方大約45°的情況時(shí),采用標(biāo)準(zhǔn)⑤將[0.55,0.75]設(shè)置為GRSA 來判定吸煙行為的效果最好,查準(zhǔn)率對(duì)應(yīng)91.3%,查全率對(duì)應(yīng)93.2%。
表3 GRSA取值標(biāo)準(zhǔn)分析Tab.3 Analysis of GRSA value standard
2.3.2 與目標(biāo)檢測(cè)算法的對(duì)比
將利用GRSA 的方法和YOLOv4 算法檢測(cè)煙頭的方法進(jìn)行結(jié)合可以有效提升吸煙行為的準(zhǔn)確性。例如,當(dāng)煙頭較小、煙頭的顏色與背景相似、光照強(qiáng)烈等因素導(dǎo)致煙頭難以被檢測(cè)到時(shí),僅使用YOLOv4 目標(biāo)檢測(cè)算法檢測(cè)到吸煙行為的比例較低。此時(shí),利用GRSA 的方法可以有效檢測(cè)到吸煙行為,如圖10(a)和10(b)框2所示。當(dāng)視頻中人物有短暫的吸煙動(dòng)作,即持續(xù)時(shí)間不超過T時(shí),YOLOv4 若準(zhǔn)確檢測(cè)到煙頭就可提升一定的準(zhǔn)確率,如圖10(b)框1 所示。將本文設(shè)計(jì)的GRSA與YOLOv4目標(biāo)檢測(cè)算法作對(duì)比,見表4(加粗?jǐn)?shù)字表示最佳性能)。當(dāng)攝像頭處于人臉斜上方時(shí),使用YOLOv4 檢測(cè)煙頭的方法稍好一些。由表中數(shù)據(jù)可知,將YOLOv4與GRSA結(jié)合起來對(duì)于吸煙行為檢測(cè)效果有顯著的提升。
圖10 兩種方法結(jié)合效果展示Fig.10 Combination effect of two methods
表4 不同算法效果對(duì)比Tab.4 Effect comparison of different algorithms
本文結(jié)合姿態(tài)估計(jì)算法,通過對(duì)手部和臉部關(guān)鍵點(diǎn)的坐標(biāo)信息進(jìn)行處理,分析出吸煙行為與吸煙者肢體動(dòng)作的潛在關(guān)系,能夠準(zhǔn)確檢測(cè)到吸煙行為,擴(kuò)大了吸煙檢測(cè)算法的適用范圍。本文提出的吸煙行為檢測(cè)算法還有不足之處:
1)受制于人體姿態(tài)估計(jì)算法的準(zhǔn)確性,因此對(duì)于低質(zhì)量的圖像或視頻效果并不好;
2)算法目前對(duì)于檢測(cè)人體正面的吸煙行為有較高的準(zhǔn)確率,然而當(dāng)攝像頭處于人體側(cè)面不同角度時(shí),準(zhǔn)確率會(huì)有所下降,因?yàn)樽觳繕O有可能被手部遮擋;并且在嘴部未被遮擋的情況下,GRSA 的范圍需要有所調(diào)整。因此GRSA 吸煙檢測(cè)算法中閾值的自適應(yīng)設(shè)定將作為下一步的工作。