文章目录
前言:为什么你的UNet总训不好?(真实血泪教训)
老铁们!今天要分享的是我在医院做肝肿瘤分割项目时总结的UNet训练经验(含完整代码)。当初我可是在数据准备环节踩了无数坑(连续三周模型精度上不去!!!),现在把最干的干货整理给大家,看完至少节省80%的调试时间!
一、数据集准备的正确姿势(90%的人第一步就错了)
1.1 医学影像的格式转换黑科技
CT/MRI的DICOM文件转PNG千万别直接用OpenCV!会丢失窗宽窗位信息(血泪教训)!正确做法:
import pydicom
from pydicom.pixel_data_handlers import apply_voi_lut
def dicom_to_numpy(ds):
# 关键参数设置(不同设备要调整)
if hasattr(ds, 'WindowWidth'):
ds.WindowWidth = 400 # 腹部CT常用窗宽
ds.WindowCenter = 40 # 窗位
return apply_voi_lut(ds.pixel_array, ds)
1.2 标注工具的选择(亲测对比)
- ITK-SNAP:适合3D标注但学习成本高
- Labelme魔改版(推荐):我修改的版本支持nii文件标注,GitHub搜索"labelme-medical"
(超级重要)标注保存时一定要检查mask是否为单通道8位图!遇到过标注显示正常但训练时发现mask全黑的诡异bug…
二、数据增强的隐藏技巧(让模型精度暴涨的秘诀)
2.1 不只是旋转翻转!医学影像专用增强:
from albumentations import (
ElasticTransform, GridDistortion, RandomGamma,
Compose, HorizontalFlip, Rotate
)
train_transform = Compose([
Rotate(limit=20, p=0.5),
ElasticTransform(alpha=120, sigma=120*0.05,
alpha_affine=120*0.03, p=0.3),
GridDistortion(p=0.3),
RandomGamma(gamma_limit=(80,120), p=0.5),
HorizontalFlip(p=

最低0.47元/天 解锁文章
1523

被折叠的 条评论
为什么被折叠?



