一种基于深度学习的方法来检测摩托车头盔的使用

2023-05-16

背景

据统计使用摩托车头盔可以将道路交通事故中摩托车驾驶员致命伤害的可能性降低42%,尽管如此,遵守摩托车头盔还是较少,尤其是在发展中国家,为了有效开展针对性的头盔使用运动,政府必须收集有关头盔法律遵守程度的详细数据。但40%的国家尚未估算出这一关键的道路安全指标。

而且即使有数据可用,头盔使用的观察也常常受到样本量和区域范围的限制,是从相对较短的时间框架中得出的数据,或仅在学术研究范围内单独收集。缺乏全面连续数据的主要原因在于头盔使用数据收集的普遍方式,该方法利用人类观察员对交通中摩托车头盔使用情况的直接观察。在路边调查中进行这种直接观察会占用大量资源,因为它既费时又费钱。尽管使用摄像机可以进行间接观察,从而减轻了直接观察的时间压力,但通过人类观察者使用头盔进行的分类限制了可以处理的数据量。

鉴于此,对开发可靠且及时有效的智能系统的需求不断增长,该系统可检测不依赖人类观察者的摩托车骑手的头盔使用情况。实现这种自动检测摩托车头盔使用情况的有前途的方法是机器学习。机器学习已应用于许多与道路安全相关的检测任务,并已实现了对行人,自行车,摩托车和汽车的常规检测的高精度。

尽管自动摩托车头盔使用检测的首批实施前景广阔,但尚未充分发挥其潜力。当前的方法依赖于数据集,这些数据集仅限于观察到的骑手总数,在少数观察点接受训练或无法检测到骑手在摩托车上的位置。在本文中,提出了一种基于深度学习的自动头盔使用检测,该检测依赖于在一天的不同时间从多个观察点提取的,观察到的骑手数量差异较大的综合数据集。

数据集的创建和注释

  • 数据收集与预处理

作者从缅甸7个城市的13个观察点获得254小时的源视频,并从中采样了1,000个视频剪辑(每个10秒/ 100帧)以作进一步注释

选择缅甸作为收集算法开发资料的基础,因为缅甸的道路使用者聚集和快速机动化是世界上发展中国家的代表,摩托车骑行者占缅甸道路使用者的80%以上,并且近年来摩托车的数量一直在迅速增加。

在整个缅甸,交通都是用两台分辨率为1920 × 1080像素,帧率为每秒10帧的摄像机拍摄的。在七个城市中,将摄像机放置在高度约2.5 m的多个观察点,并从上午6点至下午6:30连续两天记录了流量(表 1)。由于曼德勒市是缅甸摩托车骑行人数最多的城市,因此在这里安装了两台摄像机,历时7天。仰光是缅甸最大的城市,它在市中心积极禁止摩托车行驶,因此,在这里的郊区放置了一个摄像头。由于摄像机的技术问题以及到达选定观察点的问题,因此每个观察点记录的小时数都不相同。在由于多云的天气或雨水而删除了模糊的视频之后,可以使用254个小时的视频数据作为本研究的原始资料。视频数据被分成10秒的视频剪辑(每个100帧),这构成了训练,验证和测试该算法的基础。表1显示了每个观察点可获得的视频数据的持续时间 。观测地点代表高度多样化的数据集,包括多车道高交通密度的道路环境(例如,曼德勒)以及更多的农村环境(例如,Pathein)。观察点的静止帧如图所示

  • 对视频片段进行采样

由于没有足够的资源来注释所有254小时的已记录流量,因此采样了1000个视频片段,这些视频片段最能代表源材料。将原始资料分割成10秒长(100帧)的非重叠视频片段后,我们将对象检测算法YOLO9000 (Redmon和Farhadi,2017年)应用了预先训练的权重,以检测每帧中的摩托车数量,提取其中包含最多摩托车的片段。

与每个站点的可用视频数据成比例,从每个观测站点采样了多个剪辑。表1中显示了1,000个采样的视频剪辑的结果分布 。观察站Pathein_urban(47个视频剪辑)被追溯排除在分析之外,原因是在摄像机初次筛选视频数据期间未检测到相机上的大量雾气(第2.1节)。此外,由于YOLO9000算法(Redmon和Farhadi,2017年)已识别出停放的摩托车,因此不包含43个视频剪辑,因为它们不包含活动的摩托车。

  • 注释

可视数据是通过先绘制围绕个人的摩托车及其骑手(所谓的一个矩形框标注的边框),进入上乘客的数量,他们使用头盔和位置信息之前。在多个框架中包含单个摩托车的所有包围盒形成摩托车轨道,即单个摩托车将出现在多个框架中,但只有一个摩托车轨道。为了方便视频的注释,我们测试并比较了三种图像和视频注释工具BeaverDam (Shen,2016),LabelMe (Russell 等人,2008)和VATIC (Vondrick)等。,2013)。我们选择BeaverDam进行数据注释,因为它允许在视频中逐帧标记,易于安装且具有出色的可用性。注释由两名自由工作者进行。图 2给出了通过多个框架(摩托车轨道) 注释单个摩托车的示例。

对于每个边界框,工作人员对骑手的数量(1至5),头盔使用情况(是/否)和位置(驾驶员(D),乘客(P0-3);图3)进行编码 。骑手编码的示例在图3中显示

表中将910个带批注的视频剪辑根据各个观察点随机分为训练集,验证集和测试集,拆分率为70%,10%和20%

  • 带注释数据的组成

910个带批注的视频剪辑被随机分为三个不重叠的子集:

一个训练集(70%),一个验证集(10%)和一个测试集(20%)(表2)。

表3中列出了所有910个视频剪辑中带注释的摩托车数量的数据。

总共标注了10,180个摩托车轨道(即单个摩托车)。

由于每个单独的摩托车都显示在多个框架中,因此在框架级别上有339,784个带注释的摩托车,即,数据集中有339,784个包含摩托车的边界框。根据骑手的位置和头盔使用情况,所有摩托车均按类别进行编码。这产生了36个类,如表3所示。每类摩托车的数量不平衡,范围从仅观察到的12个车架(例如,对于有5个没有头盔的骑手的摩托车)到140,886个观察到的车架(一个戴着头盔的驾驶员)。带注释的视频剪辑中未观察到某些类别,例如,没有4名骑手全部戴着头盔的摩托车。

头盔使用检测算法

  • 方法

数据集的创建完成后,我们将最新的对象检测算法应用于带注释的数据,以方便在框架级别检测摩托车头盔的使用。在此过程中,训练集中的数据用于训练对象检测算法。在训练过程中,将验证集用于找到最佳的泛化模型,然后再根据算法之前未见的数据(即所谓的测试集)对算法预测头盔使用的准确性进行测试。

通常,最新的对象检测算法可以分为两种类型:两阶段方法和单阶段方法。两阶段方法首先确定图像中可能放置对象的许多潜在位置。第二步,使用对象分类器(使用卷积神经网络)来识别这些位置的对象。而两阶段方法(例如Fast R-CNN)

Girshick(2015)达到的精度比单阶段方法更高,它们非常耗时。

相反,单阶段方法同时进行对象定位和对象识别。YOLO Redmon和Farhadi(2017)和RetinaNet Lin 等人的单阶段方法。(2018)因此比两阶段方法要快得多,尽管在准确性上有一个小的权衡取舍。在本文中,我们使用了RetinaNet Lin 等。(2018年)用于我们的头盔使用检测任务。尽管它是单阶段方法,但它使用多尺度特征金字塔和焦点损失来解决单阶段检测器精度的一般限制。

下图表示RetinaNet的框架,首先将给定图像输入到主干卷积神经网络中以生成多尺度特征图,从中生成多尺度特征金字塔。在金字塔的每个级别中,都有两个子网。一种用于从锚定框回归到真实的对象框,另一种用于分类锚定框。在跨多尺度特征金字塔进行非最大抑制(NMS)之后,RetinaNet得出检测结果。

  • 训练

由于检测摩托车骑士头盔使用情况的任务是经典的对象检测任务,因此我们对RetinaNet进行了微调,而不是从头开始进行培训。即,我们使用RetinaNet模型https://github.com/fizyr/keras-retinanet,该模型已经受过一般物体检测的培训,并对其进行了微调,以专门检测摩托车,骑手和头盔。

在我们的实验中,我们使用ResNet50 (He et al。,2016)

作为骨干网,使用ImageNet的预训练权重进行初始化等。

骨干网为卷积神经网络提供了特定的架构。

在学习过程中,我们使用亚当优化器Kingma和Ba(2014),学习率为α = 0.00001,批次大小为4,并在加权平均平均精度(加权mAP,如下所述)中停止训练。验证集由于2的耐心而停止了改进。为了评估算法的准确性,我们使用Everingham 等人的平均精度(AP)值。(2010)。该AP集成多个变量以产生对象检测任务中算法准确性的度量,包括并集, 精度和召回率的交集。并集上的交集描述了算法生成的和人工注释的边界框之间的位置关系。算法生成的边界框必须与人工注释的边界框至少重叠50%,否则会将其注册为错误检测。该精密礼物通过算法所做的所有检测的正确检测的次数(精密 = 真阳性真阳性+假阳性%)。该召回多少可用的正确的实例是由算法检测可变措施(召回 = 真阳性真阳性+假阴性%)。有关AP的更详细说明,请参见Everingham 等。(2010年)以及Salton和McGill(1983年)。由于我们的数据集中每个类别的帧数非常不平衡(表3),因此所有类别的最终性能都将按每个类别的AP加权平均值来计算,定义为:

其中所有C类的权重w i的总和为1,并设置为与实例数成比例。图 5显示了训练损失,验证损失和加权mAP

在学习过程中的训练和验证集中。可以观察到训练损失不断减少,即预测误差越来越小,而深度模型从训练集中学习了有关头盔使用检测的有用知识。因此,训练集的加权mAP不断增加。同时,验证损失(即验证集上的预测误差)在前9个时期变得越来越小。相应地,验证集在前几个时期内增加,然后在9个时期后停止改善,这意味着算法开始对训练集过度拟合。因此,我们停止训练并在9个时期后选择了最佳模型,在验证集上获得了72.8%的加权mAP。

a

b

RetinaNet用于头盔使用检测的学习过程。(a)训练和验证损失,(b)训练和验证集的加权mAP。在9个星期后,该算法在验证集上获得了72.8%。

结果

在文中,作者使用在验证集上开发的最佳模型(在该模型中获得了72.8%的加权mAP)报告了该算法在测试集上的头盔使用检测结果。

我们在测试集上获得了72.3%的加权mAP,处理速度为14帧/秒。表中显示了每个类别的AP 。可以观察到,由于培训实例数量很少,RetinaNet在普通课程上效果很好,但在代表性不足的课程上效果不佳。仅考虑普通班(最多两名骑手),我们训练有素的RetinaNet的加权平均mAP达到76.4%。考虑到许多因素,例如遮挡,摄像机角度和不同的观察点,这个识别性能还是非常不错的。

带注释的数据的组成。在框架级别上注释了339,784辆摩托车。最后一列显示了通用头盔使用检测精度(mAP =平均平均精度)

下图使用RetinaNet对采样帧进行头盔使用检测的结果。边界框颜色对应于不同的预测类别

结论

改善基于机器学习的摩托车头盔使用检测的软件方面的性能,首先有必要在代表性不足的类中收集更多数据,以提高具有两个以上骑手的摩托车的骑手,位置和头盔检测的准确性。其次,应收集有关摄像机角度的各种视频数据。这样可以防止由于具有异常摄像机角度的摄像机设置中的漏检而导致的检测错误。第三,似乎有希望在现有方法中增加一种简单的摩托车跟踪方法。跟踪将允许在多个后续帧中识别单个摩托车。通过对单个摩托车框架进行基于框架的质量评估以及跟踪,可以使算法为头盔使用和骑手位置检测选择最合适的框架,从而提高整体检测精度。

论文源码下载地址:关注“图像算法”微信公众号 回复“头盔检测”

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一种基于深度学习的方法来检测摩托车头盔的使用 的相关文章

  • 搜索算法之迷宫问题

    迷宫问题 Description 给定一个n m方格的迷宫 xff0c 迷宫里有t处障碍 xff0c 障碍处不可通过 给定起点坐标和终点坐标 xff0c 问每个方格最多经过1次 xff0c 在迷宫中移动有上下左右四种方式 xff0c 保证起
  • TX1/2 linux 设置交换空间 记录

    TX1等当内存不足时会出现 internal compile error 设置交换空间 free m 查看内存 sudo mkdir swap cd swap sudo dd if 61 dev zero of 61 swap bs 61
  • OpenCV with CUDA 编译安装

    cmake D CMAKE BUILD TYPE 61 DEBUG D WITH CUDA 61 ON D WITH CUBLAS 61 ON D CUDA FAST MATH 61 ON D WITH CUFFT 61 ON D WITH
  • linux 安装后无法启动 修复引导grub

    1 查看磁盘信息 xff0c 确认系统安装在那个磁盘上 sudo df lh or sudo fdisk l 2 挂载 sudo mkdir mnt ubuntu 建立挂载点 sudo mount dev sda2 mnt ubuntu 挂
  • 在Ubuntu上快速安装Qt

    只需要一句话 xff0c Qt各个部件就可以快速安装好 xff0c 不需要麻烦的到官网上下载东西 当然 xff0c 安装速度取决于你的apt源的速度 xff0c 我用的华为源 xff0c 速度达到11MB S sudo apt instal
  • Argus camera API

    1 JETPACK CAMERA API LIBARGUS Advantage Open Standard Cross Platform Low level control of camera subsystem Frame based c
  • error: undefined reference to symbol '_ZN5boost6system15system_categoryEv

    使用boost时遇到下面error xff1a cmake version 3 5 1 usr bin ld CMakeFiles RGBD dir src ros rgbd cc o undefined reference to symb
  • ROS 使用signal 终止 Node

    在终端中使用ctrl 43 c可以强制终止运行的程序 xff0c 但有时需要在终止时作一些处理 xff08 如ros shotdown free等 xff09 xff0c 可使用信号函数作退出处理 头文件 include 34 csigna
  • flann error

    error usr include flann util serialization h 18 9 error class std unordered map lt unsigned int std vector lt unsigned i
  • 3个方法解决百度网盘限速

    转载自 lt 作者 xff1a 奔跑中的奶酪 原文链接 https www runningcheese com baiduyun gt 3个方法解决百度网盘限速 xff08 2019 06 20 更新 xff09 3个方法解决百度网盘限速
  • python 文件操作记录

    usr bin env python coding 61 utf 8 import os import shutil def getimagepath path file 61 open path data 61 file read lin
  • PCD格式保存

    coding utf 8 import time filename 61 34 1 txt 34 print 34 the input file name is r 34 filename start 61 time time print
  • 吴恩达机器学习笔记---持续更新

  • 边缘计算简介-1

  • 给Qt程序添加图片

    首先双击列表中的ui文件 xff0c 打开 设计器 然后从左侧列表拖一个 label 进去 然后右键点击 xff0c 出现菜单 xff0c 点击 改变样式表 然后在新出现的窗口里面输入image url 图片路径 jpg 比如 xff1a
  • 禁用win10自带的微软输入法!

    1 点击电脑主屏幕左下角开始图标 xff0c 选择设置 2 选择 时间和语言 gt 语言 gt 中文 3 单击选项 xff0c 删除微软拼音键盘即可 xff0c 这样就不会在不小心按到Ctrl 43 Shift建时 xff0c 出现切换输入
  • Office出现xukezheng问题,如何有效解决

    亲测有效哦 xff01 看原文原文出处 版本Office2019专业增强版
  • MatLab数据结构

    命名规则 xff1a 变量名区分大小写 必须以字母开头 xff0c 可以由字母 数字和下划线组成 xff0c 但不能使用标点 clc xff1a 清屏命令行窗口 clear all 清除工作区的变量 xff0c 但不清理命令行窗口 数据类型
  • MatLab矩阵运算

    1 矩阵构造及定义 A 61 1 3 5 7 8 9 构造多行矩阵 D 61 2 4 构造单行矩阵 B 61 1 2 9 最小值 xff1a 步长 xff1a 最大值 C 61 repmat D 4 3 将D的行重复四次 xff0c 列重复

随机推荐

  • MatLab补充

    1 matlab中所有的变量都是数组 x 61 4 实际是x数组 xff08 11大小 xff09 中存了4 y 61 6 9 是大小为12的数组存储y的数值 当您用空格 xff08 或逗号 xff09 分隔数值时 xff08 如前面的任务
  • MatLab使用注意事项

    1 在命令行输入指令 xff0c 当不加 xff1b 作为结尾时 xff0c 系统会在命令窗口输出数值 当使用 xff1b 作为命令结尾时 xff0c 系统不再输出数值 xff0c 但是会在工作区存储变量 对应的值 2 变量以字母开头 xf
  • EdgeCloudSim仿真实验平台使用介绍

    跑程序前的准备工作 xff1a Java环境配置 网上搜教程吧 xff0c 按着提示做就可以我使用的工具 xff1a Eclipse项目链接 xff1a 其中包含EdgeCloudSim英文说明文档和EdgeCloudSim工程文件夹 链接
  • 内存地址的应用

    学习python时真正了解了内存地址 cpu中的数据分类 cpu中的数据分为两类 xff1a 数据和指令 数据 xff1a 由指令产生的结果 指令 xff1a 键盘 鼠标等电脑输入设备操作以及人为对主机输入设备进行的目的性操作 值得注意的是
  • World插入图片显示不全

    在文档中直接插入图片 xff0c 显示不全 xff0c 具体的说是只能看到图片底部部分 给出两种办法解决 1 局部修改 把光标位置置于图片的末尾 xff0c 然后点击鼠标右键 xff0c 选择 段落 选项进入 段落 文本框 xff0c 选择
  • 快速消除Word文档中空格

    消除Word文档中的空格 0 待处理文档 1 选择文档的替换功能 2 选择 特殊格式 中的 段落标记p 3 设置成对应格式 4 选择全部替换 xff0c 效果如下 问题分析 xff1a 可以看出执行上述操作一次后 xff0c 相当于是扫描了
  • CCF推荐国际学术会议和期刊目录2019年

    链接 xff1a 全目录下载地址
  • 2022教资押题

    1 试题类型 2 具体文件夹 3 百度网盘链接 xff1a 链接 xff1a https pan baidu com s 17ZlLeE2E8Rzz7ELHptE8Fg 提取码 xff1a 9vky
  • 强化学习Q-learning入门教学

    1 问题描述 2 图形化展示 3 reward矩阵构建 4 Q表构建 这里需要说明的是Q表的转移规则原本是 xff1a 本例中为了方便介绍 xff0c 将 值设为1了 原文讲解的通俗易懂 xff0c 有兴趣的可以看一下 出处 xff1a h
  • 英文文献代码查找

    原文链接 xff1a https blog csdn net weixin 45656790 article details 109271019
  • Word中插入集合和元素的包含符号

    1 比较简单 xff0c 是元素和集合的包含关系 查找 xff1a word gt 插入 gt 符号栏下拉 xff0c 选择基础数学 2 集合间的包含关系 四个数字 xff0c 代表一个 输入文档中的指定位置 xff0c 选中数字以后 xf
  • 微信PC端聊天界面表情包无法显示

    我试成功的一个办法 xff0c 分享一下 具体步骤 xff1a 1 找到微信聊天界面的设置选项 xff0c 如图 2 进入微信文件保存位置 3 进入WeChat Files All Users config目录 4 删除config dat
  • MathType 提示需要一个新版本的MT Extra(True Type)字体

    1 打开C Windows Fonts文件夹 xff0c 若里面有MT Extra TrueType 字体或其快捷方式 xff0c 则将其删除 2 找到MathType安装目录下C Program Files x86 MathType Fo
  • Word快捷键设置上下标;Word取消表格虚线;Word查找数学符号

    问题1 快捷键设置上下角标 这个在论文写作时比较常用 xff0c 本人也是最近在写大论文 xff0c 遇到了这个情况 Word和Visio中 xff0c 都可以使用 步骤 xff1a 选中即将成为上下标的内容 xff0c 上标快捷键 xff
  • xcode中xib使用之轻松学习

    1 创建xib文件 在工程目录中New Files xff0c 选择user interface类型中的empty创建一个空的interface builder document文件 文件名没有强制的要求 xff0c 最好使用 前缀 xff
  • 用Opencv打造一台自动视觉目标跟踪系统

    平移 倾斜伺服装置 xff0c 帮助摄像机使用视觉自动跟踪颜色对象 简介 现在我们将使用我们的设备帮助相机自动跟踪颜色对象 xff0c 如下所示 xff1a OpenCV可免费用于学术和商业用途 它具有C 43 43 xff0c C xff
  • error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools"【转载+修改】

    error Microsoft Visual C 43 43 14 0 is required Get it with Microsoft Visual C 43 43 Build Tools http landinghub visuals
  • 如何使用OpenCV实现多张图像拼接

    先来看看OpenCV官方的例子得到效果是非常的好 xff0c 输入的images如下 xff1a 效果 xff1a Stitcher类与detail命名空间 OpenCV提供了高级别的函数封装在Stitcher类中 xff0c 使用很方便
  • 如何使用OpenCV对物体进行搜索检测与识别

    在本教程中 xff0c 我们将了解对象检测中称为 选择性搜索 的重要概念 我们还将用C 43 43 和Python共享OpenCV代码 物体检测与物体识别 对象识别算法识别图像中存在哪些对象 它将整个图像作为输入 xff0c 并输出该图像中
  • 一种基于深度学习的方法来检测摩托车头盔的使用

    背景 据统计使用摩托车头盔可以将道路交通事故中摩托车驾驶员致命伤害的可能性降低42 xff05 xff0c 尽管如此 xff0c 遵守摩托车头盔还是较少 xff0c 尤其是在发展中国家 xff0c 为了有效开展针对性的头盔使用运动 xff0