• Surat mana yang disembunyikan? Pengenalan huruf alfabet Jaringan syaraf pengenalan huruf c

    24.10.2020

    Mari kita memiliki layar di depan kita, dibagi menjadi dua belas sel, 4 x 3. Sel tersebut mencerminkan keleluasaan elemen gambar. Saat memfokuskan gambar, sel menyala atau tidak. "Iluminasi" mendefinisikan nilai tunggal dari besarnya eksitasinya, "non-paparan" - nol. Jadi, huruf O menentukan iluminasi sel, ditentukan pada Gambar 2.1. Huruf A menerangi layar, seperti yang ditunjukkan pada Gambar 2.2.

    Apa yang perlu dilakukan agar beberapa perangkat yang kita rancang dapat mengetahui huruf apa itu?

    Jelasnya, semua sinyal untuk eksitasi sel layar, yang diterangi oleh huruf O, harus dikirim ke konektor, yang mengimplementasikan rangkaian I. Sinyal tunggal pada output konektor, seperti yang ditunjukkan pada Gambar 2.1, akan menjadi dihasilkan jika dan hanya kemudian ketika semua sel layar tempat gambar ditempatkan menyala dengan huruf O. Kehadiran satu sinyal pada keluaran konjungtor akan menentukan jawabannya: “Ini adalah huruf O.”


    Beras. 2.1. Mengajarkan huruf "O"


    Beras. 2.2. Mengajarkan huruf "A"

    Hal yang sama harus dilakukan untuk huruf A.

    Mari tandai setiap sel layar dengan koordinatnya. Kemudian dalam bahasa logika matematika, apa yang telah kita lakukan dapat dituliskan dalam bentuk pernyataan logika – predikat:

    Predikat ini menentukan perwujudan “elektronik” menggunakan metode desain sirkuit.

    Dalam hal ini, huruf-huruf tersebut tidak akan “mengganggu” satu sama lain, karena penerangan sel-sel layar yang bersangkutan tidak sebagian bertepatan, dan nilai satuan konjungsi akan ditentukan hanya untuk salah satunya.

    Bagaimana jika Anda menaruh huruf K di layar? Maka tidak satupun dari kedua konjungtor tersebut akan menghasilkan nilai tunggal, karena tidak akan ada kebetulan iluminasi sel layar yang bersesuaian. Untuk “mengajarkan” sistem huruf K, Anda perlu memperkenalkan konjungtor lain dan melakukan konstruksi yang sama seperti di atas.

    Dengan demikian, kita dapat mengatakan bahwa kita telah membangun sebuah sistem untuk mengenali dua huruf yang diberikan “dengan benar”.

    Namun apa yang harus dilakukan jika huruf di layar ditulis dengan tangan gemetar? Kemudian kita harus mengizinkan penerangan alternatif pada beberapa sel tetangga di layar dan memperhitungkannya dengan menggunakan operasi disjungsi, OR. Seperti diketahui, sebagai hasil dari operasi ini, satu sinyal dihasilkan jika terdapat setidaknya satu sinyal pada input.

    Mari kita pertimbangkan kemungkinan mengenali huruf O, memungkinkan kemungkinan penerangan sel (1,1), (1,3), (4,1), (4,3). Maka predikat yang dibangun sebelumnya akan berbentuk:

    Demikian pula, untuk huruf A, biarkan sel (4,1) dan (4,3) menyala:


    Beras. 2.3. Pengajaran bersama huruf "O" dan "A"

    Menggabungkan kedua predikat, kita mendapatkan diagram pada Gambar 2.3.

    Oleh karena itu, kami telah menerapkan pendekatan “teknis sirkuit” untuk pembelajaran dan pengenalan, berdasarkan penggunaan fungsi Boolean dan pengoperasiannya. variabel boolean 0, 1.

    Konstruksi jaringan saraf logis yang dilatih untuk mengenali huruf

    Sekarang mari kita ambil langkah itu, transisi itu, yang menentukan kesederhanaan cerdik dari perwujudan alami, yang dirancang untuk data yang tidak lengkap, tidak dapat diandalkan, “kebisingan”, persyaratan kecepatan tinggi, keandalan tinggi, dan keseragaman. Karena kita tidak dapat membayangkan sebuah sirkuit elektronik yang tersembunyi di dalam tengkorak.

    Alam dan kita, sebagai bagian darinya, tidak pernah memiliki informasi yang akurat, pasti, dan dapat diandalkan. Penerangan sel layar, seperti halnya reseptor mata kita, tidak pernah lengkap, gambar tidak pernah benar, ada noise, kelalaian, dll. Kemudian konsep persamaan dan asosiasi menjadi sangat penting. “Apa yang paling mirip dengan gambaran yang “ditampilkan”, situasi yang muncul, dan tindakan respons apa yang paling bisa dibenarkan? - pertanyaan inilah yang menentukan prinsip hidup kita di antara banyak bahaya dan pencapaian. Asosiatifitas pemikiran kita adalah mutlak.

    Ini berarti bahwa kita perlu beralih dari variabel Boolean yang terdefinisi dengan baik (0, 1, “ya ​​- tidak”, “putih - hitam”, dll.) menuju ketidakpastian, keandalan, atau penilaian informasi lainnya - menuju variabel nyata.

    Namun kemudian kita perlu menjauh dari aljabar Boolean, karena konsep konjungsi dan disjungsi untuk variabel real tidak terdefinisi. Di sinilah analisis dan penerapan prinsip-prinsip implementasi alami - prinsip-prinsip jaringan saraf yang terkandung dalam otak kita - membantu.

    Mari kita ubah sirkuit terlatih yang kita terima menjadi jaringan saraf (Gbr. 2.4).

    Setiap sel layar adalah neuron reseptor, yang, sebagai hasil iluminasi, memperoleh sejumlah eksitasi, mengambil nilai antara nol dan satu. Reseptor yang menggantikan layar membentuk masukan, atau lapisan reseptor jaringan saraf. Kami akan mengganti setiap konjungtor dan disjungtor dengan satu model neuron untuk keseluruhan jaringan. Mari kita perkenalkan lapisan keluaran jaringan, yang dalam contoh kita terdiri dari dua neuron, yang eksitasinya menentukan hasil pengenalan. Mari beri nama neuron pada lapisan keluaran dengan nama huruf - O dan A.

    Reseptor, seperti layar, tereksitasi dari luar. Namun neuron lain, yang meniru penyebaran eksitasi di otak, menerapkannya fungsi alih(dalam hal teori kontrol otomatis) atau fungsi aktivasi(dalam hal teori jaringan saraf). Fungsi ini mengubah sinyal pada input neuron, dengan mempertimbangkan bobot input ini (kami akan menunda pertimbangannya untuk saat ini), menjadi nilai eksitasi neuron ini, yang ditransmisikan lebih jauh melalui jaringan sesuai dengan koneksinya. neuron dan mencapai satu atau lebih neuron pada lapisan keluaran.


    Beras. 2.4. Jaringan saraf untuk mengenali huruf "O" dan "A"

    Karena kerja otak ditiru oleh tingkat logis, fungsi aktivasi pilihannya cukup sederhana. Jadi, dalam contoh kita, cukup memilih yang berikut ini fungsi aktivasi untuk mencari nilai eksitasi neuron ke-i:

    Awalnya kami menemukan

    Lalu kami taruh

    Proyek ini tidak mengklaim sebagai yang pertama di dunia dan tidak dianggap sebagai pesaing Pembaca Baik, tapi saya berharap ide pengenalan pola karakter menggunakan karakteristik Euler menjadi hal baru.

    Pengantar karakteristik Euler suatu gambar.

    Ide dasarnya adalah Anda mengambil gambar hitam putih, dan dengan asumsi 0 adalah piksel putih dan 1 adalah piksel hitam, maka keseluruhan gambar akan menjadi matriks nol dan satu. Dalam hal ini, gambar hitam putih dapat direpresentasikan sebagai sekumpulan fragmen berukuran 2 kali 2 piksel; semua kemungkinan kombinasi disajikan pada gambar:

    Pada setiap gambar foto1, foto2,... menunjukkan kotak merah dari langkah penghitungan dalam algoritme, di dalamnya terdapat salah satu fragmen F dari gambar di atas. Pada setiap langkah, setiap fragmen dijumlahkan, menghasilkan sebuah gambar Asli kita memperoleh himpunan: , selanjutnya disebut ciri Euler dari bayangan atau himpunan ciri.


    KOMENTAR: dalam praktiknya, nilai F0 (untuk gambar Asli nilainya 8) tidak digunakan, karena merupakan latar belakang gambar. Oleh karena itu, akan digunakan 15 nilai mulai dari F1 hingga F15.

    Sifat-sifat karakteristik Euler suatu gambar.

    1. Nilai himpunan karakteristiknya unik, dengan kata lain tidak ada dua citra yang memiliki karakteristik Euler yang sama.
    2. Tidak ada algoritma untuk mengkonversi dari kumpulan karakteristik ke gambar asli; satu-satunya cara adalah dengan kekerasan.

    Apa algoritma pengenalan teks?

    Ide pengenalan huruf adalah kita menghitung terlebih dahulu karakteristik Euler untuk semua karakter dalam alfabet bahasa dan menyimpannya di basis pengetahuan. Kemudian kita akan menghitung karakteristik Euler untuk bagian-bagian gambar yang dikenali dan mencarinya di basis pengetahuan.

    Tahapan pengakuan:

    1. Gambar dapat berupa hitam putih atau berwarna, sehingga tahap pertama adalah perkiraan gambar, yaitu memperoleh warna hitam putih dari gambar tersebut.
    2. Kami melewati piksel demi piksel ke seluruh gambar untuk menemukan piksel hitam. Ketika piksel yang diarsir terdeteksi, operasi rekursif diluncurkan untuk mencari semua piksel yang diarsir yang berdekatan dengan piksel yang ditemukan dan piksel berikutnya. Hasilnya, kita akan mendapatkan potongan gambar, yang bisa berupa keseluruhan karakter atau sebagian, atau “sampah” yang harus dibuang.
    3. Setelah menemukan semua bagian gambar yang tidak terhubung, karakteristik Euler dihitung untuk masing-masing bagian.
    4. Selanjutnya, penganalisis mulai beroperasi dan, dengan menelusuri setiap fragmen, menentukan apakah nilai karakteristik Euler ada dalam basis pengetahuan. Jika kami menemukan nilainya, kami menganggapnya sebagai bagian gambar yang dikenali, jika tidak, kami akan membiarkannya untuk dipelajari lebih lanjut.
    5. Bagian gambar yang tidak dikenali tunduk pada analisis heuristik, yaitu saya mencoba menemukan yang paling banyak nilai yang sesuai dalam basis pengetahuan. Jika tidak mungkin menemukannya, maka dilakukan upaya untuk “merekatkan” fragmen-fragmen terdekat dan mencari hasilnya di basis pengetahuan. Untuk apa "perekatan" dilakukan? Faktanya tidak semua huruf terdiri dari satu gambar yang berkesinambungan, misalnya "!" Tanda seru tersebut terdapat 2 ruas (batang dan titik), sehingga sebelum mencarinya di basis pengetahuan perlu dihitung nilai total ciri Euler dari kedua bagian tersebut. Jika, bahkan setelah menempelkan bagian yang berdekatan, hasil yang dapat diterima tidak dapat ditemukan, maka kami menganggap pecahan tersebut sebagai sampah dan melewatkannya.

    Komposisi sistem:

    1. Dasar pengetahuan- file atau file yang awalnya dibuat oleh saya atau orang lain, berisi kumpulan karakter karakteristik dan diperlukan untuk pengenalan.
    2. Inti- berisi fungsi dasar yang melakukan pengenalan
    3. Generator- modul untuk membuat basis pengetahuan.

    ClearType dan anti-aliasing.

    Jadi, sebagai masukan kita punya gambar yang bisa dikenali, dan tujuannya adalah menjadikannya hitam putih, cocok untuk memulai proses pengenalan. Tampaknya lebih sederhana, kita menghitung semua piksel putih sebagai 0, dan sisanya sebagai 1, tetapi tidak semuanya sesederhana itu. Teks pada gambar bisa anti-alias atau non-anti-alias. Karakter anti-alias terlihat halus dan tanpa sudut, sedangkan karakter yang tidak dihaluskan akan terlihat pada monitor modern dengan piksel yang terlihat di sepanjang garis luarnya. Dengan munculnya layar LCD (kristal cair), ClearType (untuk Windows) dan jenis anti-aliasing lainnya diciptakan, yang memanfaatkan fitur matriks monitor. Piksel gambar teks berubah warna, setelah itu terlihat jauh “lebih lembut”. Untuk melihat hasil penghalusan, Anda dapat mengetikkan beberapa huruf (atau teks), misalnya di mspaint, perbesar, dan teks Anda telah berubah menjadi semacam mosaik multi-warna.

    Apa masalahnya? Mengapa kita melihat simbol biasa dalam skala kecil? Apakah mata kita menipu kita? Faktanya adalah piksel monitor LCD tidak terdiri dari satu piksel yang dapat menerima warna yang diinginkan, tetapi dari 3 subpiksel dari 3 warna, yang cukup untuk memperoleh warna yang diinginkan. Oleh karena itu, tujuan ClearType adalah mendapatkan teks yang paling indah secara visual menggunakan fitur matriks monitor LCD, dan ini dicapai dengan menggunakan rendering subpiksel. Siapa pun yang memiliki "Kaca Pembesar", untuk tujuan percobaan, dapat memperbesar tempat mana pun di layar yang dihidupkan dan melihat matriks seperti pada gambar di bawah.

    Gambar tersebut menunjukkan matriks LCD persegi berukuran 3x3 piksel.

    Perhatian! Fitur ini mempersulit perolehan gambar hitam-putih dan sangat mempengaruhi hasilnya, karena tidak selalu memungkinkan untuk memperoleh gambar yang sama, karakteristik Euler yang disimpan dalam basis pengetahuan. Oleh karena itu, perbedaan gambar memaksa analisis heuristik, yang mungkin tidak selalu berhasil.


    Mendapatkan gambar hitam putih.

    Saya tidak puas dengan kualitas algoritma konversi warna menjadi hitam putih yang ditemukan di Internet. Setelah penerapannya, gambar karakter yang dirender sublepiksel menjadi berbeda lebarnya, garis putus-putus dan sampah yang tidak dapat dipahami muncul. Hasilnya, saya memutuskan untuk mendapatkan gambar hitam putih dengan menganalisis kecerahan piksel. Semua piksel yang lebih terang (lebih besar dari nilai) 130 unit dianggap hitam, sisanya putih. Metode ini tidak ideal, dan masih memberikan hasil yang tidak memuaskan jika kecerahan teks berubah, tetapi setidaknya menerima gambar yang serupa dengan nilai di basis pengetahuan. Implementasinya dapat dilihat pada kelas LuminosityApproximator.

    Dasar pengetahuan.

    Ide awal pengisian basis pengetahuan adalah untuk setiap huruf bahasa saya akan menghitung karakteristik Euler dari gambar simbol yang dihasilkan untuk 140 font yang diinstal di komputer saya (C:\Windows\Fonts), tambahkan semua pilihan untuk jenis font (Reguler, Berlemak, Huruf miring) dan ukuran dari 8 hingga 32, sehingga mencakup semua, atau hampir semua, variasi huruf dan alas akan menjadi universal, namun sayangnya hal ini ternyata tidak sebaik yang terlihat. Dengan kondisi seperti ini, inilah yang saya dapatkan:

    1. File basis pengetahuan ternyata cukup besar (sekitar 3 megabyte) untuk bahasa Rusia dan dalam bahasa Inggris. Terlepas dari kenyataan bahwa karakteristik Euler disimpan sebagai string sederhana yang terdiri dari 15 digit, dan file itu sendiri adalah arsip terkompresi (DeflateStream), yang kemudian dibongkar ke dalam memori.
    2. Saya memerlukan waktu sekitar 10 detik untuk membatalkan serialisasi basis pengetahuan. Pada saat yang sama, waktu untuk membandingkan kumpulan karakteristik berkurang. Tidak mungkin menemukan fungsi untuk menghitung GetHashCode(), jadi saya harus membandingkannya sedikit demi sedikit. Dan dibandingkan dengan basis pengetahuan 3-5 font, waktu untuk analisis teks dengan database 140 font meningkat 30-50 kali lipat. Pada saat yang sama, kumpulan karakteristik yang sama tidak disimpan di basis pengetahuan, meskipun faktanya beberapa karakter dalam font yang berbeda mungkin terlihat sama dan serupa, meskipun ada, misalnya, 20 dan 21 font.

    Oleh karena itu, saya harus membuat basis pengetahuan kecil yang masuk ke dalam modul Inti dan memungkinkan untuk memeriksa fungsinya. Ada masalah yang sangat serius saat mengisi database. Tidak semua font menampilkan karakter kecil dengan benar. Katakanlah karakter "e" jika dirender dalam font ukuran 8 bernama "Franklin Gothic Medium" ternyata adalah:

    Dan tidak ada kemiripan dengan aslinya. Apalagi jika Anda menambahkannya ke basis pengetahuan, maka ini akan sangat memperburuk hasil heuristik, karena analisis simbol yang serupa dengan ini menyesatkan. D Simbol ini diperoleh dalam font berbeda untuk huruf berbeda. Proses pengisian basis pengetahuan itu sendiri perlu dikontrol agar setiap gambar suatu simbol, sebelum disimpan ke basis pengetahuan, diperiksa oleh seseorang untuk kesesuaiannya dengan huruf tersebut. Tapi sayangnya, saya tidak punya banyak tenaga dan waktu.

    Algoritma pencarian karakter.

    Saya akan segera mengatakan bahwa awalnya saya meremehkan masalah pencarian ini dan lupa bahwa simbol dapat terdiri dari beberapa bagian. Tampak bagi saya bahwa selama perjalanan piksel demi piksel saya akan menemukan sebuah simbol, menemukan bagian-bagiannya, jika ada, menggabungkannya dan menganalisisnya. Tipikal pass akan terlihat seperti ini: Saya mencari huruf "H" (Dalam basis pengetahuan) dan menganggap bahwa semua karakter di bawah titik atas dan di atas titik bawah adalah milik baris saat ini dan harus diberi alias bersama-sama:

    Tapi ini adalah situasi yang ideal; selama pengenalan, saya harus berurusan dengan gambar yang robek, yang, selain segalanya, mungkin memiliki banyak sampah di sebelah teks:


    Gambaran kata “ya” ini akan mencoba menjelaskan kompleksitas analisis. Kami akan berasumsi bahwa ini adalah string yang lengkap, tetapi b13 dan i6 adalah potongan sampah sebagai hasil perkiraan. Karakter "y" tidak memiliki titik, dan tidak ada karakter yang ada di basis pengetahuan untuk mengatakan dengan pasti bahwa kita berurusan dengan baris teks dari baris "c" hingga "i". Dan ketinggian garis sangat penting bagi kami, karena untuk merekatkan kami perlu mengetahui seberapa dekat potongan-potongan tersebut harus “direkatkan” dan dianalisis. Lagi pula, mungkin ada situasi ketika kita secara tidak sengaja mulai merekatkan karakter dari dua string dan hasil pengenalan tersebut akan jauh dari ideal.

    Heuristik dalam analisis gambar.


    Apa yang dimaksud dengan heuristik dalam pengenalan gambar?
    Ini adalah proses dimana kumpulan karakteristik yang tidak ada dalam basis pengetahuan dikenali sebagai huruf alfabet yang benar. Saya sudah lama berpikir tentang cara melakukan analisis, dan pada akhirnya algoritma yang paling sukses adalah ini:

    1. Saya menemukan semua rangkaian karakteristik dalam basis pengetahuan yang saya miliki jumlah terbesar nilai-nilai pecahan F cocok dengan gambar yang dikenali.
    2. Selanjutnya, saya hanya memilih kumpulan karakteristik yang, dengan gambar yang dapat dikenali berdasarkan nilai F yang tidak sama dari fragmen, perbedaannya tidak lebih dari +- 1 unit: -1< F < 1. И это все подсчитывается для каждой буквы алфавита.
    3. Lalu saya menemukan simbol yang ada jumlah terbesar kejadian. Mengingat itu adalah hasil analisis heuristik.
    Algoritma ini tidak memberikan hasil terbaik pada gambar berkarakter kecil (ukuran font 7 - 12) . Namun hal ini mungkin disebabkan oleh fakta bahwa basis pengetahuan berisi kumpulan karakteristik untuk gambar serupa dari simbol yang berbeda.

    Contoh penggunaan di C#.

    Contoh awal mula pengenalan citra citra. Variabel hasil akan berisi teks:

    var pengenal = TextRecognizer baru(wadah); var laporan = pengenal.Kenali(gambar); // Teks mentah. var hasil = laporan.RawText(); // Daftar semua fragmen dan status pengenalan masing-masing fragmen. var fragment = laporan.Simbol;

    Proyek demo.

    Untuk demonstrasi visual dari karya tersebut, saya menulis WPF aplikasi. Ini diluncurkan dari sebuah proyek bernama " Qocr.Application.Wpf". Contoh jendela dengan hasil pengenalan di bawah ini:

    Untuk mengenali gambar, Anda memerlukan:

    • Menekan "Gambar baru" memilih gambar untuk dikenali
    • Menggunakan " Hitam dan putih"Anda dapat melihat gambar mana yang akan dianalisis. Jika Anda melihat gambar dengan kualitas sangat rendah, maka jangan mengharapkan hasil yang baik. Untuk meningkatkan hasil, Anda dapat mencoba menulis sendiri gambar berwarna ke konverter hitam putih.
    • Memilih bahasa "Bahasa".
    • Klik mengenali "Mengenali".
    Semua bagian gambar harus ditandai dengan bingkai oranye atau hijau.
    Contoh pengenalan teks berbahasa Inggris:

    dan dengan probabilitas 0,1 – ke kelas C 2. Masalah yang disebutkan dapat diselesaikan dengan menggunakan SME dengan N input dan M output, dilatih untuk menghasilkan vektor pada output C, ketika masukan diberikan P.

    Selama proses pembelajaran, jaringan membangun pemetaan P → C. Pemetaan ini tidak mungkin diperoleh secara keseluruhan, tetapi dimungkinkan untuk memperoleh sejumlah pasangan yang berubah-ubah ( hal → c), dihubungkan dengan tampilan. Untuk vektor sembarang P pada masukan kita dapat memperoleh perkiraan probabilitas keanggotaan kelas pada keluaran.

    Seringkali komponen vektor keluaran bisa kurang dari 0 atau lebih besar dari 1, dan kondisi kedua (1) hanya terpenuhi kira-kira. Ketidakakuratan adalah konsekuensi dari sifat analog dari jaringan saraf. Sebagian besar hasil yang diperoleh dengan menggunakan jaringan saraf tidak akurat. Selain itu, saat melatih jaringan, kondisi tertentu yang dikenakan pada probabilitas tidak secara langsung dimasukkan ke dalam jaringan, namun secara implisit terdapat dalam kumpulan data tempat jaringan dilatih. Ini adalah alasan kedua atas kesalahan hasil.

    Ada cara formalisasi lainnya.

    Kami akan merepresentasikan huruf dalam bentuk gambar titik (Gbr.).

    Beras. . Gambar titik.

    Sel piksel gelap pada gambar sesuai dengan saya ij = 1, ringan - saya ij = 0 . Tugasnya adalah menentukan dari gambar surat yang disajikan.

    Mari kita bangun UKM bersama tidak X Nj masukan, di mana setiap masukan sesuai dengan satu piksel: xk = saya ij . Kecerahan piksel akan menjadi komponen vektor masukan.

    Sebagai sinyal keluaran, kami memilih probabilitas bahwa gambar yang disajikan sesuai dengan huruf tertentu:

    Jaringan menghitung output:

    dimana pintu keluarnya C 1 = 0,9 berarti, misalnya, gambar huruf "A" disajikan, dan jaringan yakin 90% akan hal ini, keluaran C 2 = 0,1 - bahwa gambar tersebut sesuai dengan huruf "B" dengan probabilitas 10%, dll.

    Ada cara lain: input jaringan dipilih dengan cara yang sama, dan outputnya hanya satu, angka M surat yang disajikan. Jaringan belajar memberi makna M sesuai dengan gambar yang disajikan SAYA:



    (saya ij) → M

    Dalam hal ini, kerugiannya adalah huruf-huruf dengan angka m yang serupa, tetapi gambarnya berbeda, dapat dibingungkan oleh jaringan selama pengenalan.

    Latihan pengenalan huruf. Berbagai tingkat kesulitan. Masker kebisingan diterapkan pada surat itu. Terkadang Anda perlu cerdas untuk memahami dengan eliminasi jenis huruf apa yang ada dalam tugas tersebut.

    Mengajar anak-anak membaca dan huruf alfabet Rusia. Surat apa yang ditampilkan? Pilih jawaban yang benar di sebelah kanan.

    Surat mana yang disembunyikan? Game online Untuk perkembangan awal anak-anak. Pengenalan huruf alfabet Rusia

    Cara mempelajari huruf alfabet Rusia

    Seringkali huruf-huruf alfabet Rusia mulai diajarkan secara berurutan, seperti yang tertulis di buku dasar. Faktanya, huruf harus diajarkan berdasarkan frekuensi penggunaannya. Saya akan memberi Anda sedikit petunjuk - huruf di tengah keyboard lebih sering digunakan daripada huruf di pinggirannya. Oleh karena itu, pertama-tama Anda perlu menghafal A, P, R, O.... dan meninggalkan yang seperti Y, X, F, Shch untuk camilan...

    Mana yang lebih baik - mengajar anak membaca huruf atau suku kata?

    Banyak guru langsung mengajar dalam suku kata. Saya sarankan Anda mengatasi masalah kecil ini dan bermain game online daripada mempelajari suku kata. Beginilah cara anak belajar dan bermain pada saat yang bersamaan. Atau lebih tepatnya, dia merasa sedang bermain dan pada saat yang sama tanpa sadar mengulangi suara yang diperlukan.

    Keuntungan dari game online adalah jika Anda salah mengucapkan sebuah huruf, simulator akan dengan sabar mengulangi jawaban yang benar sampai Anda mengingatnya.

    Apakah buku ABC membantu Anda belajar huruf? Mengapa kertas primer masih digunakan dalam praktek mengajar

    Secara tradisional, buku kertas ABC digunakan untuk mengajarkan huruf. Keunggulan mereka tidak dapat disangkal. Jika Anda menjatuhkan versi kertas ke lantai, Anda tidak perlu khawatir perangkat akan rusak. Primer dapat dibuka pada halaman tertentu dan ditempatkan di tempat yang terlihat. Semua ini tidak ditemukan pada perangkat elektronik.

    Namun, simulator pelatihan membaca yang dapat diprogram juga memiliki keunggulan tertentu, misalnya, mereka dapat berbicara, tidak seperti simulator kertas. Oleh karena itu, kami dapat merekomendasikan sumber kertas dan elektronik.

    Apakah latihan online membantu Anda mengingat huruf?

    Penekanan utama saat menggunakan game elektronik dan online adalah seseorang tanpa sadar mengulangi informasi yang sama berkali-kali. Semakin sering pengulangan terjadi, semakin kuat informasi tersebut dimasukkan ke dalam kesadaran dan otak. Itu sebabnya latihan daring Tambahan yang sangat berguna untuk kubus dan buku kertas tradisional.

    Pada usia berapa seorang anak sebaiknya dikirim ke pusat pendidikan?

    Kecepatan pematangannya berbeda-beda. Biasanya. Anak perempuan sampai usia tertentu berada di depan anak laki-laki dalam perkembangannya. Anak perempuan mulai berbicara lebih awal, mereka lebih berorientasi sosial dan lebih mau belajar. sebaliknya, anak laki-laki seringkali sangat autis - yang berjalan sendiri. Dari sini kita dapat menyimpulkan bahwa anak perempuan belajar membaca sedikit lebih awal dibandingkan anak laki-laki. Tapi ini hanya diagram eksternal. Setiap anak adalah individu dan kesiapannya untuk belajar dapat diuji dalam praktik. Apakah anak Anda senang menghadiri kelas? apakah ada yang tersisa dalam pikirannya setelah dia melupakannya?

    Mungkin cobalah belajar sendiri, terutama karena naik bus membutuhkan waktu, dan tidak ada yang lebih memahami bayi Anda selain ibu dan ayah.

    Apa yang harus dilakukan jika anak Anda tidak ingat huruf

    Belajar itu sulit. Dan itu tidak tergantung pada apakah itu orang dewasa atau anak-anak. Sangat, sangat sulit untuk mempelajarinya. Selain itu, anak-anak belajar hanya melalui bermain. Fakta lainnya adalah untuk mempelajari sesuatu harus dipraktikkan atau diulang berkali-kali. Oleh karena itu, tidak mengherankan jika anak-anak mengingat huruf dengan sangat buruk.

    Ada sejumlah anak yang mulai terlambat berbicara dan pada saat yang sama bingung tidak hanya huruf, tetapi juga suara. Dengan orang-orang seperti itu, Anda perlu menggambar huruf bersama-sama, menggunakan semua bahan yang mungkin untuk ini, sereal, korek api, kerikil, pensil - apa pun yang ada. Gambarlah dan minta anak Anda mengulanginya.

    Dapat dilakukan dikte grafis, Anda dapat bermain seri dan mengulanginya.

    Apa yang harus dilakukan jika bayi Anda bingung membedakan huruf, misalnya D dan T

    Jika seorang anak bingung membedakan huruf, ini berarti masih terlalu dini untuk melanjutkan membaca kata-kata. Kembali dan ulangi surat-surat itu. Anak-anak sering bingung antara huruf bersuara dan tidak bersuara atau ejaan serupa, misalnya P dan R. Latihan pengulangan dapat membantu. Misalnya Anda bisa membentuk huruf menjadi satu, Anda bisa membuat huruf dari badan, misalnya dengan meletakkan tangan ke samping untuk menggambarkan huruf T.

    Bagaimana cara mengajari anak menghafal huruf jika dia tidak mau

    pengulangan adalah ibu dari pembelajaran. Ulangi huruf demi kata, ulangi huruf demi suku kata, coba tebak hurufnya. Biarkan anak menulis surat itu dan Anda mencoba menebaknya. Atau Anda bisa melakukan sebaliknya - cobalah membuat surat dari butiran beras, dan putra atau putri Anda akan menebak surat apa itu. Anda bisa menulis di pasir dengan tongkat.

    Mengapa dia tidak bisa mengucapkan huruf-hurufnya dengan benar? Bagaimana cara mengajar anak mengucapkan huruf dengan jelas dan jelas?

    Kesenjangan mungkin terjadi pada tingkat fisiologis. Orang tersebut tidak mendengar dirinya sendiri dengan benar. atau menurutnya dia berbicara dengan benar. Sangat mudah untuk memeriksanya - cukup rekam percakapan di perekam suara dan dengarkan anak membaca.

    Bisa juga karena kurangnya pelatihan. Setiap orang memerlukan jumlah pengulangan informasi yang berbeda-beda sebelum dapat diingat, termasuk anak-anak. Ini perlu diulang berkali-kali dan dalam situasi yang berbeda sebelum dia mulai mengucapkan huruf dan bunyi dengan benar.

    Yang juga perlu diperhatikan adalah Anda perlu menyayangi anak-anak dan bekerja bersama mereka secara berkala. Jangan memulai proses.

    Bagaimana cara mengajari anak Anda alfabet untuk persiapan sekolah

    Anda perlu bekerja dengan anak-anak bentuk permainan. Persis seperti yang dinyatakan di situs ini. Rahasia pelatihan lainnya adalah Anda perlu belajar dalam porsi kecil. Anak-anak tidak dapat mempertahankan perhatiannya lebih dari 5 menit. Oleh karena itu, tidak ada gunanya belajar lebih lama.

    Dengan huruf apa Anda harus mulai menghafal alfabet?

    Anda harus mulai menghafal huruf dengan huruf yang umum digunakan. Rahasia kedua adalah mengingat huruf-huruf penyusun nama anak, nama ibu dan ayah, pada kata-kata tersebut dapat ditambahkan nama kakak dan adik, kakek dan nenek. Ini adalah nama-nama yang paling favorit.

    Omong-omong, jika Anda sedang belajar mengetik sentuh, maka kata pertama yang Anda perlukan untuk memulai pelatihan mengetik adalah nama depan dan belakang Anda.

    Apakah bayi Anda perlu menghafal huruf-huruf alfabet Inggris?

    Pengetahuan alfabet Inggris tidak akan sakit. Mereka tidak mempelajari abjad di sekolah, tetapi segera mulai membaca, menyerahkan abjad kepada orang tua. Perlu juga diperhatikan besar dan kecilnya huruf bahasa inggris terlihat berbeda dan harus diingat. Jika anak Anda mulai terlambat berbicara, kemungkinan besar mengingat huruf latin akan menjadi masalah baginya.

    Mungkinkah mengajar seorang anak membaca langsung dengan kata-kata?

    Bahasa Rusia tertulis terlihat sama dengan bahasa Rusia lisan, tidak seperti bahasa Inggris atau Prancis, jadi ingatlah kata-katanya

    Cara mengingat angka untuk anak prasekolah

    Menggambar angka, menghitung tongkat, saat berjalan, menghitung mobil merah putih, menghitung apakah lebih banyak laki-laki atau perempuan yang berjalan di jalan. Ubah semuanya menjadi permainan.

    Cobalah untuk membaca sendiri teksnya huruf demi huruf - tidak hanya akan memakan waktu lama, tetapi juga akan berbeda dengan cara kita berbicara sebenarnya. Orang dewasa tidak mengeja - kecuali kata tersebut asing atau dalam bahasa asing. Kemudian, untuk mendengarnya, mereka membacanya perlahan dan mengucapkan kata-katanya dengan hati-hati.

    Mengapa anak prasekolah lupa surat? Mengajar membaca melalui permainan

    Mengapa bayi bisa lupa huruf padahal sudah mempelajarinya kemarin?

    Biasanya, seorang anak dengan mudah mengingat beberapa huruf, tetapi tidak banyak huruf lainnya. Peran orang dewasa adalah mencatat apa yang tidak berhasil dilakukan oleh lingkungannya dan memberikan tugas tambahan.

    Hal penting lainnya adalah keteraturan. Karena bagi seorang anak, semua pembelajaran, sejujurnya, adalah menjejalkan dan mengulangi, proses pembelajaran harus sedemikian rupa sehingga informasi diulangi pada interval tertentu.

    Ebbinghaus (baca lebih lanjut tentang ini di Wikipedia) mempelajari seberapa cepat informasi yang tidak berarti bagi seseorang dilupakan dan sampai pada kesimpulan bahwa 40% informasi dilupakan dalam dua puluh menit pertama. Dan, jika tidak mungkin untuk mengatakan dengan tepat apa arti surat tertentu, maka ini sama saja dengan fakta bahwa surat itu sama sekali asing. Harus ada pengakuan 100% yang jelas.

    Ulangi, ulangi, ulangi

    Misalnya Anda melatih gudang (suku kata, kombinasi huruf) PADA, dan anak sedikit banyak belajar mengenali dan membaca kombinasi tersebut. Tambahkan suku kata TAPI pada tugas, dan mintalah mereka membaca kata-katanya, bantu mereka membaca huruf-huruf yang masih asing bagi anak. Namun, anak dapat mengklik sendiri suku kata tersebut dan mendengarkan komputer membacakannya.

    Diperlukan untuk membuat jaringan saraf untuk mengenali 26 huruf alfabet Latin. Kita asumsikan ada sistem pembacaan karakter yang merepresentasikan setiap karakter dalam bentuk matriks. Misalnya, karakter A dapat direpresentasikan seperti yang ditunjukkan pada Gambar. 2.22.

    Beras. 2.22. Representasi simbol

    Sistem sebenarnya untuk membaca karakter tidak bekerja dengan sempurna, dan gaya karakter itu sendiri berbeda. Oleh karena itu, misalnya, untuk simbol A, unitnya mungkin tidak terletak di sel yang sama seperti yang ditunjukkan pada Gambar. 2.22. Selain itu, nilai bukan nol mungkin muncul di luar kerangka karakter. Sel yang sesuai dengan garis besar simbol mungkin berisi nilai selain 1. Kami akan menyebut semua distorsi sebagai noise.

    MATLAB mempunyai fungsi masalah, yang mengembalikan matriks, setiap kolom mewakili matriks yang ditulis sebagai vektor yang mendeskripsikan huruf yang bersesuaian (kolom pertama mendeskripsikan huruf A, kolom kedua mendeskripsikan huruf B, dst.). Fungsi masalah juga mengembalikan matriks target berukuran , yang setiap kolomnya berisi satu 1 berturut-turut yang sesuai dengan nomor huruf dengan elemen kolom yang tersisa adalah nol. Misalnya, kolom pertama yang bersesuaian dengan huruf A berisi angka 1 di baris pertama.

    Contoh. Mari kita tentukan template untuk huruf A (program Templat_A.m).

    % Contoh pembentukan template huruf A

    Masalah;

    saya=1; % huruf nomor A

    v=alfabet(:,i); % vektor sesuai dengan huruf A

    templat=bentuk ulang(v, 5,7)";

    Selain fungsi yang sudah dijelaskan masalah program ini menggunakan fungsi membentuk kembali, yang membentuk matriks , dan setelah transposisi - (pastikan tidak mungkin untuk segera membentuk matriks ), dan fungsinya plotchar, yang menggambar 35 elemen vektor dalam pola kisi. Setelah menjalankan program Templat_A.m kita mendapatkan matriks templat dan pola huruf A seperti ditunjukkan pada Gambar. 2.23.

    Beras. 2.23. Templat huruf A yang terbentuk

    Untuk mengenali huruf abjad latin perlu dibangun jaringan syaraf tiruan dengan 35 masukan dan 26 neuron pada lapisan keluaran. Misalkan jumlah neuron pada lapisan tersembunyi adalah 10 (jumlah neuron ini dipilih secara eksperimental). Jika timbul kesulitan saat belajar, Anda dapat menambah jumlah neuron pada level ini.



    Jaringan pengenalan pola dibangun oleh fungsi tersebut patternnet. Harap dicatat bahwa saat membuat jaringan, jumlah neuron di lapisan input dan output tidak ditentukan. Parameter ini diatur secara implisit saat melatih jaringan.

    Pertimbangkan sebuah program untuk mengenali huruf-huruf alfabet Latin Char_pengakuan.m

    % Program pengenalan huruf alfabet Latin

    Masalah; % Pembentukan vektor masukan dan target

    Ukuran (abjad);

    Ukuran (target);

    % Jaringan

    Kereta Api(bersih,P,T);

    % Belajar di tengah kebisingan

    P = ;

    Kereta Api(netn,P,T);

    Kereta Api(netn,P,T);

    % Pengujian jaringan

    kebisingan_kemarahan=0:0.05:0.5; % Array tingkat kebisingan (deviasi standar kebisingan

    untuk tingkat kebisingan=kebisingan_kemarahan

    untuk i=1:uji_maks

    % Tes untuk jaringan 1

    % Tes untuk jaringan 2

    title("Kesalahan jaringan");

    xlabel("Tingkat kebisingan");

    ylabel("Persentase kesalahan");

    Operator = masalah; membentuk array vektor masukan alfabet ukuran dengan pola karakter alfabet dan susunan vektor target target.

    Jaringan dibuat oleh operator net=pola jaringan. Mari kita terima pengaturan jaringan default. Jaringan pertama kali dilatih dengan tidak adanya noise. Jaringan tersebut kemudian dilatih pada 10 set vektor ideal dan vektor noise. Dua set vektor ideal digunakan untuk memastikan bahwa jaringan mempertahankan kemampuan untuk mengklasifikasikan vektor ideal (tanpa noise). Setelah pelatihan, jaringan “lupa” bagaimana mengklasifikasikan beberapa vektor bebas noise. Oleh karena itu, jaringan harus dilatih kembali pada vektor ideal.

    Fragmen program berikut berlatih tanpa adanya kebisingan :

    % Pelatihan jaringan tanpa adanya kebisingan

    Kereta Api(bersih,P,T);

    disp("Pelatihan jaringan tanpa adanya noise telah selesai. Tekan Enter");

    Pelatihan dengan adanya noise dilakukan dengan menggunakan dua salinan vektor input ideal dan dua salinan noise. Kebisingan disimulasikan dengan bilangan terdistribusi normal pseudo-acak dengan mean nol dan deviasi standar 0,1 dan 0,2. Pelatihan dengan adanya kebisingan menghasilkan bagian program berikut:

    % Belajar di tengah kebisingan

    bersihn = bersih; % penghematan jaringan terlatih

    T = ;

    P = ;

    Kereta Api(netn,P,T);

    disp("Pelatihan jaringan dengan adanya noise telah selesai. Tekan Enter");

    Karena jaringan dilatih dengan adanya noise, masuk akal untuk mengulangi pelatihan tanpa noise untuk memastikan klasifikasi vektor ideal yang benar:

    % Pelatihan ulang tanpa adanya kebisingan

    Kereta Api(netn,P,T);

    disp("Pelatihan ulang jaringan tanpa adanya noise telah selesai. Tekan Enter");

    Pengujian jaringan dilakukan untuk dua struktur jaringan: jaringan 1, dilatih pada vektor ideal, dan jaringan 2, dilatih pada rangkaian noise. Kebisingan dengan rata-rata 0 dan deviasi standar 0 hingga 0,5 dalam langkah 0,05 ditambahkan ke vektor masukan. Untuk setiap tingkat kebisingan, 10 vektor kebisingan dihasilkan untuk setiap simbol, dan keluaran jaringan dihitung (diinginkan untuk meningkatkan jumlah vektor kebisingan, tetapi ini akan meningkatkan waktu berjalan program secara signifikan). Jaringan dilatih untuk membentuk satu-satunya elemen vektor keluaran, yang posisinya sesuai dengan jumlah huruf yang dikenali, dan mengisi sisa vektor dengan nol. Keluaran jaringan tidak akan pernah menghasilkan vektor keluaran yang tepat terdiri dari 1 dan 0. Oleh karena itu, dalam kondisi noise, vektor keluaran diproses oleh fungsi bersaing, yang mengubah vektor keluaran sehingga sinyal keluaran terbesar menerima nilai 1 dan semua sinyal keluaran lainnya menerima nilai 0.

    Fragmen program yang sesuai terlihat seperti ini:

    % Lakukan pengujian untuk setiap tingkat kebisingan

    untuk tingkat kebisingan=kebisingan_kemarahan

    untuk i=1:uji_maks

    P=alfabet+randn(35, 26)*tingkat kebisingan;

    % Tes untuk jaringan 1

    error1=errors1+jumlah(jumlah(abs(AA-T)))/2;

    % Tes untuk jaringan 2

    error2=kesalahan2+jumlah(jumlah(abs(AAn-T)))/2;

    % Nilai kesalahan rata-rata (urutan max_test dari 26 vektor target)

    jaringan1=;

    jaringan2=;

    plot(noise_rage, jaringan1*100, noise_rage, jaringan2*100);

    title("Kesalahan jaringan");

    xlabel("Tingkat kebisingan");

    ylabel("Persentase kesalahan");

    legenda("Vektor masukan ideal","Vektor masukan berisik");

    disp("Pengujian selesai");

    Saat menghitung kesalahan pengenalan, misalnya, error1=errors1+sum(sum(abs(AA-T)))/2, diperhitungkan bahwa jika terjadi kesalahan pengenalan, dua elemen vektor keluaran dan vektor target akan berfungsi. tidak bertepatan, oleh karena itu, ketika menghitung kesalahan, pembagian dengan 2 dilakukan. Sum(abs(AA-T)) menghitung jumlah elemen yang tidak cocok untuk satu contoh. Jumlah sum(sum(abs(AA-T))) menghitung jumlah elemen yang tidak cocok di semua contoh.

    Grafik kesalahan pengenalan untuk jaringan yang dilatih pada vektor input ideal dan jaringan yang dilatih pada vektor noise ditunjukkan pada Gambar. 2.24. Dari Gambar. Gambar 2.24 menunjukkan bahwa jaringan yang dilatih pada gambar berisik memberikan kesalahan kecil, namun jaringan tidak dapat dilatih pada vektor masukan yang ideal.

    Beras. 2.24. Kesalahan jaringan tergantung pada tingkat kebisingan

    Mari kita periksa pengoperasian jaringan terlatih (jaringan terlatih harus ada di ruang kerja MATLAB). Program Pengakuan_J.m menghasilkan vektor noise untuk huruf J dan mengenali huruf tersebut. Fungsi Randn menghasilkan bilangan pseudo-acak yang didistribusikan menurut hukum normal dengan ekspektasi matematis nol dan deviasi standar satuan. Angka acak dengan ekspektasi matematis M dan deviasi standar D diperoleh rumusnya m+randn*d(dalam sebuah program m=0, d=0,2).

    berisikJ = alfabet(:,10)+randn(35,1) * 0,2;

    plotchar(berisikJ);

    disp("Karakter berisik. Tekan Enter");

    A2 = bersihn(berisikJ);

    A2 = bersaing(A2);

    ns = temukan(A2 == 1);

    disp("Simbol dikenali");

    plotchar(alfabet(:,ns));

    Program menampilkan nomor huruf yang dikenali, pola bunyi huruf (Gbr. 2.25) dan pola huruf yang dikenali (2.26).

    Beras. 2.25. Templat surat yang berisik

    Beras. 2.26. Pola huruf yang dikenali

    Dengan demikian, program yang dipertimbangkan menunjukkan prinsip-prinsip pengenalan gambar menggunakan jaringan saraf. Melatih jaringan pada berbagai kumpulan data yang berisik memungkinkan jaringan dilatih untuk bekerja dengan gambar yang terdistorsi oleh kebisingan.

    Tugas

    1. Kerjakan semua contoh yang diberikan.

    2. Pengalaman mengenali huruf-huruf yang berbeda

    3. Menyelidiki pengaruh noise dalam program terhadap keakuratan pengenalan karakter.

    Perkiraan fungsi

    Artikel serupa