Python의 얼굴 인식

5561 단어 machinelearningpython
이 기사에서는 Python 및 OpenCV를 사용하여 얼굴을 감지하는 방법을 살펴보겠습니다.
OpenCV가 무엇이며 무엇을 할 수 있는지 모르는 사람들은 이전 게시물을 확인해야 합니다.

OpenCV는 기계 학습 알고리즘을 사용하여 얼굴을 감지합니다. 컴퓨터와 같은 멍청한 기계의 경우 컴퓨터가 이해할 수 있는 언어로 표현하면 얼굴이 너무 복잡합니다. 얼굴을 감지하는 간단한 테스트는 없습니다. 수천 개의 패턴을 일치시켜야 합니다. 분할 및 정복 규칙을 사용하여 이러한 큰 프로세스는 분류자라고도 하는 작은 작업으로 나뉩니다.

OpenCV는 캐스케이드를 사용하여 얼굴을 감지합니다. 캐스케이드는 이미지에서 특정 개체를 검색하는 데 필요한 모든 OpenCV 데이터가 있는 XML 파일 묶음에 불과합니다. OpenCV는 얼굴 인식을 위한 기본 제공 캐스케이드와 함께 제공되지만 다른 객체를 감지하려면 고유한 사용자 지정 캐스케이드를 만들어야 할 수 있습니다. 맞춤형 캐스케이드 생성은 깊고 복잡한 프로세스입니다. 다행스럽게도 얼굴 감지를 위한 사용자 정의 캐스케이드를 생성할 필요가 없으므로 깊이 들어가지 않을 것입니다.

시작하려면 OpenCV가 설치되어 있는지 확인하십시오. OpenCV를 설치하려면 터미널에 다음 명령을 입력하십시오.pip install opencv-python
OpenCV를 설치하는 동안 문제가 발생하지 않으면 다음 부분으로 진행할 수 있습니다.

다음 단계는 OpenCV 모듈을 가져오는 것입니다. 다음은 OpenCV 모듈을 가져오는 방법입니다.

import cv2


다음 단계에서는 얼굴을 감지하려는 이미지를 읽어야 합니다. 또한 그레이스케일 이미지로 작업하는 것이 더 빠르기 때문에 이미지를 그레이스케일 이미지로 변환해야 합니다.

img = cv2.imread('man.png') # must pass valid file directory
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)  #converting the image into grayscale image


다음 단계는 Cascade Classifier를 초기화하는 것입니다. 이렇게 하려면 here에서 haarcascade_frontalface_default.xml 파일을 다운로드해야 합니다.

# Initializing the haar cascade
face_cascade = cv2.CascadeClassifier("haarcascade_frontalface_default.xml")


다음 단계는 이 과정에서 가장 중요한 단계입니다.

faces = face_cascade.detectMultiScale(gray_img, scaleFactor = 1.05, minNeighbors=5)


detectMultiScale 함수는 개체를 감지합니다. 여기서 첫 번째 인수는 이미지 자체(회색조 이미지)이고 두 번째 인수는 일부 불일치 조정을 주로 담당하는 scaleFactor입니다. 이미지의 일부 얼굴은 작을 수 있고 일부는 더 클 수 있으며 여기에서 scaleFactor가 역할을 합니다. 이 알고리즘은 물체를 감지하기 위해 움직이는 창이 필요합니다. minNeighbors는 얼굴을 찾았다고 선언하기 전에 현재 물체 근처에서 얼마나 많은 물체가 감지되는지 정의합니다.

이 모든 값은 일반적으로 사용되는 값입니다. 필요에 따라 이러한 값을 실험해야 할 수도 있습니다.

다음 단계는 faces 의 데이터를 사용하여 이미지에 사각형을 그리는 것입니다.

for x, y, w, h in faces:
    img = cv2.rectangle(img, (x,y), (x+w,y+h), (255, 255, 250),3)



회색조 이미지가 아닌 원본 이미지에 사각형을 그리고 있다는 점을 기억하십시오.

거의 끝났습니다!
이미지를 표시하십시오.

cv2.imshow("ImageWindow", img) # displaying the image
cv2.waitKey(0) #waitKey is set to 0, that means the image window will close as soon as any key is pressed.
cv2.destroyAllWindows() 


결과를 테스트해 봅시다!


축하합니다! 멍청한 기계가 얼굴을 인식하도록 만들었습니다!

좋은 웹페이지 즐겨찾기