2013-04-08 16 views
8

Sorun açıklaması: Hedefi, insanların vücut kısımlarını resimlerde (gövde, baş, sol ve sağ kollar vb.) Tanımlamak olan bir projede çalışıyorum. Yaklaşım, insan vücudunun (hipotez) kısımlarını bulmaya ve en iyi poz konfigürasyonunu (= gerçekten insan vücudu oluşturan tüm parçaları) araştırmaya dayanır. Ideea, http://www.di.ens.fr/willow/events/cvml2010/materials/INRIA_summer_school_2010_Andrew_human_pose.pdf numaralı bağlantıda daha iyi tarif edilmiştir.İnsan pozlama tahmini - vücut bölümlerinin etkili bir şekilde bağlanması

Hipotez, her vücut parçası için ayrı ayrı bir algılama algoritması çalıştırıldıktan sonra (burada makine öğrenme alanından bir sınıflandırıcı kullanıyorum) elde edilir. Yani, her hipotezin tipi bilinir. Ayrıca, her hipotezin bir konumu (resimde x ve y koordinatları) ve bir yönü vardır. İki parçanın birbirine bağlanma maliyetini belirlemek için, tip başının her hipotezinin, her tip gövde gövdesine (örneğin) bağlanabileceğini düşünebiliriz. Ancak, görüntünün sağ üst köşesinde yer alan bir kafa hipotezi, görüntünün sol alt köşesinde yer alan bir gövde hipotezi ile (insan bakış açısından) bağlanamaz. Son bildirime dayanarak bu tür bağlantılardan kaçınmaya çalışıyorum ve ayrıca yürütme süresinden dolayı.

Soru: Bir bağlantı adayı olabilecek en uzak hipotezin bir mesafesini düşünerek arama alanını azaltmayı planlıyorum. Bu arama problemini çözmenin en hızlı yolu hangisidir?

+1

Daha fazla araştırma yapabileceğiniz bir algoritmanın adını mı arıyorsunuz? –

+0

Özel sorunuzu yanıtlamak için değil, ancak size yararlı olabilecek bir projeye bağlantı vermemek için :-) (https://github.com/joaquimrocha/Skeltrack – Nelson

+0

Evet, bir algoritmaya ihtiyacım var) ya da farklı tipteki 2 hipotez arasındaki olası tüm bağlantıları dikkate alandan daha iyi performans gösteren başka bir yaklaşım. –

cevap

2

Benzer sorunlar için, kaynak görüntüleri 16'ya (veya bağlamaya çalıştığınız parçaların göreceli boyutuna bağlı olarak) daha küçük resimlere bölüştüm, bu ayrı ayrı her birindeki algılama ve bağlama adımını yapıyoruz ve her bir alt bölüm için sadece bir bağlantı adımı yapacağınız ekstra bir adım ve (muhtemelen 8) komşular.

Bu durumda, sol üst köşedeki bir parçayı alt sağ olanla birleştirmeyi bile denemeyeceksiniz ve ek bir bonus olarak, sorununun ilk kısmı artık son derece paraleldir.

Güncelleme: Önce görüntüde kenar algılaması yapabilir ve ikide bir kenarı kesmek anlamına geldiğinde, görüntüyü 2 kesmeyin. Bunu yinelemeli olarak yapmak, vücut bölümleri ile çok sayıda küçük resim elde etmenizi sağlar ve bunlar ayrı ayrı işlenebilir.

+0

Öneriniz için teşekkür ederiz. Algılama algoritmasını paralel olarak çalıştırmanın ideea'sı için +1 veriyorum. Ancak, önerdiğiniz bağlantı yaklaşımı konusunda emin değ[email protected] Sansuiso'nun cevabı için son yorumda belirttiğim gibi, bunu bir octree kullanarak uygulamaya çalışıyorum. –

1

Bu tür bir ayrık atama sorunu, Hungarian algorithm kullanılarak çözülebilir.

Maliyet (= mesafe) matrisinin hesaplanmasında, mesafeyi önceden tanımlanmış bir eşik değerinden daha az olduğunda, değeri sonsuz veya çok yüksek bir değere ayarlayabilirsiniz. Bu, algoritmanın bir kafaya atamasını engelleyecektir. çok uzak olan gövde.

Bu son teknik, izleme derslerinde yolluk olarak da adlandırılır.

+0

Cevabınız için teşekkür ederim, ancak, anladığım kadarıyla, bu şekilde, her matris hipotezini her bir kafa hipotezi ile karşılaştırmalıyım (örneğin), maliyet matrisini elde etmek için. Ama niyetim gereksiz hesaplamaları önlemek (= birbirinden çok uzak olan iki parçayı bağlamaya çalışmak). –

+0

Macar algoritması, bu sorunu çözmek için etkili bir algoritmadır. Bunu denemeye değer. Sağladığım bağlantıda algoritmik karmaşıklığını kontrol edebilirsiniz. – sansuiso

+0

Belirtmiş olduğunuz bağlantıya bakıyordum. Karmaşıklık O (n^3) 'dir. Ancak, bu bağlantı sürecinin daha iyi bir karmaşıklıkla yapılabileceğini düşünüyorum. Şimdi, bir octree kullanarak bunu uygulamaya çalışıyorum. Eğer n, torso hipotezinin sayısı ise ve m kafa hipotezinin sayısı ise, o zaman ağacın inşa edilmesinin karmaşıklığı O (nlog (n)) ve tüm başlıklar için komşuları bulmak için> = O (mlog (n))) (en iyi durum = O (mlog (n)). –

İlgili konular