딥러닝 기법을 이용한 미숙아 망막병증 분류 시스템
초록
미숙아망막병증(Retinopathy of Prematurity, ROP) 이란 37주 미만의 미숙아에게 발생하는 혈관증식성 질환으로 전 세계적으로 소아 실명의 중요한 원인이 되는 질환이다. 미숙아 망막병증 진단을 위한 미숙아의 안저 촬영에는 고가의 촬영 장비가 필요하지만, 현재 우리나라의 수가 체계와 의료 시스템 상 장비를 갖추고 있는 병원이 부족하다. 본 논문에서는 고가의 장비대신 스마트폰으로 촬영한 미숙아 안저 사진을 딥러닝 기법을 이용하여 미숙아 망막병증을 진단하는 분류기를 개발하였다. 스마트폰으로 촬영하였기 때문에 기존의 고가 장비에 비해 현저히 해상도가 떨어짐에도 불구하고 본 논문에서 개발한 분류기의 결과 99% 이상의 정확도를 보여, 본 연구를 통해 보다 손쉽게 스마트폰 촬영으로 미숙아 망막병증을 진단할 수 있을 것이다.
Abstract
Retinophathy of Prematurity(ROP) is a vascular disease that occurs in premature babies less than 37 weeks old and is an important cause of childhood blindness worldwide. To capture the premature infant's fundus image for diagnosing ROP requires the expensive camera equipment, but the hospitals currently lacks equipment in the national medical system. In this paper, a classification system for diagnosing ROP was developed using deep learning technique via smartphone funduscopy instead of expensive equipment. Although the resolution of the smartphone photographs is significantly lower than that of existing high-end equipment, the results of the classification system developed in this paper show 99% accuracy, making it easier to diagnose ROP by taking a smartphone.
Keywords:
retinopathy of prematurity, deep learning, smartphone funduscopyⅠ. 서 론
미숙아망막병증(ROP, Retinopathy of Prematurity) 이란 37주 미만의 미숙아에게 발생하는 혈관증식성 질환으로 전 세계적으로 소아 실명의 중요한 원인이 되는 질환이다[1][2]. 미숙아로 태어나면 40주경 완성이 되어야 할 정상적인 망막 혈관 발달이 이루어지지 않아 출생 후에도 혈관 형성이 진행된다. 그 결과 섬유 혈관성 조직의 발생 및 증식으로 인해 망막이 안구에서 떨어지는 견인성 망막 박리가 발생하게 되어 심각한 시력 장애를 초래한다. 미숙아망막병증의 치료법으로는 주변부의 레이저 광응고술이나 안구 내 혈관형성인자 항체 주사(아바스틴) 등이 있다[3]. 2016년도 통계청의 자료에 따르면 우리나라는 전체 신생아 출생률이 감소하는 것과 대조적으로 출산 연령 및 고령 산모의 구성비의 증가, 임신 중 약물 복용, 다태아 증가, 산과적 합병증 진단과 치료기술의 발달 등의 원인으로 해마다 저체중 출생아와 미숙아 출생률이 증가 추세에 있으며 이와 관련한 의료 비용도 증가하고 있다. 이에 따라 미숙아 망막병증의 선별 검사의 수요 또한 증가할 것으로 예상된다. 적절한 치료 시기를 놓칠 경우 소아 실명으로 이어지는 치명적인 병증으로 예후를 주기적으로 관찰하기 위한 안저 검사가 필수적이다.
이러한 미숙아 망막병증의 정확한 진단과 치료를 위해서는 검사자의 숙련도가 중요한 요소이다. 또한 진단 및 경과관찰과 의무 기록 보관을 위해 미숙아의 안저를 촬영할 수 있는 고가의 촬영 장비가 필요하다. 대표적인 촬영 장비로는 RetCam등을 들 수 있다[4]. 이는 미숙아 안저 사진을 촬영하기 위해 개발된 장비로 고해상도, 넓은 FOV(Field Of View) 등의 특징을 지니고 있지만, 한 대당 억대의 비용이 필요한 고가임으로 현재 우리나라의 수가 체계와 의료 시스템 상 이러한 장비를 갖추고 있는 병원은 몇 군데 되지 않는 실정이다. 여기에 숙련된 미숙아망막 전문의도 부족한 현실이다.
이에 본 연구팀은 고가의 촬영 장비가 아닌 스마트폰을 이용한 안저 촬영을 통한 미숙아 망막 병증 진단을 연구해왔다. 스마트폰을 이용하면 별도의 진단 비용이 들지 않고 이동이 용이하며 전신 마취와 공막 누르기가 필요 없는 촬영임으로 준비부터 촬영까지 5분 이하로 단시간, 저비용으로 진단이 가능하다[5]. 하지만, 스마트폰 카메라는 RetCam등과 같이 안저 촬영 전용 기기가 아니기 때문에 주변 빛 노이즈나 미숙아의 움직임과 같은 촬영 환경의 문제와 의료진이 직접 스마트폰 후면 플래쉬를 켜 놓은 상태에서 스마트폰과 렌즈의 거리와 각도를 조절하며 시신경유두와 혈관이 잘 나오도록 초점을 맞춰 안저 촬영을 시행하기 때문에 안저 사진내에 렌즈나 의료진의 손가락, 미숙아의 얼굴 등이 나오며 안저 사진의 시신경 유두 등이 제대로 촬영되지 않는 사진도 존재한다. 이에 여러 장의 안저 사진 중에서 사용가능한 사진을 분류해 나가는 것도 필요하다.
최근 머신러닝을 이용하여 안저 사진을 분석하는 연구가 활발히 이루어지고 있다. 안저 사진의 혈관을 분석하는 UNET[6][7]을 비롯하여 미숙아 망막병증을 진단하기 위한 안저 사진 분석에 대한 연구가 활발히 진행되고 있다[8]-[10]. 하지만, 스마트폰으로 촬영된 안저 사진에 대한 분석에 대한 연구는 전혀 없고 RetCam등으로 촬영한 안저 사진에 대한 분석만 존재하고 있다.
본 논문에서는 스마트폰으로 촬영한 안저 사진을 이용하여 미숙아 망막병증 분류기를 개발하였다. 미숙아 망막 병증 질환이 있는 비정상 사진과 질환이 없는 정상 사진으로 분류하는 것이 목표이다. 스마트폰으로 촬영된 사진은 안구만 찍혀있는 사진이 아니기 때문에 전처리 과정을 통해 가장 딥러닝에 적합한 상태로 만든 뒤 CNN을 기반으로 한 학습 모델[11]-[13]을 사용하여 비교하였다. 그리고 가장 좋은 분류 결과를 보였던 Xception에 대한 결과를 나타내었다.
Ⅱ. 미숙아 망막병증 분류기
2.1 스마트폰으로 촬영한 미숙아 안저 사진
그림 1에 스마트폰(아이폰 10, 2400만 화소)을 이용하여 미숙아의 안저 사진을 찍는 모습을 나타내었다.
RetCam과 같은 고가의 장비도 없고 마취 등과 같은 사전 준비 없이 손쉽게 촬영이 가능함을 알 수 있다. 미숙아의 안구위에 렌즈를 올리고 그 부분을 스마트폰으로 촬영한다. 그림 1 내의 작은 사진에 실제 촬영된 사진을 나타내었다. RetCam과는 다르게 렌즈내의 안구의 해상도가 낮을 뿐만 아니라 사람손이나 반사되는 빛 등으로 안저 사진의 해석이 곤란할 것으로 생각된다.
2.2 전처리
우선 스마트폰으로 촬영한 안저 사진을 학습하기 적합한 형태로 변형해주기 위해서 다음과 같은 전처리를 하였다. 미숙아 안구 위에 렌즈를 올려놓고 촬영을 하고, 렌즈는 항상 검정색 테두리의 원형을 가진다는 특징이 있기 때문에 검정색 테두리의 원을 먼저 찾는 것에 집중하였다.
그림 2(a)에 나타내었듯이, 오리지널 이미지의 RGB값을 Thresholding하여 검정색 부분만 검출하여 렌즈이외의 노이즈를 줄였다. 그리고 그림 2(b)에 나타내었듯이 Gaussian Blur 기법을 이용하여 Thresholding로 인해 손상된 부분의 노이즈를 제거하여 렌즈의 원 테두리가 끊어지는 부분 등을 보정하였다. 그림 2(c)와 같이 렌즈의 원을 찾기 위해 Hough circle algorithm을 이용하였다. 그리고 그림 2(d)와 같이 원의 크기만큼 자른 후 ROI(Region Of Interest)을 제외한 부분은 bit연산을 이용해 흑백으로 마스킹(Masking)을 수행하였다. 이미지의 사이즈를 일정하게 통일시키기 위해 리사이징(Resizing)하였다. 이때 데이터의 손상을 줄이기 위해 작은 이미지는 linear와 cubic algorithm의 결과를 bit연산하여 데이터를 보간 작업을 수행하였다. 또한 이미지를 평준화하기 위해 RGB를 GRAY로 변환하였지만, 혈관의 손실이 심하여 CLAHE(Contrast Limited Adaptive Histogram Equalization)를 이용하여 히스토그램 균일화하여 뚜렷한 이미지를 얻었다. 이와 같은 전처리를 모두 거친 사진이 그림 2(e)와 같다.
학습용 이미지는 비정상 162장, 정상 316장으로, 동아대학교 병원 신생아집중치료실에 입원한 미숙아 중 미숙아망막병증 검진 시 안저 사진을 촬영한 239명 478안을 대상으로 하였다. 본 연구는 동아대학교병원 생명윤리심의위원회의 승인을 받았으며, 헬싱키선언을 준수하여 시행되었다. 미숙아의 안저 촬영에는 미숙아 환자 수에 의해 결정되고, 또한 비정상보다 정상 환자들이 더 많았던 이유로 학습용 이미지의 비정상, 정상의 개수가 균일하지 못했다.
또한 촬영한 이미지가 많지 않아 전처리의 가장 마지막 단계에서 Image augmentation 작업을 통해 이미지 데이터 수를 늘려 주었다. 본 논문에서는 회전 18단계 (0˚, 20˚, 40˚, 60˚, 80˚, 100˚, 120˚, 140˚, 160˚, 180˚, 200˚, 220˚, 240˚, 260˚, 280˚, 300˚, 320˚, 340˚), Hue 이동 3단계 (-10, 0, 10)를 적용하여 1장당 54장의 이미지를 만들어 내었다. 따라서 총 학습 데이터는 (162+316)×2=25,812장이다. 또한 본 논문에서 사용된 이미지의 압축비 41.45%이며 영상의 압축비란, 압축 전후의 크기의 비율을 말한다.
2.3 분류기
본 연구에서는 CNN(Convolutional Neural Networks)를 기반으로 한 알고리즘 중 AlexNet, Inception-V3, 그리고 Xception의 3가지를 분류기 기반 모델로 사용하였다[7]-[9]. AlexNet은 2012년 개최된 ILSVRC(ImageNet Large Scale Visual Recognition Challenge)에서 높은 성능을 보여준 CNN구조이다. 약 6천만 개의 파라미터를 학습하지만 기존의 모델인 LeNet–5에 비해 병렬적인 구조와 ReLU함수의 도입, 드롭아웃(Dropout)방식을 이용하여 시간을 줄이며 학습량을 늘릴 수 있게 된 모델이며, 현대의 CNN의 부흥에 큰 역할을 한 구조이다[7]. 하지만 2개의 병렬 GPU를 구조로 사용하였지만 개발 당시 그래픽 카드 메모리의 3GB에 맞춰 개발되어 구조의 한계를 가지고 있다. 또한, Inception-V3는 GoogleNet(InceptionV1)의 개량버전이다. 딥러닝 구조를 깊고 노드를 많이 만들어 성능을 높였지만 학습해야할 hyper parameter가 기하급수적으로 증가하여 overfitting, Grandient vanishing 문제, 학습 시간, 연산 속도 등으로 학습이 어려워져 노드간의 연산을 줄이고 행렬 연산을 Dense연산을 하도록 처리한 Inception module을 만든 것이 Inception 구조의 가장 큰 특징이다[8].
그리고 Xception은 GoogleNet에서 inception module의 특징인 노드간의 연결을 줄인 것에 더 나아가 채널간의 관계를 찾는 것과 이미지의 지역 정보를 찾는 것을 완전 분리하여 성능을 향상 시킨 모델이다[9].
Xception에서 사용하는 연산은 그림 3과 같이 Depth-wise-separable convolution으로 기존 convolution이 연산 결과로 1×1 map을 만들었다면 Depth-wise-separable convolution은 각 채널별로 feature map을 만들고 그 다음 1×1 convolution 연산(Point wise convolution)을 하여 feature map 수를 조정하게 한다.
2.4 학습 결과
학습에 사용된 PC는 CPU i9-9900X에 dual GPU(NVIDIA RTX2080i)를 사용하였다. 표 1에 나타나 있는 Base model 각각의 model layer에 ImageNet 데이터로 미리 학습된 웨이트를 로딩하여 transfer 학습을 진행하였다. Optimizer는 Adam으로, 학습 rate는 0.0001으로 설정하였다. 2.3절에서 소개했던 미숙아 망막병증 정상군과 비정상군의 학습 데이터를 학습 이미지와 검증 이미지를 0.7, 0.3로 나누어 학습과 검증을 100 에포(epoch)로 진행하였다. 우선 3개의 모델 학습 결과를 비교하기 위해 학습 정확도 결과를 표 1에 나타내었다.
이러한 학습 정확도에 사용된 식을 식 (1)에 나타내었다. 이때, TP은 True positive로써 실제 정상인데 정상으로 판단한 경우를 말하며, TN은 True negative로 실제 정상인데 비정상으로 판단된 것을 말한다. FP은 False positive, FN은 False negative로써 각각 실제 비정상인데 하나는 정상군으로 하나는 비정상군으로 각각 판명되었음을 나타낸다.
(1) |
또한 missing rate(MR)과 false alarm rate(FMR)을 나타내었다. missing rate는 총 데이터 중에서 정확도 예측이 틀린 것의 비율을, FMR는 비정상으로 판정되었으나 실제로는 정상인 것의 비율을 뜻하는 것으로 식 (2), (3)에 각각의 계산식을 나타내었다.
(2) |
(3) |
이러한 결과 학습 정확도를 포함한 모든 면에서 Xception이 가장 높은 성능을 보였다. Xception이나 Inception-V3이 AlexNet 대비 성능이 높은 이유는 다음과 같다. 딥러닝에서 층을 점점 깊게 쌓으면 성능이 높아지게 되는데, AlexNet 과 같은 CNN으로만 구성되어있는 네트워크는 그 깊이에 한계가 생기게 된다. 층을 깊게 쌓을수록 Backpropagation 단계에서 발생하는 Gradient Vanishing 문제가 발생하게 되기 때문이다. 깊이가 일정 이상으로 깊게 되면 앞 레이어와의 차분(Differential) 값이 0으로 수렴하게 되어서 이후에는 모두 weight가 0이 되는 현상이 발생하는데 이를 Gradient Vanishing 문제라고 정의한다. 따라서 CNN만으로 구성된 AlexNet은 성능이 일정 이상으로 높아지지 못한다. 반면에 Inception-V3 나 Xception은 ResNet의 구조를 사용해서 Gradient Vanishing 문제를 해결한다. 즉, skip connection으로 인해서 weight가 0이 되는 것을 방지하였기 때문에 성능이 우수한 것으로 생각된다.
Xception을 이용한 분류기의 블록도를 그림 4에 나타내었다. 전처리된 안저 사진의 사이즈는 600 x 600 x 1이며 Xception은 8개의 block layer를 사용하여 학습시킨 뒤 pooling과 softmax를 거처 결과를 도출하였다. Xception으로 학습과 검증 결과를 그림 5에 나타내었다. Loss는 학습 loss 비율이며, acc는 학습 정확도이다. val_loss는 검증 loss rate이며, val_acc는 검증 정확도를 나타내고 있다. Loss는 0에 거의 근접하고 정확도는 1에 거의 근접하여 학습이 제대로 진행되었음을 알 수 있다.
또한, 전처리기가 실제 학습 정확도에 미치는 영향에 대해서도 조사하였다. 그림 6에서 나타내었듯이, 기존과 동일한 조건에서 전처리를 하지 않은 안저 사진들을 학습시킨 결과이다. 그 결과, 학습 정확도는 100%를 달성하였지만 검증 정확도에서는 90%를 조금 넘는 결과를 보였다. 또한 검증 loss 비율이 100%를 넘는 듯 불안정한 결과를 보였다. 이는 과적합(Overfitting)이 발생한 것 때문으로 생각된다. 이러한 결과에 의해 안저 사진의 전처리가 필수임을 알 수 있다.
본 학습 결과의 이해를 돕기 위해 정상군과 비정상군의 샘플 이미지들의 테스트한 결과를 그림 7에 나타내었다. 샘플 이미지 4개를 우선 미숙아 망막병증 전문의에 의해서 분류한 결과와 본 논문에서 개발한 프로그램으로 테스트한 결과를 비교하여 그 결과가 어느 정도 일치하는지 확인하였다.
정상군 샘플 안저 사진 두 장(sample1, sample2)와 비정상군 샘플 안저 사진 두 장(sample3, sample4)를 학습 시킨 결과를 나타내었다. 정상군, 비정상군의 구분은 전문의에 의한 구분 결과에 따라 샘플 이미지를 나눈 것이고, Normal과 Abnormal이라고 적힌 부분은 프로그램에 의해 각각 정상군과 비정상군으로 판별될 확률을 나타내었다.
그림 7의 결과에 알 수 있듯이 정상군의 샘플 안저 사진들은 모두 Normal 99.98%로, 비정상군의 샘플 안저 사진들은 모두 Abnormal 99.98%의 확률로 나타났다. 이에 본 논문에서는 스마트폰으로 촬영한 안저 사진들에 대해 Xception을 base network로 사용하여 정상과 비정상군의 분류를 하는데 성공하였다.
Ⅴ. 결론 및 향후 과제
본 논문에서는 스마트폰으로 촬영한 미숙아 안저 사진을 이용해 미숙아 망막 병증을 진단하기 위한 딥러닝을 이용한 분류기를 개발하였다. 고가의 미숙아용 안저 사진 촬영기기의 부재와 전문 안과의의 부족 등의 문제를 해결하기 위해 스마트폰으로 촬영하는 방법론이 대두되고 있다. 하지만 고가의 촬영기기는 고화질로 촬영되기 때문에 객관적인 분석이 용이했던 반면, 스마트폰으로 촬영된 안저 사진은 화질의 문제뿐만 아니라 안구의 위치 등이 변해있어 객관적인 분석이 어려웠다. 그러므로 본 논문에서는 Xception 모델을 이용한 분류기로 스마트폰으로 촬영된 미숙아의 안저 사진의 정상군과 비정상군의 분류를 99% 이상 정확도로 분류하는데 성공하였다.
향후 과제로는 안저 사진의 정상군과 비정상군의 분류뿐만 아니라 혈관 검출을 통해 비정상군의 추가 징후 등을 검출 할 수 있는 시스템을 개발할 계획이다. 이로써 미숙아 망막 병증의 총괄적인 진단이 가능할 것으로 생각된다.
Acknowledgments
This work was supported by Busan Institute of science and technology evaluation and planning (BISTEP) grant (2019 Busan Open Lab. Program) funded by the Korea government(Ministry of Trade, Industry and Energy) and Busan metropolitan city.
References
- W. Tasman, A. Patz, J. A. McNamara, R. S. Kaiser, M. T. Trese, and B. T. Smith, "Retinopathy of prematurity: the life of a lifetime disease", American journal of ophthalmology, Vol. 141, No. 1, pp. 167-174, Jan. 2006. [https://doi.org/10.1016/j.ajo.2005.07.034]
- Early Treatment for Retinopathy of Prematurity Cooperative Group, "Revised indications for the treatment of retinopathy of prematurity: results of the early treatment for retinopathy of prematurity randomized trial", Archives of ophthalmology, Vol. 121, No. 12, pp. 1684-1694, Dec. 2003. [https://doi.org/10.1001/archopht.121.12.1684]
- W. V. Good and Early Treatment for Retinopathy of Prematurity Cooperative Group, "Final results of the Early Treatment for Retinopathy of Prematurity (ETROP) randomized trial", Transactions of the American Ophthalmological Society, Vol. 102, pp. 233-250, Dec. 2004.
- https://newborncare.natus.com/products-services/newborn-care-products/vision-screening/retcam3, . [accessed: Oct. 09, 2019]
- S. Lee, S. An, W. Park, and Y. Kwon, "Smartphone Fundoscopy to Detect Retinopathy of Prematurity", The Journal of Korean Ophthalmol Society, Vol. 59, No. 1, pp. 31-36, Jan. 2018. [https://doi.org/10.3341/jkos.2018.59.1.31]
- O. Ronneberger, P. Fischer, and T. Brox, "U-net: Convolutional networks for biomedical image segmentation", International Conference on Medical image computing and computer-assisted intervention, Springer, Cham, p. 234-241, May 2015. [https://doi.org/10.1007/978-3-319-24574-4_28]
- B. Kim and I. Lee, "Retinal Blood Vessel Segmentation using Deep Learning", The Journal of Korean Institute of Information Technology, Vol. 17, No. 5, pp. 77-82, May 2019. [https://doi.org/10.14801/jkiit.2019.17.5.77]
- M. Cavallari, C. Stamile, R. Umeton, F. Calimeri, and F. Orzi, "Novel method for automated analysis hypertensive retinopathy and CADASIL", BioMed research international, Vol. 2015, pp. 1-10, Jun. 2015. [https://doi.org/10.1155/2015/752957]
- N. N. Raufi, D. K. Wallace, S. F. Freedman, and S. G. Prakalapakorn, "Computer-assisted quantification of pre-plus and plus disease in images obtained using Pictor versus video indirect ophthalmoscopy: a pilot study", Journal of American Association for Pediatric Ophthalmology and Strabismus, Vol. 21, No. 4, pp. 322-325, Aug. 2017. [https://doi.org/10.1016/j.jaapos.2017.04.006]
- D. K. Wallace, "Computer-assisted quantification of vascular tortuosity in retinopathy of prematurity (an American Ophthalmological Society thesis)", Transactions of the American Ophthalmological Society, Vol. 105, pp. 594-615, Dec. 2007.
- A. Krizhevsky, I. Sutskever, and G. E. Hinton. "Imagenet classification with deep convolutional neural networks", Advances in neural information processing systems, Lake Tahoe, Nevada, Vol. 1, pp. 1097-1105, Dec. 2012.
- C. Szegedy, V. Vanhoucke, S. Ioffe, J. Shlens, and Z. Wojna, "Rethinking the inception architecture for computer vision", In Proceedings of the IEEE conference on computer vision and pattern recognition, Las Vegas, NV, USA, pp. 2818-2826, Jun. 2016. [https://doi.org/10.1109/CVPR.2016.308]
- F. Chollet, "Xception: Deep learning with depthwise separable convolutions", In Proceedings of the IEEE conference on computer vision and pattern recognition, Honolulu, HI, USA, pp. 1251-1258, Jul. 2017. [https://doi.org/10.1109/CVPR.2017.195]
2017년 3월 ~ 현재 : 동아대학교 전자공학과 학사과정
관심분야 : 머신러닝, 화상처리
2015년 : 동아대학교 의학과 석사
2019년 ~ 현재 : 동아대학교 의학과 박사과정
관심분야 : 망막, 유리체, 포도막
2018년 : 동아대학교 의학과 안과학 박사
2012년 ~ 2018년 : 동아대학교 병원 조교수
2018년 ~ 현재 : 동아대학교 병원 부교수
관심분야 : 망막, 유리체, 포도막
2010년 3월 : 동경대학교 전자공학(공학박사)
2010년 ~ 2014년 : 삼성전자 System LSI 사업부 책임 연구원
2014년 ~ 2018년 : 동아대학교 전자공학과 조교수
2018년 9월 ~ 현재 : 동아대학교 전자공학과 부교수
관심분야 : 머신 러닝, 화상 처리, CMOS 이미지 센서, 픽셀 광학 구조 개발