✔ 종이 기반 시험(PBT)은 수기 채점이나 광학마크인식(OMR)을 활용하여 채점합니다.
✔ 수기 채점은 사람이 직접 채점하여 많은 인력과 시간이 소요되며 부정확합니다.
✔ OMR을 활용한 채점은 별도의 답안지 작성이 필요하여, 답안지 구매 비용을 부담해야 하고 단답식 문항은 채점할 수 없습니다.
종이 시험지에 표시된 답안을 객체 인식과 OCR을 활용하여 자동으로 문항을 인식하고 채점하는 AI 채점 소프트웨어를 개발했습니다.
- 시험지 원본 파일을 입력받으면 시험지 양식이 적용된 파일을 반환합니다.
- 사용자는 시험 정보를 입력하고 응시한 시험지를 스캔한 파일(.pdf)과 답 파일(.xlsx)을 업로드 합니다.
- ‘채점하기' 버튼을 통해 시험지 채점을 수행하여 채점 결과를 반환합니다.
- 채점 결과는 응시자가 시험지에 작성한 응시자 ID를 추출하여, 각 응시자의 문항별 응답과 정답 여부를 정오표 형태로 출력합니다.
- 사용자는 해당 데이터를 직접 추가, 수정, 삭제할 수 있으며, 엑셀 파일로 다운로드 할 수 있습니다.
- 채점 결과를 엑셀로 저장했을 때 화면입니다.
git clone https://github.com/Moment-Capture/Point-Checker.git
xargs sudo apt-get -y install < ./Backend/apt-requirements.txt
- Python 3.9 이상 환경에서 구동 가능합니다.
pip install -r ./Backend/requirements.txt
- Python 3.9 이상 환경에서 구동 가능합니다.
python3 app.py
git clone https://github.com/Moment-Capture/Point-Checker.git
pip install -r ./Frontend/requirements.txt
- Python 3.9 이상 환경에서 구동 가능합니다.
python main.py
- Tkinter GUI를 통해 사용자와 인터렉션
- Flask를 통해 서버와 통신
- Yolov8을 통해 객체 인식
- EasyOCR, Tamil-OCR을 통해 OCR
- pandastable로 생성된 엑셀 파일을 출력물로 전달
- 사전에 적용된 양식을 통해 응시자를 인식합니다.
- EasyOCR을 통해 사용자 아이디를 추출합니다.
- Yolov8으로 각 시험지의 문항 영역을 탐지하고 종류에 맞게 분류합니다.
- 사용한 라벨: multiple, multiple_cropped, subjective, subjective_cropped, q_mark, s_period, q_period
- Yolov8으로 잘린 문항을 분류하고, 일치하는 유형을 매칭합니다.
- 사용한 라벨: front_num, front_1, front_2, front_3, front_4, front_5, back_num, back_1, back_2, back_3, back_4, back_5, etc
- Yolov8으로 문항 번호와 선지를 인식합니다.
- Yolov8 라벨링 결과를 통해 선지를 분류합니다.
- EasyOCR을 통해 문항 번호를 추출합니다.
- 사용한 라벨: num, check1, check2, check3, check4, check5
- Yolov8으로 문항 번호와 답안을 인식합니다.
- tamil-ocr을 통해 필기 답안을 인식합니다.
- EasyOCR을 통해 문항 번호를 추출합니다.
- 사용한 라벨: num, answer
✔ 1부 30문항 기준 35초
✔ 5부 30문항 기준 207초
✔ 10부 30문항 기준 403초
✔ 문항 번호 인식 : 98 %
✔ 정답 인식 : 98 %
✔ 최종 인식 : 96 %
- 비용 절감 : 답안지 및 시험 채점을 위한 인건비, 시간, 비용을 절감할 수 있습니다.
- 환경 보호 : 답안지에 사용되는 종이 사용량을 줄여 환경 보호에 기여합니다.
- 다양한 사람들에게 응시 기회 제공: OMR 작성을 어려워 하는 어린이, 노인, 장애인에게 응시 기회를 제공합니다.