Point Cloud - Sumbu Utama - Penggunaan Inersia

Saya mendapatkan awan titik dari objek primitif yang berbeda (kerucut, bidang, torus, silinder, bola, ellipsoid). Semuanya bervariasi dalam orientasi, posisi dan skala. Selanjutnya semuanya diinisialisasi dengan sekumpulan parameter unik (misalnya tinggi, radius, dll.) sehingga bentuknya bisa berbeda-beda (ada kerucut yang tinggi, ada yang kecil dan gemuk).

Sekarang untuk pertanyaan saya:

Saya mencoba mencari objek "komponen utama". Menggunakan PCA tidak memberikan hasil yang baik, karena primitif yang diputar dapat memiliki variasi utama ke segala arah (yang tidak harus selalu sepanjang objek).

Satu-satunya kesempatan yang saya lihat adalah menggunakan simetri primitif saya. Bukankah ada metode yang berdasarkan kelembaman? Mungkin ada cara untuk menemukan sumbu simetri utama dan dua sumbu simetri lainnya yang tegak lurus?

Bisakah Anda memberi saya saran atau mengarahkan saya ke makalah atau implementasi (bahkan mungkin python)?

Terima kasih banyak, Merlin.

PS: Ini yang saya dapatkan jika saya hanya menerapkan PCA. Khusus untuk cone ini tidak terlalu berhasil. Hanya kerucut yang bentuknya hampir sama yang memiliki orientasi yang sama, tetapi saya ingin semuanya mengarah ke satu arah (misalnya ke atas).

masukkan deskripsi gambar di sini


person HesselKRaymond    schedule 15.04.2015    source sumber


Jawaban (3)


Jadi Anda punya kerucut dan hanya perlu memutar semuanya ke arah yang sama? Jika demikian, Anda dapat memasangkan segitiga padanya dan mengarahkan puncaknya (misalnya dengan garis bagi sisi-sisinya yang tegak lurus) ke sumbu utama Anda.

person Xref_failed    schedule 15.04.2015
comment
Saya sudah mendapatkan semua primitif yang disebutkan (bola, ellipsoid, ...). Alasan gambar hanya menampilkan kerucut adalah karena dalam kasus ini PCA paling banyak gagal (semua kerucut kurang lebih mengarah ke arah yang berbeda). Saya baru saja menemukan tutorial ini tetapi saya tidak yakin apakah ini akan membantu. Tampaknya ia menghitung komponen utama awan titik dengan pemeriksaan inersia, bukan PCA. pointclouds.org/documentation/tutorials/moment_of_inertia.php Bagaimana menurut Anda? - person HesselKRaymond; 16.04.2015

Anda mempunyai masalah yang menarik. Deskriptor bentuk yang biasanya digunakan (VFH) yang invarian terhadap bentuk tetapi tidak terhadap pose (yang mana adalah apa yang Anda inginkan, sungguh) tidak akan selalu berubah dalam bentuk peregangan.

Saya pikir untuk berhasil dalam hal ini Anda harus lebih jelas tentang invarian yang Anda coba pertahankan ketika suatu bentuk berubah. Apakah ini invarian topologi? Jika ya, inilah titik awal yang baik: https://www.google.com.tr/search?q=topologically%20invariant%20shape%20descriptor

person D.J.Duff    schedule 16.04.2015
comment
Ide dari keseluruhan proyek ini adalah untuk memasukkan primitif saya (setelah beberapa pra-pemrosesan kecil) ke dalam pembelajar yang mendalam (autoencoder denoising bertumpuk) untuk melihat apakah ia mampu mempelajari fitur-fitur yang bermakna. Jika demikian, ia seharusnya dapat mengklasifikasikan sebagian besar primitif dengan benar. Jadi mendefinisikan deskriptor bentuk adalah hal yang ingin saya hindari. Saya tidak ingin menerapkan pengetahuan khusus domain apa pun (rekayasa fitur) sebelum memasukkan data saya ke pembelajar mesin. Itu harus sementah mungkin. Satu-satunya hal yang ingin saya lakukan di awal adalah menyelaraskan semua titik awan dan melakukan voxelisasi pada mereka. - person HesselKRaymond; 16.04.2015
comment
Saya khawatir penyelarasan yang ingin Anda lakukan adalah pengetahuan domain. Hal ini tentu tidak segera tersedia dari data sensorik. Bahkan jika Anda menggunakan PCA, Anda membuat beberapa asumsi tentang kapan dua konfigurasi berbeda memiliki bentuk yang sama (karena Anda memerlukan asumsi tersebut untuk memotivasi pilihan penyelarasan - jika tidak, bagaimana Anda bisa melakukan penyelarasan? Anda mungkin punya jawaban yang belum saya pikirkan dari, tapi pandangan saya adalah bahwa di balik setiap pendekatan penyelarasan terdapat asumsi seperti itu). - person D.J.Duff; 16.04.2015
comment
Oleh karena itu, saya berharap penyelarasan dapat dipelajari juga jika Anda benar-benar tidak menggunakan asumsi - tetapi pembelajaran mendalam, menurut saya, adalah hal yang ajaib. - person D.J.Duff; 16.04.2015
comment
Ya itu benar. Jika saya ingin mencoba menemukan keselarasan yang sempurna, saya harus membuat beberapa asumsi. Untuk primitif mis. jadilah semua benda mempunyai simetri rotasi. Oleh karena itu saya hanya akan tetap menggunakan PCA murni yang setidaknya mengorientasikan objek serupa dengan cara yang sama. Ini benar-benar umum dan dapat diterapkan pada semua jenis input (mungkin model CAD yang lebih kompleks, tetapi juga data n-dimensi). Jika masih ada variasi yang tersisa, pembelajar mesin harus mengurusnya. Itulah gunanya... menafsirkan masukan yang belum dipelajari sejak awal. - person HesselKRaymond; 17.04.2015

Saya memutuskan untuk tetap menggunakan PCA sederhana karena ini adalah satu-satunya metode yang benar-benar umum dan tidak bergantung pada pengetahuan (ahli) sebelumnya tentang data.

person HesselKRaymond    schedule 20.04.2015