[shpark] XProspeCT: CT Volume Generation from Paired X-Rays 논문 리뷰

2025. 3. 7. 07:10·Paper_Review

논문 게시일 : 2024.02.11

리뷰 작성일 : 2025.03.07

논문 원본 글 : https://arxiv.org/abs/2403.00771

 

XProspeCT: CT Volume Generation from Paired X-Rays

Computed tomography (CT) is a beneficial imaging tool for diagnostic purposes. CT scans provide detailed information concerning the internal anatomic structures of a patient, but present higher radiation dose and costs compared to X-ray imaging. In this pa

arxiv.org

 

1. Introduction

CT 스캔은 인체 구조를 3D로 자세히 확인할 수 있는 중요한 영상 기법이지만, 방사선 노출(평균 7mSv)과 많은 비용이 발생합니다. 반면, X-ray는 적은 방사선량(평균 0.1mSv)으로 효율적이지만, 2D이미지라는 한계가 있습니다.

본 연구는 X-ray에서 CT 스캔을 예측하는 딥러닝 모델을 개발하여 이러한 한계를 보완하고자 합니다. 기존 연구(X2CT-GAN)보다 더 큰 데이터셋과 다양한 신경망 구조를 활용해 CT 재구성 성능을 향상시키는 것이 목표입니다. 이를 통해 의료진이 정확한 진단을 내릴 수 있도록 지원하고, 불필요한 CT 촬영을 줄이는 데 기여할 수 있습니다.

2. Data

본 연구에서는 Rad-ChestCT와 CheXpert 데이터셋을 활용합니다. Rad-ChestCT는 Duke University에서 제공한 3,630개의 chest CT 스캔으로 구성되었으며, CheXpert는 224,316개의 chest X-ray 이미지를 포함하는 open-source 데이터셋입니다.

이 중 2,390쌍의 정면-측면 X-ray를 스타일 변환 모델 훈련에 사용했습니다. CT 이미지는 -1000에서 1000 HU 값을0~1 범위로 정규화한 후, 128×128×128 또는 64×64×64 크기로 변환해 모델 입력 데이터로 활용했습니다. 데이터는 80% 훈련, 20% 검증 세트로 나누었으며, 추가적으로 30개의 테스트 이미지를 사용해 모델 성능을 평가했습니다.

3. Model

  • 본 논문에서는 기존 모델인 X2CT-GAN에서 개선된 모델을 제시합니다. 기존 연구 대비 개선된 점은 다음과 같습니다. 먼저 기존 X2CT-GAN 연구에서는 제한된 CT 데이터셋을 사용했지만, 본 연구에서는 Rad-ChestCT (3,630 CT 이미지)와 CheXper (2224,316 X-ray 데이터)를 활용하여 모델 성능을 향상시켰습니다.
  • 기존 모델에서 사용한 GAN 모델 대신, U-net 모델을 활용하여 성능을 개선하였고, Skip connection과 Fusion network를 도입해서 X-ray를 CT 볼륨으로 재구성하는 방식을 최적화하였습니다.
  • CycleGAN을 활용하여 Mean CT 이미지를 실제 X-ray style로 변환하는 과정을 추가하였습니다. 또한 기존 CycleGAN에서 학습률을 낮추었습니다.
  • CT 재구성 시 기존 CNN 모델보다 더 세밀한 구조를 반영할 수 있도록 Back Projection Injection을 사용하여 척추 및 뼈를 더 선명하게 나타냈습니다.
  • CycleGAN의 스타일 재구성 정확도를 높이기 위해 Lambda 값을 10에서 20으로 증가시켰습니다. Lambda는 사이클 일관성 손실을 조절하는 변수로, 값을 높이면 스타일 변환 시 원본 이미지와의 정렬이 개선되었습니다. 하지만 값이 25를 초과하면 style transfer 효과가 약해지는 문제가 발생했습니다. Lambda 값을 20으로 설정했을 때, CT와 비교해 differnt depth가 낮은 X-ray의 특성을 유지하면서도 원본과 유사한 형태를 재현할 수 있었습니다.

개선된 모델은 아래와 같습니다.

3.1. 우측 set 

3.1.1. Up-Conv = Basic3D*N, Up

  • Up-Conv Block = Basic3D Block을 n번 적용한 후 업샘플링을 수행하는 과정입니다. 
  • Basic3D blcok을 여러번 적용하면서 3D 특징을 추출하고 업샘플링을 통해 해상도를 증가시켜 중요한 특징이 사라지지 않게 유지하는 역할을 수행합니다.

3.1.2. Up = Deconv3D, SELU

  • Up Block = Deconv3D (Transposed Conv3D) 연산과 SELU 활성화 함수를 적용하였습니다.
  • Deconv3D = 업샘플링을 수행하는 연산이고 SELU 활성화 함수를 적용함으로써 비선형성을 추가합니다. 이 과정을 통해 3D 볼륨 데이터의 해상도를 높입니다. 

3.1.3. Basic2d = Conv2D, SELU

  • Basic2D block = Conv2D 연산과 SELU 활성화 함수를 적용하는 과정입니다. 
  • Conv2D를 수행하면서 2D 특징을 추출하고 SELU 활성화 함수를 적용하였습니다.

3.1.4. Compress = Conv2D, c/=2, k_size = 1

  • Compress Block은 Conv2D 수행하여 특징을 추출하고, 출력 채널 수를 감소 시킵니다. 
  • SELU 활성화 함수를 적용합니다.

3.1.5. Down = Conv2D, s = 2, SELU

  • Down block = Stride 2를 갖는 Conv2D 연산 + SELU 활성화 함수를 적용하였습니다.
  • Conv2D (stride=2)를 수행하면서 특징 추출, 크기를 감소시킵니다.
  • SELU 활성화 함수를 적용하여 비선형성을 추가하였습니다.

3.1.6. Basic 3d = Conv3d*N, SELU, Up

  • Basic3D block = Conv3D 연산과 SELU 활성화 함수를 적용하였습니다.
  • Conv3D 수행하여 3D 특징을 추출하고 SELU 활성화 함수를 적용하여 비선형성을 추가하였습니다. 
  • Up block을 사용하여 해상도를 증가시킵니다.

3.1.7. DenseConv = Down, Conv2D*N, k_size = 1, Compress

  • DenseConv block은 Down block을 먼저 적용한 후, 추가적인 Conv2D 연산과 Compress 연산을 수행하는 구조입니다.
  • Down block (stride=2 Conv2D, SELU 적용) 수행 -> 해상도 감소
  • Conv2D*N 수행 -> 특징 추출
  • k_size=1, Compress 수행 (c/=2로 채널 수 감소)  -> 채널 차원에서 특징 정리

3.2. Architecture of connection

3.2.1. Connection A

  • 2D 이미지의 Flattened -> Dense Block -> Reshape 과정입니다.
  • Dense Blcok : DenseNet에서 사용되는 Dense Convolutional Block을 말합니다. 일반적인 CNN과 달리, 각 층이 이전 층의 출력을 모두 입력으로 사용하는 구조로써, 정보 손실을 최소화하고 더 깊은 특징을 학습할 수 있습니다.
  • Alpha Dropout : Dropout의 한 종류로 주로 SELU 활성화 함수와 함께 사용됩니다. 일반 Dropout과 다르게 출력 평균과 분산을 유지하여 학습 안정성을 높입니다. Alpha Dropout의 경우 주로 SELU 활성화 함수를 사용할 때 효과적입니다.

3.2.2. Connection B

  • Expand 연산 : 기본적인 U-Net 구조에서 contracting path가 Conv2D라면 expansive path에서 Conv3D를 바로 사용하는 것은 어렵기 때문에, U-Net 구조를 활용하기 위해, 2D 특징을 3D로 확장하는 단계입니다,  논문 내에서 어떤 방법을 사용했는지 자세히 나와있지는 않지만, Connection A에서 차원을 추가할 때 reshape를 사용한 것을 보아 reshape를 사용하지 않았을까 생각할 수 있습니다.
  • 입력 데이터 2D 이미지에서 Conv2D 연산을 적용하여 특징을 추출하고 DenseConv block을 거친 2D 특징 map을 받습니다. 이 과정에서 중요한 특징이 필터를 통해 강조됩니다.
  • Conv3D 연산을 통해 3D 볼륨 데이터를 학습하고 특징을 강화하여 skip connection 합니다.

3.2.3. Connection C

  • Transpose ,Average 연산, 결합 후 다음 단계 전달이 일어납니다. 
  • Sagittal과 Coronal은 2D 의료 영상의 서로 다른 방향입니다. 두 개의 서로 다른 방향에서 얻은 2D ㅡㄱ징 맵을 하나로 합쳐야 3D volume 데이터를 얻을 수 있습니다. 
  • Average 연산 : 두 feature map을 concatenate하는 것이 아닌, 평균average 연산을 적용합니다.

3.2.4. Connection D

  • Fusion 단계에서 여러 입력 feature map을 받아 concatenate 연산 후 최종 Fusion 단계로 전달합니다.
  • Connection C에서 생성된 여러 개의 3D 특징 맵을 받아 Concatenate 합니다.
  • 최종 fusion 단계로 정보를 전달합니다.
  • Fusion 두 개의 입력 데이터를 합치는 과정입니다. 본 논문에서는 Connection C에서 average된 데이터와 fusion을 거친 데이터와 concate를 합니다. 

4. Experiments & Results

본 연구에서는 X-ray 기반 CT를 생성하는 모델 5개로 실험을 수행하였습니다. 주요 실험 항목으로는 Input X-ray 해상도, 손실 함수 및 optimizer, Connection-A 구조, 그리고 Back Projection Injection 기법이 포함됩니다. 주요 결과는 다음과 같습니다.

64-Dense-Styled-Inputs가 가장 낮은 MSE를 기록하여 가장 정밀한 CT 생성을 수행했습니다.

MAE + Nadam을 사용한 512-ProjInj 모델은 미세한 구조를 더 정확하게 복원하지만, MSE 값은 다소 높습니다. 본 논문에서는 모델이 전체 의학적 진단보다는 예비 영상 목적으로 사용하도록 의도된 점을 감안하여, 비록 정밀도는 떨어지지만 선명한 이미지를 나타낸 MAE + Nadam을 가장 적합한 후보라고 평가했습니다.

4.1. Input X-ray Dimensions

입력 X-ray의 해상도는 모델의 성능과 연산 효율성에 중요한 영향을 미친다는 것을 확인할 수 있습니다. 본 실험에서는 64x64, 128x128 픽셀 해상도를 비교하는 실험을 수행했습니다. 수행 결과 128x128 해상도가 기존 X2CT-GAN 모델과 비교했을 때 유사한 성능을 나타냈고, CT 복원 품질도 유지되었습니다. 64x64 픽셀은 학습 시간이 감소했지만 artifacts가 증가하였습니다. 해상도 감소로 인해 중요한 특징을 학습하는 능력이 제한되었던 것으로 분석됩니다. 256x256 픽셀은 실험에서 제외되었는데, 이는 TensorFlow의 tensor 크기 제한으로 인해 학습이 불가능했습니다.

4.2. Training Loss Function & Optimizer

기존의 연구와 동일하게 MSE Loss Function과 Adam을 optimizer로 사용하였으나, 복원된 CT영상에서 블러가 관찰되었습니다. 이를 개선하기 위해 MAE 및 Nadam optimizer를 사용하였습니다. MAE + Nadam 조합이 정밀도는 떨어지지만 블러를 제거하는데 효과적이었습니다. 

4.3. Connection-A Architecture

Connection -A는 모델의 input X-ray 데이터를 3D tensor로 변환하는 역할을 합니다. 본 연구에서는 64-Dense 모델과 512- Dense 모델을 비교하였습니다. 64-Dense 모델은 적은 뉴런을 사용하여 상대적으로 적은 연산량으로 학습이 가능했으나, CT 볼륨의 세부 구조 표현력이 부족하였습니다. 512-Dense모델은 더 많은 뉴런을 활용하여 CT 복원의 해상도가 향상되었으며, 어깨뼈 및 척추의 일부 구조가 비교적 명확하게 복원되었습니다.

4.4. Back Projection Injection 

Back Projection Injection은 기존 CT 복원 방식과 유사하게, X-ray로부터 CT를 복원할 때 공간적 정보를 보전하는 방식입니다. 이를 적용한 모델은 척추 및 뼈 구조의 세밀한 복원이 향상되었으며, 기존 CNN 기반 모델보다 해부학적으로 중요한 부분을 더 잘 재현하였습니다. 이는 Back Projection이 학습된 CNN 필터에 의존하지 않고, 기하학적 정보 기반으로 CT 볼륨을 생성하기 때문으로 분석됩니다. 

5. Challenges

5.1. Memory Limitations of Single-GPU Training

모델의 복잡성이 증가하면서 메모리 사용량이 급격히 증가하게 되었습니다. 최종 모델은 25GiB의 GPU 메모리를 필요로 했고, Projection Injection은 32 GiB 메모리를 필요로 했습니다. 더 높은 해상도(256x256x256)연산을 수행하고 싶었으나, 메모리 한계로 인해 불가능하였습니다.

5.2. TensorFlow's Max Limit on Parameters

TensorFlow/Keras의 최대 파라미터 제한으로 인해 출력 크기를 128x128x128로 제한할 수 밖에 없었습니다. 더 높은 해상도의 CT 볼륨을 생성하기 위해서는 극복해야하는 점입니다.

6. Future Work

6.1. Switch to PyTorch to Solve Max Parameters Constraint

TensorFlow의 파라미터 제한을 극복하기 위해 PyTorch로 변경하는 방안이 있습니다. 

6.2. Transformer Architecture

기존 CNN 대신 Transformer Architecture를 도입하면 성능을 향상 시킬 수 있습니다.

6.3. Multi-GPU Training

현재 모델은 single GPU에서 학습하여 훈련 속도가 느리고 해상도 증가에 어려움이 있지만 Multi-GPU를 사용한다면 학습 시간은 줄이고, 더 높은 해상도로 학습이 가능합니다.

6.4. Use Medical Label AI to Test Accuracy of Output

Rad-ChestCT 및 CheXpert 데이터셋의 의료 label을 활용하여 모델의 성능을 평가할 수 있습니다. 의료 전문가가 직접 평가하지 않더라도, AI를 활용한 auto labeling 시스템을 적용할 수 있습니다.

6.5.  Train on Larger-scale X-ray Images

현재 실험에서는 128x128 해상도의 X-ray input을 사용했으나, 256x256 이상의 데이터로 학습하면 더 정밀한 CT 복원이 가능합니다. 

'Paper_Review' 카테고리의 다른 글

[nyyoon] 논문 리뷰 - A deep convolutional neural network model for automated identification of abnormal EEG signals  (0) 2025.03.08
[hsjung] [논문리뷰]- A Machine Learning Based Discharge Prediction of Cardiovascular Diseases Patients in Intensive Care Units  (0) 2025.03.08
[syju] MAISI: Medical AI for Synthetic Imaging  (0) 2025.03.07
[mjkwon] A review on deep learning in medical image analysis  (0) 2025.03.01
[hsjung] [논문리뷰] - MobileUNETR: A Lightweight End-To-End Hybrid Vision Transformer For Efficient Medical Image Segmentation  (0) 2025.03.01
'Paper_Review' 카테고리의 다른 글
  • [nyyoon] 논문 리뷰 - A deep convolutional neural network model for automated identification of abnormal EEG signals
  • [hsjung] [논문리뷰]- A Machine Learning Based Discharge Prediction of Cardiovascular Diseases Patients in Intensive Care Units
  • [syju] MAISI: Medical AI for Synthetic Imaging
  • [mjkwon] A review on deep learning in medical image analysis
team-sudal
team-sudal
team-sudal 님의 블로그 입니다.
  • team-sudal
    SUDAL
    team-sudal
  • 전체
    오늘
    어제
    • 분류 전체보기 (127)
      • MedicalFM (22)
        • anomaly_detection (1)
        • change_detection (1)
        • report_generation (3)
        • classification (1)
        • denoising (1)
        • generation (0)
        • reconstruction (0)
        • regression (3)
        • segmentation (0)
        • super_resolution (1)
        • MAE (7)
      • MAISI (9)
        • MAISI_Data (9)
      • Paper_Review (46)
      • Others (18)
      • LambdaCourse (0)
        • Paper_Review (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    GaN
    Diagnosis
    Visual inspection
    0
    Occlusal caries
    Fibre-optic transillumination
    Bite-wing radiograph
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
team-sudal
[shpark] XProspeCT: CT Volume Generation from Paired X-Rays 논문 리뷰
상단으로

티스토리툴바