写文章
登陆 / 注册
文章 14
专题 1
miku
美食二次元
微服务架构设计 嵌入式开发
关注

[专题] 人工智能之机器视觉开发笔记

《人工智能之机器视觉开发笔记》是记录我平常开发过程中遇到的思路和方法。

miku
进入相关专题
点赞

训练自己的检测模型-yolov3

2019-08-29 17:59
618
5

标注工具下载

  • clone标注工具labelImg

地址https://github.com/tzutalin/labelImg

  • 安装依赖
conda install pyqt=5
conda install lxml
  • 切换目录
pyrcc5 -o libs/resources.py resources.qrc
  • 开启
python labelImg.py

标注数据

  • 训练集下载

地址http://vis-www.cs.umass.edu/lfw/

  • 训练集移动
import os
import shutil
for root, dirs, files in os.walk("", topdown=False):
    for name in files:
        print(os.path.join(root, name))
        shutil.copy(os.path.join(root, name),'')
  • 创建文件夹
Annotations:用于存放标注后的xml文件
ImageSets/Main:用于存放训练集、测试集、验收集的文件列表
JPEGImages:用于存放原始图像
  • 使用labelImg标注数据

Annotations作为保存目录

  • 划分训练集、测试集、验证集

在github上下载一个自动划分的脚本(https://github.com/EddyGao/make_VOC2007/blob/master/make_main_txt.py)

配置YOLO

  • window10 配置tensorflow-gpu
  • 安装Keras

conda install keras-gpu conda install pillow

  • 下载yolo3源代码

在keras-yolo3的github上下载源代码(https://github.com/qqwweee/keras-yolo3

  • 下载预训练模型

下载地址为https://pjreddie.com/media/files/yolov3.weights

  • 转换标注数据文件

Keras-yolo3里面提供了voc格式转yolo格式的转换脚本 voc_annotation.py voc_annotation.py修改为:

mport xml.etree.ElementTree as ET
from os import getcwd

sets=[('2007', 'train'), ('2007', 'val'), ('2007', 'test')]

classes = ["你所需要训练的类型"]
  • 新建文件夹VOCdevkit/VOC2007 将熊猫的标注数据文件夹Annotations、ImageSets、JPEGImages放到文件夹VOCdevkit/VOC2007里面
python voc_annotation.py
  • 创建类别文件

在model_data目录里面新建一个类别文件my_class.txt,写入训练类型

  • 转换权重文件

yolo权重文件yolov3.weights转换成适合Keras的模型文件

python convert.py -w yolov3.cfg yolov3.weights model_data/yolo_weights.h5
  • 修改训练文件的路径配置

修改train.py里面的相关路径配置,主要有:annotation_path、classes_path、weights_path, batch_size,对于机器内存低于16的建议设置batch_size=4

  • 训练模型
python train.py

默认保存路径为logs/000/trained_weights_final.h5

使用模型

  • 修改yolo.py里面的模型路径、类别文件路径,如下
class YOLO(object):
    _defaults = {
        "model_path": 'logs/000/trained_weights_final.h5',
        "anchors_path": 'model_data/yolo_anchors.txt',
        "classes_path": 'model_data/my_classes.txt',
        "score" : 0.3,
        "iou" : 0.45,
        "model_image_size" : (416, 416),
        "gpu_num" : 1,
    }
  • 调用测试 修改yolo.py文件
if __name__ == '__main__':
    detect_video(YOLO(),0)
相关推荐
查看更多文章
热门服务

ECS云服务器4折起

实名认证 后新老用户首次购买ECS,均可享受1-3年价格优惠,每人限购1单,限量3台

【HI拼购2折起】拼着买更便宜

新老用户均可开团,爆款产品低至2折,每人限购1台,手慢无!

目录
标注工具下载
标注数据
配置YOLO
使用模型

对这个开源博客感兴趣?那就加入我们吧!

丰富的知识面,企业级的开发规范,拥抱开源,不仅给自己的技能加速,还给自己的职场添砖加瓦!

查看更多