Write an automatic grading program

Assignment Help Python Programming
Reference no: EM132227545

Assignment - Image Processing and Recognition Basics

In this assignment, we recommend using either Python with the Pillow library, or C/C++ with the CImg library. No matter what language and library you use, make sure that your program obeys the input and output requirements (e.g., takes the right command line parameters in the right order, and creates the right output files) since we use testing scripts that automatically test your program.

The problem - In a major midwestern research university not far away, a mild-manner professor of computer science has a dream: a cheating-proof final exam that could be graded perfectly and effortlessly in has class of 100 students. He will first write 85 multiple-choice questions. Then he will write a Python program to randomly shuffle both the order of the questions and the order of the multiple-choice options within each question, creating 100 unique exam booklets. The first page of each exam booklet will be an answer sheet like that shown in Fig 1. The students will be asked to detach the answer sheet and turn it in after the exam. Unbeknownst to the students, each answer sheet will have a unique code printed on it that contains an encrypted copy of the correct answers for that particular answer sheet. After the exam, the instructor will scan all the answer sheets to produce 100 images, which he'll then run through a custom computer vision program to score the exams automatically. The grading program will simply read the code, decrypt the correct answers, recognize the student's marks on the answer sheet, and calculate how many questions have been answered correctly.

Your job is to write an automatic grading program that will work as well as possible. Given a scan of the answer sheet like that shown in Fig 1., your program should identify the answers that the student marked as accurately and robustly as possible.

What to do

1. You can find your assigned teammate(s) by logging into IU Github. In the upper left hand corner of the screen, you should see a pull-down menu. Select cs-b657-sp2019. Then in the yellow box to the right, you should see a repository called userid1-userid2-userid3-userid4 -a1, where the other user ID(s) corresponds to your teammates.

2. While you may want to do your development work on a local machine (e.g. your laptop), remember that the code will be tested and thus must run on the CS Linux machines. After logging on to that machine via ssh, clone the github repository, where your-repo-name is the one you found on the GitHub website above. (If this command doesn't work, you probably need to set up IU GitHub ssh keys. See Piazza for help.) This should fetch some test images and some sample code (see the Readme file in the repo for details).

3. Now write a program that accepts a scanned image file of a printed form like that in Fig 1, and produces an output file that contains the student's marked answers.

4. Finally, devise a system for printing the correct answers on the answer sheet in some way so that your grading program can read them, even after the answer sheet is printed and scanned. There are many possible ways of doing this; you might add some textual annotations, or add some form of bar code, or a watermark, or some other pattern. Whatever system you adopt should not reveal the correct answers to the students.

Explain your technique in detail in your report (see below). Try to make your technique robust enough to be detectable even after the image has been printed, filled in by a student, and then scanned into an image file. We've provided a blank form called blank form.jpg for you to do some experimentation along these lines, and please report about these experiments in your report.

Attachment:- Assignment Details.rar

Attachment:- Assignment Files.zip

Reference no: EM132227545

Questions Cloud

Identify the organization vision and core principles : Identify the organization's vision and core principles. Evaluate the organization's approach to practice transformation and consumer engagement.
Discuss about the free-standing agency model : State agencies typically follow one of two general structure models: the free-standing agency model or the super agency model. What are the pros and cons.
Why does bacteria and white blood cell casts in her urine : Why does she have bacteria and white blood cell casts in her urine? Include the pathophysiological response of body for your analysis.
Review problem on life cycle of a health information : System includes the replacement of the information system currently in place for the electronic health record in the hospital and associated provider offices.
Write an automatic grading program : B657 Assignment - Image Processing and Recognition Basics. Write an automatic grading program that will work as well as possible
Automated data processing provides computer software : Automated Data Processing (ADP) provides computer software and services to a host of companies, including automobile dealerships.
Generally referred to as organization development : The process of ‘people change’ in an organization is generally referred to as ‘Organization Development’ (OD).
Dscribe a hot topic related to each focus area : Analyze the importance of each focus area in health care today. Identify and describe a hot topic related to each focus area.
What has your personal experience been with no-show policies : What has your personal experience been with no-show policies in Medical practices?

Reviews

len2227545

2/4/2019 9:19:06 PM

Note - Please use Jupyter notebook. Please do it with explanation attached is the test-images, we recommend using either Python with the Pillow library, or C/C++ with the CImg library. No matter what language and library you use, make sure that your program obeys the input and output requirements below (e.g., takes the right command line parameters in the right order, and creates the right output files) since we use testing scripts that automatically test your program. If you have any questions about any of this, please ask the course staff.

len2227545

2/4/2019 9:19:01 PM

This assignment is purposely open-ended. How should you go about it? It's up to you, but here are a few ideas. You could use edge detection and Hough transforms to try to find the alignment of the form within the page. You could use segmentation to find blobs of ink. You could use differences in color to separate ink from the printed form. You could use a cross correlation to find local image regions of interest {filled-in squares, or empty squares, or letters. It's probably much easier to figure question numbers by their position on the page as opposed to trying to actually recognize the question numbers through optical digit recognition.

len2227545

2/4/2019 9:18:55 PM

Evaluation. To help you evaluate your code, we've provided some test images. These are actual scans of completed test sheets, which means that they have some natural variation {slightly different positions and orientations within the image caused by the imperfect paper feeder of the scanner, variations in the ink and style across different students, etc. You can assume that these images are quite representative of the types of variations that would occur in real life; i.e., your program should try to handle these types of variations as much as possible, but we don't expect it to handle extreme cases (like answer sheets that were scanned upside down, etc). Your program only has to work for this one particular format of answer sheet, i.e., for question 3 you can assume all the answer sheets were printed identically.

len2227545

2/4/2019 9:18:50 PM

Please use these images to evaluate the accuracy of your program and present these results in your report (see below). We've included two text files that have the expected (ground truth) output for two of the test images (and you can create your own ground truth files for the others). This provides an easy way to quantitatively evaluate your program, by simply comparing your output to the ground truth output file. You can write a simple python program to count the number of lines that two files have in common, or you can use a Linux command.

len2227545

2/4/2019 9:18:45 PM

Report - An important part of developing as a graduate student is to practice explaining your work clearly and concisely, and to learn how to conduct experiments and present results. Thus an important part of this assignment is a report, to be submitted either as a PDF or as a Readme.md file in GitHub (which allows you to embed images and other formatting using MarkDown). Your report should explain how to run your code and any design decisions or other assumptions you made. Report on the accuracy of your program on the test images both quantitatively and qualitatively. When does it work well, and when does it fail? Give credit to any source of assistance (students with whom you discussed your assignments, instructors, books, online sources, etc.). How could it be improved in the future?

len2227545

2/4/2019 9:18:36 PM

Note that even if your code performs very poorly, you can still write an interesting report that explains what you tried, what the advantages and disadvantages of that approach are, why you think it didn't work, etc. You can think of the report a bit like an argument for why you deserve a good grade on the assignment.

Write a Review

Python Programming Questions & Answers

  Design a GUI program that uses the data in the text file

CSP1150/CSP5110 Programming Principles Assignment - Programming Project, Edith Cowan University, Australia. Design and implement two related programs

  Solve the puzzle by using breadth-first tree or graph search

CISC 339 Aritificial Intelligence Group Project. Formulate the problem precisely. Solve the puzzle by using breadth-first tree or graph search

  Write a progra m that creates two objects

Write a progra m that creates two objects, object of the ProductionWorker class and an object of ShiftSupervisor r class.

  Write a function to evaluate returns the area

Write a function called area_triangle() that takes the height and width of a triangle and returns the area

  Read and analyse the ice cream weekly sales data

ICT702 - Data Wrangling - university of sunshine coast - Below Zero - ice cream store - read and analyse the ice cream weekly sales data and generate various

  Write a modularized body mass index program

Write a modularized Body Mass Index (BMI) Program which will calculate the BMI of a team player. The formula to calculate the BMI is as follows: BMI = Weight *703 / Height^2.

  Create a chat application consisting of a chat client

CS3560 Project – Chatroom - Create a Chat application consisting of a chat client and a chat server. The client and server must be written in Python and must

  Design a GUI to display values using Tkinter

Need to design a GUI to display values using Tkinter which is satisfactory. Fix coding problem - my program continually slows down on every iteration

  Read and analyse the child mortality data

ICT702 - Your task is to investigate mortality levels of children, infants and babies around the world. Which countries have a high rate of child deaths

  Draw nassishneiderman diagram

Draw NassiShneiderman (NS) diagram/s that present the steps of the algorithm required to perform the task specified

  Create a Python program to implement Stack ADT

Create a Python program to implement Stack ADT using both Lists and Linked Lists that includes the following operations: To add a data element in the stack.

  Write a python code for project named virtual election booth

Voter generates a pair of private and public keys - for the purpose of digital signature. Voter uses his private key to sign his request and the public key.

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd