라즈베리파이로 얼굴인식하기 (파이썬)

메이커 2018-09-10 (월) 23:25 3년전 6528  

라즈베리파이에서 파이썬으로 얼굴인식을 하기 위해서는 다음의 간단한 소스코드를 사용할 수 있습니다. 

 

2c3ff9bf7a640200e965e4dc9c6803a3_1536589
 

 

웹캠 사용시

 

import cv2

import numpy as np

 

face_cascade = cv2.CascadeClassifier('/home/pi/opencv-3.3.0/data/haarcascades/haarcascade_frontalface_alt.xml')

cap = cv2.VideoCapture(0)

scaling_factor=0.5

 

while True:

   ret, frame = cap.read()

   frame = cv2.resize(frame, None, fx=scale_factor, fy=scale_factor, interpolation=cv2.INTER_AREA)

   gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

   face_rects = face_cascade.detectMultiScale(gray, 1.3, 5)

   for (x, y, w, h) in face_rects: 

      cv2.rectangle(frame, (x,y), (x+w, y+h), (0, 255, 0), 3)

   cv2.imshow('Face Detector', frame)

   c = cv2.waitKey(1)

   if c == 27:

      beak

cap.release()

cv2.destroyAllWindows()

 

 

 

파이카메라 사용시

 

import cv2

from picamera.array import PiRGBArray

from picamera import PiCamera

import time

 

face_cascade = cv2.CascadeClassifier('/home/pi/opencv-3.3.0/data/haarcascades/haarcascade_frontalface_alt.xml')

camera = PiCamera()

camera.resolution = (640, 480)

camera.framerate = 30

rawCapture = PiRGBArray(camera, size=(640, 480))

time.sleep(0.1)

 

for frame in camera.capture_continuous(rawCapture, format = "bgr", use_video_port=True):

   img = frame.array

   gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

   face_rects = face_cascade.detectMultiScale(gray, 1.3, 5)

   for (x, y, w, h) in face_rects: 

      cv2.rectangle(img, (x,y), (x+w, y+h), (0, 255, 0), 3)

   cv2.imshow('Face Detector', img)

   key = cv2.waitKey(1) & 0xFF

   rawCapture.truncate(0)

 

   if key == ord("q"):

      beak

cap.release()

cv2.destroyAllWindows()


메카리워즈 Image Map


모바일 버전으로 보기