基于深度学习与大语言模型的皮肤病智能辅助诊断系统
资源下载
1. 项目研究背景与意义
皮肤病作为医学领域高发、常见的一大类疾病,由于其种类繁多且病理外观相似度较高,在实际临床诊断中对医生的专业经验有较高要求。同时,对于偏远地区或医疗资源不足的场景,人们在患有皮肤异常时往往难以第一时间获得准确的病理分析。
本项目旨在设计并实现一套皮肤病智能辅助识别与医学问答系统 (Skin Disease Recognition System, SDRS)。系统基于轻量级视觉目标检测网络(YOLO)对患者体表病变部位进行毫秒级定位和初筛分类;更重要的是,通过引入强大的多模态大语言模型(LLaVA)与 RAG(检索增强生成)机制,系统能在病灶识别的基础上,提供科学的病理科普、护理建议和明确的就医指导。本系统的设计高度贴合医学与人工智能交叉领域的工程开发需求,对于医学辅助诊断的探索具有充分的研究价值和实用意义。


2. 数据集详细描述
本项目核心训练与评测数据基于大型公开的皮肤病特征图像数据集。
2.1 数据集分布与类别
系统兼容多达 23 种常见与罕见皮肤病类型的细分,涵盖范围包括但不限于:
- 炎症性与免疫性皮肤病:特应性皮炎 (Atopic Dermatitis)、湿疹 (Eczema)、银屑病 (Psoriasis)、荨麻疹 (Urticaria) 等。
- 感染性皮肤病:蜂窝织炎等各类细菌感染、真菌性感染(如体癣)、病毒性感染(如HPV疣、水痘疱疹)。
- 肿瘤及恶性病变:黑色素瘤 (Melanoma)、基底细胞癌、脂溢性角化病等良恶性皮肤增生物。
- 其他门类皮肤病:痤疮与酒渣鼻 (Acne and Rosacea)、脱发症及毛发疾病、甲部疾病及接触性皮炎等。
(具体类别映射可以在后端的 DISEASE_NAME_MAP 字典配置中详细检阅)
2.2 数据集转换处理工程
项目中内置了专门针对原始分类目录构建的数据集一键转换清洗脚本(convert_to_yolo.py)。该脚本支持:
- 自适应目录扫描 :自动识别并对齐原始数据的
train和test数据集分割架构。 - 坐标解析与标签生成:自动生成适应 YOLO 视觉空间感知机制的标准相对坐标 TXT 标签文件。
- 配置文件分发 :自动组装和生成包含类别清单及目录树结构的
data.yaml文件以支持后续的直接模型训练。
3. 核心算法与理论基础
3.1 视觉目标分类与检测算法 (YOLO)
采用高效的无锚框视觉体系结构检测目标区域。模型能够对病变区域进行精准框选与截取,并在前端界面渲染输出。这种设计有效排除了大面积无关健康肌肤与环境光照背景的干扰。
3.2 大尺度视觉语言多模型 (LLaVA)
集成引入视觉指令微调模型 LLaVA (Large Language-and-Vision Assistant)。
- 此模块主要作为项目的智能大脑。在大模型内部的医学级
System Prompt引导下,系统被设为一位专业且具备同理心的皮肤科诊断助理。 - 遵循严谨的医疗免责制度,在解答患者疑难的同时,模型被硬性要求必须输出警告信息并建议患者线下就诊进一步确认。
3.3 检索增强生成知识引导 (RAG)
为消除直接依赖生成式 AI 进行医疗诊断伴随的"幻觉谎言"风险,系统设计了严密的 RAG 外挂大脑。当视觉系统初筛出疑似病名时,引擎立刻激活 SQLite 内置的权威医学知识库,抓取对应该病症的规范《症状特征描述》和《护理/治疗防范》,组合拼接入原始提问 Context 后再呈递给大模型。从而从根本上确保了解答的严谨性和学术参考性。





4. 快速部署与启动指南
平台与环境要求
- 软件环境: Python 3.8 或以上版本, Node.js 18.0 或以上版本
- 核心前置依赖 (必须项) : 下载并启动本地端口微服务框架 Ollama,用于驱动强大的本地 LLaVA 基座。
- 部署指令 : 安装并拉取模型
ollama pull llava
步骤 1:部署启动后端引擎(API 与推断层)
bash
cd backend
# 安装后端项目全量依赖
pip install -r requirements.txt
# 启动 Fast 服务节点 (若有端口权限冲突请换绑端口)
uvicorn main:app --reload --host 0.0.0.0 --port 8000
(注意:首次拉起服务器时,系统将基于文件 data/diseases.json 即刻生成 sql_app.db 并录入全部医学基础词库)
步骤 2:部署启动前端大屏控制台
bash
cd frontend
# 拉取 Node 支持插件及 Tailwind / React 模块包
npm install
# 以开发者热重载模式启动交互页面
npm run dev
在同网段或同机浏览器地址栏直接键入回车访问 http://localhost:5173。
5. 项目结构与主要模块总览
text
SDRS/
├── backend/ # Python 后端算法工程区
│ ├── main.py # 网关路由中心与英汉疾病翻译常量管线
│ ├── engine.py # YOLO 图像切割与 LLaVA Prompt生成装配间
│ ├── convert_to_yolo.py # 源格式数据集的提取重构生成脚本
│ ├── training.py # AI 在线训练集群的算力管理者
│ ├── database.py / models.py# ORM 架构映射实现
│ ├── datasets/ # 数据集装载区 (源文件与清洗集)
│ └── runs/ # YOLO 跑批测试与各项 Metric 指标出图地
│
├── frontend/ # 玻璃拟态(Glassmorphism)的前端系统
│ ├── src/
│ │ ├── pages/
│ │ │ ├── Dashboard.jsx # 核心辅助问诊与图表智能渲染控制台
│ │ │ ├── KnowledgeBase.jsx # 皮肤生理知识病历卡片与词典大屏
│ │ │ ├── Statistics.jsx # 统计患病态势数据与总体检测看板
│ │ │ ├── Training.jsx # 前后端联机的网页级炼丹操作台
│ │ │ └── History.jsx # 过往患者初诊图像与诊疗记录档案
│ │ └── App.jsx # 全局导航栏封装结构与路由装载器
│ └── public/ # 网站资源与 Favicon
│
├── data/
│ └── diseases.json # 最基础的核心:被解析装订入库的23种皮肤病治疗知识字典
│
└── README.md # 全项目的导航雷达说明书
6. 使用与扩展说明
- 在线患病自诊体验:当用户因偶发皮肤红斑、脱落等情况感到不安时,直接向左侧推板上传清晰的局部相素高清照片。平台将闪电级生成并高亮标记异常方位和对应英文术语简析。
- 向 AI 私人护士提问:诊断一经出炉,用户即可在右置对话面板通过自然语言询问更多疑惑(例如:"脂溢性角化病如何日常清洗防感染?"),系统将引用医学文档提供极具人情味的详细解释与建议指南。
- 自定义病种扩充 :科研人员或医疗专家只需修改根目录
data/diseases.json文件并同步backend/main.py(DISEASE_NAME_MAP字典),同时挂载新的权重训练完毕,系统便可自动无痕覆盖更新业务。