历史上的今天
返回首页

历史上的今天

今天是:2025年01月31日(星期五)

2018年01月31日 | 深度神经网络在ADAS系统中的应用

2018-01-31 来源:互联网

ADAS系统包括车辆检测、行人检测、交通标志识别、车道线检测等多种任务,同时,由于无人驾驶等应用场景的要求,车载视觉系统还应具备相应速度快、精度高、任务多等要求。对于传统的图像检测与识别框架而言,短时间内同时完成多类的图像分析任务是难以实现的。


袁雪副教授的项目组提出使用一个深度神经网络模型实现交通场景中多任务处理的方法。其中交通场景的分析主要包括以下三个方面:大目标检测(车辆、行人和非机动车),小目标分类(交通标志和红绿灯)以及可行驶区域(道路和车道线)的分割。


这三类任务可以通过一个深度神经网络的前向传播完成,这不仅可以提高系统的检测速度,减少计算参数,而且可以通过增加主干网络的层数的方式提高检测和分割精度。


以下为当天分享的内容总结。


总结


一、任务分析


WHO在2009年统计的一个数据显示,在全世界范围内每年由交通事故死亡的人数有123万人。但是我们知道,在朝鲜战争中,整个战争死亡的人数也差不多一百多万。也就是说,每年死于交通事故的人数差不多等于一次非常惨烈的战争的死亡人数了。根据WHO统计,在全世界范围内每年由交通事故造成的死亡人数有123万之多;而发生交通事故90%是由司机人为原因造成的,比如注意力不集中、超速、安全意识弱等等。所以目前减少交通事故的最主要途径通过采用高级辅助驾驶系统(ADAS)就是减少认为错误。


对于ADAS系统,基本上包括这些功能:夜视辅助、车道保持、司机提醒、防撞提醒、车道变换辅助、停车辅助、碰撞疏解、死角障碍物检测、交通标志识别、车道线偏移提醒、司机状态监测、远光灯辅助等。这些功能是ADAS所必备的。


为了实现这些功能,一般其传感器需要包括视觉传感器、超声波传感器、GPS&Map传感器、Lidar传感器、Radar传感器,还有一些别的通信设备。但是我们在市面上看到的大多数传感器其功能其实是比较少的,例如mobile I,它只有车道保持、交通标志识别、前车监测和距离监测的功能,但并不全面。从厂家或者用户的角度来说,自然我们希望能用最便宜的传感器来完成更多ADAS的功能。最便宜的传感器基本上就是视觉传感器。所以我们设计方案时就想,能不能通过算法将视觉传感器实现更多ADAS系统的功能呢?这就是我们整个研发的初衷。


此外,我们还需要考虑ADAS的一些特点。ADAS系统(包括无人驾驶)是在一个嵌入式平台下进行的,也就是说它的计算资源很少。那么我们也必须考虑如何在这样一个计算资源非常少的基础上,保证ADAS系统能够快速且高精度地响应,同时还能保证多任务的需求。这是我们第二个要考虑的问题。


为了解决以上两个问题,我们首先把ADAS的任务分解一下。如图所示,我们将ADAS的任务分解成目标检测与识别、图像分割、摄像机成像目标跟踪、图像分割。我们过去一年多的研发工作其实就是,用一个深度学习框架来同时实现上述这四个的功能。


对于一个前向传播的网络,其计算量和计算时间主要取决于它的参数数量,而80%的参数都来自全链接层,所以我们的第一个想法就是去掉全链接层。其次,网络越深,它的参数就会越多所以如果我们把目标检测与识别、图像分割、摄像机成像目标跟踪、图像分割做成四个网络的话,就会有X4倍的参数。


二、模型结构

  

这个是我们设计的网络的一个基本结构。它分为几个部分:主干网络(我们称为解码器)、多个分支(我们称为编码器)和基于CRF的结果融合。现在这个网络我们只设计了两个编码器,一个是检测任务编码器,还有一个是分割任务编码器,以后我们还可以增加其他的编码器。结果融合,主要是想用它来影响主干网络的一些权重选择。主干网络,我们选择了一些比较有人气的算法,例如VGG 16、GoogleNet、ResNet等。分割任务编码器我们用了FCN编码器,检测任务编码器我们用了YOLO9000编码器。


1、主干网络


下面我们来详细看一下这个网络各个部分。首先我们来看主干网络。主干网络我们使用了VGG、GoogleNet或者ResNet。这几个是可选择的。从右侧的这张图(纵轴是网络深度,圈的大小表示模型的大小)我们可以看到ResNet在深度和大小上都比较好,我们选择使用ResNet可以有比较好的实时性。


2、FCN语义分割解码器

  

然后我们看一下FCN语义分割解码器。在神经网络中,一张图片经过主干网络后,再对其提取高维特征图。其实这个过程就是用pooling的方法给它降维。结果到了输出高维特征图时,它只有原图像的1/32大小了。随后我们采用上采样把它升维成原图像大小。上采样的过程就如左侧所示,这个示例中我们将2*2的图像上采样成4*4的图像。


上采样的结果就是解码器预测出来的,我们将它与标注好的图像进行比较运算,算出loss,然后对权重进行修改。在上采样中一个问题就是,比较小的物体是计算不出来的。我们知道一些较浅的卷积层感知阈比较小,它会包含更多比较局部的信息;而较深的卷积层具有较大的感知阈,它能够学习到更加抽象的信息。于是FCN就通过将pool3、pool4和pool5的信息叠加在一起进行上采样,这样就可以做到同时上采样多个尺度的信息了。


3、目标检测/识别解码器 YOLO


其次我们再来介绍一下用于目标检测/识别的解码器YOLO。我们使用的是YOLO V2的解码器,但这里我们先介绍一下YOLO V1。这是YOLO V1的主框架,它的主干网络是Darknet19,我们不用管它。我们重点关注编码器的过程。主干网络输出的特征图,这种特征图会用1*1 的卷积核给正规化成7*7*30的特征图。那么这个30是什么呢?


在这样一个7*7的矩形框中,每一个方形框用一个点来表示。然后我们分别用5维表示包含这个方形框的一个矩形框,其中4维表示x、y、z、w,另外一维为confidence。


在YOLO V1中30维的前10个为两个这样的矩形框。它们的(x,y,z,w)分别表示了坐标预测,而另外一维为confidence预测。另外的20维为类别预测(也就是说在模型中有20种可能出现的例如汽车、行人之类的模型 )。


所以针对这两个考量,我们用一个主干的网络来做前面的运算,然后在后面再根据具体的任务分成多个小的分支加到主干网络上。这样多个图像处理的任务就可以通过一个主干网络的前向传播来完成了,其参数大大减少,计算速度也变的更快。同时我们也能实现多个任务同时进行的需求。另外,在最后我们还可以将多个结果进行融合,驾到训练过程的调整中,这样就可以提高我们结果的可信性。


但是在这个过程中我们也碰到一些难点。第一个难点就是我们在同一个网络中需要将较大的目标(例如车辆)和较小的目标(例如交通标志)同时检测出来。第二个难点是,测速测距时我们需要的目标的位置是非常精确的,目前这个问题我们还没有解决。


YOLO V2与V1最大的不同就是采用了Anchor boxes。所谓Anchor boxes就是每个中心预测(例如9种)不同大小和比例的建议框,每一个建议框对应一个4维的坐标预测、1维confidence预测和20维的类别预测。它提出一个非常有意思的思想就是维度聚类,也即现在训练集里通过聚类的方式算出Anchor boxes的大小。这样,例如它从9个boxes选出5个boxes。于是对于VOC数据集,总共就5*(4+1+20)=125个输出维度。


YOLO V2 Anchor boxes的选择以及维度聚类的思想对于我们车载摄像的问题是更有效的,因为我们摄像机的位置是相对固定的,所以我们可以算出每一个目标的大小都是相对比较固定的。


我们在YOLO V2的基础上也做了一些改动。首先是我们做了一些细粒度特征,来检测小目标。其次我们还在浅层特征中进一步地做坐标预测,然后加到我们的整个预测当中,这样可以提高小目标的预测。


4、一些思考


在这个研究的过程中,我们做了一些思考。


首先,在计算机视觉领域里,低中层视觉问题更关注原始视觉信号,与语义信息的联系相对松散,同时也是许多高层视觉问题的预处理步骤。本届CVPR有关低中层视觉问题的论文有很多,涵盖去模糊、超分辨率、物体分割、色彩恒定性(color constancy)。


其次,在最后的层中抽象的特征对分类很有帮助,可以很好地判断出一幅图像中包含什么类别的物体,但是因为丢失了一些物体的细节,不能很好地给出物体的具体轮廓,指出每个像素具体属于哪个物体。


我们该如何将浅层特征和深层特征结合起来呢?这其实还需要进一步的研究。


三、数据库建立

  

在数据库这方面,我们发现国内的路况与国外路况很不一样,且中国的车的种类也多种多样。所以我们开发了一种半自动标注软件,也就是我们可以通过算法自动完成车辆标注,同时我们还可以手动修正误差较大的标注。目前我们已经标注了5万张矩形标注数据集。我们力争在年底能够开放数据集,另一方面我们也能协助企业建立数据库。


另外在数据库建立方面,我们还要拓展一下数据库类型。例如通过原来白天的图片,我们可以生成黑夜的图片,增加到我们的训练样本中去。

推荐阅读

史海拾趣

Force Technologies Ltd公司的发展小趣事

背景:在电子行业竞争日益激烈的背景下,Force Technologies Ltd意识到通过并购整合可以迅速扩大规模、提升竞争力。

发展:公司精心挑选了几家在特定领域具有优势的企业作为并购目标,并成功完成了多起并购案。这些并购不仅为公司带来了先进的技术和人才资源,还极大地丰富了产品线和市场布局。通过并购整合,Force Technologies Ltd在多个细分领域均占据了领先地位。

Advanced Optoelectronic Technology Corp公司的发展小趣事

在光电技术领域,AOTC始终保持领先地位。公司不断推出创新产品,如高效能的光电传感器、智能照明系统等,这些产品不仅提升了人们的生活品质,还推动了整个电子行业的变革。AOTC的技术创新得到了业界的广泛认可,公司逐渐成为了行业的领军企业。

FEI Microwave Inc公司的发展小趣事

FEI Microwave Inc公司自成立以来,始终致力于微波技术的创新与发展。在早期,公司研发团队成功研发出了一款具有突破性的微波收发模块,该模块以其高频率、低噪声和出色的稳定性迅速在市场上崭露头角。随着技术的不断完善,FEI Microwave Inc公司逐渐在微波通信领域建立了自己的技术壁垒,成为业界的佼佼者。

對餘科技(DIOFIT)公司的发展小趣事

DIOFIT公司一直秉持着品质至上的生产理念,注重产品质量和用户体验。他们严格控制原材料采购和生产流程,确保每一款产品都符合高标准的质量要求。同时,DIOFIT公司还建立了完善的售后服务体系,及时解决用户在使用过程中遇到的问题,赢得了用户的信赖和好评。

HTSEMI( Jin Yu Semiconductor )公司的发展小趣事

随着技术实力的不断提升,金宇半导体开始积极拓展国内外市场。公司制定了详细的市场拓展计划,通过参加国际电子展、举办技术研讨会等方式,加强与客户的沟通和交流。同时,金宇半导体还加大了品牌建设的力度,通过广告宣传、媒体合作等多种方式提升品牌知名度和美誉度。这些努力使得金宇半导体的市场份额逐年攀升,品牌影响力也日益增强。

Dynastream公司的发展小趣事

成为Garmin全资子公司后,Dynastream并没有停止前进的步伐。相反,公司更加注重技术创新和产品研发。在保持传统优势产品的基础上,Dynastream不断推出新产品、新技术,以满足市场的不断变化和客户的多样化需求。同时,公司还积极拓展国际市场,将产品销往全球各地。

问答坊 | AI 解惑

门禁系统分类

  门禁系统按进出识别方式可分为以下三大类: 1、密码识别      密码识别:通过检验输入密码是否正确来识别进出权限。   这类产品又分两类:一类是普通型,一类是乱序键盘型(键盘上的数字不固定,不定期自动变化)。   普通型: ...…

查看全部问答>

tcpmp:想搞个能显示BMP格式图片功能

同仁,由于Tcpmp不能显示bmp格式的图片,我想自己做个能显示这种图片功能,看来是要做一个插件,类似tcpmp中的那样,我想问,这个设想应该可行吧?…

查看全部问答>

请问vxworks如何识别和加载usb设备的驱动程序?

我要在vxworks平台下写一个usb设备的驱动,系统通过枚举识别出usb设备,但系统如何选择驱动程序呢?是根据(bDeviceClass,bDeviceSubClass,bDeviceProtocl)信息,还是根据(idVendor,idProduct),或则其他?怎样把这些信息加入到系统中,当设备attach时,系统 ...…

查看全部问答>

求助:ARM中标号的疑惑

$IF (EXTERNAL_MODE)         CODE_BASE      EQU    0x80000000 $ELSE         CODE_BASE      EQU    0x00000000 ...…

查看全部问答>

[求助]如何得到WCE中NTP时刻同步信息(附部分代码)

小弟正在做一个基于WCE上的时钟系统,以下是2段关于NTP时刻同步的部分代码: // Set key \"refresh\"    DWORD refresh = SNTP_REFRESH_MS;    lRes = RegSetValueEx (hKey, TEXT(\"refresh\"), 0, REG_DWORD, (const unsig ...…

查看全部问答>

如何申请中断

在下是一个菜鸟,有些问题憋了好久,希望各位大虾执教。 我要把Dos下的c程序移植到linux中,我不知道如何申请和调用中断,我查过一些资料有一个request_irq的函数,可我看只能在驱动中申请,我的有些中断是ISA扩展槽上的,不用写驱动,这下我怎么 ...…

查看全部问答>

请版主帮忙解答DMA同时更新TIM1_CCR1和TIM1_CCR2寄存器的问题

我想用TIM1的Update DMA同时更新TIM1_CCR1和TIM1_CCR2寄存器,但只有TIM1_CCR1被更新,而TIM1_CCR2的值不变,请版主帮忙说明如何才能实现同时更新 CCR1和CCR2,谢谢! 设置如下: #define TIM1_CCR1_Address    0x40012C34 #def ...…

查看全部问答>

FG4618复位!!!

复位用的是100K,0.01uF的RC复位。现在出现的情况是上电后单片机死机。如果现在重新上电,可以解决问题。或者将RESET端拉低也能解决问题。这个是不是上电复位时间不够。如果将0.01uf改为0.1uf不知道行不行。由于空间限制,没地方加复位芯片了。 看 ...…

查看全部问答>

关于超声波测距的问题

各位大神,谁能给我个超声波测距的大概流程啊。 比如,怎样发送超声波 怎样接收之类的。 新手,对此不太明白 最好只使用定时器2 跪谢!…

查看全部问答>