>  기사  >  백엔드 개발  >  Python+OpenCV 얼굴인식 기술에 대한 자세한 설명

Python+OpenCV 얼굴인식 기술에 대한 자세한 설명

高洛峰
高洛峰원래의
2016-10-18 14:54:381647검색

SF 영화에서 얼굴 인식을 자주 보는데 이제는 프로그래밍을 통해서도 구현할 수 있습니다. ㅎㅎ~~
OpenCV는 인텔® 오픈소스 컴퓨터 비전 라이브러리입니다. 이는 일련의 C 함수와 이미지 처리 및 컴퓨터 비전에서 많은 공통 알고리즘을 구현하는 소수의 C++ 클래스로 구성됩니다.
OpenCV에는 300개 이상의 C 함수를 포함하는 크로스 플랫폼 중간 및 고급 API가 있습니다. 일부는 사용할 수 있지만 다른 외부 라이브러리에 대한 종속성은 없습니다. 또한 Python, Ruby, MATLAB 및 기타 언어로 인터페이스를 제공하고 이미지 처리 및 컴퓨터 비전에서 많은 공통 알고리즘을 구현합니다.

그래서 전체적으로 OpenCV의 얼굴 인식 기능은 매우 좋습니다.

렌더링은 다음과 같습니다.

Python+OpenCV 얼굴인식 기술에 대한 자세한 설명 다음으로 Python + OpenCV를 사용하여 얼굴 인식을 구현하겠습니다.

개발 및 실행 환경:
Centos5.5
OpenCV
python2.7
PIL

아래 코드:

#!/ usr /bin/python
# -*- 코딩: UTF-8 -*-

# Face_Detect.py

# OpenCV를 사용한 얼굴 감지:
# http://www.pythontab.com

# 사용법: python Face_Detect.py

import sys, os
#opencv 라이브러리의 해당 구성 요소 소개
from opencv.cv import *
from opencv.highgui import *
#PIL 라이브러리 소개
from PIL import Image, ImageDraw

from math import sqrt

def discoverObjects(image ):
# 먼저 이미지를 그레이스케일 모드로 변환하여 얼굴 위치를 찾습니다
greyscale = cvCreateImage(cvSize(image.width, image.height), 8, 1)
cvCvtColor(image, greyscale, CV_BGR2GRAY )

저장 = cvCreateMemStorage(0)
cvClearMemStorage(저장)
cvEqualizeHist(회색조, 회색조)

cascade = cvLoadHaarClassifierCascade(
'/usr/share/opencv/ haarcascades/haarcascade_frontalface_default.xml',
cvSize(1,1))
faces = cvHaarDetectObjects(grayscale, cascade, Storage, 1.1, 2,
CV_HAAR_DO_CANNY_PRUNING, cvSize(20,20))

결과 = []
for f in faces:
result.append((f.x, f.y, f.x+f.width, f.y+f.height))

return result

def greyscale(r, g, b):
return int(r * .3 + g * .59 + b * .11)

def process(infile, outfile ):

image = cvLoadImage(infile);
if image:
faces = discoverObjects(image)

im = Image.open(infile)

if faces:
draw = ImageDraw.Draw(im)
for f in faces:
draw.lectangle(f, 외곽선=(255, 0, 255))

im.save (outfile, "JPEG", quality=100)
else:
print "오류: %s에서 얼굴을 감지할 수 없습니다" % infile

if __name__ == "__main__":
process ('input.jpg', 'output.jpg')

여기서 코드가 끝납니다. 위의 예를 이해하지 못하더라도 문제가 되지 않습니다. 이해가 안 되시면 온라인으로 확인하시거나 이 코드를 이해하시면 됩니다. 중요한 것은 얼굴 인식 구현 아이디어를 익히는 것입니다.


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