前言
因为最近打算尝试一下Faster-RCNN的复现,不要多想,我还没有厉害到可以一个人复现所有代码。所以,是参考别人的代码,进行自己的解读。
代码来自于B站的UP主(大佬666),其把代码都放到了GitHub上了,我把链接都放到下面了(应该不算侵权吧,毕竟代码都开源了_):
b站链接:https://www.bilibili.com/video/BV1of4y1m7nj/?vd_source=afeab8b555e5eb1bfa1e7f267262cbf2
GitHub链接:https://github.com/WZMIAOMIAO/deep-learning-for-image-processing
目的
其实UP主已经做了很好的视频讲解了他的代码,只是有时候我还是喜欢阅读博客来学习,另外视频很长,6个小时,我看的时候容易睡着_,所以才打算写博客记录一下学习笔记。
目前完成的内容
第一篇:VOC数据集详细介绍
第二篇:Faster-RCNN代码解读2:快速上手使用
第三篇:Faster-RCNN代码解读3:制作自己的数据加载器
第四篇:Faster-RCNN代码解读4:辅助文件解读
第五篇: Faster-RCNN代码解读5:主要文件解读-上
第六篇: Faster-RCNN代码解读6:主要文件解读-中
第七篇:Faster-RCNN代码解读7:主要文件解读-下
第八篇:Faster-RCNN代码解读8:代码调试与总结(本文)
目录结构
前面的七篇文章,基本上把该项目大部分重要的文件都进行了解读。本篇是Faster-RCNN代码解读的最后一篇,主要是分享一下如何去调试代码和从更高的角度去分析一下。
代码调试,需要运行的文件是train_mobilenetv2.py
这样的文件才可以。
不过这不是重点,重点是想要正常的运行该训练文件,需要安装很多库,其中最难安装的就是pycocotools
。**如果你的环境是Linux,可以直接pip安装即可;但是如果你是windows,那么就很麻烦了。**这里,我说一下,我安装pycocotools的历程:
第一步,必须安装VC 14++。但是,网上提供的一般都是一个文件,即 VisualCppBuildTools_Full.exe
,如果你直接用这个文件安装,一般会报错文件损坏之类的。
因此,最好是下载带有安装文件的VisualCppBuildTools_Full.exe
,可以从下面的链接中下载:
链接:https://pan.baidu.com/s/1uwP-Y2egam4taXmn6uYPaA
提取码:qt91
下载后,目录结构如下图所示,并直接运行exe即可正常安装:
第二步,从GitHub上下载cocotools。
打开链接:
https://github.com/cocodataset/cocoapi
将整个项目下载下来放到任意文件夹即可:
进入你刚刚下载的GitHub文件夹内的PythonAPI
中:
然后,以此打开Windows的cmd命令行,输入python setup.py build_ext --inplace
,运行成功的截图:
接着,再运行python setup.py build_ext install
命令,运行成功的截图:
正常运行完成后,你的文件夹就会多出两个文件夹:
最后一步,就是把pycocotools.egg-info
和pycocotools
两个文件夹复制放入你的python编辑器里面的库文件夹内(参考下图找到自己的路径):
到这里,就安装成功了。
最简单的检验方式,创建一个python文件,运行代码:
from pycocotools.coco import COCO
没有报错,即安装成功。
安装成功后,基本跑完该项目就没啥问题了,可以正常调试代码了。
该项目的代码特别多,一个文件有的有六七百行代码,读起来确实很痛苦。
这里我给出一点我的心得:
__init__
方法,再读forward
方法,以前向传播方法为路径,去搞懂每一个方法。network_files
文件夹的RPN部分network_files/faster_rcnn_framwork.py
即可 最后,如果你想要自己研究整个代码。我觉得比较好的阅读顺序是:
首先,需要了解数据集(1);其次,需要明白我们如何加载数据集的(2);接着,去读如何训练整个网络(3);然后进入网络内部,了解Faster-RCNN的整体框架(4);最后,深入Faster-RCNN的RPN部分和后面的分类回归部分(5)。
另外,大佬的视频文件也是必看的参考资料之一。
到此,Faster-RCNN的源码解读到此结束了。相比于YOLO等一阶段算法,Faster-RCNN这样的两阶段代码确实太多了。
不过,代码虽多,我们并不是要学习所有的代码,而是去验证论文和去学习实现的思路。