DOI QR코드

DOI QR Code

Implementation of Urinalysis Service Application based on MobileNetV3

MobileNetV3 기반 요검사 서비스 어플리케이션 구현

  • 박기조 (충북대학교 전파통신공학과) ;
  • 최승환 (충북대학교 전파통신공학과) ;
  • 김경석 (충북대학교 정보통신공학과)
  • Received : 2023.06.09
  • Accepted : 2023.08.04
  • Published : 2023.08.31

Abstract

Human urine is a process of excreting waste products in the blood, and it is easy to collect and contains various substances. Urinalysis is used to check for diseases, health conditions, and urinary tract infections. There are three methods of urinalysis: physical property test, chemical test, and microscopic test, and chemical test results can be easily confirmed using urine test strips. A variety of items can be tested on the urine test strip, through which various diseases can be identified. Recently, with the spread of smart phones, research on reading urine test strips using smart phones is being conducted. There is a method of detecting and reading the color change of a urine test strip using a smartphone. This method uses the RGB values and the color difference formula to discriminate. However, there is a problem in that accuracy is lowered due to various environmental factors. This paper applies a deep learning model to solve this problem. In particular, color discrimination of a urine test strip is improved in a smartphone using a lightweight CNN (Convolutional Neural Networks) model. CNN is a useful model for image recognition and pattern finding, and a lightweight version is also available. Through this, it is possible to operate a deep learning model on a smartphone and extract accurate urine test results. Urine test strips were taken in various environments to prepare deep learning model training images, and a urine test service application was designed using MobileNet V3.

인체 소변은 혈액 내의 노폐물을 배출하는 과정으로 채취가 쉽고 다양한 물질들이 포함되어 있습니다. 요검사는 이를 통해 질병, 건강상태, 요로 감염 여부 등을 확인하는 용도로 사용됩니다. 요검사에는 물리적 성상 검사, 화학적 검사, 현미경 검사의 세 가지 방법이 있으며, 화학적 검사는 요검사지를 사용하여 쉽게 결과를 확인할 수 있다. 요검사지에는 다양한 항목들을 검사할 수 있으며, 이를 통해 다양한 질병들을 확인할 수 있다. 최근 스마트폰의 보급으로 스마트폰을 이용한 요검사지 판독 연구가 진행되고 있다. 스마트폰을 이용하여 요검사지의 색 변화를 감지하고 판독하는 방법이 있다. 이러한 방법은 RGB값과 색 차이 공식을 사용하여 판별한다. 그러나 다양한 환경 요인으로 인해 정확도가 떨어지는 문제가 있다. 본 논문은 이러한 문제를 해결하기 위해 딥러닝 모델을 적용한다. 특히, 경량화된 CNN(Convolutional Neural Networks) 모델을 사용하여 스마트폰 내에서 요검사지의 색 판별을 개선한다. CNN은 이미지 인식과 패턴 찾기에 유용한 모델로, 경량화된 버전도 사용 가능하다. 이를 통해 스마트폰에서 딥러닝 모델을 운영하고 정확한 요검사지 결과를 추출할 수 있다. 요검사지는 다양한 환경에서 촬영하여 딥러닝 모델 학습 이미지를 준비 하였으며 MobileNet V3을 사용하여 요검사 서비스 어플리케이션을 설계하였다.

Keywords

Ⅰ. 서론

인체의 소변은 혈액 내의 노폐물을 배출하는 것으로 채취가 쉽고, 신장을 통해 여과된 것이므로 세포, 단백질, 포도당 등 다양한 물질들이 포함되어 있다. 따라서 요검사를 통해 다양한 물질들로 다양한 질병 및 건강상태, 요로 감염 여부, 신장 또는 간 문제와 같은 전신성 질환이나 대사이상 질환을 확인하는데에 용이하다[1].

요검사에는 물리적 성상 검사, 화학적 검사, 현미경 검사로 세가지 방법이 있으며, 이 중에서 화학적 검사는 검사에 필요한 요검사지를 쉽게 구할 수 있고, 단시간 내에 결과를 확인 할 수 있어 널리 사용되는 방법이다. 요검사지에는 잠혈(Blood), 빌리루빈(Bilirubin), 우로빌리노겐(Urobilinogen), 케톤체(Ketone), 단백질(Protein), 아질산염(Nitrite), 포도당(Glucose), pH, 비중(Specific gravity), 백혈구(Leucocyte)을 검사 할 수 있는 10가지 패드로 이루어져 있다. 위와 같은 10가지 검사항목들을 통해 고혈압 환자 및 흡연자에서 흔히 발생하는 심부전과 최근 들어 급증하고 있는 당뇨병 등 20가지 이상의 질병들을 확인 할 수 있다[2]. 요검사지를 이용한 검사 방법은 요검사지의 자신의 소변을 묻혀 60초 뒤 변화된 각 패드의 색을 시험 결과표와 비교하여 판독하면 된다. 하지만 일반인들이 이러한 패드의 색변화를 정밀하게 판독하기는 어려우며, 요검사 전용 기기는 가격이 비싸다는 단점이 있다. 이에 따라 최근 IT의 발달로 스마트폰의 보급이 급증하고 있어, 스마트폰을 이용한 요검사지 패드 색 변화를 감지 하여, 결과를 판독하는 연구가 진행되고 있다.

요검사 스크리닝 어플리케이션을 통해 요검사지의 색을 판별하는 것은 RGB값을 통해 색 차이 공식을 이용하여 진행이 된다. 이러한 경우에는 다양한 환경 요인들로 인해 색 판별에서 정확도가 떨어지는 문제점이 발생한다.

이러한 문제점을 해결하기 위해서 본 논문에서는 딥러닝 모델을 적용하여 개선한다. 다양한 딥러닝 모델 중 CNN(Convolutional Neural Networks)은 합성곱 신경망 모델로써 이미지를인식하고 패턴을 찾는데 유용한 모델이다[3]. CNN은 다양한 발전을 통해 현재는 엣지기기에서 적용이 가능한 경량화된 모델로써도 사용이 되고 있다. 따라서 본 논문에서는 경량화된 CNN 모델을 이용하여 스마트폰 내에서 딥러닝 모델을 운영할 수 있으며, 요검사지 색 판별에서 보다 정확한 결과를 추출 할 수 있고자 한다.

본 논문의 구성은 Ⅱ장에서 딥러닝 모델에 학습 시킬 이미지를 생성하는 과정 및 어플리케이션의 전체 흐름도에 대해서 설명하고 Ⅲ장에서 CNN 모델 설계 및 요검사 서비스 어플리케이션 결과에 대해서 설명한다. 마지막으로 Ⅳ에서 결론으로 마무리한다.

Ⅱ. 요검사지 이미지 생성

그림 1은 스마트폰 요검사 어플리케이션의 전체 흐름도이다. 어플리케이션은 촬영 및 파일 사용 권한을 승인받는 메인 화면과 요검사지 인식 및 추출을 위한 촬영화면, 추출한 요검사지의 색을 보정하기 위한 색 보정화면 및 MobileNet V3을 이용하여 요검사지 각 패드의 색을 판독하는 분석 화면으로 이루어져 있다. 메인 화면에서 어플리케이션을 사용하기 위한 권한을 모두 승인을 받았으면, 버튼을 이용하여 촬영 화면으로 이동을 한다. 촬영화면이 시작이 된다면, 요검사지 인식을 위해 오토포커스와 광량 조절 기능이 작동을 한다.

OTNBBE_2023_v23n4_41_f0001.png 이미지

그림 1. 요검사 서비스 어플리케이션 흐름도

Fig. 1. Urinalysis service application flow chart

그림 2는 오토포커스 및 광량 조절 후 촬영 화면에서의 요검사지 인식을 위한 알고리즘이다. 요검사지는 사갹형의 얇은 흰색 플라스틱 막대에 다양한 색으로 색칠된 10개의 패드로 구성되어있다. 이러한 요검사지를 인식하기 위해서는 디지털 영상처리 기법이 필요하다. 첫 단계로는 카메라에서 실시간으로 받아오는 이미지 프레임을 흑백화를 진행해야한다. 흑백화를 진행하는 이유는 이미지의 색이 있을 경우에는 인식하고자 하는 물체의 연속된 점의 구조가 다르기 때문에 인식이 어렵기 때문이다[4]. 흑백화가 진행된 이후에는 Canny edge detection인 필터 마스크를 사용한다. Canny edge detection은 Sobel 커널을 수평, 수직 방향으로 저용하여 각 방향의 gradient를 얻어 윤곽선의 gradient와 각도를 얻는다. 다음으로 이미지 전체에서 검출된 윤곽선의 중식 픽셀을 기준으로 8방향으로 비교하여 최대값을 제외한 나머지 값들을 0값으로 만든 후 임계값을 기준으로 약한 윤곽선, 강한 윤곽서으로 판단한다. 마지막으로 끊어진 윤곽선을 연결하여 이미지의 윤곽선을 표시한다. 하지만 Canny edge detection만으론 요검사지의 윤곽선을 인식하기에는 주변 환경 요인으로 인해 어려움이 있다. 그래서 조명 변화나 잡음에 적응하여 정확한 이진화 결과를 얻을 수 있는 AdaptiveThreshold을 함께 사용하여 보다 정확란 윤곽선을 인식한다. 이렇게 모든 물체의 윤곽선을 인식 후에는 요검사지의 조건에 맞는 직사각형을 찾아 하얀색 테두리를 그려 요검사지를 표시 후 촬영 버튼을 통해 추출 후 색 보정 화면으로 전송 및 이동한다.

OTNBBE_2023_v23n4_41_f0002.png 이미지

그림 2. 요검사지 인식 및 추출 알고리즘

Fig. 2. Urine test strip recognition and extraction algorithm

색 보정 화면에서는 다양한 배경색에서의 요검사지 패드의 색변화를 White Balance와 LAB값 비교를 통해 색 보정을 마친 뒤 1차 적으로 각 패트의 LAB 값을 추출하여 색상 차이 델타 공식을 통해 색 판별을 진행한다. 이후에는 버튼을 클릭해 요검사지 이미지 저장 및 분석 화면으로 이동을 한다[5]. 표 1은 각 패드의 LAB값을 추출하여 색 판별의 정확도를 나타낸 것이며, 5가지 배경색에서 20번씩 촬영한 결과이다. 음성은 단백질에서 99% 정확도가 나왔고, 양성은 우로빌리노겐, 케톤체, 단백질에서 약 95%의 정확도가 나왔다.

표 1. 1차 검사항목별 분류 정확도

Table 1. Classification accuracy by primary inspection item

OTNBBE_2023_v23n4_41_t0001.png 이미지

이러한 문제점으로 정확한 색을 가지는 요검사지를 인식 및 추출을 하여 정확도를 높이기 위해 MobileNet V3에 학습 시킬 이미지를 준비한다.

Ⅲ. MobileNet V3 기반 요검사 서비스 구현

이 장에서는 MobileNet V3 모델의 구조를 설명한 뒤 요검사지 이미지 학습 및 성능 평가를 설명한다. 이후에는 학습된 MobileNet V3 모델을 스마트폰 요검사 어플리케이션에 적용한 뒤 어플리케이션의 요검사 색 판별 정확도에 대해서 설명한다.

1. MobileNet V3 모델 구조

OTNBBE_2023_v23n4_41_f0003.png 이미지

그림 3. building block

Fig. 3. building block

위 그림은 MobileNet V3 모델이 효과적인 모델을 구축하기 위해 사용한 방법으로써, 레이어 층들의 결합을 block으로 사용한 것을 나타낸다. block은 SE(Squeez-and-Excite)block을 사용했다[6].

\(\begin{aligned}h-\operatorname{swish}[x]=x \frac{\operatorname{ReLU6}(x+3)}{6}\end{aligned}\)       (1)

식 1은 MobileNet V3 모델이 사용하는 비선형 활성화 함수이다. 기존의 swish 함수는 모바일 환경에서 많은 연산량을 차지하기 때문에 고안된 방법이다. 16개의 레이어 층에서 총 11번이 사용되며, ReLU와 함께 사용이 된다[7].

그림 4는 MobileNet V3의 구조를 표로 도시한 것이다. 총 레이어층은 16개의 층을 사용하며, 처음 입력 이미지의 크기는 224*224 크기의 RGB 채널을 사용하여 처리한다. 각 레이어 층을 거칠때마다 사용하는 연산자와 SE block사용 유무 및 비선형성 활성화 함수의 사용이 달라진다.

OTNBBE_2023_v23n4_41_f0004.png 이미지

그림 4. MobileNet V3 모델 구조

Fig. 4. MobileNet V3 model Specification

본 논문에서는 위 그림 4의 MobileNet V3을 이용하여 요검사지 이미지를 학습한다.

2. MobileNet V3 모델 학습 및 요검사 어플리케이션 결과

다음 그림은 MobileNet V3 모델을 설계하고 요검사 어플리케이션에 적용하는 흐름도이다. 요검사지 인식, 추출 및 색 보정이 마친 이미지들을 패드 별로 분류 후 모델에 학습을 시켰다. 학습된 모델의 활성화 함수는 ReLU을 사용하였고, Optimizer는 Adam을 사용하였다.

OTNBBE_2023_v23n4_41_f0005.png 이미지

그림 5. MobileNet V3 모델 설계 및 어플리케이션 적용 흐름도

Fig. 5. MobileNet V3 model design and application flow chart

그림 6은 MobileNet V3 모델에 요검사지 이미지를 학습 시킨 뒤 epoch 당 손실률과 정확도를 표시하였다. epoch는 30으로 설정을 하였으며, 손실률은 지수적으로 0에 수렴하였고 정확도는 1에 수렴하면서 어플리케이션에 적용을 진행했다. 이후에는 어플리케이션에 적용을 위해 tflite 모델 변환 중 가장 모바일 기기 시스템에 호환성이 높은 SavedModel 방법을 통해 진행하였다.

OTNBBE_2023_v23n4_41_f0006.png 이미지

그림 6. MobileNet V3 epoch 당 손실률 및 정확도

Fig. 6. MobileNet V3 loss per epoch and discard

OTNBBE_2023_v23n4_41_f0007.png 이미지

그림 7. 분석 화면에서의 양성 요검사지 판별 결과

Fig. 7. Results of positive urine test on the analysis screen

위 그림은 학습된 MobileNet V3 모델을 tflite 모델로 변환 후 요검사 어플리케이션에 적용후에 양성 시약을 묻힌 요검사지를 판별한 결과이다. 모든 패드에서 양성으로 판별했으며 5가지 배경색에서 20번씩 촬영한 결과는 표 2에 도시하였다.

표 2. 2차 검사항목별 분류 정확도

Table 2. Classification accuracy by second inspection item

OTNBBE_2023_v23n4_41_t0002.png 이미지

Ⅳ. 결론

본 논문에서는 스마트폰 어플리케이션에서 요검사지 인식, 추출 및 색 보정 알고리즘을 통해 촬영한 요검사지 이미지를 활용하여 MobileNet V3 모델에 학습을 시킨 후 어플리케이션에 적용하여 높은 정확도를 가지는 요검사 서비스 어플리케이션을 구현했다. 결과는 다양한 배경에서 촬영한 요검사지를 100%의 정확도로 판별하였다.

현재 학습 및 결과 도출에 사용한 정도관리물질은 음성 및 양성으로만 이루어져 있어, 더욱 다양한 상황에서의 학습 및 결과 판독에 있어 어려움이 있었다. 추후에는 실제 환자들의 소변을 사용하여 더욱 다양한 분류를 진행해야한다. 또한, 요검사지 인식에 현재는 디지털 영상 처리 기술을 이용하여 진행을 하였는데, 추후에는 요검사지 인식에도 CNN 모델을 적용하여 더욱 정확하고, 실행 속도가 빠른 어플리케이션이 개발되어야 한다.

References

  1. S.J Park, "Overview of the Formation, Components, Color, and Abnormal Findings of Urine", Journal of the Korean Society of Pediatric Nephrology, Vol.17, No.2,pp. 29-34, 2013. DOI: http://dx.doi.org/10.3339/jkspn.2013.17.2.29
  2. K.B Kim, "Development of Urine Analyzer based on Mobile and Home Environment", Keimyung University, 2020
  3. K.M Lee, C.H Lin, "Video Stabilization Algorithm of Shaking image using Deep Learning", The Journal of The Institute of Internet Broadcasting and Communication (JIIBC), Vol. 19, No. 1, pp.145-152, 2019 DOI: https://doi.org/10.7236/JIIBC.2019.19.1.145
  4. S.H Baek, H.R Choi, K.S Kim, "Urinalysis Screening Application based on Smartphone", The Journal of The Institute of Internet Broadcasting and Communication (JIIBC), Vol. 21, No. 5, pp. 95-102, 2021 DOI: https://doi.org/10.7236/JIIBC.2021.21.5.95
  5. J.J Cho, J.H Yoo, "Check4Urine: Smartphone based Portable Urine-analysis System", EMEK Journal of Embedded Systems and Application, Vol.10, No.1, pp.13-23, 2015. DOI: http://dx.doi.org/10.14372/IEMEK.2015.10.1.13
  6. Siying Qian, "MobileNetV3 for Image Classification", IEEE, 2021 DOI: http://doi.org/10.1109/ICBAIE52039.2021.9389905
  7. Andrew Howard, "Searching for MobileNetV3", IEEE/CVF International Conference on Computer Vision, pp.1314-1324, 2019
  8. T.Y Kim, Y.K Lee, "A Comprehensive Survey on Blockchain-based Biometrics", Korea Institute of Information Technology Magazine, pp.13-18, 2022.
  9. S.I Han, "Speech-Music Discrimination Using Deep Learning", Journal of the Korea Academia-Industrial cooperation Society, Vol. 22 No. 10, 2021