A Dual Discriminator Adversarial Learning Approach for Dental Occlusal Surface Reconstruction(2022)

AI Opt Lab·2022년 5월 12일
0

박나윤

목록 보기
2/3

오늘 리뷰할 논문을 읽기 전에 본 논문의 저자들이 이전에 투고한 Related work가 있어 아래 링크로 첨부하겠습니다.
DCPR-gan : https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=9568708

또한, 본 논문의 원본 링크는 아래와 같습니다.
https://www.hindawi.com/journals/jhe/2022/1933617/

본격적인 리뷰 시작하겠습니다.


1. Introduction

치아 결손은 흔하고 빈번하게 발생하는 질병으로, 주로 치아 질환 또는 외상 및 선천적 기형에 의해 유발된다. 그 중 충치는 치아 결손의 주요 원인이다.

Burden of Disease Study에 따르면 전 세계 인구의 약 절반이 구강 질환을 앓고 있으며 이 중 치아 결함이 최소 50%를 차지한다.

사람들의 구강 건강에 대한 인식이 향상됨에 따라 치아를 수복하는 과정을 보다 지능적으로 제작하고, 치아 크라운 보철물을 개인화하며 CAD(Computer Aided Design) 기반 설계를 도전하고자 노력해왔다. CAD 기반 보철물 제작을 성공적으로 적용한다면 보철물의 디자인 품질을 높이고, 치과 의사의 작업 부담을 경감할 수 있다.

이를 달성하는데 현재 가장 큰 과제는 보철물의 "개인화 디자인"을 생성하는데 있다. (치아는 사람마다 각기 다르기 때문에 치아 보철물 또한 사람마다 다르게 적용해야 한다.)

DL(Deep Learning)과 같은 AI 모델이 이 문제에 대한 해결책을 제시한다. CAD기반의 제작 방식에 비해 DL 기술로 디자인된 데이터는 치아 개인화 서비스에 더 적합하다. 하지만 DL기반의 모델에도 다음 세 가지의 한계점이 있다.

  1. 결함이 있는 치아 보철물 제작 모델을 학습할 Large_size의 데이터 부족
  2. 환자의 정상적인 저작 기능을 만족시키는 개인 맞춤형 치아 보철물 설계의 어려움
  3. 개인간의 치아 형태가 큰 차이를 보일 때 네트워크 학습에 어려움을 초래

또한 CAD 기반 수동 치아 보철물 제작은 아래와 같은 단점이 있다.

  1. 고도로 숙련된 전문적인 기술이 필요
  2. 치과 의사의 주관적 디자인 아이디어에 영향을 많이 받음
  3. 알고리즘에 크게 의존
  4. 많은 보철물 표면에 대한 수동 기술 연마 필요

본 논문에서는 duar disciminator adversarial network(DentalRecNet)을 통한 치아 교합면 재건 방식을 제안한다. 제안된 방법은 다음 두 가지의 Motivations가 있다.

  1. 기존의 의료 영상 완성 작업을 위한 모델은 주로 생성기 설계에 초점을 두어 판별기의 기능을 충분히 활용하지 못하였으므로 네트워크의 신뢰성 향상을 위해 두 개의 판별기의 공동 결정을 적용하는 이중 판별 전략을 제안
  2. 치아 표면의 복잡한 형태를 복원하기 위해 훈련 복잡성을 점차적으로 증가시키는 전략

앞서 언급한 DL 기반의 방식과 달리 제안된 DentalRecNet은 다음과 같은 Benefits가 있다.

  1. 교합면 디자인에 더이상 수동 개입이 필요하지 않은 고도로 자동화된 솔루션
  2. 충분한 치아의 생태적 특성을 재현하는 데 효율적
  3. 교합면의 생성 오차가 상대적으로 낮음
  4. 치과 의사의 입장에서도 효율적

본 논문의 Contributions는 다음과 같다.

  1. 3D 치아 모델과 Depth map 간의 양방향 매핑을 실현할 수 있는 표준화된 직교 투영 방법을 제안
  2. 결손 치아의 명확한 세부 사항을 구성하기 위해 convolution layer가 있는 encoder-decoder 생성기 모델 제안, 손실함수를 복합적으로 설정하여 특징의 전달을 향상
  3. 실제 이미지와 가짜 이미지를 구별하기 위해 이중 판별 전략을 제안
  4. 실제 치아 데이터베이스에 대한 광범위한 평가 수행하여 SOTA 달성!

2. Proposed Methods

결함이 있는 치아 교합면을 재구성하기 위해 제안된 방법은 기본적으로 depth map 생성과 dental restoration neworks로 이루어져 있다. 아래 그림에서 볼 수 있듯이 depth map 단계에서는 visual distance-based의 adaptive orthogonal(직교) projection method를 사용하여 depth map을 생성하고 missing teeth images를 합성하기 위한 dual discriminator network architecture는 두 개의 판별기가 학습되어 실제와 가짜 이미지(재구성된 결속 이미지/전체 치아 이미지)를 구별한다.

위 그림에서 모델의 전체적인 flowchart를 이해해보자.
먼저, 3차원의 치아 모델로부터 depth-map images를 계산(계산 과정은 뒤에 자세히 설명된다.)한다. 그 후, encoder와 decoder 기반의 생성기, globor과 local을 각각 판별하는(뒤에서 더 자세히 설명하겠다.) 판별기를 기반으로 하는 네트워크를 사용해 gan을 진행한다!

정리하자면, 우리가 공부해야 할 내용은 크게 2가지라는 것을 알았다.

  1. depth-map을 생성하는 방법
  2. 생성기와 판별기를 어떤 식으로 구성했는가.

두 가지를 이해하는데 초점을 두고 포스팅을 마저 읽으면 도움이 될 것이다.

2.1 Dental Map Generation

그 중 먼저 첫 번째 파트를 공부해보자.

depthmap을 계산하기 전에, 우리는 가지고 있는 데이터를 정규화하는 작업을 진행해야 한다. 이에 대해 본 논문에서는 3차원 데이터의 기하학적인 정보를 직접 반영하여 공간적인 정보를 담도록 하였다. 이를 위해 Euler angle transform and bounding box를 사용했다고 하는데, 관련 사전 지식이 없어 다음과 같이 나름대로 이해해보았다.

오일러 각이란 물체를 3차원 공간에 맵핑하기 위해 사용하는 방법인데, 3차원 공간에 놓인 물체는 오일러 각도를 사용한 3번의 회전을 통해 그 방향(서로 수직인 x,y,z에 대해 x,y,z로 표현)을 얻을 수 있다는 것이 그 핵심이다.

쉽게 말해, x좌표와 y좌표 그리고 z좌표를 얻기 위한 방식이라고 할 수 있을 것 같다. (확실하지는 않음..)

3개의 각도로 물체의 방향을 표현할 때 크게 고정 각도(fixed angle)표현법과 오일러 각도(euler angle) 표현법이 있는데 오일러 각도는 회전한 축을 기준으로 다음 회전을 한다는 점 이 고정 각도 표현법과 다르다. 아래 그림과 같이 z,y축을 순차적으로 돌리는 경우를 생각해보자. 오일러 각도는 회전한 축을 기준으로 다음 회전이 적용된다.

이러한 오일러 각을 적용하여 아래와 같이 3d 데이터의 정규화를 진행하였다. DCPR-gan에서는 이러한 정규화 과정이 잘 나와있지 않았는데, 과연 동일한 방식을 사용했을지 의문이 든다. 생각해보면 DCPR-gan에는 데이터 정규화나 전처리 과정에 대한 설명이 비교적 부족하여 이해하기 어려웠다.

본론으로 돌아와서 치아 데이터를 위 그림에서 보면, 실제 데이터를 x, y, z축으로 이루어진 3차원 공간에 투영하기 위해 축을 기준으로 회전을 시켜가며 각각의 방향을 구한다. 정규화 과정의 알고리즘을 통해 정리해보자.

  • input : p0,p1,p2이고 이는 각각 첫 번째, 두 번째, 세 번째 치아의 feature point를 나타낸다. N0는 point p0의 normal vector(법선 벡터)이다.
  • output : 치아 모델의 좌표(x,y,z)로 출력된다.
  • step 1 : N0를 계산한 다음 tooth model을 p1,p2,n0로 구성한다.
  • step 2 : 좌표(p1,p2,N0)의 원점 p0에서 (x,y,z)로의 translation matrix인 T를 계산하고, (p1,p2,N0)의 z축과 (x,y,z) 사이의 rotation matrix R을 구한다. 마지막으로 RT를 치아 모델에 적용하여 교합면의 위치를 조정한다.
  • 치아모델 bounding box의 중심점 o를 계산하고, 점 o를 원점으로 하는 (x,y,z)좌표계를 구성한다. o를 원점으로 옮긴 후 bounding box의 y축은 오일러 각 변환을 통해 좌표계의 y축과 평행하게 처리하여 표준화를 마친다.

사실 회전한 축을 기준으로 다음 회전을 한다는 것이 어떤 의미인지 아직은 직관적으로 와닿지 않는데, 이 과정이 DOF 프로젝트에도 필요하다고 생각되면 더 자세히 공부해보겠다.

아무튼 이제 정규화를 했으니, 본격적으로 depth map을 계산하는 과정이다.

  • input으로는 h가 들어가며, 이는 투영 평면으로의 bounding box의 중심점이다.
  • output은 픽셀이며, 해당 지점의 픽셀 값을 토출한다.
  • step 1 : 치아 모델의 중심을 원점으로 하여 bounding box의 수직거리 h에 투영 평면을 구성한다.
  • step 2 : 투영 평면을 256x256의 작은 격자로 나누고 depth map의 픽셀 위치(i,j) 관계가 설정된다.
  • step 3 : 투영면의 각 grid centor point P(i,j)로부터의 최단거리 d를 광선 교차 방식으로 계산한다.
  • 계산된 거리 d가 0~255픽셀 범위로 변환된다.

프로젝트를 진행하면서 3D의 데이터를 최대한 잘 활용하도록 전처리 하는 것이 본 과제의 핵심임을 느꼈다. 본 논문에서도 이를 위해 위와 같은 과정을 거쳐 depth map을 설정했다.

여기서 픽셀을 변환하는 공식은 다음과 같다.

수식을 보면 h는 input으로 들어가는 값이고 d는 계산한 최단거리이다. 본 논문에서는 h를 6mm로 설정했다. 알파는 이미지 향상 요소여서, 이 값을 조정하여 depth map의 품질을 변화시킬 수 있다.

image entropy는 image features의 통계적 형태로, 이미지가 전달하는 정보의 양을 반영한다. 이 image entropy를 반영하는게 알파이다!

엔트로피는 위와 같은 식으로 계산한다. 여기서 m은 픽셀 값의 범위 (0~255)이고, Pt는 이미지에서 픽셀 t의 확률이다. 이 말의 의미는,, 확실히 식을 이해하지는 못했지만,,, 추측하기로는 t 픽셀이 해당 이미지 p에서 얼마만큼의 중요한 영향을 가지고, 중요한 정보를 많이 전달하는지에 대한 내용일 것 같다.

본 논문에서는 알파가 2일 때, 많은 실험에서 좋은 결과가 나왔다고 한다.

그렇다면 위 pixel 식을 다시 보면, 1-(d/h)^2으로 쓸 수 있고, h에 비해 d가 얼마만큼의 비중을 차지하는지 값을 1에서 뺏으므로 h에 비해 d가 큰 값이면 pixel 값은 작아지고, 반대로 d가 작다면 pixel값이 커진다고 이해했다. 또한 여기에 제곱을 한다는 것은 좀 더 가파르게 변화를 시키는 것이 아닐까! 하는 생각을 해본다.

위 그래프는 알파 값에 따른 엔트로피 값을 나타내는데, 2일 때 가장 높은 값을 나타냈다. 이는 앞서 설명했듯이 원본의 image에서 최대한 많은 양의 정보를 놓치지 않고 받아올 수 있는 지표라고 이해하면 될 것 같다. 그래서 본 논문에서는 엔트로피 값이 depth map이 얼마나 좋은 모델인지를 평가하는 지표로 쓰인다.

2.2 Dental Restoration Network

GAN에 대한 간단한 설명과 이를 사용한 배경에 대해 참고 문헌을 소개하는 파트이므로 생략하겠다.

2.3 Deep Generative Model

본격적인 본 논문의 encoder-decoder 기반 네트워크를 파헤쳐보자!

우선, DCPR-gan의 모델 아키텍쳐를 먼저 보고 이와 다른 점을 위주로 리뷰하겠다.

이에 대한 설명은 앞서 리뷰한 벨로그 링크를 아래에 첨부한다.
https://velog.io/@aioptlab/DCPR-GAN-Dental-Crown-Prosthesis-Restoration-Using-Two-Stage-Generative-Adversarial-Networks

나머지는 내일 학교가서 꼭 쓸게,, 늦게봐서 미안,,,, 코드짜는데 도움되기엔 너무 늦었다,,,,,,,,

profile
인천대학교 산업경영공학과 AI Optimization Lab

0개의 댓글