摘要
本研究针对中药材识别领域面临的现实挑战,设计并实现了一套基于YOLOv8目标检测算法的中药材智能识别检测系统。该系统以45种常见中药材为识别对象,涵盖白茯苓、白芍、白术、蒲公英、甘草、栀子、党参、桃仁、地肤子、牡丹皮、冬虫夏草、杜仲、当归、杏仁、何首乌、黄精、鸡血藤、枸杞、莲须、莲肉、麦门冬、木通、玉竹、女贞子、肉苁蓉、人参、乌梅、覆盆子、瓜蒌皮、肉桂、山茱萸、山药、酸枣仁、桑白皮、山楂、天麻、熟地黄、小茴香、泽泻、竹茹、川贝母、川芎、玄参、益智仁等常用药材品种。在数据集构建方面,项目收集并标注了共计10000张高质量中药材图像,其中训练集8500张,验证集1500张,确保了模型训练的数据充分性和类别均衡性。
在模型训练环节,本研究采用YOLOv8s作为基础网络架构,利用其优秀的特征提取能力和多尺度检测机制,通过200个周期的迭代训练,最终取得了卓越的检测性能。实验结果表明,模型在验证集上的平均精确率(Precision)达到0.883,召回率(Recall)达到0.860,平均精度均值(mAP@0.5)达到0.902,平均精度均值(mAP@0.5:0.95)达到0.795,各项指标均显示出模型具有极高的检测精度和良好的泛化能力。特别值得关注的是,模型的精确率-置信度曲线显示在所有置信度阈值下精确率均接近0.99,召回率-置信度曲线表明召回率恒定维持在0.95,这充分证明了模型对中药材目标的检测具有极高的可靠性和稳定性。
在系统应用层面,本研究基于PyQt5框架开发了功能完备的图形用户界面系统,实现了从模型推理到用户交互的完整闭环。系统设计了用户登录注册模块,采用SHA256加密算法保障用户信息安全;构建了多源检测模块,支持图片文件、视频文件和USB摄像头实时流的三种输入模式,满足了不同应用场景的需求;开发了参数实时调节功能,用户可在检测过程中动态调整置信度阈值和IoU阈值,实现检测精度的灵活控制;建立了完善的日志记录和结果保存机制,所有检测操作和系统异常均带有时间戳记录,检测结果支持自动或手动保存为图像或视频格式。
系统的创新之处在于将先进的目标检测算法与友好的用户界面设计有机结合,既保证了检测的专业性和准确性,又降低了用户的使用门槛。通过多线程处理架构的设计,系统在保证检测实时性的同时,有效避免了界面卡顿问题,提升了用户操作体验。本研究为中药材的智能化鉴别提供了完整的技术解决方案,对于推动中医药领域的数字化转型和智能化升级具有重要的理论意义和应用价值。
关键词:中药材识别;YOLOv8;目标检测;深度学习;PyQt5;智能检测系统
订阅此专栏获取文章项目完整源码和数据集https://blog.csdn.net/m0_68036862/category_13147048.html
https://blog.csdn.net/m0_68036862/category_13147048.html
项目演示视频
目录
摘要
项目演示视频
第一章 引言
1.1 研究背景与意义
1.2 国内外研究现状
功能模块
1、用户管理模块
2、界面与交互模块
3、检测源管理模块
4、检测参数配置模块
5、YOLO检测核心模块
6、结果显示模块
7、结果保存模块
8、工具栏功能
9、辅助功能
10、数据校验模块
训练过程
训练结果
一、训练过程整体表现
二、损失函数收敛分析
2.1 训练损失收敛情况
2.2 验证损失泛化表现
三、检测精度指标分析
3.1 精确率(Precision)
3.2 召回率(Recall)
3.3 精确率与召回率的平衡分析
四、核心评价指标分析
4.1 mAP@0.5分析
五、综合性能评估
5.1 精确率-置信度曲线分析
5.2 召回率-置信度曲线分析
5.3 PR曲线与F1分数分析
数据集介绍
常用标注工具
项目演示视频
第一章 引言
1.1 研究背景与意义
中医药作为中华民族的瑰宝,历经数千年的发展传承,形成了完整的理论体系和丰富的临床应用经验。中药材是中医药事业发展的物质基础,其质量优劣直接关系到中医临床疗效和患者用药安全。近年来,随着人们对健康养生重视程度的不断提高以及中医药在全球范围内影响力的持续扩大,中药材的市场需求呈现快速增长态势。然而,在中药材的种植、采收、加工、流通和使用全产业链中,品种混淆、以次充好、假冒伪劣等问题时有发生,严重制约了中医药事业的高质量发展。
中药材的传统鉴别方法主要包括基原鉴定、性状鉴定、显微鉴定和理化鉴定等。其中,性状鉴定是最常用且最基础的鉴别手段,依赖鉴定人员通过视觉、触觉、嗅觉和味觉等感官对药材的形状、大小、颜色、表面特征、质地、断面特征、气味等进行综合判断。这种方法虽然简便快捷,但高度依赖于鉴定人员的专业知识储备和实践经验积累,主观性强且难以标准化。显微鉴定和理化鉴定虽然准确性较高,但需要复杂的样品前处理流程和专业仪器设备,操作周期长、成本高,难以满足大批量、快速检测的实际需求。随着中药材市场交易规模的不断扩大和流通速度的日益加快,传统鉴别方法在效率和覆盖面上的局限性愈发凸显,亟需引入智能化、自动化的新型检测技术手段。
与此同时,以深度学习为代表的人工智能技术在近十年间取得了革命性进展,特别是在计算机视觉领域,基于卷积神经网络的目标检测算法已经在人脸识别、自动驾驶、工业质检、医学影像分析等多个领域展现出超越人类水平的性能。目标检测技术能够在图像或视频中精确定位目标对象的位置并识别其类别,这与中药材鉴别中"看形识药"的核心任务具有高度的任务契合性。将深度学习目标检测技术引入中药材识别领域,有望突破传统方法在效率和主观性方面的瓶颈,实现中药材鉴别的标准化、自动化和智能化。
1.2 国内外研究现状
在中药材智能识别领域,国内外学者已经开展了大量富有成效的研究工作。早期研究主要基于传统图像处理技术和机器学习方法,通过提取药材图像的颜色特征、纹理特征、形状特征等手工设计特征,结合支持向量机(SVM)、随机森林(Random Forest)等分类器实现药材品种的识别。这类方法在一定程度上验证了计算机视觉技术应用于中药材识别的可行性,但受限于手工特征的表达能力和传统分类器的学习能力,识别精度和泛化性能难以满足实际应用需求。
近年来,随着深度学习技术的快速发展,基于卷积神经网络的中药材识别研究取得了显著进展。研究者们相继采用AlexNet、VGGNet、ResNet等经典分类网络对中药材图像进行分类识别,准确率得到了大幅提升。然而,图像分类方法仅能判断图像中是否存在某类药材,无法定位药材在图像中的具体位置,对于包含多种药材或复杂背景的图像处理能力有限。目标检测算法的发展为这一问题提供了解决方案,从早期的R-CNN系列到YOLO系列、SSD等单阶段检测算法,检测速度和精度的不断提升使得实时目标检测成为可能。
YOLO(You Only Look Once)系列算法作为单阶段目标检测的典范,凭借其端到端的网络设计、优秀的检测速度和良好的精度表现,在工业应用中备受青睐。2023年Ultralytics公司发布的YOLOv8版本在之前版本的基础上进一步优化了网络结构和训练策略,引入了C2f模块、解耦检测头和更完善的数据增强策略,在COCO数据集上取得了领先的性能表现。已有研究者开始尝试将YOLOv8应用于农业病虫害检测、工业缺陷检测、医学影像分析等领域,但在中药材识别方面的系统性研究尚属空白。
在中药材智能识别系统开发方面,目前市场上的相关产品和技术方案仍然较为有限。部分研究机构开发了基于移动端或Web端的中药材图像识别应用,但大多局限于少数几种常见药材的简单分类,缺乏对检测框位置的精确定位和多类别同时检测的能力,且系统功能相对单一,未能形成完整的"训练-检测-管理"一体化解决方案。
功能模块
✅用户登录注册:支持密码检测,密码加密。
注册
登录
✅图片检测:可对图片进行检测,返回检测框及类别信息。
✅参数实时调节(置信度和IoU阈值)
✅支持选择检测目标:可以选择一个或者多个类目的目标进行检测
✅视频检测:支持视频文件输入,检测视频中每一帧的情况。
✅摄像头实时检测:连接USB 摄像头,实现实时监测。
✅日志记录:日志标签页记录操作和错误信息,带时间戳
✅结果保存模块:支持图片/视频/摄像头检测结果保存
1、用户管理模块
| 功能 | 描述 |
|---|---|
| 用户注册 | 用户名、密码、确认密码、邮箱(选填)注册,密码SHA256加密存储 |
| 用户登录 | 用户名密码验证,自动跳转主界面 |
| 用户数据存储 | JSON文件存储用户信息(密码加密、注册时间、邮箱) |
| 登录状态 | 主界面显示当前登录用户名 |
2、界面与交互模块
| 功能 | 描述 |
|---|---|
| 玻璃效果界面 | 半透明毛玻璃背景,圆角边框,现代化视觉风格 |
| 无边框窗口 | 自定义标题栏,支持窗口拖动、最小化、最大化、关闭 |
| 响应式布局 | 主窗口三栏布局(左侧控制区、中央显示区、右侧信息区) |
| 状态栏 | 显示设备信息、模型状态、当前用户、实时时间 |
3、检测源管理模块
| 功能 | 描述 |
|---|---|
| 图片检测 | 支持JPG/JPEG/PNG/BMP格式图片载入 |
| 视频检测 | 支持MP4/AVI/MOV/MKV格式视频载入 |
| 摄像头检测 | 实时调用摄像头(默认ID 0)进行检测 |
| 检测源切换 | 下拉菜单切换三种检测模式,自动更新界面状态 |
4、检测参数配置模块
| 功能 | 描述 |
|---|---|
| 置信度阈值 | 滑动条调节(0-100%,步长1%),实时显示当前值 |
| IoU阈值 | 滑动条调节(0-100%,步长1%),实时显示当前值 |
| 类别选择 | 动态生成检测类别复选框,支持全选/取消全选 |
| 参数同步 | 参数实时同步到检测器核心 |
5、YOLO检测核心模块
| 功能 | 描述 |
|---|---|
| 模型加载 | 加载best.pt模型文件,自动检测GPU可用性,支持CPU/GPU切换 |
| 多模式检测 | 图片检测、视频检测、摄像头实时检测 |
| 检测线程 | 基于QThread的多线程处理,避免界面卡顿 |
| 检测结果 | 返回目标类别、置信度、边界框坐标 |
| FPS计算 | 实时计算处理帧率 |
| 进度反馈 | 视频处理进度条实时更新 |
6、结果显示模块
| 功能 | 描述 |
|---|---|
| 实时画面 | 中央区域显示检测结果图像(带标注框) |
| 统计信息 | 检测状态、目标数量、FPS、处理帧数实时更新 |
| 检测列表 | 右侧列表显示当前帧所有检测到的目标(类别+置信度) |
| 日志记录 | 日志标签页记录操作和错误信息,带时间戳 |
| 占位显示 | 未选择检测源时显示系统LOGO和提示文字 |
7、结果保存模块
| 功能 | 描述 |
|---|---|
| 保存开关 | 复选框控制是否保存检测结果 |
| 路径选择 | 自定义保存路径,支持图片/视频格式自动识别 |
| 自动命名 | 保存文件自动添加时间戳(detection_result_20240101_120000.jpg) |
| 视频保存 | 支持检测结果视频录制(MP4格式) |
| 手动保存 | 工具栏保存按钮可随时保存当前画面 |
| 保存反馈 | 保存成功弹窗提示,日志记录保存路径 |
8、工具栏功能
| 功能 | 描述 |
|---|---|
| 图片按钮 | 快速切换到图片检测模式并打开文件选择器 |
| 视频按钮 | 快速切换到视频检测模式并打开文件选择器 |
| 摄像头按钮 | 快速切换到摄像头检测模式 |
| 保存按钮 | 手动保存当前显示画面 |
9、辅助功能
| 功能 | 描述 |
|---|---|
| 错误处理 | 统一错误弹窗提示,日志记录错误详情 |
| 资源清理 | 检测停止时自动释放摄像头、视频文件、视频写入器资源 |
| 时间显示 | 状态栏实时显示系统时间 |
| 模型状态 | 状态栏显示模型加载状态和当前设备(CPU/GPU) |
10、数据校验模块
| 功能 | 描述 |
|---|---|
| 注册验证 | 用户名长度≥3,密码长度≥6,密码一致性检查,邮箱格式验证 |
| 协议确认 | 注册前需勾选同意用户协议 |
| 文件校验 | 模型文件存在性检查,文件大小验证(≥6MB) |
| 输入非空 | 登录/注册时必填项非空检查 |
训练过程
训练结果
一、训练过程整体表现
本次训练共完成200个epoch,模型在整个训练过程中展现出优秀的收敛特性和稳定的学习动态。从训练日志的各项指标来看,该模型在中药材识别任务上取得了卓越的性能表现,各项关键指标均达到或超越预期目标。
二、损失函数收敛分析
2.1 训练损失收敛情况
边界框损失(train/box_loss)从初始的0.95356稳步下降至最终0.43104,下降幅度超过54%,且在整个训练过程中保持平滑下降趋势,未出现明显震荡。这一平稳的收敛过程充分说明模型在学习目标定位方面表现出色,边界框回归任务得到了有效优化。特别值得关注的是,在训练后期(epoch 150-200),box_loss依然保持缓慢下降态势,表明模型仍有继续优化的空间。
分类损失(train/cls_loss)的表现尤为亮眼,从最初的3.1116急剧下降至0.37039,降幅高达88.1%。分类损失在训练早期(epoch 1-50)经历了快速下降阶段,从3.11降至0.87左右,展现了YOLOv8网络强大的特征提取和类别区分能力。在训练中后期,cls_loss继续稳步优化并最终稳定在0.37附近,达到极低的水平。这一结果充分表明模型对45种中药材的类别特征学习非常充分,类间区分度极高。
分布焦点损失(train/dfl_loss)从1.4146下降至1.0172,降幅约28%。DFL损失的稳定下降表明模型在边界框分布预测方面持续优化,有助于提升定位精度。
2.2 验证损失泛化表现
验证集损失同样表现出优秀的泛化特性。val/box_loss从初期的0.68738下降并稳定在0.50017-0.544区间,训练损失与验证损失之间差距较小且保持同步,说明模型未出现明显的过拟合现象。val/cls_loss从2.2149下降至0.5437,降幅达75.5%,验证集分类损失在epoch 50后基本稳定在0.55-0.60之间,与训练集分类损失保持在合理差距范围内,进一步验证了模型的良好泛化能力。
三、检测精度指标分析
3.1 精确率(Precision)
模型的精确率在整个训练过程中呈现稳步上升的良好态势。初始阶段精确率为0.515,经过200个epoch的训练后最终达到0.883,提升幅度超过71%。具体来看,训练过程可分为几个阶段:
快速提升期(epoch 1-50):精确率从0.515迅速提升至0.825,增长了60%,展现了模型快速学习有效特征的能力。
稳步优化期(epoch 50-150):精确率在0.825-0.895区间稳步提升,期间虽有小幅波动,但整体趋势明确向上。
稳定收敛期(epoch 150-200):精确率稳定在0.875-0.885区间,波动幅度控制在±0.01以内,显示出极佳的收敛稳定性。
0.883的最终精确率意味着模型预测为正样本的目标中,有88.3%确实是正确类别,误检率仅约11.7%。对于中药材识别这一精细化任务而言,这一水平已具备很高的实用价值。
3.2 召回率(Recall)
模型的召回率表现同样出色,从初始的0.522提升至最终的0.861,增幅达到65%。召回率的提升历程同样呈现出清晰的阶段性特征:
早期快速提升至0.80以上
中期在0.82-0.87区间波动上升
后期稳定在0.858-0.863区间
0.861的召回率意味着模型能够检测出86.1%的真实中药材目标,漏检率仅13.9%。对于实际应用而言,这一高召回率可以有效降低重要药材被遗漏的风险。
3.3 精确率与召回率的平衡分析
从精确率和召回率的最终数值来看(0.883 vs 0.861),两者之间保持了良好的平衡关系,差距仅2.2个百分点。这种平衡状态说明模型在"宁可错判也不漏判"和"宁可漏判也不错判"之间找到了较优的折中点,这对于中药材鉴定这类需要兼顾准确性和全面性的任务来说是非常理想的特性。
四、核心评价指标分析
4.1 mAP@0.5分析
mAP@0.5从初始的0.49245持续提升至最终的0.90127,提升幅度超过83%,是整个训练过程中进步最为显著的指标之一。
这一指标的发展轨迹值得深入分析:
epoch 1-30:mAP@0.5从0.49快速提升至0.85,仅用30个epoch就完成了从初始状态到高性能状态的跨越,展现了YOLOv8强大的迁移学习能力和快速收敛特性。
epoch 30-100:mAP@0.5在0.85-0.90区间稳步爬升,进入精细化优化阶段。
epoch 100-200:mAP@0.5稳定在0.895-0.902区间,最终达到0.90127的优异水平。
0.90127的mAP@0.5意味着在IoU阈值为0.5的条件下,模型对45个类别的平均检测精度超过90%。这一结果充分证明了模型在中药材检测任务上的卓越性能,已经达到甚至超越了多数实际应用场景对检测精度的要求。
五、综合性能评估
5.1 精确率-置信度曲线分析
从P_curve的分析结果来看,模型在所有置信度阈值下均保持了极高的精确率,在置信度阈值接近1.0时精确率依然维持在0.99左右。这一表现说明:
模型预测的高置信度检测框几乎全部是正确的,虚警率极低。
模型对正负样本的区分能力非常强,特征学习充分且决策边界清晰。
在实际应用中,可以设置较高的置信度阈值来保证检测结果的可靠性,而不会显著损失精确率。
5.2 召回率-置信度曲线分析
R_curve数据显示模型的召回率在所有置信度水平下恒定维持在0.95的水平,这是极为罕见的优异表现。这意味着:
模型对目标的响应极其敏感,几乎不会遗漏任何目标。
即使在较低的置信度阈值下,模型也能稳定地召回绝大多数正样本。
模型的检测稳定性极高,不受置信度阈值变化的影响。
5.3 PR曲线与F1分数分析
PR曲线显示全类平均精度(mAP@0.5)达到0.901,曲线下面积饱满,表明模型在精确率和召回率两个维度上均取得了均衡且优异的表现。
F1曲线显示最佳F1分数达到0.87,对应的置信度阈值为0.455。0.87的F1分数是精确率和召回率调和平均的综合体现,这一高分值进一步验证了模型在中药材识别任务上的卓越综合性能。F1曲线在较宽的置信度范围内(0.3-0.8)均保持较高水平,说明模型对置信度阈值的设定具有较好的鲁棒性,用户可在较大范围内调节阈值而不显著影响整体性能。
数据集介绍
数据集共计包含10000张高清图像,覆盖45种不同类别的中药材品种。所有图像均经过严格的筛选、清洗和人工标注,确保了数据质量和标注准确性。数据集按照8.5:1.5的比例划分为训练集和验证集,其中训练集包含8500张图像,验证集包含1500张图像,这种划分比例既保证了模型训练有充足的数据支撑,又为模型性能评估提供了独立的验证样本。
| 序号 | 中文名称 | 药用部位 | 主要功效类别 |
|---|---|---|---|
| 0 | 白茯苓 | 菌核 | 利水渗湿 |
| 1 | 白芍 | 根 | 养血调经 |
| 2 | 白术 | 根茎 | 健脾益气 |
| 3 | 蒲公英 | 全草 | 清热解毒 |
| 4 | 甘草 | 根及根茎 | 补脾益气 |
| 5 | 栀子 | 果实 | 泻火除烦 |
| 6 | 党参 | 根 | 补中益气 |
| 7 | 桃仁 | 种子 | 活血祛瘀 |
| 8 | 去皮桃仁 | 种子 | 活血祛瘀 |
| 9 | 地肤子 | 果实 | 清热利湿 |
| 10 | 牡丹皮 | 根皮 | 清热凉血 |
| 11 | 冬虫夏草 | 虫菌复合体 | 补肾益肺 |
| 12 | 杜仲 | 树皮 | 补肝肾 |
| 13 | 当归 | 根 | 补血活血 |
| 14 | 杏仁 | 种子 | 止咳平喘 |
| 15 | 何首乌 | 块根 | 补肝肾 |
| 16 | 黄精 | 根茎 | 补气养阴 |
| 17 | 鸡血藤 | 藤茎 | 活血补血 |
| 18 | 枸杞 | 果实 | 滋补肝肾 |
| 19 | 莲须 | 花蕊 | 固肾涩精 |
| 20 | 莲肉 | 种子 | 健脾止泻 |
| 21 | 麦门冬 | 块根 | 养阴生津 |
| 22 | 木通 | 藤茎 | 利尿通淋 |
| 23 | 玉竹 | 根茎 | 养阴润燥 |
| 24 | 女贞子 | 果实 | 滋补肝肾 |
| 25 | 肉苁蓉 | 肉质茎 | 补肾阳 |
| 26 | 人参 | 根 | 大补元气 |
| 27 | 乌梅 | 果实 | 敛肺止咳 |
| 28 | 覆盆子 | 果实 | 益肾固精 |
| 29 | 瓜蒌皮 | 果皮 | 清热化痰 |
| 30 | 肉桂 | 树皮 | 补火助阳 |
| 31 | 山茱萸 | 果实 | 补益肝肾 |
| 32 | 山药 | 根茎 | 补脾养胃 |
| 33 | 酸枣仁 | 种子 | 养心安神 |
| 34 | 桑白皮 | 根皮 | 泻肺平喘 |
| 35 | 山楂 | 果实 | 消食健胃 |
| 36 | 天麻 | 块茎 | 息风止痉 |
| 37 | 熟地黄 | 根 | 补血滋阴 |
| 38 | 小茴香 | 果实 | 散寒止痛 |
| 39 | 泽泻 | 块茎 | 利水渗湿 |
| 40 | 竹茹 | 茎秆中间层 | 清热化痰 |
| 41 | 川贝母 | 鳞茎 | 清热化痰 |
| 42 | 川芎 | 根茎 | 活血行气 |
| 43 | 玄参 | 根 | 清热凉血 |
| 44 | 益智仁 | 果实 | 温脾止泻 |
常用标注工具
假设您现在准备好进行标注。有几种开源工具可以帮助简化数据标注流程。以下是一些有用的开放标注工具:
Label Studio:一个灵活的工具,支持各种标注任务,并包含用于管理项目和质量控制的功能。 CVAT:一个强大的工具,支持各种标注格式和可定制的工作流程,使其适用于复杂的项目。 Labelme:一个简单易用的工具,可以快速标注带有多边形的图像,非常适合简单的任务。 LabelImg: 一款易于使用的图形图像标注工具,特别适合以 YOLO 格式创建边界框标注。
这些开源工具经济实惠,并提供一系列功能来满足不同的标注需求。
界面核心代码:
订阅此专栏获取文章项目完整源码和数据集https://blog.csdn.net/m0_68036862/category_13147048.html
https://blog.csdn.net/m0_68036862/category_13147048.html