首页 > 教程攻略 > ai教程 >基于深度学习和YOLOv11的错题自动切分系统

基于深度学习和YOLOv11的错题自动切分系统

来源:互联网 时间:2026-06-09 07:33:11

基于DyHead和YOLOv11的错题自动切分系统

先说说这个项目的核心思路:把动态头部检测和YOLOv11结合起来,做一个能自动识别错题的系统。它主要干三件事——用DyHead把试卷上的题目区域精确切出来,用YOLOv11识别五种常见的错误符号(✕、/、✓̷、?、○),最后通过一套四重匹配策略把错题和符号对应上。

核心技术

双模型协同架构

模块 技术方案 精度指标
题目分割 DyHead+Swim-Transformer mAP@0.5: 98.2%
错符检测 YOLOv11-640 F1-score: 96.5%

题目分割这块,DyHead搭配Swin-Transformer,mAP@0.5达到了98.2%,基本能精准框出每道题的范围。错符检测用的是YOLOv11-640,F1-score是96.5%,五类错误符号的识别率相当可观。

四级匹配策略

匹配策略是整个系统里比较有意思的部分。错题和错符怎么对应上?这里设计了四层方案,优先级从高到低排列:

  • 中心点包含(优先级最高)——如果错符中心落在题目框内,直接配对,简单粗暴但有效。
  • 重叠面积占比 >30%——中心点没包含进去?那就看两者重叠面积够不够大。
  • IOU相似度 >0.25——重叠面积还不达标?再算算交并比。
  • 欧氏距离 <50px(兜底方案)——前面都不行?那取距离最近的错符和题目,50像素以内就算匹配。

这套策略的好处是,几乎不会有漏匹配的情况出现。而且从实际测试来看,中心点包含方案能解决绝大多数场景——毕竟大多数错符都在题目区域内。后面三层更多是应对极端情况,比如错符正好写在题目边界上。

快速部署

环境配置

# 安装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

模型部署

下载预训练模型后,按照以下路径放置:

./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..."
    }
  }
}

接口返回的结果很清晰——错题数量、每道题的边界框、对应的错符类型和置信度,还有可视化结果图。base64编码的图片可以直接在前端展示,省去了额外的图片处理流程。

系统架构

Cut/
├── core/
│   ├── dyhead_detector.py  # 题目区域分割
│   └── yolo_detector.py    # 错符检测
├── utils/
│   ├── matcher.py          # 四级匹配算法
│   └── visualization.py   # 结果可视化
└── web/
    ├── static/             # 前端资源
    └── templates/          # HTML页面

架构设计很轻量,核心逻辑就四个文件:两个检测器、一个匹配器、一个可视化工具。Web层用Flask搭,前端资源直接挂在static目录下,部署起来没什么负担。

效果演示

Web界面支持实时上传试卷图片,系统会自动标注出错题区域,并且可以逐一切分下载。从实际效果来看,无论是A4还是B5试卷,手写批改痕迹还是印刷体符号,都能稳定处理。

![检测效果对比图]

左:原始试卷 | 右:错题标记与切分结果

教育场景适配:支持A4/B5试卷、手写批改痕迹、多科目符号体

这套系统在真实教育场景中已经跑通了一段时间。最让人省心的一点是,它不用对试卷做任何预处理——拍照上传就行。当然,如果试卷歪斜严重或者光线极差,建议先做一下预处理,这样检测精度会更高。