bbox & R-CNN
bbox(Bounding Box) 是包含物体的最小矩形,该物体应在最小矩形内部。
其中,x、y代表着bbox左上角坐标(或其他固定点坐标),对应的w、h表示bbox的宽和高。
R-CNN(Regions with CNN features)
模型步骤:
输入图像
找出候选区域
通过CNN提取特征向量
训练分类器
(1)输入图像
进入CNN网络之前需要把候选区域统一成227 x 227的大小。有以下两种方法:
各向同性缩放,裁剪候选区域,边界用固定颜色背景(采用候选区域的像素颜色均值)填充到指定大小。
各向异性缩放,即直接缩放到指定大小,可能造成失真。
实验表明,各向异性缩放较好。
(2)候选区域
- selective search 选择性搜索出建议区域
- convert regions to boxes 将区域转化成框
- botton-up segmentation 自底向上分割
- merging regions at multiple scales 多尺度区域合并
(A)候选框内的图像(B)包含候选框的原图(C)各向同性缩放后的图像(D)各向异性缩放后的图像
(3)CNN提取特征向量
CNN作用:在候选区域提取特征向量,作为下一步分类器的输入,分类器回归出物体位置和种类。
文章采用AlexNet作为网络架构,去掉fc8层,softmax层替换成N+1神经元的输出层(N为物体,正样本;1为背景,负样本)。
(4)训练分类器
为什么使用SVM,而不是CNN过fc层直接softmax出来?
因为训练CNN时选取数据比较宽泛(样本不够准确),直接softmax出来效果不好。训练SVM时,使用的样本时有变换的。
修正bbox,对bbox做回归微调。
微调详解:https://blog.csdn.net/u011974639/article/details/78053203