Cloud Video Intelligence と Cloud Vision API を使用したユーザー作成コンテンツのスキャン

このソリューションでは、Google Cloud Video IntelligenceGoogle Cloud Vision API を利用して画像と動画の送信をフィルタする、スケーラブルなシステムをデプロイするために使用される Google Cloud Platform(GCP)サービスについて説明します。

ソーシャル マーケティング キャンペーンでは、消費者が作成した画像や動画の提出を求めることがよくあります。ほとんどの場合、このようなキャンペーンでは、募集した動画や画像を一般公開されたキャンペーン ウェブサイトのコンテストへの投稿、商品の評価、またはユーザー作成コンテンツとして使用します。これらの大量の提出物を処理するには、かなりのリソースが必要となります。Cloud Video Intelligence と Cloud Vision API は、インテリジェントな画像と動画のフィルタリングを実装するスケーラブルかつサーバレスな方法を提供し、提出物の処理をスピードアップさせます。

概念

ユーザーが作成した画像や動画を処理するアプリケーションの構築には、いくつかの特有の課題があります。

  • スケーラビリティ

    キャンペーンの開始時に提出件数は急速に増加しますが、キャンペーンの終わりに近づくと提出件数はほぼゼロになります。このプロセスをサービスに組み込む場合は、ユーザーのアクティビティに応じてプロセスを増減する必要があります。

  • パフォーマンス

    それぞれの画像や動画を処理する、効率的でインテリジェントなフローが必要です。アプリケーションは提出された大量の各動画や画像を効率よく保存し、処理する必要があります。

  • インテリジェンス

    処理を行う前に、評価または審査を必要とする画像や動画の数を減らすと、効率が大幅にアップします。アプリケーションは各提出物を分類し、不適切と判断されたすべての提出物の処理を直ちに停止する必要があります。

アーキテクチャ

GCP を使用したスケーラブルかつインテリジェントな処理

GCP では、簡単な API 呼び出しを使用するトレーニング済みの機械学習(ML)モデルのメリットを活かした、スケーラブルなプラットフォームが提供されています。次の図は、画像や動画をインテリジェントに分類し、不適切な結果をフィルタで除外するシステムのアーキテクチャを示しています。

画像と動画処理のアーキテクチャ

クラウド ストレージ

このアーキテクチャでは、すべてのコンテンツが Google Cloud Storage に保存されるため、耐久性の高いスケーラブルなオブジェクト ストレージが提供されています。Cloud Storage の便利な機能の 1 つは、Cloud Storage バケット内のイベントに基づいて通知メッセージを生成する機能です。この機能では、アップロードされたファイルごとにアクションを指定できます。アプリケーションがファイルを Cloud Storage にアップロードすると、通知メッセージにより処理がトリガーされます。

次の図は、Cloud Storage 通知メッセージの JSON ペイロードを示しています。

Cloud Storage 通知メッセージの JSON ペイロード

Cloud Pub/Sub

Google Cloud Pub/Sub では、スケーラブルで信頼性の高いメッセージング サービスが提供されています。このアーキテクチャではコンテンツが Cloud Storage バケットにアップロードされると、システムで Cloud Pub/Sub 通知メッセージが生成され、設定された Cloud Pub/Sub トピックに送信されます。次に、Cloud Pub/Sub から Cloud Storage 通知メッセージが配信されます。アップロード機能を処理機能から切り離すことにより、Cloud Pub/Sub は実質的にアプリケーションをマイクロサービスベースのバックエンド アーキテクチャに分けています。

Cloud Functions

Google Cloud Functions では、Cloud Vision や Video Intelligence API などの高度な API と統合された、軽量のサーバレス アプリケーション環境が提供されています。さらに、Google BigQuery、Cloud Storage、Google Cloud SpannerGoogle Cloud Datastore などのストレージ サービスが Cloud Functions と統合されているため、オンデマンド イベントを処理するのに便利な方法です。

次の図は、intelligentcontentfileupload トピックに送信される各メッセージの GCStoPubSub Cloud Function をトリガーする Cloud Pub/Sub トピックを示しています。

Cloud Function をトリガーする Cloud Pub/Sub トピック

バックエンド

Cloud Pub/Sub トピックをリッスンする一連の Cloud Functions により、バックエンド処理が提供されます。

  1. ファイルが Cloud Storage バケットにアップロードされるたびに、Cloud Pub/Sub トピックでメッセージが受信されます。
  2. バックエンド アプリケーションは各通知メッセージからクラウド ストレージの場所を解析し、コンテンツが画像か動画かを判断します。
  3. バックエンド アプリケーションはファイルが画像か動画かに応じて、Cloud Vision または Cloud Video Intelligence API を呼び出す Cloud Functions のペアに Cloud Pub/Sub メッセージを送信します。
  4. バックエンド アプリケーションは API 呼び出し結果を使用し、ロゴ、ラベル、テキスト、セーフサーチの結果に基づいてコンテンツを分類します。

次の図は、各 Cloud Function で実行される処理手順を示しています。この例では結果は BigQuery に保存されますが、任意の GCP データ ストレージ サービスに結果を保存できます。

画像

フロントエンド

このアーキテクチャでは、画像と動画の処理結果は BigQuery に保存されます。GCP のスケーラブルな分析エンジンとして BigQuery では、ペタバイト サイズのデータベースへの簡単な SQL ベースのアクセスが提供されます。BigQuery では、アプリケーションに提出されたコンテンツのラベルを簡単かつスケーラブルに分析する方法が提供されます。

Google データスタジオには視覚的なダッシュボードがあり、機械学習 API で生成されたタグを使用して送信されたコンテンツをフィルタできます。このタグを使用すると、データスタジオのダッシュボード セット内のコンテンツを動的にフィルタできます。

次の図は、BigQuery のリアルタイム データを使用したシンプルなデータスタジオのダッシュボードを示しています。

シンプルなデータスタジオのダッシュボード

追加のコンテンツが処理されて BigQuery に保存されると、ダッシュボードに変更が反映されます。コンテンツ、ラベル、または不適切なコンテンツの数でダッシュボードをフィルタできます。

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...