Data Projects/사용자 나이 추정 프로젝트

[사용자 나이 추정] 프로젝트 refactor 하기 (2)

천뿌니 2021. 12. 2. 11:42
728x90

프로젝트 : 키오스크 UIUX 개인화를 위한 사용자 나이 추정

 

1. 데이터 구축

① 안면 데이터(오픈 데이터)

전체 데이터 분포

Facial age 얼굴 데이터 세트

· Kaggle competition dataset

· 10-100세 범위인 8,000장 가량의 얼굴 이미지

 

UTKFace 대규모 얼굴 데이터 세트

· 나이, 성별 주석이 포함된 14,000장이 넘는 얼굴 이미지

· 나이 범위가 긴 대규모 얼굴 데이터 세트 (10~116 세 범위)

 

All age 얼굴 데이터 세트

· 2-80세 범위인 10,000장 가량의 대부분 아시아 사람인 얼굴 이미지

 

Mega age 얼굴 데이터 세트

· 1-69세 범위인 30,000장 가량의 아시아 사람인 배경 포함한 얼굴 이미지

· face-cropping 작업 필요

 

전체 데이터 연령 분포

 

2. 데이터 전처리

- 사용한 데이터는 총 4가지이고, 데이터를 사용하기에 앞서 전처리 작업이 필요하다.

 

① 소아층, 저화질 데이터와 나이 라벨에 맞지 않게 보이는 데이터 제거

- 데이터 사용 시 소아층(0-9) 데이터는 키오스크 이용자가 아니라고 판단하여 제거한다

 

소아 데이터 제거
저화질 데이터 제거
나이에 맞지 않게 보이는 데이터 제거

② 연령대 labeling

- 처음 데이터를 라벨링 했을 때는 10대 단위로 즉, 1(10-19), 2(20-29), 3(30-39), 4(40-49), 5(50-59), 6(60-)으로 구분했다. 하지만 해당 라벨링한 결과 loss 값은 높았고 정확도는 낮았다.

10대 단위 라벨링

②-② 연령대 relabeling

- 그래서 청년층(10-29), 중년층(30-59), 노년층(60-)으로 구분한 결과 정확도와 loss값이 좋았다.

 

 

연령층 단위 라벨링

 

(좌) 10대 단위 라벨링 (우) 연령대 단위 라벨링 : loss/accuracy

 

③ face cropping

사용하는 데이터 중 mega age dataset 같은 경우, 다른 데이터와 달리 안면데이터만 있는 경우가 아니고 배경까지 포함한 데이터 셋이기 때문에 안면을 추출하기 위한 face cropping 작업이 우선된다.

 

face cropping 작업

 

 

 

* 이렇게 데이터 구축과 전처리에 대해 포스팅을 마치겠습니다. 다음 포스팅은 전처리 된 데이터들을 입력받고 분포에 대해 포스팅 하겠습니다. 더 궁금하신 것이 있으신 분은 댓글 또는 아래 github를 참고해주세요

https://github.com/JunSeokCheon/Estimating-user-age-for-kiosk-UI-UX-personalization

 

GitHub - JunSeokCheon/Estimating-user-age-for-kiosk-UI-UX-personalization

Contribute to JunSeokCheon/Estimating-user-age-for-kiosk-UI-UX-personalization development by creating an account on GitHub.

github.com