基于飞桨的分肾功能预测系统

本项目属于2022年“中国高校计算机大赛 — 人工智能创意赛”创新组入围项目,拟基于PdaalePaddle平台构建一个通过患者CT图像预测单侧肾功能的系统,达到无创且便捷的效果,造福患者。

PaddleSeg属于飞桨中较为成熟的一个套件,是一款基于 PaddlePaddle 的端到端图像分割高效开发工具包。今年4月份,飞桨平台再次推出了3D医学分割套件MedicalSeg,它支持从数据预处理、训练评估、再到模型部署的全套分割流程。因此,本项目基于MedicalSeg进行一次医学与人工智能的实践尝试,也为广大医学同胞降低跨进医学分割的门槛。

我们首先尝试用MedicalSeg中的V-net模型来分割三维肾脏CT图像。在训练数据上我们上传了有47例训练,9例验证,共有2个类别(背景和肾脏),精度Dice最终达到了有0.9457。此外我们还上传了几十例未经人工标注的CT图像,用于模型预测以及后续的回归模型构建。在使用上,我们只需要配置预处理文件和训练配置文件,就可以一键训练、预测。

分割出单侧的肾脏后,我们通过计算每个肾脏皮质的CT值(Hu值),与平扫期图像进行对比,之间的差值即为肾脏皮质功能的一个定量参数。最后我们使用简单的逻辑回归模型进行预测肾功能分级,最终多分类模型的准确率达到了92%。

【基于飞桨的分肾功能预测系统视频介绍】

!git clone https://github.com/PaddlePaddle/PaddleSeg.git
# 安装MedicalSeg
%cd /home/aistudio/work/PaddleSeg-release-2.5/contrib/MedicalSeg/
# 安装依赖项
!pip install -r requirements.txt -i https://mirror.baidu.com/pypi/simple
Looking in indexes: https://mirror.baidu.com/pypi/simple
Collecting scikit-image
  Downloading https://mirror.baidu.com/pypi/packages/2d/ba/63ce953b7d593bd493e80be158f2d9f82936582380aee0998315510633aa/scikit_image-0.19.3-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (13.5 MB)
[2K     [90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━[0m [32m13.5/13.5 MB[0m [31m9.5 MB/s[0m eta [36m0:00:00[0m:00:01[0m00:01[0m
[?25hRequirement already satisfied: numpy in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from -r requirements.txt (line 2)) (1.19.5)
Requirement already satisfied: paddlepaddle-gpu>=2.2.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from -r requirements.txt (line 3)) (2.3.1.post101)
Collecting SimpleITK>=2.1.1
  Downloading https://mirror.baidu.com/pypi/packages/17/4d/972ac7c17d2e75a3948756279f37bb2ebb280b11e101364f3d025304a155/SimpleITK-2.1.1.2-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (48.4 MB)
[2K     [90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━[0m [32m48.4/48.4 MB[0m [31m7.0 MB/s[0m eta [36m0:00:00[0m:00:01[0m00:01[0m
[?25hRequirement already satisfied: PyYAML in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from -r requirements.txt (line 5)) (5.1.2)
Collecting pynrrd
  Downloading https://mirror.baidu.com/pypi/packages/83/77/afb60173b5247431cd93ef226ab0568c4ef6771c7e4db733d03cb0485e9e/pynrrd-0.4.3-py2.py3-none-any.whl (18 kB)
Requirement already satisfied: tqdm in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from -r requirements.txt (line 7)) (4.27.0)
Requirement already satisfied: visualdl in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from -r requirements.txt (line 8)) (2.3.0)
Requirement already satisfied: sklearn in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from -r requirements.txt (line 9)) (0.0)
Requirement already satisfied: filelock in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from -r requirements.txt (line 10)) (3.0.12)
Collecting nibabel
  Downloading https://mirror.baidu.com/pypi/packages/26/4f/0f934f4e1ce05377e69afba160289f56df449135a80c8c35fa2ccf1d0c9d/nibabel-4.0.1-py3-none-any.whl (3.3 MB)
[2K     [90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━[0m [32m3.3/3.3 MB[0m [31m10.1 MB/s[0m eta [36m0:00:00[0m00:01[0m00:01[0m
[?25hCollecting pydicom
  Downloading https://mirror.baidu.com/pypi/packages/5f/45/97660cc1ec770e2e82fd5d704c1d6ff9c308ecfcbbf07c2b2f92ca755b70/pydicom-2.3.0-py3-none-any.whl (2.0 MB)
[2K     [90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━[0m [32m2.0/2.0 MB[0m [31m11.0 MB/s[0m eta [36m0:00:00[0m00:01[0m00:01[0m
[?25hRequirement already satisfied: imageio>=2.4.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from scikit-image->-r requirements.txt (line 1)) (2.6.1)
Requirement already satisfied: packaging>=20.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from scikit-image->-r requirements.txt (line 1)) (21.3)
Requirement already satisfied: scipy>=1.4.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from scikit-image->-r requirements.txt (line 1)) (1.6.3)
Collecting PyWavelets>=1.1.1
  Downloading https://mirror.baidu.com/pypi/packages/ae/56/4441877073d8a5266dbf7b04c7f3dc66f1149c8efb9323e0ef987a9bb1ce/PyWavelets-1.3.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (6.4 MB)
[2K     [90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━[0m [32m6.4/6.4 MB[0m [31m10.1 MB/s[0m eta [36m0:00:00[0m00:01[0m00:01[0m
[?25hRequirement already satisfied: pillow!=7.1.0,!=7.1.1,!=8.3.0,>=6.1.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from scikit-image->-r requirements.txt (line 1)) (8.2.0)
Requirement already satisfied: networkx>=2.2 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from scikit-image->-r requirements.txt (line 1)) (2.4)
Collecting tifffile>=2019.7.26
  Downloading https://mirror.baidu.com/pypi/packages/d8/38/85ae5ed77598ca90558c17a2f79ddaba33173b31cf8d8f545d34d9134f0d/tifffile-2021.11.2-py3-none-any.whl (178 kB)
[2K     [90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━[0m [32m178.9/178.9 kB[0m [31m11.0 MB/s[0m eta [36m0:00:00[0m
[?25hRequirement already satisfied: six in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlepaddle-gpu>=2.2.0->-r requirements.txt (line 3)) (1.16.0)
Requirement already satisfied: requests>=2.20.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlepaddle-gpu>=2.2.0->-r requirements.txt (line 3)) (2.24.0)
Requirement already satisfied: decorator in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlepaddle-gpu>=2.2.0->-r requirements.txt (line 3)) (4.4.2)
Requirement already satisfied: paddle-bfloat==0.1.7 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlepaddle-gpu>=2.2.0->-r requirements.txt (line 3)) (0.1.7)
Requirement already satisfied: opt-einsum==3.3.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlepaddle-gpu>=2.2.0->-r requirements.txt (line 3)) (3.3.0)
Requirement already satisfied: protobuf<=3.20.0,>=3.1.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlepaddle-gpu>=2.2.0->-r requirements.txt (line 3)) (3.20.0)
Requirement already satisfied: astor in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from paddlepaddle-gpu>=2.2.0->-r requirements.txt (line 3)) (0.8.1)
Requirement already satisfied: matplotlib in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from visualdl->-r requirements.txt (line 8)) (2.2.3)
Requirement already satisfied: Flask-Babel>=1.0.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from visualdl->-r requirements.txt (line 8)) (1.0.0)
Requirement already satisfied: pandas in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from visualdl->-r requirements.txt (line 8)) (1.1.5)
Requirement already satisfied: bce-python-sdk in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from visualdl->-r requirements.txt (line 8)) (0.8.53)
Requirement already satisfied: flask>=1.1.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from visualdl->-r requirements.txt (line 8)) (1.1.1)
Requirement already satisfied: scikit-learn in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from sklearn->-r requirements.txt (line 9)) (0.24.2)
Requirement already satisfied: setuptools in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from nibabel->-r requirements.txt (line 11)) (56.2.0)
Requirement already satisfied: Jinja2>=2.10.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from flask>=1.1.1->visualdl->-r requirements.txt (line 8)) (3.0.0)
Requirement already satisfied: itsdangerous>=0.24 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from flask>=1.1.1->visualdl->-r requirements.txt (line 8)) (1.1.0)
Requirement already satisfied: click>=5.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from flask>=1.1.1->visualdl->-r requirements.txt (line 8)) (7.0)
Requirement already satisfied: Werkzeug>=0.15 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from flask>=1.1.1->visualdl->-r requirements.txt (line 8)) (0.16.0)
Requirement already satisfied: Babel>=2.3 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from Flask-Babel>=1.0.0->visualdl->-r requirements.txt (line 8)) (2.8.0)
Requirement already satisfied: pytz in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from Flask-Babel>=1.0.0->visualdl->-r requirements.txt (line 8)) (2019.3)
Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from packaging>=20.0->scikit-image->-r requirements.txt (line 1)) (3.0.9)
Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from requests>=2.20.0->paddlepaddle-gpu>=2.2.0->-r requirements.txt (line 3)) (1.25.6)
Requirement already satisfied: chardet<4,>=3.0.2 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from requests>=2.20.0->paddlepaddle-gpu>=2.2.0->-r requirements.txt (line 3)) (3.0.4)
Requirement already satisfied: idna<3,>=2.5 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from requests>=2.20.0->paddlepaddle-gpu>=2.2.0->-r requirements.txt (line 3)) (2.8)
Requirement already satisfied: certifi>=2017.4.17 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from requests>=2.20.0->paddlepaddle-gpu>=2.2.0->-r requirements.txt (line 3)) (2019.9.11)
Requirement already satisfied: future>=0.6.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from bce-python-sdk->visualdl->-r requirements.txt (line 8)) (0.18.0)
Requirement already satisfied: pycryptodome>=3.8.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from bce-python-sdk->visualdl->-r requirements.txt (line 8)) (3.9.9)
Requirement already satisfied: python-dateutil>=2.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from matplotlib->visualdl->-r requirements.txt (line 8)) (2.8.2)
Requirement already satisfied: kiwisolver>=1.0.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from matplotlib->visualdl->-r requirements.txt (line 8)) (1.1.0)
Requirement already satisfied: cycler>=0.10 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from matplotlib->visualdl->-r requirements.txt (line 8)) (0.10.0)
Requirement already satisfied: joblib>=0.11 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from scikit-learn->sklearn->-r requirements.txt (line 9)) (0.14.1)
Requirement already satisfied: threadpoolctl>=2.0.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from scikit-learn->sklearn->-r requirements.txt (line 9)) (2.1.0)
Requirement already satisfied: MarkupSafe>=2.0.0rc2 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from Jinja2>=2.10.1->flask>=1.1.1->visualdl->-r requirements.txt (line 8)) (2.0.1)
Installing collected packages: SimpleITK, tifffile, PyWavelets, pynrrd, pydicom, scikit-image, nibabel
Successfully installed PyWavelets-1.3.0 SimpleITK-2.1.1.2 nibabel-4.0.1 pydicom-2.3.0 pynrrd-0.4.3 scikit-image-0.19.3 tifffile-2021.11.2

[1m[[0m[34;49mnotice[0m[1;39;49m][0m[39;49m A new release of pip available: [0m[31;49m22.1.2[0m[39;49m -> [0m[32;49m22.2.2[0m
[1m[[0m[34;49mnotice[0m[1;39;49m][0m[39;49m To update, run: [0m[32;49mpip install --upgrade pip[0m
# 解压肾脏CT数据
!unzip -o /home/aistudio/data/data165200/data.zip -d /home/aistudio/work
Archive:  /home/aistudio/data/data165200/data.zip
   creating: /home/aistudio/work/data/
   creating: /home/aistudio/work/data/kidney/
   creating: /home/aistudio/work/data/kidney/kidney_raw/
   creating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/yuchangquan-1434033_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/yuchangquan-1434033_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/zhanglanxiang-1601219_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/zhanglanxiang-1601219_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/zhangqiduan-1423260_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/zhangqiduan-1423260_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/zhangyongqing-1608328_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/zhangyongqing-1608328_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/zhangzhong-1597035_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/zhangzhong-1597035_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/zhouhui-1368374_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/zhouhui-1368374_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/zhoumeizhen-1401273_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/zhoumeizhen-1401273_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/zhouqiongzhi-1406031_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/zhouqiongzhi-1406031_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/zhuyinlian-1595389_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/zhuyinlian-1595389_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/caotingzhu-1483304_zq_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/caotingzhu-1483304_zq_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/daiyuying-1452205_zq_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/daiyuying-1452205_zq_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/dongchaoguang-1406315_zq_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/dongchaoguang-1406315_zq_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/duchangping-1446216_zq_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/duchangping-1446216_zq_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/huangxinguo-1463810_zq_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/huangxinguo-1463810_zq_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/lidongliang-1438037_zq_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/lidongliang-1438037_zq_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/liuhouqun-1603412_zq_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/liuhouqun-1603412_zq_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/luoyoufu-1429059_zq_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/luoyoufu-1429059_zq_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/panchunzhi-1384695_zq_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/panchunzhi-1384695_zq_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/penghuayan-1375892_zq_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/penghuayan-1375892_zq_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/qianruijin-1448854_zq_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/qianruijin-1448854_zq_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/wangbing-1408635_zq_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/wangbing-1408635_zq_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/xiezuliang-1372411_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/xiezuliang-1372411_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/xuliangcai-1357916_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/xuliangcai-1357916_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/yangchunguo-1444142_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/yangchunguo-1444142_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/yangjinkun-1403768_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/yangjinkun-1403768_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/yangxinyi-1486544_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/yangxinyi-1486544_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/yangxinzhang-1598153_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/yangxinzhang-1598153_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/yanjinlian-1490298_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_labels/yanjinlian-1490298_right.nii.gz  
   creating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/xuliangcai-1357916_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/caotingzhu-1483304_zq_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/duchangping-1446216_zq_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/caotingzhu-1483304_zq_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/zhangqiduan-1423260_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/yuchangquan-1434033_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/qianruijin-1448854_zq_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/liuhouqun-1603412_zq_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/wangbing-1408635_zq_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/zhangyongqing-1608328_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/yangxinyi-1486544_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/yangxinzhang-1598153_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/xuliangcai-1357916_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/zhoumeizhen-1401273_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/zhangzhong-1597035_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/zhanglanxiang-1601219_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/lidongliang-1438037_zq_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/zhouhui-1368374_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/xiezuliang-1372411_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/yangchunguo-1444142_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/yangxinzhang-1598153_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/luoyoufu-1429059_zq_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/wangbing-1408635_zq_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/zhoumeizhen-1401273_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/lidongliang-1438037_zq_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/zhangzhong-1597035_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/zhanglanxiang-1601219_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/zhouqiongzhi-1406031_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/yanjinlian-1490298_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/luoyoufu-1429059_zq_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/liuhouqun-1603412_zq_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/zhuyinlian-1595389_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/daiyuying-1452205_zq_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/yangchunguo-1444142_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/zhuyinlian-1595389_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/yangjinkun-1403768_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/penghuayan-1375892_zq_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/panchunzhi-1384695_zq_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/qianruijin-1448854_zq_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/dongchaoguang-1406315_zq_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/duchangping-1446216_zq_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/penghuayan-1375892_zq_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/zhangqiduan-1423260_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/xiezuliang-1372411_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/panchunzhi-1384695_zq_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/yuchangquan-1434033_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/huangxinguo-1463810_zq_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/dongchaoguang-1406315_zq_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/yanjinlian-1490298_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/yangxinyi-1486544_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/huangxinguo-1463810_zq_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/daiyuying-1452205_zq_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/zhouhui-1368374_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/zhangyongqing-1608328_left.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/zhouqiongzhi-1406031_right.nii.gz  
  inflating: /home/aistudio/work/data/kidney/kidney_raw/kidney_images/yangjinkun-1403768_right.nii.gz  
   creating: /home/aistudio/work/data/kidney/kidney_phase0/
# 解压无标注的肾脏CT数据
!unzip -o /home/aistudio/data/data165786/no_label_data.zip -d /home/aistudio
Archive:  /home/aistudio/data/data165786/no_label_data.zip
   creating: /home/aistudio/no_label_data/
   creating: /home/aistudio/no_label_data/all_pred/
   creating: /home/aistudio/no_label_data/pingsao_nii/
  inflating: /home/aistudio/no_label_data/pingsao_nii/wangwangping-1435804_left.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/xuliangcai-1357916_right.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/wangbing-1408635_right.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/penghuayan-1375892_right.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/wujinhan-1397841_left.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/liuhouqun-1603412_left.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/luoyoufu-1429059_left.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/wangwangping-1435804_right.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/xiaguohua-1494227_left.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/zhangqiduan-1423260_left.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/yuchangquan-1434033_left.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/wujinhan-1397841_right.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/luoyoufu-1429059_right.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/caotingzhu-1483304_right.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/qianruijin-1448854_right.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/caotingzhu-1483304_left.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/panchunzhi-1384695_left.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/zhangyongqing-1608328_right.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/yangxinyi-1486544_left.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/yangxinzhang-1598153_right.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/xuliangcai-1357916_left.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/zhoumeizhen-1401273_right.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/zhangzhong-1597035_right.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/wangbing-1408635_left.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/duchangping-1446216_left.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/zhanglanxiang-1601219_right.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/zhouhui-1368374_right.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/xianglizhao-1439461_left.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/xiezuliang-1372411_right.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/daiyuying-1452205_right.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/yangchunguo-1444142_right.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/liuhouqun-1603412_right.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/yangxinzhang-1598153_left.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/dongchaoguang-1406315_left.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/xiaguohua-1494227_right.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/zhoumeizhen-1401273_left.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/zhangzhong-1597035_left.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/duchangping-1446216_right.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/zhanglanxiang-1601219_left.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/zhouqiongzhi-1406031_left.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/qianruijin-1448854_left.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/lidongliang-1438037_left.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/yanjinlian-1490298_left.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/xianglizhao-1439461_right.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/huangxinguo-1463810_left.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/dongchaoguang-1406315_right.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/daiyuying-1452205_left.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/zhuyinlian-1595389_right.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/yangchunguo-1444142_left.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/zhuyinlian-1595389_left.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/yangjinkun-1403768_left.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/wangguojian-1369805_right.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/zhangqiduan-1423260_right.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/xiezuliang-1372411_left.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/panchunzhi-1384695_right.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/penghuayan-1375892_left.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/yuchangquan-1434033_right.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/yanjinlian-1490298_right.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/yangxinyi-1486544_right.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/zhouhui-1368374_left.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/lidongliang-1438037_right.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/zhangyongqing-1608328_left.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/zhouqiongzhi-1406031_right.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/huangxinguo-1463810_right.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/wangguojian-1369805_left.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao_nii/yangjinkun-1403768_right.nii.gz  
   creating: /home/aistudio/no_label_data/zengqiang_nii/
  inflating: /home/aistudio/no_label_data/zengqiang_nii/yangjinkun-1403768_zq_right.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/zhoumeizhen-1401273_zq_left.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/caotingzhu-1483304_zq_left.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/duchangping-1446216_zq_left.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/caotingzhu-1483304_zq_right.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/zhangqiduan-1423260_zq_left.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/zhouhui-1368374_zq_left.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/xiaguohua-1494227_zq_right.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/xiezuliang-1372411_zq_left.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/qianruijin-1448854_zq_right.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/liuhouqun-1603412_zq_left.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/zhuyinlian-1595389_zq_left.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/zhouqiongzhi-1406031_zq_right.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/wangbing-1408635_zq_right.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/xiaguohua-1494227_zq_left.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/zhangyongqing-1608328_zq_left.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/zhoumeizhen-1401273_zq_right.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/lidongliang-1438037_zq_left.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/zhangzhong-1597035_zq_right.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/zhangqiduan-1423260_zq_right.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/yangxinyi-1486544_zq_left.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/luoyoufu-1429059_zq_left.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/wangbing-1408635_zq_left.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/yanjinlian-1490298_zq_right.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/xuliangcai-1357916_zq_left.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/lidongliang-1438037_zq_right.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/zhouqiongzhi-1406031_zq_left.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/yuchangquan-1434033_zq_right.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/yuchangquan-1434033_zq_left.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/yangxinzhang-1598153_zq_left.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/wangwangping-1435804_zq_right.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/luoyoufu-1429059_zq_right.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/liuhouqun-1603412_zq_right.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/xuliangcai-1357916_zq_right.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/zhangyongqing-1608328_zq_right.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/daiyuying-1452205_zq_right.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/zhanglanxiang-1601219_zq_left.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/zhanglanxiang-1601219_zq_right.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/zhangzhong-1597035_zq_left.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/yangxinyi-1486544_zq_right.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/xianglizhao-1439461_zq_right.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/penghuayan-1375892_zq_right.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/panchunzhi-1384695_zq_right.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/wujinhan-1397841_zq_right.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/qianruijin-1448854_zq_left.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/dongchaoguang-1406315_zq_right.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/zhuyinlian-1595389_zq_right.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/duchangping-1446216_zq_right.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/penghuayan-1375892_zq_left.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/xianglizhao-1439461_zq_left.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/yanjinlian-1490298_zq_left.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/wujinhan-1397841_zq_left.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/yangxinzhang-1598153_zq_right.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/wangwangping-1435804_zq_left.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/panchunzhi-1384695_zq_left.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/huangxinguo-1463810_zq_right.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/zhouhui-1368374_zq_right.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/dongchaoguang-1406315_zq_left.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/wangguojian-1369805_zq_right.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/wangguojian-1369805_zq_left.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/yangchunguo-1444142_zq_left.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/huangxinguo-1463810_zq_left.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/daiyuying-1452205_zq_left.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/xiezuliang-1372411_zq_right.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/yangchunguo-1444142_zq_right.nii.gz  
  inflating: /home/aistudio/no_label_data/zengqiang_nii/yangjinkun-1403768_zq_left.nii.gz  
  inflating: /home/aistudio/no_label_data/pingsao.csv  
  inflating: /home/aistudio/no_label_data/zengqiang.csv  
  inflating: /home/aistudio/no_label_data/.~lock.final_CT_score.csv#  
  inflating: /home/aistudio/no_label_data/final_CT_score.csv  
   creating: /home/aistudio/no_label_data/pingsao_pred/
  inflating: /home/aistudio/no_label_data/pingsao_pred/yangjinkun-1403768_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/zhangzhong-1597035_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/xiezuliang-1372411_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/yuchangquan-1434033_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/wangbing-1408635_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/wangguojian-1369805_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/wujinhan-1397841_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/zhouqiongzhi-1406031_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/yangxinyi-1486544_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/xianglizhao-1439461_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/xuliangcai-1357916_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/luoyoufu-1429059_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/zhuyinlian-1595389_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/panchunzhi-1384695_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/duchangping-1446216_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/zhangyongqing-1608328_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/zhangzhong-1597035_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/zhouqiongzhi-1406031_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/qianruijin-1448854_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/zhoumeizhen-1401273_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/lidongliang-1438037_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/penghuayan-1375892_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/huangxinguo-1463810_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/panchunzhi-1384695_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/xiezuliang-1372411_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/zhuyinlian-1595389_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/xiaguohua-1494227_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/xiaguohua-1494227_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/yanjinlian-1490298_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/penghuayan-1375892_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/dongchaoguang-1406315_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/yangxinzhang-1598153_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/xuliangcai-1357916_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/zhangyongqing-1608328_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/liuhouqun-1603412_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/daiyuying-1452205_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/zhangqiduan-1423260_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/caotingzhu-1483304_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/zhoumeizhen-1401273_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/duchangping-1446216_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/wangguojian-1369805_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/dongchaoguang-1406315_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/zhangqiduan-1423260_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/yangchunguo-1444142_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/wangbing-1408635_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/huangxinguo-1463810_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/luoyoufu-1429059_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/lidongliang-1438037_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/wangwangping-1435804_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/wangwangping-1435804_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/qianruijin-1448854_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/zhanglanxiang-1601219_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/caotingzhu-1483304_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/yangxinzhang-1598153_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/yangchunguo-1444142_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/zhanglanxiang-1601219_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/yangxinyi-1486544_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/yangjinkun-1403768_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/daiyuying-1452205_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/liuhouqun-1603412_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/yanjinlian-1490298_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/wujinhan-1397841_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/zhouhui-1368374_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/zhouhui-1368374_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/yuchangquan-1434033_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao_pred/xianglizhao-1439461_left.npy  
   creating: /home/aistudio/no_label_data/zengqiang_pred/
  inflating: /home/aistudio/no_label_data/zengqiang_pred/lidongliang-1438037_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/dongchaoguang-1406315_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/lidongliang-1438037_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/duchangping-1446216_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/qianruijin-1448854_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/xianglizhao-1439461_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/zhangzhong-1597035_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/zhanglanxiang-1601219_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/zhouqiongzhi-1406031_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/yangjinkun-1403768_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/caotingzhu-1483304_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/xuliangcai-1357916_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/xianglizhao-1439461_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/xiezuliang-1372411_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/yangchunguo-1444142_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/wangwangping-1435804_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/duchangping-1446216_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/zhangyongqing-1608328_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/daiyuying-1452205_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/daiyuying-1452205_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/zhuyinlian-1595389_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/yangxinyi-1486544_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/zhangqiduan-1423260_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/yanjinlian-1490298_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/zhouhui-1368374_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/zhanglanxiang-1601219_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/dongchaoguang-1406315_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/yuchangquan-1434033_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/zhoumeizhen-1401273_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/yangjinkun-1403768_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/huangxinguo-1463810_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/wangwangping-1435804_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/panchunzhi-1384695_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/zhoumeizhen-1401273_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/caotingzhu-1483304_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/yangxinyi-1486544_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/luoyoufu-1429059_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/wujinhan-1397841_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/yangchunguo-1444142_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/liuhouqun-1603412_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/wujinhan-1397841_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/wangbing-1408635_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/yangxinzhang-1598153_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/wangguojian-1369805_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/xuliangcai-1357916_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/zhangzhong-1597035_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/zhouhui-1368374_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/penghuayan-1375892_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/wangbing-1408635_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/yangxinzhang-1598153_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/zhangyongqing-1608328_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/liuhouqun-1603412_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/qianruijin-1448854_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/panchunzhi-1384695_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/yanjinlian-1490298_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/huangxinguo-1463810_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/luoyoufu-1429059_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/penghuayan-1375892_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/xiaguohua-1494227_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/zhouqiongzhi-1406031_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/xiaguohua-1494227_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/xiezuliang-1372411_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/wangguojian-1369805_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/yuchangquan-1434033_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/zhangqiduan-1423260_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang_pred/zhuyinlian-1595389_zq_left.npy  
   creating: /home/aistudio/no_label_data/pingsao/
  inflating: /home/aistudio/no_label_data/pingsao/yangjinkun-1403768_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao/zhangzhong-1597035_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao/xiezuliang-1372411_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao/yuchangquan-1434033_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao/wangbing-1408635_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao/wangguojian-1369805_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao/wujinhan-1397841_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao/zhouqiongzhi-1406031_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao/yangxinyi-1486544_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao/xianglizhao-1439461_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao/xuliangcai-1357916_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao/luoyoufu-1429059_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao/zhuyinlian-1595389_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao/panchunzhi-1384695_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao/duchangping-1446216_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao/zhangyongqing-1608328_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao/zhangzhong-1597035_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao/zhouqiongzhi-1406031_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao/qianruijin-1448854_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao/zhoumeizhen-1401273_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao/lidongliang-1438037_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao/penghuayan-1375892_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao/huangxinguo-1463810_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao/panchunzhi-1384695_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao/xiezuliang-1372411_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao/zhuyinlian-1595389_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao/xiaguohua-1494227_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao/xiaguohua-1494227_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao/yanjinlian-1490298_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao/penghuayan-1375892_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao/dongchaoguang-1406315_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao/yangxinzhang-1598153_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao/xuliangcai-1357916_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao/zhangyongqing-1608328_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao/liuhouqun-1603412_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao/daiyuying-1452205_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao/zhangqiduan-1423260_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao/caotingzhu-1483304_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao/zhoumeizhen-1401273_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao/duchangping-1446216_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao/wangguojian-1369805_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao/dongchaoguang-1406315_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao/zhangqiduan-1423260_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao/yangchunguo-1444142_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao/wangbing-1408635_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao/huangxinguo-1463810_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao/luoyoufu-1429059_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao/lidongliang-1438037_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao/wangwangping-1435804_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao/wangwangping-1435804_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao/qianruijin-1448854_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao/zhanglanxiang-1601219_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao/caotingzhu-1483304_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao/yangxinzhang-1598153_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao/yangchunguo-1444142_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao/zhanglanxiang-1601219_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao/yangxinyi-1486544_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao/yangjinkun-1403768_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao/daiyuying-1452205_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao/liuhouqun-1603412_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao/yanjinlian-1490298_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao/wujinhan-1397841_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao/zhouhui-1368374_left.npy  
  inflating: /home/aistudio/no_label_data/pingsao/zhouhui-1368374_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao/yuchangquan-1434033_right.npy  
  inflating: /home/aistudio/no_label_data/pingsao/xianglizhao-1439461_left.npy  
   creating: /home/aistudio/no_label_data/zengqiang/
  inflating: /home/aistudio/no_label_data/zengqiang/lidongliang-1438037_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/dongchaoguang-1406315_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/lidongliang-1438037_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/duchangping-1446216_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/qianruijin-1448854_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/xianglizhao-1439461_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/zhangzhong-1597035_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/zhanglanxiang-1601219_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/zhouqiongzhi-1406031_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/yangjinkun-1403768_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/caotingzhu-1483304_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/xuliangcai-1357916_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/xianglizhao-1439461_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/xiezuliang-1372411_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/yangchunguo-1444142_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/wangwangping-1435804_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/duchangping-1446216_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/zhangyongqing-1608328_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/daiyuying-1452205_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/daiyuying-1452205_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/zhuyinlian-1595389_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/yangxinyi-1486544_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/zhangqiduan-1423260_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/yanjinlian-1490298_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/zhouhui-1368374_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/zhanglanxiang-1601219_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/dongchaoguang-1406315_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/yuchangquan-1434033_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/zhoumeizhen-1401273_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/yangjinkun-1403768_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/huangxinguo-1463810_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/wangwangping-1435804_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/panchunzhi-1384695_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/zhoumeizhen-1401273_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/caotingzhu-1483304_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/yangxinyi-1486544_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/luoyoufu-1429059_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/wujinhan-1397841_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/yangchunguo-1444142_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/liuhouqun-1603412_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/wujinhan-1397841_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/wangbing-1408635_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/yangxinzhang-1598153_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/wangguojian-1369805_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/xuliangcai-1357916_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/zhangzhong-1597035_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/zhouhui-1368374_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/penghuayan-1375892_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/wangbing-1408635_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/yangxinzhang-1598153_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/zhangyongqing-1608328_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/liuhouqun-1603412_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/qianruijin-1448854_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/panchunzhi-1384695_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/yanjinlian-1490298_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/huangxinguo-1463810_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/luoyoufu-1429059_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/penghuayan-1375892_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/xiaguohua-1494227_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/zhouqiongzhi-1406031_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/xiaguohua-1494227_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/xiezuliang-1372411_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/wangguojian-1369805_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/yuchangquan-1434033_zq_right.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/zhangqiduan-1423260_zq_left.npy  
  inflating: /home/aistudio/no_label_data/zengqiang/zhuyinlian-1595389_zq_left.npy  

1.数据集的预处理

首先是我们项目的整体代码结构,文件树如下图所示:
在这里插入图片描述

由于从医院导出的数据格式为DICOM,无法直接丢入到模型中进行训练,我们首先先将DICOM格式或者NIFIT(nii.gz)转化成为numpy格式,在这里我们上传的数据已经是转换好的NIFIT格式数据。

我们一共上传了47例作为训练集,其余9例作为验证集。

MedicalSeg已经提供了进行数据格式预处理的模板,在PaddleSeg/contrib/MedicalSeg/tools/ 文件中 例如有新冠肺炎CT的,磁共振腰椎的和前列腺磁共振的,可以根据这些处理文件自行修改成合适自己的数据。在这里我们使用CT的预处理模式。

以下的是本项目的数据预处理代码,用于处理CT肾脏数据。需要进行修改的地方有以下几个:1、数据集的路线;2、窗位和窗宽的设置(在本项目是40和400);3、重采样的大小,如果设置过大,GPU显存不够则无法运行,具体可进行尝试调节。

# 接着把本项目的数据预处理文件,复制到PaddleSeg/contrib/MedicalSeg/tools文件中,否则无法读取和运行
!cp /home/aistudio/prepare_kidney.py /home/aistudio/tools/prepare_kidney.py
# 再次安装后续依赖包,如pynrrd,pydicom等
!pip install pynrrd
!pip install nibabel
!pip install SimpleITK
!pip install pydicom

Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Collecting pynrrd
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/83/77/afb60173b5247431cd93ef226ab0568c4ef6771c7e4db733d03cb0485e9e/pynrrd-0.4.3-py2.py3-none-any.whl (18 kB)
Requirement already satisfied: numpy>=1.11.1 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from pynrrd) (1.19.5)
Installing collected packages: pynrrd
Successfully installed pynrrd-0.4.3

[1m[[0m[34;49mnotice[0m[1;39;49m][0m[39;49m A new release of pip available: [0m[31;49m22.1.2[0m[39;49m -> [0m[32;49m22.2.2[0m
[1m[[0m[34;49mnotice[0m[1;39;49m][0m[39;49m To update, run: [0m[32;49mpip install --upgrade pip[0m
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Collecting nibabel
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/26/4f/0f934f4e1ce05377e69afba160289f56df449135a80c8c35fa2ccf1d0c9d/nibabel-4.0.1-py3-none-any.whl (3.3 MB)
[2K     [90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━[0m [32m3.3/3.3 MB[0m [31m5.9 MB/s[0m eta [36m0:00:00[0m00:01[0m00:01[0m
[?25hRequirement already satisfied: packaging>=17.0 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from nibabel) (21.3)
Requirement already satisfied: setuptools in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from nibabel) (56.2.0)
Requirement already satisfied: numpy>=1.17 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from nibabel) (1.19.5)
Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from packaging>=17.0->nibabel) (3.0.9)
Installing collected packages: nibabel
Successfully installed nibabel-4.0.1

[1m[[0m[34;49mnotice[0m[1;39;49m][0m[39;49m A new release of pip available: [0m[31;49m22.1.2[0m[39;49m -> [0m[32;49m22.2.2[0m
[1m[[0m[34;49mnotice[0m[1;39;49m][0m[39;49m To update, run: [0m[32;49mpip install --upgrade pip[0m
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Collecting SimpleITK
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/17/4d/972ac7c17d2e75a3948756279f37bb2ebb280b11e101364f3d025304a155/SimpleITK-2.1.1.2-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (48.4 MB)
[2K     [90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━[0m [32m48.4/48.4 MB[0m [31m4.7 MB/s[0m eta [36m0:00:00[0m00:01[0m00:01[0mm
[?25hInstalling collected packages: SimpleITK
Successfully installed SimpleITK-2.1.1.2

[1m[[0m[34;49mnotice[0m[1;39;49m][0m[39;49m A new release of pip available: [0m[31;49m22.1.2[0m[39;49m -> [0m[32;49m22.2.2[0m
[1m[[0m[34;49mnotice[0m[1;39;49m][0m[39;49m To update, run: [0m[32;49mpip install --upgrade pip[0m
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Collecting pydicom
  Downloading https://pypi.tuna.tsinghua.edu.cn/packages/5f/45/97660cc1ec770e2e82fd5d704c1d6ff9c308ecfcbbf07c2b2f92ca755b70/pydicom-2.3.0-py3-none-any.whl (2.0 MB)
[2K     [90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━[0m [32m2.0/2.0 MB[0m [31m17.7 MB/s[0m eta [36m0:00:00[0m00:01[0m00:01[0m
[?25hInstalling collected packages: pydicom
Successfully installed pydicom-2.3.0

[1m[[0m[34;49mnotice[0m[1;39;49m][0m[39;49m A new release of pip available: [0m[31;49m22.1.2[0m[39;49m -> [0m[32;49m22.2.2[0m
[1m[[0m[34;49mnotice[0m[1;39;49m][0m[39;49m To update, run: [0m[32;49mpip install --upgrade pip[0m
# 运行预处理文件,把NIFIT格式文件转换成numpy格式文件,生成对应的train.txt和val.txt,以及数据参数相关的dataset.json文件
!python tools/prepare_kidney.py
raw_dataset_dir /home/aistudio/work/data/kidney/kidney_raw/ exists, skipping uncompress. To uncompress again, remove this directory
Load train file information into dataset.json: 100%|█| 56/56 [00:16<00:00,  3.52it/s]
save dataset.json to /home/aistudio/work/data/kidney/kidney_raw/dataset.json
Start convert images to numpy array using CPU, please wait patiently
preprocessing the images: 100%|█████████████████| 56/56 [00:44<00:00,  1.25it/s]
preprocessing the labels: 100%|█████████████████| 56/56 [00:12<00:00,  4.29it/s]
The preprocess time on CPU is 57.6772825717926
successfully write to /home/aistudio/work/data/kidney/kidney_phase0/train_list.txt
successfully write to /home/aistudio/work/data/kidney/kidney_phase0/val_list.txt
# 查看采样后的CT图像
import numpy as np
import matplotlib.pyplot as plt
img3d = np.load('/home/aistudio/work/data/kidney/kidney_phase0/images/caotingzhu-1483304_zq_left.npy').squeeze()
print(img3d.shape)
plt.imshow(img3d[:,:,100],'gray')
plt.show()
(64, 128, 128)

在这里插入图片描述

2.训练参数的配置

目前MedicalSeg继承了PaddleSeg的优点,使用yaml文件来配置训练参数,方便我们进行设置,本项目的具体kidney.yaml配置如下:

在这里插入图片描述在这里插入图片描述

3.模型的训练和验证

MedicalSeg提供便捷的训练方式,只需要一键运行 run-vnet.sh 就可以进行训练和评估。预测得到的文件也是NIFIT格式文件,便于我们使用一些阅片软件及时查看训练结果。

# 开始模型训练
"""
!python3 train.py --config /home/aistudio/configs/kidney/kidney.yml #yaml文件路径
    --save_dir  "/home/aistudio/output/vnet_128_128_128_15k" #模型保存路径
    --save_interval 500 #多少iters保存模型参数
    --log_iters 60  #多少iters打印一次信息
    --iters 15000 #训练多少iters
    --num_workers 6 
    --do_eval  #是否训练期间验证模型性能
    --use_vdl  #是否使用VisualDL可视化训练指标的走势
"""
!python3 train.py --config /home/aistudio/configs/kidney/vnet_128_128_128_15k.yml \
    --save_dir  /home/aistudio/saved_model/vnet_128_128_128_15k \
    --save_interval 72 --log_iters 100 \
    --log_iters 18 \
    --keep_checkpoint_max 5 \
    --num_workers 6 --do_eval --use_vdl 
2022-08-16 22:58:54 [INFO]	
------------Environment Information-------------
platform: Linux-4.15.0-140-generic-x86_64-with-debian-stretch-sid
Python: 3.7.4 (default, Aug 13 2019, 20:35:49) [GCC 7.3.0]
Paddle compiled with cuda: True
NVCC: Cuda compilation tools, release 10.1, V10.1.243
cudnn: 7.6
GPUs used: 1
CUDA_VISIBLE_DEVICES: None
GPU: ['GPU 0: Tesla V100-SXM2-32GB']
GCC: gcc (Ubuntu 7.5.0-3ubuntu1~16.04) 7.5.0
PaddlePaddle: 2.3.1
------------------------------------------------
2022-08-16 22:58:54 [INFO]	
---------------Config Information---------------
batch_size: 2
data_root: /home/aistudio/work/data/
iters: 10000
loss:
  coef:
  - 1
  types:
  - coef:
    - 1
    - 1
    losses:
    - type: CrossEntropyLoss
      weight: null
    - type: DiceLoss
    type: MixedLoss
lr_scheduler:
  decay_steps: 15000
  end_lr: 0
  learning_rate: 0.001
  power: 0.9
  type: PolynomialDecay
model:
  elu: false
  in_channels: 1
  num_classes: 2
  pretrained: null
  type: VNet
optimizer:
  momentum: 0.9
  type: sgd
  weight_decay: 0.0001
train_dataset:
  dataset_root: kidney/kidney_phase0
  mode: train
  num_classes: 2
  result_dir: kidney/kidney_phase1
  transforms:
  - scale:
    - 0.8
    - 1.2
    size: 128
    type: RandomResizedCrop3D
  - degrees: 90
    type: RandomRotation3D
  - type: RandomFlip3D
  type: MedicalDataset
val_dataset:
  dataset_json_path: /home/aistudio/work/data/kidney/kidney_raw/dataset.json
  dataset_root: kidney/kidney_phase0
  mode: val
  num_classes: 2
  result_dir: kidney/kidney_phase1
  transforms: []
  type: MedicalDataset
------------------------------------------------
W0816 22:58:54.497057 18126 gpu_resources.cc:61] Please NOTE: device: 0, GPU Compute Capability: 7.0, Driver API Version: 11.2, Runtime API Version: 10.1
W0816 22:58:54.497108 18126 gpu_resources.cc:91] device: 0, cuDNN Version: 7.6.
/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/dygraph/math_op_patch.py:278: UserWarning: The dtype of left and right variables are not the same, left dtype is paddle.float32, but right dtype is paddle.bool, the right dtype will convert to paddle.float32
  format(lhs_dtype, rhs_dtype, lhs_dtype))
2022-08-16 22:59:32 [INFO]	[TRAIN] epoch: 0, iter: 18/10000, loss: 1.5416, DSC: 38.6348, lr: 0.000999, batch_cost: 2.0089, reader_cost: 0.24212, ips: 0.9956 samples/sec | ETA 05:34:12
2022-08-16 22:59:56 [INFO]	[TRAIN] epoch: 0, iter: 36/10000, loss: 1.2776, DSC: 41.2738, lr: 0.000998, batch_cost: 1.3734, reader_cost: 0.00172, ips: 1.4563 samples/sec | ETA 03:48:04
2022-08-16 23:00:21 [INFO]	[TRAIN] epoch: 0, iter: 54/10000, loss: 1.0860, DSC: 43.8327, lr: 0.000997, batch_cost: 1.3809, reader_cost: 0.00145, ips: 1.4483 samples/sec | ETA 03:48:54
2022-08-16 23:00:46 [INFO]	[TRAIN] epoch: 0, iter: 72/10000, loss: 0.9825, DSC: 45.2337, lr: 0.000996, batch_cost: 1.3931, reader_cost: 0.00170, ips: 1.4356 samples/sec | ETA 03:50:30
2022-08-16 23:00:46 [INFO]	Start evaluating (total_samples: 14, total_iters: 14)...
[EVAL] Sucessfully save to /home/aistudio/saved_model/vnet_128_128_128_15k/0
 1/14 [=>............................] - ETA: 13s - batch_cost: 1.0644 - reader cost: 0.1563[EVAL] Sucessfully save to /home/aistudio/saved_model/vnet_128_128_128_15k/1
 2/14 [===>..........................] - ETA: 11s - batch_cost: 0.9770 - reader cost: 0.0783[EVAL] Sucessfully save to /home/aistudio/saved_model/vnet_128_128_128_15k/2
 3/14 [=====>........................] - ETA: 10s - batch_cost: 0.9514 - reader cost: 0.0523[EVAL] Sucessfully save to /home/aistudio/saved_model/vnet_128_128_128_15k/3
 4/14 [=======>......................] - ETA: 9s - batch_cost: 0.9518 - reader cost: 0.0394 [EVAL] Sucessfully save to /home/aistudio/saved_model/vnet_128_128_128_15k/4
14/14 [==============================] - 8s 606ms/step - batch_cost: 0.6059 - reader cost: 0.0114
2022-08-16 23:00:55 [INFO]	[EVAL] #Images: 14, Dice: 0.4545, Loss: 0.946389
2022-08-16 23:00:55 [INFO]	[EVAL] Class dice: 
[0.8639 0.0451]
2022-08-16 23:00:56 [INFO]	[EVAL] The model with the best validation mDice (0.4545) was saved at iter 72.
2022-08-16 23:01:21 [INFO]	[TRAIN] epoch: 0, iter: 90/10000, loss: 0.9127, DSC: 45.9594, lr: 0.000995, batch_cost: 1.3786, reader_cost: 0.00132, ips: 1.4507 samples/sec | ETA 03:47:42
2022-08-16 23:01:46 [INFO]	[TRAIN] epoch: 0, iter: 108/10000, loss: 0.8558, DSC: 47.2110, lr: 0.000994, batch_cost: 1.3959, reader_cost: 0.00077, ips: 1.4327 samples/sec | ETA 03:50:08
2022-08-16 23:02:11 [INFO]	[TRAIN] epoch: 0, iter: 126/10000, loss: 0.8102, DSC: 48.2715, lr: 0.000992, batch_cost: 1.3781, reader_cost: 0.00183, ips: 1.4513 samples/sec | ETA 03:46:47
2022-08-16 23:02:36 [INFO]	[TRAIN] epoch: 0, iter: 144/10000, loss: 0.7757, DSC: 48.6764, lr: 0.000991, batch_cost: 1.3715, reader_cost: 0.00132, ips: 1.4582 samples/sec | ETA 03:45:17
2022-08-16 23:02:36 [INFO]	Start evaluating (total_samples: 14, total_iters: 14)...
[EVAL] Sucessfully save to /home/aistudio/saved_model/vnet_128_128_128_15k/0
 1/14 [=>............................] - ETA: 14s - batch_cost: 1.1304 - reader cost: 0.1430[EVAL] Sucessfully save to /home/aistudio/saved_model/vnet_128_128_128_15k/1
 2/14 [===>..........................] - ETA: 11s - batch_cost: 0.9990 - reader cost: 0.0717[EVAL] Sucessfully save to /home/aistudio/saved_model/vnet_128_128_128_15k/2
 3/14 [=====>........................] - ETA: 10s - batch_cost: 0.9700 - reader cost: 0.0479[EVAL] Sucessfully save to /home/aistudio/saved_model/vnet_128_128_128_15k/3
 4/14 [=======>......................] - ETA: 9s - batch_cost: 0.9673 - reader cost: 0.0360 [EVAL] Sucessfully save to /home/aistudio/saved_model/vnet_128_128_128_15k/4
14/14 [==============================] - 8s 607ms/step - batch_cost: 0.6065 - reader cost: 0.0105
2022-08-16 23:02:44 [INFO]	[EVAL] #Images: 14, Dice: 0.4828, Loss: 0.761965
2022-08-16 23:02:44 [INFO]	[EVAL] Class dice: 
[0.9052 0.0604]
2022-08-16 23:02:47 [INFO]	[EVAL] The model with the best validation mDice (0.4828) was saved at iter 144.
2022-08-16 23:03:12 [INFO]	[TRAIN] epoch: 0, iter: 162/10000, loss: 0.7485, DSC: 48.6452, lr: 0.000990, batch_cost: 1.3853, reader_cost: 0.00157, ips: 1.4437 samples/sec | ETA 03:47:08
^C
Traceback (most recent call last):
  File "train.py", line 194, in <module>
    main(args)
  File "train.py", line 189, in main
    to_static_training=cfg.to_static_training)
  File "/home/aistudio/medicalseg/core/train.py", line 140, in train
    optimizer.step()
  File "<decorator-gen-247>", line 2, in step
  File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/dygraph/base.py", line 299, in __impl__
    return func(*args, **kwargs)
  File "<decorator-gen-245>", line 2, in step
  File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/wrapped_decorator.py", line 25, in __impl__
    return wrapped_func(*args, **kwargs)
  File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/framework.py", line 434, in __impl__
    return func(*args, **kwargs)
  File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/optimizer/optimizer.py", line 1220, in step
    loss=None, startup_program=None, params_grads=params_grads)
  File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/optimizer/optimizer.py", line 963, in _apply_optimize
    optimize_ops = self._create_optimization_pass(params_grads)
  File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/optimizer/optimizer.py", line 767, in _create_optimization_pass
    param_and_grad)
  File "/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/optimizer/momentum.py", line 326, in _append_optimize_op
    find_master)
KeyboardInterrupt
# 本项目还提供一键训练,只需运行以下代码即可达到与上一个训练代码相同的效果,非常便捷
!sh run-vnet.sh
W0817 23:08:24.757609 15055 gpu_resources.cc:61] Please NOTE: device: 0, GPU Compute Capability: 7.0, Driver API Version: 11.2, Runtime API Version: 10.1
W0817 23:08:24.757652 15055 gpu_resources.cc:91] device: 0, cuDNN Version: 7.6.
/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/dygraph/math_op_patch.py:278: UserWarning: The dtype of left and right variables are not the same, left dtype is paddle.float32, but right dtype is paddle.bool, the right dtype will convert to paddle.float32
  format(lhs_dtype, rhs_dtype, lhs_dtype))
9/9 [==============================] - 3s 374ms/step - batch_cost: 0.3741 - reader cost: 0.0151
9/9 [==============================] - 4s 395ms/step - batch_cost: 0.3944 - reader cost: 0.0199
9/9 [==============================] - 3s 386ms/step - batch_cost: 0.3859 - reader cost: 0.0167
9/9 [==============================] - 3s 388ms/step - batch_cost: 0.3875 - reader cost: 0.0167
9/9 [==============================] - 3s 383ms/step - batch_cost: 0.3829 - reader cost: 0.0145
9/9 [==============================] - 4s 393ms/step - batch_cost: 0.3927 - reader cost: 0.0153
9/9 [==============================] - 3s 389ms/step - batch_cost: 0.3884 - reader cost: 0.0151
9/9 [==============================] - 3s 387ms/step - batch_cost: 0.3864 - reader cost: 0.0145
9/9 [==============================] - 3s 388ms/step - batch_cost: 0.3880 - reader cost: 0.0147
9/9 [==============================] - 3s 387ms/step - batch_cost: 0.3871 - reader cost: 0.0147
9/9 [==============================] - 3s 386ms/step - batch_cost: 0.3854 - reader cost: 0.0147
9/9 [==============================] - 3s 374ms/step - batch_cost: 0.3736 - reader cost: 0.0150
9/9 [==============================] - 3s 382ms/step - batch_cost: 0.3820 - reader cost: 0.0147
9/9 [==============================] - 3s 385ms/step - batch_cost: 0.3846 - reader cost: 0.0148
9/9 [==============================] - 3s 382ms/step - batch_cost: 0.3821 - reader cost: 0.0150
9/9 [==============================] - 3s 385ms/step - batch_cost: 0.3845 - reader cost: 0.0148
9/9 [==============================] - 3s 385ms/step - batch_cost: 0.3849 - reader cost: 0.0150
9/9 [==============================] - 3s 383ms/step - batch_cost: 0.3832 - reader cost: 0.0147
9/9 [==============================] - 3s 376ms/step - batch_cost: 0.3757 - reader cost: 0.0144
9/9 [==============================] - 3s 385ms/step - batch_cost: 0.3852 - reader cost: 0.0151
9/9 [==============================] - 3s 385ms/step - batch_cost: 0.3848 - reader cost: 0.0147
9/9 [==============================] - 3s 381ms/step - batch_cost: 0.3809 - reader cost: 0.0152
9/9 [==============================] - 3s 380ms/step - batch_cost: 0.3799 - reader cost: 0.0148
9/9 [==============================] - 3s 388ms/step - batch_cost: 0.3876 - reader cost: 0.0151
9/9 [==============================] - 3s 386ms/step - batch_cost: 0.3852 - reader cost: 0.0149
9/9 [==============================] - 3s 384ms/step - batch_cost: 0.3833 - reader cost: 0.0150
9/9 [==============================] - 3s 386ms/step - batch_cost: 0.3862 - reader cost: 0.0149
9/9 [==============================] - 4s 391ms/step - batch_cost: 0.3908 - reader cost: 0.0149
9/9 [==============================] - 3s 388ms/step - batch_cost: 0.3882 - reader cost: 0.0146
9/9 [==============================] - 3s 388ms/step - batch_cost: 0.3873 - reader cost: 0.0149
9/9 [==============================] - 3s 382ms/step - batch_cost: 0.3813 - reader cost: 0.0145
9/9 [==============================] - 4s 391ms/step - batch_cost: 0.3906 - reader cost: 0.0148
9/9 [==============================] - 3s 387ms/step - batch_cost: 0.3862 - reader cost: 0.0163
9/9 [==============================] - 4s 396ms/step - batch_cost: 0.3957 - reader cost: 0.0150
9/9 [==============================] - 3s 382ms/step - batch_cost: 0.3813 - reader cost: 0.0150
# 开始模型验证
# 本项目iter设置为10000,跑到5760时精度DICE不再提高,进行手动停止,最终验证集的精度如下
# 平均DICE有0.9457,整体效果不错

!python3 val.py --config /home/aistudio/configs/kidney/vnet_128_128_128_15k.yml \
--model_path /home/aistudio/saved_model/vnet_128_128_128_15k/best_model/model.pdparams \
--save_dir  /home/aistudio/result
2022-08-18 11:07:11 [INFO]	
---------------Config Information---------------
batch_size: 2
data_root: /home/aistudio/work/data/
iters: 10000
loss:
  coef:
  - 1
  types:
  - coef:
    - 1
    - 1
    losses:
    - type: CrossEntropyLoss
      weight: null
    - type: DiceLoss
    type: MixedLoss
lr_scheduler:
  decay_steps: 10000
  end_lr: 0
  learning_rate: 0.1
  power: 0.9
  type: PolynomialDecay
model:
  elu: false
  in_channels: 1
  kernel_size:
  - - 2
    - 2
    - 4
  - - 2
    - 2
    - 2
  - - 2
    - 2
    - 2
  - - 2
    - 2
    - 2
  num_classes: 2
  pretrained: null
  stride_size:
  - - 2
    - 2
    - 1
  - - 2
    - 2
    - 1
  - - 2
    - 2
    - 2
  - - 2
    - 2
    - 2
  type: VNet
optimizer:
  momentum: 0.9
  type: sgd
  weight_decay: 0.0001
train_dataset:
  dataset_root: kidney/kidney_phase0
  mode: train
  num_classes: 2
  result_dir: kidney/kidney_phase1
  transforms:
  - degrees: 15
    type: RandomRotation3D
  - type: RandomFlip3D
  type: MedicalDataset
val_dataset:
  dataset_json_path: /home/aistudio/work/data/kidney/kidney_raw/dataset.json
  dataset_root: kidney/kidney_phase0
  mode: val
  num_classes: 2
  result_dir: kidney/kidney_phase1
  transforms: []
  type: MedicalDataset
------------------------------------------------
W0818 11:07:11.899406   503 gpu_resources.cc:61] Please NOTE: device: 0, GPU Compute Capability: 7.0, Driver API Version: 11.2, Runtime API Version: 10.1
W0818 11:07:11.899451   503 gpu_resources.cc:91] device: 0, cuDNN Version: 7.6.
2022-08-18 11:07:13 [INFO]	Loading pretrained model from /home/aistudio/saved_model/vnet_128_128_128_15k/best_model/model.pdparams
2022-08-18 11:07:13 [INFO]	There are 178/178 variables loaded into VNet.
2022-08-18 11:07:13 [INFO]	Loaded trained params of model successfully
2022-08-18 11:07:13 [INFO]	Start evaluating (total_samples: 9, total_iters: 9)...
/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/dygraph/math_op_patch.py:278: UserWarning: The dtype of left and right variables are not the same, left dtype is paddle.float32, but right dtype is paddle.bool, the right dtype will convert to paddle.float32
  format(lhs_dtype, rhs_dtype, lhs_dtype))
[EVAL] Sucessfully save to /home/aistudio/result/0
1/9 [==>...........................] - ETA: 14s - batch_cost: 1.8061 - reader cost: 0.1366[EVAL] Sucessfully save to /home/aistudio/result/1
2/9 [=====>........................] - ETA: 7s - batch_cost: 1.1165 - reader cost: 0.0684 [EVAL] Sucessfully save to /home/aistudio/result/2
3/9 [=========>....................] - ETA: 5s - batch_cost: 0.9132 - reader cost: 0.0457[EVAL] Sucessfully save to /home/aistudio/result/3
4/9 [============>.................] - ETA: 3s - batch_cost: 0.7939 - reader cost: 0.0343[EVAL] Sucessfully save to /home/aistudio/result/4
9/9 [==============================] - 5s 504ms/step - batch_cost: 0.5038 - reader cost: 0.0154
2022-08-18 11:07:18 [INFO]	[EVAL] #Images: 9, Dice: 0.9423, Loss: 0.455095
2022-08-18 11:07:18 [INFO]	[EVAL] Class dice: 
[0.9989 0.8857]
# 提供一键验证功能
!sh valid.sh
2022-08-17 22:28:45 [INFO]	
---------------Config Information---------------
batch_size: 2
data_root: /home/aistudio/work/data/
iters: 10000
loss:
  coef:
  - 1
  types:
  - coef:
    - 1
    - 1
    losses:
    - type: CrossEntropyLoss
      weight: null
    - type: DiceLoss
    type: MixedLoss
lr_scheduler:
  decay_steps: 10000
  end_lr: 0
  learning_rate: 0.1
  power: 0.9
  type: PolynomialDecay
model:
  elu: false
  in_channels: 1
  num_classes: 2
  pretrained: null
  type: VNet
optimizer:
  momentum: 0.9
  type: sgd
  weight_decay: 0.0001
train_dataset:
  dataset_root: kidney/kidney_phase0
  mode: train
  num_classes: 2
  result_dir: kidney/kidney_phase1
  transforms:
  - degrees: 15
    type: RandomRotation3D
  - type: RandomFlip3D
  type: MedicalDataset
val_dataset:
  dataset_json_path: /home/aistudio/work/data/kidney/kidney_raw/dataset.json
  dataset_root: kidney/kidney_phase0
  mode: val
  num_classes: 2
  result_dir: kidney/kidney_phase1
  transforms: []
  type: MedicalDataset
------------------------------------------------
W0817 22:28:45.994335 10519 gpu_resources.cc:61] Please NOTE: device: 0, GPU Compute Capability: 7.0, Driver API Version: 11.2, Runtime API Version: 10.1
W0817 22:28:45.994374 10519 gpu_resources.cc:91] device: 0, cuDNN Version: 7.6.
2022-08-17 22:28:47 [INFO]	Loading pretrained model from saved_model/vnet_128_128_128_15k/best_model/model.pdparams
2022-08-17 22:28:47 [INFO]	There are 178/178 variables loaded into VNet.
2022-08-17 22:28:47 [INFO]	Loaded trained params of model successfully
2022-08-17 22:28:47 [INFO]	Start evaluating (total_samples: 9, total_iters: 9)...
/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/dygraph/math_op_patch.py:278: UserWarning: The dtype of left and right variables are not the same, left dtype is paddle.float32, but right dtype is paddle.bool, the right dtype will convert to paddle.float32
  format(lhs_dtype, rhs_dtype, lhs_dtype))
[EVAL] Sucessfully save to /home/aistudio/result/0
1/9 [==>...........................] - ETA: 14s - batch_cost: 1.7962 - reader cost: 0.1555[EVAL] Sucessfully save to /home/aistudio/result/1
2/9 [=====>........................] - ETA: 7s - batch_cost: 1.0695 - reader cost: 0.0779 [EVAL] Sucessfully save to /home/aistudio/result/2
3/9 [=========>....................] - ETA: 5s - batch_cost: 0.8342 - reader cost: 0.0520[EVAL] Sucessfully save to /home/aistudio/result/3
4/9 [============>.................] - ETA: 3s - batch_cost: 0.7118 - reader cost: 0.0391[EVAL] Sucessfully save to /home/aistudio/result/4
9/9 [==============================] - 4s 411ms/step - batch_cost: 0.4104 - reader cost: 0.0175
2022-08-17 22:28:51 [INFO]	[EVAL] #Images: 9, Dice: 0.9457, Loss: 0.463432
2022-08-17 22:28:51 [INFO]	[EVAL] Class dice: 
[0.9987 0.8927]

4.模型的部署和推理

MedicalSeg提供了用 Paddle Inference 的 Python 接口在服务器端 (Nvidia GPU 或者 X86 CPU) 部署分割模型,可以进行一键部署推理,十分强大。这里只展示模型的导出和对未知输入的预测。

# 导出模型
!python export.py --config /home/aistudio/configs/kidney/vnet_128_128_128_15k.yml \
--model_path /home/aistudio/saved_model/vnet_128_128_128_15k/best_model/model.pdparams \
--save_dir /home/aistudio/output
W0819 00:04:49.677556 22244 gpu_resources.cc:61] Please NOTE: device: 0, GPU Compute Capability: 7.0, Driver API Version: 11.2, Runtime API Version: 10.1
W0819 00:04:49.682111 22244 gpu_resources.cc:91] device: 0, cuDNN Version: 7.6.
2022-08-19 00:04:51 [INFO]	Loaded trained params of model successfully.
2022-08-19 00:04:56 [INFO]	Model is saved in /home/aistudio/output.
# 基于numpy数据预测
!python deploy/python/infer.py --config /home/aistudio/output/deploy.yaml \
--image_path /home/aistudio/predict/yangxinzhang-1598153_left.nii.gz \
--save_dir /home/aistudio/predict/result \
--print_detail False
2022-08-19 00:10:28 [INFO]	Use GPU
deploy/python/infer.py:387: UserWarning: The image path is ['/home/aistudio/predict/yangxinzhang-1598153_left.nii.gz'], please make sure this is the images you want to infer
  warnings.warn("The image path is {}, please make sure this is the images you want to infer".format(image_files))
2022-08-19 00:10:32 [INFO]	Finish
# 查看的预测结果
import numpy
import matplotlib.pyplot as plt

img = numpy.load("/home/aistudio/predict/zhoumeizhen-1401273_right.npy").squeeze()
lbl = numpy.load("/home/aistudio/predict/zhoumeizhen-1401273_right_label.npy").squeeze() 
pred = numpy.load("/home/aistudio/predict/result/zhoumeizhen-1401273_right.npy").squeeze()

for i in range(100, 128, 128):
    ax1 = plt.subplot(131)
    ax1.imshow(img[:,:,i],'gray')
    ax2 = plt.subplot(132)
    ax2.imshow(lbl[:,:,i])
    ax3 = plt.subplot(133)
    ax3.imshow(pred[:,:,i])
    plt.show()

在这里插入图片描述

# npy转nii.gz

6. 计算分割出的肾脏区域的CT值

# 我们首先将预测的mask转化为二值图像(0,1),0为背景,1为预测区域。然后和对应原始图像的各个像素点的CT值相乘,得到一个新的矩阵图。
# 紧接着计算CT值大于0的区域,将CT值求和并取平均值,依次计算所有层面取平均值后即为该患者的某一期CT图像的肾皮质CT值
# 首先将所有CT图像输出预测到./all_predict
!python deploy/python/infer.py --config /home/aistudio/output/deploy.yaml \
--image_path /home/aistudio/work/data/kidney/kidney_phase0/images/caotingzhu-1483304_zq_left.npy \
--save_dir /home/aistudio/all_predict \
--print_detail False
2022-08-19 15:01:15 [INFO]	Use GPU
# 分别计算平扫期和增强期的CT值,以及两者之间的差值
# 注意更换路径,最后计算两个期之间的差值,文件记录在no_label_data/pingsao.csv之中
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import os

column_name = ['ID','CT_score']
data = pd.DataFrame(columns=column_name)
img_path = '/home/aistudio/no_label_data/pingsao'
pred_path = '/home/aistudio/no_label_data/pingsao_pred'
filename = os.listdir(img_path)
for file in filename:
    ID = file.split('.')[0]
    slide_img_path = os.path.join(img_path,file)
    slide_pred_path = os.path.join(pred_path,file)
    img = np.load(slide_img_path).squeeze()
    pred = np.load(slide_pred_path).squeeze()
    pred = pred[1]
    slide_sum_end = 0
    roi_sum_end = 0
    img_pred = np.multiply(img,pred)
    for i in range(64):
        slide_new = img_pred[i]
        slide_sum = np.sum(slide_new)
        slide_sum_end = slide_sum_end + slide_sum
        roi_sum = np.sum(slide_new > 0)
        roi_sum_end = roi_sum_end + roi_sum
    CT_score = slide_sum_end / roi_sum_end
    data = data.append({'ID': ID, 'CT_score':CT_score}, ignore_index=True)
data.to_csv('/home/aistudio/no_label_data/pingsao.csv')

7.构建回归模型预测患者的单侧肾功能

由于肾皮质的CT值和肾功能之间成相关关系,我们在这里利用逻辑回归进行构建模型,预测肾脏功能eGFR。在这里,eGFR采用1,2,3,4,5分别代表不同范围的肾功能,是国际标准划分规则。因此,这也是一个多分类的任务。

由于上传的数据集内存限制,我们无法完全上传构建回归模型的八百多例患者CT数据,仅使用几十例模型进行模型构建。我们在本地工作站中使用了八百多例进行模型构建,并将结果做如下展示,本地化精度达到了0.92。

下面将介绍本项目用于回归模型构建的核心代码,并提供几十例数据进行调试项目。

from sklearn.linear_model import LogisticRegression#导入回归模型
from sklearn.model_selection import train_test_split,cross_val_score#导入数据集的划分,交叉验证函数
import matplotlib.pyplot as plt
import pandas as pd
from sklearn.preprocessing import StandardScaler

# 加载数据
path1 = 'no_label_data/final.csv'
df = pd.read_csv(path1, low_memory=False)
df.head()

# 需求:构建CT_score和eGFR之间的映射关系,可以认为:特征属性为CT_score;目标属性为eGFR分级。
# 获取x和y变量
X = df.iloc[:,1:2]
Y = df['grade']

#数据划分(训练集和测试集)
X_train,X_test,y_train,y_test=train_test_split(X,Y,test_size = 0.3,random_state=0)
ss = StandardScaler()                 # 模型对象创建
X_train = ss.fit_transform(X_train)   # 训练模型并转换训练集,数据标准化,去掉数据参数的量纲(单位不同带来的影响)。
X_test = ss.transform(X_test)

log_reg = LogisticRegression()#定义一个逻辑回归算法
log_reg.fit(X_train,y_train)

y_predit = log_reg.predict(X_test)
print(y_predit)#测试集的分类
score = log_reg.score(X_test,y_test)
print(score)#测试集评分

import joblib
joblib.dump(log_reg,'LR/kidney.pickle')
model = joblib.load('LR/kidney.pickle')
print(model)
#预测
print(model.predict(X_test))
[4 4 4 3 4 4 3 5 5 5 5 4 5 4 1 3 3 3 1 4 2 2 3 5 2 2 5 3 1 3 3 3 5 5 4 3 2
 4 4 3 3 5 2 5 5 5 5 3 1 5 4 4 3 3 4 3 4 3 5 4 5 3 1 3 4 3 4 5 3 3 1 3 3 1
 3 3 4 2 4 5 3 3 1 4 4 4 5 3 4 3 3 5 4 1 4 3 5 4 3 2 4 3 3 4 4 3 1 3 2 5 3
 3 2 4 3 5 3 2 2 5 5 2 4 5 3 3 3 2 4 4 2 4 4 4 4 4 3 3 3 2 2 3 1 3 3 1 4 5
 1 3 3 4 4 3 5 3 5 3 3 3 3 5 4 2 4 4 2 3 4 5 2 4 4 3 3 2 5 1 1 4 4 4 2 4 4
 4 3 3 4 3 3 4 5 3 4 3 5 4 5 4 2 4 5 3 5 5 1 1 1 3 3 3 4 1 2 3 3 3 4 2 2 5
 2 2 4 5 2 4 1 5 5 3 1 4 1 3 3 4 4 4 1 4 4 2 5 5 4 3 3 1 4 3 3 4 5 3 3 4 4
 4 4 4 1 4]
0.9204545454545454
LogisticRegression()
[4 4 4 3 4 4 3 5 5 5 5 4 5 4 1 3 3 3 1 4 2 2 3 5 2 2 5 3 1 3 3 3 5 5 4 3 2
 4 4 3 3 5 2 5 5 5 5 3 1 5 4 4 3 3 4 3 4 3 5 4 5 3 1 3 4 3 4 5 3 3 1 3 3 1
 3 3 4 2 4 5 3 3 1 4 4 4 5 3 4 3 3 5 4 1 4 3 5 4 3 2 4 3 3 4 4 3 1 3 2 5 3
 3 2 4 3 5 3 2 2 5 5 2 4 5 3 3 3 2 4 4 2 4 4 4 4 4 3 3 3 2 2 3 1 3 3 1 4 5
 1 3 3 4 4 3 5 3 5 3 3 3 3 5 4 2 4 4 2 3 4 5 2 4 4 3 3 2 5 1 1 4 4 4 2 4 4
 4 3 3 4 3 3 4 5 3 4 3 5 4 5 4 2 4 5 3 5 5 1 1 1 3 3 3 4 1 2 3 3 3 4 2 2 5
 2 2 4 5 2 4 1 5 5 3 1 4 1 3 3 4 4 4 1 4 4 2 5 5 4 3 3 1 4 3 3 4 5 3 3 4 4
 4 4 4 1 4]

写在最后:

本项目成功将医学临床问题转化为深度学习中一个具体的问题,从而进行解决。医学人工智能要求医生或医学生同时具备医学专业知识和理工科知识,对大多数人来说都是不友好的。百度飞桨是一个易于使用的平台,将许多模型封装成型,降低了医生使用人工智能工具的门槛。我们也希望该项目能给广大医学同胞做一个好的示范,也为患者提供一个可行的肾功能检测方法。

此文章为搬运
原项目链接

Logo

学大模型,用大模型上飞桨星河社区!每天8点V100G算力免费领!免费领取ERNIE 4.0 100w Token >>>

更多推荐