环境:Linux系统,GPU

1.首先在GitHub上找到这个源码 ,然后根据下面的ReadMe教程一步步跑通,建议先用VOC2007数据集训练,可以先把迭代次(在/FRCN_ROOT/experiments/scripts/faster_rcnn_end2end.sh文件下)数从7000改成100,只是测试有没有问题,节省时间,中途会遇到一些错误,你可以根据源码上面的issue来找解决方案,一般错误都能找到

2.如果第1步训练完没有问题,那么就可以开始制作自己的数据集了(数据标签尽量用小写字母),只是把数据集相应文件夹替换成你自己的数据就可以,制作数据集教程在这里 ,里面讲的很详细,工具也都有,

3.制作完之后就要修改自己源码的相应代码了,毕竟分的类数什么的不一样,所以要修改一下,修改也十分简单,

3.1,Faster_RCNN/lib/datasets/pascal_voc.py文件 修改成自己的类

中间需要注意一点,如果你的标签像我一样用了大写字母,那么运行测试的时候会报错,解决办法见文末

3.2 ,/Faster_RCNN/lib/networks/VGGnet_train.py 文件

3.3 /Faster_RCNN/lib/networks/VGGnet_test.py 文件

4.如果你之前训练过一些数据的话,那么还要删除一些缓存内容

4.1,Faster_RCNN/data/cache
       4.2,Faster_RCNN/output/faster_rcnn_end2end

4.3,Faster_RCNN/data/VOCdevkit2007/annotations_cache/annots.pkl

5.修改demo.py,以便使用自己的数据来测试,然后保存,由于demo.py里面原来只是选取/FRCN_ROOT/data/demo文件夹下的文件进行测试,所有我们要把这个文件夹下的图片替换成自己的测试图片,然后运行demo.py进行测试的时候是只显示出测试好的图片,而不保存测试好的图片,所有要把这个该一下,改成保存测试好的图片,如下图:

训练:

6.然后执行训练,在训练之前,你可以按照第1步的方法,先将训练次数调小,如果训练成功,再重复第4步,调大迭代次数(一般是70000)训练,在FRCN_ROOT文件夹下执行:

./experiments/scripts/faster_rcnn_end2end.sh gpu 0 VGG16 pascal_voc

测试:

7.执行下面命令:

cd $FRCN_ROOT
python ./tools/demo.py --model /home/FENGsl/Faster_RCNN/output/faster_rcnn_end2end/voc_2007_trainval/VGGnet_fast_rcnn_iter_70000.ckpt

问题描述:

1.如果你做数据集的时候把标签的写成的大写字母,会出现KeyError错误提示。

解决办法:找到下面的地方

cls = self._class_to_ind[obj.find('name').text.lower().strip()]  

把lower()去掉即可。

2.如果你用了远程服务器来训练,那么图片是不能显示的,会出现RuntimeError: Invalid DISPLAY variable,

解决办法:需要修改demo.py文件,中间两行

from utils.timer import Timer
import matplotlib.pyplot as plt
plt.switch_backend('agg')
import numpy as np

谢谢大家,我的表演结束,来欣赏我的一些测试结果:

  

TensorFlow下用自己的数据训练Fater-RCNN相关推荐

  1. Tensorflow下用自己的数据集对Faster RCNN进行训练和测试(二)1

    原 Tensorflow下用自己的数据集对Faster RCNN进行训练和测试(二) 2018年08月21日 22:20:38 子季鹰才 阅读数:1811 对于Tensorflow版本的Faster ...

  2. maskrcnn用于目标检测_用自己的数据训练Mask R-CNN目标检测/分割模型

    摘要: 本文讲述了如何使用Mask-CNN对图像中的大量数据进行目标识别与目标分割. 计算机非常擅长数字运算,但对分析图像中的大量数据束手无策.直到最近找到了解决方法,即创建图像处理单元库,利用数千个 ...

  3. tensorflow算法实战:普通的数据训练和迁移学习之后的数据训练进行图像的识别(包括前端页面)

    文章目录 1.数据集的准备: 2.requirements.txt文件: 3.文件结构: 4.预测效果: 5.首先普通的训练: (1)导入相关的库函数: (2)相关的变量的初始化: (3)数据增强和导 ...

  4. 训练fater rcnn时出现path not exist问题

    在使用faster_rcnn_alt_opt.py训练时,出现path not exist:/home/wq426/py-faster-rcnn/data/VOCdevkit2007/VOC2007/ ...

  5. 使用自己的数据训练MobileNet SSD v2目标检测--TensorFlow object detection

    使用自己的数据训练MobileNet SSD v2目标检测--TensorFlow object detection 1. 配置 1.1 下载models-1.12.0 2. 准备数据集 3. 配置文 ...

  6. slim php dd model,第二十四节,TensorFlow下slim库函数的使用以及使用VGG网络进行预训练、迁移学习(附代码)...

    在介绍这一节之前,需要你对slim模型库有一些基本了解,具体可以参考第二十二节,TensorFlow中的图片分类模型库slim的使用.数据集处理,这一节我们会详细介绍slim模型库下面的一些函数的使用 ...

  7. Caffe下自己的数据训练和测试

    在caffe提供的例程当中,例如mnist与cifar10中,数据集的准备均是通过调用代码自己完成的,而对于ImageNet1000类的数据库,对于高校实验室而言,常常面临电脑内存不足的尴尬境地.而对 ...

  8. TFRecord —— tensorflow 下的统一数据存储格式

    tensorflow 提供了统一的数据存储格式,即 TFRecord(record 表示记录),以提高程序的可扩展性,当数据来源十分复杂时,仍能有效记录输入数据中的信息. 1. tfrecord 使用 ...

  9. TensorFlow入门教程:8:训练数据之Iris数据集

    Irises,闻名于世的不只是梵高那副价值超过5000万美元的鸢尾花,同时还有Iris数据集. Iris数据集由英国统计学家/生物学家Ronald Fisher在1936年所收集,共包含150条数据, ...

最新文章

  1. Dynamic Network Surgery for Efficient DNNs
  2. webpack+gulp实现自动构建部署
  3. 前端测试简述及使用Karma/Mocha实现的集成测试栗子(Travis CI/Coverage)
  4. Less 文档查看心得
  5. 安卓使用JNI-NDK
  6. 张娟娟(为奥运冠军名字作诗)
  7. java js跳出循环_[Java教程]js循环的总结
  8. sed: -e expression #1, char 23: unknown option to `s'
  9. SpringCloud微服务:基于Nacos组件,整合Dubbo框架
  10. mysql8.0.13安装不_Windows环境下MySql8.0.13的安装及常见问题解决方案
  11. SQL语句执行优先级
  12. 移动机器人路径规划算法研究综述(一)
  13. 几何分布的期望和方差公式推导_GPR(高斯过程回归)详细推导
  14. 教你App如何上架应用宝----腾讯开放开发平台
  15. 云天励飞在科创板获准注册:计划募资30亿元,陈宁为实际控制人
  16. 全媒舍:活动策划的几个要点与常用做法
  17. 静态网页制作HTML学习笔记
  18. B2B的商务模式主要存在哪些缺点?
  19. IP数据包的路由转发
  20. 虽然计算机应用的范围越来越广,下列各句中,加点的成语使用恰当的一项是( ) A.虽然计算机应用的范围越来越广,但拥有了它并不意味着一切工作都会那么轻而易举,一挥而就。 B... _满分5_满分网...

热门文章

  1. 单招计算机英语面试口语,英语面试口语对话技巧:教育背景
  2. Mac无法开机?别着急看这里
  3. 【转】SSL协议、SET协议、HTTPS简介
  4. 深度探索C++对象模型pdf
  5. 192.168.8.1手机登陆_192.168.8.1手机登陆路由器设置教程
  6. FPGA实现1位全加器设计
  7. 中国宗教场所地理分布数据
  8. 【模型结构绘制】深度学习神经网络模型结构图绘制工具及方法总结【写论文必备】
  9. 疑因内部宫斗被离职,中兴70后程序员从公司坠楼 ​​​​
  10. 一颗芯片是怎样诞生的