基于DyHead和YOLOv11的错题自动切分系统
项目简介
集成动态头部检测与YOLOv11的智能错题识别系统,具备:
- DyHead检测器:高精度题目区域分割
- YOLOv11模型:5类错误符号识别(✕、/、✓̷、?、○)
- 智能匹配引擎:支持中心点包含/重叠面积/IOU/距离四重匹配策略
核心技术
双模型协同架构
| 模块 | 技术方案 | 精度指标 |
| 题目分割 | DyHead+Swim-Transformer | mAP@0.5: 98.2% |
| 错符检测 | YOLOv11-640 | F1-score: 96.5% |
四级匹配策略
- 中心点包含(优先级最高)
- 重叠面积占比 >30%
- IOU相似度 >0.25
- 欧氏距离 <50px(兜底方案)
快速部署
环境配置
# 安装PyTorch+CUDA11.8 pip install torch==2.4.1 torchvision==0.19.1 --index-url https://download.pytorch.org/whl/cu118 # 安装项目依赖 pip install -e detectron2 ultralytics flask pillow==9.5.0
模型部署
- 下载预训练模型:
- DyHead权重:[cut_question.pth](提取码r5ht)
- YOLOv11权重:[best.pt](提取码r5ht)
- 放置路径:
./configs/dyhead_swint_atss_fpn_2x_ms.yaml ./yolo_ckps/best.pt
启动服务
python flask_error_detection.py # 访问 http://localhost:5004
API接口文档
错题检测接口
Endpoint: POST /detect
请求示例:
curl -X POST http://localhost:5004/detect -F "image=@test.jpg"
响应示例:
{ "success": true, "data": { "error_count": 3, "questions": [ { "bbox": [100,50,200,150], "errors": [ { "type": "cuo", "confidence": 0.92, "match_method": "中心点包含" } ] } ], "visualization": { "errors_img": "base64...", "matches_img": "base64..." } } }
系统架构
Cut/ ├── core/ │ ├── dyhead_detector.py # 题目区域分割 │ └── yolo_detector.py # 错符检测 ├── utils/ │ ├── matcher.py # 四级匹配算法 │ └── visualization.py # 结果可视化 └── web/ ├── static/ # 前端资源 └── templates/ # HTML页面
效果演示
Web界面功能:
- 实时上传试卷图片
- 错题区域高亮标注
- 可下载切分后的错题图片集
![检测效果对比图]
左:原始试卷 | 右:错题标记与切分结果
📌 教育场景适配:支持A4/B5试卷、手写批改痕迹、多科目符号体