如何让机器人头部摄像头跟随识别到人脸位置变化而转动?一帧图像是 2 维的,人脸位置用坐标 (x,y) 表示,要实现跟踪人脸则需要两个轴 pan, tilt
- pan: 水平左右方向转头
- tilt: 竖直上下方向转头
人脸识别
首先需要在每一帧图像中识别到人脸,face_recognition 一个简单易用的人脸识别开源项目,并且配备了完整的开发文档和示例代码,还特别兼容了树莓派。face_recognition 基于 C++ 开源库 dlib 的深度学习模型,使用 Labeled Faces in the Wild 人脸数据集进行测试,有高达99.38%的准确率。
安装 face_recognition
安装步骤请参考: face_recognition#installation
识别人脸 Python 代码
import face_recognition
def face_location(frame, frame_center):
face_locations = face_recognition.face_locations(frame)
if len(face_locations) > 0:
y0, x0, y1, x1 = face_locations[0]
face_x = int((x0 + x1) / 2)
face_y = int((y0 + y1) / 2)
return face_x, face_y
return frame_center
PID 控制
使用 face_recognition 可以很容易地用 Python 代