# black **Repository Path**: hydrogen-elements/black ## Basic Information - **Project Name**: black - **Description**: 基于TensorFlowU-Net实现医学黑色素瘤检测 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-10 - **Last Updated**: 2025-04-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 医学黑色素瘤检测项目 这是一个基于TensorFlow和U-Net架构的医学黑色素瘤检测项目。本项目实现了一个简单的界面,可以上传图像并进行黑色素瘤区域检测。 ## 项目结构 - `data_preprocessing.py`: 数据预处理和增强的脚本 - `unet_model.py`: U-Net模型的定义 - `train_model.py`: 模型训练脚本 - `app.py`: 主应用程序,提供图形用户界面 - `utils.py`: 工具函数 ## 数据集存放 1. 下载ISIC 2018黑色素瘤数据集,地址:https://challenge.isic-archive.com/data/#2018 2. 创建以下文件夹结构来存放数据: ``` e:\black\ └── data\ ├── raw\ │ ├── ISIC2018_Task1-2_Training_Input\ # 存放训练用图像 │ ├── ISIC2018_Task1_Training_GroundTruth\ # 存放训练用掩码 │ ├── ISIC2018_Task1-2_Test_Input\ # 存放测试用图像 │ └── ISIC2018_Task1_Test_GroundTruth\ # 存放测试用掩码 └── processed\ # 处理后的数据将存放在这里 ``` 3. 处理后的数据(`.npy`文件)将保存在`data/processed/`目录中 ## 系统要求 - Python 3.7-3.9 (推荐使用Python 3.8) - 建议使用虚拟环境(如conda、venv等) ## 安装依赖 ```bash pip install -r requirements.txt ``` ## 使用方法 1. 准备数据集(如ISIC 2018黑色素瘤数据集) 2. 运行数据预处理脚本生成训练数据 ```bash python data_preprocessing.py ``` 3. 训练模型 ```bash python train_model.py ``` 4. 启动应用界面 ```bash streamlit run app.py ``` ## 知识点讲解 ### 1. U-Net架构 U-Net是一种卷积神经网络架构,最初设计用于生物医学图像分割。其特点是: - 对称的"U"形结构,包括下采样路径(左侧)和上采样路径(右侧) - 使用跳跃连接(Skip Connections)将下采样的特征图与上采样的特征图连接,保留空间信息 - 非常适合小型数据集的图像分割任务 ### 2. 医学图像预处理 医学图像预处理对于提高模型性能至关重要: - 图像尺寸统一化:将不同大小的图像调整为固定尺寸 - 图像增强:通过旋转、翻转等方式扩增数据集 - 归一化:将像素值映射到[0,1]区间,提高模型训练稳定性 ### 3. 模型训练技巧 - 使用回调函数如ModelCheckpoint保存最佳模型 - 使用ReduceLROnPlateau动态调整学习率 - 使用EarlyStopping避免过拟合 ### 4. 图像分割评估指标 - 准确率(Accuracy):正确预测的像素比例 - 交并比(IoU):预测区域和真实区域的交集除以并集 - Dice系数:评估两个样本的相似度 ## 参考资源 - [ISIC挑战赛数据集](https://challenge.isic-archive.com/data/) - [U-Net论文](https://arxiv.org/abs/1505.04597) - [TensorFlow官方文档](https://www.tensorflow.org/api_docs/python/tf)