本文分析的代码来自https://github.com/yhenon/keras-frcnn,侵删。
keras是一种类似tensorflow的Python语言下的包,同样可以用于卷积神经网络的设计,相较于tensorflow实现相对容易但本身仍需tensorflow或theano的支持,本文分析tensorflow支持下的keras实现,keras=2.0.3,数据集选择Pascal VOC2007,需要下载后手动将train和test数据集进行合并并放置于根目录下的train_path文件夹下(需自己创建)。
数据集下载 地址:https://pjreddie.com/projects/pascal-voc-dataset-mirror/
代码起始于train_frcnn:
1.首先设置数据存放路径,图像的调整相关参数,提取网络的选择,权重的加载(如果存在预权重),提取VGG16预加载数据,设定初始参数
2.获取Pascal VOC2007数据集的相关信息,包括图片的地址、width、height、bboxes()存放于all_imgs,类别数量统计,排序各类别,其中分类的类别中应包括背景,随机打乱图片的顺序,扩展数据集(旋转…)
3.调用已搭建好的卷积网络,实现shared convolutions的构建,代码如下:
from keras.models import Model
from keras.layers import Flatten,