2B dizide tepe algılama

| | | | | | | | | | | | | | | | | | | | | |

Bir veteriner kliniğine köpeğin patisinin altındaki basıncı ölçmede yardım ediyorum. Veri analizim için Python kullanıyorum ve şimdi patileri (anatomik) alt bölgelere ayırmaya çalışırken sıkışıp kaldım.

Yaptım Zaman içinde pati tarafından yüklenen her sensör için maksimum değerlerden oluşan, her patinin 2B dizisi. İşte "algılamak" istediğim alanları çizmek için Excel kullandığım bir pençe örneği. Bunlar, birlikte en büyük toplamı olan, yerel maksimumları olan sensörün etrafında 2'ye 2 kutudur.

alt text

Bu yüzden biraz deneme yaptım ve Her sütunun ve satırın maksimum değerleri (patinin şeklinden dolayı tek yöne bakılamaz). Bu, ayrı ayak parmaklarının yerini oldukça iyi algılıyor gibi görünüyor, ancak aynı zamanda komşu sensörleri de işaretliyor.

alt text

Python'a bunlardan hangisini söylemenin en iyi yolu nedir? maksimumlar benim istediklerim mi?

Not: 2x2 kareler üst üste gelemez, çünkü ayrı parmaklar olmaları gerekir!

Ayrıca 2x2 aldım kolaylık olması açısından, herhangi bir gelişmiş çözüm açığız, ancak ben sadece bir insan hareketi bilimciyim, bu yüzden ne gerçek bir programcı ne de bir matematikçiyim, bu yüzden lütfen bunu "basit" tutun.

İşte"np.loadtxt


Sonuçlar

Bu yüzden @jextee'nin çözümünü denedim (sonuçlara bakın). Gördüğünüz gibi, ön patilerde çok işe yarıyor ama arka ayaklarda daha az işe yarıyor.

Daha spesifik olarak, dördüncü ayak parmağı olan küçük tepe noktasını tanıyamaz. Bu, açıkça, döngünün, nerede olduğunu hesaba katmadan, yukarıdan aşağıya en düşük değere doğru görünmesi gerçeğinin doğasında var.

Dördüncü parmağı da bulabilmesi için @jextee'nin algoritmasını nasıl değiştireceğini bilen var mı?

alt text

Henüz başka denemeler yapmadığım için başka numune veremiyorum. Ancak daha önce verdiğim veriler her bir pençenin ortalamasıydı. Bu dosya, plaka ile temas ettikleri sırayla 9 pençenin maksimum verisini içeren bir dizidir.

Bu resim, plaka üzerinde uzamsal olarak nasıl yayıldıklarını gösterir.

alt text

Güncelleme:

İlgilenenler için bir blog oluşturdum ve Bütün ham ölçümlerle bir SkyDrive kurdum. Yani herkese daha fazla veri talep etmek: size daha fazla güç!


Yeni güncelleme:

Yani, aldığım yardımdan sonra ile ilgili sorularım oldu. pençe algılama ve pençe sıralama sayesinde sonunda her pati için parmak algılamasını kontrol edebildim! Görünen o ki, kendi örneğimdeki gibi boyutlandırılmış pençeler dışında hiçbir şeyde iyi çalışmıyor. Tabii geriye dönüp baktığımda, 2x2'yi bu kadar keyfi olarak seçmem benim kendi hatam.

Burada" nerede yanlış gittiğine güzel bir örnek: bir çivi ayak parmağı olarak algılanıyor ve "topuk" o kadar geniş ki, iki kez tanınıyor!

alt text

Pençe çok büyük, bu nedenle 2x2 boyutunda örtüşme olmadan almak bazı ayak parmaklarının iki kez algılanmasına neden oluyor. Tam tersi , küçük köpeklerde genellikle 5. parmağı bulamıyor, bunun 2x2 alanın çok büyük olmasından kaynaklandığından şüpheleniyorum.

tüm ölçümlerimde mevcut çözümü denerken neredeyse tüm küçük köpeklerim için 5'incisini bulamadığı şaşırtıcı bir sonuca vardım ayak parmağı ve büyük köpekler için etkilerin %50'sinden fazlasında daha fazlasını bulacağını!

Öyle ki, onu değiştirmem gerektiği açık. Benim tahminim mahallenin boyutunu küçük köpekler için daha küçük ve büyük köpekler için daha büyük olacak şekilde değiştirmekti. Ama generate_binary_structure dizinin boyutunu değiştirmeme izin vermiyor.

Bu nedenle, başka birinin ayak parmaklarını, belki de ayak parmağını bulmak için daha iyi bir önerisi olduğunu umuyorum. pençe boyutu ile alan ölçeği?