Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memanggil operasi Amazon Rekognition Video
Amazon Rekognition Video adalah video asinkron yang dapat Anda gunakan untuk menganalisis video API yang disimpan di bucket Amazon Simple Storage Service (Amazon S3). Anda memulai analisis video dengan memanggil Start
operasi Video Rekognition Amazon, seperti. StartPersonTracking Amazon Rekognition Video menerbitkan hasil permintaan analisis ke topik Amazon Simple Notification Service (Amazon). SNS Anda dapat menggunakan antrean Amazon Simple Queue Service (AmazonSQS) atau AWS Lambda fungsi untuk mendapatkan status penyelesaian permintaan analisis video dari topik AmazonSNS. Terakhir, Anda mendapatkan hasil permintaan analisis video dengan memanggil operasi Get
Rekognition Amazon, seperti. GetPersonTracking
Informasi pada bagian ini menggunakan operasi pendeteksi label untuk menunjukkan bagaimana Amazon Rekognition Video mendeteksi label (objek, peristiwa, konsep, dan aktivitas) dalam video yang disimpan dalam bucket Amazon S3. Pendekatan yang sama berfungsi untuk operasi Video Rekognition Amazon lainnya—misalnya, dan. StartFaceDetectionStartPersonTracking Contoh Menganalisis video yang disimpan dalam bucket Amazon S3 dengan Java atau Python () SDK menunjukkan cara menganalisis video dengan menggunakan SQS antrian Amazon untuk mendapatkan status penyelesaian dari SNS topik Amazon. Amazon SQS juga digunakan sebagai dasar untuk contoh Amazon Rekognition Video lainnya, seperti Lintasan orang. Sebagai AWS CLI contoh, lihatMenganalisis video dengan AWS Command Line Interface.
Topik
Memulai analisis video
Anda memulai permintaan deteksi label Amazon Rekognition Video dengan menelepon. StartLabelDetection Berikut ini adalah contoh JSON permintaan yang dilewatiStartLabelDetection
.
{ "Video": { "S3Object": { "Bucket": "bucket", "Name": "video.mp4" } }, "ClientRequestToken": "LabelDetectionToken", "MinConfidence": 50, "NotificationChannel": { "SNSTopicArn": "arn:aws:sns:us-east-1:nnnnnnnnnn:topic", "RoleArn": "arn:aws:iam::nnnnnnnnnn:role/roleopic" }, "JobTag": "DetectingLabels" }
Parameter input Video
menyediakan nama file video dan bucket Amazon S3 untuk mengambilnya. NotificationChannel
berisi Nama Sumber Daya Amazon (ARN) dari SNS topik Amazon yang diberitahukan oleh Video Rekognition Amazon saat permintaan analisis video selesai. SNSTopik Amazon harus berada di AWS wilayah yang sama dengan titik akhir Video Rekognition Amazon yang Anda panggil. NotificationChannel
juga berisi peran ARN untuk yang memungkinkan Amazon Rekognition Video untuk mempublikasikan ke topik Amazon. SNS Anda memberikan izin penerbitan Amazon Rekognition ke topik SNS Amazon Anda dengan IAM membuat peran layanan. Untuk informasi selengkapnya, lihat Mengonfigurasi Amazon Rekognition Video.
Anda juga dapat menentukan parameter input opsionalJobTag
, yang memungkinkan Anda mengidentifikasi pekerjaan dalam status penyelesaian yang dipublikasikan ke SNS topik Amazon.
Untuk mencegah duplikasi pekerjaan analisis yang tidak disengaja, Anda dapat memberikan token idempotensi , ClientRequestToken
. Jika Anda memberikan nilai untuk ClientRequestToken
, operasi Start
mengembalikan JobId
yang sama untuk beberapa panggilan yang identik ke operasi awal, seperti StartLabelDetection
. Token ClientRequestToken
memiliki masa pakai 7 hari. Setelah 7 hari, Anda bisa menggunakannya kembali. Jika Anda menggunakan kembali token selama masa token aktif, hal berikut akan terjadi:
-
Jika Anda menggunakan kembali token dengan operasi
Start
dan parameter input yang sama, kodeJobId
yang sama akan dikembalikan. Pekerjaan tidak dilakukan lagi dan Amazon Rekognition Video tidak mengirimkan status penyelesaian ke topik Amazon terdaftar. SNS -
Jika Anda menggunakan kembali token dengan
Start
operasi yang sama dan perubahan parameter input kecil, Anda mendapatkan pengecualianIdempotentParameterMismatchException
(kode HTTP status: 400) yang dimunculkan. -
Anda seharusnya tidak menggunakan kembali token dengan operasi
Start
yang berbeda karena Anda akan mendapatkan hasil yang tak terduga dari Amazon Rekognition.
Respons terhadap operasi StartLabelDetection
adalah pengidentifikasi tugas (JobId
). Gunakan JobId
untuk melacak permintaan dan mendapatkan hasil analisis setelah Amazon Rekognition Video mempublikasikan status penyelesaian ke topik Amazon. SNS Sebagai contoh:
{"JobId":"270c1cc5e1d0ea2fbc59d97cb69a72a5495da75851976b14a1784ca90fc180e3"}
Jika Anda memulai terlalu banyak pekerjaan secara bersamaan, panggilan untuk StartLabelDetection
menaikkan LimitExceededException
(kode HTTP status: 400) hingga jumlah pekerjaan yang berjalan secara bersamaan berada di bawah batas layanan Amazon Rekognition.
Jika Anda menemukan bahwa LimitExceededException
pengecualian dimunculkan dengan ledakan aktivitas, pertimbangkan untuk menggunakan SQS antrian Amazon untuk mengelola permintaan yang masuk. Hubungi AWS dukungan jika Anda menemukan bahwa jumlah rata-rata permintaan bersamaan tidak dapat dikelola oleh SQS antrian Amazon dan Anda masih menerima LimitExceededException
pengecualian.
Mendapatkan status penyelesaian permintaan analisis Amazon Rekognition Video
Amazon Rekognition Video mengirimkan pemberitahuan penyelesaian analisis ke topik Amazon yang terdaftar. SNS Pemberitahuan mencakup pengenal pekerjaan dan status penyelesaian operasi dalam JSON string. Permintaan analisis video yang berhasil memiliki status SUCCEEDED
. Contohnya, hasil berikut menunjukkan berhasilnya pengolahan tugas pendeteksi label.
{ "JobId": "270c1cc5e1d0ea2fbc59d97cb69a72a5495da75851976b14a1nnnnnnnnnnnn", "Status": "SUCCEEDED", "API": "StartLabelDetection", "JobTag": "DetectingLabels", "Timestamp": 1510865364756, "Video": { "S3ObjectName": "video.mp4", "S3Bucket": "bucket" } }
Untuk informasi selengkapnya, lihat Referensi: Notifikasi hasil analisis video.
Untuk mendapatkan informasi status yang dipublikasikan ke SNS topik Amazon oleh Amazon Rekognition Video, gunakan salah satu opsi berikut:
-
AWS Lambda— Anda dapat berlangganan AWS Lambda fungsi yang Anda tulis ke SNS topik Amazon. Fungsi ini dipanggil ketika Amazon Rekognition memberi tahu topik SNS Amazon bahwa permintaan telah selesai. Gunakan fungsi Lambda jika Anda ingin kode sisi server untuk memproses hasil permintaan analisis video. Misalnya, Anda mungkin ingin menggunakan kode sisi server untuk menganotasi video atau membuat laporan tentang konten video sebelum mengembalikan informasi ke aplikasi klien. Kami juga merekomendasikan pemrosesan sisi server untuk video besar karena Amazon Rekognition API mungkin mengembalikan volume data yang besar.
-
Layanan Antrian Sederhana Amazon - Anda dapat berlangganan SQS antrian Amazon ke topik AmazonSNS. Anda kemudian melakukan polling pada SQS antrean Amazon untuk mengambil status penyelesaian yang diterbitkan oleh Amazon Rekognition saat permintaan analisis video selesai. Untuk informasi selengkapnya, lihat Menganalisis video yang disimpan dalam bucket Amazon S3 dengan Java atau Python () SDK. Gunakan SQS antrian Amazon jika Anda ingin memanggil operasi Video Rekognition Amazon hanya dari aplikasi klien.
penting
Kami tidak merekomendasikan untuk mendapatkan status penyelesaian permintaan dengan berulang kali memanggil operasi Get
Amazon Rekognition Video. Hal ini karena Amazon Rekognition Video membatasi operasi Get
jika permintaan terlalu banyak dibuat. Jika Anda memproses beberapa video secara bersamaan, lebih mudah dan efisien untuk memantau satu SQS antrian untuk pemberitahuan penyelesaian daripada melakukan polling Video Rekognition Amazon untuk status setiap video satu per satu.
Mendapatkan hasil analisis Amazon Rekognition Video
Untuk mendapatkan hasil permintaan analisis video, pertama-tama pastikan bahwa status penyelesaian yang diambil dari SNS topik Amazon adalahSUCCEEDED
. Kemudian panggil GetLabelDetection
, yang memberikan nilai JobId
yang dikembalikan dari StartLabelDetection
. Permintaan JSON ini mirip dengan contoh berikut:
{ "JobId": "270c1cc5e1d0ea2fbc59d97cb69a72a5495da75851976b14a1784ca90fc180e3", "MaxResults": 10, "SortBy": "TIMESTAMP" }
JobId adalah pengidentifikasi untuk operasi analisis video. Mengingat analisis video dapat menghasilkan data dalam jumlah besar, gunakan MaxResults
untuk menentukan hasil jumlah maksimum agar dapat kembali dalam satu operasi Get. Nilai default untuk MaxResults
adalah 1000. Jika Anda menentukan nilai yang lebih besar dari 1000, maksimum hasil dikembalikan adalah 1000. Jika operasi tidak mengembalikan seluruh set hasil, token pemberian nomor halaman untuk halaman berikutnya dikembalikan dalam respons operasi. Jika Anda memiliki token pemberian nomor halaman dari permintaan Get sebelumnya, gunakan token tersebut dengan NextToken
untuk mendapatkan halaman hasil berikutnya.
catatan
Amazon Rekognition mempertahankan hasil operasi analisis video selama 7 hari. Anda tidak akan dapat mengambil hasil analisis setelah periode ini.
Respons GetLabelDetection
operasi JSON mirip dengan yang berikut:
{ "Labels": [ { "Timestamp": 0, "Label": { "Instances": [], "Confidence": 60.51791763305664, "Parents": [], "Name": "Electronics" } }, { "Timestamp": 0, "Label": { "Instances": [], "Confidence": 99.53411102294922, "Parents": [], "Name": "Human" } }, { "Timestamp": 0, "Label": { "Instances": [ { "BoundingBox": { "Width": 0.11109819263219833, "Top": 0.08098889887332916, "Left": 0.8881205320358276, "Height": 0.9073750972747803 }, "Confidence": 99.5831298828125 }, { "BoundingBox": { "Width": 0.1268676072359085, "Top": 0.14018426835536957, "Left": 0.0003282368124928324, "Height": 0.7993982434272766 }, "Confidence": 99.46029663085938 } ], "Confidence": 99.53411102294922, "Parents": [], "Name": "Person" } }, . . . { "Timestamp": 166, "Label": { "Instances": [], "Confidence": 73.6471176147461, "Parents": [ { "Name": "Clothing" } ], "Name": "Sleeve" } } ], "LabelModelVersion": "2.0", "JobStatus": "SUCCEEDED", "VideoMetadata": { "Format": "QuickTime / MOV", "FrameRate": 23.976024627685547, "Codec": "h264", "DurationMillis": 5005, "FrameHeight": 674, "FrameWidth": 1280 } }
GetContentModeration
Operasi GetLabelDetection
dan memungkinkan Anda untuk mengurutkan hasil analisis berdasarkan stempel waktu atau dengan nama label. Anda juga dapat mengumpulkan hasil berdasarkan segmen video atau stempel waktu.
Anda dapat mengurutkan hasil berdasarkan waktu deteksi (milidetik dari awal video) atau menurut abjad sesuai entitas yang terdeteksi (objek, wajah, selebriti, label moderasi, atau orang). Untuk mengurutkan berdasarkan waktu, tetapkan nilai dari SortBy
input parameter ke TIMESTAMP
. Jika SortBy
tidak ditentukan, perilaku default menjadi pengurutan berdasarkan waktu. Contoh sebelumnya diurutkan berdasarkan waktu. Untuk mengurutkan berdasarkan entitas, gunakan parameter input SortBy
dengan nilai yang sesuai untuk operasi yang Anda jalankan. Misalnya, untuk mengurutkan berdasarkan label yang terdeteksi dalam panggilan ke GetLabelDetection
, gunakan nilai NAME
.
Untuk menggabungkan hasil dengan stempel waktu, atur nilai parameter ke. AggregateBy
TIMESTAMPS
Untuk agregat menurut segmen video, tetapkan nilai AggregateBy
keSEGMENTS
. SEGMENTS
mode agregasi akan menggabungkan label dari waktu ke waktu, sementara TIMESTAMPS
memberikan stempel waktu label terdeteksi pada, menggunakan 2 FPS sampling dan per frame output (Catatan: Laju pengambilan sampel saat ini dapat berubah, asumsi tidak boleh dibuat tentang laju pengambilan sampel saat ini). Jika tidak ada nilai yang ditentukan, metode agregasi default adalahTIMESTAMPS
.