天天看點

基于OpenCV實作的Android移動端口紅AR

這個是我們去年想做的一個項目,後來因為各種原因就此擱淺了。但是算法部分我已經把它基本成型了,對各種光線條件下都可以準确的找到嘴唇,提取唇形、然後通過色彩渲染自動變化顔色,實作各種顔色的口紅實時渲染,基于OpenCV與Android NDK完成的算法示範。

算法的主要思路首先是通過人臉檢測尋找到人臉區域,一旦找到之後就會使用跟蹤算法對人臉部位進行跟蹤、人臉檢測算法可以選擇Face++或者OpenCV自帶的算法,然後對下部區域進行嘴唇檢測,找到之後,選擇不同光照下的嘴唇圖像,提取ROI如下:

基于OpenCV實作的Android移動端口紅AR

提取了超過1000張作為算法測試,根據這些提取得到上部唇形

基于OpenCV實作的Android移動端口紅AR

進一步處理之後得到下部唇形狀

對整個唇形資料處理之後得到

基本的命中率在99%左右,通過緩存等技術手段,達到實時不丢幀渲染,最終的渲染效果如下: 紅色簡單着色

基于OpenCV實作的Android移動端口紅AR

藍色簡單着色

基于OpenCV實作的Android移動端口紅AR

算法不足之處

渲染這塊後來因為各種原因,沒有去做,主要是沒有錢繼續下去,就成這個樣子!但是整個基于OpenCV實作的移動端AR口紅渲染整個實作步驟基本如此!

<b>歡迎大家留言!!!</b>

繼續閱讀