📝

答题卡智能批改系统

人工智能视觉课程设计 · 深圳职业技术大学 · 23智能2

OpenCV 全流程图像处理 · 透视校正 · 霍夫圆检测 · 自动判分 —— 不依赖深度学习的 CV 基本功

7
处理阶段流水线
5×5
题目 × 选项
0
深度学习依赖
100%
纯 OpenCV 实现

01项目概述

拍一张答题卡照片,系统自动完成从定位、校正到判分的完整阅卷流程。整条流水线只用 OpenCV + NumPy 的经典图像处理算法搭建——每一步的中间结果都可视化输出,判分依据可解释、可追溯,这正是它与"黑盒"深度学习方案最大的区别。

02处理流水线

原始照片 │ ▼ ① 灰度化② 高斯模糊③ Canny 边缘检测 │ ▼ ④ findContours + approxPolyDP ← 按面积排序,找四顶点轮廓即答题卡 │ ▼ ⑤ getPerspectiveTransform 透视校正 ← 歪拍的卡片摆正成正视图 │ ▼ ⑥ Otsu 自适应二值化⑦ 霍夫圆检测定位选项 │ ▼ 按行分组排序 → 填涂灰度比对 → 判分标注(对✓绿圈 / 错✗红圈)

03关键技术点

四顶点定位
轮廓按面积降序遍历,approxPolyDP 多边形逼近,首个四顶点多边形即答题卡边界
顶点排序
用坐标和 / 差值确定左上、右上、右下、左下顺序,保证透视矩阵方向正确
Otsu 二值化
自适应阈值应对光照不均,反色处理使填涂区域为白色前景
霍夫圆检测
HoughCircles 检出全部选项圆,按 y 坐标聚类分行、按 x 排序对应 A-E
填涂判定
统计每个圆内非零像素占比,每行取最大者为考生答案
可视化判分
正确答案画绿圈、答错处画红圈并标注,每题输出独立判分图

04运行效果

透视校正后的答题卡

歪斜拍摄的答题卡经透视变换校正为正视图

逐题判分结果

逐题判分输出:绿圈为正确答案位置,红圈标出答错项

05技术选型

模块技术
图像处理OpenCV(Canny / findContours / warpPerspective / HoughCircles)
数值计算NumPy 顶点排序与像素统计
可视化Matplotlib + GridSpec 多阶段结果展示
载体Jupyter Notebook,每阶段独立运行验证
这套系统展示的是传统计算机视觉的完整解题思路——在没有训练数据、算力受限或需要可解释性的场景里,经典图像处理往往是比深度学习更合适的答案。它与手势控制 PPT(关键点检测)、日语假名识别(CNN 分类)共同构成从传统 CV 到深度学习的完整视觉技术光谱。