專業(yè)做網站優(yōu)化排名怎么推廣軟件
Generative Adversarial Network–based Noncontrast CT Angiography for Aorta and Carotid Arteries
- 基于生成對抗性網絡的主動脈和頸動脈非集中CT血管造影
- 背景
- 貢獻
- 實驗
- 方法
- 損失函數
- Thinking
基于生成對抗性網絡的主動脈和頸動脈非集中CT血管造影
https://github.com/ying-fu/CTA-GAN
Radiology 2023
背景
碘造影劑(ICAs)廣泛用于CT血管造影術(CTA),可能會對人體產生不良影響,而且使用耗時且成本高昂。研究用平掃CT合成造影劑CT并評價生成的效果很有意義。CTA——Syn-CTA
- 難點:傳統(tǒng)的深度學習模型不能充分解決成對未對準圖像的映射翻譯問題。此外,先前的醫(yī)學圖像翻譯研究集中在單個解剖位置,而臨床診斷經常在多個位置進行(14,15)。
貢獻
- 本文:開發(fā)一種基于生成對抗性網絡(GAN)的CTA成像模型(16-21),以合成獨立于ICAs的高質量CTA樣圖像,并評估使用這些合成CTA(Syn-CTA)圖像輔助臨床診斷的可行性。使用內部和外部測試數據從定量指標、視覺質量和血管疾病診斷準確性方面評估Syn-CTA圖像
實驗
- 數據集:收集了17-22年頸部和腹部的成對的CT和CTA圖像,1749名患者,1137訓練,400驗證,212測試,外部驗證42名。
- 數據處理:每個NCCT和CTA掃描被重采樣到0.67x0.67x1.25的體積中,由75-490各切片組成,512x512分辨率,CTA造影劑濃度370mg/ml,注射速率4.5ml/s,將-2000-2095的像素值標準化到-1-1,排除手動檢查后圖像質量較差的掃描。
- Patient Characteristics(患者特征),在1833名符合條件的患者中,84名圖像質量較差的患者被排除在外,1749名患者(中位年齡,60歲[IQR,50-68歲];1057名[60.4%]男性患者和692名[39.6%]女性患者)被納入分析。1137名患者的CT掃描用于模型訓練;來自400名患者的掃描用于模型開發(fā)驗證;212名患者的掃描用于模型測試(圖1)。外部獨立驗證集包括42名患者(中位年齡67歲[IQR,59–74歲];37名[88.1%]男性患者和5名[11.9%]女性患者)。
- 評估方法:Quantitative Evaluation(定量評價),正態(tài)平均絕對誤差(NMAE)、峰值信噪比(PSNR)、結構相似性指數測量(SSIM)
- Visual Quality Evaluation(視覺質量評估),具有10年經驗的專家,獨立評估了CTA和Syn-CTA圖像的圖像質量。任何分歧都通過協(xié)商一致的方式解決。放射科醫(yī)生使用主觀三點量表(視覺質量評分)(25,26)評估Syn-CTA和真實CTA掃描的圖像質量1、質量差;2、質量合格;3、質量好;具體而言,圖像質量評估包括血管壁清晰度、管腔邊緣清晰度和管腔壁對比度(附錄S1,圖S1)。
- Diagnostic Evaluation(診斷評估),對每次掃描的Syn-CTA圖像和真實CTA圖像進行匿名化,然后將其隨機并按序列號呈現(xiàn)給進行獨立閱讀視覺質量評估的同兩名放射科醫(yī)生?;诿看螔呙璧难茉\斷(動脈瘤、夾層、動脈粥樣硬化或健康動脈)由兩名放射科醫(yī)生確定。通過一致閱讀解決任何診斷分歧(附錄S1)。從真實的CTA圖像中讀取的血管診斷被視為基本事實。
人工評價:Syn-CTA測試集中的高質量分數(分數=3)的比率均大于90%,高質量分數的總體比率為95%
方法
論文中對方法描述不多,以下是從源代碼中簡化的訓練步驟偽代碼
# real_A2是CT,real_B2是Syn_CTA,
# NetG_A2B是生成器,R_A是校準器,spatial_transform是進行采樣的一個配準場不是模型,
# netD_B是判別器,target_real = Variable(Tensor(1,1).fill_(1.0), requires_grad=False),
# target_fake = Variable(Tensor(1,1).fill_(0.0), requires_grad=Falseoptimizer_R_A.zero_grad()
optimizer_G.zero_grad() # 只更新生成器和校準器
fake_B = netG_A2B(real_A2) # CT生成的Syn_CTA,fake_B
Trans = R_A(fake_B, real_B2) # fake_B和real_B校準得到Trans
SysRegist_A2B = spatial_transform(fake_B, Trans) # fake_B和Trans,配準得到,SysRegist_A2B
pred_fake0 = netD_B(fake_B) # fake_B輸入到判別器得到pred_fake0SM_loss = smoothing_loss(Trans)
SR_loss = L1_loss(SysRegist_A2B, real_B2) # 配準后的生成圖和real_B要長得像
adv_loss = MSE_loss(pred_fake0, target_real) # 對抗,fake_B的pred_fake0和1的MSElossloss = SM_loss + SR_loss + adv_loss # 總損失
loss.backward() # 梯度回傳
optimizer_R_A.step() # 更新R_A和G
optimizer_G.step()optimizer_D_B.zero_grad() # 只更新判別器
with torch.no_grad():fake_B = netG_A2B(real_A2) # 生成器不更新權重
pred_fake0 = netD_B(fake_B) # 再算一次pred_fake0
real_BB2 = copy.deepcopy(real_B2)
pred_real = netD_B(real_BB2) # 判別real_B得到pred_real
loss_D_B = MSE_loss(pred_fake0, target_fake) # 對抗,pred_fake0和0,pred_real和1+ MSE_loss(pred_real, target_real)
loss_D_B.backward()
optimizer_D_B.step() # 更新判別器
損失函數
配準后的圖像和源圖像的L1 loss,對抗loss
Thinking
輸入是未配準的成對CT-SynCTA影像,先用CT影像生成SynCTA影像,再對SynCTA影像進行配準,再通過判別器,判別生成的影像和原始SynCTA影像。最終合成配準了的SynCTA影像。