yolov3训练自己的遥感数据集记录(darknet)

目录

源码权重之类的在官网有:https://pjreddie.com/darknet/yolo/

需要修改添加的地方:

makefile

cfg/voc.data

cfg/yolov3.cfg

data/voc.name

制作VOC数据集

步骤:

注意事项:


遥感车辆

源码权重之类的在官网有:https://pjreddie.com/darknet/yolo/

需要修改添加的地方:

makefile

GPU=1    #打开GPU cudnn加速
CUDNN=1
OPENCV=1
NVCC=/usr/local/cuda-9.0/bin/nvcc    #改为自己的cuda版本

cfg/voc.data

classes= 1    #所需检测的类别数
train  = /home/bit/ev/darknet/2007_train.txt    #注意绝对路径voc_label生成的训练样本
valid  = /home/bit/ev/darknet/2007_test.txt
names = /home/bit/ev/darknet/data/voc.names    #类别名
backup = backup    #该文件夹存训练模型

cfg/yolov3.cfg

# Testing
# batch=1
# subdivisions=1
# Training
batch=64
subdivisions=16
#根据训练和检测,注销掉对应的参数

width=608
height=608
#如果为了快速性可以416

max_batches = 500200
#测试跑个1000轮差不多

3个yolo层的class改为1,yolo层上面的filter改为18

data/voc.name

vehicle    #你的类名,一行一个

voc_label 

classes = ["vehicle"]
#改为自己的类

制作VOC数据集

新建文件夹VOCdevkit。

yolov3训练自己的遥感数据集记录(darknet)_第1张图片

结构中有annotation,imagest/main,jpegimage就行.

 

voc格式xml放入annotation,原图放入jpegimage中;

写一个python程序,将所有图片的名字存到name.txt中,作为voc_label划分数据集的依据,完成手动划分数据集。

我的转换工具和数据集划分地址:https://github.com/ming71/voc_data_convert

(根据NWPU格式改的,用于其他的稍微改改就行,很简单的)

yolov3训练自己的遥感数据集记录(darknet)_第2张图片

(可以没有trainval.txt) 

步骤:

(1)运行scripts的voc_label,根据main文件夹的文档自动生成训练文件

(2)使用命令训练即可

图片
./darknet detect cfg/yolov3.cfg weights/yolov3.weights data/dog.jpg
./darknet detector test cfg/coco.data cfg/yolov3.cfg weights/yolov3.weights data/dog.jpg


视频
./darknet detector demo cfg/coco.data cfg/yolov3.cfg weights/yolov3.weights video.avi

训练
./darknet detector train cfg/voc.data cfg/yolov3-voc.cfg weights/darknet53.conv.74

效果应该是OK的才对。 

注意事项:

(1)自己的数据集转voc的xml要注意是否正确

(2)检查voc_label生成的label文件夹是否有内容(ground truth)

(3)运行时weight使用backup训练的

 

更新:

yolov3-pytorch实现的源码和详细注释(支持摄像头,fps在1080ti上达30,应该是pytorch实现最快的),github地址:https://github.com/ming71/yolov3-pytorch-annotation

 

遥感舰船

三类:carrier/ship/cruise(严重的类别不平衡问题待解决)

按照1米:1像素的比例尺关系情况下,高度1.73km合适。

 

你可能感兴趣的:(运行记录,计算机视觉)