Pertanyaan Bagaimana cara memasukkan gambar ke jaringan syaraf?


Saya mengerti cara kerja jaringan syaraf, tetapi jika saya ingin menggunakannya untuk pemrosesan gambar seperti pengenalan karakter yang sebenarnya, saya tidak dapat memahami bagaimana saya dapat memasukkan data gambar ke jaringan syaraf.

Saya memiliki gambar yang sangat besar A surat. Mungkin saya harus mencoba untuk mendapatkan beberapa info / spesifikasi dari gambar dan kemudian menggunakan vektor nilai-nilai spesifikasi itu? Dan mereka akan menjadi masukan untuk jaringan syaraf?

Siapa yang sudah melakukan hal semacam itu, bisakah Anda menjelaskan cara melakukan ini?


32
2018-01-18 08:29


asal


Jawaban:


Solusi termudah adalah dengan menormalkan semua gambar Anda, baik untuk pelatihan dan pengujian, untuk memiliki resolusi yang sama. Juga karakter di setiap gambar harus berukuran hampir sama. Ini juga ide yang bagus untuk menggunakan gambar grayscale, jadi setiap pixel akan memberi Anda hanya satu angka. Kemudian Anda dapat menggunakan setiap nilai piksel sebagai satu masukan ke jaringan Anda. Misalnya, jika Anda memiliki gambar berukuran 16x16 piksel, jaringan Anda akan memiliki 16 * 16 = 256 input neuron. Neuron pertama akan melihat nilai dari pixel pada (0,0), yang kedua pada (0,1), dan seterusnya. Pada dasarnya Anda menempatkan nilai-nilai gambar ke dalam satu vektor dan memberi umpan vektor ini ke dalam jaringan. Ini seharusnya sudah bekerja.

Dengan terlebih dahulu mengekstraksi fitur (misalnya, tepian) dari gambar dan kemudian menggunakan jaringan pada fitur-fitur tersebut, Anda mungkin dapat meningkatkan kecepatan pembelajaran dan juga membuat pendeteksian lebih kuat. Apa yang Anda lakukan dalam kasus itu adalah menggabungkan pengetahuan sebelumnya. Untuk pengenalan karakter Anda tahu fitur-fitur tertentu yang relevan. Jadi dengan mengekstraksi mereka sebagai langkah preprocessing, jaringan tidak harus mempelajari fitur-fitur tersebut. Namun, jika Anda memberikan yang salah, yaitu tidak relevan, fitur, jaringan tidak akan dapat mempelajari gambar -> pemetaan karakter.


24
2018-01-18 08:49



Nama untuk masalah yang Anda coba pecahkan adalah "ekstraksi fitur". Ini jelas tidak sepele dan subjek penelitian aktif.

Cara naif untuk melakukan ini hanyalah memetakan setiap piksel gambar ke neuron masukan yang sesuai. Tentunya, ini hanya berfungsi untuk gambar yang ukurannya sama, dan umumnya memiliki efektivitas terbatas.

Di luar ini, ada banyak hal yang dapat Anda lakukan ... Gabor filter, fitur seperti Haar, PCA dan ICA, fitur yang jarang, hanya untuk menyebutkan beberapa contoh populer. Saran saya adalah untuk mengambil buku teks pada jaringan syaraf dan pengenalan pola atau, khususnya, pengenalan karakter optik.


7
2018-01-18 08:48



Semua pertimbangan tentang menerapkan NN ke gambar tercakup dalam kami Kertas ulasan tahun 2002 (Berbasis fitur, berbasis piksel, skala invarian, dll.)

Tantangan terbesar Anda adalah apa yang disebut 'kutukan dimensi'.

Saya akan membandingkan NN-kinerja dengan mesin vektor dukungan (rumit yang kernel digunakan).


2
2018-05-23 08:44



Anda dapat menggunakan sebagai masukan piksel aktual. Inilah sebabnya kadang-kadang lebih baik menggunakan resolusi yang lebih kecil dari gambar input.

Yang menyenangkan tentang JST adalah bahwa mereka entah bagaimana mampu melakukan seleksi fitur (mengabaikan piksel yang tidak penting dengan menetapkan bobot hampir nol untuk node input tersebut)


1
2018-01-18 08:50



Berikut ini beberapa langkahnya: pastikan gambar skala warna / abu-abu Anda adalah gambar biner. Untuk melakukan ini, lakukan beberapa operasi thresholding. setelah itu semacam ekstraksi fitur. Untuk OCR / NN, contoh ini mungkin bisa membantu, meskipun di ruby: https://github.com/gbuesing/neural-net-ruby/blob/master/examples/mnist.rb


0
2018-01-19 03:59