Di kelas saya, saya harus membuat aplikasi menggunakan dua pengklasifikasi untuk memutuskan apakah suatu objek dalam gambar adalah contoh filum porifera (seasponge) atau objek lain.
Namun, saya benar-benar tersesat ketika datang ke fitur teknik ekstraksi dalam python. Penasihat saya meyakinkan saya untuk menggunakan gambar yang belum tercakup di kelas.
Adakah yang bisa mengarahkan saya ke dokumentasi yang bermakna atau membaca atau menyarankan metode untuk dipertimbangkan?
python
feature-extraction
image-recognition
Jeremy Barnes
sumber
sumber
Jawaban:
Dalam gambar, beberapa teknik yang sering digunakan untuk ekstraksi fitur adalah binarizing dan blur
Binarizing: mengubah array gambar menjadi 1s dan 0s. Ini dilakukan saat mengonversi gambar ke gambar 2D. Bahkan skala abu-abu juga dapat digunakan. Ini memberi Anda matriks numerik dari gambar. Grayscale membutuhkan ruang lebih sedikit saat disimpan pada Disc.
Ini adalah bagaimana Anda melakukannya dengan Python:
Contoh Gambar:
Sekarang, ubah menjadi skala abu-abu:
akan mengembalikan gambar ini kepada Anda:
Dan matriks dapat dilihat dengan menjalankan ini:
Array akan terlihat seperti ini:
Sekarang, gunakan plot histogram dan / atau plot kontur untuk melihat fitur gambar:
Ini akan mengembalikan Anda plot, yang terlihat seperti ini:
Blurring: Algoritma Blurring mengambil rata-rata tertimbang dari piksel tetangga untuk memasukkan warna lingkungan ke setiap piksel. Ini meningkatkan kontur lebih baik dan membantu dalam memahami fitur dan kepentingannya dengan lebih baik.
Dan ini adalah bagaimana Anda melakukannya dengan Python:
Dan gambar yang kabur adalah:
Jadi, ini adalah beberapa cara di mana Anda dapat melakukan rekayasa fitur. Dan untuk metode lanjutan, Anda harus memahami dasar-dasar Penglihatan Komputer dan jaringan saraf, dan juga berbagai jenis filter dan signifikansinya serta matematika di belakangnya.
sumber
Tutorial hebat ini mencakup dasar-dasar kerja saraf convolutional, yang saat ini mencapai kinerja terbaik dalam sebagian besar tugas penglihatan:
http://deeplearning.net/tutorial/lenet.html
Ada sejumlah opsi untuk CNN dalam python, termasuk Theano dan perpustakaan yang dibangun di atasnya (saya menemukan keras agar mudah digunakan).
Jika Anda lebih suka menghindari pembelajaran mendalam, Anda mungkin melihat ke dalam OpenCV, yang dapat mempelajari banyak jenis fitur lainnya, garis Haar cascade, dan fitur SIFT.
http://opencv-python-tutroals.readthedocs.org/en/latest/py_tutorials/py_feature2d/py_table_of_contents_feature2d/py_table_of_contents_feature2d.html
sumber
Seperti yang dikatakan Jeremy Barnes dan Jamesmf, Anda dapat menggunakan algoritma pembelajaran mesin apa pun untuk mengatasi masalah tersebut. Mereka kuat dan dapat mengidentifikasi fitur-fitur secara otomatis. Anda hanya perlu memberi makan algoritma data pelatihan yang benar. Karena diperlukan untuk bekerja pada gambar, jaringan saraf convolution akan menjadi pilihan yang lebih baik untuk Anda.
Ini adalah tutorial yang baik untuk belajar tentang jaringan saraf konvolusi. Anda juga dapat mengunduh kode dan dapat berubah sesuai dengan definisi masalah Anda. Tetapi Anda perlu belajar python dan theano library untuk pemrosesan dan Anda akan mendapatkan tutorial yang bagus untuk itu juga
http://deeplearning.net/tutorial/lenet.html
sumber