0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于人工智能的照片修复项目案例分析

vmsD_Bauhaus_de 2019-09-23 09:24 次阅读

AI-Based Photo Restoration

大家好!我是mail.ru集团计算机视觉团队的研究工程师。在这篇文章中,我将讲述一个关于我们如何为旧的军事照片创建基于人工智能的照片修复项目。什么是“照片复原”?它包括三个步骤:
•发现所有图像的缺陷:破裂、刮伤、孔洞;
•根据周围的像素值修复发现的缺陷;
•给图像上色。
此外,我将描述照片恢复的每一步,并告诉你我们如何获得数据,我们训练了哪些网络,我们完成了什么,以及我们犯了什么错误。

寻找缺陷

我们想在上传的照片中找到所有与缺陷相关的像素。首先,我们需要弄清楚人们会上传什么样的图片。我们采访了“不朽军团”项目的创始人,这是一个非商业组织,存储了二战时遗留的照片,他们与我们分享了他们的数据。经过分析,我们注意到人们上传的大多是个人或团体肖像,存在中等到大量的缺陷。
然后我们得收集一套训练器材。分割任务的训练集是一个图像和一个标记所有缺陷的掩码。最简单的方法是让评估人员创建分段掩码。当然,人们很清楚如何发现缺陷,但这需要很长时间。

在一张照片上标记缺陷像素可能需要一个小时或整个工作日。因此,要在几周内收集到超过100张图片的训练集并不容易。这就是为什么我们试图增加我们的数据并创建我们自己的缺陷:我们会拍一张好的照片,在图像上使用随机游动添加缺陷,最后得到一个显示有缺陷的图像部分的遮罩。在没有增强的情况下,我们在训练集中有68张手动标记的照片,在验证集中有11张。

最流行的分割方法是:使用带预训练编码器的Unet,并最小化BCE(二进制交叉熵)和DICE(binary cross-entropy]) 。

当我们在任务中使用这种分割方法时会出现什么问题?

•即使照片看起来有很多缺陷,很旧很破旧,但有缺陷的区域仍然比未损坏的小得多。为了解决这个问题,我们可以增加BCE中的正类权重,一个最佳的权重是干净像素与有缺陷像素的比率。
•第二个问题是,如果我们使用带预训练编码器(例如Albunet-18)的开箱即用Unet,我们会丢失很多位置数据。Albunet-18的第一层由一个核5的卷积和一个等于2的步长组成。它可以让网络快速工作。为了更好地定位缺陷,我们交换了网络操作时间:删除了第一层之后的最大池,将步长减少到1,将卷积核减少到3。
•如果我们通过压缩小图像(例如,将其压缩到256 x 256或512 x 512像素)来处理小图像,则由于插值,小缺陷将消失。因此,我们需要处理更大的图像。我们目前正在生产中对1024x 1024大小的照片进行缺陷分割。这就是为什么我们必须在大图像上训练网络。但是,这会导致单个GPU上的小批量出现问题。
•在培训期间,我们可以在一个GPU上安装大约20个图像。因此,我们在batchnorm层中的平均值和标准偏差值不准确。我们可以使用就地batchnorm解决这个问题,一方面节省内存空间,另一方面,它有一个同步的batchnorm版本,可以同步所有GPU上的统计信息。现在,我们计算的平均值和标准偏差值不是针对单个GPU上的20个图像,而是针对4个GPU上的80个图像。这改善了网络收敛性。
最后,通过增加bce权重、改变体系结构、使用原位batchnorm,使分割效果更好。然而,通过增加测试时间来做更好的事情不会花费太多的成本。我们可以在输入图片上运行一次网络,然后对其进行镜像并重新运行网络以查找所有的小缺陷。

网络在18小时内汇聚在4个Geforce 1080ti上。推理需要290毫秒。这很长,但这是我们优于默认性能的代价。Validation DICE equals 0,35, and ROCAUC — 0,93.

图像修复

与分割任务一样,我们使用Unet。要进行修补,我们需要上传一张原始图像和一个遮罩,在那里我们用1和0标记所有清洁区域-所有我们想要修补的像素。这就是我们收集数据的方式:对于来自开源图像数据集(例如openimagesv4)的任何照片,我们都添加了与现实生活中看到的类似的缺陷。然后我们训练网络恢复丢失的部分。
我们如何修改这个任务的Unet?
我们可以用部分卷积代替原来的卷积。其思想是,当我们用一些核卷积一个区域时,我们不考虑缺陷像素值,这使得修补更加精确。我们向您展示了最近Nvidia论文中的一个例子。他们在中间的图片中使用了默认的二维卷积的Unet,在右边的图片中使用了部分卷积的Unet。

我们训练花了五天。最后一天,我们冻结了批处理规范,以减少着色部分的边界。
网络处理一张512 x 512的图片需要50毫秒。验证PSNR等于26,4。但是,您不能完全依赖此任务中的度量。为了选择最好的模型,我们对估值图像运行了几个好的模型,匿名投票给我们最喜欢的模型,这就是我们选择最终模型的方式。
如我之前提到过,我们人为地在干净的图像中添加了一些缺陷。在训练过程中,您应该始终跟踪添加的缺陷的最大大小;如果您将一个具有非常大缺陷的图像馈送到网络,而在训练阶段它从未处理过该图像,则网络将疯狂运行并产生不适用的结果。因此,如果你需要修复大的缺陷,用它们来增加你的训练集。
下面是我们的算法如何工作的示例:

着色

我们将缺陷分割并修补;第三步-颜色重建。就像我之前说的,照片中有很多个人和团体的肖像。我们希望我们的网络能和他们很好地配合。我们决定提出自己的彩色化,因为没有一个现有的服务可以快速和有效的彩色肖像。我们希望彩色照片更真实可信。

Github有一个流行的照片着色库。它做得很好也有一些问题。例如,它倾向于把衣服涂成蓝色。所以我不用它。
因此,我们决定创建一个图像着色算法。最明显的想法是:拍摄一张黑白图像,预测三个通道:红色、绿色和蓝色。然而,我们可以使我们的工作更容易:工作不是用RGB颜色表示,而是与YCbCr颜色表示。y分量是亮度(luma)。上传的黑白图像是y通道,我们将重用它。现在我们需要预测Cb和Cr:Cb是蓝色和亮度的差,Cr是红色和亮度的差。

为什么我们选择YCbCr代表?人眼对亮度的变化比对颜色的变化更敏感。这就是为什么我们重复使用人眼最敏感的Y分量(亮度),并预测Cb和Cr,因为我们不能很好地注意到颜色的虚假性,所以我们可能会犯错误。这一特性在彩色电视出现之初就得到了广泛的应用,当时的频道容量还不足以传输所有的颜色。图像在YCbCr中传输,不改变y分量,Cb和Cr减少一半。

如何创建基线

我们可以采用带预训练编码器的Unet,并将现有CbCr值和预测值之间的l1损失最小化。我们想给人像上色,因此,除了openimages照片,我们还需要更多特定于任务的照片。
我们在哪里可以得到穿着军装的人的彩色照片?互联网上有人把旧照片上色当作一种爱好或是一种代价。他们做得很仔细,尽量精确。当他们给制服、肩章和奖章上色时,他们会参考档案材料,因此他们的工作成果是值得信赖的。总而言之,我们使用了200张手工着色的照片,上面有穿着军装的人。
另一个有用的数据来源是工农红军网站。它的一个创立者几乎每到第二次世界大战时都会穿着苏维埃的制服拍照。

在一些照片中,他模仿著名的档案照片中人们的姿势。他的照片有白色背景是一件好事:它让我们可以通过在背景中添加各种自然物体来很好地扩充数据。我们还使用了一些常规的肖像,以徽章和其他战时特征作为补充。
我们训练了Albunet-50——它是一个使用预先训练的Resnet-50作为编码器的Unet。网络开始提供足够的结果:皮肤是粉红色的,眼睛是灰蓝色的,肩膀是黄色的。然而,问题是它让照片上的一些区域没有受到影响。这是因为根据错误L1,在不做任何事情比试图预测某种颜色更好的地方找到这样的最佳值。

我们正在将我们的结果与地面真实照片进行比较-这是由Klimbim完成的手动着色。
我们怎样才能解决这个问题?我们需要一个鉴别器:一个接收图像并告诉我们图像是否真实的神经网络。下面的一张图片是手动着色的,另一张是由我们的生成器Albunet-50着色的。人类如何区分手动和自动彩色照片?通过观察细节。你能告诉我们的基线解决方案后自动着色的照片在哪张图吗?

答:左边的图片是手动着色,右边的是自动着色。
我们使用了来自自聚焦Self-Attention GAN鉴别器。这是一个小型的卷积网络,所谓的自我关注建立在顶层。它允许我们“更加关注”图像细节,我们也使用光谱标准化。你可以在别的文章中找到更多的信息。我们用L1损失和鉴别器损失的组合来训练网络。现在,网络使图像的细节颜色更好,背景看起来更加一致。再举一个例子:左边是只训练了L1损耗的网络工作;右边是L1鉴别器损耗的组合。


在四台GeForce 1080ti上训练过程花了两天时间。处理一张512 x 512的图片需要30毫秒的时间。Validation MSE — 34.4。就像修复一样,度量你不想依赖于度量。这就是为什么我们选择了六个具有最佳验证指标的模型,并盲投选出了最佳模型。
当我们已经创建了一个制作系统并发布了一个网站时,我们继续进行实验并得出结论,我们最好不是将每像素L1的损失降到最低,而是将感知损失降到最低。为了计算它,我们将网络预测和地面实况照片输入VGG-16网络,获取底层特征图并与MSE进行比较。这种方法绘制了更多的区域,并给出了更丰富多彩的结果。

扼要重述

Unet是一个非常酷的模型。在第一个分割任务中,我们在训练过程中遇到了一个问题,我们使用高分辨率图像,这就是我们使用就地BatchNorm的原因。在我们的第二个任务(修复)中,我们使用了部分卷积而不是默认卷积,这使我们能够获得更好的结果。在进行彩色化时,我们添加了一个小的鉴别器网络,该网络对不真实图像的生成器进行惩罚。我们还使用了知觉损失。
第二个结论-评估师是必不可少的。不仅在创建分段掩码阶段,而且在最终结果验证阶段。最后,我们给用户三张图片:一张有修补缺陷的原始图片,一张有修补缺陷的彩色图片和一张简单的彩色图片,以防缺陷搜索和修补算法出错。
我们从战争相册项目中拍摄了一些照片,并通过这些神经元进行处理。以下是我们得到的结果:

此外,在这里您可以更仔细地查看原始图像和所有处理阶段。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 人工智能
    +关注

    关注

    1789

    文章

    46576

    浏览量

    236893

原文标题:基于AI的照片修复项目研究

文章出处:【微信号:Bauhaus_design,微信公众号:VR设计云课堂】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    人工智能是什么?

    ` 人工智能是什么?什么是人工智能人工智能是未来发展的必然趋势吗?以后人工智能技术真的能达到电影里机器人的智能水平吗?如果技术成熟的那一天
    发表于 09-16 15:40

    百度人工智能大神离职,人工智能的出路在哪?

    `今天,吴恩达确认离职百度的消息迅速在业界刷屏。吴恩达曾不止一次感慨,现在人工智能最大的问题就是“机会太多,但人才太少”。AI,人工智能,该领域的研究包括机器人、语言识别、图像识别、自然语言处理
    发表于 03-23 17:00

    人工智能蜘蛛抓取量分析

    人工智能蜘蛛抓取量分析
    发表于 09-15 14:16

    【下载】《人工智能标准化白皮书(2018版)》

    人工智能标准化白皮书(2018版)》,白皮书通过梳理人工智能技术、应用和产业演进情况,分析人工智能的技术热点、行业动态和未来趋势,从支撑人工智能
    发表于 02-02 18:00

    人工智能就业前景

    据相关招聘机构数据显示,2018年AI领域仍然是大部分资深技术人才转岗的首选目标,在人才最紧缺的前十大职位中,时下最火的大数据、人工智能、算法类岗位占据半壁江山。据调查指出,2017年技术研发类岗位
    发表于 03-29 15:46

    “洗牌”当前 人工智能企业如何延续热度?

    `最新统计数据显示,自2017年以来,全球人工智能企业的数量激增,总数已翻了一番。这些人工智能企业已在新零售、医疗、金融、无人驾驶、工业机器人等领域加速项目落地,人工智能市场迅速成长,
    发表于 11-07 11:49

    解读人工智能的未来

    而言,我们能够实现的只是一种狭义的人工智能,它需要由人类精心准备数据集然后进行人工训练。例如,如果要教会AI识别猫的图片,你需要有一个庞大的照片数据库,每个照片必须
    发表于 11-14 10:43

    人工智能医生未来或上线,人工智能医疗市场规模持续增长

    。   ——提高癌症筛查效率。早诊早治是提高癌症治愈率的关键。2018年12月,中山大学肿瘤防治中心牵头开展上消化道肿瘤人工智能诊疗决策系统的研发及推广应用项目,根据该系统试用初期数据分析,临床试用中恶性肿瘤识别
    发表于 02-24 09:29

    人工智能:超越炒作

    如果有一个真正的指标可以衡量新技术的破坏性,那肯定是公众对恐惧和怀疑的滔滔不绝。如果我们以社会焦虑作为衡量标准,那么目前人工智能(AI)的复兴是开创性技术破坏的良好候选者。人工智能将改变我们所知
    发表于 05-29 10:46

    基于人工智能克服数据分析限制

    以色列实时分析和异常检测的大数据创业公司Anodot目前正在使用先进的机器学习算法来克服人类在数据分析方面的限制。人工智能可以通过分析所有数据提出更多的答案,而Anodot认为没有将机
    发表于 07-29 08:06

    一文分析人工智能恐惧现象

    人工智能恐惧历史溯源人工智能恐惧表现形式
    发表于 01-26 07:14

    人工智能芯片是人工智能发展的

    人工智能芯片是人工智能发展的 | 特伦斯谢诺夫斯基责编 | 屠敏本文内容经授权摘自《深度学习 智能时代的核心驱动力量》从AlphaGo的人机对战,到无人驾驶汽车的上路,再到AI合成主播上岗
    发表于 07-27 07:02

    物联网人工智能是什么?

    一、人工智能介绍工作以后想要拿高薪的话,人工智能是你的不二之选,那么问题来了,究竟什么是人工智能呢?又需要了解哪些才能去开发人工智能产品呢?接下来小编带领大家进入
    发表于 09-09 14:12

    如何用人工智能来解决摄影中照片出现人像模糊不清的问题

    哪些难题。ClearAi只需您轻轻点击,即刻将您的老旧照片、像素不足照片、模糊或有损坏的照片变成高清并美化的照片!ClearAi使用最先进的人工智能
    发表于 05-01 13:18

    《移动终端人工智能技术与应用开发》人工智能的发展与AI技术的进步

    人工智能的发展是随着人类生活需要,产业需求不断提升的,其中人工智能的发展很大程度上受到了计算机算力的影响,随着数据处理量的增大,人工智能算法对算力的要求逐年增加,而且没过两年算力上升一倍,因此往往
    发表于 02-17 11:00