談小峰 王直杰
摘? 要:傳統(tǒng)的基于顏色分割的乒乓球識別方法易受光線、清晰度影響,魯棒性較低。為解決這一問題,對YOLOv4進行改進,用K-means聚類設(shè)計先驗框,增強尺度適應(yīng)性。針對乒乓球尺寸,裁剪網(wǎng)絡(luò)分支并壓縮卷積層,加快特征提取速度。針對采集數(shù)據(jù)正負(fù)樣本不均衡,改進損失函數(shù),提高預(yù)測框邊界準(zhǔn)確度。使用快速NMS算法加速預(yù)測過程,提高模型的計算速度。實驗結(jié)果表明,基于YOLOv4的改進模型在乒乓球識別任務(wù)中精度達到94.12%,幀處理速率達到39.34fps。
關(guān)鍵詞:YOLOv4;乒乓球識別;K-means聚類;快速NMS算法
中圖分類號:TP391.4 文獻標(biāo)志碼:A? ? ? ? ?文章編號:2095-2945(2020)27-0074-03
Abstract: The traditional table tennis recognition method based on color segmentation is easily affected by light and clarity, and its robustness is low. In order to solve this problem, YOLOv4 is improved and a priori frame is designed by K-means clustering to enhance the scale adaptability. Aiming at the size of table tennis, the network branches are cut and the convolution layer is compressed to speed up the speed of feature extraction. In view of the imbalance between positive and negative samples of collected data, the loss function is improved to enhance the accuracy of the boundary of the prediction box. The fast NMS algorithm is used to accelerate the prediction process and increase the calculation speed of the model. The experimental results show that the accuracy of the improved model based on YOLOv4 in table tennis recognition task is 94.12%, and the frame processing rate is up to 39.34fps.
Keywords: YOLOv4; table tennis recognition; K-means clustering; fast NMS algorithm
1 概述
乒乓球識別技術(shù)屬于目標(biāo)檢測范疇,傳統(tǒng)的基于顏色分割的方法容易受到光線、球的清晰度以及復(fù)雜背景影響,識別魯棒性差。深度卷積神經(jīng)網(wǎng)絡(luò)由于能夠自主完成對目標(biāo)特征的學(xué)習(xí),提取關(guān)鍵信息,因而具有較強的魯棒性。近年來,基于卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測算法主要依托兩種思路,一種是基于目標(biāo)候選框思想的two-stage,另一種是基于回歸思想的one-stage。Two-stage先提取目標(biāo)候選框,再在其基礎(chǔ)上訓(xùn)練檢測模型,如Fast R-CNN, Faster R-CNN等[1-2]。而one-stage則沒有了目標(biāo)候選框提取操作,直接利用檢測網(wǎng)絡(luò)產(chǎn)生目標(biāo)的類別和位置信息,擁有了更高的檢測速度,如SSD,YOLOv3,YOLOv4等[3-4]。
針對乒乓球的尺寸特點和運動特性,本文對YOLOv4算法進行改進,在結(jié)構(gòu)上精簡網(wǎng)絡(luò),在方法上引入一些調(diào)優(yōu)手段,實現(xiàn)算法的精度速度最優(yōu)平衡。首先對多尺度分支圖上的先驗框進行K-means聚類,根據(jù)聚類結(jié)果恰當(dāng)?shù)丶舻粼季W(wǎng)絡(luò)中的大尺度分支。剩下的兩個尺度分支在經(jīng)過降采樣之后分別與高層語義信息融合,構(gòu)建兩個尺度的目標(biāo)檢測層。由于乒乓球的輪廓細(xì)節(jié)并不如其他目標(biāo)復(fù)雜,為避免隨著網(wǎng)絡(luò)加深導(dǎo)致特征消失問題出現(xiàn),分別在剩下的兩個目標(biāo)檢測分支中減少兩層卷積層,簡化特征提取步驟,以獲得表征目標(biāo)信息的不變特征。其次,在訓(xùn)練過程中,由于采集的數(shù)據(jù)存在正負(fù)樣本不均衡的問題,對損失函數(shù)做了一些改進,同時利用高斯分布特性增加對邊界框可靠性的判斷。最后,使用NMS算法[5]加速預(yù)測過程,提高模型的計算速度。實驗結(jié)果表明,基于YOLOv4的改進模型在乒乓球識別中有很好的效果。
2 YOLOv4目標(biāo)檢測框架
2.1 YoLOv4算法原理
YOLOv4算法在原有YOLOv3目標(biāo)檢測架構(gòu)基礎(chǔ)上,從數(shù)據(jù)處理、主干網(wǎng)絡(luò)、網(wǎng)絡(luò)訓(xùn)練、激活函數(shù)、損失函數(shù)等各個方面引入一些優(yōu)化方法,使得模型在檢測速度和精度上達到了目前為止的最優(yōu)匹配[4]。YOLOv4首先通過特征提取網(wǎng)絡(luò)(也稱主干網(wǎng)絡(luò))提取輸入圖像的特征,然后將輸入圖像劃分成S*S的網(wǎng)格,目標(biāo)中心所在的網(wǎng)格負(fù)責(zé)完成對目標(biāo)的檢測。為了完成對C類目標(biāo)的檢測,每個網(wǎng)格需要預(yù)測B個邊界框以及分別屬于C個類別的條件概率,并輸出表征邊界框中是否包含目標(biāo)及輸出邊界框準(zhǔn)確度的置信度信息Conf(Object)。
Pr(Object)用來表示是否有目標(biāo)物落入該候選網(wǎng)格中,如果有則為1,沒有則為0。IoU代表預(yù)測框與真實框之間的交并比,其中box(Pred)代表預(yù)測框,box(Truth)代表真實框。每個預(yù)測邊界框包含五個參數(shù),分別是x,y,w,h,Conf(Object),其中(x,y)代表預(yù)測框中心與真實框中心的偏移,(w,h)代表預(yù)測框的寬和高。根據(jù)每個網(wǎng)格的輸出,模型最終輸出的參數(shù)為S×S×(5×5×B+C)。
2.2 YOLOv4算法核心
YOLOv4的主干網(wǎng)絡(luò)CSPDarknet53是算法的核心,用來提取目標(biāo)特征。借鑒CSPNet能夠在輕量化的同時保持準(zhǔn)確性、降低計算瓶頸、降低內(nèi)存成本[6]的經(jīng)驗,YOLOv4在Darknet53的每個大殘差塊上加上CSP,將基礎(chǔ)層的特征映射劃分為兩部分,再通過跨階段層次結(jié)構(gòu)合并,在減少計算量的同時保證準(zhǔn)確率。CSPDarknet53的激活函數(shù)使用的是Mish激活函數(shù),后面網(wǎng)絡(luò)沿用leaky_relu函數(shù),實驗證明這樣設(shè)置在目標(biāo)檢測中準(zhǔn)確率更高。
與YOLOv3算法采用FPN進行上采樣不同,YOLOv4借鑒PANet網(wǎng)絡(luò)中信息流通思想,先通過上采樣方式將高層特征的語義信息傳播到低層網(wǎng)絡(luò)然后與底層特征的高分辨率信息相融合,提高小目標(biāo)檢測物的檢測效果。再增加從最底層到最上層的信息傳輸路徑,通過下采樣加強特征金字塔。最后用不同層的特征圖融合來做預(yù)測。
3 改進的YOLOv4算法
3.1 K-means聚類
先驗框的引入將目標(biāo)檢測問題轉(zhuǎn)化為固定格子內(nèi)是否有目標(biāo)物的問題以及預(yù)測框與真實框距離的問題,而且還摒棄了以往的多尺度滑動窗口遍歷環(huán)節(jié),使得目標(biāo)檢測的速度和精確度大大提升。YOLOv4的先驗框是在VOC數(shù)據(jù)集的標(biāo)注上進行聚類得到的。由于VOC數(shù)據(jù)集包含的物種多樣,物體長寬比例差別很大,所以先驗框的差別也很大。然而在乒乓球識別任務(wù)中,乒乓球的形狀基本在不同幀中呈現(xiàn)的基本一致,因而直接使用原模型的先驗框獲取方式顯然是行不通的。鑒于K-means算法對于數(shù)據(jù)集標(biāo)注框聚類效果頗佳,本文用它來獲取與乒乓球尺寸及比例相匹配的基準(zhǔn)框。對數(shù)據(jù)集中的標(biāo)簽分布情況進行統(tǒng)計,從1開始不斷增加聚類中心的個數(shù),經(jīng)過迭代,分別獲得聚類中心。由于使用歐式距離衡量標(biāo)簽相似性會導(dǎo)致大尺寸標(biāo)簽產(chǎn)生更大的誤差,影響聚類結(jié)果,所以將聚類中心與標(biāo)簽的交并比(IoU(1,c))作為K-means聚類的相似度參數(shù)。聚類距離計算公式如下所示[3-4]:
3.2 面向小尺寸乒乓球的網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化
通常卷積神經(jīng)網(wǎng)絡(luò)層數(shù)越深,模型提取到的目標(biāo)語義信息就越豐富。然而隨著卷積層的加深,一方面會使得計算量大大增加,推理速度變緩,另一方面會導(dǎo)致特征消失問題出現(xiàn)。尤其如乒乓球這類語義信息本就不是很豐富的目標(biāo)。因此本文根據(jù)K-means聚類分析的結(jié)果,簡化網(wǎng)絡(luò)的特征提取過程。YOLOv4模型的原三個分支分別用來識別圖像中的大中小三類目標(biāo)。為了適合乒乓球尺寸特性,本文減去其用來識別大目標(biāo)的分支,保留剩下兩個分支,并分別將8倍降采樣層、16倍降采樣層與高層語義信息層進行融合,在兩個尺度上建立乒乓球特征檢測層。同時對于每個目標(biāo)檢測層的深度進行逐步壓縮,以充分利用低層特征圖提取的細(xì)節(jié)信息??紤]到網(wǎng)絡(luò)的輸入分辨率對模型的檢測精度和速度影響,首先將數(shù)據(jù)集圖像統(tǒng)一縮放到3通道分辨率為608×608像素的形式,輸入到CSPDarknet53,經(jīng)過卷積層提取目標(biāo)特征,交替使用3×3和1×1大小的卷積核進行運算,基于改進的YOLOv4網(wǎng)絡(luò)結(jié)構(gòu),融合中等特征圖的細(xì)節(jié)信息和小特征圖的語義信息,在剩余兩個尺度上訓(xùn)練出最終的乒乓球識別模型。
3.3 損失函數(shù)改進
YOLOv4的提出者認(rèn)為損失函數(shù)的設(shè)計是能夠提高精度而不增加推斷時間的優(yōu)化技術(shù)之一。傳統(tǒng)的目標(biāo)檢測器通常使用均方誤差直接對邊界框的中心點坐標(biāo)和高度、寬度進行回歸,而基于anchor的方法是估計相應(yīng)的偏移量,這都沒有考慮對象本身的完整。原模型損失函數(shù)設(shè)計時就已經(jīng)考慮了邊界框坐標(biāo)預(yù)測誤差、邊界框的置信度誤差以及識別物體所屬類別預(yù)測誤差。為解決采集數(shù)據(jù)樣本不均衡的問題,本文借鑒Focal Loss[7]的思路,給交叉熵函數(shù)添加一個調(diào)制系數(shù)?琢,變成
同時受Gaussian YOLOv3[8]的啟發(fā),為了提高乒乓球檢測精度,利用高斯分布特性來改進損失函數(shù),增加對乒乓球識別的邊界框可靠性判斷,以邊界框中心點x方向坐標(biāo)為例,修改后的邊界框x坐標(biāo)預(yù)測誤差計算方法如下公式所示:
式中tx表示邊界框的中心坐標(biāo)相對于網(wǎng)格左上角x坐標(biāo)的偏移量。?滋■為邊框的坐標(biāo),?撞為各坐標(biāo)的不確定性。
3.4 快速NMS算法
傳統(tǒng)NMS算法按照檢測出來的目標(biāo)框的置信分?jǐn)?shù)進行降序排列,并設(shè)置一個IoU閾值,去除大于該閾值的邊界框,直到遍歷完所有的預(yù)測框,剩下的邊界框即作為最終目標(biāo)檢測結(jié)果。由于是順序遍歷需要對每一個類別進行排序篩選,會導(dǎo)致算法速度上的損失。本文采用并行處理方式,并行地對每個邊界框進行篩選和保留。首先輸入所有未經(jīng)過篩選的網(wǎng)絡(luò)預(yù)測框,按照置信分?jǐn)?shù)降序排列,每個類別僅選取前N個檢測結(jié)果,然后對每一類的結(jié)果計算兩兩交并比,得到IoU矩陣。其對角線元素和下三角為自交并比和重復(fù)計算,將其置為0。計算IoU矩陣最大值,濾除閾值界限外的框,最后剩余的篩選結(jié)果便是最終的識別結(jié)果。
4 實驗與分析
4.1 數(shù)據(jù)預(yù)處理
本文訓(xùn)練和測試用數(shù)據(jù)一部分通過雙目相機在實驗室拍攝采集,另一部分來源于網(wǎng)絡(luò)乒乓球比賽視頻,共組成5102張圖片。為獲得更好的訓(xùn)練效果,本文借鑒YOLOv4作者的觀點,采用Mosaic數(shù)據(jù)增強的方式,對數(shù)據(jù)集隨機選取四張圖片,隨機縮放,再隨機分布進行拼接。這樣不僅大大擴充了原始采集的數(shù)據(jù)集,而且還豐富了圖片的背景。當(dāng)進行隨機裁剪的時候,如果裁剪了樣本當(dāng)中的標(biāo)簽框的部分區(qū)域,則將其舍棄,保留裁剪之后還完整的標(biāo)簽框。因為在隨機縮放過程中增加了很多小目標(biāo),平衡了原始數(shù)據(jù)集目標(biāo)尺度問題,網(wǎng)絡(luò)的魯棒性更好。Mosaic數(shù)據(jù)增強還有一個好處是在訓(xùn)練時可以直接計算4張圖片的數(shù)據(jù),變相提高batch-size,使得訓(xùn)練設(shè)置的Mini-batch大小并不需要很大,降低模型訓(xùn)練難度。
4.2 評價指標(biāo)
在目標(biāo)檢測領(lǐng)域,為了準(zhǔn)確評估模型檢測效果,往往需要計算被檢目標(biāo)的精準(zhǔn)率P(Precision)和召回率R(Recall)。
式中,TP代表模型正確檢測出來的目標(biāo)數(shù)量;FP代表模型誤檢的目標(biāo)數(shù)量;FN代表模型漏檢的目標(biāo)數(shù)量。PR曲線是一條分別以P和R為橫縱坐標(biāo)的曲線。平均精準(zhǔn)度指標(biāo)(Average Precision,AP)反映的是PR曲線下的面積,綜合了精確率和召回率的結(jié)果,用于評估模型在單個檢測類別上的表現(xiàn)。
4.3 實驗設(shè)置
使用具有8G內(nèi)存、1050TI獨立顯卡并且cuda10.1加速框架的計算機,在Ubuntu18.04操作系統(tǒng)下對原始YOLOv4網(wǎng)絡(luò)和本文改進YOLOv4網(wǎng)絡(luò)分別進行訓(xùn)練。訓(xùn)練開始階段,衰減系數(shù)設(shè)置為0.0005,學(xué)習(xí)率設(shè)置為 0.001,并且選擇step模式更新學(xué)習(xí)率,在訓(xùn)練迭代次數(shù)達到15000和20000次時,將學(xué)習(xí)率分別降低至初始學(xué)習(xí)率的10%和1%。
4.4 實驗結(jié)果與分析
實驗發(fā)現(xiàn),隨著聚類中心的個數(shù)k逐漸增加,聚類距離d越小。但當(dāng)k大于4時,d減小的程度非常緩慢。為了避免冗余,選擇k=4時的四個聚類中心(15,11),(30,25)(48,35),(58,47)。考慮到Mosaic數(shù)據(jù)增強過程中,不排除有一些乒乓球尺寸被放大,所以加入一組稍大的(62,70)來匹配。
針對采集數(shù)據(jù)集數(shù)量有限的問題,先用目標(biāo)檢測通用數(shù)據(jù)集VOC2007在同等環(huán)境下分別對YOLOv4網(wǎng)絡(luò)和本文改進的YOLOv4網(wǎng)絡(luò)預(yù)訓(xùn)練,將預(yù)訓(xùn)練參數(shù)作為模型初始參數(shù)。實驗發(fā)現(xiàn),模型在經(jīng)過較少迭代次數(shù)之后,訓(xùn)練損失快速下降并且最終達到一個較低值水平,迭代次數(shù)達到30000次基本可以停止迭代,過程中每100次迭代進行依次驗證。本文改進的YOLOv4模型和原始YOLOv4網(wǎng)絡(luò)在乒乓球識別任務(wù)中的檢測結(jié)果對比如表1所示。
5 結(jié)束語
本文基于目標(biāo)檢測模型YOLOv4進行改進,用于對運動過程中的乒乓球識別。針對采集數(shù)據(jù)集特點,采用K-means方法對數(shù)據(jù)標(biāo)簽聚類。面向小尺寸乒乓球優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu),減去大目標(biāo)分支并壓縮特征提取層。通過改進損失函數(shù)提高了位置定位能力,使用快速 NMS 算法提高網(wǎng)絡(luò)實時性。實驗結(jié)果表明,本文改進的算法比原始YOLOv4在精度和速度性能方面都有一定的提升,可以應(yīng)用于乒乓球機器人視覺系統(tǒng),對球進行位置跟蹤和軌跡預(yù)測,也可以應(yīng)用于其他涉及目標(biāo)檢測、目標(biāo)跟蹤和軌跡預(yù)測的球類運動場景中。
參考文獻:
[1]Jun M R, Luo H B, Wang Z B, et al. Improved yolov3 algorithm and its application in small target detection[J]. Acta Optica Sinica, 2019, 39(12):1210002.
[2]Zhi Tian, Chunhua Shen, Hao Chen, Tong He. FCOS: fully convolutional one-stage object detection[EB/OL]:https://arxiv.org/abs/1904.01355,[2019-04-02].
[3]Redmon J, Farhadi A. YOLOv3: An Incremental Improvement[J].2018.arXiv preprint arXiv:1804.02767,20.
[4]Bochkovskiy A, Wang C Y, Liao H Y M. YOLOv4: Optimal Speed and Accuracy of Object Detection[J]. 2020.
[5]Neubeck A, Van Gool L. Efficient Non-Maximum Suppression[C]. international conference on pattern recognition, 2006: 850-855.
[6]Wang C, Liao H M, Yeh I, et al. CSPNet: A New Backbone that can Enhance Learning Capability of CNN[J]. arXiv: Computer Vision and Pattern Recognition, 2019.
[7]Lin T Y, Goyal P, Girshick R, et al. Focal loss for dense object detection[J]. Transactions on Pattern Analysis & Machine Intelligence, IEEE, 2017, 99: 2999-3007.
[8]Jiwoong Choi, Dayoung Chun, Hyun Kim, et al. Gaussian YOLOv3: An Accurate and Fast Object Detector Using Localization Uncertainty[EB/OL].(2019-04-09)[2019-08-12].