【前言】
校内实习制作——基于树莓派的云台人脸追踪系统。本文主要是记录我的操作和执行过程。
由于要同时准备考研,所以只能学习做一个简易的系统啦,希望能有收获叭。
【个人情况(供看文章的同学参考):
①树莓派初学者,第一次操作全新树莓派(包括选购器件、安装硬件、烧录镜像、配置所有本次实验需要的树莓派通信环境等等)。
②python初学者,但是有其他语言基础。
文中有大量试错过程可供参考。】
九月份补充说明:整体合计约一个月零十天的时长,因为答主考研,所以只能花这么长时间学习相关知识并实践。
除了最开始的集中实践,后续基本都是零零散散的调试。
基础配置我卡了很久很久,花了非常多的时间摸索。我决定把我的操作和遇到的问题都记录下来。希望能对需要的小伙伴有一点帮助。
|
在树莓派上实现人脸检测
用的是树莓派自带的lbp算法(这里用的lbp算法的是clbp,另一篇帖子里会有我看论文学算法的过程【等有空再填坑】)
以下是人脸检测代码:
import cv2
cap = cv2.VideoCapture(0) //将摄像头数据传入cap
cap.set(3, 320) //设置分辨率为320*240
cap.set(4, 240)
face_cascade = cv2.CascadeClassifier( '/home/pi/opencv-3.4.1/data/lbpcascades/lbpcascade_frontalface.xml' )
while True:
ret,frame = cap.read() //ret的值为True或False,frame存入每一帧的数据
gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale( gray )
if len(faces)>0:
for (x,y,w,h) in faces:
cv2.rectangle(frame,(x,y),(x+h,y+w),(0,255,0),2)
#max_face=w*h
result = (x,y,w,h)
x=result[0]
y = result[1]
#print (x)
cv2.imshow("capture", frame)
if cv2.waitKey(1)>0: //键盘按下退出循环
break
cap.release()
cv2.destroyAllWindows()