Bedah Teknologi modern dibalik Bagaimana Komputer membaca Gambar. Komputer dapat membaca gambar menjadi teks dinamakan dengan OCR – Optical Character Recognition. Saat ini teknologi OCR berkembang pesat. Sebelum dikenal dengan deep learning. Tools OCR yang opensource seperti Tesseract banyak digunakan untuk mengubah gambar menjadi teks. Namun untuk font beragam jenis tentu akan menyulitkan proses OCR.
Untuk itulah dikembangkan pendekatan deep learning dalam teknologi OCR. Salah satu algoritma penting yang banyak digunakan adalah CTC (Connectionist Temporal Classification). Algoritma ini dirancang khusus untuk menangani permasalahan pengenalan urutan (sequence recognition), di mana panjang data input tidak harus sama dengan panjang data output, serta tidak memerlukan proses segmentasi karakter secara eksplisit.
Pada OCR berbasis CTC, citra teks terlebih dahulu diproses menggunakan Convolutional Neural Network (CNN) untuk mengekstraksi fitur visual dari gambar. Selanjutnya, fitur tersebut diperlakukan sebagai urutan dan diproses oleh Recurrent Neural Network (RNN) seperti LSTM atau arsitektur modern seperti Transformer, guna menangkap konteks spasial dan temporal antar karakter. Hasil dari proses ini berupa probabilitas setiap karakter pada setiap langkah waktu, yang kemudian dioptimalkan menggunakan fungsi CTC Loss.
Keunggulan utama algoritma CTC adalah kemampuannya mengenali teks tanpa harus memisahkan karakter satu per satu. Hal ini sangat bermanfaat dalam menghadapi variasi font, ukuran huruf, kemiringan tulisan, serta jarak antar karakter yang tidak konsisten. Dengan adanya simbol khusus blank, CTC mampu melakukan penyelarasan (alignment) secara otomatis antara urutan fitur hasil ekstraksi dan label teks target.
Selain itu, OCR berbasis CTC lebih adaptif terhadap berbagai jenis tulisan, termasuk teks alami dan tulisan tangan. Teknologi ini juga memungkinkan sistem OCR untuk dikembangkan secara end-to-end, sehingga proses pelatihan menjadi lebih efisien dan akurat dibandingkan metode OCR konvensional. Oleh karena itu, CTC kini menjadi komponen utama dalam banyak sistem OCR modern dan diaplikasikan secara luas pada digitalisasi dokumen, arsip sejarah, serta pengenalan aksara non-Latin.
Berikut adalah salah satu contohnya, tesseract akan sulit melakukan recognition!

Apa itu CTC?
Contents
CTC adalah cara agar komputer bisa membaca tulisan (dari gambar atau suara) tanpa harus tahu letak tiap hurufnya secara pasti. Bayangkan manusia membaca tulisan tangan yang berantakan—kita tetap bisa menebak kata utuhnya meskipun hurufnya saling menempel. CTC bekerja dengan cara yang mirip seperti itu.
Masalah utama dalam membaca tulisan, maka komputer melihat gambar teks:
- Komputer melihat gambar panjang
- Tapi hasil yang diinginkan adalah kata atau kalimat
- Komputer tidak tahu di bagian mana huruf A, B, atau C berada
Cara kerja CTC (dengan contoh sederhana)
Misalnya komputer ingin membaca kata:
"BUKU"
Komputer membaca gambar sedikit demi sedikit dari kiri ke kanan, lalu menghasilkan tebakan seperti ini:
_ B B _ U _ K K _ U _
(_ garis bawah berarti “kosong” atau blank)
Langkah CTC:
- Hapus huruf yang berulang
_ B _ U _ K _ U _ - Hapus tanda kosong
B U K U
Hasil akhirnya adalah “BUKU”
CTC tidak peduli di mana tepatnya huruf muncul, yang penting urutannya benar.
Kenapa CTC itu pintar?
Karena CTC:
- Tidak perlu memotong gambar per huruf
- Bisa membaca tulisan yang rapat, miring, atau tidak rapi
- Bisa menyesuaikan berbagai jenis font
- Cocok untuk tulisan tangan
Perumpamaan sederhana
Bayangkan Anda mendikte kata ke orang lain:
- Suara Anda naik-turun dan tidak jelas per huruf
- Tapi pendengar bisa memahami kata lengkapnya
CTC melakukan hal yang sama, tapi untuk gambar teks.
Dipakai di mana?
CTC banyak digunakan pada:
- OCR modern (pembaca teks dari gambar)
- Pembaca tulisan tangan
- Pembaca teks pada foto
- Pengenalan suara (speech-to-text)
Ringkasannya
CTC adalah algoritma yang membantu komputer:
- Membaca teks tanpa harus tahu posisi huruf
- Mengubah gambar panjang menjadi kata
- Bekerja dengan baik pada tulisan yang sulit dibaca
Singkatnya:
CTC membuat komputer “menebak” kata secara cerdas, seperti manusia membaca tulisan tangan.

menarik bukan? Makanya OCR modern bisa membaca huruf kanji, tagalog, jawa, dan arab dan yang lainnya.
Kalau kalian tertarik, bisa membaca referensi https://github.com/mindspore-lab/mindocr
Saya sudah menggunakan algoritma diatas dan hasilnya sangat terkesan sekali! Untuk datasetnya bisa kalian gunakan https://www.kaggle.com/datasets/pradeepsiva/mjsynth-1-250k
Dari dataset diatas, saya pakai hanya 10.000 gambar saja dengan iterasi 1.000 kali

Grafik loss dengan banyak uji coba, loss turun dengan sangat baik
folder checkpoint: checkpoint/model SVTROCR/
menggunakan sesi pelatihan: model_current.pt; loss.csv
epoch current: 979
last error: 0.2883923998534679
tabel
loss date
969 0.314365 2025-12-20 05:53:56.363947
970 0.310208 2025-12-20 05:57:02.847632
971 0.305178 2025-12-20 06:00:09.346028
972 0.303135 2025-12-20 06:03:15.491924
973 0.297482 2025-12-20 06:06:21.485707
974 0.301017 2025-12-20 06:09:28.869212
975 0.293752 2025-12-20 06:12:40.969457
976 0.291044 2025-12-20 06:15:54.681389
977 0.286951 2025-12-20 06:19:08.590846
978 0.288392 2025-12-20 06:22:21.574535
Berikut ketika diuji untuk data testing

OCR bekerja dengan baik

OCR bekerja dengan baik
CTC akan menebak huruf nya

ada kesalahan prediksi
Berikut augmentasi sederhana yang saya terapkan
transform_train = transforms.Compose([
transforms.RandomApply([
transforms.ColorJitter(
brightness=0.3,
contrast=0.3
),
], p=0.5),
transforms.RandomApply([
transforms.GaussianBlur(
kernel_size=3,
sigma=(0.1, 2.0)
)
], p=0.3),
transforms.ToTensor(), # (1,H,W)
transforms.Normalize((0.5,), (0.5,))
])
Apalagi kalau bisa menggunakan 75% dari dataset yang ada yaitu 246 ribu gambar! gambar yang sangat banyak sekali!