关于伴行天使车载监护器的技术路线

为了判断分析并反馈孩童是否昏睡状态,以预防因分心后排而导致的交通事故,本团队根据基于回归树对齐算法中获取的数据,建立了疲劳度评分机制。

本评分机制采用人脸关键点智能标注模型检测人脸,通过人脸识别68特征点检测、分别获取左右眼以及嘴部的面部标志的索引,通过对视频流进行灰度化处理,检测出人眼的位置信息通过影像中人脸相应关键点位的前后变化及相对位置变化进行分析,可以得出孩童眨眼频率、打哈欠、瞌睡点头等显示疲劳程度的行为标志。从而对孩童的疲劳度进行打分。

通过疲劳度评分机制,可以精确地分析并返回孩童是否昏睡以及睡眠状态等信息,使分级预警以及处理系统更加完善,构成完整的反馈机制,从而帮助驾驶员安心驾驶。

眼睛开合度


对于眼睛开合度,团队通过基于dlib人脸识别68特征点检测、分别获取左右眼面部标志的索引,通过opencv对视频流进行灰度化处理,检测出人眼的位置信息,依此对开合度进行计算。

图12:眼睛长宽比选取点位

在人脸姿态估计模型中,系统采用计算眼睛长宽比实时变化状况的方式以计算眨眼频率,从而判断得出孩童的疲劳度状态,其中模型识别所采用的计算眼睛长宽比点位如图12所示。

模型根据图12参考点位以及人脸关键点智能标注模型所获得的人脸左右眼点位集,采用公式1.24计算实时眼睛长宽比:

    

    

计算得出的EAR小于等于0.2时,则模型将此时的孩童视为闭眼状态。根据公式1.1分别计算出左右眼的实时长宽比,系统将两个比值相加求得平均值,通过模型实时比对孩童眼睛长宽比前后的变化及整体位置变化以判断孩童是否处于昏睡状态。

嘴部开合度

对于嘴部开合度,团队通过基于dlib人脸识别68特征点检测、分别获取左右眼面部标志的索引,通过opencv对视频流进行灰度化处理,检测出嘴部的位置信息,依此对开合度进行计算。

在人脸姿态估计模型中,系统采用计算眼睛长宽比实时变化状况的方式以计算眨眼频率,从而判断得出孩童的疲劳度状态,其中模型识别所采用的计算嘴部


长宽比点位如图13所示。

图13:嘴部长宽比选取点位

模型根据图9参考点位以及人脸关键点智能标注模型所获得的人脸上下唇点位集,采用公式1.25计算实时嘴部长宽比:

    

   

当计算得出的MAR大于0.5时,模型则将此时的孩童视为张嘴状态。根据公式1.2所计算得出的嘴部实时长宽比,系统通过模型实时比对孩童嘴部长宽比前后的变化及整体位置变化以判断孩童是否处于打哈欠状态。

3.3.3如何较为精准的获取婴儿状态?

本团队查询相关资料发现,人脸表情是一种最直接、最有效的情感表达方式。也是人类日常交流中最主要的信息传递方式。因此,本团队研发了表情识别模块,以更有效地评估孩童乘坐状态。

本团队采用浅层稠密网络视频监控人脸识别算法,进行人体跟踪和表情识别。该算法能有效追踪人体并识别表情特征,通过基于风格迁移的中性表情生成和CNN面部特征提取,实现准确的表情识别。该算法简单高效,提高了人脸识别的准确性和效率,为实时监控和表情识别领域提供了技术支持。

基于浅层稠密网络视频监控的人脸识别算法


     视频监控是通过视频摄影设备来获取移动目标信息的图像处理技术,在视频监控中,获取人脸信息的关键技术包括人脸图像识别以及人体跟踪。人体跟踪是实现运动目标特征提取的重要步骤。为了提升系统视频监控人脸识别的效率,本团队采用了一种特定的人体跟踪方法,其跟踪流程如图 14所示。

图14:视频监控人体跟踪流程

在图 14,视频监控人体跟踪过程首先读取监控视频中的人体帧数,并提取其中的一帧图像。针对识别到的视频帧数,采用运动历史图像来计算当前帧与上一帧之间的距离,比较计算距离与设定值之间的差异。当计算距离大于设定值,则采用运动历史图像再次计算两帧之间的距离,当计算距离小于设定值,则认为完成跟踪。在人体跟踪识别中,研究中为了对运动目标进行跟踪识别,采用了运动历史图像来进行模块跟踪,以H为运动历史图像中的像素点强度,其计算方式如式(1)所示:

       

           (1)

式(1)中,τ 表示视频场景中的两帧之间的持续时间;t表示目标像素点时刻;δ表示衰退参数;ψ(x,y,t)表示帧间差分法。此外在跟踪过程中,像素点的权值大小会影响目标检测的稳定性和可靠性,权重计算如式(2)所示:

                 

                   (2)

式(2)中,C 表示归一化系数;qn 表示颜色分布概率;h 表示区域半径;m 表示像素点总数。其中归一化系数表示如式(3)所示:

                        (3)

其次采用相似性来度量运动目标模板之间的匹配程度,如式(4)所示:

                       (4)

式(4)中,qn(x)、qn(y) 分别表示图像 x 轴 y 轴上的颜色分布概率。

然而,值得注意的是,在视频监控中,受到社会环境以及自然环境的影响,监控视频存在显著的干扰噪声,因此为了准确实现监控视频中的人体跟踪,需要对视频图像进行预处理。对于监控视频中的图像去噪,团队采用图像滤波的方式来提取图像中的目标特征,采用中值滤波法来抑制图像中的噪声。中值滤波的基本原理是将图像中的值以其所在区域的中值代替,一维中值滤波如式(5)所示:

               (5)

式(5)中,(f0, f1, …, fk)表示一维序列中的序列值;k 表示序列长度。在滤波处理后需要对图像进行增强处理,在图像增强中,团队采用过拉普拉斯锐化的方式来实现。拉普拉斯计算方式如式(6)所示:

                 

                      (6)

式(6)中,(x,y)表示图像中某点的坐标。此外由于在实际的监控视频中,当光照充足时,被检测目标在运动过程中会产生较为明显的阴影,阴影的存在会在检测时被判断为前景部分,导致前景检测无法达到较好的效果,为此团队采用了一种阴影消除算法。首先将视频图像中的亮度进行建模,如式(7)所示:

               

                     (7)

式(7)中,Ek (m, n) 表示 (m, n) 处像素点的辐射度,ρk (m, n) 表示人体对光的反射系数。在亮度建模基础上,采用 HSV 来进行阴影消除,阴影检测的判别函数见式(8):

(8)

     式(8)中,

表示第 k 帧图像像素点在 HSV 空间中的分量;

表示第 k 帧背景像素点在 HSV 空 间中的分量;∂、β 表示判断参数;Ts 、TB 表示阈值; 当判别函数的值为 1 时,则位置(x,y)定义为阴影, 其余为目标。

      在此基础上,本团队使用一种基于浅层稠密网络的人脸识别算法。在浅层稠密网络中,首先将视频监控中的人体跟踪图像作为输入,利用第一层卷积神经网络来初步处理人体特征,以此获取到图像中的稠密区块。针对初步处理得到特征图像输送至稠密区块 1, 同时将第二层卷积神经网络作为过渡层 1,采用过渡层 1 来对图像进行卷积操作和池化操作,以此获取更为清晰的人体特征。此后将进一步得到的人体特征作为特征图输送至稠密区块 2,利用第三层卷积神经网络来实现人体图像中的人脸识别,将处理结果输送至第四层卷积神经网络中,并进行池化操作。最后通过线性转化的方式将上一阶段池化处理得到的人脸特征进行二维转化,得到可以作为输出的人脸识别结果。

图15:浅层稠密网络模型的基本结构

在浅层稠密网络的人脸识别中,对于人脸特征的提取至关重要,为此系统需提升人脸识别算法的精确率,本团队使用了一种特征融合的方式,如图 12所示。

                       图16:面向人脸识别的特征融合流程

图 16中显示,在人脸特征融合中,将图像数据分割成多样本,从多样本中获取不同人脸表情特征,同时将多样本数据与原始数据相融合,构建原始版本的融合数据集。其次在多样本的人脸表情特征分类中,提取出不同表情特征,并将不同的表情特征进行融合,同时构建特征融合数据集。然后利用分类器来进行表情特征分类,以上一阶段特征提取为基础,利用分类器进行人脸表情分类,在分类器的输出端,将结果分为分类融合数据集以及人脸识别结构。最后对原始融合数据集、特征融合数据集、分类数据集以及人脸识别结果进行多方决策,通过决策得到最终的人脸特征识别结果。

基于风格迁移的中性表情生成

本团队使用 Cycle-GAN 训练不同表情的生成器,将任意给定表情图像迁移到对应中性表情图像,生成器和表情一一对应。给定含有各种随机表情的人脸图像,表情识别模型通过中性表情生成器将含有表情的图像迁移到中性表情图像。在这一过程中,生成的中性表情图像不会改变原图像的身份信息,同时生成器会学习到不同表情的成分,即将不同表情的表情成分“存储”在对应的生成器中。如图17所示:

屏幕截图 2024-02-23 220106

屏幕截图 2024-02-23 221319


图17表情风格迁移示意图

图18 :Cycle-GAN 的网络结构

Cycle-GAN 模型结构如图18 所示,包含两个生成器和两个判别器,分别GAB、GBA、DA、DB。Cycle­­-GAN 可以通过学习源域(Source Domain)A 与目标域(Target Domain)B 之间的映射关系,从而完成图像到图像的风格迁移。生成器GAB学习从源域到目标域的映射f1:A→B,生成器 GBA学习从目标域到源域的映射f2:B→A。判别器 DA、DB分别用来判断各自输入的图像是否为源域 A、目标域 B 的真实图像。

Cycle-GAN 的损失函数由两部分组成:(1)生成对抗损失(Generative Adversarial Loss):

     (1)

式(1)为 A→B 的生成对抗损失函数,a、b 分别为来自源域 A、目标域 B 的图像。生成器GAB尽可能生成与目标域B逼近的图像GAB(a),判别器DB则判断输入图像是否为实的目标域 B 图像。

(2)

式(2)为 B→A 的生成对抗损失函数。生成器 GBA尽可能生成与源域A逼近的图像GBA(b),判别器DA则判断输入图像是否为真实的源域 A 图像。

(2)循环一致损失(Cycle Consistency Loss):

只有生成对抗损失是无法训练模型的,因为根据上述损失函数,生成器GAB可以将所有的源域A图像都映射为目标域 B 的同一幅图像。例如可以将所有高兴表情转换为中性表情,但是这些中性表情都是同一个人。同理,生成器GBA也有同样的问题。所以在Cycle-GAN 中引入了循环一致损失函数Lcyc,公式如下:

    

   (3)

生成器 GAB和GBA分别学习f1和f2两个映射的同时,要求GAB(GBA(b))≈b以及GBA(GAB(a))≈a。即目标域 B 的图像 b,经过f2映射得到图像GBA(b),再经过f1映射得到的图像GAB(GBA(b)),两者之间要尽可能相似。同样,对于源域A的图像a,经过 f1映射得到图像GAB(a),再经过f2映射得到的图像GBA(GAB(a)),两者之间要尽可能相似。这样就保证了在两个域之间的图像转换不会映射为同一幅图像。

最终网络的所有损失加起来为:

(4)

式(4)中 λ1、λ2、λ3 分别为调节生成损失、对抗损失和循环一致损失所占权重的超参数。在所有的损失函数中,对于生成器来说需要最小化损失函数,对于判别器来说需要最大化损失函数。

面部表情的识别可以通过比较表情图像和对应的中性表情图像之间的不同完成。Cycle-GAN 可以学习源域与目标域之间的映射关系,将不同的表情作为源域 X:

,xi为不同的表情标签(例如开心、难过、吃惊等),N 为数据集中的不同表情标签数,中性表情作为目标域 y,各自训练不同的生成器 Gxiy。生成器Gxiy学习不同表情到中性表情的映射关系,即在Gxiy“存储”了不同的表情成分。

Cycle-GAN 包含两个生成器和两个判别器,训练模型时,每次只将一类表情图像作为源域输入到生成器Gxiy中,中性表情图像作为目标域输入到生成器Gyxi中。将两个生成器生成的两幅图像输入到两个判别器中,得到两个表示图像真实度的数值。再通过模型定义的生成对抗损失和循环一致损失控制生成器生成更加真实且风格更加接近目标域的图像,最终完成图像的风格迁移。如此训练多次(次数由数据集表情类别数而定),每次用数据集中不同的表情作为源域,目标域则

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

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

相关文章

端口映射软件可以做什么? 快解析如何设置端口映射?

说到端口映射,首先说说nat。简单地说,nat就是在局域网内部网络中使用内部地址,而当内部节点要与外部网络进行通讯时,就在网关处,将内部地址替换成公用地址,从而在外部公网(internet)…

汽车车灯用肖特基二极管,选什么型号好?

肖特基二极管种类繁多,有低压降肖特基二极管、通用型肖特基二极管、快速恢复型肖特基二极管、高功率肖特基二极管、汽车级肖特基二极管等等,其中低压降肖特基二极管和汽车级肖特基二极管是二极管厂家东沃电子的核心优势产品。关于东沃电子推出的低压降肖…

WP免费主题下载

免费wordpress模板下载 高端大气上档次的免费wordpress主题,首页大图全屏显示经典风格的wordpress主题。 https://www.wpniu.com/themes/289.html 免费WP主题 蓝色简洁实用的wordpress免费主题模板,免费主题资源分享给大家。 https://www.wpniu.com/…

【计算机毕业设计】游戏售卖网站——后附源码

🎉**欢迎来到琛哥的技术世界!**🎉 📘 博主小档案: 琛哥,一名来自世界500强的资深程序猿,毕业于国内知名985高校。 🔧 技术专长: 琛哥在深度学习任务中展现出卓越的能力&a…

基于JSP+Mysql+HTml+Css仓库出入库管理系统设计与实现

博主介绍:黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程&#xff…

SpringBoot3 集成Springdoc 实现Swagger3功能

说明: 只通过引用org.springdoc 的两个包就可以使用Swagger3 功能(步骤1);如想更美观及实现动态认证的开启与关闭,及Swagger3登录认证等功能,需实现(步骤1、2、3)的配置; 1、 引包…

python将pdf转为docx

如何使用python实现将pdf文件转为docx文件 1.首先要安装pdf2docx库 pip install pdf2docx2.实现转换 from pdf2docx import Converterdef convert_pdf_to_docx(input_pdf, output_docx):# 创建一个PDF转换器对象pdf_converter Converter(input_pdf)# 将PDF转换为docx文件pdf…

Qt nodeeditor ROI 组态软件

节点显示节点连接属性设置插件导入导出 展示:

谷歌浏览器的开发者插件vue-devtools

在这里我留下一个git地址用来下载插件包,首先在自己喜欢的位置创建一个新的文件夹,起一个自己喜欢的文件夹名字,下载到包后,然后点进文件夹里下载依赖,npm install,下载后如下面这个样子 git clone https://gitee.com…

【40分钟速成智能风控16】模型训练

目录 ​编辑 模型训练 逻辑回归 XGBoost Wide&Deep 模型部署 模型训练 确定了最终的入模变量,终于进入模型训练的环节了,在这个环节我们需要选定模型结构,调节模型超参数,以及评估模型的效果。为了得到一个兼具区分度和…

C#引用外部组件的常用方法

我们在开发程序过程中,时常会使用到第三方组件,比如一些通信、UI组件等。常用的引用方法有下面几种。 01 NuGet引用 NuGet是.NET的一个包管理平台,很多开源组件会通过NuGet进行管理和发布。比如我们常用的S7NetPlus等。 从NuGet中引用组件…

k8s高可用集群部署介绍 -- 理论

部署官网参考文档 负载均衡参考 官网两种部署模式拓扑图和介绍 介绍两种高可用模式 堆叠 拓扑图如下(图片来自k8s官网): 特点:将etcd数据库作为控制平台的一员,由于etcd的共识算法,所以集群最少为3个&…

访问者模式【行为模式C++】

1.概述 访问者模式是一种行为设计模式, 它能将算法与其所作用的对象隔离开来。 访问者模式主要解决的是数据与算法的耦合问题,尤其是在数据结构比较稳定,而算法多变的情况下。为了不污染数据本身,访问者会将多种算法独立归档&…

韩顺平 | 零基础快速学Python(16) 文件处理

文件 输入与输出 输入:数据从数据源(文件)到程序(内存); 输出:数据从程序(内存)到数据源(文件)。 #mermaid-svg-06PG6JZq4jJMV1oH {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-sv…

如何使用Docker部署Django项目?

第一步:创建Dockerfile文件 在django项目的根目录中创建一个名为Dockerfile的文件,并写入如下配置: # 使用 Python 3.12 作为基础镜像 FROM python:3.12# 设置工作目录 WORKDIR /app# 复制项目文件到工作目录 COPY . /app# 设置清华 pip 镜…

vue webpack打包配置生成的源映射文件不包含源代码内容、加密混淆压缩

前言:此案例使用的是vue-cli5 一、webpack源码泄露造成的安全问题 我们在打包后部署到服务器上时,能直接在webpack文件下看到我们项目源码,代码检测出来是不安全的。如下两种配置解决方案: 1、直接在项目的vue.config.js文件中加…

【深度学习】AI修图——DragGAN原理解析

1、前言 上一篇,我们讲述了StyleGAN2。这一篇,我们就来讲一个把StyleGAN2作为基底架构的DragGAN。DragGAN的作用主要是对图片进行编辑,说厉害点,可能和AI修图差不多。这篇论文比较新,发表自2023年 原论文&#xff1a…

【零基础学数据结构】链表

目录 1.链表的概念 ​编辑 2.链表的雏形 ​编辑 3.链表的组成 ​编辑 4.链表代码 4.1创建节点 4.2链表的打印 4.3链表的尾插 4.4链表的头插 4.5链表的尾删 4.6链表的头删 4.7链表的查找 4.8链表在指定位置之前插⼊数据 4.9链表在指定位置之后插⼊数据 4.9-1删除pos节点 4.9…

Python(11):网络编程

文章目录 一、一些基本概念二、软件的开发架构(c/s架构和b/s架构)三、OSI模型四、socket套接字编程1.socket编程过程2.python中的socket编程 一、一些基本概念 来了解一些网络的基本概念 名词解释IP(互联网协议地址)IP用来标识网…

基于Java+SpringBoot+vue+node.js的图书购物商城系统详细设计和实现

基于JavaSpringBootvuenode.js的图书购物商城系统详细设计和实现 🍅 作者主页 央顺技术团队 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 文末获取源码联系方式 📝 🍅 查看下方微信号获取联系方式 承接各…