Azure AI Video Indexer API'lerini kullanarak yüzleri yeniden oluşturma
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 | |
1 | HighBlur | |
2 | LowBlur | |
3 | Sınırlayıcı Kutu | |
4 | Siyah |
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 ACCEPTED
alı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 algılama çı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"
}