Facebook推出图像增强库:Augly

AI算法与图像处理

共 3050字,需浏览 7分钟

 ·

2021-11-05 14:55

点击下方AI算法与图像处理”,一起进步!

重磅干货,第一时间送达

左:原始图像,右:使用Augly(作者创建的图像)增强后

Facebook最近发布了[1]一个增强库Augly,它结合了多种数据(音频、图像、视频和文本)。
数据扩充是增加标记训练数据的大小和多样性的常用技术,这也有助于建立稳健的模型。
这里我只关注我在图像上测试的几个增强函数,但是这个库也可以用于文本和音频。
Augly更致力于社交媒体平台的变革,包括Facebook。因此,除了通常的裁剪、翻转外,其他增强功能还包括对图像/视频共享平台所做的非常逼真的转换,如叠加图像、表情符号、文本等。
根据Facebook新闻稿,其中一个主要的重要应用是:
检测特定内容的精确副本或近似副本。
例如,同一条错误信息可能以稍有不同的形式重复出现,例如,图像被裁剪了几个像素,或者被过滤器或新文本覆盖而增强。通过向人工智能模型添加大量数据,他们可以学会发现某人何时上传已知侵权内容,如歌曲或视频。
Augly的开发目的是通过转换(“增强”)数据来阻止人们逃避自动检测系统,同时,该库也用于评估deepfake检测模型。

使用Augly进行图像增强:
下面是我用来测试Augly中图像的一些增强函数的几个工作示例。要在Colab中尝试这一点,首先,我们需要安装Libmagic和Augly
!pip install augly

!apt-get install libmagic-dev

!pip install python-magic

import augly.image as imaugs
现在,我们已经准备好使用Augly,但在此之前,我们需要加载一个示例图像。让我们这样做
from skimage import data

camera = data.astronaut()
因为Augly使用PIL格式,所以让我们对其进行转换-
from PIL import Image

camera_pil = Image.fromarray(camera)

camera_pil.show()
图1:使用Skipage加载的原始图像:
这是我们的原始图像。顺便说一下,她叫艾琳·柯林斯,1992年被选为宇航员,1995年首次驾驶STS-63号航天飞机。
首先,让我们从一些相对简单的增强函数开始,比如改变透视图
aug_perspective = imaugs.PerspectiveTransform(sigma=20.0)

camera_pil_perspective = aug_perspective(camera_pil)

camera_pil_perspective.show()
图1的透视变换:
这里 sigma 指的是目标坐标分布的标准差, sigma 值越高,转换越强烈。
我们还可以随机更改纵横比,如下所示-
aug_aspect = imaugs.RandomAspectRatio()

camera_pil_aspect = aug_aspect(camera_pil)

camera_pil_aspect.show()
在图1上随机改变纵横比:
我们还可以通过添加一些饱和度来增强图像
aug_saturation = imaugs.Saturation(factor=5.0)

camera_pil_sat = aug_saturation(camera_pil)

camera_pil_sat.show()
增加图1中原始图像的饱和度:
现在,让我们来看一些可以使用Augly添加的独特转换。首先,我尝试覆盖条纹,变换后的图像如下所示
在原始图1上覆盖条纹:
用于上述转换的代码是
camera_pil_overlay_stripes = imaugs.overlay_stripes(camera_pil, line_type=’dashed’, line_opacity=0.5, line_color=(1200200), line_angle=25.0)

camera_pil_overlay_stripes.show()
叠加文本怎么样?这也是可能的
将文本覆盖在原始图1上:
我们还可以添加表情符号-
camera_pil_overlay_emoji = imaugs.overlay_emoji(camera_pil)

camera_pil_overlay_emoji.show()
将表情符号叠加在原始图1上:
我们还可以变换图像,使其看起来像Instagram上的屏幕截图
将Instagram屏幕快照覆盖在原始图1上:
代码块如下所示
import os

import augly.utils as utils

aug_overlay = imaugs.OverlayOntoScreenshot(template_filepath=os.path.join(utils.SCREENSHOT_TEMPLATES_DIR, “mobile.png”))

camera_pil_overlay = aug_overlay(camera_pil)

camera_pil_overlay.show()
通过将覆盖图像mobile.png更改为web.png,我们可以获得另一个转换
将Instagram网页的屏幕截图覆盖在原始图1上:
我个人认为,这些转换非常酷,正如Facebook在新闻稿中提到的,它们旨在理解人类与社交媒体的互动。我相信对语音和语言处理感兴趣的人也会发现这个库非常有用。
感谢Facebook使这个库开源,感谢Joanna Bitton&Zoe Papkipos,我相信他们是这个项目背后的主要智囊。
参考资料:
[1] FacebookAugly的新闻稿:https://ai.facebook.com/blog/augly-a-new-data-augmentation-library-to-help-build-more-robust-ai-models/
[2]  Augly : GitHub(https://github.com/facebookresearch/AugLy)
[3] 本文使用的笔记本链接:https://github.com/suvoooo/Machine_Learning/blob/master/Augly_Try.ipynb。

努力分享优质的计算机视觉相关内容,欢迎关注:

交流群


欢迎加入公众号读者群一起和同行交流,目前有美颜、三维视觉计算摄影、检测、分割、识别、医学影像、GAN算法竞赛等微信群


个人微信(如果没有备注不拉群!
请注明:地区+学校/企业+研究方向+昵称



下载1:何恺明顶会分享


AI算法与图像处理」公众号后台回复:何恺明,即可下载。总共有6份PDF,涉及 ResNet、Mask RCNN等经典工作的总结分析


下载2:终身受益的编程指南:Google编程风格指南


AI算法与图像处理」公众号后台回复:c++,即可下载。历经十年考验,最权威的编程规范!



下载3 CVPR2021

AI算法与图像处公众号后台回复:CVPR即可下载1467篇CVPR 2020论文 和 CVPR 2021 最新论文



浏览 31
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报