太可怕了!给一个词就能模仿你的笔迹,Facebook这款神器不敢开源代码

机器之心报道

编辑:陈萍

你在纸上写个词,AI 只要看一眼就能模仿你的笔迹,还是看起来毫无破绽的那种。

Facebook 近日公布了一项新的图像 AI——TextStyleBrush,该技术可以复制和再现图像中的文本风格。

借助该技术,你只需要输入一个词作为「标准」,AI 就能全篇模仿你的书写风格,一键执行,效果可谓惊艳。

此外,你还可以用它替换不同场景中的文字(比如海报、垃圾桶、路标等)。下图中左侧为原始场景图像,单词显示在蓝色矩形中;右侧为文本替换后的图像。

从图中可以看出,各种风格的字体 AI 几乎都能 hold 住。下图中每个图像对在左边显示输入源样式,在右边显示新内容(字符串),左右两端字体看起来风格完全相同。与源图像相比,输出的图像在外观上似乎都有些模糊,但我们可以看到,在大多数情况下,该技术似乎工作得很好。

与其他字迹模仿 AI 相比,TextStyleBrush 功能更强大,可以从更细微的角度分析文字样式,从而做到在各种角度和背景下进行字迹模仿。

下图是酱油瓶(Soya)替换为茶瓶(Tea)的实现过程:

这款强大的模仿神器正是 Facebook AI 推出的「TextStyleBrush」,只需输入一个单词,就能完美复现笔迹。这项技术的原理类似于文字处理 APP 中的样式笔刷工具,可以将文字和风格分开。

  • 论文地址:https://scontent-sjc3-1.xx.fbcdn.net/v/t39.8562-6/10000000_944085403038430_3779849959048683283_n.pdf?_nc_cat=108&ccb=1-3&_nc_sid=ae5e01&_nc_ohc=Jcq0m5jBvK8AX--fG2A&_nc_ht=scontent-sjc3-1.xx&oh=8b7e8221bba5aba6b6331c643764dec5&oe=60EF2B81

  • 数据集地址:https://github.com/facebookresearch/IMGUR5K-Handwriting-Dataset

它具有以下特点:

  • 只需要一个单词,就能复制照片中的文字风格。使用该 AI 模型,你可以编辑和替换图像中的文本。

  • 与大多数 AI 系统不同的是,TextStyleBrush 是首个自监督的 AI 模型,使用单个示例词一次性替换手写和图像中的文本。

  • 将来它会在个性化信息和字幕等领域释放新的潜力,比如在增强现实 (AR) 中实现逼真的语言翻译。

  • 通过公布这项研究所具有的能力、方法和结果,研究者希望推动对话和研究,以发现这类技术的潜在应用,如深度假文本攻击——这是人工智能领域的一大挑战。

由于 TextStyleBrush 也可能被用来制作误导性的图像,所以 Facebook 的 CTO 在个人社交网站表示,他们只发布了论文和数据集,但没有公开代码。并表示正如我们对 deepfakes 的方法一样,我们认为共享研究和数据集将有助于构建检测系统并提前预防攻击。

可以学习文本风格表征的 TextStyleBrush

用 AI 生成图像一直在以惊人的速度发展,这种生成技术能够重现历史场景,或者将照片变成梵高等绘画风格。现在,Facebook AI 已经建立了一个可以替换场景和手写文本风格的 AI,只需要一个单词作为输入。

虽然大多数 AI 系统都可以完成定义明确的、专门的任务,但构建一个足够灵活的 AI 系统,以理解现实场景中文本和手写体的细微差别,具有很大的挑战。这意味着需要了解众多的文本样式,不仅包括不同的字体和书写风格,而且也包括不同的转换,如旋转、弯曲的文字以及图像噪声等问题。

Facebook AI 提出了 TSB(TextStyleBrush)架构。该架构以自监督的方法进行训练,没有使用目标风格监督,只使用了原始风格图像。该框架可以自动地寻找图片真实风格。在训练时,它假设每个词框有真实值(出现在框中的文本);推理时,它采用单一源样式图像和新内容(字符串),并生成带有目标内容的源样式的新图像。

该生成器架构是基于 StyleGAN2 模型。然而,它有两个重要的限制:

首先,StyleGAN2 是一个无条件模型,这意味着它通过对一个随机的潜在向量进行采样来生成图像。但 TextStyleBrush 必须要生成指定文本的图像。

其次,TextStyleBrush 生成的文本图像风格不受控制。文本风格涉及全局信息(例如调色板和空间变换),以及精细的比例信息组合(例如单个笔迹的细微变化。

研究者通过内容和风格表征来调节生成器以解决上述限制。通过提取特定于层的风格信息并将其注入到生成器的每一层来处理文本风格的多尺度特性。除了以期望的风格生成目标图像外,生成器还生成表示前景像素 (文本区域) 的软蒙版图像。通过这种方式,生成器可以控制文本的低分辨率和高分辨率细节,以匹配所需的输入风格。

该研究还引入了一种新的自监督训练准则,该准则使用字体(typeface)分类器、文本识别器和对抗式鉴别器来保留源风格和目标内容。首先,研究者通过使用预训练的字体分类网络来评估生成器捕获输入文本风格的能力。另外,他们使用预训练文本识别网络来评估生成图像的内容,以反映生成器捕获目标内容的效果。总而言之,这种方法能够对训练进行有效的自监督。

实验

表 2 提供了评估不同损失函数、风格特征扩展以及训练 TSB 时 mask 的作用消融实验结果。实验结果显示,TextStyleBrush 生成的图片在 MSE(合成误差)上大幅降低,PSNR(峰值信噪比)、SSIM(结构相似性)均获得了提高。

表 3 是在三种数据集图像上测得的文本识别准确率。实验结果显示,TSB 的识别效果最好,在 IC13 上的识别准确率为 97.2%,IC15 上的识别准确率为 97.6%,TextVQA 上的识别准确率为 95.0%。

表 4 提供了生成的手写文本的定量比较,将 TSB 方法与 Davis 等人 [14] 专门为生成手写文本而设计的 SotA 方法进行了比较。FID 分数越低,生成质量越好。显然,TSB 方法优于以前的工作。

TextStyleBrush 证明了 AI 在文字上面可以比过去更加灵活、准确地识别,但这项技术仍然存在许多问题,如无法模仿金属表面的字符或彩色字符等, Facebook 希望这项研究能继续扩展,突破翻译、自主表达和 deepfake 研究之间的障碍等。

失败案例。

参考链接:

https://ai.facebook.com/blog/ai-can-now-emulate-text-style-in-images-in-one-shot-using-just-a-single-word

推荐阅读:入门: 最全的零基础学Python的问题  | 零基础学了8个月的Python  | 实战项目 |学Python就是这条捷径干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 |   从万众期待到口碑扑街!唐探3令人失望  | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |碟中谍这么火,我用机器学习做个迷你推荐系统电影趣味:弹球游戏  | 九宫格  | 漂亮的花 | 两百行Python《天天酷跑》游戏!AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf!|  再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! |60行代码做了一个语音壁纸切换器天天看小姐姐!|年度爆款文案1).卧槽!Pdf转Word用Python轻松搞定!2).学Python真香!我用100行代码做了个网站,帮人PS旅行图片,赚个鸡腿吃3).首播过亿,火爆全网,我分析了《乘风破浪的姐姐》,发现了这些秘密 4).80行代码!用Python做一个哆来A梦分身 5).你必须掌握的20个python代码,短小精悍,用处无穷 6).30个Python奇淫技巧集 7).我总结的80页《菜鸟学Python精选干货.pdf》,都是干货 8).再见Python!我要学Go了!2500字深度分析!9).发现一个舔狗福利!这个Python爬虫神器太爽了,自动下载妹子图片
点阅读原文,领AI全套资料!
把纸上的笔迹清除掉并不是一个简单的过程,需要使用特殊的工具和技术。如果你想编写一个程序来模拟这个过程,可能需要考虑以下几个步骤: 1. 寻找要清除的笔迹:首先,你需要让程序能够找到要清除的笔迹。这可能需要一些图像处理技术,例如边缘检测和色彩分离。你可以使用Python的OpenCV库来实现这一步骤。 2. 模拟擦除过程:一旦找到了要清除的笔迹,你需要模拟擦除过程。这可以通过在笔迹上绘制一个与背景颜色相同的矩形来实现。这个矩形应该与笔迹的形状和大小相匹配,否则就会留下痕迹。 3. 保存结果:最后,你需要将结果保存到文件中。你可以使用Python的Pillow库来保存图像文件。 以下是一个使用Python和OpenCV库实现擦除试卷笔迹的简单代码示例: ```python import cv2 # 加载图像 img = cv2.imread('paper.jpg') # 将图像转换为灰度图像 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 进行边缘检测 edges = cv2.Canny(gray, 100, 200) # 寻找笔迹的轮廓 contours, hierarchy = cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) # 绘制白色矩形擦除笔迹 for contour in contours: x, y, w, h = cv2.boundingRect(contour) cv2.rectangle(img, (x, y), (x+w, y+h), (255, 255, 255), -1) # 保存结果 cv2.imwrite('erased_paper.jpg', img) ``` 注意,这只是一个简单的示例,实际上擦除笔迹可能需要更复杂的算法和技术,具体取决于输入图像的质量和清晰度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值