Deteksi Objek: Pelatihan Diperlukan atau Tidak Perlu Pelatihan?

Pertanyaan ini terkait dengan deteksi Objek, dan pada dasarnya, mendeteksi objek yang "dikenal". Sebagai contoh, bayangkan saya mempunyai objek di bawah ini.

  1. Meja
  2. Botol.
  3. Kamera
  4. Mobil

Saya akan mengambil 4 foto dari semua objek individual ini. Satu dari kiri, satu lagi dari kanan, dan 2 lainnya dari atas dan bawah. Awalnya saya mengira objek-objek ini dapat dikenali dengan masing-masing 4 foto ini, karena Anda memiliki foto-foto di keempat sudut, tidak peduli bagaimana Anda melihat objek tersebut, Anda dapat mendeteksinya.

Namun saya bingung dengan ide seseorang tentang melatih mesin dengan ribuan gambaran positif dan negatif dari setiap objek. Menurut saya ini tidak diperlukan.

Jadi sederhananya, pertanyaan saya adalah, untuk mengidentifikasi suatu objek, apakah saya memerlukan ribuan objek positif dan negatif ini? Atau cukup 4 foto dari 4 sudut saja?

Saya mengharapkan untuk menggunakan OpenCV untuk ini.

Perbarui

Sebenarnya yang pokoknya kira-kira seperti ini.. Bayangkan saya punya 2 laptop. Salah satunya adalah Dell dan yang lainnya adalah HP. Keduanya merupakan laptop namun tahukah Anda, keduanya memiliki perbedaan yang terlihat jelas termasuk Logonya. Bisakah kita melakukan ini menggunakan Deskripsi Fitur? Jika tidak, seberapa "sulit" proses "pelatihannya"? Berapa banyak foto yang dibutuhkan?

Pembaruan 2 Saya perlu mendeteksi objek "spesifik". Tidak semua mobil, semua botol dll. Misalnya, "Mobil Maruti Model 123" dan "Mobil Ferrari Model 234" keduanya adalah mobil tetapi berbeda. Bayangkan saya memiliki foto Maruti dan Ferrari dari model yang disebutkan di atas, maka saya perlu mendeteksinya. Saya tidak perlu khawatir tentang mobil atau kendaraan lain, atau bahkan model Maruti dan Ferrari lainnya. Namun "Mobil Maruti Model 123" yang disebutkan di atas harus diidentifikasi sebagai "Mobil Maruti Model 123" dan "Mobil Ferrari Model 234" yang disebutkan di atas harus diidentifikasi sebagai "Mobil Ferrari Model 234". Berapa banyak gambar yang saya perlukan untuk ini?


person JustCause    schedule 06.05.2014    source sumber
comment
Tergantung pada jenis algoritma apa yang akan Anda gunakan.   -  person eerorika    schedule 06.05.2014
comment
Anda sadar bahwa Anda sedang mengambil foto 2D dari objek 3D? Karena perbedaan rotasi terjadi dalam ruang 3D, namun pengenalannya harus terjadi dalam ruang 2D. Jika Anda dapat merekonstruksi objek 3D, pengenalan dalam ruang 3D akan jauh lebih mudah, tapi itu adalah JIKA besar.   -  person MSalters    schedule 06.05.2014
comment
@ user2079303: Silakan lihat pembaruan saya untuk pertanyaan tersebut.   -  person JustCause    schedule 06.05.2014
comment
@MSalters: Silakan lihat pembaruan saya untuk pertanyaan tersebut.   -  person JustCause    schedule 06.05.2014
comment
@HashMap apakah Anda ingin mendeteksi botol/meja/kamera/mobil APAPUN atau satu botol/meja/kamera/mobil tertentu? Jika satu objek spesifik yang tidak berubah bentuk adalah yang ingin Anda deteksi, beberapa gambar objek spesifik ITU mungkin cukup tanpa pelatihan apa pun. Di sisi lain, jika Anda ingin mendeteksi porsche carrera, beberapa gambar ford focus mungkin tidak membantu;)   -  person Micka    schedule 06.05.2014
comment
@Micka: Anda benar, saya perlu mendeteksi objek tertentu. Tidak semua mobil, semua botol dll. Misalnya Maruti Car Model 123 dan Ferrary Car Model 234 sama-sama mobil tetapi berbeda. Bayangkan saya mempunyai gambar maruti dan ferrary, maka saya perlu mendeteksinya. Saya tidak perlu khawatir tentang mobil atau kendaraan lain, atau bahkan model Maruty dan Ferrary lainnya. Namun Model Mobil Maruti 123 yang disebutkan di atas harus diidentifikasi sebagai Model Mobil Maruti 123 dan Model Mobil Ferrary 234 yang disebutkan di atas harus diidentifikasi sebagai Model Mobil Ferrary 234. Berapa banyak gambar yang saya perlukan untuk ini?   -  person JustCause    schedule 06.05.2014
comment
setidaknya satu dari setiap sisi objek yang mungkin terlihat pada deteksi selanjutnya, semakin banyak semakin baik. tetapi jika model mobil tersebut dimodifikasi oleh pengguna atau diubah dengan cara lain (warna/desain, dll) model referensi Anda mungkin tidak cukup tepat lagi, maka Anda perlu melatih modelnya. Tapi kenapa tidak mencobanya saja tanpa latihan?   -  person Micka    schedule 06.05.2014
comment
mungkin bisa dilihat di: courses.cs.washington.edu/ kursus/csep576/05wi/kuliah/   -  person Micka    schedule 06.05.2014
comment
@Micka: Jika pengguna memodifikasinya, maka untuk saat ini kita dapat mengabaikannya.   -  person JustCause    schedule 06.05.2014
comment
@Micka: wah! tautan luar biasa!!! kamu punya lebih banyak yang seperti ini? Wow!   -  person JustCause    schedule 06.05.2014
comment
@Micka: Bolehkah saya mengetahui berapa banyak foto yang saya perlukan untuk pelatihan dan bagaimana melakukannya? Menurut tautan yang Anda berikan, sepertinya kami harus memberikan 1 gambar dalam bentuk 2D. Karena milik saya 3D, 4 gambar dari 4 sisi sudah cukup?   -  person JustCause    schedule 07.05.2014
comment
Tidak punya pengalaman praktis tapi saya akan memikirkan 8 gambar termasuk gambar di antara 2 sisi. Mungkin mencari kertas Ayak asli (oleh Lowe). Afair mereka juga menggunakan beberapa database   -  person Micka    schedule 07.05.2014
comment
@HashMap google untuk makalah ini juga: Fitur Gambar Khas dari Titik Kunci Invarian Skala - UBC ... pada akhirnya mereka memberikan beberapa informasi tentang pengenalan objek dasar. dan mengutip beberapa makalah mereka yang lain!   -  person Micka    schedule 07.05.2014
comment
@Micka: Terima kasih, semua saran Anda berfungsi untuk situasi waktu nyata bukan? yang berarti kamera melihat objek dan mengidentifikasi.   -  person JustCause    schedule 08.05.2014


Jawaban (2)


Jawaban:

  1. Jika Anda ingin mendeteksi objek tertentu dan tidak perlu memperhitungkan perubahan sudut pandang, Anda dapat menggunakan fitur 2D: http://docs.opencv.org/doc/tutorials/features2d/feature_homography/feature_homography.html

  2. Untuk membedakan 2 logo, Anda mungkin perlu membuat detektor untuk setiap logo yang akan dilatih pada sekumpulan gambar. Misalnya, Anda dapat melatih pengklasifikasi kaskade Haar.

  3. Untuk membedakan berbagai model mobil, Anda mungkin perlu melatih pengklasifikasi menggunakan gambar pelatihan setiap mobil. Namun, saya menemukan aplikasi yang melakukan hal itu menggunakan pendekatan tetangga terdekat - aplikasi ini hanya mengekstrak fitur dari gambar pengujian yang diberikan dan membandingkannya dengan kumpulan gambar model mobil yang berbeda.

Selain itu, saya dapat merekomendasikan beberapa pendekatan dan paket jika Anda ingin menjelaskan lebih lanjut tentang aplikasi tersebut.

person GilLevi    schedule 06.05.2014
comment
Hai, Terima kasih atas jawabannya. Jadi ya, seperti yang telah saya sebutkan dalam pertanyaan saya, bayangkan saya sudah memiliki gambar Mobil Maruti Model 123 dan Mobil Ferrary Model 234. Jadi jika kamera melihat Mobil Maruti Model 123 ini (waktu nyata), maka kamera akan mengidentifikasinya apa adanya. Jangan bingung membedakannya dengan Ferrary. Kami tidak perlu mempertimbangkan mobil lain. Nanti di aplikasi ini saya mungkin harus mengidentifikasi pintu, lampu, dll dari mobil ini juga. Saya menantikan tanggapan Anda. - person JustCause; 06.05.2014
comment
Saya akan mencoba menggunakan fitur Decaf: github.com/UCB-ICSI-Vision- Rilisan grup/tanpa kafein - person GilLevi; 06.05.2014
comment
Terima kasih! Apakah ini seperti courses.cs.washington.edu/courses /csep576/05wi/ceramah/ ? - person JustCause; 07.05.2014
comment
Terima kasih. Saran ini berfungsi untuk situasi waktu nyata, bukan? Artinya kamera melihat objek dan mengidentifikasinya secara real time. - person JustCause; 08.05.2014
comment
Mungkin untuk deteksi waktu nyata, Anda harus mencoba Caffe: caffe.berkeleyvision.org Lebih cepat daripada Decaff - person GilLevi; 08.05.2014
comment
Terima kasih banyak. Kita masih harus melatih gambar kan? Berapa banyak gambar yang harus saya masukkan ke dalam proses pengajaran ini. Saya akan mengambil gambar dari keempat sisi, jadi 2 gambar per sisi sudah cukup? Itu menghasilkan 8 gambar. - person JustCause; 08.05.2014
comment
Proses yang saya sarankan adalah sebagai berikut: pada tahap pelatihan, ekstrak fitur menggunakan Decaf dari banyak gambar dan latih pengklasifikasi. Dalam fase pengujian, diberikan gambar pengujian, ekstrak deskriptor dari gambar tersebut dan masukkan ke pengklasifikasi. Saya rasa Anda memerlukan lebih dari 8 gambar. Ambil banyak gambar dalam kondisi petir berbeda dan dari sudut pandang berbeda. - person GilLevi; 08.05.2014
comment
hmm..Banyak gambar berarti ribuan per objek? Atau 20-30? sebenarnya saya hanya perlu mendeteksi objek tertentu, jadi jika ada ribuan objek maka akan ada jutaan gambar! - person JustCause; 08.05.2014
comment
Sulit untuk mengatakan dengan tepat berapa banyak gambar yang Anda perlukan. Hal ini juga tergantung pada seberapa terbatas kondisi perubahan petir dan perubahan posenya. Mulailah dengan beberapa lusin dan lihat seberapa baik kinerjanya. - person GilLevi; 08.05.2014
comment
Terima kasih, berapa lama prosesnya? - person JustCause; 08.05.2014
comment
Mengekstrak fitur tanpa kafein membutuhkan waktu sekitar 1-3 detik per gambar (di komputer saya). Saya tidak yakin berapa lama pelatihan ini akan berlangsung. - person GilLevi; 08.05.2014
comment
Terima kasih atas balasan dan dukungan berkelanjutan. Anda menyebutkan sesuatu tentang Tetangga Terdekat, kan? Tautan yang saya berikan kepada Anda kira-kira seperti itu? Saya baru saja melihatnya digunakan untuk mengidentifikasi bagian dan lokasi kendaraan! Bolehkah saya mengetahui ide Anda tentang ini? Sekali lagi terima kasih atas dukungan Anda yang tiada henti - person JustCause; 08.05.2014
comment
Pada dasarnya, Anda dapat mengekstrak fitur dari sejumlah besar sampel pelatihan. Diberikan gambar uji, ekstrak fitur dari gambar tersebut dan temukan fitur terdekat dari gambar uji di set pelatihan. Anda dapat mengklasifikasikan gambar uji ke dalam kelas yang sama dengan fitur terdekatnya di set pelatihan (atau lebih sering disebut sebagai tetangga terdekatnya) - person GilLevi; 09.05.2014
comment
Halo, saya punya satu pertanyaan lagi. Setelah pelatihan, apa outputnya? Berkas XML? - person JustCause; 18.05.2014
comment
Pada dasarnya, ini tergantung pada implementasi dan lingkungan (pengklasifikasi mana yang Anda latih? dalam bahasa pemrograman apa? OpenCV atau Matlab). Saya tidak yakin apa hasilnya jika Anda menggunakan OpenCV. - person GilLevi; 19.05.2014

Untuk menjawab pertanyaan yang anda ajukan pada judul, jika anda ingin dapat menentukan objek apa pada gambar tersebut anda memerlukan algoritma yang diawasi (alias terlatih). Jika tidak, Anda akan dapat menentukan, dalam beberapa kasus, tepi atau keberadaan suatu objek, namun tidak dapat menentukan jenis objek tersebut. Untuk mengetahui objeknya, Anda memerlukan set pelatihan berlabel.

Mengenai isi soal, banyaknya kemungkinan sudut pada suatu gambar suatu benda tidak terhingga. Jika Anda hanya memiliki empat gambar di set pelatihan Anda, contoh pengujian dapat diambil dalam sudut yang berada di tengah-tengah antara contoh pelatihan A dan contoh pelatihan B, sehingga sulit untuk mengenali algoritme Anda. Semakin besar set pelatihan, semakin tinggi kemungkinan mengenali objek. Hati-hati: Anda tidak pernah mencapai kepastian mutlak bahwa algoritma Anda akan mengenali objek tersebut. Kemungkinannya menjadi lebih besar.

person cangrejo    schedule 06.05.2014
comment
Terima kasih balasannya. Sebenarnya yang pokoknya kira-kira seperti ini.. Bayangkan saya punya 2 laptop. Salah satunya adalah Dell dan yang lainnya adalah HP. Keduanya merupakan laptop namun tahukah Anda, keduanya memiliki perbedaan yang terlihat jelas termasuk Logonya. Bisakah kita melakukan ini menggunakan Deskripsi Fitur?(docs.opencv .org/doc/tutorials/features2d/feature_description/) Jika belum, seberapa sulit proses pelatihannya? Berapa banyak foto yang dibutuhkan? - person JustCause; 06.05.2014