隨著人工智能、虛擬現(xiàn)實(shí)(VR)技術(shù)的迅猛發(fā)展,虛擬人技術(shù)也日漸形成潮流。日本著名廣告公司博報(bào)堂曾依據(jù)近500名年輕員工的照片形象,電腦合成男女員工的樣貌得到公司平均臉。他們還對(duì)這張“平均臉”委以重任,讓它成為了公司的形象代言人。
超現(xiàn)實(shí)的公司“平均臉”
如果我們利用北服學(xué)子的圖像信息計(jì)算平均臉,制作能夠代表北服的平均臉會(huì)得到什么結(jié)果呢?服裝藝術(shù)與工程學(xué)院派研究中心和北服信息中心合作,合作研發(fā)了北服學(xué)生平均臉技術(shù),可以用于北服虛擬人的研究之中。
不過(guò)在揭曉北服“平均臉”之前,我們此處先賣個(gè)關(guān)子,談?wù)勈裁词瞧骄樇夹g(shù)。
有趣的“平均臉”
仔細(xì)看下面的照片,你覺(jué)得她美嗎?有什么有趣的特征嗎?
照片中的女性同時(shí)擁有白人血統(tǒng)、西班牙人血統(tǒng)、亞洲人血統(tǒng)以及印度人血統(tǒng)。她皮膚光彩無(wú)暇,眼神撲朔迷離,似乎美得不真實(shí)。其實(shí),她并不真實(shí)存在,但她也并非完全虛構(gòu)。創(chuàng)造她的正是今天要介紹的一項(xiàng)黑科技:“平均臉”。
想必大家也曾看到過(guò)很多合成的“平均臉”圖片。如下圖就是一些按國(guó)家、民族合成的“平均臉”:
“平均臉”的歷史
其實(shí)平均臉的歷史相當(dāng)悠久?!捌骄槨痹从谶_(dá)爾文的堂兄弗朗西斯·高爾頓(Francis Galton)在1878年提出的一種新的攝影技術(shù)——通過(guò)對(duì)準(zhǔn)眼睛來(lái)合成人臉。弗朗西斯·高爾頓爵士是英國(guó)維多利亞時(shí)代的博學(xué)家、人類學(xué)家、優(yōu)生學(xué)家、熱帶探險(xiǎn)家、地理學(xué)家、發(fā)明家、氣象學(xué)家、統(tǒng)計(jì)學(xué)家、心理學(xué)家和遺傳學(xué)家。
他認(rèn)為,通過(guò)生成罪犯的平均臉,人們就可以根據(jù)面部特征來(lái)預(yù)測(cè)一個(gè)人是否是罪犯。很顯然,他的假設(shè)是錯(cuò)誤的——你不能通過(guò)照片來(lái)預(yù)測(cè)一個(gè)人是否是罪犯。雖然高爾頓爵士的初衷沒(méi)有達(dá)到,但合成平均臉的方法卻保留了下來(lái)。
這一方法是通過(guò)將許多人的照片合成為一張照片完成的。當(dāng)時(shí)具體的做法是:照片疊加——給多個(gè)人,比如20個(gè)人,照相,將每個(gè)人照片所需的曝光時(shí)間縮短為1/20,通過(guò)20次曝光得到一張“平均”照片。
人們意外的發(fā)現(xiàn),這樣合成的人臉看起來(lái)比大部分人的臉都要好看!按常理說(shuō),平均臉應(yīng)該是一張平庸的“大眾臉”,為什么“平均臉”反而更加吸引人?
根據(jù)進(jìn)化假說(shuō),有性繁殖的動(dòng)物會(huì)尋找長(zhǎng)著平均臉的伴侶,因?yàn)槠x平均值可能產(chǎn)生不利的突變。平均臉也是對(duì)稱的,因?yàn)槟樀淖筮吅陀疫叺淖兓瞧骄摹?/p>
2002年研究者們生成了22名入圍當(dāng)年德國(guó)小姐評(píng)選決賽的選手的平均臉,并讓吃瓜群眾打分。結(jié)果顯示人們認(rèn)為平均臉比22位選手的臉更有吸引力,包括贏得比賽的柏林小姐。緊接著人們發(fā)現(xiàn),柏林小姐的長(zhǎng)相和這張平均臉?lè)浅=咏?/p>
如何制作平均臉
隨著信息技術(shù)發(fā)展,數(shù)碼時(shí)代允許我們利用程序設(shè)計(jì)進(jìn)行以前不敢想的事情,利用計(jì)算機(jī)算法的平均臉生成技術(shù)已經(jīng)成熟。
平均臉,指用一定數(shù)量的普通人臉提取面部特征,根據(jù)測(cè)量數(shù)據(jù)求平均值,再利用計(jì)算機(jī)技術(shù)得到一張合成臉。
制作“平均臉”的過(guò)程大概有以下幾個(gè)步驟:
首先提取需要得出平均臉群體的一定數(shù)量照片;
再次將每張照片的五官(耳朵除外)輪廓提取出來(lái),然后將它平均,例如一個(gè)大眼睛加一個(gè)小眼睛就是一個(gè)中等大小的眼睛;
然后將第一步得到的平均輪廓,用對(duì)應(yīng)位置的平均膚色將之填充,只要擁有足夠數(shù)量的樣本,就可以給該群體一張比較精確的“平均臉”了。
后面我們會(huì)給出實(shí)現(xiàn)的大致方法。
北服平均臉
激動(dòng)人心的時(shí)刻來(lái)了!
北服信息中心擁有北服強(qiáng)大的數(shù)據(jù)資源,服裝藝術(shù)與工程學(xué)院派研究中心與信息中心緊密合作,根據(jù)平均臉技術(shù),開(kāi)發(fā)了北京服裝學(xué)院2019級(jí)學(xué)生的平均臉,男生和女生各一個(gè)。其中女生采集到了1203幅圖像,男生采集到了311幅圖像。為了保護(hù)隱私,我們不提供實(shí)際的人臉數(shù)據(jù)融合過(guò)程,只提供結(jié)果。
下圖是所有參與平均臉生成的女生馬賽克圖:
以下是311幅男生的頭像馬賽克圖:
根據(jù)以上頭像產(chǎn)生了北服男女2019級(jí)學(xué)生的平均臉,請(qǐng)看如下大圖:
是不是顏值非常高呢?
我們?cè)倏匆幌卤本┖教旌娇沾髮W(xué)2019年的男女新生的平均臉圖像,是不是更有理工范兒呢?
算法+程序的力量
上面的過(guò)程看著還挺復(fù)雜是不是?想到編程大伙兒都會(huì)感到頭大。其實(shí),如果使用python程序設(shè)計(jì)語(yǔ)言,加上opencv + dlib的第三方插件,“平均臉”技術(shù)只需要百十行代碼就能搞定!
01
面部特征檢測(cè)
首先,使用dlib庫(kù)在每張面部圖像上建立68個(gè)面部基準(zhǔn)點(diǎn)。
02
圖像坐標(biāo)轉(zhuǎn)換
圖像的尺寸很可能是不一樣的,同時(shí)面部也很可能處于圖像的不同位置,所以我們需要標(biāo)準(zhǔn)化面部特征,并把它們放到同一參考坐標(biāo)系下。
為了實(shí)現(xiàn)這一點(diǎn),確保兩只眼睛的點(diǎn)都在一個(gè)水平線上,面部中心大約在離頂端三分之一高度的位置。所以我將眼角位置設(shè)為(0.3*寬,高/3)和(0.7*寬,高/3)。
03
人臉對(duì)齊
現(xiàn)在所有圖像都是相同大小,并且眼睛的兩角都分別對(duì)齊。似乎對(duì)這些圖像每個(gè)像素的值進(jìn)行平均我們就能得到平均臉啦。但如果你真這么做了,會(huì)得到下圖這樣的結(jié)果。當(dāng)然眼睛肯定是對(duì)齊的,但是其他面部特征都沒(méi)對(duì)齊。
不要緊!在獲得了68個(gè)面部基準(zhǔn)點(diǎn)之后,我們結(jié)合人臉?biāo)诘木匦蔚乃膫€(gè)頂點(diǎn)和每條邊的中心點(diǎn),將人臉?biāo)诘木匦畏指畛扇缦聢D所示的三角形的組合,稱為平均基準(zhǔn)點(diǎn)的Delaunay三角剖分。
至此,我們計(jì)算出了人臉基準(zhǔn)點(diǎn)的平均位置,并用這些位置計(jì)算出Delaunay三角剖分,將圖像分成若干三角形。如上圖所示,左圖是變換后輸入圖像的Delaunay三角剖分,中圖是平均關(guān)鍵點(diǎn)的三角剖分。用這一變換將左圖三角形1中的所有像素變換到中圖的三角形1中去。對(duì)左圖每個(gè)三角形重復(fù)該過(guò)程,就可以得到右圖的結(jié)果。右圖只是將左圖按規(guī)則扭曲到了平均臉上。
04
人臉平均
經(jīng)過(guò)了上述處理之后,我們就可以對(duì)這些照片的像素取平均值,得到神奇的平均臉了。
來(lái)源:網(wǎng)絡(luò)
聯(lián)系客服