
近日微軟推出了一個神奇的頁面——How-old.net,通過傳照片猜年齡迅速刷爆朋友圈。上線幾個小時,已經(jīng)測試了超21萬張圖片,由于推測存在不小誤差,不少名人都被“玩壞了”,微軟認(rèn)為同年的林志穎和郭德綱年齡差了一個吳奇隆。那么當(dāng)科技大佬們遇到“How-old” 會如何呢?
參考 Fun with ML, Stream Analytics and PowerBI,內(nèi)有詳細(xì)說明。

這個 demo 是我們 IMML 部門(Information Management and Machine Learning)做的,主要組件是:
1. Azure Machine Learning 平臺以及其 gallery 中的 face api。Microsoft Azure Machine Learning Gallery
2. 實(shí)時統(tǒng)計(jì)用的是 Azure Event Hub 和 Azure Stream Analytics,后者可以在前者的事件流上使用類 SQL 的語句來執(zhí)行一個 Near Realtime 的統(tǒng)計(jì),比如每 10 秒內(nèi)的訪問次數(shù)和結(jié)果分布。
其實(shí)本 demo 主要目的是展現(xiàn) ASA 以及 PowerBI 的實(shí)時統(tǒng)計(jì)展現(xiàn)能力,其中 ASA 剛剛 GA(general availability),Machine Learning 和 face detection api 是之前就已經(jīng)有的東西了,沒想到大家都關(guān)注人臉識別去了。
程序員們,你們只需要 1 天時間就可以建立類似的網(wǎng)站。利用微軟發(fā)布的 face detection api,只要幾下 rest api 調(diào)用就可以得到結(jié)果了。這里有很詳細(xì)的 how to 來教你如何調(diào)用這些 api:Microsoft Project Oxford How-to detect faces from an image。而且,識別年齡和性別只是一個小功能,這套 api 還包括識別兩張照片是不是同一個人,以及識別出某個具體的人等高級功能。
Age estimation via face.
1. Face detect,檢測圖片中人臉的位置,cascade adaboost 是最常用的方法。
2. Face alignment,圖像對準(zhǔn),確定一些關(guān)鍵的點(diǎn)的位置,比如眉毛,眼睛,鼻子,嘴角等,確定這些點(diǎn)之后可以確定人臉區(qū)域,傾斜的也可以。
3. Feature extract,有了 face region 之后,開始提取 feature,形狀 shape,紋理 texture,幾何 geometry 信息是最關(guān)鍵的 feature 了。
4. Train,有了大量 feature 數(shù)據(jù)以及對應(yīng)的年齡數(shù)據(jù),建立一個 model 開始訓(xùn)練。SVM, linear regression 等等。
5. Age estimation,新來一張圖片,獲取 feature,根據(jù) 4 獲取的訓(xùn)練參數(shù),估計(jì)年齡。
目前看到一些 paper 給出的 MAE(Mean absolute error)可以到 4-5 歲,但都是基于實(shí)驗(yàn)室數(shù)據(jù),微軟的也試了一下,variance 有點(diǎn)大。
微軟本來是為了宣傳云計(jì)算,估計(jì)年齡應(yīng)該只是一個噱頭。