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