Aracılığıyla paylaş


Azure AI Video Indexer API'lerini kullanarak yüzleri yeniden oluşturma

Uyarı

Azure AI Video Indexer (VI) geçtiğimiz yıl kullanımdan kaldırılma nedeniyle Azure Media Services'a (AMS) bağımlılığının kaldırılmaya başlanacağını duyurdu. Özellik ayarlamaları ve değişiklikler duyuruldu ve bir geçiş kılavuzu sağlandı.

Geçişi tamamlamak için son tarih 30 Haziran 2024'dü. VI, VI hesabınızı güncelleştirebilmeniz ve AMS VI varlık geçişini 31 Ağustos 2024'e kadar kabul edebilmeniz için güncelleştirme/geçiş son tarihini uzatmıştır.

Ancak 30 Haziran'dan sonra VI hesabınızı güncelleştirmediyseniz yeni videoları dizine ekleyemez veya geçirilmemiş videoları oynatamazsınız. Hesabınızı 30 Haziran'dan sonra güncelleştirirseniz, dizin oluşturmayı hemen sürdürebilirsiniz, ancak AMS VI geçişi aracılığıyla geçirilene kadar hesap güncelleştirmeden önce dizine alınmış videoları oynatamazsınız.

Azure AI Video Indexer'ı kullanarak videodaki yüzleri algılayabilir ve tanımlayabilirsiniz. Videonuzu belirli kişilerin yüzlerini bulanıklaştıracak (yeniden işlem) olacak şekilde değiştirmek için API'yi kullanabilirsiniz.

Birden çok yüz içeren birkaç dakikalık görüntülerin el ile yeniden işlenmesi saatler sürebilir, ancak Video Indexer API'sindeki ön ayarları kullanarak yüz redaksiyon işlemi yalnızca birkaç basit adım gerektirir.

Bu makalede, API kullanarak yüzleri nasıl yeniden dağıtabileceğiniz gösterilmektedir. Video Indexer API'si, bulutta ölçeklenebilir yüz algılama ve yeniden oluşturma (bulanıklaştırma) sunan bir Yüz Değiştirme ön ayarı içerir. Bu makalede, API'yi kullanarak yüzleri yeniden işlemden çıkarma adımlarının her biri ayrıntılı olarak gösterilmektedir.

Aşağıdaki videoda, Azure AI Video Indexer API'sini kullanarak bir videoyu yeniden işlemden geçirme adımları gösterilmektedir.

Uyumluluk, gizlilik ve güvenlik

Önemli bir hatırlatma olarak, Video Indexer kullanarak türetdiğiniz analiz veya içgörüleri kullanımınızda geçerli olan tüm yasalara uymanız gerekir.

Yüz tanıma hizmeti erişimi, Microsoft Sorumlu yapay zeka ilkelerini desteklemek için uygunluk ve kullanım ölçütlerine göre sınırlıdır. Yüz tanıma hizmeti yalnızca Microsoft tarafından yönetilen müşteriler ve iş ortakları tarafından kullanılabilir. Erişim için başvurmak için Yüz Tanıma giriş formunu kullanın. Daha fazla bilgi için Yüz sınırlı erişim sayfasına bakın.

Yüz değiştirme terminolojisi ve hiyerarşisi

Video Indexer'da yüz değiştirme, Video Standart ve Gelişmiş Analiz ön ayarlarımızda sağladığımız mevcut Video Indexer yüz algılama sonuçlarının çıkışına dayanır.

Bir videoyu yeniden uygulamak için önce Video Indexer'a bir video yüklemeniz ve Standart veya Gelişmiş video ön ayarlarını kullanarak bir analizi tamamlamanız gerekir. Bunu Azure AI Video Indexer web sitesini veya API'sini kullanarak yapabilirsiniz. Ardından, bu videoya başvurmak için değerini kullanarak yüz değiştirme API'sini videoId kullanabilirsiniz. Belirtilen yüzlerin yeniden işlendiği yeni bir video oluşturuyoruz. Hem video analizi hem de yüz değiştirme ayrı faturalanabilir işlerdir. Daha fazla bilgi için fiyatlandırma sayfamıza bakın.

Bulanıklaştırma türleri

Yüz değiştirmede farklı bulanıklaştırma türleri arasından seçim yapabilirsiniz. Bir tür seçmek için, istek gövdesindeki blurringKind parametre için bir ad veya temsil numarası kullanın:

blurringKind sayı blurringKind adı Örnek
0 MediumBlur Azure AI Video Indexer orta bulanıklık fotoğrafı.
1 HighBlur Azure AI Video Indexer'ın yüksek bulanıklık fotoğrafı.
2 LowBlur Azure AI Video Indexer'ın düşük bulanıklık fotoğrafı.
3 Sınırlayıcı Kutu Azure AI Video Indexer sınırlayıcı kutularının fotoğrafı.
4 Siyah Azure AI Video Indexer siyah kutu türünün fotoğrafı.

parametresini kullanarak blurringKind istek gövdesinde bulanıklaştırma türünü belirtebilirsiniz.

Bir örnek aşağıda verilmiştir:

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

Veya önceki tabloda açıklanan bulanıklaştırma türünü temsil eden bir sayı kullanın:

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

Filtreler

Bulanıklaştıracak yüz kimliklerini ayarlamak için filtreler uygulayabilirsiniz. JSON dosyasının gövdesinde virgülle ayrılmış bir dizideki yüzlerin kimliklerini belirtebilirsiniz. scope Bu yüzleri dışlamak veya redaction için dahil etmek için parametresini kullanın. Kimlikleri belirterek, belirttiğiniz kimlikler dışındaki tüm yüzleri yeniden düzenleyebilir veya yalnızca bu kimlikleri yeniden düzenleyebilirsiniz. Sonraki bölümlerdeki örneklere bakın.

Kapsamı dışla

Aşağıdaki örnekte, yüz kimlikleri 1001 ve 1016 dışındaki tüm yüzleri yeniden uygulamak için kapsamı kullanın Exclude :

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

Kapsamı dahil et

Aşağıdaki örnekte, yalnızca 1001 ve 1016 kimliklerini yeniden uygulamak için kapsamı kullanın Include :

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

Tüm yüzleri yeniden işlem

Tüm yüzleri yeniden uygulamak için kapsam filtresini kaldırın:

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

Yüz kimliğini almak için dizine alınmış videoya gidebilir ve yapıt dosyasını alabilirsiniz. Yapıt, videoda algılanan tüm yüzleri içeren bir faces.json dosyası ve küçük resim .zip dosyası içerir. Yüzü kimlikle eşleştirebilir ve hangi yüz kimliklerini yeniden işlem yapabileceğinize karar vekleyebilirsiniz.

Redaction işi oluşturma

Redaction işi oluşturmak için aşağıdaki API çağrısını çağırabilirsiniz:

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

Aşağıdaki değerler gereklidir:

Veri Akışı Adı Değer Açıklama
Accountid {accountId} Video Indexer hesabınızın kimliği.
Location {location} Video Indexer hesabınızın bulunduğu Azure bölgesi. Örneğin, westus.
AccessToken {token} Azure Resource Manager REST API aracılığıyla oluşturulan Hesap Katkıda Bulunanı haklarına sahip belirteç.
Videoid {videoId} Yeniden işlem için kaynak videonun video kimliği. Video Listesi API'sini kullanarak video kimliğini alabilirsiniz.
Name {name} Yeni, yeniden eklenen videonun adı.

bir istek örneği aşağıda verilmişti:

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

Belirteci anahtar değer türüne bearertoken:{token}sahip bir yetkilendirme üst bilgisi olarak belirtebilir veya kullanarak ?token={token}sorgu parametresi olarak sağlayabilirsiniz.

Ayrıca, uygulanacak redaction işi seçenekleriyle JSON biçiminde bir istek gövdesi eklemeniz gerekir. Bir örnek aşağıda verilmiştir:

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

İstek başarılı olduğunda yanıtını HTTP 202 ACCEPTEDalırsınız.

İş durumunu izleme

İş oluşturma isteğinin yanıtında, işin URL'sine sahip bir HTTP üst bilgisi Location alırsınız. Redaction işinin durumunu görmek üzere bu URL'ye get isteğinde bulunmak için aynı belirteci kullanabilirsiniz.

Aşağıda örnek bir URL verilmişti:

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

Aşağıda bir yanıt örneği yer alır:

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

Yeniden oluşturma işi tamamlandığında aynı URL'yi çağırırsanız, üst bilgide Location , yeniden uygulanan videonun depolama paylaşılan erişim imzası (SAS) URL'sini alırsınız. Örneğin:

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

Bu URL, Azure Depolama hesabında depolanan .mp4 dosyasına yeniden yönlendirir.

SSS

Soru Yanıt
Tek bir işlemde video yükleyip yeniden işlem yapabilir miyim? Hayır Önce Video Indexer API'sini kullanarak bir videoyu karşıya yüklemeniz ve analiz etmeniz gerekir. Ardından, redaction işinizde dizine alınan videoya başvurun.
Azure AI Video Indexer web sitesini kullanarak videoyu yeniden düzenleyebilir miyim? Hayır Şu anda bir redaction işi oluşturmak için yalnızca API'yi kullanabilirsiniz.
Video Indexer web sitesini kullanarak yeniden işlem yapılan videoyu oynatabilir miyim? Evet. Düzeltilen video, diğer dizinlenmiş videolarda olduğu gibi Video Indexer web sitesinde görünür, ancak herhangi bir içgörü içermez.
Yeniden Nasıl yaparım? video silinsin mi? Video Sil API'sini kullanabilir ve yeniden işlem yapılan videonun Videoid değerini sağlayabilirsiniz.
Yüz redaksiyon kullanmak için yüz tanıma geçişi geçirmem gerekiyor mu? Birleşik Devletler bir polis departmanını temsil etmediğin sürece, hayır. Kapınız kapalı olsa bile yüz algılama özelliği sunmaya devam ediyoruz. Kapınız kapalıysa yüz belirleme teklifinde bulunamayız. Ancak, yalnızca yüz algılamayı kullanarak bir videodaki tüm yüzleri yeniden düzenleyebilirsiniz.
Özgün videomun üzerine yeniden yazmayla karşılaşacak mı? Hayır Yüz değiştirme işi yeni bir video çıkış dosyası oluşturur.
Tüm yüzler düzgün şekilde yeniden işlenmez. Ne yapabilirim? Redaction, analiz işlem hattının ilk yüz algılama ve izleme çıkışına dayanır. Çoğu zaman tüm yüzleri algılasak da, bir yüzü algılayamayız. Yüz açısı, yüzün mevcut kare sayısı ve kaynak videonun kalitesi gibi faktörler yüz redaksiyonunun kalitesini etkiler. Daha fazla bilgi için bkz . Yüz tanıma içgörüleri.
Yüzler dışındaki nesneleri yeniden düzenleyebilir miyim? Hayır Şu anda yalnızca yüz değiştirme özelliği sunuyoruz. Diğer nesneleri yeniden dağıtmanız gerekiyorsa, Azure User Voice kanalında ürünümüz hakkında geri bildirim sağlayabilirsiniz.
Yeniden işlem yapılan videoyu indirmek için SAS URL'si ne kadar süreyle geçerlidir? SAS URL'sinin süresi dolduktan sonra yeniden işlem yapılan videoyu indirmek için ilk iş durumu URL'sini çağırmanız gerekir. Daha sonra başvurmak için bu Jobstatus URL'leri arka ucunuzdaki bir veritabanında tutmak en iyisidir.

Hata kodları

Aşağıdaki bölümlerde, yüz değiştirme özelliğini kullandığınızda oluşabilecek hatalar açıklanmaktadır.

Yanıt: 404 Bulunamadı

Hesap bulunamadı veya video bulunamadı.

Yanıt üst bilgileri

Veri Akışı Adı Zorunlu Türü Açıklama
x-ms-request-id yanlış Dize İstek için genel olarak benzersiz bir tanımlayıcı (GUID), izleme amacıyla sunucu tarafından atanır. Sunucu, isteği işlemeyle ilişkili tüm günlüklerin sunucu istek kimliğine bağlanamasını sağlar. Bir istemci, destek mühendislerinin bu isteğe bağlı günlükleri bulabilmesi için bu istek kimliğini bir destek biletinde sağlayabilir. Sunucu, istek kimliğinin her iş için benzersiz olmasını sağlar.

Yanıt gövdesi

Veri Akışı Adı Zorunlu Tür
ErrorType yanlış ErrorType
Message yanlış Dize

Varsayılan JSON

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

Yanıt: 400 Hatalı İstek

Geçersiz giriş veya özgün karşıya yükleme başarısız olduğundan videoda yeniden işlem gerçekleştirilemiyor. Lütfen videoyu yeniden yükleyin.

Geçersiz giriş veya özgün karşıya yükleme başarısız olduğundan videoda işlem gerçekleştirilemiyor. Videoyu yeniden karşıya yükleyin.

Yanıt üst bilgileri

Veri Akışı Adı Zorunlu Türü Açıklama
x-ms-request-id yanlış Dize İstek için guid, izleme amacıyla sunucu tarafından atanır. Sunucu, isteği işlemeyle ilişkili tüm günlüklerin sunucu istek kimliğine bağlanamasını sağlar. Bir istemci, destek mühendislerinin bu isteğe bağlı günlükleri bulabilmesi için bu istek kimliğini bir destek biletinde sağlayabilir. Sunucu, istek kimliğinin her iş için benzersiz olmasını sağlar.

Yanıt gövdesi

Veri Akışı Adı Zorunlu Tür
ErrorType yanlış ErrorType
Message yanlış Dize

Varsayılan JSON

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

Yanıt: 409 Çakışması

Video zaten dizine alınıyor.

Yanıt üst bilgileri

Veri Akışı Adı Zorunlu Türü Açıklama
x-ms-request-id yanlış Dize İstek için guid, izleme amacıyla sunucu tarafından atanır. Sunucu, isteği işlemeyle ilişkili tüm günlüklerin sunucu istek kimliğine bağlanamasını sağlar. Bir istemci, destek mühendislerinin bu isteğe bağlı günlükleri bulabilmesi için bu istek kimliğini bir destek biletinde sağlayabilir. Sunucu, istek kimliğinin her iş için benzersiz olmasını sağlar.

Yanıt gövdesi

Veri Akışı Adı Zorunlu Tür
ErrorType yanlış ErrorType
Message yanlış Dize

Varsayılan JSON

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

Yanıt: 401 Yetkisiz

Erişim belirteci hesaba erişme yetkisine sahip değil.

Yanıt üst bilgileri

Veri Akışı Adı Zorunlu Türü Açıklama
x-ms-request-id yanlış Dize İstek için guid, izleme amacıyla sunucu tarafından atanır. Sunucu, isteği işlemeyle ilişkili tüm günlüklerin sunucu istek kimliğine bağlanamasını sağlar. Bir istemci, destek mühendislerinin bu isteğe bağlı günlükleri bulabilmesi için bu istek kimliğini bir destek biletinde sağlayabilir. Sunucu, istek kimliğinin her iş için benzersiz olmasını sağlar.

Yanıt gövdesi

Veri Akışı Adı Zorunlu Tür
ErrorType yanlış ErrorType
Message yanlış Dize

Varsayılan JSON

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

Yanıt: 500 İç Sunucu Hatası

Sunucuda bir hata oluştu.

Yanıt üst bilgileri

Veri Akışı Adı Zorunlu Türü Açıklama
x-ms-request-id yanlış Dize İstek için guid, izleme amacıyla sunucu tarafından atanır. Sunucu, isteği işlemeyle ilişkili tüm günlüklerin sunucu istek kimliğine bağlanamasını sağlar. Bir istemci, destek mühendislerinin bu isteğe bağlı günlükleri bulabilmesi için bu istek kimliğini bir destek biletinde sağlayabilir. Sunucu, istek kimliğinin her iş için benzersiz olmasını sağlar.

Yanıt gövdesi

Veri Akışı Adı Zorunlu Tür
ErrorType yanlış ErrorType
Message yanlış Dize

Varsayılan JSON

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

Yanıt: 429 Çok fazla istek var

Çok fazla istek gönderildi. Bir sonraki isteğin Retry-After ne zaman göndereceğine karar vermek için yanıt üst bilgisini kullanın.

Yanıt üst bilgileri

Veri Akışı Adı Zorunlu Türü Açıklama
Retry-After yanlış integer Yanıt alındıktan sonra ertelenecek saniye sayısını gösteren negatif olmayan ondalık tamsayı.

Yanıt: 504 Ağ Geçidi Zaman Aşımı

Sunucu ağ geçidine beklenen süre içinde yanıt vermedi.

Yanıt üst bilgileri

Veri Akışı Adı Zorunlu Türü Açıklama
x-ms-request-id yanlış Dize İstek için guid, izleme amacıyla sunucu tarafından atanır. Sunucu, isteği işlemeyle ilişkili tüm günlüklerin sunucu istek kimliğine bağlanamasını sağlar. Bir istemci, destek mühendislerinin bu isteğe bağlı günlükleri bulabilmesi için bu istek kimliğini bir destek biletinde sağlayabilir. Sunucu, istek kimliğinin her iş için benzersiz olmasını sağlar.

Varsayılan JSON

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