IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python之监控以及人脸识别播报语音功能 -> 正文阅读

[Python知识库]python之监控以及人脸识别播报语音功能

本文总共用到了笔记本自带摄像头和一个外接摄像头,在人脸识别用到的人脸识别的xml文件会在后文中给出链接,代码还有很大的优化空间,等后面有时间了就慢慢优化,目前运行尚未出现异常现象,语言播报目前识别人脸播报会引起卡顿,仍是一个待优化的点

import cv2
import time  
import win32com.client as win
startup=time.time()
speak = win.Dispatch("SAPI.SpVoice")
speak.Speak('视频录制与人脸识别正在启动,正在载入人脸识别所需项目')
faces_list=[]  
number_list=['60','120','180']
face_cascade = cv2.CascadeClassifier('RecognitionModel.xml')             
today=time.time()
cap = cv2.VideoCapture(0)
cap_usb=cv2.VideoCapture(1)
fourcc = cv2.VideoWriter_fourcc(*'XVID')
size = (int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)), int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)))
size_usb=(int(cap_usb.get(cv2.CAP_PROP_FRAME_WIDTH)), int(cap_usb.get(cv2.CAP_PROP_FRAME_HEIGHT)))
out = cv2.VideoWriter('视频保存{}.avi'.format(time.strftime('%Y-%m-%d_%H_%I_%M_%S')), fourcc,5.0, size)
out_usb=cv2.VideoWriter('人像识别保存{}.avi'.format(time.strftime('%Y-%m-%d_%H_%I_%M_%S')),fourcc,5.0,size)
start=time.time()
speak.Speak('摄像机0号与摄像机USB正在启动中')
def read():
    while True:
        ret, frame = cap.read()
        ret_usb,frame_usb=cap_usb.read()
        grey_usb=cv2.cvtColor(frame_usb,cv2.COLOR_BGR2GRAY)
        faces_usb=face_cascade.detectMultiScale(grey_usb,scaleFactor=1.5,minNeighbors=5)
        for(x,y,w,h) in faces_usb:
                width = x+w
                height = y+h
                strok=2
                color=(255,0,0)
                cv2.rectangle(frame_usb,(x,y),(width,height),color,strok)
                faces_list.append(len(faces_usb))
        
        frame = cv2.flip(frame, 1)
        frame_usb = cv2.flip(frame_usb, 1)
        out.write(frame)
        out_usb.write(frame_usb)
        if faces_list!=[]:
            cv2.putText(frame_usb,"Find {} faces".format(faces_list[-1]),(10, 30), cv2.FONT_HERSHEY_SIMPLEX, 0.8,(0, 255, 0), 2)
        cv2.putText(frame,"Press Q to save and quit",(10, 30), cv2.FONT_HERSHEY_SIMPLEX, 0.8,(0, 255, 0), 2)
        cv2.imshow('frame', frame)
        cv2.imshow("frame_usb find face", frame_usb)
        endgo=time.time()
       # conumber_list.append(round(endgo-start,1))
        #conumber_list=list(set(conumber_list))
        if str(int(endgo-start)) in number_list:
            speak.Speak("监控视频导出成功")
            speak.Speak('人脸识别视频导出成功')
            out.write(frame)
            out_usb.write(frame_usb)
        elif int(endgo-start)>=36000:
            speak.Speak('设定时间已到')
            out.write(frame)
            out_usb.write(frame_usb)
            break
        else:
            print(str(int(endgo-start)))
            time.sleep(0.5)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            speak.Speak("监控视频导出成功")
            speak.Speak('人脸识别视频导出成功')
            break

    cap.release()
    cap_usb.release()
    out.release()
    out_usb.release()

read()

cv2.destroyAllWindows()
end=time.time()
speak.Speak('虚拟空间系统已经关闭,系统运行总共时间为{}秒'.format(int(end-startup)))

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-02-06 13:47:28  更:2022-02-06 13:48:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 0:30:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码