1. 程式人生 > >【蜂口 | AI人工智慧】人臉年齡——龍鵬 深度學習與人臉影象應用連載(六)

【蜂口 | AI人工智慧】人臉年齡——龍鵬 深度學習與人臉影象應用連載(六)

[所有文章皆首發於蜂口知道公眾號,內容來源於蜂口小程式~請多關注瞭解]

hi,大家好,我是龍鵬。

這次接著上一篇繼續給大家分享人臉影象相關的應用。本次的分享是人臉年齡這個問題。

本次的分享將包含三個方面的內容。

首先,對人臉年齡這個問題做一個通用的介紹。人臉年齡實際上不僅僅是一個數值估計的問題,還包括它的表觀年齡與真實年齡以及人臉年齡的年齡段的估計的問題;

其次,對人臉年齡的研究方法做一個詳細的介紹。主要包括如何去建模一個人臉的年齡,然後人臉年齡研究方法,包括傳統方法與深度學習方法,各自是基於什麼樣的一個思路去解決這個問題。

最後,對人臉年齡的應用和它的難點做一個總結。

這是我們整體的一個分享思路。我們的分享會按照這個展開。

一、人臉年齡。所謂人臉年齡的估計,它實際上包含了很多種含義:

1)人臉年齡的估計問題,它可以分為表觀年齡的估計與真實年齡的估計問題。

真實年齡就是我們看到的人臉的影象,它的真實年齡是多少?而表觀年齡,就是我們看到一個人臉影象,它表現出來的年齡是多少?這兩者之間是有很大的區別的。

因為人臉年齡跟很多的因素有關係,跟他的生活環境、其他保養的狀況有關。有些女明星她可能年紀非常大,五六十歲,但是她保養起來,跟一些普通的人沒有保養的二三十歲一樣的年輕,表現出來的人臉影象的特徵是完全一樣的。由於存在這些因素,所以實際上我們平時所說的人臉年齡的估計問題其實說的是表觀年齡的估計問題。因為真實的年齡,實際上有時候我們人類專家都無法真實的判斷。

2)人臉年齡的估計,它還可以分為一個具體年齡的估計和年齡段的估計。

因為年齡的估計,它不是一個非常好量化的問題。29歲跟30歲實際上在影象上很難完全區分開來。所以有的研究是一個具體年齡段的估計問題。

比如說11歲到15歲、20歲到30歲這樣一個年齡段;有的也是需要估計出一個具體的年齡的問題,那麼估計一個具體的年齡問題,它的誤差一定會比估計年齡段的問題誤差大。

這裡所展示的就是一個具體年齡的估計問題,如下圖: 在這裡插入圖片描述 我們看到趙麗穎估計出來的年齡是23,但實際上她本身的年齡已經快接近30歲。展示的是一個具體年齡的估計,也是一個表觀年齡的估計。

我們再看下面這張圖: 在這裡插入圖片描述 它展示出來是一個年齡段的估計問題,也就是說對於這樣一張輸入圖片,我們並不估計它的具體的年齡,而是估計它究竟落在哪一個年齡段。

這就是人臉年齡的估計問題。人臉年齡,現在估計問題都有哪些研究方法,

我們首先講述一下關於人臉年齡相關的模型。人臉年齡包含了三個模型:

a)分類模型。也就是說我們可以把這個人臉的年齡的估計當做是一個分類的問題。那麼分類的問題它也可以分為兩類:單個年齡的分類和一個年齡段的分類。

首先,單個年齡的分類。因為我們平常的人的年齡資料的標註只會是一個整數一歲兩歲三歲十歲這樣的一個數字的標註,所以我們可以把它當做一個連續數列的一個分類問題。比如說從零歲到一百歲,那麼這就是一個101類的分類問題。

其次,根據我們標註的年齡段,我們也可以把它當做一個年齡段的分類問題,比如0到5歲是一類,6到10歲是一類。

分類問題是最簡單的一個模型。

b)迴歸模型。因為人臉的年齡是一個持續增長有序數列。雖然我們平常標註的資料不會出現1.5歲、2.5歲這樣一個分數的年齡,但實際上人是存在2.5歲、1.5歲這樣的年齡的。所以人的年齡天然就是一個迴歸的模型。

迴歸模型相對於分類模型來說,更加符合問題的定義,也會更加難一些,因為人臉迴歸模型就沒有年齡段這樣的一個問題了。

c)排序模型。排序模型就是當我們在估計一個人臉年齡的時候,我們不是直接用一個模型去迴歸一個數字,或者說把它分到某一個類,而是將這個影象與一個基準的年齡段去進行比較。通過與很多年齡段的比較,我們去估計一個比較合適的年齡。

為什麼需要這麼做?因為我們人天生就是很難判斷一個人的真實的年齡是多少,但是當我們給出一個基準的年齡的時候,我們會更加方便、更加容易判斷這個人的年齡是大於這個基準年齡還是小於這個基準年齡。

所以基於排序的模型,它實際上更符合人類平時判斷年齡的一個思維。

這就是人臉年齡的三個模型。這三個模型在學術界都有比較詳細的研究。

二、基於這些模型,我們從傳統方法和深度學習方法兩方面來給大家做一個介紹:

傳統的特徵主要包含這幾類特徵:人體測量學模型、柔性模型、表觀模型。

人體測量學模型特徵主要用的就是人體的輪廓;

柔性模型與人體測量學模型有相通之處,它可以看作是人體測量學模型的一個升級版。所謂柔性模型是基於人臉的輪廓的,它可以不斷地發生變形,柔性模型採用ASM模型來進行表徵。因為人的臉型在隨著年紀的增長也會發生一定的變化,所以柔性模型可以得到應用;

表觀模型,它的核心就是紋理特徵。因為人的臉上的紋理在隨著年齡增長過程中會發生比較大的變化。

傳統的方法就是通過這三類傳統的特徵,來進行人臉的表徵。但是又由於人臉年齡是一個比較複雜的問題,所以基於傳統的方法並不能比較好地解決人臉年齡的估計。

隨著深度學習的發展和大資料的發展,目前基本上所有的研究人臉年齡的方法都已經採用了深度學習,

深度學習的思路,如下圖: 在這裡插入圖片描述 這是一個典型的分類問題的深度學習的思路。它首先輸入一張圖,然後利用人臉檢測演算法,檢測到一個比較合適的角度,進行校正之後,我們把它送入深度學習模型,進行特徵的學習,到最後經過全連線層就得到了它的一個表徵向量。

這裡展示的是利用分類的演算法來進行人臉年齡的研究。由於標籤是0到100歲,所以這是一個101類的分類問題。

基於深度學習的方法,總體來說就是通過大資料來進行特徵的隱式的表達。

三、人臉年齡的估計可以有哪些應用?

首先,它可以用於安全控制。因為在很多的時候,比如說像共享單車這樣的一個場景的話,假如我們可以利用掃臉識別年齡,我們就可以控制多少歲以下的人不能進行共享單車的騎行。

其次,可以用於人臉檢索與識別。有了人臉年齡估計之後,我們可以利用年齡進行快速的人臉檢索與識別。

人臉年齡研究也面臨一些難點,這些難點主要包含兩個方面:

第一個方面是比較複雜的模式,因為人臉的年齡隨著遺傳生活環境以及人的保養情況會存在很大的差異。就是同一年齡段的人,他們表現出來的影象特徵也可能有著很大的差異性。

第二個方面是干擾多。目前由於美顏等演算法以及大家平時尤其是女性比較喜歡化妝,它會對人臉年齡的估計造成比較重大的干擾。

總的來說,我們平時所估計出來的年齡都是指的是表觀年齡,也就是說影象展示出來的。在通常意義上的那樣一張影象,它應該是對應什麼樣一個年齡階段。

這就是本次人臉年齡的分享內容。

感謝您的閱讀,更多精彩盡在蜂口小程式~瞭解一下? 獲取免費內容,歡迎V信fengkou-IT勾搭~