• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      二維碼定位的YOLOv3-ms算法

      2021-01-04 00:59:38楊慶江臧佳琦楊少輝
      關(guān)鍵詞:特征提取二維碼卷積

      楊慶江,臧佳琦,楊少輝

      (黑龍江科技大學(xué) 電子與信息工程學(xué)院, 哈爾濱 150022)

      0 引 言

      1994年,日本的DENSO WAVE公司首先推出二維碼,由于其可以存儲(chǔ)更多的信息被廣泛應(yīng)用到各個(gè)領(lǐng)域。隨著應(yīng)用場(chǎng)景的多變復(fù)雜,二維碼可能會(huì)產(chǎn)生反轉(zhuǎn)、扭曲、磨損等狀況,加大了二維碼定位的困難,因此,二維碼在復(fù)雜場(chǎng)景中快速準(zhǔn)確定位是一個(gè)難點(diǎn)。在利用傳統(tǒng)圖像處理方式中,趙健雄等[1]為解決二維碼失真的問(wèn)題提出了新型QR碼自適應(yīng)定位算法,解決了二維碼20°以?xún)?nèi)扭曲的檢測(cè)。屈德濤等[2]為提高復(fù)雜場(chǎng)景中的識(shí)別效果提出了先使用Viola-Jones 快速目標(biāo)檢測(cè)框架粗略定位出候選區(qū)域,通過(guò)二位碼定位標(biāo)志從候選區(qū)域中定位出二維碼的位置。在傳統(tǒng)圖像處理中需要人為確定二維碼的有限個(gè)特征,通過(guò)這些特征確定二維碼的位置,如果特征因?yàn)橥獠凯h(huán)境的不確定性被損壞,則檢測(cè)精度會(huì)有所下降。

      近年來(lái),基于深度學(xué)習(xí)的目標(biāo)檢測(cè)有了突出的進(jìn)展[3],深度學(xué)習(xí)的方法是使神經(jīng)網(wǎng)絡(luò)自動(dòng)學(xué)習(xí)目標(biāo)特征,避免人為提取特征的不確定性,因此,文中沿用了深度學(xué)習(xí)的方法定位二維碼?;谏疃葘W(xué)習(xí)的檢測(cè)算法大致分為兩種,第一種是二階段檢測(cè)算法,主要有R-CNN[4]、fast R-CNN[5]、faster R-CNN[6],這種方式利用滑動(dòng)窗口和特征圖做卷積操作,生成候選框,將候選框生成等長(zhǎng)的特征向量,送入分類(lèi)器和回歸器得到分類(lèi)結(jié)果和回歸結(jié)果。第二種是一階段算法,主要有YOLO[7]、SSD[8]、YOLOv2[9]、 YOLOv3,這種算法主要是將輸入圖像劃分成不同大小的網(wǎng)格后進(jìn)行檢測(cè),每一個(gè)網(wǎng)格只負(fù)責(zé)檢測(cè)這一區(qū)域的目標(biāo)。Mobilenetv2是Mobilenet[10]的改進(jìn)版,是一種輕量級(jí)網(wǎng)絡(luò),其可以在稍微降低精度的情況下大大減小模型的參數(shù)量。

      筆者將提出的算法稱(chēng)為YOLOv3-ms,主要包括重新配置的Mobilenetv2、SPP結(jié)構(gòu)塊和輕量特征金字塔(DW-FPN)。算法在YOLOv3的基礎(chǔ)上進(jìn)行改進(jìn),將Mobilenetv2和YOLOv3相結(jié)合,提出輕量特征金字塔,使用SPP結(jié)構(gòu)塊以獲得豐富的感受野信息,運(yùn)用Mosaic數(shù)據(jù)增強(qiáng)方法來(lái)擴(kuò)充數(shù)據(jù)集,采用K-means算法對(duì)anchor box進(jìn)行重新聚類(lèi),實(shí)驗(yàn)對(duì)比分析YOLOv3-ms檢測(cè)模型比YOLOv3檢測(cè)精確。

      1 相關(guān)模型和算法

      1.1 YOLOv3算法

      YOLOv3是一階段檢測(cè)算法,不需要中間步驟,將圖片送入網(wǎng)絡(luò)中直接得到目標(biāo)的偏移信息和類(lèi)別信息,因此,在速度上遠(yuǎn)超二階段檢測(cè)算法。YOLOv3相較YOLO和YOLOv2算法創(chuàng)新的使用了特征金字塔(FPN),結(jié)構(gòu)如圖1所示。將不同輸入融合,使用三個(gè)不同尺度的特征圖進(jìn)行預(yù)測(cè)。

      圖1 特征金字塔Fig. 1 Feature pyramid network

      YOLOv3主要分三步完成檢測(cè):第一步先將輸入的圖像進(jìn)行數(shù)據(jù)增強(qiáng),并且resize到416×416大小;第二步將圖像通過(guò)主干特征提取網(wǎng)絡(luò)darknet53,經(jīng)過(guò)FPN特征金字塔和預(yù)測(cè)模塊最終得到重復(fù)的預(yù)測(cè)框;第三步經(jīng)過(guò)非極大值抑制(NMS)去除重復(fù)的預(yù)測(cè)框得到預(yù)測(cè)結(jié)果。YOLOv3將圖片劃分成網(wǎng)格,每個(gè)網(wǎng)格只負(fù)責(zé)此網(wǎng)格中可能存在的目標(biāo),進(jìn)而得到每個(gè)類(lèi)別的邊框偏移量(4個(gè)坐標(biāo)偏移信息)和類(lèi)別概率(每個(gè)類(lèi)別的概率),并且每個(gè)網(wǎng)格分配3個(gè)不同尺度的anchor,最終每一個(gè)網(wǎng)格輸出的張量為

      T=S×S×(3×(4+1+N)),

      (1)

      式中:T——輸出張量;

      S——?jiǎng)澐值木W(wǎng)格數(shù);

      N——類(lèi)別個(gè)數(shù)。

      1.2 Mobilenetv2

      Mobilenetv2是輕量級(jí)網(wǎng)絡(luò)其網(wǎng)絡(luò)結(jié)構(gòu)如表1所示,其中:t為深度可分離卷積中特征圖深度的控制系數(shù),c為通道數(shù),n為結(jié)構(gòu)塊重復(fù)次數(shù),s為第一個(gè)結(jié)構(gòu)塊的卷積步長(zhǎng)。該網(wǎng)絡(luò)主要利用深度可分離卷積代替原始卷積,大大減少模型參數(shù)量,提升模型的運(yùn)行速度。其提出了一種倒殘差結(jié)構(gòu),原理是先利用1×1的卷積核進(jìn)行通道升維,然后用深度可分離卷積(DW卷積)進(jìn)行特征提取,最后用1×1卷積核進(jìn)行通道降維。結(jié)構(gòu)如圖2所示,圖中,Dwise表示深度可分離卷積,Stride表示卷積步長(zhǎng),Conv表示卷積,3×3表示卷積核大小。

      由圖2可見(jiàn),Mobilenetv2 倒殘差塊共兩種,分別是倒殘差結(jié)構(gòu)塊A和倒殘差結(jié)構(gòu)塊B,倒殘差結(jié)構(gòu)塊A利用殘差邊將輸入等價(jià)映射,和末尾卷積進(jìn)行相加輸出,提高了梯度跨層傳播的能力。倒殘差結(jié)構(gòu)塊B中沒(méi)有使用殘差連接,原因是在此結(jié)構(gòu)塊中要進(jìn)行特征圖的縮小,并且保證輸入和輸出特征圖的大小相匹配。這兩個(gè)殘差結(jié)構(gòu)的重復(fù)有序排列組成了Mobilenetv2網(wǎng)絡(luò)。

      圖2 Mobilenetv2 倒殘差塊Fig. 2 Basic block Mobilenetv2

      由表1可知,Mobilenetv2一共包含7個(gè)不同卷積通道的Bottleneck結(jié)構(gòu)塊,為深度可分離卷積中特征圖深度的控制系數(shù)、為通道數(shù)、為結(jié)構(gòu)塊重復(fù)次數(shù)、為第一個(gè)結(jié)構(gòu)塊的卷積步長(zhǎng)。1-8層主要用提取圖像的特征信息,9層用于調(diào)整通道,10和11層組成了分類(lèi)層。

      表1 Mobilenetv2 網(wǎng)絡(luò)結(jié)構(gòu)

      1.3 SPP結(jié)構(gòu)

      SSP結(jié)構(gòu)是在SppNet網(wǎng)絡(luò)中提出,為了保證經(jīng)過(guò)SPP結(jié)構(gòu)后通道數(shù)不會(huì)發(fā)生改變,在頭部和尾部分別添加了卷積層來(lái)調(diào)整通道,其結(jié)構(gòu)如圖3所示。先將特征圖送入到卷積層調(diào)整通道,然后將特征圖分別進(jìn)行步長(zhǎng)分別為5、9、13的最大池化操作,將這三個(gè)池化的結(jié)果與自己的特征圖在channel這一維度進(jìn)行堆疊,堆疊之后通道數(shù)會(huì)是原先的4倍,之后送入下一個(gè)卷積層,將通道再次調(diào)整回原先的通道。

      圖3 SPP結(jié)構(gòu)Fig. 3 SPP structure

      1.4 Mosaic數(shù)據(jù)增強(qiáng)

      Mosaic數(shù)據(jù)增強(qiáng)參考了CutMix數(shù)據(jù)增強(qiáng)方式,理論上具有一定的相似性,CutMix數(shù)據(jù)增強(qiáng)利用兩張圖片進(jìn)行拼接,Mosaic數(shù)據(jù)增強(qiáng)利用四張圖片進(jìn)行拼接。Mosaic方法實(shí)現(xiàn)思路是:利用了四張圖片,分別對(duì)這四張圖片進(jìn)行翻轉(zhuǎn)、縮放、色域變換等,按照四個(gè)方向擺好位置,最終將四張圖片進(jìn)行拼接,使模型在復(fù)雜的環(huán)境中也有較好的檢測(cè)效果。

      2 網(wǎng)絡(luò)設(shè)計(jì)

      2.1 YOLOv3-ms算法

      為提升網(wǎng)絡(luò)的推理速度,減少模型參數(shù)量,使用輕量級(jí)網(wǎng)絡(luò)Mobielnetv2作為主干特征提取網(wǎng)絡(luò)。為獲得不同的感受野信息,增加SPP結(jié)構(gòu)塊,利用改進(jìn)后的DW-FPN進(jìn)行特征融合,利用YOLOv3的head進(jìn)行檢測(cè)。以上就是YOLOv3-ms算法的基本設(shè)計(jì)思想,在主干特征提取網(wǎng)絡(luò)中,InvertedResidual是倒殘差結(jié)構(gòu)、BN是批歸一化、ReLU是激活函數(shù)、Dwconv是深度可分離卷積。算法的詳細(xì)結(jié)構(gòu)如圖4所示。

      輸入的圖片首先被送入圖4中的主干特征提取網(wǎng)絡(luò)進(jìn)行特征提取,特征圖在4_3、6_3、9層輸出,將得到的三個(gè)特征圖分別輸入到SPP結(jié)構(gòu)塊,同理將SPP結(jié)構(gòu)塊輸出的特征圖輸入到DW-FPN中進(jìn)行特征融合,輸出三個(gè)不同尺度大小的特征圖分別是13×13×T、26×26×T、52×52×T,通過(guò)此特征圖對(duì)二維碼進(jìn)行預(yù)測(cè)。

      圖4 YOLOv3-ms結(jié)構(gòu)Fig. 4 YOLOv3-ms structure

      2.1.1 配置Mobilenetv2網(wǎng)絡(luò)

      Mobilenetv2是一種輕量級(jí)卷積神經(jīng)網(wǎng)絡(luò),其結(jié)構(gòu)簡(jiǎn)單、模型參數(shù)量小、可以在不減少模型精度的前提下大幅提高模型的運(yùn)行速度。Mobilenetv2網(wǎng)絡(luò)結(jié)構(gòu)如表1所示。表1中,Mobilenetv2共11層。因?yàn)樵谀繕?biāo)檢測(cè)中只用Mobilenetv2作特征提取器,因此只保存了1~9層,去掉了分類(lèi)層(10和11層)。剩下的層作為YOLOv3-ms的主干提取網(wǎng)絡(luò),結(jié)構(gòu)如圖4中Mobilenetv2所示。

      2.1.2 SPP結(jié)構(gòu)塊

      SPP結(jié)構(gòu)塊由三個(gè)SPP結(jié)構(gòu)組成,保證網(wǎng)絡(luò)進(jìn)行多尺度訓(xùn)練以適應(yīng)不同分辨率圖片的輸入,并且它提高了網(wǎng)絡(luò)的感受野。為了進(jìn)一步提高網(wǎng)絡(luò)的預(yù)測(cè)精度,本文將特征提取網(wǎng)絡(luò)中4_3、6_3、9這三層的特征并排輸出到三個(gè)SPP結(jié)構(gòu)中來(lái)獲得不同層的感受野信息,結(jié)構(gòu)如圖4中的SPP結(jié)構(gòu)塊。此結(jié)構(gòu)塊的優(yōu)點(diǎn)是使主干特征網(wǎng)絡(luò)提取到的三個(gè)有效特征都能獲得豐富的感受野信息。

      2.1.3 輕量特征金字塔

      YOLOv3中使用特征金字塔(FPN)進(jìn)行底層特征和高層特征的融合,提高了小目標(biāo)的檢測(cè)性能,并且降低了誤檢率。FPN中用于調(diào)整通道數(shù)的卷積核參數(shù)量較少,用于特征提取的卷積核參數(shù)較多。為了使模型更加輕量化,利用深度可分離卷積(Dwconv)代替FPN中用于特征提取的卷積核,將替換后的FPN稱(chēng)之為DW-FPN,結(jié)構(gòu)如圖4中的輕量特征金字塔(DW-FPN)所示。 DW-FPN實(shí)現(xiàn)方法是:將底層特征a經(jīng)過(guò)深度可分離(Dwconv)卷積,之后上采樣和上層特征b特征堆疊得到c,以此類(lèi)推得到d。最終a、c、d經(jīng)過(guò)兩個(gè)深度可分離卷積(Dwconv)得到三個(gè)不同大小的特征圖e、f、g。

      2.2 anchor box重聚類(lèi)

      Anchor box重聚類(lèi)是利用K-mean聚類(lèi)算法,利用兩個(gè)框之間的IOU值作為距離參量,對(duì)數(shù)據(jù)集的真實(shí)框進(jìn)行聚類(lèi),將距離最為接近的框聚成幾個(gè)集合。YOLOv3算法中共聚類(lèi)出9個(gè)中心框,并且聚類(lèi)出的anchor box是在coco數(shù)據(jù)集或者voc數(shù)據(jù)集中得到,這兩個(gè)數(shù)據(jù)集目標(biāo)類(lèi)別較多,形狀差異較大,與二維碼數(shù)據(jù)集存在較大差異,因此,重新聚類(lèi)了anchor box。K-means算法的流程是隨機(jī)選取幾個(gè)質(zhì)心,然后將數(shù)據(jù)集中的每一個(gè)點(diǎn)分配到一個(gè)距其最近的簇中,這一步完成后將每個(gè)簇的質(zhì)心更新為該簇所有點(diǎn)的平均值,直至中心不再變化。而在anchor聚類(lèi)中,則是將真實(shí)框之間的交并比(ηIOU)作為距離進(jìn)行度量,度量公式為

      d(A,B)=1-ηIOU(A,B),

      (2)

      式中;A——真實(shí)框的集合;

      B——聚類(lèi)中心框的集合;

      d——A和B的距離;

      ηIOU——交并比。

      文中針對(duì)二維碼圖像進(jìn)行聚類(lèi),得到9個(gè)anchor分別是[372,362]、[234,231]、[164,165]、[125,116]、[87,89]、[68,62]、[47,81]、[44,48]、[23,25]。

      3 實(shí)驗(yàn)與結(jié)果分析

      3.1 實(shí)驗(yàn)環(huán)境和數(shù)據(jù)集

      文中使用的環(huán)境是anaconda+python3.7+pytorch1.5+cuda10.2,顯卡是NVDIA GTX2080。

      實(shí)驗(yàn)的數(shù)據(jù)來(lái)源有三部分,共2 073張圖片,第一部分?jǐn)?shù)據(jù)集網(wǎng)上下載,共1 000張;第二部分人工采集,共500張;第三部分用Mosaic方法生成并保存了相應(yīng)的.xml文件,共573張。針對(duì)人工采集的圖片,用labelImg工具對(duì)其進(jìn)行人工標(biāo)注,命名為QR,標(biāo)簽數(shù)據(jù)保存為A.xml格式文件。在拍攝標(biāo)注的過(guò)程中,將二維碼在不同環(huán)境、角度進(jìn)行拍攝,并且拍攝了部分模糊圖像以使模型更具有泛化性能,如圖5所示。之后將數(shù)據(jù)集分成訓(xùn)練集、測(cè)試集、驗(yàn)證集之比為8∶1∶1的比例提供訓(xùn)練、測(cè)試和驗(yàn)證。訓(xùn)練完成后生成的A.pth權(quán)重文件提供給推理腳本進(jìn)行推理,最后用驗(yàn)證集驗(yàn)證模型的好壞。

      圖5 人工拍攝模糊圖像Fig. 5 Take a blurry image manually

      3.2 訓(xùn)練方案與結(jié)果分析

      一共訓(xùn)練了三個(gè)模型,分別是YOLOv3、YOLOv3-ms、沒(méi)有anchor聚類(lèi)的YOLOv3-ms。為加快網(wǎng)絡(luò)收斂速度,采用遷移學(xué)習(xí)的方法。使用BCELoss和MSELoss作為損失函數(shù),自適應(yīng)Adam優(yōu)化損失函數(shù),采用pytorch框架中StepLR作為學(xué)習(xí)率下降算法。初始學(xué)習(xí)率設(shè)為0.001,最大迭代150個(gè)epoch,批量大小設(shè)為64,迭代80個(gè)epoch后批量大小改為32,120個(gè)epoch后,將學(xué)習(xí)率改為0.000 1。

      3.2.1 測(cè)試集評(píng)估模型

      模型訓(xùn)練完成之后在測(cè)試集完成測(cè)試。使用精確率P、召回率R和平均精度αAP作為模型最終評(píng)價(jià)指標(biāo),結(jié)果如表2所示。

      表2 模型評(píng)價(jià)指標(biāo)結(jié)果

      表2中YOLOv3-ms*未對(duì)二維碼數(shù)據(jù)集進(jìn)行anchor box聚類(lèi),F(xiàn)ps在NVIDIA 920M顯卡上得出。由表可知,由于YOLOv3-ms使用了SPP模塊,檢測(cè)的準(zhǔn)確率高于YOLOv3。由于Mobilenetv2參數(shù)量較少,特征提取能力微弱與darknet53,因此召回率略低于YOLOv3。因?yàn)槭褂昧溯p量級(jí)模型nMobilenetv2和DW-FPN,因此較YOLOv3,F(xiàn)ps提高了近3倍,模型大小縮小了5倍多。

      3.2.2 檢測(cè)效果可視化

      檢測(cè)效果在NVIDIA GeForce 920M顯卡的筆記本上進(jìn)行可視化,刷新率為5.804 847,如圖6所示。

      圖6 檢測(cè)效果可視化Fig. 6 Detection effect visualization

      圖6a用手機(jī)設(shè)置了不同的背光亮度來(lái)模擬強(qiáng)光和弱光下的二維碼情況,從檢測(cè)效果看出,在復(fù)雜環(huán)境中有比較好的檢測(cè)效果,圖6b展示了二維碼被部分遮擋、形變等情況下的檢測(cè)效果,可以看出在這種情況下模型依然有較好的檢測(cè)效果。

      4 結(jié) 論

      為了使二維碼在復(fù)雜環(huán)境下仍然具有較好的檢測(cè)性能,提出一種YOLOv3-ms 二維碼定位算法。

      (1)利用修改后的 Mobilenetv2網(wǎng)絡(luò)作為主干特征提取網(wǎng)絡(luò),大大減小了模型的參數(shù)量,并且在Mobilenetv2后添加了SPP結(jié)構(gòu)塊,豐富了特征層感受野信息。

      (2)利用輕量特征金字塔(DW-FPN)進(jìn)行特征融合,為網(wǎng)絡(luò)的預(yù)測(cè)部分提供豐富的上下文特征的同時(shí)提高了模型運(yùn)行效率,并且有利于小尺寸二維碼的檢測(cè)。

      (3)針對(duì)二維碼定位這一特定任務(wù),對(duì)YOLOv3的anchor進(jìn)行重新的聚類(lèi),得到更適合二維碼定位的anchor box,使網(wǎng)絡(luò)更容易準(zhǔn)確預(yù)測(cè)目標(biāo)位置。

      通過(guò)實(shí)驗(yàn)對(duì)比和可視化分析表明,在燈光較強(qiáng)、燈光較暗、被遮擋、形變等復(fù)雜環(huán)境下仍然有良好的檢測(cè)效果,盡管召回率低于YOLOv3,但是在精度和速度上均有大幅提升。

      猜你喜歡
      特征提取二維碼卷積
      可以吃的二維碼
      基于3D-Winograd的快速卷積算法設(shè)計(jì)及FPGA實(shí)現(xiàn)
      二維碼
      童話世界(2020年32期)2020-12-18 18:15:41
      從濾波器理解卷積
      電子制作(2019年11期)2019-07-04 00:34:38
      基于Daubechies(dbN)的飛行器音頻特征提取
      電子制作(2018年19期)2018-11-14 02:37:08
      基于傅里葉域卷積表示的目標(biāo)跟蹤算法
      讓嚴(yán)肅的二維碼呆萌起來(lái)
      Bagging RCSP腦電特征提取算法
      二維碼,別想一掃了之
      基于MED和循環(huán)域解調(diào)的多故障特征提取
      华坪县| 四会市| 敦化市| 桐梓县| 于都县| 阿克陶县| 平乡县| 册亨县| 安达市| 易门县| 阿拉善右旗| 清涧县| 克东县| 三穗县| 化隆| 永春县| 牟定县| 虹口区| 城市| 大宁县| 祁门县| 大足县| 大关县| 上高县| 许昌县| 电白县| 南开区| 安吉县| 福建省| 祁门县| 武夷山市| 枣阳市| 潢川县| 临沭县| 东山县| 绥阳县| 吐鲁番市| 陕西省| 安乡县| 长宁区| 浦城县|