本文是一个总结,参考了网上的众多资料,汇集而成,以供自己后续参考。

一般说来,训练自己的数据,有两种方法:第一种就是将自己的数据集完全改造成VOC2007的形式,然后放到py-faster-rcnn/data 目录下,然后相应地改变相应模型的参数,比如种类等。 data目录下存放的数据如下:

VOCdevkit2007└── VOC2007├── Annotations│   └── *.xml│├── ImageSets│   └── Main│       ├── train.txt│       └── test.txt└── JPEGImages└── *.jpg

这样做最省事。

第二种,基本上也是改造成VOC2007的形式,然后放到py-faster-rcnn/data 目录下,但是允许Annotations不按照xml的形式。可以是自己的形式

YOUR_DATASET_devkit└── data├── Annotations│   └── *.txt│├── ImageSets│       ├── train.txt│       └── test.txt└── JPEGImages└── *.jpg or *.png

关于第二种,可以参考如下文章:

1. deboc/py-faster-rcnn  这个代码是py-faster rcnn的拷贝,实现了二分类模型。里面的data组织如下:

INRIA_Person_devkit/
|-- data/|-- Annotations/|-- *.txt (Annotation files)|-- Images/|-- *.png (Image files)|-- ImageSets/|-- train.txt

按照教程: https://github.com/deboc/py-faster-rcnn/blob/master/help/Readme.md 可以训练行人检测。

另外《Fast RCNN 训练自己数据集 (2修改数据读取接口)》 也实现了自己的数据读取。

下面重点说一下第一种。

具体的细节可以参考: http://blog.csdn.net/Gavin__Zhou/article/details/52052915

需要注意的是 根据文章<解决faster-rcnn中训练时assert(boxes[:,2]>=boxes[:,0]).all()的问题>   我们对lib/datasets/imdb.py,append_flipped_images()函数修改如下:

 def append_flipped_images(self):num_images = self.num_imageswidths = self._get_widths()for i in xrange(num_images):boxes = self.roidb[i]['boxes'].copy()oldx1 = boxes[:, 0].copy()oldx2 = boxes[:, 2].copy()boxes[:, 0] = widths[i] - oldx2 - 1boxes[:, 2] = widths[i] - oldx1 - 1for b in range(len(boxes)):if boxes[b][2]< boxes[b][0]:boxes[b][0] = 0assert (boxes[:, 2] >= boxes[:, 0]).all()entry = {'boxes' : boxes,'gt_overlaps' : self.roidb[i]['gt_overlaps'],'gt_classes' : self.roidb[i]['gt_classes'],'flipped' : True}self.roidb.append(entry)self._image_index = self._image_index * 2

我们说一说其他的,

  • 关于数据标注:  强烈推荐工具:labelImg :https://github.com/tzutalin/labelImg 这是个图形化界面操作,可以很方便地标注boundingbox,且生成xml格式。
  • VOC2007数据集地址: https://pjreddie.com/projects/pascal-voc-dataset-mirror/
  • 图片重命名像VOC2007那样: http://blog.csdn.net/sinat_30071459/article/details/50723212
  • 根据XML文件生成test.txt(测试集),train.txt(训练集),val.txt(验证集),trainval.txt(训练和验证集),trainval大概是整个数据集的50%,test也大概是整个数据集的50%;train大概是trainval的50%,val大概是trainval的50%。将这四个txt放在ImageSets\Main中,参考:http://blog.csdn.net/sinat_30071459/article/details/50723212
  • 另外你不想手动地更改那些参数,可以使用这个:https://github.com/Microos/py-faster-rcnn-data-interface-generator

其他参考文档:

1. 使用Faster-Rcnn进行目标检测(实践篇)

2. Faster rcnn 安装、训练、测试、调试

3. matlab训练样本集的制作

4.  制作自己的数据集用于faster-rcnn训练

5. 将数据集做成VOC2007格式用于Faster-RCNN训练   (很重要)

6. Faster-RCNN+ZF用自己的数据集训练模型(Python版本)

7. Training'R CNNs'of'various'velocities    训练faster rcnn的官方文档1

8. 训练faster rcnn的官方文档2

9. Faster-RCNN+ZF用自己的数据集训练模型(Matlab版本)

10. Py-faster-rcnn实现自己的数据train和demo  (很重要)

faster rcnn在自己的数据集上训练相关推荐

  1. DL之DCGNN:基于TF利用DCGAN实现在MNIST数据集上训练生成新样本

    DL之DCGNN:基于TF利用DCGAN实现在MNIST数据集上训练生成新样本 目录 输出结果 设计思路 实现部分代码 说明:所有图片文件丢失 输出结果 更新-- 设计思路 更新-- 实现部分代码 更 ...

  2. internetreadfile读取数据长度为0_YOLOV3的TensorFlow2.0实现,支持在自己的数据集上训练...

    GitHub链接: calmisential/YOLOv3_TensorFlow2​github.com 我主要参考了yolov3的一个keras实现版本: qqwweee/keras-yolo3​g ...

  3. domain gap(域间隙)是什么?==>在一个数据集上训练好的模型无法应用在另一个数据集上

    不同数据集之间存在domain gap,在一个数据集上训练模型,在另外一个数据集上进行预测性能下降很大 re-id(视频行人重识别问题) 现有公开的数据集与真实场景存在很大不同,不同re-id的数据集 ...

  4. pascal行人voc_在Pascal VOC 数据集上训练YOLOv3模型

    上节介绍了<从零开始在Windows10中编译安装YOLOv3>,本节介绍在Pascal VOC 数据集上训练YOLOv3. 第一步,下载并安装YOLOv3训练依赖项. a.下载Pasca ...

  5. 模拟数据集上训练神经网络,网络解决二分类问题练习

    #2018-06-24 395218 June Sunday the 25 week, the 175 day SZ ''' 模拟数据集上训练神经网络,网络解决二分类问题.'''import tens ...

  6. 在MNIST数据集上训练一个手写数字识别模型

    使用Pytorch在MNIST数据集上训练一个手写数字识别模型, 代码和参数文件 可下载 1.1 数据下载 import torchvision as tvtraining_sets = tv.dat ...

  7. 在自己的数据集上训练CrowdDet过程记录

    论文链接:https://readpaper.com/pdf-annotate/note?noteId=656650387498369024&pdfId=542662939605901312 ...

  8. 【Pytorch分布式训练】在MNIST数据集上训练一个简单CNN网络,将其改成分布式训练

    文章目录 普通单卡训练-GPU 普通单卡训练-CPU 分布式训练-GPU 分布式训练-CPU 租GPU服务器相关 以下代码示例基于:在MNIST数据集上训练一个简单CNN网络,将其改成分布式训练. 普 ...

  9. 多目标跟踪算法JDE在 UA-DETRAC数据集上训练

    环境:win10,cuda 10.1 , GTX1060 一.数据处理 1.数据集获取: 链接:https://pan.baidu.com/s/1K3rI9PvzHc1KqOJITNMdVg  提取码 ...

最新文章

  1. CreateThread
  2. 平板的android版本是5.0.2,EMUI5.0荣耀平板2升级固件下载
  3. elastichd的使用教程_ElasticSearch可视化工具ElasticHD安装
  4. Django 3.0 正式发布,开始支持异步功能
  5. Apache常见报错问题
  6. Spring 框架学习 —— 容器
  7. 开工利是!循序渐进~
  8. 购物商城Web开发第二十二天
  9. 等保安全计算环境之Windows(安全审计+入侵防范)(二级)
  10. 王者荣耀1-HTMLCSS教案
  11. PHP求职宝典系列——PHP Web 编程篇
  12. Git Bash 默认界面配色分析
  13. Xmanager 5 (Windows 远程Centos工具 )
  14. 软件测试怎么做?靠谱第三方软件测评公司有哪些?
  15. 用格里高利公式求给定精度的PI值 (15分)
  16. SILC 超像素分割代码
  17. linux mint xed中文乱码
  18. WTK -- Wayland Tool Kit
  19. 代理商模式还能走多远?
  20. 爬虫二式 —— WebClient

热门文章

  1. (Review cs231n) Backpropagation and Neural Network
  2. 函数函数sigaction、signal
  3. DPDK helloworld 源码阅读
  4. ffmpeg文档08-表达式计算/求值
  5. 《架构之美》学习随笔:好的架构
  6. 何时使用委托而不使用接口
  7. 总结面试题——Javascript
  8. Centos安装Vmware-Tools工具
  9. 大数据告诉你,电商都把假货发给谁?
  10. 键盘流的逆袭- Idea 中使用 VIM mode 提高生成效率