얼굴상 연애능력 테스트 만들기

우주·2023년 1월 17일
0

미니 프로젝트

목록 보기
1/1

사람 얼굴을 토대로 그 사람의 성향을 맞춰주는 가벼운 프로젝트를 진행했다.

face_recognition with dlib

딥러닝을 통해 학습하려면 화면에서 그 사람의 얼굴만을 따와야 했다.
방법을 헤메고 있었는데, 다행히 멋진 형이 face_recognition 방법을 알려주었고, 나는 그 방법을 따라서 진행했다.

face_recognition 사용을 위해 dlib 라이브러리를 설치해야 했다.

그런데 이 녀석... 설치해 본 사람들은 알 수 있겠지만 windows에서는 쓰라고 만들어 놓은 녀석이 아니다.
다른게 아니라 설치가 안 된다.
아무리봐도 linux에서만 쓰라고 만들어둔 녀석이다.
그리고 C++ library니까 파이썬 라이브러리로 설치하는게 절대 친절하지 않기도 하다.

구글에 dlib windows 설치법 검색해서 별의별 방법을 다 써도 결국에 dlib를 import 하면 여전히 에러만 발생할 뿐이었다.
해도해도 안 되어서 Ubuntu 가상환경을 만들려다가 1시간 내내 매달린 결과 마지막 시도에서 dlib을 설치할 수 있었다.

dlib 설치 방법

내 방법을 사용하게 된다면
가능하면 conda 가상환경에서 설치하고
visual studio 환경에서 사용하기를 추천한다.

안 그래도 windows에서 설치하기 어려운데
jupyter lab/notebook에서는 설치가 더 어렵다.

내가 성공한 방법 뿐 아니라 실패했던 모든 방법들을 작성할테니 새로 설치하는 분들은 다해보길 추천한다.
본인 환경에서 뭐가 성공할지는 아무도 모르니까

암튼 일단 실패한 4가지 방법들

방법 1

1. C++ 컴파일러 설치

먼저 c++ compiler가 없으면 다운받는다.

Visual Studio 설치

컴파일러를 정하기 힘들다면 Visual Studio를 추천한다.
에디터가 아니라 컴파일러로 다운받아야한다.
오래 걸리니까 일단 설치하면서 아래 과정 진행하기를 추천한다.

2. cmake 다운로드

Cmake를 다운받는다.
제일 간단한 과정이다.

!pip install cmake

로 간단히 해결된다.

3. dilb 다운로드

참고로 성공한 사람도 있다고는 하지만 내가 봤을 때

pip install dlib

은 죽어도 안된다.

그러니 직접 라이브러리를 설치해서 풀어야한다.

dlib 홈페이지

왼쪽 하단에 보면 파랑색 download 상자를 눌러 그것을 다운받고 c드라이브에 압축을 푼다.

4. 폴더 분류

다음과 같이 source 폴더를 같이 생성한다.

이후, bulid 폴더를 제외한 나머지 파일은 다 source 안에 넣는다.

5. cmd 창으로 이동!


cd C:/dlib-19.24
cd source 
python setup.py build
python setup.py install

순으로 설치한다.

혹시 몰라서 난 관리자 모드로 실행했다.

6. 설치 확인

import dlib
print(dlib.__version__) 

여기서 에러 없이 설치한 dlib 버전이 나오면 성공이다.
하지만 여기서 성공하는 사람들은 지구의 1%도 되지 않기에 또 다른 방법들을 소개한다.

방법 2

1. C++ 컴파일러 설치

똑같이 c++ compiler가 없으면 다운받는다.

Visual Studio 설치

이 부분은 필수 작업이기에 진행해준다.

설치하다보면 무슨 옵션을 선택해야 하는 게 있는데 cmake 있는 옵션을 클릭해서 설치해줬다.

2. cmake, dlib 설치

pip install cmake
pip install opencv-contrib-python dlib

보통 이렇게 하면 다 된다길래 바로 실행해 봤다.
내 경우엔 cmake는 평범하게 잘 설치되고
그 다음 아래 dlib에서 오류가 났다.

그래서 혹시나 다른 환경에서는 될까 싶어 다시 아나콘다 가상환경 가서 실행했다.
인고의 시간 끝에 얻은 결과는 에러..

다시 찾아보기 시작.

찾아보니 wheel로 설치를 하면 된다나..
그래서 바로 시도했다.

방법 3

1. C++ 컴파일러 설치

똑같이 c++ compiler가 없으면 다운받는다.

Visual Studio 설치

2. cmake 다운로드

!pip install cmake

3. dlib wheel 파일 설치

다시 주피터 노트북에서

!pip install dlib-19.22.99-cp39-cp39-win_amd64.whl

위 코드 실행한다.
역시나 실패했다.

방법 4 (성공)

가상환경을 사용한 방법

수많은 방법들을 다 사용했는데 가장 간단하게 성공했다.

또 실패하고 검색하고 실패하면서 계속 이상한 방법을 다 실행했다.
그렇게 수없이 폭풍 검색해서 찾은 코드는 바로 다음과 같다.

1. C++ 컴파일러 설치

똑같이 c++ compiler가 없으면 다운받는다.

Visual Studio 설치

2. cmake 다운로드

!pip install cmake

여기까지는 이미 다 이전 방법들에서 진행하고 해서 꼭 필요한 건지 솔직히 모르겠다.

3. conda 가상환경 업데이트 및 dlib 다운로드

1) cmd창에 들어간다.

conda update conda

conda update anaconda

2) 가상환경을 새로 설치 및 실행한다.
이미 있다면 본인의 가상환경을 먼저 사용해보기를 권장한다.

conda create -m env_dlib python==3.8

conda activate env_dlib

3) 간절히 기도하며 아래 코드를 작성한다.

conda install -c conda-forge dlib

4. 설치 확인

python 환경에 다시 들어가서

import dlib
print(dlib.__version__) 

에러 발생없이 dlib 버전이 출력되며
설치 성공 확인

제일 쉬운 방법이기도 해서 정말 허탈하지만... 성공해서 행복하다.
하지만 여기까지 했는데도 실패했다면, 마지막으로 시도해봤던 몇 가지 다른 방법도 있으니 사용해보도록 하고,

그래도 실패하면
하늘을 원망하며 다른 라이브러리를 설치하는 것을 권장한다.

당신은 충분히 노력했고
나쁜 것은 저 라이브러리놈이다.

방법 5

1. opencv 설치

pip install opencv-python

2. C 경로로 openCV 다시 설치

c:\>python -m pip install --user opencv-python 

똑같이 두 번 설치하는 것이지만, 프로그래밍은 기도와 신앙의 영역이기에 의심하지 말지어다.
나는 잘 모르겠지만 다 이유가 있을....지도 모른다.

3. cmake 다운로드

!pip install cmake

4. dlib 설치

c:\>python -m pip install --user dlib

이러면 설치 안 된다.

이때 주의할 점은
다운로드에 dlib를 설치하면 절대 설치되지 않는다.

C 드라이브에 다운로드 받아서 설치해야만 진행된다.
설치가 완료 되었다면 다음 코드를 작성한다.

C:\dlib-19.17>python setup.py build
C:\dlib-19.17>python setup.py install
C:\dlib-19.17>python

5. 설치 확인

찐찐찐찐막으로......
python 환경에 다시 들어가서

import dlib
print(dlib.__version__) 

설치에 성공했다면, 당신의 기도가 드디어 신에게 닿은 것이다.
평범한 신앙을 가졌다면 절대 그럴리 없다.
그렇기에 진짜 마지막으로 시도했던 다른 방법을 공개한다.

방법 6

1. 가상환경 설치 및 실행

1) cmd창에 들어간다.

conda update conda

conda update anaconda

2) 가상환경을 새로 설치 및 실행한다.
이미 있다면 본인의 가상환경을 먼저 사용해보기를 권장한다.

conda create -m env_dlib python==3.8

conda activate env_dlib

2. cmake 다운로드

pip install cmake

3. dlib 설치

진짜 마지막이니 간절히 기도하며 아래 코드를 작성한다.
이번 방법이 실패하면 dlib 놈은 당신과 연이없으니 다른 라이브러리를 사용하기를 권장한다.

conda install -c conda-forge dlib
conda install -c conda-forge/label/cf201901 dlib
conda install -c conda-forge/label/cf202003 dlib

설치를 마치며

진짜 고생 많았다...
모두 dlib 라이브러리를 통해서 좋은 프로젝트 진행하기를 바라고,
만약 이렇게까지 했는데도 설치가 안됬다면 다시는 저런 녀석과 상종하지 말기를 권한다.

사진 크롤링

인터넷에서 크롤링 코드를 찾아서 구글 이미지를 크롤링한다.

사진 분할

face_recognition 프로그램 작성

1. dlib 내장 함수로 얼굴만식

2. opencv로 얼굴 영역 지정

3. 사진 오려내어 따로 저장하기

주의!) 혹시 에러떠서 안될 수도 있다.
그러면 절대 당황하지 말고 다음 스탭을 따라서 점검한다.

1) 폴더 이름이 한글이라면 영어로 바꾼다.
2) 사진 파일 확장명이 jpg, png 형태인지 확인하고, 아니라면 바꾸거나 지운다.
3) 사진 파일 이름에 특수 문자가 들어가 있는가? : 전부 숫자나 영어로 바꾸어준다.
4) 사진 속 얼굴이 정면을 바라보지 않다면 다 지우거나 회전시켜 정면을 바라보도록 한다.

딥러닝 학습

profile
임베디드 개발자

0개의 댓글