Ⅰ. 서론
최근 약물의 과다 복용 자체가 사회의 커다란 문제로 떠오르고 있으며, 보건복지부에 따르면 처방 행정을 오남용하는 환자도 매년 늘고 있다. 식품의약품안전처(식약처) 의약품통합정보시스템[1]에 따르면 국내에 유통되고 있는 약은 대략 22,000여 가지로 나타난다. 식약처와 여러 제약회사에서 약의 효능·효과와 용법·용량, 주의사항과 같은 기본적인 정보를 제공하고는 있지만, 대부분 사람은 주의 깊게 읽지 않고 약을 복용하여 무분별한 약 복용의 위험성에 노출되고 있다. 또한, 시중에서 판매하는 약을 구매하여 복용한 후 남은 약을 보관할 때에도 용도를 구분해서 보관하지 않는다. 그렇기 때문에 처방전이나 조제약 봉투, 설명서를 잃어버린 경우, 약의 효능을 알기 어렵고 부작용에 대한 정보의 접근성이 낮아 약을 오남용하는 상황이 발생하게 된다. 기존의 알약 정보를 검색하여 정보를 알려 주는 대부분의 서비스 및 어플리케이션 들은 사용자가 알약의 상세정보를 직접 선택하고 입력해야하는 번거로움이 존재한다.
이러한 불편한 상황들을 개선하고자 본 논문에서는 기존에 있던 서비스들의 단점을 보완하고 간편한 사진 촬영만으로 알약의 이름과 효능, 복용 방법 등 알약 인식 및 정보를 제공하며 사용자의 알약 복용을 관리해주는 알약 파인더(알파) 시스템을 개발하였다. 약학정보원에서 제공하는 알약 22,000종의 사진에 대해 제형과 색상을 학습시키는 VGGNet 기반의 딥러닝 모델을 구축하였다. 알약을 가이드에 맞게 촬영하여 이미지만으로 의약품을 검색하고 기본 정보는 물론 상세정보를 제공하는 차별성을 두었다. 규칙적인 알약 복용을 위한 알림 기능과 자주 복용하는 알약에 대한 즐겨찾기 기능, 복용 여부를 기록하는 체크박스 기능을 더하여 정확하고 올바른 알약 복용을 할 수 있도록 하였다.
2장에서는 딥러닝 모델 중의 하나인 VGGNet과 알파와 유사한 기능을 갖는 서비스 및 어플리케이션들을 설명하고 3장에서는 구현시스템의 구성도 및 세부 기능에 대하여 설명한다. 4장에서는 구현시스템의 동작과정을 설명하고 알약인식 결과를 분석하며 마지막으로 5장에서는 결론을 맺는다.
Ⅱ. 관련 연구
1. VGGNet(Visual Geometry Group Network)[2]
VGGNet은 Visual Geometry Group Lab of Oxford University의 Karen Simonyan 와 Andrew Zisserman이 제안한 CNN(Convolutional Neural Network) 모델로 2014년도 ILSVRC(ImageNet Large Scale Visual Recognition Challenge) 대회에서 2등을 차지하였다. VGGNet은 일정한 패턴의 합성곱 레이어와 맥스 풀링 레이어로 이루어진 블록 패턴을 사용하고, 모든 합성곱 레이어에서 3x3 필터를 사용하여 네트워크의 구조를 간소화하였기 때문에 더 깊은 네트워크를 효과적으로 학습할 수 있다. 이처럼 VGGNet은 간결한 구조로도 효과적인 이미지 분류를 달성할 수 있기 때문에 현재에도 이미지 특징을 추출하는 기본 네트워크로 활용된다. 또한 VGGNet은 VGG16, VGG19 두 가지 대표적인 아키텍처로 구성되는데 이러한 모델은 사전 훈련된 가중치를 제공하여 적은 양의 데이터로 효과적인 학습이 가능한 장점을 가지며 추후 새로운 알약이 개발될 경우, 모델을 추가로 학습시킬 필요 없이도 새로운 알약을 예측할 수 있다는 장점을 갖는다. 이는 알약의 모양과 색상 같은 시각적 특징을 다양한 수준에서 감지할 수 있기 때문에 본 논문에서는 VGGNet을 활용한 알약 모양 및 색상 탐지 모델을 구축하였다.
2. 관련 서비스
본 논문에서 구현한 알파와 유사한 기능을 갖는 서비스로 약학정보원의 서비스[3], 먼약[4], KIMS[5], 이게뭐약[6], 드럭인포[7] 등이 있다.
약학정보원 서비스의 주요기능은 크게 의약품 정보검색 기능과 모양으로 약 찾기 등 2가지로 볼 수 있다. 의약품 정보검색 기능은 사용자가 제품명, 성분명, 회사명, 제품코드를 직접 입력하여 의약품을 찾는 기능이고, 모양으로 약 찾기 기능은 사용자가 직접 알약의 글자, 모양, 색상, 마크를 선택하여 의약품을 찾을 수 있는 기능이다. 이러한 기능을 통하여 검색된 알약의 사진, 효능, 용법 및 주의사항 같은 상세 정보들을 제공한다.
(주)약발에서 개발한 먼약 어플리케이션은 크게 즐겨찾기, 약국 지도, 의약품 검색 등 3가지의 주요 기능을 갖는다. 즐겨찾기 기능은 검색한 의약품을 사용자 폴더에 북마크처럼 저장하는 기능이고, 약국 지도 기능은 사용자 주변에 있는 약국을 찾아주는 기능이다. 그리고 의약품 검색 기능은 사용자가 직접 제품명, 성분명을 입력하여 의약품을 찾는 것과, 사용자가 직접 글자, 모양, 색상, 마크를 입력하여 의약품을 찾을 수 있는 방법을 제공한다.
의약정보센터 KIMS에서 개발한 KIMS 어플리케이션은 약품명, 성분명, 제조사를 통한 직접검색 기능이 있으나, 현재는 인증회원이 아니면 서비스 사용이 일부 불가능한 것으로 보인다.
이게뭐약 어플리케이션은 즐겨찾기, 약국 지도, 사진검색 등 3가지의 기능을 갖는다. 즐겨찾기 기능의 경우 사용자 폴더에 알약을 북마크하는 기능이고, 약국 지도는 사용자 주변에 있는 약국을 찾아주는 기능이다. 그리고 사진 검색 기능이 있는데 이는 알약 사진으로 의약품 정보를 찾아주는 기능이다. 이는 단지 알약의 사진 앞면 1장만을 받아서 정보를 제공해주는 기능인데 서비스 이용이 제한적이다.
드럭인포 어플리케이션은 사용자가 의약품명, 제조사, 글자, 모양, 색상, 마크를 직접 입력하여 검색하는 기능을 갖는다. 하지만 지금은 기존에 어플리케이션을 사용했던 회원 혹은 병원관계자 등 제한적으로 사용할 수 있도록 하고 있다.
위에서 언급한 5개의 서비스 및 어플리케이션은 모두 알약을 직접 검색하는 기능은 있지만, 대부분의 어플리케이션들을 알약 사진을 촬영하여 알약을 검색할 수 있는 기능을 제공하지 않는 실정이다. 또한 복용관리를 위하여 사용자가 원하는 약 복용 시간에 맞춰 알림을 주는 기능도 제공하지 않는다. 따라서 본 논문에서는 딥러닝 모델을 이용하여 사진 촬영으로 알약 정보를 제공하며 사용자의 알약 복용을 관리해주는 기능을 갖는 알약 파인더(알파) 시스템을 개발하였다.
Ⅲ. 구현 시스템
1. 시스템 구성도
구현시스템 알파는 클라이언트, 알파 서버, 딥러닝 서버, 데이터베이스 등으로 구성된다.
클라이언트는 안드로이드 및 아이폰 기반의 어플리케이션으로 사용자가 촬영한 알약 사진을 통해 알약 정보를 제공 받고 복용 관리를 지원해주는 기능을 갖는다. 알파 서버는 클라이언트로부터 요청이 오면 딥러닝 서버, 데이터베이스 및 공공포털과 연동을 하여 클라이언트에게 알약 정보, 복용 관리를 위한 정보를 제공한다. 딥러닝 서버는 학습된 정보를 이용하여 클라이언트로부터 수신한 알약 사진의 모양, 색상, 음각을 분석하여 알약의 일련번호를 예측한다. 이때 다중 라벨 분류 방식 및 VGGNet 딥러닝 모델을 통하여 예측하였다. 데이터베이스에는 알약에 대한 기본 정보와 클라이언트 사용자에 대한 정보를 관리하고 있으며 딥러닝 서버로부터 예측된 일련번호와 매칭이 되는 알약의 기본정보를 알파 서버를 통해 클라이언트에게 전달된다. 그림 1은 시스템 구성도를 나타낸다.
그림 1. 시스템 구성도
Fig. 1. System Configuration
2. 딥러닝 모델[8][9][10]
가. Multi-Label Classification
각 알약들을 구분하기 위하여 알약의 제형, 색상, 음각의 3가지 특징을 이용한다. 이 중 알약의 음각은 Google Vision API를 활용하여 글자, 모양 등을 인식하며, 알약의 제형과 색상은 딥러닝 모델을 이용하여 분류되도록 하였다. 알약의 제형과 색상에 따른 라벨 리스트는 그림 2와 같이 53종으로 분류되었으며 모델이 다수의 객체(제형 및 색상)를 탐지할 수 있도록 Multi-Label Classification 방식을 사용했다.
그림 2. 다중 라벨 리스트
Fig. 2. Multi Label List
다중라벨분류방식은 라벨에 대한 각 특성을 독립적으로 처리하고, 각 특성에 대한 확률을 동시에 제공할 수 있기 때문에 알약의 복합적인 특징을 고려하여 알약 예측의 후보군을 좁히고 더 정확한 예측을 할 수 있다는 장점을 갖는다. 만일 한 알약의 특징이 노란색이면서 동시에 원형인 경우라고 가정을 했을 때, 이 알약을 색상이나 제형 하나만으로 분류하면 알약을 분류하는 후보군의 수가 좁혀지기 쉽지 않다. 알약을 구분할 수 있는 특징에는 크기, 글자, 색상, 제형 등 여러 가지 항목이 존재하기 때문에 단일 특성만으로 분류하기 어려울 수 있다는 것이다. 또한 이전에 알약을 분류했던 특성 이외의 새로운 특성을 가진 신약이 개발된다고 가정했을 때, 모델을 업데이트하고 유지 보수하는 과정이 수시로 발생할 수 있다. 다중라벨분류방식은 알약 각각의 특성에 대해 독립적인 라벨링을 수행할 수 있기에 데이터 라벨링의 유연성을 제공하며, 훈련 데이터를 라벨링하는데 편리하다는 장점이 있기 때문에 본 논문에서는 다중라벨분류방식을 채택하였다.
나. 경량화된 VGGNet[2]
VGGNet은 깊고 간결한 구조로 이미지 분류 작업에 효과적으로 사용된다. 그러나 Fully-connected 레이어에서는 파라미터의 수가 많아지기 때문에 모델의 크기가 커지고 메모리 요구사항이 높아지는 단점을 갖는다. 본 논문의 구현시스템인 알파는 컴퓨팅 리소스가 제한적인 모바일 환경에서 실행되므로, 딥러닝 모델을 모바일 환경에 적합하게 만들기 위해 VGGNet의 파라미터 수와 레이어 수를 줄일 필요가 있다. 그래서 VGG-16의 변형인 Smaller VGGNet를 기반으로 하여 딥러닝 모델을 구축하였다. Smaller VGGNet 모델은 VGG-16을 경량화하여 처리 속도가 빠르고 메모리 사용량이 적기 때문에 모바일 환경에서 적합하다.
그림 3. 경량화된 VGGNet
Fig. 3. Smaller VGGNet
3. 기능정의
가. 알약 인식 및 정보 제공
딥러닝 서버에서는 1차적으로 클라이언트로부터 수신한 알약사진을 가지고 Google Vision API를 통해 음각을 분석하여 알약의 후보군을 좁히고, 2차적으로 딥러닝 모델을 통해 알약의 색상과 제형을 찾은 후 이 모든 것이 일치하는 경우, 알약의 색상만 완전히 일치하는 경우, 알약의 모양만 완전히 일치하는 경우로 나누어 우선순위를 두고 최종 알약을 예측하게 된다. 예측된 알약에 대한 간략한 정보와 세부 정보를 클라이언트에 전달한다.
만일 촬영한 알약의 인식이 불가능하거나, 딥러닝 모델이 예측한 알약이 사용자가 찾던 알약이 아닌 경우, 사용자는 직접 검색 기능을 통해 알약을 찾고, 알약에 대한 상세정보를 확인한다.
그림 4. 알약인식 기능
Fig. 4. Function of Pill Recognition
나. 복용관리
알파의 복용관리 기능에는 복용시간 등 알림기능, 즐겨찾기, 체크박스 등 3가지 기능이 있다. 모든 기능은 개인정보 보안을 위해 로그인을 한 상태에서만 사용이 가능하도록 하였다. 우선 알림 기능의 경우 사용자가 원하는 시간을 입력하여 여러 개의 알림을 설정할 수 있으며, 사용자가 입력한 시간에 약 복용 시간 알림창이 화면 상단에 나타난다. 즐겨찾기 기능은 사용자가 어플리케이션의 메인 화면에서 사용할 수 있는데 예를 들어 현재 복약중인 알약의 이름을 검색하면 서버로부터 해당 이름이 포함된 알약들의 리스트를 응답받을 수 있으며, 그 리스트로부터 사용자가 원하는 알약을 골라 메인 화면에 추가할 수 있다. 메인 화면에 추가된 알약들은 데이터베이스에 사용자 정보가 담긴 테이블 및 필드와 알약기본정보가 담긴 테이블 및 필드를 참조하여 데이터베이스에 저장되기 때문에, 어플을 삭제하거나 재로그인을 해도 즐겨찾기 정보가 그대로 남아있다. 그리고 이 즐겨찾기 기능을 통해 체크박스 기능을 이용할 수 있다. 메인 화면에 즐겨찾기 된 알약들을 각각 선택하면 아침, 점심, 저녁이라는 3가지 항목에 대한 복약 기록을 확인할 수 있는 체크박스가 나온다. 사용자는 각 항목들을 직접 체크하여 복약 기록을 통해 약을 먹었는지 안 먹었는지 확인하여 약물 오남용을 방지할 수 있다.
Ⅳ. 동작 과정 및 분석
1. 동작 과정
사용자가 클라이언트 어플리케이션을 실행하여 로그인하면 사용자는 알약검색, 알림기능, 체크박스, 즐겨찾기 등의 기능을 이용할 수 있다. 알파의 메인 기능인 사진 검색 기능의 경우, 사용자가 알약 사진을 촬영하여 서버로 전송을 하면 서버는 전송받은 사진으로부터 모양, 색상, 음각을 분석하여 알약의 일련번호를 예측한다. 예측된 일련번호와 데이터베이스에 저장되어 있는 알약의 일련번호를 매칭하여 해당 알약에 대한 상세정보(알약의 효능, 사용법, 주의사항, 상호작용, 부작용, 보관법)를 공공데이터 포탈[11]에서 크롤링하여 클라이언트에게 전송한다.
그림 5는 알파의 메인 화면으로 알파의 메인 기능인 사진 검색 기능을 할 수 있으며, 사진 촬영을 위한 가이드라인이 안내되어 있다. 촬영한 알약의 예측이 완료되면, 그림 6처럼 알약의 상세정보가 담긴 화면이 최종적으로 사용자에게 보내진다. 만약 촬영한 알약의 인식이 불가능하거나, 딥러닝 모델이 예측한 알약이 사용자가 찾던 알약이 아닌 경우, 사용자는 그림 7처럼 직접 검색기능을 통해 직접 알약을 찾고, 알약에 대한 상세정보를 확인할 수도 있다. 이처럼 사용자는 각 검색 기능으로 알약의 이름, 효능, 부작용 등의 상세정보를 확인하여 약의 오남용을 방지할 수 있다.
그림 5. 알파 메인 화면
Fig. 5. Alpha Main Screen
그림 6. 알약 사진 검색 화면
Fig. 6. Pill Photo Search Screen
그림 7. 알약 직접 검색 화면
Fig. 7. Pill Direct Search Screen
그림 8. 알림화면
Fig. 8. Notification Screen
그림 9. 즐겨찾기 화면
Fig. 9. Bookmark Screen
그림 10. 체크박스 화면
Fig. 10. Checkbox Screen
2. 알약 인식 분석
Google Vision API와 구축한 딥러닝 모델을 통합하여 1차적으로 Google Vision API를 통해 알약의 후보군을 좁히고, 2차적으로 딥러닝 모델을 통해 알약의 색상과 제형이 모두 일치하는 경우, 알약의 색상만 완전히 일치하는 경우, 알약의 모양만 완전히 일치하는 경우를 우선순위로 두고 최종 알약을 예측한 결과를 확인하는 방식으로 테스트를 진행하였다.
약학정보원에서 제공된 알약 사진 22,000장을 사용하여 배경을 투명화시킨 후, Epochs 값을 75, Batch size 값을 32로 하여 딥러닝 모델 학습을 진행하였다. 또한 Scikit-learn 라이브러리를 이용하여 모델의 성능을 평가하였는데 그 결과, 그림 11과 같이 Accuracy는 0.4677, Precision은 0.94, Recall은 0.92, F1-score는 0.93으로 계산되었다.
그림 11. Loss, Accuracy 값
Fig. 11. Value of Loss and Accuracy
테스트에는 사진 촬영한 에페날정 등 알약 20종의 실제 촬영 사진이 사용되었으며, 20종 중 18종이 판별에 성공하였고, 2종이 판별에 실패하였다. 판별에 실패한 알약은 알약 중앙에 OCR 인식이 되지 않는 십자 모양의 마크가 있는 경우가 있었으며 또한 알약의 제형 혹은 색상을 잘못 예측한 경우도 있었다. 표 1은 20종의 알약을 테스트한 결과를 보여주고 있다.
표 1. 약 20종 테스트 결과
Table 1. Test Result for 20 Pills
또한, 추가적으로 신약에 대한 판별 가능 여부를 확인하기 위해 모델 학습에 사용되지 않은 알약 20종을 선정하여 테스트를 진행하였다. 그 결과 표 2와 같이 20종 중 17종의 판별이 성공했고, 3종의 판별은 실패하였다. 판별에 실패한 알약 역시 표 1의 이유와 동일하게 OCR 인식이 되지 않는 마크가 있거나 모델이 알약의 제형 혹은 색상을 잘못 예측한 경우였다.
표 2. 학습시키지 않은 알약 20종 테스트 결과
Table 2. Test Result for 20 untrained pills
Ⅴ. 결론
본 논문에서는 smaller VGGNet 딥러닝 모델을 이용하여 사진 촬영으로 알약 정보를 제공하며 사용자의 알약 복용을 관리해주는 기능을 갖는 알약 파인더(알파) 시스템을 개발하였다. 현재 운영되고 있는 대부분의 알약 검색 서비스 및 어플리케이션 들은 알약을 직접 촬영하여 이미지로 검색하는 기능을 제공하고 있지 않다. 본 논문에서 개발한 알약 파인더(알파) 시스템은 간단한 촬영만으로 알약의 기본 정보와 상세정보, 상호작용과 같은 주의사항까지 한 번에 제공해준다. 기존의 서비스 및 어플리케이션에서는 알약의 색상과 제형 등을 일일이 선택하고 입력해야 하는 번거로움이 있는데 이를 해결함으로써 사용자들이 더욱 편리하게 사용할 수 있도록 기능을 구현하였다. 또한 알약 이미지 검색 외에도 기존 어플리케이션에는 없는 알약 복용 알람 기능, 알약 즐겨찾기 기능, 복용 여부를 기록하는 체크박스 등의 복용관리 기능을 추가하여 사용자들이 올바르게 알약을 복용할 수 있도록 하였다.
그러나 본 논문에서 구현한 딥러닝 모델은 데이터 셋 수에 비해 알약의 실제 사진을 통한 테스트가 많이 이루어지지 않았기 때문에 모델의 실제 정확도의 절대적인 수치를 명확하게 분석하기가 어렵다. 따라서 구현 모델의 정확도를 높이기 위해 더 많은 알약의 실물 사진을 수집하고 다양한 환경에서 사진 촬영을 시도하는 것이 무엇보다 중요하다. 또한 다중라벨 분류에 따른 데이터 셋의 불균형이 있을 수 있는데 향후 이 부분에 대한 분석을 통하여 보완 모델에 대한 연구를 진행하고자 한다.
References
- Ministry of Food and Drug Safety Integrated Drug Information System, "https://nedrug.mfds.go.kr/index"
- Karen Simonyan, Andrew Zisserman, "Very Deep Convolutional Networks for Large-Scale Image Recognition", 2014
- Pharmaceutical Information Institution, "https://www.health.kr/searchDrug/search_detail.asp"
- Meon Yak, "https://munyak.co.kr/"
- KIMS,"http://www.kimsonline.co.kr/DrugCenter/identa/search"
- whatispill, "https://apkgk.com/com.whatispill"
- drubinfo, "https://www.druginfo.co.kr/identy/identy_char.aspx"
- wandb.ai,"https://wandb.ai/ayush-thakur/dl-question-bank/reports/A-Guide-to-Multi-Label-Classification-on-Keras-VmlldzoyMDgyMDU"
- public data portal, "https://www.data.go.kr/"
- Mincheol Yang, Kyungnam Moon, Yong-Guk Kim, "A Comparison of Image Classification System for Building Waste Data based on Deep Learning", The Journal of The Institute of Internet, Broadcasting and Communication (IIBC) Vol. 23, No. 3, pp.199-206, Jun. 30, 2023. DOI:https://doi.org/10.7236/JIIBC.2023.23.3.199
- Donggu Lee, Young-Ghyu Sun, Soo-Hyun Kim, Issac Sim, Kye-San Lee, Myoung-Nam Song, Jin-Young Kim, "CNN-based Image Rotation Correction Algorithm to Improve Image Recognition Rate", The Journal of The Institute of Internet, Broadcasting and Communication (IIBC) Vol. 20, No. 1, pp.225-229, Feb. 29, 2020. DOI:https://doi.org/10.7236/JIIBC.2020.20.1.225
- JeongHo Kim, YoungEon Yoon, Joo-Eun Kim, Ji-Hoon Bae, and JongHyuk Lee, "Deep Learning-Based Drug Property Prediction Using Graph Neural Networks", Proceedings of Korean Information technology conference, pp258-262, 2023
- Shin Hyunho, Lee Jaehyung, Choi Yeonrok, Ider Orgil, Ohyunbileg Dorjsuren, Ryu Duksan, and Yoo Cheol-Jung, "Development of a Pill Search Application to Prevent Misuse, Mixed use, and Abuse of Pill", Proceedings of Korean Information technology conference, 817-820, 2023