[Python] Face detection을 통한 성별, 나이 추정(Real-time Gender and age prediction)
이번 포스트는 웹캠을 통해 사람의 성별과 나이를 추정하는 프로젝트를 다운받는 포스트입니다.
프로젝트를 실행하면 다음과 같이 실시간으로 웹캠의 화면에서 얼굴을 탐지하고 성별과 나이를 추정합니다.
1. 프로그램 다운로드
먼저 https://github.com/Tony607/Keras_age_gender의 링크에 접속한후 프로젝트를 다운받아 압축을 해제합니다.
다운로드 받은 폴더 명은 [Keras_age_gender-master]입니다.
2. 추가 라이브러리 다운로드
프로젝트를 실행하기 위해서는 파이썬이 설치되어 있어야 하며 다음과 같은 라이브러리를 추가적으로 다운로드 받아야 합니다.
- numpy-1.18.1+mkl
- Keras
- TensorFlow
- opencv 1.0.1+
- opencv-python 3.3.0+contrib
파이썬 설치는 지난 블로그 포스트(https://deep-i.tistory.com/category/Programming/Python)를 참고하시면 됩니다.
파이썬이 설치되어 있다는 가정하에 위의 라이브러리를 추가적으로 다운로드 받아보겠습니다.
먼저 [numpy 1.13.3+mkl]를 다운받기 위해 다음 링크로 접속합니다.
(링크 : https://www.lfd.uci.edu/~gohlke/pythonlibs/)
링크에 접속한 후 [Ctrl+F]로 [numpy‑1.18.1+mkl]를 검색하여 파일을 다운로드 받습니다. 포스트에서는 1.13.3버전이 아닌 가장 최신 버전을 다운로드 받습니다. 파이썬 3.7버전을 다운로드 받았기 때문에 cp37을 선택하고 사용하시는 데스크탑, 노트북 환경맞는 비트를 선택하시면 됩니다.
다운로드 받을 때 파일을 프로젝트 내부에 다음과 같이 저장합니다.
다운로드 완료 후 해당 경로에서 cmd창을 실행합니다.
[Win+R]버튼을 눌러 cmd창을 실행한 후 해당 경로로 접근합니다. 포스트에서는 디드라이브에 프로그램을 다운받았기 때문에 디드라이브로 접근한 후에 프로그램의 폴더로 접근합니다.
그리고 다음과 같이 파일명이 포함된 명령어를 통해 설치를 진행합니다.
python -m pip install numpy-1.18.1+mkl-cp37-cp37m-win_amd64.whl
다음으로는 tensorflow, keras를 설치합니다.
pip install tensorflow
pip install keras
마지막으로 opencv, opencv-contrib을 설치한다.
pip install opencv-python
pip install opencv-contrib-python
3. 프로그램 실행
프로그램을 실행하기 이전에 Keras 버전업에 따라 발생하는 에러를 수정합니다.
프로그램의 소스 코드를 그대로 실행하는 경우 keras.backend의 image_dim_ordering()함수에서
"AttributeError: module 'keras.backend' has no attribute 'image_dim_ordering'"의 에러가 발생한다.
에러를 해결하기 위해서는 그림과 같이 wide_resent.py의 소스 코드에서
K.image_dim_ordering()을 K.image_data_format()으로 수정하면 된다.
소스 코드 수정 후 다음과 같이 실행한다.
realtime_demo.py
실행결과 다음과 같이 흑백사진 레나를 20대 중반 여성으로 예측하는 것을 확인할 수 있습니다.