Tarayıcıda yüzleri ve elleri izlemek için MediaPipe ve TensorFlow.js kullanın

Kaynak: TensorFlow

Bu makale hakkında 2626 kelime , Okumanız tavsiye edilir 5 dakika

Bu makale, yüzlerin ve ellerin temel özellik noktalarını izlemek için iki yeni paket sunar: Facemesh ve Handpose.

Yakın zamanda iki yeni paket yayınladık: Facemesh ile Handpose , Yüzün ve elin temel özellik noktalarını sırasıyla izlemek için kullanılır. Bu sefer yayınlanan paket Google Research MediaPipe ile TensorFlow.js Takımın çalışması.

Tarayıcınızda canlı demo sürümünü deneyin

Facemesh paketi bir görüntüdeki yüz sınırlarını ve özellik noktalarını bulabilirken, Handpose ise el sınırlarını ve özellik noktalarını bulmak için kullanılabilir. Bu paketler küçüktür, hızlıdır ve tamamen tarayıcıda çalışabilir, böylece veriler hiçbir zaman kullanıcının cihazından çıkmaz, böylece kullanıcının gizliliğini korur. Şimdi bu paketleri aşağıdaki bağlantıları kullanarak deneyebilirsiniz:

  • Facemesh
  • Handpose

Bu paketler ayrıca MediaPipe'da (çok modlu farkındalık ardışık düzenleri oluşturmak için bir kitaplık) bileşenler olarak sağlanmıştır:

  • MediaPipe yüz izleme
  • MediaPipe el duruş takibi

Gerçek zamanlı yüz ve el izlemenin yeni bir etkileşimli mod açabileceğini umuyoruz: yüzün geometrik konumu yüz ifadesi sınıflandırmasının temelidir ve el izleme, hareket tanımanın ilk adımıdır. Bu tür bir işlevin İnternet etkileşimi ve erişilebilirliği uygulamasını nasıl daha da genişleteceğini dört gözle bekliyoruz.

Derinlemesine anlayış: Facemesh

Facemesh paketi, görüntü veya video akışından yaklaşık 3D yüz geometrisini çıkarmak için yalnızca tek bir kamera (derinlik sensörü yok) girişi gerektirir. Bu geometrik şekil, dudak konturları ve yüz konturları gibi detaylar dahil olmak üzere yüzün gözlerini, burnunu ve dudaklarını konumlandırabilir. Bu bilgiler, yüz ifadesi sınıflandırması gibi aşağı akış görevleri için kullanılabilir (ancak tanımlama için kullanılamaz). Modelin farklı veri kümelerindeki performansıyla ilgili ayrıntılar için lütfen Model kartı . Bu paket şu adresten de edinilebilir: MediaPipe elde edin.

Verim

Facemesh, çeşitli mobil cihazlarda gerçek zamanlı çıkarımlar için çok uygun olan, yalnızca yaklaşık 3MB alan kaplayan hafif bir pakettir. Test ederken, lütfen TensorFlow.js'nin ayrıca WebGL dahil olmak üzere aralarından seçim yapabileceğiniz birkaç farklı arka uç sağladığını unutmayın. XNNPACK Düşük kaliteli GPU'lara sahip cihazlar için WebAssembly (WASM). Aşağıdaki tablo, bu paketin birkaç farklı cihazdaki ve TensorFlow.js arka uçlarındaki performansını gösterir:

Kurulum

Facemesh paketini kurmanın iki yolu vardır:

1. NPM aracılığıyla:

* '@ tensorflow-models / facemesh'den facemesh olarak içe aktarın;

2. Komut dosyası etiketi aracılığıyla:

< script src = "https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-core" > < /senaryo > < script src = "https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-converter" > < /senaryo > < script src = "https://cdn.jsdelivr.net/npm/@tensorflow-models/facemesh" > < /senaryo > ''

kullanım

Paketi kurduktan sonra, yüz özelliği noktalarını algılamaya başlamak için yalnızca modeli yüklemeniz ve görüntüyü aktarmanız gerekir:

// MediaPipe facemesh model varlıklarını yükleyin. const model = facemesh.load (); // Elde etmek için modele bir video akışı geçirin // MediaPipe grafiğinden tespit edilen yüzler dizisi. const video = document.querySelector ("video"); const faces = await model.estimateFaces (video); // Her yüz nesnesi bir "scaledMesh" özelliği içerir, // 468 yer işaretinden oluşan bir dizi. faces.forEach (face = > console.log (face.scaledMesh));

Node.js ardışık düzeni kullanımı için bile, Yüzleri tahmin etmek için video ve statik görüntüler girebilir ImageData arayüz. Facemesh daha sonra her yüz için girdiyle ilgili bilgiler için bir dizi tahmin nesnesi döndürür (örneğin, güvenilirlik puanı ve yüzün 468 özellik noktasının konumu). Aşağıdakiler tahmin edilen nesnelerin örnekleridir:

{ faceInViewConfidence: 1, sınırlayıcı kutu: { Sol üst:, // sağ alt:, }, örgü: , scaledMesh: , ek açıklamalar: { siluet: , ... } }

Bakın Dokümantasyon API hakkında daha fazla bilgi edinmek için.

Derinlemesine anlayış: Handpose

Handpose paketi, giriş görüntüsündeki veya video akışındaki elleri algılamak ve her eli konumlandırmak için 213D özellik noktası döndürmek için kullanılır. Bu özellik noktaları, her bir parmak ekleminin ve avuç içi pozisyonunu içerir. Ağustos 2019'da geçtik MediaPipe Modeli yayınlayın-Model mimarisi ile ilgili daha fazla bilgiyi model ile birlikte yayınlanan makalede bulabilirsiniz. Handpose'un farklı veri kümelerindeki performansıyla ilgili ayrıntılar için lütfen Model kartı . Bu paket şu adresten de edinilebilir: MediaPipe elde edin.

Verim

Handpose, gerçek zamanlı muhakeme için uygun, yaklaşık 12MB alan kaplayan nispeten hafif bir pakettir. Aşağıdaki tablo, yazılım paketinin farklı cihazlardaki performansını göstermektedir:

Kurulum

Handpose paketini kurmanın iki yolu vardır:

1. NPM ile yükleyin:

'@ tensorflow-models / handpose'dan el izi olarak içe aktar *;

2. Komut dosyası etiketi aracılığıyla:

< script src = "https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-core" > < /senaryo > < script src = "https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-converter" > < /senaryo > < script src = "https://cdn.jsdelivr.net/npm/@tensorflow-models/handpose" > < /senaryo >

kullanım

Yazılım paketini yükledikten sonra, el özelliklerini izlemeye başlamak için yalnızca modeli yüklemeniz ve görüntüyü iletmeniz gerekir:

// MediaPipe el tipi modelini yükleyin const model = await handpose.load (); // Elde etmek için modele bir video akışı geçirin // MediaPipe grafiğinden bir tahmin. const video = document.querySelector ("video"); const hands = await model.estimateHands (video); // Her el nesnesi bir "yer işaretleri" özelliği içerir, // 21 adet 3 boyutlu yer işareti dizisi. hands.forEach (el = > console.log (hand.landmarks));

Facemesh gibi, tahmini girdi Eller video, statik görüntü veya ImageData arayüz. Paket daha sonra giriş elini tanımlayan bir dizi nesne döndürür. Aşağıdakiler tahmin edilen nesnelerin örnekleridir:

{ handInViewConfidence: 1, sınırlayıcı kutu: { Sol üst:, // sağ alt:, }, önemli noktalar: , ek açıklamalar: { indexFinger: , ... } }

Bakın Dokümantasyon API'ler hakkında daha fazla bilgi edinmek için.

Geleceğe bakmak

Facemesh ve Handpose'u geliştirmeye devam edeceğiz. Yakın gelecekte, çoklu el takibi için de destek ekleyeceğiz. Ayrıca, özellikle mobil cihazlarda modeli hızlandırmaya kararlıyız. Geçtiğimiz birkaç aylık geliştirme sürecinde, Facemesh ve Handpose'un performansında önemli gelişmeler gördük ve bu eğilimin devam edeceğine inanıyoruz.

MediaPipe ekibi daha akıcı bir model mimarisi geliştiriyor ve TensorFlow.js ekibi, operatör füzyonu gibi muhakemeyi hızlandırmanın yollarını araştırıyor. Çıkarım hızını artırmak, gerçek zamanlı ardışık düzenlerde kullanım için daha büyük ve daha doğru modellerin kilidini açabilir.

Takip planı

  • Deneyin model ! Senin için geri bildirim veya görüş , Minnettar oluruz!
  • Bu Google Araştırma belgesini okuyun: https://arxiv.org/abs/1907.06724 Facemesh hakkında daha fazla bilgi edinmek için
  • "Makine Öğrenimi Yoluyla Gerçek Zamanlı AR Kendini İfade Etme" makalesini okuyun ve Android AR SDK'nın bir parçası olarak facemesh'in yayınlandığını duyurun
  • MediaPipe'a elle kullanımın dahil edilmesi hakkında daha fazla bilgi edinmek için bu "MediaPipe ile Cihazda Gerçek Zamanlı El Takibi" ni okuyun.

Teşekkürler

Bu paketlerin yerel uygulamasını bizimle cömertçe paylaştıkları için MediaPipe ekibine teşekkür ederiz. MediaPipe temel modeli geliştirdi ve eğitti ve tüm içeriği entegre etmek için işlem sonrası grafikler tasarladı.

Bu makalede bahsedilen ilgili içerik hakkında daha fazla bilgi edinmek istiyorsanız, lütfen aşağıdaki belgelere bakın. Bu belgeler, bu makalede bahsedilen konuların çoğunu incelemektedir:

Facemeshhttps: //www.npmjs.com/package/@tensorflow-models/facemesh

Handposehttps: //www.npmjs.com/package/@tensorflow-models/handpose

MediaPipehttps: //mediapipe.dev/

TensorFlow.js https://github.com/tensorflow/tfjs

Demo Facemesh https://storage.googleapis.com/tfjs-models/demos/facemesh/index.html

Demo Handposehttps: //storage.googleapis.com/tfjs-models/demos/handpose/index.html

MediaPipehttps: //github.com/google/mediapipe/

MediaPipe yüz izleme https://github.com/google/mediapipe/tree/master/mediapipe/graphs/face_detection

MediaPipe el hareketi izleme https://github.com/google/mediapipe/blob/master/mediapipe/docs/hand_tracking_mobile_gpu.md

Model kartı https://drive.google.com/file/d/1VFC_wIpw4O7xBOiTgUldl79d9LA-LsnA/view

XNNPACKhttps: //github.com/google/XNNPACK

ImageDatahttps: //developer.mozilla.org/en-US/docs/Web/API/ImageData

Belgeler https://github.com/tensorflow/tfjs-models/tree/master/facemesh

Model kartı https://drive.google.com/file/d/1sv4sSb9BSNVZhLzxXJ0jBv9DqD-4jnAz/view

MediaPipehttps: //github.com/google/mediapipe/blob/master/mediapipe/docs/hand_tracking_desktop.md

Belgeler https://github.com/tensorflow/tfjs-models/tree/master/handpose

Model https://github.com/tensorflow/tfjs-models

Geri bildirim https://github.com/tensorflow/tfjs/issues/new

Görüş https://github.com/tensorflow/tfjs-models/pulls

-Bitiş-

Tsinghua-Qingdao Veri Bilimi Enstitüsü'nün resmi WeChat kamu platformunu takip edin " AI Veri Pastası "Ve kız kardeş numarası" Veri Pastası THU "Daha fazla ders avantajı ve kaliteli içerik elde edin.

İtalyan Covid-19 virüsü enfeksiyonu matematiksel modeli ve tahmini (ekli kod)
önceki
Öneri sisteminde bilgi grafiğine dayalı negatif örnekleme modelinin uygulanması (açık kaynak)
Sonraki
Gelişmiş matematiksel denklemleri çözmek için sinir ağlarını kullanmayı öğretin!
Google Translate ezildi! Dünyanın ilk çeviri motoru DeepL geri döndü ve "çılgın ayrıntılar" bitti
Matplotlib çizimi için size 16 pratik ipucu gönderin (ekli kod)
Çin Bilim ve Teknoloji Üniversitesi × MSRA | Dr. Zhou Mingin Ders Kaydı: Doğal Dil İşleme Hayatı Daha İyi Hale Getiriyor
"Ürpertici" bir dönüm noktası: Çinli bilim insanları yapay zekası beyin dalgalarını% 97 doğrulukla çözüyor
Yeni taç araştırma verileri nerede bulunur? Bilimsel araştırma çalışanları için mutlaka görülmesi gereken bir yer (bağlantılı)
"Hey Siri" nin arkasındaki siyah teknoloji ortaya çıktı!
Grafiksel makine öğrenimi: herkesin anlayabileceği algoritma ilkeleri
Hücreleri bilgisayara dönüştürmek için protein mantık kapılarını kullanan Çinli genç bilim adamları bilim üzerine çalışıyor
Dünyanın ilk çeviri motoru evrimden döndü ve "ayrıntı çılgınlığı", klasik Çince lehçesini ele alıyor
"Virüs" yerine "bilgi" yay! Programcılar "el yıkamayı" 500'den fazla dilde tercüme ediyor
Tsinghua AI ekibi, üst yüz algoritmasını aldatmak ve ardından güvenlik açığını güçlü bir şekilde düzeltmek için bir AI güvenlik platformu başlattı
To Top