개발자로 후회없는 삶 살기
SW bootcamp PART.팀 project 2주차(모델 조사, 선정) 본문
서론
팀프로젝트 2주차 내용입니다.
본론
7일차(2.5)
랜드마크를 이용하여 표정인식을 하기로 결정한 이후 다양한 표정 인식 알고리즘을 찾아보고 있습니다. 그 중 2가지 방법으로 결정하였습니다.
1. 랜드마크 간의 거리를 이용한 방법(참고 1)
이것은 1주 차에 정한 방법입니다.
2. 랜드마크를 이어서 얼굴에서 특성을 추출하는 방법(참고 2)
표정을 인식하는 방법으로 가장 중요하게 관찰해야 할 부분이 눈과 입이라고 생각하였고 그전에 얼굴 전체에서 표정의 특성을 추출하여 이미지에 표시한 후 분류모델을 돌려보는 방법을 생각했습니다.
-> 이미지 크기가 작은 경우 라인이 얼굴을 너무 가린다고 생각되어 이미지 크기를 키우고 진행해 보았습니다.
3. 표정 인식에서 큰 영향을 미치는 눈과 입의 각도를 보는 방법
운동 자세의 정확성을 따질 때 사용하는 각도로 자세 평가 알고리즘을 사용하여 표정 변화를 인식해보고자 합니다. 조사 중에 있습니다.
8일차(2.6)
- 회의 내용
1. 앱과 웹 UI를 설계한 것을 발표하셨고 역시 우리의 서비스가 실시간을 요구하니 그에 따른 부담을 프론트에 넣을지, 서버에 줄 지를 고민하였습니다.
2. 데일리 미팅을 오후 3시로 하였는데 오전, 오후 보고를 위해서 오전에 부캠 시작과 함께 오전 보고를 진행하고 점심 먹고 난 후 오후 보고를 하며 부캠이 끝나는 오후 4시 반에 다 함께 pr을 하며 끝내기로 하였습니다.
3. 매일 회의록을 작성하기로 했습니다. 이것은 나중에 돌아봤을 때 매우 귀중한 기록이 될 것입니다.
- 모델 학습 결과
7일차에 분류 모델과 함께 3가지 랜드마크를 이용한 모델을 고려하고 있다고 말했습니다. 그 중 랜드마크를 잇고 학습을 돌리는 2번의 경우 학습이 저조하여 배제하기로 했습니다. 오늘은 1번과 2번 알고리즘을 만들고 모델 학습까지 할 예정입니다.
+ 추가로 랜드마크를 이용한 오피셜 모델도 하나 조사하여 최종적으로는 분류모델, (각도, 거리) 모델, 랜드마크 오피셜 모델을 사용할 것입니다.
1) 분류 모델 : 랜드마크 + cnn(참고 4)를 사용한 모델로 기존 cnn 모델보다 정확도가 5%나 상승하였다고 합니다.
2) 각도
3) 거리
이렇게 3가지를 적절히 가중치를 매겨서 최종 감정 분석에 사용할 예정입니다.
※ 계획 : 제 목표는 빠르게 AI 파트를 끝내고 백엔드 개발에 참여하는 것입니다. 지금 진행하는 심화 캡스톤보다도 이번 프로젝트가 더욱 체계적이고 심도 있는 것 같으니 제대로 배우고 싶습니다. 인턴 과제를 빨리 끝내고 부트캠프 프로젝트에 전념하겠습니다!
9일차(2.7)
- 공지사항
한컴 아카데미 측에서 노트북 하나를 서버 자원으로 이용할 수 있도록 제공해 준다고 합니다. 이 안에는 AWS+GCP(S3 + EC2+ DNS+ RDS) + Google Drive + Google Colab + Domain Hosting이 통합적으로 가능하도록 셋팅이 되어있고 DB 관리자, 서버 개발자, 딥러닝 개발자가 원격으로 접속해서 사용할 예정입니다.
> 저는 이번에 처음으로 개인 GPU가 달린 컴퓨터가 생겼습니다! 이번 기회에 로컬에서 학습을 돌리는 방법을 열심히 알아보겠습니다.
- PR 보고
오늘도 모두 모여서 각자 진행 상황을 보고하며 PR을 하였습니다. 정말로 이렇게 체계적인 프로젝트는 처음입니다!
1) 브랜치에 대한 얘기가 나왔는데 브랜치는 더 이상 버그가 일어날 일이 없다고 생각될 때까지 커밋과 푸시만 하고 버그 수정도 다 끝나면 PR을 하고 브랜치 삭제까지 해야 한다고 합니다.
2) 로고 디자인 : 앱 로고에 들어갈 앱 이름, 디자인, 색깔에 대한 건의를 받았습니다. 프론트 분이 담당하였으며 미대 지인분께 도움을 받을 예정이라고 합니다. 이런 것도 다 프론트 분들이 하는 것을 보면 확실히 개발의 파트가 나뉘어 있는 것이 느껴지고 각자 맡은 바를 진행하며 협업을 하는 시스템이란 것이 어떻게 구성되는지 알 수 있는 최고의 팀 프로젝트라고 생각합니다.
-> 느낀점
선배님들 회의를 들어보면 정말 너무 잘하시는 게 벽이 느껴집니다. 개발 공부를 어떻게 했는지 여쭤봐야겠습니다. 모두 개발자 그 자체들이십니다! 선배님들과 직접 개발하는 과정을 지켜보면서 눈으로 본 이 경험을 제가 개발을 할 때 우려내야겠습니다.
- 모델 학습 상황
1. 개발자 분들께 모델 결과물 보여드리기
개발을 하는 입장에서는 모델 결과를 토대로 시나리오를 잡아야 하기 때문에 일단 간단하지만 모델을 하나 만들어서 전달해 드렸습니다. 개발자와 ML 엔지니어가 협업을 할 때 이런 소통이 필요할 것입니다. 저는 Aiaas가 꿈이니 이런 쪽으로는 혼자서도 유연하게 할 수 있도록 해야 합니다.
2. 랜드마크 + cnn 모델 구체화 : 어제 봤던 모델을 쫌 더 자세하게 보고 predict까지 해보았습니다. 다행히 model load 부분부터 predict까지 있어서 서버에 올려 사용할 수 있겠습니다.
-> 추가로 할 일
1) 각도 알고리즘 조사 및 개발
2) 한국 데이터 전처리
3) GPU 셋팅
10일차(2.8)
- AI 부분 강사님 피드백
질문 1 : 분류 모델을 사용하는 것이 좋을까요?/ 답변 : 분류 모델은 일단 일반화되게 학습을 시키고 나중에 사용할 때 few shot 러닝으로 맞춤화하는 게 좋을 것이다.
질문 2 : 각도를 활용한 AI를 제가 임의로 학습시키는 것이 좋은 시도일까요?/ 답변 : 각도나 거리는 sql을 써라, 인공지능을 안 써도 되는 문제는 안 쓰는 것이 좋다.
- 분류모델 확정
제가 학습시킨 모델을 사용하는 것은 비교적 정확도가 낮아 official 모델을 더 찾아봤습니다. 그러다 랜드마크를 활용한 인공지능 모델(참고 5)을 찾게 되어 열심히 파고들어 inference에 성공하였습니다. 이제 인공지능 모델은 일반 분류모델, official 모델로 결정하였고 각도 알고리즘을 계산하는 것으로 인공지능 파트를 최종 정립하였습니다.
> 이제 정말 안정화되었습니다. 찾은 모델을 개발에 적재하기 위한 방법을 연구하고 official 모델 논문을 열심히 읽어서 개발에 참여할 수 있도록 해야겠습니다. 그와 더불어 각도 계산 모델도 조사하여 이번주 금요일 주간 미팅에서 선배님들께 말씀드릴 겁니다.
11일차(2.9)
- PR 회의
궁금했던 것들을 해결하였습니다.
1. 모델 여러 개 올리면 트래픽이 심할까요? -> 답변 : 트래픽과 성능은 trade off이다. 개발 입장에서는 한 개만 쓰는 게 이상적이긴 한데 아직 모르니 일단 한 개 올려보고 결과 보고 생각하자
2. 각도 sql 모델을 위해 표정을 지정해서 저장하는 거 가능한가요? -> 답변 : 물론 가능하다. 성능이 확실히 올라간다면 그 방법을 쓰겠다. 가능성을 보여달라
- 모델 조사 마무리
이제 저는 모델 조사와 inference를 어느 정도 맞혔습니다. 이제 개발 80 ML 20으로 임하겠습니다!
12일차(2.10)
- SKT 기업 멘토링
매주 금요일마다 하는 기업 멘토링 내용을 정리합니다.
1) 얼굴을 디텍션 하는 모델이 중간에 필요할까요? : 확실히 얼굴만으로 학습을 하는 것이 더 좋은 성능을 보일 것이다. 라이트 한 인식 모델이 많으니 꼭 사용하는 방향이 좋을 것 같다. 앱을 가까우 두라는 메뉴얼을 두는 것도 방법이다.
2) few shot 러닝을 하는 것에 대해 어떻게 생각하시나요? : 모델 자체에서 중점적으로 하려고 하는 것에 집중해라 표정인식이라면 표정인식 자체는 그냥 따지지 말고 잘 되어야 한다. 일반화에 집중을 둬서 완벽히 학습시켜라 natural과 fear가 구분이 잘 안 된다고 했는데 정확도를 높이는 학습의 방법에는 부족한 데이터(fear)의 개수를 늘리는 게 제일 확실한 방법이다. 또한 카메라의 경우 각도나 그림자에 영향을 많이 받을 테니 데이터 증강도 시도하라
3) SKT에서 하시는 일이 진단이라고 하셨는데 진단을 하면 그 신뢰성은 어떻게 처리하시나요? : AI가 100퍼센트 성능을 낼 수는 없다. 하지만 진단은 암과 암이 아님이 명확하다. 감정은 그에 비해 주관적이다.
4) 행복하다 하나만 뽑는 게 좋을까요? : 아니면 행복 70 감동 30이니 항복하고 감동받음을 구하는 게 좋을까요? : 제일 높은 거 하나로 하는게 좋을 것 같다. 행복과 화남이 같이 나오면 어떻게 할 것이냐!! 두 개의 감정을 가지고 하나의 노래를 추천하려고 하면 문제가 있을 것이다.
-> 피드백에 따른 AI 파트 결론
1) 라이트 한 얼굴 인식 모델을 사용하고 다양한 환경에서 어두움, 각도등을 고려하여 데이터에 많은 신경을 써서 학습하자
2) few shot 러닝을 하지 말고 일반화에 집중하자
3) 모델 학습에서 가장 중요한 건 데이터이다. 편향되지 않은 데이터 개수와 증강에 신경 써라
참고
'[대외활동] > [네트워크형 캠퍼스 아카데미]' 카테고리의 다른 글
SW bootcamp PART.서버 원격 접속 + 로컬 GPU 연결 (0) | 2023.02.11 |
---|---|
SW bootcamp PART.팀 Project 중간 점검 (0) | 2023.02.09 |
SW bootcamp PART.팀 Project 1주차(팀 빌딩, 주제 브레인스토밍) (0) | 2023.01.31 |
SW bootcamp PART.팀 Project 1일차(프로젝트 시작) (0) | 2023.01.30 |
SW bootcamp PART.도커 AI 활용 (0) | 2023.01.26 |