Pengenalan karakter optis: Perbedaan antara revisi
Konten dihapus Konten ditambahkan
Luciadwika (bicara | kontrib) kTidak ada ringkasan suntingan |
k fix |
||
(16 revisi perantara oleh 9 pengguna tidak ditampilkan) | |||
Baris 1:
'''Pengenalan Karakter Optik''' ([[bahasa Inggris]]: '''O''ptical Character Recognition''''', yang biasa disingkat '''OCR''') adalah sebuah perangkat lunak yang mengubah teks dalam format berkas citra atau gambar ke dalam format teks yang bisa dibaca dan disunting oleh aplikasi komputer
Sebagai perangkat lunak yang kompleks, OCR diterapkan di berbagai bidang seperti untuk membaca data secara otomatis dan langsung memasukkannya ke dalam basis data -- contohnya seperti dalam pemindaian passport, nota transfer bank, kertas berharga – untuk pengenalan pelat kendaraan bermotor dari video atau gambar yang tertangkap kamera, dan yang paling marak adalah untuk preservasi konten buku-buku sumber referensi utama dan manuskrip bersejarah. Dalam beberapa kasus, OCR berkontribusi sangat besar dalam proses pembangunan perpustakaan digital.
== Sejarah Singkat OCR ==
Sejarah OCR bisa dirunut sejak tahun 1809 saat
Melompat ke dekade 1990an, OCR banyak dimanfaatkan oleh perpustakaan-perpustakaan untuk mendigitalkan surat kabar bersejarah.<ref name=":0" />
== Tahapan Proses OCR ==
Sebagai aplikasi yang kompleks, OCR memiliki beberapa tahapan utama yang terdiri dari
* Pra-pemrosesan
Baris 17:
=== Tahap Praproses ===
Tahap prapemrosesan in bertujuan untuk mendapatkan karakter tunggal dari sebuah teks terpindai dalam kondisi yang bagus dan bersih sehingga memudahkan proses pengenalannya. Menurut Bieniecki dkk,<ref>Bieniecki, W., Grabowski, S.,
Dalam dokumen citra teks yang terpindai, derau dikelompokkan menjadi dua yakni derau yang berasal dari proses pemindaian dan derau bawaan teks asli yang dipindai.<ref name=":1">Mahastama, A. W. & Krisnawati, L.D. 2017. Histogram Peak Ratio-based Binarization for Historical Document Image. 2017 International Conference on Smart Cities, Automation & Intelligent Computing Systems (ICON-SONICS) . IEEEXplore Digital Library. Url: https://ieeexplore.ieee.org/document/8267828</ref>
Derau yang ditimbulkan oleh proses pemindaian atau pemotretan bisa berupa citra teks yang miring, teks yang melengkung di tengah karena ketebalan buku, serta kerangka teks yang berbentuk trapezium. Beberapa metode yang digunakan untuk mendeteksi bentuk geometri atau perspektif citra teks<ref name=":2">Cherriet, M., Kharma, N., Liu, C.L. & Suen, C.Y. 2007. Character Recognition System: A Guide for Students and Practioners. Hoboken, new Jersey: A John Wiley & Sons, INC.</ref> adalah:
* Komponen terhubung (Connected Components)
* Analisis Profil Proyeksi (Projection profile analysis)
* Analisis Komponen Utama (Principle Componenet Analysis a.k.a. PCA)
* Hough Transform (Verma & Malik, )
* Korelasi silang (Cross correlation) (Verma & Malik)
Koreksi bentuk geometri dan perspektif teks dilakukan dengan metode yang sama dengan deteksinya, hanya dalam koreksi ini dicari besar sudut kemiringan atau kurva lengkung, kemudian teks akan dirotasi sesuai dengan besaran sudut yang didapatkan.
Saat citra teks sudah bersih dan memilliki orientasi geometrik yang tegak lurus, maka dilakukan pemisahan antara piksel karakter (biasanya berwarna hitam) dari piksel latar belakangnya (biasanya berwarna terang). Proses ini disebut segmentasi teks. Setelah itu, dilakukan juga segmentasi baris yakni proses memotong rangkaian karakter per baris. Proses segmentasi baris ini dikenal juga sebagai segmentasi horisontal. Untuk mendapatkan tiap karakter, maka dari tiap baris segmen dilakukan pemotongan secara vertikal berdasarkan spasi kosong atau piksel dengan warna yang terang yang memisahkan satu karakter dengan karakter di sebelah kanan atau kirinya.
=== Tahap Ekstraksi Fitur ===
Tujuan dari ekstraksi fitur adalah untuk menemukan atribut pola-pola karakter yang terpenting dan berbeda dari karakter lainnya agar bisa diklasifikasikan. Peran manusia adalah menentukan dan menyeleksi fitur yang memungkinkan proses pengenalan yang efisien dan efeektif. Pertanyaannya adalah lalu apa saja yang bisa dijadikan fitur bagi himpunan aksara atau alfabet dalam sistem penulisan bahasa tertentu? Maka berikut ini adalah yang bisa digunakan sebagai fitur penentu sebuah aksara, alfabet atau abjad:<ref name=":2" />
* fitur garis: garis lurus, lengkung dan jumlah garis
* Fitur topologi: titik-titik ujung akhir, titik persilangan
* sudut
* fitur biner yang diekstraksi dari citra keabuan.
Metode yang sering digunakan untuk mengekstraksi fitur sebuah karakter adalah:
* Hough Transform
* Aspect ratio
* moment invariants
* zoning
* Fourier transforms
Tahap ekstraksi fitur ini bisa disamakan dengan pengubahan bentuk fisik karakter (terlepas apakah karakter tersebut sebuah abjad, aksara, atau alfabet) ke dalam model matematis yang bisa membedakan antara satu karakter, contohnya ‘l’, dari karakter lainnya, contohnya, ‘i’. Hasil pemetaan sebuah bentuk fisik karakter menjadi angka-angka dalam sebuah matriks atau vektor inilah yang akhirnya disebut sebagai fitur karakter.
=== Proses Pengenalan ===
Saat pola-pola karakter telah terpetakan ke dalam nilai vektor, maka permasalahan berikutnya adalah bagaimana mengelompokkan karakter yang memiliki nilai vektor yang sama atau hampir sama. Permasalahan ini diselesaikan dengan cara klasifikasi. Rangkaian proses klasifikasi nilai vektor inilah yang dikenal sebagai proses pengenalan karakter. Dengan demikian proses pengenalan karakter berurusan dengan dan berada ditataran representasi karakter (nilai vektor tadi).
Singkatnya, proses ini menerima masukan (input) sebuah vektor dari karakter, sebagai contoh fitur karakter <s>A</s>, yang belum dikenalnya, maka modul pengenalan bertugas menghitung jarak atau nilai kemiripan antara vektor karakter <s>A</s> dengan nilai-nilai vektor karakter yang ada di basis data (A, a, B, b, …, z ). Nilai jarak terdekat atau kemiripan tertingi antara fitur karakter <s>A</s> dengan tiap nilai vektor karakter yang ada di data menjadi penentu luaran proses pengenalan ini. Andaikan setelah penghitungan jarak atau nilal kemiripan, nilai vektor <s>A</s> tadi lebih mirip dengan nilai vektor '''A''', maka bisa dikatakan bahwa karakter <s>A</s> dikenali sebagai karakter '''A'''. Proses klasifikasi karakter otomatis ini mengadopsi cara kita mengenali benda-benda disekitar kita. Keduanya mensyaratkan bahwa kita memiliki basis pengetahuan tentang benda-benda tersebut. Sebagai contohnya, kita bisa membedakan tomat dari kentang karena tekstur, bentuk, dan warnanya. Jika diberi varian kentang baru dengan warna kemerahan mirip tomat, kita akan mencocokkan tekstur, warna, dan bentuk tersebut dengan apa yang pernah kita lihat dan ingat, baru kita memutuskan bahwa benda itu adalah kentang dan bukan tomat.
Secara teknis, tujuan akhir dari pengenalan ini tentunya adalah untuk memberikan label kelas pola-pola karakter yang telah direpresentasikan tadi. Perlu dicatat, bahwa tiap karakter dijadikan satu kelas jika mereka adalah karakter yang sama, sebagai contohnya semua cara penulisan karakter A dari berbagai font yang berbeda dengan ukuran yang berbeda masuk menjadi kelas karakter A. Metode yang sering digunakan untuk pengenalan karakter (baca: pencocokan fitur karakter masukan dengan fitur karakter yang tersimpan di data) adalah:
* Pendekatan statistik:
** Inferensi Bayes: termasuk Naïve Bayes
** Maximum likelihood
** Regresi linear
* Pendekatan Jaringan Syaraf Tiruan:
** Back-propagation Neural Network
** Convolutional Neural Network (CNN)
* Pendekatan berbasis kernel:
** Support Vector Machine (VSM) dengan kernel-kernelnya seperti:
*** Kernel Linear bagus untuk klasifikasi biner/linear
*** Kernel RBF (Radial Basis Function) untuk klasifikasi data non-linear
*** Kernel Gaussian
* Model grafis:
** Model regresi polinomial
** Model Gaussian linear
=== Paska-Proses Pengenalan ===
Setiap sistem OCR yang dibangun dengan algoritma tercanggihpun selalu membuat kesalahan, dalam arti tidak semua karakter yang dibaca dikonversikan ke karakter padanannya. Untuk itulah tahap paska-proses pencocokan karakter dilakukan untuk meningkatkan akurasi pengenalan karakter. Sistem paska-proses ini dikenal juga sebagai proses koreksi karena modul ini bertugas untuk mengoreksi kesalahan yang sering dilakukan di tataran kata.
Teknik yang digunakan dalam paska-koreksi adalah dengan menggunakan leksikon atau kamus. Alex dkk<ref name=":3">Alex, B., Glover, C., Klein, E., Tobin, R. 2012. Digitised Historical Text: Does it have to be mediOCRe? Proceedings of KONVENS 2012 (LThist 2012 workshop), Vienna, September 21, 2012</ref> membangun leksikonya dari buku-buku proyek Gutenberg (cari link di bhs Inggris) karena banyak mengandung varian penggunaan kata serta cara penulisan huruf dari zaman awal modern sampai kini. Kemudian mereka mengunakan pendekatan statistik kemiripan kata (''Word likelihood'') untuk mengoreksi kata yang mengandung karakter yang salah dikenali. Untuk nama oranag dan tempat, mereka juga menambahkan koreksi nama entitas yang didasarkan dari hasil pengenalan nama entitas (Named Entity Recognition).<ref name=":3" />
Menurut Fink dkk,<ref>Fink, F., Schulz, K.U., & Springmann, U. 2017. Profiling of OCR’ed Historical Texts Revisited. DATeCH 2017, Göttingen: ACM.</ref> sistem paska-koreksi OCR yang sepenuhnya dibangun secara otomatis akan menghasilkan tingkat akurasi yang sama rendahnya karena ada kemungkinan bahwa proses koreksi tersebut akan mengenerasikan kesalahan baru. Untuk itu, mereka membangun modul paska-koreksinya semi-otomatis dengan sebuah peranti profiling yang interaktif dan adaptif terhadap kesalahan di manuskrip bersejarah. Adaptivitas di sini merujuk pada kemampuan untuk menambahkan himpunan pola-pola di data secara otomatis serta pengunaan token atau kata yang tak-terinterpretasikan di masa kini.
== Perangkat lunak OCR ==
* [[ABBYY]] FineReader OCR
* [https://trawaca.id/ocrjawa Cakra]
* [[GOCR]]
* [http://www.phoenixsoftware.com/Falcon/Falcon32/DataEntrySoftware.htm Falcon32]
Baris 39 ⟶ 100:
== Pranala luar ==
* {{en}} [http://www.icdar2007.org ICDAR], sebuah konferensi internasional yang membahas secara komprehensif segala aspek yang berhubungan dengan rekognisi dokumen
* {{en}} [http://groundstate.ca/ocr Linux OCR: Sebuah tinjauan mengenai perangkat lunak bebas OCR] {{Webarchive|url=https://web.archive.org/web/20071219024601/http://groundstate.ca/ocr |date=2007-12-19 }}
<references />
{{Natural language processing}}
{{Uncategorized|date=Februari 2023}}
|