*

CLOUD VIDEO INTELLIGENCE APIのデモがあったので早速試してみた

公開日: : 投稿者: 機械学習

動画の機械学習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」には、GCS上の動画ファイルのパスが指定されています。
「features」には、認識する対象を設定しているようで、「LABEL_DETECTION」で物体認識を、「SHOT_CHANGE_DETECTION」でシーンの切り替わりを認識しているようです。
公式ドキュメントがまだ無いのであくまで予測ですが。

次はレスポンスですが、たった2分52秒の動画ファイルで、APIからは軽く2000行を超える大量なものが返ってきました。
さすがに長過ぎるので、重要そうなところを少しかいつまんで見てみましょう。

まずは物体認識結果と思われる部分からです。

物体認識結果のプロパティ一覧です。

プロパティ名 プロパティの意味
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」と「endTimeOffset」があり、で1シーンあたりの開始と終了を表しているようですね。

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カメラを使って顔検知をやってみた

機械学習についてのお問い合わせはお気軽にクラウドエースまで!

関連記事

Googleの機械学習サービス、Vision APIでWebカメラを使って顔検知をやってみた

最近ではAlphaGoの目覚ましい活躍などで「機械学習」という単語が世間をたびたび賑わせています

記事を読む

TensorFlowによる機械学習解説シリーズ -その1 TensorFlowの始め方-

コンピュータ囲碁プログラム「AlphaGo」が韓国のプロ棋士に4勝1敗で勝ち越したことで、最近ではよ

記事を読む

機械学習最前線!Cloud Machine Learning を始めてみた!

最近、機械学習・深層学習というワードをよく耳にするようになりましたね。機械学習は知っているけど、

記事を読む

PAGE TOP ↑