Untuk beberapa algoritma rekonstruksi volume yang sedang saya kerjakan, saya perlu mendeteksi sejumlah pola melingkar dalam data titik 3d (yang berasal dari perangkat LIDAR). Pola-pola ini dapat diorientasikan secara sewenang-wenang di ruang angkasa, dan diasumsikan terletak (meskipun tidak sempurna) di bidang tipis 2d. Berikut ini adalah contoh dengan dua lingkaran di bidang yang sama (walaupun ingat ini adalah ruang 3d):
Saya mencoba banyak pendekatan .. yang paling sederhana (tapi yang paling berhasil sejauh ini) adalah pengelompokan berdasarkan set terpisah dari grafik tetangga terdekat. Ini bekerja cukup baik ketika polanya berjauhan, tetapi kurang begitu dengan lingkaran seperti pada contoh, benar-benar dekat satu sama lain.
Saya mencoba K-means, tetapi tidak berhasil: Saya kira pengaturan titik melingkar mungkin tidak cocok untuk itu. Ditambah lagi, saya memiliki masalah tambahan karena tidak mengetahui sebelumnya nilai K.
Saya mencoba pendekatan yang lebih rumit, berdasarkan deteksi siklus dalam grafik tetangga terdekat, tetapi apa yang saya dapatkan terlalu rapuh atau mahal secara komputasi.
Saya juga membaca tentang banyak topik terkait (transformasi Hough, dll) tetapi tampaknya tidak ada yang berlaku dengan sempurna dalam konteks khusus ini. Ide atau inspirasi apa pun akan dihargai.
sumber
Jawaban:
Transformasi Hough umum adalah persis apa yang Anda inginkan. Kesulitannya adalah melakukannya secara efisien, karena ruang lingkaran dalam 3D memiliki enam dimensi (tiga untuk pusat, dua untuk mengarahkan pesawat, satu untuk jari-jari). Ini tampaknya mengesampingkan perhitungan langsung.
Satu kemungkinan adalah untuk menyelinap pada hasil melalui serangkaian transformasi Hough sederhana. Misalnya, Anda bisa mulai dengan transformasi Hough (biasa) untuk mendeteksi himpunan bagian planar: yang hanya memerlukan kisi 3D untuk perhitungan. Untuk setiap himpunan planar yang terdeteksi, potong titik-titik asli di sepanjang bidang itu dan lakukan transformasi Hough umum untuk deteksi lingkaran. Ini harus bekerja dengan baik asalkan gambar asli tidak memiliki banyak titik coplanar (selain yang dibentuk oleh lingkaran) yang bisa menenggelamkan sinyal yang dihasilkan oleh lingkaran.
Jika ukuran lingkaran memiliki batas atas yang telah ditentukan, Anda berpotensi menyimpan banyak perhitungan: daripada melihat semua pasangan atau tiga kali lipat poin dalam gambar asli, Anda dapat fokus pada pasangan atau tiga kali lipat dalam lingkungan yang dibatasi pada setiap titik.
sumber
sumber