毕业设计-树莓派人脸检测语音交互机器人设计(五)-------------人脸检测、解决问题、帮助链接

前面讲述的部分已经实现了语音交互功能,而我的毕设增加了人脸检测,检测到人脸才开始进行语音交互,人脸检测的方法利用的是基于Haar特征的级联分类器检测。采用OpenCV实现。
OpenCV的安装过程:https://blog.csdn.net/weixin_43850620/article/details/104533026
下面直接上源码分析吧

import numpy as np
import cv2
import os
import time

# 这里选择级联分类器,根据自己的分类器位置进行调整
faceCascade = cv2.CascadeClassifier('./haarcascades/haarcascade_frontalface_alt2.xml')
color = (0, 255, 0)  #人脸框颜色
def face():
    num = 0
    cap = cv2.VideoCapture(0)
    print("----开始检测人脸------")
    while True:
        ret, img = cap.read()
        if not ret:            
            continue
        gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
        faces = faceCascade.detectMultiScale(
            gray,
            scaleFactor=1.2,
            minNeighbors=3,     
            minSize=(32, 32)
        )
        if len(faces) > 0:            #大于0则检测到人脸 
            print("num:",num)
            if num == 0:
                time1 = time.time()     
            num = num + 1                               
       for faceRect in faces:  #单独框出每一张人脸
           x, y, w, h = faceRect        
           cv2.rectangle(img, (x - 10, y - 10), (x + w + 10, y + h + 10), color, 2) 
            time2 = time.time()
            if time2 < time1 + 3:     
                if num > 4:
                    break
            else:
                num = 0
#        cv2.imshow('video',img)
        if cv2.waitKey(3) & 0xFF == ord('q'):
            break
    cap.release()
    cv2.destroyAllWindows()
    os.system("mplayer begin.mp3")

程序大概过程是:从摄像头中获取一张图像,放到级联分类器中检测人脸,如果检测到人脸,faces变量的值是大于0的。后面的程序我是想持续检测3s到人脸才判断是真的人脸,然后跳出循环结束人脸检测。这样做的目的是想减少误识别。

我的总代码整理好后会放到github上,链接:

最后做的实物视频:https://b23.tv/BV19t4y117Q1

------------------------------分割线-----------------------------------
这其中瞎折腾很多问题,现在才写这篇博客,大多问题都忘记,就写几个感触深的点吧

1、软件源问题,切换成国内源软件源地址不对的话,有些软件是apt-get下载不了的,之前乱删了一些东西,又瞎跟着网上的各种版本换源,最后树莓派VNC登录进去,界面很多东西都没了。
如果你要下载的软件apt-get没有,可以上国内源的网站上逛逛,看看有没有安装包,找最新的版本下载下来在上传到树莓派上用命令行安装,跟着网上用网络从网站下载的一般不是最新版本,例如raspi-config,我就试过古老的版本。
后续更新。。。。。。

-----------------------------下面放一大堆大佬的链接-----------------------
谢谢这些大佬!!!
参考链接:
OpenCV github开源库
摄像头基础
opencv实现人脸检测
https://www.cnblogs.com/cslunatic/p/3227655.html
asoundrc配置文件简单介绍
树莓派终端常用操作及常用目录
树莓派3b与电脑串口互相通信进行数据传输
树莓派安装图形化界面(PIXEL)
官方pyaudio文档介绍
树莓派配置麦克风录音
Raspbian解决安装依赖问题
树莓派安装软件解决依赖办法
树莓派下pyaudio安装与声音
解决采样率16K错误
树莓派音频播放测试
树莓派上安装中文字体和拼音输入
树莓派连接WIFI

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值