前言:本文主要针对Yolov3目标检测网络在技术上基于Keras的实现过程,并不对其原理进行深究。其原理请参考Yolo系列原文以及前人的相关博客。(附于文末)
Yolo应该来说是我进入研究生生涯遇到的第一个练手项目,本文所使用的代码均基于前人修改,具体请参考我的github仓库https://github.com/JingyuYang1997/YoloV3_Keras_EasyPractice
该文章旨在为使用自己的数据集训练Yolov3提供一些参考。
首先需要使用labelimg创建自己的数据集。其操作比较简单,这里不再赘述。使用该工具生成与图片同名的xml文件,该文件记录了图片中所标注的box的大小坐标以及分类。将图片与标注文件保存为如下结构(包含images和annotations两部分,图示以VOC2007为例):
![8d8c0c01d9af47dfadbd24efde7f8c4e.png](https://i-blog.csdnimg.cn/blog_migrate/a8d9b38ab97592bdaec7f3d2badd1d35.png)
创建好数据集后使用仓库中的convert.py将所有xml文件转化为一个记录所有标签的txt文件,具体请参考仓库中的说明。
接下来就可以开始训练了。博主基于的平台为:Win10,tensorflow-gpu1.8.0,keras 2.2.4,python3.6,GTX1060 6g。Enjoy your training!
仓库中,博主借鉴了数据集Pascal Voc007,仅使用其中的图片以及对应的xml文件,创建了如上的文件结构。以下是一些输出结果的展示:
![5b14f299af603e97bae5e248bc4af9f1.png](https://i-blog.csdnimg.cn/blog_migrate/f51acec000c0e6044b31ebf67935db0f.jpeg)
参考链接:
1.github仓库 https://github.com/JingyuYang1997/YoloV3_Keras_EasyPractice
2.Yolov1:https://arxiv.org/pdf/1506.02640.pdf
Yolov2:https://arxiv.org/pdf/1612.08242.pdf
Yolov3:https://arxiv.org/pdf/1804.02767.pdf