劉文龍,陳春雨
哈爾濱工程大學 信息與通信工程學院,黑龍江 哈爾濱 150001
當前,人工智能和高性能計算設備的迅速發(fā)展,為大規(guī)模深度神經網絡的訓練和部署提供了可行性保障。動作識別作為計算機視覺的研究方向之一,在各個領域具有良好的應用前景。在醫(yī)療領域,可以通過動作識別來判斷病人的狀態(tài),減輕病房看護者的負擔。病人一旦發(fā)生摔倒等行為可以通過動作識別來進行判斷,并提醒看護人員進行及時救助[1]。在安防領域,可以利用動作識別實現(xiàn)對打架斗毆等違法犯罪行為進行識別并記錄,為刑事案件的偵破提供有利幫助[2]。在監(jiān)考任務中,可以通過行為識別來判斷應試者是否存在扭頭、轉身以及東張西望等作弊行為[3]??梢妱幼髯R別在現(xiàn)實場景中具有重要的應用價值。傳統(tǒng)的視頻動作行為識別常常通過人工肉眼觀察來完成,耗費了大量的人力和時間,長期工作還會對視力造成損傷,這項任務被計算機取代是大勢所趨?;谏疃葘W習的動作檢測方法相對于傳統(tǒng)方法可以實現(xiàn)無人化、智能化[4]。
陳永彬等[5]采用了OpenPose 網絡提取人體關鍵點信息,并融合了場景的語義信息,通過判斷頭部以下關鍵點的下移量進行判斷是否存在摔倒行為。烏民雨等[6]采用了包含長短期記憶(long short-term memory, LSTM)的雙流的網絡結構,2個流分別輸入RGB 圖片和光流圖片。劉峰等[7]通過目標檢測器檢測到運動的行人,對行人提取了頭部運動特征,通過深度森林算法對特征進行分類,來判斷行人是否發(fā)生摔倒行為。魏振剛等[8]通過對視頻中的人物的前景提取得到目標,對前景目標進行形態(tài)學處理得到了最小外接矩形,通過分析外接矩形的寬高比篩選出可能存在跌倒行為的樣本,再運用統(tǒng)計學方法對異常目標繪制橢圓邊界作為特征進行分類,判斷是否發(fā)生跌倒行為。Tran 等[9]提出了3D 卷積(3D convolution,C3D)方法,可以通過訓練學習,簡單有效地對動作的時空特征進行提取,這項方法常用于對動作進行分類,但單獨的C3D 方法無法完成對執(zhí)行動作的目標進行空間定位,對此本文吸收了C3D 方法可以提取時空特征的思想,實現(xiàn)了跌倒動作的時空定位。
得益于GPU 性能的高速發(fā)展,大規(guī)模神經網絡的訓練及部署成為了可能。動作識別作為計算機視覺領域的重要研究分支,可以通過深度學習方法來解決;動作的定位可以通過借鑒目標檢測的方法,采用邊界框的回歸來實現(xiàn)。對于動作的分類不僅需要空間特征信息,還需要時間維度上的特征信息,因為動作是連貫的,所以必須通過一定的手段來提取時間維度上的特征。因此本文借鑒了YOLOv3 目標檢測網絡[10]和雙流網絡[11]的設計思想。
本文提出的網絡整體結構如圖1 所示。
圖1 整體網絡結構
本文設計了可以實現(xiàn)動作識別與定位的算法,通過在2D 卷積神經網絡(convolutional neural network, CNN)并聯(lián)了一路3D 卷積神經網絡(3D CNN)用于提取時間維度特征,并通過通道融合機制對空間維度特征和時間維度特征在通道維度上進行拼接(cat)。為了提高模型對小目標的檢測能力,本算法采用特征金字塔結構,對骨干網絡提取3 個不同尺度的特征(分別為F_S、F_M、F_L),提升對小目標的檢測能力,對這3 個尺度的特征采用Transformer 結構進行深層次特征融合,提取語義信息。最終經過分類網絡和回歸網絡進行動作分類和動作定位。
1.1.1 特征提取網絡
由于動作具有連續(xù)性,幾乎不能通過單張圖片來進行判斷動作類型,所以必須獲得動作的連續(xù)信息,也就是時間維度上的特征。這種時間維度上的特征采用3D 卷積來進行提取,他的計算過程可以通過圖2 來表示。圖2 中h3D、w3D和l分別為特征圖空間維度的高度、空間維度的寬度、時間維度的長度,k3D為卷積核空間維度的寬度和高度,d為卷積核時間維度的長度。
圖2 3D 卷積計算示意
3D 卷積的輸入是由視頻拆分出來的一系列連續(xù)的圖片幀。本文中采用的是連續(xù)的16 幀圖片,將其組成一個五維張量,并由B表示批次大小、C表示圖片通道數(shù)目、N表示圖片數(shù)目、W表示圖片的寬度、H表示圖片的高度。3D 卷積的卷積核包含3 個維度,可以在圖2 中的長方體數(shù)據中的3 個方向滑動,最終堆疊到同一個輸出,這樣就可以提取多個相鄰圖片之間的特征。本文采用的3D 卷積網絡為3D ResNet101[12]。
圖3 所示的是2D 卷積示意圖,圖中h2D,w2D分別代表特征圖空間維度的高度和寬度。k2D代表卷積核空間維度的寬度和高度。在3D 卷積輸入的多個連續(xù)圖片序列中抽取最后一幀作為關鍵幀,將其輸入到2D 卷積網絡中。2D 卷積的卷積核包含2 個維度,可以在圖3 中的長方形數(shù)據中的2 個方向進行滑動,得到特征圖,提取輸入圖像空間上的信息。本文采用ResNeXt101 作為2D 網絡,該網絡具有良好的特征提取能力。
圖3 2D 卷積計算示意
1.1.2 特征金字塔Transformer 結構
為了更好地提取語義特征,提升模型對動作的專注度,本文采用了Transformer 結構。Transformer最早應用于自然語言處理任務中,因其優(yōu)秀的表現(xiàn)被遷移到計算機視覺中[13]。而本文則將其應用到動作檢測任務中,將其作為注意力機制與傳統(tǒng)注意力機制進行對比。本文應用的Transformer結構如圖4 所示。
圖4 特征金字塔Transformer 結構
本文對特征提取網絡的3 個預測特征層構成的特征金字塔使用了Transformer 結構,Transformer結構可以使得特征可以跨空間和尺度進行交互。文中應用的特征金字塔Transformer 包含了3 個子模塊,分別是自我特征交互模塊、自頂而下特征交互模塊和自底而上特征交互模塊。經過該結構輸出的特征圖與輸入特征圖尺寸相同,但蘊含了豐富的上下文信息。加權后的Q經 過 3×3卷 積與通過 3×3卷積進行下采樣的V相加,相加后的結果經過 3×3卷積運算后得到輸出特征圖。計算過程如式(5):
如圖4 所示的網絡結構圖,3 個不同尺度的預測特征層在經過上文所述的3 種模塊之后得到的特征圖,按照尺寸大小進行重新排列,再將原始預測特征層與排列后的特征圖在通道維度進行拼接,經過卷積得到與原始預測特征層尺寸相同的特征圖。可以看到,輸出的特征圖與輸入特征圖相比,增加了空間和尺度信息的交互,包含了更為豐富的語義信息。
本文考慮到小目標檢測的問題,采用了YOLOv3 算法的檢測方案。通過K-means 算法對數(shù)據集的邊界框大小進行統(tǒng)計,最終聚類出9 個預選框。選取3 個預測特征層,在3 個尺度上對目標進行檢測,每個預測特征層對應3 個聚類出來的預選框。在經過Transformer 和卷積之后,最終的每個預測特征層通道為 3×(A+5)。其中:3 為該預測特征層預選框的數(shù)目;A為數(shù)據集中動作類別數(shù)目;每個預選框對應A+5個參數(shù),5 為邊界框的中心坐標和邊界框的寬高回歸所需要的4 個參數(shù)和1 個置信度參數(shù)。
損失函數(shù)共包括3 部分,分別是邊界框回歸損失、分類損失和置信度損失。其中邊界框回歸損失采用完整交并比(complete intersection-overunion,CIoU) 損失函數(shù)[15],分類和置信度損失采用Focal Loss 損失函數(shù)[16]。由于YOLOv3 的正樣本負樣本存在嚴重的不均衡問題,大量的負樣本大部分為簡單易于區(qū)分的負樣本,會造成對真樣本的淹沒,影響檢測效果,針對樣本不均衡問題,本文采用式(6)作為分類和置信度損失函數(shù)。
邊界框回歸損失函數(shù)通常采用L2 范數(shù)損失函數(shù),由于L2 范數(shù)損失函數(shù)不能很好地反應預測框與真實位置的重合程度,所以在本文中采用了CIoU 損失函數(shù),它能夠很好地反應預測框與真實位置的重疊程度,并具有尺度不變性,還充分考慮了預測框與真實位置的中心距離、預測框的長寬比等因素,比L2 范數(shù)損失函數(shù)具有更大的優(yōu)勢。圖5 為CIoU 函數(shù)計算所需參數(shù)示意圖。其中綠色矩形框為目標的真實邊界框,它的寬高分別為wgt和hgt;黑色方框為網絡預測的邊界框,它的寬高分別為wp和hp;d為真實框和預測框的中心距離,c為真實框與預測框的最小外接矩形的對角距離。
圖5 CIoU 函數(shù)計算所需參數(shù)示意
目前,跌倒動作的公開數(shù)據集數(shù)目不多,很少有提供跌倒動作的人物邊界框數(shù)據。本文從Muticam 數(shù)據集中選取部分視頻,共包含6 個場景,每個場景由8 個攝像頭在不同角度進行拍攝,分辨率為320 ×240。對拍攝的視頻進行了分幀處理,并進行了手工標注,一共標記了7 083 張圖片。其中6 373 張圖片作為訓練集,710 張圖片作為驗證集和測試集。每次輸入到網絡進行訓練和推理的圖片數(shù)據均來自于同一個攝像頭,8 個攝像頭的數(shù)據最終都會獨立地被送入網絡進行訓練和推理。
2.2.1 實驗環(huán)境與訓練策略
本文中所有實驗的硬件平臺均在Ubuntu 18.04 操 作 系 統(tǒng) 下,GPU 采 用Nvidia RTX2080Ti,GPU 顯存大小為11 GB,CPU 采用I7-8700K,內存大小為32 GB。軟件環(huán)境如下:深度學習框架為Pytorch-1.7.1、CUDA 版本為10.1。
每次實驗訓練集迭代訓練10 次,一次訓練輸入到網絡的樣本數(shù)目為2,共計訓練31 870 次?;緦W習率(Rlearning)為0.002,學習率的動態(tài)變化如圖6 所示,其中包含了2 種策略:對于前1 000 次訓練采用線性預熱;預熱完成后采用余弦衰減策略直到訓練結束。優(yōu)化器采用帶有動量參數(shù)的隨機梯度下降算法。
圖6 學習率變化曲線
2.2.2 預選框的設置
本文的算法需要預先設定好預選框,合適的預選框設定可以加速模型的收斂。預選框的設定原則是盡可能與數(shù)據集中的目標寬高相似,所以需要對數(shù)據集進行分析。由于本文采用了3 個尺度的預測特征層,每個預測特征層對應3 個預選框,所以一共需要設置9 個預選框。預選框通過K-means 算法得到。圖7 中黃色的圓點代表數(shù)據集中的目標的寬高信息,其中橫坐標為目標的寬度像素值,縱坐標為目標的高度像素值,其余顏色的9 個點為聚類中心,紅色的3 個聚類中心是設置在特征金字塔網絡輸出的最大尺寸特征圖上的預選框,綠色的3 個聚類中心是設置在特征金字塔網絡輸出的中等尺寸特征圖上的預選框,藍色的3 個聚類中心是設置在特征金字塔網絡輸出的最小尺寸特征圖上的預選框。因為特征金字塔網絡中尺寸相對較大的特征圖用于更好地預測小目標,尺寸相對較小的特征圖用于預測相對較大的目標,這里通過對聚類中心面積的大小進行排序將這9 個預選框分配給特征金字塔網絡的3 個特征層。
圖7 聚類算法設定預選框
2.2.3 骨干網路結構有效性實驗
該部分實驗旨在判斷不同的骨干網絡結構對檢測精度的影響,從而確定最佳的網絡結構。對比實驗中除了骨干網絡的結構不同外其余的參數(shù)均相同,該部分的注意力機制均采用了特征金字塔Transformer,輸入圖像像素尺寸均為320 ×256,3D 卷積神經網絡均輸入連續(xù)16 張圖片,采用IoU 閾值為0.5 的均值平均精度(mean average precision,mAP)δmAP作為評價指標。
對比單獨使用2D 網絡、單獨使用3D 網絡、同時使用2D 和3D 網絡的實驗精度結果,從表1數(shù)據可以看出,同時使用2D 和3D 網絡具有最好的mAP 精度。
表1 不同網絡結構實驗精度結果 %
分析發(fā)現(xiàn),單獨使用2D 網絡,無法提取時間維度上的特征。從跌倒這個動作中來看,這個動作無法從單個圖片中確定,所以單獨使用2D 網絡得到該動作的AP 指標相比于其余2 組對比實驗的實驗結果低了很多;單獨使用3D 網絡相比于單獨使用2D 網絡的實驗結果平均精度(average precision,AP)值δAP提 升 很 大,但 與 同 時 使用2D 和3D 網絡的mAP 精度上還是有一定差距。這是因為3D 網絡注重于提取時間維度的特征而缺乏空間維度的特征,從而導致邊界框的定位不準??梢钥闯?,同時使用2D 和3D 網絡在動作時空定位任務上具有充分的有效性。
2.2.4 3D 網絡圖片輸入數(shù)目實驗
在2.2.3 節(jié)中對3D 網絡用于跌倒動作檢測的有效性進行了驗證,由于動作具有連續(xù)性的特點,人類無法通過一幀圖片判定一個動作的類別,同理計算機也如此。但是觀察一個動作時間的或長或短,會對動作類別的預測產生影響。對于算法來說就是網絡一次性該輸入多少張連續(xù)圖片這一問題值得深入探究。對此本文算法的3D 網絡部分,作者通過實驗進行了探究,發(fā)現(xiàn)輸入圖片數(shù)目為16 時具有最好的效果。分析其原因是因為當輸入圖片數(shù)目較少時,時間維度上提取的特征沒有經過長時間的建模,包含的時間特征不夠全面;而輸入相對較多的圖片時,很多動作持續(xù)時間較短,輸入的圖片序列中包含了其他動作的特征,造成網絡學習混亂,效果也不佳。表2 為3D 網絡一次性輸入不同數(shù)目的圖片時所對應的mAP 結果。
表2 3D 網絡輸入不同圖片數(shù)目實驗精度結果 %
2.2.5 Transformer 有效性實驗
本文對骨干網絡獲得的特征采用了通道拼接的方法進行特征融合,融合后的2D 和3D 特征缺乏深層次的融合交互,本文為解決這個問題使用了Transformer 結構作為注意力機制,該結構應用在特征金字塔之后,可以融合不同預測特征層的特征,達到了特征跨空間、時間、尺度融合的目的。這部分實驗將本文算法同通道注意力機制算法(Cam)和空間注意力算法(Sam)進行對比。表3的結果表明特征金字塔Transformer 結構對檢測性能具有很大的提升。
表3 特征金字塔Transformer 結構有效性實驗 %
針對跌倒動作檢測任務,本文提出了一種基于多特征融合及Transformer 結構的時空定位檢測架構,通過Transformer 結構深度融合2D 和3D 網絡提取的空間和時間維度以及不同尺度的特征,并通過一系列的對比實驗證明了本文算法的有效性。本文算法相比于C3D 等算法不僅完成了動作的分類還實現(xiàn)了動作的時空定位。與僅使用2D 卷積網絡相比,mAP 提升了14.84%;與僅使用3D 卷積網絡相比,mAP 提升5.3%。加入Transformer 結構相比于傳統(tǒng)注意力機制mAP 最少提升了1.44%,可見將本方法應用于跌倒動作的時空定位,具有相當大的理論和經濟價值。