LinuxGod.net
Linux大神网——精选每一篇高品质的技术干货
  1. 首页
  2. 开源快讯
  3. 正文

关键词树莓派摄像系统自动跟踪语音控制和定位模块结合用户识别

2023年1月17日 36点热度

目录

基于树莓派的智能摄像系统

摘要

目前,在教室中的网课录制和课程录制当中,由于被摄像机固定大大限制了老师们的发挥,此外还增加了摄像人员的负担;在舞台表演和体育赛事的直播当中,快速高效的目标聚焦也会给观众带了非凡的体验。但是目前大部分领域任然依靠人力。因此我们项目的目标旨在开发出一款开发出便携,快速,准确,自主,直观的“可选择目标的跟踪摄像系统”。该摄像系统由四个模块构成,模块一是自动跟踪系统,模块二是语音控制和定位模块结合用户识别,模块三是APP远程监控和选择目标跟踪模块,模块四是用户身份验证。所有模块基于树莓派实现linux系统下树莓派拍照,在主要功能部分,由于树莓派算力不够,我们采用云端的思想,利用远程电脑为树莓派提供额外的算力。本系统具有简便,高效和廉价的特点,相信能在未来的市场的相关领域大规模使用。

关键词树莓派 摄像系统 自动跟踪 语音控制和定位模块结合用户识别 APP 用户身份验证

第一章 绪论

1.项目背景

需求:目标追踪应用于生活的方方面面,但在大部分领域目标依靠于手动校准

树莓派安装linux系统_linux系统下树莓派拍照_树莓派usb摄像头拍照

相关需求的领域调研:

所以现在极具需要一个一个自动的智能化的摄像系统减轻人力在相关领域的负担,同时提高摄像聚焦的效率。

2.项目目标

我们项目旨在开发出一款便携,快速,准确,自主,直观的‘可选择目标的跟踪摄像系统”。

3.项目总体架构

下面是项目的总体架构图:

树莓派安装linux系统_linux系统下树莓派拍照_树莓派usb摄像头拍照

本项目一共包括四个模块:该摄像系统由四个模块构成,模块一是自动跟踪系统,模块二是语音控制和定位系统,模块三是APP远程监控和选择目标跟踪模块,模块四是用户身份验证。

自动跟踪系统是:我们的摄像系统选择目标后,摄像系统能狗调整自身角度(舵机,小车轮子)使目标处在视野中心的一定范围内,并且与目标保持一定的距离。

语音控制和定位模块结合用户识别:语音控制包括关键词唤醒和语义识别,通过ld3320进行本地的关键词唤醒并且计算关键词位置来找到用户发出声音的位置。通过百度API识别用户命令,同时结合用户识别验证功能。当得到关键词声源位置时,摄像头找到目标,并通过人脸识别判断用户是否有权限控制系统。

其中目前仅实现了以上部分的两个模块:

未来我们还会实现以下的部分,因为一个项目的锻炼是一个长期的过程。

linux系统下树莓派拍照_树莓派安装linux系统_树莓派usb摄像头拍照

APP远程监控和选择目标跟踪模块:APP有两种选择模式,自动模式和手动模式,在自动模式下,摄像系统能狗自己跟踪已经选择的目标,然后将画面信息传回到APP页面上并显示出来;手动模式,是人为可以操作摄像系统的动力系统,控制摄像系统。

用户身份验证:为让产品更加的完善化,加入人脸识别或者密码验证,来增加用户的隐私保护。

第二章 前期的准备

1.系统的烧录:

使用win32diskimager烧录镜像系统,镜像系统是树莓派官方的系统

2.更换树莓派的版本

由于树莓派官方的系统自带的python是2.7版本,我们将其升级为python3.7版本,以便更利于我们项目的开发。

3.安装库

由于项目需要,我们下载了4.5.5版本的opencv和2.1版本的tensorflow,还有pytorch-1.8.0。

安装pytorch:

sudo apt-get install libopenblas-dev libblas-dev m4 cmake cython python3-dev python3-yaml python3-setuptools python3-wheel python3-pillow python3-numpy
pip3 install torch-1.8.0a0+56b43f4-cp37-cp37m-linux_armv7l.whl
pip3 install torchvision-0.9.0a0+8fb5838-cp37-cp37m-linux_armv7l.whl

4.配置网路

目的:一开始我们打算让树莓派进行上网,于是就想着利用网线连接树莓派和电脑,更改树莓派下的一些配置,让其能够得到的电脑的网络。

问题:但是我们在树莓派中更改一些网络文件,遇到vim编辑器linux系统下树莓派拍照,更改之后,保存不了的问题,后来更改的管理员的权限解决了此问题吧。

解决方案:后来放弃了上述的树莓派上网的方案,直接将树莓派与路由器相连,通过登录路由器的后台管理页面。查看路由器给树莓派分配的IP地址。之后通过此IP,登录VNC对树莓派进行操作上网。

5.树莓派各种外设的准备和配置

1.摄像头的准备和配置

USB连接摄像头和树莓派,进行树莓派VNC配置摄像头的参数。

2.其他相关舵机配置

查官方文档,对应各GPIO口

第三章 树莓派运行yolov5和tensorfolw lite

1.在树莓派运行yoloV5

1.将官方yolov5下载到树莓派的/home/pi路径下。

2. 根据requirements文件里的环境要求安装环境。

3.配置摄像头路径,以及摄像头参数。

4.然后在树莓派的termnial运行相关的命令。

2.在树莓派上运行tensorflow-lite

1.将官方的tensorflow-lite模型下载到树莓派上。

2.根据requirements文件里的环境要求安装环境。

3.配置摄像头路径,以及摄像头参数。

4.然后在树莓派上运行tensorflow目标检测模型。

相关命令如下:

python3 detect.py  --enableEdgeTPU --model efficientdet_lite0_edgetpu.tflite

3.效果分析

树莓派安装linux系统_树莓派usb摄像头拍照_linux系统下树莓派拍照

在树莓派上直接运行yoloV5画面的实时显示效果仅有,每秒0.144帧,效果十分的不好;同时我们在树莓派上运行轻量版的tensorflow-lite模型,性能有所提升,但是每秒也仅是4.5帧左右,所以直接在树莓派上运行深度学习目标检测的相关模型,效果并不是很好,不能很好的体现我们项目的实时跟踪效果。

所以后来,我们使用了云端的思想完成此次的任务。

第四章 自动跟踪模块

1 自动跟踪算法的选择

在实际应用中,我们曾将粒子滤波、YOLOV5等算法考虑在内,但是识别速度、成功率最高的是目前使用YOLOV5。

对于粒子滤波算法,用很多个粒子代表定位物体,每个粒子有权重代表该粒子位置的可信度。在prediction阶段,根据物体的控制信息(速度、转角等)与motion model预测出每个粒子下个时刻的位置;在update阶段,根据物体的观测值与地图值计算出每个粒子的权重;在resample阶段,根据粒子的重新采样粒子。这样,粒子的位置会越来越趋近真实的物体位置。通过对算法的分析,我们可以很容易发现,该算法具有一个其他算法不具有的优点——不需要对物体太多的先验信息就可以完成跟踪过程。在工程应用中,我们只需要获取待跟踪物体的一张照片就可以实现跟踪过程。但通过我们在计算机上进行实验,基于蒙特卡洛模拟的粒子滤波算法的效率远远比我们想象的低——往往需要数倍于视频流的时间才能实现对目标的跟踪。考虑到这个特性,实时跟踪几乎不可能实现。

YOLOV5算法本质上是目标识别的算法,由于近年来的不断发展以及对其训练集的不断补充,现有的神经网络现在已经可以快速识别数十种不同的物体,尤其是对人体的识别具有很高的效率与成功率。在我们的计算机实现过程中,处理每帧照片只需要0.003s(RTX2060Ti),可以很轻松地完成实时跟踪功能。

不同算法

评价指标

粒子滤波

YOLOV5

待跟踪的先验信息

少

多

准确度

高

高

实时性

低

高

根据我们的需求,我们最终选择YOLOV5算法作为我们的核心跟踪检测算法。

2 计算平台的选择

我们将YOLOV5搭建在树莓派平台上,由于树莓派算力有限的缘故,其识别速度远不如计算机,每秒只可以处理1/7张照片。因此,在树莓派上运行同时取得实时性的目标几乎不可能实现。

为此,我们将树莓派作为边缘计算平台,将视频流通过WIFI传给云端PC,由PC进行计算后将物体坐标传给树莓派,再完成实时跟踪的目标。通过我们的工程实现红旗linux系统,实际效果预期几乎一致,说明我们的设计经得起考验。

3.自动跟踪模块总体架构

由于树莓派运行深度学习模型算力不够,所以我们将树莓派作为边缘计算设备使用。

下面是自动跟踪系统模块的总体架构图:

整个工作的过程可以概括为:

linux系统下树莓派拍照_树莓派安装linux系统_树莓派usb摄像头拍照

目标信息由摄像头捕捉,经树莓派转换MJPG视频流处理传送给PC端,PC端运行底层架构为yolov5深度学习的模型后,通过socket通信给树莓派返回目标位置信息,树莓派产生控制信息,传送给运动系统,运动系统反应跟踪目标。

将其与APP联系之后之后的模块架构图为:

树莓派usb摄像头拍照_树莓派安装linux系统_linux系统下树莓派拍照

第五章 语音控制和定位模块结合用户识别

1.语音识别及用户判断系统架构图

树莓派usb摄像头拍照_树莓派安装linux系统_linux系统下树莓派拍照

2.语音识别及用户判断系统

语音控制包括关键词唤醒和语义识别,通过ld3320进行本地的关键词唤醒并且计算关键词位置来找到用户发出声音的位置。通过百度API识别用户命令linux安装教程,同时结合用户识别验证功能。当得到关键词声源位置时,摄像头找到目标,并通过人脸识别判断用户是否有权限控制系统。

下图是语音模块的预期效果架构图:

树莓派安装linux系统_树莓派usb摄像头拍照_linux系统下树莓派拍照

第六章APP远程监控和选择目标跟踪模块

1. APP远程监控

树莓派usb摄像头拍照_linux系统下树莓派拍照_树莓派安装linux系统

在未来我们摄像系统的进一步应用中,在很多场景下,比如危险场地、人工难以到达地区的探索等等,都需要为我们可以实现APP远程监控,使得我们的小车可以在无人工控制的情况下前后左右方向移动。无论是基础框架,还是实现难度,其实现框架都是十分简单的,只需要借助WLAN这个桥梁,就可以实现APP远程监控的功能。

2.选择目标跟踪模块

该模块的大体框架如下:

linux系统下树莓派拍照_树莓派安装linux系统_树莓派usb摄像头拍照

通过WIFI模块将视频从树莓派传到手机APP,手机APP选择目标后将选择信息传给云端计算机,云端计算机进行计算后将目标位置信息传回树莓派,由此形成一个闭环并完成选择目标跟踪模块。

我们目前已经可以实现类间物体的识别,类内目标的分辨识别还有待进一步研究。

关于该算法的进一步实现,我们已经意识到仅仅依靠YOLOV5并不能实现类间物体的分辨识别,在下一步的研究中,我们将借助卡尔曼滤波和YOLOV5的结合,从而实现该功能。

第七章 用户身份验证

树莓派usb摄像头拍照_linux系统下树莓派拍照_树莓派安装linux系统

1.用户身份验证模块架构图

2.用户身份验证模块

预期用户身份验证模块由人脸识别构成,用户再启动设备之前,需要进行登陆操作。为了让登陆这一个操作变得更加的简便,我们打算使用视觉识别中的人脸识别。

下图是人脸识别模块的具体架构图:

树莓派usb摄像头拍照_linux系统下树莓派拍照_树莓派安装linux系统

第八章 总结

1.小结

摄像系统的准确性和快速性,是我们在实际的应用过程中需要考虑的问题。我们项目在第一阶段当中先解决跟踪目标问题;第二阶段,考虑跟踪目标的准确性和反应跟踪的快速性,以及语音模块的准确性和实时性。

2.项目推广

项目可以不局限于树莓派,可以将整个项目的设计方案和流程加入到其他的嵌入式处理器上。

举例如下:

我们可以选择安卓手机作为嵌入式处理器平台,进行整个项目系统的移植。

树莓派usb摄像头拍照_linux系统下树莓派拍照_树莓派安装linux系统

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: 山莓 树莓派 树莓派摄像头
最后更新:2023年1月17日

Linux大神网

每日更新,欢迎收藏♥ 不积跬步无以至千里,加油,共勉。

点赞
< 上一篇
下一篇 >

文章评论

您需要 登录 之后才可以评论

Linux大神网

每日更新,欢迎收藏♥
不积跬步无以至千里,加油,共勉。

最新 热点 随机
最新 热点 随机
阿里云>社区>主题地图S>查看存储推荐 Linux的内核放在了哪里?/boot的启动目录一览 Linux中修改文件权限的命令、创建者所在组、所有人 linux到底难不难学呢?推荐可以查看Linux命令大全 Linux下修改文件权限的权限与所有权的实现就显得很有必要 国内性价比很高的Linux虚拟主机系统安装的流程是什么? 1.Linux磁盘分区和目录Linux发行版本之间的差别很少? 基于命令修改文件的权限命令-ld 学习Linux最简单、最实用的环境就是虚拟机环境(上) 计算机是如何启动的?、内核操作系统的启动流程 一个免费软件时间跟进的小白鼠是什么鬼?专题 如何在Linux上安装虚拟机的结果大多都是怎么安装的 Linux启动过程中的几个部分内核的引导(图) 指令中各个make-C~/linuxM=`pwd编译 虚拟机安装Ubuntu操作系统-Ubuntu空间20G镜像下载 启动第一步--加载BIOS当你打开计算机电源(组图) 个人笔记本安装Ubuntu20.04LTS下载地址 腾讯云服务器上也搭建一套环境,安装成功自动启动 go语言被称作互联网时代的c语言,用来开发嵌入式linux的理由 Linux5.12的推送请求不断涌入新开放的合并窗口预计4月底看到它的稳定版本
Linux5.12的推送请求不断涌入新开放的合并窗口预计4月底看到它的稳定版本Linux自主访问控制机制模块详细分析:网络安全标准资料go语言被称作互联网时代的c语言,用来开发嵌入式linux的理由【指南】Linux中网络接口卡的10种方法使用腾讯云服务器上也搭建一套环境,安装成功自动启动Linux线程的操作、多线程的同步和互斥的基本单位个人笔记本安装Ubuntu20.04LTS下载地址RedHatLinux-安装MySQL入门到精通启动第一步--加载BIOS当你打开计算机电源(组图)内核为什么需要内核线程Linux内核可以看作一个服务进程?虚拟机安装Ubuntu操作系统-Ubuntu空间20G镜像下载再传到linux2.配置数据库的环境和路径3.登陆数据库修改指令中各个make-C~/linuxM=`pwd编译Linux内核页表管理中那些鲜为人知的作用是什么?(图)Linux启动过程中的几个部分内核的引导(图)Linux常用应用工具软件安装管理——RedHatEnterprise存储库如何在Linux上安装虚拟机的结果大多都是怎么安装的如需最新mainline内核版本下载并安装新版本删除旧内核一个免费软件时间跟进的小白鼠是什么鬼?专题关于Linux系统版本命令的一些看法及解决办法的通知
阿里云轻量级应用服务器配置远程服务器配置 Linux环境下,处理磁盘空间已满,导致数据库无法正常使用 你没有装系统,你装了系统就可以用了 CentOS8虚拟机的网络设置对话框的解决方法和解决办法 Linux基金会主席Zemlin宣布中标软件和阿里云成为Linux会员 VS2015安装VC_Linux.exe安装VS2015软件和Linux系统 Linux下强大的shell,模式下配置 Linux修改默认端口更改-mr7777端口修改 学习嵌入式linux编程开发应该要必备什么条件?(一) 零基础学习PHP看什么视频教程推荐PHP开发实战权威指南 linux基础命令注意:Linux命令区分大小写,小心输入内容 虚拟主机技术极大怎么样?如何选择多个网站.Q. linux系统怎么在文件夹里搜索文件?方法总结及方法 更新原压缩包中的文件这五个是独立的命令,压缩解压都要用到 udpsocket编程1.UDP编程框架常用函数小插曲 防火墙和SELinux关闭防火墙及SELinux链接进行下载地址 如何增加一块硬盘虚拟机插硬盘分区格式化一、命令查看设备情况 贝锐官网向日葵LinuxX系统安装路径下载及下载 嵌入式Linux软件设计系统设计的一般流程是什么?(图) 不同服务器启动不同端口一样修改教程
标签聚合
unix 文件目录 shell linux服务器 软件 linux系统 虚拟机 sudo 命令模式 电脑
书籍
课程
技术群
技术干货大合集↓
  • 2023年1月 / 150篇
  • 2022年12月 / 187篇
  • 2022年11月 / 76篇

COPYRIGHT © 2023 linuxgod.net ALL RIGHTS RESERVED.