연구실에서 다른 실험을 계속 진행하느라 얼굴 인식을 손 놓게 되어 작성을 중단했었는데 천천히라도 다시 작성해보겠습니다. 다소 설명하는 퀄리티가 떨어져도 이해해주시면 감사하겠습니다.
지난 글들까지는 얼굴인식 설명, python 설치, cuda, cudnn 설치 등까지 진행한 것 같네요.
다음으로 python 편집 프로그램을 설치하도록 하겠습니다.
둘 중 하나로 정하시면 되는데 1개는 PyCharm이고 하나는 Visual Studio Code 입니다.
Pycharm 설치
Pycharm이란? JetBrain에서 만든 전문 개발자용 Python IDE
https://www.jetbrains.com/ko-kr/pycharm/download/#section=windows
위 주소로 방문하여 설치하시면 됩니다.
둘 중 학생이라면 Professional(리눅스 서버로 원격 파이썬 실행 가능) 일반인이라면 Community를 설치해주세요.
Visual Studio Code
https://code.visualstudio.com/
python 외에도 다양한 언어를 편집할 수 있고 또 원격 리눅스 서버도 사용 가능합니다.
PyCharm과 VSC(Visual Studio Code)는 하나의 편집기이자 디버깅 툴입니다. 초심자들이라면 메모장이나 atom, notepad++ 이런 프로그램 쓰지말고 무조건 사용하시길 바랍니다.
저는 Ubuntu OS, Python(Anaconda3 가상환경), Pycharm을 이용하여 앞으로의 설명을 진행하겠습니다.
Ubuntu 18.04 → OS
Python(Anaconda3) → 3.7 혹은 3.8
필요 python 패키지들(pip install numpy, pip install opencv-python 등등 입력하여 설치)
- numpy
- matplotlib
- pillow
- opencv-python
- opencv-contrib-python
- torch
- torchvision
- pandas
- sklearn
- scikit-image
- PyQt5
- 위 항목 외에 import 오류가 뜨면 pip install (오류가 뜬 패키지이름) 을 치면 해결 될 겁니다.
Pycharm → 코드 편집 →원격 리눅스 서버로 코드 전달 및 실행 → 결과 return 및 디버깅
putty → 원격 리눅스 서버 터미널 작업용
winscp → 원격 리눅스 서버 파일 주고 받기용
위 정도만 사용할 줄 알면 됩니다.
얼굴 인식에 대한 간단한 Framework
얼굴 인식은
- 이미지 입력(opencv, pillow, scikit-image 등)
- 입력 이미지 Transform(일반적으로 Normalize정도만)
- 얼굴 검출(torch [GPU])
- 얼굴 검출 영역 Crop
- Crop한 얼굴 이미지 Normalize
- 얼굴 특징 추출 네트워크(torch [GPU])
- 얼굴 특징 벡터 추출(일반적으로 (B,N) 모양으로 출력된다)
여기서 B는 Batch Size(입력 얼굴 개수), N은 얼굴을 나타내는 특징 개수 - 추출한 특징 벡터와 기존 저장되어 있던 사람들의 특징 벡터를 전부 다 거리 계산
여기서 거리 계산에는 Euclidean distance와 cosine similarity가 있다. %로 보고 싶으면 cosine similarity의 범위가 -1~1로 나타나기 때문에 더 적합
영어로 나타내면
- Input Image
- Image Transform
- Face Detect using detector(usually YOLO face detector, mtcnn)
- Crop with face detector result(x, y, w, h)
- Normalize Cropped Face image
- Input to Face Recognition Network
- Get face feature vector from the network
- Compare probe& gallery feature vectors by using distance metrics(Euclidean distance or cosine similarity)
입니다.
제가 글을 쓰기 전까지 좀 더 찾아보고 싶으면 영어로 친 내용들을 구글링 해보면 쉽게 도움 받을 수 있습니다.
깃허브에도 많은 자료들이 올라와 있으니 한 번 찾아보세요~!
그럼 다음에 또 글 올리겠습니다.
'프로젝트 데모' 카테고리의 다른 글
[Python, Pytorch, PyQt5]딥러닝을 이용한 얼굴 인식 데모 제작 - Intro(3) - 작성중 (0) | 2020.07.09 |
---|---|
[Python, Pytorch, PyQt5]딥러닝을 이용한 얼굴 인식 데모 제작 - Intro(2) (1) | 2020.06.11 |
[Python, Pytorch, PyQt5]딥러닝을 이용한 얼굴 인식 데모 제작 - Intro (0) | 2020.06.04 |