Custom vision 明星臉辨識

微軟的Azure Cognitive Service推出時,其產品經理突發奇想,請工程師寫了一個 How-old.net 網站並找了50個人來測水溫,想不到一下子就爆大量吸引了35000人次來訪這個網站,甚至晚間新聞就報出來了。
2017年真的是AI元年,全世界都動起來了,台灣微軟也利用了寒舍艾美酒店場地,在2017/11/23 舉辦了 Microsoft AI day。當天有一個讓全場超過六百個來賓為之驚豔的 demo,是應用Azure Custom Vision服務在 LV與Gucci名牌包的辨識,在本文中將會把它改成,應用影像辨識技術解決我對明星臉眼盲的問題。

源起:
美國普林斯頓大學自2007年發起了一個 ImageNet 專案,他們從網路上找了超過百萬張以上的照片,並且將照片整理過並標示(Tag)類型好,以作為電腦進行機器學習的素材。
而今十年過去了,隨著網路圖像的大量成長 ImageNet 也已經是全世界最大的圖像識別資料庫,丹佛大學也接棒,每年都會舉辦 ImageNet 圖像識別競賽,Google、微軟、Intel…這些世界級的大型企業,在競賽中除了爭奪名譽上的第一名,其實也在測試自家系統的效能與極限。
微軟在十年中有數次贏得了可貴的第一名,在大會指定的十萬張圖片考題中,目前最好的成績是,圖片分類項目的正確率可以高達 96.5%,圖片定位項目的準確率也高達 91%,
經過了大數據的淬鍊後,微軟的 Azure cognitive service,不僅只能辨別家中阿貓阿狗,生活中的路燈、吊橋、奔跑的人、游泳的人…等,都可以透過 Computer vsion 辨識後,回傳人類所需的分析資訊
若對其中的的技術細節有興趣,可以參考康乃爾大學的這篇論文 Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification,在網站中右上角有一個PDF下載的按鈕

承上,微軟在 Azure Cognitive Service 官網上雖然有提供免費的單次照片辨識,但是底層的模型都是 for general purpose 適用於普羅大眾,換句話說就是適合處理大哉問的問題。舉例來說,我將 Giorgio Armani義大利進口西裝照片上傳至Computer vision服務,它只能告訴你是西裝。但萬一我是經營一家當舖,光能辨識出西裝還不夠,我還需要區分出進口名牌、國內名牌、夜市…等級。


一旦需求很明確,要能建立一套能自行維護模型的Classifier分類器,我們就可以基礎於公司的戰略考量,選擇招募資料科學家人才,進行公司重要產品的研發專案,或是採用微軟的Azure Custom Vision Service進行企業應用的開發專案。


Azure Custom Vision Service究竟是怎麼樣市場定位的產品呢?還有它有什麼樣的限制?基本上,它就是針對有辨識需求的客群,在特定的應用範圍(目前已提供了一般用途、食物、地標、零售、成人內容…等五種)內,推出一個快速上手、不需自己管理機房維運的雲端服務。至於限制,它適合於影像辨識,而非物件辨識。在這邊影像指的是主體,比如說是一個人,穿著西裝,站在辨公室中。若是一天後,同一個在拍攝一張照片,這二張照片,一定會有細微的變化,這種就是物件辨識。
接下來,我打算要用一個分辨二個容易撞臉的女明星,分別是宋芸樺/夏于喬,來介紹Azure Custom Vision Service 這個擅長於影像分類的雲端服務。基礎於人工智慧需要大數據的支持,我們可能會需要數以百張的照片來協助這個分類器,它的辨識準確率才比較有把握,但是至少要多少張這裡先賣個關子。
最後,趕快空出你的手,一起來,讓我們快速地體驗一下,雲端世界的美好。

明星臉宋芸樺、夏于喬的辨識專案

  1. 環境準備
    首先,需要一個有效地Azure subscription雲端訂閱或是一個Azure AD ID,若沒有可以申請試用
     
  2. 建立專案
    打開瀏覽器 https://customvision.ai/
    官網中提到,微軟已經把辨識過程化繁為簡,只需三步曲,上傳/訓練/使用登入決定是否同意 Terms of service?點選建立專案
    輸入專案資訊
  3. 上傳照片
    需注意:支援的規格有 jpg/png/bmp,但相素要大於256 pixel,且檔案大小要小於4MB
    為了辨識率,建議至少要上傳 30張以上的圖片選擇你本機或網路磁碟機中的照片輸入欲標記的Tag名稱,並按下+號,在本例是宋芸樺最後按下 Upload files,等到照片上傳成功再依上述的步驟,上傳另一個明星照片檢視上傳結果
     
  4. 訓練模型
    在瀏覽器上方找到 Train的綠色按鈕按下去畫面會出現 Iteration1 第一輪的模型訓練系統會顯示訓練的結果,包含精確率 Precision 與召回率 Recall關於精確率Precision 與召回率 Recall的定義,可以參考下圖Wiki中的解釋
  5. 預測分析
    網頁上方找到 Quick Test(白色按鍵,字的前面還有打勾的那一個)選擇本機資料夾或是雲端空間,把照片上傳來分析我選擇了本機的照片,準備開始辨識辨識結果:宋芸樺85.8% (照片的下面會分別呈現二個類別,各自的分數)接著,再試夏于喬辨識結果:夏于喬88.2%
  6. 與應用程式結合
    我們在網頁上方找到 Performance 頁籤,就是剛才訓練模型的那個頁面
    在左邊可以找到一個 Probability Threshold 有一個機率的門檻值,這個參數可以用滑鼠拖拉來操作,預設值為 90%
    我們按下 Prediction URL按鈕(字前面有球體符號的那一個),右邊馬上會彈出如何呼叫這個 Web Service 的說明,只需把它加入你的程式或是網站即可

很簡單吧!趕快自己動手做一遍吧!

 

後記:

李秉錡 Christian Lee
Once worked at Microsoft Taiwan