yolov5部署到iPhone或終端實(shí)踐全過程一
期待已久的檢測經(jīng)典又來來了一波強(qiáng)襲——yolov5。其實(shí)yolov5沒有完整的文件,現(xiàn)在最重要的應(yīng)該是把yolov4弄清楚,在目標(biāo)檢測領(lǐng)域中受益匪淺,可以在某些場景得到較高的提升。今天我們還是給大家分享yolov4,下一期我們將實(shí)踐得將yolov5部署到蘋果手機(jī)或者在終端通過攝像頭實(shí)時(shí)檢測!
一、技術(shù)回顧
有大量的特征被認(rèn)為可以提高卷積神經(jīng)網(wǎng)絡(luò)(CNN)的精度。需要在大型數(shù)據(jù)集上對這些特征的組合進(jìn)行實(shí)際測試,并對結(jié)果進(jìn)行理論驗(yàn)證。某些功能只對某些模型進(jìn)行操作,某些問題只對某些模型進(jìn)行操作,或只對小規(guī)模數(shù)據(jù)集進(jìn)行操作;而某些功能(如批處理規(guī)范化和剩余連接)則適用于大多數(shù)模型、任務(wù)和數(shù)據(jù)集。本文假設(shè)這些通用特征包括加權(quán)剩余連接(WRC)、跨階段部分連接(CSP)、跨小批量規(guī)范化(CmBN)、自對抗訓(xùn)練(SAT)和Mish激活。本文使用了新功能:WRC、CSP、CmBN、SAT、誤激活、馬賽克數(shù)據(jù)增強(qiáng)、CmBN、DropBlock正則化和CIoU丟失,并將其中一些功能結(jié)合起來,以達(dá)到以下效果:43.5%的AP(65.7%的AP50)用于MS COCO數(shù)據(jù)集,在Tesla V100上以65 FPS的實(shí)時(shí)速度。
二、創(chuàng)新點(diǎn)分析
Mosaic數(shù)據(jù)增強(qiáng)
把四張圖拼成一張圖來訓(xùn)練,變相的等價(jià)于增大了mini-batch。這是從CutMix混合兩張圖的基礎(chǔ)上改進(jìn);
Self-Adversarial Training
在一張圖上,讓神經(jīng)網(wǎng)絡(luò)反向更新圖像,對圖像做改變擾動,然后在這個(gè)圖像上訓(xùn)練。這個(gè)方法,是圖像風(fēng)格化的主要方法,讓網(wǎng)絡(luò)反向更新圖像來風(fēng)格化圖像。
Self-Adversarial Training (SAT) also represents a new data augmentation technique that operates in 2 forward backward stages. In the 1st stage the neural network alters the original image instead of the network weights. In this way the neural network executes an adversarial attack on itself, altering the original image to create the deception that there is no desired object on the image. In the 2nd stage, the neural network is trained to detect an object on this modified image in the normal way.
Cross mini-batch Normal
CmBN表示CBN修改的版本,如下圖所示,定義為 Cross mini-Batch Normalization(CMBN)。這只收集單個(gè)批次內(nèi)最小批次之間的統(tǒng)計(jì)數(shù)據(jù)。
modify SAM
從SAM的逐空間的attention,到逐點(diǎn)的attention;修改的PAN,把通道從相加(add)改變?yōu)閏oncat。
實(shí)驗(yàn)
以數(shù)據(jù)增強(qiáng)方法為例,雖然增加了訓(xùn)練時(shí)間,但可以讓模型泛化性能和魯棒性更好。例如下面的常見增強(qiáng)方法:
圖像擾動,
改變亮度、對比對、飽和度、色調(diào)
加噪聲
隨機(jī)縮放
隨機(jī)裁剪(random crop)
翻轉(zhuǎn)
旋轉(zhuǎn)
隨機(jī)擦除(random erase)
Cutout
MixUp
CutMix
通過實(shí)驗(yàn)看得出,用了很多tricks,簡直就是目標(biāo)檢測最強(qiáng)萬花筒,下表是對分類網(wǎng)絡(luò)的實(shí)驗(yàn):
CSPResNeXt-50 classifier accuracy
CSPDarknet-53 classifier accuracy
在YOLOv4檢測網(wǎng)絡(luò)上,對比了四個(gè)loss(GIoU、CIoU、DIoU、MSE),標(biāo)簽平滑,Cosine學(xué)習(xí)率,遺傳算法選超參數(shù),Mosaic數(shù)據(jù)增強(qiáng)等各種方法。下表是YOLOv4檢測網(wǎng)絡(luò)上的消融實(shí)驗(yàn)結(jié)果:
CSPResNeXt50-PANet-SPP, 512x512
使用不同與訓(xùn)練權(quán)重模型用于訓(xùn)練:
不同的mini-batch size結(jié)果:
最后,是在Maxwell、Pascal、Volta三個(gè)不同系列的GPU,在COCO 數(shù)據(jù)集上的結(jié)果對比:
最勁爆的是,在COCO數(shù)據(jù)集,與其他框架比較(速度和精度):
下一期,我們一起來看看怎么將yolov5部署到移動端或者終端通過攝像頭進(jìn)行目標(biāo)實(shí)時(shí)檢測!
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。