為了展現(xiàn)開發(fā)者在Azure的幫助下能輕松迅速地打造智能應(yīng)用,我們在Azure上用新發(fā)布的人臉識別APIs為2015年微軟開發(fā)者大會的第二天展示搭建了How-Old.net。借助人臉識別API這個網(wǎng)站可以分析用戶上傳的照片中人物的性別和年齡。這個API的人臉定位功能及性別識別功能大致準確,然而年齡預(yù)測結(jié)果并不是非常準確,但How-Old.net依舊能博得用戶一笑,制造諸多歡樂。當然,同大部分網(wǎng)站一樣,我們不會保留用戶上傳的照片,也不會分享這些照片,我們只會分析照片里人物的年齡和性別。
網(wǎng)站建成后,我們給數(shù)百名微軟員工發(fā)了郵件,邀請他們體驗這個網(wǎng)站并給出反饋。當時想著若有幾十個人來這個網(wǎng)站、為測試提供有用的數(shù)據(jù)就算不錯了。但三個小時后,我們的后臺分析圖表呈現(xiàn)出下圖態(tài)勢:

幾個小時里,How-Old.net收到了全球3萬5千用戶(其中大約2萬9千人來自土耳其,下圖顯示,推特上有大量來自土耳其的用戶提到了這個網(wǎng)頁)上傳的21萬多張相片。

這個網(wǎng)頁展示了用戶使用的實時信息。比如,我們曾預(yù)測用戶會用已經(jīng)存在于網(wǎng)絡(luò)的照片,或是使用頁面上的必應(yīng)圖片搜索欄;然而網(wǎng)站分析的照片中,超過一半的是用戶上傳的自己的照片。這些信息幫助我們改善用戶體驗,還有助于我們額外測試手機上傳照片。
那么這些是怎么實現(xiàn)的呢?
盡管難以置信,但兩位工程師只需幾個小時便把整套解決方案(從網(wǎng)頁到機器學(xué)習(xí)API到實時數(shù)據(jù)流分析再到實時BI)整合在一起。這很好地展示了Azure開發(fā)者的靈敏和創(chuàng)造力。這款應(yīng)用的關(guān)鍵功能在于以下三點:
識別圖片中人物性別及年齡
獲取上述數(shù)據(jù)的實時信息
生成實時分析圖表來顯示上述結(jié)果
識別性別及年齡
我們想用智能有趣的體驗吸引全球用戶。于是我們?yōu)g覽了微軟Azure機器學(xué)習(xí)展示廳。這個網(wǎng)頁里有個新套裝Project Oxford ,由必應(yīng)和微軟研究院打造,內(nèi)含大量面部、語言和視覺方面的服務(wù)。我們用到的臉部識別API有個樣品頁,該頁面可以檢測到臉部并提取出相關(guān)信息。我們覺得這個API的年齡及性別識別功能很有趣,所以選了這個方面作為我們的項目。為了讓用戶體驗更加有意思,我們還加上了Azure市場里的必應(yīng)搜索API,最終建成了 http://how-old.net。

除了年齡和性別,我們還用上了其他普通瀏覽器提供的信息,比如伴隨著每個標準HTTP呼叫而來的用戶代理字符串,以及照片上傳地的經(jīng)緯度。這些信息可用來計算很多網(wǎng)站使用數(shù)據(jù),比如通過iPhone、Windows或安卓登錄的數(shù)量,How-old.net最受歡迎的地區(qū)。這點體現(xiàn)在下列JSON文件中:

實時信息
為了知曉How-Old.net實時數(shù)據(jù)的模式,我們引入了一套新的微軟Azure數(shù)據(jù)流服務(wù)。
我們用Azure事件中心導(dǎo)入數(shù)據(jù)。用戶上傳照片時,事件中心API會從網(wǎng)頁生成ASON文件。注意,在此過程中,我們不會保留照片及任何指向用戶的信息(用戶無需電郵,不用登錄,也沒有用戶名)。只有JSON文件流向Azure事件中心。
然后,我們需要數(shù)據(jù)流服務(wù)來實時整合處理用戶們上傳的上萬張照片。這里我們用到了高吞吐低延遲的全托管解決方案Azure流分析(ASA)。ASA讓用戶能用類似SQL的語言,輕松處理數(shù)據(jù)流。

比如,只用輸入下列命令,你就能從一個十秒窗口得出“性別”的計數(shù),而且結(jié)果每秒都會更新。


