专栏首页机器学习AI算法工程YOLO目标检测,训练自己的数据集(识别海参)

YOLO目标检测,训练自己的数据集(识别海参)

这篇文章是训练YOLO v2过程中的经验总结,我使用YOLO v2训练一组自己的数据,训练后的model,在阈值为.25的情况下,Recall值是95.54%,Precision 是97.27%。

需要注意的是,这一训练过程可能只对我自己的训练集有效,因为我是根据我这一训练集的特征来对YOLO代码进行修改,可能对你的数据集并不适用,所以仅供参考。

我的数据集 批量改名首先准备好自己的数据集,最好固定格式,此处以VOC为例,采用jpg格式的图像,在名字上最好使用像VOC一样类似000001.jpg、000002.jpg这样。可参照下面示例python代码

读取某文件夹下的所有图像然后统一命名,用了opencv所以顺便还可以改格式。

准备好了自己的图像后,需要按VOC数据集的结构放置图像文件。VOC的结构如下

这里面用到的文件夹是Annotation、ImageSets和JPEGImages。其中文件夹Annotation中主要存放xml文件,每一个xml对应一张图像,并且每个xml中存放的是标记的各个目标的位置和类别信息,命名通常与对应的原始图像一样;而ImageSets我们只需要用到Main文件夹,这里面存放的是一些文本文件,通常为train.txt、test.txt等,该文本文件里面的内容是需要用来训练或测试的图像的名字(无后缀无路径);JPEGImages文件夹中放我们已按统一规则命名好的原始图像。

因此,首先 1.新建文件夹VOC2007(通常命名为这个,也可以用其他命名,但一定是名字+年份,例如MYDATA2016,无论叫什么后面都需要改相关代码匹配这里,本例中以VOC2007为例) 2.在VOC2007文件夹下新建三个文件夹Annotation、ImageSets和JPEGImages,并把准备好的自己的原始图像放在JPEGImages文件夹下 3.在ImageSets文件夹中,新建三个空文件夹Layout、Main、Segmentation,然后把写了训练或测试的图像的名字的文本拷到Main文件夹下,按目的命名,我这里所有图像用来训练,故而Main文件夹下只有train.txt文件。上面说的小代码运行后会生成该文件,把它拷进去即可。

图像标注 2.标记图像目标区域 python代码直接运行之后开始标注, 因为做的是目标检测,所以接下来需要标记原始图像中的目标区域。相关方法和工具有很多,像labelme 或者labeltool ,这里需用标注工具,相关用法也有说明,基本就是框住目标区域然后双击类别,标记完整张图像后点击保存即可。操作界面如下:

代码篇幅有限

请查看原文

https://blog.csdn.net/xiao__run/article/details/78714659

接下来我们把标注文件改成.XML 文件才能训练,不多说直接上代码

用YOLOv2训练 按darknet的说明编译好后,接下来在darknet-master/scripts文件夹中新建文件夹VOCdevkit,然后将整个VOC2007文件夹都拷到VOCdevkit文件夹下。 然后,需要利用scripts文件夹中的voc_label.py文件生成一系列训练文件和label,具体操作如下: 首先需要修改voc_label.py中的代码,这里主要修改数据集名,以及类别信息,我的是VOC2007,并且所有样本用来训练,没有val或test,并且只检测人,故只有一类目标,因此按如下设置

这里包含了类别和对应归一化后的位置(i guess,如有错请指正)。同时在scripts\下应该也生成了train_2007.txt这个文件,里面包含了所有训练样本的绝对路径。

2.配置文件修改 做好了上述准备,就可以根据不同的网络设置(cfg文件)来训练了。在文件夹cfg中有很多cfg文件,应该跟caffe中的prototxt文件是一个意思。这里以tiny-yolo-voc.cfg为例,该网络是yolo-voc的简版,相对速度会快些。主要修改参数如下

代码篇幅有限

请查看原文

https://blog.csdn.net/xiao__run/article/details/78714659

也可参考https://blog.csdn.net/shangpapa3/article/details/77483324

Keras 实战 YOLO v3 目标检测图文教程

运行步骤

1.从 YOLO 官网下载 YOLOv3 权重

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

下载过程如图:

2.转换 Darknet YOLO 模型为 Keras 模型

python convert.py yolov3.cfg yolov3.weights model_data/yolo.h5

转换过程如图:

3.运行YOLO 目标检测

python yolo.py

需要下载一个图片,然后输入图片的名称,如图所示:

我并没有使用经典的那张图,随便从网上找了一个,来源见图片水印:

识别效果:

项目地址:https://github.com/qqwweee/keras-yolo3

本文分享自微信公众号 - 机器学习AI算法工程(datayx)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-08-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 用R语言分析《我是歌手》出场顺序与名次的关系

    《我是歌手》吵吵闹闹地落幕了,总决赛这一季是我最关注的一季,很认真的从头看到尾。当然,这篇文章的主旨不在此,我们要看的如题《我是歌手》节目中,出场...

    机器学习AI算法工程
  • 【思路】数据分析的“三点式”

    数据分析是企业的贤内助(下文将数据分析都叫为贤内助)。企业今天要远行,去寻找投资方向,贤内助应景地换上了“三点式”。 企业说:你咋穿上这个了呢,...

    机器学习AI算法工程
  • 用R语言作社群关系分析

    在反映大量人群或事物之间的关系时,社交网络图可以清晰的展示’群体’的内含和外延。例如,群体的规模、核心、与其他群体的交叠情况。 社交关系图来表示应用人数和之间的...

    机器学习AI算法工程
  • GitHub上如何创建/删除文件夹

    在文件名后面加上"/"这个斜杠回车再输入一个文件名,在里面随便写点东西(因为Github不允许空文件夹存在,空文件夹自动删除),提交接即可。

    浩Coding
  • C盘不够用?一边认识C盘,一边清理文件。

    课代表已经出过两期关于“磁盘”的推送,《我把那个给人C盘只留40G的人骂了一顿。》《让课代表告诉你,磁盘空间都去哪了!》

    课代表
  • windows 文件默认排序设置,通用文件夹排序设置。

    一般咱们直接在文件夹中进行排序,只会临时生效。 要想一直生效的话,还需要在文件夹选项里再配置一下就好了。

    小蓝枣
  • win7基础 cmd del+*.扩展名 删除指定文件夹下的同一类型的所有文件

    师万物
  • Outlook提示:"您需要最新版本的Outlook才能使用此数据库",分分钟搞定

    有台mac安装了office 2013 但是一直崩溃,所以卸载了,但是等他重新安装了office 的时候,发现使用outlook的时候,提示弹窗如下:

    BigYoung小站
  • caffe随记(一)--- 目录简介

    caffe随记(一)--- 目录简介 我是Linux系统下的caffe,非windows版。文章主要记录一下自己的学习经历,权当抛砖引玉之用,欢迎各位不吝赐...

    TeeyoHuang
  • cmd 如何跨驱动器移动文件夹

    如果在命令行或 cmd 批处理文件通过 move 移动文件夹的时候,移动的文件夹是跨驱动器的,那么将会显示拒绝访问

    林德熙

扫码关注云+社区

领取腾讯云代金券