目次
動画の機械学習API「Cloud Video Intelligence API」が発表!
Googleがとうとう動画に対しての機械学習API「Cloud Video Intelligence API」を発表しました。
このAPIは動画ファイルを入力することで、動画内のシーンの切れ目や時間帯ごとのシーンやそこに映っている物体の認識をしてくれます。このポイントはGoogleが膨大なYoutubeのデータを使って学習させた機械学習モデルを利用しています。機械学習のはデータが命なので、この優位性を持って学習されたモデルを利用出来るメリットは素晴らしいものがあります。
まだ、正式にはリリースされておらず、Private Betaとなっているため、実際に自分のGCP環境で試す場合には下記のページから申請が必要になります。
https://cloud.google.com/video-intelligence/
今回は公式ページにあるデモを試してみたいと思います。
早速Cloud Video APIのデモを試してみよう
デモは公式ページ内にありますので、下記URLにアクセスして下さい。
https://cloud.google.com/video-intelligence/#demo
動画ファイルの指定と実行
GCS上にある動画ファイルのパスを指定し、「ANNOTATE VIDEO」ボタンをクリックすると、動画ファイルの認識が開始されます。
ちなみに、今回私がサンプルとして用意した動画ファイルの内容は、冬の景色をまとめたものになっています。なので、予想としては雪や冬を連想する単語が認識されると思います。
では、「ANNOTATE VIDEO」ボタンをクリックし、認識結果を確認してみましょう。
認識結果:Labelsの確認
認識結果:Labelsタブでは、動画ファイル全体で見た時に認識されたものが多い6件が「Video Labels」に表示されているように思えます。
Winter、Snowといった単語が上位に認識されていますので、予想通りの結果になったようですね。
また、動画ファイルのサイズは46.51MBで、長さは2分52秒でしたが、動画の認識結果が「Video Labels」に表示されるまでに約33秒かかりました。このケースでは実尺よりと比べると4分の1位の速度で処理されているようです。動画のエンコード処理等と比べると随分高速なイメージです。
認識結果:Shots
認識結果:Shotsでは、「Shot Changes」でシーン数と、シークバーでシーンの切り替わり部分が分かるようになっています。
また、「Shot Lables」では現在のシーンの物体認識結果が表示されています。
認識結果:API
認識結果:APIでは、「Cloud Video Intelligence API」へのリクエストボディとレスポンスが確認できます。
リクエストボディは、
{
"inputUri": "gs://xxxxxxxxx/xxxxxxxx.mp4",
"features": [
"LABEL_DETECTION",
"SHOT_CHANGE_DETECTION"
]
}
「inputUri」には、GCS上の動画ファイルのパスが指定されています。
「features」には、認識する対象を設定しているようで、「LABEL_DETECTION」で物体認識を、「SHOT_CHANGE_DETECTION」でシーンの切り替わりを認識しているようです。
公式ドキュメントがまだ無いのであくまで予測ですが。
次はレスポンスですが、たった2分52秒の動画ファイルで、APIからは軽く2000行を超える大量なものが返ってきました。
さすがに長過ぎるので、重要そうなところを少しかいつまんで見てみましょう。
まずは物体認識結果と思われる部分からです。
"labelAnnotations": [
{
"description": "Aerial photography",
"languageCode": "en-us",
"locations": [
{
"segment": {
"startTimeOffset": "47639975",
"endTimeOffset": "51840016"
},
"confidence": 0.7867751,
"level": "SHOT_LEVEL"
},
{
"segment": {
"startTimeOffset": "68240042",
"endTimeOffset": "75919978"
},
"confidence": 0.88369185,
"level": "SHOT_LEVEL"
}
]
}
プロパティ名 | プロパティの意味 |
---|---|
labelAnnotations[] | 物体認識結果の一覧です。 |
labelAnnotations[].description | 物体認識結果です。 |
labelAnnotations[].languageCode | 言語コードのようですが、何に対しての言語コードなのかまでは分かりませんね。ドキュメントが出てくるのを期待しましょう。 |
labelAnnotations[].locations[] | 物体認識結果の表示シーンの一覧のようです。 |
labelAnnotations[].locations[].segment | 物体認識結果の動画内での表示の開始時間と終了時間の情報を持ちます。 |
labelAnnotations[].locations[] .segment.startTimeOffset | 物体認識結果の動画内での表示の開始時間です。 |
labelAnnotations[].locations[] .segment.endTimeOffset | 物体認識結果の動画内での表示の終了時間です。 |
labelAnnotations[].locations[].confidence | 物体認識結果の精度と思われます。 |
labelAnnotations[].locations[].level | segmentに対しての単位だと思いますが、ドキュメントが無いため、何に対してのlevelを表すのか、分かりません。 |
※ドキュメントが無いので間違いがあればご指摘ください。
次はシーン認識の結果を見てみましょう。
"shotAnnotations": [
{
"startTimeOffset": "1600040",
"endTimeOffset": "13999966"
},
]
Cloud Video Intelligence API使ってみたまとめ
「Cloud Video Intelligence API」を使ってみましたが、Vision APIと同様に思った以上に精度が非常に高いものだったと思います。
この精度であれば、動画の自動でのカテゴリ分けやタグ付けができるようになるのでは無いでしょうか。
今はPrivate Betaのためドキュメントもない状態ですので、今後、申請の承認が下りたら真っ先にいろいろと試してみたいと思います。
「Cloud Video Intelligence API」が追加されたことにより、Googleが自分たちで蓄積した膨大なデータを使用して学習させた学習モデルを提供するAPIは画像認識(Vision API)、音声認識(Speech API)、翻訳(Translate API)、自然言語(Natural Language API)、動画認識(Video API)の5つになりました。
やはり機械学習の分野においてはデータ量が命となるため、今後ますますGoogleが牽引していくと思われます。
apps-gcpでは、これまでに下記のような初心者向けの内容の機会学習系の記事を掲載しています。ぜひ、読んでみてください!
機械学習最前線!Cloud Machine Learning を始めてみた!
TensorFlowによる機械学習解説シリーズ -その1 TensorFlowの始め方-
Googleの機械学習サービス、Vision APIでWebカメラを使って顔検知をやってみた
機械学習についてのお問い合わせはお気軽にクラウドエースまで!