2—YOLO2
Darknet: Open Source Neural Networks in Chttps://pjreddie.com/darknet/
YOLO: Real-Time Object Detectionhttps://pjreddie.com/darknet/yolo/
Pre-Trained Modelshttps://pjreddie.com/darknet/imagenet/
yolo_voc.cfg中參數(shù)
第一個(gè)net
[net] batch=64 //每次迭代要進(jìn)行訓(xùn)練的圖片數(shù)量 subdivisions=8// height=416 //圖像縮放后的大小 width=416 channels=3//彩色圖像 momentum=0.9 decay=0.0005 angle=0 //角度 saturation = 1.5 //飽和度 exposure = 1.5 //曝光度 hue=.1 //色調(diào) learning_rate=0.0001 max_batches = 32000//最大訓(xùn)練迭代次數(shù) policy=steps steps=100,20000,30000 scales=10,.1,.1 【解釋】 batch:每次迭代要進(jìn)行訓(xùn)練的圖片數(shù)量 subdivisions:batch中的圖片再產(chǎn)生子集,源碼中的圖片數(shù)量int imgs = net.batch * net.subdivisions * ngpus width:輸入圖片寬度, height:輸入圖片高度,channels :輸入圖片通道數(shù)對(duì)于每次迭代訓(xùn)練,YOLOv2會(huì)基于角度(angle),飽和度(saturation),曝光(exposure),色調(diào)(hue)產(chǎn)生新的訓(xùn)練圖片 angle:圖片角度變化,單位為度,假如angle=5,就是生成新圖片的時(shí)候隨機(jī)旋轉(zhuǎn)-5~5度 saturation & exposure: 飽和度與曝光變化大小,tiny-yolo-voc.cfg中1到1.5倍,以及1/1.5~1倍 hue:色調(diào)變化范圍,tiny-yolo-voc.cfg中-0.1~0.1 max_batches:最大迭代次數(shù)中間的網(wǎng)絡(luò)結(jié)構(gòu)不列出了,看最后一個(gè)卷積層
[convolutional] batch_normalize=1 size=3 stride=1 pad=1 filters=1024 //卷積核的個(gè)數(shù) activation=leaky//leaky激活函數(shù),大于0的為x,小于0的為0[convolutional] size=1 stride=1 pad=1 filters=40//用3類訓(xùn)練,所以5*(3+4+1) activation=linear [region]最后一層 anchors = 1.08,1.19, 3.42,4.41, 6.63,11.38, 9.42,5.11, 16.62,10.52 bias_match=1 classes=3//類別數(shù) coords=4 // num=5 softmax=1 jitter=.2 rescore=1雖然region(YOLOv1的detection)在最后一層,但是很多參數(shù)都是一開(kāi)始就載入使用的,尤其是對(duì)于圖片數(shù)據(jù)處理的參數(shù) classes:類別數(shù)量 coords:BoundingBox的tx,ty,tw,th,tx與ty是相對(duì)于左上角的gird,同時(shí)是當(dāng)前grid的比例,tw與th是寬度與高度取對(duì)數(shù) num:每個(gè)grid預(yù)測(cè)的BoundingBox個(gè)數(shù) jitter:利用數(shù)據(jù)抖動(dòng)產(chǎn)生更多數(shù)據(jù),YOLOv2中使用的是crop,filp,以及net層的angle,flip是隨機(jī)的,crop就是jitter的參數(shù),tiny-yolo-voc.cfg中jitter=.2,就是在0~0.2中進(jìn)行crop anchors:預(yù)測(cè)框的初始寬高,第一個(gè)是w,第二個(gè)是h,總數(shù)量是num*2,YOLOv2作者說(shuō)anchors是使用K-MEANS獲得,其實(shí)就是計(jì)算出哪種類型的框比較多,可以增加收斂速度,如果不設(shè)置anchors,默認(rèn)是0.5,還有就是anchors讀入?yún)?shù)中名字是biases 這里有一個(gè)計(jì)算樣本anchors的Python腳本,anchors生成腳本 bias_match:如果為1,計(jì)算best iou時(shí),預(yù)測(cè)寬高強(qiáng)制與anchors一致 softmax:如果為1,使用softmax rescore:決定使用哪種方式計(jì)算IOU的誤差,為1時(shí),使用當(dāng)前best iou計(jì)算,為0時(shí),使用1計(jì)算 object_scale & noobject_scale & class_scale & coord_scale:YOLOv1論文中cost function的權(quán)重,哪一個(gè)更大,每一次更新權(quán)重的時(shí)候,對(duì)應(yīng)方面的權(quán)重更新相對(duì)比重更大 thresh:決定是否需要計(jì)算IOU誤差的參數(shù),大于thresh,IOU誤差不會(huì)夾在cost function中 random:如果為1每次迭代圖片大小隨機(jī)從320到608,步長(zhǎng)為32,如果為0,每次訓(xùn)練大小與輸入大小一致總結(jié)
- 上一篇: 1—YOLO2:环境搭建
- 下一篇: 3—YOLO:训练自己的数据