이 파일의 번역 된 버전을 중국어 또는 한국어 또는 일본어로 읽을 수도 있습니다.
파이썬에서 얼굴을 인식하고 조작하거나 세계에서 가장 단순한 얼굴 인식 라이브러리와 함께 명령 라인에서 얼굴을 조작하십시오.
딥 러닝으로 구축 된 DLIB의 최첨단 얼굴 인식을 사용하여 제작되었습니다. 이 모델은 와일드 벤치 마크에서 레이블이 붙은 얼굴에서 정확도가 99.38%입니다.
이것은 또한 명령 줄에서 이미지 폴더에서 얼굴 인식을 할 수 있도록 간단한 face_recognition
명령 줄 도구를 제공합니다!
그림에 나타나는 모든 얼굴을 찾으십시오.
import face_recognition
image = face_recognition . load_image_file ( "your_file.jpg" )
face_locations = face_recognition . face_locations ( image )
각 사람의 눈, 코, 입 및 턱의 위치와 개요를 얻으십시오.
import face_recognition
image = face_recognition . load_image_file ( "your_file.jpg" )
face_landmarks_list = face_recognition . face_landmarks ( image )
얼굴 특징을 찾는 것은 많은 중요한 것들에 매우 유용합니다. 그러나 디지털 메이크업을 적용하는 것과 같은 정말 어리석은 물건에도 사용할 수 있습니다 ( 'Meitu'생각).
각 사진에 누가 나타나는지 알아 봅니다.
import face_recognition
known_image = face_recognition . load_image_file ( "biden.jpg" )
unknown_image = face_recognition . load_image_file ( "unknown.jpg" )
biden_encoding = face_recognition . face_encodings ( known_image )[ 0 ]
unknown_encoding = face_recognition . face_encodings ( unknown_image )[ 0 ]
results = face_recognition . compare_faces ([ biden_encoding ], unknown_encoding )
다른 파이썬 라이브러리와 함께이 라이브러리를 사용하여 실시간 얼굴 인식을 수행 할 수도 있습니다.
코드는이 예제를 참조하십시오.
사용자 대조적 공유 Jupyter 노트북 데모 (공식적으로 지원되지 않음) :
먼저 DLIB가 이미 파이썬 바인딩으로 설치되어 있는지 확인하십시오.
그런 다음 CMAKE가 설치되어 있는지 확인하십시오.
brew install cmake
마지막으로 pip3
(또는 Python 2의 경우 pip2
)을 사용하여 PYPI 에서이 모듈을 설치하십시오.
pip3 install face_recognition
또는 Docker와 함께이 라이브러리를 사용해 볼 수 있습니다.이 섹션을 참조하십시오.
설치에 문제가있는 경우 사전 구성된 VM을 사용해 볼 수도 있습니다.
pkg install graphics/py-face_recognition
Windows는 공식적으로 지원되지 않지만 도움이되는 사용자는이 라이브러리를 설치하는 방법에 대한 지침을 게시했습니다.
face_recognition
설치하면 두 가지 간단한 명령 줄 프로그램이 나타납니다.
face_recognition
사진을 위해 사진이나 폴더의 얼굴을 인식합니다.face_detection
사진을 위해 사진이나 폴더에서 얼굴을 찾으십시오. face_recognition
명령 줄 도구 face_recognition
명령을 사용하면 사진이 가득 찬 사진이나 폴더의 얼굴을 인식 할 수 있습니다.
먼저, 이미 알고있는 각 사람의 사진을 폴더에 제공해야합니다. 사진에있는 사람에 따라 이름이 지정된 파일이있는 각 사람의 이미지 파일이 하나 있어야합니다.
다음으로 식별하려는 파일이있는 두 번째 폴더가 필요합니다.
그런 다음 당신은 단순히 face_recognition
명령을 실행하여 알려지지 않은 사람들과 알려진 사람과 폴더 (또는 단일 이미지)를 전달하고 각 이미지에 누가 있는지 알려줍니다.
$ face_recognition ./pictures_of_people_i_know/ ./unknown_pictures/
/unknown_pictures/unknown.jpg,Barack Obama
/face_recognition_test/unknown_pictures/unknown.jpg,unknown_person
각면의 출력에는 한 줄이 있습니다. 데이터는 파일 이름과 찾은 사람의 이름으로 쉼표로 구분됩니다.
unknown_person
은 이미지의 얼굴입니다.
face_detection
명령 줄 도구 face_detection
명령을 사용하면 이미지에서 모든면의 위치 (픽셀 좌표)를 찾을 수 있습니다.
face_detection
명령을 실행하고 이미지 폴더를 전달하여 확인하십시오 (또는 단일 이미지).
$ face_detection ./folder_with_pictures/
examples/image1.jpg,65,215,169,112
examples/image2.jpg,62,394,211,244
examples/image2.jpg,95,941,244,792
감지 된 각면에 대해 한 줄을 인쇄합니다. 보고 된 좌표는 얼굴의 상단, 오른쪽, 하단 및 왼쪽 좌표입니다 (픽셀).
같은 사람에 대해 여러 경기를 받고 있다면 사진의 사람들이 매우 유사하게 보이고 얼굴 비교를 더 엄격하게 만들기 위해서는 허용 값이 낮을 수 있습니다.
--tolerance
매개 변수로이를 수행 할 수 있습니다. 기본 공차 값은 0.6이고 낮은 숫자는 얼굴 비교를 더 엄격하게 만듭니다.
$ face_recognition --tolerance 0.54 ./pictures_of_people_i_know/ ./unknown_pictures/
/unknown_pictures/unknown.jpg,Barack Obama
/face_recognition_test/unknown_pictures/unknown.jpg,unknown_person
공차 설정을 조정하기 위해 각 일치에 대해 계산 된 얼굴 거리를 보려면 --show-distance true
사용할 수 있습니다.
$ face_recognition --show-distance true ./pictures_of_people_i_know/ ./unknown_pictures/
/unknown_pictures/unknown.jpg,Barack Obama,0.378542298956785
/face_recognition_test/unknown_pictures/unknown.jpg,unknown_person,None
각 사진에서 사람들의 이름을 알고 싶지만 파일 이름에 신경 쓰지 않으려면 다음을 수행 할 수 있습니다.
$ face_recognition ./pictures_of_people_i_know/ ./unknown_pictures/ | cut -d ' , ' -f2
Barack Obama
unknown_person
여러 CPU 코어가있는 컴퓨터가있는 경우 얼굴 인식을 병렬로 수행 할 수 있습니다. 예를 들어, 시스템에 4 개의 CPU 코어가있는 경우 모든 CPU 코어를 병렬로 사용하여 같은 시간에 약 4 배의 이미지를 처리 할 수 있습니다.
Python 3.4 이상을 사용하는 경우 --cpus <number_of_cpu_cores_to_use>
매개 변수를 전달하십시오.
$ face_recognition --cpus 4 ./pictures_of_people_i_know/ ./unknown_pictures/
시스템의 모든 CPU 코어를 사용하려면 --cpus -1
을 전달할 수도 있습니다.
face_recognition
모듈을 가져온 다음 몇 줄의 코드로 얼굴을 쉽게 조작 할 수 있습니다. 매우 쉽습니다!
API 문서 : https://face-recenition.readthedocs.io.
import face_recognition
image = face_recognition . load_image_file ( "my_picture.jpg" )
face_locations = face_recognition . face_locations ( image )
# face_locations is now an array listing the co-ordinates of each face!
이 예제를 참조하여 시도해보십시오.
다소 정확한 딥 러닝 기반 얼굴 탐지 모델로 선택할 수도 있습니다.
참고 :이 모델을 통해 GPU 가속도 (NVIDIA의 CUDA 라이브러리를 통해)가 필요합니다. dlib
불평 할 때 CUDA 지원을 활성화하려고합니다.
import face_recognition
image = face_recognition . load_image_file ( "my_picture.jpg" )
face_locations = face_recognition . face_locations ( image , model = "cnn" )
# face_locations is now an array listing the co-ordinates of each face!
이 예제를 참조하여 시도해보십시오.
이미지와 GPU가 많으면 배치로 얼굴을 찾을 수도 있습니다.
import face_recognition
image = face_recognition . load_image_file ( "my_picture.jpg" )
face_landmarks_list = face_recognition . face_landmarks ( image )
# face_landmarks_list is now an array with the locations of each facial feature in each face.
# face_landmarks_list[0]['left_eye'] would be the location and outline of the first person's left eye.
이 예제를 참조하여 시도해보십시오.
import face_recognition
picture_of_me = face_recognition . load_image_file ( "me.jpg" )
my_face_encoding = face_recognition . face_encodings ( picture_of_me )[ 0 ]
# my_face_encoding now contains a universal 'encoding' of my facial features that can be compared to any other picture of a face!
unknown_picture = face_recognition . load_image_file ( "unknown.jpg" )
unknown_face_encoding = face_recognition . face_encodings ( unknown_picture )[ 0 ]
# Now we can see the two face encodings are of the same person with `compare_faces`!
results = face_recognition . compare_faces ([ my_face_encoding ], unknown_face_encoding )
if results [ 0 ] == True :
print ( "It's a picture of me!" )
else :
print ( "It's not a picture of me!" )
이 예제를 참조하여 시도해보십시오.
모든 예제는 여기에서 제공됩니다.
python
또는 face_recognition
설치할 필요없이 실행할 수있는 독립형 실행 파일을 만들려면 Pyinstaller를 사용할 수 있습니다. 그러나이 라이브러리에서 작업하려면 몇 가지 사용자 정의 구성이 필요합니다. 이 문제를 수행하는 방법에 대해서는이 문제를 참조하십시오.
face_recognition
다루는 기사 및 안내서블랙 박스 라이브러리에 따라 얼굴 위치와 인식이 어떻게 작동하는지 배우려면 내 기사를 읽으십시오.
face_recognition
C ++로 작성된 dlib
에 의존하기 때문에 Heroku 또는 AWS와 같은 클라우드 호스팅 제공 업체에이를 사용하여 앱을 배포하는 것이 까다로울 수 있습니다.
일을 더 쉽게하기 위해이 리포지기에는 Docker 컨테이너에서 face_recognition
으로 구축 된 앱을 실행하는 방법을 보여주는 예제 DockerFile이 있습니다. 이를 통해 Docker 이미지를 지원하는 모든 서비스에 배포 할 수 있어야합니다.
실행을 통해 Docker 이미지를 로컬로 시도 할 수 있습니다 : docker-compose up --build
사전 제작 된 도커 이미지도 있습니다.
GPU (드라이버> = 384.81)와 NVIDIA DOCKER가 설치된 Linux 사용자는 GPU에서 예제를 실행할 수 있습니다. Docker-Compose.YML 파일을 열고 dockerfile: Dockerfile.gpu
및 runtime: nvidia
LINE을 사용하십시오.
문제가 발생하면 GitHub 문제를 제출하기 전에 Wiki의 일반적인 오류 섹션을 읽으십시오.