R-FCN、SSD、YOLO2、faster-rcnn和labelImg实验笔记

转自:https://ask.julyedu.com/question/7490

R-FCN
paper:https://arxiv.org/abs/1605.06409
作者代码:https://github.com/daijifeng001/R-FCN #matlab版本
这里使用python版本的代码:https://github.com/Orpine/py-R-FCN

1.下载代码
git clone https://github.com/Orpine/py-R-FCN.git

2.克隆caffe
cd py-R-FCN
git clone https://github.com/Microsoft/caffe.git #Microsoft的源
[可选]
cd caffe
git reset --hard 1a2be8e

3.编译Cython模块
cd py-R-FCN/lib
make

4.编译caffe和pycaffe

这里Makefile.config要支持Python layers!

In your Makefile.config, make sure to have this line uncommented

WITH_PYTHON_LAYER := 1

cd py-R-FCN/caffe
cp Makefile.config.example Makefile.config 
make -j8 && make pycaffe

5.下载resnet caffemodel
从OneDriver下载rfcn_models https://1drv.ms/u/s!AoN7vygOjLIQqUWHpY67oaC7mopf
解压到:py-R-FCN/data下
解压后的目录:
py-R-FCN/data/rfcn_models/resnet50_rfcn_final.caffemodel
py-R-FCN/data/rfcn_models/resnet101_rfcn_final.caffemodel

6.运行demo
python py-R-FCN/tools/demo_rfcn.py --net ResNet-50
python py-R-FCN/tools/demo_rfcn.py --net ResNet-101

ResNet-50效果图:

ResNet-101效果图:

7.准备训练和测试
笔者这里简单使用VOC2007,并且修改名称VOC0712,笔者把数据集直接放在py-R-FCN/data下
官网使用VOC2007和VOC2012,使用的时候要合并数据集,具体参考官网的Preparation for Training & Testing 第四点

8.下载ImageNet 与预训练的ResNet-50和ResNet-100
OneDriver:https://onedrive.live.com/%3Fa ... FF777(在KaimingHe的github https://github.com/KaimingHe/d ... works )
mkdir py-R-FCN/data/imagenet_models
将model放到该目录

9.可自己修改模型,类别,修改相应的py-r-fcn/py-R-FCN/models/pascal_voc/目录下对应的文件和py-r-fcn/lib/datasets/pascal_voc.py。笔者这里还是使用默认的。

10.修改迭代次数
vi py-r-fcn/experiments/scripts/rfcn_end2end_ohem.sh
把pascal_voc的ITERS 调小

11.训练
./py-r-fcn/experiments/scripts/rfcn_end2end_ohem.sh 0 ResNet-50 pascal_voc 
其他训练方式请自行参考官网Usage

12.测试
将训练好的模型py-r-fcn/py-R-FCN/output/rfcn_end2end_ohem/voc_0712_trainval/resnet50_rfcn_ohem_iter_x.caffemodel,放到 py-r-fcn/py-R-FCN/data/rfcn_models 下,修改 py-R-FCN/tools/demo_rfcn.py的NETS,运行

SSD
paper:https://arxiv.org/abs/1512.02325
作者代码:https://github.com/weiliu89/caffe/tree/ssd

1.下载代码:
git clone https://github.com/weiliu89/caffe.git
cd caffe
git checkout ssd

2.编译代码
cp Makefile.config.example Makefile.config
make -j8
make py
make test -j8
make runtest -j8

3.准备
1.下载caffemodel和prototxt 
https://gist.github.com/weiliu ... f81d6
从上边地址下载完放到/models/VGGNET/

4.下载VOC2007和VOC2012
cd /root/data
wget http://host.robots.ox.ac.uk/pa ... 2.tar
wget http://host.robots.ox.ac.uk/pa ... 7.tar
wget http://host.robots.ox.ac.uk/pa ... 7.tar
tar -xvf VOCtrainval_11-May-2012.tar
tar -xvf VOCtrainval_06-Nov-2007.tar
tar -xvf VOCtest_06-Nov-2007.tar

5.创建LMDB文件
cd $CAFFE_ROOT
./data/VOC0712/create_list.sh
./data/VOC0712/create_data.sh

6.训练模型
python examples/ssd/ssd_pascal.py 
也可以从这里http://www.cs.unc.edu/%257Ewli ... ar.gz 下训练好的模型。

7.评估模型
python examples/ssd/score_ssd_pascal.py

8.测试模型
python examples/ssd/ssd_pascal_webcam.py #笔者这步忽略
贴几张youtube的SSD实时检测效果,视频地址:https://www.youtube.com/watch?v=6q-DBCPROA8

直接用ssd_detect.ipynb(examples/ssd_detect.ipynb)测试

9.训练其他数据集忽略

mxnet 版本的ssd
代码地址:https://github.com/zhreshold/mxnet-ssd

1.下载代码
git clone --recursive https://github.com/zhreshold/mxnet-ssd.git

2.编译mxnet
cd mxnet-ssd/mxnet
cp make/config.mk ./config.mk #自行修改配置文件
make -j8

3.下载预训练模型
地址:https://dl.dropboxusercontent. ... 2.zip。下载后解压到model下

4.测试demo
python demo.py --epoch 0 --images ./data/demo/dog.jpg --thresh 0.5

效果图:

5.其他的训练数据忽略

YOLO2
paper:https://arxiv.org/abs/1506.02640
官网:http://pjreddie.com/darknet/yolo/

1.下载代码
git clone https://github.com/pjreddie/darknet
cd darknet
make

2.下载模型
wget http://pjreddie.com/media/files/yolo.weights

3.检测
./darknet detect cfg/yolo.cfg yolo.weights data/dog.jpg
效果图

其他效果图

4.所有检测
./darknet detect cfg/yolo.cfg yolo.weights data/dog.jpg -thresh 0

5.在视频上检测
./darknet detector demo cfg/coco.data cfg/yolo.cfg yolo.weights <video file>

faster-rcnn
paper:https://arxiv.org/abs/1506.01497
官方版本:https://github.com/ShaoqingRen/faster_rcnn #matlab
这里使用python版本:https://github.com/rbgirshick/py-faster-rcnn

1.下载代码
git clone --recursive https://github.com/rbgirshick/py-faster-rcnn.git
笔者这里换了官方的源,没问题的同学可忽略
cd caffe-fast-rcnn

git remote add caffe https://github.com/BVLC/caffe.gitX86Xgit fetch caffe

git merge caffe/master

2.编译Cython模块
cd $FRCN_ROOT/lib
make

3.编译caffe和pycaffe

这里Makefile.config要支持Python layers!

In your Makefile.config, make sure to have this line uncommented

WITH_PYTHON_LAYER := 1

cd $FRCN_ROOT/caffe-fast-rcnn
make -j8 && make pycaffe

4.下载预训练模型
cd $FRCN_ROOT
./data/scripts/fetch_faster_rcnn_models.sh

5.测试demo
cd $FRCN_ROOT
./tools/demo.py

效果图:

6.其他数据集训练的此处忽略

labelImg
笔者使用的图像标注工具是labelImg,制作的格式和PASCAL VOC一样,可在windows、linux和Mac使用。
代码地址:https://github.com/tzutalin/labelImg

1.环境依赖
至少python2.6和PyQt 4.8

2.Linux/Ubuntu/Mac 安装
sudo apt-get install pyqt4-dev-tools
sudo pip install lxml
make all
./labelImg.py

Windows
在文件目录下执行
pyrcc4 -o resources.py resources.qrc
python labelImg.py

3.常规使用步骤
python labelImg.py
在File菜单选Change default saved annotation folder
点击Open Dir,打开图片路径
点击Create RectBox,画标注

4.常用快捷键
Ctrl + r 选择annotation的默认存放路径
Ctrl + n 新建一个标注
Ctrl + s 保存图片
n:下张图片
p:上一张图片

5.预先可以在 labelImg/data/predefined_classes.txt 定义标注类别

【目标检测大集合】R-FCN、SSD、YOLO2、faster-rcnn和labelImg实验笔记相关推荐

  1. 修订版 | 目标检测:速度和准确性比较(Faster R-CNN,R-FCN,SSD,FPN,RetinaNet和YOLOv3)...

    很难在不同的目标检测器之间进行公平的比较.对于哪个模型是最好的?这个问题是没有直接的答案.对于现实生活中的应用,我们选择平衡准确性和速度.除了检测器类型外,我们还需要了解影响性能的其他选择: Feat ...

  2. 语言模型“不务正业”做起目标检测,性能还比DETR、Faster R-CNN更好 | Hinton团队研究...

    博雯 发自 凹非寺 量子位 报道 | 公众号 QbitAI 长期以来,CNN都是解决目标检测任务的经典方法. 就算是引入了Transformer的DETR,也是结合CNN来预测最终的检测结果的. 但现 ...

  3. CVPR 2021 | 视觉目标检测大模型GAIA:面向行业的视觉物体检测一站式解决方案

    作者丨常清 编辑丨机器之心 中国科学院自动化研究所智能感知与计算研究中心联合华为等企业提出面向行业的视觉物体检测一站式解决方案 GAIA. 在深度学习与大数据的浪潮下,视觉目标检测在各个基准数据集上已 ...

  4. yolo 负样本_目标检测介绍之YOLO与SSD

    当前,目标检测的方法主要有两类,一类被称为两阶段方法,一类被称为一阶段方法.两阶段方法和一阶段方法都是基于目标应位于某个矩形框内这样一个假设,区别在于两阶段方法多了一个框的筛选阶段(Region Pr ...

  5. 中科院自动化所与华为联合提出!视觉目标检测大模型GAIA

    点上方计算机视觉联盟获取更多干货 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:机器之心 AI博士笔记系列推荐 周志华<机器学习>手推笔记正式开源!可打印版本附pdf下载链接 中 ...

  6. 【计算机视觉40例】案例22:目标检测(YOLO方法、SSD方法)

    [导读]本文是专栏<计算机视觉40例简介>的第22个案例<目标检测(YOLO方法.SSD方法)>.该专栏简要介绍李立宗主编<计算机视觉40例--从入门到深度学习(Open ...

  7. 目标检测---以制作yolov5的数据集为例,利用labelimg制作自己的深度学习目标检测数据集(正确方法)

    以制作yolov5的数据集为例,利用labelimg制作自己的深度学习目标检测数据集的正确方法 文章目录 前言 一.labelimg简单介绍 1 VOC标签格式,保存为xml文件. 2 yolo标签格 ...

  8. 综述二 | 最全的目标检测大综述(附下载链接)

    欢迎关注" 计算机视觉研究院 " 关注并星标 从此不迷路 计算机视觉研究院 公众号ID|ComputerVisionGzq 学习群|扫码在主页获取加入方式 计算机视觉研究院专栏 作 ...

  9. 综述二 | 2020年最全的目标检测大综述(附下载链接)

    欢迎关注" 计算机视觉研究院 " 计算机视觉研究院专栏 作者:Edison_G                  扫描二维码 关注我们 微信公众号 : 计算机视觉研究院 知乎专栏: ...

  10. 20年的目标检测大综述(章节2)

    春暖花开 Spring comes 今天我们接着上次综述章节1继续来大家来说说,本次主要说说20年内的目标检测,感谢大家的关注与支持. OBJECT DETECTION IN 20 YEARS 我们将 ...

最新文章

  1. 想要高效在线办公,建议你“百度如流”一下:项目管理、协作文档都来了,还有AI翻译和速记等黑科技...
  2. 【ABAP】SAP销售订单定价值变更
  3. 百度安全 Rust TrustZone SDK正式成为 Apache Teaclave 子项目
  4. Netty时间轮调度原理分析,再不了解你就out啦
  5. GDCM:gdcm::StreamImageWriter的测试程序
  6. 历代CPU最全明细参数表
  7. HashMap的扩容机制
  8. 【效率特工队】一款神器,批量手机号码归属地查询最新软件,可导出excel表格,支持全面号段
  9. 2014年domino学习小结
  10. 基于ARM开发板的嵌入式项目设计(C完整代码)
  11. excel页码怎么设置从4开始?
  12. python ttk_python-3.x – 为什么导入*然后ttk?
  13. 小程序 web-view 打开 微信公众号文章
  14. Discussion 2
  15. Java 设计模式(十三):代理模式
  16. 【IoT库】RFID基础知识第2期 · 历史发展
  17. java基础之java类型
  18. Word计算机与网络应用原题,计算机应用基础考试试题附答案
  19. 论文复刻:排污权机制是否提高了企业全要素生产率(附代码、数据、原文献)
  20. Android--ERROR: Failed to resolve: androidx.lifecycle:lifecycle-extentions:2.2.0

热门文章

  1. 数据--第21课-递归课后练习
  2. 输入流控制:几种清除输入流中空格或回车的常用函数
  3. hdu4757(可持久化 Trie )
  4. android AudioManager类 详解(1)
  5. wget通过代理上网办法
  6. 偷懒才能编程序——计算机达人成长之路(18)
  7. 全国首款网页版(web)真3D商城
  8. 听说你在学Python?来点PEP吧
  9. VS中为非控制台程序提供控制台输出窗口
  10. sts bug SpringJUnit4ClassRunner