摘要:本文介绍几篇关于自然场景下文字擦除的论文工作。

图像文字擦除方法

给定一幅自然场景图像,只将图像中文字区域抹去而不改动其他区域像素值的方法称为文字擦除算法。该方法在隐私保护,身份信息篡改,数据增广等领域有着广泛的应用和研究前景。

受传统生成对抗网络(GAN)算法的启发,基于深度学习的文字擦除算法都采用了类似的生成器+判别器的结构,其损失函数为:

    1. 整个式子由两项构成。x表示真实图片,z表示输入G网络的噪声,而G(z)表示G网络生成的图片。
    2. D(x)表示D网络判断真实图片是否真实的概率(因为x就是真实的,所以对于D来说,这个值越接近1越好)。而D(G(z))是D网络判断G生成的图片的是否真实的概率。
    3. G的目的:上面提到过,D(G(z))是D网络判断G生成的图片是否真实的概率,G应该希望自己生成的图片“越接近真实越好”。也就是说,G希望D(G(z))尽可能的大,这时V(D, G)会变小。因此我们看到式子的最前面的记号是min_G。
    4. D的目的:D的能力越强,D(x)应该越大,D(G(z))应该越小。这时V(D,G)会变大。因此式子对于D来说是求最大(max_D)。

文字擦除可以分为两个子任务:1)文字区域定位。2)文字内容擦除。Ensnet [1] 提出了一种端到端的文字擦除算法,该方法将两个子任务合并,并让一个网络进行端到端的文字擦除(图1所示)。最后通过判别器和多种损失函数指导生成器的学习。

图1. Ensnet 算法结构

为了让网络能够更好地感知文字内容的位置信息,Erasenet [2]进一步引入了一个mask分支进行学习(图2),同时提出了一个新的真实文字擦除数据集,为文字擦除研究领域提供了一个更好的对比基准(图3)。

图2. Erasenet 网络

图3. 真实场景的文字擦除数据集

为了将两个子任务进行更好的学习,从而实现更准确的文字擦除结果,MTRNet[3]在输入引入文字分割结果,让网络能够感知文字区域的位置信息,从而降低任务难度,实现更准确的擦除结果。Bian等人[5]通过一种级联的结构,实现对具体的字形感知。但是由于需要提前知道文字区域的准确位置信息,所以这些方法具有一定的局限性。MTRNet++[4]在STRNet基础上进行了改进(图4),通过引入一个微调子网络降低了整体网络对输入位置信息的依赖性,从而实现更鲁棒的文字擦除算法。

图4. MTRNet++网络

总结与思考

可以看到,现阶段深度学习的文字检测方法都是基于GAN网络框架的,那么,是否有别的方法能够实现GAN相同的效果?区别于传统大面积pixel-to-pixel的任务,文字擦除大多只涉及小区域的像素修改,笔者认为attention在未来可以成为一个新的解决思路。

参考文献

[1] Zhang, Shuaitao, et al. "Ensnet: Ensconce text in the wild." Proceedings of the AAAI Conference on Artificial Intelligence. Vol. 33. No. 01. 2019.

[2] Liu, Chongyu, et al. "EraseNet: End-to-End Text Removal in the Wild." IEEE Transactions on Image Processing 29 (2020): 8760-8775.

[3] Tursun, Osman, et al. "Mtrnet: A generic scene text eraser." 2019 International Conference on Document Analysis and Recognition (ICDAR). IEEE, 2019.

[4] Tursun, Osman, et al. "MTRNet++: One-stage mask-based scene text eraser." Computer Vision and Image Understanding 201 (2020): 103066.

[5] Bian, Xuewei, et al. "Scene text removal via cascaded text stroke detection and erasing." arXiv preprint arXiv:2011.09768 (2020).

本文分享自华为云社区《技术综述九:自然场景图像的文字擦除算法介绍》,原文作者:我想静静。

点击关注,第一时间了解华为云新鲜技术~

有了这个算法,图像上文字擦除再也用不上PS了的更多相关文章

  1. 深入学习使用ocr算法识别图片中文字的方法

    公司有个需求,简单点说需要从一张图片中识别出中文,通过python来实现,当然其他程序也行,只要能实现,而小编主要学习python,所以就提了python.一个小白在网上遨游了一天,终于找到一丝丝思绪 ...

  2. 在OCR文字识别软件选项卡中怎么设置图像和文字

    PDF是广泛使用的文档格式.在ABBYY Finereader中,PDF文档的显示不会因电脑不同而有差异,可加密保护,非常适合在电子存档中进行保存.下面给 大家讲解如何在PDF选项设置图像和文字. 图 ...

  3. iOS 设置导航栏的颜色和导航栏上文字的颜色

    #import <UIKit/UIKit.h> @interface AppDelegate : UIResponder <UIApplicationDelegate> @pr ...

  4. 用RelativeLayout布局可以在imageview中写上文字

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...

  5. Echarts 设置地图上文字大小及颜色

    Echarts 设置地图上文字大小及颜色,效果如下: 上代码:关键代码用红色 series: [ { //name: '香港18区人口密度', type: 'map', mapType: 'jiang ...

  6. CSS实现文字半透明显示在图片上方法

    CSS实现文字半透明显示在图片上方法 在css中文字半透明我们会需要使用滤镜效果也就是css中的filter:alpha来实现了,下面来看两个文字显示在图片上并且半透明的例子. CSS让一行文字显示在 ...

  7. JS让网页上文字出现键盘打字的打字效果

    一个挺简单的网页特效:JS让网页上文字出现键盘打字的打字效果实现 演示地址:http://codepen.io/guihailiuli/pen/jPOYMZ 以代码形式实现过程分析: <html ...

  8. 设顺序表中的数据元素递增有序,试着写一算法,将x插入到顺序表上的适当位置上,以保持该表的有序性。

    原创,转载请注明出处.https://www.cnblogs.com/yangf428/p/11254370.html 天勤例题[2-1]: 设顺序表va中的数据元素递增有序.试写一算法,将x插入到顺 ...

  9. 痞子衡嵌入式:对比MbedTLS算法库纯软件实现与i.MXRT上DCP,CAAM硬件加速器实现性能差异

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是MbedTLS算法库纯软件实现与i.MXRT上DCP,CAAM硬件加速器实现性能差异. 近期有 i.MXRT 客户在集成 OTA SBL ...

  10. maven工程 java 实现文件上传 SSM ajax异步请求上传

    java ssm框架实现文件上传 实现:单文件上传.多文件上传(单选和多选),并且用 ajax 异步刷新,在当前界面显示上传的文件 首先springmvc的配置文件要配置上传文件解析器: <!- ...

随机推荐

  1. cv2 数学基础---矩阵微分

    矩阵微分基础知识 定义 重要结论 应用 定义 (1) 向量对标量求导 矩阵对标量求导 我们可以看到上述求导过程实际上就是不同函数对变量求导,然后按照向量或者矩阵的形式排列,注意这里结果的结构应该与函数 ...

  2. CSS3之创建3D场景

    1.属性介绍 perspective:800    平面距离三维中方框的距离 perspective-origin:50% 50%   表示从平面上哪个位置看三维图 ,相当于是X轴和Y轴,此时表示平面 ...

  3. 使用JNA读取dll文件

    由于项目需要进行读卡操作,需要使用java进行读取dll文件 设备:德卡T10 1. 引入POM文件 <dependency> <groupId>net.java.dev.jn ...

  4. win10安装WSL2

    什么是WSL2 首先我们理解一下什么是WSL Windows Subsystem for Linux(简称WSL)是一个在Windows 10\11上能够运行原生Linux二进制可执行文件(ELF格式 ...

  5. JavaScript高级程序设计笔记03 语言基础

    语言基础 主要基于ES6. 一切都区分大小写.无论变量.函数名还是操作符 标识符 变量名.函数名.属性名.参数名 可由一个或多个字符组成: 第一个必须是字母._或者$: 其余的可以是字母._.$或者数 ...

  6. AcWing 368. 银河

    原本是一个差分约束的问题,但是由于数据过大可能导致\(spfa\)被卡,而由于这道题的边权只有\(0,1\)两种,比较特殊,所以使用\(tarjan\)求连通分量,缩点,递推的方式也能完成,时间复杂度 ...

  7. Vue05-Vuex

    01. 什么是状态管理 在开发中,我们的应用程序需要处理各种各样的数据,这些数据需要保存在我们应用程序的某一个位置,对于这些数据的管理我们就称之为 状态管理. 在Vue开发中,我们使用组件化的开发方式 ...

  8. LeetCode-Java:122. 买卖股票的最佳时机Ⅱ

    题目 给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格. 在每一天,你可以决定是否购买和/或出售股票.你在任何时候 最多 只能持有 一股 股票.你也可以先购买, ...

  9. AtCoder_abc330

    AtCoder_abc330 比赛链接 A - Counting Passes A题链接 题目大意 给出\(N\)个数\(a_1,a_2,a_3\cdots,a_N\),和一个正整数\(L\).输出有 ...

  10. 芯片SDC约束 -复制保存

    https://www.cnblogs.com/pcc-uvm/p/16996456.html?share_token=9651df97-e94c-4653-bf71-0a0fd6ca415e& ...