yolo v3 pytorch版 训练自己的数据集

Yolo v3入坑指南

Yolo v3比Frcnn好调试多了……就是数据集准备比较麻烦……
但是好Debug,linux和win10差别不大……
代码链接(cpu版本):Yolo v3
这个代码……作者说的太草率了……data怎么准备都没说清……好歹issue里面有大神解答,给了傻瓜版教程,运行他的几个脚本就好了,data文件夹就准备好啦!
data文件准备,按照这个数据集准备
虽然这个作者是用它来训练coco数据集,但是data整个是个四不像……不用json不用xml用txt……所以训练自己的比较麻烦……
准备好data,还有修改config/yolov3.cfg文件。
参考链接:修改cfg
打开yolov3.cfg文件后,搜索yolo,共有三处yolo,下面以一处的修改作为示例。

[convolutional] #紧挨着[yolo]上面的[convolutional]
size=1
stride=1
pad=1
filters=21 #filters=3*(你的class种类数+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=2 #修改classes
num=9
jitter=.3
ignore_thresh = .7
truth_thresh = 1
random=0 #显存大的写1 反之0

除此之外,cfg中的其他参数可以参考这个链接来进行修改,比如可以修改一些数据增强的参数,如果想要接着上次训练的weight继续训练,就参考这个链接进行微调(但是我使用的代码不支持clear操作,只能使用第二种方法)。

然后开始训练吧!个人感觉yolov3学的效果不是很好,frcnn训练了十轮能达到的效果,yolov3可能要80轮左右,开始前几十轮mAP很低就多加几轮试试,issue里面提到这个代码训练100轮,coco也达不到作者所说的mAP……所以……慎重……男票用这个帮我把自己的数据集跑到了92%左右的mAP,效果还是很好的。

准备数据集的那个代码有些bug调不出来,所以还是使用第一个的代码吧。

记录一些命令
1.查看tensorboard
在pycharm里面打开命令行(我总是忘,还是记录一下吧)代码中右键open in termianl

tensorboard --logdir=./logs --host=127.0.0.1 --port=6006

2.测试图片
运行detect.py

3.记录一下用过的脚本之 voc的xml转化为coco的json

import os
import json
import xml.etree.ElementTree as ET
import numpy as np
import cv2


def _isArrayLike(obj):
    return hasattr(obj, '__iter__') and hasattr(obj, '__len__')


class voc2coco:
    def __init__(self, devkit_path=None, year=None):
        # self.classes = ('__background__',
        #                 'aeroplane', 'bicycle', 'bird', 'boat',
        #                 'bottle', 'bus', 'car', 'cat', 'chair',
        #                 'cow', 'diningtable', 'dog', 'horse',
        #                 'motorbike', 'person', 'pottedplant',
        #                 'sheep', 'sofa', 'train', 'tvmonitor')
        self.classes = ('none',
                        'll', 'rr') #写你自己的class

        self.num_classes = len(self.classes)
        assert 'VOCdevkit' in devkit_path, 'VOC地址不存在: {}'.format(devkit_path)
        self.data_path = os.path.join(devkit_path, 'VOC' + year)
        self.annotaions_path = os.path.join(self.data_path, 'Annotations')
        self.image_set_path = os.path.join(self.data_path, 'ImageSets')
        self.year = year
        self.categories_to_ids_map = self
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值