1. 程式人生 > >自動瘦臉與眼睛放大美顏演算法

自動瘦臉與眼睛放大美顏演算法

自動瘦臉與眼睛放大可以算作影象區域性扭曲演算法的一個應用,其參考文獻可以追溯至1993年的一篇博士論文:Interactive Image Warping。這篇論文詳細描述了演算法原理,並提供了偽碼實現,有興趣的同學自行下載研讀。

影象區域性扭曲演算法有三個:區域性縮放(Local Scaling)演算法、區域性平移(Local Transition)演算法和區域性旋轉(Local Rotation)演算法。其中應用區域性縮放演算法可實現眼睛放大,區域性平移演算法則可用於實現瘦臉效果。當然,影象區域性縮放演算法只是眼睛放大演算法流程中的最關鍵的一步,要實現自動眼睛放大演算法還需要額外的步驟。簡單來說,給一張美女頭像,你首先需要應用自動人臉檢測技術定位出影象中的眼睛位置;然後基於此位置座標應用影象區域性縮放演算法。自動瘦臉演算法流程類似,不同之處在於應用人臉檢測技術得到人臉輪廓點,由這些輪廓座標點應用區域性平移演算法得到瘦臉效果。

人臉檢測現在已經是一個很成熟的技術,網上也有很多開放資源,目前我只是演算法驗證,暫時使用的是face++提供的人臉關鍵點檢測SDK。它可以得到很豐富的人臉特徵點,包括眉毛、眼睛、鼻子、嘴巴以及臉部輪廓的各個引數,企業應用可能需要付費授權才能使用,個人驗證只要註冊獲取key就能簡單整合。

影象區域性縮放演算法

待續。。。

至於影象區域性縮放演算法實現,文獻中有偽碼描述,這裡我給出一個簡單的OpenGL Shader可以用於實現眼睛放大(其實也可以縮小),偷懶的同學自取,有問題可以跟我討論,但我不對此程式碼導致的bug負責。

12345678910111213141516171819202122232425262728293031323334353637precision highp float;varying highp vec2 textureCoordinate;uniform sampler2D inputImageTexture;uniform highp floatscaleRatio;// 縮放係數,0無縮放,大於0則放大uniform highp floatradius;// 縮放演算法的作用域半徑uniform highp vec2 leftEyeCenterPosition;// 左眼控制點,越遠變形越小uniform highp vec2 rightEyeCenterPosition;// 右眼控制點uniform floataspectRatio
;// 所處理影象的寬高比highp vec2 warpPositionToUse(vec2 centerPostion,vec2 currentPosition,floatradius,floatscaleRatio,floataspectRatio){vec2 positionToUse=currentPosition;vec2 currentPositionToUse=vec2(currentPosition.x,currentPosition.y*aspectRatio+0.5-0.5*aspectRatio);vec2 centerPostionToUse=vec2(centerPostion.x,centerPostion.y*aspectRatio+0.5-0.5*aspectRatio);floatr=distance(currentPositionToUse,centerPostionToUse);if(r<radius){floatalpha=1.0-scaleRatio*pow(r/radius-1.0,2.0);positionToUse=centerPostion+alpha*(currentPosition-centerPostion);}returnpositionToUse;}voidmain(){vec2 positionToUse=warpPositionToUse(leftEyeCenterPosition,textureCoordinate,radius,scaleRatio,aspectRatio);positionToUse=warpPositionToUse(rightEyeCenterPosition,positionToUse,radius,scaleRatio,aspectRatio);gl_FragColor=texture2D(inputImageTexture,

相關推薦

自動眼睛放大美顏演算法

自動瘦臉與眼睛放大可以算作影象區域性扭曲演算法的一個應用,其參考文獻可以追溯至1993年的一篇博士論文:Interactive Image Warping。這篇論文詳細描述了演算法原理,並提供了偽碼實現,有興趣的同學自行下載研讀。 影象區域性扭曲演算法有三個:區域性縮放(Local Scal

【Android】自動眼睛放大美顏演算法

自動瘦臉與眼睛放大可以算作影象區域性扭曲演算法的一個應用,其參考文獻可以追溯至1993年的一篇博士論文:Interactive Image Warping。這篇論文詳細描述了演算法原理,並提供了偽碼實現,有興趣的同學自行下載研讀。 影象區域性扭曲演算法有三個:區

影象處理演算法放大眼睛

       現在很多影象美顏app,處理後不但使人物面板變得平滑、白皙,還會稍微瘦下臉、放大眼睛,給人眼前一亮的感覺。這其中涉及人臉檢測及特徵點提取演算法,一般提取68個特徵點就足夠了,同時也涉及影

結合Doc2Vec改進聚類演算法的中文單文件自動摘要方法研究

                                                                      圖1 本文方法示意圖 一.基於Doc2Vec 的句子向量訓練        Doc2Vec 模型能很好地結合上下文語境, 挖

影象美容之眼睛放大演算法

 目前,手機上各種影象特效的軟體應用App越來越盛行,比較有名如美圖秀秀,camare360,美顏相機等,還有一些在某些特定的方向做的比較的優秀的如魔漫相機等。這些軟體幾乎無一例外的都提供了相當數量的針對人臉進行美化的功能,正是這些最基礎的功能吸熱了很多熱血美女丑女中女的

python資料分析挖掘學習筆記(6)-電商網站資料分析及商品自動推薦實戰關聯規則演算法

這一節主要涉及到的資料探勘演算法是關聯規則及Apriori演算法。 由此展開電商網站資料分析模型的構建和電商網站商品自動推薦的實現,並擴充套件到協同過濾演算法。 關聯規則最有名的故事就是啤酒與尿布的故事,非常有效地說明了關聯規則在知識發現和資料探勘中起的作用和意義。 其中有

PXE自動安裝CentOS6CentOS7的實現

裝系統 asi sock conf ice rep proc 安裝包 軟件包 一、 準備工作 anaconda程序的運行配置文件 kickstart 文件,root用戶家目錄下的anaconda.cfg即ks.cfg文件。 CentOS6與CentOS7系統鏡像文件 軟

男人不可以註射針嗎?【一美站】

不同 也有 同時 尊重 疑惑 ××× 要求 需要 人性 在心理學的角度上,每個人都很享受被人追逐,被人喜歡的感覺,從而被追逐的人能夠不斷的提升自己以在獲取更多的喜愛同時滿足追逐者審美的需求。從這個角度來說,每個人都可以選擇改變自己,不管是從外觀上還是從內在提升或是改變。

Word中圖片自動編號且文中引用的編號對應

分享 操作 光標 分享圖片 輸入 pla 進行 標定 tps 當我們在進行大篇幅 word 文檔的編寫時, 為了節約修改文章中圖片所花費的大量時間, 可以將圖片自動編號,且讓文中引用的順序跟著圖片順序的變化而變化,具體操作如下: 1. 將鼠標定在欲加編號的下方,點擊“引用

自動建立JavaBeanmapper

1.配置: 1.1 resource (application.properties) //標紅的記得改 ## 資料來源配置 spring.datasource.url=jdbc:mysql://localhost:3306/20181020db?useUnicode=t

演算法資料結構】演算法複雜度分析

一、什麼是複雜度分析? 1.資料結構和演算法解決是“如何讓計算機更快時間、更省空間的解決問題”。 2.因此需從執行時間和佔用空間兩個維度來評估資料結構和演算法的效能。 3.分別用時間複雜度和空間複雜度兩個概念來描述效能問題,二者統稱為複雜度。 4.複雜度描述的是演算法執行時間(或佔用空間)與資料

[計算機程式設計C++] Fibonaci數列的遞迴非遞迴演算法實現

本文是對西安交通大學C++慕課第三章程式設計練習的16題的講解。 參考部落格:https://blog.csdn.net/zombie_slicer/article/details/38871799 題目內容: 編寫程式,顯示Fibonaci序列的前n項(從

vue 中npm run dev自動開啟瀏覽器熱更新

一、自動開啟瀏覽器 config/index.js 修改autoOpenBrowser:ture 重啟專案 二、熱更新 1. config/index.js 修改dev中 poll選項值為true(或者時間) 2.build/webpack.dev.conf.js 修改d

Fibonacci數列遞迴演算法非遞迴演算法

轉載於:http://blog.csdn.net/qq_33951180/article/details/52484080 一、斐波那契數列  由於斐波納挈數列是以兔子的繁殖引入的,因此也叫“兔子數列”。它指的是這樣一個數列:0,1,1,2,3,5,8,13……從這組數可以很明顯看出這

python 遞迴深度優先搜尋廣度優先搜尋演算法模擬實現

一、遞迴原理小案例分析 (1)# 概述 遞迴:即一個函式呼叫了自身,即實現了遞迴 凡是迴圈能做到的事,遞迴一般都能做到! (2)# 寫遞迴的過程 1、寫出臨界條件2、找出這一次和上一次關係3、假設當前函式已經能用,呼叫自身計算上一次的結果,再求出本次的結果 (3)案例分析:求1+2+3+…+n的數和

揹包問題的遞迴非遞迴演算法

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Mybatis的自動對映autoMappingBehaviormapUnderscoreToCamelCase

autoMappingBehavior 在Mybatis的配置檔案中新增settings屬性的autoMappingBehavior <settings> <setting name="autoMappingBehavior" value="NONE"/> </set

自動型別轉換強制型別轉換

      java基本資料型別之間存在自動型別轉換與強制型別轉換兩種轉換方法。       型別從低到高:byte->char->short->int->long->float->double,如果

梯度上升演算法隨機梯度上升演算法的實現

1. 引言 上一篇日誌中,我們最終推匯出了計算最優係數的公式。 Logistic 迴歸數學公式推導 本文,我們就利用上一篇文章中計算出的公式來實現模型的訓練和資料的分類。 2. 通過 python 實現 logistic 演

自動駕駛汽車智慧機器人比較

自動駕駛是目前比較火的方向,我自己也是做智慧機器人運動控制的,這裡在這裡將兩者比較下,可能也沒什麼可比性。 一:感知 自動駕駛感測器包括: 1. 車身運動狀態感測器:速度感測器,角度感測器,慣性導航,全球定位系統 2. 環境感知感測器: 鐳射雷達,超聲波,攝像頭,毫米波雷達,V2X