3, 4일차
3, 4일차에는 1, 2일차에 수집하고 annotation한 데이터를 기반으로 계속해서 모델을 학습시켰다.
1. 웹캠으로 얼굴만 1500장 수집하고, 회전 및 노이즈로 증강(X3)한 데이터 셋
- 총 데이터셋 수는 약 5천장?
- epoch를 10을 주고 학습
(문제)
- 웹캠을 통해 모델 성능을 확인해본 결과 성능이 별로 뛰어나지 않음
- 내 얼굴을 카메라에 가까이 들이밀어야만 나로 인식
=> WHY?
1) 웹캠으로 내 얼굴을 찍었을 때, 내 얼굴만 확대해서 찍기 때문에 주변 배경이 안나옴.
즉, 확대된 내 얼굴만 학습하고 뒷 배경에 대한 학습이 부족함.
2) 다른 사람 얼굴 데이터는 약 7천장이 존재하고, 한 장에 여러명의 얼굴이 존재하는 사진들도 있음.
내 얼굴에 대한 클래스 데이터는 약 5천장 존재하지만, 다른 얼굴에 대한 클래스 데이터는 약 2만장 존재
즉, 학습 시 클래스 개수에 대한 불균형이 발생. 상대적으로 내 얼굴에 대한 학습이 너무 부족함.
2. 웸캠 얼굴 1500장 + 내 셀카 200장 + 단체사진 500장을 수집하고, 회전 및 노이즈로 증강(X3)한 데이터 셋
- 약 7천장
- epoch 50을 주고 학습
- 비교적 잘 인식함
(문제)
- 여러 각도에서는 인식하지 못함
- 다른 사람 얼굴임에도 초근접해지면 내 얼굴이라고 인식함
- 내가 일정 거리에서 멀어지면 나라고 인식하지 못함
=> WHY?
1) 확대된 내 얼굴만 학습하고 뒷 배경에 대한 학습이 부족함.
2) 기본적으로 이미지 양이 너무 적음
3) 클래스 불균형이 여전히 존재
4) 내 얼굴만 찍힌 사진이 압도적으로 많기 때문에 가까이 있는경우 내 얼굴로 인식
3. 학습 파라미터
- 학습시간과 코랩의 컴퓨팅단위 부족으로 epoch를 50만 주었지만 기본적으로 100번은 주어야함
- batch size는 16으로 주었음. -> 이미지 여러개를 무작위로 묶어서 학습하기 때문에 학습시간을 줄일 수 있음
그 외 조정할 수 있는 것들
- optimizer : 기본적으로 Adam을 사용
- learning rate : 학습속도를 조정
- momentum : 이전 gradient의 영향을 반영하여 학습의 가속도를 조절.
* 학습이 흔들리거나(local minima 또는 saddle point에서) 멈추지 않도록 보조하는 역할
- weight decay : 모델의 가중치 값에 정규화를 적용하여 과적합(overfitting)을 방지
* 가중치가 지나치게 커지는 것을 억제하여 일반화 성능을 높이는 역할
4. 얼굴인식 알고리즘
현재는 yolo모델을 이용해서 얼굴 이미지를 학습시킨 것이기 때문에 특정 얼굴을 분류하는 것애 당연히 어려움이 있음.
얼굴인식 알고리즘들 같은 경우에는 눈코입의 좌표를 계산하여 유사도를 측정하여 얼굴을 판별하기 때문에 더 정확한 모델 학습이 가능할 것임.
현재 많은 얼굴인식 모델들이 있고, 이 라이브러리들을 가져와서 다양하게 활용이 가능.
EX) Facenet, Dlid, Openface등 ...
![](https://t1.daumcdn.net/keditor/emoticon/friends1/large/014.gif)
개인적으로 이전 미프때는 그냥 강사님이 제공해주시는 코드에 따라가는 느낌이 강했는데, 이번 미프는 데이터 수집의 비중이 커서 그런지는 몰라도 자율성이 좀 컸던것 같다. 그래서 그런지 뭔가 더 재미있는 느낌이기도 했다.
역시 직접 데이터 수집부터 학습까지 진행하니까 이해도 더 잘되고 재밌었던 것 같다.
'에이블 스쿨' 카테고리의 다른 글
[6, 7차 미니 프로젝트] (1) | 2024.12.31 |
---|---|
[14~15주차] IT 인프라, 클라우드 (0) | 2024.12.31 |
[10주차] 딥러닝(8)_roboflow 모델링 실습 (3) | 2024.11.11 |
[9주차] 딥러닝(2)_이진, 다중분류 모델링 (0) | 2024.11.01 |
[KT 에이블스쿨] 머신러닝(지도학습) (0) | 2024.10.29 |