IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 【文本检测】DBNet -> 正文阅读

[人工智能]【文本检测】DBNet

概述

文本检测主流的两个方法就是基于回归的方法和基于分割的方法。
基于回归的方法指的是迁移一些经典的目标检测算法,比如SSD,用于文本的检测。主要过程就是经过网络得到一个包含预测结果的tensor,然后解析tensor得到预测结果,接着简单后处理就可以了。但是他们对于弯曲、的检测效果没那么好,而这类文本呢又是场景种最常见的文本。
基于分割的方法:首先,分割指的是像素点级别的分类,判别每一个像素点是否属于一个文本目标,计算量特别大。通过一个分割网络得到分割图或者叫做概率图,接着进行固定阈值的二值化操作得到二值图,通过后处理得到文本分割区域的包围曲线。
二值化:就是根据一个固定的门限值,将概率图中每个数值变为0/1,如 f ( x ) = 1 i f x > 0.7 e l s e 0 f(x)=1 if x>0.7 else 0 f(x)=1ifx>0.7else0
在这里插入图片描述

而本文,是在基于分割的方法上进行的研究,主要目的是为了减少后处理过程的计算量,他提出了一种将二值化操作加到分割网络中的一种方法。也就是说,在本文中,分割网络同时生成概率图和门限图,二值化中的门限不再是给定的,而是模型学习到的,是能够自适应的。而二值化过程,如 f ( x ) = 1 i f x > 0.7 e l s e 0 f(x)=1 if x>0.7 else 0 f(x)=1ifx>0.7else0,显然是不可微的,因此同时还提出了一种可微分二值化过程Differentiable Binarization (DB)。
在这里插入图片描述

细节

骨干网络

骨干网络会对输入图片进行多次下采样得到不同尺寸的feature-map,再将它们上采样和浅层网络中长宽相同的feature-map进行concat操作,然后继续卷积,最后将尺度相同的feature-map进行concat,然后得到两个图:概率图和门限图,通过他们得到二值图,根据它进行后处理得到文本分割区域的包围曲线。
在这里插入图片描述

二值化

标准二值化操作:
在这里插入图片描述
可微分二值化 B i , j ^ = 1 1 + e ? k ( P i , j ? T i , j ) \hat{B_{i,j}}=\frac{1}{1+e^{-k(P_{i,j}-T_{i,j})}} Bi,j?^?=1+e?k(Pi,j??Ti,j?)1?
B是近似二值函数的函数值,k是放大因子(计算导数,发现k都是乘的,所以会放大梯度,作者取了50), P i , j P_{i,j} Pi,j?是概率, P i , j P_{i,j} Pi,j?是门限
可微分二值化的作用:1、使得门限值能够通过网络学习得到而不是直接给定。2、提高性能。
为什么能够提高性能?:像素的分类错误,会得到更大的梯度,而为了网络的收敛,模型必须自己学会解决这些问题。
更大的梯度?:首先,二值图的损失是二元交叉熵损失。
x = P i , j ? T i , j x=P_{i,j}-T_{i,j} x=Pi,j??Ti,j? f ( x ) = 1 1 + e ? k x f(x)=\frac{1}{1+e^{-kx}} f(x)=1+e?kx1? l o s s = ? y l o g ( f ( x ) ) ? ( 1 ? y ) l o g ( 1 ? f ( x ) ) loss=-ylog(f(x))-(1-y)log(1-f(x)) loss=?ylog(f(x))?(1?y)log(1?f(x)),正样本: l o s s + = ? y l o g ( f ( x ) ) loss_{+}=-ylog(f(x)) loss+?=?ylog(f(x)),负样本: l o s s ? = ? ( 1 ? y ) l o g ( 1 ? f ( x ) ) loss_{-}=-(1-y)log(1-f(x)) loss??=?(1?y)log(1?f(x)),他们各自对应的导数的曲线在k=1和k=50的情况下,如图
在这里插入图片描述
观察可以发现,首先,梯度的大小是与K有关的。其次,网络如果将正例预测称负例,那么梯度很很大;网络将负例预测乘正例,梯度也很大。

自适应的门限

用处:主要是为了计算得到二值图,另外实验中发现,无论给不给这个门限一个监督,门限图中都会去凸显文本的边框,也就是能够直到网络更好的检测文本。
在这里插入图片描述

可变形卷积

目的:为了获得更大、更灵活的感受野,尤其适用于长宽比例比较极端的文本
在这里插入图片描述

标注

概述:概率图和近似二值图受到同一个ground truth监督,是白色部分比较小;门限图受到另一个ground truth监督,是黄色部分比较大。
为什么概率图和近似二值图受到同一个ground truth监督:直观感觉上,他们都得受到原图绘制的二值图的监督。
为什么区域会有大小?:这或许就是设计的奥秘吧…
在这里插入图片描述
计算二值化之后结果的案例:
在这里插入图片描述

标注1:概率图和近似二值化图对应的标注,先对文本进行标注,然后做一步shrink。里面就是1表示有文本,外面是0,表示没文本。
在这里插入图片描述
标注2:门限图对应的标注,首先对于文本检测框,进行收缩和放大,它们中间的区域就是。
在这里插入图片描述
标注值:对于,区域内部所有点,计算它达4条红线的距离,取最近的一个。这样就得到了一个两边大中间小的结果,然后对所有的值做 1 ? X / D 1-X/D 1?X/D的操作,再进行操作,将这些值归一化到一个范围比如 0.3 ? 0.7 0.3-0.7 0.3?0.7
为什么这么复杂:一步一步分析
最后为什么要归一化到某个范围?因为不归一化的话就无法得到二值化的结果了。
为什么要 X / D X/D X/D:因为门限肯定是0-1的数,而这里最大就是D,所以可以这么做来进行归一化。
为什么要 1 ? X / D 1-X/D 1?X/D:为了得到中间小两边大的结果,门限图的重点就是对于边框的敏感
在这里插入图片描述

损失计算

主要是三部分:概率图和近似二值图的损失还有门限图的损失
其中门限图的损失只计算文本边框范围内的损失,使用的是L1范数
为什么用L1范数:????
在这里插入图片描述

我理解的错题集:之前机器学习课程中讲到,模型将判别错误的样本加权
在这里插入图片描述

推理

推理的时候,不需要门限图和二值化图了,直接根据概率图,使用标准的二值化操作就行,然后得到文本的边界,并进行矫正,得到原始的文本边界区域,之后就可以用一些软件包把这部分的区域拿出来了。但是分割主要解决的是弯曲形状文本区域的效果,但是一些文本检测方法处理的是矩形框,那么一个做法就是直接取包含这些区域的最小矩形框。
在这里插入图片描述
在这里插入图片描述

感悟

问题:比如YOLO v3中,检测的时候模型输出 n ? n ? 3 ? ( 1 + 4 + 20 ) n*n*3*(1+4+20) n?n?3?(1+4+20)的tensor,解析这个tensor我们就能得到检测结果,但是为什么能够这么做呢?
模型输出结果解析的可解释性:所谓监督,就是给网络一个参考,让网络自己学习参数,不断逼近这个参考。因为我们训练的时候,也就是制作dataset的时候,不仅仅是得到了numpy格式的img,还做了对应的tround-truth,也就是那些 n ? n ? 3 ? ( 1 + 4 + 20 ) n*n*3*(1+4+20) n?n?3?(1+4+20)的tensor,训练的时候要求模型输出的tensor和ground-truth尽可能地接近,检测的时候,模型就能够按照以前的经验得到一个类似的输出,但是这个输出是否足够好呢?还是的看训练的时候是否则够充分,是否学习到了最优的function。
问题:模型的结构到底怎么设计呢?

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-04-29 12:08:38  更:2022-04-29 12:11:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 8:48:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码