Sınav Kağıdı Okuma


#1

Merhaba

Kutucuk doldurarak yapılan sınavlardaki cevap kağıtlarından işaretlenenleri almak istiyorum. Bildiğiniz optik okuyucuların yaptığı işlemi görüntü işleme ile yapmak istiyorum. Tabi bunu örnek cep telefonu kamerası ile düzgün bir açıdan çekip yapacak. Bunun için araştırmaları yaptım. Opencv ile omr(optical mark reader) konularını ve bubble sheet reader olarak baya testler yaptım. Ama çok başarılı olduğum söylenemez. Şimdi sizlerin görüşlerini almak istedim. İnternetten bulduğum örnek bir resim ile sorularımı soracağım.

  1. Sınav kağıdında cevaplar kısmını tespit etmek ve o kısmı kesmek istiyorum. bunu findContours fonksiyonu ile yapmaya çalıştım ama başaramadım. Uğraştığım yol doğru mu? Onu sormak istiyorum. Yoksa bunun için başka bir yaklaşım yapmam lazım.

  2. Noktaları okuma kısmında çok başarılı olduğumu söyleyemem. Genel itibari şuradaki örneği takip ettim.
    https://github.com/aviralgoyal1997/Implementing-a-bubble-sheet-scanner-and-grader-using-OMR-Python-and-OpenCV/blob/master/bubble_sheet_grader_implementation.ipynb
    Alternatif tavsiyeleriniz var mı?

Bütün herşeyi de yapsam bu işin sonu verimli, verimsiz fikirleriniz söyleyebilir misiniz? veya bu işi opencv ile değilde şununla yaparsan verim alırsın dediğiniz birşey var mı?


#2

Burda önemli olan çekilen görüntülerde Kagırın her zaman aynı konuma getirilebilmesi
ondan sonrası seçenek çemberlerinin konumunun kağıda göre girilip o konumdaki renk değerlerinin kontrolün yapılmasıdır

Kağıdın sağında siyah çizgiler var
Onları referans alıp bütün resimleri aynı şekilde çevrecek kodu yazmanız lazım


#3

OMR neredeyse probleme göre çözüm gerektiren bir alandır. Öncelikli olarak takip ettiğiniz örnek yeterli olacaktır fakat cevaplar kısmının düzgün ayrıştırılıp gerekilirse dönüştürülmesi gerekir.

Cevaplar kısmının ayrıştırılması için referans noktalar alarak kırpabilirsin, örneği sağ köşedeki siyah noktalar, cevap kısmına koyulabilecek bir QR veya mark. Cevapların tespiti için ise eklediğin linkteki örneği takip edebilirsin akış doğru, belki daha düzgün şekiller için threshold ve edge kernel matrisleri ile oynaman gerekebilir.