宋懷波 華志新 馬寶玲 溫毓晨 孔祥鳳 許興時(shí)
(1.西北農(nóng)林科技大學(xué)機(jī)械與電子工程學(xué)院, 陜西楊凌 712100;2.農(nóng)業(yè)農(nóng)村部農(nóng)業(yè)物聯(lián)網(wǎng)重點(diǎn)實(shí)驗(yàn)室, 陜西楊凌 712100)
奶牛關(guān)鍵點(diǎn)指奶牛身體部位重要的關(guān)節(jié)位置,如頭部、肩部、腿關(guān)節(jié)等[1]。關(guān)鍵點(diǎn)相連的骨架作為姿態(tài)的最直觀體現(xiàn),可以幫助實(shí)現(xiàn)奶牛動(dòng)作行為的非接觸識(shí)別,從而為姿態(tài)表征的疾病預(yù)警提供重要技術(shù)支持。同時(shí),關(guān)鍵點(diǎn)檢測(cè)還是牲畜體尺測(cè)量與身體部位分割的前置任務(wù),可為奶牛的體重與體況分析提供更為高效的數(shù)據(jù)支撐。綜上,開(kāi)展奶牛關(guān)鍵點(diǎn)檢測(cè)技術(shù)的研究和應(yīng)用,將有助于提高養(yǎng)殖效率和健康水平,具有重要研究?jī)r(jià)值[2]。
傳統(tǒng)關(guān)鍵點(diǎn)檢測(cè)方法通過(guò)人工提取圖像或視頻中的關(guān)鍵點(diǎn)特征,如關(guān)節(jié)點(diǎn)之間的空間位置關(guān)系等,再通過(guò)機(jī)器學(xué)習(xí)算法進(jìn)行學(xué)習(xí)和匹配其特征及規(guī)律[3]。JIA等[4]通過(guò)骨架對(duì)奶牛不同身體部位進(jìn)行劃分用以評(píng)估其清潔度。該研究在獲得奶牛骨架圖的過(guò)程中采取特征距離變換,細(xì)化與特征檢測(cè)等步驟,然后計(jì)算相鄰的骨架路徑,并與數(shù)據(jù)庫(kù)中的模板進(jìn)行相似度匹配以獲得最佳匹配結(jié)果,最后確定每個(gè)骨骼分支所屬的類(lèi)別后,將身體分為不同部分。結(jié)果表明,側(cè)視圖與后視圖的平均身體部位分割精度分別為96%和91%,為奶牛的分割任務(wù)提供了借鑒。但該骨架提取方法受人為設(shè)計(jì)特征完備性較差、機(jī)器學(xué)習(xí)算法的特征提取和泛化能力較弱的影響,在實(shí)際生產(chǎn)過(guò)程中難以應(yīng)用。
隨著深度學(xué)習(xí)的應(yīng)用,關(guān)鍵點(diǎn)檢測(cè)技術(shù)取得了較多進(jìn)展。基于卷積神經(jīng)網(wǎng)絡(luò)(Convolutional neural networks,CNN)的方法[5]無(wú)需手動(dòng)設(shè)計(jì)特征,從整幅圖像中學(xué)習(xí)關(guān)鍵點(diǎn)表征,可以實(shí)現(xiàn)端對(duì)端的檢測(cè),具有良好的特征提取能力和泛化能力,常見(jiàn)的關(guān)鍵點(diǎn)檢測(cè)網(wǎng)絡(luò)包括Hourglass[6]、 DeepPose[7]、 OpenPose[8]、HRNet[9]等。諸多研究也將深度學(xué)習(xí)網(wǎng)絡(luò)應(yīng)用于奶牛關(guān)鍵點(diǎn)檢測(cè)中,RUSSELLO等[10]使用T-LEAP姿態(tài)估計(jì)模型,將LEAP模型修改為時(shí)間序列模型,從圖像序列中檢測(cè)關(guān)鍵點(diǎn)從而預(yù)估奶牛姿態(tài),試驗(yàn)結(jié)果表明,在奶牛目標(biāo)上的平均正確關(guān)鍵點(diǎn)的預(yù)估比例(Percentage of correct keypoints,PCK)為93.8%。同時(shí),奶牛關(guān)鍵點(diǎn)檢測(cè)是實(shí)現(xiàn)體尺測(cè)量、動(dòng)作識(shí)別等任務(wù)的基礎(chǔ)[11]。其中,體尺測(cè)量用于評(píng)估牲畜體型的大小,體尺關(guān)鍵點(diǎn)檢測(cè)的準(zhǔn)確度直接影響體尺測(cè)量的精度。趙宇亮等[12]為了對(duì)豬只的5項(xiàng)體尺指標(biāo)進(jìn)行非接觸式測(cè)量,首先在DeepLabCut上選取EfficientNet-b6模型作為最優(yōu)主干網(wǎng)絡(luò)進(jìn)行豬只體尺關(guān)鍵點(diǎn)檢測(cè),其測(cè)試集誤差為5.13像素;在此基礎(chǔ)上,通過(guò)3D坐標(biāo)轉(zhuǎn)換實(shí)現(xiàn)深度圖像上關(guān)鍵點(diǎn)坐標(biāo)的映射,并對(duì)離群特征點(diǎn)進(jìn)行優(yōu)化,最后提取體尺曲線(xiàn)進(jìn)行計(jì)算。奶牛關(guān)鍵點(diǎn)連接的骨架是姿態(tài)的最直觀表征,奶牛的姿態(tài)數(shù)據(jù)可用于統(tǒng)計(jì)其基本運(yùn)動(dòng)行為時(shí)間。LI等[13]為了準(zhǔn)確識(shí)別奶牛的基本運(yùn)動(dòng)行為(走、站、躺),利用HRNet提取奶牛骨架信息,在平行的二維卷積特征中以熱圖的形式添加對(duì)應(yīng)的奶牛關(guān)鍵點(diǎn)與骨架信息,并選取了400個(gè)包含該4種行為的奶牛視頻進(jìn)行訓(xùn)練與測(cè)試,結(jié)果表明,經(jīng)過(guò)5次交叉驗(yàn)證,最終分類(lèi)精度為91.80%。
上述關(guān)鍵點(diǎn)檢測(cè)研究大多基于手工提取,難以實(shí)際應(yīng)用;或者依賴(lài)于DeepLabCut[14]平臺(tái),泛化性不足,且無(wú)法解決多目標(biāo)間關(guān)鍵點(diǎn)的連接問(wèn)題。目前基于深度學(xué)習(xí)的主流算法具備較高的準(zhǔn)確率,但其網(wǎng)絡(luò)復(fù)雜程度也較高。為解決上述問(wèn)題,本研究借鑒ShuffleNetV2模型的輕量化性能及SimCC所具有的高效簡(jiǎn)單的關(guān)鍵點(diǎn)坐標(biāo)分類(lèi)能力,提出SimCC-ShuffleNetV2輕量化模型,以期構(gòu)建一種實(shí)時(shí)性強(qiáng)、精度高、魯棒性強(qiáng)的奶牛關(guān)鍵點(diǎn)檢測(cè)方法,為奶牛動(dòng)作識(shí)別等研究奠定基礎(chǔ)。
本研究視頻數(shù)據(jù)采集于陜西省楊凌科元克隆有限公司,采用DS-2DM1-714型圓頂攝像機(jī)(海康威視)進(jìn)行拍攝,攝像機(jī)速率為25 f/s,分辨率為704像素×480像素。如圖1所示,攝像機(jī)架設(shè)于背靠牛棚的長(zhǎng)走廊外,目標(biāo)與攝像機(jī)之間的圍欄遮擋了一些關(guān)鍵點(diǎn),會(huì)對(duì)骨架提取任務(wù)造成一定的干擾。

圖1 數(shù)據(jù)采集與標(biāo)注方式Fig.1 Data collection and annotation methods1.鼻子 2.額頭 3.頸根 4.右前腿根 5.左前腿根 6.右前膝 7.左前膝 8.右前蹄 9.左前蹄 10.背部 11.尾根 12.右后腿根 13.左后腿根 14.右后膝 15.左后膝 16.右后蹄 17.左后蹄
如圖1所示,本研究以最大的動(dòng)物姿態(tài)數(shù)據(jù)集AP-10k為參考[15],設(shè)計(jì)了奶牛關(guān)鍵點(diǎn)及骨架結(jié)構(gòu)。從視頻中截取1 800幅圖像用于關(guān)鍵點(diǎn)檢測(cè)任務(wù),為了有效模擬奶牛姿態(tài)的變化,采用鏡像翻轉(zhuǎn)的方式擴(kuò)充數(shù)據(jù)集至3 600幅。標(biāo)注奶牛的邊界框與關(guān)鍵點(diǎn)后將其保存為COCO格式,并按照6∶2∶2的比例分為訓(xùn)練集、驗(yàn)證集和測(cè)試集。
由于奶牛動(dòng)作及姿態(tài)變化多樣且易受遮擋、光照等因素影響,奶牛關(guān)鍵點(diǎn)檢測(cè)的準(zhǔn)確性不高。為了增強(qiáng)模型的魯棒性,采集了不同情況的奶牛圖像:①正面視角:奶牛朝正面攝像頭時(shí),關(guān)節(jié)位置會(huì)產(chǎn)生一定的形變。②關(guān)鍵點(diǎn)缺失:奶牛目標(biāo)位于圖像邊緣時(shí),部分關(guān)鍵點(diǎn)會(huì)缺失。③躺臥姿態(tài):奶牛在躺臥姿態(tài)下,某些關(guān)節(jié)點(diǎn)會(huì)被遮擋。④小目標(biāo):拍攝距離較遠(yuǎn)時(shí)會(huì)造成奶牛目標(biāo)在圖像中占據(jù)的比例較小。訓(xùn)練集和測(cè)試集中均包含了各種影響因素下的奶牛圖像,且在訓(xùn)練集和測(cè)試集中的比例基本保持一致。
試驗(yàn)在Windows 10系統(tǒng)下進(jìn)行,處理器為Intel(R) Core(TM) i5-11400F,圖形處理器為Nvidia RTX2080Ti。深度學(xué)習(xí)框架為PyTorch,編程平臺(tái)為PyCharm,編程語(yǔ)言為Python,所有算法均在相同環(huán)境下運(yùn)行。
本研究總體技術(shù)路線(xiàn)如圖2所示,首先將圖像送入SimCC-ShuffleNetV2模型,關(guān)鍵點(diǎn)檢測(cè)過(guò)程類(lèi)似于編解碼,ShuffleNetV2用于提取并編碼17個(gè)關(guān)鍵點(diǎn)表征。SimCC用于對(duì)水平軸和垂直軸執(zhí)行坐標(biāo)分類(lèi),最后解碼出關(guān)鍵點(diǎn)坐標(biāo)。為了驗(yàn)證模型的有效性,將SimCC-ShuffleNetV2應(yīng)用于行為識(shí)別任務(wù)。從400段包含4種動(dòng)作(行走、站立、躺臥、跛行)的視頻中提取出骨架信息,并將骨架序列送入ST-GCN(Spatial temporal graph convolutional networks)[16]網(wǎng)絡(luò)訓(xùn)練,ST-GCN利用時(shí)空?qǐng)D卷積來(lái)提取骨架序列間的時(shí)空信息,并將時(shí)空特征融合起來(lái),最后輸出動(dòng)作分類(lèi)結(jié)果。

圖2 總體技術(shù)路線(xiàn)Fig.2 Overview of the proposed method
ShuffleNetV2[17]為主干特征提取網(wǎng)絡(luò),結(jié)構(gòu)如圖3所示,其中Conv為卷積操作,DWConv(Depthwise convolution)為深度卷積。

圖3 ShuffleNetV2結(jié)構(gòu)Fig.3 Structure of ShuffleNetV2
分組卷積操作讓不同的卷積核學(xué)習(xí)不同的特征,從而提高模型的表達(dá)能力。左右分支連接后將輸出特征進(jìn)行通道混洗,從而達(dá)到不同通道間信息交換的目的,有利于增加模型的非線(xiàn)性表示能力。上述結(jié)構(gòu)在保持網(wǎng)絡(luò)準(zhǔn)確性的同時(shí),具有更高的計(jì)算效率和更小的模型參數(shù),故本研究將其作為主干網(wǎng)絡(luò)。
SimCC[18]在網(wǎng)絡(luò)中作為檢測(cè)頭,SimCC模塊采用坐標(biāo)分類(lèi)的思路,將不同坐標(biāo)值劃分為不同類(lèi)別,從水平與垂直維度將關(guān)鍵點(diǎn)坐標(biāo)進(jìn)行分類(lèi),從而實(shí)現(xiàn)關(guān)鍵點(diǎn)檢測(cè),其結(jié)構(gòu)如圖4所示。

圖4 SimCC結(jié)構(gòu)Fig.4 Structure of SimCC
在主干網(wǎng)絡(luò)提取特征時(shí),關(guān)鍵點(diǎn)由(n,H′,W′)展平至(n,H′×W′),即輸出n個(gè)關(guān)鍵點(diǎn)的一維向量。再通過(guò)線(xiàn)性投影將坐標(biāo)編碼為n個(gè)SimCC表征,表征后的坐標(biāo)可以通過(guò)兩條獨(dú)立的一維向量來(lái)描述:
p′=(round(xpk),round(ypk))
(1)
式中 round——線(xiàn)性投影
(xp,yp)——表征前的坐標(biāo)
p′——表征后的坐標(biāo)
k——縮放因子
經(jīng)過(guò)線(xiàn)性投影后,輸出的特征圖維數(shù)為W×k維和H×k維。縮放因子k(k>1)的作用是使一維向量長(zhǎng)度超過(guò)圖像邊長(zhǎng),關(guān)鍵點(diǎn)定位精度增強(qiáng)到亞像素級(jí)別。在坐標(biāo)解碼過(guò)程中,給定的第p個(gè)關(guān)鍵點(diǎn)表征輸入至僅一個(gè)線(xiàn)性層的水平和垂直坐標(biāo)分類(lèi)器。需將坐標(biāo)還原到圖像尺度,要將分類(lèi)的最大概率所在位置除以縮放因子,計(jì)算公式為
(2)

(Ox(i),Oy(i))——解碼前的位置坐標(biāo)
argmax——取最大值操作
與直接基于像素點(diǎn)回歸的模型不同,SimCC將定位問(wèn)題轉(zhuǎn)化為分類(lèi)問(wèn)題,可以避免回歸模型存在的訓(xùn)練難度高、容易受到噪聲和異常值影響等問(wèn)題,具有更高的精度和魯棒性。基于熱力圖的關(guān)鍵點(diǎn)檢測(cè)方法通過(guò)顯式地渲染高斯熱圖,讓模型輸出目標(biāo)概率分布。由于特征提取時(shí)需要進(jìn)行多次卷積和下采樣操作,通常導(dǎo)致生成的熱力圖尺寸小于圖像原尺寸,因此將坐標(biāo)映射回原圖時(shí)會(huì)存在不可避免的量化誤差。而SimCC采用兩個(gè)方向上、長(zhǎng)度大于原圖像尺寸的一維向量對(duì)關(guān)鍵點(diǎn)進(jìn)行表征,坐標(biāo)表征為數(shù)值,精度不受縮放影響,避免了量化誤差。
OKS(Object keypoint similarity)[19]是一種用于衡量關(guān)鍵點(diǎn)預(yù)測(cè)值與真實(shí)值間相似度的度量指標(biāo)。計(jì)算OKS時(shí)要首先提取關(guān)鍵點(diǎn)預(yù)測(cè)值與真實(shí)值間的特征向量,然后使用歐氏距離來(lái)計(jì)算兩個(gè)特征向量的相似度,基于這種相似度計(jì)算,可以進(jìn)行關(guān)鍵點(diǎn)的匹配和識(shí)別。OKSp的計(jì)算公式為
(3)
式中OKSp——第p個(gè)目標(biāo)的OKS
δ——用于選取可見(jiàn)點(diǎn)的計(jì)算函數(shù)
pi——第p個(gè)目標(biāo)的第i個(gè)關(guān)鍵點(diǎn)
dpi——關(guān)鍵點(diǎn)預(yù)測(cè)值與真實(shí)值間的歐氏距離
vpi——關(guān)鍵點(diǎn)的可見(jiàn)性
sp——目標(biāo)邊界框的面積
σi——第i個(gè)關(guān)鍵點(diǎn)標(biāo)注值和實(shí)際值間的標(biāo)準(zhǔn)偏差
模型的準(zhǔn)確度采用平均精度(Average precision,AP)來(lái)衡量,AP值越高,說(shuō)明模型的準(zhǔn)確度越高。OKS類(lèi)似于目標(biāo)檢測(cè)中的交并比(IOU)[20],用于計(jì)算關(guān)鍵點(diǎn)檢測(cè)的AP。當(dāng)OKS大于給定閾值T時(shí),檢測(cè)結(jié)果視為真陽(yáng)性,精度(Precision,P)指檢測(cè)結(jié)果真陽(yáng)性的比例,召回率(Recall,R)指所有真實(shí)標(biāo)注中的關(guān)鍵點(diǎn)被檢測(cè)到的比例,然后計(jì)算PR曲線(xiàn)與坐標(biāo)軸所圍面積即為AP。其中AP50表示OKS閾值為0.50時(shí)的AP,AP50:95表示在OKS閾值從0.50到0.95之間,步長(zhǎng)為0.05時(shí)的平均AP。
此外,本研究所提出的SimCC-ShuffleNetV2為輕量級(jí)模型,因此浮點(diǎn)運(yùn)算量(Floating point operations, FLOPs)、參數(shù)量(Params)與檢測(cè)速度作為重要的輕量化評(píng)估指標(biāo)也納入評(píng)價(jià)。浮點(diǎn)運(yùn)算量的計(jì)算方式是將各層參數(shù)量乘以輸入數(shù)據(jù)的維度,然后對(duì)所有層的結(jié)果求和。參數(shù)量表示模型中的參數(shù)數(shù)量,通常用于衡量模型的復(fù)雜度和容量。
本研究中共訓(xùn)練200輪次,網(wǎng)絡(luò)訓(xùn)練過(guò)程損失值與AP50的變化曲線(xiàn)如圖5所示。

圖5 訓(xùn)練過(guò)程Fig.5 Training process
SimCC-ShuffleNetV2的網(wǎng)絡(luò)參數(shù)空間較小且層數(shù)較低,訓(xùn)練過(guò)程中更容易找到全局或局部最優(yōu)解,故曲線(xiàn)收斂較快,當(dāng)?shù)螖?shù)達(dá)到50次左右時(shí),模型學(xué)習(xí)效果已經(jīng)達(dá)到飽和,關(guān)鍵點(diǎn)損失值穩(wěn)定在0.15左右,AP50穩(wěn)定在93%左右。
SimCC-ShuffleNetV2在測(cè)試集上的AP50:95為88.07%,AP50為97.76%,參數(shù)量為1.31×106,浮點(diǎn)運(yùn)算量為1.5×108,檢測(cè)速度為10.87 f/s。不同情況下關(guān)鍵點(diǎn)可視化效果如圖6所示,標(biāo)示出17個(gè)關(guān)鍵點(diǎn)并繪制出骨架。奶牛朝向攝像頭位于正面視角時(shí),關(guān)節(jié)位置會(huì)產(chǎn)生一定的變化,訓(xùn)練集中此類(lèi)圖像較少,但檢測(cè)效果同樣良好,表明模型的泛化能力較強(qiáng)。奶牛在躺臥姿態(tài)下,有些關(guān)節(jié)點(diǎn)會(huì)被遮擋,模型檢測(cè)時(shí)會(huì)預(yù)測(cè)被遮擋關(guān)鍵點(diǎn)的位置,雖然結(jié)果有一定偏離,但整體效果依然能準(zhǔn)確反映奶牛姿態(tài)。在遠(yuǎn)距離情況下,此時(shí)奶牛目標(biāo)較小,模型依然能準(zhǔn)確標(biāo)示出關(guān)鍵點(diǎn)位置,表明模型對(duì)小目標(biāo)同樣敏感。針對(duì)上述情況,一般采用尺度變換和多尺度融合技術(shù)來(lái)提高模型檢測(cè)的準(zhǔn)確性,而SimCC-ShuffleNetV2對(duì)正面視角、躺臥姿態(tài)與遠(yuǎn)距離情況下亦能準(zhǔn)確檢測(cè),表明模型具備良好的性能。

圖6 不同情況下的關(guān)鍵點(diǎn)檢測(cè)效果Fig.6 Keypoint detection effects in different situations
如圖7所示,虛線(xiàn)框所指的缺失關(guān)鍵點(diǎn)被錯(cuò)誤檢測(cè)在非奶牛身體部位。模型檢測(cè)效果較差的可能原因在于,本研究中數(shù)據(jù)集中包含的此類(lèi)圖像較少,模型可能會(huì)過(guò)擬合,缺失關(guān)鍵點(diǎn)被誤認(rèn)為是圖像中某些類(lèi)似的局部特征。此外,當(dāng)奶牛關(guān)鍵點(diǎn)缺失時(shí)造成的姿態(tài)約束條件、關(guān)節(jié)角度等先驗(yàn)信息缺失也可能會(huì)導(dǎo)致模型誤判。

圖7 關(guān)鍵點(diǎn)誤檢Fig.7 Error detection of keypoint
為了評(píng)估SimCC-ShuffleNetV2模型對(duì)奶牛關(guān)鍵點(diǎn)檢測(cè)的性能,在相同條件下,分別基于DeepPose、HRNet兩種經(jīng)典關(guān)鍵點(diǎn)檢測(cè)算法對(duì)同一數(shù)據(jù)集進(jìn)行訓(xùn)練,其中DeepPose為直接基于回歸的模型,HRNet為基于熱力圖的模型。采用AP50:95、浮點(diǎn)運(yùn)算量、參數(shù)量與檢測(cè)速度對(duì)訓(xùn)練完成后的模型進(jìn)行評(píng)估。3種檢測(cè)算法的性能指標(biāo)如表1所示。對(duì)比其結(jié)果可知,SimCC-ShuffleNetV2的AP分別比DeepPose和HRNet提高23.65、2.16個(gè)百分點(diǎn)。檢測(cè)速度比DeepPose減少7.44 f/s,比HRNet提高4.78 f/s。其參數(shù)量分別比DeepPose和HRNet減少2.23×107和2.72×107,浮點(diǎn)運(yùn)算量分別減少 8.93×109、1.718×1010。DeepPose直接基于回歸方式無(wú)需過(guò)多后處理且主干網(wǎng)絡(luò)為結(jié)構(gòu)簡(jiǎn)單的Alexnet[21],故檢測(cè)速度較快。但同時(shí)Alexnet的學(xué)習(xí)能力有限,而且直接在圖像像素點(diǎn)中回歸坐標(biāo)較為困難,故精度較低。HRNet能一直保持高分辨率的表征,生成的熱力圖尺寸也為高分辨率,預(yù)測(cè)的關(guān)鍵點(diǎn)在空間上更精確。但由于其復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu)帶來(lái)了巨大計(jì)算量從而導(dǎo)致檢測(cè)速度較慢。而SimCC-ShuffleNetV2在擁有最高準(zhǔn)確度的同時(shí)有較快的檢測(cè)速度,實(shí)現(xiàn)了精度與速度的良好平衡。

表1 不同關(guān)鍵點(diǎn)檢測(cè)算法性能比較Tab.1 Comparison of different keypoint detection models
主干網(wǎng)絡(luò)是用于特征提取的主要組件,為了對(duì)比不同主干網(wǎng)絡(luò)對(duì)模型性能的影響,保持SimCC為檢測(cè)頭,分別測(cè)試以Res-50[22]、ResNeSt-50[23]、MobileNetV2[24]作為主干網(wǎng)絡(luò)的模型性能。如表2所示,ShuffleNetV2為主干網(wǎng)絡(luò)時(shí)的AP分別比Res-50、ResNeSt-50和MobileNetV2提高1.96、3.87、3.16個(gè)百分點(diǎn),檢測(cè)速度分別提高5.14、4.19、3.05 f/s;參數(shù)量分別比Res-50、ResNeSt-50和MobileNetV2減少3.54×107、3.74×107、9.8×105,浮點(diǎn)運(yùn)算量分別少5.36×109、6.63×109、1.60×108。ShuffleNetV2為主干網(wǎng)絡(luò)時(shí),AP最高,浮點(diǎn)運(yùn)算量與參數(shù)量最小,檢測(cè)速度最快,說(shuō)明ShuffleNetV2能在保持與更大網(wǎng)絡(luò)相同精度的前提下,還能有更小的模型體積和浮點(diǎn)運(yùn)算量。且對(duì)比同為輕量化網(wǎng)絡(luò)的MobileNetV2,同樣有更出色的性能與速度。

表2 不同主干網(wǎng)絡(luò)性能比較Tab.2 Comparison of different backbones
為了評(píng)估不同檢測(cè)頭對(duì)模型性能的影響,保持ShuffleNetV2為主干網(wǎng)絡(luò),對(duì)比測(cè)試了以熱力圖為檢測(cè)頭的模型。其結(jié)果如表3所示,SimCC作檢測(cè)頭時(shí)比以熱力圖作為檢測(cè)頭時(shí)的AP提高2.03個(gè)百分點(diǎn),檢測(cè)速度提高3.97 f/s;參數(shù)量減少6.24×106,浮點(diǎn)運(yùn)算量減少1.22×109。此外,在SimCC檢測(cè)頭的浮點(diǎn)運(yùn)算量為3×106,參數(shù)量為5.6×104,相較于整體模型,其浮點(diǎn)運(yùn)算量與參數(shù)量可忽略不計(jì)。而基于熱力圖的檢測(cè)頭的浮點(diǎn)運(yùn)算量為1.24×109,在整個(gè)模型中占比為90.8%;參數(shù)量為6.29×106,在整個(gè)模型中占比為83.3%,基于熱力圖的檢測(cè)頭占據(jù)了網(wǎng)絡(luò)大部分的浮點(diǎn)運(yùn)算量與參數(shù)量,導(dǎo)致模型檢測(cè)速度較低。

表3 不同檢測(cè)頭的性能比較Tab.3 Comparison with Heatmap-based method
如圖8所示,熱力圖表征圖像中每一個(gè)關(guān)鍵點(diǎn)的概率分布。熱力圖由圖像進(jìn)行卷積和池化操作得到,需要大量的計(jì)算成本和內(nèi)存開(kāi)銷(xiāo)[25]。SimCC作為檢測(cè)頭無(wú)需高分辨的熱力圖即可實(shí)現(xiàn)良好的檢測(cè)效果,將關(guān)鍵點(diǎn)檢測(cè)問(wèn)題轉(zhuǎn)換為分類(lèi)問(wèn)題從而降低了計(jì)算成本和內(nèi)存開(kāi)銷(xiāo),可大幅提高模型的計(jì)算速度。

圖8 熱力圖表征Fig.8 Heatmap representation
為了驗(yàn)證SimCC-ShuffleNetV2的有效性,將模型用于奶牛運(yùn)動(dòng)視頻中提取出骨架序列,并送入ST-GCN網(wǎng)絡(luò)以實(shí)現(xiàn)動(dòng)作識(shí)別。人工篩選了400段視頻作為動(dòng)作識(shí)別的數(shù)據(jù),每段時(shí)長(zhǎng)約為(10±4)s,如圖9所示,動(dòng)作行為包含躺臥、站立、行走、跛行(每種動(dòng)作100段視頻)。

圖9 不同動(dòng)作行為Fig.9 Different actions
如圖10所示,ST-GCN是基于骨架序列的動(dòng)作識(shí)別方法,其中Attention(Spatial attention)為空間注意力機(jī)制,GCN(Graph convolutional network)為圖卷積網(wǎng)絡(luò),TCN(Temporal convolutional network)為時(shí)間卷積網(wǎng)絡(luò)。該模型使用圖卷積神經(jīng)網(wǎng)絡(luò)處理骨架視頻序列,然后使用CNN提取特征,最后通過(guò)分類(lèi)器選取具有最高概率的類(lèi)別。分類(lèi)準(zhǔn)確率是衡量ST-GCN效果的主要指標(biāo),即正確預(yù)測(cè)視頻樣本占視頻樣本總數(shù)的百分比。

圖10 ST-GCN結(jié)構(gòu)Fig.10 Structure of ST-GCN
如圖11所示,動(dòng)作分類(lèi)結(jié)果標(biāo)示在視頻左上角,ST-GCN能對(duì)不同的動(dòng)作進(jìn)行有效的區(qū)分。同時(shí)SimCC-ShuffleNetV2提取的骨架序列送入訓(xùn)練后,ST-GCN在測(cè)試集上的分類(lèi)準(zhǔn)確率為84.56%。表明SimCC-ShuffleNetV2能良好地表征奶牛的姿態(tài)以供ST-GCN網(wǎng)絡(luò)學(xué)習(xí)。

圖11 動(dòng)作識(shí)別效果Fig.11 Action detection effects
(1)ShuffleNetV2作為輕量化網(wǎng)絡(luò),其特有結(jié)構(gòu)能保持與大模型相當(dāng)精度的同時(shí)更加輕量,有利于實(shí)現(xiàn)高效的特征提取,更加適合于實(shí)際應(yīng)用場(chǎng)景。
(2)SimCC將關(guān)鍵點(diǎn)檢測(cè)問(wèn)題轉(zhuǎn)換為分類(lèi)問(wèn)題,從而降低了問(wèn)題的復(fù)雜度,更加簡(jiǎn)單和高效。相較于基于回歸的方式,模型精度更高;相較于基于熱力圖的方式,模型能在保持相當(dāng)精度的情況下更加輕量。
(3)ST-GCN的分類(lèi)準(zhǔn)確率達(dá)到了84.56%,表明SimCC-ShuffleNetV2是良好的關(guān)鍵點(diǎn)提取器,在動(dòng)作識(shí)別任務(wù)中有良好的應(yīng)用前景。
農(nóng)業(yè)機(jī)械學(xué)報(bào)2023年10期