WitchPuff / CRC-Diagnose

A medical image recognition project powered by self-implemented ResNet and ViT models, utilizing PyTorch, with a user-friendly web demo built on Flask and Vue. 该项目使用PyTorch开发,基于自主实现的ResNet和ViT模型及NCT-CRC-HE-100K数据集,实现了直结肠癌医学图像识别,配备了基于Flask和Vue的用户友好型Web演示。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CRC-Diagnose: 基于ResNet和ViT的医学影像识别

该项目使用PyTorch开发,基于自主实现的ResNet和ViT模型及NCT-CRC-HE-100K数据集,实现了直结肠癌医学图像识别,配备了基于Flask和Vue的用户友好型Web演示。

Quick Start

Python环境

pip install -r requirements.txt

前端Vue

1、安装 Node.js 和 npm:

首先,确保你的系统上已经安装了 Node.js 和 npm。你可以从 Node.js 官网 下载并安装它们。安装完成后,你可以通过以下命令验证是否成功安装:

node -v
npm -v

2. 安装 Vue CLI:

Vue CLI 是一个用于创建和管理 Vue.js 项目的官方命令行工具。安装 Vue CLI 可以让你更轻松地启动和管理 Vue.js 项目。运行以下命令来安装 Vue CLI:

npm install -g @vue/cli

安装完成后,你可以使用以下命令验证安装:

vue --version

3、运行Vue

cd gui/frontend
npm install
npm run serve

后端Flask

运行Flask服务器

python -m gui.backend.app

准备数据

在此处查看数据集

下载CRC-VAL-HE-7K.zip至根目录,也可以下载整个数据集NCT-CRC-HE-100K

运行utils/data.py,将自动处理CRC-VAL-HE-7K.zip,预处理后的数据将分为test(data_0.pt, label_0.pt)、train、valid存放在data/中。

# if __name__ == '__main__':
#    process('CRC-VAL-HE-7K.zip')
python utils\data.py

准备模型权重

ResNet34权重已经放在models/ResNet34_CRC.pt,在此处下载ViT权重,同样放至models/ViT_CRC.pt

Usage

训练

# 训练ResNet并导入已经训练好的权重
python main.py train --model ResNet34 --pretrained True
# 训练ResNet并导入已经训练好的权重
python main.py train --model ViT --pretrained True

# epoch、batch_size、learning_rate等训练参数已经默认设置为40/32/1e-2,可以在命令行修改训练参数
python main.py train --model ResNet34 --epoch 30 --batch_size 16 --learning_rate 0.0001 --pretrained True

# data路径,dataset,log路径,num_classes已经根据训练的数据集默认设置,如不更换数据集无需修改

预测

# 输入待预测图片的路径及进行模型选择
python main.py predict --img data/adi.tif --model ResNet34
python main.py predict --img data/back.tif --model ViT

Web Demo

dashboard

显示两个模型的训练性能数据。

image-20231010175227043

diagnose

能上传图片、选择模型进行预测。

image-20231010200111965

image-20231010200049544

Citation

前端使用了该Vue模板

About

A medical image recognition project powered by self-implemented ResNet and ViT models, utilizing PyTorch, with a user-friendly web demo built on Flask and Vue. 该项目使用PyTorch开发,基于自主实现的ResNet和ViT模型及NCT-CRC-HE-100K数据集,实现了直结肠癌医学图像识别,配备了基于Flask和Vue的用户友好型Web演示。

License:MIT License


Languages

Language:Vue 90.5%Language:Python 5.4%Language:JavaScript 3.8%Language:HTML 0.3%