nanqi 2019-06-01
渣画质秒变高清,ASC19大学生的人工智能水平这么厉害!
将模糊到仅能看出五官轮廓的人脸照片,通过人工智能算法还原成清晰可辨的高清图像,并且要保证还原后的图像与原图相比不能失真过大……这是日前在大连举行的ASC19世界大学生超级计算机竞赛总决赛中,来自各国的20所高校参赛队伍的大学生们要解决的人工智能难题FaceSR(Face Super-Resolution),即人脸图像超分辨率。这20支队伍是通过激烈的预赛从全球300余支报名队伍成功晋级,他们需要在总决赛现场各自组装功耗不超过3000W的超级计算机,现场运行比拼各项挑战性的尖端科学难题,而人脸超分辨率就是本次大赛的人工智能赛题。
人脸图像超分辨率是一个火热的研究领域,特别是随着生成式对抗网络GAN的崛起,FaceSR取得了前所未有的快速发展。GAN类似于武侠小说中的绝世神功“左右互搏”,利用两个AI模型来进行“人工智能”间的对抗:一个AI模型负责重建图像,另一个AI模型负责判断图像的真实度,这种网络对抗模型极大的减少了人为干预,能够快速训练出高精度AI模型,使得FaceSR能够广泛应用于警务安防、压缩图像/视频增强及其他应用领域。
那么FaceSR到底能做什么呢?让手机拍摄出媲美专业数码单反相机的高质量照片是FaceSR技术更加贴近生活的重要应用场景,这使得手机照片在放大后仍能保持细节的清晰可辨;把一般的NTSC格式低清电视信号转换为高清电视信号而不失真地在HDTV上播放,是FaceSR技术另外一个重要而迫切的应用场景;通过FaceSR技术处理可以提升老旧片源清晰度,让经典电影、电视剧、游戏、MV以高清制式“重生”,带来新的怀旧体验。另外,利用FaceSR技术放大视频或拍照场景中的目标如汽车牌照、人物细节等,对于各项公共安全保障措施也有极大的帮助。
Face SR是ASC19初赛赛题单张图像超分辨率(single image super-resolution)的升级版。初赛中,选手们须基于PyTorch框架自行设计并训练AI模型,将80张模糊不清的图像进行4倍分辨率还原。重构效果的衡量指标为感知因子PI(Perceptual index),队员们在还原图片时需要充分考虑肉眼观察清晰度。
总决赛则提供了300张分辨率为24x28的低清人脸图片,要求参赛队伍对这些图片进行4x超分辨率还原,并计算人脸特征相似性。同时本次竞赛也提供了300张风格类似的图片用于参赛队伍自行验证模型的重构效果。这些低清图片和原始图片的人脸特征相似度在0.55左右,相当于低清人脸图片中仅包含了55%左右的人脸特征信息。
要想了解这次挑战有多难,必须要先知道24x28的低清图片对于人脸超分辨率意味着什么?已有的研究结果表明人脸图片的分辨率至少需要在32x32到64x64之间,才能保证人脸识别的准确性(https://arxiv.org/abs/1611.08091)。没错,ASC19竞赛FaceSR赛题使用的低清图片分辨率,比理论上的最低图片分辨率还要低,简直就是“不可能完成的任务”!
为什么人脸识别对图片分辨率有最低要求呢?这要从人脸识别的技术原理说起。当前的人脸识别模型大多是采用深度神经网络加上一个embedding层来实现,embedding层会用一个512维的特征向量来表征人脸的特征信息,这个向量可以认为是人脸的唯一特征信息,用于后续的人脸比对,人脸分类等任务中。当人脸分辨率过低时,部分用于识别的人脸特征信息丢失,就会造成了识别困难。只有当分辨率高于一定的尺寸时,识别算法才能有效的工作。
一个有效的验证该论述的方式是计算同一张人脸图片在不同分辨率情况下的自相似性。下图即给出了这样一个例子。原始的人脸图片分辨率为512x512,将其依次压缩分辨率到256x256,128x128,64x64,40x40,32x32,20x20,16x16,然后使用同一个人脸识别深度神经网络计算每张图片的512维特征向量,最后再和512x512分辨率的图片计算余弦相似性。
可以看到,在分辨率64x64以上时,不同分辨率之间人脸图片的特征相似性极高,但是当图片分辨率降到64x64以下时,特征相似性会急剧降低。这和肉眼观察的结果基本是一致的,分辨率在64x64以上时,人脸的五官特征清晰可辨,但是在64x64以下时,五官开始模糊,已经不太能分辨人脸的特征信息了。
为了合理的衡量各个参赛队伍提交的人脸图像超分辨率算法的重构效果,ASC19首次把人脸特征相似性IS(identity similarity)作为FaceSR效果的唯一评价指标(取值范围为0到1,1表示完美复原)。对于FaceSR来说,除了满足肉眼观察清晰度(FaceSR效果的另一个衡量指标,也是初赛SR的评分依据,详细介绍见文末)之外,对人脸特征信息的恢复也是一个很重要的考量指标。但是遗憾的是,大多数的超分辨率算法在这一指标上一直乏善可陈,甚至出现了部分经过超分辨率算法重构后的人脸特征相似度反而更低的情况。
这个评判指标对参赛队伍的模型设计的训练过程提出了更高的要求。本次竞赛中没有提供可供参考的基准算法,也没有限定模型训练使用的数据集,但是在决赛现场提供包含70,000张高清人脸图片的FFHQ(Flickr-Faces-HQ Dataset)数据集,用于各参赛队伍训练和精调模型。
从最终的结果来看,20个进入决赛的队伍中,提交的模型在验证集上最高的超清重构IS值来自北京航空航天大学团队,达到了0.9,有7支队伍的成绩在0.85以上,半数以上的队伍都能取得0.8以上的重构人脸图像相似度。看来能成功杀进ASC19总决赛的队伍果真是学霸组团,这些有的甚至还是大二、大三阶段的本科生同学展示出的人工智能水平真是顶呱呱。
那么,在本次竞赛中,各个参赛队伍在模型设计上又有什么独到之处呢?在模型训练过程中,又有什么巧妙设计呢?
北京航空航天大学:使用集成学习(ensemble learning)提高人脸重构质量
为了应对300张测试集中不同风格的人脸图片,北京航空航天大学团队从集成学习中找到了灵感。基于3台AI服务器搭配12块GPU组成的超算系统,他们把人脸图片分成了不同的类型如儿童、戴眼镜的、戴帽子的等,然后分别训练相应的模型参数来进行超分辨率重构,最终IS值高达0.9,取得了本次竞赛最佳的重构效果。
北航队员在比赛中
从上往下依此是低分辨率图片、高分辨率图片和北京航空航天大学团队完成的超分辨率图片
小波变换(Wavelet transform,WT)能够从不同的level上来描述图像的上下文和纹理信息。如下图所示的不同level的小波包分解,近似系数(the approximation coefficients)包含图像的全局拓扑信息,细节系数( detail coefficients)显示了图像的纹理信息。有多所大学实现了基于小波变换的Wavelet-SRNet,其中暨南大学团队的表现最为出色,取得了IS值0.88的优异成绩。
暨南大学队的计算平台为5台浪潮NF5280M5搭载10块NVIDIA Tesla V100加速卡。为了在有限的时间内取得最好的训练效果,暨南大学团队把Wavelet-SRNet的模型参数从200MB压缩到60MB,在大幅减少了模型参数的情况下,模型训练速度取得了1.65倍的提升,从而大幅压缩了训练时间。
暨南大学队员在比赛现场
在本次竞赛中,清华大学团队采用了7台浪潮AI服务器NF5280M5,搭载12块NVIDIA Tesla V100加速卡。他们使用PyTorch实现了Zhang et. al等发表于ECCV2018的SICNN模型,在测试集上取得了IS值0.87的重构效果。SICNN首次提到了使用人脸特征相似性作为重构人脸图像质量判据的方法,并以此优化了SICNN(super-identity convolutional neural network)人脸图像重构神经网络。该算法可以把原始分辨率为12x14的人脸图片进行8x的超清,得到的SR图片和HR图片的特征相似性在0.68左右。
SICNN网络模型示意图
清华大学队员在比赛中
值得一提的是,大多数的队伍都考虑到了在超分辨率网络中加入对人脸特征信息的提取,比如在损失函数中加入SphereFace人脸识别模型来最小化HR图像和SR图像的人脸特征信息差异等。
此外,为了在有限的时间内完成模型的训练和优化,大多数团队都使用了诸如数据并行等常用的分布式深度学习训练方式,比如华中科技大学团队就使用了PyTorch+Horovod分布式并行的方式来加速训练过程。Horovod是Uber工程师开发的一款分布式深度学习训练插件,借鉴了高性能计算中的环状通信全局归约(ring all-reduce)来高效的处理分布式训练中的参数同步问题。这也表明,来自传统高性能计算领域的创新技术也在不断地推动着AI领域的计算向着更高效快速、更大计算规模的方向演进,人工智能和高性能计算领域正在有机融合,相互促进,协同发展。
ASC19大赛人工智能的完整赛题及数据集下载地址:https://github.com/ASC-Competition
ASC 世界大学生超级计算机竞赛(ASC Student Supercomputer Challenge)由中国发起组织,并得到亚洲及欧美相关专家和机构支持,旨在通过大赛平台推动各国及地区间超算青年人才交流和培养,提升超算应用水平和研发能力,发挥超算的科技驱动力,促进科技与产业创新。大赛迄今已连续举行8届,共吸引了全球超过7000名大学生参赛,是目前全球规模最大、参与人数最多的大学生超算赛事。ASC19由亚洲超算协会、浪潮集团和大连理工大学联合主办。
【附文】人脸超分辨率中感知因子PI
人脸超分辨率是图像超分辨率中一类特殊的研究对象,它依然遵循SR技术的一些共有特性,其中最著名的就是相似度越高、肉眼观察清晰度越差的“悖论”。常用的衡量图像超分辨率质量的方式是比较超清(SR)图片和高清(HR)图片的差异,比如两者之间的峰值信噪比(PNSR)或者结构相似性(SSIM)。但是,一个比较反直觉的事实是,很多算法能够得到很好的PSNR和SSIM值,但是肉眼观察SR图片的重构效果并不理想,比如下图中右图SRGAN算法给出了肉眼观察最为清晰的SR图片,但是其PSNR和SSIM值均是3张图片中最低的。
图片来源,https://www.pirm2018.org/PIRM-SR.html
Yochai Blau等发表于CVPR 2018年的文章(The Perception-Distortion Tradeoff)对上述反常现象给出了理论解释,即对于图像超分辨率算法来说,其和HR图片相比引入的畸变越小,即和HR图片的RMSE(root mean square error)越小,则肉眼感知(perception)的SR图片清晰度越差。因此,为了更好的感知清晰度,牺牲一定的SR/HR图片之间的相似度在所难免。
图片来源,https://www.pirm2018.org/PIRM-SR.html
为了更好的衡量SR图片的感知清晰度,即肉眼观察到的SR图片的清晰程度,PIRM 2018(https://www.pirm2018.org/PIRM-SR.html)图片超分辨率竞赛引入了感知因子PI(Perceptual index)的概念。
PI由两个参数Ma和NIQE综合给出,这两个参数的计算都不需要参照HR图片和LR图片,即SR图片感知因子的计算不需要参照原始高清图片和低清图片。所以为了防止超清算法给出的SR图片和原始HR图片之间的偏差太大,一般会限制两者之间的RMSE不能超过一定的范围,否则SR图片相对于原始HR图片就存在一定程度的失真。举一个夸张的例子,如果没有RMSE的约束,超分辨率算法可能会把一只低清的猫变成一只超分辨率的狗。
ASC19初赛中的SR超分辨率赛题使用了PI值作为衡量超分效果的判别依据。