Yolo 설치하기

BANG·2021년 3월 4일
0

DL

목록 보기
2/2

pjreddie 의 darknet

pjreddie/darknet

AlexeyAB 의 darknet

AlexeyAB/darknet

위의 github 주소중 1개만 선택하기

git clone하기(pjreddie 예시)

$ git clone https://github.com/pjreddie/darknet
$ sudo apt-get install libopencv-dev
$ sudo apt-get install build-essential
$ cd darknet
$ vim Makefile

GPU=1
CUDNN=0
OPENCV=1
OPENMP=0
DEBUG=0

ARCH= -gencode arch=compute_35,code=sm_35 \
      -gencode arch=compute_50,code=[sm_50,compute_50] \
      -gencode arch=compute_52,code=[sm_52,compute_52] \
      -gencode arch=compute_70,code=[sm_70,compute_70] \
      -gencode arch=compute_75,code=[sm_75,compute_75] \
      -gencode arch=compute_80,code=[sm_80,compute_80] \

...생략...
$ make -j8
  • make를 다시 해야할 경우
$ make clean
$ make -j8

custom하기

$ cd cfg
$ vim yolov3.cfg

[net]
# Testing
#batch=32
#subdivisions=1
# Training
batch=32
subdivisions=16
width=416
height=416
channels=3
momentum=0.9
decay=0.0005
angle=0
saturation = 1.5
exposure = 1.5
hue=.1

learning_rate=0.001
burn_in=1000

#max_batches = 500200
max_batches = 50020    # train 시의 도표의 x좌표 조절**
policy=steps
steps=400000,450000
scales=.1,.1

...생략...
# 아래 부분은 해당 파일에 총 3번 변경 필요

[convolutional]
size=1
stride=1
pad=1
filters=36    # (클래스 수 + 5) * 3
activation=linear

[yolo]
mask = 6,7,8
anchors = 10,13,  16,30,  33,23,  30,61,  62,45,  59,119,  116,90,  156,198,  373,326
classes=7    # 클래스 수
num=9
jitter=.3
ignore_thresh = .7
truth_thresh = 1
random=1
$ vim custom.data 
classes= 7
train  = /home/user/Yolo_mark/x64/Release/data/train2.txt    # yolo mark의 train.txt
valid  = /home/user/Yolo_mark/x64/Release/data/valid.txt
names = /home/user/darknet/data/custom.names
backup = backup/
$ vim custom.names    # 클래스 이름
choco
water
tuna
apple

Yolo_mark 설치

git clone https://github.com/AlexeyAB/Yolo_mark.git
sudo apt-get install cmake
sudo apt-get install build-essential -y
sudo apt-get install libopencv-dev
cd Yolo_mark
cmake . 
make
chmod 777 linux_mark.sh 
./linux_mark.sh

파일, 디렉토리설명

yolo_mark/x64/Release/data/train.txt

Yolo mark로 이미지에 바운딩 박스를 추가할때마다 리스트가 추가

yolo_mark/x64/Release/data/img/

yolo_mark로 바운딩 박스를 추가하고자 하는 이미지를 여기에 추가

(주의) 서브디렉토리를 생성하지 않는다

Yolo_mark/x64/Release/data/obj.names

이미지 클래스를 영어로 추가

학습시키기

$ cd darknet
$ ./darknet detector train data/custom.data cfg/myYolov3.cfg darknet53.conv.74 | tee backup/train.log

이미지 테스트하기

$ cd darknet
$ ./darknet detector test data/custom.data cfg/yolov3.cfg backup/yolov3_last.weights -ext_output Testphoto/testimg1.jpg

$ ./darknet detector test data/custom.data cfg/yolov3_backup.cfg  backup/yolov3_backup_last.weights test/tuna.jpg

train.txt파일의 리스트(테스트 데이터셋)를 이용해서 prediction하고 결과 내용을 result.json에 저장

  • accuracy, precision, recall
$ cd darknet
$ ./darknet detector test cfg/coco.data cfg/yolov4.cfg yolov4.weights -ext_output -dont_show -out result.json < data/train.txt
profile
Record Everything!!

0개의 댓글