open-mcr
open-mcr copied to clipboard
:pencil: Exam bubble sheet scorer. Created with OpenCV and Python.
Free and Open-Source Multiple Choice Exam Reader
Warning This software is imperfect and, as per the license, no warranty is implied. It usually works well, but there may be bugs. Please be sure to double check the results, particularly when working with low-quality scans.
Background
Commercially available OMR (optical mark recognition) exam sheets, scanners, and processing software can cost educators and educational institutions thousands of dollars per year. In response to this, OpenMCR has been developed as a free and easy-to-use alternative. The tool includes a multiple choice exam sheet and works with any scanner and printer.
This software and the corresponding multiple choice sheet were developed as an independent study project by Ian Sanders, a mechanical engineering student at the University of South Florida, under the direction of Dr. Autar Kaw.
For a detailed discussion of the algorithm and features in use, please read the report as submitted for the original independent study course.
Installation Instructions
Currently, installers are only provided for Windows. For other operating systems, see Running From Source.
Windows Installation
To install the utility, simply download the latest .exe
file from from the
releases page and
install it. After installation, check your Start menu for a shortcut.
Running Without Install
For users who cannot or do not want to install the software on their machine,
ZIP file packages are also available for each release. Download the file,
extract it anywhere on your machine, and run the main.exe
file. This method
does not require administrator priveleges.
Running From Source / CLI
If you wish to customize the software, use the command line interface, or run it on a non-Windows device, you can run the Python program directly from the source files. This requires Python and Pip to be installed on your machine.
- Clone the reposotory using Git, or download and extract the latest
Source code (zip)
file from releases. - Open a terminal / command prompt in the extracted directory.
- Run
pip3 install -r requirements.txt
(orpip
if that's the name of Python 3 Pip on your machine). - If you are using linux, you may also need to
apt install
python3-opencv
andpython3-tk
. - Run
python3 src/main.py
(orpython src/main.py
) for the CLI interface, or executesrc/main_gui.py
for the user interface.
Printable Multiple Choice Sheet
The multiple choice sheet that must be used with this software is available for printing here:
Usage Instructions
Run the program by finding it in your Start menu after installing.
For full operating instructions, see the Manual or click the Open Help button in the software.
Feedback / Bug Reports
To report a bug, request a new feature, or provide feedback, please file an issue.
License
Software License
Copyright (C) 2019 Ian Sanders
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
For the full license text, see license.txt.
Multiple Choice Sheet License
The multiple choice sheet distributed with this software is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International license (CC BY-NC-SA 4.0). In summary, this means that you are free to distribute and modify the document so long as you share it under the same license, provide attribution, and do not use it for commercial purposes. For the full license, see the Creative Commons website.
Note: You are explicitly allowed to distribute the multiple choice sheet without attribution if using it unmodified for educational purpose and not in any way implying that it is your own work. This is an exception to the Creative Commons terms.