日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人工智能 > pytorch >内容正文

pytorch

opencv 美白磨皮人脸检测

發(fā)布時(shí)間:2023/12/20 pytorch 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 opencv 美白磨皮人脸检测 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

人臉檢測(cè)與自動(dòng)磨皮

2016-06-10?

1.?簡(jiǎn)介

這學(xué)期的計(jì)算機(jī)視覺(jué)課,我們組的課程項(xiàng)目為“照片自動(dòng)美化”,其中我負(fù)責(zé)的模塊為人臉檢測(cè)與自動(dòng)磨皮。
功能為:用戶上傳一張照片,自動(dòng)檢測(cè)并定位出照片中的人臉,將照片中所有的人臉進(jìn)行“磨皮”處理,使照片得到自動(dòng)美化。
完整代碼見(jiàn)于GitHub。

2.?重要步驟

人臉檢測(cè)

OpenCV樣例庫(kù)中自帶的訓(xùn)練結(jié)果采用的是Viola-Jones框架,選擇了一種類(lèi)Haar矩形特征,采用Ada-Boost這種自適應(yīng)上升的算法來(lái)選擇用于分類(lèi)的特征并進(jìn)行分類(lèi),最后使用弱分類(lèi)器級(jí)聯(lián)的架構(gòu)來(lái)實(shí)現(xiàn)快速運(yùn)算。
人臉檢測(cè)使用了OpenCV自帶的訓(xùn)練結(jié)果,且在OpenCV自帶的樣例庫(kù)程序facedetect.cpp的基礎(chǔ)上修改而成,故不再放上此部分代碼。
計(jì)劃夏季學(xué)期中參考Kaggle上的人臉五官檢測(cè)項(xiàng)目,換成卷積神經(jīng)網(wǎng)絡(luò)重新訓(xùn)練人臉檢測(cè)模型,到時(shí)再更新此部分代碼。

磨皮算法

嘗試了多種濾波器之后,選用了PS教程《簡(jiǎn)單探討可牛影像軟件中具有膚質(zhì)保留功能的磨皮算法及其實(shí)現(xiàn)細(xì)節(jié)》中介紹的算法:

  • 對(duì)原圖層image進(jìn)行雙邊濾波,結(jié)果存入temp1圖層中。
  • 將temp1圖層減去原圖層image,將結(jié)果存入temp2圖層中。
  • 對(duì)temp2圖層進(jìn)行高斯濾波,結(jié)果存入temp3圖層中。
  • 以原圖層image為基色,以temp3圖層為混合色,將兩個(gè)圖層進(jìn)行線性光混合得到圖層temp4。
  • 考慮不透明度,修正上一步的結(jié)果,得到最終圖像dst。
  • 若用Opacity表示圖層4的不透明度,則5個(gè)步驟的綜合公式為:
    dst = (image * (100 - Opacity) + (image + 2 * GaussianBlur (bilateralFilter (image) - image + 128) - 256) * Opacity) /100 ;

    將該算法用OpenCV實(shí)現(xiàn)的代碼如下:

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Mat dst; int value1 = 3, value2 = 1; //磨皮程度與細(xì)節(jié)程度的確定 int dx = value1 * 5; //雙邊濾波參數(shù)之一 double fc = value1*12.5; //雙邊濾波參數(shù)之一 int p = 50; //透明度 Mat temp1, temp2, temp3, temp4; //雙邊濾波 bilateralFilter(image, temp1, dx, fc, fc); temp2 = (temp1 - image + 128); //高斯模糊 GaussianBlur(temp2, temp3, Size(2 * value2 - 1, 2 * value2 - 1), 0, 0); temp4 = image + 2 * temp3 - 255; dst = (image*(100 - p) + temp4*p) / 100; dst.copyTo(image);

    細(xì)節(jié)上的難點(diǎn)處理

    • 獲取識(shí)別結(jié)果:OpenCV人臉識(shí)別樣例中給出的識(shí)別結(jié)果為圓心和半徑,將其轉(zhuǎn)換成矩形區(qū)域便于定義興趣區(qū)域進(jìn)行濾波。
    • 矯正定位結(jié)果:為了實(shí)現(xiàn)不同長(zhǎng)短人臉的完全覆蓋,將矩形長(zhǎng)度擴(kuò)大至原來(lái)的1.3倍。
    • 魯棒性檢查:
      • 若上一步矯正后矩形區(qū)域超過(guò)圖片尺寸,則以圖片尺寸為上下邊界。
      • 若出現(xiàn)人臉不完整識(shí)別失敗的情況,則對(duì)整張圖片進(jìn)行磨皮操作。
    • 確定磨皮程度和細(xì)節(jié)程度參數(shù):經(jīng)過(guò)反復(fù)試驗(yàn),將磨皮程度value1:細(xì)節(jié)程度value2確定為3:1,并以此確定雙邊濾波的兩個(gè)參數(shù)dx和fc。

    3.?結(jié)果截圖

    • 正常樣例1

    • 正常樣例2

    • 特殊樣例1:人臉不完整導(dǎo)致無(wú)法檢測(cè)出人臉
    • 特殊樣例2:圖片中有多個(gè)人臉

    4.?結(jié)果分析

    • 使用了Viola-Jones檢測(cè)框架,能夠?qū)崿F(xiàn)較高的檢測(cè)精度,使檢測(cè)率和誤檢率分別保持在較高和較低的水平。
    • 磨皮算法效果較好,能夠較好地掩蓋人臉上的瑕疵,而且較大限度地保留細(xì)節(jié)、邊緣與質(zhì)感。
    • 在對(duì)人臉進(jìn)行定位時(shí),由于不同的人臉長(zhǎng)短不同,Viola-Jones檢測(cè)框架定位得到的結(jié)果不是很準(zhǔn)確,導(dǎo)致某張人臉不能完全包括,或另一張人臉包括范圍太大。在處理時(shí)采取了盡量選擇較大范圍的原則,在計(jì)算人臉矩形的長(zhǎng)度時(shí)統(tǒng)一將半徑擴(kuò)大至了1.3倍,這樣定位出的人臉區(qū)域不是很精確。
    • 下一步考慮使用基于HSV色彩空間的人臉?lè)指罘椒?#xff0c;將人臉準(zhǔn)確定位在一個(gè)非矩形的區(qū)域里,以得到更好的磨皮效果,避免“少磨”或“多磨”了部分區(qū)域。

    總結(jié)

    以上是生活随笔為你收集整理的opencv 美白磨皮人脸检测的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。