Bagaimana cara mengekstrak rambu lalu lintas dari sebuah foto?

15

Apa teknik analisis gambar yang bisa saya gunakan untuk mengekstrak rambu lalu lintas dari gambar seperti yang di bawah ini?

Foto eksterior pinggir jalan metropolitan

Edit:

Setelah difusi Anisotropik: Latar belakang yang tidak saya inginkan akan dihapus sedikit

masukkan deskripsi gambar di sini

Setelah Dilatasi:

masukkan deskripsi gambar di sini

Ambang Batas setelah Difusi: Tidak dapat menentukan ambang batas terbaik untuk tujuan ini

masukkan deskripsi gambar di sini

Namun saya tidak dapat menemukan cara menghapus latar belakang?

Sunting: saya hanya ingin bagian gambar saya ini

masukkan deskripsi gambar di sini

Mengambil gambar input lain:

masukkan deskripsi gambar di sini

Menerapkan penyaringan median dan deteksi tepi:

masukkan deskripsi gambar di sini

Setelah penyaringan topi bagian bawah:

masukkan deskripsi gambar di sini

Bagaimana cara mengisolasi rambu-rambu jalan tolong bantu?

vini
sumber
Bagi saya, "sinyal lalu lintas" berarti perangkat yang menyala justsymbol.com/images/traffic-signal-sign-6.png , bukan pertanda. Apakah yang Anda maksud hanya tanda?
endolith
Ya hanya pertanda
vini
Pendekatan apa yang sudah Anda coba sendiri?
Maurits
Ya saya punya template
vini
Telah mengedit @mauritis
vini

Jawaban:

17

Apakah Anda mencoba sesuatu yang sederhana seperti korelasi?

( EDIT ). Gagasan di balik korelasi adalah menggunakan templat (dalam kasus Anda contoh rambu lalu lintas yang terlatih), dan membandingkannya dengan setiap posisi pada gambar uji. Operasi perbandingan yang saya gunakan untuk menghasilkan gambar di bawah ini dinamakan korelasi silang dinormalisasi . Secara kasar, Anda menstandarkan (rata-rata = 0, standar deviasi = 1) piksel dalam templat dan bagian gambar yang ingin Anda cocokkan, gandakan pikselnya dengan piksel, dan hitung nilai rata-rata produk. Dengan cara ini Anda mendapatkan "skor kecocokan", yaitu ukuran kesamaan antara template dan gambar uji di setiap posisi di gambar uji. Posisi dengan kecocokan terbaik (korelasi tertinggi) adalah kandidat yang paling mungkin untuk posisi tanda jalan. (Sebenarnya, saya sudah menggunakan fungsi MathematicaCorrelationDistance untuk menghasilkan gambar di bawah ini, yaitu 1 - (korelasi dinormalisasi). Jadi tempat paling gelap di gambar pertandingan sesuai dengan pertandingan terbaik).

Saya tidak punya template lain, jadi saya memotong tanda dari gambar kedua yang Anda pasang:

masukkan deskripsi gambar di sini

Meskipun templat diputar sedikit, korelasi silang masih terlihat dapat digunakan

masukkan deskripsi gambar di sini

dan kecocokan terbaik ditemukan di posisi yang tepat:

masukkan deskripsi gambar di sini

(Anda tentu saja memerlukan beberapa versi skala setiap templat untuk mendeteksi tanda-tanda pada ukuran berapa pun)

Niki Estner
sumber
1
@nikie: Bisakah Anda menjelaskan proses yang Anda gunakan?
smokris
Ya itu akan membantu lebih banyak. Idenya tampak bagus
vini
@vini Jika Anda memiliki template dan Anda mencoba menemukan contohnya dalam gambar Anda, korelasi silang adalah pendekatan yang paling alami dan harus menjadi salah satu pendekatan pertama yang Anda coba. Inilah jawaban di sini (kode Mathematica) dan jawaban lain di SO (kode MATLAB) tempat saya menggunakan pendekatan ini.
Lorem Ipsum
7

Selama Master saya, proyek yang dilibatkan oleh penyelia saya dalam mendeteksi dan mengenali semua jenis pensinyalan lalu lintas yang berbeda dalam urutan video (misalnya deteksi jalan, deteksi garis tengah jalan, tetapi juga deteksi dan pengakuan tanda lalu lintas ). Frame video yang kami kerjakan dalam banyak hal mirip dengan contoh gambar Anda.

Meskipun saya pribadi tidak bekerja pada rambu-rambu lalu lintas, saya pikir hasil terbaik diperoleh dengan menggunakan Algoritma Viola-Jones (kertas) . Singkatnya, ini adalah algoritma yang menggunakan kaskade dari pengklasifikasi lemah (dengan akurasi hanya sedikit lebih tinggi dari pada algoritma acak) untuk membangun classifier yang kuat yang kuat bahkan dalam tugas-tugas sulit.

Proyek itu disebut MASTIF (Memetakan dan Menilai Keadaan Infrastruktur Lalu Lintas) dan melakukan beberapa pekerjaan yang sangat baik. Halaman publikasi proyek dapat sangat berguna karena menyediakan tautan ke semua makalah yang diterbitkan terkait dengan proyek. Sekadar memberi Anda ide, izinkan saya memilih beberapa publikasi (dalam urutan kronologis):

Sekali lagi, saya secara pribadi tidak bekerja pada rambu-rambu lalu lintas, tetapi saya pikir Anda dapat menemukan banyak materi berguna di sini. Juga, saya akan menyarankan melalui referensi yang dikutip di surat kabar karena mereka dapat membantu juga.

Penelope
sumber
6

Ya, googling road way signs detection memberi Anda banyak makalah bagus tentang topik ini.

Beberapa menggunakan segmentasi warna karena warna biru, hijau, merah, dll.

Beberapa menerapkan perataan Gaussian terlebih dahulu, kemudian deteksi tepi cerdik dan temuan kontur untuk mengekstrak papan tanda.

Coba ikuti dua tautan: Tautan 1 , Tautan 2

Abid Rahman K
sumber
tautan mati, sayangnya
CharlesB
Sebenarnya kedua tautan itu berfungsi untuk saya.
Abid Rahman K
@CharlesB: Tautan diperbarui :)
Anoop KP
5

Saya jelas bukan ahli di sini tapi Anda bisa mulai dengan deteksi tepi (seperti cerdik), kemudian hough transform untuk mendeteksi lingkaran, persegi panjang, kotak, atau segitiga (berdasarkan tanda yang ingin Anda deteksi), lalu Anda dapat melakukan templat pencocokan atau pencocokan histogram, jika warnanya cukup berbeda (lebih dari kandidat yang dikembalikan oleh transformasi hough).

Langkah pertama (mendeteksi kandidat menggunakan hough transform) adalah langkah yang lebih sulit. Saya bisa memikirkan banyak cara untuk mencoba mendeteksi apakah kandidat itu tandanya atau tidak. Ini masalah yang menyenangkan. Selamat memecahkannya :)

Ngomong-ngomong, saya yakin Anda dapat menemukan artikel penelitian bagus yang sangat terkait

Roronoa Zoro
sumber