Meredaksi wajah dengan menggunakan Azure AI Video Indexer API

Penting

Karena pengumuman penghentian Azure Media Services, Azure AI Video Indexer mengumumkan penyesuaian fitur Azure AI Video Indexer. Lihat Perubahan yang terkait dengan penghentian Azure Media Service (AMS) untuk memahami apa artinya ini untuk akun Azure AI Video Indexer Anda. Lihat panduan Mempersiapkan penghentian AMS: Pembaruan VI dan migrasi.

Anda dapat menggunakan Azure AI Video Indexer untuk mendeteksi dan mengidentifikasi wajah dalam video. Untuk memodifikasi video Anda untuk mengaburkan (redact) wajah individu tertentu, Anda dapat menggunakan API.

Beberapa menit rekaman yang berisi beberapa wajah dapat memakan waktu berjam-jam untuk diredaksi secara manual, tetapi dengan menggunakan preset di VIDEO Indexer API, proses redaksi wajah hanya memerlukan beberapa langkah sederhana.

Artikel ini menunjukkan kepada Anda cara meredaksi wajah dengan menggunakan API. API Video Indexer menyertakan preset Face Redaction yang menawarkan deteksi wajah dan redaksi yang dapat diskalakan (kabur) di cloud. Artikel ini menunjukkan setiap langkah cara meredaksi wajah dengan menggunakan API secara rinci.

Video berikut menunjukkan cara meredaksi video dengan menggunakan Api Pengindeks Video Azure AI.

Kepatuhan, privasi, dan keamanan

Sebagai pengingat penting, Anda harus mematuhi semua hukum yang berlaku dalam penggunaan analitik atau wawasan yang Anda dapatkan dengan menggunakan Video Indexer.

Akses layanan wajah dibatasi berdasarkan kriteria kelayakan dan penggunaan untuk mendukung prinsip Microsoft Responsible AI. Layanan Wajah hanya tersedia untuk pelanggan dan mitra terkelola Microsoft. Gunakan formulir pengambilan Pengenalan Wajah untuk mengajukan akses. Untuk informasi selengkapnya, lihat halaman Akses terbatas Wajah.

Terminologi dan hierarki redaksi wajah

Redaksi wajah dalam Video Indexer bergantung pada output hasil deteksi wajah Video Indexer yang ada yang kami berikan dalam preset Standar Video dan Analisis Lanjutan kami.

Untuk meredaksi video, Anda harus terlebih dahulu mengunggah video ke Video Indexer dan menyelesaikan analisis dengan menggunakan preset video Standar atau Tingkat Lanjut . Anda dapat melakukan ini dengan menggunakan situs web atau API Azure AI Video Indexer. Anda kemudian dapat menggunakan API redaksi wajah untuk mereferensikan video ini dengan menggunakan videoId nilai . Kami membuat video baru di mana wajah yang ditunjukkan diredaksi. Analisis video dan redaksi wajah adalah pekerjaan terpisah yang dapat ditagih. Untuk informasi selengkapnya, lihat halaman harga kami.

Jenis kabur

Anda dapat memilih dari berbagai jenis kabur dalam redaksi wajah. Untuk memilih jenis, gunakan nama atau nomor perwakilan untuk blurringKind parameter dalam isi permintaan:

nomor blurringKind nama blurringKind Contoh
0 MediumBlur Foto buram sedang Azure AI Video Indexer.
1 HighBlur Foto Buram tinggi Pengindeks Video Azure AI.
2 LowBlur Foto Azure AI Video Indexer kabur rendah.
3 Kotak Batas Foto kotak pembatas Azure AI Video Indexer.
4 Hitam Foto jenis kotak hitam Azure AI Video Indexer.

Anda dapat menentukan jenis kabur dalam isi permintaan dengan menggunakan blurringKind parameter .

Berikut contohnya:

{
    "faces": {
        "blurringKind": "HighBlur"
    }
}

Atau, gunakan angka yang mewakili jenis pengaburan yang dijelaskan dalam tabel sebelumnya:

{
    "faces": {
        "blurringKind": 1
    }
}

Filter

Anda dapat menerapkan filter untuk mengatur ID wajah mana yang akan diburamkan. Anda dapat menentukan ID wajah dalam array yang dipisahkan koma dalam isi file JSON. scope Gunakan parameter untuk mengecualikan atau menyertakan wajah-wajah ini untuk redaksi. Dengan menentukan ID, Anda dapat meredaksi semua wajah kecuali ID yang Anda tunjukkan atau hanya meredaksi ID tersebut. Lihat contoh di bagian berikutnya.

Mengecualikan cakupan

Dalam contoh berikut, untuk meredaksi semua wajah kecuali ID wajah 1001 dan 1016, gunakan Exclude cakupan:

{
    "faces": {
        "blurringKind": "HighBlur",
        "filter": {
            "ids": [1001, 1016],
            "scope": "Exclude"
        }
    }
}

Sertakan cakupan

Dalam contoh berikut, untuk meredaksi hanya ID wajah 1001 dan 1016, gunakan Include cakupan:

{
    "faces": {
        "blurringKind": "HighBlur",
        "filter": {
            "ids": [1001, 1016],
            "scope": "Include"
        }
    }
}

Redaksi semua wajah

Untuk meredaksi semua wajah, hapus filter cakupan:

{
    "faces": {
        "blurringKind": "HighBlur",
    }
}

Untuk mengambil ID wajah, Anda dapat membuka video terindeks dan mengambil file artefak. Artefak berisi file faces.json dan file .zip gambar mini yang memiliki semua wajah yang terdeteksi dalam video. Anda dapat mencocokkan wajah dengan ID dan memutuskan ID wajah mana yang akan diredaksikan.

Membuat pekerjaan redaksi

Untuk membuat pekerjaan redaksi, Anda dapat memanggil panggilan API berikut:

POST https://api.videoindexer.ai/{location}/Accounts/{accountId}/Videos/{videoId}/redact[?name][&priority][&privacy][&externalId][&streamingPreset][&callbackUrl][&accessToken]

Nilai berikut diperlukan:

Nama Nilai Deskripsi
Accountid {accountId} ID akun Video Indexer Anda.
Location {location} Wilayah Azure tempat akun Video Indexer Anda berada. Misalnya, westus.
AccessToken {token} Token yang memiliki hak Kontributor Akun yang dihasilkan melalui REST API Azure Resource Manager .
Videoid {videoId} ID video dari video sumber untuk di redact. Anda dapat mengambil ID video dengan menggunakan Api Video Daftar.
Name {name} Nama video baru yang diredaksi.

Berikut adalah contoh permintaan:

https://api.videoindexer.ai/westeurope/Accounts/{id}/Videos/{id}/redact?priority=Low&name=testredaction&privacy=Private&streamingPreset=Default 

Anda dapat menentukan token sebagai header otorisasi yang memiliki jenis bearertoken:{token}nilai kunci , atau Anda dapat menyediakannya sebagai parameter kueri dengan menggunakan ?token={token}.

Anda juga perlu menambahkan isi permintaan dalam format JSON dengan opsi pekerjaan redaksi untuk diterapkan. Berikut contohnya:

{
    "faces": {
        "blurringKind": "HighBlur"
    }
}

Ketika permintaan berhasil, Anda menerima respons HTTP 202 ACCEPTED.

Memantau status pekerjaan

Dalam respons permintaan pembuatan pekerjaan, Anda menerima header Location HTTP yang memiliki URL ke pekerjaan. Anda dapat menggunakan token yang sama untuk membuat permintaan GET ke URL ini untuk melihat status pekerjaan redaksi.

Berikut adalah contoh URL:

https://api.videoindexer.ai/westeurope/Accounts/<id>/Jobs/<id>

Contoh respons adalah:

{
    "creationTime": "2023-05-11T11:22:57.6114155Z",
    "lastUpdateTime": "2023-05-11T11:23:01.7993563Z",
    "progress": 20,
    "jobType": "Redaction",
    "state": "Processing"
}

Jika Anda memanggil URL yang sama saat pekerjaan redaksi selesai, di Location header, Anda mendapatkan URL tanda tangan akses bersama (SAS) penyimpanan ke video yang diredaksi. Contohnya:

https://api.videoindexer.ai/westeurope/Accounts/<id>/Videos/<id>/SourceFile/DownloadUrl 

URL ini mengalihkan ke file .mp4 yang disimpan di akun Azure Storage.

Tanya Jawab Umum

Pertanyaan Jawaban
Dapatkah saya mengunggah video dan mereda dalam satu operasi? Tidak. Anda harus terlebih dahulu mengunggah dan menganalisis video dengan menggunakan API Video Indexer. Kemudian, referensikan video terindeks dalam pekerjaan redaksi Anda.
Bisakah saya menggunakan situs web Azure AI Video Indexer untuk meredaksi video? Tidak. Saat ini Anda hanya dapat menggunakan API untuk membuat pekerjaan redaksi.
Dapatkah saya memutar kembali video yang diredaksi dengan menggunakan situs web Video Indexer? Ya. Video yang diredaksi terlihat di situs web Video Indexer seperti video terindeks lainnya, tetapi tidak berisi wawasan apa pun.
Bagaimana cara menghapus video yang diredaksi? Anda dapat menggunakan Delete Video API dan memberikan Videoid nilai untuk video yang diredaksi.
Apakah saya perlu melewati pembatasan identifikasi wajah untuk menggunakan redaksi wajah? Kecuali kau mewakili departemen kepolisian di Amerika Serikat, tidak. Bahkan jika Anda terjaga, kami terus menawarkan deteksi wajah. Kami tidak menawarkan identifikasi wajah jika Anda terjaga. Namun, Anda dapat meredaksi semua wajah dalam video hanya dengan menggunakan deteksi wajah.
Apakah redaksi wajah akan menimpa video asli saya? Tidak. Pekerjaan redaksi wajah membuat file output video baru.
Tidak semua wajah diredaksi dengan benar. Apa yang bisa saya lakukan? Redaksi bergantung pada deteksi wajah awal dan output pelacakan alur analisis. Meskipun kita mendeteksi semua wajah sebagian besar waktu, ada keadaan di mana kita tidak dapat mendeteksi wajah. Faktor-faktor seperti sudut wajah, jumlah bingkai wajah ada, dan kualitas video sumber memengaruhi kualitas redaksi wajah. Untuk informasi selengkapnya, lihat Wawasan wajah.
Dapatkah saya meredaksi objek selain wajah? Tidak. Saat ini, kami hanya menawarkan redaksi wajah. Jika Anda memiliki kebutuhan untuk meredaksi objek lain, Anda dapat memberikan umpan balik tentang produk kami di saluran Azure User Voice .
Berapa lama URL SAS valid untuk mengunduh video yang diredaksi? Untuk mengunduh video yang diredaksi setelah URL SAS kedaluwarsa, Anda perlu memanggil URL status pekerjaan awal. Yang terbaik adalah menyimpan URL ini Jobstatus dalam database di ujung belakang Anda untuk referensi di masa mendatang.

Kode kesalahan

Bagian berikut ini menjelaskan kesalahan yang mungkin terjadi saat Anda menggunakan redaksi wajah.

Respons: 404 Tidak Ditemukan

Akun tidak ditemukan atau video tidak ditemukan.

Header respons

Nama Wajib Tipe Deskripsi
x-ms-request-id salah string Pengidentifikasi unik global (GUID) untuk permintaan ditetapkan oleh server untuk tujuan instrumentasi. Server memastikan bahwa semua log yang terkait dengan penanganan permintaan dapat ditautkan ke ID permintaan server. Klien dapat memberikan ID permintaan ini dalam tiket dukungan sehingga teknisi dukungan dapat menemukan log yang ditautkan ke permintaan khusus ini. Server memastikan bahwa ID permintaan unik untuk setiap pekerjaan.

Isi respons

Nama Wajib Tipe
ErrorType salah ErrorType
Message salah string

Default JSON

{
    "ErrorType": "GENERAL",
    "Message": "string"
}

Respons: 400 Permintaan Buruk

Input tidak valid atau tidak dapat meredaksi video karena unggahan aslinya gagal. Silakan unggah video lagi.

Input tidak valid atau tidak dapat meredaksi video karena unggahan aslinya gagal. Unggah video lagi.

Header respons

Nama Wajib Tipe Deskripsi
x-ms-request-id salah string GUID untuk permintaan ditetapkan oleh server untuk tujuan instrumentasi. Server memastikan bahwa semua log yang terkait dengan penanganan permintaan dapat ditautkan ke ID permintaan server. Klien dapat memberikan ID permintaan ini dalam tiket dukungan sehingga teknisi dukungan dapat menemukan log yang ditautkan ke permintaan khusus ini. Server memastikan bahwa ID permintaan unik untuk setiap pekerjaan.

Isi respons

Nama Wajib Tipe
ErrorType salah ErrorType
Message salah string

Default JSON

{
    "ErrorType": "GENERAL",
    "Message": "string"
}

Respons: 409 Konflik

Video sudah diindeks.

Header respons

Nama Wajib Tipe Deskripsi
x-ms-request-id salah string GUID untuk permintaan ditetapkan oleh server untuk tujuan instrumentasi. Server memastikan bahwa semua log yang terkait dengan penanganan permintaan dapat ditautkan ke ID permintaan server. Klien dapat memberikan ID permintaan ini dalam tiket dukungan sehingga teknisi dukungan dapat menemukan log yang ditautkan ke permintaan khusus ini. Server memastikan bahwa ID permintaan unik untuk setiap pekerjaan.

Isi respons

Nama Wajib Tipe
ErrorType salah ErrorType
Message salah string

Default JSON

{
    "ErrorType": "GENERAL",
    "Message": "string"
}

Respons: 401 Tidak Sah

Token akses tidak berwenang untuk mengakses akun.

Header respons

Nama Wajib Tipe Deskripsi
x-ms-request-id salah string GUID untuk permintaan ditetapkan oleh server untuk tujuan instrumentasi. Server memastikan bahwa semua log yang terkait dengan penanganan permintaan dapat ditautkan ke ID permintaan server. Klien dapat memberikan ID permintaan ini dalam tiket dukungan sehingga teknisi dukungan dapat menemukan log yang ditautkan ke permintaan khusus ini. Server memastikan bahwa ID permintaan unik untuk setiap pekerjaan.

Isi respons

Nama Wajib Tipe
ErrorType salah ErrorType
Message salah string

Default JSON

{
    "ErrorType": "USER_NOT_ALLOWED",
    "Message": "Access token is not authorized to access account 'SampleAccountId'."
}

Respons: 500 Kesalahan Server Internal

Terjadi kesalahan pada server.

Header respons

Nama Wajib Tipe Deskripsi
x-ms-request-id salah string GUID untuk permintaan ditetapkan oleh server untuk tujuan instrumentasi. Server memastikan bahwa semua log yang terkait dengan penanganan permintaan dapat ditautkan ke ID permintaan server. Klien dapat memberikan ID permintaan ini dalam tiket dukungan sehingga teknisi dukungan dapat menemukan log yang ditautkan ke permintaan khusus ini. Server memastikan bahwa ID permintaan unik untuk setiap pekerjaan.

Isi respons

Nama Wajib Tipe
ErrorType salah ErrorType
Message salah string

Default JSON

{
    "ErrorType": "GENERAL",
    "Message": "There was an error."
}

Respons: 429 Terlalu banyak permintaan

Terlalu banyak permintaan yang dikirim. Retry-After Gunakan header respons untuk memutuskan kapan harus mengirim permintaan berikutnya.

Header respons

Nama Wajib Tipe Deskripsi
Retry-After salah Integer Bilangan bulat desimal non-negatif yang menunjukkan jumlah detik untuk ditunda setelah respons diterima.

Respons: Waktu Habis Gateway 504

Server tidak merespons gateway dalam waktu yang diharapkan.

Header respons

Nama Wajib Tipe Deskripsi
x-ms-request-id salah string GUID untuk permintaan ditetapkan oleh server untuk tujuan instrumentasi. Server memastikan bahwa semua log yang terkait dengan penanganan permintaan dapat ditautkan ke ID permintaan server. Klien dapat memberikan ID permintaan ini dalam tiket dukungan sehingga teknisi dukungan dapat menemukan log yang ditautkan ke permintaan khusus ini. Server memastikan bahwa ID permintaan unik untuk setiap pekerjaan.

Default JSON

{
    "ErrorType": "SERVER_TIMEOUT",
    "Message": "Server did not respond to gateway within expected time"
}