摘要

本文面向“血细胞实时检测与可视分析”,实现了基于 Flask + Flask-SocketIO / HTML / CSS / JSWeb 网页界面,后端集成 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+εiwiUi,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!(dk QK)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, LCIoU=1IoU+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}, LEIoU=1IoU+c2ρ2(b,b^)+w^2(ww^)2+h^2(hh^)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, Lfocal=αt(1pt)γ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=λboxLIoU+λclsLfocal,
其中 λ ∗ 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 系列YOLOv10nmAP50=0.832 位列第一,而 YOLOv7-tinyF1=0.796 最高,但端到端 21.08 ms 相对较慢;在速度-精度折中上,YOLOv8n10.17 ms 取得 mAP50=0.829 / F1=0.766,是“网页实时演示(≥90 FPS)”更稳妥的选择。
在这里插入图片描述

s 系列YOLOv7mAP50=0.868 / F1=0.829 居前,但时延 29.52 ms;若更看重前端流畅度,YOLOv8s11.39 ms 下获得 mAP50=0.865 / F1=0.797,而 YOLOv11s13.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 的科室复核用 YOLOv10nYOLOv11s/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 系列中 YOLOv8n98 FPS(10.17 ms),是摄像头与 720p 视频的优选;s 系列 YOLOv8s88 FPS,在精度几乎不损失的情况下显著快于 YOLOv7
(2)精度:若网页端允许 30–70 FPS,YOLOv7/YOLOv10n/YOLOv11s/YOLOv12s 给出更高的 AP@0.5-0.95 上限,适合“抽样复核/离线分析”。
(3)后处理YOLOv10PostTime 明显更低(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两个软件,下载到资源代码后,您可以按照以下链接提供的详细安装教程操作即可运行成功,如仍有运行问题可私信博主解决:

  1. Pycharm和Anaconda的安装教程https://deepcode.blog.csdn.net/article/details/136639378

        软件安装好后需要为本项目新建Python环境、安装依赖库,并在Pycharm中设置环境,这几步采用下面的教程可选在线安装(pip install直接在线下载包):

  1. 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 上,小模型中 YOLOv8n10.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.

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐