/AlyAc

2020 작품경진대회@JBNU, Gold Prize

Primary LanguagePython

AlyAc

사용자가 스마트폰으로 알약의 사진을 찍어서 전송하면, 해당 알약의 이름, 주의사항 등을 알려주는 카카오톡 챗봇


통신 방법

image

  1. 사용자가 카카오톡 챗봇으로 알약 사진을 보낸다.
  2. 카카오톡 서버가 해당 사진을 받아서, 정보를 json파일로 변환해서 컴퓨터비전연구실 서버로 보낸다.
  3. 컴퓨터비전연구실 서버에는 이미 train 데이터셋을 이용해서 학습한 모델이 있다. 해당 모델을 이용해서 받은 정보에 있는 영상으로 분류를 진행한다.
  4. 분류 후, 결과를 다시 json파일로 변환해서 카카오톡 서버로 보낸다.
  5. 카카오톡 서버에서 사용자에게 분류 결과를 알려준다. 해당 분류 결과에 알맞은 정보를 제공한다.

작품 시연

https://youtu.be/obC3F3zMJpY


1. 세부 구현

예외 처리

카카오에서 메시지마다 5초의 답장 제한시간을 걸어둠.
5초 안에 결과를 사용자에게 전송하지 않으면, 사용자는 결과를 받지 못함(5초가 지나면 답장을 안함)
→ 어떠한 문제로 (주로 네트워크 문제) 5초 안에 결과를 못받는다면 time out 메시지 출력(사용자가 계속 기다리게 되는 문제 해결)

image


선택지 추가

정확도에 따라 1~3개의 선택지 제공 → 사람이 판단을 할 수 있도록 설계

image


최악의 경우 대비

사용자의 알약을 예축 못하는 경우도 존재 가능 → 직접 찾기 누르면 약학정보원의 알약 검색 페이지로 연결

image


2. 문제점과 해결방안

Problem1. 다수의 사용자

image

다수의 사용자가 동시에 사용 시 충돌. 원인 : 폴더를 공유해서 사용하기 때문

Solution1. Key 할당

image

각각 Key 할당. 자신의 Key에 해당하는 폴더 사용


Problem2. 데이터 확보

image

실제 사진과 인터넷 이미지의 차이

실제 사진은 배경과 그림자, 빛, 각도 등이 다양한 반면, 인터넷 이미지들은 배경이 다양하지 않고, 그림자도 없고, 데이터가 너무 적다는 문제

Solution2. 데이터 구축

image

직접 데이터를 만들어서 사용. 빛의 방향, 그림자, 배경 등이 다른 다양한 이미지 확보
그러나, 데이터를 만들지 않은 알약은 예측할 수 없다는 문제점..

3. 발전 방향

1. 데이터 확보

외부 기관(전북대 병원)과 연계로 추가 데이터 확보
사용자가 전송한 입력 이미지를 사용해서 추가 데이터 확보

2. 물체 분할(Segmentation)

여러개의 알약을 한번에 인식하도록 Segmentation으로 알약 인식

image