👅 舌象分类计算机视觉数据集介绍
📌 数据集概览
本项目是专注于中医舌诊的计算机视觉数据集,共包含约 9,890 张高分辨率舌部图像,主要用于训练深度学习模型对舌体的颜色、形态、纹理和厚度等特征进行自动化分类与评估。该数据集为中医智能化诊断系统提供了坚实的数据基础。
- 图像数量:9,890 张
- 类别数:166 类
- 适用任务:图像分类(Image Classification)
- 适配模型:ResNet、EfficientNet、MobileNet、Vision Transformer 等主流分类架构
部分包含类别
| 类别 | 英文名称 | 描述 |
|---|---|---|
| 灰色舌苔 | colorResult_grey | 舌面呈现灰色或灰白色苔质 |
| 白色舌苔 | colorResult_white | 舌苔薄白或厚白,常见于寒证或表证 |
| 黄色舌苔 | colorResult_yellow | 舌苔发黄,多提示热证或湿热 |
| 齿痕舌 | shapeResult_ToothMarks | 舌边有牙齿压迫痕迹,多见于脾虚湿盛 |
| 胖大舌 | shapeResult_fat | 舌体胖大,边缘圆钝,常伴齿痕 |
| 正常舌形 | shapeResult_normal | 舌体大小、形态正常,无异常凸起或凹陷 |
| 瘦小舌 | shapeResult_thin | 舌体瘦小,多提示气血不足或阴虚 |
| 深色舌质 | textureResult_dark | 舌质颜色偏深,如暗红、紫暗等 |
| 正常舌质 | textureResult_normal | 舌质色泽红润,纹理清晰自然 |
| 嫩舌 | textureResult_tender | 舌质柔嫩,缺乏弹性,多见于虚证 |
| 水滑舌 | textureResult_water | 舌面湿润,水液过多,提示湿盛 |
| 剥落苔 | thicknessResult_Stripping | 舌苔部分或全部剥落,呈地图状或花剥 |
| 瘀斑舌 | thicknessResult_ecchymosis | 舌面可见瘀点、瘀斑,提示血瘀证 |
| 腻苔 | thicknessResult_greasy | 舌苔厚腻、黏滞,多见于痰湿或食积 |
| 薄苔 | thicknessResult_thin | 舌苔薄而均匀,多为正常或表证 |
数据集覆盖中医舌诊中常见的颜色、形状、纹理以及厚度状态等核心特征维度,能够显著提升 AI 模型在辅助中医诊断中的客观化与标准化水平。
🎯 应用场景
该数据集非常适用于以下医疗与研究领域:
- AI 辅助中医诊断系统
自动分析舌象特征,为中医师提供客观参考,提高辨证准确性和一致性。 - 远程健康咨询平台
用户上传舌部照片,系统自动识别并给出初步健康建议,降低就医门槛。 - 健康管理 APP
集成到个人健康监测应用中,实现日常舌象跟踪与体质变化预警。 - 中医教学与培训
作为医学生和初学者的学习工具,帮助快速掌握舌诊基本特征。 - 智能问诊设备
与便携式舌象采集仪结合,实现现场快速检测与报告生成。 - 科研数据分析
支持大规模人群舌象特征分布研究,探索舌象与疾病、体质的相关性。
🖼 数据样本展示
以下展示部分数据集内的样本图片(均为真实舌部特写):
数据集包含多种真实临床环境下的舌部图像:
- 多角度拍摄:正面、侧面、俯视等多种视角,确保特征完整捕捉
- 不同光照条件:室内自然光、补光灯下拍摄,模拟真实使用环境
- 多样舌象表现:从健康舌到各类病理舌象均有涵盖
- 不同人群覆盖:包含儿童、成人、老年人及不同性别群体
- 标注精准可靠:每张图像均由中医专家审核确认,确保分类准确性
图像来源于真实临床采集,具有高度的实用价值和挑战性,特别适合训练鲁棒性强的医学影像分类模型。
使用建议
- 数据预处理优化
- 标准化光照和色彩空间,减少环境干扰
- 应用直方图均衡化或伽马校正增强细节对比度
- 统一图像尺寸(推荐 224x224 或 512x512),保持舌体居中裁剪
- 模型训练策略
- 使用在 ImageNet 上预训练的模型进行迁移学习
- 采用分层学习率或余弦退火策略提升收敛效果
- 针对小样本类别使用过采样或 Focal Loss 缓解不平衡问题
- 实际部署考虑
- 边缘设备优化:针对手机 App 或便携设备进行轻量化部署
- 实时推理能力:优化模型延迟,满足用户即时反馈需求
- 高精度要求:设置置信度阈值,避免误判风险
- 应用场景适配
- 移动端集成:开发微信小程序或独立 App,支持用户自助拍摄分析
- 医院门诊辅助:接入中医科诊室,提供快速舌象评估报告
- 云端 API 服务:提供批量上传和自动分类的云服务接口
- 性能监控与改进
- 建立按特征类别划分的性能评估矩阵
- 收集易混淆样本(如薄苔与正常苔、腻苔与厚苔)进行模型强化
- 定期更新模型以适应新的采集设备和诊断标准
🌟 数据集特色
- 临床真实性:所有图像来自真实患者病例,非合成或模拟数据
- 标注专业性:由资深中医师审核确认,确保标签准确可靠
- 特征多样性:涵盖颜色、形态、纹理、厚度四大维度共 15 类特征
- 技术兼容性:支持主流深度学习框架与移动端部署方案
- 持续维护:定期更新并扩展新病例,保持数据集时效性
📈 商业价值
该数据集在以下商业领域具有重要价值:
- 医疗 AI 公司:构建核心舌诊引擎,提升产品竞争力
- 中医器械厂商:集成到智能舌诊仪中,实现自动分析与报告
- 健康管理平台:提供 AI 舌象分析服务,增强用户粘性
- 保险与体检机构:用于健康风险评估和早期干预建议
🔗 技术标签
计算机视觉中医舌诊图像分类 AI 辅助诊断舌象分析深度学习 ResNet 医疗 AI 健康管理中医现代化
注意: 本数据集仅限于医学研究、教育及商业开发用途。在临床实际应用前,必须经过严格的医学验证和监管审批。严禁未经许可将模型直接用于临床诊断,以免造成误诊风险。
YOLOv8 训练实战
本教程介绍如何使用 YOLOv8 对目标进行识别与检测。涵盖环境配置、数据准备、训练模型、模型推理和部署等全过程。
📦 1. 环境配置
建议使用 Python 3.8+,并确保支持 CUDA 的 GPU 环境。
# 创建并激活虚拟环境(可选)
python -m venv yolov8_env
source yolov8_env/bin/activate
# Windows 用户使用
yolov8_env\Scripts\activate
安装 YOLOv8 官方库 ultralytics
pip install ultralytics
📁 2. 数据准备
2.1 数据标注格式(YOLO)
每张图像对应一个 .txt 文件,每行代表一个目标,格式如下:
<class_id> <x_center> <y_center> <width> <height>
所有值为相对比例(0~1)。类别编号从 0 开始。
2.2 文件结构示例
datasets/
├── images/
│ ├── train/
│ └── val/
└── labels/
├── train/
└── val/
2.3 创建 data.yaml 配置文件
path: ./datasets
train: images/train
val: images/val
nc: 11
names: ['Bent_Insulator', 'Broken_Insulator_Cap', '', ...]
🚀 3. 模型训练
YOLOv8 提供多种模型:yolov8n, yolov8s, yolov8m, yolov8l, yolov8x。可根据设备性能选择。
yolo detect train \nmodel=yolov8s.pt \ndata=./data.yaml \nimgsz=640 \neggs=50 \nbatch=16 \nproject=weed_detection \nname=yolov8s_crop_weed
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
model | 字符串 | - | 指定基础模型架构文件或预训练权重文件路径(.pt/.yaml) |
data | 字符串 | - | 数据集配置文件路径(YAML 格式),包含训练/验证路径和类别定义 |
imgsz | 整数 | 640 | 输入图像的尺寸(像素),推荐正方形尺寸(如 640x640) |
epochs | 整数 | 100 | 训练总轮次,50 表示整个数据集会被迭代 50 次 |
batch | 整数 | 16 | 每个批次的样本数量,值越大需要越多显存 |
project | 字符串 | - | 项目根目录名称,所有输出文件(权重/日志等)将保存在此目录下 |
name | 字符串 | - | 实验名称,用于在项目目录下创建子文件夹存放本次训练结果 |
关键参数补充说明:
model=yolov8s.pt- 使用预训练的 YOLOv8 small 版本(平衡速度与精度)
- 可用选项:
yolov8n.pt(nano)/yolov8m.pt(medium)/yolov8l.pt(large)
data=./data.yaml
# 典型 data.yaml 结构示例
path: ../datasets/weeds
train: images/train
val: images/val
names:
0: Bent_Insulator
1: Broken_Insulator_Cap
2: ...
3: ...
📈 4. 模型验证与测试
4.1 验证模型性能
yolo detect val \nmodel=runs/detect/yolov8s_crop_weed/weights/best.pt \ndata=./data.yaml
| 参数 | 类型 | 必需 | 说明 |
|---|---|---|---|
model | 字符串 | 是 | 要验证的模型权重路径(通常为训练生成的 best.pt 或 last.pt) |
data | 字符串 | 是 | 与训练时相同的 YAML 配置文件路径,需包含验证集路径和类别定义 |
关键参数详解
model=runs/detect/yolov8s_crop_weed/weights/best.pt- 使用训练过程中在验证集表现最好的模型权重(
best.pt) - 替代选项:
last.pt(最终 epoch 的权重)
- 使用训练过程中在验证集表现最好的模型权重(
data=./data.yaml- 必须与训练时使用的配置文件一致
确保验证集路径正确:
val: images/val # 验证集图片路径
names:
0: crop
1: weed
路径结构说明:
runs/detect/
└── [训练任务名称]/
└── weights/
├── best.pt # 验证指标最优的模型
└── last.pt # 最后一个 epoch 的模型
常用可选参数
| 参数 | 示例值 | 作用 |
|---|---|---|
batch | 16 | 验证时的批次大小 |
imgsz | 640 | 输入图像尺寸(需与训练一致) |
conf | 0.25 | 置信度阈值(0-1) |
iou | 0.7 | NMS 的 IoU 阈值 |
device | 0/cpu | 选择计算设备 |
save_json | True | 保存结果为 JSON 文件 |
典型输出指标
Class Images Instances P R mAP50 mAP50-95
all 100 752 0.891 0.867 0.904 0.672
crop 100 412 0.912 0.901 0.927 0.701
weed 100 340 0.870 0.833 0.881 0.643
4.2 推理测试图像
yolo detect predict \nmodel=runs/detect/yolov8s_crop_weed/weights/best.pt \nsource=./datasets/images/val \nsave=True
🧠 5. 自定义推理脚本(Python)
from ultralytics import YOLO
import cv2
# 加载模型
model = YOLO('runs/detect/yolov8s_crop_weed/weights/best.pt')
# 推理图像
results = model('test.jpg')
# 可视化并保存结果
results[0].show()
results[0].save(filename='result.jpg')
🛠 6. 部署建议
✅ 本地运行:通过 Python 脚本直接推理。
🌐 Web API:可用 Flask/FastAPI 搭建检测接口。
📦 边缘部署:YOLOv8 支持导出为 ONNX,便于在 Jetson、RKNN 等平台上部署。
导出示例:
yolo export model=best.pt format=onnx
📌 总结流程
| 阶段 | 内容 |
|---|---|
| ✅ 环境配置 | 安装 ultralytics, PyTorch 等依赖 |
| ✅ 数据准备 | 标注图片、组织数据集结构、配置 YAML |
| ✅ 模型训练 | 使用命令行开始训练 YOLOv8 模型 |
| ✅ 验证评估 | 检查模型准确率、mAP 等性能指标 |
| ✅ 推理测试 | 运行模型检测实际图像目标 |
| ✅ 高级部署 | 导出模型,部署到 Web 或边缘设备 |


