Ubuntu16.04安装YOLOv3

1.下载安装darknet

git clone https://github.com/pjreddie/darknet.git
cd darknet

2.修改Makefile

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

ARCH= -gencode arch=compute_30,code=sm_30 \
      -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_20,code=[sm_20,sm_21] \ This one is deprecated?

# This is what I use, uncomment if you know your arch and want to specify
# ARCH= -gencode arch=compute_52,code=compute_52

VPATH=./src/:./examples
SLIB=libdarknet.so
ALIB=libdarknet.a
EXEC=darknet
OBJDIR=./obj/

CC=gcc
NVCC=/usr/local/cuda-10.1/bin/nvcc     #改地址
AR=ar
ARFLAGS=rcs
OPTS=-Ofast
LDFLAGS= -lm -pthread 
COMMON= -Iinclude/ -Isrc/
CFLAGS=-Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC

ifeq ($(OPENMP), 1) 
CFLAGS+= -fopenmp
endif

ifeq ($(DEBUG), 1) 
OPTS=-O0 -g
endif

CFLAGS+=$(OPTS)

ifeq ($(OPENCV), 1) 
COMMON+= -DOPENCV
CFLAGS+= -DOPENCV
LDFLAGS+= `pkg-config --libs opencv` 
COMMON+= `pkg-config --cflags opencv` 
endif

ifeq ($(GPU), 1) 
COMMON+= -DGPU -I/usr/local/cuda/include/
CFLAGS+= -DGPU
LDFLAGS+= -L/usr/local/cuda-10.1/lib64 -lcuda -lcudart -lcublas -lcurand
endif

ifeq ($(CUDNN), 1) 
COMMON+= -DCUDNN 
CFLAGS+= -DCUDNN
LDFLAGS+= -lcudnn
endif

修改完成后

make clean
make

3.创建文件夹

——VOCdevkit
————VOC2012
——————Annotations     #存放xml
——————ImageSets
————————Main         #存放训练集、验证集、测试集
——————JPEGImages   #存放训练图片
——————labels               #存放标签信息.txt

在VOC2012文件夹下创建一个名为test.py的文件

import os
import random

trainval_percent = 0.3
train_percent = 0.7
xmlfilepath = 'Annotations'
txtsavepath = 'ImageSets\Main'
total_xml = os.listdir(xmlfilepath)

num = len(total_xml)
list = range(num)
tv = int(num * trainval_percent)
tr = int(tv * train_percent)
trainval = random.sample(list, tv)
train = random.sample(trainval, tr)

ftrainval = open('ImageSets/Main/trainval.txt', 'w', encoding='UTF-8')
ftest = open('ImageSets/Main/test.txt', 'w', encoding='UTF-8')
ftrain = open('ImageSets/Main/train.txt', 'w', encoding='UTF-8')
fval = open('ImageSets/Main/val.txt', 'w', encoding='UTF-8')

for i in list:
    name = total_xml[i][:-4] + '\n'
    if i in trainval:
        ftrainval.write(name)
        if i in train:
            ftest.write(name)
        else:
            fval.write(name)
    else:
        ftrain.write(name)

ftrainval.close()
ftrain.close()
fval.close()
ftest.close()

执行后在ImageSets/Main下会生成test.txt train.txt trainval.txt val.txt 4个文件

4.将scripts/voc_label.py拿出来放到darknet文件夹下(可不拿,拿出来已成习惯),修改里面的参数。

sets=[('2012,'train'),('2012','val'),('2012','test')]
classes=["tag1","tag2","tag3"]
删掉最下面两行中与2012中无关的,例如2007_train.txt 2007_val.txt 等

运行后生成 2012_test.txt 2012_train.txt 2012_val.txt

5.修改

①data/voc.names 中的标签名改为自己设置的

tag1
tag2
tag3

②cfg/voc.data修改 classes= 自己的标签数

train vaild 地址修改成运行voc_label.py时生成2012_train.txt和2012_test.txt的地址

③cfg/yolov3-voc.cfg修改

[net]
# Testing
# batch=1                          #注释掉
# subdivisions=1               #注释掉
# Training
 batch=64                          #消注释
 subdivisions=16              #消注释
width=416
height=416                  #width 和height必须是32的倍数
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 = 50200          #迭代次数
policy=steps
steps=40000,45000            
scales=.1,.1    #迭代每达到steps中设置的次数时,learning_rate衰减为之前的0.1

继续往下翻
有3处要改成这样

[convolutional]
size=1
stride=1
pad=1
filters=24          #filters=3*(classes+5)
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=3      #标签种类数
num=9
jitter=.3
ignore_thresh = .5
truth_thresh = 1
random=1

6.YOLO初始权重下载

wget https://pjreddie.com/media/files/yolov3.weights

卷积指令权重下载

wget https://pjreddie.com/media/files/darknet53.conv.74

7.训练、检测

darknet

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值