做醫(yī)院門戶網(wǎng)站 上海seo優(yōu)化一般優(yōu)化哪些方面
0. 寫在前面
? ? ? ? 這篇博文主要是為了記錄一下yolov5中的小的記憶點,方便自己查看和理解。
1. 完整過程
? ? ? ? (1)Input階段,圖片需要經(jīng)過數(shù)據(jù)增強Mosaic,并且初始化一組anchor預(yù)設(shè);
? ? ? ? (2)特征提取(Backbone):使用Conv、C3、SPPF基本結(jié)構(gòu)對輸入圖片進行特征提取,Conv用于對輸入進行下采樣(一共進行了5次下采樣);C3用于對輸入進行特征提取、融合,豐富特征的語義信息,在這個過程中使用了BoottleNeck減少參數(shù)量和計算量、借鑒CSPNet思想增強CNN學(xué)習(xí)能力;SPPF利用池化、特征融合的方式豐富特征的語義信息,使得最深層的特征圖擁有極豐富的語義信息;
? ? ? ? (3)加工特征(Neck):v5是三種尺度的特征圖融合淺層特征,淺層特征在檢測方面有優(yōu)勢,借鑒了PANet,對提取的特征圖融合淺層特征,使得特征圖既具有豐富的語義信息又具有物體準(zhǔn)確的位置信息;
? ? ? ? (4)預(yù)測目標(biāo)(Head):對加工后的特征圖進行預(yù)測,根據(jù)損失函數(shù)和優(yōu)化器優(yōu)化參數(shù)權(quán)重。
2. 小知識
? ? ? ? 2.1 特征融合方式
? ? ? ? concat: 張量拼接,會擴充兩個張量的維度,例如26*26*256和26*26*512張量拼接,結(jié)果是26*26*768;
? ? ? ? add:張量相加,張量直接相加,不會擴充維度,例如104*104*128和104*104*128相加,結(jié)果還是104*104*128。
? ? ? ? 2.2 anchor
? ? ? ? 錨框就是在圖像上預(yù)設(shè)好不同大小,不同長寬比的參照框。anchor是由FasterRCNN提出的,anchor解決了scale和aspect ratio變化范圍大的問題,即將單元格的預(yù)測框控件劃分了幾個子空間,降低模型學(xué)習(xí)難度。
? ? ? ? 輸入640*640的圖片,經(jīng)過32倍、16倍和8倍下采樣,會產(chǎn)生20*20、40*40和80*80大小的特征圖(網(wǎng)格尺寸),特征圖的每個像素(該像素對應(yīng)的視野大小就是網(wǎng)格中的單元格大小)設(shè)置3個anchor,因此v5共有(20*20+40*40+80*80)*3 = 25200個anchor。
? ? ? ? 借助網(wǎng)絡(luò)訓(xùn)練的強大擬合能力,直接讓網(wǎng)絡(luò)輸出每個anchor是否包含(或者說與物體有較大重疊,也就是IoU較大)物體,以及被檢測物體相對本anchor的中心點偏移以及長寬比例。因為anchor的位置是固定的,所以就很容易換算出實際物體的位置。
?????????2.3?BottleNeck
? ? ? ? 目的是減少參數(shù)量和計算而設(shè)計的,1*1,64?+ 3*3,64 + 1*1,256的卷積層替換3*3的卷積層;
假設(shè)Input[1,256,10,10],則:
普通卷積參數(shù)量:256 * 3 *3 *256+256=590080;計算量FLOPs:256*3*3*256*10*10=58982400;
BottleNeck的參數(shù)量:(256*1*1*64+64) + (64*3*3*64+64)+(64*1*1*256+256)=70016;
BottleNeck的計算量:256*1*1*64*10*10+64*3*3*64*10*10+64*1*1*256*10*10 = 6963200;
BottleNeck結(jié)構(gòu)減少了參數(shù)量和計算量十分明顯。