1. Produk
  2.   OMR
  3.   Python
  4.   PyOMR
 
  

Deteksi & Ekstrak Area yang Ditandai dari Lembar yang Dipindai melalui Python

Mesin OMR berbasis Python gratis Open Source yang mendukung pemrosesan OMR. Ia mendukung pemrosesan Lembar OMR, deteksi berbasis templat, serta penanganan formulir multi-halaman, dan sebagainya.

Apa itu PyOMR Librar?

Optical Mark Recognition (OMR) adalah teknologi kuat yang digunakan untuk menangkap data yang ditandai manusia dari dokumen seperti survei, tes, dan surat suara. Meskipun solusi OMR komersial ada, pengembang yang mencari alternatif gratis dan sumber terbuka dapat memanfaatkan PyOMR, sebuah perpustakaan Python yang dirancang untuk pemrosesan OMR. Dikembangkan oleh pattyjogal, PyOMR memungkinkan pengembang perangkat lunak mendeteksi gelembung yang ditandai pada formulir yang dipindai menggunakan kode Python sederhana dan teknik pemrosesan gambar standar. Ini mendukung deteksi dan ekstraksi area yang ditandai dari lembar yang dipindai, memproses formulir pilihan ganda, survei, dan penilaian serta menyesuaikan template OMR untuk berbagai kasus penggunaan.

PyOMR adalah mesin OMR berbasis Python yang dirancang untuk mendeteksi tanda centang pada formulir yang telah ditentukan, seperti lembar ujian pilihan ganda atau respons survei. Ia memanfaatkan pustaka seperti OpenCV untuk pemrosesan gambar dan menyediakan sistem berbasis templat untuk mendefinisikan wilayah tanda yang diharapkan pada lembar. Baik Anda seorang pengembang perangkat lunak yang membangun sistem penilaian, guru yang mengotomatisasi evaluasi tes, atau organisasi yang mengumpulkan data survei, PyOMR memungkinkan Anda menyisipkan fungsionalitas OMR langsung ke dalam aplikasi Anda. Dengan pendekatan berbasis templat, deteksi berbasis OpenCV, dan kemampuan skrip penuh, ini merupakan pilihan ideal bagi pengembang yang ingin membangun alat pemrosesan formulir otomatis tanpa bergantung pada layanan pihak ketiga.

Previous Next

Memulai dengan PyOMR

Cara yang direkomendasikan untuk menginstal Pustaka PyOMR adalah menggunakan GitHub. Silakan gunakan perintah berikut untuk instalasi yang lancar

Instal PyOMR Library via GitHub

 git clone https://github.com/pattyjogal/pyomr.git
cd pyomr
 

Instal Library yang Didukung via GitHub

 pip install opencv-python numpy 

Anda dapat mengunduh pustaka langsung dari GitHub

Pra-pemrosesan Gambar Otomatis dengan Python

• Perpustakaan PyOMR sumber terbuka telah menyertakan dukungan lengkap untuk pemrosesan gambar otomatis di dalam aplikasi Python. Perpustakaan ini mencakup fungsi bawaan untuk Deskewing (memperbaiki pemindaian miring), Thresholding (mengubah menjadi hitam putih untuk deteksi tanda yang lebih baik) dan penghilangan noise untuk meningkatkan akurasi pada pemindaian berkualitas rendah. Selain itu, alat ini memungkinkan penanganan masalah umum pada formulir yang dipindai seperti ketidaksesuaian pencahayaan, kontras rendah, atau penyelarasan minor. Contoh kode berikut menunjukkan cara memproses gambar di dalam aplikasi Python.

Cara Memproses Gambar dalam Aplikasi Python?

from omr import omr_engine

# File paths
template_path = "config.json"
image_path = "answer_sheet.jpg"

# Run the OMR process
results = omr_engine.process_image(image_path, template_path)

# Output the results
for i, response in enumerate(results, 1):
    print(f"Q{i}: {response if response else 'No mark detected'}")

Deteksi Berbasis Template dengan Python

PyOMR menggunakan templat JSON untuk mendefinisikan tata letak lembar jawaban Anda. Ini mencakup jumlah pertanyaan, jumlah opsi per pertanyaan, posisi awal gelembung pertama, jarak antar baris dan kolom, serta dimensi gelembung. Hal ini membuat sistem sangat fleksibel dan dapat digunakan kembali pada berbagai tata letak. Berikut contoh sederhana yang menunjukkan cara membuat templat JSON untuk menentukan posisi gelembung menggunakan perpustakaan Python.

Cara Membuat Template JSON untuk Menentukan Posisi Buble & Memuatnya via Python?

{
  "bubbles": [
    {"question": "Q1", "options": ["A", "B", "C", "D"], "coords": [100, 150, 30, 30]},
    {"question": "Q2", "options": ["A", "B", "C", "D"], "coords": [100, 200, 30, 30]}
  ],
  "reference_marks": [[50, 50], [500, 50], [50, 700]]
}
#Load template
omr.load_template("template.json")

Menangani Formulir Multi-Halaman dengan Python

Perpustakaan PyOMR telah menyertakan dukungan untuk menangani formulir multi-halaman di dalam aplikasi Python. Baik memproses lembar jawaban satu halaman maupun survei multi-halaman, PyOMR dapat dikonfigurasi untuk menangani tata letak yang berbeda. Disarankan untuk formulir multi-halaman, proses setiap halaman secara terpisah: Contoh kode berikut menunjukkan bagaimana pengembang perangkat lunak dapat menangani formulir multi-halaman di dalam aplikasi Python.

Cara Menangani Formulir Multi-Halaman via Library Python?

# for multi-page forms, process each page separately:

for page in omr.multi_page_scan("multi_page_form.pdf"):
    page.preprocess()
    answers = page.read_answers()
    print(answers)

Penanganan Kebisingan dan Pra-pemrosesan

Perpustakaan PyOMR sumber terbuka telah menyediakan dukungan lengkap untuk pra-pemrosesan gambar dan penanganan noise di dalam aplikasi Python. Perpustakaan ini mencakup pra-pemrosesan gambar seperti konversi ke skala abu-abu, thresholding, dan deteksi kontur untuk mengidentifikasi tanda dengan andal—bahkan dengan pemindaian yang berisik atau pencetakan yang tidak sempurna.

 Indonesia