使用opencv arduino和python进行人脸跟踪

时间:2017-03-30 17:19:13

标签: python opencv arduino

我正在开展面部跟踪项目。我在python上成功编码了面部检测。我需要通过网络摄像头跟踪我的脸。我有电机控制的arduino。我无法跟踪我的脸,很难与arduino沟通。我应该使用什么代码进行跟踪目的我不知道轴。请帮忙

1 个答案:

答案 0 :(得分:0)

Face Detection in Python Using a Webcam

import cv2
import sys

cascPath = sys.argv[1]
faceCascade = cv2.CascadeClassifier(cascPath)

video_capture = cv2.VideoCapture(0)

while True:
    # Capture frame-by-frame
    ret, frame = video_capture.read()

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

    faces = faceCascade.detectMultiScale(
        gray,
        scaleFactor=1.1,
        minNeighbors=5,
        minSize=(30, 30),
        flags=cv2.cv.CV_HAAR_SCALE_IMAGE
    )

    # Draw a rectangle around the faces
    for (x, y, w, h) in faces:
        cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)

    # Display the resulting frame
    cv2.imshow('Video', frame)

    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# When everything is done, release the capture
video_capture.release()
cv2.destroyAllWindows()

但是你知道你不能在任何类型的微控制器上的arduino或任何其他OpenCV喜欢(图像处理库)上使用它 就此而言,由于它们具有非常低的处理器功率,足以处理一些IO命令,但您也可以在硬件上使用一些更昂贵的相机模块和内置的人脸检测。 做面部检测;但是使用网络摄像头,您需要一个 raspberry pi 或任何其他具有足够CPU和CPU的单板电脑。 GPU可以完成这项工作。

与python的沟通你可以去arduino playground

Arduino and Python

安装pySerial后,从Arduino读取数据非常简单:

>>> import serial
>>> ser = serial.Serial('/dev/tty.usbserial', 9600)
>>> while True:
...     print ser.readline()
'1 Hello world!\r\n'
'2 Hello world!\r\n'
'3 Hello world!\r\n'