Dapatkah filter Gabor digunakan untuk mendeteksi penyok di mobil?


16

Saya sedang melakukan penelitian pada filter Gabor untuk mendeteksi penyok di mobil. Saya tahu filter Gabor telah digunakan secara luas untuk pengenalan pola, pengenalan sidik jari, dll.

Saya punya gambar.

Gambar mentah

Menggunakan beberapa kode dari situs MathWorks File Exchange, saya mendapat hasil sebagai berikut.

Gambar yang diproses

yang entah bagaimana bukan output yang diharapkan. Ini bukan hasil yang bagus.

Script saya adalah sebagai berikut:

I = imread('dent.jpg');
I = rgb2gray(I);
[G, gabout] = gaborfilter1(I, 2, 4, 16, pi/2);
figure
imshow(uint8(gabout));

EDIT: Menerapkan kode berbeda ke gambar berikut:

masukan gambar

Keluarkan gambar setelah berbagai orientasi filter gabor:

masukkan deskripsi gambar di sini

bagaimana cara mengisolasi DENT ini yang terdeteksi dengan benar?


1
I = imread ('dent.jpg'); I = rgb2gray (I); [G, gabout] = gaborfilter1 (I, 2,4,16, pi / 2); gambar, imshow (uint8 (mengobrol tentang)); Telah menggunakan parameter berikut
vini

Apa yang kamu tanyakan?
Andrey Rubshtein

2
Ada apa dengan filter Gabor yang membuat Anda berpikir itu cocok untuk masalah ini?
Nzbuu

Mungkin dengan pemrosesan gambar, gaya selalu seragam dan lekuk tidak seragam, akan ada sedikit peluang lekuk yang memiliki tepi yang tidak seragam. Ini mungkin analisis pola tepi penyok.

Jawaban:


21

Ini adalah masalah yang sangat sulit. Saya adalah bagian dari tim yang mengerjakannya selama beberapa tahun, dan setelah mengembangkan dan mendukung aplikasi lain untuk waktu yang lama saya dapat mengatakan bahwa deteksi penyok adalah masalah yang sangat rumit, dan jauh lebih sulit daripada yang terlihat pada awalnya.

Memiliki algoritma yang bekerja dalam kondisi lab atau gambar yang dikenal adalah satu hal; mengembangkan sistem yang akurat dan kuat untuk gambar "alami" seperti mobil yang terlihat di tempat parkir kemungkinan akan membutuhkan tim yang bekerja selama beberapa tahun. Selain masalah inti pembuatan algoritma, ada banyak kesulitan teknik lainnya.

Kode sampel yang Anda uji bukanlah awal yang buruk. Jika Anda dapat menemukan tepi di sekitar sisi kanan gelap penyok Anda dapat membandingkan peta tepi mobil dengan ding ke peta tepi mobil yang dikenal baik dicitrakan dari sudut yang sama dengan pencahayaan yang sama. Mengontrol pencahayaan akan sangat membantu.

Masalah yang perlu dipertimbangkan termasuk yang berikut:

  1. Pencahayaan (jauh lebih sulit daripada yang pertama terlihat)
  2. Permukaan 3D yang diharapkan dari panel luar rakitan (mis. Dari data CAD)
  3. Kriteria yang mencirikan lekuk: area, kedalaman, profil, dll.
  4. Kriteria untuk false negative dan false positive
  5. Berarti untuk menyimpan data lekuk dan / atau lekukan peta ke model mobil (atau tata letak kupu-kupu)
  6. Metodologi dan alat untuk mengukur karakteristik penyok yang "benar": kedalaman, luas, dll.
  7. Database luas penyok dari pengambilan sampel acak kendaraan
  8. Berurusan dengan berbagai warna cat dan sentuhan akhir

1. Pencahayaan Seperti yang disebutkan Martin B dengan benar di atas, pencahayaan yang benar sangat penting untuk masalah ini. Bahkan dengan pencahayaan terstruktur yang baik, Anda akan mengalami kesulitan besar mendeteksi penyok kecil di dekat garis fitur, celah di antara panel, pegangan, dan sebagainya.

Entri Wikipedia untuk pencahayaan terstruktur agak tipis, tetapi ini adalah awal untuk memahami prinsip: http://en.wikipedia.org/wiki/Structured_light

Garis-garis cahaya dapat digunakan untuk mendeteksi in-dings (penyok) dan out-dings (jerawat). Untuk melihat ding, Anda memerlukan gerakan relatif antara sumber cahaya dan mobil. Baik kamera + cahaya bergerak bersama relatif terhadap mobil, atau mobil bergerak melewati kamera + cahaya.

Meskipun in-dings dan out-dings memiliki penampilan yang khas ketika terlihat di tepi strip cahaya, kemampuan mendeteksi lekuk yang diberikan tergantung pada ukuran dan kedalaman lekuk relatif terhadap lebar strip cahaya. Kelengkungan mobil itu rumit, jadi cukup sulit untuk menghadirkan garis cahaya yang konsisten ke kamera. Ketika strip cahaya bergerak melintasi bodi mobil, kelengkungan dan bahkan intensitas strip cahaya akan bervariasi.

Salah satu solusi parsial adalah memastikan bahwa kamera dan garis cahaya selalu pada sudut yang konsisten relatif terhadap normal (3D tegak lurus) dari bagian permukaan yang diperiksa. Dalam praktiknya robot akan diminta untuk menggerakkan kamera secara akurat relatif terhadap permukaan tubuh. Memindahkan robot secara akurat membutuhkan pengetahuan tentang pose (posisi dan sudut 3D) dari bodi mobil, yang merupakan masalah buruk dengan sendirinya.

Untuk setiap inspeksi untuk aplikasi otomotif, Anda perlu mengontrol pencahayaan sepenuhnya. Itu berarti tidak hanya menempatkan lampu pilihan Anda di lokasi yang diketahui, tetapi juga memblokir semua cahaya lainnya. Ini berarti kandang yang cukup besar. Karena panel mobil melengkung ke luar (hampir seperti permukaan bola), mereka akan memantulkan cahaya dari sumber di sekitar mereka. Untuk menyederhanakan masalah ini, Anda dapat menggunakan bilah pijar frekuensi tinggi di dalam selungkup yang dilapisi beludru hitam. Cukup sering itu perlu untuk pergi ke ekstrem seperti itu untuk aplikasi inspeksi.

2. Permukaan 3D Permukaan luar mobil terdiri dari kurva yang kompleks. Untuk mengetahui apakah tempat yang mencurigakan adalah ding, Anda harus membandingkan tempat itu dengan fitur mobil yang diketahui. Itu berarti Anda harus mencocokkan gambar 2D dari kamera ke model 3D yang dilihat pada sudut tertentu. Ini bukan masalah yang diselesaikan dengan cepat, dan cukup sulit untuk melakukannya dengan baik sehingga beberapa perusahaan berspesialisasi di dalamnya.

3. Karakterisasi cacat Untuk penelitian akademis atau pengujian laboratorium mungkin cukup untuk mengembangkan algoritma yang menunjukkan janji atau meningkatkan metode yang ada. Untuk menyelesaikan masalah ini dengan benar untuk penggunaan komersial atau industri nyata, Anda harus memiliki spesifikasi yang sangat rinci untuk ukuran penyok yang ingin Anda deteksi.

Ketika kami mengatasi masalah ini, tidak ada standar masuk akal industri atau nasional untuk penyok (deformasi 3D). Artinya, tidak ada teknik yang disepakati untuk mengkarakterisasi penyok berdasarkan luas, kedalaman, dan bentuknya. Kami hanya memiliki sampel yang disetujui para pakar industri buruk, tidak terlalu buruk, dan marjinal dalam hal keparahan. Menentukan "kedalaman" suatu ding juga sulit, karena ding adalah lekukan 3D pada (biasanya) permukaan 3D yang melengkung ke arah luar.

Bantingan yang lebih besar lebih mudah dideteksi, tetapi mereka juga kurang umum. Pekerja mobil yang berpengalaman dapat memindai bodi mobil dengan cepat - jauh lebih cepat daripada pengamat yang tidak terlatih - dan menemukan ukuran jari kelingking Anda yang dangkal dengan cepat. Untuk membenarkan biaya sistem otomatis, Anda mungkin harus mencocokkan kemampuan pengamat yang berpengalaman.

4. Kriteria untuk deteksi kesalahan Sejak dini Anda harus menetapkan kriteria untuk false negative yang dapat diterima dan false positive. Bahkan jika Anda hanya mempelajari masalah ini sebagai proyek R & D dan tidak bermaksud mengembangkan produk, cobalah untuk menentukan kriteria deteksi Anda.

false negative: penyok hadir, tetapi tidak terdeteksi positif palsu: daerah yang tidak bercacat diidentifikasi sebagai penyok

Biasanya ada tradeoff: tingkatkan kepekaan dan Anda akan menemukan lebih banyak bantingan (kurangi negatif palsu), tetapi Anda juga akan menemukan bantingan lain yang tidak ada di sana (tingkatkan false positive). Sangat mudah untuk meyakinkan diri sendiri bahwa suatu algoritma berkinerja lebih baik daripada yang sebenarnya: bias alami kita adalah untuk melihat cacat yang terdeteksi oleh algoritma dan menjelaskan bahwa itu tidak terdeteksi. Lakukan tes buta dan otomatis. Jika mungkin, mintalah orang lain mengukur bantingan dan menetapkan tingkat keparahan sehingga Anda tidak tahu apa ukuran sebenarnya.

5. Menyimpan data dan / atau memetakannya Penyok ditandai dengan tingkat keparahannya dan lokasinya pada bodi mobil. Untuk mengetahui lokasinya, Anda harus menyelesaikan masalah korespondensi 2D-ke-3D yang disebutkan di atas.

6. Menentukan bentuk lekukan "benar" Penyok sulit diukur. Lekuk tajam dan lekuk bulat dengan luas dan kedalaman permukaan yang sama akan tampak berbeda. Mengukur penyok dengan cara mekanis mengarah pada penilaian subyektif, dan itu juga cukup membosankan untuk menggunakan pengukur kedalaman, penggaris, dll., Ketika Anda mungkin harus mengukur lusinan jika tidak lebih.

Ini adalah salah satu masalah rekayasa yang lebih sulit untuk dipecahkan untuk proyek deteksi cacat apa pun untuk pembuatan: bagaimana cara mengukur cacat dan mengkarakterisasi itu? jika ada standar untuk melakukannya, apakah standar berkorelasi baik dengan sesuatu yang diukur sistem inspeksi? jika sistem inspeksi tidak menemukan yang "seharusnya" ditemukan, siapa yang harus disalahkan?

Yang mengatakan, jika sistem inspeksi bekerja cukup baik untuk sampel cacat yang diketahui, maka pengguna akhirnya dapat mempercayainya, dan sistem itu sendiri menjadi standar untuk menentukan tingkat keparahan cacat.

7. Basis data ekstensif penyok Idealnya Anda akan memiliki ratusan atau bahkan ribuan sampel gambar penyok dengan tingkat keparahan berbeda di lokasi berbeda pada kendaraan dari pabrik yang sulit. Jika Anda tertarik untuk menemukan lekukan yang disebabkan oleh kecelakaan selama proses perakitan, maka mungkin butuh waktu lama untuk mengumpulkan data semacam itu. Penyok yang disebabkan selama proses perakitan tidak umum.

Jika Anda hanya tertarik menemukan penyok yang disebabkan oleh kecelakaan atau kerusakan lingkungan, maka itu masalah lain. Jenis penyok akan berbeda dari yang disebabkan oleh gundukan yang tidak disengaja di dalam pabrik perakitan otomatis.

8. Berurusan dengan warna-warna cat yang berbeda Memang benar bahwa detektor tepi dapat cukup kuat dalam mendeteksi tepi dalam gambar dengan tingkat kontras yang berbeda-beda, tetapi bisa sangat mengecewakan untuk melihat apa yang sebenarnya dimaksud dengan "berbagai tingkat kontras" untuk berbagai cat dan penyelesaian cat otomotif yang berbeda. . Garis cahaya yang tampak bagus pada mobil hitam yang mengkilap sulit dideteksi pada mobil putih dengan cat lama.

Sebagian besar kamera memiliki rentang dinamis yang relatif terbatas, sehingga mencapai kontras yang baik untuk permukaan hitam mengkilap dan permukaan putih kusam itu sulit. Sangat mungkin Anda harus mengontrol intensitas pencahayaan secara otomatis. Itu sulit juga.


apakah tidak ada database gambar yang bisa saya dapatkan pada penyok? dan jawaban yang brilian saya tidak pernah tahu banyak ...
vini

2
Saya tidak yakin ada database seperti itu karena banyak informasinya adalah hak milik. Pabrikan mobil tidak perlu ingin menyiarkan ke dunia ukuran dan jenis cacat yang mereka lihat di manufaktur. Yang mengatakan, tanpa sistem pengukuran statistik yang kuat dapat didasarkan pada inspeksi visual manusia di pabrik, yang dapat didasarkan pada pengambilan sampel, atau pada laporan kerusakan dari dealer mobil. Sebuah mobil yang penyok sebelum tiba di dealer bisa tidak terjual, yang berarti kehilangan uang dan sumber daya yang terbuang.
Rethunk

1
Bengkel penyok menggunakan garis-garis ringan, meskipun pengaturannya lebih cocok untuk inspeksi manusia daripada inspeksi otomatis: exceldent.wordpress.com/tag/door-ding-repair ncfixadent.com/services/paintless-dent-repair-pdr Untuk sistem otomatis , Anda ingin memblokir semua cahaya asing, termasuk pantulan dari rumah pencahayaan itu sendiri. Selain itu, Anda perlu mengatur fokus kamera agar terjadi keseimbangan antara menjaga sumber cahaya agar tetap fokus sehingga ujungnya tajam dan menjaga permukaan kendaraan tetap fokus untuk melihat fitur kendaraan.
Rethunk

Hai memikirkan kembali sekarang saya hanya merumuskan solusi untuk hal yang sama apakah ada pula mendapatkan beberapa gambar penyok mobil dan goresan dll yang akan membantu dalam penelitian saya tolong bantu!
vini

1
Mengumpulkan foto penyok dan goresan bisa jadi sulit. Ini mungkin membutuhkan kerja keras. Tidak banyak gambar yang cocok online. Anda dapat menghubungi bengkel mobil dan bertanya apakah Anda dapat mengambil foto kendaraan yang mereka miliki; sebagai gantinya, Anda bisa berbelanja di laporan Anda. Tanyakan kepada teman dan rekan kerja apakah Anda dapat mengambil gambar mobil mereka - bawa lampu neon genggam untuk penerangan. Ponsel kamera akan baik-baik saja. Yang terbaik adalah mendapatkan panel penyok dan penyok dari tempat barang rongsokan. Yang terbaik adalah memiliki sampel sendiri dari awal sehingga Anda dapat mengubah pencahayaan, dll.
Rethunk

9

Filter Gabor hanyalah langkah pertama dari beberapa langkah yang akan Anda gunakan untuk tugas deteksi cacat tersebut. Juga, perhatikan bahwa Anda hanya menggunakan orientasi dan skala filter Gabor tertentu - Anda biasanya akan menggunakan seluruh rentang orientasi dan skala.

Garis besar yang sangat kasar dari pendekatan deteksi cacat sederhana menggunakan filter Gabor adalah sebagai berikut:

  • Terapkan filter Gabor pada berbagai orientasi dan skala
  • Terapkan classifier (dilatih tentang data pelatihan yang sesuai) untuk mengklasifikasikan setiap piksel sebagai "cacat" atau "tidak cacat"
  • Gabungkan deteksi dari piksel tetangga untuk memastikan setiap cacat terdeteksi hanya sekali dan untuk menghilangkan deteksi palsu

Satu hal yang tidak ada dalam daftar ini tetapi biasanya sangat penting adalah perolehan gambar. Cara Anda menyalakan objek dan menempatkan kamera Anda memiliki pengaruh besar pada seberapa mudahnya mendeteksi cacat pada gambar yang dihasilkan. Gambar sampel Anda tampaknya menggunakan pencahayaan lingkungan yang kebetulan ada pada saat itu - ini sangat mungkin tidak optimal.

Seperti yang saya katakan, ini hanya garis besar yang sangat kasar. Inspeksi otomatis adalah bidang yang luas dan membutuhkan banyak keahlian untuk melakukannya dengan baik.


0

Tidak, tidak bisa. Pemrosesan gambar tidak ajaib, Anda perlu memberikan informasi lebih lanjut. Tanpa beberapa gagasan tentang bagaimana mobil seharusnya terlihat, bagaimana komputer seharusnya membedakan penyok dari gaya tubuh yang dimaksudkan?


1
saya tahu ini bukan sihir dan gambar yang saya dapatkan dari google..that mengapa saya ingin beberapa masukan tentang bagaimana saya akan mendekati masalah ini .. hanya menggunakan filter ini tidak cukup ...
vini

Saya ingin memilih ini, tetapi itu bukan jawaban yang nyata. Itu harus menjadi komentar.
endolith
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.