Faster-RCNN代码解读8:代码调试与总结

Faster-RCNN代码解读8:代码调试与总结

前言

​ 因为最近打算尝试一下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:代码调试与总结(本文)

目录结构

1. 前言:

​ 前面的七篇文章,基本上把该项目大部分重要的文件都进行了解读。本篇是Faster-RCNN代码解读的最后一篇,主要是分享一下如何去调试代码和从更高的角度去分析一下。

2. pycocotools安装/代码调试:

​ 代码调试,需要运行的文件是train_mobilenetv2.py这样的文件才可以。

​ 不过这不是重点,重点是想要正常的运行该训练文件,需要安装很多库,其中最难安装的就是pycocotools。**如果你的环境是Linux,可以直接pip安装即可;但是如果你是windows,那么就很麻烦了。**这里,我说一下,我安装pycocotools的历程:

2.1 安装VC 14++:

第一步,必须安装VC 14++。但是,网上提供的一般都是一个文件,即 VisualCppBuildTools_Full.exe,如果你直接用这个文件安装,一般会报错文件损坏之类的

​ 因此,最好是下载带有安装文件的VisualCppBuildTools_Full.exe,可以从下面的链接中下载:

链接:https://pan.baidu.com/s/1uwP-Y2egam4taXmn6uYPaA 
提取码:qt91

​ 下载后,目录结构如下图所示,并直接运行exe即可正常安装:

在这里插入图片描述

2.2 下载pycocotools:

第二步,从GitHub上下载cocotools

​ 打开链接:

https://github.com/cocodataset/cocoapi

​ 将整个项目下载下来放到任意文件夹即可:

在这里插入图片描述

2.3 开始安装:

​ 进入你刚刚下载的GitHub文件夹内的PythonAPI中:

在这里插入图片描述

​ 然后,以此打开Windows的cmd命令行,输入python setup.py build_ext --inplace,运行成功的截图:

在这里插入图片描述

​ 接着,再运行python setup.py build_ext install命令,运行成功的截图:

在这里插入图片描述

​ 正常运行完成后,你的文件夹就会多出两个文件夹:

在这里插入图片描述

​ 最后一步,就是把pycocotools.egg-infopycocotools两个文件夹复制放入你的python编辑器里面的库文件夹内(参考下图找到自己的路径):

在这里插入图片描述

​ 到这里,就安装成功了。

2.4 测试是否安装成功:

​ 最简单的检验方式,创建一个python文件,运行代码:

from pycocotools.coco import COCO

​ 没有报错,即安装成功。

安装成功后,基本跑完该项目就没啥问题了,可以正常调试代码了。

3. 对该项目的浅解:

​ 该项目的代码特别多,一个文件有的有六七百行代码,读起来确实很痛苦。

​ 这里我给出一点我的心得:

  • 读架构代码,先读__init__方法,再读forward方法,以前向传播方法为路径,去搞懂每一个方法。
  • 如果你对某个变量不清楚,可以去调试代码,去看看这个变量的值。
  • 如果你对了解全部的代码不感兴趣,可以针对某个文件去具体研究。
    • 比如,如果你想要知道Faster-RCNN的RPN框架,可以就只读network_files文件夹的RPN部分
  • 如果你只想要大体了解整体架构,建议只读network_files/faster_rcnn_framwork.py即可

最后,如果你想要自己研究整个代码。我觉得比较好的阅读顺序是:

在这里插入图片描述

首先,需要了解数据集(1);其次,需要明白我们如何加载数据集的(2);接着,去读如何训练整个网络(3);然后进入网络内部,了解Faster-RCNN的整体框架(4);最后,深入Faster-RCNN的RPN部分和后面的分类回归部分(5)。

​ 另外,大佬的视频文件也是必看的参考资料之一。

4. 总结:

​ 到此,Faster-RCNN的源码解读到此结束了。相比于YOLO等一阶段算法,Faster-RCNN这样的两阶段代码确实太多了。

​ 不过,代码虽多,我们并不是要学习所有的代码,而是去验证论文和去学习实现的思路。

猜你喜欢

转载自blog.csdn.net/weixin_46676835/article/details/130179239
今日推荐