Beberapa kata tentang pengenalan pola. Pemrosesan dan pengenalan gambar (kursus kuliah, L.M. Mestetsky)

PENGOLAHAN SINYAL DIGITAL

Topik 18. PENGENALAN OBJEK GAMBAR

Setiap pengetahuan manusia dimulai dengan intuisi, berpindah ke konsep dan diakhiri dengan ide.

Imanuel Kant. Filsuf Jerman. abad ke-18

Ketika komputer mengenali seekor kuda dalam sebuah gambar dan bukan seseorang, hal ini tidak jauh dari kebenaran, meskipun ini baru pada tahap awal proses pembentukan pengetahuannya tentang orang tersebut.

Georgy Korgul, ahli geofisika Ural. abad XX

Perkenalan.

1. Pra-pemrosesan gambar. Koreksi kecerahan dan kontras gambar. Histogram kecerahan. Pemerataan iluminasi gambar. Resolusi spasial yang ditingkatkan.

2. Menentukan batas-batas benda pada bayangan. Deteksi tepi berbasis gradien. Menemukan batasan berdasarkan Laplacian.

3. Memilih objek pada gambar. Algoritma " tongkat sihir". Algoritma "Gunting pintar". Segmentasi menggunakan potongan pada grafik.

4. Identifikasi ciri-ciri suatu benda. Penentuan luas dan keliling. Penentuan jari-jari lingkaran bertulis dan berbatas. Menentukan sisi-sisi persegi panjang yang dibatasi. Penentuan jumlah dan kedudukan relatif sudut. Penentuan momen inersia suatu benda.

5. Deteksi dan pengenalan objek gambar. Deteksi objek. Suatu metode membandingkan secara langsung suatu objek dengan gambar referensi. Metode korelasi. Metode pengenalan berdasarkan sistem fitur.

PERKENALAN

Ulasan terperinci aspek teoretis Topik ini bukanlah tujuan dari bagian ini. Lagi informasi lengkap Mereka yang berminat dapat memperoleh informasi mengenai isu-isu tersebut dari sumber lain. Di bawah ini diberikan rekomendasi praktis tentang penerapan metode individual yang terkait langsung dengan masalah paling umum yang diselesaikan dengan menggunakan algoritma yang dibahas dalam topik sebelumnya.

Pengenalan objek dalam gambar sensor optik (foto, udara, satelit, dan gambar lainnya) adalah bidang pemrosesan gambar tradisional. Pada saat yang sama, metode pengenalan objek mulai banyak digunakan sistem otomatis pengamatan televisi, dalam sinar-X dan pencitraan resonansi magnetik, dan jenis lainnya pada awalnya gambar digital untuk pasca-pemrosesan dan pemrosesan waktu nyata.

^ 18.1. pra-pemrosesan GAMBAR

Operasi pengenalan pada gambar objek tertentu biasanya didahului dengan pemrosesan gambar untuk menciptakan kondisi yang meningkatkan efisiensi dan kualitas identifikasi dan pengenalan objek yang dicari atau dipelajari. Metode pra-perawatan bergantung pada tujuan penelitian, cukup beragam dan dapat mencakup, misalnya, menyorot fragmen yang paling informatif, memperbesarnya, memperoleh gambar 3 dimensi, pemetaan warna, menerapkan resolusi spasial tinggi, meningkatkan resolusi kontras, meningkatkan kualitas gambar, dll. Mari kita pertimbangkan di antara mereka yang tanpanya, sebagai suatu peraturan, tidak ada satu pun tugas yang dapat diselesaikan.

Memperbaiki kecerahan dan kontras gambar .

Gambar yang dimasukkan ke komputer seringkali memiliki kontras rendah. Kontras yang lemah biasanya disebabkan oleh rentang kecerahan yang direproduksi, sering kali dikombinasikan dengan karakteristik transfer level yang nonlinier. Sifat ketergantungan perubahan kecerahan palet piksel nilai minimum hingga maksimal juga mempengaruhi kualitas gambar. Yang optimal adalah fungsi linier perubahan intensitas piksel. Dengan ciri cekung maka bayangan akan lebih gelap, dengan ciri cembung maka bayangan akan semakin terang. Dalam kedua kasus tersebut, karakteristik objek mungkin terdistorsi dan tidak teridentifikasi dengan baik. Koreksi (linearisasi) kecerahan palet secara signifikan meningkatkan kualitas gambar.

Kontras yang rendah mungkin juga disebabkan oleh fakta bahwa variasi fungsi kecerahan piksel pada gambar jauh lebih kecil daripada kisaran skala kecerahan yang diizinkan. Dalam hal ini, kontras gambar ditingkatkan dengan “meregangkan” gambar aslinya rentang dinamis kecerahan ke skala penuh menggunakan transformasi elemen demi elemen linier.

Cara lain untuk mengoreksi kecerahan palet adalah dengan membalikkan gambar masukan. Karena membedakan sinyal lemah pada latar belakang gelap cukup sulit, maka bentuk representasi terbalik dari gambar tersebut memiliki histogram kecerahan yang berbeda, lebih dapat diterima untuk observasi dan identifikasi visual.

Beberapa tugas pemrosesan gambar melibatkan konversi gambar halftone (banyak gradasi kecerahan) menjadi gambar biner (dua gradasi). Transformasi dilakukan untuk mengurangi redundansi informasi pada gambar, sehingga hanya menyisakan informasi yang diperlukan untuk menyelesaikan masalah. tugas tertentu. Dalam gambar biner, detail tertentu (misalnya, garis besar objek yang digambarkan) harus dipertahankan dan fitur yang tidak penting (latar belakang) harus dikecualikan.

Pemrosesan ambang batas gambar halftone terdiri dari membagi semua elemen gambar menjadi dua kelas A 1 dan A 2 berdasarkan kecerahan dengan batas A gr, dan melakukan pemfilteran ambang batas yang sesuai dengan mengganti piksel gambar dengan mengatur kecerahan kelas. Pilihan batas ditentukan oleh jenis histogram kecerahan gambar asli. Untuk gambar paling sederhana seperti gambar, teks yang diketik, dll., yang memiliki distribusi bimodal, batas antara mode distribusi diatur ke minimum. Dalam kasus umum, suatu gambar dapat bersifat multimodal, dan jika korespondensi yang cukup andal dibuat antara objek dan mode kecerahannya yang sesuai, maka pemfilteran ambang batas juga dapat menyediakan beberapa kelas kecerahan piksel.

Kisaran kecerahan gambar komputer mungkin berbeda dari kisaran kecerahan aslinya, misalnya karena pencahayaan yang tidak memadai. Ada dua cara yang mungkin koreksi kecerahan. Menurut metode pertama, gambar ditampilkan secara linier dalam rentang kecerahan aslinya. Metode kedua melibatkan membatasi kecerahan piksel dalam gambar yang diproses dengan tingkat ambang batas maksimum dan minimum, dan lebih banyak lagi aplikasi yang luas. Kehadiran rona paling terang dan paling gelap pada gambar menciptakan kesan kontras yang baik, namun kontras yang berlebihan menyebabkan gradasi maksimum memengaruhi rona tengah, dan sebagian besar detail gambar diwarnai dalam rona tengah dan kontras yang berlebihan dapat menyebabkan hilangnya detail-detail ini atau membuatnya sulit untuk melihat seleksi.

Histogram kecerahan. Alat untuk menilai tingkat intensitas piksel adalah histogram - tampilan grafis karakteristik kuantitatif distribusi probabilistik intensitas (kecerahan) piksel pada area gambar yang dipilih. Nilai maksimum Intensitas piksel diberi tingkat gradasi intensitas 255 (putih), yang paling gelap diberi nilai 0 (hitam). Intensitas dalam kisaran 0 hingga 255 memiliki skala perubahan linier, atau diatur sesuai dengan fungsi perubahan yang dianut, misalnya memperkuat sinyal lemah (grayscale) dan melemahkan sinyal kuat (dalam wilayah putih), yang meningkatkan resolusi spasial dan kontras gambar atau area tertentu yang diminati.

Ada metode perbaikan citra yang diketahui berdasarkan penghitungan logaritma koefisien spektral transformasi Fourier citra asli (perhitungan cepstrum). Saat mengubah cepstrum kembali menjadi gambar, histogram gambar disamakan dengan mengubah spektrum gambar secara logaritmik.

Banyak gambar yang dicirikan oleh histogram dengan konsentrasi tinggi garis pada zona distribusi intensitas tertentu. Seringkali histogram distribusi kecerahan gambar condong ke tingkat rendah (kecerahan sebagian besar elemen di bawah rata-rata). Salah satu metode untuk meningkatkan kualitas gambar tersebut adalah dengan memodifikasi histogramnya. Penyetaraan histogram dapat dilakukan berdasarkan eksponensial modulus koefisien spektral transformasi Fourier suatu citra, dengan tetap mempertahankan tanda dan fase koefisiennya. Jika kita menyatakan eksponen α, maka untuk α<1 операция извлечения корня степени α уменьшает большие спектральные коэффициенты и увеличивает малые. Такое перераспределение энергии в частотной плоскости изображения приводит к более эффективному использованию динамического диапазона интенсивностей пикселей изображения в пространственной области.

Memilih masker penyesuaian histogram intensitas piksel yang baik akan meningkatkan kontras, sehingga meningkatkan resolusi detail kontras. Program pemrosesan memiliki perintah yang memungkinkan Anda mengatur warna saat memetakan warna gambar yang memiliki transisi halus atau, sebaliknya, tajam dari detail yang ditampilkan di area yang diinginkan. Dikombinasikan dengan pembalikan kontras, yang mengubah gambar negatif menjadi gambar positif, metode ini juga memungkinkan Anda meningkatkan kontras detail berukuran kecil dan sedang pada gambar.

Terdapat banyak sekali model dan algoritme matematika, yang implementasi perangkat lunaknya dapat meningkatkan resolusi kontras gambar secara signifikan. Algoritma ini didasarkan pada proses pemfilteran gambar linier dan nonlinier yang mengubah histogram intensitas.

Pemerataan iluminasi gambar. Seringkali, beberapa area gambar terlalu gelap untuk melihat apa pun. Jika Anda menambahkan kecerahan ke seluruh gambar, area yang awalnya terang mungkin menjadi terlalu terang. Untuk meningkatkan tampilan gambar dalam kasus seperti itu, metode pemerataan iluminasi digunakan.

Iluminasi berubah dalam ruang cukup lambat dan dapat dianggap sebagai sinyal frekuensi rendah. Gambar itu sendiri rata-rata dapat dianggap sebagai sinyal frekuensi lebih tinggi. Jika sinyal-sinyal ini digabungkan selama fotografi, maka sinyal-sinyal ini dapat dipisahkan menggunakan filter konvensional. Namun, dalam foto sebenarnya, hasilnya adalah produk dari gambar yang ingin kita lihat dan peta iluminasi. Dan karena sinyal-sinyal ini tidak bertambah, tetapi berlipat ganda, tidak mungkin menghilangkan ketidakrataan iluminasi hanya dengan pemfilteran.

Untuk mengatasi masalah tersebut, pemrosesan homomorfik digunakan. Ide pemrosesan adalah untuk mereduksi masalah nonlinier menjadi masalah linier. Misalnya, Anda dapat mengurangi masalah pemisahan sinyal yang dikalikan menjadi masalah pemisahan sinyal yang ditambahkan. Untuk melakukan ini, Anda perlu mengambil logaritma produk gambar, yang akan sama dengan jumlah logaritma faktor-faktornya. Dalam hal ini, masalah pemisahan produk sinyal direduksi menjadi masalah pemisahan jumlah sinyal frekuensi rendah dan frekuensi tinggi dan diselesaikan dengan menggunakan filter high-pass, yang akan menghilangkan frekuensi rendah dari jumlah sinyal. . Yang tersisa hanyalah mengambil eksponensial dari sinyal yang diterima untuk kembali ke skala amplitudo semula.

Filter high-pass dapat diimplementasikan sebagai berikut. Pertama, operasi buram (filter low-pass) diterapkan pada gambar, lalu operasi buram dikurangi dari gambar aslinya. Radius blur terbaik bergantung pada gambar tertentu. Anda bisa mulai bereksperimen dengan radius sekitar sepuluh piksel.

Biasanya, filter Gaussian dua dimensi digunakan untuk mengaburkan gambar, berbentuk h(x, y) = A exp(-(x 2 +y 2) /2 2). Di sini A adalah konstanta normalisasi (jumlah semua koefisien filter harus sama dengan 1), σ adalah “lebar” filter, yang mengatur tingkat keburaman.

Menghitung konvolusi 2D secara langsung dengan kernel seperti itu memerlukan komputasi yang intensif, bahkan dengan ukuran kernel yang relatif kecil. Namun, efek yang setara dapat dicapai dengan memfilter dengan Gaussian satu dimensi, pertama-tama baris gambar, lalu kolom gambar yang dihasilkan. Efek yang diperoleh dari meratakan iluminasi mungkin terlalu kuat (area gelap akan memiliki kecerahan yang sama dengan area terang). Untuk mengurangi efeknya, Anda cukup mencampurkan gambar hasil olahan dengan gambar asli dalam proporsi tertentu.

Resolusi spasial yang ditingkatkan . Interpretasi gambar berkaitan erat dengan kualitas penyajian detail kecil yang tidak terdistorsi. Dalam hal ini, seiring bertambahnya fragmen, tidak ada penurunan resolusi gambar saat melakukan operasi matematika interpolasi 2D dari fungsi distribusi spasial intensitas piksel dalam baris dan kolom matriks gambar. Faktor penting dalam mengidentifikasi objek juga adalah lokalisasi dan tampilan area dengan kecerahan atau warna yang sama, meskipun area tersebut berukuran beberapa piksel.

Kejelasan gambar dalam program profesional biasanya disesuaikan dengan menentukan nilai kecerahan dan kontras optimal dengan memilih opsi yang sesuai:

A) "besarnya" - tingkat pengaruh efek pada ketajaman gambar;

B) "radius" - ketebalan kontur ketajaman;

C) "ambang batas diskriminasi" - menentukan kontur objek dengan mengatur perbedaan nilai intensitas piksel tetangga, cukup bagi program untuk meningkatkan kontras di antara piksel tersebut.

Beberapa program secara otomatis mengatur rasio kontras dan kecerahan optimal untuk menjaga kejernihan gambar yang diperlukan.

Saat memproses gambar, peran penting dimainkan oleh algoritme pemfilteran peringkat, yang memungkinkan untuk menghilangkan "kekaburan" detail (meningkatkan pemfokusannya) dengan memilih topeng piksel n×n dua dimensi, melakukan operasi pemeringkatan piksel nilai intensitas dalam topeng yang ditentukan dan menetapkan nilai ke piksel pusat yang sama dengan nilai maksimum berdasarkan peringkat. Jenis peringkat juga mencakup prosedur pemfilteran median, yang menghilangkan sinyal acak yang tidak berkorelasi dan gangguan impuls dalam gambar tanpa “mengaburkan” perubahan kecerahan yang tajam pada batas objek.

Penggunaan pemfilteran linier yang informatif adalah karena kemampuannya untuk mengoreksi berbagai jenis distorsi yang timbul akibat ketidaksempurnaan perangkat pembentuk gambar. Melalui pemfilteran linier, pengaruh noise fluktuasi dan cacat lainnya pada gambar yang direproduksi dapat dikurangi dalam mode meningkatkan kontras detail kontras rendah sekaligus meningkatkan skala area yang diinginkan.

Koreksi distorsi aperture gambar tanpa adanya komponen noise pada sinyal dilakukan dengan pemfilteran terbalik (dekonvolusi). Namun, perlu diingat bahwa filter dekonvolusi memiliki penguatan dispersi noise lebih besar dari 1, dan alih-alih meningkatkan kualitas gambar, noise malah meningkat.

Metode pemfilteran nonlinier berdasarkan masker frekuensi dianggap menjanjikan, memungkinkan untuk mengurangi pengaruh komponen frekuensi rendah dari sinyal gambar dan meningkatkan pengaruh komponen frekuensi tinggi, yang meningkatkan resolusi spasial dari detail yang dijelaskan dalam spektrum gambar dengan spasial yang lebih tinggi. frekuensi.

^ 18.2. MENENTUKAN BATAS BENDA PADA GAMBAR

Dari sudut pandang pengenalan dan analisis objek dalam suatu gambar, yang paling informatif bukanlah nilai kecerahan objek, tetapi karakteristik batasnya - kontur. Dengan kata lain, informasi utama tidak terletak pada kecerahan masing-masing area, tetapi pada garis besarnya. Tugas ekstraksi kontur adalah membangun gambaran batas suatu benda dan garis luar daerah yang homogen.

Biasanya, batas suatu objek dalam sebuah foto dicerminkan oleh perbedaan kecerahan antara dua area yang relatif seragam. Namun perbedaan kecerahan juga bisa disebabkan oleh tekstur objek, bayangan, sorotan, perubahan pencahayaan, dll.

Kami akan menyebut kontur suatu gambar sebagai kumpulan piksel-pikselnya yang di sekitarnya terjadi perubahan fungsi kecerahan secara tiba-tiba. Karena dalam pemrosesan digital, gambar direpresentasikan sebagai fungsi argumen bilangan bulat, kontur direpresentasikan oleh garis dengan lebar minimal satu piksel. Jika gambar asli, selain area dengan kecerahan konstan, juga berisi area dengan kecerahan yang bervariasi secara halus, maka kontinuitas garis kontur tidak terjamin. Sebaliknya, jika terdapat noise pada gambar “piecewise Constant”, maka kontur “ekstra” dapat dideteksi pada titik-titik yang bukan merupakan batas wilayah.

Saat mengembangkan algoritma ekstraksi kontur, perlu untuk mempertimbangkan fitur-fitur tertentu dari perilaku garis kontur. Pemrosesan tambahan khusus pada kontur yang dipilih menghilangkan jeda dan menekan garis kontur yang salah.

Prosedur untuk membuat citra biner batas objek biasanya terdiri dari dua operasi berurutan: ekstraksi kontur dan ambang batasnya.

Gambar asli diproses secara linier atau nonlinier, bereaksi terhadap perubahan kecerahan. Sebagai hasil dari operasi ini, sebuah gambar terbentuk yang fungsi kecerahannya berbeda secara signifikan dari nol hanya di area dengan perubahan tajam dalam kecerahan gambar. Melalui pemrosesan ambang batas, objek kontur terbentuk dari gambar ini. Pemilihan ambang batas pada tahap kedua hendaknya dilakukan berdasarkan pertimbangan berikut. Jika ambang batas terlalu tinggi, tepi pecah mungkin muncul dan perubahan kecil pada kecerahan mungkin tidak terdeteksi. Jika ambang batas terlalu rendah, kontur palsu mungkin muncul akibat kebisingan dan heterogenitas area.

Deteksi tepi berbasis gradien. Salah satu cara paling sederhana untuk mengidentifikasi batas adalah dengan membedakan fungsi kecerahan secara spasial. Untuk fungsi kecerahan dua dimensi A(x, y), perubahan arah x dan y dicatat oleh turunan parsial A(x, y)/x dan A(x, y)/y, yang sebanding dengan tingkat perubahan kecerahan dalam arah yang sesuai.

Beras. 18.2.1.


Identifikasi perbedaan kecerahan diilustrasikan pada Gambar. 18.2.1. Terlihat bahwa garis bawah pada kontur yang tegak lurus sumbu x diberikan oleh turunan A(x, y)/x (Gbr. b), dan garis bawah pada kontur yang tegak lurus sumbu y diberikan oleh A( x, y)/y (Gbr. .V).

Dalam permasalahan praktis, perlu untuk mengidentifikasi kontur yang arahnya berubah-ubah. Untuk tujuan ini, Anda dapat menggunakan modul gradien fungsi kecerahan

|A(x, y)| = ,

Yang sebanding dengan laju perubahan maksimum (searah) fungsi kecerahan pada suatu titik tertentu dan tidak bergantung pada arah kontur. Modulus gradien, tidak seperti turunan parsial, hanya mengambil nilai non-negatif, oleh karena itu, pada gambar yang dihasilkan (Gbr. d), titik-titik yang sesuai dengan kontur memiliki tingkat kecerahan yang meningkat.

Untuk citra digital, analog turunan parsial dan modulus gradien merupakan fungsi beda.

Contoh praktis untuk mengidentifikasi batas dalam sebuah foto ditunjukkan pada Gambar. 18.2.2. Gambar asli (1) monokromatik. Gambar (2) menunjukkan hasil perhitungan vektor gradien kecerahan Ax, y) = (A/x, A/y). Seperti dapat dilihat pada gambar, pada titik-titik dengan perbedaan kecerahan yang besar, gradiennya memiliki panjang yang besar. Dengan memfilter piksel dengan panjang gradien lebih besar dari ambang batas tertentu , kita memperoleh gambar batas (3).



Beras. 18.2.2.
Kerugian dari algoritme ini adalah ia melewatkan batas dengan perubahan kecil dalam kecerahan dan menyertakan detail gambar dengan perubahan kecerahan besar di antara batas tersebut (kulit tupai). Ketika gambar menjadi berisik, peta titik batas hanya akan terkontaminasi oleh noise, karena tidak diperhitungkan bahwa titik batas tidak hanya berhubungan dengan perbedaan kecerahan, tetapi juga perbedaan kecerahan antara area yang relatif monoton.

Untuk mengurangi dampak kelemahan ini, gambar terlebih dahulu dikenai pemfilteran Gaussian yang dihaluskan. Dengan pemfilteran anti-aliasing, detail kecil dan tidak penting menjadi kabur lebih cepat dibandingkan perbedaan antar area. Hasil pengoperasian dapat dilihat pada gambar (4). Namun, pada saat yang sama, batas-batas yang jelas menjadi kabur menjadi garis-garis tebal.

Gradien kecerahan pada setiap titik dicirikan oleh panjang dan arahnya. Di atas, saat mencari titik batas, yang digunakan hanya panjang vektor. Arah gradien adalah arah kenaikan maksimum fungsi, yang memungkinkan penggunaan prosedur penekanan non-maksimal. Dalam prosedur ini, untuk setiap titik, segmen dengan panjang beberapa piksel dipertimbangkan, berorientasi pada arah gradien dan berpusat pada piksel yang dimaksud. Sebuah piksel dianggap maksimum jika dan hanya jika panjang gradien di dalamnya adalah maksimum di antara semua panjang gradien piksel dalam segmen tersebut. Semua piksel maksimum dengan panjang gradien lebih besar dari ambang batas tertentu dapat dianggap sebagai garis batas. Gradien kecerahan di setiap titik tegak lurus terhadap batas, sehingga setelah menekan non-maksimal tidak ada lagi garis tebal yang tersisa. Pada setiap bagian tegak lurus garis tebal akan terdapat satu piksel dengan panjang gradien maksimum.

Tegak lurus gradien luminansi terhadap batas dapat digunakan untuk menelusuri batas mulai dari beberapa piksel batas. Pelacakan ini digunakan dalam pemfilteran histeresis piksel maksimum. Gagasan di balik pemfilteran histeresis adalah bahwa kontur batas yang panjang dan stabil kemungkinan besar berisi piksel dengan perbedaan kecerahan yang sangat besar, dan mulai dari piksel tersebut, kontur dapat ditelusuri melalui piksel batas dengan perbedaan kecerahan yang lebih kecil.


Beras. 18.2.3.
Saat melakukan pemfilteran histeresis, bukan hanya satu, tetapi dua nilai ambang batas yang dimasukkan. Yang lebih kecil () menunjukkan panjang gradien minimum di mana piksel dapat dikenali sebagai batas. Semakin besar () sesuai dengan panjang gradien minimum di mana piksel dapat menginisialisasi kontur. Setelah outline diinisialisasi pada piksel maksimum P dengan panjang gradien lebih besar dari , setiap piksel maksimum yang berdekatan dengannya dianggap Q. Jika piksel Q memiliki panjang gradien lebih besar dari , dan sudut antar vektor PQ dan ( P) mendekati 90 o P ditambahkan ke outline dan prosesnya berpindah secara rekursif ke Q. Hasilnya untuk gambar asli pada Gambar. 18.2.2 ditunjukkan pada Gambar. 18.2.3.

Dengan demikian, algoritma untuk menemukan batas berdasarkan gradien terdiri dari penerapan operasi berikut secara berurutan:

Pemfilteran pemulusan Gaussian;

Menemukan gradien kecerahan di setiap piksel;

Menemukan piksel maksimum;

Pemfilteran histeresis piksel maksimum.

Algoritma ini disebut algoritma Canny dan paling sering digunakan untuk mencari batasan.

Menemukan batasan berdasarkan Laplacian. Diketahui bahwa syarat perlu dan cukup agar nilai ekstrim turunan pertama suatu fungsi pada suatu titik sembarang adalah persamaan turunan kedua pada titik tersebut dengan nol, dan turunan kedua harus mempunyai tanda yang berbeda pada sisi yang berbeda. titik.

Dalam versi dua dimensi, analog dari turunan kedua adalah Laplacian - operator skalar   f) = (2 f/x + 2 f/y).


Beras. 18.2.3.
Menemukan batas suatu gambar dengan menggunakan Laplacian dapat dilakukan dengan analogi dengan kasus satu dimensi: titik-titik yang Laplaciannya sama dengan nol dan di sekelilingnya terdapat tanda yang berbeda dianggap sebagai titik batas. Estimasi Laplacian menggunakan linear filtering juga didahului dengan Gaussian smoothing filtering untuk mengurangi sensitivitas algoritma terhadap noise. Pemulusan Gaussian dan pencarian Laplacian dapat dilakukan secara bersamaan, sehingga pencarian batas menggunakan filter tersebut lebih cepat dibandingkan menggunakan algoritma Canny. Filter digunakan dalam sistem yang mengutamakan kualitas hasil (biasanya lebih rendah daripada algoritma Canny) dan kinerja. Untuk mengurangi sensitivitas terhadap detail yang tidak penting, Anda juga dapat mengecualikan titik batas yang panjang gradiennya kurang dari ambang batas tertentu (Gbr. 18.2.3).

^ 18.3. MENYOROT OBYEK DALAM GAMBAR

Saat bekerja dengan gambar, sering kali ada kebutuhan untuk memisahkan satu bagian yang penting bagi pengguna (objek) dari bagian lainnya (latar belakang). Misalnya, dalam citra medis, objek tertentu dipilih untuk mengukur parameternya. Algoritma untuk memecahkan masalah ini bersifat interaktif, karena hanya pengguna yang dapat menentukan apa yang menjadi objek yang diinginkan dan apa yang menjadi latar belakangnya.

Pada prinsipnya, tugas yang ada dapat diselesaikan dengan cara paling sederhana - pengguna cukup melingkari objek dengan kursor mouse, tetapi untuk objek yang kompleks hal ini memerlukan banyak tenaga dan waktu.

Algoritma "Tongkat Ajaib" (Tongkat Ajaib) adalah salah satu algoritma segmentasi interaktif pertama. Pengguna secara berurutan menunjukkan titik-titik objek, dan algoritme memilih piksel di sekitarnya dengan warna yang sama dan (sesuai keputusan pengguna) menambahkan area yang dipilih ke objek. Untuk menilai “kesamaan”, pengguna menentukan matriks ambang sensitivitas untuk jarak antar warna. Semakin besar, semakin banyak piksel yang akan dipilih dalam satu langkah. Dalam hal ini, hanya piksel terhubung yang dialokasikan ke area warna “serupa”.

Algoritme ini bekerja dengan baik ketika memilih objek yang warnanya cukup monoton. Dengan variasi warna yang kuat, mustahil memisahkan objek dari latar belakang secara akurat menggunakan algoritma ini. Jika ambang sensitivitas terlalu rendah, sebagian besar objek mungkin tidak disorot. Meningkatkan ambang batas menyebabkan seleksi “berdarah” melampaui objek. Dalam kasus objek beraneka ragam atau batas kabur antara latar belakang dan objek, algoritme praktis tidak berdaya.

Algoritma "Gunting pintar". digunakan sejak tahun 1996, telah mendapatkan popularitas dan telah dimasukkan ke dalam editor foto populer Adobe Photoshop. Saat menggunakan algoritme, pengguna menggambar batas antara objek dan latar belakang, menunjukkan titik-titik pada batas tersebut dengan interval tertentu, dan “gunting pintar” menggambar garis batas antara titik-titik tertentu secara berurutan.


Beras. 18.3.1.
Mari kita bayangkan gambar raster dalam bentuk grafik (Gbr. 18.3.1) dengan tepi yang dibentuk oleh sisi-sisi piksel. Ketika pengguna menentukan dua titik P dan Q yang berurutan, algoritma gunting menghitung jarak minimum antara titik P dan Q di sepanjang tepi grafik, sedangkan panjang geometri bersyarat dari setiap tepi pada jalur ini memiliki hubungan terbalik dengan perbedaan warna. piksel di sisinya. Karena tepi yang berhubungan dengan perbedaan warna yang tajam akan memiliki panjang nominal yang lebih pendek, “gunting pintar” cenderung menggambar batas secara tepat di sepanjang tepi tersebut.

"Gunting Cerdas" secara signifikan mempercepat proses pemilihan objek. Namun, mereka juga tidak berfungsi dengan baik jika terdapat latar belakang yang beraneka ragam dan/atau objek yang beraneka ragam. Dalam kasus seperti ini, perlu untuk menentukan lebih banyak titik batas.

Segmentasi menggunakan potongan grafik. Metode ketiga untuk menyorot suatu objek dari latar belakang juga didasarkan pada teori grafik. Pengguna cukup menandai kumpulan piksel A tertentu milik objek dan kumpulan piksel B tertentu milik latar belakang. Karena piksel ini tidak harus dekat dengan batas, penandaan seperti itu tidak memerlukan banyak usaha dari pengguna. Hasil dari algoritma ini adalah segmentasi dimana seluruh himpunan A mengacu pada objek, dan himpunan B mengacu pada latar belakang.

Jika hasil seleksi tidak memuaskan pengguna pertama kali, ia menambahkan piksel ke kumpulan aslinya, selanjutnya menandainya di gambar. Misalnya, jika algoritme secara keliru menetapkan bagian suatu objek ke latar belakang, pengguna menandai bagian piksel dari bagian tersebut sebagai piksel objek (kumpulan A). Hasil dari memulai ulang algoritme adalah segmentasi yang lebih baik.

Mari kita lihat cara kerja algoritmanya. Mari kita buat grafik pada raster sebagai berikut. Kami akan menempatkan simpul piksel dari grafik di tengah setiap piksel, dan yang kami maksud dengan warna simpul adalah warna piksel tersebut. Kami menghubungkan setiap simpul ke simpul tetangga dan mendapatkan delapan sisi yang menghubungkan pusat piksel tetangga. Mari kita beri bobot pada masing-masing sisi:

(/L) exp(- (C 2 , C 2)),

Dimana L adalah panjang geometri tepi, C 1 dan C 2 adalah warna dari simpul-simpul yang dihubungkan oleh tepi tersebut, λ dan σ adalah beberapa parameter (positif), (..) adalah matriks sensitivitas perbedaan warna. Semakin besar perbedaan antara warna simpul, semakin kecil bobotnya.

Mari tambahkan dua simpul terminal ke grafik, yang disebut sumber dan saluran, dan hubungkan keduanya dengan sisi ke setiap simpul grafik. Kami memberikan bobot tak terhingga pada sisi-sisi yang menghubungkan sumber dengan simpul-simpul himpunan A dan tepi-tepi yang menghubungkan sink ke simpul-simpul himpunan B.

Pertimbangkan distribusi warna dari simpul-simpul himpunan A (misalnya, sebagai histogram). Untuk semua simpul piksel yang bukan dari himpunan A, kami menetapkan pada tepi yang menghubungkannya ke sumber bobot yang sebanding dengan konsistensi warnanya dengan distribusi warna ini, sedangkan bobot tepi akan semakin besar, semakin "mirip" warnanya dari simpul tersebut adalah dengan warna dari simpul-simpul himpunan A. Serupa Kami akan melakukan prosedur untuk himpunan B dan sisi-sisi yang menghubungkan simpul-simpul piksel ke sink.

Kami akan "memotong" semua tepi grafik menjadi dua himpunan terpisah - sumber dan sink, dan kami akan berasumsi bahwa simpul yang ada di himpunan sumber sesuai dengan piksel objek, dan sisanya ada di himpunan sink. sesuai dengan piksel latar belakang. Jumlah pemotongan yang mungkin sama dengan 2 P, di mana P adalah jumlah piksel, karena setiap titik piksel dapat ditetapkan ke kumpulan sumber atau kumpulan sink.


Beras. 18.3.2.
Bobot suatu potongan adalah jumlah bobot seluruh tepi yang dipotong, kecuali tepi yang bobotnya tak terhingga. Potongan minimal adalah potongan dengan bobot minimum, dan piksel sumber dari potongan ini akan ditetapkan ke piksel objek, dan piksel stok ke latar belakang. Batas antara objek dan latar belakang akan digambar, bila memungkinkan, antara piksel dengan warna yang sangat berbeda.

Tentu saja, tidak mungkin ada pemisahan yang sempurna. Misalnya, suatu wilayah gambar mungkin memiliki warna yang mirip dengan latar belakang (piksel pada himpunan B), tetapi dikelilingi oleh piksel pada himpunan A dan tidak dipisahkan oleh batas yang tajam. Dalam kasus seperti ini, pilihan parameter λ dalam rumus bobot tepi menghasilkan keseimbangan antara dua titik terakhir. Ketika nilai λ meningkat, semakin penting bahwa batas antara latar belakang dan objek melewati antara piksel dengan warna berbeda, dan semakin berkurang, semakin penting bahwa piksel yang warnanya mirip dengan piksel pada himpunan A (atau B) adalah ditugaskan ke objek ( latar belakang). Contoh pemilihan objek ditunjukkan pada Gambar. 18.3.2.

^ 18.4. Isolasi fitur objek

Ekstraksi fitur memungkinkan untuk menyederhanakan pelaksanaan pengenalan atau identifikasi objek. Saat memilih fitur yang paling informatif, penting untuk mempertimbangkan properti objek itu sendiri dan kemampuan resolusi generator sinyal gambar utama. Kami akan melakukan ekstraksi fitur menggunakan contoh pemrosesan gambar monokrom (single-layer). Dalam gambar berwarna, algoritma yang dibahas dapat diterapkan pada setiap warna secara terpisah.

Saat memproses, karakteristik objek berikut lebih disukai:

– luas dan keliling benda gambar;

– dimensi bangun geometris sederhana yang tertulis (lingkaran, persegi panjang, segitiga, dll.);

– jumlah dan posisi relatif sudut;

– momen inersia bayangan suatu benda.

Fitur penting dari sebagian besar fitur geometris adalah invarian terhadap rotasi gambar objek, dan dengan menormalkan fitur geometris relatif satu sama lain, invarian terhadap skala gambar objek tercapai.

Penentuan luas dan keliling. Luas bayangan suatu benda dihitung dengan menghitung jumlah elemen yang berhubungan dengan benda tersebut:

A=S(x, y), S(x, y) = ,

Dimana L adalah himpunan koordinat array S(x, y) milik objek yang dipilih.

Keliling objek bayangan P dihitung setelah mengidentifikasi batas-batas objek dengan menjumlahkan himpunan titik-titik kontur objek bayangan.

Berdasarkan fitur yang diekstraksi, fitur yang dinormalisasi invarian terhadap skala gambar adalah U = A/P 2 atau V = P/.

Menentukan jari-jari lingkaran bertulis dan berbatas (Gbr. 18.4.1) terdiri dari dua tahap.


Beras. 18.4.1.
1. Menentukan koordinat pusat geometri benda gambar :

X c = xS(x, y) / S(x, y), Y c = yS(x, y) / S(x, y),

Di mana X Dan kamu– jumlah baris dan kolom dari seluruh piksel S(x, y) yang termasuk dalam objek.

2. Perhitungan jarak minimum dan maksimum dari pusat ke batas objek gambar.

R(x, kamu) = .

R maks = r (x, y maks); R min = r (x, y min), dimana x, y  P (titik keliling).

Fitur yang dinormalisasi R′ = R max ⁄ R min adalah invarian terhadap skala gambar objek.


Beras. 18.4.2.
Menentukan sisi-sisi persegi panjang yang dibatasi (Gbr. 18.4.2) dilakukan sebagai berikut. Nilai maksimum dan minimum absis dan ordinat benda bayangan x max dan x min, y max dan y min ditentukan, setelah itu ditentukan tinggi dan alas persegi panjang:

L = x maks - x menit, H = y maks - y menit.

Fitur ini tidak invarian terhadap perputaran objek gambar.

Penentuan jumlah dan kedudukan relatif sudut. Cara klasik untuk menentukan titik sudut suatu objek gambar adalah dengan menganalisis bagian kecil kontur di sekitar suatu titik tertentu dan menentukan jari-jari kelengkungannya. Jika radiusnya kurang dari ambang batas yang ditetapkan, maka elemen tersebut merupakan elemen sudut;


Beras. 18.4.3.
Dari sudut pandang praktis, algoritma yang lebih sederhana tampaknya lebih baik. Ini terdiri dari memperkirakan jarak antara titik awal dan akhir suatu fragmen kontur, misalnya antara elemen kontur dengan nomor urut k – 2 dan k + 2 pada Gambar. 18.4.3.

Misalkan x(k) dan y(k) berturut-turut adalah absis dan ordinat elemen kontur. Maka aturan keputusannya mungkin terlihat seperti ini:

(|x(k-2)−x(k+2)|+|y(k−2)−y(k+2)| ≤H).

Jika syarat terpenuhi, maka titik kontur ini termasuk dalam himpunan titik sudut L. Di sini H adalah nilai ambang batas yang dipilih dengan mempertimbangkan sifat-sifat benda.

Penentuan momen inersia suatu benda. Istilah “momen inersia bayangan suatu benda” tidak ada hubungannya dengan mekanika. Sederhananya, untuk menghitung atribut ini, ekspresi matematika digunakan, mirip dengan menghitung momen inersia suatu benda material, di mana alih-alih nilai massa masing-masing titik benda, nilai iluminasi pada titik yang sesuai titik-titik gambarnya diganti. Momen inersia adalah fitur informasi untuk pengenalan pola selanjutnya.



Beras. 18.4.4.
Mari kita nyatakan momen inersia utama yang dicari dari bayangan benda dengan J 1 dan J 2 . Untuk mencari J 1 dan J 2, pertama-tama perlu ditentukan apa yang disebut momen perantara J x dan J y, yaitu. momen inersia terhadap sumbu vertikal dan horizontal sistem koordinat, serta momen campuran J x,y (Gbr. 18.4.4a).

Urutan perhitungan:

1. Koordinat pusat “gravitasi” (pusat energi) benda bayangan ditentukan.

X ce = xA(x, y) / A(x, y), Y ce = yA(x, y) / A(x, y),

2. Momen perantara J x , J y , J x , y ditentukan.

J x = [(x- X ce) 2 A(x, y)], Y x = [(y- Y ce) 2 A(x, y)],

J xy = [(x- X ce) (y- Y ce) A(x, y)].

3. Poin-poin utama dihitung.

J 1,2 = .

^ 18.5. deteksi dan pengenalan objek IMAGE

Deteksi objek. Deteksi (identifikasi) citra objek dalam suatu citra yang terdistorsi oleh noise dan interferensi dapat didefinisikan sebagai prosedur untuk memeriksa kondisi tertentu untuk membandingkan dua angka - hasil transformasi citra yang dianalisis dan nilai ambang batas tertentu:

L ≥ P. (18.5.1)

Disini L[.] adalah operator transformasi citra asli, P[.] adalah operator pembentuk nilai ambang batas. Keputusan tentang keberadaan suatu benda diambil jika syaratnya terpenuhi. Kualitas deteksi dicirikan oleh kemungkinan terpenuhinya kondisi dengan adanya objek dalam gambar yang dianalisis.

Jenis operator tertentu L[.], P[.] dan kualitas deteksi bergantung pada ketersediaan informasi apriori tentang objek yang diharapkan, kebisingan, interferensi dan distorsi. Dasar penentuan parameter optimal operator adalah teori solusi statistik.

Jadi, misalnya, ketika mengidentifikasi objek titik, bentuk bayangan objek ditentukan secara unik oleh fungsi titik hamburan lensa, yang dapat dianggap diketahui, dan masalahnya direduksi menjadi prosedur klasik untuk mendeteksi sinyal dengan bentuk yang diketahui terhadap latar belakang kebisingan normal aditif dengan nilai rata-rata nol. Dalam hal ini, operator transformasi adalah integral korelasi, dihitung menggunakan deskripsi tertentu dari gambar objek yang diketahui dan noise tipikal. Identifikasi terdiri dari membandingkan gambar suatu objek dengan standar kelas tertentu. Keputusan tentang objek dibuat berdasarkan kecocokan terbaik.

Suatu metode membandingkan secara langsung suatu objek dengan gambar referensi. Misalkan S(x, y) adalah bayangan asli benda, F(x, y) adalah bayangan acuan. Algoritma perbandingan langsung terlihat seperti:

T = (S(x, y) - F(x, y)) 2 ≤ D, (18.5.2)

Dimana D adalah ambang batas selisih.

Caranya sederhana dan mudah diimplementasikan. Namun, dengan adanya faktor-faktor yang mengganggu stabilitas dalam kondisi nyata, keandalan metode ini rendah. Dengan nilai ambang batas D yang lebih besar, kondisi (18.5.2) dapat dipenuhi oleh objek yang berbeda dan kesalahan dapat terjadi terkait dengan identifikasi objek yang salah (kesalahan tipe pertama). Ketika D berkurang, kesalahan seperti kehilangan suatu objek (kesalahan tipe kedua) dapat terjadi. Dengan mengatur nilai D, Anda hanya dapat mengubah rasio antara probabilitas kesalahan tipe pertama dan kedua sesuai dengan kriteria optimalitas yang diberikan.

Metode korelasi didasarkan pada penghitungan korelasi silang antara objek dan standar. Dari kumpulan k pilihan alternatif, objek (atau standar) dipilih yang menghasilkan jumlah korelasi silang maksimum:

K(k) = S k (x, y) Fk (x, y). (18.5.3)

Saat mengidentifikasi objek, akan lebih mudah untuk menggunakan koefisien korelasi, yang, sebagai perkiraan pertama, juga memberikan perkiraan kemungkinan mengklasifikasikan suatu objek sebagai standar tertentu:

R(k) = K(k)/K maks (k), K maks (k) = F k 2 (x, y), (18.5.3)

Dimana K max (k) adalah nilai autokorelasi standar.

Metode korelasi lebih dapat diandalkan, namun memerlukan jumlah perhitungan yang jauh lebih besar. Namun saat memproses gambar biner, hal ini tidak terlalu signifikan, karena mengalikan angka bit tunggal dilakukan dengan operasi logika “DAN” yang sederhana.

Metode yang dibahas di atas memerlukan orientasi gambar objek dan standar yang sama, penyelarasannya sepanjang koordinat spasial dan mempertahankan skala yang sama.

Metode pengenalan berdasarkan sistem fitur juga menggunakan standar objek, tetapi karakteristik objek dan standar digunakan sebagai elemen perbandingan, sehingga mengurangi jumlah data referensi dan waktu pemrosesan informasi. Namun perlu diingat bahwa dalam praktiknya, pemilihan ciri-ciri suatu objek selalu dilakukan dengan beberapa kesalahan, oleh karena itu perlu diidentifikasi dan diperhitungkan sifat dan tingkat kemungkinan hamburan perkiraan objek. fitur yang digunakan untuk setiap objek yang diharapkan, mis. menggunakan histogram distribusi nilai fitur.

Jika ada banyak pilihan objek yang memungkinkan, disarankan menggunakan algoritma multi-tahap (hierarki). Dalam hal ini, pada setiap tahap pengenalan, salah satu fitur suatu benda digunakan (luas, keliling, jari-jari lingkaran bertulisan dan dibatasi, momen inersia, jumlah dan letak sudut, dll.). Di tingkat yang lebih rendah, fitur-fitur yang tidak memerlukan biaya komputasi yang besar (misalnya, luas dan keliling suatu benda) digunakan, dan yang paling informatif (misalnya, momen inersia) digunakan di tingkat atas, di mana jumlah alternatifnya sangat minim.

A.V.Davydov.

literatur

46. ​​​​Huang T.S. dan lain-lain.Algoritma cepat dalam pengolahan citra digital. – M.: Radio dan Komunikasi, 1984. – 224 hal.

47. Soifer V.A. Pemrosesan gambar komputer. Bagian 2. Metode dan algoritma. – Majalah pendidikan Soros No.3, 1996.

48. Apalkov I.V., Khryashchev V.V. Menghilangkan noise dari gambar berdasarkan algoritma nonlinier menggunakan statistik peringkat. - Universitas Negeri Yaroslavl, 2007.

49. Andreev A.L. Sistem pengawasan televisi otomatis. Bagian II. Fondasi dan algoritma aritmatika dan logis. Panduan belajar. - Sankt Peterburg: Sankt Peterburg, GUITMO, 2005. – 88 hal.

50. Rosenfeld L.G. dll. Kemampuan pasca-pemrosesan gambar diagnostik CT dan MRI pada komputer pribadi. - Kapel medis Ukraina – No. 6 (56) – XI/XII, 2006.

51. Lukin A. Pengantar pemrosesan sinyal digital (Dasar Matematika - M.: Universitas Negeri Moskow, Laboratorium).

Memindai gambar dan mendeteksi objek di dalamnya adalah tugas #1 dalam pemrosesan gambar dan visi komputer. Pencarian untuk "pengenalan gambar otomatis" di Google Cendekia akan menghasilkan banyak artikel dengan persamaan dan algoritma yang kompleks dari awal tahun 90an hingga saat ini. Hal ini menunjukkan bahwa masalah ini telah menjadi perhatian para ilmuwan sejak munculnya pencarian web, namun belum terpecahkan.

Pendiri CognitiveSEO Razvan Gavrilas percaya bahwa dalam waktu dekat Google akan mengubah algoritma peringkat gambarnya, yang akan berdampak pada pencarian dan, pada kenyataannya, optimasi mesin pencari di seluruh dunia. Razvan mengembangkan topik ini di artikel ini.

Mengapa kemampuan mengenali objek dalam gambar penting bagi komunitas digital global?

Menurut ahli, mendeteksi objek dalam gambar akan menjadi semacam faktor peringkat tambahan. Misalnya, gambar anjing biru akan diasosiasikan dengan kata kunci "anjing biru" dan bukan "anjing merah".

Ini memiliki dua implikasi penting untuk SEO:

  • jumlah hasil yang tidak relevan saat mencari kata kunci tertentu akan lebih sedikit (tergantung apa yang ada di gambar),
  • mengenali objek dalam gambar akan membantu Anda mengaitkan konten halaman dengan gambar tersebut. Jika suatu halaman memiliki banyak gambar anjing biru dan hal-hal lain yang berhubungan dengan anjing, maka halaman tersebut akan berperingkat lebih tinggi sebagai halaman anjing.

Pertanyaan lainnya adalah, akankah pengenalan pola mengantarkan “era baru” untuk memanipulasi objek dalam gambar sebagai teknik SEO baru yang teduh? Tidak, karena algoritma mesin pencari dapat dengan mudah mendeteksi spam jenis ini saat ini.

Google, kecerdasan buatan dan pengenalan gambar

Pada tahun 2010, Universitas Stanford pertama kali mengadakan kompetisi ILSVRC (ImageNet skala besar pengenalan visual tantangan), di mana pemrogram mendemonstrasikan kemampuan sistem pengenalan gambar yang mereka kembangkan.

ILSVRC mencakup tiga tahap utama:

  • klasifikasi,
  • klasifikasi dengan lokalisasi,
  • deteksi.

Dalam kasus pertama, kemampuan algoritme untuk membuat “tanda tangan” yang benar untuk gambar (pelabelan) dinilai; lokalisasi melibatkan identifikasi objek utama dalam gambar; tugas deteksi dirumuskan dengan cara yang sama, tetapi kriteria evaluasinya lebih ketat terapkan di sini.

Dalam hal pendeteksian, algoritme pengenalan harus mendeskripsikan gambar kompleks dengan banyak objek, menentukan lokasinya, dan mengidentifikasi masing-masing objek secara akurat. Artinya, jika seseorang mengendarai moped dalam sebuah gambar, perangkat lunak harus mampu tidak hanya membedakan beberapa objek terpisah (misalnya, moped, orang, dan helm), tetapi juga memposisikannya dengan benar di ruang angkasa dan mengklasifikasikannya dengan benar. mereka. Seperti yang dapat kita lihat pada gambar di bawah, masing-masing item telah diidentifikasi dan diklasifikasikan dengan benar.

Mesin pencari apa pun dengan kemampuan ini akan menyulitkan siapa pun untuk menyamarkan foto orang yang mengendarai moped sebagai foto pengemudi Porsche melalui manipulasi metadata. Algoritme yang mampu mengenali objek ini cukup canggih dan mampu mengurai gambar apa pun, termasuk gambar yang paling kompleks.

Pada tahun 2014, kompetisi ILSVRC dimenangkan oleh tim GoogLeNet. Nama tersebut terbentuk dari kata Google dan LeNet - salah satu implementasi jaringan saraf konvolusional. Jaringan seperti itu dapat dengan cepat mempelajari dan memberikan hasil bahkan dengan jumlah memori yang kecil karena pengurangan jumlah parameter lebih dari sepuluh kali lipat dibandingkan dengan sebagian besar model visi komputer lainnya.

Istilah “jaringan saraf” mengacu pada jaringan saraf tiruan (JST), yang merupakan model komputasi berdasarkan prinsip pembelajaran dan pengenalan pola. Contoh pengoperasian algoritma deteksi objek diberikan di bawah ini:

Tim GoogLeNet menggunakan jenis ANN tertentu - jaringan saraf konvolusional, yang prinsipnya adalah setiap neuron merespons area yang berbeda (tetapi tumpang tindih) di bidang pandang. Area-area ini dapat disandingkan untuk menciptakan gambar yang lebih kompleks. Menurut Razvan Gavrilas, ini mengingatkan kita pada bekerja dengan lapisan dalam editor gambar.

Salah satu kelebihan jaringan saraf konvolusional adalah dukungannya yang baik untuk penerjemahan – segala jenis pergerakan suatu objek dari satu ruang ke ruang lainnya. Infrastruktur DistBelief dapat memilih objek di mana pun lokasinya dalam gambar.

Fitur lain yang berguna dari infrastruktur ini adalah invarian skala, yang menurutnya properti objek tidak berubah jika skala panjang dikalikan dengan faktor persekutuan. Artinya, kerangka kerja DistBelief harus dengan jelas mengenali gambar, misalnya, “oranye”, terlepas dari apakah gambar itu besar (di wallpaper desktop) atau kecil (di ikon). Dalam kedua kasus tersebut, objeknya berwarna oranye dan diklasifikasikan sebagai "oranye".

Penting untuk mengatakan sesuatu tentang prinsip Hebb, yang dengannya jaringan saraf tiruan dilatih. Dalam buku Organization of Behavior: A Neuropsychological Theory, postulat Hebb adalah sebagai berikut: “Jika akson sel A cukup dekat untuk merangsang sel B, dan berulang kali atau berulang kali berpartisipasi dalam eksitasinya, maka terjadi proses pertumbuhan atau perubahan metabolisme. diamati pada satu atau kedua sel, yang mengarah pada peningkatan efektivitas A sebagai salah satu sel yang menggairahkan B.”

Razvan Gavrilas sedikit menyederhanakan kutipan tersebut: “Sel-sel yang menyala bersama-sama akan mengikat menjadi satu.” Dalam kasus ANN, “sel” harus diganti dengan “neuron”. Untuk menarik analogi lebih lanjut, perangkat lunak akan mampu belajar sendiri untuk terus berkembang.

Google merekrut spesialis di bidang kecerdasan buatan dan pengenalan gambar

Google menciptakan teknologi pengenalan gambarnya sendiri berdasarkan pengembangan pihak ketiga; misalnya, untuk tujuan ini Google mengakuisisi perusahaan startup DNNresearch, yang bergerak dalam penelitian di bidang pengenalan objek dan suara. DNNresearch adalah sebuah startup; pada saat akuisisi, ia memiliki tiga orang staf, yang secara otomatis menjadi karyawan Google. Mereka menerima hibah untuk mendukung pekerjaan di bidang jaringan saraf. Google dapat menggunakan teknologi baru untuk meningkatkan kualitas pencarian gambar.

Strategi Google adalah menyediakan banyak solusi sumber terbuka untuk perusahaan lain. Hal ini dilakukan untuk mengembangkan pasar. Menurut Razvan, untuk apa membungkam pesaing ketika Anda mampu membelinya setelah beberapa saat?

Akuisisi menarik lainnya oleh Google adalah perusahaan DeepMind, yang berinvestasi sebesar $400 juta. Akuisisi ini dan banyak akuisisi lainnya ditujukan terutama untuk menarik spesialis berkualifikasi ke Google, dan bukan solusi siap pakai. Langkah pembelian perusahaan tersebut merupakan bukti perlombaan yang dilakukan oleh Google, Facebook, dan perusahaan Internet lainnya untuk mendapatkan “otak” untuk pengembangan lebih lanjut di bidang kecerdasan buatan.

Google+ sudah menggunakan deteksi objek pada gambar. Apakah Google Penelusuran selanjutnya?

Faktanya, algoritme deteksi gambar berbasis jaringan saraf telah berjalan di Google+ selama lebih dari setahun. Beberapa kode perangkat lunak yang dihadirkan di ILSVRC digunakan untuk menyempurnakan algoritma Google+, yaitu untuk mencari jenis foto tertentu.

Teknologi pengenalan gambar Google memiliki beberapa fitur berikut:

  • Algoritme Google memperhitungkan korespondensi objek dalam gambar web (close-up, pencahayaan buatan, detail) dengan objek dalam foto alami (medium shot, cahaya alami dengan bayangan, berbagai tingkat detail). Dengan kata lain, sekuntum bunga harus tetap menjadi bunga meskipun dalam gambar dengan resolusi atau kondisi pencahayaan berbeda.
  • Beberapa kelas visual tertentu dihapus dari unit umum. Misalnya, dalam daftar besar nama bunga yang dibedakan oleh algoritme, beberapa tanaman ditandai, misalnya kembang sepatu atau dahlia.
  • Algoritme pengenalan gambar Google juga berhasil mempelajari cara bekerja dengan kategori objek abstrak, menyorot sejumlah gambar tertentu yang dapat dikategorikan sebagai “tarian”, “makanan”, “ciuman”. Hal ini membutuhkan lebih banyak waktu dibandingkan sekadar mengidentifikasi hubungan oranye-oranye.

Kelas dengan makna berbeda juga ditangani dengan baik. Contohnya adalah “mobil”. Benarkah sebuah foto mobil jika kita bisa melihat keseluruhan mobil di dalamnya? Apakah gambar interior mobil termasuk foto mobil atau yang lainnya? Kami akan menjawab kedua pertanyaan tersebut dengan setuju, dan algoritma pengenalan Google melakukan hal yang sama.

Perlu dicatat bahwa sistem pengenalan gambar masih terbelakang. Namun, bahkan dalam bentuk “mentah”, algoritma Google unggul di atas semua perkembangan sebelumnya di bidang visi komputer.

Apakah teknologi pengenalan gambar merupakan bagian dari Grafik Pengetahuan Google?

Algoritme baru Google adalah bagian dari "pembelajaran mesin", yang sebagian diimplementasikan dalam Grafik Pengetahuan. Ini berisi entitas - objek yang dirancang untuk menggantikan karakter yang tidak dapat muncul dalam bentuk "murni" dalam teks HTML, misalnya karakter "

Setiap objek dan setiap kelas objek menerima kode unik, sehingga hewan “jaguar” tidak akan pernah tertukar dengan merek mobil dengan nama yang sama. Berdasarkan kode-kode tersebut, algoritma pengenalan dapat menggunakan basis pengetahuan. Faktanya, Google menciptakan "pencarian cerdas" yang memahami dan menerjemahkan kata-kata dan gambar Anda menjadi objek karakter nyata.

Bagaimana Teknologi Deteksi Objek Dapat Mempengaruhi SEO?

Kemampuan mengenali gambar dapat berguna di mana pun Anda perlu mengetahui isi gambar.

Dari perspektif SEO umum, kemampuan mengenali gambar adalah sebuah langkah maju yang besar. Hal ini membantu meningkatkan kualitas konten, karena hampir tidak mungkin menipu mesin pencari dengan foto yang diberi label salah atau foto dalam jumlah besar.

Konten visual yang baik (yaitu kualitas gambar yang tinggi, objek yang terlihat jelas, foto yang relevan) kemungkinan besar akan memainkan peran penting dalam segala hal penelusuran visual.

Jika Anda ingin gambar Anda menjadi yang pertama di antara gambar untuk kueri “Anjing Kuning”, maka pengoptimalan harus dimulai dengan menunjukkan jenis gambar Anda dan membuat daftar objek yang dikandungnya.

Kesimpulan

Kemampuan manusia untuk mengenali banyak objek dan mengkategorikannya adalah salah satu kemampuan persepsi visual yang paling menakjubkan, yang padanannya di komputer belum ditemukan. Namun Google sudah mengambil langkah maju, misalnya sudah memiliki paten pengenalan objek video skala besar otomatis sejak tahun 2012.

Jadi, menurut Razvan Gavrilas, hasil pencarian organik Google akan mengalami perubahan. Mesin pencari akan berpindah “dari string ke hal-hal,” yang pada dasarnya mengintegrasikan Grafik Pengetahuannya ke dalam lanskap pencarian. Algoritme penelusuran juga akan berubah, kemungkinan berkaitan dengan objek sebenarnya dalam konten dan menentukan bagaimana objek tersebut terkait satu sama lain.

Anotasi: Perkuliahan membahas tentang ciri-ciri permasalahan pengenalan pola dan jenis-jenisnya, dasar-dasar teori analisis dan pengenalan citra (metode fitur), serta pengenalan dengan metode analogi. Di antara banyak masalah pengenalan yang menarik, prinsip dan pendekatan pengenalan dalam masalah pembacaan mesin teks cetak dan tulisan tangan dipertimbangkan.

Robot modern yang dilengkapi kamera televisi mampu melihat dengan cukup baik untuk bekerja di dunia nyata. Mereka dapat membuat kesimpulan tentang jenis objek apa yang ada, hubungan apa yang mereka miliki satu sama lain, kelompok apa yang mereka bentuk, teks apa yang dikandungnya, dll. Namun, tugas pengenalan yang rumit, seperti mengenali objek tiga dimensi yang bergerak cepat atau tidak terbaca teks tulisan tangan, memerlukan perbaikan metode dan sarana untuk penyelesaiannya. Dalam kuliah ini kita akan melihat dasar-dasar beberapa metode pengenalan tradisional. Kami akan memulai ulasan kami dengan yang paling umum digunakan metode pengenalan fitur [ 1.4 ] , [ 4.1 ] .

Ciri-ciri umum masalah pengenalan pola dan jenisnya.

Gambar dipahami sebagai deskripsi terstruktur dari objek atau fenomena yang diteliti, diwakili oleh vektor fitur, yang setiap elemennya mewakili nilai numerik dari salah satu fitur yang mencirikan objek yang bersangkutan. Struktur umum sistem pengenalan dan tahapan proses perkembangannya ditunjukkan pada Gambar.


4.1.

Beras. 4.1. Inti dari tugas pengenalan

- menetapkan apakah objek yang diteliti mempunyai serangkaian karakteristik tetap yang memungkinkan objek tersebut diklasifikasikan ke dalam kelas tertentu. Tugas pengakuan memiliki yang berikut ini.

  1. ciri ciri Ini tugas informasi
  2. , terdiri dari dua tahap: a) membawa data awal ke dalam bentuk yang mudah dikenali; b) pengenalan itu sendiri (menunjukkan bahwa suatu benda termasuk dalam kelas tertentu). Dalam tugas-tugas ini Anda bisa memperkenalkan konsep analogi atau kemiripan benda dan merumuskan konsep kedekatan benda
  3. , terdiri dari dua tahap: a) membawa data awal ke dalam bentuk yang mudah dikenali; b) pengenalan itu sendiri (menunjukkan bahwa suatu benda termasuk dalam kelas tertentu). sebagai dasar untuk mengelompokkan objek ke dalam kelas yang sama atau kelas yang berbeda. beroperasi dengan serangkaian preseden dan contoh
  4. , klasifikasi yang diketahui dan yang dalam bentuk deskripsi formal dapat disajikan pada algoritma pengenalan untuk penyesuaian tugas selama proses pembelajaran. Untuk tugas-tugas ini sulit untuk membangun teori formal dan menerapkan metode matematika klasik
  5. (informasi untuk model matematika yang akurat seringkali tidak tersedia atau manfaat dari penggunaan model dan metode matematika tidak sebanding dengan biayanya). Dalam tugas-tugas ini kemungkinan informasi "buruk".

(informasi dengan kelalaian, heterogen, tidak langsung, kabur, ambigu, probabilistik).

  1. Disarankan untuk membedakan jenis tugas pengenalan berikut. Tugas pengenalannya adalah menugaskan objek yang disajikan sesuai dengan deskripsinya ke salah satu kelas yang diberikan ().
  2. pelatihan dengan seorang guru Tugas klasifikasi otomatis - mengatur partisi objek (situasi) menurut uraiannya ke dalam suatu sistem kelas-kelas yang saling lepas (taksonomi, analisis klaster
  3. , pembelajaran tanpa pengawasan).
  4. Tugas memilih serangkaian fitur informatif dalam pengenalan.
  5. Tugas mereduksi data awal ke dalam bentuk yang mudah dikenali.
  6. Pengenalan dinamis dan klasifikasi dinamis - tugas 1 dan 2 untuk objek dinamis.

Masalah peramalan adalah 5 masalah yang keputusannya harus berhubungan dengan suatu saat di masa depan.

Misalkan diberikan himpunan M benda; pada himpunan ini terdapat partisi menjadi sejumlah himpunan bagian (kelas) yang terbatas i = (1,m), Objek ditentukan oleh nilai beberapa fitur x j, j= (1,N).

Deskripsi objek disebut standar jika mengambil nilai dari kumpulan nilai yang valid. Biarkan itu diberikan meja pelatihan (Tabel 4.1). Tugas pengenalannya adalah, untuk objek dan kumpulan kelas tertentu, ..., menurut informasi pelatihan di meja pelatihan

tentang kelas dan deskripsi menghitung predikat:

dimana saya= (1,m), - tidak diketahui. Tabel 4.1.
Meja pelatihan Obyek Tanda dan artinya
Kelas x 1 xj
...
xn
...
...

r11

Mari kita pertimbangkan algoritma pengenalan berdasarkan penghitungan skor. Mereka didasarkan pada prinsip preseden (dalam situasi serupa seseorang harus bertindak dengan cara yang sama).

Misalkan diberikan himpunan fitur lengkap x 1, ..., x N. Mari kita pilih sistem himpunan bagian dari himpunan fitur S 1, ..., S k. Mari kita hapus sekumpulan fitur sembarang dari garis , , ..., dan nyatakan garis yang dihasilkan dengan , , ..., , .

Aturan kedekatan yang memungkinkan kita mengevaluasi kemiripan string adalah sebagai berikut. Biarkan string yang "terpotong" berisi karakter q pertama, yaitu, dan Ambang Batas ditentukan... , String dan dianggap serupa jika setidaknya ketidaksetaraan berikut terpenuhi:

Besaran ... dimasukkan sebagai parameter dalam model kelas algoritma berdasarkan perkiraan.

Biarkan menjadi evaluasi objek berdasarkan kelas.

Deskripsi objek yang disajikan untuk pengakuan diterjemahkan ke dalam matriks peringkat numerik. Keputusan tentang kelas mana yang akan mengklasifikasikan suatu objek dibuat berdasarkan perhitungan derajat kemiripan antara pengenalan objek (string) dan string yang diketahui milik kelas tertentu. Mari kita ilustrasikan algoritma pengenalan yang dijelaskan dengan sebuah contoh. 10 kelas objek ditentukan (Gbr. 4.2a). Perlu mengidentifikasi tanda-tandanya meja belajar Mari kita ilustrasikan algoritma pengenalan yang dijelaskan dengan sebuah contoh. 10 kelas objek ditentukan (Gbr. 4.2a). Perlu mengidentifikasi tanda-tandanya:

, ambang batas dan buat perkiraan kedekatan untuk kelas objek yang ditunjukkan pada Gambar. 4.2b. Tanda-tanda berikut disarankan

x 1 - jumlah garis vertikal dengan ukuran minimum;

Setiap objek dapat dicirikan oleh serangkaian karakteristik tertentu. Banyaknya fitur tergantung pada kompleksitas objek itu sendiri. Keakuratan pemilihan fitur akan mempengaruhi efisiensi pengenalan objek yang dijelaskan oleh kumpulan ini.

Pertama kita membaca gambar uji asli ke dalam ruang kerja Matlab

L=imread("test_image.bmp");

dan memvisualisasikannya

Gambar,imshow(L);

Mari kita beri komentar mengenai gambar aslinya. Dalam kasus kami, data sumber diwakili oleh gambar biner. Ini menyederhanakan tugas kita, karena penekanan utama dalam contoh ini adalah pada pengenalan objek. Namun, ketika menyelesaikan masalah pengenalan berdasarkan gambar nyata, dalam banyak kasus, tugas mengubah gambar asli menjadi gambar biner adalah penting. Kualitas solusi terhadap masalah ini sangat menentukan efektivitas pengakuan lebih lanjut.

Fungsi bwlabel dan imfeature menggunakan gambar 2D skala abu-abu sebagai masukan. Karena gambar test_image.bmp dihasilkan sebagai biner, tetapi disimpan dalam format bmp, maka dari matriks gambar tiga dimensi L, yang berisi tiga bola warna identik, perlu untuk memilih salah satu bola, misalnya, yang pertama.

L=L(:,:,1);

Hasil yang sama dapat dicapai dengan menggunakan fungsi rgb2gray. Jadi, matriks L mewakili gambar dua dimensi biner.

Untuk perhitungan lebih lanjut, kami menentukan dimensi gambar ini

Ukuran (L);

Selanjutnya Anda perlu melokalisasi, mis. menentukan letak objek pada gambar. Untuk melakukan ini, kita akan menggunakan fungsi bwlabel, yang mencari area piksel objek yang terhubung dalam gambar biner dan membuat matriks, yang setiap elemennya sama dengan jumlah objek yang memiliki piksel yang sesuai dari gambar asli. . Parameter num juga mengembalikan jumlah objek yang ditemukan dalam gambar biner asli.

Label Bw(L,8);

Selain itu, fungsi bwlabel menentukan satu parameter lagi – nilai konektivitas.

Selanjutnya kita lanjutkan menghitung atribut benda yang ditandai pada matriks bilangan benda L. Mari kita perhatikan masalah ini lebih detail. Nilai fitur dikembalikan dalam serangkaian struktur prestasi. Seperti disebutkan sebelumnya, serangkaian fitur apa pun dapat digunakan dalam pengenalan objek.

Dalam contoh ini, kami akan menerapkan pendekatan statistik paling visual untuk mengklasifikasikan objek berdasarkan karakteristik morfometrik. Ciri-ciri morfometri utama meliputi koefisien bentuk:

  1. 'soliditas' – koefisien konveksitas: sama dengan rasio luas terhadap luas cembung benda. Diwakili sebagai angka dalam rentang (0,1).
  2. 'luas' – faktor pengisian: sama dengan perbandingan luas benda dengan luas persegi panjang pembatas. Diwakili sebagai angka dalam rentang (0,1).
  3. 'eksentrisitas' – eksentrisitas elips dengan momen inersia utama sama dengan momen inersia utama benda. Diwakili sebagai angka dalam rentang (0,1).

Karena contoh ini menggunakan gambar uji objek berbentuk sederhana, dari fitur yang tercantum dalam implementasi perangkat lunak kita hanya akan menggunakan faktor isian 'luas'. Seperti yang telah disebutkan sebelumnya, parameter 'luas' ditentukan oleh perbandingan luas benda dengan luas persegi panjang pembatas. Untuk lingkaran, parameter ini akan sama dengan , dan untuk persegi – 1. Namun data ini diberikan untuk kasus ketika lingkaran dan persegi memiliki bentuk yang ideal. Jika bentuk lingkaran atau persegi terdistorsi, maka nilai parameter 'luasnya' mungkin juga berbeda dari nilai di atas. Oleh karena itu, koefisien bentuk dapat dihitung dengan beberapa kesalahan. Jadi, dengan memasukkan beberapa kesalahan ke dalam faktor bentuk, beberapa distorsinya diperbolehkan. Selain itu, nilai kesalahan sebanding dengan derajat distorsi. Namun, nilai kesalahan yang terlalu besar dapat mengakibatkan pengenalan objek yang salah.

Selain itu, kita juga akan menentukan pusat massa suatu benda menggunakan opsi 'pusat massa'.

Feats=imfeature(L,"Centroid","Extent",8);

Mari kita tulis ulang nilai fitur dari array struktur prestasi ke dalam array terpisah:

Luas=nol(angka); CentX=nol(angka); CentY=nol(angka); untuk i=1:1:bilangan;

Luas(i)=prestasi(i).Luas;

CentX(i)=prestasi(i).Centroid(1);

CentY(i)=prestasi(i).Centroid(2); akhir;

Gambar,imshow(L);

Ada juga pendekatan lain untuk pengenalan objek berdasarkan serangkaian fitur. Mereka berbeda dalam kompleksitas komputasi, efisiensi, dll. Namun, dalam materi selanjutnya kita akan mempertimbangkan pendekatan-pendekatan yang dapat diimplementasikan menggunakan fungsi-fungsi yang dibangun dalam sistem Matlab.

Saya melanjutkan serangkaian artikel tentang topik pengenalan pola, visi komputer, dan pembelajaran mesin. Hari ini saya menyajikan kepada Anda gambaran umum tentang algoritma, yang disebut eigenface.

Algoritme ini didasarkan pada penggunaan karakteristik statistik mendasar: rata-rata (ekspektasi) dan matriks kovarians; menggunakan metode komponen utama. Kami juga akan menyentuh konsep aljabar linier seperti nilai eigen dan vektor eigen (wiki: , eng). Selain itu, kami akan bekerja di ruang multidimensi.
Betapapun menakutkannya kedengarannya, algoritma ini mungkin salah satu yang paling sederhana yang pernah saya pertimbangkan, implementasinya tidak melebihi beberapa lusin baris, dan pada saat yang sama menunjukkan hasil yang baik dalam sejumlah masalah.


Bagi saya, eigenface menarik karena selama 1,5 tahun terakhir saya telah mengembangkan, antara lain, algoritma statistik untuk memproses berbagai kumpulan data, di mana seringkali saya harus berurusan dengan semua “hal” yang dijelaskan di atas.

Peralatan

Menurut metodologi yang ada, dalam kerangka pengalaman sederhana saya, setelah memikirkan algoritma apa pun, tetapi sebelum mengimplementasikannya dalam C/C++/C#/Python dll., perlu dengan cepat (sejauh mungkin) membuat model matematika dan mengujinya, menghitung sesuatu. Hal ini memungkinkan Anda melakukan penyesuaian yang diperlukan, memperbaiki kesalahan, dan menemukan apa yang tidak diperhitungkan saat memikirkan algoritme. Untuk semua ini saya menggunakan MathCAD. Keuntungan MathCAD adalah, selain sejumlah besar fungsi dan prosedur bawaan, ia juga menggunakan notasi matematika klasik. Secara kasar, cukup mengetahui matematika dan mampu menulis rumus.

Deskripsi singkat tentang algoritma

Seperti algoritma apa pun dari seri pembelajaran mesin, eigenface harus dilatih terlebih dahulu; untuk ini, set pelatihan digunakan, yaitu gambar wajah yang ingin kita kenali. Setelah model dilatih, kami akan memasukkan beberapa gambar sebagai masukan dan sebagai hasilnya kami akan menerima jawaban atas pertanyaan: gambar mana dari set pelatihan yang paling mungkin sesuai dengan contoh di masukan, atau tidak sesuai dengan apa pun.

Tugas algoritma adalah merepresentasikan gambar sebagai jumlah dari komponen dasar (gambar):

Dimana Ф i adalah gambar ke-i yang terpusat (yaitu, dikurangi rata-rata) dari sampel asli, w j mewakili bobot dan vektor eigen u j (vektor eigen atau, dalam kerangka algoritma ini, wajah eigen).

Pada gambar di atas, kita memperoleh gambar asli dengan menjumlahkan vektor eigen dan menjumlahkan rata-ratanya. Itu. Mengingat w dan u, kita dapat merekonstruksi gambar asli apa pun.

Set pelatihan harus diproyeksikan ke ruang baru (dan ruang tersebut, biasanya, berdimensi jauh lebih besar daripada gambar 2 dimensi asli), di mana setiap dimensi akan memberikan kontribusi tertentu terhadap representasi keseluruhan. Metode komponen utama memungkinkan Anda menemukan dasar ruang baru sedemikian rupa sehingga data di dalamnya ditempatkan, dalam arti tertentu, secara optimal. Untuk memahaminya, bayangkan saja bahwa dalam ruang baru beberapa dimensi (alias komponen utama atau vektor eigen atau wajah eigen) akan "membawa" lebih banyak informasi umum, sementara dimensi lain hanya membawa informasi spesifik. Biasanya, dimensi orde yang lebih tinggi (sesuai dengan nilai eigen yang lebih kecil) membawa informasi yang jauh lebih tidak berguna (dalam kasus kami, berguna adalah sesuatu yang memberikan gambaran umum tentang keseluruhan sampel) dibandingkan dimensi pertama, yang sesuai dengan nilai eigen terbesar. Dengan menyisakan dimensi hanya dengan informasi yang berguna, kita memperoleh ruang fitur di mana setiap gambar dari sampel asli direpresentasikan dalam bentuk umum. Ini, dengan cara yang sangat sederhana, adalah ide dari algoritma.
Selanjutnya, dengan memiliki beberapa gambar di tangan, kita dapat memetakannya ke ruang yang dibuat sebelumnya dan menentukan gambar sampel pelatihan mana yang paling dekat dengan contoh kita. Jika lokasinya relatif jauh dari semua data, kemungkinan besar gambar ini bukan milik database kami sama sekali.

Untuk penjelasan lebih rinci, saya menyarankan Anda untuk merujuk ke daftar Tautan eksternal di Wikipedia.

Penyimpangan kecil. Metode komponen utama banyak digunakan. Misalnya, dalam pekerjaan saya, saya menggunakannya untuk mengisolasi komponen skala tertentu (temporal atau spasial), arah atau frekuensi dalam array data. Ini dapat digunakan sebagai metode kompresi data atau metode untuk mengurangi dimensi asli dari sampel multidimensi.

Membuat model

Untuk menyusun sampel pelatihan, Database Wajah Olivetti Research Lab (ORL) digunakan. Terdapat 10 foto dari 40 orang yang berbeda:

Untuk menjelaskan implementasi algoritma, di sini saya akan memasukkan tangkapan layar dengan fungsi dan ekspresi dari MathCAD dan mengomentarinya. Ayo pergi.

FaceNums menentukan vektor nomor wajah yang akan digunakan dalam pelatihan. varNums menentukan nomor opsi (menurut deskripsi database, kami memiliki 40 direktori masing-masing dengan 10 file gambar dari orang yang sama). Set pelatihan kami terdiri dari 4 gambar.
Selanjutnya kita memanggil fungsi ReadData. Ini mengimplementasikan pembacaan data secara berurutan dan mengubah gambar menjadi vektor (fungsi TwoD2OneD):

Jadi, pada keluarannya kita memiliki matriks Г, yang setiap kolomnya merupakan gambar yang “diperluas” menjadi vektor. Vektor semacam itu dapat dianggap sebagai suatu titik dalam ruang multidimensi, yang dimensinya ditentukan oleh jumlah piksel. Dalam kasus kami, gambar berukuran 92x112 menghasilkan vektor 10304 elemen atau menentukan titik dalam ruang berdimensi 10304.

2. Semua gambar di set pelatihan perlu dinormalisasi dengan mengurangi gambar rata-rata. Hal ini dilakukan untuk hanya menyisakan informasi unik, menghilangkan elemen umum pada semua gambar.

Fungsi AverageImg menghitung dan mengembalikan vektor rata-rata. Jika kita “menciutkan” vektor ini menjadi sebuah gambar, kita akan melihat “wajah rata-rata”:

Fungsi Normalisasi mengurangi vektor rata-rata dari setiap gambar dan mengembalikan sampel rata-rata:

3. Langkah selanjutnya adalah menghitung vektor eigen (alias eigenfaces) u dan bobot w untuk setiap gambar di set pelatihan. Dengan kata lain, ini adalah transisi ke ruang baru.

Kita menghitung matriks kovarians, kemudian mencari komponen utama (juga merupakan vektor eigen) dan menghitung bobotnya. Mereka yang semakin akrab dengan algoritma akan masuk ke dalam matematika. Fungsi ini mengembalikan matriks bobot, vektor eigen, dan nilai eigen. Ini semua data yang diperlukan untuk ditampilkan di ruang baru. Dalam kasus kami, kami bekerja dengan ruang 4 dimensi, sesuai dengan jumlah elemen dalam set pelatihan, sisa 10304 - 4 = 10300 dimensi merosot, kami tidak memperhitungkannya.

Secara umum, kita tidak memerlukan nilai eigen, tetapi kita dapat menelusuri beberapa informasi berguna dari nilai tersebut. Mari kita lihat:

Nilai eigen sebenarnya menunjukkan varians sepanjang masing-masing sumbu komponen utama (setiap komponen berhubungan dengan satu dimensi dalam ruang). Lihatlah ekspresi di sebelah kanan, jumlah vektor tertentu = 1, dan setiap elemen menunjukkan kontribusi terhadap total varians data. Kita melihat bahwa 1 dan 3 komponen utama berjumlah 0,82. Itu. Dimensi 1 dan 3 berisi 82% dari seluruh informasi. Dimensi ke-2 diciutkan, dan dimensi ke-4 membawa 18% informasi dan kita tidak membutuhkannya.

Pengakuan

Model telah dikompilasi. Kami akan mengujinya.

Kami membuat sampel baru dari 24 elemen. 4 elemen pertama sama seperti pada set pelatihan. Sisanya adalah versi gambar yang berbeda dari set pelatihan:

Selanjutnya, kita memuat data dan meneruskannya ke prosedur Kenali. Di dalamnya, setiap gambar dirata-ratakan, dipetakan ke dalam ruang komponen utama, dan bobot w ditemukan. Setelah vektor w diketahui, perlu ditentukan objek mana yang paling dekat dengannya. Untuk ini, fungsi dist digunakan (daripada jarak Euclidean klasik dalam masalah pengenalan pola, lebih baik menggunakan metrik lain: jarak Mahalonobis). Jarak minimum dan indeks objek yang paling dekat dengan gambar tertentu ditemukan.

Pada sampel 24 objek yang ditunjukkan di atas, efisiensi pengklasifikasi adalah 100%. Tapi ada satu peringatan. Jika kita menginputkan gambar yang tidak ada pada database sumber, maka vektor w akan tetap dihitung dan dicari jarak minimumnya. Oleh karena itu, kriteria O diperkenalkan jika jarak minimum< O значит изображение принадлежит к классу распознаваемых, если минимальное расстояние >O, maka tidak ada gambar seperti itu di database. Nilai kriteria ini dipilih secara empiris. Untuk model ini saya memilih O = 2.2.

Mari kita buat sampel individu yang tidak termasuk dalam sampel pelatihan dan lihat seberapa efektif pengklasifikasi dalam menyaring sampel palsu.

Dari 24 sampel kami memiliki 4 positif palsu. Itu. efisiensi adalah 83%.

Kesimpulan

Secara keseluruhan algoritma yang sederhana dan asli. Sekali lagi ini membuktikan bahwa di ruang berdimensi lebih tinggi terdapat banyak informasi berguna yang “tersembunyi” yang dapat digunakan dengan berbagai cara.  Bersama dengan teknik canggih lainnya, eigenface dapat digunakan untuk meningkatkan efisiensi penyelesaian masalah yang diberikan.

Misalnya, kami menggunakan pengklasifikasi jarak sederhana sebagai pengklasifikasi. Namun, kita dapat menerapkan algoritma klasifikasi yang lebih maju, misalnya.

  • Sergei Savenkov

    semacam ulasan "pendek"... seolah-olah mereka sedang terburu-buru di suatu tempat