【蜂口 | AI人工智慧】關鍵點檢測——龍鵬 深度學習與人臉影像應用連載(三)
Hi,我是龍鵬。這次我將給大家帶來關鍵點檢測的分享。
本次分享主要回顧一下關鍵點檢測演算法,包括傳統方法和深度學習的方法。將包含以下幾個方面的內容:
1)我們會簡單的講述一下關鍵點是什麼,以及它的一個發展的簡史,
2)我們對傳統方法做一個簡單的瞭解,主要包括ASM,AAM等模型。
3)我們講一下深度學習的思路。深度學習的思路將包含迴歸網路的講述以及多尺度,多工的學習等相關的內容。
4)對人臉關鍵點檢測的應用以及它的發展趨勢做一個總結。
下面開始我們第一部分的分享:人臉關鍵點
所謂關鍵點它到底是什麼呢?下面是我們的一個關鍵點的影像 。
我們從這裡可以看出來,所謂人臉的關鍵點就是我們人臉中從眉毛到眼睛到鼻子到嘴唇,到人臉的輪廓,這樣一些特徵區域的外部的輪廓點。基於這些點,我們就能完整地描述一個人臉的一個影像,我們把它對應到我們人臉的一個影像上面去就可以看到,有了關鍵點之後,他就是人臉形狀的一個稀疏的表達,如下圖:
人臉關鍵點它這樣的一個特徵向量,實現了畫素到語義級別的轉換。也就是說我們之前理解人臉,只能理解是一個一個的RGB畫素。當我們有了關鍵點之後,關鍵點的一個向量就是我們人臉的一個形狀的表達,我們就可以利用關鍵點來對人臉做一些簡單的一些區分和分類。
人臉關鍵點檢測經歷了20多年的發展,最先開始是使用ASM這樣一個主動形狀模型。隨後對ASM主動模型進行了改進,得到了主動外觀模型。經過了十年的發展,ASM這樣的一個系列最終發展到了CLM這樣的一個方法,它是一個帶區域性約束的ASM模型。隨後cascaded Regression這樣的一個思路被引進到關鍵點的檢測。直到近幾年深度學習開始被廣泛應用於人臉關鍵點的檢測。
到現在幾乎所有的方法都是使用深度學習來進行人臉的關鍵點檢測,因為深度學習用於人臉關鍵點檢測,它的檢測精度已經遠遠超過了傳統的方法。傳統的方法在自然環境下已經無法滿足關鍵點檢測這樣的需求。
下面我們開始分別對傳統方法和深度學習的方法進行簡單的介紹:
一、傳統模型:
以ASM方法和AMM方法作為代表。它的基本思路是這樣:
首先,利用形狀向量來描述訓練集人臉的形狀。所謂形狀向量就是我們前面提到的關鍵點的座標的串聯,
然後,因為人臉有各種各樣的姿態,所以我們要對這些人臉的形狀進行一個對齊,對齊之後我們可以利用PCA等方法進行統計的特徵建模。
接下來,當我們有一張新的測試影像的時候,我們就用我們前面建立好的一個區域性紋理模型,在新的人臉的影像區域上去搜尋,滿足我們這樣的統計描述的就是特徵點,從而定位到這些影像特徵點。
最後因為區域性紋理模型可能會受到一些初始化、一些光照等的干擾,會有點不穩定,所以我們會採用全域性的統計模型對形狀來進行修正,保證它在可控的可變的範圍內。
以上就是ASM方法的一個整體流程。
而AAM方法,它就是將ASM的區域性紋理模型擴充為了全域性紋理模型。
總結來說這兩個方法,AAM方法是ASM方法的一個改進,它的檢測精度相對來說更高,但是它的速度也會相比更慢。
傳統的模型進行關鍵點檢測,它的核心的思想就是利用了全域性的形狀,加全域性的紋理或者區域性的紋理來進行融合。
下面對我們的傳統模型進行一個簡短的總結。
1)它的速度比較快,實時性比較強。
2)它是一個引數化的可變模型。因為人臉是一個柔性模型,我們前面已經給大家進行過講述,利用這樣的一個引數化的可變模型,方便對人臉特徵點進行跟蹤。
3)它的速度和精度都比較依賴於初始的形狀。如果初始的形狀非常不好的話,它有可能會搜尋失敗。
4)它受噪聲和光照等干擾比較嚴重。因為它是依賴於傳統的紋理特徵。
傳統方法的後續研究主要包括CLM方法以及NPD方法。目前在傳統方法中,NPD方法是一個比較具有代表性,效能比較具有優勢的方法,大家可以線下去做更多的瞭解,我們這裡就不再做詳細的介紹。
二、我們開始對深度學習的思路進行講述。
深度學習的思路,主要我們會分析兩個方面。
1)級聯迴歸的定位框架。
我們會介紹一下DCNN框架,它是第一個用cnn來進行關鍵點檢測的框架。
這是DCNN的一個模型圖。我們可以看到DCNN這個框架總共包含三個模組,這三個模組分別包含了許多的卷積。level 1 這樣的模組,總共包含了三個卷積,level 2和level 3都是包含了十個卷積。
DCNN這個框架他只檢測人臉的五個關鍵點,包括兩個眼睛中心點,鼻尖以及兩個嘴巴,以及嘴巴的兩個關鍵點。
我們看level 1這個框架它總共包含了三個網路,level 2和level 3模組總共包含了十個網路,其中每一個特徵點它都使用了兩個網路來進行迴歸。
實際上DCNN它這個框架也是一個級聯的cnn的思想,它也實現了從粗到精的檢測。
level 1這樣的一個模組,它會使用解析度比較大的影像去進行人臉的關鍵點的檢測。level 2跟level 3會使用解析度更小的一個輸入來進行關鍵點的定位。
這次我們可以看到基於多解析度的一個級聯的思想,在人臉檢測和人臉關鍵點檢測中都已經被非常廣泛地使用。
2)我們會介紹一個多工學習的框架。因為多工學習目前在人臉檢測和關鍵點檢測是一個主流的思路。這裡我們會介紹一下MTCNN框架。
MTCNN方法,它總共包含了三個階段,分別是P-net,R-net和O-net。
上圖是三個模組的網路結構圖。我們可以看到,與前面介紹的級聯框架的人臉檢測方法非常類似,它也包含了三個解析度不同的網路。P-net是一個12×12的影像輸入,R-net是一個24×24的影像輸入。O-net是一個48×48的影像輸入,它也實現了從粗到精的這樣的一個思想。
同時,P-net,R-net,O-net他們三個,每一個模組,它們都包含了三個不同的網路。這三個不同的網路就是分別處理人臉的分類,邊框的迴歸以及關鍵點的定位。
在MTCNN方法中,它對難樣本做了一些技巧上的處理。不同於以往,我們選擇難樣本可能是線上下做訓練的時候去手動的去進行分類。
MTCNN它使用了線上的學習,它透過自動挑選每一次進行訓練的時候,其中損失較大的一些樣本作為難樣本去進行學習,而簡單的樣本不進行學習。
MTCNN它對損失函式做了一些處理,因為有很多的影像,它沒有人臉,它不需要進行人臉分類的損失。MTCNN它這個網路定義的LOSS,它可以自適應不同的影像輸入。
下面我們對基於深度學習的方法做一個總結:
首先,我們看看這些關鍵點的應用。它的應用非常的廣泛,包含人臉的跟蹤,人臉的編輯,美容美妝以及三維人臉重建。
我們看上邊這樣一個圖,它實現的是人臉的編輯功能,也就是實現了兩張人臉影像的融合。它的基本流程就是我們要分別檢測到兩張人臉的上的關鍵點,然後我們利用關鍵點來進行變形,最後進行紋理的融合。
再看一個與美容有關的圖:
利用關鍵點我們可以得到人臉的不同的區域,得到了人臉的不同的區域之後,我們對不同的區域進行分割槽的美顏的操作。因為人臉的皮膚的美顏與嘴唇的美顏、人臉面部的美顏與嘴唇區域的美顏,肯定是要採用不同的方法,這樣能夠更加精細,更加個性化。
當我們在美顏的時候,我們希望皮膚光滑,但是我們仍然希望能夠保留眉毛眼睛等地方的邊緣的清晰。
接下來是一個三維人臉重建的示意圖:
人臉關鍵點的檢測,對於三維人臉重建也是一個比較關鍵的步驟。
最早期的人臉三維重建的方法,就是透過檢測到2D影像上的一個關鍵點,然後利用關鍵點來進行人臉的重建。
最後我們對人臉關鍵點檢測的趨勢,給大家做一個介紹。
1)關鍵點不斷增加。前面我們分享的第一個用CNN進行關鍵點檢測的模型,它只使用了五個關鍵點,而現在在我們工業界的應用中,關鍵點已經從五個增長到21個,29個,68個,96個,192個,甚至傳聞有公司已經超過了200個關鍵點。關鍵點越多,我們就可以利用關鍵點做越精細的一些操作。
2)是大姿態的關鍵點檢測。因為對於很多大姿態的人臉,尤其是側臉,我們是無法檢測到關鍵點的,因為關鍵點本身是缺失的。但是我們有時候又需要關鍵點的資訊,這個時候就可以利用3D的人臉檢測、3D的人臉重建這樣的一個思想來進行關鍵點的檢測與補全。
關於人臉關鍵點的檢測分享,主要內容就到此為止。人臉關鍵點仍然是一個非常具有挑戰性的問題,大家可以線下去做更多的瞭解。
免費領取技術大咖分享課,加蜂口V信: fengkou-IT
感謝您的閱讀,更多精彩請持續關注蜂口微信小程式!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31553577/viewspace-2215276/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【蜂口 | AI人工智慧】人臉檢測(上)——龍鵬 深度學習與人臉影像應用連載(一)AI人工智慧深度學習
- 【蜂口 | AI人工智慧】人臉年齡——龍鵬 深度學習與人臉影像應用連載(六)AI人工智慧深度學習
- 【蜂口 | AI人工智慧】人臉顏值——龍鵬 深度學習與人臉影像應用連載(五)AI人工智慧深度學習
- 【蜂口 | AI人工智慧】表情識別——龍鵬 深度學習與人臉影像應用連載(七)AI人工智慧深度學習
- 龍鵬 ——《深度學習與人臉影像應用》預告篇*專案整體介紹深度學習
- 【蜂口 | AI人工智慧】影像分割的關鍵技術——龍鵬的一站式caffe工程實踐連載(五)AI人工智慧
- 【蜂口 | AI人工智慧】影像分割要點梳理——龍鵬的一站式caffe工程實踐連載(九)AI人工智慧
- 【蜂口 | AI人工智慧】模型測試——龍鵬的一站式caffe工程實踐連載(八)AI人工智慧模型
- 【蜂口 | AI人工智慧】caffe框架的使用——龍鵬的一站式caffe工程實踐連載(三)AI人工智慧框架
- iOS 人臉關鍵點檢測iOS
- 【蜂口 | AI人工智慧】模型選擇與設計——龍鵬的一站式caffe工程實踐連載(六)AI人工智慧模型
- 【蜂口 | AI人工智慧】caffe模型訓練——龍鵬的一站式caffe工程實踐連載(七)AI人工智慧模型
- 【蜂口 | AI人工智慧】caffe新增新網路層——龍鵬的一站式caffe工程實踐連載(四)AI人工智慧
- 【蜂口 | AI人工智慧】搭建caffe依賴環境——龍鵬的一站式caffe工程實踐連載(一)AI人工智慧
- 【蜂口 | AI人工智慧】資料準備的完整過程——龍鵬的一站式caffe工程實踐連載(二)AI人工智慧
- 人臉活體檢測人臉識別:眨眼+張口
- faced:基於深度學習的CPU實時人臉檢測深度學習
- [計算機視覺]人臉應用:人臉檢測、人臉對比、五官檢測、眨眼檢測、活體檢測、疲勞檢測計算機視覺
- 夸克APP端智慧:文件關鍵點檢測實踐與應用APP
- [深度學習]人臉檢測-Tensorflow2.x keras程式碼實現深度學習Keras
- MTCNN人臉檢測與校準(5特徵點)CNN特徵
- 深度學習之影像目標檢測速覽深度學習
- 寫給程式設計師的機器學習入門 (十二) - 臉部關鍵點檢測程式設計師機器學習
- 美圖影像實驗室10000 點人臉關鍵點技術全解讀
- 如何在五分鐘內搭建人臉檢測/關鍵點識別等服務?
- 【火爐煉AI】機器學習048-Harris檢測影像角點AI機器學習
- opencv關鍵點檢測OpenCV
- 用 PHP 與深度學習模型進行物體檢測PHP深度學習模型
- 視訊人臉檢測——OpenCV版(三)OpenCV
- 人臉檢測識別,人臉檢測,人臉識別,離線檢測,C#原始碼C#原始碼
- 揭祕美圖影像實驗室MTlab的10000點人臉關鍵點技術
- 「每週CV論文推薦」 深度學習人臉檢測入門必讀文章深度學習
- 用深度學習進行欺詐檢測深度學習
- 人臉檢測 二
- PFLD:簡單高效的實用人臉關鍵點檢測演算法演算法
- 計算機視覺與深度學習應用關係計算機視覺深度學習
- 深度學習技術在網路入侵檢測中的應用深度學習
- AR人臉106240點位檢測解決方案