Merhaba CV / Örüntü Tanıma Topluluğu,
Bir görüntünün bölümlere ayrılması konusunda ciddi bir sorunum var. Senaryo, fırın içindeki kafamın delirmesine neden olan bir atmosfer. Ve farklı malzemelerin (cam, seramik, Al, Ir, ..) nesne hatlarını sadece bir özel durum için değil, kısa bir süre içinde (<10 saniye) tespit etmem gerekiyor. Ben de kod için piksel sıralı bir satırda kontur gerekir. Bu nedenle bir zincir kodu veya sınır / kontur takibi de gereklidir, bu nedenle açık delikler iyi değildir. Arka planda, zaman zaman ortaya çıkan yaklaşık toz, parçacıklar veya başka bir şekilde doğrusal olmayan sesler vardır.
Matlab veya OpenCV önerilerini bekliyoruz.
Daha açık hale getirmek için, hedefimin başka bir görüntüsünü ve ayrıca algılanması gereken yarı saydam bir nesne yayınladım. Ayrıca farkında olması gereken diğer örnekler.
Resim # 1'de görebileceğiniz gibi, görüntünün sağ kısmında ve nesnenin olduğu yıldızın dış konturunun yakınında parçacıklar vardır. Ayrıca genel kontrast çok iyi değil. Nesnenin kendisi, kontur tespiti ile ilgili olmayan bir yeraltı üzerinde durur. Resim 2, aynı zamanda mümkün olan yarı yarı saydam bir nesneyi göstermektedir.
Bir sonraki ekranda (kırmızı çizgi) olduğu gibi, o nesnenin çevresini / çevresini bulmak istiyorum. İki dikdörtgen (sarı) başlangıç (sol) ve bitiş noktasını (sağ) işaretler. Mavi çizgi göz ardı edilebilir.
İlk başta o pis atmosferin problemini sadece filtrelerle çözebileceğimi düşündüm. Ancak, onurlu bir yatırım süresinden sonra, ön plan ve arka planın kontrastını arttırmak için gürültüyü önemli ölçüde ortadan kaldırmam veya azaltmam gerektiğini fark ettim. Histogram eşitleme, Otsu uyarlamalı eşitleme, doğrusal filtreler (örn. Gauss), doğrusal olmayan filtreler (medyan, difüzyon), Aktif Kontürler, k-Ortalamalar, Bulanık-c-ortalamalar ve ayrıca Canny gibi birçok yöntem denedim Morfolojik operatörlerle birlikte Kenar Tespiti.
- Canny: Parçacıklar ve atmosfer deliklere neden oluyor, ancak nesnenin tam bir konturuna ihtiyacım var. Yine de morfolojik operatörlerin kapanması, dilatasyonu ile yeterli değildir. Canny, histerezis nedeniyle çalıştığım tüm yöntemlerin en iyi sonuçlarına sahip.
- Aktif Konturlar: Kenarlarda / degradelerde de çalışırlar, nesnenin içinde başlatıldıktan sonra tamamen deli davranırlar, belki de 'açık' nesneyle sonuçlanan kenar haritasından kaynaklanır. Bildiğim kadarıyla kontur kapatılmalıdır. Farklı türevlerle (GVF / VFC / Klasik Yılan) denedim.
- k-Araçlar: Sonuçlar, sisli arkaplan nedeniyle fırın atmosferini içerir. Bulanık-c-araçlar için aynıdır. Nesneyi arka plandan ayırdığı için iki küme seçtim. Daha fazla küme daha zayıf sonuçlara yol açar.
- Histogram / Otsu: Çok yakın gri yoğunluklar (imho!) Nedeniyle, nesneyi arka planla birleştiriyor. Yerel ve küresel yöntemlerle denedim.
- Filtreler: Özellikle GLPF veya diğer LPF kenarları temizliyor, bu da iyi değil ve sisli atmosferi bile azaltmıyor.
- Doğrusal Olmayan Filtreler kenarları korur. Çoğu büyük görüntüleri hesaplamak için çok uzun zaman alıyor. Şimdilik hızlı bir ikili filtre aldı. Sonuçlar aşağıya bakınız.
Bu nedenle, işlem sonrası adımlar için tek bir yöntem yeterince iyi değildir, çünkü nesne segmentinin kazanılan sonuçları mevcut bir algoritma ile rekabet halinde değildir. Mevcut algoritma çok yereldir ve bu nedenle bu çok özel senaryoda işe yarar.
Bu yüzden size soruyorum, eğer bir şeyi tamamen kaçırmış olsaydım ... Boşluk veya delikler olmadan nasıl işleyeceğimi ve nasıl iyi kontur sonuçları elde edeceğime dair başka bir fikrim yok. CCD ve fiziksel çevre? Şimdiden teşekkürler!
Şimdiye Kadar Son Yaklaşım (MO'larla yapılan uzun bir deney gecesinden sonra):
- İki Taraflı Filtre (kenar koruyucusu, ancak homojen alanları yumuşatır)
- Canny (Sigma = 2, Eşik = [0.04 0.08])
- Morfolojik İşlemleri (MO):
bwareopen
,closing
,remove
vebridge
bwlabel
yalnızca istenmeyen sesleri gideren konturun çevresini seçmek için. henüz güncellenmiş ekran görüntüsü yok, ancak yıldız için çalışıyor. cam, aşağıdaki ekran görüntüsünde de görülebilen, dış konturuna bağlı bir iç konturu kaplar.
Korkarım dış konturun geçişi için özel bir algoritmaya ihtiyacım var. Mahallenin saat yönünde / saatin tersi yönünde bir arama olacaktır. Bir köşe noktası varsa, saat yönünde / saatin tersi yönünde geçiş yapılabilir. bir boşluk varsa, yarıçapı artırın ve tekrar bakın. iki veya daha fazla olası takip noktası varsa, öncekiyle aynı yöne sahip olanı kullanın. Sizce, bu kontur takip algoritması mantıklı mı?