最新YOLO实现的血细胞实时检测平台(Flask+SocketIO+HTML/CSS/JS)
摘要
本文面向“血细胞实时检测与可视分析”,实现了基于 Flask + Flask-SocketIO / HTML / CSS / JS 的 Web 网页界面,后端集成 YOLOv5–YOLOv12(共 8 种) 检测器并统一评测接口;同时开放数据与代码下载,提供“网页端实时演示”。平台支持 图片 / 视频 / 浏览器摄像头 输入,前端提供 即时双画面对比(原图与检测图并排)与 进度控制(视频与流式任务的暂停/继续/停止/进度拖拽),并可 CSV 导出单帧与整段统计、带框结果一键下载(图像/视频叠框)与 SQLite 入库 以支撑记录溯源。系统实现 登录/注册(可跳过) 的轻量会话管理、模型选择/权重上传 的热切换与类别同步刷新;训练与评测页面对比 mAP、F1、PR 曲线、训练曲线 等核心指标,面向血细胞小目标、密集遮挡与类间相似的困难场景给出可复现实验。为便于部署,前端线程安全推送、后端异步队列与缓存加速协同,支持 ONNX/TensorRT 推理与多设备切换。文末提供完整工程与数据集下载链接。
讲解视频地址:https://www.bilibili.com/video/BV17sQFBoEmt/
文章目录
1. 网页功能与效果
(1)登录注册:提供登录、注册与一次性跳过三种入口,跳过仅对当次会话生效,登录/注册成功后全站启用个性化配置与历史记录。口令采用哈希与最小化存储策略,前端仅持有必要令牌;异常登录与多端并发将触发会话刷新与提示。支持忘记密码与基础资料修改,确保便捷体验与基本安全边界。
(2)功能概况:系统以“多源输入—推理—可视化—导出—入库”闭环组织交互,统一支持图片、视频与浏览器摄像头。核心能力包含左右等宽的双画面对比、参数调节(Conf/IoU、类别筛选)、CSV 导出与带框结果一键下载,并将检测记录落入 SQLite 以便溯源。前后端通过SocketIO维持低延迟推送,保障实时可用。
(3)视频检测:播放器内实现同步双帧展示(原始帧/检测帧)与 16:9 自适应布局,支持进度拖拽、暂停、继续与停止的全流程控制。批量视频任务可顺序或并行排队,进度条与剩余时长估计在界面内联呈现。推理过程中可动态调整阈值与类别白/黑名单,完成后可一键导出带框 MP4 与逐帧 CSV。
(4)更换模型:上传权重即可切换当前 YOLO 模型,类别面板与配色方案同步刷新;系统缓存最近使用的多套权重以便快速回滚。模型切换在会话级生效,并记录到审计日志与数据库以保障可追溯。路径规范跨平台兼容,结构升级自动迁移,减少维护成本。
(5)概览界面:首页聚合关键指标与最近任务,包括样本数、推理耗时分布、mAP/F1 快照与最近导出列表,并支持按文件名或时间快速高亮定位。常用入口以卡片形式展示(图片检测/视频检测/摄像头检测/导出中心/模型管理),新手可按引导完成首个检测。全局通知区用于展示设备状态与推理后端健康度,确保运维信息透明可见。
2. 绪论
2.1 研究背景与意义
血细胞计数与分类是临床检验的基础性工作,人工镜检在效率、一致性与可追溯性方面存在不足,促使面向数字显微图像的实时目标检测成为可行替代方案。公开的 BCCD 等带标注数据集为算法原型验证与对比评测提供了基础,使得小样本条件下的快速迭代成为可能 [1]。在系统侧,浏览器端的 WebGPU 推理为“所见即所得”的交互式临床/教学应用降低了端到端时延,并与后端服务解耦以增强隐私与弹性扩展 [2]。在算法侧,YOLO 家族凭借单阶段与工程友好特性长期主导实时检测赛道,其中 YOLOv10 通过一致性分配与去 NMS 训练显著压缩后处理延迟,进一步拉开了速度–精度边界 [3];Ultralytics 发布的 YOLO11 在解耦头与训练/部署链路上做了工程化强化,改善了多端部署与易用性 [4];最新的 YOLOv12 以注意力为核心重构关键模块,在保持实时性的同时提升 COCO AP 与 GPU 端到端速度,为密集小目标的血细胞场景提供了新的折中点 [5]。
2.2 国内外研究现状
针对血涂片显微图像中“小目标占比高、密集遮挡、类间相似、光照/染色变化大”的难点,研究者在 YOLOv5 框架中引入注意力与特征融合以增强拥挤区域的细粒度表征,并在拥挤区域的漏检与误检上取得稳定改进 [6]。中文领域面向血细胞的工程化实践逐步增多,例如在 YOLOv8 框架下完成从数据预处理到系统搭建的端到端流程,报告在验证集上的高精度与良好可复现性,为科室级应用提供了可参考范式 [7]。进一步的结构定制如 NBCDC-YOLOv8 通过对遮挡、密集与不均匀分布的针对性改造,在保证实时性的前提下提升了鲁棒性与召回率 [8];SST-YOLOv5s 结合小目标检测头与多头注意力,在医学细胞数据上同时提升 mAP@0.5 与 mAP@0.5:0.95,并控制推理延迟以满足在线需求 [9]。从范式演进看,Faster R-CNN 等两阶段方法依托候选区在上限精度与可解释性上具有传统优势,但在边缘设备与网页交互情境中延迟偏高 [10];SSD 以多尺度特征与默认框奠定了实时检测的重要基线 [11];RetinaNet 借助 Focal Loss 缓解正负样本失衡,提升了密集检测的鲁棒性 [12];Anchor-free 路线如 FCOS 与 CenterNet 简化锚框超参并改善尺度泛化,更契合细胞尺寸分布差异大的场景 [13][14]。以 YOLO 为主线的工程化演进尤为活跃:YOLOv7 强化了解耦头与“免费技巧”训练,维持了实时范围内的高 AP [15];PP-YOLOE 通过 Anchor-free 与 TAL 分配等策略提升工业落地体验 [16];端到端 Transformer 检测器 RT-DETR 在 T4 上实现了 100 FPS 级别并维持 50+ AP,显示免 NMS 范式在实时场景的可行性,但其训练复杂度与极小目标适配仍需结合应用权衡 [17]。在部署与系统策略上,TensorRT/ONNX 的图融合、量化与算子优化可显著降低 GPU 侧时延,前端可选用 ONNX Runtime Web 的 WebGPU EP 运行轻量模型,而后端以 Flask-SocketIO 维持低时延双向通信以满足同步双帧与参数联动的 UI 需求 [18][2][19]。
方法对比(节选)
(指标摘自各自论文或官方页面,仅用于把握速度—精度—易部署的权衡)
| 方法 | 范式/家族 | 数据集 | 关键改进 | 优势与局限 | 关键指标 | 适用场景/难点 |
|---|---|---|---|---|---|---|
| YOLOv12-N | 单阶段/YOLO | COCO | 注意力为核心的高效模块、R-ELAN、低延迟实现 | 小模型 AP↑ 且 GPU 延迟≈毫秒级;注意力带来一定实现复杂度 | 文献报告 AP↑、延迟≈1.6 ms 级 [5] | 显微小目标、密集遮挡 |
| YOLOv10-S | 单阶段/YOLO | COCO | 去 NMS 训练与一致性分配 | 显著降低后处理瓶颈;结构精简 | 同等 AP 下较部分实时 DETR 更快 [3] | 视频实时流、边缘端 |
| RT-DETR-R50 | Transformer/端到端 | COCO | 高效混合编码器与不确定性最小查询 | 免 NMS、速度与精度兼顾;训练相对复杂 | AP≈53,T4≈百 FPS [17] | 端到端一致性需求 |
| YOLOv7-E6 | 单阶段/YOLO | COCO | 训练免费技巧、解耦头 | 实时范围内高 AP;参数量较大 | 官方报告高 AP 与中高 FPS [15] | 准实时/离线高精 |
| PP-YOLOE-L | 单阶段/Anchor-free | COCO | CSPRepResStage、ET-Head、TAL | 工程部署友好、高 FPS | AP≈51,V100≈78 FPS [16] | 工程落地 |
| SST-YOLOv5s | 单阶段/YOLO | 医学细胞 | 小目标检测头 + 多头注意力 | mAP 与 mAP50-95 同步提升;低延迟 | 文献报告 mAP 提升与≈毫秒级延迟 [9] | 小目标密集 |
| AYOLOv5 | 单阶段/YOLO | 血细胞 | 注意力 + 特征融合 | 拥挤区域鲁棒性更好;实现复杂度↑ | 文献报告拥挤区域识别更稳健 [6] | 遮挡与相似性 |
| YOLOv8(血细胞) | 单阶段/YOLO | BCCD/工程 | 端到端流程与部署实践 | 易复现、适配度高 | 验证集高精度(文献报告) [7] | 科室级应用 |
2.3 要解决的问题及其方案
本研究面临四类核心问题:其一,血细胞在视野中以小目标与密集遮挡为主,且不同细胞亚型形态相近,易造成漏检与误检累积;其二,临床工作流要求端到端极低延迟,需要同时覆盖视频流与批量图像;其三,不同显微镜、染色方案与采集规范带来域移,影响模型泛化;其四,Web 侧的人机交互需在双画面对比、参数可调、导出入库与权限会话上形成闭环。对应地,本文方案为:以 YOLOv12/YOLO11/YOLOv10 为核心对比基线,结合小目标检测头、注意力与标签分配策略优化以提升 F1 与 PR 表现 [5][4][3];后端采用 PyTorch 推理并导出 ONNX/TensorRT 以获取 FP16/INT8 的图优化与算子加速,前端可选 WebGPU 推理并以 Flask-SocketIO 建立低时延双向通道,形成“图像/视频/摄像头—推理—可视—导出”的闭环 [18][2][19];在数据侧通过数据增强、迁移学习与难例回流提高跨域鲁棒性,并以 SQLite 结构化入库实现可追溯与审计支撑 [20]。
2.4 博文贡献与组织结构
本文贡献体现在四个方面:其一,系统化整合 YOLOv5–YOLOv12 与 RT-DETR 等代表性算法,并围绕血细胞小目标与密集遮挡给出可复现的速度–精度评估与工程建议 [5][17];其二,提出“后端 TensorRT/ONNX 加速 + 前端 WebGPU 可选推理 + Flask-SocketIO 实时交互”的工程路线,覆盖图片、视频与摄像头三类输入 [18][2][19];其三,提供 CSV/带框结果导出与 SQLite 入库的闭环机制,支持结果溯源与二次分析 [20];其四,从 mAP/F1/PR、训练曲线与误差分析三方面沉淀对血细胞检测的结构化经验。全文组织为:第 3 章介绍数据集处理与增强规范;第 4 章阐述模型原理与设计;第 5 章报告实验与分析;第 6 章给出系统设计与实现;第 7 章总结与展望。
3. 数据集处理
本研究采用血涂片显微图像数据集,共 8900 张,标注采用 YOLO 格式(x,y,w,h 归一化到[0,1]),从你提供的联合分布图可见目标中心在视野中分布均衡,width/height 峰值集中在小尺度区间,符合红细胞与血小板“数量多、尺寸小”的先验;样例拼图显示存在遮挡、形变与染色差异等困难场景。类别共 20 类,中文清单为:嗜碱细胞、刺状红细胞、椭圆形红细胞、嗜酸细胞、红细胞前体、低色素症、淋巴细胞、大细胞、小细胞、单核细胞、中性粒细胞、椭圆细胞、血小板、红细胞、裂片细胞、球形细胞、口形细胞、靶细胞、泪滴细胞、白细胞(与英文标注一一对应)。标注以单框检测为主,未引入实例分割,便于后续统一与 YOLOv5–YOLOv12 的检测头接口。
Chinese_name = {"Basophil": "嗜碱细胞", "Echinocytes": "刺状红细胞", "Elliptocyte": "椭圆形红细胞",
"Eosinophil": "嗜酸细胞",
"Erythroblast": "红细胞前体", "Hypochromia": "低色素症", "Lymphocyte": "淋巴细胞",
"Macrocyte": "大细胞",
"Microcyte": "小细胞", "Monocyte": "单核细胞", "Neutrophil": "中性粒细胞", "Ovalocyte": "椭圆细胞",
"Platelet": "血小板", "RBC": "红细胞", "Schistocyte": "裂片细胞", "Spherocyte": "球形细胞",
"Stomatocyte": "口形细胞", "TargetCell": "靶细胞", "Teardrop": "泪滴细胞", "WBC": "白细胞"}

数据划分遵循可复现实验原则,固定随机种子(seed=42)并保持患者/载玻片级别不泄漏,得到 训练 6587 / 验证 1869 / 测试 444 张的拆分;验证集用于阈值与超参调优,测试集仅作最终报告。基于你给出的可视化与样例,类别分布呈明显长尾:红细胞与血小板样本占比较高,白细胞各亚型相对稀缺;因此评估除 mAP 外,同步关注 F1、PR 曲线与类别级混淆矩阵,并在导出视图中对小样本类设置高亮,避免平均指标掩盖临床关心的稀有细胞。
预处理与增强方面,为适配显微成像的域差异与小目标密集特性,训练阶段采用颜色标准化(Macenko/简单 Reinhard 取其一)、随机色偏与曝光抖动(±10–15%)、轻度高斯模糊/噪声以模拟成像噪点;空间增强采用随机缩放与平移、水平/垂直翻转、随机旋转(±15°)、Mosaic/Copy-Paste 用于提升小目标召回并增加遮挡多样性;多尺度训练在 {960, 1024, 1152, 1280} 中随机采样,保证特征金字塔对不同放大倍数的鲁棒性。标注清洗包含:去除异常框(w/h<0.005 或 >0.9)、合并重叠高 IoU 重复框、统一类别别名;训练前对长宽比分布做分桶,以自适应锚框/解耦头尺寸;推理阶段统一归一化与颜色增益关闭,确保评测一致。以上策略分别对应本文任务难点:颜色与染色差异通过颜色标准化与抖动对冲,尺度差异通过多尺度与自适应锚/无锚策略覆盖,遮挡与密集通过 Mosaic/Copy-Paste 与小目标优先采样提升召回,反光与噪点通过轻度模糊/噪声增强提升鲁棒性。
4. 模型原理与设计
本文以 YOLOv12 为主线构建血细胞实时检测器,并在工程上兼容 YOLOv5–YOLOv11 的统一推理接口。整体仍遵循“轻量骨干—多尺度特征融合—解耦检测头”的单阶段范式:骨干网络以可分离卷积与跨阶段残差为主,兼顾感受野与算力友好;颈部采用金字塔/双向融合以聚合不同尺度的上下文,显著增强对 小目标与密集遮挡 的鲁棒性;头部解耦为分类分支与回归分支,默认 Anchor-free 形式直接回归中心点与四边形边界。面向血细胞任务,博主启用四尺度输出(含 P 2 P_2 P2 高分辨率层)以覆盖血小板与细小红细胞;对大粒度白细胞保留 P 4 / P 5 P_4/P_5 P4/P5 的低分辨率特征,从而在一次前向中兼顾召回与精度,避免多次分辨率切换带来的端到端延迟。
结构层面,YOLOv12 在颈部与检测头处引入轻量注意力与可学习融合权重,以更好地区分“形态相近”的细胞类型。多尺度融合采用归一化加权形式:
P ~ = ∑ i w i ⋅ U i ∑ i w i + ε , w i = R e L U ( a i ) \tilde{P}=\frac{\sum_{i} w_i \cdot U_i}{\sum_{i} w_i+\varepsilon},\quad w_i=\mathrm{ReLU}(a_i) P~=∑iwi+ε∑iwi⋅Ui,wi=ReLU(ai)
其中 U i U_i Ui 为自上/自下采样并对齐后的特征, w i w_i wi 为可学习的非负权重, ε \varepsilon ε 防止分母为零;该式使网络在不同视野质量下自适应分配信息来源。注意力采用标准多头点积自注意力(在通道/空间的轻量化变体),其核心为
A t t n ( Q , K , V ) = s o f t m a x ! ( Q K ⊤ d k ) V \mathrm{Attn}(Q,K,V)=\mathrm{softmax}!\left(\frac{QK^{\top}}{\sqrt{d_k}}\right)V Attn(Q,K,V)=softmax!(dkQK⊤)V
其中 Q , K , V Q,K,V Q,K,V 来自同一特征的线性映射, d k d_k dk 为键向量维度;该模块在拥挤区域内强化细粒度纹理与边界,从而缓解红细胞重叠与白细胞核质相似带来的混淆。检测头采用解耦设计:分类分支仅感知类别判别信息,回归分支聚焦几何位置,二者在推理阶段以 IoU-aware 方式合成目标度,减少后处理抖动。网络整体架构图如下图所示:
任务建模与损失方面,定位采用 IoU 家族损失,默认 CIoU/EIoU 自适配以提升小目标框的稳定性:
L ∗ C I o U = 1 − I o U + ρ 2 ( b , b ^ ) c 2 + α v , \mathcal{L}*{\mathrm{CIoU}}=1-\mathrm{IoU}+\frac{\rho^2(b,\hat{b})}{c^2}+\alpha v, L∗CIoU=1−IoU+c2ρ2(b,b^)+αv,
其中 I o U \mathrm{IoU} IoU 为预测与标注框交并比, ρ ( ⋅ ) \rho(\cdot) ρ(⋅) 为框中心距离, c c c 为最小外接框对角线长度, v v v 衡量宽高比一致性, α \alpha α 为权重;当形状差异较大时,改用
L ∗ E I o U = 1 − I o U + ρ 2 ( b , b ^ ) c 2 + ( w − w ^ ) 2 w ^ 2 + ( h − h ^ ) 2 h ^ 2 , \mathcal{L}*{\mathrm{EIoU}}=1-\mathrm{IoU}+\frac{\rho^2(b,\hat{b})}{c^2}+\frac{(w-\hat{w})^2}{\hat{w}^2}+\frac{(h-\hat{h})^2}{\hat{h}^2}, L∗EIoU=1−IoU+c2ρ2(b,b^)+w^2(w−w^)2+h^2(h−h^)2,
显式约束宽高回归,使密集小目标不因尺度微扰而损失稳定性。分类采用 Focal Loss 缓解长尾与易混类别:
L ∗ f o c a l = − α t ( 1 − p t ) γ log p t , \mathcal{L}*{\mathrm{focal}}=-\alpha_t(1-p_t)^{\gamma}\log p_t, L∗focal=−αt(1−pt)γlogpt,
其中 p t p_t pt 为正类概率、 α t \alpha_t αt 为类不平衡权重、 γ \gamma γ 为难例聚焦因子(常取 1 ! ∼ ! 2 1!\sim!2 1!∼!2);正负样本分配使用 任务对齐 规则,综合分类分数与 IoU 对每个 GT 选择前 k k k 个候选,既稳定训练又兼顾召回。最终多任务目标为
L = λ ∗ b o x L ∗ I o U + λ ∗ c l s L ∗ f o c a l , \mathcal{L}=\lambda*{\mathrm{box}}\mathcal{L}*{\mathrm{IoU}}+\lambda*{\mathrm{cls}}\mathcal{L}*{\mathrm{focal}}, L=λ∗boxL∗IoU+λ∗clsL∗focal,
其中 λ ∗ b o x , λ c l s \lambda*{\mathrm{box}},\lambda_{\mathrm{cls}} λ∗box,λcls 分别控制定位与分类的权重,实际训练中对稀有白细胞亚型上调 λ c l s \lambda_{\mathrm{cls}} λcls 以提升临床关心类别的可见度。
训练与正则化方面,为适配“实时 + 网页交互”,采用 Cosine 学习率日程
η t = η min + 1 2 ( η max − η min ) ( 1 + cos ( π t / T ) ) , \eta_t=\eta_{\min}+\tfrac{1}{2}(\eta_{\max}-\eta_{\min})\bigl(1+\cos(\pi t/T)\bigr), ηt=ηmin+21(ηmax−ηmin)(1+cos(πt/T)),
其中 η max , η min \eta_{\max},\eta_{\min} ηmax,ηmin 为最大学习率与余弦退火下界, t / T t/T t/T 为训练进度;配合 EMA 模型、标签平滑、小批量同步 BN 与随机深度抑制过拟合。数据端启用 Mosaic / Copy-Paste / 多尺度训练,其对应关系为:Mosaic 增强遮挡鲁棒性,Copy-Paste 提高小目标召回,多尺度缓解不同放大倍数与视野尺寸带来的域移。推理阶段采用 DIoU-NMS 或轻量 NMS-free(若选用端到端头),置信度/IoU 阈值在验证集网格搜索以兼顾召回与误报;对显著重叠的红细胞簇可选 Soft-NMS 降低抑制过度的风险。整体设计在保证 <50 ms/帧 的同时提升对小目标与相似类别的区分度,并与前端的“同步双帧 + 阈值热调 + 类别筛选”无缝衔接。
5. 实验结果与分析
本节在 RTX 3070 Laptop 8 GB 上统一评测 YOLOv5–YOLOv12 的小型与轻量型号(n/s 系列),计时口径区分 Pre/Inf/Post 三段并给出端到端时延(Pre+Inf+Post)。从整体趋势看,n 系列中 YOLOv10n 的 mAP50=0.832 位列第一,而 YOLOv7-tiny 的 F1=0.796 最高,但端到端 21.08 ms 相对较慢;在速度-精度折中上,YOLOv8n 以 10.17 ms 取得 mAP50=0.829 / F1=0.766,是“网页实时演示(≥90 FPS)”更稳妥的选择。
s 系列中 YOLOv7 的 mAP50=0.868 / F1=0.829 居前,但时延 29.52 ms;若更看重前端流畅度,YOLOv8s 在 11.39 ms 下获得 mAP50=0.865 / F1=0.797,而 YOLOv11s 以 13.47 ms 取得 F1=0.822 / mAP50=0.861,综合表现均衡。训练曲线显示各模型约在 80–100 epoch 进入平台期(mAP50 持续缓慢爬升),验证了增强策略与学习率日程的稳定性;平均 PR 曲线表明 YOLOv10n/YOLOv11s/YOLOv12s 在高召回段的精度保持更好,误检控制相对稳定。F1–Confidence 曲线的全类加权最优阈值约在 0.54±0.02,因此网页端默认阈值设为 0.55 更能兼顾召回与误报(界面仍支持热调)。
类别层面观察源自混淆矩阵:多数白细胞亚型(如 Basophil/Eosinophil/Neutrophil)对角强(≥0.95),但 Microcyte/Teardrop/Echinocytes 的召回明显偏低(如 Microcyte≈0.61、Teardrop≈0.73),主要受小目标、形态近似与染色差异影响;RBC 与 background 在高密度区域存在残余混淆,建议部署时启用 Soft-NMS 或对 RBC 设定轻度面积先验,并在数据侧加入难例回流与类均衡采样以提升稳定性。综合工程考量,推荐线上首选:图片与摄像头实时演示用 YOLOv8n/s(时延最低、指标接近最优),视频离线或需要更高 AP 的科室复核用 YOLOv10n 或 YOLOv11s/YOLOv12s;若后处理成为瓶颈,优先选择 YOLOv10n/s(更低 PostTime)。
图 5-1 双条形图(n 系):F1 与 mAP50 对比

颜色:蓝(F1)、橙(mAP50);仅作对比示意,精确数值见下表。
图 5-2 双条形图(s 系):F1 与 mAP50 对比
综合对比表
| 模型 | Params(M) | FLOPs(G) | 端到端时延(ms) | Precision | Recall | F1 | mAP50 | mAP50-95 |
|---|---|---|---|---|---|---|---|---|
| YOLOv5nu | 2.6 | 7.7 | 10.94 | 0.760 | 0.733 | 0.746 | 0.809 | 0.618 |
| YOLOv6n | 4.3 | 11.1 | 10.34 | 0.674 | 0.671 | 0.673 | 0.735 | 0.551 |
| YOLOv7-tiny | 6.2 | 13.8 | 21.08 | 0.835 | 0.760 | 0.796 | 0.811 | 0.601 |
| YOLOv8n | 3.2 | 8.7 | 10.17 | 0.788 | 0.745 | 0.766 | 0.829 | 0.638 |
| YOLOv9t | 2.0 | 7.7 | 19.67 | 0.782 | 0.740 | 0.761 | 0.782 | 0.592 |
| YOLOv10n | 2.3 | 6.7 | 13.95 | 0.783 | 0.737 | 0.759 | 0.832 | 0.647 |
| YOLOv11n | 2.6 | 6.5 | 12.97 | 0.796 | 0.724 | 0.758 | 0.794 | 0.606 |
| YOLOv12n | 2.6 | 6.5 | 15.75 | 0.779 | 0.732 | 0.755 | 0.827 | 0.638 |
| YOLOv5su | 9.1 | 24.0 | 12.24 | 0.838 | 0.803 | 0.820 | 0.864 | 0.676 |
| YOLOv6s | 17.2 | 44.2 | 12.26 | 0.734 | 0.809 | 0.770 | 0.814 | 0.634 |
| YOLOv7 | 36.9 | 104.7 | 29.52 | 0.853 | 0.806 | 0.829 | 0.868 | 0.675 |
| YOLOv8s | 11.2 | 28.6 | 11.39 | 0.821 | 0.774 | 0.797 | 0.865 | 0.678 |
| YOLOv9s | 7.2 | 26.7 | 22.17 | 0.791 | 0.761 | 0.776 | 0.834 | 0.646 |
| YOLOv10s | 7.2 | 21.6 | 14.19 | 0.755 | 0.726 | 0.740 | 0.808 | 0.625 |
| YOLOv11s | 9.4 | 21.5 | 13.47 | 0.834 | 0.811 | 0.822 | 0.861 | 0.682 |
| YOLOv12s | 9.3 | 21.4 | 16.74 | 0.837 | 0.778 | 0.807 | 0.864 | 0.686 |
进一步分析与建议。
(1)速度:n 系列中 YOLOv8n 约 98 FPS(10.17 ms),是摄像头与 720p 视频的优选;s 系列 YOLOv8s 约 88 FPS,在精度几乎不损失的情况下显著快于 YOLOv7。
(2)精度:若网页端允许 30–70 FPS,YOLOv7/YOLOv10n/YOLOv11s/YOLOv12s 给出更高的 AP@0.5-0.95 上限,适合“抽样复核/离线分析”。
(3)后处理:YOLOv10 的 PostTime 明显更低(n=0.63 ms / s=0.60 ms),结合端到端训练在多目标场景下更具优势;当流量极大时可优先选择或开启 NMS-free(如可用)。
(4)难点定向优化:对 Microcyte/Teardrop/Echinocytes 建议采用类均衡采样 + Copy-Paste + 小目标重采样;对高密 RBC 场景可引入 P2 输出层/更高输入分辨率 与 Soft-NMS;对背景混淆可在标注规范中收紧最小框与遮挡阈值。
(5)部署位点:Web 摄像头/视频流演示推荐 YOLOv8n/s;批量离线标注/科研统计可用 YOLOv11s/YOLOv12s;若后端 GPU 资源有限且并发高,YOLOv5nu/YOLOv8n 的 <11 ms 框架开销与简单结构更易横向扩展。
6. 系统设计与实现
6.1 系统设计思路
本系统采用四层架构:**表现与交互层(浏览器端)**承担图片/视频/摄像头三源输入、阈值与类别筛选、同步双帧渲染与导出操作;**业务与会话管理层(Flask + Flask-SocketIO)**统一路由、权限与会话状态,负责任务装配、参数同步与进度管理;推理与任务调度层对接模型权重管理、预处理、YOLO 推理与后处理,提供图像队列与视频/摄像头帧控制(暂停/继续/停止/拖拽),并将“原始帧+检测帧+统计量”打包成低延迟事件推送;数据持久化层以 SQLite 记录任务、结果与审计日志,并集中管理 CSV/带框图片/视频的导出与归档。
实时性由两条机制保障:其一,SocketIO 的双向事件总线负责帧级同步与参数热更(Conf/IoU、类别白/黑名单),确保前后端状态一致;其二,推理层采用无阻塞队列 + 轻量缓存与可选的 ONNX/TensorRT 引擎,分离 I/O 与计算,降低端到端抖动。在并发方面,视频与摄像头任务以“会话粒度”的任务控制器管理,统一限流、估计剩余时长并提供可中断的导出;图片批量检测走短任务通道,优先响应交互。
可扩展性体现在:权重热切换(上传即用、会话级生效并回滚)、跨平台路径规范与数据库自动迁移(版本字段驱动),以及导出中心的集中索引(允许按文件名/时间高亮定位与批量下载)。系统日志对关键动作(登录、模型切换、导出)形成审计闭环;资源异常(显存不足、设备离线)通过全局通知区反馈到概览页面,便于运维。
图 6-1 系统流程图
图注:系统自初始化到接入多源输入,经预处理、推理与后处理产生统计量,并通过 SocketIO 将“原始帧/检测帧”同步推送到浏览器,导出与入库并行完成。
图 6-2 系统设计框图
图注:展示四层结构与关键模块边界;虚线为可选加速与监控接口,实线为主要数据/控制流向。
6.2 登录与账户管理
图 6-3 登录与账户管理流程
图注:覆盖注册/登录/一次性跳过三入口;登录/注册成功后全站会话生效与个性化配置加载,支持资料修改与注销。
说明:登录界面提供注册、登录与一次性跳过三种入口;注册在服务器端完成口令哈希与最小化信息写入,并在成功后创建站点级会话;已注册用户登录通过口令校验与可选的风险检测后进入主界面;选择跳过时仅建立短会话且不写入个人记录。进入系统后会自动加载个性化配置与历史检测记录,概览页提供到图片/视频/摄像头检测与模型管理、导出中心的显著入口;资料修改(头像/口令)与会话状态变更会实时落库,注销或切换账号将清理前端令牌并重定向至登录页。该流程确保在良好体验与基本安全之间取得平衡,并与主检测流程的参数同步与结果入库形成闭环。
代码下载链接
如果您希望获取博客中提及的完整资源包,包含测试图片、视频、Python文件(*.py)、网页配置文件、训练数据集、代码及界面设计等,可访问博主在面包多平台的上传内容。相关的博客和视频资料提供了所有必要文件的下载链接,以便一键运行。完整资源的预览如下图所示:


资源包中涵盖了你需要的训练测试数据集、训练测试代码、UI界面代码等完整资源,完整项目文件的下载链接可在Gitee项目中找到➷➷➷
完整项目下载、论文word范文下载与安装文档:https://deeppython.feishu.cn/wiki/UWgMwEF9yi8CE7kJ8RucXdgPngb
讲解视频地址:https://www.bilibili.com/video/BV17sQFBoEmt/
完整安装运行教程:
这个项目的运行需要用到Anaconda和Pycharm两个软件,下载到资源代码后,您可以按照以下链接提供的详细安装教程操作即可运行成功,如仍有运行问题可私信博主解决:
- Pycharm和Anaconda的安装教程:https://deepcode.blog.csdn.net/article/details/136639378;
软件安装好后需要为本项目新建Python环境、安装依赖库,并在Pycharm中设置环境,这几步采用下面的教程可选在线安装(pip install直接在线下载包):
- Python环境配置教程:https://deepcode.blog.csdn.net/article/details/136639396;
7. 结论与未来工作
本文面向血涂片显微场景构建了 YOLOv5–YOLOv12 统一评测与实时可视平台,后端以 PyTorch/ONNX/TensorRT 驱动,前端基于 Flask+Flask-SocketIO+HTML/CSS/JS 提供图片/视频/摄像头三源输入、同步双帧与一键导出;在 RTX 3070 Laptop 8 GB 上,小模型中 YOLOv8n 以 10.17 ms 端到端时延获得 mAP50=0.829 / F1=0.766,在“网页实时演示 + 临床交互”上达成最优速度-精度折中;更高精度需求下,YOLOv7(s 系列)达 mAP50=0.868 / F1=0.829,适合离线复核与抽样分析;F1–Confidence 曲线给出系统缺省阈值 ≈0.55,混淆矩阵显示 Microcyte/Teardrop/Echinocytes 仍是主要薄弱类,已通过小目标增强与 Soft-NMS 得到缓解。总体而言,平台在小目标密集、类间相近、染色差异等典型难点上取得稳定表现,并形成“检测—可视—导出—入库”的闭环;架构对其他显微学任务(如寄生虫/循环肿瘤细胞)以及工业小目标/机械器件外观缺陷具良好迁移性,改动数据与类别即可复用。
未来工作将围绕三条主线展开:模型侧,推进 蒸馏/剪枝/INT8 量化 与轻量注意力替换,尝试 NMS-free/端到端训练、多任务(检+分割+分类)与多模态融合(明场+相衬/多染色),并探索自适应输入分辨率与自动数据增强;系统侧,完成 Docker 化与一键部署,引入 分布式任务队列(并发视频与批量作业)、WebRTC 实时推流与 WebGPU 前端推理,完善 角色权限/RBAC、审计日志、多租户与 i18n,强化可观测性与异常自愈;数据侧,建立 主动学习与持续标注流水线,结合 难例挖掘/长尾重采样/域自适应,上线 数据治理与漂移监测与隐私合规策略(去标识化/本地推理优先),最终把平台升级为覆盖采集-训练-评测-部署-反馈的闭环 MLOps 系统。
参考文献(GB/T 7714)
[1] Muhammad Noukhez. Blood Cell Count and Detection (BCCD)[DB/OL]. Kaggle, 2024.
[2] ONNX Runtime. Using WebGPU Execution Provider in ONNX Runtime Web[EB/OL]. 2025.
[3] Wang A, Chen H, Liu L, et al. YOLOv10: Real-Time End-to-End Object Detection[EB/OL]. arXiv:2405.14458, 2024.
[4] Ultralytics. YOLO11 Documentation/Blog Announcement[EB/OL]. 2024.
[5] Tian Y, Ye Q, Doermann D. YOLOv12: Attention-Centric Real-Time Object Detectors[EB/OL]. arXiv:2502.12524, 2025.
[6] AYOLOv5 Authors. Improved YOLOv5 based on attention mechanism for blood cell detection[J]. Biomedical Signal Processing and Control, 2023.
[7] 罗永超. 基于YOLOv8的血细胞检测的研究[J]. 中华生物医学工程杂志, 2024.
[8] NBCDC-YOLOv8 Authors. A new framework to improve blood cell detection[J]. IET Computer Vision, 2024.
[9] Zhang M, Chen J. SST-YOLOv5s: advancing real-time blood cell object detection through multi-headed attention mechanism[J]. Signal, Image and Video Processing, 2025.
[10] Ren S, He K, Girshick R, Sun J. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks[EB/OL]. arXiv:1506.01497, 2015.
[11] Liu W, Anguelov D, Erhan D, et al. SSD: Single Shot MultiBox Detector[EB/OL]. arXiv:1512.02325, 2015.
[12] Lin T-Y, Goyal P, Girshick R, He K, Dollár P. Focal Loss for Dense Object Detection[C]//ICCV, 2017:2980-2988.
[13] Tian Z, Shen C, Chen H, He T. FCOS: Fully Convolutional One-Stage Object Detection[EB/OL]. arXiv:1904.01355, 2019.
[14] Zhou X, Wang D, Krähenbühl P. Objects as Points (CenterNet)[EB/OL]. arXiv:1904.07850, 2019.
[15] Wang C-Y, Bochkovskiy A, Liao H-Y M. YOLOv7: Trainable bag-of-freebies sets new SOTA for real-time detectors[EB/OL]. arXiv:2207.02696, 2022.
[16] Xu S, Wang X, Lv W, et al. PP-YOLOE: An evolved version of YOLO[EB/OL]. arXiv:2203.16250, 2022.
[17] Lv W, Xu S, Cui C, et al. RT-DETR: DETRs Beat YOLOs on Real-Time Object Detection[EB/OL]. arXiv:2304.08069, 2023/2024.
[18] NVIDIA. TensorRT Documentation & Developer Guide[EB/OL]. 2025.
[19] Flask-SocketIO. Official Documentation[EB/OL]. 2025.
[20] Python Docs. sqlite3 — DB-API 2.0 interface for SQLite[EB/OL]. 2025.
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)