YOLO-V3代码解析系列(一) —— 整体结构概述

一、总体概述

  本次的任务是检测人体背部区域,可以当作单类目标检测任务。由于正在研究yolo系列网络,因此借助这次实验,将yolo系列的网络结构,训练细节和代码实现深入理解和熟悉。
  该系列代码研究的为github上的tensorflow实现,链接如下:https://github.com/YunYang1994/tensorflow-yolov3.
  在上述代码的基础上,本次实验修改了分类数量(1类)和类别名称,训练了自己的数据集,为单类目标检测,并且根据自己的数据集重新生成了anchor数据。
  实验结果:经过测试,测试的score基本上都在0.96以上。

二、数据标注

标注工具LabelMe
详细的安装和使用教程:https://blog.csdn.net/u014061630/article/details/88756644,该链接非常详细的介绍了如何安装和使用LabelMe,本文不再赘述。
标注数据保存为json文件,下图是在自己的数据集上标注结果,具体内容如下
YOLO-V3代码解析系列(一) —— 整体结构概述_第1张图片

三、代码结构

YOLO-V3代码解析系列(一) —— 整体结构概述_第2张图片
./core/
  backbone.py:darknet-53网络结构.
  common.py:网络的基本模块,比如卷积,残差,上采样等。
  config.py:训练和测试相关参数的设置文件。
  dataset.py:数据预处理类。
  utils.py:预测后的后处理函数。
  yolov3.py:网络结构定义。
./data/anchors/:保存的anchor文件,比如coco.anchors.txt如下:
10 , 13 , 16 , 30 , 33 , 23 , 30 , 61 , 62 , 45 , 59 , 119 , 116 , 90 , 156 , 198 , 373 , 326 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 10,13,16,30,33,23,30,61,62,45,59,119,116,90,156,198,373,326
./data/classes/:类别列表,比如voc.names如下,总共20类目标。如果是一类目标,则需写一个名字即可:
YOLO-V3代码解析系列(一) —— 整体结构概述_第3张图片
./data/dataset/:训练和验证数据文本。train.txt,每一行表示一条数据,分别为图片路径+名字,(xmin,ymin,xmax,ymax,class_id),有多少类目标,则列举多少类,每一类以空格隔开,具体内容如下:
YOLO-V3代码解析系列(一) —— 整体结构概述_第4张图片
convert_weight.py:转化权重文件,与上述定义的网络结构一致。
frozen_graph.py:将ckpt文件转为pb文件。
evaluate.py:评测测试数据。
train.py:训练脚本。
image_demo.py和video_demo.py:加载pb文件,实际使用demo。

你可能感兴趣的:(YOLO-V3代码解析)