초음파 영상에서 질병 추출을 위한Keras 기반의 CNN 모델
Copyright ⓒ 2018 The Digital Contents Society
This is an Open Access article distributed under the terms of the Creative Commons Attribution Non-CommercialLicense(http://creativecommons.org/licenses/by-nc/3.0/) which permits unrestricted non-commercial use, distribution, and reproduction in any medium, provided the original work is properly cited.
초록
CNN 알고리즘은 이미지 인식에 주로 사용되는 딥러닝 알고리즘이다. 최근 들어 정확도가 많이 향상되어 CNN 알고리즘을 이용한 이미지 분류가 많은 분야에 이용되고 있고 의료 영상 분야에서 숙련된 전공의가 아닌 경우 초음파 영상을 이용한 질병 판독은 쉽지 않다. 본 논문에서는 CNN 알고리즘을 이용하여 간 초음파 영상에 나타난 질병에 따라 이미지를 분류하여 간 병변을 예측한다. 그레이스케일과 사이즈재조정을 통해 간 초음파 이미지를 전처리한 후 CNN 알고리즘에 적용하였다. 본 논문에서는 3개의 convolution 레이어를 갖는 CNN구조로 학습하여 overfitting 문제를 해결하고, 학습 영상 92%, 테스트 영상 59%의 정확도로 영상을 분류하여 실험하였다.
Abstract
CNN algorithm is a deep learning algorithm which is mainly used for image recognition.In recent years, image classification using CNN algorithm has been used in many fields because of its improved accuracy and it is not easy to read disease using ultrasound image unless it is a skilled expert in medical image field. In this paper, we use CNN algorithm to predict the liver lesion by classifying the images according to the diseases shown in the liver ultrasound images. The liver ultrasound image was preprocessed through grayscale and size reordering and then added to the CNN algorithm. In this paper, we study the overfitting problem by learning CNN structure with 3 convolution layers and classify the images with accuracy of 92% of test image and 59% of test image.
Keywords:
CNN, Liver Image, Medical Ultrasonography, Image classification, Keras키워드:
CNN, 간이미지, 의료초음파, 이미지분류, 케라스Ⅰ. 서 론
영상 내에서 특정 부분을 인식하는 것은 매우 중요한 일이 되고 있다. 이러한 영상 인식은 다양한 분야에서 사용되고 있고 특히 교통 분야에서는 차량 번호를 인식하여 차량을 분류하거나 의료 분야에서는 질병을 판별하기 위해 영상인식을 사용하는 등 이미 다양한 분야에서 영상 인식이 사용되고 있다. 그 외에도 홍채 인식, 사람 얼굴 인식, 지문 인식 등 다양한 분야에서 실생활에 활용되면서 이러한 영상 인식을 위해 다양한 영상처리 기법이 이용되고 있다. 가우시안 필터를 활용한 영상의 노이즈 제거, 캐니 엣지 필터를 활용한 영상의 외곽선 추출, 푸리에 변환을 활용한 영상처리 기법 등 많은 방법으로 영상처리를 통한 영상인식을 하고 있다. 최근에는 딥러닝을 활용한 영상처리 기법으로 좀 더 영상 인식의 정확도를 높이기 위한 연구가 활발히 진행 중에 있다. 현재 딥러닝을 이용한 영상 인식은 최고 수준의 성능을 보여주고 있고, 의료 영상이나 군사, 도로 교통 등 다양한 분야에 적용되고 있다. 딥러닝을 활용한 영상처리 기법으로 CNN (Convolution Neural Network) 알고리즘을 적용한 영상처리 기법이 많이 사용되고 있는데 일반적으로. 영상은 음성이나 텍스트에 비해 정보량이 많은 것이 특징이다. 일반적인 뉴럴넷(Neural Net)은 과적합(overfitting) 문제를 야기할 수 있다[1]. 반면에 CNN 구조는 기존의 Neural Net에 비해 파라미터의 수를 크게 줄여서 이미지의 특성을 학습하는데 효과적인 방법이다. 일반적으로 입력영상에서 영상의 특징을 추출하기 위해 CNN 알고리즘을 적용하여 영상의 특징을 추출하는 방법으로 영상처리를 사용하는데[2], 이렇게 CNN 알고리즘을 적용하면 기존의 방법보다 높은 정확도를 얻게 된다. 또한 기존의 영상처리 기법으로 처리할 수 없었던 영상들을 CNN 알고리즘을 활용하여 영상 분류 및 분할이 가능하다는 장점이 있다. 특히, CNN 알고리즘은 영상의 샘플이 많으면 많을수록 높은 정확도를 얻게 되는 특징이 있어 최근 빅데이터 활용에 매우 적합하다.
최근 몇 년 동안 CNN 알고리즘을 이용한 영상 분류의 정확도가 크게 향상되었고, 컴퓨터의 성능 향상 및 다양한 딥러닝 인터페이스의 개발로 인해 접근성이 향상되었다. 이러한 CNN 알고리즘은 정확도가 높기 때문에 기존의 많은 영상처리 기법을 대체하고 있는 추세이다. 이미 군사 분야에서 항공기, 탱크, 지형 등에 대한 영상 인식을 개발 했거나 연구 중이고, 사람 및 도로를 구분하는 기법을 자율 주행차에 CNN 알고리즘을 적용하여 연구 중에 있다. 그리고 이미지 분류 작업에서 사람보다 높은 정확도를 보여 다양한 이미지 분류 작업에 CNN 알고리즘을 활용되고 있으며, 새로운 CNN 기법에 대한 연구도 활발히 진행 중이다[3]. 의료 분야에서는 엑스레이 영상, 초음파 영상 등 다양한 영상에 CNN 알고리즘을 적용하여 질병을 발견하거나 진단에 활용되고 있다. 엑스레이 영상에서 뼈 영역만 분할하거나 영상에 나타난 질병을 표시하거나 질병 판별 등에 적용하는 방법들이 연구되고 있고[4,5], CNN 알고리즘을 이용하여 CT 영상에서 조직 사이의 폐질환을 찾아내는 방법[6], 사람 눈에서 혈관망을 분할하는 방법[7], 수골 엑스레이 영상을 이용한 나이 측정[8] 등의 다양한 방법들이 연구되었다.
본 논문에서는 연결 구조가 깊은 CNN 구조에서 발생하는 과적합 문제를 해결하고 정확도를 높이기 위한 알고리즘을 제시한다. 먼저 간 초음파 영상을 그레이스케일 흑백영상으로 만들어 필요 없는 컬러 특징을 제거하는 전처리를 거친 후, 기존의 구조를 변경한 CNN 알고리즘을 적용하여 영상을 학습한다. 학습된 모델을 이용해 간 초음파 영상에 나타난 질환을 판별하고 정확도를 실험한다.
Ⅱ. 관련연구
2-1 의료 영상처리
의료영상 진단기기는 진단시간 단축, 실시간 진단, 입체화되는 추세이며 CT는 각종 암, 심장·폐질환, 심·뇌혈관질환 등 다양한 임상응용분야에서 활용되고 초음파 진단기는 handheld와 소형화, 진단·치료시 영상의 융합 필요성과 자동화를 고려한 소프트웨어 성능 향상, 트랜스듀서의 채널 수 증가로 인한 무게 및 소음 감소 기술, 상대적 조직 탄성 파악으로 신호 구분 기술 등이 연구 및 개발 중에 있다[6,7,8].
그림 1과 같이 진료 목적으로 상용화된 다양한 의료영상은 각 영상을 획득하기 위한 방법과 역사적인 발전 과정이 서로 다르다. 따라서 각 영상이 갖는 특징 때문에 어떤 영상의 획득 방법은 다른 영상과 상이하며, 특정한 진료 과목에 효과적일 수 있다. 이러한 의료영상으로는 평판 방사선술(plain radiography), 컴퓨터단층촬영(Computed Tomography, CT), 초음파 영상(Ultrasound image), 자기공명영상(Magnetic Resonance Imaging, MRI), 양전자방출단층촬영(Positron Emission Tomography, PET) 등이 있다.
2-2 이미지 처리를 위한 CNN 모델
딥러닝 모델로써 CNN 구조가 제안되었다. CNN 모델 이란 합성곱(convolution) 연산을 사용한 신경망 네트워크 모델로 합성곱 연산은 다음 식 (1)을 이용하여 진행된다.
(1) |
식1에서 I는 2차원 입력 배열, F는 필터, k는 필터의 크기를 의미한다. 그림 2는 CNN 구조로 각 레이어의 입출력 데이터의 형상 유지, 복수의 필터로 이미지의 특징 추출 및 학습, 추출한 이미지의 특징들을 모으고 강화하는 폴링( pooling) 레이어로 일반 인공 신경망보다 적은 학습 파라미터를 갖는다는 것이 특징이다. CNN은 이미지 특징 추출을 위하여 입력 데이터를 필터가 순회하며 합성곱을 계산하고, 그 계산 결과를 이용하여 feature map을 생성한다. 또한 convolution 레이어는 필터 크기, stride, padding 적용 여부, max pooling 크기에 따라서 출력 데이터의 크기가 결정된다[9]. 이러한 CNN 구조를 사용하여 기존에 간 초음파 영상을 분류하기 위해 사용된 딥러닝 모델은 그림 3과 같이 표현될 수 있다.
CNN은 이론적으로 레이어가 많으면 많을수록 성능이 좋을 수 있는데, 오히려 레이어가 증가하면 학습시 정확도가 더 이상 증가하지 않는 과적합 문제가 발생할 수 있다. 그림 3에서 사용한 CNN 구조는 convolution 레이어가 총 5개로 과적합 문제가 발생하여 학습 세대가 증가함에도 불구하고 정확도가 증가하지 않는 문제가 발생한다. 또한 활성 함수로 은닉층에서 relu와 출력층에서 softmax를 사용하고 있다[8,9,10,11].
(2) |
식 2는 Relu 함수와 softmax 함수로 이 함수들을 사용해서 특징 추출 단계에서 학습한 파라미터를 이용하여 영상을 분류한다. 따라서 CNN의 구조를 좀 더 간결화 하여 학습시간을 줄이고 향상된 정확도를 가진 CNN 구조가 필요하다.
Ⅲ. CNN 딥러닝 알고리즘을 이용한 간 초음파 영상의 병변 추출 알고리즘
임상 초음파 영상에 질병을 파악하는 것은 숙련된 전공의도 진단 오류가 발생할 정도로 쉽지 않다. 따라서 현재는 ICT를 융합한 AI 기술을 활용하고 있는데 이 경우에도 질병 판별시에 진단 오류가 발생하기는 같은 상황이다. 따라서 AI와 전문의가 질병을 판별하기 위해 협업을 할 경우 진단 정확도는 향상되고 이러한 진단 오류를 줄이며 정확도를 높일 수 있는 방법이 필요하다. 따라서 이 논문에서는 간 초음파 영상에 대한 질병 판별 딥러닝 모델을 제안한다.
3-1 시스템 구성
딥러닝의 방법들 중 임상적 진단/예측(특히, 영상을 이용한 진단/예측)을 위해 CNN을 기반으로 영상을 학습하고 입력영상을 예측한다. 이 신경망 알고리즘은 매우 많은 변수들로부터 결과 값 y를 예측해 내는 것으로 간 초음파 영상을 이용하여 간질환을 진단하는 심층 신경망 알고리즘 제안 한다. 초음파 영상 내 각각의 화소들이 개별 x 변수들이 되며 간질환 (y = 1)과 간질환이 아님(y = 00)이 y 값이 된다. 그림 4는 입력영상은 64×64크기로 resize된 영상을 획득한 후, 전처리를 수행하는데, 이 단계에서는 그레이스케일이 진행되어 영상을 흑백 이미지로 만들어 불필요한 특징들을 제거한다. 영상에는 방대한 데이터가 있는데 이 데이터를 모두 사용해서 CNN 학습에 적용하는 것은 시간도 많이 걸리고, 학습에 방해가 되기도 한다. 따라서 전처리 작업을 통해 영상에 존재하는 불필요한 데이터들을 제거하면 시간 단축 및 정확도 향상을 얻을 수 있다. 특히 초음파 영상은 기본적으로 흑백영상이므로 초음파 영상에서 이러한 영상처리 작업을 통해 3채널 이미지를 1채널 이미지로 만들어 불필요한 채널을 줄임으로써 학습에 걸리는 시간을 단축할 수 있다. 다음으로 전처리를 통해 획득된 영상들을 CNN 딥러닝 알고리즘으로 학습을 진행하다.
CNN의 구조는 그림 5와 같이 영상의 특징을 추출하기 위한 단계로 5×5 크기의 커널을 갖는 3개의 컨볼루션 레이어와 2×2 크기의 풀 사이즈를 갖는 2개의 폴링 레이어로 연결한다. 활성 함수로 은닉층에서 Relu와 출력층에서 softmax를 사용한다. 빠른 수렴 속도를 가지고 안정된 학습을 수행할 수 있는 cross entropy를 이용해 식 3과 같이 정의한다.
(3) |
식 3과 같이 역전파(backpropagation) 알고리즘은 목적 함수에 따라 사용된다. 그림 6은 제안 알고리즘에서 병변이라고 판단되는 영역의 ROI 추출을 위한 알고리즘이다. 이렇게 학습한 모델에 모든 테스트 이미지에 대하여 FC층의 결과를 측정하고 저장함으로써, 실험에 필요한 특성 벡터를 얻을 수 있다.
입력 단계에서 전처리 과정을 통해 간 초음파 영상을 입력하면 컨볼루션 레이어와 폴링 레이어에서 영상의 특징을 추출하며 학습 파라미터를 생성하고 학습된 데이터를 이용해서 영상을 4가지 종류(질병단위)로 분류한다. 분류된 영상의 정확도를 판별한 후, 이 단계를 설정한 학습 세대만큼 반복하여 정확도를 높여 준다.
Ⅳ. 실험 및 결과
4-1 실험환경
딥러닝을 통한 학습시 데이터에 human error가 발생할 경우, 학습 모델의 정확도가 떨어질 수 있다. human error를 최소화하기 위해 전문가의 판단으로 질병 단위로 구분된 간 초음파 영상을 획득한다. 본 논문에서 실험을 위해 간 초음파 영상은 총 4종류의 질병에 대한 영상으로 간에 나타난 질병인 Cirrhosis, Cystic, Fat, Hepatoma 질환이 표시되어 있다. 표 1은 학습과 실험에 사용된 질환(질병)별 데이터 셋을 정리한 것이다.
본 논문에서 사용한 데이터의 크기는 딥러닝을 학습하기에 매우 부족하다. 그러나 임상적 특이성을 고려해 모델을 제시하고 향후 영상의 축적을 통해 제안 모델은 더 좋은 성능을 나타낼 것으로 기대한다. 우리는 실험을 위해 CPU i5 4.3GHz, 메모리 16GB를 갖는 PC 환경에서 딥러닝 라이브러리 Keras가 사용되었다. 그림 7은 분류 질환 중 cystic를 발견하고 가시화한 결과이다. CNN 모델을 통해 학습한 후 학습용 영상으로 실험을 진행할 경우 정확도는 학습 모델과 같은 값으로 얻게 된다. 이러한 현상을 방지하기 위해 획득된 간 초음파 영상에서 학습용 영상과 테스트용 영상으로 분류해서 실험에 적용했다. 표 2은 CNN 구조를 갖는 딥러닝 학습 모델로 간 초음파 영상에 대한 질병별 분류 정확도를 테스트한 결과이다.
표 2는 간 병변에서 4가지 임상적 병변을 분류하는 정확도를 실험하기 위해 컨볼루션 레이어 5개를 갖는 CNN 구조와 본 논문에서 제안한 3개의 컨볼루션 레이어를 갖는 새로운 CNN 구조를 이용하였다. 실험결과 5개의 레이어를 갖는 CNN 구조의 경우 학습 영상 47%, 테스트 영상 40%의 정확도를 얻었다. 3개의 레이어를 갖는 CNN 구조인 경우 학습 영상 92%, 테스트 영상 59%의 정확도를 얻었다. 3개의 컨볼루션 레이어를 갖는 CNN 구조에서 테스트한 정확도는 보다 높은 정확도를 확인할 수 있었다. 기존 모델의 5개의 convolution 레이어를 갖는 CNN 구조는 over fitting 문제가 발생하여 학습 세대가 증가해도 47%에서 더 이상 정확도가 높아지지 않았다. 반면에 우리의 제안 모델의 3개의 convolution 레이어를 갖는 CNN 구조를 이용해 실험한 결과 over fitting 문제가 해결되어 보다 높은 정확도로 영상을 분류하는 결과를 얻었다. 일반적으로 CNN모델에서 레이어가 많을수록 학습하는데 시간이 오래 걸릴 뿐만 아니라 over fitting 문제가 발생할 수도 있는 것을 이번 실험을 통해 확인할 수 있었다. 하드웨어 성능을 고려하면서 유사하거나 보다 뛰어난 수준의 결과를 찾는 CNN모델은 매우 중요하다. 우리는 딥러닝에서 중요한 over fitting 문제를 방지하기 위해 CNN 알고리즘을 활용하여 학습을 시킬 때 적절한 레이어의 개수를 설정하는 것이 전체 시스템 모델에 매우 중요하다는 것을 이번 실험을 통해 확인하였다.
Ⅴ. 결 론
전산화단층촬영을 이용한 간 병변 진단을 영상의학과 전공의에게 교육하는 경우 동맥기, 문맥기 및 지연기 영상을 얻는 원리에 대한 설명, 간 병변이 간 동맥으로부터 혈류를 받고 간 문맥으로는 혈류를 받지 않는 병리학적 특징이 있다는 점, 그리고 간단한 간의 전산화단층촬영 해부학을 개념적으로 알려주면 많은 전공의들로 하여금 전산화단층촬영 영상에서 간 병변을 정확히 판독하도록 학습한다. 반면, 심층 신경망은 주어진 영상과 판독결과를 끝에서 끝으로 어떻게든 연결시키기 위해 자료 내의 패턴을 찾아내는 과정인 수학적 모형 적합(mathematical model fitting)을 이용한 기술이다. 그러나 이런 수학적 패턴 찾기와 모형 적합(model fitting) 자체는 딥러닝에만 해당하는 것이 아니라 모든 수학적/통계학적 모형화(mathematical/statistical modeling)에 공통된 사항이기도 하다. 이와 같이 끝에서 끝으로 관계를 맺는 방식으로 수학적 모형 적합(mathematical model fitting)을 하기 위해서는 매우 많은 양의 자료가 필요하며, 이러한 이유로 딥러닝은 빅데이터를 필요로 하고 있다. 본 논문에서는 CNN 딥러닝 알고리즘을 이용하여 간 초음파 영상을 질병별로 분류를 위해 최적의 학습 레이어를 검증하고 학습을 기반으로 분류시 정확도를 확인하는 알고리즘을 제안했다. 질병별로 구별된 간 초음파 영상을 전처리한 후, CNN 학습으로 딥러닝 모델을 생성하고, 학습 모델을 이용해 영상을 분류한다. 기존 5개의 컨볼루션 레이어를 갖는 CNN 구조로 학습시 과적합 문제가 발생하여 정확도가 높아지지 않는 문제가 있었으나 우리는 본 논문에서 제시한 3개의 컨볼루션 레이어를 갖는 새로운 CNN 구조를 이용해 학습함으로 과적합 문제를 해결하였다. 따라서 학습 영상 92%, 테스트 영상 59%의 정확도로 영상을 분류함으로 더 나은 결과를 얻었다.
본 논문에서는 실험에 사용된 간 초음파 영상의 특수성을 고려해 샘플이 딥러닝 알고리즘을 적용하기에는 데이터수가 적은 관계로 정확도가 높지 않은 것으로 판단된다. 그러나 향후 데이터가 많아질수록 분류 정확도가 높아지는 CNN 알고리즘의 특성상 앞으로 간 초음파 영상 샘플을 병의원으로부터 추가로 획득하여 딥러닝 모델에 적용한다면 보다 높은 정확도를 얻을 것으로 기대한다.
References
- H. Joo, and J. Nang, “An Effective Training Method for Action Recognition in Videos by Using Convolutional Neural Network,”, in Proceeding of the 43th Winter Conference of Korean Institute of Information Scientists and Engineers, Gangwondo, p1140-1142, (2016).
- H. Greenspan, G. Hayit, B. van Ginneken, and R. M. Summers, “Guest editorial deep learning in medical imaging”, Journal of IEEE Transactions on Medical Imaging, 35(5), p1153-1159, May.), (2016.
- S. C. Kim, S. H. Kim, Y. H. Kim, and D. Y. Kim, “Training network design based on convolutin neural network for object classification in few class problem”, Journal of the Korea Institute of Information and Communication Engineering, 21(1), p144-150, Jan.), (2017. [https://doi.org/10.6109/jkiice.2017.21.1.144]
- Z. Yan, Y. Zhan, Z. Peng, S. Liao, Y. Shinagawa, and S. Zhang, “Multi-instance deep learning: Discover discriminative local anatomies for body part recognition”, Journal of IEEE Transactions on Medical Imaging, 35(5), p1332-1343, Feb.), (2016. [https://doi.org/10.1109/tmi.2016.2524985]
- Y. B. Cho, and S. H. Woo, Woo.“ Algorithm for Extract Region of Interest Using Fast Binary Image Processing ”, Journal of Korea Institute of Information and Communication Engineering, 22(4), p634-640, Apr.), (2018.
- M. van Grinsven, B. van Ginneken, C. Hoyng, T. Theelen, and C. Sanchez, “Fast convolution neural network training using selective data sampling: Application to hemorrhage detection in color fundus images”, Journal of IEEE Transactions on Medical Imaging, 35(5), p1273-1284, May.), (2016. [https://doi.org/10.1109/tmi.2016.2526689]
- M. Anthimopoulos, A. Marios, C. Stergios, E. Lukas, C. Andreas, and M. Stavroula,”, “Lung pattern classification for interstitial lung diseases using a deep convolutional neural network”, Journal of IEEE Transactions on Medical Imaging, 35(5), p1207-1216, Feb.), (2016. [https://doi.org/10.1109/tmi.2016.2535865]
- Y. B. Cho, S.H Woo, S. H. Lee, and M. K. Kim, “An Efficient Approach in Iris Genetic Lesion Detection Algorithm using SURF and SVM,”, In Proceedings of the 2017 IEEE Signal Processing algorithms architectures arrangements and applications(SPA 2017) conference proceedings, p412-417, Poland, (2017).
- P. Liskowski, L. Pawel, and K. Krzysztof, “Segmenting retinal blood vessels with deep neural networks”, Journal of IEEE Transactions on Medical Imaging, 35(11), p2369-2380, Mar.), (2016.
- H. Lee, T. Shahein, J. Lee, M. Zissen, B. A. Yeshiwas, T. K. Alkasab, G. Choy, and S. Do, “Fully automated deep learning system for bone age assessment”, Journal of Digital Imaging, 30(4), p427-441, Aug.), (2017. [https://doi.org/10.1007/s10278-017-9955-8]
- Y. B. Cho, and S. H. Woo, “A GPU-based Filter Algorithm for Noise Improvement in Realtime Ultrasound Images”, Journal of Digital contents society, 19.(6), p1207-1212, Jun.), (2018.
저자소개
2005년 : 충북대학교 대학원 (이학석사)
2012년 : 충북대학교 대학원 (공학박사)
2016년 : 충북대학교 대학원 (의학 박사수료)
2012년 ~ 2018년: 충북대학교 소프트웨어학고 초빙교수
2012년 ~ 현 재: ㈜소노엠 기업부설연구소 연구소장 겸직
2018년 ~ 현 재: 대전대학교 정보보안학과 조교수
※관심분야: 의료영상처리(Medical Image Processing), 의료정보보호(Medical Information Security), 모바일보안(Mobile Security) 등