[YOLO] cfg file analyse

최재혁·2022년 2월 8일
0

YOLO refinement

목록 보기
1/3

configuration file

Network의 layout을 block단위로 정의해놓은 파일
YOLO에는 6type의 layer들이 있다
https://www.youtube.com/watch?v=G5Ej_hwgCjE
https://hnsuk.tistory.com/27

layers

- Network

[net]
# Testing
# batch=1 
# subdivisions=1 
# Training

# 한 번의 iteration 시 사용되는 image set의 크기
batch=64

# mini_batch 
subdivisions=8

# input img size
width=512
height=512
channels=3

# gradient descent algorithm (gradient 보정해준다)
momentum=0.949

# weight decay : regularization overfitting 방지, data imbalance 제거 값 커질수록 가중치 값이 작아짐 but 너무 크면 under fitting 발생
decay=0.0005

# agumentation
angle=0
saturation = 1.5
exposure = 1.5
hue=.1

# learning rate : training 시 초기 학습률
learning_rate=0.0013
# burn_in : 해당 training 횟수 동안 learning_rate를 일정한 수치만큼 높힘
burn_in=1000
# training 진행 시마다 처리되는 최대 batch 수
max_batches = 500500
# training 시 lr 조절 방식
policy=steps
# training 시 lr 조정 되는 training 횟수 index
steps=400000,450000
# step시 곱하는 수치
scales=.1,.1

# agumentation 
mosaic=1

- Convolutional (여러개 존재)

[convolutional]
batch_normalize=1
filters=64
size=1
stride=1
pad=1
activation=leaky

[convolutional]
batch_normalize=1
filters=32
size=1
stride=1
pad=1
activation=leaky

[convolutional]
batch_normalize=1
filters=64
size=3
stride=1
pad=1
activation=leaky

batch_normalize : Use or Not
filters : Number of filter to extract feature
size : filter size
stride : filter가 순회할 때의 간격
pad : padding
activation : function to use

- Shortcut

[shortcut]
from=-3
activation=linear

activation : function to use
from : -n (shortcut layer output에 n번째 전의 layer를 더해준다)
ResNet에서 사용되는 skip connection과 동일한 역할

- Route

[route]
layers = -2

or

[route]
layers = -1,-7

layers :
index 1개 : index에 해당되는 layer를 output
index 2개 : index에 해당되는 2개의 layer의 feature map을 concatnate 한 후 output

- Upsample

[upsample]
stride=2

stride : 값의 배수에 따라 feature map upsampling

- Yolo (prediction layer)

[yolo]
# mask : 사용할 anchor box selection
	ex) 0, 1, 2 -> (12,16), (19,36), (40,28)
mask = 0,1,2
# pre-defined default bounding box
anchors = 12, 16, 19, 36, 40, 28, 36, 75, 76, 55, 72, 146, 142, 110, 192, 243, 459, 401

classes=80

# number of anchor box 
num=9

# randomly crop image(jitter 범위)
jitter=.3

# loss 계산시 thresh hold 기준값
ignore_thresh = .7
# IOU thresh hold 크기 값
truth_thresh = 1
# network-input에 다른 size 사용
random=1

# ...?
scale_x_y = 1.2
iou_thresh=0.213
cls_normalizer=1.0
iou_normalizer=0.07
iou_loss=ciou
nms_kind=greedynms
beta_nms=0.6
profile
Autonomous driving vision

0개의 댓글