/eljeka

Nilai ujian secara cepat dan akurat menggunakan pemindai (scanner).

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

eljeka

eljeka adalah sebuah piranti lunak untuk membaca dan mengevaluasi Lembar Jawaban Komputer (LJK).

eljeka pada dasarnya hanyalah template dan skrip tambahan pada OMRChecker. Fitur tambahan tersebut adalah kemampuan melakukan penilaian pada LJK yang diisi dengan cara menyilang.

Jika Anda berminat mendalami seluk-beluk penilaian LJK menggunakan Optical Markup Recognition (OMR), sangat disarankan untuk langsung merujuk OMRChecker dan wikinya.

Cara Penggunaan

1. Pasang paket yang diperlukan (global dependencies)

  • Misal pada sistem (berdasar) Debian:

    sudo apt install -y build-essential cmake unzip pkg-config libjpeg-dev libpng-dev libtiff-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libatlas-base-dev gfortran
    
  • Pasang OpenCV

    python3 -m pip install --user --upgrade pip
    python3 -m pip install --user opencv-python
    python3 -m pip install --user opencv-contrib-python
    

2. Gandakan eljeka

  • Gandakan eljeka

    git clone https://github.com/rizaumami/eljeka --depth=1
    
  • Pasang pustaka yang diperlukan

    cd eljeka/
    python3 -m pip install --user -r requirements.txt
    

    Catatan: Jika Anda mendapat galat distutils error dalam pip, gunakan flag --ignore-installed pada perintah di atas.

3. Jalankan eljeka

$ ./eljeka -h

  eljeka adalah skrip untuk melakukan Optical Markup Recognition (OMR)
  pada kertas Lembar Jawaban Komputer (LJK).

  Penggunaan: eljeka PILIHAN

  PILIHAN:
    -h              Tampilkan pesan ini.
    -i INPUT_DIR    Letak gambar LJK untuk di-OMR.
    -o OUTPUT_DIR   Letak hasil OMR akan disimpan.
    -r              Hanya lakukan OMR tanpa mengolah gambar input
                    terlebih dahulu.
    -t TEMPLATE     Template OMR untuk format LJK yang digunakan.

  Jika tidak diberi argumen -i atau -o atau -t maka skrip secara asali akan
  menggunakan:
  -i di /home/iza/eljeka/inputs
  -o di /home/iza/eljeka/outputs
  -t di /home/iza/eljeka/samples/eljeka/eljeka.json

  Apa yang skrip ini lakukan adalah sebagai berikut:
  1. Mengubah gambar LJK menjadi hitam putih. Misal LJK berwarna biru, maka
     yang tertinggal adalah tanda alat tulis berwarna hitam.
  2. Menebalkan gambar hitam tersisa agar lebih mudah di-OMR.
  3. Melakukan OMR.

  Contoh:
    - Melakukan OMR pada berkas hasil pemindaian yang terletak dalam ~/IPA:

      $ eljeka -i ~/IPA

    - Menyimpan hasil OMR ke dalam map ~/NILAI_IPA:

      $ eljeka -o ~/NILAI_IPA

    - Melakukan OMR pada berkas hasil pemindaian yang terletak dalam ~/IPA
      dan menyimpan hasilnya ke dalam map ~/NILAI_IPA:

      $ eljeka -i ~/IPA -o ~/NILAI_IPA

    - Melakukan OMR pada berkas hasil pemindaian yang terletak dalam ~/IPA
      dengan menggunakan template ~/ljk.json dan menyimpan hasilnya ke dalam
      map ~/NILAI_IPA:

      $ eljeka -i ~/IPA -o ~/NILAI_IPA -t ~/ljk.json

    - Jika ada berkas yang tidak sempurna di-OMR, gunakan argumen -r untuk
      langsung melakukan OMR tanpa mengolah gambar terlebih dahulu.
      Mungkin diperlukan untuk menyunting gambar input secara manual.

      $ eljeka -i /home/iza/eljeka/inputs/PERIKSA -r

  eljeka hanyalah skrip pembantu (helper/wrapper script) untuk otomasi
  OMR model LJK seperti tampak dalam map samples/ljk.

  Jika mempunyai bentuk LJK berbeda, silakan rujuk
  https://github.com/Udayraj123/OMRChecker untuk langsung menggunakan
  OMRChecker dan atau membuat template.json sendiri.