Geliştirme Gözlerinizin bilgisayarı kontrol etmesine izin vermek için derin öğrenme teknolojisini kullanın

Bu makale, AI Araştırma Enstitüsü tarafından derlenen teknik bir blogdur. Orijinal başlık Bilgisayarınıza komuta etmek için Gözlerinizi ve Derin Öğrenmeyi kullanın - A.I. Odyssey bölümü 2 ve yazar Julien Despois. Tercüme | Tao Yulong, Lao Zhao redaksiyon | Lamaric incelemesi | Lamaric

Hiç bu deneyimi yaşadınız mı, yemek yerken, filmin sesini ayarlamak veya ekranın parlaklığını ayarlamak için fazladan eliniz olmadığını fark ettiniz mi? Bu yazımızda bu sorunu çözmek için en gelişmiş yapay zeka teknolojisini nasıl kullanacağımızı ve buna karşılık gelen komutları göz hareketleri ile bilgisayarınıza göndereceğiz.

Not: Bu makaleyi okumayı bitirdikten sonra, sizi uygulama ayrıntılarına adanmış takip gönderilerini okumaya davet ediyorum (https://medium.com/@juliendespois/ai-odyssey-part-2-implementation-details-f126f18bd320# .t4gpenon3).

Giriş

Neye ulaşmak istiyoruz

Bu projenin amacı, bilgisayardaki eylemleri tetiklemek için gözlerimizi kullanmaktır. Bu çok kapsamlı bir soru, bu yüzden önce neye ulaşmak istediğimizi açıklamamız gerekiyor.

Örneğin, gözlerin belirli bir köşeye baktığını algılayabilir ve ardından o açıdan çalışabiliriz. Ancak bu çok sınırlı ve çok esnek değil, ayrıca köşeleri birleştirmemizi gerektiriyor. Bunun yerine, tam göz hareketlerini tanımayı öğrenmek için tekrarlayan bir sinir ağı kullanıyoruz.

Veri

Çalışmalarımız için harici veri setleri kullanmak istemiyoruz, bunun yerine veri setlerini kendimiz yapıyoruz. Modelin eğitim ve tahmin aşamalarında aynı veri kaynaklarını ve işleme yöntemlerini kullandık, bu da projemize büyük fayda sağladı.

Şüphesiz, gözlerimizden bilgi almanın en etkili yolu, özel bir yakın çekim lensi kullanmaktır. Bu tür bir donanımın yardımıyla, çeşitli şaşırtıcı veriler oluşturmak için doğrudan öğrencinin merkezini izleyebiliriz.

Harici bir kamera kullanmak istemiyorum, bu yüzden dizüstü bilgisayarımın aşınmış 720P kamerasını kullanmaya karar verdim.

iş süreci

Doğrudan teknik tartışmaya geçmeden önce, bu sürecin adımlarını gözden geçirelim. İşte önerdiğim süreç:

  • Kamera ile bir fotoğraf çekin ve gözleri bulun.

  • Görüntüyü önceden işleyin ve önemli özellikleri çıkarın (bunu başarmak için sinir ağlarını kullanmak ister misiniz?).

  • Özellik çıkarmanın son birkaç karesinin kayıtlarını çalıştırmaya devam edin.

  • Çalışan kayıtlara göre göz hareketi tahminini gerçekleştirin.

Görüntüyü işlemek için boru hattı yöntemini kullanacağız.

Bunu bu makaledeki aşağıdaki adımlarla yapacağız, hadi başlayalım!

Göz resimleri çek

Gözleri algıla

Doğrudan kamera aracılığıyla, görüntüyü alt örnekleyin ve gri tonlamalı bir görüntüye dönüştürün (çok renkli kanallar çok fazla gereksiz bilgi üretir), bu da sonraki işlemleri daha hızlı hale getirir ve modelin gerçek zamanlı çalışmasına yardımcı olur.

Algılama için, HAAR Cascades'i (Haar özelliği tabanlı kademeli sınıflandırıcılar) ( kullanacağız çünkü bunlar hızlıdır ve basit ayarlamalarla İyi sonuçlar elde edilir, ancak gözleri doğrudan tespit ederken birçok yanlış alarma neden olur. Bu etkileri ortadan kaldırmak için görüntüde gözler yerine insan yüzlerini tespit ettikten sonra gözleri insan yüzünde bulabiliriz.

Gözleri içeren sınırlayıcı kutu elde edildiğinde, görüntüyü ilk tam boyutlu kamera çekiminden çıkarabiliriz, böylece hiçbir bilgi kaybolmaz.

Ön işlenmiş veriler

Gözleri bulduğumuzda, onları veri setimiz için işlememiz gerekir. Bunu yapmak için, gözleri 24px boyutunda sabit bir kare şeklinde yeniden şekillendirebilir ve gölgeleri ortadan kaldırmak için histogram normalleştirme kullanabiliriz.

Gözleri çıkarmak için adımlar

O zaman girdi olarak standartlaştırılmış resimleri doğrudan kullanabiliriz, ancak daha faydalı işler yapma fırsatımız da var. Göz resimlerini kullanmak yerine, mevcut karedeki gözler ile önceki kare arasındaki farkı hesaplıyoruz. Bu, eylemleri kodlamanın çok etkili bir yoludur ve nihayetinde ihtiyacımız olan şey budur.

** Aşağıdaki GIF haricindeki tüm grafikler için, ekrandaki farklılıklar korkunç göründüğü için göz farklılıklarını temsil etmek için göz resimleri kullanacağım. **

Standart çerçeveler ve çerçeve farklılıkları arasında karşılaştırma

Artık gözleri işlediğimize göre, onlara aynı sınıftan iki temsilci olarak ayrı ayrı muamele edebilir veya tek bir görüntü gibi birlikte kullanmayı seçebiliriz. İkincisini seçiyorum çünkü gözler tamamen aynı hareketi takip etse bile, her iki girdi de modeli daha sağlam hale getirecek.

* Yine de, yapmamız gereken, görüntüleri birbirine dikmekten daha akıllı.

Gözlerini birleştir

Bir veri kümesi oluşturun

kayıt

İki ayrı işlem için 50 örnek kaydettim (biri "gama" ve diğeri "Z" gibi görünüyor). Modelin tanıtımına yardımcı olması için örneklemin konumunu, ölçeğini ve hızını değiştirmeye çalıştım. Ayrıca kabaca genel desensiz göz hareketleri ve sabit çerçeveler içeren 50 "boşta" örnek ekledim.

Eylem örneği - "gama", "bağlama", "Z", "boşta"

Ne yazık ki, böyle bir görev için 150 örnek küçük, bu nedenle veri setini yeni örneklerle genişletmemiz gerekiyor.

Veri genişletme

Yapabileceğimiz ilk şey, herhangi bir dizi uzunluğunu (100 kare) sabitlemektir. Oradan daha kısa örnekleri yavaşlatabilir ve daha uzun örnekleri hızlandırabiliriz. Hız, hareketi tanımlayamadığı için bu mümkündür.

Aynı zamanda 100 kareden daha az olan dizi 100 kare pencerede herhangi bir zamanda tespit edilebildiğinden, doldurma örnekleri ekleyebiliriz.

Kayan pencereyi 100 karenin altındaki örneklerle doldurmak için kullanılır.

Bu tekniklerle veri setini yaklaşık 1000-2000 örneğe genişletebiliriz.

Nihai veri seti

Verilerimizi özetleyin ve anlamaya çalışın. İlgili etiketlerle bazı örnekleri kaydettik. Her örnek, 24 piksellik iki kare görüntüden oluşan bir diziden oluşur.

Her göz için bir veri kümesi olduğunu unutmayın.

Veri kümesinin tensör açıklaması

model

Artık veri setine sahip olduğumuza göre, verileri öğrenmek ve tanıtmak için doğru modeli oluşturmamız gerekiyor. Aşağıdaki özellikleri yazabiliriz:

Modelimiz her adımda iki görüntüden bilgi çıkarabilmeli ve bu özellikleri gözlerle gerçekleştirilen hareketi tahmin etmek için birleştirebilmelidir.

Böyle karmaşık bir sistem, güçlü bir yapay zeka modeli-sinir ağının kullanılmasını gerektirir. İhtiyaçlarımızı karşılayan bir ağın nasıl kurulacağını görelim. Sinir ağı katmanı yapı taşlarına benzer, sadece doğru bloğu seçmemiz ve doğru yere yerleştirmemiz gerekiyor.

Görsel Özellikler-Evrişimli Sinir Ağı

Bir görüntüden bilgi çıkarmak için evrişimli katmanlara ihtiyacımız var. Bunlar, görsel özellikler elde etmek için görüntüleri işlemede iyidir. (İlk bölümde tanıtıldı)

Her bir gözü ayrı ayrı tedavi etmemiz ve ardından bu özellikleri tamamen bağlantılı bir katmanla birleştirmemiz gerekiyor. Ortaya çıkan evrişimli sinir ağı (CNN), ilgili bilgileri gözlerden çıkarmaya çalışacaktır.

Evrişimli Sinir Ağı İki paralel evrişimli katman, görsel özellikleri çıkarır ve ardından ikisi birleştirilir.

Zaman özellikleri-tekrarlayan sinir ağı

Artık resimlerin basit bir açıklamasına sahip olduğumuza göre, bunları sırayla işlememiz gerekiyor. Bu nedenle, bir özyinelemeli katman-uzun ve kısa vadeli bellek ağı kullanılır. Uzun ve kısa süreli bellek ağı, mevcut zaman adımından ve önceki durumdan çıkarılan özellikler aracılığıyla durumunu günceller.

Son olarak, bu görüntü dizilerini işlediğimizde, uzun ve kısa süreli bellek ağının durumu, her bir eylemin olasılığını tahmin etmek için softmax sınıflandırıcısına aktarılır.

Genel model

Sonunda, sinir ağının girdi olarak eşleştirilmiş görüntü dizilerini kullanması gerekir ve çıktı, her bir eylemin olasılığıdır. Kilit nokta, modeli tek bir parça halinde oluşturmamızdır, böylece geriye doğru yayılma yoluyla uçtan uca eğitilebilir.

Buna uzun ve kısa süreli belleğin derin evrişimli çift tekrarlayan sinir ağı diyebiliriz, ancak kimse bunu söylemiyor.

Evrişimli sinir ağları, her adımda uzun ve kısa süreli bellek birimi tarafından işlenen girdiden özellikleri çıkarır.

sonuç

Bu eğitimli model, test setinde% 85'in üzerinde bir doğruluk elde eder. Genişlemeden önceki eğitim setinin çok küçük olduğu düşünüldüğünde bu sonuç çok iyi. Daha fazla zaman ve katkı ile her kategoriden en az 100-200 örnek, belki 2 (+ boşta) yerine 3-4 eylem kaydedebilirim, bu da etkiyi artırır.

Geriye kalan tek adım, sınıflandırıcıyı gerçek zamanlı olarak kullanmak, yanlış alarmları önlemek için ayarlamak ve işlemi tetikleyen mantığı uygulamaktır (ses seviyesini değiştirin, uygulamayı açın, makroyu çalıştırın, vb.). Takip makalelerinde daha fazla içerik yazılacaktır.

sonuç olarak

Burada, bir görüntüdeki gözleri tespit etmek için HAAR Cascades'i nasıl kullanacağımızı, görüntünün nasıl temizleneceğini ve hareketle ilgili nesnelere yardımcı olmak için görüntü farklılıklarının nasıl kullanılacağını gördük.

Ayrıca, veri kümesini yapay olarak nasıl genişleteceğimizi ve evrişimli katmanlar, tamamen bağlantılı katmanlar ve yinelemeli katmanlar aracılığıyla verileri sığdırmak için derin sinir ağlarını nasıl kullanacağımızı gördük.

Umarım bu araştırmayı beğenirsiniz ve geri bildirimlerinizi duymaktan memnunum.

OPPO Reno renk düzeni açıklandı, 48 milyon piksel + 10x kayıpsız optik yakınlaştırma, iyi kamera yetenekleri
önceki
McLaren F1 / P1 halefi model 1 + 2 koltuk düzeninin casus fotoğrafları
Sonraki
Jiang Wen'in "Çin Cumhuriyeti Üçlemesi", Dünya Kupası ile mükemmel bir şekilde örtüşüyor. "Kötülük, Doğruluğu Bastırmaz"?
Yang Mi, Di Lieba ve Zhang Binbin'in değeri 5 milyar mı?
Kazanan sneaker'ı tahmin ettiniz mi? Crepe City 2017 spor ayakkabı TOP 20 en pahalı spor ayakkabıyı gösteriyor!
Bunları iş fırsatlarını değerlendirmek ve gigabit ofis ağlarını kolayca oluşturmak için kullanın
* ST Xinneng, * ST Oil Service ve diğer stoklar yakında "ele geçirildi". ST stoklarındaki bu "potansiyel stokları" kaçırmayın
Apple WWDC193 Haziran'da açılacak ve iOS 13 yakında piyasaya sürülecek. Apple hangi sürprizleri getirecek?
Ji Chunhua vefat etti, Jet Li rakibiyle tanışan bir kötü adamı kaybetti
Uzak ofis sorunları, bu araçlar kolayca çözebilir
KDD 2018 bugün açıldı, Liu Bing ve Tang Jie İnovasyon Ödülü ve Üstün Hizmet Ödülü'nü kazandı
Audrey Hepburn'ün makyajı sayısız aktrisin takımını takip etmesini sağladı ve Çin'de en çekici çekiciliğe sahip tek kişi o!
Uzun zamandır beklenen deri ceket nihayet burada! Supreme × Vanson ortak serisi bu hafta geliyor!
Disney tarihindeki ilk gey karakter "Güzel ve Çirkin" "Wolverine" olacak
To Top