本發(fā)明涉及圖像處理領(lǐng)域,尤其涉及一種基于人臉照片生成個(gè)性卡通動(dòng)態(tài)圖的方法。
背景技術(shù):
似顏繪是通過(guò)繪畫的方式,將真人的相貌和心情結(jié)合起來(lái),在紙上畫出接近真人的頭像。似顏繪最初起源于歐洲,傳到日本后,結(jié)合日本的浮世繪演變而來(lái),似顏繪在日本非常流行,更廣泛的被用于指具有諷刺意味的肖像漫畫。以漫畫形式表現(xiàn)的似顏繪正作為一種新興的潮流事物發(fā)展起來(lái)。影視明星陳小春的似顏繪如圖1所示。
一般而言,現(xiàn)有的似顏繪都需要專門的畫師通過(guò)手繪的形式來(lái)制作,而進(jìn)入互聯(lián)網(wǎng)快消時(shí)代以來(lái),通過(guò)程序和算法來(lái)生成似顏繪的形式日益豐富,其中包括似顏繪的一個(gè)分支,即將真人照片與卡通圖像結(jié)合,以達(dá)到個(gè)性表達(dá)的目的。巴薩球星真人照片與卡通圖像結(jié)合的似顏繪如圖2所示。
目前真人照片和卡通圖像的結(jié)合存在許多問(wèn)題,如可選素材少,素材組合自由度低;臉部輪廓截取不精確;不支持頭像的位移與旋轉(zhuǎn);生成速度慢;無(wú)法生成動(dòng)態(tài)圖片;圖像質(zhì)量低等等。
因此,本領(lǐng)域的技術(shù)人員致力于開發(fā)一種基于人臉照片生成個(gè)性卡通動(dòng)態(tài)圖的方法,實(shí)現(xiàn)精確快速地選取和生成卡通動(dòng)態(tài)圖圖像。
技術(shù)實(shí)現(xiàn)要素:
有鑒于現(xiàn)有技術(shù)的上述缺陷,本發(fā)明所要解決的技術(shù)問(wèn)題是如何基于人臉照片實(shí)現(xiàn)精確快速地選取和生成卡通動(dòng)態(tài)圖圖像。
為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種基于人臉照片生成個(gè)性卡通動(dòng)態(tài)圖的方法,包括以下步驟:
步驟1、在畫布上建立一個(gè)坐標(biāo)系;
步驟2、將所述人臉照片和卡通圖像放置在不同的圖層;
步驟3、采用蒙版方式提取最佳人臉輪廓;
步驟4、采用逐行掃描方式生成背景透明的靜態(tài)所述最佳人臉輪廓;
步驟5、采用幀拼接方式生成個(gè)性卡通動(dòng)態(tài)圖。
進(jìn)一步地,所述坐標(biāo)系為640*640。
進(jìn)一步地,所述幀拼接的幀數(shù)為6幀。
進(jìn)一步地,所述蒙版方式提取還包括移動(dòng)、縮放和旋轉(zhuǎn)操作。
進(jìn)一步地,所述逐行掃描方式具體為:
步驟3.1、將蒙版每一行描述為包含若干起始和結(jié)束點(diǎn)的點(diǎn)集;
步驟3.2、從所述最佳人臉輪廓的底部開始往上掃描,如果第1行全部為透明像素,則描述為(1,N),代表第一行從第1個(gè)像素到第N個(gè)像素全部置為透明;
步驟3.3、以此類推,如果第N行從第1個(gè)像素到第X個(gè)像素為透明,第X個(gè)像素到第Y個(gè)像素為蒙版區(qū)域,第Y個(gè)像素到第Z個(gè)像素為透明,則該行描述為(1,X),(Y,Z);
步驟3.4、根據(jù)蒙版的逐行掃描描述,將所述最佳人臉輪廓從底部開始往上:第1行全部置為透明像素,第N行從第1個(gè)像素開始到第X個(gè)像素置為透明,第Y個(gè)像素到第Z個(gè)像素置為透明;
步驟3.5、置換后最終圖像就是要截取的所述最佳人臉輪廓。
進(jìn)一步地,所述幀拼接具體為:
步驟5.1、在卡通素材的第1幀,將所述人臉照片中心點(diǎn)擺放在(X1,Y1)坐標(biāo)位置,放大P1倍,并順時(shí)針旋轉(zhuǎn)Q1度;
步驟5.2、在卡通素材的其他幀做相同的變換,所述X、Y、P、Q的值不完全相同;
步驟5.3、將全部幀按照順序進(jìn)行輪播,輸出所述個(gè)性卡通動(dòng)態(tài)圖。
進(jìn)一步地,所述蒙版包含不同性別、臉型和發(fā)型。
進(jìn)一步地,所述幀拼接的幀圖像和幀拼接的方法存儲(chǔ)于服務(wù)端。
進(jìn)一步地,所述步驟5.3中,所述輪播的幀切換間隔按照動(dòng)作幅度設(shè)置。
進(jìn)一步地,所述幀切換間隔為0.1~0.5秒。
本發(fā)明所述的基于人臉照片生成個(gè)性卡通動(dòng)態(tài)圖的方法,能夠取得更豐富的卡通素材選取空間和組合方式;能夠截取更精準(zhǔn)的臉部輪廓,消除殘缺和多余截??;能夠通過(guò)頭像的位移和旋轉(zhuǎn)達(dá)到更生動(dòng)的表達(dá);能夠具有更快的生成速度;能夠支持動(dòng)態(tài)卡通圖像的生成而且清晰度支持高分屏手機(jī)不失真。
以下將結(jié)合附圖對(duì)本發(fā)明的構(gòu)思、具體結(jié)構(gòu)及產(chǎn)生的技術(shù)效果作進(jìn)一步說(shuō)明,以充分地了解本發(fā)明的目的、特征和效果。
附圖說(shuō)明
圖1是影視明星陳小春似顏繪;
圖2是影視明星劉德華真人照片與卡通圖像結(jié)合版似顏繪;
圖3是本發(fā)明的一個(gè)較佳實(shí)施例的流程示意圖;
圖4是本發(fā)明的一個(gè)較佳實(shí)施例的采用遮罩蒙版圖層示例;
圖5是本發(fā)明的一個(gè)較佳實(shí)施例的各種遮罩模板;
圖6是本發(fā)明的一個(gè)較佳實(shí)施例的人臉照片與遮罩圖層的最佳匹配示例。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明所示技術(shù)方案作進(jìn)一步的詳細(xì)說(shuō)明。可以理解的是,此處所描述的具體實(shí)施例僅僅用于解釋相關(guān)發(fā)明,而非對(duì)該發(fā)明的限定。另外還需要說(shuō)明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關(guān)的部分。在不沖突的情況下,本發(fā)明申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。
圖3是本發(fā)明所述的生成卡通人臉動(dòng)態(tài)圖的方法的一個(gè)實(shí)施例的流程圖。本實(shí)施例主要以該方法應(yīng)用于具有一定運(yùn)算能力及拍照或存儲(chǔ)功能的終端中來(lái)舉例說(shuō)明,該終端可以包括但不限于智能手機(jī)、平板電腦、電子書閱讀器、MP3播放器(Moving Picture Experts Group Audio Layer III,動(dòng)態(tài)影像專家壓縮標(biāo)準(zhǔn)音頻層面3)、MP4(Moving Picture Experts Group Audio Layer IV,動(dòng)態(tài)影像專家壓縮標(biāo)準(zhǔn)音頻層面4)播放器、膝上型便攜計(jì)算機(jī)和臺(tái)式計(jì)算機(jī)等等。
傳統(tǒng)的畫師在繪制似顏繪的過(guò)程中都需要一個(gè)畫板和畫紙,而在數(shù)字生成的領(lǐng)域,我們稱這個(gè)畫紙為“畫布”,任何圖像都是由這個(gè)畫布上的像素點(diǎn)以一定的色值和透明度相組合而形成,要進(jìn)行任何的圖像生成,都需要在這個(gè)畫布上進(jìn)行處理。
如圖4所示,在畫布上建立一個(gè)坐標(biāo)系,本實(shí)施例以640*640的點(diǎn)陣為例。
將真人人臉照片和卡通圖層分別置于不同的圖層上,并將卡通圖層放置在真人人臉照片圖層之上,起到遮罩后疊加的作用。
普通拍攝的人像照片,因?yàn)榘碥|、四肢、背景等內(nèi)容,不適宜與卡通素材直接結(jié)合,本發(fā)明所述的生成卡通人臉動(dòng)態(tài)圖的方法實(shí)現(xiàn)了遮罩截取的方式,通過(guò)提供數(shù)十種不同性別,臉型,發(fā)型的遮罩模板,如圖5所示,來(lái)從真人照片中截取最合適的人臉輪廓。
因真實(shí)照片的像素、尺寸、人臉大小、比例、以及角度等均存在差異,在實(shí)際運(yùn)用過(guò)程中,單純通過(guò)遮罩有可能選出過(guò)大、過(guò)小、過(guò)偏的人臉輪廓,因此本發(fā)明所述的生成卡通人臉動(dòng)態(tài)圖的方法在遮罩的基礎(chǔ)上額外提供旋轉(zhuǎn)、平移與縮放,如圖6所示,以達(dá)到最佳臉部輪廓選取的目的。
在實(shí)際應(yīng)用中,我們只需要用到遮罩圖層以內(nèi)的部分,而將遮罩圖層以外的部分全部置為透明像素,因人臉照片為位圖,一般傳統(tǒng)的算法是采用蒙版矩陣的方式:
1.將蒙版描述為一個(gè)二維矩陣,包含640*640個(gè)數(shù)值。
2.根據(jù)蒙版的輪廓,將每個(gè)數(shù)值置為0或1,即蒙版以內(nèi)為1,蒙版以外為0。
3.將真實(shí)人臉照片的每個(gè)點(diǎn)的alpha(透明度)值乘以該二維矩陣對(duì)應(yīng)的數(shù)值。
4.最終圖像就是需要截取的人臉輪廓。
上述傳統(tǒng)算法對(duì)于每一個(gè)蒙版,需要的存儲(chǔ)空間比較大,每個(gè)蒙版的數(shù)值矩陣需要幾百千字節(jié)的存儲(chǔ)空間,而且每次截取操作都需要做數(shù)十萬(wàn)次取值和乘法運(yùn)算,存 儲(chǔ)和運(yùn)算效率均比較低下,本發(fā)明所述的生成卡通人臉動(dòng)態(tài)圖的方法采用了一種改進(jìn)型的“逐行掃描算法”:
1.將蒙版每一行描述為包含若干起始和結(jié)束點(diǎn)的點(diǎn)集,一共是640個(gè)點(diǎn)集。
2.從底部開始往上掃描,如果第1行全部為透明像素,則描述為(1,640),代表第一行從第1個(gè)像素到第640個(gè)像素全部置為透明。
3.以此類推,如果第N行從第1個(gè)像素到第X個(gè)像素為透明,第X個(gè)像素到第Y個(gè)像素為蒙版區(qū)域,第Y個(gè)像素到第Z個(gè)像素為透明,則該行描述為(1,X),(Y,Z)。
4.根據(jù)蒙版的逐行掃描描述,將真實(shí)人臉照片從底部開始往上:第1行全部置為透明像素,第N行從第1個(gè)像素開始到第X個(gè)像素置為透明,第Y個(gè)像素到第Z個(gè)像素置為透明。
5.置換后最終圖像就是要截取的人臉輪廓。
上述逐行掃描算法將640*640的二維矩陣描述為一個(gè)640行的點(diǎn)陣,將離散型的大量運(yùn)算縮減為批量操作型的少量運(yùn)算,大大的提高了存儲(chǔ)效率和運(yùn)算效率。
任何動(dòng)畫要表現(xiàn)運(yùn)動(dòng)或變化,至少前后要給出兩個(gè)不同的關(guān)鍵狀態(tài),而中間狀態(tài)的變化和銜接電腦可以自動(dòng)完成,在動(dòng)畫中,表示關(guān)鍵狀態(tài)的幀動(dòng)畫叫做關(guān)鍵幀動(dòng)畫,所謂關(guān)鍵幀動(dòng)畫,就是給需要?jiǎng)赢嬓Ч膶傩?,?zhǔn)備一組與時(shí)間相關(guān)的值,這些值都是在動(dòng)畫序列中比較關(guān)鍵的幀中提取出來(lái)的,而其他時(shí)間幀中的值,可以用這些關(guān)鍵值,采用特定的插值方法計(jì)算得到,從而達(dá)到比較流暢的動(dòng)畫效果。
在實(shí)際應(yīng)用中,幀數(shù)越多,則動(dòng)畫越流暢,但越難以從網(wǎng)絡(luò)加載;幀數(shù)越少,則動(dòng)畫越卡頓,但越容易從網(wǎng)絡(luò)加載。本發(fā)明所述的生成卡通人臉動(dòng)態(tài)圖的方法采用6幀關(guān)鍵幀作為實(shí)現(xiàn),經(jīng)試驗(yàn),能在流暢性和網(wǎng)絡(luò)加載速度中達(dá)到最好的平衡。
動(dòng)畫加載所需要的時(shí)間比靜態(tài)圖片要長(zhǎng),在網(wǎng)絡(luò)應(yīng)用中,有時(shí)候只需要用到動(dòng)畫中的某一個(gè)幀作為預(yù)加載圖形,本發(fā)明所述的生成卡通人臉動(dòng)態(tài)圖的方法采用“最佳展示幀”的方式,即對(duì)于每一個(gè)動(dòng)態(tài)圖片,都描述一個(gè)最佳展示幀。
“frame_info”:{
“total_frames”:6,
“best_frame”:3
}
前述獲取的經(jīng)過(guò)處理后的人臉照片,需要拼接到卡通素材里面最終生成個(gè)性卡通動(dòng)態(tài)圖,而“幀拼接描述”就是本發(fā)明所述的生成卡通人臉動(dòng)態(tài)圖的方法所采用的一種告訴計(jì)算機(jī)如何去拼接的計(jì)算機(jī)描述語(yǔ)言,在640*640坐標(biāo)系里面,該描述語(yǔ)言主要由位置、大小、旋轉(zhuǎn)角度所構(gòu)成,有了這些數(shù)據(jù),計(jì)算機(jī)就能像真人畫師一樣去自動(dòng)生成個(gè)性卡通動(dòng)態(tài)圖了。一個(gè)典型的“幀拼接描述”如下:
“composition”:[{
“frame”:1,
“pos_x”:150,
“pos_y”:240,
“scale”:1.5,
“rotate”:90,
},{
“frame”:1,
“pos_x”:150,
“pos_y”:240,
“scale”:1.5,
“rotate”:90,
}]
在卡通素材的第1幀,將真人照片中心點(diǎn)擺放在(150,240)坐標(biāo)位置,放大1.5倍,并順時(shí)針旋轉(zhuǎn)90度;在卡通素材的第2幀,將真人照片中心點(diǎn)擺放在(180,240)坐標(biāo)位置,放大1.2倍,并順時(shí)針旋轉(zhuǎn)180度;在卡通素材的其他幀,直接疊合不做變換。通過(guò)幀拼接描述,原本在卡通動(dòng)態(tài)圖重頭一成不變的人臉,現(xiàn)在可以實(shí)現(xiàn)移動(dòng),放大縮小,縮小等特效,使得最后出來(lái)的個(gè)性卡通動(dòng)態(tài)圖更加生動(dòng)傳神。
傳統(tǒng)的生成技術(shù),均在本地完成拼接與計(jì)算,而本發(fā)明所述的生成卡通人臉動(dòng)態(tài)圖的方法革新性的將前述的卡通動(dòng)態(tài)圖的幀圖像以及與之對(duì)應(yīng)的“幀拼接描述”存儲(chǔ)于服務(wù)端,這樣做的優(yōu)勢(shì)是:在實(shí)際運(yùn)行中,可以實(shí)時(shí)的變換最終的個(gè)性卡通動(dòng)態(tài)圖的效果,通過(guò)幀的變換可以實(shí)現(xiàn)色彩、內(nèi)容等的變換,而通過(guò)“幀拼接描述”的變化可以實(shí)現(xiàn)人臉動(dòng)作幅度、頻度、角度等的變換。
通過(guò)素材庫(kù)的擴(kuò)充,本發(fā)明所述的生成卡通人臉動(dòng)態(tài)圖的方法可以實(shí)現(xiàn)最終個(gè)性卡通動(dòng)態(tài)圖主題的變換,不僅真人照片不是一成不變,用以拼接的卡通素材也具備多樣性,技術(shù)使用者可以在不同主題間進(jìn)行選擇,比如可以給真人變換一套真人頭像加鋼鐵俠身體與背景的個(gè)性卡通動(dòng)態(tài)圖,也可以變換一套真人頭像奧特曼身體與背景的個(gè)性卡通動(dòng)態(tài)圖,豐富多樣,按需選擇。
以上詳細(xì)描述了本發(fā)明的較佳具體實(shí)施例。應(yīng)當(dāng)理解,本領(lǐng)域的普通技術(shù)無(wú)需創(chuàng)造性勞動(dòng)就可以根據(jù)本發(fā)明的構(gòu)思作出諸多修改和變化。因此,凡本發(fā)明所述的生成卡通人臉動(dòng)態(tài)圖的方法領(lǐng)域中技術(shù)人員依本發(fā)明的構(gòu)思在現(xiàn)有技術(shù)的基礎(chǔ)上通過(guò)邏輯分析、推理或者有限的實(shí)驗(yàn)可以得到的技術(shù)方案,皆應(yīng)在由權(quán)利要求書所確定的保護(hù)范圍內(nèi)。