我的NVIDIA开发者之旅-基于深度学习和Jetson-Nano的特种车辆作业安全系统

大白饭 2022-06-07 17:01:15
加精

欢迎各位投稿互相支持
“我的NVIDIA开发者之旅” | 征文活动进行中......

摘要

针对特种作业车辆工作环境复杂、车辆重量大、制动距离长、驾驶员视觉死角多等特点,本项目设计并实现了一种基于深度学习和嵌入式系统的特种车辆作业安全系统。首先,应用深度学习模型来检测车辆周围出现的人形目标,得到人形目标的检测框并估算目标到摄像头的距离。根据不同的距离距离进行相关的语音播报,提醒驾驶员及时作出避让或对车辆进行制动等操作。深度学习模型首先由TensorRT生成半精度推理引擎,再由Deepstream部署在Jetson nano开发板上。在一块Jetson nano开发板上可以同时处理多路视频流。额外的计算任务,如:距离估算、语音播报等同样由Jetson nano开发板来完成。使用一块Jetson nano开发板便可以完成整个计算任务。实践证明本系统能耗低、成本低、检测距离远,可以同时检测大量的人形目标并估算距离,可以部署在复杂环境中快速准确的完成任务。

第一章 项目背景 

1.1 特种车辆

在作业现场(如:建筑工地、港口堆场等),重型作业车辆随处可见。这类车辆外廓尺寸、重量等方面远远超过民用车辆。有些车辆经特制或专门改装,配有固定的装置设备,主要功能不是用于载人或运货。此类车常用于牵引、清障、清扫、起重装卸、升降、搅拌、挖掘、推土、压路等的各种轮式或履带式专用车辆。车内或装有固定专用仪器设备,从事专业工作的监测、消防、清洁、医疗、电视转播、雷达、X光检查等车辆。如自卸载重车、清扫车、固井水泥车、压裂车、公路清障车、高空作业车混凝土泵车、清雪车等是应用广泛且具有一定代表性的特种车辆。常见特种车辆如图1-1所示。

 

 

图1-1 几种常见的特种车辆

特种作业车往往车身较大,因此司机的视觉盲区大,驾驶员视野容易受到遮挡,难于观察周围作业参与者的位置与动态,尤其在大型车后行使的车辆或行人更不易被发现。特别的,由于其质量大,惯性大,制动较慢,转向困难,制动所需要的时间也很长。当遇到紧急情况时,由于其较大的惯性导致制动耗费很长的制动时间产生很长的制动距离。可能会由于制动生效不及时对他人或车辆造成严重危害。图1-2是两起特种车辆与民用车辆交通事故图例。从图中可以看出,由于强大的冲击力,小型货车产生严重形变。在作业现场,现场工作人员遭受特种车辆碾压致死,或小型车辆遭受特种设备撞击的情况时有发生。除了特种设备操作人员工作失责导致的因素外,很大一部分原因与特种设备本身的特点有关。那如何从根本上消除特种设备对周围人员和车辆带来的威胁,是迫切需要解决的一个问题。如果能够让这些特种设备自动识别感知周围的环境因素并对操作人员发出预警信号,这样在一定程度上可以避免事故的发生;在另一方面,企业和公司也可以在一定程度上免受安全责罚,也为企业带来了一定的经济效益。  

 

 图1-2 特种车辆事故现场

1.2 深度学习

安全防护首先要识别出人形目标,当发现人形目标进入到特种车辆作业的危险区域时就向车辆操作人员发出报警。由于特种车辆作业环境复杂,传统计算机视觉和图像处理算法难以准确的从环境中识别出人形目标,因此本项目中使用了深度学习模型来完成人形目标的识别。深度学习是机器学习领域中一个新的研究方向。深度学习使用深度神经网络来建模,使用大量数据来优化模型中的参数,以此来达到高的准确率和鲁棒性。目前深度学习是计算机视觉领域的主流算法,常见的基于深度学习的计算机视觉任务如图1-3所示。深度学习模型在各个方面都要强于传统的基于opencv的算法。例如,在识别距离方面深度学习模型可以识别50到100米内的目标,在识别种类方面深度学习模型最多可以识别9000类(yolo-9000)物体,并且深度学习模型可以同时识别出一帧画面中几百个甚至上千个目标。

 

 

 图1-3 基于深度学习的计算机视觉任务

1.3 Jetson nano开发板

Jetson nano是NVIDIA开发的搭载了高性能GPU的单片机,是实现深度学习和并行计算的硬件基础。实际上Jetson家族共有四种不同类型的GPU开发板(Jetson Nano,Jetson TX,Jetson Xavier NX,Jetson AGX Xavier),Jetson nano是其中能耗和成本最低的一种,当然其GPU的算力也是最低的。与其它单片机相比,GPU的搭载使得Jetson nano的计算能力提高了数十倍到数百倍甚至也优于了目前的台式电脑的CPU。NVIDIA也为Jetson开发了全套的SDK和完整的生态系统以及开发者社区。利用Jetson nano可以方便的部署深度学习应用,Jetson nano开发板以及其核心板如图1-4所示。

 

 图1-4 Jetson nano

Jetson nano性能参数,可以参见下表:

GPU算力

472 GFLOPs

GPU参数、架构

128-core NVIDIA Maxwell GPU

CPU参数、架构

Quad-Core RM® Cortex®-A57 MPCore

显存、带宽

4 GB 64-bit LPDDR4 25.6GB/s

储存

TF card

功率

5W / 10W

从表中可见要释放Jetson nano的全部算力只需要10W的功率,而且Jetson nano的成本极低,目前淘宝售价只有1500元左右。

当Jetson nano完成视频流的推理后,还需要对推理解检测结果进行进一步的分析。例如,如果有工人进入到作业的危险区域中就要就行语音报警。

第二章 项目介绍

2.1 技术难点

结合特种车辆自身的特点、施工所在的周围环境以及对检测的精度和速度要求,本项目的技术难点可总结如下:

2.1.1 作业场景复杂

特种车辆的作业场景一般在建筑工地、港口堆场等地点,如图2-1所示。这些地点场景复杂,通常有大量的施工人员、非施工人员、车辆、施工机械、物料等。因此,需要从这样的复杂场景中准确的识别人形目标是传统计算机视觉算法无能为力的,必须要使用深度学习算法。

 

 图2-1 特种车辆作业场景例举

2.1.2 能耗要求严格且车内空间狭小

特种车辆上的电气系统要靠自身携带的电瓶来完成供电,同时一般的特种车辆其驾驶室空间狭小。因此,不可能在特种车辆上安装大功率的深度学习GPU工作站或者大功率的工控机。

2.1.3 对模型精度和推理速度要求高

部署的模型必须尽量减少误识别或者漏识别。过多的误识别会导致过多的误报警,这样会扰乱驾驶员的正常作业。过多的漏识别则会降低系统的实用性,使系统无法起到应有的预警作用。此外,在某些场景中车辆行驶速度较快,对模型推理速度的实时性有一定的要求。

2.1.4 稠密人形目标的识别

在作业现场通常有大量的工作人员,模型要能够识别出每一个人形的外接框,并估算距离。

2.1.5 人形距离估计

利用单目摄像机估计人形到摄像头的距离,再根据距离判断是否要报警。这要求目标检测算法必须要精确的检测出人形所在区域的外接四边形,即检测框。模型给出的检测框几何形状的准确程度,直接影响了距离的估算准确程度。

2.1.6 人形相对速度估计

通过距离估算实时记录同一人形目标的距离变化情况计算相对速度。当距离处于风险范围时,除了根据距离判断是否要报警外,也会根据相对速度判断是否要报警。由于应用了近大远小的视觉原理估算距离,模型给出的检测框几何形状的准确程度直接影响了相对速度的估算准确程度。

2.2 技术突破

针对以上分析的特种车辆的特点以及应用场景中的难点,我们采用以下技术方案。

2.2.1 数据集的制作

针对特定的应用场景,收集一定量的数据,构成训练用数据集和测试用数据集。数据量通常2000张图片,其中至少包含5000个人形目标。采用人工标注的方式对数据集进行标注(如图2-2所示)。该数据集用来对预训练模型进行微调,以提高模型在特定场景中的鲁棒性。

 

 图2-2 数据集制作

2.2.2 深度学习模型

在Jetson nano中可以部署大部分主流的深度学习目标检测模型如:yolov3,yolov3-spp,yolov3-tiny,yolov4以及yolov4-tiny。本课题组自主提出了专门用于人形、车辆检测的深度神经网络Pedestrian net(效仿NGC上的people net来命名,论文正在撰写中),网络结构如图2-3所示。该模型使用ResNet34作为基础网络,结合了特征融合、局部特征、注意力机制等先进技术。原始模型85.39MB,剪枝之后7.82MB。模型十分轻量化适合部署在嵌入式系统中。模型可对50米到100米以内的多个(数十个到上百个)人形目标进行精确的检测。通过调节训练过程中的参数可保证模型的平均精度均值(mAP)达到90%以上,交并比(IOU)达到85%以上。

将微调后的模型在Jetson Nano上使用TensorRT进行优化,以半精度形式生成推理引擎。下一步是把推理引擎部署在Deepstream中,并在Deepstream中的pgie插件上利用回调函数提取检测的元数据。首先将元数据储存在一个列表中,然后再有一个独立的线程将元数据以request形式发送到负责距离估算和语音播报的线程。这里提取检测的元数据包括:相机的ip(由batch数据中的frame_id确定),检测物体的类别,检测框的宽高,以及时间戳。在Deepstream上部署之后可以做到在一个Jetson nano开发板上处理四-八路视频流,并做到每路视频流的处理速度在10fps左右。Deepstream插件连接示意图如下图所示。

 

 图2-3 Deepstream插件连接示意图

 

2.2.3 人形距离及相对速度的计算与报警

Deepstream的目标检测元数据以request形式发送到负责距离估算和语音播报的线程。该线程来估算每个人形的距离与相对速度。如果距离小于事先设定的阈值,或在风险范围内的目标相对速度大于事先设定的阈值,则进行视频和语音报警。音频信号通过Jetson nano上的HDMI接口输出,利用一根绿联的转接头转接到音箱上。对于不同的应用场景也可以加入上位机、显示器以更多的功能。部分检测结果示例如图2-4所示。

 图2-4部分检测结果示例

 

2.3 产品集成

Jetson nano在复杂的生产环境中工作时十分脆弱,极易受到周围环境中的电磁场和热量的影响。为了保证Jetson nano工作稳定,我们设计了一款集成盒。该盒为铝制与Jetson nano的散热片直接连接,因此一方面可以起到屏蔽外界电磁场的功能,另一方面也可以起到导热散热的功能。在盒子内也集成了为Jetson nano供电的稳压电源和无线网卡。

  图2-5 系统集成

第三章 应用场景

    本项目研发的预警系统,已在两个实际场景中成功应用,并与相关的单位签订和横向科研合同。根据这两个场景的特点,我们对模型的选取和部署进行了灵活的调整和优化。

3.1 盾构隧道电瓶车引导及预警系统

    盾构隧道电瓶车(全称为窄轨蓄电池工矿电瓶机车牵引型车辆,图3-1所示)是隧道掘进机的重要的配套设备之一,在隧道掘进施工中承担着运输沙石土方、材料、设备等工作,由于隧道内视线差,车辆载重大,在运输过程中存在极大的风险和隐患:

  • 监管盲区:电瓶车运行途中无网无信号,存在电瓶车运行状态监管盲区;
  • 司机视觉盲区:隧道内狭小、视线较差,电瓶车司机极难观察车后情况和两侧情况;
  • 人为因素:未鸣笛、超速极易引发事故,操作规程无提醒、无追溯;
  • 信息自动化程度低:违规操作无警告、通过风险源无提醒、无数字化;
  • 溜车:刹车失效、操作疏忽。

 

 图3-1 盾构隧道电瓶车

解决方案:出于以上考虑该项目必须使用高精度的模型来检测车辆前后轨道上的人形目标并估算距离。若发现距离小于某一阈值则报警。由于该场景中,电瓶车的制动距离较长,因此要求算法的检测距离要在50米左右。出于以上考虑我们选择的模型为Pedestrian net,在隧道多个地点对不同着装和距离的施工人员采集数据,制作数据集。对模型微调后,在剪枝优化并利用DeepStream部署在Jetson Nano上,保证一定的实时性(两路视频,车头车尾各一路,每路15fps左右)。通过交换机实现各个在系统之间的通讯。上位机界面,隧道场景以及整个系统的搭建如图3-2和图3-3所示。

图3-2 上位机界面以及工作环境示意图

 图3-3 整个系统的搭建

 

3.2 堆场作业车辆安全系统

在港口堆场内进行装货卸货工作的重型车辆存在大量的视觉死角和盲点,并且施工现场环境嘈杂、人员复杂。这些因素使得作业车辆的驾驶员难以及时发现车辆附近的人员,存在大量的安全隐患。

解决方案:出于以上考虑该场景同样须使用高精度的模型来检测车辆四周的人形目标并估算距离。若发现距离小于某一阈值则报警。由于该场景中,车辆作业时行驶速度通常不快,并且车辆制动距离很短。因此,要求算法的检测距离要在20米左右。且检测四周的人形目标最少需要四个摄像头。出于以上考虑我们选择的模型为Pedestrian net,在一块Jetson Nano上同时处理四路视频流,每路视频流处理频率在10帧左右,同时在Jetson Nano开发板来完成距离计算、检测结果筛选和语音报警。通过交换机实现各个在系统之间的通讯。实验室中调试如图3-4,现场调试情况如图3-5所示。

 

 图3-4实验室中安装调控设备

 图3-5现场安装调控设备

后记

经历了一年多的开发和调试,终于将产品完成了,其中学习的过程带来的收获是最大的。在开发和测试的时候中也认识了好多公司里面工作的朋友,不但开阔了视野,大家平时一起交流技术也带来了很多的乐趣。这些收获和乐趣是平时在学校教书时难以想象的。最后,代码和模型我就不上传了,公司那边已经申请了专利和软著。

 

...全文
2811 21 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
颐水风华 2022-06-18
  • 打赏
  • 举报
回复

人形距离 用什么技术评估的?

weixin_45945520 2022-06-08
  • 打赏
  • 举报
回复 4

认真的男人最帅

大白饭 2022-06-09
  • 举报
回复
@weixin_45945520 幼儿园毕业之后就没人夸我帅
Hahanhn 2022-06-08
  • 打赏
  • 举报
回复 3
赞👍 很有实际意义
weixin_45871991 2022-06-08
  • 打赏
  • 举报
回复 3
好评
Aurora · ᴥ · 2022-06-08
  • 打赏
  • 举报
回复 3
说的特别好!醍醐灌顶!
weixin_41662134 2022-06-08
  • 打赏
  • 举报
回复 3
五星好评
work and learn 2022-06-08
  • 打赏
  • 举报
回复 4
特别有实用价值!
work and learn 2022-06-08
  • 打赏
  • 举报
回复 3
膜拜大佬,膜拜我导!
大白饭 2022-06-09
  • 举报
回复
@work and learn 哈哈,赶紧准备推优的材料,机会难得
扫地的小何尚 2022-06-08
  • 打赏
  • 举报
回复 4

手动点赞

大白饭 2022-06-09
  • 举报
回复
@扫地的小何尚 谢谢何老师,以后还要您多指教
瓜子三百克 2022-06-07
  • 打赏
  • 举报
回复 3
有内容有深度,膜拜大佬
weixin_40561235 2022-06-07
  • 打赏
  • 举报
回复 3

厉害!!!

weixin_42181350 2022-06-07
  • 打赏
  • 举报
回复 3
师兄厉害
启军671 2022-06-07
  • 打赏
  • 举报
回复 4
应该组织下学习或者展示
大白饭 2022-06-09
  • 举报
回复
@启军671 谢谢师兄,没啥创新,拿出来惭愧
pearlpeng0924 2022-06-07
  • 打赏
  • 举报
回复 5

博主好厉害!内容深入浅出,向您学习!!

大白饭 2022-06-09
  • 举报
回复
@pearlpeng0924 铁粉果然秒回呀
azhanghonglin 2022-06-07
  • 打赏
  • 举报
回复 8

文章通俗易懂,观点清晰,提出了解决国内大型车辆视角造成的安全问题的方案,期待更新。

大白饭 2022-06-09
  • 举报
回复
@azhanghonglin 好像毕业设计的评语

1,339

社区成员

发帖
与我相关
我的任务
社区描述
NVIDIA 开发者技术交流
人工智能 企业社区
社区管理员
  • nvdev
  • 活动通知
  • AI_CUDA_Training
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧