OMR checking software that can read and evaluate OMR sheets scanned at any angle and having any color. Independent for scanner or mobile camera. Just you need image!
Specs |
|
---|---|
💯 Accurate | Currently nearly 100% accurate on good quality document scans; and about 95% accurate on mobile images. |
💪🏿 Robust | Supports low resolution with Robust feature. |
⏩ Fast | Current processing speed without any optimization is 220 OMRs/minute. |
✅ Customizable | Easily custom OMR layouts. |
📊 Visually Rich | Visually rich console using. |
🎈 Lightweight | Very minimal and lightweight core code. |
🏫 Large Scale | Tested with Nokta Tek Egitim Kurumlari and Cozum Yenimahalle exams. |
You can contribute our project with TODO sections.
For example
Operating system: OSX or Linux is recommended although Windows is also supported.
To check if python3 and pip is already installed:
python3 --version
python3 -m pip --version
Install Python3
To install python3 follow instructions here
To install pip - follow instructions here
Install OpenCV
Any installation method is fine.
Recommended:
python3 -m pip install --user --upgrade pip
python3 -m pip install --user opencv-python
python3 -m pip install --user opencv-contrib-python
More details on pip install openCV here.
Extra steps(for Linux users only)
Installing missing libraries(if any):
On a fresh computer, some of the libraries may get missing in event after a successful pip install. Install them using following commands(ref):
sudo apt-get install -y build-essential cmake unzip pkg-config
sudo apt-get install -y libjpeg-dev libpng-dev libtiff-dev
sudo apt-get install -y libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install -y libatlas-base-dev gfortran
Clone the repo
git clone https://github.com/duhanguler/omr
cd omr/
Install pip requirements
python3 -m pip install --user -r requirements.txt
Note: If you face a distutils error in pip, use --ignore-installed
flag in above command.
- First copy and examine the sample data to know how to structure your inputs:
cp -r ./samples/sample1 inputs/ # Note: you may remove previous inputs (if any) with `mv inputs/* ~/.trash` # Change the number N in sampleN to see more examples
- Run program:
python3 main.py
Alternatively you can also use python3 main.py -i ./samples/sample1
.
Each example in the samples folder demonstrates different ways in which OMR can be used.