文本检测(Text Detection)简要综述

article/2025/9/10 21:14:03

文章目录

  • 检测(Detection)在计算机视觉中的位置
  • 检测任务
      • 经典数据集
      • 评价指标
      • 发展历史
      • 什么叫Anchor
      • 检测架构
      • RPN
      • FPN(特征金字塔网络)
  • 几个文本检测的较新方法
      • FOTS(【2018CVPR】Fast Oriented Text Spotting with a Unified Network)
      • TextSnake(【2018ECCV】 TextSnake: A Flexible Representation for Detecting Text of Arbitrary Shapes)
      • ContourNet(【2020 CVPR】ContourNet: Taking a Further Step toward Accurate Arbitrary-shaped Scene Text Detection)
      • ABCNet(【2020 CVPR Oral】ABCNet: Real-time Scene Text Spotting with Adaptive Bezier-Curve Network)
  • 参考

文本检测(Text Detection)是计算机视觉领域的经典问题,该技术旨在寻求一种可靠方法作为文本识别技术的前端,是目标检测(Object Detection)领域的一个子问题

检测(Detection)在计算机视觉中的位置

计算机视觉有四大基本任务: 分割(classification)、定位(检测localization、detection)、语义分割(Semantic segmentation)、实例分割(Instance segmentation)
在这里插入图片描述

这四个任务需要对图像的理解逐步深入。给定一张输入图像,图像分类任务旨在判断该图像所属类别。定位是在图像分类的基础上,进一步判断图像中的目标具体在图像的什么位置,通常是以包围盒的(bounding box)形式。在目标定位中,通常只有一个或固定数目的目标,而目标检测更一般化,其图像中出现的目标种类和数目都不定。语义分割是目标检测更进阶的任务,目标检测只需要框出每个目标的包围盒,语义分割需要进一步判断图像中哪些像素属于哪个目标。但是,语义分割不区分属于相同类别的不同实例。例如,当图像中有多只猫时,语义分割会将两只猫整体的所有像素预测为“猫”这个类别。与此不同的是,实例分割需要区分出哪些像素属于第一只猫、哪些像素属于第二只猫。此外,目标跟踪通常是用于视频数据,和目标检测有密切的联系,同时要利用帧之间的时序关系。

作者:张皓
链接:https://www.zhihu.com/question/36500536/answer/304469552
来源:知乎

在这里插入图片描述

上图中,从上到下逐渐复杂

复杂程度: 分割(同分类)–>定位(一个或固定数目的目标)–>检测(和定位其实很类似,也是用一个bounding box)–>语义分割(像素级的分割)–>实例分割(在前者的基础上区分出同类的不同实例)

检测任务

经典数据集

PASCAL VOC 包含20个类别。通常是用VOC07和VOC12的trainval并集作为训练,用VOC07的测试集作为测试。

MS COCO COCO比VOC更困难。COCO包含80k训练图像、40k验证图像、和20k没有公开标记的测试图像(test-dev),80个类别,平均每张图7.2个目标。通常是用80k训练和35k验证图像的并集作为训练,其余5k图像作为验证,20k测试图像用于线上测试。区别于ImageNet常用于做分类,COCO用来做检测,因为COCO没label

评价指标

mAP (mean average precision) 目标检测中的常用评价指标,计算方法如下。当预测的包围盒和真实包围盒的交并比大于某一阈值(通常为0.5),则认为该预测正确。对每个类别,我们画出它的查准率-查全率(precision-recall)曲线,平均准确率是曲线下的面积。之后再对所有类别的平均准确率求平均,即可得到mAP,其取值为[0, 100%]。

交并比(intersection over union, IoU) 算法预测的包围盒和真实包围盒交集的面积除以这两个包围盒并集的面积,取值为[0, 1]。交并比度量了算法预测的包围盒和真实包围盒的接近程度,交并比越大,两个包围盒的重叠程度越高。

发展历史

在这里插入图片描述

经典的LeNet、AlexNet、VGG、GoogleNet用来做分类,RCNN、Fast RCNN、Faster RCNN、YOLO、SSD则用来做检测

  • 单阶段目标检测方法是指只需一次提取特征即可实现目标检测,其速度相比多阶段的算法快,一般精度稍微低一些

  • two-stage检测算法将检测问题划分为两个阶段,首先产生候选区域(region proposals),然后对候选区域分类(一般还需要对位置精修),这类算法的典型代表是基于region proposal的R-CNN系算法,如R-CNN,SPPNet ,Fast R-CNN,Faster R-CNN,FPN,R-FCN等

什么叫Anchor

熟悉PS、AE等图像视频处理软件的盆友可能在软件使用中见过"锚点"工具,这个锚点与目标检测中的anchor的作用就是类似的。anchor就是一些图像上预设好的一些不同大小、比例的检测框,换句话也可以说anchor是一些预先的滑动窗口的中心点

以下引用"AIZOO"公众号中对其的解释

下图来自《动手学深度学习》中的例子,假设一个256x256大小的图片,经过64、128和256倍下采样,会产生4x4、2x2、1x1大小的特征图,我们在这三个特征图上每个点上都设置三个不同大小的anchor。当然,这只是一个例子,实际的SSD模型,在300x300的输入下,anchor数量也特别多,其在38x38、19x19、10x10、5x5、3x3、1x1的六个特征图上,每个点分别设置4、6、6、6、6、4个不同大小和长宽比的anchor,所以一共有38x38x4+ 19x19x6+ 10x10x6+ 5x5x6+ 3x3x4+ 1x1x4= 8732个anchor。
在这里插入图片描述
上图中,每个fearture map"像素点"上画出的三种颜色的检测框位置(或者检测框的中心位置)对应到原图上就是anchor的位置,详细内容进入链接新手也能彻底搞懂的目标检测进行查看

检测架构

当前的目标检测器通常由一个与检测任务无关的主干特征提取器和一组包含检测专用先验知识的颈部和头部组成。颈部 / 头部中的常见组件可能包括感兴趣区域(RoI)操作、区域候选网络(RPN)或锚、特征金字塔网络(FPN)等。如果用于特定任务的颈部 / 头部的设计与主干的设计解耦,它们可以并行发展。从经验上看,目标检测研究受益于对通用主干和检测专用模块的大量独立探索。长期以来,由于卷积网络的实际设计,这些主干一直是多尺度、分层的架构,这严重影响了用于多尺度(如 FPN)目标检测的颈 / 头的设计。

机器之心: https://www.jiqizhixin.com/articles/2022-04-01-10

RPN

FasterRCNN前言:

State-of-the-art object detection networks depend on region proposal algorithms
to hypothesize object locations. Advances like SPPnet and Fast R-CNN
have reduced the running time of these detection networks, exposing region proposal computation as a bottleneck. In this work, we introduce a Region Proposal Network (RPN) that shares full-image convolutional features with the detection network, thus enabling nearly cost-free region proposals. An RPN is a
fully-convolutional network that simultaneously predicts object bounds and objectness scores at each position. RPNs are trained end-to-end to generate highquality region proposals, which are used by Fast R-CNN for detection. With a
simple alternating optimization, RPN and Fast R-CNN can be trained to share
convolutional features. For the very deep VGG-16 model [19], our detection
system has a frame rate of 5fps (including all steps) on a GPU, while achieving
state-of-the-art object detection accuracy on PASCAL VOC 2007 (73.2% mAP)
and 2012 (70.4% mAP) using 300 proposals per image. Code is available at
https://github.com/ShaoqingRen/faster_rcnn.
在这里插入图片描述
上图为原文中解释RPN网络结构的图。文章中说RPN为一个全卷积层
在这里插入图片描述
上图为常见的解释FasterRCNN的图。注意其中RPN的位置(向左上方的箭头也就是RPN)

  1. 图中RoI Pooling的作用: 和一般的pooling一样,是为了减少feature map的像素量,加快运算速度
  2. 最后的classifier为一个FC和softmax,输出每个proposal具体属于哪个类别的概率
    参考文章https://zhuanlan.zhihu.com/p/31426458第四节,结构如下。可见其不仅用softmax输出分类概率(每个物体属于哪类的概率),还回归推断了bbox的新位置(bbox_pred)
    在这里插入图片描述

RPN(Region Proposal Network)来源于Faster RCNN。RCN是Faster RCNN的backbone

FasterRCNN= RPN + FastRCNN

FPN(特征金字塔网络)

FPN([2016 CVPR]): https://arxiv.org/abs/1612.03144
前言: 特征金字塔是识别系统中用于检测不同尺度对象的基本组件。但是最近的深度学习对象检测器已经避免了金字塔表示,部分原因是它们是计算和内存密集型的。在本文中,我们利用深度卷积网络固有的多尺度金字塔层次结构来构建具有边际额外成本的特征金字塔。开发了一种具有横向连接的自上而下的架构,用于在所有尺度上构建高级语义特征图。这种称为特征金字塔网络 (FPN) 的架构在多个应用程序中作为通用特征提取器显示出显着的改进。在基本的 Faster R-CNN 系统中使用 FPN,我们的方法在 COCO 检测基准上实现了最先进的单模型结果,没有花里胡哨,超越了所有现有的单模型条目,包括来自 COCO 2016 挑战赛获胜者的条目。

FPN的特征金字塔很不一样的地方在于这种金字塔有横向的连接

这种金字塔的区分可以参考这篇文章: http://note4lin.top/post/fpn/

机器之心: https://www.jiqizhixin.com/articles/2017-07-25-2

一些特征金字塔的对比

在这里插入图片描述

(a) 使用图像金字塔构建特征金字塔。特征是在每个图像尺度上独立计算的,这很慢。
(b) 最近的检测系统选择仅使用单尺度特征来加快检测速度。
© 另一种方法是重用由 ConvNet 计算的金字塔特征层次结构,就好像它是一个特征化的图像金字塔一样。
(d) FPN提出的特征金字塔网络 (FPN) 与 (b) 和 © 一样快,但更准确。在该图中,特征图由蓝色轮廓表示,较粗的轮廓表示语义上更强的特征。
下图是上图中D的更准确描述
在这里插入图片描述

几个文本检测的较新方法

FOTS(【2018CVPR】Fast Oriented Text Spotting with a Unified Network)

这篇论文是一个集合了文本检测跟文字识别两部分的一个统一的端到端的框架,可同时对图像中的文字进行检测跟识别。

之前的大部分方法都是将检测跟识别当做两个独立的任务去做,先检测,再识别。这篇论文提出的框架处处是可微的,所以可以对其进行端到端的训练,结果表明,该网络无需复杂的后处理和高参数整定,易于训练,并且在保证精度的前提下大大提高速度

如下图所示

在这里插入图片描述
FOTS作为端到端的文本识别,使用了44.2ms; 而用某种其他方法,先检测再识别,两个步骤都分别用了四十多ms

TextSnake(【2018ECCV】 TextSnake: A Flexible Representation for Detecting Text of Arbitrary Shapes)

在这里插入图片描述

对于一般的文本检测,往往用一个矩形框框出内容,而TextSnake采用弯曲的凸N边形框出内容并复原为矩形,这样使得文本检测更加有效

网络结构

在这里插入图片描述

ContourNet(【2020 CVPR】ContourNet: Taking a Further Step toward Accurate Arbitrary-shaped Scene Text Detection)

文章设计了文本水平与竖直方向的轮廓检测方法,对尺度(形状)变化大的文本检测任务提高了精确度

在这里插入图片描述

上半部分是用简单BoundingBox做的检测

下半部分用水平与竖直两方向进行检测并融合,也即文章目的

ABCNet(【2020 CVPR Oral】ABCNet: Real-time Scene Text Spotting with Adaptive Bezier-Curve Network)

Adaptive-Bezier Curve Network

主要部分是通过参数化的贝塞尔曲线作为线框来检测文本,提高了检测的有效性,并且速度较快,达到了实时性的要求

在这里插入图片描述

如上图所示,对一个弯曲形的文字,使用Bezier曲线来对齐(所谓BezierAlign),并拉成一个平的,从而有了更好的效果

参考

  • 计算机视觉中各任务的区别–知乎-张皓
  • 计算机视觉中的四大任务
  • 单阶段、两阶段检测
  • 文本检测综述
  • 新手也能彻底搞懂的目标检测
  • Region Proposal Network (RPN) — Backbone of Faster R-CNN
  • FasterRCNN explained

http://chatgpt.dhexx.cn/article/eDFeYfNx.shtml

相关文章

思维导图——线性代数知识点总结

线性代数知识点总结 期末,总结了线性代数的相关知识点。

线性代数知识点总结,基础概念和计算整理(手写版)

线性代数中一定必须要掌握的基础概念和计算的整理,简单易懂,适合入门和复习。

线性代数基础知识点回顾与总结(一):行列式与矩阵

线性代数基础知识点回顾与总结(一):行列式与矩阵 介绍 骨骼图 1.行列式 排列: 1,2,,n组成的有序数组称为n阶排列。 逆序:大数排在小数前。自然排列为偶排列。 n阶行列式的值等于不同行的n…

线性代数-行列式知识总结

1、知识脉络如图 2、二阶与三阶行列式 (1)定义略 (2)二阶行列式与三阶行列式的计算“对角线法则”,三阶可降为二阶(方便计算) 如图 注意符号 (3)行列式线性方程组的关系 …

深度学习涉及到的线性代数知识点总结(二)

文章目录 一、余弦相似度和欧式距离的关系二、相关性三、基四、线性变换五、仿射变换六、矩阵特征方程七、相似矩阵八、奇异值分解九、谱范数 一、余弦相似度和欧式距离的关系 如果对向量模长进行归一化,欧式距离和余弦相似度有如下计算关系: ● 适用场…

线性代数矩阵知识点

文章目录 (一),矩阵的基本概念1,矩阵的定义 (二),矩阵的运算1,矩阵的加减法2,数与矩阵的乘法3,矩阵的乘法4,矩阵的转置5,方阵的行列式…

线性代数知识图谱

1. 线性代数知识图谱 线性代数是代数学的一个分支,主要处理线性关系问题。线性关系意即数学对象之间的关系是以一次形式来表达的。例如,在解析几何里,平面上直线的方程是二元一次方程;空间平面的方程是三元一次方程,而…

基础线性代数知识点总结与回顾(二):秩与线性相关

基础线性代数知识点总结与回顾(二):秩与线性相关 骨骼图 秩 矩阵的秩: 若矩阵的r阶子式不为0,r1阶子式全为0,则称矩阵的秩为r。 定理:经过初等变换,矩阵的秩不变。 推论 秩的…

大一线性代数知识点总结

行列式和矩阵的加法和乘法的比较 伴随矩阵的一些性质 以下是全部知识点总结 线性方程组的系数行列式为零时,不能用克拉默法则解方程组,因为此时方程组的解为无解或有无穷多个解。 克拉默法则解线性方程组的两个条件: 方程个数等于未知量个数…

线性代数知识总结梳理

目录 1.行列式计算 2.矩阵 3.向量与方程组 4.特征值 5.二次型 1.行列式计算 2.矩阵 3.向量与方程组 4.特征值 5.二次型

基础线性代数知识点总结与回顾(三):向量空间和二次型

基础线性代数知识点总结与回顾(三):向量空间和二次型 骨骼图: 向量空间 对加法、数乘封闭。 W——n维向量的非空集合,且满足: 则:W为n维向量空间的子空间。 如果向量空间V中的向量(a1,a2,a…

线性代数知识点总结之行列式

线性代数知识点总结之行列式 本章知识图解: 对图解的初级补充与完善 1.1.1.1.1.1.排列:一般地,从n个不同元素中取出m(m≤n)个元素,按照一定的顺序排成一列,叫做从n个元素中取出m个元素的一个排…

基础线性代数知识点总结与回顾(四):线性空间

基础线性代数知识点总结与回顾(四):线性空间 骨骼图: #其实,线性空间是向量空间内容的扩展。 首先我把向量空间的内容截图搬过来,便于你们的比较与对照。 线性空间 设V是实数域k上的线性空间&#xff…

线性代数知识点总结

1 行列式 (一)行列式概念和性质 1、逆序数:所有的逆序的总数 2、行列式定义:不同行不同列元素乘积代数和 3、行列式性质:(用于化简行列式) (1)行列互换(…

线性代数知识点整理

目录 前言 一.行列式 1.行列式求值 2.七大性质 3.特殊行列式的值 二.矩阵及其运算 1.行列向量: 2.可逆矩阵: 3.常用性质: 4.伴随矩阵: 三.矩阵的初等变换和线性方程组 1.初等变换: 2.矩阵的秩:定…

线性代数知识汇总

1. 线性代数知识图谱 线性代数是代数学的一个分支,主要处理线性关系问题。线性关系意即数学对象之间的关系是以一次形式来表达的。例如,在解析几何里,平面上直线的方程是二元一次方程;空间平面的方程是三元一次方程,…

STM32电源框图解析(VDD、VSS、VDDA、VSSA、VREF+、VREF-、VBAT等的区别)

目录 1、名词解析 2、框图解析 2.1、独立的A/D转换器供电和参考电压 2.2、电池备份区域 STM32的工作电压(VDD )为2.0~3.6V,通过内置的电压调节器提供所需的1.8V电源,当主电源VDD 掉电后,通过VBAT 脚为实时时钟(RTC)和备份寄存…