PAN++学习笔记

1 主要创新点

  • 文本检测和识别两个任务结合起来,作为互补,提高检测和识别精度;
  • 处理不规则形状的文本;
  • 提供一个高效的端到端框架PAN++,对实时的应用场景友好。

2 已有工作的痛点

  • 将文本检测和识别任务分开,不利于利用两个任务的互补性,也会增加计算开销;
  • 已有的端到端框架只能读取水平或定向文本行;
  • 已有的端到端框架效率不能满足实时应用。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

3 主要算法

3.1 总体框架

在这里插入图片描述

  • 为了提高推理速度,采用轻量级的ResNet18作为骨干网络;
  • 针对轻量级网络具有感受野小和表征能力弱的缺点,使用堆叠的特征金字塔增强模块(FPEM)对提取到的特征进行增强;
  • FPEM(图5所示):(1)基于可分离卷积构建的U形模块,可以以较小的计算开销增强骨干网络提取的多尺度特征;(2)可堆叠,随着堆叠层数的增加,网络的感受野也将增大。

在这里插入图片描述
整体使用的损失函数如下:
L=Ldet +Lrec.(1)\mathcal{L}=\mathcal{L}_{\text {det }}+\mathcal{L}_{\mathrm{rec}}. \tag1 L=Ldet +Lrec.(1)

3.2 文本检测

本文提出了一个仅包含两层卷积的轻量级检测头(见图6)来完成文本检测任务。
该检测头同时预测:

  • 文本区域;
  • 文本内核;
  • 实例向量。
    在这里插入图片描述

通过PA算法将文本区域、文本内核和实例向量进行融合,得到最终的检测结果(见图7)。

  • PA借用了聚类的思想;
  • 把不同的文本看作不同的簇,则文本内核就是簇的中心,文本区域内的像素就是待聚类的样本。

在这里插入图片描述

图8是测试阶段。
在这里插入图片描述
文本检测部分的损失函数如下:
Ldet =Ltex +αLker+β(Lagg+Ldis ).(2)\mathcal{L}_{\text {det }}=\mathcal{L}_{\text {tex }}+\alpha \mathcal{L}_{k e r}+\beta\left(\mathcal{L}_{a g g}+\mathcal{L}_{\text {dis }}\right). \tag2 Ldet =Ltex +αLker+β(Lagg+Ldis ).(2)

Ltex =1−2∑iPtex (i)Gtex (i)∑iPtex (i)2+∑iGtex (i)2.(3)\mathcal{L}_{\text {tex }}=1-\frac{2 \sum_{i} P_{\text {tex }}(i) G_{\text {tex }}(i)}{\sum_{i} P_{\text {tex }}(i)^{2}+\sum_{i} G_{\text {tex }}(i)^{2}}. \tag3 Ltex =1iPtex (i)2+iGtex (i)22iPtex (i)Gtex (i).(3)
Ptex (i)P_{\text {tex }}(i)Ptex (i)Gtex (i)G_{\text {tex }}(i)Gtex (i)分别指分割结果中第iii个像素的值和文本区域的真实值。
Lker=1−2∑iPker(i)Gker(i)∑iPker(i)2+∑iGker(i)2.(4)\mathcal{L}_{k e r}=1-\frac{2 \sum_{i} P_{k e r}(i) G_{k e r}(i)}{\sum_{i} P_{k e r}(i)^{2}+\sum_{i} G_{k e r}(i)^{2}}. \tag4 Lker=1iPker(i)2+iGker(i)22iPker(i)Gker(i).(4)
Pker(i)P_{k e r}(i)Pker(i)Gker(i)G_{k e r}(i)Gker(i)分别指文本核预测中的第iii个像素值和真实值。
Lagg=1N∑i=1N1∣Ti∣∑p∈TiD1(p,Ki),D1(p,Ki)=ln⁡(R(∥F(p)−G(Ki)∥−δagg)2+1).(5)\begin{array}{c} \mathcal{L}_{a g g}=\frac{1}{N} \sum_{i=1}^{N} \frac{1}{\left|T_{i}\right|} \sum_{p \in T_{i}} \mathcal{D}_{1}\left(p, K_{i}\right), \\ \mathcal{D}_{1}\left(p, K_{i}\right)=\ln \left(\mathcal{R}\left(\left\|\mathcal{F}(p)-\mathcal{G}\left(K_{i}\right)\right\|-\delta_{a g g}\right)^{2}+1\right) . \end{array} \tag5 Lagg=N1i=1NTi1pTiD1(p,Ki),D1(p,Ki)=ln(R(F(p)G(Ki)δagg)2+1).(5)

  • NNN: 文本行数;
  • TiT_{i}Ti: 第iii个文本行的文本区域;
  • KiK_{i}Ki: 文本行TiT_{i}Ti的文本内核KiK_{i}Ki;
  • D1(p,Ki)\mathcal{D}_{1}\left(p, K_{i}\right)D1(p,Ki): 文本像素ppp和文本内核KiK_{i}Ki之间的距离;
  • R(⋅)\mathcal{R}(\cdot)R(): ReLU函数,确保输出为非负;
  • F(p)\mathcal{F}(p)F(p): 像素ppp的实例向量;
  • G(Ki)\mathcal{G}\left(K_{i}\right)G(Ki): 文本内核KiK_{i}Ki的实例向量, 利用下面的公式进行计算: G(Ki)=∑p∈KiF(p)/∣Ki∣\mathcal{G}\left(K_{i}\right)=\sum_{p \in K_{i}} \mathcal{F}(p) /\left|K_{i}\right|G(Ki)=pKiF(p)/Ki
  • δagg\delta_{\text {agg}}δagg: 常量, 在实验中设置为0.5。

Ldis=1N2∑i=1N(Db(Ki)+∑j=1j≠iND2(Ki,Kj)),Db(Ki)=1∣B∣∑p∈Bln⁡(R(δdis−∥F(p)−G(Ki)∥)2+1),D2(Ki,Kj)=ln⁡(R(δdis−∥G(Ki)−G(Kj)∥)2+1).(6)\begin{array}{c} \mathcal{L}_{d i s}=\frac{1}{N^{2}} \sum_{i=1}^{N}\left(D_{b}\left(K_{i}\right)+\sum_{\substack{j=1 \\ j \neq i}}^{N} \mathcal{D}_{2}\left(K_{i}, K_{j}\right)\right), \\ \mathcal{D}_{b}\left(K_{i}\right)=\frac{1}{|B|} \sum_{p \in B} \ln \left(\mathcal{R}\left(\delta_{d i s}-\left\|\mathcal{F}(p)-\mathcal{G}\left(K_{i}\right)\right\|\right)^{2}+1\right), \\ \mathcal{D}_{2}\left(K_{i}, K_{j}\right)=\ln \left(\mathcal{R}\left(\delta_{d i s}-\left\|\mathcal{G}\left(K_{i}\right)-\mathcal{G}\left(K_{j}\right)\right\|\right)^{2}+1\right). \end{array} \tag6 Ldis=N21i=1N(Db(Ki)+j=1j=iND2(Ki,Kj)),Db(Ki)=B1pBln(R(δdisF(p)G(Ki))2+1),D2(Ki,Kj)=ln(R(δdisG(Ki)G(Kj))2+1).(6)

  • BBB: 背景.
  • Db(Ki)\mathcal{D}_{b}\left(K_{i}\right)Db(Ki): 文本内核KiK_{i}Ki与背景之间的距离;
  • \mathcal{D}{2}\left(K{i}, K_{j}\right): 文本内核KiK_{i}Ki和文本内核KjK_{j}Kj之间的距离;
  • \delta_{d i s}: 常量, 在实验中设置为3。

3.3 文本识别

本文提出了一个不规则文字特征提取器Masked RoI和一个基于注意力机制的轻量级识别头来完成文本识别任务。

  • Masked RoI:为任意形状的文本提取固定大小的特征块;
  • 轻量级识别头:包含两层LSTM和两层多头注意力(见图9)。
    在这里插入图片描述

文本识别使用的损失函数如下:
Lrec=1∣w∣∑i=0∣w∣CrossEntropy⁡(yi,wi).(7)\mathcal{L}_{r e c}=\frac{1}{|w|} \sum_{i=0}^{|w|} \operatorname{CrossEntropy}\left(y_{i}, w_{i}\right). \tag7 Lrec=w1i=0wCrossEntropy(yi,wi).(7)

参考文献

  • https://jishuin.proginn.com/p/763bfbd5aefa
  • 论文地址:https://arxiv.org/abs/2105.00405
  • 论文代码:https://github.com/whai362/pan_pp.pytorch

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/507323.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

postgresql 遍历字符串数组_每日一道编程题(348):1005.K次取反后最大化的数组和...

1005.K次取反后最大化的数组和每日编程中遇到任何疑问、意见、建议请公众号留言或直接撩Q474356284(备注每日编程)给定一个整数数组 A,我们只能用以下方法修改该数组:我们选择某个个索引 i 并将 A[i] 替换为 -A[i],然后总共重复这个过程 K 次…

python读取mysql数据_Selenium(Python) ddt读取MySQL数据驱动

import unittest from time import sleep from ddt import ddt, data from pymysql import connect from selenium import webdriver def getMySQLTestData(): # 查询数据库的方法 db connect(host"localhost", user"root", password"123456", …

签字后被开除_员工虚假报销公司可以开除吗?

大家好,我是法小明。今天继续和大家聊聊劳动法那些事,很多企业都会有报销制度,但制度难免会有漏洞,如果劳动者钻空子的话公司可以解除劳动合同吗?我们一起看看下面这个例子:小案例陈某系某公司员工&#xf…

python创建sqlite3数据库_树莓派使用 Python + SQLite 建立温度数据库

相比 MySQL 而言,SQLite 更为轻便、易于维护和部署。本文使用Python向SQLite数据库中插入树莓派温度数据,SQLite数据库中包含一张只包含三个字段的记录表——参数名称,时间和温度值。本文重点解释Python操作SQlite的具体方法,由于…

论文笔记:推荐系统去偏(Debiased Recommendation)研究综述

1 推荐系统的偏差 出现偏差的原因:用户行为数据是观察所得(Observational)而不是实验所得(Experimental),因此会存在各种偏差,如用户对物品的选择偏差、系统对物品的曝光偏差等;偏差带来的问题:不考虑偏差&#xff0c…

c++ 内存管理_Python Bindings - 从 Python 调用 C/C++

python 最被人诟病的问题是什么? 慢,这是被人诟病最多的问题,很少人知道具体原因,极少人愿意去深入了解并找到原因,更极少的人愿意付出时间去解决这个问题,很多人都是停留在抱怨吐槽阶段,知乎上…

python安装idle_(1)Python 安装使用IDLE

安装Windows x86 web-based installer 在线安装 Windows x86 executable installer 离线安装 x86-64 64位软件 配置环境变量path下添加 python安装路径 查看版本号:运行Python 输入 help()一、IDLE介绍 IDLE是Python自带简单的集成开发环境,安装python的…

S-MBRec学习笔记

1 动机 传统推荐系统一般只考虑购买行为,忽略了放入购物车、浏览行为;本文将购买、放入购物车、浏览三个行为一起考虑;考虑购买和放入购物车行为的差异,进行对比学习;考虑购买和浏览行为的差异,进行对比学…

小米5点位图_最新!地铁5号线、6号线部分车站文化墙设计出炉!你选哪个?

情忆汉长安、惊鸿游龙、星辰大海……这些绝美的名字属于地铁文化墙近日西安地铁5号线和6号线一期工程的6座车站文化墙设计方案新鲜出炉邀请广大市民乘客对文化墙设计进行投票并提出宝贵建议西安地铁“一站一景”一直以来,西安地铁因其“一站一景”的独立logo设计、精…

python 编辑距离_最小编辑距离python

1 什么是编辑距离 在计算文本的相似性时,经常会用到编辑距离(Levenshtein距离),其指两个字符串之间,由一个字符串转成另一个所需的最少编辑操作次数。在字符串形式上来说,编辑距离越小,那么两个…

asp多表查询并显示_MySQL多表查询与事务

回顾1. DQL单表高级查询条件 where比较运算逻辑运算符in关键字between关键字if null关键字like关键字% 多个任意字符_ 单个任意字符排序 order byascdesc聚合函数count(*) 统计行,包括null值maxminavgsum分组 group by 分组字段 having 分组后条件过滤分页 limit 开…

Bias and Debias in Recommender System: A Survey and Future Directions学习笔记

1 引言 2006-2020发表的有关推荐系统去偏的论文统计: 2 推荐系统的偏差 偏差发生在推荐系统的不同阶段: 用户交互到生成数据的阶段: – 选择偏差: – 一致性偏差(从众偏差): – 曝光偏差&a…

卡扇区数据教程_分享一款硬盘分区和数据恢复软件

最近有朋友留言,自己的硬盘被格式化了,没法恢复。今天给大家介绍一款解决硬盘恢复软件--DiskGenius,文末附下载地址,觉得有用点个在看吧。DiskGenius是一款功能非常强大的硬盘分区及数据恢复软件,算法精湛、功能强大&a…

名图1.8智能隐藏功能_7年后再度回归 全新一代名图“大”不同_搜狐汽车

本文车型速览除了文章作者的主观观点外,我们正尝试基于全网可查的客观数据,为您提供中立、客观的参考依据:本文部分车型速览:畅销车型质量排行top10展开微信扫码,直接一次看完附近所有城市低价(附近城市均有经销商可售…

3 vue 线条箭头_线条眉要如何处理才能更自然?

更多纹绣内容关注公众号:法米索半永久学堂。眉头的操作确实不是一件容易的事,都说万事开头难,很多纹绣师把握不好眉头的操作技巧,一不小心就会把眉头做的方了、圆了,总之就是非常不自然。但只要我们把眉头做好了&#…

git rebase用法_Git:Clone别人的代码之后push到自己码云上失败的解决办法

最近也是刚开始使用gitee,比较生疏。场景是这样的:clone了朋友的一份代码到自己的本地,然后自己想把它保存到自己的gitee 私有仓库上,就在gitee上面创建了一个私有的仓库,然后多次push都失败了,实践了网上提…

fpga板子怎么和电脑连_windows7台式电脑怎么连接路由器?台式win7电脑连路由器步骤...

相信还有许多在使用windows7系统,尽管使用很长一段时间了,不过对win7系统的一些功能还是不太了解。大家家里应该都有路由器,那么windows7台式电脑怎么连接路由器,下面我们就一起来看看台式win7电脑连接路由器步骤。win7台式电脑连…

英特尔核显自定义分辨率_让免费的核显更好用!英特尔酷睿集成的GPU如何优化?...

点击上方电脑爱好者关注我们在笔记本领域,无论是英特尔酷睿还是AMD锐龙,都采取了“买一赠一”的策略,即都在处理器内集成了性能还不赖的核显,虽然它们无法驾驭3A游戏大作,但应对《英雄联盟》级别的游戏还是不成问题的。…

python脚本式编程_Python编程入门(一)

Python编程入门(一)概述:编程语言 1.脚本编程语言★脚本编程语言如php,perl,python,java等为脚本编程语言,通常需要通过解释器解释运行。 ★python(java)程序的执行过程s…

for循环里面有异步操作_JS 线程与异步的那些事

已知,JavaScript 是单线程的,天生异步,适合 IO 密集型,不适合 CPU 密集型,但是,为什么是异步的喃,异步由何而来的喃,我们将在这里逐渐讨论实现。一、进程与线程1. 浏览器是多进程的它…