【树莓派】yolov5 Lite,目标检测,行人检测入侵报警

延续之前的程序:
https://qq742971636.blog.csdn.net/article/details/138172400

文章目录

  • 播放声音
    • pygame
    • 不出声音怎么办(调节音量)
    • 树莓派上的音乐播放器(可选)
    • 命令行直接放歌(尝试放mp3歌曲)
  • 摄像头检测与绑定
    • 如何绑定usb摄像头(我没有绑定成功)
  • 行人入侵后放歌
  • 问询、帮助

播放声音

pygame

可以使用Python的pygame库来在树莓派上播放MP3音频文件。首先,你需要确保你的树莓派上已经安装了pygame库。你可以使用以下命令在树莓派上安装pygame:

sudo apt-get update
sudo apt-get install python3-pygamepython3 -m pip install pygame

安装完成后,你可以使用以下Python代码在树莓派上播放MP3文件:

import pygamedef play_mp3(file_path):pygame.mixer.init()pygame.mixer.music.load(file_path)pygame.mixer.music.play()if __name__ == "__main__":mp3_file = "tts.mp3"  # 替换为你的MP3文件路径play_mp3(mp3_file)

这个简单的程序将初始化pygame的音频模块,加载指定的MP3文件,并开始播放。请确保将example.mp3替换为你实际的MP3文件路径。

需要注意的是,这段代码在执行pygame.mixer.init()时会占用音频设备,可能会导致其他音频应用无法使用。

这软件可以播放出音乐:

在这里插入图片描述

不出声音怎么办(调节音量)

我的pygame无法播放,我查了一些播放软件:

alsa-utilsalsa-utils是一个包含了一系列音频工具的软件包,你可以使用其中的工具来管理和调试音频设备。你可以通过以下命令安装:

sudo apt-get install alsa-utils

安装完成后,你可以使用alsamixer命令来打开一个交互式的音频控制界面,可以在这里调整音量和其他设置。

在这里插入图片描述

树莓派上的音乐播放器(可选)

在树莓派上安装播放音乐的软件通常很简单。你可以使用现有的软件包管理器(如apt)来安装各种音乐播放器。以下是几个常用的音乐播放器及其安装方法:

  1. VLC 媒体播放器

    VLC是一个功能强大的跨平台媒体播放器,它支持播放各种音频和视频格式。

    sudo apt-get update
    sudo apt-get install vlc
    

    安装完成后,你可以在图形界面中打开VLC并播放音乐。

  2. MPD(Music Player Daemon)

    MPD是一个轻量级的音乐播放器,它以守护进程的方式运行,可以通过各种客户端控制。

    sudo apt-get update
    sudo apt-get install mpd mpc
    

    安装完成后,你可以通过命令行或MPD的客户端来控制音乐播放。

  3. Mopidy

    Mopidy是一个使用Python编写的音乐播放器,支持各种音乐源和插件。

    sudo apt-get update
    sudo apt-get install mopidy
    

    安装完成后,你可以配置Mopidy以连接到各种音乐源,并使用其扩展功能。

  4. Rhythmbox

    Rhythmbox是一个简单易用的音乐播放器,集成于GNOME桌面环境中。

    sudo apt-get update
    sudo apt-get install rhythmbox
    

    安装完成后,你可以在图形界面中打开Rhythmbox并播放音乐。

这些是一些常见的音乐播放器,在树莓派上安装这些软件非常简单。根据你的偏好和需求选择合适的播放器进行安装即可。

命令行直接放歌(尝试放mp3歌曲)

这个装上:

sudo apt-get update
sudo apt-get install alsa-utilssudo apt-get update
sudo apt-get install mpg321

命令行放歌:

mpg321 -o alsa tts.mp3

在这里插入图片描述

成功播放!

摄像头检测与绑定

如何绑定usb摄像头(我没有绑定成功)

每次摄像头接入后可能会变,如何绑定usb摄像头?

安装这个:

apt install v4l-utils

查看树莓派的设备:

v4l2-ctl --list-devices

找到摄像头信息:udevadm info /dev/video5

在这里插入图片描述
创建 udev 规则: 使用你喜欢的文本编辑器创建一个新的 udev 规则文件。例如:

vim /etc/udev/rules.d/10-webcam.rules

在文件中添加一条规则,用于匹配你的摄像头,并指定固定的设备名称,比如写入:

SUBSYSTEM=="video4linux", ENV{ID_PATH}=="platform-fd500000.pcie-pci-0000:01:00.0-usb-0:1.3:1.0", SYMLINK+="camera1_name"

重新加载 udev 规则: 保存文件后,重新加载 udev 规则以使更改生效:

sudo udevadm control --reload-rules  # 这步骤好像没用 我重启了

重新插入摄像头: 现在,重新插入你的摄像头,它应该被分配到指定的设备名称 /dev/camera1_name。

行人入侵后放歌

之前的代码加上这个代码即可:

import cv2
import os
import time
from datetime import datetime
from v5lite_e_onnx_end2end import yolov5_lite
import threadingdef play_audio_thread(file_path):"""在新线程中播放音频文件"""os.system(f'mpg321 -o alsa {file_path}')  # 使用os.system调用命令行播放音频def play_audio(file_path):"""播放音频文件"""threading.Thread(target=play_audio_thread, args=(file_path,)).start()def take_screenshot(frame, folder='images'):"""保存截图"""os.makedirs(folder, exist_ok=True)  # 创建文件夹now = datetime.now().strftime('%Y%m%d_%H%M%S')  # 当前日期时间作为文件名img_name = f'{folder}/{now}.jpg'cv2.imwrite(img_name, frame)print(f'Screenshot saved as {img_name}')def main():cap = cv2.VideoCapture(0)modelpath = 'v5lite-e_end2end.onnx'classfile = 'coco.names'net = yolov5_lite(modelpath, classfile)last_alert_time = 0  # 上次报警的时间while True:ret, frame = cap.read()if not ret:breakdetected_img, haveobj = net.detect(frame)cv2.imshow('Intrusion Alert', detected_img)current_time = time.time()if haveobj and current_time - last_alert_time > 5:  # 如果检测到人且距离上次报警超过5秒play_audio('tts.mp3')  # 播放音频last_alert_time = current_time  # 更新报警时间# 确保音频播放结束通常需要音频播放器的支持,这里简化处理直接截图take_screenshot(detected_img)if cv2.waitKey(1) & 0xFF == ord('q'):breakcap.release()cv2.destroyAllWindows()if __name__ == '__main__':main()

问询、帮助

https://docs.qq.com/sheet/DUEdqZ2lmbmR6UVdU?tab=BB08J2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/828825.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

nginx负载均衡策略

1、轮询(Round Robin)-默认 依次转发,适用于多台服务器性能相近 2、加权轮询(Weighted Round Robin) weight高的优先分配,适用于多台服务器性能相差较大 3、IP hash 基于客户端 IP 地址的负载均衡策略&a…

Windows 本地直接使用 SSH,SFTP 以及 SFTP下载文件到 Windows/mac 本地或上传(没有客户端时)

windows 本地打开 ssh 以及 sftp 等的方式 1.win(windows图标那个键) r 直接搜 然后从打开的位置运行 如果是打开 sftp 前面的 ssh 换一下成sftp 就行 直接从地址栏输入也可以直接转过去 通过 windows 的工具直接访问 sftp 后将文件下载到自己的windows 或 mac 上 先通过…

【C++】---STL之list的模拟实现

【C】---STL之list的模拟实现 一、list模拟实现思路二、结点类的实现三、list迭代器的实现1、ListIterator类2、构造函数3、operator*运算符重载5、operator->运算符重载6、operator!运算符重载7、operator运算符重载8、前置9、后置10、前置--11、后置-- 四、lis…

JAVAEE—HTTPS和ssl证书

0[toc] 什么是HTTPS HTTPS 也是一个应用层协议. 是在 HTTP 协议的基础上引入了一个加密层. HTTP 协议内容都是按照文本的方式明文传输的. 这就导致在传输过程中出现一些被篡改的情况而HTTPS则是新采用加密的方式进行传输 为什么需要HTTPS 为什么要使用HTTPS呢?这…

win c++使用lua环境配置 5.3.5版本

编译lua 下载lua源码,github仓库 使用vs编译源码,新建一个静态库项目(只会生成lib文件),想要dll的话就新建dll项目(有一个lib文件和dll文件) 把lua源码下面的文件夹都是,复制到vs项目中 lib目录是我手动…

配置etcd、apiserver使用的cpu和内存资源

etcd pod 默认使用的cpu和内存都是100M,当集群变大时,资源会不够用,导致异常,如: apiserver 默认使用cpu为250M k8s-master121 kubelet[31020]: E0425 14:41:54.026671 31020 controller.go:187] failed to update lease, error: etcdserver: request timed out kubelet[3…

四、搭建 FFmpeg,实战直播推流

目录 1、FFmpeg 简介 2、FFmpeg 项目组成 3、使用 ffmpeg 的方式分为两种: 5、FFmpeg 命令行 <

MongoDB聚合运算符:$sinh

MongoDB聚合运算符&#xff1a;$sinh 文章目录 MongoDB聚合运算符&#xff1a;$sinh语法使用举例双曲正弦值角度双曲正弦值弧度 $sinh聚合运算符用来计算双曲正弦值&#xff0c;返回以弧度为单位的指定表达式的双曲正弦值。 语法 { $sinh: <expression> }<expression…

【QEMU系统分析之启动篇(十七)】

系列文章目录 第十七章 QEMU系统仿真的显示初始化分析 文章目录 系列文章目录第十七章 QEMU系统仿真的显示初始化分析 前言一、QEMU是什么&#xff1f;二、QEMU系统仿真的启动分析1.系统仿真的初始化代码2.主循环数据初始化3. qemu_init_displays()init_displaystate()qemu_di…

4.25java项目小结

完成了头像的显示&#xff0c;能将头像设置圆形&#xff0c;从数据库传输头像&#xff0c;客户端接收并在界面上展示&#xff0c;并能从文件选择图片 、

Golang | Leetcode Golang题解之第49题字母异位词分组

题目&#xff1a; 题解&#xff1a; func groupAnagrams(strs []string) [][]string {mp : map[[26]int][]string{}for _, str : range strs {cnt : [26]int{}for _, b : range str {cnt[b-a]}mp[cnt] append(mp[cnt], str)}ans : make([][]string, 0, len(mp))for _, v : ra…

20240425金融读报:银行绿色数据收集ESG银行物联网智慧贵金属案例

1、银行与绿色产业之间风险-存在环保信息壁垒&#xff1a;收集政府何市场披露数据&#xff0c;生成ESG报告&#xff0c;作为评级、贷款依据或强控指标 2、 中国建设银行智慧贵金属-》同理可推智慧押品&#xff1a;1、梳理需求&#xff08;看现有贵金属操作流程&#xff0c;并分…

金融级国产化替代中间件有哪些?

过去&#xff0c;国内中间件市场一直由IBM、Oracle等国际大型企业所主导&#xff0c;这在一定程度上限制了对国内企业多样化和个性化需求的满足&#xff0c;尤其是在实现底层硬件与上层应用软件之间高效、精准匹配方面。面对日益复杂的国际局势&#xff0c;金融安全已成为国家整…

docker 安装 Sql Server

docker 安装 Sql Server 官网地址&#xff1a;https://learn.microsoft.com/zh-cn/sql/linux/quickstart-install-connect-docker?viewsql-server-ver16&tabscli&pivotscs1-bash 安装命令 sudo: 这是一个在 Linux 系统上以超级用户权限运行命令的关键字。它用于确保…

负载均衡集群——LVS

目录 1.LVS简介 2.LVS体系结构 3.LVS相关术语 4. LVS工作模式 5. LVS调度算法 6.LVS集群介绍 6.1 LVS-DR模式 6.2 LVS – NAT 模式 6.3 LVS – TUN 模式 7.LVS 集群构建 7.1 LVS/NAT 模式配置 实验操作步骤 步骤 1 Nginx1 和 Nginx2 配置 步骤 2 安装和配置 LVS …

windows下的文件路径怎么在pycharm中使用(python)

在Windows操作系统中&#xff0c;文件路径的格式与Unix/Linux系统略有不同&#xff0c;主要在于路径分隔符的使用。Windows系统通常使用反斜杠&#xff08;\&#xff09;作为路径分隔符&#xff0c;而Unix/Linux系统使用正斜杠&#xff08;/&#xff09;。当在Python中处理文件…

【AIGC调研系列】Bunny-Llama-3-8B-V与其他多模态大模型相比的优劣

Bunny-Llama-3-8B-V作为基于Llama-3的多模态大模型&#xff0c;其优势主要体现在以下几个方面&#xff1a; 性能超越其他模型&#xff1a;根据我搜索到的资料&#xff0c;Bunny-Llama-3-8B-V在多个主流Benchmark上表现良好&#xff0c;超越了LLaVA-7B、LLaVA-13B、Mini-Gemini…

Navicat连接SQLSever报错:[08001] MicrosoftTCP Provider 远程主机强迫关闭了一个现有的连接

Navicat连接SQLSever报错&#xff1a;[08001] [Microsoft][SQL Server Native Client 10.0]TCP Provider: 远程主机强迫关闭了一个现有的连接 问题分析 旧版的MSSQL 如果不是最新版的&#xff0c;可以去这安装以下即可。 最新版的MSSQL 如果是安装最新版的MSSQL连接不上很正…

2024高级卫生职称考试报名时间汇总

20地报名时间汇总&#xff0c;其他时间安排见图 上海&#xff1a;4.23-5.24 黑龙江&#xff1a;4.23-5.24 陕西&#xff1a;4.23-5.24 重庆&#xff1a;4.23-5.24 浙江&#xff1a;4.23-5.24 20地报名时间汇总 甘肃&#xff1a;4.23-5.24 江西&#xff1a;4.28-5.10 河北&#…

【黑马点评Redis——004达人探店】

1.发布探店笔记 2.点赞 利用Redis中的Set集合来判断是否点赞过。 3.点赞排行榜 可以通过SortedSet来按点赞时间进行排序。 4.好友关注 4.1.关注和取关 4.2.共同关注 可以通过set实现交集的功能 4.3.关注推送 4.3.1 拉模式 拉模式&#xff08;Pull&#xff09;&#x…