李雅薇 孟 娟 杜 海 朱珈緣 馬媛媛
(1.大連海洋大學(xué)信息工程學(xué)院 大連 116024)(2.大連理工大學(xué)海岸和近海工程國家重點(diǎn)實(shí)驗(yàn)室 大連 116024)
隨著計(jì)算機(jī)水平與科技水平的不斷提高,動作捕捉系統(tǒng)越來越多的出現(xiàn)在人們的日常生活和工作中。如影視游戲動畫制作,機(jī)器人運(yùn)動操控,虛擬角色互動,體育訓(xùn)練中捕捉運(yùn)動數(shù)據(jù),醫(yī)療康復(fù)訓(xùn)練中的運(yùn)動障礙康復(fù),人體實(shí)時連續(xù)健康監(jiān)測等方面。目前,比較常見的動作捕捉方法主要可以分為兩類:光學(xué)式和慣性式動作捕捉方法。本文主要探討的是光學(xué)式動作捕捉方法。該系統(tǒng)更多地將光學(xué)球形標(biāo)識物(Marker點(diǎn))標(biāo)記在運(yùn)動的物體上,通過攝像機(jī)去確定光學(xué)標(biāo)識物的空間位置進(jìn)而去實(shí)現(xiàn)動作捕捉,從而獲取該物體的運(yùn)動軌跡。因此,圓形標(biāo)記點(diǎn)的識別至關(guān)重要,對圓形標(biāo)記的識別也就成為了現(xiàn)下熱門的研究方向[1]。雖然目前市場上已有很多相關(guān)的動作捕捉系統(tǒng),但基于簡單特征Marker點(diǎn)的動作捕捉系統(tǒng)在復(fù)雜環(huán)境應(yīng)用時,尤其是環(huán)境反光物體較多時,依然存在許多不足,有待完善?,F(xiàn)有的研究大多集中在研究Marker 點(diǎn)3D重建數(shù)據(jù)[2]的精度和應(yīng)用拓展方面,對于前期抗環(huán)境干擾、識別精度、速度以及穩(wěn)定性方面仍需提高。識別的結(jié)果將直接影響到動作捕捉系統(tǒng)在后續(xù)動作的準(zhǔn)確性,因此該項(xiàng)研究就變得尤為重要[3~6]。那么如何在較為復(fù)雜的背景中快速、準(zhǔn)確、穩(wěn)定地識別Marker點(diǎn)就成為了現(xiàn)在急需解決的問題。
動捕系統(tǒng)一般配備紅外補(bǔ)光燈,在簡單背景下,目標(biāo)對比度較高,可在球形物識別算法中利用圓形特征來提取目標(biāo),如采用霍夫(Hough)變換檢測方法。首先對圖像進(jìn)行圖像增強(qiáng)[7]、邊緣檢測算子以及圖像閾值化等預(yù)處理操作,再利用Xu 等提出的霍夫變換的基本思想進(jìn)行圓形檢測[8]。霍夫變換對于目標(biāo)識別物體的邊界存在噪聲或者邊緣連接的不夠緊密時具有很好的魯棒性和容錯性。陳令剛等[9]通過對圖像進(jìn)行了Canny算子的邊緣檢測及閾值化處理,在一定程度上提高了在復(fù)雜背景中圖像的識別率,但前期工作量較大,使用起來較為復(fù)雜;梁敏健等[10]利用HOG-Gabor 特征融合的方法去獲取特征向量,再利用Softmax 分類器從而實(shí)現(xiàn)對目標(biāo)體的識別。在一定程度上提高了對目標(biāo)物體的識別準(zhǔn)確率,但是相對于原模型降低了魯棒性。隨著計(jì)算機(jī)行業(yè)的飛速發(fā)展,雖然傳統(tǒng)的目標(biāo)檢測方法也在不斷完善改進(jìn),但是仍存在計(jì)算量較大以及操作復(fù)雜難度較高的缺點(diǎn)。
近幾年隨著卷積神經(jīng)網(wǎng)絡(luò)的快速發(fā)展以及運(yùn)用,基于深度學(xué)習(xí)和機(jī)器學(xué)習(xí)的目標(biāo)檢測算法映入大眾的眼簾,也逐漸地替代了傳統(tǒng)目標(biāo)檢測的算法。在交通標(biāo)志識別、人臉識別等常用的目標(biāo)識別中,一般有用到RCNN 算法、SSD 算法、SPP 算法、YOLO 算法等。但在動作捕捉系統(tǒng)中,還未進(jìn)行算法的應(yīng)用與優(yōu)化。通過對比上述算法的優(yōu)劣發(fā)現(xiàn),所需識別的圓形目標(biāo)(Marker點(diǎn))較小,可以考慮采用YOLO算法或者SSD算法。隨著YOLO算法的不斷改進(jìn),YOLO 算法也從v1 升級到了v5。其中YO?LOv3 算法不僅速度快,而且準(zhǔn)確率高,檢測小物體的能力也得到了很大的提升。鄧天民[11]等通過改進(jìn)Darknet53 網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)而減少迭代時的計(jì)算量,使其在檢測識別中提高了檢測速度,但也發(fā)現(xiàn)訓(xùn)練后的模型較大,不適合用于實(shí)際的動作捕捉系統(tǒng)中。YOLOv5 算法中的5s 其網(wǎng)絡(luò)最小,AP 精度最低,并且識別速度可達(dá)到140FPS,線上分析效果可觀,能夠直接對單個圖像,批處理圖像,視頻甚至網(wǎng)絡(luò)攝像頭端口輸出進(jìn)行有效推理,嵌入式設(shè)備也可以使用。
綜上所述,本文針對動作捕捉在復(fù)雜背景下應(yīng)用時的目標(biāo)識別問題,提出一種半監(jiān)督訓(xùn)練的圓形標(biāo)記點(diǎn)識別方法,其中包括對YOLOv5算法的5s網(wǎng)絡(luò)進(jìn)行動捕應(yīng)用適應(yīng)性方面的改造(如CSP結(jié)構(gòu)),以在保持計(jì)算負(fù)載不增加的情況下,提高特征提取能力。同時,對模型進(jìn)行剪枝優(yōu)化,實(shí)現(xiàn)模型輕量化。在最后實(shí)驗(yàn)環(huán)節(jié),本文選用大連理工大學(xué)海岸和近海工程國家重點(diǎn)實(shí)驗(yàn)室所研制的非接觸式六自由度運(yùn)動測量系統(tǒng)中的數(shù)據(jù)集來進(jìn)行測試,以此驗(yàn)證本文改進(jìn)的算法的準(zhǔn)確性和實(shí)用性。
傳統(tǒng)的機(jī)器學(xué)習(xí)技術(shù)主要分為兩大類:無監(jiān)督學(xué)習(xí)和監(jiān)督學(xué)習(xí)。無監(jiān)督學(xué)習(xí)使用的是未標(biāo)記的數(shù)據(jù)集,而監(jiān)督學(xué)習(xí)則是使用已經(jīng)標(biāo)記的數(shù)據(jù)集。但在處理現(xiàn)實(shí)問題中,通常需要人工對數(shù)據(jù)集進(jìn)行標(biāo)記,需要耗費(fèi)大量人工和時間,且只能得到小部分的帶有標(biāo)記的數(shù)據(jù)集。這就促使了使用標(biāo)記樣本和未標(biāo)記樣本的半監(jiān)督學(xué)習(xí)技術(shù)的迅速發(fā)展。由于數(shù)據(jù)集較大,所以本文選擇使用半監(jiān)督學(xué)習(xí)中的偽標(biāo)簽標(biāo)記法對數(shù)據(jù)進(jìn)行標(biāo)記。STAC[12]提出了一個基于Hard Pseudo Label 的半監(jiān)督目標(biāo)檢測算法,如圖1 可示。首先利用標(biāo)記好的數(shù)據(jù)集訓(xùn)練出一個Teacher 模型生成偽標(biāo)簽,再將剩余沒有標(biāo)記的數(shù)據(jù)集輸入到Teacher 網(wǎng)絡(luò)中,得到大量的預(yù)測結(jié)果目標(biāo)框。這時利用非極大抑制去消除所生成的冗余目標(biāo)框,最后使用閾值來挑選高置信度的偽標(biāo)簽。最后利用圖像增強(qiáng)的方法,將偽標(biāo)簽和未標(biāo)記的圖像相結(jié)合,計(jì)算出損失函數(shù)。本實(shí)驗(yàn)收集到數(shù)據(jù)集共有500 張圖片,需要用YOLO-TXT 格式進(jìn)行標(biāo)記。首先利用labelimg 軟件對小部分?jǐn)?shù)據(jù)進(jìn)行標(biāo)記,即選擇100 張圖像來進(jìn)行人工標(biāo)記,標(biāo)記結(jié)束后得到有標(biāo)簽的數(shù)據(jù),利用有標(biāo)簽的數(shù)據(jù)進(jìn)行線性訓(xùn)練,得到一個較理想的模型之后,在無標(biāo)簽數(shù)據(jù)上進(jìn)行推理,得到偽標(biāo)簽,并使用閾值過濾掉分?jǐn)?shù)較低的目標(biāo)框,然后利用推理得到的偽標(biāo)簽與人工標(biāo)記的標(biāo)簽進(jìn)行合并,再次送入模型進(jìn)行訓(xùn)練。訓(xùn)練結(jié)束后的模型在測試集上進(jìn)行評估,同時利用此時的模型重新在偽標(biāo)簽數(shù)據(jù)集上進(jìn)行推理,再重新生成偽標(biāo)簽并進(jìn)行閾值的過濾,重復(fù)以上過程直到模型在測試集中的分?jǐn)?shù)不再上升為止。這樣就大幅度減少了人工標(biāo)注的時間,同時也可以得到較好的標(biāo)記數(shù)據(jù)集。
圖1 STAC半監(jiān)督目標(biāo)檢測算法示意圖
YOLOv5 模型[13~14]框架如圖2 可示,主體部分由Backbone、Neck、Head 三個部分組成。按照網(wǎng)絡(luò)深度大小和特征圖寬度大小分為YOLOv5s、YO?LOv5m、YOLOv5l。
圖2 YOLOv5模型框架
Backone 是YOLOv5 的骨干結(jié)構(gòu),主要采用的是Focus結(jié)構(gòu),CSPnet結(jié)構(gòu)。Focus結(jié)構(gòu)將輸入的圖像在縱向和橫向間隔切片之后再進(jìn)行拼接,跟在卷積下采樣相比較,F(xiàn)ocus 結(jié)構(gòu)在輸出深度方面提升了4 倍,這樣就可以保留更多的圖像信息。同時YOLOv5 也借鑒了CSPnet 的設(shè)計(jì)思路,在網(wǎng)絡(luò)中設(shè)計(jì)存在兩種csp 結(jié)構(gòu),一種是應(yīng)用在主干網(wǎng)絡(luò)中的csp1,一種是應(yīng)用在Neck 中的csp2。CSPnet 使用跨階段局部網(wǎng)絡(luò),緩解了以往需要大量推理計(jì)算的問題,增強(qiáng)了cnn 的學(xué)習(xí)能力,能夠在輕量化的同時保持準(zhǔn)確性,主要是通過將梯度變化從頭到尾的集成到特征圖中,在減少了計(jì)算量的同時可以保持準(zhǔn)確率。隨著卷積神經(jīng)網(wǎng)絡(luò)Backbone 不斷展示出更強(qiáng)的多尺度表示能力,從而在廣泛的應(yīng)用中實(shí)現(xiàn)一致的性能提升。大多數(shù)現(xiàn)有方法以分層方式表示多尺度特征,這樣就可以在運(yùn)算量較小的情況下去識別目標(biāo)物。
Neck 的核心部分為FPN(Feature Pyramid Net?works,特征金字塔)結(jié)構(gòu)和PAN(Path Aggregation Net,路徑聚合網(wǎng)絡(luò))結(jié)構(gòu)。FPN和PAN兩種結(jié)構(gòu)充分的實(shí)現(xiàn)了高層特征與低層特征的融合與互補(bǔ)。其中FPN 結(jié)構(gòu)是將高層的大目標(biāo)的類別特征向低層傳遞,PAN 結(jié)構(gòu)則是將低層的大目標(biāo)的類別、位置特征和小目標(biāo)的類別、位置特征向上傳遞,二者相互補(bǔ)充并克服各自局限性,強(qiáng)化模型特征提取能力。
傳統(tǒng)的CNN 網(wǎng)絡(luò)只是將最高層特征輸入檢測層中,這樣就會導(dǎo)致存在小目標(biāo)特征在多次傳遞后特征丟失,導(dǎo)致識別不準(zhǔn)確的現(xiàn)象。而在YOLOv5中,Head 作為其檢測結(jié)構(gòu)部分,其具有三個檢測頭部分,分別對應(yīng)小目標(biāo)檢測、中目標(biāo)檢測、大目標(biāo)檢測。這樣就能有效地克服了特征局限性所帶來的問題。
在自然場景中,許多視覺任務(wù)在多尺度上標(biāo)示特征。在最新的進(jìn)展中,基礎(chǔ)的卷積神經(jīng)網(wǎng)絡(luò)展現(xiàn)了更強(qiáng)的多尺度表示能力,然而大多數(shù)現(xiàn)存的算法中主要是以分層的方式來表示多尺度特征。Res2net則是通過在一個單個殘差塊內(nèi)構(gòu)造分層的類殘差連接來實(shí)現(xiàn)多尺度的特征獲取功能,其更加精細(xì)的表示多尺度特征,并且增加每個網(wǎng)絡(luò)層的感受野。這一特征可以使得動捕系統(tǒng)應(yīng)用時,可以更加精準(zhǔn)地獲取目標(biāo)點(diǎn)的特征信息,提高識別的穩(wěn)定性。
上文所提到的csp1 中包含residual 組件[15](圖3 所示),這不僅會導(dǎo)致計(jì)算量較大而且對于目標(biāo)點(diǎn)的特征信息抓取能力不全面,所以本文提出使用res2net 結(jié)構(gòu)對resnet[16]結(jié)構(gòu)進(jìn)行替換。Res2net[17]在一個單個的殘差塊內(nèi)構(gòu)造分層的殘差類連接,為CNN提出了一種新的以更細(xì)粒度(granular level)去表達(dá)多尺度特征,在此基礎(chǔ)上,再增加每個網(wǎng)絡(luò)層的感受野(receptive fields)范圍的構(gòu)建模塊Res2net。其主要利用一組更小的卷積核組來替換3*3 的卷積。具體來描述,首先需要將特征圖分為幾組,其中一組卷積核首先從一組輸入特征圖上提取特征,再將所輸出的特征與此組輸入特征圖共同作為特征送入到下一組卷積核中。這樣反復(fù)幾次,直到所有輸入的特征圖都被處理。最后將所有的輸出特征連接并通過1*1 卷積將信息所融合,這樣就可以得到不同尺度的感受野,從而得到了更多的尺度特征。此外,Res2net 的結(jié)構(gòu)還可以保持計(jì)算負(fù)載的負(fù)載不增加,這就對在多個尺度上表示特征的許多視覺任務(wù)中起到非常大的作用。
圖3 CSP結(jié)構(gòu)圖
圖4 (a)為CNN 網(wǎng)絡(luò)架構(gòu)的基本組成結(jié)構(gòu),圖4(b)為Res2Net 模塊的基本組成結(jié)構(gòu)。我們可以觀察到,與原模塊相比,新模塊具有更強(qiáng)的多規(guī)模特征提取能力,但計(jì)算負(fù)載量與左側(cè)架構(gòu)相似[18]。右圖展示出了瓶頸塊和Res2Net 模塊之間的區(qū)別。在1×1 卷積之后,本文將特征映射均勻地分割成N組特征映射子集,由xi表示,其中i∈{1,2,…,n}。與輸入特征圖相比,每個特征子集xi具有相同的空間大小,但具有1/s 的信道數(shù)。除xi外,每個xi都有相應(yīng)的3×3卷積,由Ki()表示,同時用yi表示Ki()的輸出。特征子集xi加上Ki?1()的輸出,然后饋入Ki()。為了在增加n 的同時減少參數(shù),本文省略了xi的3×3卷積。因此,yi可以寫成:
圖4 CNN和Res2net的基本結(jié)構(gòu)
這里需要注意,每個3×3 卷積運(yùn)算符Ki()可能從所有特征分割{xj,j≤i}接收特征信息。每次特征通過3×3卷積算子分割xj時,輸出結(jié)果可以具有比xj,更大的接收場。由于組合爆炸效應(yīng),Res2Net模塊的輸出包含不同的數(shù)量和不同的接收尺度的組合。
綜上,本文采用res2net結(jié)構(gòu)來替換YOLOv5 所使用的resnet 結(jié)構(gòu),其本質(zhì)上就是利用一個較小的3×3 過濾器取代了過濾器組,這樣就可以同時將不同的過濾器組以層級殘差式風(fēng)格連接。這樣不但可以保證在動捕應(yīng)用時地的識別能力,也不增加其計(jì)算負(fù)載量。
由于YOLOv5 對模型架構(gòu)的修改使用的是yaml 外部配置文件[19]進(jìn)行的,根據(jù)YOLOv5 模型框架圖可知其具有三個檢測頭,分別對應(yīng)小目標(biāo)、中目標(biāo)、大目標(biāo)。在動捕系統(tǒng)中,主要將Marker 點(diǎn)附著在運(yùn)動的物體上再去進(jìn)行識別,并通過重構(gòu)計(jì)算來獲取運(yùn)動物體的軌跡,所以應(yīng)用時目標(biāo)點(diǎn)均為小目標(biāo)物。根據(jù)這一應(yīng)用特點(diǎn),本文進(jìn)一步對算法進(jìn)行剪枝操作,在算法中刪除了后兩個中、大檢測頭,只保留小目標(biāo)檢測頭,就可以使模型進(jìn)行輕量化,從而滿足動捕對分析速度的要求。與此同時,模型輕量化可以更加容易地投入生產(chǎn)中,比原算法更適合應(yīng)用于動捕系統(tǒng)中目標(biāo)點(diǎn)的識別。
本文采用了由大連理工大學(xué)海岸和近海工程國家重點(diǎn)實(shí)驗(yàn)室所研制的非接觸式六自由度運(yùn)動測量系統(tǒng)捕獲的數(shù)據(jù)集進(jìn)行試驗(yàn)。數(shù)據(jù)集為五個小球移動過程中利用高速照相機(jī)所拍攝運(yùn)動照片。為了在YOLOv5 中對數(shù)據(jù)進(jìn)行訓(xùn)練,采用上文所介紹的半監(jiān)督學(xué)習(xí)方法對圖像進(jìn)行標(biāo)注。為了顯示方便,本文將樣本中所有目標(biāo)標(biāo)記點(diǎn)的圖像位置統(tǒng)一放置在一幅圖像中,其分布如圖5所示。
圖5 目標(biāo)在圖像中的分布圖
目標(biāo)框長寬分布如圖6所示。
圖6 目標(biāo)框長寬分布圖
本實(shí)驗(yàn)的網(wǎng)絡(luò)訓(xùn)練利用騰訊云服務(wù)器訓(xùn)練完成;模型框架為PyTorch;其評價(jià)指標(biāo):準(zhǔn)確率Preci?sion、召回率Recall、平均精度均值(mAP)、GFLops作為目標(biāo)檢測模型的評價(jià)標(biāo)準(zhǔn)。公式如下:
其中TP 為正類判定為正類,F(xiàn)P 為負(fù)類判定為負(fù)類,TN 是負(fù)類判定負(fù)類。在Precision-Recall 曲線基礎(chǔ)上,通過計(jì)算每個recall 值對應(yīng)的Precision 值得平均,可以獲得一個數(shù)組形式的評估即AP,AP計(jì)算公式為
其中r1,r2…rn 是按升序排列的Precison 插值段第一個插值處對應(yīng)的Recall值。
所有類別的AP即為mAP,mAP計(jì)算公式為
從工程技術(shù)角度來看,動作捕捉系統(tǒng)在本質(zhì)上是一種定位系統(tǒng),通常需要在目標(biāo)物上布置便于獲取運(yùn)動信息的定位設(shè)備進(jìn)行追蹤。光學(xué)動作捕捉系統(tǒng)主要是由高速攝像機(jī)、紅外補(bǔ)光燈、光學(xué)鏡頭、動作捕捉軟件、反光標(biāo)識點(diǎn)和若干配件組成的。其中的反光標(biāo)識點(diǎn)(Marker 點(diǎn))就是為我們所要識別的目標(biāo)物體。圖7 為利用傳統(tǒng)算法圓形度檢測方法所得出的目標(biāo)物體識別的分布圖。
圖7 目標(biāo)物體識別分布圖
通過觀察可以發(fā)現(xiàn)最終的標(biāo)記點(diǎn)軌跡圖中有部分點(diǎn)缺失,這是因?yàn)镸aker 點(diǎn)在運(yùn)動過程中受到背景反光的影響而無法識別所產(chǎn)生的“丟幀”現(xiàn)象,這一問題所導(dǎo)致的數(shù)據(jù)缺失會嚴(yán)重影響后續(xù)對目標(biāo)體運(yùn)動的分析。因此,需要降低這種丟數(shù)據(jù)的情況,也就是說必須提高目標(biāo)識別的穩(wěn)定性。
采用深度學(xué)習(xí)的方式,在訓(xùn)練過程中,本文使用生成的偽標(biāo)簽數(shù)據(jù)作為訓(xùn)練集,將之前有標(biāo)簽的數(shù)據(jù)集作為驗(yàn)證集,使用teacher model 的權(quán)重當(dāng)做預(yù)訓(xùn)練權(quán)重進(jìn)行遷移學(xué)習(xí),并對結(jié)果進(jìn)行fine?tune。改進(jìn)的YOLOv5算法的準(zhǔn)確率與回歸率的曲線圖如圖8、圖9所示。
圖8 算法的準(zhǔn)確率
圖9 算法的回歸率
通過表1 中的對比數(shù)據(jù)可以清楚看出,通過對模型的更改,在替換了res2net 結(jié)構(gòu)之后,模型的準(zhǔn)確率與召回率有了一定的提升,并且GFlops從16.4下降到15.0,下降了1.4。在進(jìn)行剪枝操作后,最終map0.5的值可以達(dá)到0.9961,同時GFlops也下降到了12.3,整體效果較為理想。將圖7 和圖11 相比較,可看出改進(jìn)后的算法相對于傳統(tǒng)的識別方法更加穩(wěn)定,軌跡點(diǎn)丟失較少,基本可以穩(wěn)定追蹤目標(biāo)點(diǎn)。
表1 改進(jìn)算法與原始算法對比
為了再次測試算法改進(jìn)的準(zhǔn)確性,采取實(shí)驗(yàn)二將Marker點(diǎn)放置在復(fù)雜背景下進(jìn)行運(yùn)動測試,得出的具體測試結(jié)果數(shù)據(jù)如表2 所示??梢钥闯鐾ㄟ^對模型的更改,map0.5 的值達(dá)到了0.9548,同時精確度提升了0.1484。
表2 改進(jìn)算法與原始算法對比
綜上所述,可以說明本文的改進(jìn)方法對針對于動作捕捉系統(tǒng)中的圓形目標(biāo)識別有明顯的優(yōu)化效果。
圖10 改進(jìn)后目標(biāo)物體識別分布圖
本文為了解決動作捕捉系統(tǒng)在復(fù)雜背景應(yīng)用時對圓形Marker 點(diǎn)識別穩(wěn)定性較差的問題,基于YOLOv5 提出了一種改進(jìn)的Maker點(diǎn)識別方法。首先通過利用半監(jiān)督學(xué)習(xí)方法進(jìn)行快速標(biāo)記,之后在算法中選擇res2net 結(jié)構(gòu)和輕量化檢測頭進(jìn)行改進(jìn)。改進(jìn)后的YOLOv5 算法在所有的數(shù)據(jù)集上進(jìn)行訓(xùn)練測試對比原始的算法檢測精度有了顯著提高,且精度也較高,并在計(jì)算負(fù)載不增加的情況下,使模型更加輕量化,非常適合應(yīng)用在實(shí)踐當(dāng)中。不足之處是對于本次應(yīng)用的數(shù)據(jù)集,背景是靜態(tài)的,在后續(xù)工作中將在各種環(huán)境中,包括更復(fù)雜的動態(tài)背景下,進(jìn)行Marker點(diǎn)的識別準(zhǔn)確率以及穩(wěn)定性的測試。