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

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

本评分机制采用人脸关键点智能标注模型检测人脸,通过人脸识别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中。将两个生成器生成的两幅图像输入到两个判别器中,得到两个表示图像真实度的数值。再通过模型定义的生成对抗损失和循环一致损失控制生成器生成更加真实且风格更加接近目标域的图像,最终完成图像的风格迁移。如此训练多次(次数由数据集表情类别数而定),每次用数据集中不同的表情作为源域,目标域则

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

16.读取指定路径下的txt文档然后合并内容为一个txt文档。

1.题目要求 分别读取路径为 ./middle/phone/base/1_student_0.txt, ./middle/vr/base/1_teacher.txt, ./nearby/phone/base/1_student_0.txt, ./nearby/vr/base/1_teacher.txt, ./outside/phone/base/1_student_0.txt, ./outside/vr/base/1_teacher.txt 里面的文件&#xff…

【MATLAB源码-第43期】基于matlab的turbo码误码率仿真比较不同迭代次数,采用logmap/sova算法。

操作环境: MATLAB 2022a 1、算法描述 Turbo码是一种前向纠错码 (Forward Error Correction, FEC),在 1993 年由法国的两位研究员 Claude Berrou 和 Alain Glavieux 提出。这种编码技术以其接近 Shannon 极限的高性能而受到广泛关注。以下是关于 Turbo…

【word】文档标题如何自动编号

我在写一个word文档的时候,每一级标题的格式都设置好了,包括字体,大小等等,但是如何自动编号呢? 在写中期报告的时候,我对每一级标题的格式都创建了一个单独的样式,像这样: 对于每一…

Linux——信号量与基于环形队列的生产者消费者模型

目录 前言 一、信号量 二、信号量的接口 1.初始化 2.销毁 3.申请信号量 4. 释放信号量 三、基于环形队列的生产者消费者模型 1.环形队列的理解 2.生产者消费者的设计 3.单消费者单生产者环形队列的实现 4.多消费者多生产者环形队列的实现 前言 之前,…

AI的说服力如人类?Anthropic最新研究揭秘机器的辩论能力|TodayAI

人们常常对人工智能模型在对话中的说服力表现持怀疑态度。长久以来,社会上一直存在一个疑问:人工智能是否会达到人类那样,在对话中具有改变他人想法的能力? 直到最近,这一领域的实证研究相对有限,对于人工…

HTML5 新增语义标签及属性

个人主页:学习前端的小z 个人专栏:HTML5和CSS3悦读 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结,欢迎大家在评论区交流讨论! 文章目录 ✍HTML5 新增语义标签及属性💎1 HTML5 新增的块级语义化标签&…

海外代理IP在跨境电商中发挥什么作用?

在我国跨境电商的发展中,海外代理IP的应用日益广泛,它不仅帮助商家成功打入国际市场,还为他们在多变的全球电商竞争中保持优势。下面是海外代理IP在跨境电商中五个关键的应用场景。 1、精准的市场分析 了解目标市场的消费者行为、产品趋势以…

pyinstaller工具打包python项目详细教程

使用 Pyinstaller工具 编译打包 Python 项目生成 exe 可执行文件 1.pyinstaller介绍: 介绍:PyInstaller 是一个将 Python 程序转换为独立可执行文件的工具。它能够在 Windows、Linux、Mac OS X、AIX 和 Solaris 等多种系统上运行。详细介绍可参考pyins…

记录--病理切片图像处理

简介 数字病理切片,也称为全幻灯片成像(Whole Slide Imaging,WSI)或数字切片扫描,是将传统的玻片病理切片通过高分辨率扫描仪转换为数字图像的技术。这种技术对病理学领域具有革命性的意义,因为它允许病理…

Git分布式版本控制系统——在IDEA中使用Git(二)

四、IDEA中本地仓库的操作 1.将文件加入暂存区 2.将暂存区的文件提交到版本库(相当于git commit) 3.查看日志 五、IDEA中远程仓库的操作 1.查看远程仓库 2.添加远程仓库 3.推送至远程仓库 4.从远程仓库拉取

pyqt实现星三角减压启动

这个对于plc上实现是非常容易得。它本来就是逻辑控制器,如果用代码实现它,该怎么做呢?这个实现起来看似简单,实则是有不少坑的(大神除外)。我一直想用类来封装,让它继承QObject,为啥非要继承QOb…

为什么MySQL数据库超过2000万条数据,查询依然很快:B+树和数据页结构解析

MYSQL数据库单表建议最大2000万条数据,很多人都说如果超过了2000万条数据,性能就会下降的特别厉害。但是你实际上存储后,发现即使超过了2000万但是查询依旧很快,这是为什么? Mysql为了查询速度,内部使用了…

私域流量变现干货:轻松盘活,高效增长!

你知道如何增长私域流量并将这些流量转化为实际收益,让我们的品牌价值最大化吗? 今天,就分享几点干货,帮助大家盘活私域流量,实现高效增长! 1、精准定位和用户画像 首先,了解您的私域流量源于…

JavaWeb开发03-Mybatis入门-基础操作-XML映射文件-动态SQL

一、Mybatis-入门 Java程序控制数据库 1.入门 定义实体类:一定要和表中的字段一一对应 配置连接数据库数据 建立Mapper层语句,来获取数据库数据以及将其封装到user的list中去。 2.配置SQL提示 为了进行查询数据库中有哪些表,所以得连接数据…

详解IP证书申请

申请IP证书,也被称为IP SSL证书,是一种特殊的SSL证书,它不同于传统的域名验证(DV)证书,是通过验证公网IP地址而不是域名来确保安全连接。这种证书用于保护IP地址,并在安装后起到加密作用。以下是…

VTK —— 一、Windows10下编译VTK源码,并用Vs2017代码测试(附编译流程、附编译好的库、vtk测试源码)

效果 编译 1、下载VTK8.2.0源码        2、解压源码后,进入目录创建build目录,同时在build内创建install目录 (下图install目录是在cmake第一次后才手动创建,建议在创建build时创建)        3、打开CMake,如下图填入…

CSS 这就是一个按照我看到的css ,边用边总结的笔记~

margin 和 paddingdisplay外部表现类(display-outside) : block , inline内部表现类(display-inside) : flex,gird,table,flow,flow-root,ruby margin 和 padding 可以设置1~4个属性 属性个数属性值1一起设置 上下左右2分别设置 上下 , 左右3分别设置 上 , 左右 , 下4分别设置…

戏作打油诗《无知》

笔者经营多年的《麻辣崇州论坛》,半月前突被攻击我在“霸屏”,没处讲理,特戏作打油诗《无知》一首,为那个无理取闹、砸我“麻辣崇州论坛”的无知小儿画像如下。 请点击链接,一目了然:崇州论坛-麻辣社区 没…

Gemini国内怎么使用

GPT、Claude、Gemini全系列模型国内使用方法来了! 一直以来很多人问我能不能有个稳定,不折腾的全球AI大模型测试网站,既能够保证真实靠谱,又能够保证稳定、快速,不要老动不动就挂了、出错或者漫长的响应。 到目前为止…

Android T多屏多显——应用双屏间拖拽移动功能(更新中)

功能以及显示效果简介 需求:在双屏显示中,把启动的应用从其中一个屏幕中移动到另一个屏幕中。 操作:通过双指按压应用使其移动,如果移动的距离过小,我们就不移动到另一屏幕,否则移动到另一屏。 功能分析…