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 0 255 Another way of classifying images: • Static image (single image) • Image sequence (movie) 3 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 1’s by 0’s and viceversa for the third image). Example of graylevel image 0 255 109 106 106 110 111 106 60 98 142 114 94 98 102 120 103 109 115 126 126 137 137 136 106 146 157 146 124 128 98 96 89 82 137 118 134 145 151 147 142 157 154 140 120 105 85 77 67 63 189 150 123 131 145 143 143 134 123 110 90 65 65 67 83 102 193 191 157 101 97 104 105 101 95 98 84 94 107 119 138 155 193 189 185 168 103 74 90 106 112 125 133 136 143 154 165 170 185 187 180 179 174 142 116 128 141 148 154 160 163 164 168 171 181 185 178 173 179 171 162 153 153 160 162 164 164 163 165 167 183 184 175 149 177 179 165 164 155 153 159 164 160 159 163 164 185 182 161 126 170 188 181 167 158 153 151 155 155 158 160 163 185 178 147 125 171 183 192 181 167 157 155 160 152 156 160 160 178 179 145 139 163 171 190 195 176 164 161 162 162 150 154 155 175 177 148 150 163 169 186 197 191 169 167 167 160 158 150 152 164 169 142 154 171 172 182 190 189 174 166 168 169 165 162 150 163 165 139 153 175 163 179 189 187 178 166 167 170 169 170 168 162 161 136 144 164 163 171 189 176 179 169 169 169 164 163 169 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 machine Price Range (Rs.) 5000/- to 8000/- Scan 10-15 Sheet/minute 40000/- to 90000/- 2000/- to 4000/- > Rs. 2 Lacs 40-80 2 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 code 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 Library Language Windows OpenCV C++ Java LibXL REGISTRATION Proper alignment of the image After registration all images have: -same size -same position -same orientation Filled square boxes on each corner Filled square boxes on each 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 Image After Setting Region of 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 overlap 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