旋转文本检测,基于ssd
1、ssd目标检测算法
- backbone
VGG16,输入是固定大小的图像,输出是下采样的特征图。 - neck
输入是VGG产生的不同尺度的特征图,输出是经过卷积处理后不同尺度特征图。不过每个尺度的特征图之间没有交集。 - head
输入是不同尺度特征图,以及每个cell的锚点框的大小和中心位置。其中锚点框有5个长宽比例:{1,2,3,1/2,1/3},也就是一个尺度上的一个cell对应5个不同长宽比的锚点框。输出是每个cell目标类别,这里类别是真实类别加背景。以及相对于每个锚点框的位置和尺寸偏移量。最后使用NMS输出最终检测结果。 - 总结
ssd的特点:单阶段、多尺度、
2、 textbox
提出textbox layer
-
改进1:锚点框
首先是默认锚点框的长宽比和位置发生了变化。
图片.png
如上图,长宽比变成1,3,5,7,10。而且因为锚点框在水平方向密集,在竖直方向稀疏,又对默认锚点框位置在竖直方向偏移一半的cell尺寸。这样原来没有对应的锚点框也能匹配的很好。
-
改进2:卷积核
原来的33卷积核改进成15的卷积核,该卷积核更利于检测长条形目标。 -
测试时输入多尺度图像
将原始图像调整成不同尺度输入图像,得到检测结果,使用NMS抑制。提高了5个点。注意训练时没有使用多尺度,只有测试时采用了多尺度。
3、 textbox++
textboxs++提出两种四边形的检测,一个是倾斜的矩形,一个是一般四边形
- 锚点框长宽比
1; 2; 3; 5; 1/2; 1/3; 1/5.因为要检测倾斜矩形框,所有区域就不一定是狭长的,所以比例又变回原来的内容。 - 训练时IOU匹配原则
如果是倾斜矩形,那么使用最小外接矩形作为GT与锚点框匹配IOU。
如果是四边形,就使用该四边形匹配锚点框IOU -
head坐标偏移量回归梳理
两种标注方法均回归最小外接矩形。那么,偏移量的参数如下:
如果是倾斜矩形,就是4(中心点坐标和长宽偏移)+5(左上角,右上角坐标和高度)
如果是一般四边形,就是4+8(4个顶点的x、y坐标偏移量)
图片.png
-
偏移量计算方式
主要问题:训练时需要确认锚点框和GT四个顶点对应关系,才好计算偏移量。
1、一般四边形。
图片.png首先顶点b的顺序不变,左上角顺时针标记。而四边形标记方式使用上面的公式计算。本质就是确定b1回归的是哪个顶点,确定后,其他顶点就确定了。确定原则是依次对标b1,q’1,b1、b1,q’2。。。然后计算四个顶点欧氏距离和,选择最小和的q’n作为q1。
2、倾斜矩形
普遍做法是使用中心点、长宽和角度值回归。但是训练集中角度θ分布是不均匀的,存在某些角度取值概率更大。所以这里回归的宽度h。 - 训练和测试都用了多尺度策略
网友评论