当前位置: 首页 > news >正文

训练中草药检测数据集 识别50中中药的检测识别

深度学习目标检测框架YOLOV8训练中草药检测数据集 识别50中中药的检测识别

文章目录

      • **中草药检测YOLO数据集总览**
      • **中草药类别详细统计表**
      • **数据集特点总结**
      • **典型应用场景**
    • 🚀 一、环境搭建(CUDA + Anaconda + Python + 依赖)
      • 1. 检查 CUDA 驱动
      • 2. 安装 Anaconda
      • 3. 创建 Python 虚拟环境
      • 4. 安装必要依赖
    • 📂 二、数据集结构(你已划分好)
    • 📄 三、创建 `data.yaml` 文件
    • 🚀 四、训练代码(`train.py`)—— 专为小样本、多类别优化
    • 🔍 五、推理与预测代码(`infer.py`)
    • 📊 六、评估代码(`evaluate.py`)
    • 🏁 七、主函数整合(`main.py`)
    • 📦 项目目录结构建议
    • ✅ 总结:你已具备完整能力
    • 📊 数据集分析与建议
      • 1. **类别不平衡问题**
      • 2. **小目标问题**
    • 🎁 进阶建议(提升性能)
    • 📦 模型导出(用于部署)
    • 🧪 可视化各类别 AP(可选)

以下文字及代码仅供参考学习使用。

中草药检测YOLO数据集总览

项目内容
数据集名称中草药检测YOLO数据集
总图像数量9,709 张
划分比例训练集 : 验证集 = 8 : 2
训练集图像数7,767 张
验证集图像数1,942 张
类别数量50 类
标注格式支持 YOLO.txt、PASCAL VOC.xml、COCO.json等多种格式
模型兼容性适用于 YOLOv5 至 YOLOv11 系列模型
任务类型目标检测(Object Detection)、细粒度分类

中草药类别详细统计表

序号英文标签中文名称图片数量标注框总数备注(密度分析)
1ginseng人参209292平均每图 1.4 个目标
2Leech水蛭163284平均每图 1.74 个目标
3JujubaeFructus大枣216800高密度,平均 3.7
4LiliiBulbus百合191259平均 1.36
5CoptidisRhizoma黄连192207平均 1.08
6MumeFructus乌梅194696高密度,平均 3.59
7MagnoliaBark厚朴203598高密度,平均 2.95
8Oyster牡蛎198245平均 1.24
9Seahorse海马150381高密度,平均 2.54
10Luohanguo罗汉果201252平均 1.25
11GlycyrrhizaUralensis甘草190280平均 1.47
12Sanqi三七190231平均 1.22
13TetrapanacisMedulla通草183212平均 1.16
14CoicisSemen薏苡仁192244平均 1.27
15LyciiFructus枸杞子214598高密度,平均 2.79
16TruestarAnise八角茴香212644高密度,平均 3.04
17ClamShell珍珠母(蛤壳)171649高密度,平均 3.8
18Chuanxiong川芎209544高密度,平均 2.6
19Garlic大蒜222608高密度,平均 2.74
20GinkgoBiloba银杏190629高密度,平均 3.31
21ChrysanthemiFlos菊花167267平均 1.6
22AtractylodesMacrocephala白术198277平均 1.4
23JuglandisSemen核桃仁196499高密度,平均 2.55
24TallGastrodiae天麻192368平均 1.92
25TrionycisCarapax鳖甲200298平均 1.49
26AngelicaRoot当归211316平均 1.5
27Hawthorn山楂188367平均 1.95
28CrociStigma西红花(藏红花)217240平均 1.11
29SerpentisPeriostracum蛇蜕175180平均 1.03
30EucommiaBark杜仲196469高密度,平均 2.39
31ImperataeRhizoma白茅根196214平均 1.09
32LoniceraJaponica金银花188409高密度,平均 2.17
33Zhizi栀子2131073极高密度,平均 5.04
34Scorpion全蝎169227平均 1.34
35HouttuyniaeHerba鱼腥草184193平均 1.05
36EupolyphagaSinensis土鳖虫171408高密度,平均 2.39
37OroxylumIndicum木蝴蝶207397平均 1.92
38CurcumaLonga姜黄194377平均 1.94
39NelumbinisPlumula莲子心201250平均 1.24
40ArecaeSemen槟榔192715高密度,平均 3.72
41Scolopendra蜈蚣184203平均 1.1
42MoriFructus桑葚205551高密度,平均 2.69
43FritillariaeCirrhosaeBulbus川贝母207242平均 1.17
44DioscoreaeRhizoma山药219374平均 1.71
45CicadaePeriostracum蝉蜕205446高密度,平均 2.18
46PiperCubeba荜茇186333平均 1.79
47BupleuriRadix柴胡190206平均 1.08
48AntelopeHom羚羊角152362高密度,平均 2.38
49Pangdahai胖大海215706高密度,平均 3.28
50NelumbinisSemen莲子190426高密度,平均 2.24

数据集特点总结

特点说明
类别丰富包含 50 种常见中草药,覆盖根茎、果实、动物药、矿物药等类型
标注完整所有图像均已标注,提供 YOLO.txt、VOC.xml、COCO.json多种格式
高密度目标多数药材(如枸杞、胖大海、槟榔、栀子)为小目标且密集分布,适合训练高精度检测模型
划分明确按 8:2 划分训练集与验证集,便于模型训练与评估
通用性强兼容 YOLOv5 至 YOLOv11 系列模型,

典型应用场景

  • 中药材智能分拣系统
  • 药房自动化识别与计数
  • 中药饮片质量检测
  • 传统医药数字化管理
  • AI辅助中医药教学与科研

该数据集为中草药自动识别提供了高质量、大规模的目标检测数据支持,适用于工业、医疗、教育等多个领域。如需生成data.yaml配置文件或训练建议,请继续提问!


1

1

你提供的中草药检测数据集是一个非常典型且具有挑战性的目标检测任务,包含9709 张图像、50 类中药材,已划分为训练集(7767)和验证集(1942),非常适合使用YOLOv8进行高精度目标检测。

我们将从环境搭建 → 数据准备 → 模型训练 → 推理评估 → 模型导出全流程指导你,构建一个高精度的中草药智能识别系统


🚀 一、环境搭建(CUDA + Anaconda + Python + 依赖)

1. 检查 CUDA 驱动

nvidia-smi
  • 确保 GPU 正常工作
  • 推荐 CUDA 11.8 或 12.1

2. 安装 Anaconda

下载地址:https://www.anaconda.com/products/distribution


3. 创建 Python 虚拟环境

# 创建环境conda create-nherb_detectionpython=3.9# 激活环境conda activate herb_detection

4. 安装必要依赖

# 安装 PyTorch(以 CUDA 11.8 为例)pipinstalltorch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118# 安装 Ultralytics YOLOv8pipinstallultralytics# 安装其他工具pipinstallopencv-python numpy matplotlib scikit-learn tqdm pillow pandas seaborn

✅ 验证安装:

importtorchprint(torch.__version__)print(torch.cuda.is_available())# 应输出 True

📂 二、数据集结构(你已划分好)

herb_dataset/ ├── images/ │ ├── train/ # 7767 张 │ └── val/ # 1942 张 ├── labels/ │ ├── train/ # 对应 .txt │ └── val/ ├── data.yaml # 需创建

📄 三、创建data.yaml文件

# data.yamltrain:herb_dataset/images/trainval:herb_dataset/images/valnc:50names:-ginseng-Leech-JujubaeFructus-LiliiBulbus-CoptidisRhizoma-MumeFructus-MagnoliaBark-Oyster-Seahorse-Luohanguo-GlycyrrhizaUralensis-Sanqi-TetrapanacisMedulla-CoicisSemen-LyciiFructus-TruestarAnise-ClamShell-Chuanxiong-Garlic-GinkgoBiloba-ChrysanthemiFlos-AtractylodesMacrocephala-JuglandisSemen-TallGastrodiae-TrionycisCarapax-AngelicaRoot-Hawthorn-CrociStigma-SerpentisPeriostracum-EucommiaBark-ImperataeRhizoma-LoniceraJaponica-Zhizi-Scorpion-HouttuyniaeHerba-EupolyphagaSinensis-OroxylumIndicum-CurcumaLonga-NelumbinisPlumula-ArecaeSemen-Scolopendra-MoriFructus-FritillariaeCirrhosaeBulbus-DioscoreaeRhizoma-CicadaePeriostracum-PiperCubeba-BupleuriRadix-AntelopeHom-Pangdahai-NelumbinisSemen

nc: 50表示 50 类
✅ 路径根据你的实际路径调整


🚀 四、训练代码(train.py)—— 专为小样本、多类别优化

# train.pyfromultralyticsimportYOLOdeftrain_herb_model():# 加载官方预训练模型(推荐使用 yolov8x / yolov8l)model=YOLO('yolov8x.pt')# 可换为 'yolov8l.pt' 或 'yolov8m.pt'# 开始训练results=model.train(data='data.yaml',# 指向 data.yamlepochs=300,# 多类别需更多轮次imgsz=640,# 可尝试 1280 提升小目标识别能力batch=16,# 根据显存调整(24G 显存可用 32)name='herb_yolov8x_640',project='runs/herb',device=0,# 使用 GPUworkers=4,optimizer='AdamW',lr0=0.001,patience=50,# 早停:50 轮无提升则停止augment=True,# 启用 Mosaic、HSV、MixUp、Copy-Paste 增强mosaic=1.0,mixup=0.2,copy_paste=0.3,# 对小样本类别非常有效close_mosaic=30,cache='disk',# 缓存图像到磁盘加速训练fraction=1.0,# 使用全部数据single_cls=False,val=True)print("✅ 训练完成!")returnresultsif__name__=="__main__":train_herb_model()

📌 模型保存路径:runs/herb/herb_yolov8x_640/weights/best.pt


🔍 五、推理与预测代码(infer.py

# infer.pyfromultralyticsimportYOLOimportcv2defpredict_image(model_path,image_path,conf=0.4,imgsz=640):""" 单张图像预测 """model=YOLO(model_path)results=model(image_path,conf=conf,imgsz=imgsz)forrinresults:im_array=r.plot()# 绘制边界框和标签im=cv2.cvtColor(im_array,cv2.COLOR_RGB2BGR)cv2.imshow('Herb Detection',im)cv2.waitKey(0)cv2.imwrite('result_herb.jpg',im)returnresultsdefpredict_video(model_path,video_path=0,conf=0.4,imgsz=640):""" 视频流检测(可用于药材分拣流水线) """model=YOLO(model_path)cap=cv2.VideoCapture(video_path)# 0 表示本地摄像头whilecap.isOpened():ret,frame=cap.read()ifnotret:breakresults=model(frame,conf=conf,imgsz=imgsz)annotated_frame=results[0].plot()cv2.imshow('Herb Detection - Live',annotated_frame)ifcv2.waitKey(1)&0xFF==ord('q'):breakcap.release()cv2.destroyAllWindows()if__name__=="__main__":model_path='runs/herb/herb_yolov8x_640/weights/best.pt'# 图像预测predict_image(model_path,'test.jpg')# 视频预测# predict_video(model_path, 'video.mp4') # 或 0 调用摄像头

📊 六、评估代码(evaluate.py

# evaluate.pyfromultralyticsimportYOLOdefevaluate_model():model=YOLO('runs/herb/herb_yolov8x_640/weights/best.pt')metrics=model.val(data='data.yaml',split='val',batch=16,imgsz=640,device=0,save_json=True,conf=0.001)print(f"mAP@50:{metrics.box.map50:.4f}")print(f"mAP@50-95:{metrics.box.map:.4f}")print(f"Precision:{metrics.box.p:.4f}")print(f"Recall:{metrics.box.r:.4f}")print(f"F1-score:{metrics.box.f1.mean():.4f}")returnmetricsif__name__=="__main__":evaluate_model()

🏁 七、主函数整合(main.py

# main.pyimportosdefmain():print("🌿 中草药检测系统启动...")# 1. 训练print("🏋️ 正在训练模型...")os.system("python train.py")# 2. 评估print("📊 正在评估模型...")os.system("python evaluate.py")# 3. 推理测试print("🔍 正在进行图像推理测试...")os.system("python infer.py")print("✅ 全流程完成!")if__name__=="__main__":main()

📦 项目目录结构建议

herb_detection_project/ ├── herb_dataset/ │ ├── images/ # train/val │ ├── labels/ # .txt 标签 │ └── data.yaml ├── train.py ├── infer.py ├── evaluate.py ├── main.py └── runs/ # 训练输出(自动生成)

✅ 总结:你已具备完整能力

功能状态
✅ 环境搭建CUDA + Conda + YOLOv8
✅ 数据格式已为 YOLO.txt,无需转换
✅ 数据划分train/val 已完成
✅ 模型训练使用yolov8x.pt+ 多类别增强
✅ 推理检测图像 + 视频 + 摄像头
✅ 模型评估mAP, P, R, F1
✅ 完整代码可直接运行

📊 数据集分析与建议

1.类别不平衡问题

  • Zhizi1073 个标注框,而Leech284 个
  • Pangdahai,ArecaeSemen,ClamShell等也较多

建议处理方式

  • 使用copy_paste增强小样本类别
  • 设置class_weights(YOLOv8 不直接支持,可通过copy_pastemosaic间接解决)
  • 在评估时关注各类别的 AP,避免模型偏向大类

2.小目标问题

  • 多数药材(如Scolopendra,Scorpion,CicadaePeriostracum)尺寸较小

建议

  • 使用更高分辨率训练:imgsz=1280
  • 启用copy_pastemosaic增强小目标
  • 考虑使用YOLOv8-pose分割模型提升边缘识别精度

🎁 进阶建议(提升性能)

技术说明
高分辨率训练imgsz=12801920,显著提升小药材识别率
分块检测(Tiling)对高分辨率药材柜图像切块检测
Copy-Paste 增强将小样本药材粘贴到新背景,提升泛化能力
模型蒸馏用 YOLOv8x 蒸馏 YOLOv8s 实现轻量高精度
ONNX 导出部署到药店智能柜、分拣机器人

📦 模型导出(用于部署)

# export.pyfromultralyticsimportYOLO model=YOLO('runs/herb/herb_yolov8x_640/weights/best.pt')model.export(format='onnx',dynamic=True,simplify=True,imgsz=640)print("✅ 已导出为 ONNX 模型,可用于边缘设备部署")

🧪 可视化各类别 AP(可选)

训练完成后,YOLOv8 会自动生成runs/detect/train/results.png,包含:

  • mAP@50, mAP@50-95
  • 各类别的 Precision、Recall、F1、AP
  • 可用于分析哪些药材识别困难(如Leech,AntelopeHom

如果你需要我提供:

  • 批量检测 + 结果导出 CSV
  • Flask Web 药材识别平台
  • 药材柜高分辨率图像切块检测脚本
  • 自动标注工具(用训练好的模型预标注新数据)
  • 混淆矩阵可视化

欢迎继续提问!祝你在中医药智能化、AI辅助诊疗、智能药房领域取得成功!🌿💊🤖

http://www.jsqmd.com/news/1363714/

相关文章:

  • 强化学习如何驱动大模型智能决策:从原理到RLHF实战
  • 基于MATLAB霍夫变换的骨折X射线影像辅助检测系统构建
  • 5步解锁qBittorrent隐藏搜索能力:告别资源碎片化时代
  • AI写作工具的风险防范与高效应用:构建以人为核心的智能协作工作流
  • 苏州品牌网站建设如何从平庸走向卓越,企业数字化转型的避坑指南与实战策略
  • 从OpenAI甜甜圈AI硬件看端侧AI部署:本地大模型与语音交互实践指南
  • 基于Ghostty与tmux打造AI编程终端:集成Claude、分屏与通知系统
  • 国内靠谱的职务侵占罪刑事律师**,为你推荐专业法律辩护人 - 品牌排行榜
  • CBAM注意力机制:从原理到PyTorch实战,提升CNN模型性能
  • 知网AIGC检测灰色区间深度解读:为什么同一篇论文多次检测结果不同完整分析
  • 从零搭建Codex自动化工作流:环境配置、模型切换与实战指南
  • Unity编辑器扩展实战:Rainbow Folders彩色文件夹插件原理与应用
  • 从Hugging Face数学证明实验看AI智能体协作的工程化路径
  • 智能代码重用推荐系统设计与工程实践
  • 硬件驱动检测怎么做?设备管理器手动查与工具一键诊断搭配使用
  • Python零基础入门实战指南:20%核心语法与3个实用项目
  • 南昌市瓷砖空鼓维修上门推荐_2026鄱阳湖畔报价流程详解_客厅卫生间厨房阳台墙砖地砖 - 雨婺虹修缮
  • Python全栈学习路径:从爬虫到数据分析的实战指南
  • 免费无限算力平台Codex部署指南:自动化工作流实战与API集成
  • Windows原生环境部署OpenClaw:从环境配置到模型运行的完整指南
  • 开源CH347F编程器软件:支持SPI Flash/EEPROM/NAND的硬件读写工具
  • 嵌入式Linux应用开发实战:从环境搭建到高级优化
  • 自动化工作流工具对比:Hermes与OpenClaw的设计哲学与实战解析
  • 构建实时同步AI工作台:从概念到实战的智能开发环境搭建指南
  • 智能文献综述工具PaperXie的技术架构与效率提升
  • Spring Boot Actuator:微服务监控与健康检查实战指南
  • AI编程助手功能调整的思考:从Claude Code事件看开发者工具演进与应对
  • python idl IDL和Python搞对象?这座桥让绘图爽到飞起
  • 角色定制AI内容生成工具:从环境部署到API集成的完整实践指南
  • 网络安全工程师核心能力框架与技术栈解析