日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

第十四届中国大学生服务外包创新创业大赛百度赛道-智慧医疗赛题baselin

發布時間:2024/3/24 编程问答 76 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第十四届中国大学生服务外包创新创业大赛百度赛道-智慧医疗赛题baselin 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第十四屆中國大學生服務外包創新創業大賽百度賽道-智慧醫療賽題baseline 2

比賽介紹

中國大學生服務外包創新創業大賽是中國高等教育學會全國普通高校學科競賽排行榜內競賽,本屆賽事,百度飛槳設立了“基于百度飛槳的3D 醫療數據解析平臺”的賽道,參賽獲獎有助于保研加分。

賽題背景

腹部多器官分割一直是醫學圖像分析領域最活躍的研究領域之一,其作為一項基礎技術,在支持疾病診斷,治療規劃等計算機輔助技術發揮著重要作用。近年來,基于深度學習的方法在該領域中獲得了巨大成功,卻也暴露出了一個迫切問題: 當前社區缺乏一個大規模、多樣性、且符合真正臨床場景的綜合基準數據集來開發/評估對應的算法。雖然目前已有幾個腹部器官分割數據集,它們的標注器官和標注例子數目卻相對有限,仍然限制了現代深度模型的力量,也難以對提出的不同方法進行全面和公平的評估。

為了解決上述問題,進一步促進醫療圖像分割技術的發展,深圳市大數據研究院、香港中文大學(深圳)、香港大學、中山大學等機構聯合深圳市龍崗區人民醫院、深圳市龍崗中心醫院提出了多模態腹部分割數據集(AMOS),一個大規模,多樣性的,收集自真實臨床場景下的腹部多器官分割基準數據。

本次競賽抽取AMOS2022數據集中的部分數據作為訓練和評測數據。
注意:本比賽只允許使用提供的數據集。

任務說明

參賽者利用提供的訓練數據,實現對腹部多器官圖像的器官分割。

數據集介紹

多器官數據集共有15個器官的標注,包括脾臟、右腎、左腎、膽囊、食道、肝、胃、主動脈、下腔靜脈、胰腺、右腎上腺、左腎上腺、十二指腸、膀胱、前列腺/子宮。本數據集共包含160個訓練數據,40個測試數據。

PaddleSeg介紹

PaddleSeg是基于飛槳PaddlePaddle的端到端圖像分割套件,內置45+模型算法及140+預訓練模型,支持配置化驅動和API調用開發方式,打通數據標注、模型開發、訓練、壓縮、部署的全流程,提供語義分割、交互式分割、Matting、全景分割四大分割能力,助力算法在醫療、工業、遙感、娛樂等場景落地應用。

本baseline使用PaddleSeg的MedicaSeg開發,github地址:https://github.com/PaddlePaddle/PaddleSeg

老爺們,動動發財的小手,點點star為我們助力,您的支持就是我們的動力~~

nnunet高精度模型-訓練-推理-提交全流程

上一篇baseline使用vnet模型,使用的與處理策略非常簡單,預測精度很低,本baseline使用nnunet 的cascade lowres模型,nnunet包含大量的trick,能夠獲得很高的精度。

本baseline僅包含部分使用內容,完整的nnunet使用方案請參考:
nnunet教程: https://aistudio.baidu.com/aistudio/projectdetail/4884907?contributionType=1

# step 1: 克隆PaddleSeg倉庫 %cd ~/ !git clone https://github.com/PaddlePaddle/PaddleSeg.git %cd ~/PaddleSeg !git checkout develop # develop分支目前支持nnformer,transunet,swinunet等多個算法,歡迎體驗 # step2: 解壓數據到~/PaddleSeg/contrib/MedicalSeg/data/raw_data !mkdir ~/PaddleSeg/contrib/MedicalSeg/data !unzip -oq ~/data/data179474/base_train.zip -d ~/PaddleSeg/contrib/MedicalSeg/data/raw_data # step 3: 刪除原本的數據集壓縮包,節約內存 !rm -rf ~/data/data179474/base_train.zip # 刪除掉數據集中一個沒用的文件夾,否則會報錯 !rm -rf ~/PaddleSeg/contrib/MedicalSeg/data/raw_data/.ipynb_checkpoints # step 4: 安裝依賴包 %cd ~/PaddleSeg/contrib/MedicalSeg/ !pip install -r requirements.txt !pip install medpy # step 5: nnunet cascade lowres訓練,混合精度訓練快一些,五折訓練,這里使用fold 2,一共有0,1,2,3,4共五個fold。 # 在訓練之前,會先對數據進行預處理,如果覺得耗時過久懷疑出錯,可以看一下PaddleSeg/contrib/Medicalseg/data目錄里面是否有decathlon、preprocessed、cropped 3個文件夾 # 沒有這3個文件夾請耐心等待。# 為什么會報錯json文件缺失? # 預處理的過程不可中斷,如果中斷可能導致部分文件丟失,可以把decathlon、preprocessed、cropped報錯的文件夾刪除,重新生成即可。# 什么是交叉訓練? # 假設有100條數據,使用五折交叉驗證訓練。可以把數據集分為 |20|20|20|20|20|,每次訓練的時候,把其中一個作為驗證集,其他作為訓練集,這樣可以得到5個模型,他們的驗證集不重復。%cd ~/PaddleSeg/contrib/MedicalSeg/ !python train.py --config ~/configs/nnunet_fold2.yml \--log_iters 20 --precision fp16 --nnunet --save_dir output/cascade_lowres/fold2 --save_interval 2000 --use_vdl # 為了防止內存溢出,請替換cascade預測下一階段的部分代碼 !mv ~/PaddleSeg/contrib/MedicalSeg/nnunet/utils/cascade_utils.py ~/PaddleSeg/contrib/MedicalSeg/nnunet/utils/cascade_utils_backup.py !cp ~/cascade_utils.py ~/PaddleSeg/contrib/MedicalSeg/nnunet/utils/ # step 6: fold2的數據集劃分驗證一下精度,運行一下,生成下個命令需要用的json,如果不使用后處理策略可以不運行 # 有的數據很大,可能導致內存溢出,可以切換A100環境預測下一階段 # 可以除去--predict_next_stage參數,不預測該數據的下一階段# predict_next_stage的作用是什么? # cascade unet分為2階段,第一階段會把分辨率降低進行訓練,增強模型的感受野。第二階段會把第一階段的模型預測結果和原始數據一起作為輸入,所以訓練low resolution模型后, # 需要預測下一階段的輸入數據。# 交叉驗證和二階段訓練結合為什么這么難懂? # 一階段交叉訓練:|20|20|20|20|20| # 二階段交叉訓練:|20(concat(原始數據,一階段預測的結果))|20(concat(原始數據,一階段預測的結果))|20(concat(原始數據,一階段預測的結果))|20(concat(原始數據,一階段預測的結果))|20(concat(原始數據,一階段預測的結果))| # 為了訓練第二階段,需要使用五個模型預測整個數據集,這樣二階段才能訓練。 %cd ~/PaddleSeg/contrib/MedicalSeg/ !python nnunet/single_fold_eval.py --config ~/configs/nnunet_fold2.yml \--model_path output/cascade_lowres/fold2/iter_2000/model.pdparams --val_save_folder output/cascade_lowres_val \--precision fp16 --predict_next_stage ## 可選步驟:先運行step 7,如果提示內存溢出則運行此命令,替代原本的推理代碼 !mv ~/PaddleSeg/contrib/MedicalSeg/nnunet/utils/predict_utils.py ~/PaddleSeg/contrib/MedicalSeg/nnunet/utils/predict_utils_old.py !cp ~/predict_utils.py ~/PaddleSeg/contrib/MedicalSeg/nnunet/utils/ # step 7: 推理# 為什么要用json文件? # nnunet采用了后處理策略對預測結果進行修正,但是后處理策略是否一定會漲點呢?對每個類別,對比使用了后處理和不使用后處理策略的精度,這樣就可以決定每個類別是否使用后處理策略。 # 需要后處理漲點的類別存放在json中,這是json的作用。# 是否一定要該折對應的json? # 不是,json只是決定某個類別是否使用后處理,即使使用其他折的json,也可以預測,但是后處理的類別可能會錯誤,這個時候后處理的預測結果不可靠。# 不希望使用后處理策略怎么辦? # 命令中加上--disable_postprocessing即可%cd ~/PaddleSeg/contrib/MedicalSeg/ !python nnunet/predict.py --image_folder data/decathlon/imagesTs \--output_folder ~/submit \--plan_path data/preprocessed/nnUNetPlansv2.1_plans_3D.pkl \--model_paths output/cascade_lowres/fold2/iter_30000/model.pdparams \--postprocessing_json_path output/cascade_lowres_val/postprocessing.json --model_type cascade_lowres # step 8: 打包提交,生成submit.zip,在/home/aistudio目錄下 !zip -j ~/submit.zip ~/submit/*.nii.gz

nnunet高精度模型 推理-提交全流程

使用提供的權重,快速進行推理提交

# step 1: 克隆PaddleSeg倉庫--已有請忽略 %cd ~/ !git clone https://github.com/PaddlePaddle/PaddleSeg.git %cd ~/PaddleSeg !git checkout develop # develop分支目前支持nnformer,transunet,swinunet等多個算法,歡迎體驗 # step2: 解壓數據到~/PaddleSeg/contrib/MedicalSeg/data/raw_data --- 如果已經運行過數據預處理,請忽略。~/PaddleSeg/contrib/MedicalSeg/data這個目錄下是否有decalthon和preprocess這2個文件夾 !mkdir ~/PaddleSeg/contrib/MedicalSeg/data !unzip -oq ~/data/data179474/base_train.zip -d ~/PaddleSeg/contrib/MedicalSeg/data/raw_data # step 3: 刪除原本的數據集壓縮包,節約內存 !rm -rf ~/data/data179474/base_train.zip # 刪除掉數據集中一個沒用的文件夾,否則會報錯 !rm -rf ~/PaddleSeg/contrib/MedicalSeg/data/raw_data/.ipynb_checkpoints # step 4: 安裝依賴包 --- 已安裝請忽略 %cd ~/PaddleSeg/contrib/MedicalSeg/ !pip install -r requirements.txt !pip install medpy # step 5: fold2的數據集驗證一下精度,這里的目的是觸發數據預處理,不然step 6沒法推理,如果PaddleSeg/contrib/MedicalSeg/data/decathlon文件夾存在,可以跳過 %cd ~/PaddleSeg/contrib/MedicalSeg/ !python nnunet/single_fold_eval.py --config ~/configs/nnunet_fold2.yml \--model_path ~/baseline_model/model.pdparams --val_save_folder output/cascade_lowres_val \--precision fp16 ## 可選步驟:先運行step 6,如果提示內存溢出則運行此命令,替代原本的推理代碼 !mv ~/PaddleSeg/contrib/MedicalSeg/nnunet/utils/predict_utils.py ~/PaddleSeg/contrib/MedicalSeg/nnunet/utils/predict_utils_old.py !cp ~/predict_utils.py ~/PaddleSeg/contrib/MedicalSeg/nnunet/utils/ # step 6: 使用提供的權重推理,nnunet默認使用tta策略,速度比較慢 %cd ~/PaddleSeg/contrib/MedicalSeg/ !python nnunet/predict.py --image_folder data/decathlon/imagesTs \--output_folder ~/submit \--plan_path data/preprocessed/nnUNetPlansv2.1_plans_3D.pkl \--model_paths ~/baseline_model/model.pdparams \--postprocessing_json_path ~/baseline_model/postprocessing.json --model_type cascade_lowres \--num_threads_preprocessing 1 --num_threads_nifti_save 1 --precision fp16 # step 7: 打包提交,生成submit.zip,在/home/aistudio目錄下 !zip -j ~/submit.zip ~/submit/*.nii.gz

上分策略

本baseline只提供了nnunet cascade lowres的單折模型,并未使用多折模型ensemble以及多模型間ensemble,選手可以自行嘗試。

此文章為搬運
原項目鏈接

總結

以上是生活随笔為你收集整理的第十四届中国大学生服务外包创新创业大赛百度赛道-智慧医疗赛题baselin的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。