Coder Social home page Coder Social logo

medseg's Introduction

medSeg

仿照百度PaddleSeg结构实现的一个医学影像方向分割任务开发套件。主要目标是实现多种2D和3D网络,多种loss和数据增强策略。目前项目还在开发中,但是已经能在肝脏分割场景下做到 .94 的IOU。2.5D P-Unet项目基于这个套件实现。开发计划见Project

项目结构

medseg 项目主体

  • prep_3d.py prep_2d.py 分别对3D和2D的输入数据进行预处理,形成npy格式的训练数据
  • loss.py 定义loss
  • models 定义模型
  • aug.py 定义数据增强方法
  • train.py 训练网络
  • infer.py 用训练完的模型进行推理
  • vis.py 对数据进行可视化
  • eval.py 对分割结果进行评估

tool 工具脚本

  • merge.py 将针对同一个数据的多个前景分割结果进行融合
  • thresh_search.py 利用验证集搜索最合适的结果划分阈值
  • vote.py 利用投票的方式进行多个分割结果的融合
  • zip_dataset.py 对数据集进行分包压缩,满足每个包不超过一定大小,解压后可以还原目录结构

config 配置文件

所有配置参考config.py

使用方法

配置环境

安装环境依赖:

pip install -r requirements.txt

paddle框架的安装参考paddle官网 如果进行训练需要有数据,目前项目主要面向lits调试,在aistudio上可以找到。训练集 测试集

数据集下载,解压之后将所有的训练集volume放到一个文件夹,所有的训练集label放到一个文件夹,测试集volume放到一个文件夹。修改 lits.yaml 中对应的路径。

预处理

配置完毕需要首先进行数据预处理,这里主要是将数据统一成npz格式,方便后续训练。也可以在这一步结合一些预处理步骤对3D CT数据可以做窗口化,3D旋转。

python medseg/prep_3d.py -c config/lits.yaml

训练

网络用预处理后的数据进行训练,训练提供一些参数,-h 可以显示。如果用的是cpu版本的paddle,不要添加 --use_gpu 参数。

python medseg/train.py -c config/lits.yaml --use_gpu --do_eval

预测

最后一步是用训练好的网络进行预测,要配置好模型权重的路径,按照上一步实际输出的路径进行修改。代码会读取inference路径下所有的nii逐个进行预测。目前支持的数据格式有 .nii, .nii.gz。

python infer.py -c config/lits.yaml --use_gpu

这个项目在aistudio中有完整的环境,fork项目可以直接运行,项目地址中运行

更新日志

  • 2020.6.21 v0.2.0

  • 项目整体修改为使用配置文件,丰富功能,增加可视化

  • 2020.5.1 v0.1.0

  • 在lits数据集上跑通预处理,训练,预测脚本

如项目使用中有任何问题,欢迎加入 Aistudio医学兴趣组,在群中提问,也可以和更多大佬一起学习和进步。

2132453929.jpg

medseg's People

Contributors

linhandev avatar felixshing avatar harukama avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.