ブロックリファレンス

BLOCKS Reference

機械学習

動画分析

概要

このブロックは、Cloud Video Intelligenceサービスopen_in_newを使って、Google Cloud Storage(GCS)上の動画を分析します。動画の分析結果は、[結果を格納する変数]プロパティで指定された変数に格納します。

warning 注意

セルフサービスプランの場合は、このブロックを使用する前に、Cloud Video Intelligence APIopen_in_newを有効にしてください。詳しくは、「基本操作ガイド>ヒント>Google APIを有効にする」を参照してください。

プロパティ

プロパティ名 説明
ブロック名

ブロックの名前を指定します。ブロックに表示されます。

GCPサービスアカウント

このブロックで使用するGCPサービスアカウントを選択します。

動画データのGCS上のURL

動画ファイルが格納されているGCS上のURLを指定します。

変数展開の指定が可能][%形式の文字列書式の指定が可能]
検知する情報

ビデオ内のどの情報を検知するかを指定します。指定できる情報は以下のとおりです(複数同時に指定可能)。

  • ビデオ内の犬、人間、花などのオブジェクトを検出
  • ビデオ内のシーン変化を検出
  • ビデオ内のアダルトコンテンツを検出
結果を格納する変数

動画の分析結果を格納する変数です。

格納される変数の内容については、「出力仕様>動画分析」を参照してください。

ブロックメモ

ブロックに対するコメントを指定します。

固定カメラで撮影した動画

固定カメラで撮影した動画か否かを指定します。

ラベル検出モード

ラベルの検出方法を指定します。指定できる方法は以下のいずれかです。

  • ショットレベルのラベル検出
  • フレームレベルのラベル検出
  • ショットレベルとフレームレベルの両方のラベルを検出

使用例

GCSにアップロードされた動画データを分析し、その結果をBigQueryテーブルに保存して、さらにGoogleスプレッドシートに出力するフローの例を以下に示します。

error_outline 情報

以下の使用例では、各ブロックのプロパティ設定について、デフォルト値をそのまま使用しているプロパティの説明は省略しています。明示的に値が指定されているプロパティは、デフォルト値から変更が必要な箇所です。

  1. フローの開始」ブロックでフローにIDを設定します。
    プロパティ名
    ID video-analysis-flow
    ブロック名 動画分析の使用例

    ID設定時に、GCSに動画データを配置したときにフローが実行されるように設定します。

    項目
    Google Cloud Storage(GCS)上にファイル/フォルダを配置したときにフローを実行する check_box
    GCSサービスアカウント デフォルトのGCSサービスアカウントを選択。複数ある場合は適切なものを選択してください。
    バケット アップロード先のGCSバケットを設定
    フォルダ名/ファイル名 block-reference-example/video-intelligence/*
  2. 「動画分析」ブロックで、GCS上の動画を解析します。
    プロパティ名
    動画データの GCS 上の URL ${gcs_path}
    検知する情報 check_boxビデオ内の犬、人間、花などのオブジェクトを検出
    check_boxビデオ内のシーン変化を検出
    check_boxビデオ内のアダルトコンテンツを検出

    動画データの分析結果は、変数_に格納されます。

  3. 変数からテーブルへロード」ブロックを使って、分析結果をBigQueryのテーブルにロードします。
    プロパティ名
    投入データの変数 _.annotationResults
    投入先のデータセット example
    投入先のテーブル video_analysis_results
    スキーマ設定 JSONで編集を使って、「動画分析ブロックの出力結果スキーマ定義ファイルopen_in_new」の内容を貼り付け
  4. クエリーの結果からスプレッドシートを作成」ブロックを使って、BigQueryテーブルの内容をGoogleスプレッドシートに出力します。
    プロパティ名
    ファイル名 動画分析の結果
    クエリー
    SELECT
      inputUri,
      entity.entityId AS entity_entityId,
      entity.description AS entity_description,
      entity.languageCode AS entity_languageCode,
      categoryEntity.entityId AS categoryEntity_entityId,
      categoryEntity.description AS categoryEntity_description,
      categoryEntity.languageCode AS categoryEntity_languageCode,
      segment.segment.startTimeOffset AS segment_startTimeOffset,
      segment.segment.endTimeOffset AS segment_endTimeOffset,
      segment.confidence AS segment_confidence,
      shot.startTimeOffset AS shot_startTimeOffset,
      shot.endTimeOffset AS shot_endTimeOffset,
      explicit_frame.timeOffset AS explicit_timeOffset,
      explicit_frame.pornographyLikelihood AS explicit_pornographyLikelihood
    FROM
      `example.video_analysis_results`,
      UNNEST(segmentLabelAnnotations) AS segmentLabelAnnotation
      LEFT JOIN UNNEST(segmentLabelAnnotation.categoryEntities) AS categoryEntity
      LEFT JOIN UNNEST(segmentLabelAnnotation.segments) AS segment
      LEFT JOIN UNNEST(shotAnnotations) AS shot
      LEFT JOIN UNNEST(explicitAnnotation.frames) AS explicit_frame         
    
  5. 全体のフローは、以下のようになります。
  6. これで、所定の場所に動画データを配置すると、フローが実行されます。以下は、Googleスプレッドシートの例です。
    (画像クリックで拡大表示)

warning 注意

なお、この使用例で示したプロパティの設定値はあくまで一例です。実際にフローを作成する際は、ご自身の環境に合わせてGCPサービスアカウントやバケット名、データセット名、テーブル名などを適切な値に変更してください。

この情報は役に立ちましたか?