平均脸
無聊查看學(xué)校研究生信息網(wǎng)源碼時(shí)發(fā)現(xiàn),照片信息竟然是絕對(duì)引用另一臺(tái)數(shù)據(jù)服務(wù)器的地址,并且更嚴(yán)重的是照片是以學(xué)號(hào)命名的。我試著訪問了相鄰學(xué)號(hào)的同學(xué)照片,竟然很順利的看到了。學(xué)生學(xué)號(hào)命名很有規(guī)律,11級(jí)別碩士,就是11S打頭,后面跟著6位數(shù)字分別岱廟學(xué)院號(hào),系代號(hào)以及具體班級(jí)號(hào)。哈哈,一個(gè)python腳本把我們同一屆的研究生照片全部拉下來,再一試,08-10級(jí)的也都能得到,漏洞竟然已經(jīng)存在了4年!!全部照片一共1w多張,師哥師姐偶對(duì)不住了,在此請(qǐng)大家原諒。以下是部分下載到的照片:
?
若是一枚屌絲,看看美女也就罷了,但是我可是有志要做一名骨灰級(jí)屌絲的哇,這么好的資源豈能輕易放過。腦子各種東東開始閃現(xiàn),Fashbook老大曾經(jīng)做過facemash.com,后來效仿者華科臉pk也一炮成名Hust-facemash.com。想想技術(shù)也不難,無非就是前端一個(gè)網(wǎng)頁,后端一個(gè)排序算法就可以搞定。把師哥師姐的照片放到網(wǎng)上也不是太人道,算了,還是回歸老本行,圖像處理搞起來~。
?
想了半天,臉融合我還挺感興趣,剛好以前有接觸過人臉識(shí)別的相關(guān)內(nèi)容。找了一下相關(guān)的論文以及前人實(shí)踐的結(jié)果,南大的劉靖康曾經(jīng)用7000張照片做了相應(yīng)的臉融合,提到了用beyond-reality-face.com的庫做特征點(diǎn)的提取,但是具體融合技術(shù)細(xì)節(jié)沒有透露,后來他跟騰訊聯(lián)合搞了個(gè)各個(gè)高校的平均臉。于是我決定,我這次做平均臉的程序?qū)⑷块_源,算法細(xì)節(jié)將逐一呈現(xiàn)!那么該如何入手呢?
?
我的思路是這樣,首先還是要提取出人臉的特征點(diǎn),重要的如眼睛的、鼻子、嘴的位置、臉型的輪廓等。如下圖所示。?
?
人臉特征點(diǎn)的提取幾乎是所有人臉處理的第一步,所以這方面的庫也比較多。我選用了一個(gè)簡(jiǎn)單的9特征點(diǎn)提取,包括兩眼睛4點(diǎn),鼻子3個(gè)點(diǎn),以及嘴巴兩個(gè)點(diǎn)。特征點(diǎn)提取的源代碼沒有仔細(xì)研究,有志青年可以仔細(xì)看看,其實(shí)現(xiàn)用到了opencv的庫,算法方面則是采用了Viola&Jones的經(jīng)典face?detection。前人栽樹,后人乘涼,有了提取到的特征點(diǎn),可以說臉融合的工作已經(jīng)完成了90%了。神馬?剩下10%你還是不清楚,那請(qǐng)繼續(xù)往下看。
?
特征點(diǎn)得到后,我們需要用一個(gè)標(biāo)準(zhǔn)臉的模板,來將每個(gè)個(gè)體不同的點(diǎn)位加以線性變換(非線性變換將會(huì)扭曲臉型,最終得到的將不是平均臉,而是扭曲后的標(biāo)準(zhǔn)化臉),線性變換只是旋轉(zhuǎn)以及比例縮放,對(duì)臉不會(huì)產(chǎn)生扭曲作用。那么采用什么方法來得到線性變換呢??
Tlinear?=?cp2tform(input_points,base_points,'linear?conformal');
Matlab中使用的命令是cp2tform,該函數(shù)由輸入的兩幅圖像的對(duì)應(yīng)點(diǎn)生成變換結(jié)構(gòu),輸入input_points就是由算法得到的9個(gè)點(diǎn),base_points則是標(biāo)定的基準(zhǔn)點(diǎn)。
?
3張圖片融合的結(jié)果
得到線性變換的圖像之后,直接采用語句
MergeImg(ii,jj,kk)?=?double(MergeImg(ii,jj,kk))+?double(imgTrans(ii,jj,kk));
便可以得到結(jié)果。
接下來就直接給結(jié)果啦,激動(dòng)人心的時(shí)刻有木有!50張圖片融合的結(jié)果。看看還是挺標(biāo)致的哈。
?
所有源代碼以及測(cè)試程序我將上傳至github。在此嚴(yán)正聲明,所有照片僅僅供學(xué)習(xí)和研究使用!希望大家準(zhǔn)守規(guī)則哈~
?
后續(xù),還可以繼續(xù)挖掘,比如這篇文章中提到了美女的標(biāo)準(zhǔn),所謂三庭五眼,用以上程序稍加修改就能變成一個(gè)美女照片挑選程序,感興趣大家可以做一做。
總結(jié)
- 上一篇: 最新oss对象储存防红直连 防红代码h
- 下一篇: 银行数字化转型导师坚鹏:苏州银行数字化运