论文:

DBNet:Real-time Scene Text Detection with Differentiable BinarizationReal-time Scene Text Detection with Differentiable Binarization

DBNet++:Real-Time Scene Text Detection with Differentiable Binarization and Adaptive Scale Fusion

Github:https://github.com/MhLiao/DB

在MSRA-TD500数据集上的测试效果。DBNet的检测效果F1值和速度FPS都比其他算法要好很多。而DBNet++比DBNet速度约略,精度要高。

主要贡献:

  1. DBNet,DBNet++在5个场景任意方向文本检测的数据集上(水平文本,多方向文本,曲形文本)都取得了最好的效果。
  2. DBNet的速度快,能够输出高度鲁棒的二进制分割图,大大的简化了后处理操作。
  3. 即使使用ResNet-18这样的轻量网络,检测效果也非常好。
  4. 在推理测试阶段,DB模块可以移除而不会对最终效果有影响。
  5. DBNet++通过提出ASF模块来优化多尺度分割的效果。

文本检测方法汇总:

名称

代表方法

优点

缺点

基于回归

(Regression-based)的方法

TextBoxes++,EAST,DeepReg,DeRPN

后处理简单,只需要NMS操作

对于任意形状的文本效果不行

基于部件

Part-based)的方法

SegLink,

SegLink++

尤其擅长长文本行

连接算法比较复杂

基于分割(Segmentation-based)的方法

Mask TextSpotter,

PSENet,SAE

可以出来任意形状的文本

后处理较为麻烦,大概会占用整个推理30%的时间

DBNet网络结构:

网络输入假设为w*h*3。网络整体结构采用FPN的设计思想,进行了5次下采样,3次上采样操作。最终的输出特征图大小为原图的1/4。网络头部部分,分别引出2个分支。一个负责预测概率图(probability map,(w/4)*(h/4)*1),代销为,另一个负责预测阈值图(threshold map,(w/4)*(h/4)*1)。概率图经过阈值图处理,进行二值化后得到二值图(approximate binary map,(w/4)*(h/4)*1)。最后经过后处理操作得到最终文字的边。

DBNet++网络结构:

DBNet++在DBNet的基础上增加了ASF(Adaptive Scale Fusion)模块。不同尺度的特征通过ASF模块处理,可以得到更佳的融合特征。

ASF模块通过引入空间attention机制,使得融合后的特征更加鲁棒。

其中N表示要融合的特征数,这里N=4,表示从4个不同的分支引出的特征。

传统二值化 vs差异二值化:

传统二值化Standard binarization

传统的二值化,只是使用固定的阈值t进行二值化处理。

差异二值化Differentiable binarization

差异二值化,每个像素都使用不同的阈值进行二值化处理。而这个不同的阈值矩阵又是网络学习得到的。为了保证整个优化过程有梯度的传递,这里又将概率图和阈值图的差传入sigmoid函数,以此来保证梯度的传递。通过梯度优化,保证了不同的图片使用不同的阈值矩阵,达到最佳的二值化效果。

这里k被设置为50

定义损失函数为二分类交叉熵,l+表示正样本的loss,l-表示负样本的loss。

分别对正负样本函数求导,得到下面的梯度公式。

其中x<0时,取l+,x>0时,取l-

可变形卷积Deformable convolution:

在ResNet-18和ResNet-50的主干网络conv3,conv4,conv5中使用了可变形卷积,以此保证足够大的感受野。

标签制作:

为了增大相邻文字之间的间距,缓解文字离得太近或者部分重叠的情况。概率图(probability map)的制作会在原始红色多边形的基础上,使用Vatti clipping算法,向内收缩D的距离。

r表示收缩率,这里设置为0.4

A表示原始红色多边形的面积

L表示原始红色多边形的周长

阈值图(threshold map)在红色多边形的基础上,分别向内收缩D距离形成蓝色多边形,向外扩张D距离形成绿色多边形。蓝色多边形和绿色多边形之间的像素形成阈值图。然后计算图内每个像素离最近的边(蓝色边,绿色边)的归一化距离,形成最终的阈值图。阈值图看起来中间像素亮,边缘像素暗。

后处理操作:

后处理操作中,使用概率图(probability map)或者使用二值图(approximate binary map)都是可以的。两者在效果上是一样的。这样在推理过程中,就可以去掉网络中的二值化过程,直接使用概率图。这样网络中的二值化过程的loss就更像一个辅助loss,来使得网络训练的效果更好。

后处理过程如下,

  1. 使用固定阈值0.2对概率图或者二值图进行二值化操作,得到二值图
  2. 从二值图中获得连通域区域
  3. 将连通域区域向外膨胀D’得到真实的多边形轮廓

其中r’=1.5

A’为网络输出的二值化后的连通区域的面积

L’为网络输出的二值化后的连通区域的周长

损失函数:

a=1.0

β=10

Ls:概率图(probability map)的loss,采用二分类交叉熵损失,并基于ohem难例挖掘,保证正负样本比例为1:3

Lb:二值图(binary map)的loss,采用二分类交叉熵损失,并基于ohem难例挖掘,保证正负样本比例为1:3

Lt:阈值图(threshold map)的loss,采用L1损失,其中Rd表示绿色膨胀轮廓内的像素

实验结果:

DBNet 

DBNet++

DBNet VS DBNet++

总结:

  1. 速度快,精度高
  2. 能检测任意形状的文本,横着,竖着,斜着,曲形等多种类型的文本
  3. 缺点,DBNet,DBNet++不能解决环形文字里面还有文字的情况。

One limitation of our method is that it can not deal with cases “text inside text”, which means that a text instance is inside another text instance.

4.通过提出DB(Differentiable Binarization),类似额外约束的loss,使得模型训练效果更佳。

5.DBNet++在DBNet的基础上,通过引入ASF模块,在少量耗时增加的代价下,提升了准确性。

6.可变形卷积(Deformable convolution)的引入,对精度提升巨大。

文本检测之DBNet,DBNet++相关推荐

  1. 连通域最小外接矩形算法原理_基于分割的文本检测算法之PSENet/PAN/DBNet

    1. 文本检测难点 文本内包含文本,艺术字体,任意方向 ,曲线文字 ,多语言,其他环境因素等是文本检测中的难点 2. 分割 问题1: 语义分割模型是对pixel进行分类,所以理论上讲,可以检测不规则的 ...

  2. 分割文本_PSENet、PANNet、DBNet三个文本检测算法异同

    点击蓝字关注我们 这三个文本检测算法都是segment base算法,通过由下而上的方式,先对text进行segment,然后再根据segment text,计算出text的instance PSEN ...

  3. PSENet PANNet DBNet 三个文本检测算法异同

    向AI转型的程序员都关注了这个号???????????? 机器学习AI算法工程   公众号:datayx 这三个文本检测算法都是segment base算法,通过由下而上的方式,先对text进行seg ...

  4. 场景文本检测算法 可微分二值化DBNet原理与代码解析

    目录 原理介绍 Label Generation Loss函数 后处理 论文 https://arxiv.org/abs/1911.08947 代码 https://github.com/WenmuZ ...

  5. 移植mysql到安卓手机_记录dbnet文本检测转ncnn并移植到安卓上

    目前,文本检测主要分为基于检测网络和分割网络实现,上文(风影:记录densenet-ocr识别网络转ncnn并移植到安卓手机)讲到将yolo3文本检测+densenet识别网络转ncnn推理,并成功移 ...

  6. pytorchOCR之DBnet(多类别文本检测1)

    pytorchOCR之DBnet(多类别文本检测1) 代码 完整代码 动机 主要是为了对不同文本类型,既要检测文本位置,又要分类文本类型,比如中英文检测分类,手写印刷检测分类. 实现方式 1 . 模型 ...

  7. 基于PaddleOCR的DBNet多分类文本检测网络之身份证识别

    目的 全网的身份证识别大部分都是通过识别整张图片,然后再对数据进行格式化解析,这会照成很大的局限性,比如非摆正图片,图片上有其他干扰信息,这就会导致通过此方式来识别大大降低了准确率和不确定性.这篇文章 ...

  8. 【文本检测】1、DBNet | 实时文本检测器

    文章目录 一.背景 二.方法 2.1 二值化 2.2 Adaptive threshold 2.3 可变形卷积 2.4 生成标签 2.5 优化过程 三.效果 3.1 实验数据 3.2 实验细节 3.3 ...

  9. 【文本检测】DBNet

    目录 论文正文 概述 细节 整体流程 二值化 自适应的门限 可变形卷积 标注 损失计算 推理 感悟 论文正文 链接:链接,提取码:7fmj 概述 文本检测主流的两个方法就是基于回归的方法和基于分割的方 ...

最新文章

  1. 程序员,唯有锻炼与读书不能辜负
  2. 2020年最新!百度、微软、浪潮、谷歌企业级综述更新!
  3. Android 使用摄像头拍照
  4. Tomcat 处理 HTTP 请求源码分析(上)【转】
  5. CVPR2021 | 北航商汤耶鲁口头报告
  6. 全员5G!iPhone 12系列终于来了:没有阉割,售价依旧5499元起!
  7. Arrays.sort() 为什么可以对 int 等数组进行排序?我跟面试官扯了半个小时 | 原力计划...
  8. 共轭梯度法(Conjugate Gradient)
  9. 老程序员为什么从不使用 Java 自带的序列化?
  10. 半吊子架构师,一来就想干掉RabbitMQ
  11. 【遗传算法】求解TSP问题
  12. CheckBoxPreference组件 自动存储到sharedpreferences
  13. vue3.0常用的composition API
  14. boost | 线程与并发(一)atomic
  15. PeopleSoft技术(Application Designer学习,简称AD)
  16. 电脑开机黑屏错误代码U盘重装系统教学
  17. 《王者荣耀》产品分析报告
  18. iOS8扩展插件开发配置
  19. apt-get update和apt-get upgrade的区别
  20. MeasurementStudio安装教程

热门文章

  1. C# 日期转换AM/PM
  2. list与tuple
  3. kotlin中标准函数的使用(with、also、aply、let、run)
  4. CentOs解决下载速度慢 更换下载源
  5. Python Spider: 爬取项目外包网站TaskCity
  6. SQL SERVER 链接服务器
  7. 敲黑板!《大数据产业发展规划(2016-2020年)》要点解读
  8. Spark入门实战系列--9.Spark图计算GraphX介绍及实例
  9. LE_SHP_DELIVERY_PROC 修改交货单 VL01N、VL02N创建修改交货单时触发
  10. Nature Neuroscience:利用深度神经网络进行基于磁共振的眼动追踪