0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

通过深度学习实现自动驾驶之车辆检测

ml8z_IV_Technol 来源:未知 作者:工程师曾暄茗 2018-09-09 09:57 次阅读

在本文中,我将通过一个车辆检测示例,介绍如何使用深度学习创建目标检测器。相同步骤可用于创建任何目标检测器。

经常有朋友和同事问我,自动驾驶系统怎么感知周围环境并做出“人类”的决定?如何在系统中使用 MATLAB?在接下来的文章中,我将解释如何使用深度学习和 MATLAB 完成两种常见的自动驾驶感知任务。

目标检测是指在图像和视频中对目标进行定位和分类。

下图显示了一个三类车辆检测器的输出结果,检测器对每一种类型的车辆进行了定位和分类。

对不同类型车辆进行定位和分类的车辆检测器显示的输出结果

在创建车辆检测器之前,我需要一组标注的训练数据,这是一组用感兴趣目标的位置和标签标注的图像。更具体地说,是需要有人对每幅图像或视频帧进行筛选,并对所有感兴趣目标的位置进行标注。这个过程称为“真值标注”。

真值标注通常是创建目标检测器过程中最耗时的部分。下图左侧显示的是原始训练图像,右侧显示的是经过真值标注的相同图像。

原始输入图象(左)和经过地面实况标注的输入图象(右)

用于标注视频和图像数据的 Ground Truth Labeler 屏幕截图

实现标注过程部分自动化的一种方法是使用跟踪算法

我使用的KanadeLucas Tomasi算法(KLT)是在实际应用中使用的第一种计算机视觉算法。KLT 算法将目标表示为一组特征点,然后逐帧跟踪它们的移动位置。我们可以在第一帧中手动标注一个或多个目标,然后使用跟踪算法标注视频的其余部分。

Ground Truth Labeler 还允许用户导入自己的算法进行自动化标注。

我见过的最常用的方法是,用户导入自己现有的检测器,再进行新数据标注,这可以帮助他们创建出更精确的检测器。下图演示了使用 Ground Truth Labeler 标注一系列图像或视频的工作流程。

使用MATLAB进行自动真值标注的流程

标注数据最终以 table 格式存储,table 中列出了训练集视频中车辆在每个时间点的位置。真值标注完成后,我可以开始训练车辆检测器。

本例中,我估计真值标注过程最高可加速119倍。我们以每秒30帧的速度捕捉训练视频数据,每4秒对目标进行一次标注。这意味着我们将节省中间119帧的标注时间。当然这是最好的情况,因为我们有时还得花时间更正自动标注的输出结果。

我们的车辆检测器使用的是FasterR-CNN网络。首先,定义一个网络架构,如下面的MATLAB代码片段所示。Faster R-CNN算法主要分析图像的区域,因此输入层比输入图像的预期尺寸要小。本例中,我选择了一个32x32像素的窗口。输入尺寸需要根据执行时间和希望检测器解析的空间细节进行衡量。

通过深度学习实现自动驾驶之车辆检测

中间层是网络的核心构造块,具有重复的卷积层、ReLU 层和池化层。

本例中,我只会使用几个层。若要提高准确性,或者如果想要将更多的类并入检测器中,可以重复这些使用层,创建一个更深的网络。

通过深度学习实现自动驾驶之车辆检测

CNN 的最后一层通常是一组全连接层和一个 softmax loss 层。

在本例中,我在全连接层之间添加了一个 ReLU 非线性层,用以提高检测器的性能,因为我们这个检测器的训练集并没有我想要的那么大。

通过深度学习实现自动驾驶之车辆检测

为训练目标检测器,我将layers 网络结构输入trainFasterRCNNObjectDetector 函数。如果您安装了 GPU,算法会默认使用 GPU。如果不想使用 GPU 或者想使用多个 GPU,您可以在trainingOptions(训练选项)中调整ExecutionEnvironment参数

通过深度学习实现自动驾驶之车辆检测

完成训练之后,可以在测试图像上试一试,看看检测器是否正常工作。我使用下面的代码在单一图像上测试检测器。

通过深度学习实现自动驾驶之车辆检测

Faster R-CNN车辆检测器检测到的边界框和得分

若确信自己的检测器正常工作,我强烈建议您使用统计指标(例如,平均精度)在更大的一组验证图像集上进行测试。平均精度提供的单一分数可衡量检测器进行正确分类的能力(准确率)以及检测到所有相关对象的能力(召回率)。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 自动驾驶
    +关注

    关注

    783

    文章

    13674

    浏览量

    166096
  • 深度学习
    +关注

    关注

    73

    文章

    5491

    浏览量

    120958

原文标题:通过深度学习实现自动驾驶之车辆检测

文章出处:【微信号:IV_Technology,微信公众号:智车科技】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    FPGA在自动驾驶领域有哪些应用?

    低,适合用于实现高效的图像算法,如车道线检测、交通标志识别等。 雷达和LiDAR处理:自动驾驶汽车通常会使用雷达和LiDAR(激光雷达)等多种传感器来获取环境信息。FPGA能够协助完成这些传感器
    发表于 07-29 17:09

    自动驾驶真的会来吗?

    自动驾驶面临的主要挑战是基于图像的机器学习能力。  理论上,基于图像的机器学习可以让汽车实现自动驾驶,但在实际技术发展方面,仍有很多问题无法
    发表于 07-21 09:00

    细说关于自动驾驶那些事儿

    `事实上,早在1925年就出现第一台自动驾驶概念车,但为什么直至最近无人车才不再被视为科幻小说,而是眼下将实现的革命性科技产品?追其原因,主要在于,人工智能的显著进展,以及开发无人车的所需技术和硬件
    发表于 05-15 17:49

    AI/自动驾驶领域的巅峰会议—国际AI自动驾驶高峰论坛

    已经渗透到了社会生活的方方面面。人工智能在自动驾驶领域将对整个汽车出行领域产生颠覆性变革。汽车的人工智能技术和数据后端的最新突破使自动驾驶成为可能。深度学习、高级数字助理和动态电子视野
    发表于 09-13 13:59

    如何让自动驾驶更加安全?

    了全球范围对自动驾驶安全性的议论:如何让自动驾驶更加安全?真正上路前还要做哪些准备?智能汽车成为全球汽车产业发展战略方向参与测试的企业将通过道路测试来不断验证自动驾驶技术的成熟度驾车上
    发表于 05-13 00:26

    从辅助驾驶自动驾驶: 感知型车辆建立在底层高质量的传感器数据基础之上

    这就好比是我们时代的登月计划。从传感器到人工智能(AI),经典的电子供应链已经形成了一个协作矩阵,致力于实现自动驾驶车辆的安全性。为此,还需进行大量硬件和软件开发工作,以确保驾驶员、乘
    发表于 06-16 18:53

    网联化自动驾驶的含义及发展方向

    数据为基础的自动驾驶业务产生不可估量的影响,是成功实现自动驾驶的基础 [4] 。自动驾驶车辆通过
    发表于 01-12 15:42

    自动驾驶车辆中AI面临的挑战

    自动驾驶车辆中采用的AI算法自动驾驶车辆中AI面临的挑战
    发表于 02-22 06:39

    自动驾驶技术的实现

    的带宽有了更高的要求。从而使用以太网技术及中央域控制(Domain)和区域控制(Zonal)架构是下一代车载网络的发展方向。然而对于自动驾驶技术的实现,涉及到感知、规划、执行三个层面。由于车辆行...
    发表于 09-03 08:31

    通过深度学习提高和发展车辆感知

    自动驾驶汽车的梦想正在成为现实。通过车辆实现多个高级驾驶辅助系统(ADAS),汽车行业对自动驾驶
    发表于 11-10 08:09

    LabVIEW开发自动驾驶的双目测距系统

    LabVIEW开发自动驾驶的双目测距系统 随着车辆驾驶技术的不断发展,自动驾驶技术正日益成为现实。从L2级别的辅助驾驶技术到L3级别的受条件
    发表于 12-19 18:02

    探讨深度学习自动驾驶中的应用

    深度强化学习的理论、自动驾驶技术的现状以及问题、深度强化学习自动驾驶技术当中的应用及基于
    的头像 发表于 08-18 10:19 5121次阅读

    如何通过MEC构造基于深度学习自动驾驶汽车缓存

    本文通过使用部署在多接入边缘计算(MEC)结构上的深度学习方法,为自动驾驶汽车提出了基于深度学习
    的头像 发表于 10-10 09:26 4502次阅读

    汽车背后的故事 通过深度学习提高和发展车辆感知

    汽车背后的故事 通过深度学习提高和发展车辆感知
    发表于 11-01 08:24 2次下载
    汽车背后的故事 <b class='flag-5'>通过深度</b><b class='flag-5'>学习</b>提高和发展<b class='flag-5'>车辆</b>感知

    深度学习自动驾驶中的关键技术

    随着人工智能技术的飞速发展,自动驾驶技术作为其中的重要分支,正逐渐走向成熟。在自动驾驶系统中,深度学习技术发挥着至关重要的作用。它通过模拟人
    的头像 发表于 07-01 11:40 666次阅读