DOI QR코드

DOI QR Code

Accuracy Urinalysis Discrimination Method based on high performance CNN

고성능 CNN 기반 정밀 요검사 판별 기법

  • 백승혁 (충북대학교 전파통신공학과) ;
  • 최홍락 (충북대학교 전파통신공학과) ;
  • 김경석 (충북대학교 정보통신공학과)
  • Received : 2021.09.27
  • Accepted : 2021.12.10
  • Published : 2021.12.10

Abstract

There are three types of urinalysis: physical test, chemical test, and microscopic test. Among these, the chemical urinalysis is an easily accessible method of the general public to compare the chemical reaction of urinalysis strip with a standard colorimetric table by sight or purchase the portable urinalysis machine separately. Currently, with the popularization of smartphone, research on the urinalysis service using smartphone is increasing. The urinalysis screening application is one of the urinalysis services using a smartphone. However, the RGB values of the urinalysis pad taken by the urinalysis screening application have large deviations due to the effect of lighting. Deviation of RGB value debases the accuracy of urinalysis discrimination. Therefore, in this paper, the accuracy of urinaylsis pad image discrimination is improved through CNN after classifying urinalysis strips taken by the urinalysis screening application based on smartphone by urinalysis pad items. Urinalysis strip was taken from various backgrounds to generate CNN image, and urinalysis discrimination was analyzed using the ResNet-50 CNN model.

요검사는 물리적 성상 검사, 화학적 검사, 현미경 검사 세 가지가 있다. 이 중에서 화학적 요검사는 일반인이 쉽게 접근하는 방법으로 요검사지의 화학반응을 눈으로 표준비색표와 비교하거나 휴대용 요검사기를 별도로 구매하여 검사를 진행한다. 현재는 스마트폰의 보급이 대중화되어 스마트폰을 활용한 요검사 서비스 연구가 높아지고 있다. 요검사 스크리닝 애플리케이션은 스마트폰을 활용한 요검사 서비스 중 하나이다. 그러나 요검사 스크리닝 애플리케이션으로 촬영한 요검사 패드 RGB 값은 조명영향으로 인해 큰 편차가 발생한다. 요검사 패드 RGB 값의 편차는 요검사 판별의 정확도를 떨어뜨린다. 따라서 본 논문에서는 스마트폰 기반 요검사 스크리닝 애플리케이션으로 촬영한 요검사지를 검사 항목별 요검사 패드로 분류한 후 CNN을 통해 요검사 패드 이미지 판별의 정확도를 높인다. 요검사지는 다양한 배경에서 촬영하여 CNN 이미지를 생성하였으며 ResNet-50 CNN 모델을 사용하여 요검사 판별을 분석하였다.

Keywords

Ⅰ. 서론

배뇨 활동은 생활하면서 몸속에 생긴 노폐물을 밖으로 배출하는 것으로 평생 지속하는 행위 중 하나이다.

요에서 발견되는 이상물질은 당뇨병, 간질환, 신장 질환으로 인해 요도, 신장, 간 등 신체 기관 기능에 문제가 발생하여 단백질, 포도당, 잠혈, 백혈구 등이 검출된다. 따라서 지속적인 요검사를 통해 건강 상태를 확인하는 것은 매우 중요하다.

요검사는 물리적 성상 검사, 화학적 검사, 현미경 검사 세 가지로 구분할 수 있다. 이 중에서 요검사지를 사용한 화학적 요검사는 일반인이 저렴한 가격으로 쉽게 접근할 수 있는 장점이 있다. 화학적 요검사는 요를 요검사 지에 묻혀 요검사 패드의 화학반응으로 색이 변하면표준비색표와 눈으로 비교하거나 별도로 구매한 휴대용요검사기를 사용해야 한다[1]. 하지만 시각으로 색 변화를 비교하면 객관성이 떨어지고 별도로 구매해야 하는 휴대용 요검사기는 별도의 큰 비용이 들어 부담된다.

그러나 이동 통신 기술의 발전으로 전 연령에 걸쳐 스마트폰 보급의 보편화로 이어졌고, 스마트폰을 활용한 다양한 서비스가 개발되었다. 요검사 또한 스마트폰을 활용하여 서비스를 제공하는 연구가 진행되었으며 요검사 스크리닝 애플리케이션은 스마트폰을 활용한 요검사 서비스 중 하나이다.

요검사 스크리닝 애플리케이션으로 요검사지를 촬영한 후 측정한 요검사 패드의 RGB 값은 조명영향으로 인하여 큰 편차가 발생한다. 이때, 발생한 편차는 요검사판별 결과의 정확도를 떨어뜨리는 원인이 된다.

이를 해결하기 위해 딥러닝을 적용한다. 딥러닝은 사람의 신경망 구조와 유사한 형태의 인공신경망을 복수의 은닉층을 구축하여 방대한 데이터를 학습한다. 학습한 모델은 컴퓨터가 스스로 데이터의 특징적인 규칙을 찾고 의사결정, 분류, 예측한다. 다양한 딥러닝 기술 중에서 CNN(Convolutional Neural Networks)은 합성 곱 연산을 사용하는 인공신경망의 한 종류로 이미지의 특징을 추출, 분류, 예측하는데 효과적인 방법[2]이다. 따라서 본 논문에서는 요검사 스크리닝 애플리케이션으로 촬영한요검사지를 검사항목별 요검사 패드로 분류한 후 CNN 을 통해 요검사 패드의 특징을 파악하여 요검사 판별 정확도를 높이고자 한다.

본 논문의 구성은 다음과 같다. Ⅱ장에서는 요검사 이미지 생성 과정을 설명하고 Ⅲ장은 CNN 기반 정밀 요검사 판별 기법을 설명한다. Ⅳ장에서는 요검사 판별 실험환경 및 결과를 분석하고 Ⅴ장에서 결론으로 마무리한다.

Ⅱ. 요검사 이미지 생성 과정

CNN 모델의 성능이 뛰어나도 이미지의 품질과 양이 부족하면 정확도가 떨어지기 때문에 CNN 과정 전 이미지 생성은 매우 중요하다. 그림 1은 요검사 이미지 생성과정의 흐름도이다. 스마트폰 기반 요검사 스크리닝 애플리케이션으로 다양한 배경에서 정도관리물질을 묻힌요검사지를 촬영 및 저장한다. 저장한 요검사지를 PC로 가져온다. 이때 요검사지 크기가 촬영한 거리에 따라 다르므로 이미지를 생성하기 위해 크기를 고정한다. 고정된 크기의 요검사지는 검사항목별로 요검사 패드를 추출 및 분류한다. 분리한 요검사 패드는 CNN 학습을 위한 이미지와 학습한 CNN 모델을 검증할 이미지로 분류한다. 학습 이미지는 요검사 패드를 음성, 양성으로 한 번 더 분류한다. 요검사지를 요검사 패드 항목별로 분류하는 이유는 요검사 결과가 항목별로 음성 또는 양성으로 판별되기 때문이다.

OTNBBE_2021_v21n6_77_f0001.png 이미지

그림 1. 요검사 이미지 생성 과정 흐름도

Fig. 1. Urinalysis image generation flowchart

그림 2는 스마트폰 기반 요검사 스크리닝 애플리케이션의 흐름도이다. 메인 화면은 스마트폰 카메라 사용 권환, 내부 저장소 접근 권한, 카메라 화면으로 이동하는 버튼을 제공한다. 카메라 화면은 스마트폰 카메라가 요검사 지에 초점을 맞추는 기능인 오토 포커스와 터치 포커스, 요검사지 인식 영상처리를 사용한 요검사지 표시, 이미지 화면으로 이동하는 버튼을 제공한다. 이미지 화면은 요검사지 인식 영상처리를 사용하여 요검사지를 추출 및 저장한다.

OTNBBE_2021_v21n6_77_f0002.png 이미지

그림 2. 스마트폰 기반 요검사 스크리닝 애플리케이션 흐름도

Fig. 2. Urinalysis screening application based on smartphone flowchart

그림 3은 요검사지 표시와 요검사지 추출에 해당하는 요검사지 인식 알고리즘의 흐름도이다. 요검사지는 얇은 흰색 플라스틱 막대에 검사항목 개수만큼의 요검사 패드가 일정한 간격으로 나열된 구조로 윤곽선을 파악하기 어렵다. 이러한 문제를 해결하기 위해 두 번에 걸쳐서 요검사 지의 윤곽선을 파악한다. 윤곽선을 파악한 후에는 윤곽선을 포함하는 직사각형을 인지하여 각각의 꼭짓점을 파악한다. 파악한 꼭짓점을 바탕으로 카메라 화면에서는 요검사지를 표시하고 이미지 화면에서는 요 검사지를 추출한다.

OTNBBE_2021_v21n6_77_f0003.png 이미지

그림 3. 요검사지 인식 영상처리 흐름도

Fig. 3. Urinalysis strip recognition flowchart image processing

Ⅲ. CNN 기반 정밀 요검사 판별 기법

1. CNN 이미지 특징 학습 및 추출

방대한 데이터를 학습하여 이미지의 특징을 추출하는 CNN 모델은 다양하다. 본 논문에서는 성능이 뛰어나며 최신 CNN 모델들의 기반이 되는 ResNet 모델을 사용하였다.

ResNet 모델은 그림 4와 같이 Bottleneck Design으로 구현된 Skip Connection의 Residul 모듈로 구성된다.

OTNBBE_2021_v21n6_77_f0004.png 이미지

그림 4. Residul 모듈

Fig. 4. Residul module

\(x_{l}=F_{l}\left(x_{l-1}\right)+x_{l-1}\)       (1)

식 (1)은 Skip Connection으로 층을 거치지 않고 입력된 값이 출력부에 연결된 구조로 딥러닝 최적화 모델을 찾는 역전파 과정의 모든 층에서 적어도 1 이상의 값을 가지게 됨으로써 Vanishing / Exploding Gradient 문제를 해결한다.

Bottleneck Design은 계층의 개수에 따라 달라진다. 계층의 수가 50개 이상일 때 Bottleneck Design은 그림 4의 F(x)와 같다. Convolution은 이미지의 특징을 추출하기 위한 계산과정으로 3×3 Convolution은 모델의 구조를 단순화하고 1×1 Convolution은 차원을 감소, 복원하여 학습 계산량을 줄이면서 깊은 계층을 만든다. Batch Normalization은 입력 계층의 정규화를 통해 각 계층에서 독립적으로 학습하여 CNN을 빠르고 안정화하는 방법이다. ReLU(Rectified Linear Unit)는 입력값이 0보다 작으면 0으로 출력, 0보다 크면 입력값 그대로 출력한다. Pooling은 Covolution계산 이후 가장 큰 특징을 나타내는 값을 추출하여 이미지의 크기를 줄이고 노이즈를 최소화한다[3].

본 논문에서는 ResNet 모델 중에서 그림 5의 ResNet-50을 사용하여 이미지를 학습한다.

OTNBBE_2021_v21n6_77_f0005.png 이미지

그림 5. ResNet-50 모델

Fig. 5. ResNet-50 model

2. 검사항목별 요검사 패드 이미지 판별

그림 6은 검사항목별 요검사 패드 이미지 판별 흐름도이다. 검사항목별 요검사 패드의 학습 이미지를 ResNet-50 모델에 입력한 후 각각의 학습 모델을 생성한다. 생성된 학습 모델에 검사항목별 검증 이미지를 입력하여 판별 결과를 확인한다. 판별에 사용하는 함수는 softmax와 max가 있다. softmax는 음성, 양성 두 개의 클래스에 대한 확률의 합이 1이 되도록 확률을 계산한다[4]. max는 softmax의 확률을 활용하여 가장 높은 확률값에 해당하는 값[5]을 추출하여 판별에 사용한다.

OTNBBE_2021_v21n6_77_f0006.png 이미지

그림 6. 검사항목별 요검사 패드 이미지 판별 흐름도

Fig. 6. Urinalysis pad image discrimination flowchart for each test item

IV. 실험 환경 및 결과

스마트폰 기반 요검사 스크리닝 애플리케이션으로 촬영한 요검사지를 검사항목별 요검사 패드 이미지로 분류한 후 고성능 CNN을 통해 음성, 양성을 분류하는 실험을 진행하였다. 실험을 위해서 영동제약(주)의 URiSCAN 10 SGL Strip 요검사지와 음성, 양성을 표시하는 URiTROL Liquid 1, 2의 정도관리물질을 사용하였다[6]. 요검사지 촬영 배경은 흰색, 검은색, 빨간색, 노란색, 초록색, 파란색 6개로 배정하고 스마트폰 기반 요검사 스크리닝 애플리케이션으로 30번씩 촬영하여 요 검사지를 추출하였다. 총 360개의 요검사지를 추출하였으며 검사항목별 요검사 패드를 무작위로 312개는 학습 이미지, 48개는 검증 이미지로 사용하였다.

ResNet-50 모델을 사용하기 위한 파라미터 값은 입력 크기를 224×244, 배치 크기를 32, epoch 수를 60 을 사용하였다.

실험 결과는 2가지가 있다. 첫 번째는 학습 이미지를 사용한 손실률이다. CNN 학습 기준인 손실률은 지수적으로 0에 가까울수록 예측값과 실제값의 차이가 작음을 의미하며 학습이 잘된 모델로서 평가된다[7].

그림 7은 잠혈 학습 이미지를 ResNet-50 모델에 입력했을 때 손실률을 표시하였다. 그래프는 epoch 당 손실률을 표시하였으며 최종적으로 손실률이 지수적으로 0 에 수렴되었다. 나머지 8개 검사항목에 대한 그래프도 지수적으로 0에 수렴하는 것을 확인하였다. 따라서 ResNet-50 모델의 학습이 잘 되었음을 확인하였다.

OTNBBE_2021_v21n6_77_f0007.png 이미지

그림 7. 잠혈 ResNet-50 손실률

Fig. 7. Blood ResNet-50 loss rate

두 번째는 검증 이미지를 사용한 분류 정확도이다. ResNet-50으로 학습한 모델에 검증 이미지를 입력하여 음성, 양성의 확률을 확인한다. 확인 후에는 확률이 가장 큰 값을 확인하여 판별에 사용한다.

그림 8은 잠혈 검증 이미지를 학습된 ResNet-50 모델에 입력했을 때 음성인지 양성인지 판별한 결과이다. 다음과 같은 방식으로 빌리루빈, 우로빌리노겐, 케톤체, 단백질, 아질산염, 백혈구의 판별 결과도 확인하였다. 표 1은 검사항목별 요검사 패드 분류 정확도를 표시하였으며 100%의 높은 정확도를 확인할 수 있다.

OTNBBE_2021_v21n6_77_f0008.png 이미지

그림 8. 잠혈의 음성, 양성 판별 결과

Fig. 8. Negative and positive result of blood

표 1. 검사항목별 요검사 패드 분류 정확도

OTNBBE_2021_v21n6_77_t0001.png 이미지

Table 1. Urinalysis pad classification accuracy by test

V. 결론

본 논문에서는 스마트폰 기반 요검사 스크리닝 애플리케이션으로 촬영한 요검사지를 검사항목별 요검사 패드 이미지로 분류한 후 요검사 패드 이미지를 높은 정확도로 판별하기 위해 고성능 CNN 기반 정밀 요검사 판별기법을 제안하였다. 또한 성능을 확인하기 위해서 실험환경을 구축하고 분석하였다. 그 결과, 다양한 배경에서 촬영한 요검사 패드를 100%의 높은 정확도로 판별하였다.

향후 과제는 2가지가 있다. 첫 번째는 현재 구현한 요검사 서비스가 정도관리물질 뿐만 아니라 추후 실제 환자의 요를 사용하여 표준비색표의 단계별로 다중 분류를 진행해야 한다. 두 번째는 스마트폰 기반 요검사 스크리닝 애플리케이션과 고성능 CNN 기반 요검사 스크리닝을 클라이언트-서버 구조의 플랫폼을 구축하여 효율적으로 요검사 서비스를 제공해야 한다. 본 연구가 발전하는 요검사 서비스의 밑거름이 되길 기대한다.

References

  1. T.H Han, "Urinalysis: The Usefulness and Limitations of Urine Dipstick Testing", Journal of the Korean society of pediatric nephrology, v.17, no.2, pp.42-48, 2013. DOI: https://doi.org/10.3339/jkspn.2013.17.2.42
  2. Changsoo Ma, 「Machine Learning & Deep Learning with Clear Practice」, ONLYBOOK (2019), pp.124-130.
  3. Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun, "Deep Residual Learning for Image Recognition", v.1, pp. 770-778, 2016. DOI: https://doi.org/10.1109/CVPR.2016.90
  4. SOFTMAX, https://pytorch.org/docs/stable/generated/torch.nn.Softmax.html
  5. TORCH.MAX, https://pytorch.org/docs/stable/generated/torch.max.html
  6. URiSCAN Strip, URiTROL, http://www.yd-diagnostics.com/2012/kor/channel_02/prt_list.php
  7. Loss function, Train/Val accuracy, http://aikorea.org/cs231n/neural-networks-3/