Nokta bulutu verilerindeki dairesel kalıpları algılama


10

Üzerinde çalıştığım bazı hacim rekonstrüksiyon algoritması için, 3B nokta verilerinde (LIDAR cihazından gelen) rasgele sayıda dairesel desen tespit etmem gerekiyor. Desenler uzayda keyfi olarak yönlendirilebilir ve ince 2d düzlemlerde (mükemmel olmasa da) yattığı varsayılabilir. Aynı düzlemde iki daire bulunan bir örnek (bunun bir 3d alan olduğunu unutmayın):

resim açıklamasını buraya girin

Birçok yaklaşım denedim .. en basit (ama şimdiye kadar en iyi çalışan), en yakın komşu grafiğin ayrık kümelerine dayalı kümelenme. Bu, desenler birbirinden çok uzak olduğunda oldukça iyi çalışır, ancak örnekteki gibi daireler, birbirine çok yakın olduğunda daha az işe yarar.

K-araçlarını denedim, ama iyi değil: Dairesel nokta düzenlemesinin buna uygun olmayabileceğinden şüpheleniyorum. Ayrıca, K'nin değerini önceden bilmemek gibi ek bir sorunum var.

En yakın komşu grafikteki döngülerin algılanmasına dayalı olarak daha karmaşık yaklaşımlar denedim, ancak aldığım şey çok kırılgan veya hesaplama açısından pahalıydı.

Ayrıca ilgili pek çok konuyu da okudum (Hough dönüşümü vb.) Ama bu bağlamda hiçbir şey mükemmel şekilde uygulanmıyor gibi görünüyor. Herhangi bir fikir veya ilham takdir edilecektir.


Daha basit bir soru: iki boyutlu bir verideki çizgi parçalarını nasıl tespit edersiniz?
charles.y.zheng

".. örneklerdeki gibi"? Hangi örnekler? Bir bağlantı ekleyebilir misiniz?
onestop

Hough dönüşümü bariz bir seçimdir. İyi çalışmalı.
whuber

Bu arada atıfta bulunduğum resim örneğini eklemek için yeterli üne sahibim.
cjauvin

3
Bu bir kümeleme sorunu değil. İstatistiklerde "kümeler", birbirlerine diğer nesnelerden daha yakın olan nesne kümelerinden oluşur . Yakınlık daireselliği yakalamaz: bu yüzden ne K-aracı ne de başka bir kümeleme algoritması çalışmayacaktır. Bu nedenle, bu soru muhtemelen bu konuda bazı uzmanlar bulabileceğiniz görüntü işleme veya GIS sitelerine daha iyi uymaktadır.
whuber

Yanıtlar:


9

Genelleştirilmiş bir Hough dönüşümü tam istediğiniz şeydir. Zorluk bunu verimli bir şekilde yapmaktır, çünkü 3D'deki dairelerin boşluğunun altı boyutu vardır (üçü merkez için, ikisi uçağı yönlendirmek için, biri yarıçap için). Bu doğrudan bir hesaplamayı dışlamaktadır.

Bir olasılık, daha basit Hough dönüşümleri dizisi ile sonuca gizlice yaklaşmaktır. Örneğin, düzlemsel alt kümeleri algılamak için (olağan) Hough dönüşümü ile başlayabilirsiniz: bunlar hesaplama için yalnızca 3B ızgara gerektirir. Tespit edilen her düzlemsel alt küme için, orijinal noktaları o düzlem boyunca dilimleyin ve daire tespiti için genelleştirilmiş bir Hough dönüşümü gerçekleştirin. Orijinal görüntünün, daireler tarafından üretilen sinyali boğabilecek çok fazla eş düzlemli nokta (daireler tarafından oluşturulanlar dışında) olmaması koşuluyla bu iyi çalışmalıdır.

Daire boyutlarının önceden belirlenmiş bir üst sınırı varsa, potansiyel olarak çok fazla hesaplama kaydedebilirsiniz: orijinal görüntüdeki tüm çiftlere veya üç katına bakmak yerine, her noktanın sınırlı bir mahallesindeki çiftlere veya üçlülere odaklanabilirsiniz.


Önerilen tüm yaklaşımları birleştirmeye çalışacağım: orijinal küme tartışıldığı gibi, sadece mesafeye dayanan ilk küme, size birden fazla daireden oluşabilecek kümeler verecektir. Ardından her kümedeki düzlemsel alt kümeleri algılamak için Hough'u kullanın. Sonra her düzlemsel alt kümede tekrar daire bulmak için Hough'u kullanın. Bu son adım pahalıysa, etkili kısa devre yapabilirsiniz: birkaç üçlü deneyin, bir daire tahmin edin ve alt kümenizdeki noktaların önemli bir kısmının o daireye çok yakın olup olmadığını görün. Öyleyse, o daireyi kaydedin ve tüm bu noktaları kaldırın, ardından devam edin.
Erik P.

3
Bu ikinci fikre RANSAC denir ve muhtemelen kendi başına kullanılabilir, özellikle de görüntü başına daire sayısı azsa.
SheldonCooper

Aydınlatıcı fikirler için teşekkürler! Çok adımlı Hough dönüşümü bana en güçlü ve genel çözüm gibi görünüyor, ancak RANSAC'ın uygulanması gerçekten daha kolay görünüyor ve bağlamımda yeterli olabilir. Bununla birlikte hızlı bir şekilde fark ettiğim bir sorun, dengesiz boyutlarda desenlerin olduğu durumdur, bu da örneklemeyi daha büyük nesnelere doğru yönlendirir. Bu sorun hakkında düşünceleriniz var mı?
cjauvin

Daha büyük daireyi algıladıktan sonra, ona ait olan tüm noktaları örneklemeden kaldırın.
SheldonCooper

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.