熊明福, 李家輝, 熊捷繁, 向闈, 陳佳
(1.武漢紡織大學(xué)計(jì)算機(jī)與人工智能學(xué)院, 武漢 430000; 2.武漢大學(xué)國(guó)家網(wǎng)絡(luò)安全學(xué)院, 武漢 430000; 3.湖北技術(shù)交易所, 武漢 430000)
近年來(lái),隨著中國(guó)人口老齡化現(xiàn)象的加劇,老年人的生活起居已成為社會(huì)關(guān)注熱點(diǎn)問(wèn)題之一。例如,老齡人群在馬路上行走因身體原因而突然倒地后如不能及時(shí)采取補(bǔ)救措施,就可能會(huì)有生命危險(xiǎn)。因此,檢測(cè)此類人群的跌倒行為并預(yù)警,采取及時(shí)補(bǔ)救措施,對(duì)于國(guó)家健康養(yǎng)老事業(yè)的發(fā)展具有重要意義[1]。
行人跌倒檢測(cè)屬于計(jì)算機(jī)視覺領(lǐng)域中行為識(shí)別的子類,其目的主要是判斷行人在行走過(guò)程中是否倒地異常而發(fā)生意外。其在智慧安防、智能家居和智能監(jiān)護(hù)等領(lǐng)域具有重要的應(yīng)用。當(dāng)前基于行人跌倒檢測(cè)的算法主要有兩種:第一種依靠傳感器裝置完成行人跌倒檢測(cè)[2];第二種則是依靠于視覺算法實(shí)現(xiàn)檢測(cè)[3]。前者一般需要借助Kinect或者陀螺儀這類儀器搭配科學(xué)計(jì)算得到結(jié)果。后者在實(shí)現(xiàn)上可分為兩類:第一類是基于區(qū)域的目標(biāo)檢測(cè)算法,該類算法主要包括兩個(gè)階段,先生成候選區(qū)域,再在生成的區(qū)域上進(jìn)行分類與回歸;第二類算法是基于回歸的目標(biāo)檢測(cè)算法,這類算法為單階段檢測(cè)算法,直接跳過(guò)候選區(qū)域來(lái)預(yù)測(cè)物體的類別概率和位置坐標(biāo)。YOLO(you only look once)[4-5]和SSD(single shot multibox detector)[6]這兩類算法是其中的代表,單階段算法也是實(shí)時(shí)檢測(cè)的主要陣地。
雖然現(xiàn)有的單階段檢測(cè)方法在行人跌倒檢測(cè)性能方面取得了不錯(cuò)的成績(jī),但其主要針對(duì)理想場(chǎng)景,即沒(méi)有障礙物和其他因素干擾(如電動(dòng)車流和行人影子)的情況下。但在實(shí)際的監(jiān)控場(chǎng)景中,由于受到障礙物等其他客觀因素的影響,導(dǎo)致現(xiàn)有的行人跌倒檢測(cè)算法還有進(jìn)一步提升的空間。基于此,作者致力于提出一種基于改進(jìn)優(yōu)化的YOLOv5行人跌倒檢測(cè)算法,主要解決面臨障礙物和其他因素干擾情況下的行人跌倒檢測(cè)。
當(dāng)前國(guó)內(nèi)外已有大量研究關(guān)于行人跌倒檢測(cè)的應(yīng)用。其中比較有代表性的工作包括針對(duì)傳感器的檢測(cè),如陳鵬等[7]設(shè)計(jì)了可穿戴式跌倒檢測(cè)智能系統(tǒng),這類方法最大的特點(diǎn)就是精確且不受場(chǎng)地和范圍限制,它需要受測(cè)的人佩戴傳感器(陀螺儀等)或者處于一個(gè)傳感器環(huán)境(紅外、超聲波)里,這一特性使得該方法在日常生活中難以普遍推廣。因此基于視覺特征檢測(cè)的方法稱為當(dāng)前研究的主流方向,此類方法主要是基于視頻圖像數(shù)據(jù)。
現(xiàn)有基于視頻圖像的跌倒檢測(cè)算法主要可分為靜態(tài)幀檢測(cè)算法和基于LSTM(long short-term memory)[8]、Transformer[9]等網(wǎng)絡(luò)的行為時(shí)序檢測(cè)。王平等[10]提出了一種基于視頻中人體姿態(tài)的跌倒檢測(cè)方法;馬露等[11]提出了一種改進(jìn)的FSSD(feature fusion single shot multibox detector)跌倒檢測(cè)方法;伏娜娜等[12]提出了基于輕量級(jí)OpenPose模型的跌倒檢測(cè)算法;Qi等[13]提出了基于LSTM的時(shí)序特征提取的復(fù)雜室內(nèi)場(chǎng)景的實(shí)時(shí)檢測(cè)方法。雖然此類算法在行人跌倒檢測(cè)方面取得了一定的效果,但其檢測(cè)速度不夠?qū)崟r(shí),且其主要應(yīng)用于室內(nèi)或者環(huán)境較為理想的地方(目標(biāo)單一無(wú)障礙物),這些地方環(huán)境干擾因素很小,實(shí)現(xiàn)環(huán)境簡(jiǎn)單。然而實(shí)際的戶外環(huán)境復(fù)雜多變,存在較多的雜物遮擋、雜物等因素的干擾,導(dǎo)致傳統(tǒng)的算法難以推廣適用,不足以廣泛應(yīng)用于實(shí)際的戶外生活場(chǎng)景。準(zhǔn)確合理地解決這類場(chǎng)景下跌倒檢測(cè)問(wèn)題是智慧城市、和諧社會(huì)發(fā)展的必然需求。因此,現(xiàn)提出基于視頻光流重構(gòu)和行人姿態(tài)解析協(xié)同的行人跌倒檢測(cè)算法。旨在檢測(cè)復(fù)雜場(chǎng)景 (存在障礙物和背景干擾) 下的行人跌行為并提供及時(shí)預(yù)警,為中國(guó)的監(jiān)控養(yǎng)老及智慧城市的發(fā)展提供技術(shù)支撐。
對(duì)比國(guó)內(nèi)外很多光流法,只有在室內(nèi)光源穩(wěn)定的情況下才可以高效識(shí)別,為了最大程度降低光流法對(duì)光源的敏感性問(wèn)題,創(chuàng)造性地使用圖像重構(gòu)和光流法協(xié)同判定,通過(guò)圖像重構(gòu)去削減圖像的干擾信息。針對(duì)光影以及電動(dòng)車、摩托車這些不易區(qū)分的干擾因素,現(xiàn)提出人車一體化判別用數(shù)學(xué)計(jì)算排除干擾項(xiàng),不需要進(jìn)行額外的檢測(cè)算力消耗。最后針對(duì)精確率和速度兩者的綜合考慮采用優(yōu)化后的YOLO網(wǎng)絡(luò)進(jìn)行多層融合來(lái)強(qiáng)化高層特征信息去強(qiáng)化跌倒姿態(tài)檢測(cè)。
具體說(shuō)來(lái),本文的創(chuàng)新主要體現(xiàn)在以下幾個(gè)方面:①采用圖像重構(gòu)和光流法協(xié)同判定,以削減圖像冗余信息,并為強(qiáng)化光流檢測(cè)而進(jìn)行間隔幀提取,以此得到更短且特征更顯著的待檢測(cè)幀序列;②將YOLOv5網(wǎng)絡(luò)中間層視覺特征與高層語(yǔ)義信息協(xié)同融合,實(shí)現(xiàn)中大型目標(biāo)(人、車等)姿態(tài)特征解析,以在保持高速檢測(cè)的同時(shí)增強(qiáng)網(wǎng)絡(luò)對(duì)行人跌倒?fàn)顟B(tài)的特征識(shí)別的敏感性,提升行人跌倒檢測(cè)的效率;③最后在網(wǎng)絡(luò)優(yōu)化過(guò)程中,分別采用Silu和Leaky激活函數(shù),實(shí)現(xiàn)卷積層和FPN的協(xié)同優(yōu)化,從而消除額外的干擾的特征檢測(cè)以避免算力的消耗,提升檢測(cè)效率。
本文提出的跌倒檢測(cè)方法是基于YOLOv5改進(jìn)的網(wǎng)絡(luò),為了適用于路邊的檢測(cè),間隔取幀以5幀組成一個(gè)幀序列作為元數(shù)據(jù)傳入,先通過(guò)人物識(shí)別[14]和同一物體歸并進(jìn)行干擾背景去除,此時(shí)再通過(guò)光流法針對(duì)僅有的人物圖像進(jìn)行光流驗(yàn)證以及進(jìn)行倒地的anchor框先驗(yàn),再經(jīng)過(guò)針對(duì)跌倒檢測(cè)優(yōu)化的YOLOv5網(wǎng)絡(luò)進(jìn)行倒地狀態(tài)檢測(cè),并多幀加權(quán)判定最終得到跌倒檢測(cè)的結(jié)果。本文提出的方法除了跌倒檢測(cè)時(shí)會(huì)進(jìn)行訓(xùn)練分類之外,其余步驟都不需要進(jìn)行復(fù)雜的運(yùn)算,所以在整體速度上基本可以達(dá)到實(shí)時(shí)。
本文所提出的方法流程如圖1所示,主體上分為5個(gè)部分:幀間隔提取幀序列、圖像重構(gòu)初始化、光流檢測(cè)、姿態(tài)特征檢測(cè)、網(wǎng)絡(luò)優(yōu)化。
圖1 方法流程圖Fig.1 Method flow chart
正常監(jiān)控獲取的視頻都是30幀/s,雖然用30幀作檢測(cè)理論上會(huì)更加精確,但是對(duì)于計(jì)算能力的需求太過(guò)苛刻。30幀/s中相鄰幀的信息重復(fù)度過(guò)高,變化程度相對(duì)有限,對(duì)于光流的檢測(cè)30幀/s的檢測(cè)不利于獲取運(yùn)動(dòng)信息,間隔5幀取一幀放入待檢測(cè)序列則可以獲取明顯的運(yùn)動(dòng)信息。以L作為1 s內(nèi)全部幀序列數(shù)組,l作為待添加幀數(shù)組,以對(duì)n(取幀間隔)取余作為判定條件(推薦n的值為5)對(duì)數(shù)組進(jìn)行append操作,即1 s內(nèi)取5幀作為一個(gè)待處理圖像列表輸出作為后面圖像重構(gòu)和光流判定的數(shù)據(jù)輸入。
本方法設(shè)計(jì)了一個(gè)背景移除模塊,模塊的原理是通過(guò)anchor框的信息進(jìn)行圖像重構(gòu)獲得更容易進(jìn)行特征識(shí)別的圖像信息。圖像重構(gòu)模塊在YOLOv5卷積之后并不直接輸出而是把得到的anchor信息(x、y、w、h分別代表中心點(diǎn)的橫縱坐標(biāo)以及寬高)傳入圖像重構(gòu)模塊,通過(guò)得到的信息(x、y、w、h)按照1∶1的比例形成新的圖像信息,表達(dá)式為
(1)
式(1)中:n為當(dāng)前圖像信息中的人物個(gè)數(shù);Ii和Ji分別為重構(gòu)前和重構(gòu)后的人物ID。
在實(shí)現(xiàn)上首先使用numpy的zeros函數(shù)(本文使用dtype=“uint8”)重構(gòu)一個(gè)和原圖一致的全0數(shù)組,然后接收anchor框信息用asarray、expand_dims得到當(dāng)前anchor框的新坐標(biāo)點(diǎn)(攜帶RGB信息,本文使用dtype=np.int32),再用cv2的polylines函數(shù)畫出框內(nèi)所有點(diǎn)并通過(guò)fillPoly函數(shù)進(jìn)行連線形成封閉區(qū)域,為了保證重構(gòu)前后的人物位置比例信息不變,此時(shí)還需要用cv2的bitwise_and函數(shù)將連接起來(lái)的區(qū)域?qū)?yīng)的數(shù)組和原圖對(duì)應(yīng)位置按位相與,最后使用Image.fromarray將數(shù)組信息轉(zhuǎn)化成圖像信息,這里可能需要注意到圖像的RGB和BGR轉(zhuǎn)化。
YOLOv5是基于CSPNet[15]的網(wǎng)絡(luò)結(jié)構(gòu),本方法針對(duì)復(fù)雜場(chǎng)景的需求將GIoU[16]替換成了DIoU[17](IoU指重疊度,即預(yù)測(cè)區(qū)域和實(shí)際區(qū)域的重合度),其表達(dá)式為
(2)
(3)
式中:A為包裹預(yù)測(cè)框和實(shí)際框的最小矩陣;U為預(yù)測(cè)框和實(shí)際框的交集,b、bgt分別為預(yù)測(cè)框和真實(shí)框的中心點(diǎn);ρ為兩個(gè)計(jì)算中心點(diǎn)間的歐式距離;c為能夠同時(shí)包含預(yù)測(cè)框和真實(shí)框的最小閉包區(qū)域的對(duì)角線距離。
式(2)、式(3)分別為GIoU和DIoU復(fù)雜環(huán)境中DIoU要比GIou更適合用于目標(biāo)框回歸,DIoU將目標(biāo)與anchor之間的距離、重疊率以及尺度都考慮進(jìn)去,使得目標(biāo)框回歸變得更加穩(wěn)定,不會(huì)有IoU和GIoU一樣出現(xiàn)訓(xùn)練過(guò)程中出現(xiàn)部分重疊處anchor框丟失的問(wèn)題。
對(duì)于摩托車和自行車等的干擾信息,這些單位的移動(dòng)強(qiáng)光源會(huì)影響光流法,但是車輛的直接移除會(huì)導(dǎo)致車上被檢測(cè)出的人速度過(guò)快,觸發(fā)后面的光流幀差模塊報(bào)警。本方法通過(guò)人和摩托車的anchor框進(jìn)行重疊判定進(jìn)行分析排除,得到背景移除后傳入的人和摩托車的anchor信息后對(duì)人與摩托車重疊的部分進(jìn)行判定,判定如果人和摩托車為同一運(yùn)動(dòng)目標(biāo)就會(huì)從前景列表中移除,預(yù)測(cè)框過(guò)濾,只取閾值最高的預(yù)測(cè)框,設(shè)置為0.5,判定公式為
(4)
(5)
(6)
式(4)~式(6)共同判定,dm代表摩托車為檢索目標(biāo);dp代表人為檢索目標(biāo);[2][*]第一位代表當(dāng)前類別的位置和大小信息的列表(list),第二位的[0][1][2][3]分別代表的是中心點(diǎn)x、y、w、h。式(4)~式(6)表示在摩托車和行人的兩者的質(zhì)心之間找一個(gè)相交區(qū)域作為人在騎車的判定標(biāo)準(zhǔn),移除前后效果如圖2所示。
圖2 移除噪聲數(shù)據(jù)前后效果Fig.2 Effect of before and after removing the noise data
圖3 人物信息提取Fig.3 Person information extraction
圖4 移除不相關(guān)人物信息Fig.4 Remove irrelevant person information
圖像重構(gòu)的目的是移除絕大部分例如摩托車和影子這一類干擾噪聲,最終效果如圖3和圖4。
在復(fù)雜場(chǎng)景之下首先要確定的是檢測(cè)目標(biāo)只能僅限于人而非車流[18],對(duì)于人之外的信息都是無(wú)效信息,首先進(jìn)行無(wú)效信息剔除[19]移除背景之前得到人物信息,人物檢測(cè)方面由于YOLOv5已經(jīng)在coco數(shù)據(jù)集上有了良好的人物識(shí)別精度,人物檢測(cè)提取直接使用的是YOLOv5的預(yù)訓(xùn)練模型?,F(xiàn)在公開的關(guān)于跌倒的數(shù)據(jù)集有Fall event datasets、Le2i Fall等,這些數(shù)據(jù)集的錄制環(huán)境都是簡(jiǎn)單的場(chǎng)景,不能完美展現(xiàn)復(fù)雜場(chǎng)景下的信息。本文選取了部分實(shí)地復(fù)雜場(chǎng)景之下的數(shù)據(jù)。
光流法[20]是利用圖像序列中像素在時(shí)間域上的變化以及相鄰幀之間的相關(guān)性來(lái)找到上一幀跟當(dāng)前幀之間存在的對(duì)應(yīng)關(guān)系,從而計(jì)算出相鄰幀之間物體的運(yùn)動(dòng)信息的一種方法。
通常把二維圖像平面指定坐標(biāo)點(diǎn)上的灰度瞬時(shí)變化率(u,v)(u為X軸的位移,v為Y軸位移)分別在X軸和Y軸上定義為瞬時(shí)速率也可以成為光流矢量,在圖像中表示為兩幀之間的光流位移。
光流位移本身是由于場(chǎng)景中前景目標(biāo)本身的移動(dòng)、相機(jī)的運(yùn)動(dòng),或者兩者的共同運(yùn)動(dòng)所產(chǎn)生的,這里相機(jī)是固定機(jī)位,所以光流的位移只會(huì)來(lái)自于目標(biāo)的運(yùn)動(dòng),用幀差光流坐標(biāo)的位移來(lái)表現(xiàn)。表達(dá)式為
Ixu+Iyv+It=0
(7)
式(7)中:I表示當(dāng)前光流點(diǎn);Ix、Iy和It分別表示像素點(diǎn)的灰度沿X、Y和T方向上的偏導(dǎo)數(shù)。
光流表達(dá)了圖像的變化,它包含了目標(biāo)運(yùn)動(dòng)的信息,搭配幀差光流長(zhǎng)度計(jì)算可以得到運(yùn)動(dòng)(跌倒)信息。
以兩幀差分得到圖像中變量信息的光流運(yùn)動(dòng)情況,跌倒作為一個(gè)較短時(shí)間內(nèi)的劇烈變換,在移除過(guò)背景信息后可以很容易得到對(duì)應(yīng)錨點(diǎn)的位移長(zhǎng)度,因?yàn)閹g的時(shí)間差是固定的,光流幀差的判定可以用長(zhǎng)度做閾值來(lái)判定速度的快慢,圖5所示為一組跌倒幀,圖6所示跌倒行為光流場(chǎng)變換。
跌倒時(shí)瞬時(shí)速度大且連貫,光流變化較為明顯,當(dāng)光流運(yùn)動(dòng)判定超過(guò)閾值之后就會(huì)將當(dāng)前組別的幀作為待定檢測(cè)幀序列輸入傳入跌倒姿態(tài)檢測(cè)模塊。
圖5 連續(xù)跌倒幀F(xiàn)ig.5 Continuous fall frame
圖6 跌倒幀觸發(fā)光流Fig.6 Falling frame touch light flow
選取跌倒的幾幀光流圖像所取的效果如圖,光流檢測(cè)會(huì)分析不同幀之間的光流信號(hào)進(jìn)行是否快速運(yùn)動(dòng)的判別,并提供光流場(chǎng)的運(yùn)動(dòng)軌跡。引用光流檢測(cè)有兩個(gè)目的:第一去除靜態(tài)誤識(shí)別的干擾,第二將跌倒光流變換作為先驗(yàn)特征去判別。
在室外場(chǎng)景中用光流法檢測(cè)人物運(yùn)動(dòng)通常比較困難,除開人的跌倒會(huì)導(dǎo)致光流變化,車流的行駛和光照對(duì)于光流來(lái)說(shuō)干擾也很嚴(yán)重,前面添加的背景移除模塊解決了這一問(wèn)題,背景移除模塊可以移除掉復(fù)雜場(chǎng)景這些會(huì)對(duì)識(shí)別造成干擾的背景信息。
姿態(tài)特征檢測(cè)的目的即是檢測(cè)出靜態(tài)幀中的跌倒姿態(tài),基于YOLOv5s網(wǎng)絡(luò)的基礎(chǔ)進(jìn)行網(wǎng)絡(luò)的跌倒特征融合優(yōu)化。本方法改進(jìn)網(wǎng)絡(luò)的側(cè)重點(diǎn)是針對(duì)人物跌倒,需要的是高層特征上擁有足夠精確的語(yǔ)義信息,底層特征則是以提高檢測(cè)速度為準(zhǔn),通過(guò)這一特性對(duì)高層特征的語(yǔ)義信息進(jìn)行豐富,本方法從網(wǎng)絡(luò)多階段取卷積輸出進(jìn)行融合強(qiáng)化高層特征,對(duì)于靜態(tài)幀的姿態(tài)信息獲取更加敏感,圖7為完整檢測(cè)效果圖。
圖7 完整的檢測(cè)效果Fig.7 Complete detection effect
1.5.1 網(wǎng)絡(luò)描述
網(wǎng)絡(luò)架構(gòu)主要使用了兩種激活函數(shù)Silu和Leaky,分別在backbon和neck兩個(gè)階段使用,網(wǎng)絡(luò)中各組件結(jié)構(gòu)如圖8所示。
圖8 組件細(xì)節(jié)Fig.8 Component details
網(wǎng)絡(luò)結(jié)構(gòu)如圖9所示,首先輸入的是預(yù)處理過(guò)后的RGB圖像數(shù)據(jù),focus后變成64維,后續(xù)經(jīng)過(guò)三輪C3和Conv普通卷積(k=3,s=2,k為卷積核大小,s為卷積步長(zhǎng)),每一輪維度翻倍圖像分辨率規(guī)格長(zhǎng)寬都降低1倍,去除圖像噪聲的同時(shí)可以為后面的FPN+PAN提供融合信息。此時(shí)輸出的數(shù)據(jù)維度為1 024維經(jīng)過(guò)SPP后獲得固定的640×640的圖像信息傳入neck。
neck階段數(shù)據(jù)傳入特征金字塔[21]處理,通過(guò)Conv卷積(k=1,s=1)和上采樣縮小維度擴(kuò)充圖像,上采樣采用的是nearest鄰接上采樣。每一輪Conv維度縮小1倍,每一輪上采樣過(guò)后圖像分辨率長(zhǎng)寬都翻倍,且之后用concat進(jìn)行信息融合(第一輪取第6層,第二輪取第四層),兩輪過(guò)后此時(shí)輸出為256維。
圖9 跌倒特征融合識(shí)別網(wǎng)絡(luò)Fig.9 Fall feature fusion recognition network
再經(jīng)過(guò)兩輪Conv卷積(k=3,s=2)下采樣將圖像規(guī)??s小1倍,且每一輪后續(xù)進(jìn)行兩次融合(第一輪分別取第15層進(jìn)行concat融合并將輸出和第6層融合,第二輪分別取11層并將輸出和第10層融合),并對(duì)其中18、22、26層的256維、512維、1 024維輸出進(jìn)行detect檢測(cè),得到的結(jié)果信息返回給原圖處理。
1.5.2 特征檢測(cè)
為了在檢測(cè)中獲得更好的效果,我們?cè)诘箼z測(cè)這一部分對(duì)網(wǎng)絡(luò)進(jìn)行了一定程度上的調(diào)整,在網(wǎng)絡(luò)開始的輸入端除開YOLOv5自有的mosaic數(shù)據(jù)增強(qiáng)外,本方法還在原本的mosaic中集成了mixup[22]數(shù)據(jù)增強(qiáng),有小幅度精度提升,效果較為顯著。
針對(duì)跌倒這一行為本方法對(duì)網(wǎng)絡(luò)進(jìn)行了一些修改,在FPN上采樣階段采用了基于Leaky Relu的C3L和比C3多增加了一個(gè)卷積的C4,目的是去修正前面多輪add可能帶來(lái)的負(fù)面信息。C3L在neck中作為組件進(jìn)行使用,這里選用add是為了增加后面在pred階段的時(shí)候特征向量在每一維度有更多的信息,由于處理后圖像并不復(fù)雜,此時(shí)用add相比于concat更有效。
本方法在這里使用add是之前預(yù)處理后傳輸過(guò)來(lái)的數(shù)據(jù),使用concat會(huì)避免add可能帶來(lái)的信息負(fù)面影響,但在此處圖像特征噪音較少需要更高的語(yǔ)義信息,在高層特征圖上使用add不會(huì)造成精度上的損失。前面在head層前面引用了前面backbone層里第六層和第十層的輸出,在整體的速度上來(lái)說(shuō)在融合部分使用了add融合導(dǎo)致檢測(cè)速度有一定程度的提升。
C4組件應(yīng)用于高層特征圖的檢測(cè),并且在C4獲得concat的輸出之前將第4層的C3的輸出進(jìn)行了一個(gè)維度不變的卷積,對(duì)C3進(jìn)一步進(jìn)行特征融合優(yōu)化,并輸出指定維度的特征向量。且僅僅在高層特征圖檢測(cè)前使用C4組件其余兩個(gè)檢測(cè)則用的還是C3L。
網(wǎng)絡(luò)的改進(jìn)主體上還是FPN+PAN的結(jié)構(gòu),其中上采樣階段本方法使用的是nearest,因?yàn)檫@里接受的待檢測(cè)數(shù)據(jù)已經(jīng)是經(jīng)過(guò)初步處理的數(shù)據(jù),選用處理速度最快的nearest不會(huì)造成性能和精度上的損失,再在高層特征的兩次檢測(cè)前獲取了在backbone階段(6,10兩層C3輸出)卷積的信息進(jìn)行融合豐富語(yǔ)義信息。
最后head階段將18、22、26三層檢測(cè)輸出的信息使用add進(jìn)行融合,跌倒的特征有同類特征含義,需要更多的特征信息,add可以保證每一層的信息融合。
本方法最后的分類階段使用的是二分類,只有跌倒和未跌倒兩種情況。對(duì)最后一層輸出進(jìn)行sigmoid,損失函數(shù)則是搭配使用交叉熵?fù)p失函數(shù),針對(duì)這一特性使用兩者整合的BCEWithLogitsLoss,公式為
ln=-{ynlg[δ(zn)]}+
{1-ynlg[1-δ(zn)]}
(8)
式(8)中:n為特征樣本數(shù);zn為模型預(yù)測(cè)樣本時(shí)跌倒的概率;yn為第n個(gè)樣本的跌倒正負(fù)性;δ為sigmoid函數(shù)。
從跌倒檢測(cè)的公開數(shù)數(shù)據(jù)集multiple cameras fall[23]和Le2i[24],訓(xùn)練集是抽取75%(4 129張復(fù)雜場(chǎng)景圖片)圖片幀加上multiple cameras fall數(shù)據(jù)集的50%,用剩余的數(shù)據(jù)和Le2i Fall數(shù)據(jù)集一起作為測(cè)試集如表1。訓(xùn)練的參數(shù)上跌倒的主體是人,訓(xùn)練的預(yù)訓(xùn)練使用的是YOLOv5自帶的基于coco數(shù)據(jù)集的預(yù)訓(xùn)練模型。在參數(shù)設(shè)置上nc(分類類別)類別使用的是兩類:fall和nofall,在結(jié)構(gòu)上使用的YOLOv5s的改進(jìn)網(wǎng)絡(luò)結(jié)構(gòu),網(wǎng)絡(luò)寬度和深度分別是1/3和1/2(默認(rèn)的卷積核使用個(gè)數(shù)是3這里既是取1)。
表1 數(shù)據(jù)分布Table 1 Data distribution
實(shí)驗(yàn)操作系統(tǒng)為Ubuntu16.04,深度學(xué)習(xí)框架為 Pytorch。實(shí)驗(yàn)硬件環(huán)境為 Intel I7 9700處理器, GPU為 Nvidia RTX2080Ti。
初始學(xué)習(xí)率為0.01,學(xué)習(xí)率周期為0.2,主要訓(xùn)練的超參數(shù)設(shè)置如下: cfg為模型配置和網(wǎng)絡(luò)結(jié)構(gòu)的yaml文件,這里使用的是本方法改良過(guò)的模型;data為數(shù)據(jù)集配置的yaml文件即包含數(shù)據(jù)集路徑的yaml;epochs為訓(xùn)練總輪次推薦是250或者300;batch-size為每個(gè)輪次圖片訓(xùn)練的批次大小,這里批次大小視顯存大小而定;img-size為輸入圖像的分辨率大小,這里注意是訓(xùn)練和mAP測(cè)試的圖像尺寸,并不是限制圖像的分辨率; cache-images為提前緩存圖片進(jìn)內(nèi)存項(xiàng);weights為加載與訓(xùn)練的權(quán)重文件,本方法用的coco數(shù)據(jù)集(微軟數(shù)據(jù)集)預(yù)訓(xùn)練模型;device為訓(xùn)練設(shè)備設(shè)置,支持單卡多卡或CPU運(yùn)算,這里視自己機(jī)器環(huán)境而定,需要額外提到;evolve為是否超參進(jìn)化默認(rèn)為false;hyp指的就是超參數(shù)配置的yaml文件路徑,本文暫時(shí)沒(méi)有用到超參數(shù)進(jìn)化。
本方法幀序列評(píng)判標(biāo)準(zhǔn)為
SF = FF/AF
(9)
式(9)中:FF指的是檢測(cè)出fall的幀數(shù)(即閾值高于0.55);AF指的是當(dāng)前檢測(cè)列表的全部幀數(shù),即SF≥0.2就判斷為跌倒。
(10)
(11)
式中:P、R分別為精確率和召回率,其中TP(true positive)表示預(yù)測(cè)跌倒,且預(yù)測(cè)正確;FP(false positive)表示預(yù)測(cè)跌倒,且預(yù)測(cè)錯(cuò)誤;FN(false negative)表示遺漏的跌倒區(qū)域。
跌倒檢測(cè)識(shí)別主要目的是降低誤報(bào)率提高識(shí)別率,所以主要的實(shí)驗(yàn)結(jié)果參考參數(shù)為精確率和召回率。
2.4.1 實(shí)驗(yàn)結(jié)果
表2為在公開數(shù)據(jù)集Multiple和Le2i上的實(shí)驗(yàn)結(jié)果,統(tǒng)計(jì)了不同方法在不同檢測(cè)目標(biāo)上的精確率、召回率、F1值(對(duì)精確率和召回率的綜合評(píng)判)和效率(速度值)。由表2的實(shí)驗(yàn)可知,本文所提出的方法具有較強(qiáng)的競(jìng)爭(zhēng)性,其目的是能夠在高準(zhǔn)確率的情況下達(dá)到最快的檢測(cè)速度,使用YOLO進(jìn)行快速檢測(cè)并保持傳統(tǒng)多階段網(wǎng)絡(luò)的高識(shí)別率。從表2中得知,雖然精確度和召回率和最新的結(jié)果相似,但是速度明顯高于最新方法。尤其相對(duì)于文獻(xiàn)[10]的方法,本文方法速度提高了4倍以上,足可以說(shuō)明本文方法除了保留當(dāng)前最優(yōu)競(jìng)爭(zhēng)力的性能外。另外在檢測(cè)速度上達(dá)到52 幀/s,遠(yuǎn)高于其余方法的檢測(cè)速度。對(duì)比最新的Res2Net-YOLACT和基于墜落運(yùn)動(dòng)矢量模型的監(jiān)控視頻中人體墜落檢測(cè)本文保持高精確率的同時(shí)更加迅速,魯棒性和實(shí)時(shí)性更高,說(shuō)明本文方法具有實(shí)時(shí)性和高效性,能夠更好地適用于實(shí)際的應(yīng)用。
表3以車流等復(fù)雜路邊場(chǎng)景為主進(jìn)行相關(guān)實(shí)驗(yàn)。由結(jié)果顯示,相對(duì)于文獻(xiàn)[10]和文獻(xiàn)[12]所采用傳統(tǒng)的OpenPose等方法,其對(duì)于不同攝像角度和姿態(tài)之間的關(guān)系進(jìn)行檢測(cè),雖然他們的方法也取得了一定效果,但相比較而言現(xiàn)有方法的速度相對(duì)不高,且檢測(cè)效果還有待進(jìn)一步的提升。本文所提出的方法相對(duì)于上述兩種方法在精度上提升了近5%,有明顯的提升,并且其在效率時(shí)間上從12 幀/s提升到53 幀/s,實(shí)現(xiàn)了實(shí)質(zhì)性的改變。在F1上從75%提升到84%,極大地提升了檢測(cè)的實(shí)時(shí)性和效率,從而體現(xiàn)本文所提出方法的優(yōu)越性。另外,相對(duì)于Base-YOLO,本文基于改進(jìn)優(yōu)化的方法在精度和效率上也有較大的提升。
表2 不同算法Multiple和Le2i結(jié)果Table 2 Multiple and Le2i results of different algorithms
表3 包含車流場(chǎng)景結(jié)果Table 3 Include traffic flow scene picture results
2.4.2 消融分析
在復(fù)雜場(chǎng)景下,如表4所示為單純的靜態(tài)幀檢測(cè)對(duì)比,檢測(cè)網(wǎng)絡(luò)的性能,不管是參照物網(wǎng)絡(luò)還是本方法的優(yōu)化網(wǎng)絡(luò)都會(huì)出現(xiàn)較大誤識(shí)別現(xiàn)象,總體上本方法的檢測(cè)結(jié)果與對(duì)比實(shí)驗(yàn)還是有提升,證明了本方法針對(duì)優(yōu)化對(duì)網(wǎng)絡(luò)的跌倒檢測(cè)是正向作用,且由于靜態(tài)幀recall值不夠高,幀序列能夠減少靜態(tài)幀的單幀錯(cuò)判和單幀漏識(shí)別現(xiàn)象,可以很大程度提高單幀recall過(guò)低的情況。
在背景去除的消融實(shí)驗(yàn)上如表5未去除背景幾乎在所有電動(dòng)車的圖像中和有人物影子的圖像中都出現(xiàn)誤識(shí)別跌倒,在復(fù)雜場(chǎng)景下騎電動(dòng)車的人和影子是常見的噪聲干擾,能夠進(jìn)行遴選排除可以非常有效提高識(shí)別率,本文方法在把電動(dòng)車和人進(jìn)行數(shù)學(xué)化計(jì)算成整體而去除后準(zhǔn)確率直接提升0.14。
在同幀差速的情況下如表6以兩幀檢測(cè)會(huì)丟失掉部分關(guān)鍵幀影響光流判定,導(dǎo)致結(jié)果不如單幀檢測(cè)。召回率0.69相比于5幀和10幀差距明顯,10幀檢測(cè)和5幀檢測(cè)的結(jié)果幾乎相同,同時(shí)10幀檢測(cè)的待檢測(cè)幀序列是5幀的2倍,有算力浪費(fèi)和處理速度的損失。
表4 改進(jìn)對(duì)比Table 4 Improvement comparison
表5 背景去除對(duì)比Table 5 Background removal contrast
表6 不同幀序列Table 6 Different frame sequences
針對(duì)現(xiàn)有行人跌倒檢測(cè)算法在面臨電動(dòng)車流和行人影子的干擾而導(dǎo)致識(shí)別準(zhǔn)確率不高的問(wèn)題,提出了一種基于優(yōu)化YOLOv5的路邊行人跌倒檢測(cè)方法。本文提出的基于視頻抽幀方法和光流anchor框的算法可適用于多種復(fù)雜的路邊場(chǎng)景,能夠較好地解決行車下蹲等噪聲干擾的,尤其是在針對(duì)近距離光流運(yùn)動(dòng)感應(yīng)情況下的行人跌倒檢測(cè)具有較好的效果。未來(lái)將進(jìn)一步擴(kuò)大數(shù)據(jù)量,并考慮通過(guò)加入transformer來(lái)代替YOLOv5的CSPnet,以及引入Decoupled Head解耦頭來(lái)代替YOLO head,實(shí)現(xiàn)更高效的行人跌倒檢測(cè)。