본문 바로가기

DEEPLEARNING/SupervisedLearning

[Recognition] FoodRecognitionTask 시작(1)

Introduction


연구실에서 진행하는 프로젝트 이외에 서브프로젝트로 무언가를 좀 해보고 싶었는데 친구가 일거리를 하나 뿌려주고 가서 겸사겸사 사이드 프로젝트로 Food Recognition을 진행하려 한다. 필자는 연구실에 들어와서 Image processing -> signal processing -> speech recognition -> emotion recognition -> speaker verification -> self-supervised learning 순서대로 타고 흘러갔다. 뭐가이리 많이 바뀌었냐 할 수 있겠지만 Image processing은 딥러닝을 처음 시작하는 사람이라면 누구든지 접해볼 수 있는 task중에 하나이다. 그러면서 어떠한 계기(?)에 의해서 speech 관련 task를 접하게 되었고, 많은 기술들을 vision 측에서 끌어다 쓰기 시작하였다. 그러면서 speech task와 친해지게 되었고 recognition, verification을 진행하면서 실력을 좀 갈게 되었고 많은 subtask들의 존재를 알아버렸다. 그러면서 self-supervised learning에 확 꽂히게 되었고 필자는 졸업이 가까워지고 있었다 (...). 

어쨋든 Food Recognition 모델을 만들어볼 계획이고, 이번에 pytorch lightning을 써볼까 말까 고민을 좀 했었는데, 여기에다가는 적용하지 않을 생각이다. 아직 필자는 처음부터 쭉 내 맛대로 코드짜는게 편하기 때문이다. 

 

 

Going To Start


필자가 생각하기에 딥러닝 모델을 만들기 전에는 그 task에 대한 데이터의 이해가 중요하다고 생각한다. 데이터 이해가 되어있지 않으면 기본 성능은 나오겠지만 정확도를 올리기 쉽지 않다고 생각한다. 그래서 ai hub에 들어가서 sample dataset을 다운받아서 확인해보았다.

재밌는 것들이 많았다(ㅋㅋㅋ). 배달온 음식을 찍은 사진도 있었고 온라인에 돌아다니는 음식 사진, 팜플렛 등이 데이터로 들어있었다.

<plotting sample dataset>

데이터는 이쯤 보고 모델의 경우는 일단 Resnet, VGG, Efficientnet 등과 같은 대표적인 Image recognition model을 사용해서 학습을 진행할 예정이다. 대표적인 모델로 학습 을 진행하고 테스트해보면서 어느정도의 baseline accuracy가 나오는지 확인해볼 예정이다. 이후에 레이어를 추가하거나 약간 변형하는 방식으로 진행할 예정이다.  시간이된다면 self-supervised learning을 한번 적용해보면 어떨까 싶다. 그리고 학습 중간에 데이터가 추가될 수 있으니 label이 추가되었을때 어떻게 수정할지도 고민을 해볼 예정이다.

 

 

GOAL


Image Recognition Task는 굉장히 오랜만에 접해본다. 벌써부터 자잘한 오류들이 막 튀어나오고 있는데, 지금까지 해온 Task가 대부분 vision task에서 차용한 기술들이기 때문에 이것저것 적용해볼 예정이다. 내가 생각할때는 하나의 Task에 정말 뛰어나다고 해도 요즘에는 다른 task에 대한 기본적인 지식은 있어야 한다고 생각한다. 나의 시각을 넓히는 겸, 사이드 프로젝트로 경험을 쌓을 겸, 성능도 좀 높여볼 겸 화이팅 해보자!