Optical Mark Recognition (juga disebut Optical Mark Reading dan OMR) adalah sebuah proses untuk membaca data yang ditandai oleh manusia pada formulir khusus (lembar jawaban computer).

Banyak OMR versi lama hanya berfungi dengan scanner khusus yang menscan kertas dengan menembakkan cahaya terhadap kertas tersebut. Tingkat kontras yang dipantulkan akan menentukan posisi di dokumen tersebut yang digunakan untuk mendeteksi area yang ditandai. Karena area tersebut memantulkan cahaya jauh lebih sedikit daripada area lain yang kosong pada kertas.

Sebagaian perangat OMR menggunakan formulir yang dicetak diatas kertas ‘tran-optic’ dan mengukur jumlah cahaya yang menembus kertas, dan tanda di kedua sisi kertas akan mengurangi jumlah cahaya yang menembus kertas tersebut.

Berbeda dengan  perangkat OMR, software OMR memungkinkan pengguna untuk membuat sendiri formulir dengan software word processor dan memprintnya dengan printer laser. Software OMR dapat berfungsi dengan menggunakan scanner biasa yang menggunakan document feeder agar dapat memproses banyak dokumen dengan cepat.

OMR pada umumnya berbeda dengan Optical Character Recognition (OCR) karena OMR tidak memerlukan mesin pengenal pola. Artinya tanda yang dibuat pada kertas dibuat sedemikian rupa supaya mudah dibaca oleh software. Ini berarti gambar di kertas harus memiliki kontras yang besar agar bias dikenali dengan mudah oleh software. Bagian yang sama antara OMR dan OCR adalah sama-sama mengenali barcode yang ada pada kertas lembar jawaban komputer.