徐紅梅,楊 浩,李亞林,張文杰,趙亞兵,吳 擎
(1. 華中農(nóng)業(yè)大學(xué)工學(xué)院,武漢 430070;2. 農(nóng)業(yè)農(nóng)村部長江中下游農(nóng)業(yè)裝備重點(diǎn)實(shí)驗(yàn)室,武漢 430070)
目前,中國農(nóng)業(yè)發(fā)展模式已逐步由細(xì)碎化的小田種植過渡到大規(guī)模、機(jī)械化的大田作業(yè)形式,且隨著更多強(qiáng)農(nóng)惠農(nóng)政策的出臺(tái),大量的拖拉機(jī)投入到農(nóng)業(yè)生產(chǎn)中。由于拖拉機(jī)作業(yè)頻次高、強(qiáng)度大、范圍廣,致使基層一線農(nóng)業(yè)安全生產(chǎn)形勢嚴(yán)峻,安全監(jiān)督管理亟待加強(qiáng)。復(fù)雜的作業(yè)環(huán)境、機(jī)械整體性能趨于老化以及駕駛員操作不規(guī)范、疲勞駕駛等原因使得拖拉機(jī)作業(yè)存在較大的安全隱患。據(jù)統(tǒng)計(jì),2021 年全國累計(jì)農(nóng)機(jī)事故220 起,死亡46 人,受傷76 人,直接經(jīng)濟(jì)損失達(dá)499.6 萬元[1],受制于農(nóng)機(jī)化監(jiān)管機(jī)構(gòu)職責(zé)有限,難以有效應(yīng)對(duì)拖拉機(jī)安全生產(chǎn)管理中的種種挑戰(zhàn),嚴(yán)重影響農(nóng)民的生命與財(cái)產(chǎn)安全。為此,開發(fā)針對(duì)農(nóng)機(jī)作業(yè)人員的智能駕駛輔助系統(tǒng),有助于提升駕駛員的自我保護(hù)意識(shí),進(jìn)一步減輕或避免農(nóng)機(jī)生產(chǎn)中的安全隱患。駕駛員的駕駛姿態(tài)和操縱行為對(duì)行車安全具有重要影響,駕駛員骨骼關(guān)鍵點(diǎn)檢測是進(jìn)行姿態(tài)識(shí)別、異常行為分析的前提,是實(shí)現(xiàn)智能安全駕駛的關(guān)鍵技術(shù)[2],它不僅為駕駛員行為識(shí)別提供了理論依據(jù),也為駕駛員狀態(tài)跟蹤與安全監(jiān)測提供了一定的參考。
傳統(tǒng)的人體姿態(tài)估計(jì)方法通過建立人體模型或手工設(shè)計(jì)特征來設(shè)計(jì)人體部件檢測器,該方法受圖像背景、光照、遮擋等的影響較大,并且對(duì)于多維特征的選擇主觀性較強(qiáng),不能很好地適應(yīng)人體部件的復(fù)雜性和環(huán)境的變化,具有較大的局限性[3-4]。而基于深度學(xué)習(xí)的檢測方法通過構(gòu)建強(qiáng)表征能力的神經(jīng)網(wǎng)絡(luò)來獲取豐富的圖像特征信息,具有優(yōu)秀的非線性映射特性和強(qiáng)大的自學(xué)習(xí)能力,擺脫了對(duì)模型結(jié)構(gòu)設(shè)計(jì)的依賴,已成為當(dāng)前人體姿態(tài)估計(jì)的主流方法。
目前國內(nèi)外基于深度學(xué)習(xí)的人體姿態(tài)估計(jì)方法已取得較大進(jìn)展。NEWELL 等[5]提出了一種基于編碼器和解碼器的堆疊沙漏型卷積神經(jīng)網(wǎng)絡(luò)SHN(stacked hourglass networks),通過端到端的堆疊多個(gè)沙漏結(jié)構(gòu),有效地捕獲和整合跨尺度信息,提高了單個(gè)關(guān)鍵點(diǎn)的檢測精度。SUN 等[6]提出了一種高分辨率網(wǎng)絡(luò)HRNet,通過并行連接多個(gè)不同分辨率的子網(wǎng)絡(luò),重復(fù)地執(zhí)行多尺度融合策略,確保模型在每個(gè)分支都具有高分辨率特征,預(yù)測得到的熱圖在空間上更準(zhǔn)確。CHENG 等[7]在高分辨率網(wǎng)絡(luò)HRNet 的基礎(chǔ)上提出了HigherHRNet 網(wǎng)絡(luò),在訓(xùn)練和推理階段分別采用多分辨率監(jiān)督和熱圖聚合策略,有效地解決了多人姿態(tài)估計(jì)中的尺度變化問題,提高了小目標(biāo)的檢測效果。YANG 等[8]針對(duì)多分辨率融合時(shí)不能有效地結(jié)合全局上下文信息,導(dǎo)致特征丟失的問題,提出了TransPose 網(wǎng)絡(luò),通過融入基于自注意力機(jī)制和多層感知器的Transformer 編碼層迭代地從序列中捕獲依賴項(xiàng),有效地確定人體各部位之間的空間關(guān)系。XU 等[9]提出了一種純Transformer 架構(gòu)的人體姿態(tài)估計(jì)網(wǎng)絡(luò)ViTPose,該網(wǎng)絡(luò)采用普通和非分層的Vision Transformer 作為主干進(jìn)行特征提取,最后通過一個(gè)輕量級(jí)解碼器對(duì)特征圖進(jìn)行上采樣并對(duì)熱圖進(jìn)行回歸來預(yù)測關(guān)鍵點(diǎn),ViTPose 在MS COCO 數(shù)據(jù)集上獲得了80.9%平均準(zhǔn)確率的SOTA性能。
通用的人體姿態(tài)估計(jì)研究已取得較大進(jìn)展,但針對(duì)車載用途尤其是拖拉機(jī)駕駛員的姿態(tài)估計(jì)卻鮮有研究。CHUN[10]等提出了一種新型卷積神經(jīng)網(wǎng)絡(luò)架構(gòu)NADSNet,采用具有多個(gè)檢測頭的特征金字塔網(wǎng)絡(luò)FPN 實(shí)現(xiàn)駕駛員和前排乘客的姿態(tài)估計(jì)和安全帶檢測。BORGHI[11]等設(shè)計(jì)了名為POSEidon 的回歸神經(jīng)網(wǎng)絡(luò),其由三個(gè)獨(dú)立的卷積層和一個(gè)融合層,用于深度圖像中駕駛員頭部和肩部的姿態(tài)估計(jì)。YUEN[12]等在OpenPose 模型的基礎(chǔ)上,引入了一種快速卷積神經(jīng)網(wǎng)絡(luò)方法,用于全身關(guān)節(jié)估計(jì),該方法可在多個(gè)駕駛員和乘客上以40 幀/s 的速度實(shí)時(shí)運(yùn)行真實(shí)數(shù)據(jù)。拖拉機(jī)駕駛員姿態(tài)估計(jì)與汽車駕駛員姿態(tài)估計(jì)存在較大差異:拖拉機(jī)駕駛室四面多為雙向透視玻璃[13],光照以及復(fù)雜背景的干擾易造成目標(biāo)缺失和關(guān)鍵點(diǎn)的誤檢;其次,駕駛員靈活多變的肢體動(dòng)作不僅增加各關(guān)節(jié)點(diǎn)之間分布的差異性和復(fù)雜度,也會(huì)由于關(guān)節(jié)點(diǎn)的自遮擋現(xiàn)象導(dǎo)致部分關(guān)節(jié)點(diǎn)特征信息缺失;操縱桿、踏板等部件的遮擋會(huì)損失圖片中人體部分關(guān)節(jié)點(diǎn)特征信息,破壞各關(guān)節(jié)之間的關(guān)聯(lián)關(guān)系,增加各個(gè)關(guān)節(jié)點(diǎn)在圖片分布中的差異性。
綜上所述,為解決農(nóng)業(yè)作業(yè)下拖拉機(jī)駕駛員因外部環(huán)境及操縱過程中肢體自遮擋、他物遮擋所造成的關(guān)鍵點(diǎn)漏檢、誤檢現(xiàn)象,提高復(fù)雜場景下拖拉機(jī)駕駛員關(guān)鍵點(diǎn)檢測精度,本研究基于Swin Transformer 編碼器、坐標(biāo)注意力機(jī)制以及融合金字塔卷積的高效聚合網(wǎng)絡(luò)RepGFPN 提出了一種基于改進(jìn)YOLO-Pose 的拖拉機(jī)駕駛員-關(guān)鍵點(diǎn)聯(lián)合檢測方法,擬為駕駛員異常行為分析以及狀態(tài)監(jiān)測提供參考。
樣本數(shù)據(jù)采集于華中農(nóng)業(yè)大學(xué)工科試驗(yàn)基地,試驗(yàn)拖拉機(jī)型號(hào)為東方紅LX804,為體現(xiàn)數(shù)據(jù)集的多樣性,充分考慮實(shí)際檢測時(shí)的復(fù)雜場景,分別選取大、中、小三種體型駕駛員為試驗(yàn)對(duì)象,采用尼康Z5 微單相機(jī)以圖像格式采集數(shù)據(jù),為增加數(shù)據(jù)集魯棒性,分別選取早晨、下午、傍晚等各個(gè)正常耕作時(shí)間段,包括晴天、陰天、順光、逆光等自然條件,拍攝多種操縱姿態(tài)以及具有多種遮擋情況的1 100 幅駕駛員圖像作為樣本數(shù)據(jù)集,分辨率統(tǒng)一為640×640(像素),保存為JPG 圖像格式,并以8:2 的比例劃分訓(xùn)練集和驗(yàn)證集。
本研究采用輕量級(jí)的圖形標(biāo)注軟件Labelme 標(biāo)注駕駛員姿態(tài)關(guān)鍵點(diǎn),標(biāo)注格式采用COCO 格式,共標(biāo)注17 個(gè)人體關(guān)鍵點(diǎn),分別為:鼻子、左眼、右眼、左耳、右耳、左肩、右肩、左肘、右肘、左手腕、右手腕、左臀、右臀、左膝、右膝、左腳踝、右腳踝,標(biāo)簽中每個(gè)keypoint 表示1 個(gè)關(guān)鍵點(diǎn)坐標(biāo),其由長度為3 的數(shù)組(x,y,v)表示,其中:x和y表示關(guān)鍵點(diǎn)的坐標(biāo)值;v表示標(biāo)識(shí)符,取值為0、1 和2,當(dāng)v=0 時(shí),表示圖像中沒有該關(guān)鍵點(diǎn);v=1 時(shí),表示該關(guān)鍵點(diǎn)存在,但是被遮擋;v=2 時(shí),表示該關(guān)鍵點(diǎn)在圖像中存在并可見。每幅圖像需框選駕駛員主體并標(biāo)注該個(gè)體對(duì)應(yīng)的17 個(gè)關(guān)鍵點(diǎn),關(guān)鍵點(diǎn)標(biāo)注樣例如圖1 所示。
圖1 駕駛員骨骼關(guān)鍵點(diǎn)標(biāo)注樣例Fig.1 Annotation example of keypoints of driver’s skeleton
為提升模型魯棒性及泛化能力,避免過擬合現(xiàn)象,本研究采用多種在線數(shù)據(jù)增強(qiáng)方式,具體包括:隨機(jī)裁剪、隨機(jī)翻轉(zhuǎn)、HSV 色域變換、Mosaic 以及Mixup 增強(qiáng)方式。其中,隨機(jī)裁剪表示將原圖按一定概率進(jìn)行隨機(jī)裁剪;隨機(jī)翻轉(zhuǎn)表示對(duì)原圖沿邊緣水平或垂直方向按一定概率隨機(jī)翻轉(zhuǎn);HSV 色域變換表示對(duì)原圖色調(diào)、飽和度以及亮度進(jìn)行隨機(jī)調(diào)整;Mosaic 增強(qiáng)方式通過隨機(jī)選擇四幅圖像進(jìn)行隨機(jī)裁剪,并拼接成一幅新圖像;Mixup 表示將隨機(jī)的兩幅圖像按一定比例混合。各圖像增強(qiáng)效果示意圖如圖2 所示。
圖2 各圖像增強(qiáng)效果示意圖Fig.2 Diagram of each image enhancement effect
現(xiàn)有的關(guān)鍵點(diǎn)檢測方法主要分為自頂向下和自底向上兩類[14]。兩階段的自頂向下方法需預(yù)先構(gòu)建人體檢測器,再分別對(duì)單個(gè)個(gè)體進(jìn)行2D 姿態(tài)估計(jì),其復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu)使得模型無法滿足實(shí)時(shí)要求。而自底向上的方法雖然提供了恒定的運(yùn)行時(shí)間,但其需要額外的后處理來提升檢測性能。
YOLO-Pose[15]網(wǎng)絡(luò)的整體架構(gòu)如圖3 所示,其基于YOLOv5 目標(biāo)檢測算法,采用CSPDarkNet53 作為主干網(wǎng)絡(luò),PANet 作為頸部融合多尺度特征,其將Anchor 與姿態(tài)關(guān)鍵點(diǎn)相關(guān)聯(lián),一個(gè)Anchor 匹配一個(gè)目標(biāo),每個(gè)Anchor 囊括人體邊界框以及2D 姿態(tài)信息,每個(gè)檢測頭包含兩個(gè)解耦頭分別用于邊界框定位和關(guān)鍵點(diǎn)回歸,目標(biāo)邊界框由{Cx,Cy,W,H,bconf,cconf}6 個(gè)元素確定,其中,Cx、Cy分別為邊界框中心點(diǎn)橫、縱坐標(biāo);W、H分別為邊界框?qū)捄透?;bconf,cconf分別為邊界框置信度和預(yù)測類別置信度。每個(gè)關(guān)鍵點(diǎn)由{x,y,c}3 個(gè)元素確定,其中,x、y和c分別表示關(guān)鍵點(diǎn)位置及類別置信度,對(duì)于每一個(gè)Anchor,將會(huì)關(guān)聯(lián)人體17 個(gè)關(guān)鍵點(diǎn)的51 個(gè)元素和邊界框6 個(gè)元素,故總體所需預(yù)測元素Pv定義為:
圖3 YOLO-Pose 關(guān)鍵點(diǎn)檢測網(wǎng)絡(luò)Fig.3 YOLO-Pose keypoint detection network
在損失計(jì)算方面,YOLO-Pose 采用具有尺度不變性的目標(biāo)關(guān)鍵點(diǎn)相似度Loks(object keypoint similarity)損失取代傳統(tǒng)L1 損失來檢測關(guān)鍵點(diǎn),通過將IOU 損失的概念從邊界框遷移至關(guān)鍵點(diǎn),在構(gòu)建損失函數(shù)的同時(shí)優(yōu)化了指標(biāo)本身,進(jìn)一步提升了模型性能。Loks損失計(jì)算公式如下:
式中Nkpts表示關(guān)鍵點(diǎn)總數(shù);dn表示第n個(gè)關(guān)鍵點(diǎn)的預(yù)測位置與真實(shí)位置間的歐式距離;kn表示第n個(gè)關(guān)鍵點(diǎn)的歸一化因子;s表示當(dāng)前目標(biāo)的尺度因子;k表示與真實(shí)標(biāo)注框匹配的錨框序號(hào);i和j分別表示真實(shí)標(biāo)注框中心點(diǎn)的橫、縱坐標(biāo);vn表示第n個(gè)關(guān)鍵點(diǎn)是否可見;δ為沖激函數(shù),表示只計(jì)算真實(shí)標(biāo)注中可見關(guān)鍵點(diǎn)的Loks值。
關(guān)鍵點(diǎn)置信度損失為
式中LBCE表示二值交叉熵?fù)p失函數(shù),通過二分類確定目標(biāo)個(gè)體的關(guān)鍵點(diǎn)是否存在;表示第n個(gè)關(guān)鍵點(diǎn)的預(yù)測置信度。
總損失為
式中Lcls表示分類損失;Lbox表示邊界框回歸損失;λcls=0.5,λbox=0.05,λkpts=0.1,λkpts_conf=0.5,以上超參數(shù)的選擇主要用于平衡不同尺度上的損失。
YOLO-Pose 關(guān)鍵點(diǎn)檢測算法是一種基于無高斯熱圖的聯(lián)合檢測方法,利用端到端的思想,去除多個(gè)前向傳播過程且無需復(fù)雜的后處理環(huán)節(jié),一次性實(shí)現(xiàn)了目標(biāo)檢測與姿態(tài)估計(jì)任務(wù)。
為解決農(nóng)田作業(yè)環(huán)境下拖拉機(jī)駕駛員由于光照、背景以及遮擋導(dǎo)致的關(guān)鍵點(diǎn)漏檢、誤檢和檢測精度低等問題,本研究以具有四分支特征輸出的YOLOv5s6-Pose 網(wǎng)絡(luò)為基礎(chǔ)模型,提出了一種融合Swin Transformer 編碼器、高效層聚合網(wǎng)絡(luò)、金字塔卷積以及坐標(biāo)注意力機(jī)制的YOLO-Pose 駕駛員關(guān)鍵點(diǎn)檢測算法。具體改進(jìn)如下:1)在主干網(wǎng)絡(luò)P6 層的C3 模塊嵌入Swin Transformer 編碼器,通過構(gòu)建C3ST 模塊顯式地捕獲各關(guān)鍵點(diǎn)之間的空間依賴關(guān)系,有效地挖掘全局上下文信息,解決由于不斷下采樣造成的特征缺失問題。2)采用嵌入金字塔卷積的高效層聚合網(wǎng)絡(luò)RepGFPN 作為頸部,實(shí)現(xiàn)高層與底層信息的高效交互,并添加P6 輸出分支,以適應(yīng)不同尺度目標(biāo)的檢測。3)在關(guān)鍵點(diǎn)解耦頭中嵌入坐標(biāo)注意力機(jī)制,通過將位置信息編碼到通道注意力中,增強(qiáng)網(wǎng)絡(luò)對(duì)關(guān)鍵點(diǎn)位置的捕獲能力。改進(jìn)后的網(wǎng)絡(luò)結(jié)構(gòu)如圖4 所示。
圖4 改進(jìn)YOLOv5s6-Pose 網(wǎng)絡(luò)結(jié)構(gòu)Fig.4 Improved YOLOv5s6-Pose network structure diagram
2.2.1 Swin Transformer 編碼器
Swin Transformer 編碼器是構(gòu)建Swin Transformer[16]網(wǎng)絡(luò)的核心組件,其由基于窗口的多頭自注意力機(jī)制(windows multi-head self-attention,W-MSA)和基于移位窗口的自注意力機(jī)制(shifted windows multi-head selfattention,SW-MSA)堆疊而成,每個(gè)MSA 和MLP 模塊[17]前應(yīng)用層歸一化(layer normalization,LN)和殘差連接,其中,MLP(multi-layer perceptron)為嵌入GELU激活函數(shù)的多層感知器結(jié)構(gòu)。
為解決網(wǎng)絡(luò)在不斷下采樣過程中而導(dǎo)致的全局特征缺失問題,本文將Swin Transformer 編碼器嵌入主干網(wǎng)絡(luò)P6 檢測層的C3 模塊中,構(gòu)建C3ST 模塊,其結(jié)構(gòu)如圖5 所示。
圖5 C3ST 模塊結(jié)構(gòu)示意圖Fig.5 Schematic diagram of C3ST module structure
C3ST 模塊將輸入特征圖分成若干個(gè)子窗口,在獨(dú)立的子窗口內(nèi)進(jìn)行自注意力計(jì)算,并采用如圖6 所示的移位窗口自注意力計(jì)算方式來學(xué)習(xí)跨窗口的交互信息,使用掩碼機(jī)制隔絕原特征圖中不相鄰區(qū)域像素點(diǎn)之間無效的信息交流[18],彌補(bǔ)了傳統(tǒng)ViT[19]架構(gòu)對(duì)于密集預(yù)測和高分辨率視覺問題的缺陷,在提升運(yùn)算效率的同時(shí)能夠有效地捕獲全局依賴關(guān)系,增強(qiáng)全局建模能力。自注意力計(jì)算式如下:
圖6 移位窗口自注意力計(jì)算原理示意圖Fig.6 Schematic diagram of the shift window self-attention calculation principle
式中Q、K、V由輸入特征矩陣線性變化所得,QKT為不同特征矩陣信息交互過程,采用點(diǎn)積運(yùn)算來計(jì)算不同特征之間的相似度,dk為輸入通道序列的數(shù)量,除以以防止梯度激增,B為相對(duì)位置編碼,取自偏置矩陣
2.2.2 高效層聚合網(wǎng)絡(luò)RepGFPN
YOLO-Pose 在頸部采用PANet 融合多尺度特征映射,通過增加額外的自底向上路徑,利用低層中準(zhǔn)確的定位信息來增強(qiáng)整個(gè)特征層次,從而縮短高層和低層特征之間的信息路徑[20],但這種自底向上的路徑設(shè)計(jì)缺乏高層語義信息和低層空間信息的交互,導(dǎo)致多尺度檢測效果欠佳。
針對(duì)上述問題,本研究采用具有跳連結(jié)構(gòu)和跨尺度連接的高效層聚合網(wǎng)絡(luò)RepGFPN[21]作為頸部,并額外增加P6 檢測層以適應(yīng)主干網(wǎng)絡(luò)的多尺度輸出。RepGFPN在GFPN[22]的基礎(chǔ)上改進(jìn)而來,GFPN 通過Queen Fusion 模塊接受更多節(jié)點(diǎn)輸入,增強(qiáng)了特征復(fù)用及特征表達(dá)能力,但其在不同尺度上共享統(tǒng)一通道數(shù),存在特征冗余現(xiàn)象,且過多的節(jié)點(diǎn)堆疊導(dǎo)致運(yùn)算效率降低,RepGFPN 從拓?fù)浣Y(jié)構(gòu)優(yōu)化和融合方式優(yōu)化兩方面入手,通過對(duì)不同尺度特征使用不同的通道數(shù)以及采用具有重參數(shù)思想和層聚合連接的CspStage 模塊融合來自相鄰上下層以及同一層級(jí)的不同尺度特征,在不額外增加計(jì)算量的前提下,實(shí)現(xiàn)了更高的精度,融合模塊CspStage 結(jié)構(gòu)示意圖如圖7 所示。結(jié)構(gòu)上,以P5 層為例,首先,P6-hid 經(jīng)過2 倍上采樣與P4-in、P5-in 融合得到中間節(jié)點(diǎn)P5-hid,其次,P4-out 經(jīng)過2 倍下采樣與P4-hid、P5-hid融合得到P5-out,同理可得P4-out、P6-out,最后,P4-hid 經(jīng)過2 倍上采樣與P3-in 融合得到P3-out。
圖7 融合模塊CspStage 及其組件Fig.7 Fusion module CspStage and its components
2.2.3 金字塔卷積
常規(guī)的卷積神經(jīng)網(wǎng)絡(luò)都采用內(nèi)核較小的3×3 卷積用于特征提取,卷積核的大小與網(wǎng)絡(luò)感受野呈正相關(guān),即卷積核越大,感受野越大[23]。通常,卷積神經(jīng)網(wǎng)絡(luò)會(huì)采用具有多個(gè)小卷積核和下采樣層的卷積鏈以逐步減小輸入特征圖大小并增加網(wǎng)絡(luò)感受野以此獲取更豐富的特征信息,然而,這不僅會(huì)增加參數(shù)量和計(jì)算復(fù)雜度,而且頻繁的下采樣會(huì)丟失細(xì)節(jié)信息,導(dǎo)致網(wǎng)絡(luò)的識(shí)別性能下降。
金字塔卷積[24](pyramid convolution)包含n層不同核大小的金字塔結(jié)構(gòu),在金字塔卷積的每一層,內(nèi)核包含不同的空間大小,從金字塔的底部到頂部逐漸增加內(nèi)核大小,隨著空間尺寸的增大,核的深度從第1 層減小到第n層,在逐步擴(kuò)大感受野的同時(shí)使用不同的內(nèi)核大小來捕獲圖像中多尺度的細(xì)節(jié)信息。同時(shí),為了盡可能降低金字塔卷積的計(jì)算量并且在每個(gè)層級(jí)使用不同深度的內(nèi)核,使用分組卷積將輸入特征圖分為不同的組,并為每個(gè)輸入特征組獨(dú)立應(yīng)用內(nèi)核[25],金字塔卷積及分組卷積結(jié)構(gòu)示意圖如圖8 所示。
圖8 金字塔卷積及分組卷積結(jié)構(gòu)示意圖Fig.8 Schematic diagram of pyramid convolution and group convolution structure
與標(biāo)準(zhǔn)卷積相比,金字塔卷積有以下幾點(diǎn)優(yōu)勢:1)多尺度特征提取能力,由于金字塔卷積獨(dú)特的核金字塔結(jié)構(gòu),其可以在不提高計(jì)算量的前提下,增大局部感受野,解決下采樣過程中上下文信息丟失問題,增強(qiáng)不同尺度目標(biāo)的特征提取能力;2)高效性和靈活性,通過設(shè)置不同的分組卷積組數(shù)和金字塔層數(shù),使網(wǎng)絡(luò)更具靈活性和可擴(kuò)展性。
2.2.4 優(yōu)化關(guān)鍵點(diǎn)解耦頭
關(guān)鍵點(diǎn)檢測是對(duì)位置信息高度敏感的任務(wù)[26],農(nóng)業(yè)作業(yè)環(huán)境下駕駛員易受光照等外界因素影響,造成關(guān)鍵點(diǎn)漏檢、誤檢現(xiàn)象。原始網(wǎng)絡(luò)的關(guān)鍵點(diǎn)解耦頭通過一個(gè)獨(dú)立的2D 卷積分別在4 個(gè)尺度上進(jìn)行預(yù)測,每個(gè)尺度分別對(duì)應(yīng)3 個(gè)Anchor,每個(gè)Anchor 分別預(yù)測51 個(gè)特征向量,共計(jì)153 個(gè)特征向量。本文通過引入坐標(biāo)注意力機(jī)制進(jìn)一步優(yōu)化關(guān)鍵點(diǎn)解耦頭,以提高關(guān)鍵點(diǎn)定位精度。坐標(biāo)注意力機(jī)制結(jié)構(gòu)示意圖如圖9 所示。
圖9 坐標(biāo)注意力機(jī)制結(jié)構(gòu)示意圖Fig.9 Schematic diagram of the structure of the coordinate attention mechanism
坐標(biāo)注意力機(jī)制[27](coordinate attention mechanism,CA)通過將橫向和縱向的位置信息編碼到通道注意力中,使得網(wǎng)絡(luò)不僅能夠獲取跨通道的信息,還能捕獲方向感知和位置敏感的信息,其具體包括坐標(biāo)位置嵌入和坐標(biāo)注意力生成兩個(gè)步驟,對(duì)于輸入特征圖X,首先使用池化核大小為(H,1)和(1,W)沿水平和垂直方向進(jìn)行全局平均池化操作,分別得到在高度h和寬度w上第C通道的特征輸出
式中xc為第C通道的輸入;然后,將式(6)中獲得的特征圖進(jìn)行維度拼接,并通過1×1 卷積、批量歸一化和非線性激活函數(shù)進(jìn)行特征轉(zhuǎn)化,得到中間特征映射,如式(7)所示。
式中f∈RC/r×(H+W)為包含水平和垂直空間信息的中間特征,ξ為非線性激活函數(shù),zh和 zw為拼接后的特征圖在高度和寬度方向上的輸出,r為縮減因子,R為實(shí)數(shù)集合,C為特征圖通道數(shù),F(xiàn)1表示核大小為1 的卷積操作。隨后將f沿高度和寬度維度拆分為兩個(gè)獨(dú)立的特征張量fh∈RC/r×H、fw∈RC/r×W,另外使用兩個(gè)1×1 卷積變換Fh和Fw使fh、fw與輸入特征X通道數(shù)一致,再分別經(jīng)過Sigmoid 激活函數(shù) σ得到高度和寬度上的注意力權(quán)重gh、gw,如式(8)所示。
最后,將輸入特征圖X與權(quán)重gh、gw進(jìn)行乘法加權(quán)操作,得到坐標(biāo)注意力模塊的輸出Y∈RC×H×W,如式(9)所示。
式中xc和yc分別為特征圖在第c通道的輸入和輸出,和分別為特征圖在第c通道高度和寬度方向上的注意力權(quán)重。
本文在普通2D 卷積關(guān)鍵點(diǎn)解耦頭前嵌入坐標(biāo)注意力機(jī)制,增強(qiáng)網(wǎng)絡(luò)在預(yù)測過程對(duì)關(guān)鍵點(diǎn)位置的敏感程度,使模型聚焦感興趣區(qū)域,提高預(yù)測精度。
本研究試驗(yàn)平臺(tái)基于Windows10 的64 位操作系統(tǒng),12 th Gen Intel? Core? i7-12700KF、3.6 GHz 處理器和NVIDIA GeForce RTX 3 070 Ti 顯卡,顯存大小8 GB,GPU 加速庫為CUDA11.6 和CUDNN8.2,Python 版本為3.7.12,深度學(xué)習(xí)框架為PyTorch1.12.0。
試驗(yàn)采用隨機(jī)梯度下降法(stochastic gradient descent,SGD)作為優(yōu)化器對(duì)網(wǎng)絡(luò)進(jìn)行優(yōu)化,為保持模型深層的穩(wěn)定性,訓(xùn)練采用warm up 策略,在前3 輪內(nèi)采用0.000 1 的學(xué)習(xí)率進(jìn)行預(yù)熱訓(xùn)練,之后恢復(fù)到初始學(xué)習(xí)率,學(xué)習(xí)率調(diào)整方式采用余弦退火學(xué)習(xí)率衰減策略,初始學(xué)習(xí)率設(shè)為0.01,最終學(xué)習(xí)率設(shè)為0.002,權(quán)重衰減系數(shù)設(shè)為0.000 5,動(dòng)量因子設(shè)為0.937,共迭代300 輪。訓(xùn)練時(shí)將輸入圖像分辨率統(tǒng)一調(diào)整為640×640 大小,批次大小為16,所有試驗(yàn)均使用在COCO 數(shù)據(jù)集上訓(xùn)練得的預(yù)訓(xùn)練權(quán)重進(jìn)行遷移學(xué)習(xí)。
試驗(yàn)采用MS COCO 官方給定的基于目標(biāo)關(guān)鍵點(diǎn)相似度Loks(object keypoint similarity)驗(yàn)證標(biāo)準(zhǔn)的平均準(zhǔn)確率均值作為評(píng)價(jià)指標(biāo)。其中,Loks表示為:
式中i為標(biāo)注的關(guān)鍵點(diǎn)編號(hào);為檢測到的關(guān)鍵點(diǎn)位置與真實(shí)關(guān)鍵點(diǎn)位置的歐式距離的平方;s2為檢測到的人體在圖像中所占的面積;ki為用來控制關(guān)鍵點(diǎn)類別i的衰減常數(shù);δ為沖激函數(shù),表示只計(jì)算真實(shí)標(biāo)注中可見關(guān)鍵點(diǎn)的Loks值;vi表示第i個(gè)關(guān)鍵點(diǎn)的可見性(vi>0 表示關(guān)鍵點(diǎn)可見)。
在目標(biāo)檢測方面,本研究采用準(zhǔn)確率(Precision)和召回率(Recall)作為評(píng)價(jià)指標(biāo)。在關(guān)鍵點(diǎn)檢測方面,采用mAP0.5和mAP0.5:0.95作為評(píng)價(jià)指標(biāo),其中mAP0.5表示Loks閾值為0.5 時(shí)的檢測精度,mAP0.5:0.95表示Loks分別為0.50,0.55,…,0.90,0.95 時(shí)的平均檢測精度。采用單張圖片的測試速度作為評(píng)價(jià)模型推理速度的指標(biāo),同時(shí)采用參數(shù)量作為模型大小的評(píng)價(jià)指標(biāo)。訓(xùn)練集和驗(yàn)證集目標(biāo)關(guān)鍵點(diǎn)相似度損失以及訓(xùn)練集各項(xiàng)指標(biāo)精度曲線如圖10 所示,由圖10 可知,當(dāng)模型迭代300 次時(shí),各項(xiàng)損失趨于平緩且達(dá)到最小,其中訓(xùn)練集損失為0.158,驗(yàn)證集損失為0.0073,此時(shí)各項(xiàng)精度指標(biāo)均達(dá)到最優(yōu)。
圖10 改進(jìn)YOLO-Pose 模型訓(xùn)練過程Fig.10 Training process of the improved YOLO-Pose model
為驗(yàn)證各個(gè)改進(jìn)模塊對(duì)模型整體性能的影響,本研究設(shè)計(jì)消融試驗(yàn),試驗(yàn)結(jié)果如表1 所示。
表1 不同改進(jìn)策略消融試驗(yàn)結(jié)果Table 1 Results of ablation experiments with different modification strategies
分析表1 可知,改進(jìn)后的YOLO-Pose 駕駛員-關(guān)鍵點(diǎn)聯(lián)合檢測算法較原始模型在各項(xiàng)指標(biāo)上均有提升。目標(biāo)檢測方面,改進(jìn)后的模型準(zhǔn)確率為87.58%,召回率為81.34%,較原始模型分別提升了0.72 和3.11 個(gè)百分點(diǎn)。關(guān)鍵點(diǎn)檢測方面,mAP0.5和mAP0.5:0.95為89.59%和62.58%,較原始模型分別提升了4.24 和4.15 個(gè)百分點(diǎn),單張圖片檢測時(shí)間為21.9 ms,滿足實(shí)時(shí)檢測的要求。當(dāng)在主干網(wǎng)絡(luò)頂層引入C3ST 模塊時(shí),由于Swin Transformer 編碼器獨(dú)特的跨窗口自注意力計(jì)算和相對(duì)位置編碼機(jī)制,增強(qiáng)了模型對(duì)空間位置信息的感知,提升了全局建模能力,有助于遮擋情況下關(guān)鍵點(diǎn)的有效檢測。當(dāng)更換頸部網(wǎng)絡(luò)為RepGFPN 時(shí),增強(qiáng)了不同尺度特征的高效融合,對(duì)密集關(guān)鍵點(diǎn)的預(yù)測有顯著提升,但參數(shù)量和檢測時(shí)間也有大幅增加,原因在于RepGFPN 網(wǎng)絡(luò)跨尺度的連接方式使得模型層數(shù)加深,預(yù)測過程前向傳播時(shí)間顯著增加。當(dāng)使用金字塔卷積替換RepGFPN 中普通的3×3 卷積后,模型的參數(shù)量有小幅降低,且檢測精度有了一定提升,分析原因可知,金字塔卷積中采用了不同的內(nèi)核大小和分組數(shù),在增大感受野的同時(shí)利用組卷積的思想有效地降低了模型參數(shù)量。最后,添加坐標(biāo)注意力機(jī)制進(jìn)一步優(yōu)化關(guān)鍵點(diǎn)解耦頭,通過將位置信息編碼到通道注意力中,提高網(wǎng)絡(luò)對(duì)于關(guān)鍵點(diǎn)位置的敏感程度,檢測精度有了進(jìn)一步提升。綜上,改進(jìn)后的模型在參數(shù)量和檢測時(shí)間上雖然有所增加,但檢測精度有了較大的提升。
為了更直觀體現(xiàn)改進(jìn)后模型的有效性,選取暗光條件、輕度遮擋和重度遮擋三種駕駛情景,對(duì)檢測結(jié)果進(jìn)行可視化。分析圖11a 可知,在暗光條件和輕度遮擋情況下駕駛員手腕、手肘以及右耳存在關(guān)鍵點(diǎn)漏檢現(xiàn)象,重度遮擋情況下駕駛員手腕、右膝以及右踝存在誤檢現(xiàn)象,而改進(jìn)后的網(wǎng)絡(luò)在上述各場景下都具有良好的檢測效果。
圖11 改進(jìn)前后模型檢測效果對(duì)比Fig.11 Comparison of model detection results before and after improvement
Swin Transformer 編碼器通過劃分非重疊的窗口來執(zhí)行自注意力計(jì)算,在保證全局建模能力的同時(shí)提高了運(yùn)算效率。為探究不同窗口大小對(duì)模型的影響,固定自注意力計(jì)算頭數(shù),分別設(shè)置窗口大小為4、8、16 進(jìn)行對(duì)比試驗(yàn),結(jié)果如表2 所示,分析可知:1)窗口劃分大小對(duì)模型參數(shù)量無影響。2)模型浮點(diǎn)運(yùn)算量隨窗口大小的增大逐漸升高,且窗口越大,運(yùn)算量提升約明顯。3)關(guān)于平均準(zhǔn)確率mAP 值,隨著窗口大小不斷增加,mAP0.5和mAP0.5:0.95均有所提升,其中,mAP0.5分別提高0.85和0.26 個(gè)百分點(diǎn),mAP0.5:0.95分別提高1.19 和0.27 個(gè)百分點(diǎn),窗口大小設(shè)置為16 相比窗口大小設(shè)置為8 時(shí)提升效果不明顯。綜合各項(xiàng)指標(biāo),當(dāng)窗口大小設(shè)置為8 時(shí),模型綜合性能更優(yōu)。
表2 編碼器窗口大小對(duì)模型的影響Table 2 Effect of encoder window size on the model
為驗(yàn)證設(shè)置不同金字塔卷積層數(shù)時(shí)對(duì)模型性能的影響,分別設(shè)置層數(shù)為1、2、3、4 進(jìn)行試驗(yàn),結(jié)果如表3。其中,當(dāng)層數(shù)設(shè)置為1 時(shí),即為標(biāo)準(zhǔn)3×3 卷積,此時(shí)模型參數(shù)量最少,浮點(diǎn)運(yùn)算量最低,隨著金字塔層數(shù)的增加,平均準(zhǔn)確率均呈上升趨勢,且模型參數(shù)量和浮點(diǎn)運(yùn)算量逐漸減小,當(dāng)設(shè)置金字塔卷積層數(shù)為4 時(shí),模型準(zhǔn)確率達(dá)到最優(yōu),mAP0.5和mAP0.5:0.95分別為87.64%和60.28%,相比原始網(wǎng)絡(luò)分別提升2.29、1.85 個(gè)百分點(diǎn),說明融入金字塔卷積對(duì)模型精度產(chǎn)生了積極影響。分析原因可知,金字塔在特征提取方面較普通卷積有明顯優(yōu)勢,其通過逐層增大卷積內(nèi)核的方式來增大網(wǎng)絡(luò)感受野,避免了細(xì)節(jié)信息的缺失,在每個(gè)卷積核組中又分別使用不同大小的內(nèi)核來適應(yīng)不同尺度目標(biāo),并設(shè)置不同組數(shù)來避免參數(shù)量的陡增,結(jié)果表明,融入金字塔卷積在少量增加模型復(fù)雜度的前提下能有效地提升模型檢測精度。
表3 金字塔卷積層數(shù)對(duì)模型性能影響對(duì)比Table 3 Comparison of the impact of the number of pyramid convolution layers on model performance
為了進(jìn)一步驗(yàn)證改進(jìn)后的模型對(duì)駕駛員關(guān)鍵點(diǎn)的檢測效果,本研究選取當(dāng)前主流基于熱力圖回歸的關(guān)鍵點(diǎn)檢測網(wǎng)絡(luò)進(jìn)行對(duì)比試驗(yàn),對(duì)比的檢測算法有:Hourglass[28],HRNet-W32[29]以及DEKR[30],試驗(yàn)結(jié)果如表4 所示。
表4 不同檢測模型性能對(duì)比Table 4 Performance comparison of different detection models
由表4 可知,改進(jìn)后的YOLO-Pose 駕駛員關(guān)鍵點(diǎn)檢測算法mAP0.5達(dá)到最優(yōu),較Hourglass、HRNet-W32 以及DEKR 分別高出7.94、5.27、2.66 個(gè)百分點(diǎn),且模型大小分別減少了257.5、8.2、9.3 M。DEKR 網(wǎng)絡(luò)的mAP0.5:0.95最高,較改進(jìn)YOLO-Pose 高2.74 個(gè)百分點(diǎn),其次為HRNet-W32,較改進(jìn)YOLO-Pose 高0.9 個(gè)百分點(diǎn),分析原因可知,HRNet 采用多分辨率子網(wǎng)的并行連接方式,通過執(zhí)行重復(fù)的多尺度融合,使得網(wǎng)絡(luò)在整個(gè)過程都保持高分辨率表征,預(yù)測得到的關(guān)鍵點(diǎn)熱圖在空間上更精確,DEKR 采用自適應(yīng)卷積和多分支獨(dú)立回歸結(jié)構(gòu),每個(gè)關(guān)鍵點(diǎn)的回歸單獨(dú)對(duì)應(yīng)一個(gè)分支,二者在泛化性方面表現(xiàn)更好,但其在參數(shù)量方面均高于改進(jìn)后的YOLOPose 算法,綜合考慮檢測精度與模型輕量化程度,改進(jìn)后的YOLO-Pose 駕駛員關(guān)鍵點(diǎn)檢測算法表現(xiàn)出最好的檢測性能。
為更加直觀的反映各模型在實(shí)際場景下的檢測效果,選取不同自然場景下駕駛員操縱圖像,包括暗光、輕度遮擋和重度遮擋等難檢測情形,并使用類激活熱力圖對(duì)輸出層進(jìn)行可視化分析,各模型檢測結(jié)果如圖12 所示。
圖12 不同網(wǎng)絡(luò)模型檢測效果示例Fig.12 Example of the detection effect of different network models
由圖12 可知,在暗光條件下,Hourglass、HRNet-W32、DEKR 和改進(jìn)的YOLO-Pose 關(guān)鍵點(diǎn)檢測算法均表現(xiàn)出良好的檢測效果,在輕度遮擋和重度遮擋狀況下,Hourglass、HRNet-W32 和DEKR 存在關(guān)鍵點(diǎn)定位不準(zhǔn)以及漏檢現(xiàn)象,而改進(jìn)后的YOLO-Pose 檢測算法在上述復(fù)雜場景下依然保持較高的精度和魯棒性,其通過隱式學(xué)習(xí)各關(guān)鍵點(diǎn)之間的空間位置關(guān)系,即使處于重度遮擋情況也能有效地捕獲各關(guān)鍵點(diǎn)的位置信息。
針對(duì)農(nóng)田作業(yè)環(huán)境下拖拉機(jī)駕駛員因外界因素干擾而導(dǎo)致的關(guān)鍵點(diǎn)漏檢、誤檢及定位精度低的問題,本文提出了一種基于YOLO-Pose 模型改進(jìn)的駕駛員關(guān)鍵點(diǎn)檢測算法,通過在自制的駕駛員數(shù)據(jù)集上進(jìn)行訓(xùn)練和測試,驗(yàn)證了該算法的有效性。通過在主干網(wǎng)絡(luò)頂層引入C3ST 模塊,顯式地捕捉各關(guān)鍵點(diǎn)之間的空間關(guān)系,對(duì)遮擋狀況下關(guān)鍵點(diǎn)的預(yù)測有積極的影響。采用融合金字塔卷積的RepGFPN 網(wǎng)絡(luò)作為頸部網(wǎng)絡(luò),有效地緩解了多尺度檢測效果欠佳的問題。通過嵌入坐標(biāo)注意力機(jī)制優(yōu)化關(guān)鍵點(diǎn)解耦頭,使模型在預(yù)測過程更加關(guān)注目標(biāo)主體位置。結(jié)果表明,改進(jìn)后的模型相比原模型mAP0.5(基于目標(biāo)關(guān)鍵點(diǎn)相似度閾值為0.5 時(shí)的檢測精度)和mAP0.5:0.95(基于目標(biāo)關(guān)鍵點(diǎn)相似度閾值為0.5,0.55,···,0.95 時(shí)的檢測精度)分別提升了4.24 和4.15 個(gè)百分點(diǎn)。
本文所提出的模型較當(dāng)前主流的關(guān)鍵點(diǎn)檢測網(wǎng)絡(luò)綜合效果更優(yōu),能夠有效地改善模型在復(fù)雜場景下的檢測效果,尤其是駕駛員存在自遮擋和他物遮擋的情形,可為農(nóng)田作業(yè)環(huán)境下駕駛員的行為識(shí)別和狀態(tài)監(jiān)測提供一定的理論依據(jù)。但本文方法也存在不足之處,模型在檢測精度提高的同時(shí)伴隨著參數(shù)量增大、檢測速度變慢的情況,后續(xù)工作可從輕量化角度入手,在保證檢測精度的前提下進(jìn)一步壓縮模型體積,提高在小型設(shè)備上的部署與應(yīng)用。