Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
7 views20 pages

DIP Final Presentation

The document outlines a final project for an OMR Auto Grading System developed by a team, detailing the process of grading OMR sheets using image processing techniques. It describes the flow of the project, including feature extraction, homography matrix calculation, and response matching to provide final scores. The project also discusses algorithm efficiency, accuracy under various conditions, and future improvements to enhance performance with rotated and tilted images.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views20 pages

DIP Final Presentation

The document outlines a final project for an OMR Auto Grading System developed by a team, detailing the process of grading OMR sheets using image processing techniques. It describes the flow of the project, including feature extraction, homography matrix calculation, and response matching to provide final scores. The project also discusses algorithm efficiency, accuracy under various conditions, and future improvements to enhance performance with rotated and tilted images.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 20

Digital Image Processing

Final Project

OMR Auto Grading System

Team: Simple Sober Guided By :


Salay Jain (20171078 / ECE) Prof. Ravi Kiran Sir
Harsh Sharma (20171157 / ECD) Aditya Aggarwal
GitHub Repository
Problem Statement
The project is based on an idea to grade an OMR sheet. Nowadays most of the competitive exams have
multiple choice questions with OMR sheet- Optical mark recognition corresponding to right options for
every question.

So our problem is matching the correct response and recorded response of the candidate and provide the
final score to the candidate.

As we can see we that we have marked wrong response by red color and right responses by green color while
un-answered responses remain untouched and counted as wrong answer.
Flow of the project :
● Feature extraction & detection.
● Homography matrix(H) using these feature and
FLANN based algorithm.
● Corresponding points using H matrix.
● Thresholding the response sheet to get binary
image.
● Using image processing algorithms in binary
image for further convenience.
● Finding marked responses and matching with
ideal answers.
● Return result.
Feature Extraction-Detection and FLANN :
We use SURF detector and FLANN to find the matching points from the template image and our response
sheet removing the noise/outliers.

Speeded up robust features (SURF) is a patented local feature detector and descriptor. For feature
description, SURF uses Wavelet responses in horizontal and vertical direction. For more distinctiveness,
SURF feature descriptor has an extended 128 dimension version.

Fast Approximate Nearest Neighbor Search (FLANN) is a library for performing fast approximate nearest
neighbor searches in high dimensional spaces. It contains a collection of algorithms we found to work best
for nearest neighbor search.
Here is a example of SURF detector and FLANN to give the corresponding matching points. Now we will
use these matching points to find Homography matrix.
Homography:
With the set of corresponding points we use algorithms like 8 point algorithm to find our homography
matrix H. Also we use RANSAC to remove the outliers.

Now we find have our pixels of answer points manually in template and call it X2

X1=H*X2, where X2 is (x,y,1) i.e. 1 appended points.

Now we normalize X2 by making z=1 and thus we gets matching points related to our selected answer
points.
Here we can see that our first 10 points location in our response sheet we have got for the answer key. Now
we proceed with thresholding and pixels counting near these matched points.
Thresholding & opening :

After getting the key points (or the correspondence), we convert the input images into binary image with
threshold of 200, and latter we have use morphological operations to convert the image according to our
requirements. We have use kernel as a disk of diameter 7.

As we know, working with binary images is easier and efficient when we need to perform morphological
operation and want to know the information about a specific pixel weather it is black or not.

After binarization, we are performing morphological operations as opening to remove the unwanted
pixels(noise), and because of that the accuracy of our algorithm increases.
We can clearly see that after closing all the salt noises is removed and we get white pixels only in location
where it was marked by the candidate.
Matching Responses :
First we get answers of the ideal response sheet by using template and original image. Then we gets answers
of our own response sheet by using template and our answer sheet.Now we find the difference in these two
answers and get our result accordingly.
Results :
Some Correct outputs
Some Wrong Outputs
Some Observations :
Rotation(degree)/Tilt Angle(degree) of camera Avg Accuracy(%)

0/0 100

90/0 100

Less than 90/0 100

Greater than 90/0 100

0/(0-50) 98

0/(50-80) 92

(0-50)/(0-50) 100

Greater than 50/Greater than 50 78


Analysis of our Algorithm :
● Cheap and efficient algorithm.
● With using only one template and answer key we can check all the responses easily
● Rotations and tilts are handled by our algorithm but with reduce in accuracy for certain
rotations and tilt angles.
● The input image may require different thresholding algorithms according to the
environment in photo was taken.
● Can handle multiple correct options.
● Marked bubble/answers will only be detected if bubble is filled dark and completely.
Future work:
As we can see in the observation table, our algorithm gives less accuracy for rotation and tilt
(both at the same time) for higher angles, it is because we are using FLANN matcher to find the
key points, and FLANN matcher does not take into account any geometry information around
key-point. So, by introducing a new algorithm that takes into account the geometric
information around key points, we can expect the accuracy to be increased and after that our
algorithm will work for large angles (for both tilt and rotation at the same time) too.
Work Division
● Salay’s Work
○ Homography
○ 8-point Algorithm and RANSACC
○ Pixels neighbouring Average
● Harsh’s Work
○ SURF and FLANN
○ Thresholding and opening
○ Result Matching and final outputs
● Common Work
○ Presentation
○ Documentation
○ Creating Datasets

Most of the work was done together however for understanding some new concepts we splitted up our
works
Thank You

You might also like