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 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 【文本检测】PSENet -> 正文阅读

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

论文正文

链接:链接,提取码:7tjv

概述

背景:文本检测当中,主流的两类方法是基于回归的方法和基于分割的方法。前者对于任意形状文本的检测效果较差,后者较好,但是后者容易将接近的文本实例检测为一个文本实例,本文就是为了解决这个问题。
下图中:a是原图,b是使用基于回归的方法得到的结果,效果很差,c是基于分割的方法得到的结果,d是使用PSENet得到的结果。
在这里插入图片描述

细节

整体流程

首先骨干网络是ResNet,接着经过FPN特征金字塔做特征融合得到F,F经过处理得到N个分割图 ( S 1 , S 2 , . . . , S n ) (S_1,S_2,...,S_n) (S1?,S2?,...,Sn?),其中 S 1 S_1 S1?具有最小尺度的文本实例的分割结果(最小的kernels), S n S_n Sn?具有最大尺度的、也是我们需要的文本实例的分割结果(最大的kernels),根据它得到文本的检测结果。

  1. 没看代码,但是讲道理分割图还没这么夸张的,二值化之后才是黑白的,可能因为不是重点,这里就直接省略了二值化的过程了。
  2. N个分割图不是一步到位产生的,而是先产生具有最小尺度的文本实例的分割结果 S 1 S_1 S1?,然后通过PSE算法慢慢扩张里面的kernels,得到 S 2 , . . . , S n ) S_2,...,S_n) S2?,...,Sn?)
    在这里插入图片描述

Progressive Scale Expansion(PSE)

扩张的过程其实就是使用BFS的思想,kernel内部的像素不断扩张,直到两个kernel的像素产生冲突停止扩张,处理冲突的办法就是先到先得。
已下是算法的形式化的表示伪代码
在这里插入图片描述
在这里插入图片描述

标注

模型要产生N个分割结果,那么我们就得给它N个ground-truth,怎么得到这N个ground-truth呢?首先,我们可以根据文本得到一个标注框,然后根据它得到二值图,这个二值图就是 S n S_n Sn?的监督。然后对它进行shrink得到 S n ? 1 S_{n-1} Sn?1?的监督,直到得到 S 1 S_1 S1?的监督。
在这里插入图片描述
shrink的大小:大小为 d i d_i di?,它由已下两个公式决定,其中area为是原来的kernel的面积,permimeter是原来kernel的周长,是已知的,而r也是由于超参数m和n决定的,m是Minimal Kernel Scale,也就是 S 1 S_1 S1?中kernel与 S n S_n Sn?中的kernel的比例,n是分割图的个数。
d i = A r e a ( p n ) ? ( 1 ? r i 2 ) P e r i m e t e r ( p n ) d_i=\frac{Area(p_{n})*(1-r_{i}^2)}{Perimeter(p_n)} di?=Perimeter(pn?)Area(pn?)?(1?ri2?)?,其中 r i = 1 ? ( 1 ? m ) ? ( n ? i ) n ? 1 r_i=1-\frac{(1-m)*(n-i)}{n-1} ri?=1?n?1(1?m)?(n?i)?
:那么n取几合适一点呢?5比较合适。那么m取几合适一点呢?40%比较合适。以上都是在IC15和CTW-1500数据集上的结果,是针对于label而言的。
在这里插入图片描述

损失函数

损失 L L L主要包含两部分,包括 S n S_n Sn?这个具有最大尺度的、也是我们需要的文本实例的分割结果的损失 L c L_c Lc?和之前的小尺度的文本实例分割结果的损失和 L s L_s Ls?还有一个平衡系数 λ \lambda λ
L = λ ? L c + ( 1 ? λ ) ? L s L=\lambda*L_c+(1-\lambda)*L_s L=λ?Lc?+(1?λ)?Ls?
其中, L c 与 L s L_c与L_s Lc?Ls?用的损失是Dice loss,也就是相似度越高,损失越小。函数D就是计算相似度的,而M表示在训练的时候,使用了Online Hard Example Mining (OHEM)的技术,W表示二值化操作
L c = 1 ? D ( S n ? M , G n ? M ) L_c=1-D(S_n*M,G_n*M) Lc?=1?D(Sn??M,Gn??M)
L s = 1 ? ∑ i = 1 n ? 1 D ( S i ? W , G i ? W ) n ? 1 L_s=1-\frac{\sum_{i=1}^{n-1}D(S_i*W,G_i*W)}{n-1} Ls?=1?n?1i=1n?1?D(Si??W,Gi??W)?

  1. 因为使用交叉熵损失函数的话,文本实例占据的区域是在太小,网络会倾向于预测非文本区域。所以选择了dice loss
  2. dice系数= 2 ∣ X ? Y ∣ ∣ X ∣ + ∣ Y ∣ \frac{2|X*Y|}{|X|+|Y|} X+Y2X?Y?,表示两个集合的交集元素的两倍,比上两个基于并集元素。dice系数是一种集合相似度度量函数,通常用于计算两个样本点的相似度(值范围为[0, 1])。而dice loss= 1 ? 2 ∣ X ? Y ∣ ∣ X ∣ + ∣ Y ∣ 1-\frac{2|X*Y|}{|X|+|Y|} 1?X+Y2X?Y?,两个集合越相似,损失越小。
    作者给出的dice系数为:
    在这里插入图片描述
  3. 作用用的二值化操作是:阈值选的是0.5
    在这里插入图片描述
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-05-08 08:05:07  更:2022-05-08 08:05:48 
 
开发: 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 7:19:17-

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