# A07 **Repository Path**: yiyuy/a07 ## Basic Information - **Project Name**: A07 - **Description**: 服务外包创新创业大赛:【A07】基于眼底医学影像的眼科疾病智能诊断系统 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-03-02 - **Last Updated**: 2025-08-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 基于眼底医学影像的眼科疾病智能诊断系统 ### 1.使用方法 - 前言 ``` 请注意,由于VMamba的selective_scan模块必须要有cuda环境,所以仅有cpu的机器是无法配置成功的,解决方法:使用算力租赁网站,租借gpu服务器,按照下方使用方法配置环境 如果你的电脑有gpu,然而windows环境下配置mamba环境以及安装selective_scan非常困难,解决方法:1.同上,使用算力租赁网站。2使用wsl技术,在window上搭建linux环境,并按照下方使用方法配置环境 ``` - 克隆本仓库(以下方法作者实践已成功) ``` git clone https://gitee.com/yiyuy/a07.git ``` - 核心1:安装torch + cu11.8 ``` pip install torch==2.0.1 torchvision==0.15.2 --index-url https://mirror.sjtu.edu.cn/pytorch-wheels/cu118 ``` - 核心2:安装selective-scan模块 ```` cd ./a07/backend/MambaNet/Models/kernels/selective_scan pip install . ```` - 核心3:安装mamba-ssm和causal-conv1d ``` pip install mamba-ssm pip install causal-conv1d ``` - 完成上面三步,你就已经完成了最难的地方,接下来相对轻松 - 通过不断启动app.py 安装缺少的包 ``` 一直执行 python app.py 跳出No Module named xxx,就去pip install xxx,直到运行成功 ``` - 放入模型所需权重 ``` 模型共有四个需要的权重: 1.pytorch_model.bin 解释:WCG-VMamba的权重 使用: cd ./a07/backend/MambaNet mkdir save_models cd save_models mkdir CMAT 将pytorch_model.bin放入该文件夹 2.vssm_tiny_0230_ckpt_epoch_262.pth 解释:VMamba所需要的预训练权重 使用: cd ./a07/backend 将vssm_tiny_0230_ckpt_epoch_262.pth放在该文件夹下 3.pytorch_model.bin (与1不同,是另一个权重) 解释:tinybert所需要的预训练权重 使用: cd ./07/backend/TinyBertWeight 将pytorch_model.bin放入该文件夹下 4.Epoch49.pth 解释:亮度增强网络DCENet所需的权重 使用: cd ./a07/backend/DCENet mkdir snapshot_epochs cd snapshot_epochs 将Epoch49.pth放入该文件夹下 ``` - 由于上传的图片以及增强的图片都是本地保存,因此需要建立一些特定文件夹 ``` cd ./a07/backend/controller mkdir LocalBatchImage mkdir LocalCsv mkdir LocalImage mkdir LocalPdf mkdir ResultCsv mkdir ResultImage ``` - 将企业提供的图片数据集中的所有图片放入**dataset/FundusDataset/Image**,文件结构如下: ``` deepLearning --dataset --FundusDataset --Image 0_left.jpg 0_right.jpg .... xxx_left.jpg xxx_right.jpg --Csv Label.csv train_data.csv test_data.csv ``` - 进入**backend/**文件夹,执行**python app.py**,到此处后端启动完成 ``` cd backend python app.py ``` - 回到**deeplearning(根目录)**目录下,进入**front_ui**文件夹,执行**npm run serve**,到此处前端启动完成 ``` cd .. cd front_ui npm run serve ``` - 测试账号密码如下 ``` 账号:admin 密码:admin123 ``` ### 2.眼底识别模型简介 使用多模态多分类模型WCG-VMamba,W:全称WAVM结合了小波注意力和Mix-VMamba,C:全称CMAT代表跨模态对齐Transformer,G:全称GRW-DSA,高斯随机游走鸭群算法,可以在模型训练之前通过预训练找到最适合的学习率。模型输入主要使用文本和图像两个模态,图像模态即两张眼底图像拼接,文本模态即左眼眼底疾病关键词+右眼眼底疾病关键词。模型输出会是一个数组,有8个元素,包含0或1,如果数组在下标i为0代表患者没有患第i种病,为1代表患有该病。 ### 3.文件结构 ``` deepLearning --backend 包含后端代码(下面的结构中只写了重要的文件) --controller 接口层 所有接口都在这里面 xxxController.py --DCENet 亮度增强网络 --snapshot_epochs Epoch49.pth 这是一个预训练好的权重 lowlight_test.py 对图像进行增强用这个 lowlight_train.py 训练这个网络用这个 --entity 存放一些数据库对象的实体 返回类 --MambaNet 眼底多模态识别网络 --save_models 权重存放位置 --CMAT 把群里发的pytorch_model.bin放在这个文件 vssm_tiny_0230_ckpt_epoch_262.pth WAVM网络所需要的预训练文件 放在MambaNet下面 --dataset 存放数据集 --FundusDataset --Image 存放所有数据集图像 --Csv 存放所有csv文件 --datasetUtil 数据集工具 merge_csv.ipynb 合并某个文件下所有csv move_data_by_csv.ipynb 根据csv移动文件 split_data_csv.ipynb 分割csv文件为训练 验证 测试 split_data_png.ipynb 分割png文件为训练 验证 测试 --font_ui 包含前端代码 ``` ### 4.任务列表 - [x] 眼底图像亮度均衡问题 - [x] 眼底图像拼接问题 企业已说明,直接在横向或者纵向拼接两张图像即可。 - [x] 眼底疾病多标签分类模型 - [x] 眼底疾病识别应用 - [ ] 文档 - [ ] PPT - [ ] 视频