OSS のデータインデックス機能を使用して、インターネットプロトコルカメラ (IPC) デバイスから取得した動画向けのインテリジェントなセマンティック検索システムを構築します。このシステムにより、収集した動画に対してセマンティック検索を実行でき、スマートセキュリティなどのシナリオに最適です。
IPC シナリオ - コンテンツ認識価格電卓 を使用して、本ソリューションで使用する AI コンテンツ認識機能の想定コストを試算できます。(Alibaba Cloud アカウントにログインしていない場合は、ログイン後に再度リンクをクリックしてください。)
ソリューション概要
インテリジェントなセマンティック検索システムの構築には、次の 2 つのステップが含まれます。
-
バケットの作成と動画のアップロード:IPC デバイスからの生動画ファイルを保存するためのバケットを作成します。その後、処理対象の動画をアップロードします。これらの動画は、検索のソースデータとなります。
-
AISearch 機能の有効化:バケットに対して AISearch 機能を有効化します。これにより、自然言語による記述を用いたインテリジェント検索が可能になります。
ソリューションのメリット
-
セマンティック検索:自然言語による記述や複数の条件を用いた高精度な検索が可能です。複雑なシナリオにおいても、特定のビデオフレームを迅速に特定できます。
-
マルチモーダル検索:動画、画像、テキストなどさまざまなデータの型に対して、統一された管理および検索機能を提供します。これにより、技術的な複雑さや運用・保守 (O&M) コストを削減できます。
-
水平方向へのスケーリング:OSS は無制限の容量とスケーラビリティを提供します。そのため、大規模なデータ増加にも容易に対応できます。
1. バケットの作成と動画のアップロード
-
OSS コンソール にログインします。
バケット ページで、バケットの作成 をクリックします。
バケットの作成 ページで、バケット名を入力します。ビジネスに関連する名前(例:
ipc-videos-oss-metaquery-demo)を使用してください。その他のパラメーターはデフォルト設定のままにしてかまいません。[OK] をクリックします。成功ページで、バケットに移動 をクリックします。
オブジェクト ページで、 をクリックします。アップロードする動画ファイル(例:videoA.mp4、videoB.mp4、および videoC.mp4)を選択します。その他のパラメーターはデフォルト設定のままにし、アップロード をクリックします。
(オプション) アップロード済みの動画ファイルにタグを追加します。対象ファイルの **[操作]** 列で、
> [タグ] を選択します。表示されるダイアログボックスで、キーと値のペアを追加します。たとえば、インデックス作成時のフィルター条件として使用するために、キーを need-seek、値をtrueに設定できます。また、クエリ時のフィルター条件として使用するために、キーをcamera、値をcamera-aに設定することもできます。OK をクリックします。タグを使用することで、インデックス作成時および検索時により正確なフィルタリングが可能になります。
2. AISearch 機能の有効化
バケットに対して AISearch 機能を有効化し、自然言語による記述や複数の条件を用いた動画の高精度検索を可能にします。
説明
メタデータインデックスの構築には時間がかかります。所要時間はバケット内のオブジェクト数によって異なります。時間がかかる場合は、ページをリフレッシュして有効化ステータスを確認できます。 |
|
結果の検証
駐車中の車がある中庭 などの記述的なフレーズを入力すると、その記述に一致する関連動画がシステムから返されます。
|
|
本番環境に適用
この機能を本番環境に統合する際は、以下の点を考慮してください。
本番データのインジェスト
一般的なビジネスシナリオでは、IPC などの監視デバイスが継続的に大量の動画データを生成します。安定性と適時性を確保し、システム全体の可用性およびリアルタイム処理能力を向上させるため、OSS SDK を統合して、録画された動画セグメントを指定されたバケットにリアルタイムでアップロードすることを推奨します。
次の例は、OSS Python SDK の Upload Manager を使用して動画ファイルをアップロードする方法を示しています。
検索機能の統合
本番環境では、コンソールでの手動操作を避け、バックエンドサービスに検索機能を統合することを推奨します。OSS SDK を使用して自動化された呼び出しを実行できます。
次のコード例は、OSS MetaQuery 仕様に準拠した XML リクエストを構築して検索結果を取得する方法を示しています。
プログラムを実行後、駐車中の車がある中庭 などの記述的なフレーズを入力してクエリを実行できます。これにより、データインデックスから記述に一致する検索結果が返され、URL を使用して動画の詳細を確認できます。
Found 1 matching result:
File 1:
URI: oss://ipc-videos-oss-metaquery-demo/videoA.mp4
File name: videoA.mp4
Size: 2311252
Last modified: 2025-05-23T17:38:10+08:00
ContentType: video/mp4
MediaType: video
File URL (signed URL): https://ipc-videos-oss-metaquery-demo.oss-cn-beijing.aliyuncs.com/%E8%A7%86%E9%A2%91A.mp4?x-oss-signature-version=OSS4-HMAC-SHA256&x-oss-date=20250523T094511Z&x-oss-expires=900&x-oss-credential=LTAI********************%2F20250523%2Fcn-beijing%2Foss%2Faliyun_v4_request&x-oss-signature=0bf38092c42a179ff0e8334c8bea3fd92f5a78599038e816e2ed3e02755542af
--------------------
タグフィルタリングの設定
大量の動画データを扱う場合、パスのみによるファイル管理では、検索や分類の効率が低下することがあります。OSS のオブジェクトタグ付け機能を使用することを推奨します。ビジネス要件(カメラ ID や地理的リージョンなど)に基づいて、ファイルにキーと値のタグを追加することで、データを迅速にフィルタリングおよび分類できます。
ここでは、システム内で次の 3 つの動画ファイルを分析すると仮定します。videoA.mp4、videoB.mp4、および videoC.mp4。
|
videoA.mp4 |
videoB.mp4 |
videoC.mp4 |
|
|
|
|
|
中庭の動画で、camera-a で撮影されたものとしてマークされています |
販売店の動画で、camera-b で撮影されたものとしてマークされています |
中庭の動画で、video A と内容が類似しており、camera-c で撮影されたものとしてマークされています |
タグはファイルのアップロード時に設定するか、アップロード後に動的に管理することで、さまざまなビジネスシナリオの要件に対応できます。
アップロード時のタグ設定
動画ファイルのアップロード時にタグを設定することで、アップロード操作とタグ管理を同時に行い、データ管理の効率を向上させることができます。
次の例は、OSS Python SDK の Upload Manager を使用して動画ファイルをアップロードし、同時にタグを設定する方法を示しています。
アップロード後のタグ管理
ファイルがすでにアップロード済みの場合でも、いつでもタグを追加または変更できます。これにより、データタグの動的メンテナンスと精度が保証されます。
次の例は、Python SDK を使用して関連インターフェイスを呼び出し、タグを追加する方法を示しています。
タグフィルタリングと検索の組み合わせ
次の例は、OSS Python SDK を使用して、セマンティック理解とタグフィルタリングを組み合わせたクエリリクエストを開始する方法を示しています。
プログラムを実行後、駐車中の車がある中庭を含む動画をフィルタリングできます。
-
記述フィールドに、次の検索キーワードを入力します:
駐車中の車がある中庭 -
次のタグフィルター条件を設定します:
camera = camera-a
この例では、video A と video C の両方に 駐車中の車がある中庭 という記述に一致するシーンが含まれています。ただし、camera-a でマークされた動画のみを返すようにタグフィルターを設定しているため、最終的な検索結果には video A のみが含まれます。
Sending DoMetaQuery request...
Request successful, HTTP status code: 200
Retrieved 2 initial matches from OSS. Starting client-side tag filtering...
[1] File 'videoA.mp4' matches all conditions:
File URL: https://ipc-videos-oss-metaquery-demo.oss-cn-beijing.aliyuncs.com/%E8%A7%86%E9%A2%91A.mp4?x-oss-signature-version=OSS4-HMAC-SHA256&x-oss-date=20250526T054908Z&x-oss-expires=900&x-oss-credential=LTAI********************%2Fcn-beijing%2Foss%2Faliyun_v4_request&x-oss-signature=01bbf29790763d8e0f177d4cb0469cb00ae1c69d565219edb3866f75110b37ab
File path: videoA.mp4
-----------------------
Client-side filtering complete. Found 1 final matching result.




