[DSBA]예비프로젝트 : 프로젝트 기획
2023년 1월부터 6월까지 디지털스마트부산아카데미(DSBA)에서 3, 4월 동안 진행한 예비프로젝트에 대해 이제야 정리해봅니다.
우리 팀은 AI프로젝트 주제로 헬스케어가 주어졌습니다. 그래서 어떤 서비스를 만들지 팀원들과 찾고 열띤 토론을 했습니다. 저희는 '혼자서 할 수 있는 헬스케어'를 서비스 방향으로 정했습니다.
- 러닝 자세교정 서비스
- 노래로하는 심리치료
- 피부타입별 화장품 성분에 따른 추천 서비스
여러 아이디어 중 이 세가지로 좁혀졌고 각각 적용될 AI모델이 뭔지, 그리고 필요한 데이터를 구할수 있는지, 또 데이터 양은 충분히 많은지 하나씩 조사했습니다.
러닝 자세교정 서비스는 사용자가 뛰는 영상이 AI의 input데이터인데, 문제는 전면, 측면 영상이 필요하지만 혼자서 찍기어렵다는 것이었습니다. 그래서 타인이 영상을 찍어줘야한다면 저희가 추구하는 서비스의 방향과 맞지 않다고 판단했습니다.
노래로하는 심리치료는 얼굴표정과 심리상담 챗봇으로 적절한 노래를 추천해줍니다. 하지만 저희는 특정 감정 상태인 사람들이 어떤 노래를 많이 듣는지에 대한 데이터가 전무했으므로 사용자 협업 필터링 추천 시스템을 적용하기 힘들다고 생각했습니다. 콘텐츠 기반 필터링을 적용하려면 영화 데이터셋처럼 다양한 추천 기준이 필요하지만, 이미 뛰어난 알고리즘이 많은 것을 확인했습니다.
마지막 아이디어는 다른 것들보다 특별한 아이디어는 아니지만 특정 기업에 적용하면 그 의미가 달라지지 않을까 생각해 '올리브영'을 특정해 성분별 화장품 추천 서비스를 기획했습니다.
세부 주제 선정 후 철저히 사용자 입장에서 서비스의 역할과 기능을 의논했습니다.
만약 팀원들간 서비스 기능을 서로 다르게 인지하고 서비스 흐름을 파악하지 못한채로 시작한다면 기껏 만들어놓은 기능을 다시 만들어야하는 불상사가 생길 수 있습니다.
그래서 프로젝트를 본격적으로 진행하기 전에 여러 기능들의 역할이 뭔지, 각 기능들이 어떻게 서로 합쳐지고 그로인해 리턴되는 결과물은 어떤 형태인지 등 서비스의 세부 기능들과 서비스 흐름에대해 팀원 모두 의논하고 합의점을 만들었습니다.
저희 팀원은 총 4명이고, ai모델, 추천시스템, 웹 개발로 총 3개 섹션을 나눴습니다.
아래 그림은 프로젝트 흐름도입니다. 지금보니 잘못 표현한 도식이 있지만, 흐름도를 충실히 따라 구현했습니다.
저는 모델 제작 주담당자가 되었고 웹개발은 다른 팀원을 도와주는 역할을 맡았습니다.
협업도구는 노션을 활용했고 깃은 사용하지 않았습니다. 웹개발이 중점적인 작업이 아니고 팀원 수도 매우 적어 코드 공유는 노션 또는 카톡을 이용했습니다.
우리 서비스는 화장품 포장지에 적힌 성분명을 인식하는 AI모델을 만들어야했습니다. 기존에 비슷한 기능을 하는 모델을 찾아보던 중 OCR을 알게되었고, OCR을 fine-tunning하기로 했습니다.
화장품 포장지 사진은 AI-HUB에서 제공하는 의약품, 화장품 패키징 OCR 데이터를 사용했습니다.
웹개발은 node.js를 사용해보려했으나 저도, 웹개발 주담당 팀원도 처음써보는 기술이라 빠르게 공부를 한 뒤에 만들자고 했습니다. 약 2주간 node.js를 공부했지만 AI서버는 어차피 따로 구성해야하고, 개인적으로 공부가 덜되어 공부를 더하기에는 시간이 촉박하다고 판단해 python 웹프레임워크인 flask를 쓰기로 했습니다.
flask는 비교적 사용법이 쉬운 편이고, 저는 사용법을 대강 알고있어서 주담당 팀원이 빠르게 배우는 것을 도와줬습니다. 그뒤로는 웹 개발을 전적으로 맡기고 저는 이따금씩 팀원이 막히거나 물어보는 것만 같이 해결해주었습니다.
덕분에 제 주담당인 모델 제작에 많이 집중할 수 있었습니다.
다음 편은 모델에 사용할 데이터 전처리과정을 다루겠습니다.