안녕하세요. Metal Artifact Reduction 분야 논문을 하나 리뷰합니다. 저는 MAR 연구 진행 당시 최신(2022년) 논문을 읽어보고 싶어 이 논문을 선택했었습니다.

 

  논문 제목이 DuDoDR-Net: Dual-domain data consistent recurrent network for simultaneous sparse view and metal artifact reduction in computed tomography 인데, 꽤 길기 때문에 일부 단어를 진하게 표시해 보았습니다.

  network for sparse view and metal artifact reduction. 즉, SVCT(sparse view CT)와 MAR(metal artifact reduction)을 위한 network를 만들었다고 하네요.

 

  CT 도메인의 수많은 딥러닝 연구 주제 중에는 SVCT reconstruction 연구와 MAR 연구가 있습니다.

  SVCT reconstruction이 무엇인지 궁금하시다면 [https://unist.tistory.com/5] 를 참고해 주세요.

  MAR이 무엇인지 궁금하시다면 [https://unist.tistory.com/2] 를 참고해 주세요.

 

  이제 시작하겠습니다.

  SVCT reconstruction과 MAR은 별개의 연구 분야입니다. 각각에 대한 다양한 연구들이 공개되었죠. 하지만 SVCT를 찍는데 환자가 metal implant까지 착용하고 있다면 어떨까요? metal implant가 있는 환자의 SVCT를 찍으면 그 최초 결과 (예시 : 위 그림)는 알아보기가 굉장히 힘들어서 복원을 해야 하는데, SVCT reconstruction과 MAR을 각각 적용해서는 깔끔한 결과를 얻기 힘듭니다. 즉, "reconstruction of SVCT with metal artifact" 이라는 새로운 과제가 생긴 것이죠.

  이 새로운 문제를 딥러닝으로 시도한 것은 2021년으로, 굉장히 최근에 제기된 문제임을 알 수 있습니다. 2021년의 첫 시도 연구는 첫 시도라 그런지 결과가 썩 좋지 못해서, 우리가 더 좋은 결과를 냈다는 것이 이 논문의 개요입니다.

 

  어떤 모델 구조를 만들었는지 살펴보겠습니다.

  $I_{SVMA}$는 Image - Sparse View and Metal Artifact 라는 뜻으로, 금속을 착용한 환자를 SVCT 기법으로 촬영해 얻은 (더러운) 최초 이미지입니다. 이것을 깔끔한 이미지($I_{out}$)로 바꾸는 것이 이 모델의 목표이죠.

  참고로, $I_{???}$는 Image, $S_{???}$는 Sinogram을 뜻하는데, 사이노그램에 대해서도 [https://unist.tistory.com/5]에 간략히 설명해 두었으니 참고 바랍니다.

  가장 위 한 줄만 보겠습니다. $I_{SVMA}$가 빨간색 구조를 통과해 $I_{syn}$이 됩니다. 이미지를 입력으로 받아 이미지를 출력으로 내는 구조가 하나 있네요. $I_{syn}$은 $iDCL$이라는 구조를 통과해 $S_{dc}$가 됩니다. 이미지를 입력으로 받아 사이노그램을 출력으로 내는 구조도 하나 있군요. $S_{dc}$는 초록색 구조를 통과해 $S_{syn}$이 됩니다. 사이노그램을 입력으로 받아 사이노그램을 출력으로 내는 구조도 하나 있네요. 마지막으로 $S_{syn}$은 $sDCL$이라는 구조를 통과해 $I_{dc}$가 됩니다. 이건 사이노그램을 입력으로 받아 이미지를 출력으로 내는 구조네요.

  다시 논문 제목을 보면 "Dual-domain data consistent recurrent network" 입니다. 보시다시피 빨간색 구조는 이미지 도메인 모델이고 초록색 구조는 사이노그램 도메인 모델이죠. 그래서 Dual-domain입니다. $DCL$(Data Consistency Layer)이라는 독자적 구조를 사용해 data consistent라는 이름도 붙었습니다. 마지막으로 위 그림을 보시면 한 줄짜리 구조가 계속해서 반복되어 최종 결과를 출력합니다. 그래서 recurrent 까지 이름에 포함되었네요.

 

  앞서 설명할 때 4가지 구조를 진하게 표시하였습니다. 사실 빨간색 구조와 초록색 구조가 거의 동일하고(아래 그림 1번), $iDCL$과 $sDCL$이 거의 동일한 구조이어서(아래 그림 2번) 총 2가지 구조만 설명하면 됩니다. 추가로 한 줄의 구조가 여러번 반복되는 구조(아래 그림 3번)에 대해서도 설명하면 총 3가지 구조를 설명하게 되겠습니다.

    먼저 1번입니다. 1번은 U-shape model 입니다. U-shape model은 U-net을 시초로 하는 말 그대로 U 모양으로 생긴 딥러닝 모델 구조입니다. U-net은 정말 유명한 구조라 검색해 보시면 바로 많은 정보들을 얻으실 수 있습니다.

  U-net은 Convolution block 이후 Pooling 이후 Convolution Block 이후 Pooling 이후 ~~~ 이렇게 구성되어 있는데, 이 연구에서는 Convolution block이 아닌 AttRDB(Attention Residual Dense Block)을 사용한 것이 첫 번째 차이점 입니다. 두 번째 차이점은 U 모양의 가장 아래에서 ConvGRU라는 구조를 사용했다는 점입니다. 차이점 두 가지에 대해 살펴보겠습니다.

  첫번째, AttRDB. 하나의 AttRDB 블록은 위 그림처럼 생겼습니다. 말 그대로, Dense connection을 적용하였고, Residual connection을 적용하였으며, Attention을 위해 SE(Squeeze and Excitation) block을 적용하였습니다. 각각에 대한 설명은 생략하겠습니다.

 

  두번째, ConvGRU. 이 연구의 전체 네트워크가 반복되는 구조라고 했었습니다. 한 줄의 구조를 통과한 이미지가 다음 줄의 구조에 입력으로 사용되는 것이죠. ConvGRU를 사용하면 n번째 줄의 구조에서 n번째 줄의 입력은 물론 n-1번째 줄의 입력 또한 사용할 수 있습니다. ConvGRU에 대해 궁금하시다면 검색해 보시기를 바랍니다. (이것도 따로 포스팅으로 다루고 싶었는데 새로운 연구가 시작되어 시간 관계상 ㅠㅠ)

 

  이제 2번, DCL에 대해 살펴보겠습니다.

  DCL의 구조는 위 그림과 같이 생겼습니다. 앞서 iDCL은 이미지를 입력받아 사이노그램을 출력하고, sDCL은 사이노그램을 입력받아 이미지를 출력한다고 했었는데, CT이미지와 사이노그램은 서로 변환될 수 있는 관계이므로 iDCL과 sDCL 둘다 내부적으로는 사이노그램을 입력받아 사이노그램을 출력하는 구조가 핵심입니다.

  Data Consistency Layer라는 이름에 맞게, DCL은 '복원하지 말아야 할 부분'을 보존하는것이 목적입니다. '복원하지 말아야 할 부분'이라니, 이게 무슨 뜻일까요?

  Metal Artifact Reduction에서, 메탈 아티팩트를 제외한 부분은 '복원하지 말아야 할 부분' 입니다. 해당 부분은 제대로 찍힌 부분이기 때문에 이 부분이 변하는 것은 환자의 CT를 왜곡하는 것이고, 큰 문제입니다.

  SVCT의 사이노그램은 일반 CT와 달리 촬영되지 않은 틈이 사이사이에 있는 것이 특징인데요(https://unist.tistory.com/5), 그 틈들을 복원하는 것도 중요하지만 제대로 찍힌 나머지 부분을 변형시키지 않는 것도 중요합니다. 역시 환자의 CT를 왜곡하는 것이니까요.

  따라서, 우선 메탈 부분과 SVCT의 틈 부분이 어디인지 수 있는 binary mask가 필요합니다. 이 둘을 더하면 '복원해야 하는 부분 (want to generate)'에 해당하는 binary mask를 얻을 수 있죠. 해당 binary mask를 1에서 빼면 나머지 부분인 '보존해야 하는 부분 (want to maintain)'에 해당하는 binary mask를 얻을 수 있습니다. 따라서, want to generate binary mask와 want to maintain binary mask를 획득하였습니다.

  DCL 구조의 입력은 앞서 살펴본 U-shape 모델의 출력입니다. 즉, U-shape model이 복원한 결과죠. 이 결과에 want to generate binary mask를 곱하면, '복원해야 하는 부분에 대한 복원 결과'가 얻어집니다. 이제, original input(최초 CT 사진, 즉 $I_{SVMA}$)에 want to maintain binary mask를 곱하여 '보존해야 하는 부분에 대한 원본 이미지'를 얻습니다. '복원해야 하는 부분에 대한 복원 결과'에 '보존해야 하는 부분에 대한 원본 이미지'를 더하여 DCL의 최종 출력이 완성됩니다.

 

  마지막으로 3번, 반복구조 입니다.

  논문에도 딱히 자세한 설명은 없고, 그냥 반복구조를 사용했더니 성능이 좋았다고 합니다.

 

  다음으로 손실 함수를 살펴보겠습니다.

  복잡해 보이지만 간단합니다. $L_{img}$는 각 줄의 빨간색 구조의 출력 이미지와 정답 이미지와의 차이를 모든 줄에 대해 다 더한 것이고, $L_{sino}$는 각 줄의 초록색 구조의 출력 사이노그램과 정답 이미지와의 차이를 모든 줄에 대해 다 더한 것입니다. $L_{out}$은 조금 특이하게 metal이 없는 곳에 대해서만 최종 출력과 정답 이미지와의 차이를 구합니다. $L_{out}$으로는 보존을 체크하고 싶었던 것 같습니다. 하여 최종 손실 함수는 $L_{total}=L_{img}+L_{sino}+L_{out}$입니다.

 

  이제 결과를 살펴보겠습니다.

  Original이 정답, w/o가 최초 이미지, our이 본 연구의 결과입니다. 역시 좋은 결과를 냈다고 설명하고 있으며, 특히 보존에 있어서 타 연구들에 비해 좋은 결과를 냈음을 강조하고 있습니다. (Original과 노란색 화살표로 연결된 가장 아랫줄은 쉬운 비교를 위해 제가 복사한 이미지들입니다.)

 

  마지막으로 개인적 결론입니다.

  해당 연구 분야가 문제 제기된지 얼마 안된 신규 분야이고, 의미 있는 접근법으로 좋은 결과를 내었습니다. 특히 복원하지 말아야 할 부분을 최대한 보존하려고 하는 시도가 인상적이었습니다. 다만 실제 환자 데이터에 대한 평가 결과를 첨부하지 않은 점은 많이 아쉽습니다. (위에서 등장하는 w/o 사진은 합성 사진입니다.)

 

  DuDoDR-Net: Dual-domain data consistent recurrent network for simultaneous sparse view and metal artifact reduction in computed tomography 논문을 리뷰해 보았습니다. 감사합니다:)

+ Recent posts