목소리로 알려 주는 스마트 복약 관리 서비스 'Pillgnal' 💊
구성원
FE 김재성 / 윤혜민 / 조성국
BE 김재승 / 엄재웅
기술 스택
FE Vue.js, Vuetify, Bootstrap
BE SpringBoot, JPA, Docker, Gradle, MariaDB, nginx
ETC Jira, Mattermost, Discord, GitLab
설치
build.gradle -> dependencies
implementation group: 'com.google.cloud', name: 'google-cloud-vision', version: '1.101.1'
implementation 'org.springframework.cloud:spring-cloud-gcp-starter-storage'
Pillgnal?
Pill (알약) + Signal(신호)를 합친 말로, 약을 먹어야할 시간과 복약정보를 알려주는 웹 서비스입니다.
기획배경
- 복용 시간을 까먹었을 때
- 잘못된 약을 섭취했을 때
- 부모님이 약을 잘 드시는지 궁금할 때
🤔 불편을 개선할 수 있는 서비스가 필요하지 않을까?
Logo & Character
필그널 main 로고
알약 + 신호를 잘 나타내는 메인 로고입니다.
필그널 캐릭터 '필구'
필구가 복약 핵심 정보를 알려줍니다.
기능설명
1. 처방전 스캐닝
- 약봉투, 처방전을 사진으로 찍으면 자동으로 복약정보를 저장해줍니다.
2. 복약 알림
- 인식한 내용을 바탕으로 날짜, 시간에 따라 약 먹을 시간에 알림을 줍니다.
3. 처방전 리스트
- 처방 받은 목록을 보여줍니다.
- 처방 받은 약에 대한 정보도 알 수 있습니다.
4. 가족 연결
- 가족과 연결하면 구성원들의 복약 상태를 확인할 수 있습니다.
5. 약 정보 검색
- 궁금한 약을 사진을 찍기만 하면, 약학 정보원 API를 사용해 검색해줍니다.
와이어프레임
진행 상황
- 기능 정의
- 프로토타입 완성
- 알약 구별 인공지능 기능 완성
- 프론트엔드 UI 개발 진행
- 백엔드 DB설계 및 API개발 진행
기능구현
OCR로 약 구분 표시(약에 적힌 글씨 ) 추출 가능
📁DataSet
- shape: 23986 x 29
- train_set : valid_set : test_set = 8 : 1 : 1
모양별로 11개의 데이터 분류
"0": "circle", # "0": "원형"
"1": "hexagon", # "1": "육각형"
"2": "octagon", # "2": "팔각형"
"3": "oval", # "3": "타원형"
"4": "pentagon", # "4": "오각형"
"5": "rectangle", # "5": "직사각형"
"6": "rhombus", # "6": "마름모형"
"7": "semicircular", # "7": "반원형"
"8": "square", # "8": "정사각형"
"9": "triangle" # "9": "삼각형“
“10”: “other” # “10”: “기타”
Keras의 ImageDataGenerator클래스 사용
분류별로 약 1000개씩 맞춤
💻사용 모델: CNN
- “기타“ 이미지는 정말 생긴게 제각각이다.
- 특정 "모양"으로 분류하기 어려워 분류기 성능을 위해 데이터 제거
📤학습 결과
- 정확도: 98%+
앞으로의 계획
- 약의 모양 중 "기타(Other)" 처리 방향
- 처방전 데이터 인식
아쉬운점
- 현재 모델로는 약의 모양 중 "기타(Other)" 파트에 대한 구별이 어려움