輕鬆幫你的應用程式加入人工智慧: 使用 Project Oxford

Project Oxford 是微軟推出的一套針對視覺、聲音及文字相關辨識的 Web Services,所以不論你是撰寫什麼樣的應用程式,都可以透過 web request 的方式呼叫 Project Oxford 提供 RESTful APIs 來認識你取得的資料。

在 Project Oxford 的首頁上列出了目前所有的提供的 APIs,這些 API 的背後都是基於微軟的人工智慧、機器學習等的智慧平台所建構出來(例如:Azure Machine Learning),但是使用這些 APIs 你不必擁有太多人工智慧的知識或技能,只要會呼叫 RESTful API 還有解析 JSON 格式的資料就可以了。舉例來說,如果你想要判斷一張人臉照片裡這個人的表情是代表什麼情緒,那就可以參考其中的 Emotion APIs 來操作。

使用 Project Oxford 判斷情緒的範例

取得 API Key

呼叫 Project Oxford 的服務都需要 API Key,只要在 Project Oxford 的首頁用 Microsoft 帳號登入後,就可以取得這些 API 免費使用的額度(因為目前這些 API 還在預覽階段,所以還沒有付費購買),每一個 Project Oxford 的 API 都有各自的 API Key。

所以之後要呼叫 API 時要選對 API Key 來進行呼叫。

呼叫 Emotion API 判斷情緒

有了 API Key 之後,就可以準備來呼叫 Emotion API 來偵測照片中人臉的情緒,使用的方式也是參考 Emotion APIs 的 API 參考文件,把照片傳入 API,Emotion API 會根據背後的智慧模型計算出這張臉的情緒,回傳的資料也是 JSON 格式的資料像是這樣:

 [
  {
    "faceRectangle": {
      "left": 68,
      "top": 97,
      "width": 64,
      "height": 97
    },
    "scores": {
      "anger": 0.00300731952,
      "contempt": 5.14648448E-08,
      "disgust": 9.180124E-06,
      "fear": 0.0001912825,
      "happiness": 0.9875571,
      "neutral": 0.0009861537,
      "sadness": 1.889955E-05,
      "surprise": 0.008229999
    }
  }
]

回傳的資料主要是一個陣列,因為一張照片可能有不只一張臉,每一張臉就會是一個 JSON 物件,faceRectangle 抓到的是臉部的位置,而 scores 則是這張臉譜的每一種情緒的比重,你可以全部列出來,或是只挑出最顯著的幾種情緒來進行判斷或顯示。

參考資料

原始文章發佈於「開發者之魂」部落格