Yolov4-tiny를 쓰기 위해 코드
git hub : https://github.com/AlexeyAB/darknet

 

AlexeyAB/darknet

YOLOv4 / Scaled-YOLOv4 / YOLO - Neural Networks for Object Detection (Windows and Linux version of Darknet ) - AlexeyAB/darknet

github.com

패키지는 yolov5 requirement.txt 와 같은 패키지를 사용하고 있음

gpu : RTX 3090(24GB)
CUDA : 11.1
nvidia-driver : 455.55
cudnn : 8.0.4
tensorRT : 7.2.3.4
os : Ubuntu 18.04
( 만약 cmake 없다면 설치해줘야 함)

Yolov4-tiny를 사용하기 위해서 {darknet(yolov4)}/cfg/yolov4-tiny.cfg 를 수정해서 사용(복사하고 나서 원하는 이름으로 변경후에 사용하는걸 추천) config 파일에서 배치들을 수정해서 사용하면 됨 (모델구조는 costum layer를 사용하지 않으면 바꾸지 않고 진행 혹시나 변경하게 되면 pretrained weight를 사용할 수 없음)

그리고 yolov4-tiny pretrained weight : https://github.com/AlexeyAB/darknet/releases/download/darknet_yolo_v4_pre/yolov4-tiny.weights

바꿔야하는 기준에 대해서 github에 작성되어 있다

{darknet(yolov4)}/data/fire.data
{darknet(yolov4)}/data/fire.name
를 수정해야하는데 fire.data에는 데이터 경로와 class 이름들이 들어가 있는 fire.name의 경로 클래스 갯수등이 들어가고 train 결과가 backup/ 밑으로 가도록 경로를 설정해준다
fire.name에는 라벨링 class의 이름들을 적어준다

 

$ vi ./data/fire.data
classes= 2
train  = data/fire_train.txt
valid  = data/fire_val.txt
#difficult = data/fire_test.txt
names = data/fire.names
backup = backup/
$ vi ./data/fire.name
fire
smoke

 

라벨링 데이터의 경우
[object-class][x_center] [y_center][width] [height] 순으로 적혀 있다.

 

train 실행
$ ./darknet detector train data/fire.data cfg/yolov4-tiny.cfg yolov4-tiny.conv.29

demo 실행
$ ./darknet detector demo data/fire.data cfg/yolov4-tiny.cfg /backup/yolov4-tiny_best.weights /{data_path}/fire.mp4

 

 

'딥러닝모델' 카테고리의 다른 글

Yolov4-tiny TensorRT(tkDNN빌드 과정)  (0) 2021.06.28
Multi object Tracking Study - FairMOT-2  (0) 2021.06.27
Multi object Tracking Study - FairMOT  (0) 2021.06.27
Yolov5 Train 및 TensorRT  (0) 2021.06.27

+ Recent posts