Saya mendapat mainan robot terlacak dan saya mengendalikannya dengan iPhone. Robot mengeluarkan umpan kamera langsung dari ukuran bingkai yang diketahui dan saya menampilkannya di UIImage.
Saya telah menambahkan laser pointer ke robot dan memperbaikinya di samping sumbu robot. Saya mencoba mendeteksi titik laser pointer pada gambar dan dengan demikian mencoba menghitung kedekatan objek. Jika titik laser jauh dari pusat, saya tahu bahwa robot macet di dinding dan harus membuat cadangan.
Bagaimana saya bisa mendeteksi titik piksel putih-merah terang pada layar? Salah satu solusi adalah dengan sampel warna piksel dalam radius tertentu dari pusat dan mendeteksi warna cerah gumpalan. Adakah yang bisa menyarankan algoritma untuk kegiatan ini?
Pendekatan lain adalah melacak posisi rata-rata titik pada beberapa frame terakhir, sehingga mengurangi radius perkiraan. Jika tidak ada titik di dalam wilayah yang ditentukan sebelumnya, wilayah pencarian dapat diperluas.
Akhirnya, saya ingin bisa mengajarkan robot untuk mendeteksi karpet di sekitarnya. Karpet mencerminkan penunjuk laser dengan cara tertentu, dan saya ingin memahami berapa banyak bingkai di sekitar robot yang memiliki sifat serupa. Jika saya tahu di mana pointer laser berada di layar, saya bisa memotong persegi panjang kecil dari gambar itu dan membandingkannya satu sama lain. Apakah ada cara yang efisien untuk membandingkan beberapa gambar kecil satu sama lain untuk memahami jika siluet mereka cocok?
Saya perhatikan bahwa laser dipantulkan dari permukaan yang mengkilap, dan arah pantulan ini dapat memberi tahu saya sesuatu tentang orientasi permukaan dalam ruang, sesuai dengan hukum refraksi.
Terima kasih!
sumber
Jawaban:
OpenCV dapat dikompilasi untuk iOS. Meskipun mungkin bukan yang paling efisien itu memberi Anda pilihan untuk porting algoritma. Saya telah melakukan masalah pelacakan penanda yang serupa menggunakan algoritma ConDensation. Cari pelacakan marker dengan OpenCV. Ini adalah area penelitian yang SANGAT besar dan algoritma yang tepat yang Anda inginkan tergantung sepenuhnya pada aplikasi Anda. Jika saya ingat dengan benar, ada sekitar 3000 teknik pemrosesan gambar yang dilaporkan - memilih yang bagus adalah seni nyata!
Ngomong-ngomong, ini adalah ide dasar di balik apa yang disebut filter partikel (di mana Kondensasi merupakan salah satu metode). Bagus, Anda sudah tahu ide dasarnya sendiri!
Ini disebut ketekunan negara dan dapat dimodelkan dengan berbagai cara. Algoritma kondensasi menggunakan pendekatan stokastik yang tidak berbeda dengan filter Kalman tua biasa.
Yang ini sedikit lebih sulit. Anda dapat mencoba pencocokan template tetapi saya tidak tahu seberapa baik kinerjanya di iOS (perhitungan sangat berat dan kamera iOS tidak cocok untuk itu).
sumber
Bagaimana dengan kode ini
https://www.youtube.com/watch?v=MKUWnz_obqQ
https://github.com/niitsuma/detect_laser_pointer
Dalam kode ini warna HSV dibandingkan dengan menggunakan uji t square dari hotelling
sumber