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ı.
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:
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:
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.
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.
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.
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.
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.