Dev/AI
Yolo v3 사용법
date
Mar 20, 2026
slug
yolov3
author
status
Public
tags
AI
Detection
Yolo
Yolo v3
summary
Yolo v3를 사용하는 방법 정리
type
Post
thumbnail
updatedAt
Mar 20, 2026 06:50 AM
category
Dev/AI
Ultralytics에서 다시 만든
Yolo v3u가 아닌 Yolo v3가 필요한 상황이 있어 정리함. 공식 문서의 pjreddie Darknet에서는 Metrics 관련 내용이 지원되지 않아, AlexeyAB Darknet을 사용함.Darknet 빌드
git clone https://github.com/AlexeyAB/darknet cd darknet
GPU 사용

GPU를 사용하기 위해서는 Makefile을 위와 같이 변경해야 함.
ARCH= -gencode arch=compute_86,code=[sm_86,compute_86]
추가적으로 cuDNN이나 OpenCV의 경우 Yolo v3에서 사용하는 구형 버전을 지원하지 않아, 포기함.
Makefile 빌드
make clean make
데이터셋 구조 정리
Yolo v3에서는 최신의 Yolo와는 다르게 아래와 같은 구조로 파일이 존재해야 함.
/Yolo/v3/darknet/ ├── data/ │ ├── obj/ │ │ ├── train/ │ │ │ ├── image1.png │ │ │ ├── image1.txt │ │ ├── val/ │ │ │ ├── image2.png │ │ │ ├── image2.txt │ │ ├── test/ │ │ │ ├── image3.png │ │ │ ├── image3.txt │ ├── train.txt │ ├── valid.txt │ ├── test.txt │ ├── obj.names │ └── obj.data
내가 사용하는 자료는 다음과 같이 구성되어 있음.
/VinDr/New_Crop/ ├── Image/ │ ├── P0001_LCC.png │ ├── P0001_LMLO.png │ ├── P0001_RCC.png │ ├── P0001_RMLO.png │ ... ├── Mask/ │ ├── P0001_LCC_Mass.png │ ├── P0001_LMLO_Mass.png │ ├── P0001_RCC_Calcification.png │ ├── P0001_RMLO_Calcification.png │ ...
Mask파일에는 0과 255로 이루어진 Mask PNG 파일이 존재하며, python code를 이용하여 Yolo v3 권장 양식으로 변경함.
cfg 수정
기존
cfg/yolov3.cfg를 복사해 cfg/yolov3b.cfg를 사용함.클래스 수
YOLO 레이어 3곳 모두:
classes=2
filters
각
[yolo] 바로 직전 conv 3곳 모두:공식:
filters = (classes + 5) * 3
2클래스면:
filters = (2 + 5) * 3 = 21
즉:
filters=21
학습 반복 수
max_batches=4000 steps=3200,3600
Pretrained weight 사용
공식 링크에서 제공하는 링크는 문제가 있어서, 현시점에서 다운로드가 되지 않음.
wget https://pjreddie.com/media/files/darknet53.conv.74
yolov3.weights를 다운로드한 뒤, Darknet의 partial 기능으로 darknet53.conv.74를 직접 생성함.wget https://pjreddie.com/media/files/yolov3.weights ./darknet partial cfg/yolov3.cfg yolov3.weights darknet53.conv.7474 ls-lh darknet53.conv.74
학습 시작
## Pretrained Convolutional Weights를 사용하는 경우 ./darknet detector train data/obj.data cfg/yolov3b.cfg darknet53.conv.74 -map ## Yolo v3 Weights를 사용하는 경우 ./darknet detector train data/obj.data cfg/yolov3b.cfg yolov3.weights -map -clear
추론
./darknet detector test data/obj.data cfg/yolov3b.cfg backup/yolov3b_final.weights data/obj/test/P0004_LCC.png -thresh 0.05 ./darknet detector test data/obj.data cfg/yolov3b.cfg backup/yolov3b_final.weights data/obj/test/P0004_LCC.png -thresh 0.10 ./darknet detector test data/obj.data cfg/yolov3b.cfg backup/yolov3b_final.weights data/obj/test/P0004_LCC.png -thresh 0.25
