【深度学习】计算机视觉(九)——Faster RCNN
创始人
2025-05-30 14:26:15
0

文章目录

  • 理论部分
  • 使用部分
    • step1:源码下载及环境配置
      • 1. Install tensorflow, preferably GPU version.
      • 2. Checkout this branch
      • 3. Install python packages
      • 4. Go to ./data/coco/PythonAPI
      • 5. Download PyCoco database.
      • 6. Download pre-trained VGG16
      • 7. Run `train.py`
    • stepn:修改参数【待学习】

关于为什么要学习Faster RCNN,主要就是该算法的精度比较高、理论比较成熟,看过一些文章说比较适用于我目前的方向,再加上时间原因没有办法把所有的基础都打好,只能直接开始算法的学习了。

理论部分

本来看到一个博主说,要想了解Faster RCNN,就要先学习RCNN和Fast RCNN,不过我发现它们之间的差别还是有些大的,而且似乎目前也没什么必要去了解,我比较认同另一个博主说“只关注最新的”即可,所以既然我目前学习的重点是Faster RCNN,那么就暂时不去学习其他的RCNN了。

学习完前面基于锚框的算法和RPN之后,基本对于学习Faster RCNN的全部内容都没有问题了,由于时间问题不作过多赘述,将网络结构的笔记总结附上:

请添加图片描述

使用部分

step1:源码下载及环境配置

源码下载:https://github.com/rbgirshick/py-faster-rcnn.git
(我也不知道我下载的是不是源码,网络上没找到对于如何找到源码的解释,以常识来说检索faster rcnn出现的第一个结果应该就是源码吧……)

可阅读《README》文件。

1. Install tensorflow, preferably GPU version.

Follow instructions. If you do not install GPU version, you need to comment out all the GPU calls inside code and replace them with relavent CPU ones.

因为我前面已经下载了tensorflow以及配置好GPU,所以这步略。

2. Checkout this branch

检查一下?(以前没有接触过这种语句,我也不知道是不是有啥特殊意思,先跳过……)

3. Install python packages

下载好之后,使用pycharm打开项目(老生常谈了,细节略!)。打开requirements.txt文件,该文件里提示了我们需要安装的库。有cython、opencv-python、easydict、Pillow、matplotlib、scipy

Cython是一种通过python语法编写C扩展的编程语言

easydict允许以属性的方式访问dict类型,且可以递归地访问,使用起来比较方便。

可以先查看自己已安装的库,然后下载没有的,因为我懒得一个一个比对,所以我直接在项目文件里引包,报错的就是我没有的。需要注意,opencv-python引包时用的是cv2,Pillow引包使用PIL,前面已经下载过了。我这里缺少cython和easydict。
在这里插入图片描述
接下来下载cython和easydict,具体方法略,参考:在pycharm用python画图:matplotlib

使用pip list 命令检查一下是否安装成功以及版本号。然后添加到pycharm中,具体方法略,参考同上。
在这里插入图片描述

4. Go to ./data/coco/PythonAPI

Run python setup.py build_ext --inplace
Run python setup.py build_ext install
Go to ./lib/utils and run python setup.py build_ext --inplace

这里不知道是干啥的,应该是关于coco的一些配置,后面检测的时候要用?由于我看的教程没有说,我先跳过这一步。

5. Download PyCoco database.

I will be glad if you can contribute with a batch script to
automatically download and fetch. The final structure has to look like
data\VOCDevkit2007\VOC2007

这里不知道是干啥的,应该是下载coco的数据集,后面检测的时候要用?由于我看的教程没有说,我先跳过这一步。

6. Download pre-trained VGG16

place it as data\imagenet_weights\vgg16.ckpt

因为本节手写笔记里说过,我们在已经训练好的model的基础上去训练RPN,也就是说Faster RCNN的卷积网络是直接采用VGG-16的,代码中应该没有自己去写卷积层,所以需要先把VGG-16下载下来才能使用。我猜测,所谓预训练模型,应该是指除了网络结构与VGG-16相同以外,初始权重也是VGG-16中保存的对任何数据集都表现比较好的一组。

下载地址:http://download.tensorflow.org/models/vgg_16_2016_08_28.tar.gz

如果要使用其他模型(选看):https://github.com/tensorflow/models/tree/master/research/slim#pre-trained-models

下载好压缩包之后,需要在data文件夹中手动新建imagenet_weights文件夹,解压缩并重命名为vgg16.ckpt放在data\imagenet_weights\此路径。(重命名是因为代码中对vgg的使用就是“vgg16.ckpt”)

在这里插入图片描述

7. Run train.py

stepn:修改参数【待学习】

在lib/config下的config.py文件,是专门的配置文件,其中定义了模型的诸多参数,大家可以根据自己的需要修改相关参数,下面介绍较为重要的需要修改的参数。
(1)network参数
定义预训练使用的模型,我见到的最多的是使用vgg16模型(源码默认也是使用vgg16),也可以使用resnet模型。我采用的是vgg16模型。
(2) learning_rate参数
这个就是我们熟知的学习率,学习率定义的太小收敛速度会很慢,学习率定义的太大可能会导致不收敛。这个参数可以多次调整,分别训练,取一个最优的学习率。
(3) batch_size参数
这个也是很熟知的一个参数,定义的是每一个梯度的大小。一般用的比较多的是32,64,128,256这些batch_size。batch_size太大,内存容量可能撑不住,但是下降方向更准确,震荡更小,而且训练相同量的数据集速度更快;batch_size太小,内存利用率就变小了,但是容易陷入局部最优。个人理解是,如果内存够大,硬件允许的话,batch_size设置的大一些会更容易收敛,效果也会更好。
(4)max_iters参数
这个参数定义的是最大的迭代次数。
(5) snap_iterations参数
这个参数定义的是迭代多少次保存一次模型。个人觉得snap_iterations和max_iters要比较匹配,修改的话需要一起修改。因为如果max_iters参数定义的较小,但是snap_iterations很大的话,就看不到自己生成的模型了。模型保存的路径是default/voc_2007_trainval/default。每次保存模型都是保存4个文件。
(6) roi_bg_threshold_low
这个参数定义的是background(背景)认定的ROI的最小阈值。这里我没有深入研究,但是在运行train.py文件进行训练的时候如果产生Exception:image invalid,skipping。此时修改此处的值为0.0,会解决问题。
————————————————
版权声明:本文为CSDN博主「精致又勤奋的码农」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_38391210/article/details/104607895


参考来源:
一文读懂Faster RCNN
Cython 的简要入门、编译及使用
【python基础】easydict的安装与使用
TensorFlow2深度学习实战(十六):目标检测算法Faster R-CNN解析

相关内容

热门资讯

阿联酋最大银行及另两家中东银行... 观点网讯:5月8日,路透社报道指,阿联酋最大银行第一阿布扎比银行(First Abu Dhabi B...
深圳239亿地王易主,再造万象... 2017年,世茂集团豪掷239.43亿元拿下世茂深港国际中心地块,曾规划建筑高度达700米的深圳第一...
蔚来在安庆成立新能源科技公司 ... 天眼查App显示,近日,安庆蔚来新能源科技有限公司成立,法定代表人为姚蒀,注册资本500万人民币,经...
美国牛肉商期盼峰会重启对华出口 据路透社5月8日报道,美国牛肉生产商正期待特朗普与中国于5月14日至15日的峰会推动对华出口许可恢复...
创业板首家未盈利企业,市值突破... 5月8日,大普微总市值正式突破2000亿元大关。截至午间收盘,大普微涨14.07%,报493.1元/...
招商证券:董事长霍达因工作变动... 招商证券公告,公司董事长霍达因工作变动申请辞去董事长、执行董事等全部职务,辞任自辞呈送达董事会之日生...
原创 中... 【阅读须知】本文所引用的所有信息和数据,均为作者通过查阅官方资料与网络公开数据整理、分析而成,旨在为...
原创 从... 2026年5月5日,中国商务部发布了一项具有划时代意义的专项阻断禁令,这份公告让一向倚仗长臂管辖的美...
布米普特拉北京投资基金管理有限... 美国圣路易斯联邦储备银行总裁穆萨莱姆周三发出明确信号,美联储货币政策面临的潜在风险正在发生关键转向。...
加工的秘密:超精加工设备如何做... 你知道吗? 一根头发丝的直径大约0.07毫米,也就是70微米。 超精加工设备,可切出表面,其尺寸为0...
招商证券董事长霍达因工作变动离... 北京商报讯(记者 刘宇阳 实习生 王思奕)5月8日,招商证券发布关于公司董事长离任暨推举董事代行董事...
华帝股份营收创近3年新低,37... 乐居财经李兰近日,华帝股份(002035.SZ)发布2025年年度报告。 2025年,华帝股份实现营...
大模型融资杀疯了!月之暗面狂揽... 图源:视觉中国 5月7日,据华峰资本官微消息,国内头部大模型公司月之暗面(Kimi)于近日完成新一轮...
扎根长宁二十余载,仲利国际融资... 作为总部扎根上海长宁的优质台资金融企业,仲利国际融资租赁有限公司深耕融资租赁行业二十余载,始终坚守金...
估值210亿!李彦宏又将收获一... 来源:直通IPO,文/王非 国产GPU上市潮仍然汹涌,继两家登陆A股、两家登陆H股后,这家公司正推进...
基金“盲盒”拆了 公募基金正在迎来一场让投资者“看得懂”的变革。 近日,华夏、易方达、南方、招商等12家头部及特色基金...
原创 2... 前言 十年间,中国企业在印尼镍产业链累计砸下超过140亿美元,电厂、公路、码头和全套生产线,硬生生...
原创 欧... 俄罗斯卫星通讯社5月6日报道,欧盟宣布禁止欧洲银行为含有来自不可靠供应商的关键部件的可再生能源项目提...
原创 余... 2026年5月2日,在中国理财市场扎根十三年的余额宝,终于触碰到了一个让所有人错愕的数字——7日年化...
银华基金增聘谭普景共同管理银华... 来源:新浪基金∞工作室 5月8日,银华基金管理股份有限公司发布公告称,为银华中证机器人交易型开放式指...