国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于YOLOv3改進的手勢檢測算法*

2021-07-25 15:46詹金峰
機電工程技術(shù) 2021年6期
關(guān)鍵詞:候選框置信度手勢

許 冠,詹金峰

(1.佛山市南海中南機械有限公司,廣東 佛山 528247;2.華南理工大學(xué)自動化科學(xué)與工程學(xué)院,廣州 510640)

0 引言

手勢檢測的目標是檢測出圖像中手勢所在的位置,并用矩形框、橢圓框等加以標示。手勢檢測作為手勢識別、手勢估計的基礎(chǔ)任務(wù),在人機交互等領(lǐng)域中有著諸多應(yīng)用。為了將其應(yīng)用在實際場景中,手勢檢測相對其他目標檢測任務(wù)要求更高的檢測精度以及檢測準確率。

手勢檢測是目標檢測的特例化,因此一般的手勢檢測方法是在通用的目標檢測算法中融合手勢特征得以實現(xiàn)。目前的手勢檢測方法主要包括基于膚色模型的檢測方法、基于運動的檢測方法、基于分割的檢測方法、基于深度學(xué)習(xí)的檢測方法等[1]。

基于膚色模型的檢測方法是一種傳統(tǒng)且高效的方法,一般將手勢圖像從RGB空間轉(zhuǎn)化到Y(jié)CrCb空間、HSV空間、YUV空間等,因為在這些空間內(nèi)膚色有著很好的規(guī)律,可以從其他顏色背景中完整地提取出來。HF Hashem等[2]提出了一種自適應(yīng)的HSV膚色模型,可以根據(jù)不同的光照條件動態(tài)調(diào)整閾值。S Kolkur等[3]提出融合多個膚色空間進行膚色提取的方法,相比基于單個膚色空間的方法有更高的準確率。

基于運動的檢測方法假設(shè)被檢測物體相對于背景是運動的,通過對視頻幀中連續(xù)的兩幀或者多幀進行分析,從而提取出目標。其主要方法有光流法、幀間差分法和背景差分法。

基于分割的檢測方法通過對圖像進行像素級的分類,能夠得到比一般檢測方法更加精確的結(jié)果。Grab cut[4]結(jié)合圖論理論對圖像進行分析,將每個像素點視為帶權(quán)無向圖的頂點,進而將原問題轉(zhuǎn)化成圖的頂點劃分問題。SLIC[5]基于超像素進行圖像分割,能通過對圖像的顏色、亮度、紋理等特征進行聚類以形成超像素塊,然后進行迭代聚合。FCN[6]開創(chuàng)了利用深度學(xué)習(xí)進行圖像分割的先河,其摒棄了傳統(tǒng)網(wǎng)絡(luò)的全連接層,并創(chuàng)造性地使用了反卷積模塊。

基于深度學(xué)習(xí)的檢測方法具有不需要人工提取特征、檢測準確率高等特點,是手勢檢測的發(fā)展趨勢。R-CNN[7]的提出讓基于深度學(xué)習(xí)的檢測方法成為目標檢測的研究主流方向,其通過對圖像進行密集采樣,將目標檢測問題轉(zhuǎn)化成了圖像分類問題。之后Fast R-CNN[8]以及Faster R-CNN[9]對原始的R-CNN進行了一系列改進,獲得了突破性的性能提升。但是基于兩階段的R-CNN系列網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜,不能端到端的訓(xùn)練,且實時性較差。因此基于一階段的檢測方法,例如YOLO[10]系列檢測算法憑借其網(wǎng)絡(luò)架構(gòu)簡單高效、端到端訓(xùn)練、拓展性強,且相對于多階段網(wǎng)絡(luò)實時性能好等優(yōu)點,更加適合應(yīng)用在實際檢測的任務(wù)中。馬巧梅等[11]將YOLOv3應(yīng)用到車牌檢測中,在復(fù)雜的場景中取得了更好的檢測效果。郝帥等[12]利用改進的YOLOv3算法來檢測輸電線路的故障,通過引入注意力機制等方法提高了檢測準確率。

YOLOv3[13]在YOLOv2的基礎(chǔ)上將骨架網(wǎng)絡(luò)由Dark?net-19更改成了Darknet-53,加深了網(wǎng)絡(luò)的深度,同時融入了殘差單元,然后將Darknet-53的中間層作為不同感受野的特征進行融合,輸出3個不同尺度的特征圖,接著直接在特征圖上進行損失計算。其還將分類輸出函數(shù)Softmax替換為Logistic Classifier,減小計算量的同時提升了檢測效果。通過這些改進,YOLOv3在各大手勢檢測數(shù)據(jù)集中獲得了非常好的準確率和檢測速度。

1 改進的YOLOv3算法

針對手勢檢測實時性要求較高,且在背景雜亂以及有膚色干擾時準確率低的問題,本文提出一種基于YO?LOv3改進的手勢檢測算法。首先,重新對訓(xùn)練集中的手勢尺度進行Kmeans++[14]聚類,改進Prior的初始值,這能得到一組接近數(shù)據(jù)集分布的初始集,因此有利于網(wǎng)絡(luò)更快地收斂以及得到更準確的結(jié)果。然后針對目標檢測中常見的正負樣本不均衡以及難易樣本不均衡的問題,引入Focalloss[15]改進網(wǎng)絡(luò)的損失函數(shù),加快了網(wǎng)絡(luò)的訓(xùn)練速度。最后,針對常規(guī)非極大值抑制算法(NMS)選取候選框不夠準確的特點,引入了加權(quán)NMS[16],并根據(jù)候選框的位置關(guān)系去除冗余的候選框。在Egohands數(shù)據(jù)集[17]中實驗表明,本文提出的算法相對于標準的YOLOv3算法在準確率和mAP上有較大的提升。

1.1 Kmeans++重聚類

原始的YOLOv3網(wǎng)絡(luò)使用Kmeans在VOC、COCO等數(shù)據(jù)集上進行聚類,得到的聚類中心并不符合本文數(shù)據(jù)庫中的手勢分布,所以對數(shù)據(jù)集進行重新聚類有助于網(wǎng)絡(luò)更快地收斂以及更準確的回歸。

Kmeans++相對于Kmeans算法,改變了初始化聚類中心的策略,相比于Kmeans采取隨機初始化的方式,Kmeans++的核心策略是使各聚類中心盡量的遠。其一般步驟是先初始化第一個聚類中心,然后計算其他點到此中心的距離,記為D(x),D(x)越大則成為下一個初始中心概率也就越大。接著采用輪盤法逐個確認初始中心直到到達設(shè)定聚類中心數(shù)量:

式中:?為與x最近的聚類中心;D(x)為歐式距離;Λ為全體集合。

雖然Kmeans++在初始化中心時花費了額外的時間,但是極大地加速了收斂時間,所以整體上比Kmeans有更快的運行速度。

1.2 引入Focal Loss改進損失函數(shù)

Focal Loss是何凱明等在2017年提出的基于交叉熵損失函數(shù)改進的新型損失函數(shù),它主要解決了目標檢測中正負樣本極不均衡的問題并且更加關(guān)注困難分類的樣本。對于一般的交叉熵損失函數(shù)計算如下:

引入一個α系數(shù)可以解決正負樣本不均衡的問題,如下所示:

Focal Loss在式(5)的基礎(chǔ)上進一步引入了新的調(diào)制項。

式中:γ為調(diào)制系數(shù),當(dāng)γ=0時,式(4)退化為式(3),γ越大,則對難分類樣本的關(guān)注程度也就越大;pt為樣本的分類難度,其值越接近1,懲罰力度越大,通過這種對難易樣本采取不同的懲罰力度達到關(guān)注難分類樣本的效果。

YOLOv3的損失函數(shù)由4個坐標的均值平方差損失、類別交叉熵損失以及置信度的交叉熵損失構(gòu)成,其中類別損失由正樣本類別損失和負樣本類別損失構(gòu)成。由于置信度的高低代表著樣本的難易程度,本文將置信度損失項改為Focal Loss損失,改進后的損失函數(shù)為:

式中:S2為特征圖的尺寸,本文保留YOLOv3設(shè)置的13、26、52;N為每個特征點對應(yīng)的Prior數(shù),本文為3;為特征圖的掩膜,YOLOv3訓(xùn)練階段只保留目標框?qū)?yīng)位置特征點與之IOU最大的一個Prior,也就是說每次計算損失時每一個尺度的特征圖上只有和目標框相同數(shù)量的特征點參與計算;coord為預(yù)測坐標;pt同式(3)中定義;α,γ分別為Focal Loss的系數(shù);classes為預(yù)測的類別數(shù)量,本文中為2。

1.3 改進NMS

非極大值抑制(NMS)是篩除冗余檢測框最常見且最有效的方法,傳統(tǒng)的NMS基本流程如下:

(1)設(shè)定置信度閾值,去除低于閾值的候選框;

(2)按照置信度進行排序,取出最高置信度的候選框,計算其他同標簽的候選框和它的IOU;

(3)挑選出IOU大于設(shè)定閾值的候選框,認定其為冗余的候選框,輸出最高置信度的候選框,并在候選框集合中去除(2)中挑選出的候選框;

(4)重復(fù)(2)~(3)的步驟,直到?jīng)]有候選框剩余。

傳統(tǒng)的NMS算法只根據(jù)最高置信度挑選候選框,導(dǎo)致魯棒性不強,且沒有綜合其他候選框結(jié)果,導(dǎo)致準確率也不高。Zhou等[16]提出了一種根據(jù)置信度對候選框加權(quán)得到新的候選框的方式,改善了上述問題。

本文基于加權(quán)NMS進行實驗,在分析實驗結(jié)果時發(fā)現(xiàn),對于兩個高置信度的候選框,當(dāng)他們是相互包含的關(guān)系且NMS閾值較低時,此算法無法過濾掉置信度較低的候選框,導(dǎo)致結(jié)果出現(xiàn)冗余,進而降低了預(yù)測的準確率。雖然降低NMS閾值可以避免這個問題,但是降低NMS閾值意味著每次進入步驟(3)會包含過多的相交框,特別當(dāng)兩只手有交互時,算法極大概率會漏掉一個目標。因此,本文針對多個手勢極少出現(xiàn)相互包含的情況,提出對候選框之間的關(guān)系進行判定,篩除與最高置信度候選框相互包含的干擾框,從而達到去除冗余的目的。實現(xiàn)公式如下:

式中:M、分別為最高置信度候選框和與之IOU大于小于閾值的其他候選框的左上角坐標;N、為相應(yīng)的右下角坐標;&為相與操作;thres為候選框之間判定相互包含的嚴格程度。

2 實驗結(jié)果與分析

本文采用了Egohands數(shù)據(jù)集[17]進行對比實驗。Ego?hands數(shù)據(jù)集是由Google眼鏡采集的共48個內(nèi)容為2個人進行復(fù)雜手勢互動的視頻。視頻包含了4個人、3種不同場景、4種不同活動。每個視頻不等間距地抽取100幀圖片進行像素級的標注,既可以用于手勢分割任務(wù),又很容易轉(zhuǎn)換成目標檢測的標注框。標注還區(qū)分了觀察者左右手和他人左右手,數(shù)據(jù)集總共包含4 800幀標注,15 053個手勢對象。圖片中的手勢具有不確定數(shù)量、手勢不完整、手勢模糊、手勢大小范圍大等特點,使得數(shù)據(jù)集富有挑戰(zhàn)性。本文將數(shù)據(jù)集隨機分出4 500幀作為訓(xùn)練集,另外的300幀作為測試集。

為了更加準確地評估本文算法,本文采用通用的目標檢測評價指標mAP和準確率來測試算法性能。本文使用的mAP算法實現(xiàn)來自Rafael Padilla等[18]的開源項目,其對目標檢測常用的評價標準進行總結(jié),并給出mAP的通用實現(xiàn)。

2.1 實驗細節(jié)

本文實驗在ubuntu16.04操作系統(tǒng),Intel Core i7-8700K CPU,GeForce GTX 1070Ti單個顯卡,Pychar?mIDE,Pytorch1.1.0環(huán)境下完成。

Egohands數(shù)據(jù)集中包含著一些不存在目標的數(shù)據(jù)幀,訓(xùn)練過程直接去除掉這些幀,同時數(shù)據(jù)集的標簽是根據(jù)給定的分割標簽自動生成,原來的標簽包含觀察者左右手、其他人左右手4種標注,本文重新整理為觀察者手勢和其他人手勢兩種類別。

樣本的預(yù)處理階段,首先將原圖像720×1 280大小,通過pad操作得到1 280×1 280大小,然后通過最近鄰插值縮小到416×416的標準大小。本文默認在訓(xùn)練階段擴充數(shù)據(jù)集,擴充方式為旋轉(zhuǎn)圖像。

訓(xùn)練階段,使用了最小批迭代,最小批大小為8,F(xiàn)ocal Loss的α、γ分別設(shè)置為1和2。采用Adam方法進行參數(shù)迭代學(xué)習(xí),本文利用遷移學(xué)習(xí)的方法,網(wǎng)絡(luò)模型預(yù)先經(jīng)過COCO數(shù)據(jù)集的訓(xùn)練,加快了訓(xùn)練的收斂速度。

2.2 Kmeans++重聚類

本文直接對訓(xùn)練集尺度進行聚類,不同于YOLOv3中以最大的平均IOU作為評判標準,為了更加關(guān)注初始Prior和數(shù)據(jù)集尺度的貼合程度,本文直接對圖像的寬和高進行聚類,聚類結(jié)果如圖1~2所示。

圖1 Kmeans聚類結(jié)果

圖1所示為Kmeans的聚類結(jié)果,圖2所示為Kmeans++的聚類結(jié)果??梢钥闯觯琄means++的聚類效果更加均勻,特別對于較大尺度的樣本,Kmeans++能夠給定一個較好的初始Prior,這有效加速了網(wǎng)絡(luò)的收斂速度,同時提高了準確率。經(jīng)過Kmeans++重新聚類得到的初始Prior大小如表1所示。表中特征圖尺寸越小,相應(yīng)的感受野越大,所以初始的Prior尺寸也就越大。

圖2 Kmeans++聚類結(jié)果

表1 Keans++聚類得到Prior初始值

2.3 Focal Loss損失函數(shù)的引入

為了分析引入Focal Loss對網(wǎng)絡(luò)訓(xùn)練的影響,給出了網(wǎng)絡(luò)在兩個損失函數(shù)下的Loss變化曲線,結(jié)果如圖3所示。由圖可知引入Focal Loss之后,初始損失更小,這得益于對簡單樣本損失項的權(quán)重系數(shù)變小。同時訓(xùn)練的收斂速度更快,表明網(wǎng)絡(luò)更有針對性的進行訓(xùn)練。而且最終的損失也更小,說明網(wǎng)絡(luò)的收斂效果得到了提升。

圖3 不同損失函數(shù)收斂

2.4 改進的NMS

為了說明本文提出改進的NMS算法的有效性,在Kmeans++重新聚類的YOLOv3網(wǎng)絡(luò)上,對比不同的NMS方法在不同的IOU閾值下所得的準確率。本文選取原始的NMS算法,以及加權(quán)NMS算法進行比較,結(jié)果如表2所示。由表可見,引入加權(quán)NMS后準確率有了明顯的提升,并且隨著IOU閾值的增加,提升效果越明顯,在IOU為0.8時提升了近14%,加入候選框去冗余算法后,在各個IOU閾值的情況下都有近0.5%的提升。

表2 各NMS在不同IOU閾值下準確率比較

進一步分析提出的NMS算法與標準NMS在不同IOU閾值下的mAP指標,發(fā)現(xiàn)改進算法同樣有很大的提升,而且隨之IOU的增大效果越明顯,在IOU為0.8時,提升了近20%。實驗結(jié)果如表3所示。

表3 各NMS在不同IOU閾值下mAP比較

2.5 定性分析

為了更直觀地展示改進的YOLOv3算法在檢測效果上的表現(xiàn),本文選取了在測試集中的幾組典型檢測結(jié)果。

(1)Kmeans++重聚類對檢測結(jié)果的影響

本文分別對重聚類前后的網(wǎng)絡(luò),提取置信度在0.8以上且未經(jīng)過NMS處理的結(jié)果進行分析,結(jié)果如圖4~5所示。由圖可知,重聚類之前雖然能檢測出手勢,但是誤差較大,而聚類之后手勢候選框相當(dāng)貼合GroundTruth。

圖4 重聚類前檢測結(jié)果

圖5 重聚類后檢測結(jié)果

(2)候選框去冗余算法對檢測結(jié)果的影響

在改進算法的基礎(chǔ)上,分別對加入去冗余算法前后進行評估,結(jié)果如圖6~7所示。由圖可知,對于兩個置信度很高且相互包含的候選框,因為其IOU較小,原NMS算法無法將其篩除,而改進的NMS算法準確地篩除了冗余的候選框。

圖6 未加入去冗余算法

圖7 加入去冗余算法

(3)改進算法對難檢測樣本的檢測效果

本文選取手勢檢測中最為常見的遮擋,以及不完整手勢樣本,進行檢測。圖8所示為改進算法在嚴重遮擋的場景下的檢測結(jié)果,可見不論是手掌被遮擋還是手指被遮擋,算法都能很好地檢測出目標。圖9所示為目標不完整的檢測結(jié)果,可見當(dāng)手勢部分移出界外時,算法能準確檢測出目標,同時當(dāng)手勢被手臂完全遮擋時,算法不會產(chǎn)生誤判。

圖8 嚴重遮擋下的檢測效果

圖9 手勢不完整下的檢測結(jié)果

3 結(jié)束語

本文針對手勢檢測對于檢測準確度、檢測準確率以及實時性要求較高的特點,選取了YOLOv3來進行手勢檢測。由于原始的YOLOv3無法滿足手勢檢測的要求,本文從3個方面進行了改進:用Kmeans++進行尺度重聚類,使得網(wǎng)絡(luò)初始Prior更貼合數(shù)據(jù)分布;引入FocalLoss損失函數(shù)代替了原本的交叉熵置信度損失函數(shù),改善網(wǎng)絡(luò)的訓(xùn)練過程;用加權(quán)NMS替換了傳統(tǒng)的NMS,并加入位置判別的去冗余模塊,提高檢測框與GroundTruth的貼合程度并有效地去除冗余候選框。通過實驗驗證,本文提出的算法相較于原算法,在檢測率以及mAP上都取得了較大的提升。

猜你喜歡
候選框置信度手勢
重定位非極大值抑制算法
面向自然場景文本檢測的改進NMS算法
硼鋁復(fù)合材料硼含量置信度臨界安全分析研究
基于深度學(xué)習(xí)的重疊人臉檢測
挑戰(zhàn)!神秘手勢
V字手勢的由來
正負關(guān)聯(lián)規(guī)則兩級置信度閾值設(shè)置方法
一種針對特定目標的提議算法
勝利的手勢
置信度條件下軸承壽命的可靠度分析
当阳市| 墨江| 武山县| 林西县| 武功县| 临沂市| 江华| 海宁市| 黑龙江省| 山丹县| 正镶白旗| 余干县| 贵南县| 伊宁市| 河曲县| 丰镇市| 丹东市| 阜新市| 曲阳县| 乡宁县| 南皮县| 仁怀市| 崇义县| 泰安市| 应用必备| 祥云县| 漳州市| 方山县| 赤水市| 溧水县| 宜川县| 汤原县| 重庆市| 南开区| 陆川县| 龙江县| 长沙市| 安宁市| 湟中县| 高陵县| 山丹县|