Yüz görüntülerinin veritabanında belirli bir yüzü algılama


110

Twitter kullanıcılarının yüzlerini içeren küçük bir proje üzerinde kendi profil resimlerim üzerinde çalışıyorum.

Karşılaştığım bir sorun, net portre fotoğrafları olan görüntüleri hariç tuttuktan sonra, küçük ama önemli bir twitter kullanıcısının yüzdesi Justin Bieber resmini profil resmi olarak kullanıyor.

Bunları filtrelemek için, programlı olarak bir fotoğrafın Justin Bieber'ın olup olmadığını nasıl söyleyebilirim?


17
Geliştirme platformun nedir? Bu, tüm diğer programlama ortamlarına göre üstün olduğu için kolayca .NET'te yapılabilir. Page.EradicateBieber () işlevini çağırmanız yeterlidir. Microsoft bu ihtiyacı önceden gördü ve nezaketle bize .NET 4.5'te kullanıma hazır bir şekilde sağladı. (Eski versiyonlarda sizler beklemek zorunda kalacaklar.) (Tabii ki, tüm dil yanağında.)

32
Sanırım SO'nun bir [justin-bieber]etikete ihtiyaç duymadığını açıkça söyleyebilirim .
skaffman

2
İnsanların yorumlar ve bu soru için yakın seçenekten (oyları hak eden) daha fazla yorum harcadıklarını güvenle söyleyebilirim .

20
Bir Justin Bieber ses filtresi de iyi olurdu

Yanıtlar:


49

Daha iyi bir fikir, birden fazla kullanıcının beslemesinde görünen tüm görüntüleri çöpe atmak olabilir - tanıma gerekmez.


2
Evet, belki bir fotoğrafı reddetmeden önce 2-4 olası yineleme eşiği (yeni bebek vakasını ele almak için) ayarlayın. Fotoğraflarla ne yapacağına bağlı, sanırım.
Mark Bessey,

3
Basit, zarif bir çözüm. +1.
Robert Harvey,

13
İnsanlar aynı kişinin farklı resimlerini kullanabilirdi.
Rebecca Chernoff

(+1) Rebecca ve (-1) @ PPPPPP: Bu sadece sorunu değiştiriyor.
steffen

4
Yapabilirlerdi, ancak çoğu durumda nispeten küçük bir görüntü havuzundan birini seçecekler, bu yüzden muhtemelen işe yarayacaktı. Kenar davaları lanet olsun - bildiğim kadarıyla resmim zaten amcamın.
naught101

16

Http://www.tineye.com/commercial_api'nin burada çözüm olabileceğini hissediyorum . Basitçe için (ya da) ilişkili olduğu açıkça tanımlanmalıdır (veya otomatik olarak basit bir kelime-sayımı mantığı kullanarak attı) ki bu görüntüleri (ve ilişkili URL'ler) dönerse, bkz TinEye için o küçük çuval Twitter profil görüntüsünü atmak * *.

Simples!


1
Google, son zamanlarda görsel aramayı duyurdu: youtube.com/watch?v=t99BfDnBZcI Henüz bir API'si olup olmadığını bilmiyorum, ancak bu bir alternatif olabilir.
Petrichor

11

Yalnızca net portre fotoğrafları olanlara filtre uygulayabildiğiniz için, ham görüntüleri makine öğrenmesi için yararlı olan özelliklere dönüştürmek için bazı özellik oluşturma yöntemlerine sahip olduğunuzu farz ediyorum. Eğer bu doğruysa, algoritmayı bir kaç bilinen Bilaner fotoğrafının yanı sıra bir kaç Bilinen olmayan Bieber'ı besleyerek de bir sınıflandırma algoritması (çok sayıda var: sinir ağları, vb.) Yetiştirmeyi deneyebilirsiniz. Modeli eğittikten sonra, yeni bir görüntünün Bieber olup olmadığını tahmin etmek için kullanılabilir.

Bu tür bir denetimli öğrenme tekniği, doğru cevabı bildiğiniz (Bieber ya da değil) verilere sahip olmanızı gerektirir, ancak bunlar muhtemelen bir Google görsel aramasından bulunabilir. Aynı zamanda doğru özelliklere sahip olmanızı gerektirir ve bunun önemli bir sakınca olup olmadığını bilmek için görüntü işleme veya algoritmanız hakkında yeterince bilgim yok.


2
Ne yazık ki, özellik oluşturma adımı hem en zor hem de en önemlisidir :(.
steffen

@steffen OP'nin yüzlerle karıştığı konusunda bazı öneriler var, bu yüzden bazı tanımlayıcı üreteçleri var.

@mpq: OP'nin piksel başına bir özelliği yoksa, anlamlı bir toplama düzeyi bulması gerektiğinden şüphem yoktu. Oy vermedim, sadece bu cevabın arkasında yatan karmaşıklığı işaret etmek istedim (elbette doğru).
steffen

1
Doğru, özellik oluşturma adımı zor kısmıdır. Zaten görüntüleri işlemek için bazı mekanizmaları olduğundan OP'nin bunu yapabileceğini düşünüyordum. Sadece Bieber değil de yüzünü değil yüzünü algılamak için faydalı özellikler olsa bile ... gerçekten de özelliklere bağlı.
Michael McGowan

7

Eigenfaces, http://en.wikipedia.org/wiki/Eigenface gibi bir yöntem kullanabilirsiniz . Aşağıdakiler, prosedürün yanı sıra farklı uygulamalara bağlantılar içinde iyi bir yürüyüşe sahiptir.

http://www.pages.drexel.edu/~sis26/Eigenface%20Tutorial.htm

Buradan, bunu bir sınıflandırma yaklaşımında kullanmak, bir modeli eğitmek ve sonra vakaları tahmin etmek yaygındır. Bunu bir dizi ünlü ünite üzerinde çalışarak yapabilir ve twitter'ın bir yüzünü eğitimli ünlüler modelinizdeki biri olarak tahmin ederseniz, kaldırabilirsiniz. Buna benzer http://blog.cordiner.net/2010/12/02/eigenfaces-face-recognition-matlab/

Bu sürekli değişikliklerden muzdarip. Yakında, eğitimli modelinizde olmayacak yeni bir Justin Bieber olacak, bu yüzden tahmin edemezsiniz. Whitney Houston gibi bir durum daha var, onu daha önce eklemeyi hiç düşünmemiş olabilirsiniz, ancak birkaç hafta boyunca saygı ve hayranlıktan ortak bir görüntü olabilir. Yukarıda da belirtildiği gibi bebek resimlerinin olumsuz tarafı olmayacak. Bu sorunları aşmak için daha çok hiyerarşik bir kümelenme yaklaşımı kullanabilirsiniz. Belli bir destek seviyesine ulaşırlarsa çok yakın olan ilk birkaç kümenin kaldırılması, ilk kümenizin bir saniyenin oluşturulmasından önce 15 öğeye sahiptir. Artık eğitim modelinizde kimin olduğu konusunda endişelenmenize gerek yok, ancak bebek resimleri sorununa düşeceksiniz.




3

Bu resmin hangi kişiyle ilgili olduğunu belirleyen bir algoritma koymanız gerekir. Ünlü kişiliğin farklı portre resimlerine dayanan bir model oluşturabilir ve bu resmin veritabanı resminizden birine atıfta bulunduğundan emin olmak için sınıflandırıcıları kullanabilirsiniz. Modelinizin doğruluğunu artırmak için, gözler veya diğer parametreler arasındaki mesafe gibi, yüze sevilen farklı parametreleri temel alan belirli bir sınıflandırıcı kullanmanız gerekir. Ayrıca cilt analizi de var. En önemlisi iyi bir sınıflandırıcı oluşturmaktır. Bu yöntem savunmasız olabilir.

Ancak, yüz tanıma üzerinde çalışan çok iyi bir proje var. Http://opencv-code.com/Opencv_Face_Detection


1
AFAIK OpenCV ve bağlantılı bölge yalnızca yüz tanıma (resimde insan yüzü nedir?) Sadece yüz tanıma yolunda ilk adım olan (kimin yüzü?)
f3lix 20:11

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.