leyu乐鱼


    1. 咨询热线:021-80392549

      leyu乐鱼 QQ在线(xiàn) leyu乐鱼 企业微信(xìn)
      leyu乐鱼
      leyu乐鱼 资讯 > 人工智能(néng) > 正文

      人(rén)工智(zhì)能让(ràng)经典电影(yǐng)重(chóng)现当(dāng)年风采

      2020/03/11393

      portant;" />

      老照片、老电影总能让人们的思绪飘(piāo)回那些久远(yuǎn)的年代,沉淀于(yú)其中,可与此同(tóng)时,模糊的画面又不免(miǎn)给记忆蒙上(shàng)了一层薄雾。如(rú)今,随着人(rén)工智能技术的发展,SRGAN(超分辨率生成对(duì)抗(kàng)网络)使得(dé)拨散云雾始见(jiàn)真,成倍还原了画面质(zhì)量。

      2019年底,WAIC开发者·上海临港人工智能开(kāi)发者大会的开幕式上,上海市经济(jì)和信(xìn)息化委员会副主任(rèn)张英为上海市人(rén)工(gōng)智能创新中心授牌(pái),深兰科技等7家(jiā)企业(yè)首批入选(xuǎn),同时深兰科技两项应用场景方案(àn)入围“上(shàng)海市(shì)第二批人工智能试点(diǎn)应用场景”。

      portant;" />

      其中,在AI+文化(huà)旅游(yóu)场(chǎng)景(jǐng)中(zhōng),深兰科技入围成为上海文化广告影视(shì)集团(tuán)有限公司的解决方案供应商,将为其提(tí)供(gòng)视频(pín)图像质量增强(qiáng)技(jì)术,通过智能(néng)算(suàn)法提高视频画面质量,使2K高清(qīng)素材达到4K超高清要求,优(yōu)化(huà)提升老旧节目的(de)图像清晰度。

      今天,就来个承上启下,回(huí)顾前一年成绩的(de)同时,也用创新和进步(bù)为(wéi)新的一年注入能(néng)量(liàng)。获奖方案的团队负责人、深兰科学院深(shēn)度学习科(kē)学家方(fāng)林博士,给出了(le)实(shí)现超分(fèn)辨率的SRGAN模型(xíng)的(de)网(wǎng)络结构(gòu)、训练步骤和损失函(hán)数,将帮助GAN的初学者(zhě)理解(jiě)对(duì)抗网络的实(shí)质,为今后设(shè)计更加复杂的超分模型打下基础。

      超分辨率

      超分辨率的(de)目的是把低(dī)分(fèn)辨率(lǜ)的图像或者视频转为高(gāo)分辨率,比如:

      portant;" />

      portant;" />

      我们利用超分辨率生成式(shì)对抗网络(SRGAN, Super Resolution Generative Adversarial Network)实现超分辨率。

      下面我(wǒ)们通过一个简单的SRGAN模型来说(shuō)明超分(fèn)模(mó)型的基本结构和训练步(bù)骤(zhòu)。

      图片(piàn)准备

      超分模型(xíng)由两张图片组成,第(dì)一张是模糊图片,形状为[128, 128, 3];第二张是对应(yīng)的清晰图片,形状(zhuàng)为[512, 512, 3]。清晰(xī)图片的长宽分(fèn)别是模糊图(tú)片(piàn)的(de)长宽的(de)4倍。我们的目标是把(bǎ)模糊图片的分辨率提(tí)高(gāo)16倍。

      图片(piàn)必(bì)须是一一对(duì)应的,即一张模糊图片必(bì)须有对应的一(yī)张(zhāng)清晰图片。为了准备图(tú)片,我(wǒ)们先收集足(zú)够数量(最(zuì)好2万张(zhāng)以上)的清晰图片(piàn),图片(piàn)的长度和宽度应该都大(dà)于(yú)等于512。然后选取任意一个512*512的部(bù)分(fèn)进行剪裁。

      注意:

      不要把一个大的图片resize成(chéng)512*512大(dà)小,因(yīn)为(wéi)这(zhè)会导致图片(piàn)变形;

      由于我(wǒ)们可以在大图片的任(rèn)意位置(zhì)剪裁(cái)出512*512的图(tú)片,所以长度或者宽(kuān)度大于512的图片可(kě)以生成多个清晰图片。比如(rú)520*520的图片可以生成64个清晰图片。

      当我(wǒ)们获得了所有清(qīng)晰图片之(zhī)后,再把每张清(qīng)晰图片resize到128*128大小,这样我们就(jiù)获得(dé)了模糊图片。OpenCV的resize()方法(fǎ)可以(yǐ)帮助我们改(gǎi)变图片大小。

      SRGAN模型

      1、主(zhǔ)要结构

      SRGAN模型(xíng)结构如下(xià)图所示:

      portant;" />

      图(tú)中“模糊(hú)”是指模糊图片,“清(qīng)晰”是指清(qīng)晰图片,“生成”是指生成器生成的图片。生成图(tú)片的分辨(biàn)率与清晰图片(piàn)相同,为512*512。模糊图片的分辨率是128*128,为清晰图片的(de)1/16。

      上图中的模型主要由生成器(qì)和(hé)辨别器两(liǎng)部分组成。生成器的目的是输入模糊图(tú)片(图中的“模糊”),输出生成图片(图中的“生成”)。辨别(bié)器的输入(rù)由a、b两个参数组成(chéng)。其(qí)中b是模糊图片,a是生成图(tú)片或者清晰图片。辨别(bié)器的目的是判断(duàn)图(tú)片(piàn)a是(shì)否是真实的清晰图片。b是用来协(xié)助辨别器进(jìn)行判断的。辨别器的(de)输出p是一个概率,1表(biǎo)示a是100%的真实清晰图片,0%表(biǎo)示a是(shì)100%的(de)生成图(tú)片。

      训练上述模型时,生成器总(zǒng)是尽(jìn)可能生成(chéng)像真(zhēn)实图(tú)片(piàn)的图片(piàn),而辨别器则尽可能分辨出(chū)a是真实图片还是生成(chéng)图片。所以(yǐ)辨别器和生成器之间存在着一种对抗:生成器越优化(huà),辨别器越不能分辨生成图片(piàn)的真(zhēn)假;辨别器越优(yōu)化,生(shēng)成器生成(chéng)的图片就越不能(néng)通过辨别(bié)器的检查。对抗的结果是双方(fāng)的能力都得到了提(tí)高,最后达到纳什均衡:即生成器生成了很(hěn)像真实图片的图片(piàn),连辨别(bié)器也无法分辨其中的真假。这就是SRGAN的基(jī)本原理。

      2、生成(chéng)器结构

      生成器的(de)输入是(shì)128*128的3通道图片,输出是(shì)512*512的3通道(dào)图片。SRGAN使(shǐ)用(yòng)U型网络实(shí)现这(zhè)种图片到(dào)图片的转化,结构如下:

      portant;" />

      请注意(yì):

      第一,整(zhěng)个U型网络的左半(bàn)部分全部(bù)由(yóu)卷积(jī)操作组成,用来(lái)抽(chōu)取输入图(tú)像的特征。右半部分全部由反卷积操作组成,用来根(gēn)据特征构建清晰图片。由于输出图片比输入图片大4倍,所以右边比左边高出一截。

      第二,左右(yòu)两边相(xiàng)同大(dà)小的(de)图片之(zhī)间的连线称为捷径,表示左边(biān)的图片与(yǔ)右边的图片进行加法操作,结(jié)果保留在右边。这(zhè)是借用了残差神经网络(luò)(ResNet)的做法。不过ResNet中的捷径(jìng)跨越(yuè)相同数量的(de)操作,而这(zhè)里的捷径跨(kuà)越不同数量(liàng)的操作,并(bìng)且越(yuè)上(shàng)方的捷径(jìng)离(lí)输入和输出越近,快速传播梯度的效果越(yuè)好(hǎo)。

      第三,左(zuǒ)边(biān)最后的(de)卷(juàn)积(jī)和最后的反(fǎn)卷(juàn)积操作都不含激活函数,并且整个(gè)网络中不(bú)使用Dropout,这(zhè)样做的原因超出了本文的讨论范畴,这里不叙述。

      3、辨别(bié)器结构

      辨别(bié)器(qì)有两个输入,a表示要判断真假的图片,b是辅助辨别器(qì)判(pàn)断的模糊图片。两者的分辨率分别是512*512和128*128。对于参(cān)数a,我们采(cǎi)用(yòng)卷积操作不断提纯其特征(zhēng),最后全连接到(dào)一个神(shén)经元,最后(hòu)经过sigmoid激活后得(dé)到(dào)一个概率。这(zhè)条路径我们称为主路径。参数b,我们通过(guò)resize改变其大(dà)小,然(rán)后(hòu)从侧(cè)面切入(rù)到主路(lù)径中去(qù),从而影响(xiǎng)特征的提取。下(xià)图显示了辨别器(qì)结构:

      portant;" />

      请注(zhù)意,全连接之后使用(yòng)sigmoid激(jī)活函数,这(zhè)样可(kě)以获得概率值。

      SRGAN训练

      SRGAN的训练分(fèn)三步完成。第一(yī)步,训练(liàn)辨别器识别真样本。这一步图示如下:

      portant;" />

      这一步的目的是用每一对(duì)模糊和清晰(xī)图片训练辨别器(qì),使得辨别器的输出尽(jìn)可能趋近于(yú)1。注意:清晰图片对应于参数a,模(mó)糊图片对应于参(cān)数b,辨别器的期(qī)望输(shū)出是1。

      假设我们用函数 disc(a,b) 表示辨(biàn)别器(qì)的输出(表示a为真实(shí)样本(běn)的概率),则这一步的损失可以用交叉熵表示为:

      portant;" />

      其(qí)中a和b分别表示真实(shí)的(de)清晰图片和对应的模糊图片。

      第二步,训练辨别器识别(bié)假(jiǎ)样本。这一步图示如下:

      portant;" />

      请注(zhù)意:生成(chéng)器在(zài)这一步中是固定不变的,只有辨别器(qì)才被(bèi)优化。这是(shì)因为这一步只是(shì)为了训练辨别(bié)器(qì)识别(bié)假(jiǎ)样本,也就(jiù)是说辨别器(qì)的期(qī)望输出是0,所(suǒ)以就不能(néng)改动(dòng)生成器。否则就(jiù)会导致生(shēng)成器试图(tú)生成让辨别(bié)器(qì)输出为0的图片,这不(bú)是生成器所期望(wàng)的。生成(chéng)器应该期(qī)望(wàng)生成能让(ràng)辨别(bié)器以为(wéi)是真(即辨别器输出为1)的图片。

      很多算(suàn)法工程师不(bú)清楚在这一步(bù)训练中如何达到(dào)仅训(xùn)练一个模块(比如说辨别器),而固定其他模块(比如说生成器)的目的。

      在Tensorflow中,一般地,我们可以(yǐ)调用函数(shù):

      portant;" />

      来实(shí)现梯(tī)度的反向(xiàng)传(chuán)播和对模(mó)型参数的优化。此时我(wǒ)们只需指定第二个(gè)参数varlist等于辨别器中所有可训(xùn)练参(cān)数的列(liè)表(list)即可。其他未被指定的参数(shù)(比如生成器(qì)中的(de)参数(shù))就不会被优化,也就是说,被(bèi)固定(dìng)了。

      假设我们用函数gen()表示生成的输出,则这一(yī)步辨(biàn)别器的输出(chū)是:

      portant;" />

      由(yóu)于这一步辨别器的期望(wàng)输出是0,所以(yǐ)这(zhè)一(yī)步的损(sǔn)失(shī)可以用交(jiāo)叉熵表示为:

      portant;" />

      第三(sān)步,训练(liàn)辨别器识别假样本。这一步图(tú)示如下:

      portant;" />

      请注意,在这一步(bù)训练中辨别器被固定住了,保持不(bú)变,被训练优化(huà)的是(shì)生成(chéng)器(qì)。因为这一步(bù)的(de)目(mù)的是要让生成器(qì)生成辨别器以为是(shì)真实图片的图片,所以辨别器(qì)的期望输出是1。此时我们(men)必须(xū)固定住辨别器,否(fǒu)则辨(biàn)别器会变成这个样子:不管生成(chéng)器输(shū)出(chū)什么(me)样的图片,辨(biàn)别器都尽可能输出1。显然,这不是我们所期望的。

      这(zhè)一步训练的(de)结构跟第二步相同,不(bú)同(tóng)的是固(gù)定的是什么,训(xùn)练的是什(shí)么,以及辨别(bié)器(qì)的(de)期望输出不同。

      由于这一步辨别器(qì)的期望(wàng)输出是(shì)1,所以这一步的损失(shī)可以用交叉熵(shāng)表示为:

      portant;" />

      我们可(kě)以(yǐ)发现,第二步和(hé)第三步(bù)训练(liàn)的(de)输入数据都是b,网络的输出都是disc(gen(b),b), 但(dàn)是(shì)期望输出(chū)一个是0,另一个是1。对抗由此产(chǎn)生,最终的结果(guǒ)将达到纳什均衡。理想情(qíng)况下,disc(gen(b),b) 的结果(guǒ)既不(bú)是0也不是1,而(ér)是接近0.5。

      我们有了(le)三个(gè)训练步骤,有了(le)三个(gè)损失函数,并且知道每一步训练什么、固定什(shí)么,则依次循环执行这(zhè)三步训练就能达到实现超(chāo)分模型的目的。

      本文是对GAN和SRGAN的(de)一个简单说明,是给初学(xué)者理解SRGAN模(mó)型看的,没有涉及到GAN更高深的(de)知识(比如WGAN和推土机距离等)。如有错漏(lòu)之处希(xī)望给(gěi)以批评指正。

      关键词:




      AI人(rén)工智能网声明:

      凡(fán)资讯来源注明为其(qí)他媒(méi)体来源的信息,均为转载自其他媒体,并不代表本网站赞同其(qí)观点,也不代(dài)表本网站对(duì)其真实性负责。您若对该文章内(nèi)容有任(rèn)何疑问或(huò)质疑,请立即与网站(www.ankang.huangnan.sys.jixi.ww38.viennacitytours.com)联系,本网站将迅速给您回应并做处理。


      联系电(diàn)话:021-31666777   新闻、技术文(wén)章投稿QQ:3267146135   投稿(gǎo)邮箱:syy@gongboshi.com

      工博士(shì)人工智能网(wǎng)
      leyu乐鱼
      扫描二维码关注微信
      扫码反馈

      扫一扫,反馈当前页面

      咨询反(fǎn)馈
      扫码关注

      微(wēi)信公众(zhòng)号

      返回顶部

      leyu乐鱼

      leyu乐鱼