?

基于SimCC-ShuffleNetV2的輕量化奶牛關鍵點檢測方法

2023-11-23 04:38宋懷波華志新馬寶玲溫毓晨孔祥鳳許興時
農業機械學報 2023年10期
關鍵詞:關鍵點骨架姿態

宋懷波 華志新 馬寶玲 溫毓晨 孔祥鳳 許興時

(1.西北農林科技大學機械與電子工程學院, 陜西楊凌 712100;2.農業農村部農業物聯網重點實驗室, 陜西楊凌 712100)

0 引言

奶牛關鍵點指奶牛身體部位重要的關節位置,如頭部、肩部、腿關節等[1]。關鍵點相連的骨架作為姿態的最直觀體現,可以幫助實現奶牛動作行為的非接觸識別,從而為姿態表征的疾病預警提供重要技術支持。同時,關鍵點檢測還是牲畜體尺測量與身體部位分割的前置任務,可為奶牛的體重與體況分析提供更為高效的數據支撐。綜上,開展奶牛關鍵點檢測技術的研究和應用,將有助于提高養殖效率和健康水平,具有重要研究價值[2]。

傳統關鍵點檢測方法通過人工提取圖像或視頻中的關鍵點特征,如關節點之間的空間位置關系等,再通過機器學習算法進行學習和匹配其特征及規律[3]。JIA等[4]通過骨架對奶牛不同身體部位進行劃分用以評估其清潔度。該研究在獲得奶牛骨架圖的過程中采取特征距離變換,細化與特征檢測等步驟,然后計算相鄰的骨架路徑,并與數據庫中的模板進行相似度匹配以獲得最佳匹配結果,最后確定每個骨骼分支所屬的類別后,將身體分為不同部分。結果表明,側視圖與后視圖的平均身體部位分割精度分別為96%和91%,為奶牛的分割任務提供了借鑒。但該骨架提取方法受人為設計特征完備性較差、機器學習算法的特征提取和泛化能力較弱的影響,在實際生產過程中難以應用。

隨著深度學習的應用,關鍵點檢測技術取得了較多進展?;诰矸e神經網絡(Convolutional neural networks,CNN)的方法[5]無需手動設計特征,從整幅圖像中學習關鍵點表征,可以實現端對端的檢測,具有良好的特征提取能力和泛化能力,常見的關鍵點檢測網絡包括Hourglass[6]、 DeepPose[7]、 OpenPose[8]、HRNet[9]等。諸多研究也將深度學習網絡應用于奶牛關鍵點檢測中,RUSSELLO等[10]使用T-LEAP姿態估計模型,將LEAP模型修改為時間序列模型,從圖像序列中檢測關鍵點從而預估奶牛姿態,試驗結果表明,在奶牛目標上的平均正確關鍵點的預估比例(Percentage of correct keypoints,PCK)為93.8%。同時,奶牛關鍵點檢測是實現體尺測量、動作識別等任務的基礎[11]。其中,體尺測量用于評估牲畜體型的大小,體尺關鍵點檢測的準確度直接影響體尺測量的精度。趙宇亮等[12]為了對豬只的5項體尺指標進行非接觸式測量,首先在DeepLabCut上選取EfficientNet-b6模型作為最優主干網絡進行豬只體尺關鍵點檢測,其測試集誤差為5.13像素;在此基礎上,通過3D坐標轉換實現深度圖像上關鍵點坐標的映射,并對離群特征點進行優化,最后提取體尺曲線進行計算。奶牛關鍵點連接的骨架是姿態的最直觀表征,奶牛的姿態數據可用于統計其基本運動行為時間。LI等[13]為了準確識別奶牛的基本運動行為(走、站、躺),利用HRNet提取奶牛骨架信息,在平行的二維卷積特征中以熱圖的形式添加對應的奶牛關鍵點與骨架信息,并選取了400個包含該4種行為的奶牛視頻進行訓練與測試,結果表明,經過5次交叉驗證,最終分類精度為91.80%。

上述關鍵點檢測研究大多基于手工提取,難以實際應用;或者依賴于DeepLabCut[14]平臺,泛化性不足,且無法解決多目標間關鍵點的連接問題。目前基于深度學習的主流算法具備較高的準確率,但其網絡復雜程度也較高。為解決上述問題,本研究借鑒ShuffleNetV2模型的輕量化性能及SimCC所具有的高效簡單的關鍵點坐標分類能力,提出SimCC-ShuffleNetV2輕量化模型,以期構建一種實時性強、精度高、魯棒性強的奶牛關鍵點檢測方法,為奶牛動作識別等研究奠定基礎。

1 材料與方法

1.1 材料

本研究視頻數據采集于陜西省楊凌科元克隆有限公司,采用DS-2DM1-714型圓頂攝像機(??低?進行拍攝,攝像機速率為25 f/s,分辨率為704像素×480像素。如圖1所示,攝像機架設于背靠牛棚的長走廊外,目標與攝像機之間的圍欄遮擋了一些關鍵點,會對骨架提取任務造成一定的干擾。

圖1 數據采集與標注方式Fig.1 Data collection and annotation methods1.鼻子 2.額頭 3.頸根 4.右前腿根 5.左前腿根 6.右前膝 7.左前膝 8.右前蹄 9.左前蹄 10.背部 11.尾根 12.右后腿根 13.左后腿根 14.右后膝 15.左后膝 16.右后蹄 17.左后蹄

如圖1所示,本研究以最大的動物姿態數據集AP-10k為參考[15],設計了奶牛關鍵點及骨架結構。從視頻中截取1 800幅圖像用于關鍵點檢測任務,為了有效模擬奶牛姿態的變化,采用鏡像翻轉的方式擴充數據集至3 600幅。標注奶牛的邊界框與關鍵點后將其保存為COCO格式,并按照6∶2∶2的比例分為訓練集、驗證集和測試集。

由于奶牛動作及姿態變化多樣且易受遮擋、光照等因素影響,奶牛關鍵點檢測的準確性不高。為了增強模型的魯棒性,采集了不同情況的奶牛圖像:①正面視角:奶牛朝正面攝像頭時,關節位置會產生一定的形變。②關鍵點缺失:奶牛目標位于圖像邊緣時,部分關鍵點會缺失。③躺臥姿態:奶牛在躺臥姿態下,某些關節點會被遮擋。④小目標:拍攝距離較遠時會造成奶牛目標在圖像中占據的比例較小。訓練集和測試集中均包含了各種影響因素下的奶牛圖像,且在訓練集和測試集中的比例基本保持一致。

1.2 試驗平臺

試驗在Windows 10系統下進行,處理器為Intel(R) Core(TM) i5-11400F,圖形處理器為Nvidia RTX2080Ti。深度學習框架為PyTorch,編程平臺為PyCharm,編程語言為Python,所有算法均在相同環境下運行。

1.3 總體技術路線

本研究總體技術路線如圖2所示,首先將圖像送入SimCC-ShuffleNetV2模型,關鍵點檢測過程類似于編解碼,ShuffleNetV2用于提取并編碼17個關鍵點表征。SimCC用于對水平軸和垂直軸執行坐標分類,最后解碼出關鍵點坐標。為了驗證模型的有效性,將SimCC-ShuffleNetV2應用于行為識別任務。從400段包含4種動作(行走、站立、躺臥、跛行)的視頻中提取出骨架信息,并將骨架序列送入ST-GCN(Spatial temporal graph convolutional networks)[16]網絡訓練,ST-GCN利用時空圖卷積來提取骨架序列間的時空信息,并將時空特征融合起來,最后輸出動作分類結果。

圖2 總體技術路線Fig.2 Overview of the proposed method

1.4 ShuffleNetV2網絡結構

ShuffleNetV2[17]為主干特征提取網絡,結構如圖3所示,其中Conv為卷積操作,DWConv(Depthwise convolution)為深度卷積。

圖3 ShuffleNetV2結構Fig.3 Structure of ShuffleNetV2

分組卷積操作讓不同的卷積核學習不同的特征,從而提高模型的表達能力。左右分支連接后將輸出特征進行通道混洗,從而達到不同通道間信息交換的目的,有利于增加模型的非線性表示能力。上述結構在保持網絡準確性的同時,具有更高的計算效率和更小的模型參數,故本研究將其作為主干網絡。

1.5 SimCC結構

SimCC[18]在網絡中作為檢測頭,SimCC模塊采用坐標分類的思路,將不同坐標值劃分為不同類別,從水平與垂直維度將關鍵點坐標進行分類,從而實現關鍵點檢測,其結構如圖4所示。

圖4 SimCC結構Fig.4 Structure of SimCC

在主干網絡提取特征時,關鍵點由(n,H′,W′)展平至(n,H′×W′),即輸出n個關鍵點的一維向量。再通過線性投影將坐標編碼為n個SimCC表征,表征后的坐標可以通過兩條獨立的一維向量來描述:

p′=(round(xpk),round(ypk))

(1)

式中 round——線性投影

(xp,yp)——表征前的坐標

p′——表征后的坐標

k——縮放因子

經過線性投影后,輸出的特征圖維數為W×k維和H×k維??s放因子k(k>1)的作用是使一維向量長度超過圖像邊長,關鍵點定位精度增強到亞像素級別。在坐標解碼過程中,給定的第p個關鍵點表征輸入至僅一個線性層的水平和垂直坐標分類器。需將坐標還原到圖像尺度,要將分類的最大概率所在位置除以縮放因子,計算公式為

(2)

(Ox(i),Oy(i))——解碼前的位置坐標

argmax——取最大值操作

與直接基于像素點回歸的模型不同,SimCC將定位問題轉化為分類問題,可以避免回歸模型存在的訓練難度高、容易受到噪聲和異常值影響等問題,具有更高的精度和魯棒性?;跓崃D的關鍵點檢測方法通過顯式地渲染高斯熱圖,讓模型輸出目標概率分布。由于特征提取時需要進行多次卷積和下采樣操作,通常導致生成的熱力圖尺寸小于圖像原尺寸,因此將坐標映射回原圖時會存在不可避免的量化誤差。而SimCC采用兩個方向上、長度大于原圖像尺寸的一維向量對關鍵點進行表征,坐標表征為數值,精度不受縮放影響,避免了量化誤差。

1.6 關鍵點檢測評價指標

OKS(Object keypoint similarity)[19]是一種用于衡量關鍵點預測值與真實值間相似度的度量指標。計算OKS時要首先提取關鍵點預測值與真實值間的特征向量,然后使用歐氏距離來計算兩個特征向量的相似度,基于這種相似度計算,可以進行關鍵點的匹配和識別。OKSp的計算公式為

(3)

式中OKSp——第p個目標的OKS

δ——用于選取可見點的計算函數

pi——第p個目標的第i個關鍵點

dpi——關鍵點預測值與真實值間的歐氏距離

vpi——關鍵點的可見性

sp——目標邊界框的面積

σi——第i個關鍵點標注值和實際值間的標準偏差

模型的準確度采用平均精度(Average precision,AP)來衡量,AP值越高,說明模型的準確度越高。OKS類似于目標檢測中的交并比(IOU)[20],用于計算關鍵點檢測的AP。當OKS大于給定閾值T時,檢測結果視為真陽性,精度(Precision,P)指檢測結果真陽性的比例,召回率(Recall,R)指所有真實標注中的關鍵點被檢測到的比例,然后計算PR曲線與坐標軸所圍面積即為AP。其中AP50表示OKS閾值為0.50時的AP,AP50:95表示在OKS閾值從0.50到0.95之間,步長為0.05時的平均AP。

此外,本研究所提出的SimCC-ShuffleNetV2為輕量級模型,因此浮點運算量(Floating point operations, FLOPs)、參數量(Params)與檢測速度作為重要的輕量化評估指標也納入評價。浮點運算量的計算方式是將各層參數量乘以輸入數據的維度,然后對所有層的結果求和。參數量表示模型中的參數數量,通常用于衡量模型的復雜度和容量。

2 結果與分析

2.1 SimCC-ShuffleNetV2訓練結果

本研究中共訓練200輪次,網絡訓練過程損失值與AP50的變化曲線如圖5所示。

圖5 訓練過程Fig.5 Training process

SimCC-ShuffleNetV2的網絡參數空間較小且層數較低,訓練過程中更容易找到全局或局部最優解,故曲線收斂較快,當迭代次數達到50次左右時,模型學習效果已經達到飽和,關鍵點損失值穩定在0.15左右,AP50穩定在93%左右。

2.2 關鍵點檢測效果

SimCC-ShuffleNetV2在測試集上的AP50:95為88.07%,AP50為97.76%,參數量為1.31×106,浮點運算量為1.5×108,檢測速度為10.87 f/s。不同情況下關鍵點可視化效果如圖6所示,標示出17個關鍵點并繪制出骨架。奶牛朝向攝像頭位于正面視角時,關節位置會產生一定的變化,訓練集中此類圖像較少,但檢測效果同樣良好,表明模型的泛化能力較強。奶牛在躺臥姿態下,有些關節點會被遮擋,模型檢測時會預測被遮擋關鍵點的位置,雖然結果有一定偏離,但整體效果依然能準確反映奶牛姿態。在遠距離情況下,此時奶牛目標較小,模型依然能準確標示出關鍵點位置,表明模型對小目標同樣敏感。針對上述情況,一般采用尺度變換和多尺度融合技術來提高模型檢測的準確性,而SimCC-ShuffleNetV2對正面視角、躺臥姿態與遠距離情況下亦能準確檢測,表明模型具備良好的性能。

圖6 不同情況下的關鍵點檢測效果Fig.6 Keypoint detection effects in different situations

2.3 關鍵點誤檢分析

如圖7所示,虛線框所指的缺失關鍵點被錯誤檢測在非奶牛身體部位。模型檢測效果較差的可能原因在于,本研究中數據集中包含的此類圖像較少,模型可能會過擬合,缺失關鍵點被誤認為是圖像中某些類似的局部特征。此外,當奶牛關鍵點缺失時造成的姿態約束條件、關節角度等先驗信息缺失也可能會導致模型誤判。

圖7 關鍵點誤檢Fig.7 Error detection of keypoint

3 結果與討論

3.1 不同關鍵點檢測算法性能比較

為了評估SimCC-ShuffleNetV2模型對奶牛關鍵點檢測的性能,在相同條件下,分別基于DeepPose、HRNet兩種經典關鍵點檢測算法對同一數據集進行訓練,其中DeepPose為直接基于回歸的模型,HRNet為基于熱力圖的模型。采用AP50:95、浮點運算量、參數量與檢測速度對訓練完成后的模型進行評估。3種檢測算法的性能指標如表1所示。對比其結果可知,SimCC-ShuffleNetV2的AP分別比DeepPose和HRNet提高23.65、2.16個百分點。檢測速度比DeepPose減少7.44 f/s,比HRNet提高4.78 f/s。其參數量分別比DeepPose和HRNet減少2.23×107和2.72×107,浮點運算量分別減少 8.93×109、1.718×1010。DeepPose直接基于回歸方式無需過多后處理且主干網絡為結構簡單的Alexnet[21],故檢測速度較快。但同時Alexnet的學習能力有限,而且直接在圖像像素點中回歸坐標較為困難,故精度較低。HRNet能一直保持高分辨率的表征,生成的熱力圖尺寸也為高分辨率,預測的關鍵點在空間上更精確。但由于其復雜的網絡結構帶來了巨大計算量從而導致檢測速度較慢。而SimCC-ShuffleNetV2在擁有最高準確度的同時有較快的檢測速度,實現了精度與速度的良好平衡。

表1 不同關鍵點檢測算法性能比較Tab.1 Comparison of different keypoint detection models

3.2 不同主干網絡性能比較

主干網絡是用于特征提取的主要組件,為了對比不同主干網絡對模型性能的影響,保持SimCC為檢測頭,分別測試以Res-50[22]、ResNeSt-50[23]、MobileNetV2[24]作為主干網絡的模型性能。如表2所示,ShuffleNetV2為主干網絡時的AP分別比Res-50、ResNeSt-50和MobileNetV2提高1.96、3.87、3.16個百分點,檢測速度分別提高5.14、4.19、3.05 f/s;參數量分別比Res-50、ResNeSt-50和MobileNetV2減少3.54×107、3.74×107、9.8×105,浮點運算量分別少5.36×109、6.63×109、1.60×108。ShuffleNetV2為主干網絡時,AP最高,浮點運算量與參數量最小,檢測速度最快,說明ShuffleNetV2能在保持與更大網絡相同精度的前提下,還能有更小的模型體積和浮點運算量。且對比同為輕量化網絡的MobileNetV2,同樣有更出色的性能與速度。

表2 不同主干網絡性能比較Tab.2 Comparison of different backbones

3.3 不同檢測頭性能比較

為了評估不同檢測頭對模型性能的影響,保持ShuffleNetV2為主干網絡,對比測試了以熱力圖為檢測頭的模型。其結果如表3所示,SimCC作檢測頭時比以熱力圖作為檢測頭時的AP提高2.03個百分點,檢測速度提高3.97 f/s;參數量減少6.24×106,浮點運算量減少1.22×109。此外,在SimCC檢測頭的浮點運算量為3×106,參數量為5.6×104,相較于整體模型,其浮點運算量與參數量可忽略不計。而基于熱力圖的檢測頭的浮點運算量為1.24×109,在整個模型中占比為90.8%;參數量為6.29×106,在整個模型中占比為83.3%,基于熱力圖的檢測頭占據了網絡大部分的浮點運算量與參數量,導致模型檢測速度較低。

表3 不同檢測頭的性能比較Tab.3 Comparison with Heatmap-based method

如圖8所示,熱力圖表征圖像中每一個關鍵點的概率分布。熱力圖由圖像進行卷積和池化操作得到,需要大量的計算成本和內存開銷[25]。SimCC作為檢測頭無需高分辨的熱力圖即可實現良好的檢測效果,將關鍵點檢測問題轉換為分類問題從而降低了計算成本和內存開銷,可大幅提高模型的計算速度。

圖8 熱力圖表征Fig.8 Heatmap representation

3.4 基于ST-GCN的奶牛動作識別應用

為了驗證SimCC-ShuffleNetV2的有效性,將模型用于奶牛運動視頻中提取出骨架序列,并送入ST-GCN網絡以實現動作識別。人工篩選了400段視頻作為動作識別的數據,每段時長約為(10±4)s,如圖9所示,動作行為包含躺臥、站立、行走、跛行(每種動作100段視頻)。

圖9 不同動作行為Fig.9 Different actions

如圖10所示,ST-GCN是基于骨架序列的動作識別方法,其中Attention(Spatial attention)為空間注意力機制,GCN(Graph convolutional network)為圖卷積網絡,TCN(Temporal convolutional network)為時間卷積網絡。該模型使用圖卷積神經網絡處理骨架視頻序列,然后使用CNN提取特征,最后通過分類器選取具有最高概率的類別。分類準確率是衡量ST-GCN效果的主要指標,即正確預測視頻樣本占視頻樣本總數的百分比。

圖10 ST-GCN結構Fig.10 Structure of ST-GCN

如圖11所示,動作分類結果標示在視頻左上角,ST-GCN能對不同的動作進行有效的區分。同時SimCC-ShuffleNetV2提取的骨架序列送入訓練后,ST-GCN在測試集上的分類準確率為84.56%。表明SimCC-ShuffleNetV2能良好地表征奶牛的姿態以供ST-GCN網絡學習。

圖11 動作識別效果Fig.11 Action detection effects

4 結論

(1)ShuffleNetV2作為輕量化網絡,其特有結構能保持與大模型相當精度的同時更加輕量,有利于實現高效的特征提取,更加適合于實際應用場景。

(2)SimCC將關鍵點檢測問題轉換為分類問題,從而降低了問題的復雜度,更加簡單和高效。相較于基于回歸的方式,模型精度更高;相較于基于熱力圖的方式,模型能在保持相當精度的情況下更加輕量。

(3)ST-GCN的分類準確率達到了84.56%,表明SimCC-ShuffleNetV2是良好的關鍵點提取器,在動作識別任務中有良好的應用前景。

猜你喜歡
關鍵點骨架姿態
淺談管狀骨架噴涂方法
聚焦金屬關鍵點
肉兔育肥抓好七個關鍵點
攀爬的姿態
骨架密度對炭/炭多孔骨架壓力浸滲銅的影響
全新一代宋的新姿態
跑與走的姿態
醫聯體要把握三個關鍵點
內支撐骨架封抽技術在突出煤層瓦斯抽采中的應用
鎖定兩個關鍵點——我這樣教《送考》
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合