
1) 【一句话结论】系统通过“视觉特征+文本语义”双模态识别题型,先统一检测题号、选项框等通用视觉标识,再结合文本内容(如“选择”“填空”)和结构特征(如矩阵网格),分题型执行定制化处理(选择题匹配选项、填空题解析填空线、主观题分析段落)。
2) 【原理/概念讲解】老师会解释,OCR系统处理试卷时,不同题型有独特“视觉指纹”。比如选择题会有多个矩形选项框(A/B/C标签),填空题有横线或曲线填空线,主观题是连续段落。系统先用目标检测模型(如Faster R-CNN)检测这些视觉特征,再结合文本语义(如“选择”“填空”字样)确认题型。比如把试卷比作“带标签的文档”,先扫描标签(视觉特征),再读标签内容(文本语义),从而识别题型。
3) 【对比与适用场景】
| 题型 | 定义 | 核心处理步骤 | 关键特征 | 适用场景 | 新题型处理逻辑 |
|---|---|---|---|---|---|
| 选择题 | 有多个选项需匹配正确答案 | 1. 选项框检测<br>2. 选项文本识别<br>3. 答案勾选框检测<br>4. 选项匹配 | 矩形选项框、选项标签(A/B/C)、答案勾选框 | 标准化考试(如高考) | - |
| 填空题 | 有填空线需识别填入内容 | 1. 填空线检测<br>2. 填空提示语义分析<br>3. 文本识别 | 横线/曲线填空线、填空提示(如“请填空”) | 标准化考试(如数学填空) | - |
| 主观题 | 无固定格式需识别段落内容 | 1. 段落结构分析<br>2. 文本识别 | 段落边界、标点符号、段落长度 | 试卷主观题(如作文) | - |
| 矩阵题 | 行列结构(如矩阵题的行和列网格线) | 1. 网格结构检测(Mask R-CNN)<br>2. 行列识别<br>3. 单元格内容解析 | 行/列网格线、矩阵标签(如“1-1”“1-2”) | 数学矩阵题、逻辑矩阵题 | 用Mask R-CNN检测网格线,解析行列结构 |
4) 【示例】
def process_exam_page(image):
# 1. 预处理图像
preprocessed = preprocess(image)
# 2. 检测题号区域(通用特征)
question_areas = detect_question_areas(preprocessed)
# 3. 遍历题号区域,按顺序处理
for idx, area in enumerate(question_areas):
# 3.1 检测视觉特征(选项框/填空线/网格)
visual_features = detect_visual_features(area)
# 3.2 根据视觉特征判断题型
if "option_boxes" in visual_features: # 选择题
options = process_choice_question(area)
elif "filling_lines" in visual_features: # 填空题
fillings = process_filling_question(area)
elif "grid_lines" in visual_features: # 矩阵题
matrix_content = process_matrix_question(area)
else: # 主观题(默认)
subjective_content = process_subjective_question(area)
# 3.3 存储结果
results.append({"question_id": idx, "type": type, "content": result})
return {"questions": results}
def process_matrix_question(area):
# 1. 用Mask R-CNN检测网格线(行和列)
grid_lines = mask_rcnn_detect_grid(area)
# 2. 解析行列结构(如3行4列)
rows, cols = parse_grid_structure(grid_lines)
# 3. 识别每个单元格内容
cell_contents = []
for r in range(rows):
for c in range(cols):
cell_box = get_cell_box(area, r, c)
cell_text = ocr_text(cell_box)
cell_contents.append((r, c, cell_text))
return {"grid": (rows, cols), "cells": cell_contents}
5) 【面试口播版答案】面试官您好,针对试卷分析的多模态OCR系统,核心是通过“视觉特征+文本语义”双模态识别题型,先统一检测题号、选项框等通用视觉标识,再结合文本内容(如“选择”“填空”)和结构特征(如矩阵网格),分题型执行定制化处理。比如选择题会检测选项框并识别每个选项,同时检测答案勾选框匹配正确答案;填空题检测填空线并解析填入内容;主观题分析段落结构识别文本;对于新出现的矩阵题,用图形检测模型检测行列网格结构,解析单元格内容。这样能高效区分不同题型并分别处理。
6) 【追问清单】
7) 【常见坑/雷区】