当前位置: 首页 > news >正文

企业做网站平台的好处企业手机网站建设需要注意哪些

企业做网站平台的好处,企业手机网站建设需要注意哪些,做欧美网站,网站的主机空间是unetr_plus_plus#xff08;UNETR、nnU-Net#xff09;系列数据处理理解汇总#xff0c;这是一个 3D 图像分割的任务系列集。 为什么说他们是一个系列集合呢#xff1f;主要是因为#xff1a; 论文的训练和评价数据集是一样的#xff0c;都是来自于10全挑战赛#xff…unetr_plus_plusUNETR、nnU-Net系列数据处理理解汇总这是一个 3D 图像分割的任务系列集。 为什么说他们是一个系列集合呢主要是因为 论文的训练和评价数据集是一样的都是来自于10全挑战赛数据的前处理工作基本是一致的后续的文章都延续了nnU-Net的处理方式评价方式是一致的具有可比性。 所以如果你也在做3D 图像分割相关的任务尤其是医学领域的任务这部分就是必看的。最好是将自己的数据进行跑通测试对比下应该会有新的感悟。 参考阅读论文 nnU-Net: a self-configuring method for deep learning-based biomedical image segmentationnnFormer: Volumetric Medical Image Segmentation via a 3D TransformerUNETR: Delving into Efficient and Accurate 3D Medical Image Segmentation 相关博客推荐阅读理解 对于nnU-Net论文的理解有CSDN会员的可以去这里看一2020.07.06nnUNet论文主体解析8.02更新认识。没有的可以去这里看看医学图像深度学习分割方法的自动设计二数据处理部分解读如何针对三维医学图像分割任务进行通用数据预处理nnUNet中预处理流程总结及代码分析哔哩哔哩也有一些介绍的视频可以作为学习的理解参考最最好的是nnU-Net这篇论文介绍的很详细 本文后面的是参考unetr_plus_plus下面这个开源库的不知道和原始的有啥区别做个提醒。 unetr_plus_plus的开源代码地址github code of unetr_plus_plus nnUNet 框架三维医学图像分割的通用预处理可以分为四步分别是 数据格式的转换裁剪crop重采样resample标准化normalization 后面的内容是以unetr_plus_plus这个开源项目的数据处理部分展开的介绍主要是自己对数据处理部分的一种记录需要的可以往后看。 一、原始数据 输入的原始图像是img2667.nii.gz以这个为参考查看这个数据的变化。它的基本信息如下 (512, 512, 55) class nibabel.nifti1.Nifti1Header object, endian sizeof_hdr : 348 data_type : b db_name : b extents : 0 session_error : 0 regular : b dim_info : 0 dim : [ 3 512 512 55 1 1 1 1] intent_p1 : 0.0 intent_p2 : 0.0 intent_p3 : 0.0 intent_code : none datatype : float64 bitpix : 64 slice_start : 0 pixdim : [1. 0.644531 0.644531 6. 1. 1. 1. 1. ] vox_offset : 0.0 scl_slope : nan scl_inter : nan slice_end : 0 slice_code : unknown xyzt_units : 0 cal_max : 0.0 cal_min : 0.0 slice_duration : 0.0 toffset : 0.0 glmax : 0 glmin : 0 descrip : b aux_file : b qform_code : unknown sform_code : aligned quatern_b : 0.0 quatern_c : 0.0 quatern_d : 1.0 qoffset_x : 167.4 qoffset_y : 165.0 qoffset_z : 78.85 srow_x : [ -0.644531 0. 0. 167.4 ] srow_y : [ 0. -0.644531 0. 165. ] srow_z : [ 0. 0. 6. 78.85] intent_name : b magic : bn1 class nibabel.nifti1.Nifti1Header原始标注标签label0026.nii.gz的信息最大值是类别数。比如有3个类别那么 像素值为0的是背景像素值为1的是类别1像素值为2的是类别2像素值为3的是类别3 如果之前不是这么记录的需要先转换到这种数据形式。下面是对应标签的信息和图像信息一致就行。 (512, 512, 55) class nibabel.nifti1.Nifti1Header object, endian sizeof_hdr : 348 data_type : b db_name : b extents : 0 session_error : 0 regular : b dim_info : 0 dim : [ 3 512 512 55 1 1 1 1] intent_p1 : 0.0 intent_p2 : 0.0 intent_p3 : 0.0 intent_code : none datatype : float64 bitpix : 64 slice_start : 0 pixdim : [1. 0.644531 0.644531 6. 1. 1. 1. 1. ] vox_offset : 0.0 scl_slope : nan scl_inter : nan slice_end : 0 slice_code : unknown xyzt_units : 0 cal_max : 0.0 cal_min : 0.0 slice_duration : 0.0 toffset : 0.0 glmax : 0 glmin : 0 descrip : b aux_file : b qform_code : unknown sform_code : aligned quatern_b : 0.0 quatern_c : 0.0 quatern_d : 1.0 qoffset_x : 167.4 qoffset_y : 165.0 qoffset_z : 78.85 srow_x : [ -0.644531 0. 0. 167.4 ] srow_y : [ 0. -0.644531 0. 165. ] srow_z : [ 0. 0. 6. 78.85] intent_name : b magic : bn1 class nibabel.nifti1.Nifti1Header二、原始数据拆分出各个模态存储 这个阶段是第一步的处理它需要将原始输入数据转化成不同的模态进行保存。对于一般的情况下都是只有一个模态转换后的形式就是这样的img2667_0000.nii.gz。 而对于Brats这个脑部数据集就存在着多个模态的情况。尽管是不同的模态但是他们都是同一时间节点同时拍摄的。这样各个模态之间是一一对应的也就是配准后的样子。如果有4个模态那么就会有img2667_0000.nii.gz、img2667_0001.nii.gz、img2667_0002.nii.gz、img2667_0003.nii.gz。根据你自己的实际情况得到不同的数据信息。 下面是img2667_0000.nii.gz的数据信息。 (512, 512, 55) class nibabel.nifti1.Nifti1Header object, endian sizeof_hdr : 348 data_type : b db_name : b extents : 0 session_error : 0 regular : b dim_info : 0 dim : [ 3 512 512 55 1 1 1 1] intent_p1 : 0.0 intent_p2 : 0.0 intent_p3 : 0.0 intent_code : none datatype : float64 bitpix : 64 slice_start : 0 pixdim : [1. 0.644531 0.644531 6. 1. 1. 1. 1. ] vox_offset : 0.0 scl_slope : nan scl_inter : nan slice_end : 0 slice_code : unknown xyzt_units : 0 cal_max : 0.0 cal_min : 0.0 slice_duration : 0.0 toffset : 0.0 glmax : 0 glmin : 0 descrip : b aux_file : b qform_code : unknown sform_code : aligned quatern_b : 0.0 quatern_c : 0.0 quatern_d : 1.0 qoffset_x : 167.4 qoffset_y : 165.0 qoffset_z : 78.85 srow_x : [ -0.644531 0. 0. 167.4 ] srow_y : [ 0. -0.644531 0. 165. ] srow_z : [ 0. 0. 6. 78.85] intent_name : b magic : bn1 class nibabel.nifti1.Nifti1Header三、crop 操作后 crop是去除掉图像数据中边缘为0的部分。比如CT 结节项目中crop 掉肺区外的部分只留下肺部的数据。这样剩下的图像就都是肺区的图像了图像的数据量也就变小了。 如果这部分你没有做非肺区的处理那么经过crop后图像部分的大小是不会发生改变的还是和处理前的大小是一样的这点不必惊讶。 3.1、npz 文件 DATASET_actTB/unetr_pp_raw/unetr_pp_cropped_data/Task002_Synapse 下img2667.npz文件记录的信息 读取代码如下 import numpy as np# 加载npz文件 data np.load(npz_path)# 获取所有变量名称列表 variable_names data.files print(Variables in the file:, variable_names)# 选择特定的变量名称如array1 selected_var data if selected_var in variable_names:# 将选定的变量赋值给相应的变量array data[selected_var]# 输出数组内容print(fArray {selected_var}:)print(array.shape) else:print(fVariable {selected_var} does not exist.)输出内容如下 Variables in the file: [data] Array data: (2, 55, 303, 426)四维数组array(CXYZ)中: 最后一个维度存储的是分割标注信息如array[-1,:,:,:]存储的是分割标注结果。而第一个维度的前面存储不同模态的数据如MRI数据中有FLAIR、T1w、t1gd、 T2w等四种模态array[0,:,:,:]表示FLAIR序列成像的强度数据array[1,:,:,:]表示T1加权的强度数据以此类推。如果仅单模态则四维数组第一维度长度仅为2分别表示影像数据以及标注数据。四维数组array的后三个维度代表x,y,z三个坐标表示的三维数据对于原始影像数据值大小代表强度而对于标注结果后三个维度的三维数据值分别为012……表示不同的标注类别 3.2、pkl 文件 而pickle文件中存储该医学影像中其它的重要信息是对numpy数组提供信息的补充。包含spacingdirectionorigin等信息。 DATASET_actTB/unetr_pp_raw/unetr_pp_cropped_data/Task002_Synapse 下img2667.pkl文件记录的信息 OrderedDict([(original_size_of_raw_data, array([ 55, 512, 512], dtypeint64)), (original_spacing, array([6. , 0.64453101, 0.64453101])), (list_of_data_files, [./unetr_plus_plus-main/DATASET_actTB/unetr_pp_raw/unetr_pp_raw_data/Task002_Synapse/imagesTr/img2667_0000.nii.gz]), (seg_file, ./unetr_plus_plusmain/DATASET_actTB/unetr_pp_raw/unetr_pp_raw_data/Task002_Synapse/labelsTr/label2667.nii.gz), (itk_origin, (-167.39999389648438, -165.0, 78.8499984741211)), (itk_spacing, (0.6445310115814209, 0.6445310115814209, 6.0)), (itk_direction, (1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0)), (crop_bbox, [[0, 55], [94, 397], [54, 480]]), (classes, array([-1., 0., 1.], dtypefloat32)), (size_after_cropping, (55, 303, 426)), (use_nonzero_mask_for_norm, OrderedDict([(0, False)]))]) 四、nnFormerData_plans_v2.1_2D_stage0 4.1、npz 文件 DATASET_actTB/unetr_pp_preprocessed/Task002_Synapse/nnFormerData_plans_v2.1_2D_stage0 img2667.npz同样数组大小。 Array data: (2, 55, 273, 384)4.2、pkl 文件 DATASET_actTB/unetr_pp_preprocessed/Task002_Synapse/nnFormerData_plans_v2.1_2D_stage0 img2667.pkl OrderedDict([(original_size_of_raw_data, array([ 55, 512, 512], dtypeint64)), (original_spacing, array([6. , 0.64453101, 0.64453101])), (list_of_data_files, [./unetr_plus_plus-main/DATASET_actTB/unetr_pp_raw/unetr_pp_raw_data/Task002_Synapse/imagesTr/img2667_0000.nii.gz]), (seg_file, ./unetr_plus_plusmain/DATASET_actTB/unetr_pp_raw/unetr_pp_raw_data/Task002_Synapse/labelsTr/label2667.nii.gz), (itk_origin, (-167.39999389648438, -165.0, 78.8499984741211)), (itk_spacing, (0.6445310115814209, 0.6445310115814209, 6.0)), (itk_direction, (1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0)), (crop_bbox, [[0, 55], [94, 397], [54, 480]]), (classes, array([-1., 0., 1.], dtypefloat32)), (size_after_cropping, (55, 303, 426)), (use_nonzero_mask_for_norm, OrderedDict([(0, False)])), (size_after_resampling, (55, 273, 384)), (spacing_after_resampling, array([6. , 0.71484375, 0.71484375])), (class_locations, {1: array([[ 40, 244, 61],[ 46, 224, 40],[ 48, 233, 70],...,[ 34, 253, 49],[ 41, 215, 21],[ 35, 241, 32]], dtypeint64), 2: []})]) 五、unetr_pp_Data_plans_v2.1_stage0 5.1、npz 文件 DATASET_actTB/unetr_pp_preprocessed/Task002_Synapse/unetr_pp_Data_plans_v2.1_stage0 img2667.npz Variables in the file: [data] Array data: (2, 228, 189, 266)六、unetr_pp_Data_plans_v2.1_stage1 6.1、npz 文件 DATASET_actTB/unetr_pp_preprocessed/Task002_Synapse/unetr_pp_Data_plans_v2.1_stage1 img2667.npz 输出内容如下(经历了一次spacing调整) Variables in the file: [data] Array data: (2, 330, 273, 384)6.2、pkl 文件 DATASET_actTB/unetr_pp_preprocessed/Task002_Synapse/unetr_pp_Data_plans_v2.1_stage1 img2667.pkl OrderedDict([(original_size_of_raw_data, array([ 55, 512, 512], dtypeint64)), (original_spacing, array([6. , 0.64453101, 0.64453101])), (list_of_data_files, [/home/qlj/projects/unetr_plus_plus-main/DATASET_actTB/unetr_pp_raw/unetr_pp_raw_data/Task002_Synapse/imagesTr/img2667_0000.nii.gz]), (seg_file, /home/qlj/projects/unetr_plus_plus-main/DATASET_actTB/unetr_pp_raw/unetr_pp_raw_data/Task002_Synapse/labelsTr/label2667.nii.gz), (itk_origin, (-167.39999389648438, -165.0, 78.8499984741211)), (itk_spacing, (0.6445310115814209, 0.6445310115814209, 6.0)), (itk_direction, (1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0)), (crop_bbox, [[0, 55], [94, 397], [54, 480]]), (classes, array([-1., 0., 1.], dtypefloat32)), (size_after_cropping, (55, 303, 426)), (use_nonzero_mask_for_norm, OrderedDict([(0, False)])), (size_after_resampling, (330, 273, 384)), (spacing_after_resampling, array([1. , 0.71484375, 0.71484375])), (class_locations, {1: array([[149, 238, 54],[259, 230, 43],[246, 230, 66],...,[141, 255, 86],[294, 213, 20],[145, 250, 72]], dtypeint64), 2: []})]) 各个key对应的含义 original_size_of_raw_data原始图像大小,original_spacing 原始图像的spacing,list_of_data_files 原始图像各个模态的文件路径list,seg_file 对应label的文件路径list,itk_origin, ‘itk_spacing’, ‘itk_direction’,crop_bbox 去除原始图像四周为0的部分z\y\x 对应的边界坐标,classes 本例子包含的类别-1是crop box去除的像素点填充,类别1、2就是标注类别其他是0size_after_cropping 裁剪后的size,use_nonzero_mask_for_norm 是否使用非0的mask部分去norm 默认False,size_after_resampling 使用resample操作后的size,spacing_after_resampling 使用resample操作后的spacing,class_locations 对应类别的坐标dict 七、preprocessed 文件 7.1、splits_final.pkl 文件 记录了k fold的中每一个fold划分的train和val的数据名称如下 [OrderedDict([(train, array([img0001, img0002, img0005, img0007, img0008, img0009,img0010, img0011, img0012, img0013, img0014, img0015,img0016, img0017, img0018, img0019, img0021, img0023,img0024, img0025, img0027, img0028, img0030, img0031,img0032, img0034, img0035, img0036, img0037, img0038,img0039, img0040 ], dtype U7)), (val, array([img0003, img0004, img0006, img0020, img0022, img0026,img0029, img0033 ], dtype U7))]), OrderedDict([(train, array([img0002, img0003, img0004, img0006, img0007, img0008,img0010, img0011, img0012, img0014, img0015, img0017,img0018, img0019, img0020, img0021, img0022, img0023,img0024, img0025, img0026, img0027, img0028, img0029,img0030, img0032, img0033, img0035, img0037, img0038,img0039, img0040 ], dtype U7)), (val, array([img0001, img0005, img0009, img0013, img0016, img0031,img0034, img0036 ], dtype U7))]), OrderedDict([(train, array([img0001, img0002, img0003, img0004, img0005, img0006,img0009, img0010, img0012, img0013, img0015, img0016,img0017, img0019, img0020, img0022, img0023, img0024,img0026, img0028, img0029, img0030, img0031, img0032,img0033, img0034, img0035, img0036, img0037, img0038,img0039, img0040 ], dtype U7)), (val, array([img0007, img0008, img0011, img0014, img0018, img0021,img0025, img0027 ], dtype U7))]), OrderedDict([(train, array([img0001, img0002, img0003, img0004, img0005, img0006,img0007, img0008, img0009, img0011, img0013, img0014,img0015, img0016, img0018, img0020, img0021, img0022,img0025, img0026, img0027, img0029, img0030, img0031,img0033, img0034, img0035, img0036, img0037, img0038,img0039, img0040 ], dtype U7)), (val, array([img0010, img0012, img0017, img0019, img0023, img0024,img0028, img0032 ], dtype U7))]), OrderedDict([(train, array([img0001, img0003, img0004, img0005, img0006, img0007,img0008, img0009, img0010, img0011, img0012, img0013,img0014, img0016, img0017, img0018, img0019, img0020,img0021, img0022, img0023, img0024, img0025, img0026,img0027, img0028, img0029, img0031, img0032, img0033,img0034, img0036 ], dtype U7)), (val, array([img0002, img0015, img0030, img0035, img0037, img0038,img0039, img0040 ], dtype U7))])]7.2、nnFormerPlansv2.1_plans_2D.pkl pkl文件内存储的key的意义如下 num_stages stage的数量,num_modalities,modalities,normalization_schemes,dataset_properties 记录了所有数据的属性信息包括size\spacing\classes\modalities\intensityproperties\size_reductions,list_of_npz_files 所有croped data 的npz图像路径,original_spacings 原始的spacing,original_sizes 原始的size,preprocessed_data_folder preprocessed data 文件夹路径,num_classes 分类数量,all_classes 各个类别在mask中的数字,base_num_features,use_mask_for_norm,keep_only_largest_region,min_region_size_per_class,min_size_per_class,transpose_forward,transpose_backward,data_identifier: nnFormerData_plans_v2.1_2D,plans_per_stage,preprocessor_name plans_per_stage 内记录的信息如下 {0: {batch_size: 8,num_pool_per_axis: [5, 4, 5],patch_size: array([128, 112, 160], dtype int64),median_patient_size_in_voxels: array([190, 187, 258], dtype int64),current_spacing: array([1.44507647, 1.03300388, 1.03300388]),original_spacing: array([1., 0.71484375, 0.71484375]),do_dummy_2D_data_aug: False,pool_op_kernel_sizes: [[2, 2, 2],[2, 2, 2],[2, 2, 2],[2, 2, 2],[2, 1, 2]],conv_kernel_sizes: [[3, 3, 3],[3, 3, 3],[3, 3, 3],[3, 3, 3],[3, 3, 3],[3, 3, 3]]},1: {batch_size: 16,num_pool_per_axis: [5, 4, 5],patch_size: array([64, 128, 128], dtype int64),median_patient_size_in_voxels: array([275, 270, 373], dtype int64),current_spacing: array([1., 0.71484375, 0.71484375]),original_spacing: array([1., 0.71484375, 0.71484375]),do_dummy_2D_data_aug: False,pool_op_kernel_sizes: [[2, 2, 2],[2, 2, 2],[2, 2, 2]],conv_kernel_sizes: [[3, 3, 3],[3, 3, 3],[3, 3, 3],[3, 3, 3],[3, 3, 3],[3, 3, 3]]} }7.3、unetr_pp_Plansv2.1_plans_3D.pkl 记录内容和7.2类似我理解都是为了接下来的训练做个准备配置 ‘data_identifier’: ‘unetr_pp_Data_plans_v2.1’, 在训练阶段 loading dataset of folder: /home/qlj/projects/unetr_plus_plus-main/DATASET_actTB_HU/unetr_pp_preprocessed/Task002_Synapse/unetr_pp_Data_plans_v2.1_stage1 7.3、dataset_properties.pkl dict_keys([‘all_sizes’, ‘all_spacings’, ‘all_classes’, ‘modalities’, ‘intensityproperties’, ‘size_reductions’]) nnU-Net 这篇论文对数据前处理和训练超参数的选择部分做了详细的介绍对于后面的训练有很大的启发。作者认为如果相应的管道pipeline设计得当基本的U-Net仍然很难被击败。 意在指出pipeline 设计的重要性。为此设计了nnU-Net一个深度学习框架浓缩了当前的领域知识并自主地做出关键决策将基本架构转移到不同的数据集和分割任务。能够自动适应任意数据集并基于两个关键贡献实现开箱即用的分割 我们用数据指纹(data fingerprint代表数据集的关键属性)和管道指纹(pipeline fingerprint,代表分割算法的关键设计选择)来表述管道优化问题。我们通过将领域知识(domain knowledge )压缩成一组启发式规则来明确它们之间的关系这些规则可以在考虑相关硬件约束的情况下从相应的数据指纹稳健地生成高质量的管道指纹。 Automated Design Without manual tuning。 nnU-Net是如何自动适应任何新的数据集呢 data fingerprint数据集指纹定义为包含关键属性的标准化数据集表示如 图像大小 image sizes体素间距信息voxel spacing information类别比率class ratios pipeline fingerprint管道指纹定义为方法设计期间所做出的整体选择在nnU-Net中分为3个部分 blueprint parameters例如 loss functionoptimizertraining scheduledata augmentation inferred parameters推断参数对新数据集进行必要的调整例如 patch sizebatch sizeimage preprocessing(resampling, normalization)architecture config empirrical parameters 经验主义参数是通过对训练案例的交叉验证自动识别的。包括后处理和整体策略。 数据指纹data fingerprint和推断参数inferred parameters之间的链接是通过执行一组启发式规则建立的而不需要在应用于未见过的数据集时进行昂贵的重新优化。其中很多的设计选择是相互依赖的例如(one instance) target image spacing 影响到 image size进而又影响到 patch size进而影响到 batch size
http://www.dnsts.com.cn/news/230767.html

相关文章:

  • 嘉禾手机网站建设二个字最吉利最旺财的公司名
  • 适合ps做图的素材网站有哪些服务器可以自己的网站吗
  • 公司建设网站的必要性免备案建网站
  • 杭州哪家做网站cod单页建站工具
  • 淘宝网站建设基本流程图沈阳网站建设服务电话
  • linux建设门户网站郑州市网络科技有限公司
  • 重庆网站推广的网站如何进行主题网站的资源建设
  • 关方网站买微信手机可怎么样做网站
  • 避免网站侵权成都网站制作设计公司
  • 营销型网站建设价格群辉wordpress地址
  • 可信赖的深圳网站建设绛县网站建设
  • 查询网站死链接株洲市荷塘区城乡建设局网站
  • asp网站如何打开网站搜索引擎优化是什么
  • php做学校网站免费下载湖北可以做网站的公司
  • 关注建设银行网站网络招商
  • 邯郸做网站找谁网站建设服务谁便宜
  • 怎么样免费建设网站南京物联网app开发公司
  • 信誉好的邯郸网站建设软件制作网站
  • 怎么检测网站是否安全织梦网站是不是容易做seo
  • 网站开发路线合肥做网站首选 晨飞网络
  • 哪个网站的旅游板块做的好可以在公司局域网做网站吗
  • 门户网站的含义外贸网站建设解决方案
  • 怎样建设一个内部网站小制作小发明大全
  • 邢台哪里做网站长网址变成短网址
  • 兼职做调查哪个网站好美团网站界面设计
  • 素材网站定制尚学教育
  • 网站三网合一有哪些好的做网站公司
  • 清远市住房与城乡建设局的网站查网站建设销售话术开场白
  • 个人网站如何做推广招聘免费发布平台
  • 毕设做的网站可以用模板改吗网站联盟广告名词解释