1
雷鋒網(wǎng)按:原文版權(quán)屬于CSDN《程序員》雜志原創(chuàng),作者為魏秀參,發(fā)表于2016年7月刊。雷鋒網(wǎng)已獲原作者授權(quán)發(fā)布,如需轉(zhuǎn)載請(qǐng)聯(lián)系。
計(jì)算機(jī)視覺(jué)(Computer Vision,CV)是一門研究如何使機(jī)器“會(huì)看”的科學(xué)。1963年來(lái)自MIT的Larry Roberts發(fā)表了該領(lǐng)域第一篇博士論文《Machine Perception of Three-Dimensional Solids》,標(biāo)志著CV作為一門新興人工智能方向研究的開(kāi)始。在發(fā)展了50多年后的今天,我們就來(lái)聊聊最近讓計(jì)算機(jī)視覺(jué)擁有“無(wú)中生有”能力的幾個(gè)有趣嘗試:
超分辨率重建;
圖像著色;
看圖說(shuō)話;
人像復(fù)原;
圖像自動(dòng)生成。
可以看出,這五個(gè)嘗試層層遞進(jìn),難度和趣味程度也逐步提升。由于篇幅有限,本文在此只談視覺(jué)問(wèn)題,不提太過(guò)具體的技術(shù)細(xì)節(jié),若大家對(duì)某部分感興趣,以后再來(lái)單獨(dú)寫(xiě)文章討論。
去年夏天,一款名為“waifu 2x”的島國(guó)應(yīng)用在動(dòng)畫(huà)和計(jì)算機(jī)圖形學(xué)中著實(shí)火了一把。waifu 2x借助深度“卷積神經(jīng)網(wǎng)絡(luò)”(Convolutional Neural Network,CNN)技術(shù),可以將圖像的分辨率提升2倍,同時(shí)還能對(duì)圖像進(jìn)行降噪。簡(jiǎn)單來(lái)說(shuō),就是讓計(jì)算機(jī)“無(wú)中生有”地填充一些原圖中并沒(méi)有的像素,從而讓漫畫(huà)看起來(lái)更清晰真切。大家不妨看看圖1、圖2,真想童年時(shí)候看的就是如此高清的龍珠?。?/p>
圖1 《龍珠》超分辨率重建效果。右側(cè)為原畫(huà),左側(cè)為waifu 2x對(duì)同幀動(dòng)畫(huà)超分辨率重建結(jié)果
圖2 waifu 2x超分辨率重建對(duì)比,上方為低分辨率且有噪聲的動(dòng)畫(huà)圖像,左下為直接放大的結(jié)果,右下為waifu 2x去噪和超分辨率結(jié)果
不過(guò)需要指出的是,圖像超分辨率的研究始于2009年左右,只是得力于“深度學(xué)習(xí)”的發(fā)展,waifu 2x才可以做出更好的效果。在具體訓(xùn)練CNN時(shí),輸入圖像為原分辨率,而對(duì)應(yīng)的超分辨率圖像則作為目標(biāo),以此構(gòu)成訓(xùn)練的“圖像對(duì)”(Image Pair),經(jīng)過(guò)模型訓(xùn)練便可得到超分辨率重建模型。waifu 2x的深度網(wǎng)絡(luò)原型基于香港中文大學(xué)湯曉歐教授團(tuán)隊(duì)的成果(如圖3所示)。有趣的是,這一研究指出可以用傳統(tǒng)方法給予深度模型以定性的解釋。在圖3中,低分辨率圖像通過(guò)CNN的卷積(Convolution)和池化(Pooling)操作后可以得到抽象后的特征圖 (Feature Map)。基于低分辨率特征圖,同樣可以利用卷積和池化實(shí)現(xiàn)從低分辨率到高分辨率特征圖的非線性映射(Non-Linear Mapping)。最后的步驟則是利用高分辨率特征圖重建高分辨率圖像。實(shí)際上,這三個(gè)步驟與傳統(tǒng)超分辨率重建方法的三個(gè)過(guò)程是一致的。
圖3 超分辨率重建算法流程。從左至右依次為:低分辨率圖像(輸入)、經(jīng)過(guò)若干卷積和池化操作得到的低分辨率特征圖、低分辨率特征圖經(jīng)過(guò)非線性映射得到的高分辨率特征圖、高分辨率重建圖像(輸出)
顧名思義,圖像著色是將原本“沒(méi)有”顏色的黑白圖像進(jìn)行彩色填充。圖像著色同樣借助卷積神經(jīng)網(wǎng)絡(luò),輸入為黑白和對(duì)應(yīng)彩色圖像的“圖像對(duì)”,但僅僅通過(guò)對(duì)比黑白像素和RGB像素來(lái)確定填充的顏色,效果欠佳。因?yàn)轭伾畛涞慕Y(jié)果要符合我們的認(rèn)知習(xí)慣,比如,把一條“汪星人”的毛涂成鮮綠色就會(huì)讓人覺(jué)得很怪異。于是近期,早稻田大學(xué)發(fā)表在2016年計(jì)算機(jī)圖形學(xué)國(guó)際頂級(jí)會(huì)議SIGGRAPH上的一項(xiàng)工作就在原來(lái)深度模型的基礎(chǔ)上,加入了“分類網(wǎng)絡(luò)”來(lái)預(yù)先確定圖像中物體的類別,以此為“依據(jù)”再做以顏色填充。圖4就分別展示了模型結(jié)構(gòu)圖和顏色恢復(fù)示例,其恢復(fù)效果還是頗為逼真的。另外,此類工作還可用于黑白電影的顏色恢復(fù),操作時(shí)只需簡(jiǎn)單將視頻中逐幀拿來(lái)做著色即可。
圖4 圖像著色的深度學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu)和效果。輸入黑白圖像后即分為兩支,上側(cè)一支用于圖像著色,下側(cè)一支用于圖像分類。在圖中紅色部分(Fusion layer),兩支的深度特征信息進(jìn)行融合,由于包含了分類網(wǎng)絡(luò)特征,因此可以起到“用分類結(jié)果為依據(jù)輔助圖像著色”的效果
人們常說(shuō)“圖文并茂”,文字是除圖像之外另一種描述世界的方式。近期,一項(xiàng)名為“Image Caption”的研究逐漸升溫起來(lái),其主要目的是通過(guò)計(jì)算機(jī)視覺(jué)和機(jī)器學(xué)習(xí)的方法實(shí)現(xiàn)對(duì)一張圖像自動(dòng)地生成人類自然語(yǔ)言的描述,即“看圖說(shuō)話”。一般來(lái)講,在Image Caption中,CNN用來(lái)獲取圖像的特征,接著將圖像特征作為語(yǔ)言模型LSTM(RNN的一種)的輸入,整體作為一個(gè)End-to-End的結(jié)構(gòu)進(jìn)行聯(lián)合訓(xùn)練,最終輸出對(duì)圖像的語(yǔ)言描述(如圖5所示)。
圖5 Image Caption網(wǎng)絡(luò)結(jié)構(gòu)。圖像作為輸入,首先經(jīng)過(guò)微調(diào)后的多標(biāo)記(Multi-Label)分類網(wǎng)絡(luò)得到預(yù)測(cè)的類別標(biāo)簽,并以此連同圖像的深度特征作為下方語(yǔ)言模型LSTM的輸入,最終進(jìn)行聯(lián)合訓(xùn)練。下圖左一可完成Image Caption任務(wù),左2為單個(gè)單詞圖像問(wèn)答任務(wù),右1為句子級(jí)別的圖像問(wèn)答任務(wù)
就在六月初,荷蘭科學(xué)家在arXiv上發(fā)布了他們的最新研究成果——通過(guò)深度網(wǎng)絡(luò)對(duì)人臉輪廓圖進(jìn)行“復(fù)原”。如圖6所示,在模型訓(xùn)練階段,首先對(duì)真實(shí)的人臉圖像利用傳統(tǒng)的線下邊緣化方法獲得對(duì)應(yīng)人臉的輪廓圖,并以原圖和輪廓圖組成的“圖像對(duì)”作為深度網(wǎng)絡(luò)的輸入,進(jìn)行類似超分辨率重建的模型訓(xùn)練。在預(yù)測(cè)階段,輸入為人臉輪廓(左二Sketch),經(jīng)過(guò)卷積神經(jīng)網(wǎng)絡(luò)的層層抽象和后續(xù)的“還原”操作,可以逐步把相片般的人臉圖像復(fù)原出來(lái)(右一),與最左邊的人臉真實(shí)圖像對(duì)比,足夠以假亂真。在模型流程圖下還另外展示了一些人像復(fù)原的結(jié)果,左側(cè)一列為真實(shí)人像,中間列為畫(huà)家手工描繪的人臉輪廓圖,并以此作為網(wǎng)絡(luò)輸入進(jìn)行人像復(fù)原,最終得到右側(cè)一列的復(fù)原結(jié)果——目測(cè)以后刑偵警察再也不用苦練美術(shù)了。
圖6 人像復(fù)原算法流程及效果
回顧剛才的四個(gè)工作,其實(shí)它們的共同點(diǎn)是仍然需要依靠一些“素材”方可“無(wú)中生有”,例如“人像復(fù)原”還是需要一個(gè)輪廓畫(huà)才可以恢復(fù)人像。接下來(lái)的這個(gè)工作則可以做到由任意一條隨機(jī)向量生成一張逼近真實(shí)場(chǎng)景的圖像。
“無(wú)監(jiān)督學(xué)習(xí)”可謂是計(jì)算機(jī)視覺(jué)領(lǐng)域的圣杯。最近該方向的一項(xiàng)開(kāi)創(chuàng)性工作是由Ian Goodfellow和Yoshua Bengio等提出的“生成對(duì)抗網(wǎng)絡(luò)”(Generative Adversarial Nets, GAN)。該工作的靈感來(lái)自博弈論中的零和博弈。在二元零和博弈中,兩位博弈方的利益之和為零或一個(gè)常數(shù),即一方有所得,另一方必有所失。而GAN中的兩位博弈方分別由一個(gè)“判別式網(wǎng)絡(luò)”和一個(gè)“生成式網(wǎng)絡(luò)”充當(dāng),如圖7所示。
圖7 生成式網(wǎng)絡(luò)和判別式網(wǎng)絡(luò)
其中,“判別式網(wǎng)絡(luò)”的輸入為圖像,其作用為判斷一張圖像是真實(shí)的,還是由計(jì)算機(jī)生成的像;“生成式網(wǎng)絡(luò)”的輸入為一條隨機(jī)向量,可以通過(guò)網(wǎng)絡(luò)“生成”一張合成圖像。這張合成圖像亦可作為“判別式網(wǎng)絡(luò)”的輸入,只是此時(shí),在理想情況下應(yīng)能判斷出它是由計(jì)算機(jī)生成的。
接下來(lái),GAN中的零和博弈就發(fā)生在“判別式網(wǎng)絡(luò)”和“生成式網(wǎng)絡(luò)”上:“生成式網(wǎng)絡(luò)”想方設(shè)法的讓自己生成的圖像逼近真實(shí)圖像,從而可以“騙過(guò)”“判別式網(wǎng)絡(luò)”;而“判別式網(wǎng)絡(luò)”也時(shí)刻提高警惕,防止“生成式網(wǎng)絡(luò)”蒙混過(guò)關(guān)……你來(lái)我往,如此迭代下去,頗有點(diǎn)“左右互搏”的意味。GAN整個(gè)過(guò)程的最終目標(biāo)是習(xí)得一個(gè)可以逼近真實(shí)數(shù)據(jù)分布的“生成式網(wǎng)絡(luò)”,從而掌握整體真實(shí)數(shù)據(jù)的分布情況,因此取名“生成對(duì)抗網(wǎng)絡(luò)”。需要強(qiáng)調(diào)的是,GAN不再像傳統(tǒng)的監(jiān)督式深度學(xué)習(xí)那樣需要海量帶有類別標(biāo)記的圖像,它不需任何圖像標(biāo)記即可訓(xùn)練,也就是進(jìn)行無(wú)監(jiān)督條件下的深度學(xué)習(xí)。2016年初,在GAN的基礎(chǔ)上,Indico Research和Facebook AI實(shí)驗(yàn)室將GAN用深度卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行實(shí)現(xiàn)(稱作DCGAN,Deep Convolutional GAN),工作發(fā)表在國(guó)際表示學(xué)習(xí)重要會(huì)議ICLR 2016上,并在無(wú)監(jiān)督深度學(xué)習(xí)模型中取得了當(dāng)時(shí)最好的效果。圖8展示了一些由DCGAN生成的臥室圖像。
圖8 DCGAN生成的臥室圖像
更為有趣的是,DCGAN還可以像word2vec一樣支持圖像“語(yǔ)義”層面的加減(如圖9所示)。
圖9 DCGAN“語(yǔ)義加減”示意
另外,前些天“生成式計(jì)算機(jī)視覺(jué)”研究領(lǐng)域大牛UCLA的Song-Chun Zhu教授團(tuán)隊(duì)發(fā)布了他們基于生成式卷積網(wǎng)絡(luò)的最新工作STGConvNet:它不僅可以自動(dòng)合成動(dòng)態(tài)紋理,同時(shí)還可以合成聲音,可以說(shuō)將無(wú)監(jiān)督計(jì)算機(jī)視覺(jué)又向前推進(jìn)了一大步。
如今借著“深度學(xué)習(xí)”的東風(fēng),計(jì)算機(jī)視覺(jué)中絕大多數(shù)任務(wù)的性能表現(xiàn)都被“刷”上了新高,甚至連“人像復(fù)原”,“圖像生成”類似“無(wú)中生有”的奇談都可以較高質(zhì)量地實(shí)現(xiàn),著實(shí)讓人激動(dòng)不已。不過(guò)盡管如此,事實(shí)上距離所謂的顛覆人類的AI“奇點(diǎn)”還相當(dāng)遙遠(yuǎn),并且可以預(yù)見(jiàn),現(xiàn)階段甚至相當(dāng)長(zhǎng)的一段時(shí)間內(nèi),計(jì)算機(jī)視覺(jué)或人工智能還不可能做到真正意義上的“無(wú)中生有”——即擁有“自我意識(shí)”。
但是,也非常慶幸我們可以目睹并且經(jīng)歷這次計(jì)算機(jī)視覺(jué)乃至是整個(gè)人工智能的革命浪潮,相信今后還會(huì)有很多“無(wú)中生有”的奇跡發(fā)生。站在浪潮之巔,我興奮不已、徹夜難眠。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。