GUI Based OMR System for Recognition of filled
Bubbles in Scanned OMR sheets in Absence of OMR
Machine
Presented at : IIT GUWAHATI
Ashish Arora(EEE)
Kailash Atal(ECE)
In the talk
Basics of Digital Image Processing( upto the extent required in this
talk)
Introduction to Software Based OMR System
How OMR machines work and their Drawbacks
Advantages of GUI Based OMR System
About the GUI
Demo run of the Software
Technical Aspects of detection of filled bubbles
Problems Faces
Extended applications
Drawbacks of the Model
Future Scope
Take-away from the Summer Internship
A tribute to Steve Jobs
Basics of Digital Image Processing
Black-and-white image
Binary (two-tone) image
Gray level (gray-tone) image
Color image
25
5
Another way of classifying images:
Static image (single image)
Image sequence (movie)
Example of binary image
Pixel is the smallest rectangular area under the grid. It is smallest
unit of a digital image that can be accessed or processed. (replace
1s by 0s and viceversa for the third image).
Example of graylevel image
0
255
109 106 106 110
102 120 103 109
115 126 126 137
98 96 89 82
137 118 134 145
85 77 67 63
189 150 123 131
65 67 83 102
193 191 157 101
107 119 138 155
193 189 185 168
143 154 165 170
185 187 180 179
163 164 168 171
181 185 178 173
164 163 165 167
183 184 175 149
160 159 163 164
185 182 161 126
155 158 160 163
185 178 147 125
152 156 160 160
178 179 145 139
162 150 154 155
175 177 148 150
111 106 60 98 142 114 94 98
137 136 106 146 157 146 124 128
151 147 142 157 154 140 120 105
145 143 143 134 123 110 90 65
97 104 105 101 95 98 84 94
103 74 90 106 112 125 133 136
174 142 116 128 141 148 154 160
179 171 162 153 153 160 162 164
177 179 165 164 155 153 159 164
170 188 181 167 158 153 151 155
171 183 192 181 167 157 155 160
163 171 190 195 176 164 161 162
163 169 186 197 191 169 167 167
Digital geometry (contd.)
Enlarged
block
Pixels (boundary
overlayed)
What is the OMR
System?
A software solution..FOR?
Substitution of heavy, expensive OMR machines
WHY?
Evaluation can be done without OMR machine (obvious)
Secondly when an Image Processing Tool can serve the
purpose, then why unnecessarily spend money..
How to achieve this?how to evaluate OMR sheets
without OMR machines.?Are there any special
circumstances when this works or when it can fail?
How are OMR sheets currently
evaluated?
OMR Machine which has a built-in scanner
and data processing software.
Both scanning and recognition of filled
bubbles are integrated into a single OMR
machine.
Drawbacks of OMR
Machines
Adapted for use for OMR sheets of a particular
format.
OMR machines are big machines typically of
the size of a Xerox machine.
Quite expensive.
Requires technical know-how. Not a common
device
What do we propose?
Using scanners to scan and store images of
OMR sheets in a folder
Specify the name of folder in GUI
Processing and storing database of marked
bubbles in excel-spreadsheet is done
automatically.
Process of scanning and determination of
marked regions are independent.
Any advantages?
The software is independent of the format of the OMR answer
script.
The product makes use of resources such as computer, scanner
which are easily available, easy to handle and use.
No special quality paper for OMR sheets is required.
Reliable Accuracy (100%)and Processing Speed(40 OMR
sheets/min).
Overcomes heavy cost of dedicated OMR machine.
Table 1. Price range and scan sheet/min for an ordinary dedicated
OMR machine5000/- to
Price
40000/- to
2000/- to
> Rs. 2
Range
8000/90000/4000/Lacs
(Rs.)
Scan
10-15
Sheet/minu
te
40-80
80-100
So our PROBLEM STATEMENT
simplifies to
Given a directory/folder consisting of
scanned OMR sheets, evaluate and store the
data in an Excel Sheet making a proper
database which contains the details of the
student(as filled in the sheet) and the answers
marked by him/her
Sample OMR Sheet
Sample OMR Sheet
GUI
Developed by using Java. Swings were
implemented, since they are light weight
compared to applets.
For an OMR Sheet of New
Type
Before we proceed further into the technical
details, lets run a sample test for the software.
Fig. Sample OMR Result Spreadsheet generated using the Java and C
So far
We have fragmented the conventionally used
technology into two independent steps:
Creating folder of scanned OMR sheets
Recognition of filled bubbles in scanned OMR
sheets.
Methodology Adopted
DISCRETISATION OF THE PROBLEM
Registration of the images
Retrieval of the Region of Interest(ROI, region
where bubbles are present in an OMR sheet)
Detection of filled Bubbles in ROI
Storage of data in an excel file
GUI for an ordinary user
Platform Windows
Library OpenCV LibXL
Language C++ Java
REGISTRATION
Proper alignment of the image
After registration all images have:
-same size
-same position
-same orientation
Filled
Filled square
square boxes
boxes on
on each
each corner
corner
Filled
Filled square
square boxes
boxes on
on each
each
corner
corner
We first need to find the coordinates of the
vertices of the corner squares, which will help
us in registration
This was followed by determination of tilt
angle.
How To Detect Squares
Step 1 : Detect Contours
Based on similar grey value
angle1
ax
ay
Center
Sample Image Before
Rotation
Sample Image After Rotation
Sample
Sample Image
Image After
After Setting
Setting Region
Region of
of Interest
Interest
Our region of interest is :
The rectangular region that exactly bounds the
four filled squares on each of the corners of
the image.
This is extracted by simple cropping of the ROI
All our further work is restricted in this ROI
Detection of filled Bubbles in ROI
We created artificial rectangular regions which
approximately bound the elliptical bubbles.
These are shown as red colored boxes in the
next slide with corresponding mean grayscale
value in those regions written adjacent to
them.
The Question is how, where and of what size should
these artificial rectangular boxes be placed.?
Size : 32*28-----pixels;
Position : Center of each bubble=Center of artificial
rectangle
How do we know where is the center of the
bubble...???
.in the upcoming slides.
We know the relative position of each bubble
in the registered image.
All the bubbles are bound in the 6 sub answer
boxes. And the sub-answer boxes are
themselves bound in main answer box. So we
detect all these 7 contours.
Relative to each sub answer boxes, we use a
standard value of position of the bubbles.
Picture 7 contours
Method for recognising filled
bubbles
We have 30 questions and 4 options for each.
So total number of bubbles= 120.
1.Find mean grayscale value of 120 bubbles.
V(i) for i=1:120
2.Find minimum V(i) ,w
3.Find maximum V(i),W
4. A bubble is filled if
V(i)< w+ (W-w)*0.4;
5.A bubble is unfilled (or filled and erased) if
V(i)>w + (W-w)*0.6;
6. Else it is ambiguously filled and erased.
Histogram of grayscale value of
bubbles in an OMR Sheet(Ideal)
Ambiguity due to Erased Bubbles
Ambiguous Cases
Failure of Contour
Detection
What if we fail to detect the main answer box ?
2 cases:
-If we detect all the six sub answer boxes
inside the main answer box, then no
worries!!
?What if we do not detect any of the sub answer
boxes
Experiments
Robustly tested across Windows and Linux
Environment
Tested on more than 5 different laptops and PCs
Results verified 100% correct against 5000 OMR
sheets of B.Stat and M.Stat Examination of ISI
Kolkata,2011
Results matched against the output of OMR machines
Similar Detection of Contours and bubbles
are used to extract candidate information
such as Registration No, Test Code,
Category, Booklet No, Physical Disability.
Problems Faced
Corner Square Threshold, because of color overla
Not a
Square
Magenta
Contrast
Unfilled Information
Extended Applications
Automated Attendance marking
Lotteries
Voting
Product evaluation
Community Surveys
Consumer Surveys
Drawbacks of the Model
Requires installation of JRE, JDK toolkit and
addition of some DLL files in the system files.
Requires an automated scanner with good
speed for real-time application.
Future Scope
Improve of CPU utilization and run time. Right
now our program evaluates 1500 pre hour,
but implementing parallel and distributed
computing, we can reach 10,000 per hour.
We can extend it to scale to other formats of
OMR sheets also.
Our Takeaway
Team Work
Fostering qualities of mutual understanding and cooperation
Deeper knowledge in the field of Image Processing
Exposure to recent R&D projects and potential applications in Image
Processing
Project Gagan at ISRO Banglore
Project on Swarm Robotics at Ohama State University, USA
Exposure to different coding platforms and libraries
Java
Matlab
OpenCV
Pthreads.h
Libxl.h
Lots more but its not feasible to pen down all the experiences in a slide.
A tribute to Steve Jobs..
iDREAM
I Have A Dream Today..
Thank
You