【基于Xilinx ZYNQ7000的PYNQ框架项目】04开发板上运行人脸识别模型

04开发板上运行人脸识别模型


前言


书接上文,成功将电脑摄像头视频流传输到开发板并本地存储后,要做的就是使用PYNQ的pyhotn代码逐帧读取视频流,进行人脸识别啦。因为当初做这个项目的主要目的是锻炼嵌入式开发的能力,所以人脸识别模型是直接使用的opencv自带的分类器。(其实是懒得自己再捣鼓个模型了)

我使用的分类器是haarcascade_frontalface_alt2.xml,下载opencv后,在文件夹内搜索 haarcascade_frontalface_alt2.xml 即可找到该分类器。

懒得下载的话我也免费上传到我的资源上了,小黄能吃辣的资源下载主页,人脸识别代码也放一起了,点击进去下载即可。


一、人脸识别代码详解


import cv2
import os


def FaceDet():

    # 创建级联分类器(有时候只写 haarcascade_frontalface_alt2.xml 会报错,建议写出完整的分类器存放路径)
    face_casecade = cv2.CascadeClassifier('/home/xilinx/jupyter_notebooks/haarcascade_frontalface_alt2.xml')
    
    # 视频流存储路径(不一定要跟我的相同,可以自己设置存放路径)
    video_path = "/home/xilinx/jupyter_notebooks/VideoFlows"
    files = os.listdir(video_path)  
    
    while (True):
    
        # 循环读取视频流每帧图像,并对该帧使用分类器进行人脸识别,然后显示
        for file in files:
            img = cv2.imread(video_path+"/"+file)
            
            # 将img转为灰度图
            if img.ndim == 3:
                gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
            else:
                gray = img
                
            # 人脸识别   输入:灰度图  输出:人脸区域的外接矩形框
            faces = face_casecade.detectMultiScale(gray,1.3,5)
            
            # 框出人脸
            for (x,y,w,h) in faces:
                img = cv2.rectangle(img, (x,y), (x+w,y+h), (255,0,0), 2)
                
            # 显示图像
            cv2.imshow('faceDetect',img)
            cv2.waitKey(100)
            

if __name__ == '__main__':
    FaceDet()


总结


本部分要注意的地方就是代码写的分类器 haarcascade_frontalface_alt2.xml 的路径要跟实际存放的位置一致,而且代码里最好把完整的路径写出来。其它地方应该问题不大。

有不清楚的地方,欢迎大家在评论区交流~

您的关注、点赞与收藏,是我持续创作优质博客的最大动力!

本项目系列文章:

【基于Xilinx ZYNQ7000的PYNQ框架项目】01人脸识别项目介绍与展示

【基于Xilinx Zynq7000的PYNQ框架项目】02 PYNQ镜像制作

【基于xilinx Zynq7000的PYNQ框架项目】03 Socket实现开发板和电脑的实时视频传输并存储图片

【基于Xilinx ZYNQ7000的PYNQ框架项目】05使用Overlay库和python父子进程实现开发板按键控制LED灯流水或熄灭

更多优质博客:小黄能吃辣的CSDN主页

  • 11
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小黄能吃辣

谢谢您对我创作优质内容的支持~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值