基于ResNet-18的智能舌诊分类系统:AI助力中医数字化
🔍 项目背景
中医舌诊作为"望闻问切"四诊之首,承载着千年医学智慧。传统舌诊依赖医师经验,主观性强且效率低。本项目首次将深度学习技术与中医舌诊结合,构建了一个高精度的舌苔分类系统,通过AI算法实现:
- 多类型舌苔自动识别(黑苔、地图舌、紫苔等6大类别)
- 结合中医理论的智能分析报告
- 支持临床辅助诊断与教学研究
🚀 核心功能
功能模块 | 技术亮点 | 应用场景 |
---|---|---|
图像分类 | ResNet-18深度网络 | 舌象特征自动提取 |
智能分析 | 中医证候知识库 | 辅助医师辨证论治 |
可视化界面 | PyQt5图形交互 | 临床快速诊断 |
模型训练 | 数据增强+迁移学习 | 自定义数据集扩展 |
🔧 技术实现
# 核心代码示例(数据加载部分)
class TongueDataset(Dataset):
def __init__(self, root_dir, transform=None):
self.classes = ['black', 'map', 'purple', 'red_yellow_thick_greasy', 'red_thick_greasy', 'white_thick_greasy']
self.imgs = self._load_images(root_dir)
self.transform = transform
def _load_images(self, root_dir):
images = []
for label in self.classes:
path = os.path.join(root_dir, label)
for img_name in os.listdir(path):
images.append((os.path.join(path, img_name), label))
return images
def __getitem__(self, idx):
img_path, label = self.imgs[idx]
image = Image.open(img_path).convert('RGB')
if self.transform:
image = self.transform(image)
return image, self.classes.index(label)
📦 使用指南
1. 环境搭建
git clone https://gitee.com/sakura_lyh/resnet.git
cd resnet
pip install -r requirements.txt # 自动安装PyTorch等依赖
2. 快速体验
# 运行可视化诊断界面
python gui.py
# 模型训练(约30分钟)
python train.py --epochs 50 --batch-size 32
# 模型测试
python test.py --net model/net_049.pth
📊 项目成果
- 训练精度:验证集准确率98.7%(50个epoch)
- 诊断速度:单张图片处理<0.1秒(RTX 3060)
- 数据集:包含6类2000+标注样本(持续扩展中)
📁 项目结构
resnet/
├── datasets/ # 分类数据集
├── model/ # 训练好的模型文件
├── gui.py # 可视化界面入口
├── train.py # 训练脚本
├── predict.py # 图像预测接口
└── test.py # 测试脚本
💡 扩展建议
- 增加舌苔厚度量化分析
- 集成脉诊数据实现多模态诊断
- 开发移动端APP版本
🤝 参与贡献
欢迎Star本仓库!如果您有:
- 新的舌苔样本数据
- 中医证候知识库资源
- 算法优化建议
请通过Gitee Issues或邮件(liu_yu_hao@126.com)联系我!
🔗 资源链接
本项目采用MIT开源协议,欢迎商业使用。转载请注明出处。