Google Video Intelligence 學習筆記
除了前面所述 Google Cloud vision,透過靜態照片來由Google Cloud Vision AI 來辨識之外,Google另一項影像辨識功能,即透過影片(video) 來進行影像辨識。
在這篇有介紹如何進行Google Video Intelligence 的 快速入門。
在這篇的範例,需要先安裝Google Cloud SDK,再請先安裝。
開啟一個專案
- 在Google Cloud Platform 內,先建立一個新的專案。
- 到 API 管理介面,啟用 Google Video Intelligence API
- 然後在 API 管理介面內,點選「憑證」,建立API 金鑰,它會跳出一個視窗,告訴你在使用此API 時,用 key=API_KEY 來傳送金鑰,所以記得要先把你的API 金鑰剪下來,貼在你的文字檔裡。如下圖:
設定授權
在你安裝好 Google Cloud SDK 後,在其目錄下就會有 cloud 這支程式:
- 建立一個服務帳號,叫 quickstart:
gcloud iam service-accounts create quickstart
- 建立 service account key file,其中your-project-123 是你剛才建立的專案名稱全名(即加上 - 後面的數字串):
- 授權給你的service account,並把你的service account key file 位置傳送過去
- 取得授權,並將它顯示在螢幕上:
gcloud auth print-access-token
gcloud iam service-accounts keys create key.json \ --iam-account quickstart@your-project-123.iam.gserviceaccount.com
gcloud auth activate-service-account --key-file key.json
你會看到程式大概五秒之後會顯示一長串亂碼,那其實就是你的key,也就是上面圖示顯示的那塊。
進行 Video 辨識請求
- 用文字編輯器,將下列文字copy 到你的文字檔裡,用來產生一個 JSON 要求檔,就叫 request.json。但要記得,將你的檔案copy 到你的 google cloud storage 內。目前google video intelligence 只支援將影片上傳到其google cloud storage 內做辨識,並不支援其他任何方式(如 streaming)。像下面的範例就是在cloud storage 建立一個 video 目錄,再把 chicago.mp4 上傳到這個video 目錄下。
- 利用 curl 指令來產生影像辨識要求 (videos:annotate),將下方的 ACCESS_TOKEN h利用剛才印出的那一長串亂碼(即access token) 取代,其餘照抄(下面這指令全在同一行內, \表連續行):
- 這時Google 已經開始在分析你的影片,你可以傳遞operation name 並透過
v1.operations來取得分析結果:
{
"inputUri":"gs://cloud-ml-sandbox/video/chicago.mp4",
"features": [
"LABEL_DETECTION"
]
}
curl -s -k -H 'Content-Type: application/json' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
'https://videointelligence.googleapis.com/v1beta1/videos:annotate' \
-d @request.json
Video intelligence API 會產生一個 operation 以處理你的辨識要求。上述指令下完會,會顯示它產生的 operation name:
{
"name": "us-west-18358601230245040268"
}
curl -s -k -H 'Content-Type: application/json' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
'https://videointelligence.googleapis.com/v1/operations/OPERATION_NAME'
你會看到Google 回應你分析的結果,如果分析尚未完成,那在 done 這個值會是 false:{
"name": "OPERATION_NAME",
"metadata": {
"@type": "type.googleapis.com/google.cloud.videointelligence.v1beta1.Annota
tionProgressMetadata",
"progressMetadata": [
{
"inputUri": "gs://cloud-ml-sandbox/video/chicago.mp4",
"progressPercent": 0,
"startTime": "2016-09-22T21:41:56.766091Z",
"lastUpdateTime": "2016-09-22T21:42:03.889743Z"
}
]
},
"done": false,
...
}
結論
基本上Google Video intelligence 可以辨識出的物件仍然有限,尤其影片不清楚時,所以它的信心值都不高。它目前可以做物件分析,臉部分析,標題分析和場景變換的辨認。它可以用來判斷你的影片內出現了那些東西,但無法很精確地辨識出人臉或(誰)出現在影片裡。但Apple 的 照片 程式可以將類似的人臉整合成一個群組,再給人類進行更正確的判斷是否為同一個人。我想,應該要做到這樣的程度才夠吧。而且,影片還要上傳到google storage才能辨識,還不夠方便。不過,Google 也強調,這是beta,還沒算正試的服務,就玩玩看囉。
