时间:2018
作者:马建奇 复旦大学
要解决的问题:旋转文本检测,基于faster rcnn改进。
数据增强过程中gt的标签变化
(x,y,w,h,θ):x和y绕图像中心点的旋转,w,h保持不变,角度跟着增加。绕任一点旋转矩阵可参考https://blog.csdn.net/u013407012/article/details/103721902/
faster-rcnn
fasterrcnn首先使用特征提取网络提取特征,最后得到5038512特征图,然后利用每个位置的512个特征去得到三个尺度三个长宽比例下锚点框的描述,包括置信度以及坐标偏移量。测试时保留前300个分数最高的锚点框。利用上述的特征图,找到对应位置特征,使用roi pooling提取77?特征,然后全连接映射到类别和坐标偏移量。总的来说,主要几个部分:
- VGG:特征提取;
输入是调整到固定尺寸的自然图像。输出是5038512的特征图。512表示特征维度,50*38表示特征点个数。 - RPN:生成候选区域;
输入上一个步骤产生的特征图。输出是每一个特征点9个锚点框的目标置信度(92)以及相对于各自锚点框的偏移量(94)。总共会产生50389个锚点框。预测时根据分数和NMS只保留前300个锚点框,转换成输入图像尺度的坐标。 - ROI pooling:将得到的候选框转换成固定大小的特征图。输入1是VGG得到的特征图,输入2是RPN得到的锚点框。过程就是将每个锚点框区域的特征块划分成固定尺寸(77)的小块。输出就是30077?个特征图。
- 分类和回归:对候选区域进行类别判断和坐标精细校正。输入是77?的特征图,输出是每个锚点框的类别预测和坐标偏移量预测,最后使用NMS得到最终检测结果。
相对于fasterrcnn的改进
1、RPN->RRPN:
相对于RPN的改进。锚点框变成了三个尺度,三个长宽比,6个方向的倾斜锚点框。然后每个框除了目标置信度,坐标偏移外,还需要回归角度偏移量。最终输出的就是倾斜的候选框区域。
2、ROIpooling->RROIpooling
前一个只能处理水平方向的候选矩形框。所以rroi使用仿射变换将倾斜的候选区域特征图映射到水平区域特征图。这样就相当于对水平区域提取roiplling后的特征了。
图片.png
这里,将倾斜矩形框分成7x7块大小,其中i,j表示具体的子区域。第一个for循环能得到(i,j)位置左上角在原图中的真实坐标,然后第二个for循环能够计算这块小区域内所有特征点的最大值。最后将该最大值赋值给value,得到最终pooling后的特征图。
- 扩展:图像几何变换
1)首先求解变换矩阵,得到原图像任意像素点对应变换后的位置。叫做向前映射。存在映射不完全和映射重叠问题。
2)变换后图像的任意像素在原图像的坐标位置。向后映射。使用输出图像坐标(整数坐标值)反推原图像的坐标位置。这样就会找到原图的唯一像素点。如果这个像素点是浮点坐标,就采用插值算法得到该浮点坐标的像素值。
具体实现如下:
1)创建一个和原图大小相同的新矩阵。得到矩阵变换的逆变换
2)遍历新图像的所有像素点(整数坐标),利用逆变换求得对应的原始坐标点(浮点数),然后利用插值运算得到新的像素值,赋值给新矩阵对应位置,完成几何变换。
注意新图像大小和原始图像一致,不过会有很多黑边。实际的变换后的图像大小要
具体参考
其他解读
https://blog.csdn.net/m_buddy/article/details/89416473
网友评论