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

图像文字擦除方法

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

受传统生成对抗网络(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. JNI编程之java层和native层的数组数据的交互

    一.前言 JNI中的数组类型分为基本类型数组和引用类型数组,他们的处理方式是不一样的.基本类型数组中的元素都是jni基本数据类型,可以直接访问:但是引用类型的数组中的元素是一个类的实例,不能直接访问, ...

  2. 记一次有趣的hwclock写RTC的PermissionDenied错误

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 环境说明   无 前言   稍微接触过嵌入式板卡的,基本都知道嵌 ...

  3. Python小白入门指南:避免踩雷的10大错误!

    hello,大家好!新手小白踏入 Python 的大门有点像冒险,但别担心,我已经整理了一个超实用的入门指南,帮你规避学习过程中的十大雷区.这里有关于 Python 的错误你应该注意的建议,一起来看看 ...

  4. .NET周刊【11月第3期 2023-11-19】

    国内文章 .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试 https://www.cnblogs.com/FreeSql/p/17836 ...

  5. 新手VSCode配置C++20

    最近买了本C++20的书,想要自己配置下在VScode的环境 例子代码: #include <iostream> #include <format> int main() { ...

  6. Docker 安装教程

    一.离线安装 一.CentOS 离线安装 一.下载地址 1.选择系统的型号,选择linux-CentOS 下载地址 2.上传文件到CentOS 服务器 #选择文件 rz 二.开始安装 1.解压压缩包 ...

  7. IP的电源管脚

    IP的电源管脚是个特殊的存在. 1.对于前度RTL集成,需要和IP vendor以及后端确认,集成与综合时是否需要将电源DVDD,AVDD,引出到top层. 2.绝大部分情况下IP的电源PIN是sup ...

  8. TCP连接断开:为什么要挥手四次

    本文分享自华为云社区<解密TCP连接断开:四次挥手的奥秘和数据传输的安全>,作者: 努力的小雨 . TCP 连接断开 在当今数字化时代,互联网已经成为了人们生活中不可或缺的一部分.而在互联 ...

  9. Mybatis|MybatisPlus批量插入

    创建一个SpringBoot工程 <?xml version="1.0" encoding="UTF-8"?> <project xmlns= ...

  10. LR(0)分析法

    LR(0)是一种自底向上的语法分析方法.两个基本动作是移进和规约. 具体例子如下 已知文法G[E] (1) E→aА (2) E→bB (3) A→cА (4) A→d (5) B→cB (6) B→ ...