Amazon KVS および Amazon Rekognition Streaming Video Events に基づくリアルタイムのビデオ検出ソリューション

7e549abba40bea043f83cd0935a1ad50.gif

序文

1.1 ビデオ認識シナリオの紹介

ホームセキュリティ監視の分野では、リアルタイムのビデオモーション検出に基づいて、監視環境で人、ペット、荷物などの外観を発見し、ユーザーに通知できるようにすることは、重要なアプリケーション シナリオの 1 つです。検出結果のどこでもリアルタイムで。ただし、このシナリオの技術的な実装には、次のような課題があります。まず、カメラに基づくビデオ検出通知には、風、雨、車の移動、およびユーザーが懸念しないその他のイベントが原因で、多数の誤警報が発生します。これは重大な問題です。ユーザーエクスペリエンスに影響を与えます。2 つ目は、このソリューションの実装には、デバイス側のイベントの検出とトリガー、ビデオ コーデック処理、ビデオ ストレージ、マシン ビジョンなど、高度な技術分野と複雑さが伴うため、チームに強力な技術的および専門的能力が求められることです。 .

この記事で Amazon が紹介する最新のAmazon Rekognition Streaming Video Events は、これらの課題を非常にうまく解決します.次に、このソリューションの実装原理と統合アプリケーションを詳細に紹介し、このソリューションと他の実装ソリューションとの違いを分析します.これらの分析は、参照用の技術ソリューションの選択に関する提案を提供します。

1.2 Amazon Kinesis ビデオストリームの紹介

Amazon Kinesis Video Streams (KVS) は、スマートフォン、セキュリティ カメラ、ウェブカメラ、車載カメラ、ドローン、その他のソースを含む数百万のソースからビデオをキャプチャするために使用できる、完全マネージド型の Amazon サービスです。 Amazon クラウド、またはリアルタイムのビデオ処理またはバッチ指向のビデオ用のアプリケーションを構築します。Amazon KVS の利点は次のとおりです。

  • 大規模なデバイスにリアルタイムのビデオ伝送サービスを提供できます。

  • Amazon Rekognition などのマネージド サービスと統合することで、インテリジェント ビジョン アプリケーションを構築するのに非常に便利です。

  • Amazon KVS HTTP ライブ ストリーミング (HLS) を使用して、Amazon KVS からブラウザまたはモバイル アプリケーションにライブおよび記録されたメディアを簡単にストリーミングします。

  • Amazon KVS を使用すると、IAM を使用してストリームへのアクセスを制御でき、保存中および移動中のデータにセキュリティを提供できます。管理するインフラストラクチャがなく、完全に管理されています。

  • Amazon KVS は、基盤となるデータ ストレージとして Amazon S3 を使用します。Amazon KVS は、デバイスやサービスによって生成されたタイムスタンプに基づいて、ビデオ クリップをすばやく検索して取得できます。

Amazon KVS は、Producer、Stream、Consumer の 3 つのコンポーネントに分けることができ、開発者と Amazon KVS 間の機能統合を容易にするために、Producer SDK、KVS Stream API、Consumer SDK をそれぞれ提供します。

a1dfd94aa24c1b95056acac66fc9fc15.png

1.3 Amazon Rekognition の紹介

Amazon Rekognition は、トレーニング済みでカスタマイズ可能なコンピューター ビジョン (CV) 機能を提供し、画像や動画から情報を抽出して洞察を得ることができます。高精度の顔分析と検出、顔比較と顔検索、ラベル テキスト検出などの機能を提供します。Amazon Rekognition は、Amazon のコンピューター ビジョン科学者によって開発された実績のある高度にスケーラブルな深層学習技術に基づいて、毎日数十億の画像と動画を分析することができます。使用するのに機械学習の専門知識は必要ありません。Amazon Rekognition には、Amazon S3 に保存されている画像や動画ファイルをすばやく分析するための使いやすい API が含まれています。

アマゾン認識

ストリーミング ビデオ イベントソリューションの分析

Amazon Rekognition Streaming Video Events は、モニタリング環境で特定のイベントを検出したデバイスに基づいて、デバイスのビデオ ストリームをクラウド上の KVS にプッシュする、Amazon Rekognition Video の助けを借りて、新しく開始された機能です。動画内のタグを、あなたが検出すると予想するタグに合わせて分析し、検出結果をAmazon S3に保存し、検出結果をSNSに送信します。現在、リアルタイム映像で人物、パッケージ、ペットタグを検出する機能を提供しています。

1

アーキテクチャの説明

Amazon Rekognition Streaming Video Events ソリューションの全体的なアーキテクチャは、デバイス側、Amazon クラウド テクノロジー クラウド、およびユーザー アプリケーション側に分かれています。

  • デバイス側

通常は自動映像検出機能を備えたカメラデバイスですが、Amazon KVS SDK を Amazon KVS の Producer として統合することで、映像ストリームをクラウド上の Amazon KVS Stream にプッシュし、Amazon Rekognition が提供する映像検出 API をトリガーします。オンデマンドの Amazon クラウドで。

  • アマゾン クラウド テクノロジー クラウド

Amazon KVS ストリーム:デバイスのビデオの永続的なストレージ、ビデオの取得、ビデオのオンライン表示、ビデオのダウンロード、およびその他の機能を提供し、Rekognition にビデオ検出用のデータを提供します。

Amazon Rekognition:ビデオまたは画像ベースのコンテンツ レビュー、顔検出、顔比較、ラベル検出などの完全マネージド型の機能を含む、ビデオおよび画像分析を自動的に実行する機能を提供し、Amazon KVS、Amazon S3、 SNSなどのAmazonサービス連携。

Amazon S3:ビデオ検出結果のストレージを提供します。

Amazon SNS:完全に管理された pub/sub メッセージング、SMS、E メール、およびモバイル プッシュ通知は、このシナリオで通知配信機能を提供します。

プログラムの全体的なアーキテクチャ図は次のとおりです。

c2066fd2f4605ec6884e1b435f1fa639.png

 

2

実行プロセスの説明

以下の図に示すように、Amazon Rekognition Streaming Video Events の実行プロセスは、事前設定段階とイベント処理段階に分けられます。

a984dad48cc7e0d1d2a9590629712b3f.png

  • プリセットステージ

ステップ 1:ビデオ検出結果のストレージとファンアウト用に、それぞれ S3 バケットと SNS トピックを作成します。

ステップ 2:デバイス登録が作成されたら、対応する KVS ストリームと rekognition ストリーム プロセッサを作成し、ステップ 1 でストリーム プロセッサを S バケットと SNS トピックにバインドします。

  • イベント処理ステージ

step1: IPC デバイスがイベントを検出します。

ステップ 2: IPC デバイスは Amazon KVS Producer SDK の PutMedia API を呼び出してビデオを KVS ストリームにストリーミングし、同時に API を呼び出して rekognition ストリーム プロセッサをトリガーしてビデオ データを分析します。

ステップ 3: Amazon Rekognition Stream Processor は、ビデオ処理の開始条件と停止条件、ビデオ処理時間、およびその他の情報を含む起動パラメータに基づいてビデオを分析します。

step4: Amazon Rekognition Stream Processor は、ビデオ分析結果を Amazon S3 に自動的に保存し、SNS トピックをトリガーします。

ステップ 5:ユーザーは、アプリケーション プログラムを介してビデオ情報を取得するか、通知を受け取り、他のビジネス プロセスを完了します。

スキーム統合検証

現在、Amazon Rekognition Streaming Video Events は、米国東部 (オハイオ)、米国東部 (バージニア北部)、米国西部 (オレゴン)、アジアパシフィック (ムンバイ)、欧州 (アイルランド) の Amazon クラウドテクノロジーリージョンでサポートされています。今回の実験ではアイルランドを選択しました。

1

実験準備

この実験で使用する Amazon クラウド技術リソースはすべてアイルランドで作成されており、事前に Amazon クラウド技術アカウントを準備する必要があります。

Amazon IAM で管理者ユーザーを作成し、arn:aws:iam::aws:policy/AdministratorAccess ポリシーを割り当て、このユーザーを後続のリソース作成に使用します。

2

Amazon KVS プロデューサーをシミュレートする

動画を Amazon KVS ストリームにプッシュする

このセクションの実験的な手順は、完全に Amazon KVS ワークショップを参照しています. 以下は、実験的な手順の簡単な説明にすぎません. 詳細な実行プロセスについては、を参照してください. https://catalog.us-east-1.prod.workshops.aws/workshops/b95b9381-baf0-4bef-ba31-63817d54c2a6/en-US/ リンクで Amazon Cloud9 を使用した Amazon Kinesis Video Streams Experiments を使用したビデオの収集と保存。

Amazon Cloud9 を次のように作成します。

Amazon KVS のプロデューサー

  • Amazon Cloud9 の作成方法については、以下のリンクを参照してください。

  • https://catalog.us-east-1.prod.workshops.aws/workshops/b95b9381-baf0-4bef-ba31-63817d54c2a6/en-US/lab-1/cloud9/step-1-b

Amazon Cloud9 で作成

Amazon KVS プロデューサー アプリケーションを開始する

  • 次のコマンドを実行して、Amazon KVS プロデューサー SDK をダウンロードします。

cd
git clone --recursive https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp.git

※左にスワイプで続きが見れます

  • 次のコマンドを実行して、Amazon KVS プロデューサー SDK をコンパイルします。

cmake -DBUILD_GSTREAMER_PLUGIN=ON ..
mkdir -p ~/amazon-kinesis-video-streams-producer-sdk-cpp/build
cd ~/amazon-kinesis-video-streams-producer-sdk-cpp/build

※左にスワイプで続きが見れます

Amazon KVS ビデオ ストリームを作成する

  • Amazon KVS ストリームを作成する

Amazon KVS ストリームの作成方法:

https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/gs-createstream.html

後の実験で使用する Amazon KVS ストリームの ARN を記録します。

arn:aws:kinesisvideo:eu-west-1:*AccountID*:stream/* stream-name */16*****5

※左にスワイプで続きが見れます

0c98fe4ed353724cdd5d37573cbca88f.png

  • Amazon Cloud9 の環境変数を設定して、後で Amazon KVS Stream にビデオをアップロードする準備をします

Amazon Cloud9 Terminal で以下のコマンドを実行し、IAM の一時トークンを取得します。

aws sts get-session-token

※左にスワイプで続きが見れます

Amazon Cloud9 ターミナルで次のコマンドを実行して、環境変数を設定します。

export AWS_DEFAULT_REGION="The region you use (e.g. ap-northeast-1, us-west-2)"
export AWS_ACCESS_KEY_ID="The AccessKeyId value of the result above"
export AWS_SECRET_ACCESS_KEY="The SecretAccessKey value of the result above"
export AWS_SESSION_TOKEN="The SessionToken value of the result above"

※左にスワイプで続きが見れます

ローカル動画を Amazon KVS ストリームにアップロード

  • Amazon KVS アプリケーション実行の環境変数を設定する

Amazon Cloud9 ターミナルで次のコマンドを実行して、環境変数を設定します。

export GST_PLUGIN_PATH=$HOME/amazon-kinesis-video-streams-producer-sdk-cpp/build
export LD_LIBRARY_PATH=$HOME/amazon-kinesis-video-streams-producer-sdk-cpp/open-source/local/lib

※左にスワイプで続きが見れます

  • Amazon Cloud9 ターミナルで次のコマンドを実行して、Amazon KVS アプリケーションを開始します。

while true; do ./kvs_gstreamer_file_uploader_sample kvs-workshop-stream ~/sample.mp4 $(date +%s) audio-video && sleep 10s; done
cd ~/amazon-kinesis-video-streams-producer-sdk-cpp/build

※左にスワイプで続きが見れます

  • Amazon コンソールで Amazon KVS ストリームを開き、[Media Playback] をクリックして、ビデオが正常にアップロードされたかどうかを確認します。

以下の図に示すように、動画が正常に表示され、Amazon Cloud9 に保存された動画が Amazon KVS Stream に正常にアップロードされたことを示します。

cc42a7d78fe966910c5e8c01eeb99330.png

3

Amazon Rekognition ストリーミングの準備

ビデオ イベント に必要なリソース

Amazon S3 バケットを作成する

Amazon S3 バケットを作成し、バケットに video-event-analytics という名前を付け、バケットにフォルダー video-result を作成し、Amazon S3 バケットを作成するときに他のパラメータのデフォルト設定を確認します. 作成が成功した後、情報Amazon S3 バケットの内容は以下の通りです。

542dfd798a3017546bc166571c6ad6d9.png

 以下の図に示すように、フォローアップ実験で使用する必要がある Amazon S3 バケット ARN を記録します。

f8cef3c38fe217c5ef0d605d78902c7b.png

SNS の作成とメール購読の設定

トピックを作成します。選択タイプは標準タイプ、トピック名はビデオ イベント SNS です。

7389bea02e4c102862c64b889fd26114.png

  • トピックの ARN を記録します。これは、後続の実験で使用されます

1f2ea2429ed0b0b74139b43ccde5d16c.png

  • SNS トピック サブスクリプションの作成

このうち、Topic ARN には上記で作成した SNS の ARN を選択し、Protocol には Email を選択します. 実際のアプリケーションでは、必要なサブスクリプション方法に応じて、対応するプロトコルの種類を選択できます.

9bec06b119665af37efc185683735544.png

Amazon Rekognition  Service ロールを作成する

Amazon Rekognition プロセッサに他のサービスを操作するアクセス許可を付与するために使用される Amazon Rekognition サービス ロールを作成します。この実験では、Amazon S3 と Amazon SNS を操作するためのアクセス許可を Amazon Rekognition Processor に付与する必要があります。

  • 以下の図に示すように、Amazon IAM ポリシーを作成して、Amazon KVS、SNS、および S3 にアクセスするために必要なアクセス許可を付与します。

"Action": [
                "sns:Publish"
            ],
            "Resource": [
                "arn:aws:sns:eu-west-1:your-accountid:video-event-sns"
            ]
        },
        {
            "Sid": "S3Permissions",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::your-s3-bucket-name/*"
            ]
        }
    ]
}

※左にスワイプで続きが見れます

  • 下の図に示すように Amazon Rekognition サービス ロールを作成し、前の手順で作成したポリシーを関連付けます。

Trusted Entity Type を Amazon Cloud Technology Service として選択し、サポートされている Amazon Cloud Technology Service シナリオを Amazon Rekognition として選択します。

6689e1eda161f9d691bf2c864b93f590.png

  • 前のステップで作成した Amazon IAM ポリシーを Amazon Rekognition Service ロールに関連付けます

7249f86d4d7c1927573832f760f80bfc.png

Amazon Rekognition ストリーミングを開始する

ビデオ イベントの処理フロー

Amazon Cloud9 の Amazon Cli を最新バージョンにアップグレードする

Amazon Rekognition Streaming Video Events は、2022 年 4 月末にリリースされる新機能であるためです。Amazon Cli を使用して Amazon Rekognition-Stream-Processor を作成し、この機能を使用するには、Amazon Cli を以下を含むバージョンにアップグレードする必要があります。 Rekognition の新機能. ここでは、Amazon Cli を最新バージョンにアップグレードします。

  • 次のコマンドを実行して、Amazon Cli を最新バージョンにアップグレードします。

Amazon Cli がすでに最新バージョンである場合は、この手順をスキップできます。

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
sudo ./aws/install —bin-dir /usr/local/bin —install-dir /usr/local/aws-cli —update

※左にスワイプで続きが見れます

Amazon Rekognition-Stream-Processor を作成する

  • Amazon Rekognition-Stream-Processor を作成する準備ができた json ファイル

Amazon Rekognition-Stream-Processor パラメーターを作成するための json ファイルを下の図に示します。ここで、Amazon KinesisVideoStream-Arn、Amazon S3Destination-Bucket、Amazon S3Destination-KeyPrefix、および Amazon RoleArn は、独自の実験で作成されたリソースに変更する必要があります。環境。

ConnectedHome は、Amazon Rekognition-Stream-Processor の新機能によって提供される新しいパラメーターです. ConnectedHome のラベルは現在、「PERSON」、「PET」、「PACKAGE」、および「ALL」をサポートしています。検出したいラベルを入力できます。 . 詳細 あなたは参照することができます:

https://docs.aws.amazon.com/rekognition/latest/APIReference/API_CreateStreamProcessor.html

{
    "DataSharingPreference": { 
      "OptIn":true
    },
    "Input": {
      "KinesisVideoStream": {
        //kvs视频来源的ARN
        "Arn": "your kvs stream arn"
      }
    },
    "Name": "video_event_stream_processor",
    "Output": {
      "S3Destination": {
        "Bucket": "video-event-analytics",
        "KeyPrefix": "video-result"
      }
    },
    "NotificationChannel": {
      //发送检测结果通知的 SNSTopicArn
      "SNSTopicArn": "your sns topic arn"
    },
    //streaming processor 执行的 Role
    "RoleArn": "your streaming processor role",
    "Settings": {
      "ConnectedHome": {
        "Labels": [
          "PERSON"
        ],
      "MinConfidence": 80
      }
    },
    "RegionsOfInterest": [
      {
        "BoundingBox": {
          "Top": 0.11,
          "Left": 0.22,
          "Width": 0.33,
          "Height": 0.44
        }
      },
      {
        "Polygon": [
          {
            "X": 0.11,
            "Y": 0.11
          },
          {
            "X": 0.22,
            "Y": 0.22
          },
          {
            "X": 0.33,
            "Y": 0.33
          }
        ]
      }
    ]
  }

※左にスワイプで続きが見れます

  • Amazon Stream-Processor Request の主なパラメータの説明

以下は、Amazon Rekognition ストリーミング ビデオ イベントに必要な主なパラメータです。

833433976b0efbab86f69bb653c2946f.png

  • json ファイルを Amazon Cloud9 に保存し、Amazon Cloud9 Terminal で次のコマンドを実行して Amazon Rekognition-Stream-Processor を作成します。

aws rekognition create-stream-processor —region eu-west-1 —cli-input-json file://createstreamprocessor.json

※左にスワイプで続きが見れます

  • 次のコマンドを実行して、Amazon Rekognition-Stream-Processor の詳細を表示します。

aws rekognition describe-stream-processor --name video_event_stream_processor --profile sunny --region eu-west-1

※左にスワイプで続きが見れます

 次の図に示すように、stream-processor は現在 STOPPED 状態にあります。

{
    "Name": "video_event_stream_processor",
    //StreamProcessorArn
    "StreamProcessorArn": "your stream proccessor arn",
    "Status": "STOPPED",
    "CreationTimestamp": "2022-05-05T09:50:07.013000+00:00",
    "LastUpdateTimestamp": "2022-05-05T09:50:07.013000+00:00",
    "Input": {
        //kvs视频来源的ARN
        "KinesisVideoStream": {
            "Arn": "your kvs stream arn"
        }
    },
    //保存检测结果的S3
    "Output": {
        "S3Destination": {
            "Bucket": "your s3 Bucket arn",
            "KeyPrefix": "your key prefix"
        }
    },
    //streaming processor 执行的 Role
    "RoleArn": "your streaming processor role",
    "Settings": {
        "ConnectedHome": {
            "Labels": [
                "PERSON"
            ],
            "MinConfidence": 80.0
        }
    },
    //发送检测结果通知的 SNSTopicArn
    "NotificationChannel": {
        "SNSTopicArn": "Your SNSTopicArn"
    },
    "RegionsOfInterest": [
        {
            "BoundingBox": {
                "Width": 0.33000001311302185,
                "Height": 0.4399999976158142,
                "Left": 0.2199999988079071,
                "Top": 0.10999999940395355
            }
        },
        {
            "Polygon": [
                {
                    "X": 0.10999999940395355,
                    "Y": 0.10999999940395355
                },
                {
                    "X": 0.2199999988079071,
                    "Y": 0.2199999988079071
                },
                {
                    "X": 0.33000001311302185,
                    "Y": 0.33000001311302185
                }
            ]
        }
    ],
    "DataSharingPreference": {
        "OptIn": true
    }
}

※左にスワイプで続きが見れます

Amazon Rekognition-Stream-Processor を開始します

  • 以下の図に示すように、Amazon Rekognition-Stream-Processor を開始するための json ファイルを準備します。

{
   "Name": "video_event_stream_processor",
   "StartSelector": {
       //设置分析kvs stream视频的开始时间
      "KVSStreamStartSelector": {
         "ProducerTimestamp": 1651702500
      }
   },
   //设置分析kvs stream视频的接触时间
   "StopSelector": {
      "MaxDurationInSeconds": 30
   }
}

※左にスワイプで続きが見れます

開始セレクター

ProducerTimestamp (Producer がビデオを生成する時間) を使用してビデオ分析の開始位置を設定することに加えて、Amazon KVS FragmentNumber (ビデオ フレーム番号) を使用して開始時間を設定することもできます。

ストップセレクター

MaxDurationInSeconds (最大ビデオ検出時間) を設定して検出と分析を停止することに加えて、将来的に NoDetectionForDuration (設定されたタグが一定の検出時間内に検出されない場合は検出を停止する) を渡すこともできます。

  • 次のコマンドを実行して、Amazon Rekognition-Stream-Processor を開始します。

aws rekognition start-stream-processor —profile sunny —region eu-west-1 —cli-input-json file://startstreamprocessor.json
{
"SessionId": "16d15f11-02a1-4955-8248-f3184d66cb94"
}
}

※左にスワイプで続きが見れます

 実行結果を観察する

 stream-processor は、start-stream-processor に設定された映像検出の開始条件と終了条件に従って、設定された対象タグ (Person/Package/Pet/ALl) の検出を完了すると、検出結果を Amazon S3 に保存し、設定された Amazon SNS が送信します。

  • Amazon S3 に保存された検出結果を観察する

次の図に示すように、Amazon S3 is video-event-analytics —recursive —profile sunny を実行して、Amazon S3 に保存された検出結果を表示します。

video-result:ストリーム プロセッサで構成された ObjectKeyPrefix に対応します。

video_event_stream_processor:  stream-processor で構成された名前に対応します

7aa6f62b-dfba-42bb-aa80-b5e50e7403e8: start-stream-processor によって返される SessionId に対応します。

2022-05-05 12:08:37 25072 video-result/video_event_stream_processor/7aa6f62b-dfba-42bb-aa80-b5e50e7403e8/notifications/5_1.0_heroimage.jpg
022-05-05 08:58:29 0 video-result/
2022-05-06 08:32:45 69316 video-result/video_event_stream_processor/16d15f11-02a1-4955-8248-f3184d66cb94/notifications/5_1.0.jpg
2022-05-06 08:32:46 25072 video-result/video_event_stream_processor/16d15f11-02a1-4955-8248-f3184d66cb94/notifications/5_1.0_heroimage.jpg
2022-05-05 10:15:11 69316 video-result/video_event_stream_processor/4923874d-049f-40e4-a38e-5df20955b809/notifications/5_1.0.jpg
2022-05-05 10:15:11 25072 video-result/video_event_stream_processor/4923874d-049f-40e4-a38e-5df20955b809/notifications/5_1.0_heroimage.jpg
2022-05-05 12:08:37 69316 video-result/video_event_stream_processor/7aa6f62b-dfba-42bb-aa80-b5e50e7403e8/notifications/5_1.0.jpg

※左にスワイプで続きが見れます

  • SNSで送信された結果を観察する

ストリーム プロセッサの検出が完了すると、2 種類の通知メッセージが Amazon SNS に送信されます. 次の図は、ビデオ タグ検出の結果情報を示しています。

{
    "inputInformation": {
        "kinesisVideo": {
            "streamArn": "=your kvs stream arn"
        }
    },
     //通知消息类型LABEL_DETECTED
    "eventNamespace": {
        "type": "LABEL_DETECTED"
    },
     //标签描述
    "labels": [
        {
            "id": "704ecb70-0ec5-4f14-966d-90a1837ae1b5",
            "confidence": 97.671364,
            "name": "PERSON",
            "frameImageUri": "s3://video-event-analytics/video-result/video_event_stream_processor/16d15f11-02a1-4955-8248-f3184d66cb94/notifications/5_1.0.jpg",
            "croppedImageUri": "s3://video-event-analytics/video-result/video_event_stream_processor/16d15f11-02a1-4955-8248-f3184d66cb94/notifications/5_1.0_heroimage.jpg",
            "videoMapping": {
                "kinesisVideoMapping": {
                    "fragmentNumber": "91343852333196827415010615634393321213860465930",
                    "serverTimestamp": 1651739574510,
                    "producerTimestamp": 1651739574000,
                    "frameOffsetMillis": 1000
                }
            },
            "boundingBox": {
                "left": 0.45954865,
                "top": 0.4983085,
                "height": 0.48800948,
                "width": 0.099167705
            }
        }
    ],
    "eventId": "ba763aa1-821c-3592-91e2-dec731329d1a",
    "tags": {},
    "sessionId": "16d15f11-02a1-4955-8248-f3184d66cb94",
    "startStreamProcessorRequest": {
        "name": "video_event_stream_processor",
        "startSelector": {
            "kvsProducerTimestamp": 1651702500
        },
        "stopSelector": {
            "maxDurationInSeconds": 30
        }
    }
}

※左にスワイプで続きが見れます

次の図は、検出プロセスが完了したという情報を示しています。

{
    "inputInformation": {
        "kinesisVideo": {
            "streamArn": "your kvs stream arn",
            "processedVideoDurationMillis": 30000.0
        } 
    },
    "eventNamespace": {
        //通知消息类型STREAM_PROCESSING_COMPLETE
        "type": "STREAM_PROCESSING_COMPLETE"
    },
    "streamProcessingResults": {
        "message": "Stream Processing Success."
    },
    "eventId": "16d15f11-02a1-4955-8248-f3184d66cb94",
    "tags": {},
    "sessionId": "16d15f11-02a1-4955-8248-f3184d66cb94",
    "startStreamProcessorRequest": {
        "name": "video_event_stream_processor",
        "startSelector": {
            "kvsProducerTimestamp": 1651702500
        },
        "stopSelector": {
            "maxDurationInSeconds": 30
        }
    }
}

※左にスワイプで続きが見れます

 上記の検出結果を利用して、ビジネス アプリケーション シナリオを拡張および充実させることができます。

4

 本番アプリケーションのリファレンス アーキテクチャ

アーキテクチャの説明

2.1 参照アーキテクチャに基づいて、次の内容を追加します。

バックエンドサービス: Amazon EC2、Amazon Cloud Technology Container Service、Amazon Lambdaにデプロイ可能な、端末登録、検知情報保存、検知結果閲覧、映像イベント処理APIなど、特定のビジネスシーンに応じたAPIを提供必要に応じて。

データベース:後続のクエリのためにビデオ検出結果とビジネス情報 (ユーザー デバイス情報など) を永続的に保存します. データの種類と読み取りと書き込みの要件に基づいて、ストレージには Amazon DocumentDB または DynamoDB を使用することをお勧めします.

SNS購読処理:ビジネスニーズに応じて、SMS、メール、APPプッシュと統合でき、(Alexa)などの他のデバイスと統合して、ビジネス機能を充実させることもできます。

拡張されたアーキテクチャを次の図に示します。

9454e5b347dacc36f2034e5f67b02590.png

実行プロセスの説明

次の図は、Amazon Rekognition Streaming Video Events の実行プロセスを示しており、事前設定フェーズとイベント処理フェーズに分けられます。

0c023715fe6d9374323b908e769e2761.png

  • プリセットステージ

事前設定フェーズの処理は、2.2 の実行プロセスの説明に似ています. バックグラウンド サービスは、デバイスが登録されたときに、Amazon KVS ストリーム、Amazon Streaming-Processor の作成、および対応する関係バインディングを完了するための統合 API を提供します.

  • イベント処理ステージ

step1: IPC デバイスがイベントを検出します。

ステップ 2: IPC デバイスは、Amazon KVS Producer SDK の PutMedia API を呼び出してビデオを Amazon KVS ストリームにストリーミングし、同時にバックエンド サービスの API を呼び出して、Amazon Rekognition Stream Processor をトリガーしてビデオ データを分析します。

ステップ 3: Amazon Rekognition Stream Processor は、ビデオ処理の開始条件と停止条件、ビデオ処理時間、およびその他の情報を含む起動パラメータに従ってビデオを分析します。

step4: Amazon Rekognition Stream Processor は、ビデオ分析結果を Amazon S3 に自動的に保存し、SNS トピックをトリガーします。

ステップ 5: SNS トピックのサブスクリプションは、特定のビジネス ロジックに従って、検出結果とビジネス情報をデータベースに保存するバックエンド サービス API をトリガーします。

step6: SNS トピックへのサブスクリプションにより、メッセージのプッシュがトリガーされ、処理結果がエンド ユーザーにプッシュされます。

step7: SNS トピックのサブスクリプションは、他の統合デバイスをトリガーします。

ステップ 8:端末アプリケーションは、バックエンド サービスの API を呼び出して、処理結果を表示したり、Amazon S3 に保存されている画像を検出結果に表示したり、Amazon KVS に保存されているビデオ クリップを確認したりします。

要約する

特定のタグに基づくビデオ検出のシナリオでは、Amazon は次の合計 4 つのテクノロジを提供します。

ソリューション 1: Amazon KVS+Rekognition に基づく ビデオ内のラベルの検出

ソリューション 2: Amazon KVS+Rekognition に基づく画像内のラベルの検出

ソリューション 3: Amazon KVS+ に基づいた自作の検出ラベル

ソリューション 4: Amazon KVS+Rekognition ストリーミング ビデオ イベントのラベル検出に基づく

そのうち、ソリューション 1、2、および 3 では、Amazon KVS から動画を継続的に読み取るか画像を抽出し、Amazon Rekognition が提供する API を呼び出して動画分析を完了する必要があります。このように、Amazon Rekognition API の呼び出しは非常に頻繁であり、それに伴うコストも高くなります.コストを削減するために、エンド側デバイスのイベント検出機能を組み合わせ、イベント処理 API を提供することができます。 Amazon Rekognition が動画の動きを分析し、開始と停止をトリガーする API ですが、この API を実装するには考慮すべき要素が多く、開発の技術的な困難も比較的大きくなります。ソリューション 4 は、Amazon Rekognition によって最近リリースされた Amazon Rekognition Streaming Video Events 機能を使用して、この API の実装を提供します. 開発者は、Amazon Rekognition Streaming Processor の API を使用して、Amazon Rekognition Streaming Processor の作成、開始、および停止を正確に制御できます。タグのビデオ検出要件の難易度を事前に決定し、ビデオ検出機能をオンラインで迅速に実装します。ソリューション 3 の場合、ビデオ検出モデルを構築し、モデルのトレーニング、推論、および自動拡張を管理する必要があります.Amazon Rekognition が提供する API の検出機能が特定のビジネス ニーズを満たすことができず、開発チームが強力な AI 開発能力を持っている場合、あなたはそれを使用することを検討することができます。ただし、製品にインテリジェントなビジョン機能を初めて提供する場合は、Amazon Rekognition Streaming Video Events を使用すると、この要件を迅速に実現し、開発とメンテナンスのコストを削減できます. ビデオ検出機能を利用して、初期の研究開発投資を大幅に削減できます。 .

参考文献

Amazon KVS 公式紹介

https://aws.amazon.com/cn/kinesis/video-streams/?amazon-kinesis-video-streams-resources-blog.sort-by=item.additionalFields.createdDate&amazon-kinesis-video-streams-resources-blog .sort-order=desc

Amazon Doc of Rekognition ストリーミング ビデオ イベント ストリーミング ビデオ イベントの操作

https://docs.aws.amazon.com/rekognition/latest/dg/streaming-video.html

https://docs.aws.amazon.com/rekognition/latest/dg/streaming-labels-detection.html

Amazon Rekognition ストリーミング ビデオ イベント ブログ

https://aws.amazon.com/cn/blogs/machine-learning/abode-uses-amazon-rekognition-streaming-video-events-to-provide-real-time-notifications-to-their-smart-home-顧客/

Amazon Rekognition Video と Amazon KVS を使用したライブ カメラ フィードでのリアルタイムの顔識別

https://medium.com/zenofai/real-time-face-identification-on-live-camera-feed-using-amazon-rekognition-video-and-kinesis-video-52b0a59e8a9

Amazon KVS ワークショップ

https://catalog.us-east-1.prod.workshops.aws/workshops/b95b9381-baf0-4bef-ba31-63817d54c2a6/en-US/

Amazon Rekognition Video と Amazon KVS を使用してサーバーレスのビデオ分析環境を作成することで、ライブ フィードで顔分析を簡単に実行できます

https://aws.amazon.com/cn/blogs/machine-learning/easily-perform-facial-analysis-on-live-feeds-by-creating-a-serverless-video-analytics-environment-with-amazon- rekognition-video-and-amazon-kinesis-video-streams/

Amazon Rekognition API 更新ノート

https://awsapichanges.info/archive/changes/34d853-rekognition.html

この記事の著者

a5cf26af56ffeca0ad487a2c7f45dd7b.png

孫金華

シニア ソリューション アーキテクト、Amazon クラウド テクノロジー

お客様のクラウド アーキテクチャの設計とコンサルティングを担当します。Amazon Cloud Technology に入社する前は、自営業を立ち上げ、e コマース プラットフォームの構築と、自動車会社の e コマース プラットフォームの全体的なアーキテクチャ設計を担当していました。彼はかつて、世界有数の通信機器会社で上級エンジニアとして働き、LTE 機器システムの複数のサブシステムの開発とアーキテクチャ設計を担当していました。高並行性・高可用性のシステムアーキテクチャ設計、マイクロサービスアーキテクチャ設計、データベース、ミドルウェア、IOTなどの豊富な経験を持つ。

b133b604fae15fe2f86971eca5179da9.png

シェン・シャオヨン

シニア ソリューション アーキテクト、Amazon クラウド テクノロジー

主に Amazon クラウド技術に基づくクラウド コンピューティング ソリューションのアーキテクチャ コンサルティングと設計を担当し、現在、モバイル インターネット (メディア、ゲーム、広告、電子商取引、ブロックチェーンなどを含む)、金融、製造など、さまざまな業界の顧客にサービスを提供しています。コンピューティング、AI、ビッグデータ、モノのインターネット、ハイパフォーマンス コンピューティングなど、さまざまなクラウド コンピューティング ソリューションに関連するクラウド コンサルティングとアーキテクチャ設計を提供します。

8a786dc206da130a8fce576be238fe20.gif

cd324c757ddf43c1a2794260290cfafa.gif

と聞きました、下の4つのボタンをクリック

バグに遭遇することはありません!

7ca758855e51d898b6db834e620b4368.gif

おすすめ

転載: blog.csdn.net/u012365585/article/details/124958372