The most notable bubble sheet test you experienced (at least in the United States) were taking the SATs during high school, prior to filling out college admission applications. Each question on the exam is a multiple choice - and you use a #2 pencil to mark the “bubble” that corresponds to the correct answer. If you’re unfamiliar with “bubble sheet tests” or the trademark/corporate name of “Scantron tests”, they are simply multiple-choice tests that you take as a student. Optical Mark Recognition, or OMR for short, is the process of automatically analyzing human-marked documents and interpreting their results.Īrguably, the most famous, easily recognizable form of OMR are bubble sheet multiple choice tests, not unlike the ones you took in elementary school, middle school, or even high school. Once we have our OMR system implemented, I’ll provide sample results of our test grader on a few example exams, including ones that were filled out with nefarious intent.įinally, I’ll discuss some of the shortcomings of this current bubble sheet scanner system and how we can improve it in future iterations. I’ll then demonstrate how to implement a bubble sheet test scanner and grader using strictly computer vision and image processing techniques, along with the OpenCV library. In the remainder of this blog post, I’ll discuss what exactly Optical Mark Recognition (OMR) is. Looking for the source code to this post? Jump Right To The Downloads Section Bubble sheet scanner and test grader using OMR, Python, and OpenCV To learn more about utilizing computer vision, image processing, and OpenCV to automatically grade bubble test sheets, keep reading. Overall, I am quite pleased with this implementation and I think you’ll absolutely be able to use this bubble sheet grader/OMR system as a starting point for your own projects. You see, last Friday afternoon I quickly Photoshopped an example bubble test paper, printed out a few copies, and then set to work on coding up the actual implementation. Using the knowledge gained from these previous posts, we’ll be able to make quick work of this bubble sheet scanner and test grader. In fact, what makes this project so special is that we are going to combine the techniques from many previous blog posts, including building a document scanner, contour sorting, and perspective transforms. One of my favorite parts of running the PyImageSearch blog is demonstrating how to build actual solutions to problems using computer vision. Over the past few months I’ve gotten quite the number of requests landing in my inbox to build a bubble sheet/Scantron-like test reader using computer vision and image processing techniques.Īnd while I’ve been having a lot of fun doing this series on machine learning and deep learning, I’d be lying if I said this little mini-project wasn’t a short, welcome break. Click here to download the source code to this post
0 Comments
Leave a Reply. |