nnDetection复现Luna16 附模型

news2024/12/24 9:12:54

前提概要:

淘论文发现nnDetection框架对肺结节的检测效果挺好,便跑了跑复现了下, 作者诚不欺人,确实挺好, 并附上我依据文档训练的模型。

复现步骤:

1.安装 cuda11.4, cudnn8.2.4

2.创建虚拟环境

conda create -n py38 python=3.8

3.安装 pytorch

pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu114

4.下载 nnDetection 项目

​ 进入 nnDetection-main, 执行如下命令, 安装依赖包

 pip install -e .

5.设置环境变量

export det_data=/data/code/nnDetection-main/
export det_models=/data/code/nnDetection-main/Task016_Luna/models/
export OMP_NUM_THREADS=1
export det_num_threads=6

6.数据集构造

创建 Task016_Luna/raw 文件夹
将 subset1 - subset10 luna16 数据放到 Task016_Luna/raw 文件夹中
最后文件视图如下格式:
在这里插入图片描述

7.预处理

# 该脚本将 luna16 原 .raw 格式数据另存为 .nii.gz 格式, 并利用 annotations.csv 中提供的结节信息,构造 结节的标签信息以及mask数据
python Task016_Luna/scripts/prepare.py

在这里插入图片描述

8.依次执行如下官网提供的如下指令

nndet_prep Task016_Luna -np 16 -npp 16
nndet_unpack ${det_data}/Task016_Luna/preprocessed/D3V001_3d/imagesTr 6 (耗时一个半小时)
nndet_train Task016_Luna --sweep
nndet_sweep Task016_Luna RetinaUNetV001_D3V001_3d 0
nndet_eval Task016_Luna RetinaUNetV001_D3V001_3d 0 --boxes --analyze_boxes
nndet_consolidate Task016_Luna RetinaUNetV001_D3V001_3d --sweep_boxes
nndet_predict Task016_Luna RetinaUNetV001_D3V001_3d --fold 0 --test_split --no_preprocess

在这里插入图片描述

跑完如上脚本后, 在配置的det_models路径下会生成如上文件夹, 因为训练实在是太耗时, 我使用RTX5000, 16GB显卡训练了6天得出了10折交叉验证中的一折的结果, 结果已经很不错了, 就没继续跑,如下是框架生成的FROC曲线,可以看到结果确实很不错。

在这里插入图片描述

附件(点击下载)

附件中的文件在直接使用模型推理时需要用到

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/53720.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JAVA12_01学习总结(MySQL,约束)

今日内容 1. MySql基本查询 --ifnull(字段名称,预期值)-如果两个int类型数据求和,其中一个为null,那么结果就是null,使用ifnull来解决 -- 需求--查询姓名和成绩和 -- 创建表 CREATE TABLE test(id INT , -- 编号NAME VARCHAR(20) , -- 姓名age INT , -- 年龄math INT , -- 数…

html转pdf(总结五种方法Java)

html转pdf(总结五种方法Java) Java 实现html转pdf,总结五种方法。 推荐使用wkhtmltopdf,Itext 方法一:使用wkhtmltopdf 1、下载插件wkhtmltopdf https://wkhtmltopdf.org/downloads.html 2、本机测试 本目录下cmd进入 输入命…

解读数仓中的数据对象及相关关系

摘要:为实现不同的功能,GaussDB(DWS)提供了不同的数据对象类型,包括索引、行存表、列存表及其辅助表等。这些数据对象在特定的条件下实现不同的功能,为数据库的快速高效提供了保证,本文对部分数…

深聊性能测试,从入门到放弃之: Windows系统性能监控(一) 性能监视器介绍及使用。

性能监视器介绍及使用1、引言2、性能监视器2.1 打开方式2.2 基本介绍2.3 计数器介绍2.3.1 处理器性能计数器2.3.2 内存性能计数器2.3.3 网络性能计数器2.4 创建及使用2.4.1 用户自定义创建2.4.2 直接添加计数器3、总结1、引言 小屌丝:鱼哥,你有没有监控…

G1D28-hinge loss fuction-RAGA pre总结-DeBERTa-杂七杂八visiomathtypeexcel

一、hinge loss和交叉熵对比 (一 )hinge loss主要思想 让正确分类和错误分类的距离达到λ。λ用于控制两种分类样本之间的距离。 (二)对比学习 自监督学习的一种,不依赖标注数据进行学习。蛮有意思的,但是今天没时间了&#x…

逻辑学三大定律是什么?

逻辑思维三大定律: 同一律,矛盾律, 排中律。 同一律:A 是 A。 前后思维中,概念要同一。白马非马论违反同一律。商家的买一赠一,前后两个一不是同一个概念。违反同一律。矛盾律:A 是 B, A 不是B,…

【Android App】发送BLE广播及通过主从BLE实现聊天应用讲解及实战(附源码和演示 超详细)

需要源码请点赞关注收藏后评论区留言私信~~~ 一、发送BLE广播 调用蓝牙适配器的getBluetoothLeAdvertiser方法,获得BluetoothLeAdvertiser广播器对象。 广播器的主要方法说明如下: startAdvertising方法表示开始发送BLE广播, stopAdvertis…

springBoot开源MES生产制造执行系统源码带文字搭建教程

源码分享!需要源码学习参考可私信。 技术框架:springBoot mybatis-plus shiro hutool layui swagger freemarker mysql8 echarts 运行环境:IntelliJ IDEA 2022 maven nginx 宝塔面板 系统功能 用户管理:用户是系统操…

用VS开发一款“飞机大战“单机游戏<C++>

显示界面如上图所示 自己找的背景和飞机素材,先将素材奉上. 接下来我先简单分析一下这个单机游戏的运行逻辑: 就像显示界面所显示的那样,我们想要实现的是自己的飞机在发射子弹(子弹在上图没显示),然后当子弹射到敌方飞机,这里设置了两种类型的飞机,如果读者想定义更多类型的…

基于51单片机农业大棚温控系统

资料编号:197 大棚种植温控系统概述: 本文介绍的是一个由单片机构成的温度控制系统,主要用来提供测温的解决方案,同时还能实时监控温度变化趋势,以及报警功能。它利用STC89C52RC单片机,DS18B20&#xff0c…

概率图模型:HMM(隐马),MEMM(最大熵),CRF(条件随机场)

1.概率图模型:HMM(隐马),MEMM(最大熵),CRF(条件随机场)概率:既然是一个图那么就是一个有圈有边的结构,圈代表随机向量,随机变量之间有边,边上有概…

数字验证学习笔记——UVM学习2 覆盖方法

一、覆盖方法 覆盖机制可以将原来所属的类型替换为另外一个新的类型。 在覆盖之后,原本用来创建原属类型的请求,将由工厂来创建新的替换类型。 无需再修改原始代码,继而保证了原有代码的封装性。新的替换类型必须与被替换类型兼容&#xff…

OpenStack 学习之 OVN : L2网络 ( Logical switches 逻辑交换机)

OVN Manual install & Configuration Open vSwitch 官网 参考 OVN学习(一) OVN实战一之GNS3操作指南及OVN入门 简单理解和知识 按照 OVN Manual install & Configuration 分别叫做 Controller 节点和 Compute 节点 ,其他一般叫做…

Android Studio 打一个正式签名的Apk

如何打一个带正式签名文件的app (给自己的劳动成果冠名) 1. 选择build -> generate signed bundle/apk 2. 这里有两个选择, bundle or apk, 我们选择apk 于是勾选 apk, 并点下一步 3. 来到选择证书文件的地方, 但是我们这是第一次做, 还没有证书文件, 所以选择新建一个证…

【Docker学习系列】Docker学习2-docker设置阿里云镜像加速器

在上一篇中,我们学会了在centos中安装docer。我们知道,镜像都是外网的,镜像一般都是比较大的,因为种种原因,我们知道,从外网下载比较慢的。所以,本文,凯哥就介绍怎么将docker的镜像拉…

keil5打开keil4工程无法编译的情况解决办法!!!!!!

目录 1.情况 1.keil5使用(打开)keil4文件工程的时候报错 2.解决办法 如果是kei5打开kei4工程文件出现 步骤1: 步骤2: 步骤3: 1.情况 1.keil5使用(打开)keil4文件工程的时候报错 --- Erro…

vscode插件开发

作为一个前端开发相信,大家对于vscode非常熟悉。vscode是微软开源的一款基于 Electron 开发的代码编辑器。并且vscode支持通过插件来扩展编辑器的功能,比如Prettier插件帮助我们快速格式化代码,ES7 React/Redux/React-Native snippets插件帮助…

Kotlin高仿微信-第31篇-支付-服务

Kotlin高仿微信-项目实践58篇详细讲解了各个功能点,包括:注册、登录、主页、单聊(文本、表情、语音、图片、小视频、视频通话、语音通话、红包、转账)、群聊、个人信息、朋友圈、支付服务、扫一扫、搜索好友、添加好友、开通VIP等众多功能。 Kotlin高仿…

hadoop集群中存在配置较低的数据节点应用如何应对磁盘数据溢满的问题之rebalance

现象 登录hdfs web ui发现集群中一个节点的负载远高于另外的节点 分析 一般情况下集群在数据盘配置一样,几乎使用不到rebalance,但是我们的集群中有一个比较小的数据节点,因此我们需要关注各节点数据分布情况,及时进行rebalan…