发 帖  
原厂入驻New
申请华秋企业认证 多层板首单免费打样!
30s提交资料,10分钟通过审核(免费赔付+顺丰包邮)>>立即报名

[经验] 【Toybrick RK3399Pro AI开发板试用体验】ACT Ⅶ:linux下实现 人脸追踪 python+opencv

2019-8-10 19:51:53  385 RK3399
分享
0
Logo.jpg
上一期做了静态的人脸识别,这边也学大神做一个动态的,就是人脸追踪。
直接上代码,训练源还是公开的人脸那个,即你得有个分类器,然后就是一个摄像头,之前几期我们已经调试过了,还有就是识别好了我有个avi的录像,方便我做个动图给大家看看效果。
  1. import cv2
  2. import numpy as np

  3. def detect():
  4.     # 创建人脸检测的对象
  5.     face_cascade = cv2.CascadeClassIFier("./haarcascade_frontalface_default.xml")
  6.     camera = cv2.VideoCapture(0)
  7.     fourcc = cv2.VideoWriter_fourcc(*'XVID')
  8.     out = cv2.VideoWriter('detect.avi',fourcc,20.0,(640,480))
  9.     while True:
  10.         # 读取当前帧
  11.         ret, frame = camera.read()
  12.         # 转为灰度图像
  13.         gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
  14.         # 检测人脸 返回列表 每个元素都是(x, y, w, h)表示矩形的左上角和宽高
  15.         faces = face_cascade.detectMultiScale(gray, 1.3, 5)
  16.         # 画出人脸的矩形
  17.         for (x, y, w, h) in faces:
  18.             # 画矩形 在frame图片上画, 传入左上角和右下角坐标 矩形颜色 和线条宽度
  19.             img = cv2.rectangle(frame, (x, y), (x+w, y+h), (255, 0, 0), 2)
  20.             # 把脸单独拿出来
  21.             roi_gray = gray[y: y+h, x: x+w]

  22.         cv2.imshow("camera", frame)
  23.         out.write(frame)
  24.         if cv2.waitKey(5) & 0xff == ord("q"):
  25.             break
  26.    
  27.     camera.release()
  28.     cv2.destroyAllWindows()


  29. if __name__ == '__main__':
  30.     detect()
复制代码
点击运行,程序就会自动把识别期间的视频录制下来,如图,
IMG_20190810_192140.jpg
上一张效果图,实时性还是很好的,如果要识别别的,例如香蕉啊,小狗啊什么的,咱们得自己训练分类器,后续有时间会发帖和大家讨论的
IMG_20190810_192007.jpg
再来一张动图,看下~~~嘿嘿
detect.gif
至此,人脸识别体验基本结束,后续还有更多好玩的,请继续关注哟~~
更多好玩的,可以关注一下~~~



小萃米 2019-8-21 14:49:36
学习学习
回复

举报

只有小组成员才能发言,加入小组>>

141个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /10 下一条

快速回复 返回顶部 返回列表