>  기사  >  백엔드 개발  >  AI의 Python 얼굴 인식

AI의 Python 얼굴 인식

伊谢尔伦
伊谢尔伦원래의
2017-04-29 09:41:212409검색

지난해 알파고의 충격적인 성과로 AI는 다시 한번 기술 기업의 사랑을 받는 존재가 되었습니다. AI에는 다양한 분야가 관련되어 있는데, 이미지 인식 중 얼굴 인식은 흥미로운 분야 중 하나입니다. Baidu의 BFR, Face++의 오픈 플랫폼, Hanwang, iFlytek 등은 모두 얼굴 인식 API를 제공합니다. 숙련된 코더의 경우 작은 코드를 작성하여 사진에 키가 큰 사람이 몇 명 있는지 확인할 수 있습니다. , 단지 재미를 위한 것이며 7줄의 코드만 필요합니다.  

 import cv2
  face_patterns = cv2.CascadeClassifier('/usr/local/opt/opencv3/share/OpenCV/haarcascades/haarcascade_frontalface_default.xml')
  sample_image = cv2.imread('/Users/abel/201612.jpg')
  faces = face_patterns.detectMultiScale(sample_image,scaleFactor=1.1,minNeighbors=5,minSize=(100, 100))
  for (x, y, w, h) in faces:
  cv2.rectangle(sample_image, (x, y), (x+w, y+h), (0, 255, 0), 2)
  cv2.imwrite('/Users/abel/201612_detected.png', sample_image);

 Line 1 OpenCV 소개

  오픈 소스는 훌륭합니다. 오픈 소스를 사용하면 시야를 넓힐 수 있고 바퀴를 다시 만들 필요가 없습니다. PIL을 사용하고 이를 특정 알고리즘과 결합하는 대신 OpenCV(http://opencv.org)를 직접 사용합니다. OpenCV는 BSD 라이센스를 기반으로 출시된 크로스 플랫폼 컴퓨터 비전 라이브러리로, Linux, Windows 및 Mac OS 운영 체제에서 실행될 수 있으며 C/C++로 작성되었습니다. 이미지 처리 및 컴퓨터 비전 분야의 많은 일반 알고리즘을 구현하기 위한 MATLAB 및 기타 인터페이스.

2번째 줄은 분류기 cv2.CascadeClassifier를 로드합니다.

CascadeClassifier는 Opencv에서 얼굴 감지에 사용되는 계단식 분류기입니다. 이 클래스는 대상 감지 메커니즘, 즉 슬라이딩 창 메커니즘 + 계단식 분류기를 캡슐화합니다. . 데이터 구조에는 Data와 FeatureEvaluator라는 두 가지 주요 부분이 포함됩니다. Data는 훈련에서 얻은 xml 파일에서 로드된 분류자 데이터를 저장하는 반면 FeatureEvaluator는 기능의 로드, 저장 및 계산에 관한 것입니다. 여기서 사용한 트레이닝 파일은 OpenCV에서 기본으로 제공하는 haarcascade frontalface default.xml 입니다. Haar와 LBP의 구체적인 원리는 opencv의 관련 문서를 참조하면 간단하게는 얼굴의 특징 데이터로 이해할 수 있습니다.

3행 imread 대상 이미지 로드

얼굴 인식 시스템은 일반적으로 얼굴 이미지 수집, 얼굴 이미지 전처리, 얼굴 이미지 특징 추출, 매칭 및 인식으로 구분됩니다. 단순화를 위해 이미지를 읽으십시오.

Line 4 다중 스케일 감지 discoverMultiScale

다중 스케일 감지를 위해 CascadeClassifier에서 discoverMultiScale 함수를 호출하십시오. 다중 스케일 감지에서는 단일 스케일 방법입니다. detectorSingleScale이 호출됩니다. 매개변수 설명:

scaleFactor는 이미지의 배율 인수입니다.

minNeighbors는 각 캐스케이드 직사각형에 대해 유지해야 하는 이웃 수입니다. 이는 사람 주위에 몇 개의 얼굴이 있는지로 이해할 수 있습니다.

MinSize는 감지 창의 크기입니다.

이 매개변수는 사진에 맞게 조정될 수 있으며, 처리 결과는 얼굴의 직사각형 객체 목록을 반환합니다.

5행과 6행은 각 얼굴에 대한 프레임을 그립니다.

얼굴의 직사각형 개체 목록을 반복하여 얼굴 직사각형의 좌표, 너비 및 높이를 얻은 다음 프레임에 그립니다. 원본 그림 직사각형 프레임을 종료하기 위해 OpenCV의 직사각형 메소드가 호출되며 직사각형 프레임의 색상을 조정할 수 있습니다.

7행 테스트 결과 저장

수수께끼는 이 7줄의 코드가 아니라 OpenCV에서 관련 구현을 하고 있다는 점입니다. OpenCV의 중국 웹사이트도 배우고 경험하기에 좋은 곳입니다.

그러므로 7줄의 코드는 단지 기믹일 뿐이고, 진짜 핵심은 OpenCV입니다. 그러면 OpenCV 환경을 설치할 때 몇 가지 함정이 있으니 특별히 기록해 두시기 바랍니다.

Mac 기반 OpenCV 환경

Brew를 사용하여 설치하는 것이 좋습니다. Brew가 설치되어 있지 않은 경우 먼저 다음 명령을 실행하십시오.

 $/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”

그런 다음 대상 창고를 지정합니다. $brew tap homebrew/science

Install OpenCV3 $brew install opencv3

설치 속도는 네트워크에 따라 다릅니다. 설치 후 Python 개발 환경을 바인딩해야 합니다. . 여러 가지 방법이 있습니다:

 1) 환경 변수를 추가하고 PYTHONPATH에 opencv의 사이트 패키지를 추가합니다

 2) ln 소프트 연결을 사용하여 cv2.so를 Python 환경의 사이트 패키지에 연결합니다.

 3 ) python 환경의 site-packages 디렉터리에 cv2.so를 직접 설치하세요

다음 명령을 실행하는 것이 더 쉽습니다:

 echo /usr/local/opt/opencv3/lib/python2.7/site-packages >> /usr/local/lib/python2.7/site-packages/opencv3.pth
  mkdir -p /Users/hecom/.local/lib/python2.7/site-packages
  echo 'import site; site.addsitedir("/usr/local/lib/python2.7/site-packages")' >> /Users/hecom/.local/lib/python2.7/site-packages/homebrew.pth

위 내용은 AI의 Python 얼굴 인식의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.