개발 당시에 정말 Big Issue가 크게 2가지가 있었는데, 모두 내 개발 파트와 관련된 부분이었다.
1. 겉면 인식 관련 문제
우리팀에는 ML개발자가 없고 모두 FE 개발자였기 때문에 프로젝트에 사용될 딥러닝 모델을 구현할 수 없었다.
지식도 없었을 뿐더러 약 3개월간의 프로젝트에서 ML/DL을 공부하고 모델을 개발할 상황이 아니었다.
그래서 OCR API중 가장 인식이 잘 되는 Google Vision API를 이용하기로 했다.
> 여기서 또 파생되는 Issue가 있었는데, 낱알 인식은 매우 잘 되는 반면 겉면 (포장지) 인식에서는 너무 많은 글자들이 한번에 인식되어 약의 이름을 뽑아내는데에 무리가 있었다. (이 역시 이제 와서 생각해보면 딥러닝을 이용하면 해결할 수 있을 것 같다.)
위 사진과 같이 약 이름만 뽑아낼 수 있는 함수나, 규칙이 존재하지 않았기에 해결책을 떠올리기가 매우 어려웠다.
유명한 약에 대해서만 좀 규칙을 만들어보면 어떻겠냐라는 의견도 있었다. 물론 그랬으면 정말 편하고 좋았겠지만..
우리의 주 고객층이 저시력자인만큼 잘못된 정보를 전달하면 절대 안된다는 경각심과 정확한 정보를 전달해야한다는 책임감을 가지고 개발을 진행해야한다고 생각했기에 '약사와 상담하세요'라는 예외 메시지를 남기는 것이 나을 것 같다고 교수님과 이야기했다.
2. 이미지파일의 파일명
이 부분에서 매우 골머리를 앓았다. 낱알 식별 데이터에는 이미지 데이터가 따로 없었고 이미지 데이터를 다운받을 수 있는 링크만 있었다. 문제는 이 링크를 따라가 파일을 다운로드 받으면 약품 이미지 파일명이 규칙없이 아무렇게 저장된다는 것.
위와 같이 정말 듣도보도못한 방식으로 파일명이 알아서 정해져서 저장된다.
이렇게 되면 내가 띄워야하는 화면에 약 사진을 띄울 수 없는 상황이 생긴다.
교수님 : 허허 이건 포기해야할 수도 있을 것 같은데?
조교님과도 늦은시간까지 남아서 궁리해보았지만 딱히 특별하게 방법을 발견하지 못했고 거의 반 포기 상태로 있었다.
다행히 거의 포기 직전에 괜찮은 해결책을 찾았다.
나는 Mac을 이용해 개발을 했는데 , 신기하게도 Window에서는 보이지 않는 사진 정보를 Mac에서 볼 수 있었다.
사진정보보기에서 추가정보를 누르면, 저렇게 내가 이미지 파일을 어디서 다운받았는지 출처를 확인할 수 있는 또 다른 링크가 적혀져있다. (이게 왜 window에서는 안보였는지 잘 모르겠다. )
그리고 저 링크의 마지막 숫자들은 약품 설명 데이터인 'e약은요' 데이터에서의 itemSeq 라는 항목과 완벽하게 일치했다.
python의 metadata 모듈을 이용해서 랜덤으로 생성된 파일명을 모두 itemSeq와 동일하게 변경할 수 있었고, 총 2개의 데이터 (낱알 식별 데이터와 e약은요) 를 합쳐 새로운 Data로 재구성했다.
재구성 관련 python code들은 나중에 시간이 나면 정리해서 다시 업로드 하겠다!
모든 문제점을 완벽하게 해결한 것은 아니였지만, 처음으로 ML을 공부해봐야겠다는 생각을 가지기도 했고 두번째 문제를 스스로 해결함에 있어 매우 뿌듯함을 느꼈다.
코드는 아래에서 볼 수 있다.
GitHub - IEUM/IEUM
Contribute to IEUM/IEUM development by creating an account on GitHub.
github.com
'my projects' 카테고리의 다른 글
[MyScore] 2020 Kotlin을 이용한 나만의 악보 앱 만들기 (0) | 2022.08.02 |
---|---|
2020 - 2 웹 콘텐츠 개발 term project (0) | 2022.06.09 |