本文来自AI新媒体量子位(QbitAI)

本文作者是MIT的大二学生Michael Gump(阿甘),内容为他在无人车公司Voyage的工作总结。本文还得到Voyage首席执行官Oliver Cameron的推荐。

作为一名计算机专业的学生,我一直对机器学习特别是强化学习很感兴趣,特别喜欢琢磨OpenAI的相关研究。去年冬天,我还参加了一门无人车的课程,从这个时候开始,自动驾驶汽车这个领域一直让我感到特别兴奋。

三个月前,我加入了Voyage的深度学习实习项目。Voyage是一家从Udacity剥离出来的初创公司,致力于研发自动驾驶出租车。

在学校里能学到很多知识,但并不能让你了解真实的世界。在Voyage实习的这段期间,不但帮我弥补了教育中的缺失,而且我真的有机会接触到最酷的产品。在这里,我准备把我这段时间的收获分享给大家。

我的工作

这个夏天的实习中,我一直在研究计算机视觉相关的几个问题,阅读了很多论文并且训练了不少模型。大部分时候,我一直都是用公开数据集,对激光雷达(LiDAR)数据进行分类识别。数据集地址如下:

http://www.cvlibs.net/datasets/kitti/index.php

http://cs.stanford.edu/people/teichman/stc/

当人类观察世界的时候,可以自动的感知深度,并且能够识别出道路上是一辆车还是一个行人。怎么能让无人车也做到这一点?过去几个月我的大部分工作,就是想办法让Voyage的自动驾驶出租车对车辆和行人进行分类。

我使用的工具是三维视图(LiDAR点云)+深度学习。

 这个分类器模型正确的把汽车标为绿色,行人标为红色

物体分类识别

对于一辆无人车来说,它需要采集原始的传感器信息(例如点云),然后还得搞清楚到底看到了什么。这其中最重要的是如下两个问题。

  • 距离:离我撞上这个物体还有多远
  • 类别:我看到的究竟是个什么

解决这个问题,既可以设计传感器直接获取相关信息,也可以从现有的传感器中提取所需信息。对于距离这个问题,激光雷达是现在最好的传感器。除非特别“勇敢”,一般搞无人车不会绕过这个关键的设备。

然而对于分类(识别车辆、行人)这个问题,并不能通过传感器直接获知结果,需要我们研发算法来实现,这也就是我这个夏天的主要工作。

 黑白图像是LiDAR数据,然后增加分类信息(绿色代表行人,蓝色代表车辆)

从人类的视角来看,这些都是很简单的问题。但请注意,人类已经有数百万年的发展进化历史。怎么才能在短时间内让无人车也具备同样的能力?如果你不是外行就该知道,这个问题的答案是:CNN,卷积神经网络。

在很多难题上CNN都给出了惊人的结果,只需要一些微调,这个神经网络就能很好的用来处理LiDAR数据。

然而,一个深层卷积网络可能不是我们最好的选择。我们系统的一个关键要求,是必须要以很高的帧率运行。也就说我们需要构建一个实时运行的系统,因此必须得选择一个可以快速得到良好效果的解决方案。

虽然CNN可以识别图像中的复杂模式,但通常速度很慢。所以这个夏天我花了大部分时间来寻找一个替代方案。其中一个替代方案是手动挑选与物体类别高度相关的物理特征信息,也就是对我们的模型进行一些特征工程。

在这个过程中,我的导师教会了我一件事:实验、实验、实验。

我的成果

这个夏天我的收获之一,就是学会使用一个很棒的快速可视化工具。在Vispy的帮助下,我对大量的点云进行了有序的可视化,然后在类似真实世界的环境中对模型进行调试。我这次实习的另一个收获是,直接从模型的损失曲线中很难看出问题。

(Vispy地址:http://vispy.org/)

我用了PyTorch来训练和验证我的模型。我之前对PyTorch不熟,但现在它成为我最喜欢的深度学习框架。虽然PyTorch没有TensorFlow那么多的特性,但是更容易上手。

(插播一个量子位之前的报道:《PyTorch还是TensorFlow?》)

我搭建的模型之一,是一个编码解码器(Encoder-Decoder)网络,能够对多个通道的输入数据进行分类预测。从这些嘈杂的预测中,我们可以推断出面前物体的真实类别。这种模型非常强大,可以对某些传感器和处理错误免疫。

例如,依靠对象大小和形状进行分类的模型很容易出现检测错误。而编码解码器模型可以通过识别场景中的模式并直接转变为预测来回避这样的问题。

 工作中的编码器-解码器模型。模型还很粗糙。

我上述工作参考了以下的论文:

《Multi-View 3D Object Detection Network for Autonomous Driving》

https://arxiv.org/abs/1611.07759

《LIDAR-based 3D Object Perception》

https://pdfs.semanticscholar.org/2c45/03c72ba7f53f3385859bd5e6311c58e73905.pdf

本文作者:问耕
原文发布时间:2017-08-25

如何用点云对车辆和行人进行识别分类?这是MIT学生的总结相关推荐

  1. 行人重识别论文阅读2-视频中基于时空相关性和拓扑学习的行人重识别(CTL)

    视频中基于时空相关性和拓扑学习的行人重识别 Spatial-Temporal Correlation and Topology Learning for Person Re-Identificatio ...

  2. .net bitmap rgb数据_在3D空间,用点云数据学行人重识别特征

    人生活在三维空间中.但已有的行人重识别(person re-ID)工作往往只关注 2D 空间中的图像匹配,忽略了3D的人体先验信息.在本篇文章中,我们做了一个微小的尝试,即在三维空间中通过生成的点云数 ...

  3. 车辆行人检测数据集_澎思科技行人再识别技术取得突破,刷新三大数据集世界记录...

    近日,国内人工智能企业澎思科技(Pensees)在行人再识别(Person Re-identification,简称ReID)算法上取得突破,在三大主流ReID数据集测试Market1501,Duke ...

  4. ADAS车辆在行人安全方面得分很低

    ADAS车辆在行人安全方面得分很低 ADAS vehicles score poorly on pedestrian safety 对于热衷于自动驾驶汽车(AV)的狂热者来说,一个现在病毒性的视频片段 ...

  5. 本周新出开源计算机视觉代码汇总(含图像超分辨、视频目标分割、行人重识别、点云识别等)...

    点击我爱计算机视觉标星,更快获取CVML新技术 今天汇总了本周新出的计算机视觉开源代码.(有部分已经有git地址但还没上传代码) 共有12份来自前沿计算机视觉研究的代码,CV君数了数,竟然发现其中10 ...

  6. 警告标志:警告车辆、行人注意危险地点的标志

    警告标志:警告车辆.行人注意危险地点的标志. 警1 十字交叉 警2 T形交叉 警3 T形交叉 警4 T形交叉 警5 Y形交叉 警6 环形交叉 警7 向左急弯路 警8 向右急弯路 警9 反向弯路 警10 ...

  7. omnet++,veins,sumo使用多应用层实现车辆和行人的模拟

    1.完成网络的搭建: 搭建一个简单的十字路口场景: 1)定义结点:新建intersection.node.xml,内容如下: NOTE1:结点属性type="traffic_light&qu ...

  8. 点云编码是计算机视觉吗,本周新出开源计算机视觉代码汇总(含图像超分辨、视频目标分割、行人重识别、点云识别等)...

    今天汇总了本周新出的计算机视觉开源代码.(有部分已经有git地址但还没上传代码) 共有12份来自前沿计算机视觉研究的代码,CV君数了数,竟然发现其中10份代码所属论文的第一作者是华人! 可见,华人学者 ...

  9. 【高空无人机视角下的路口车辆与行人检测跟踪与轨迹刻画】

    [高空无人机视角下的路口车辆与行人检测跟踪与轨迹刻画] 背景需求 可参考的方法 1. opencv + python 实现目标跟踪的方法: 主要代码 ① main.py ② items.py 检测效果 ...

最新文章

  1. 【综述专栏】从微分几何和代数拓扑的视角来重新探讨图神经网络
  2. c++读取utf8文件_【Python】File文件对象
  3. 【MM模块】Stock transfersTransfer posting 转储和调拨
  4. Nginx系列~Nginx服务启动不了
  5. JAVA File的创建及相对路径绝对路径
  6. 原创--DataGrid自动分页例子,通过存储过程
  7. Android应用开发—浅谈MVX模式
  8. 贝莱德砸10亿美元买下指数定制公司,释放什么信号?
  9. redchat怎么编写shell脚本_Linux如何编写shell脚本?
  10. 平安普惠系统上线申请表模板
  11. 计算机导论课程思政,《计算机导论》课程教学中的思政教育.doc
  12. 博士毕业要发多少篇文章? 72 所高校大比较,发文最多的是……
  13. kdj买卖指标公式源码_买卖点KDJ (副图指标 源码 )
  14. 12种常见贴片焊接工具
  15. plist图片列表分割拆分器(修复输出图片错误的BUG)
  16. VSCode 当笔记工具
  17. php阴阳万年历转换的接口,PHP编程实现阳历转换为阴历的方法实例
  18. 枚举类实现接口【精】
  19. 表白神器——Python画丘比特之箭穿心
  20. GoF设计模式(二)-行为型模式简介

热门文章

  1. 实时获取ccd图像_四元数数控:CCD视觉检测定位系统在玻璃瓶缺陷的检测
  2. SCI论文写作中常见的语言问题汇总
  3. android nuwa2,android热更新
  4. linux php环境搭建_PHP-小程序:(1)开发环境搭建
  5. Python-OpenCV--直线提取
  6. C语言 | C语言实现十六进制转八进制
  7. linux安装创建逻辑卷,Linux系统LVM逻辑卷的创建与扩容(命令详解,图文并茂)...
  8. linux系统实用脚本,常用linux系统命令及简单小脚本
  9. 如何更改CPropertySheet的背景色
  10. 日志库EasyLogging++学习系列(7)—— 记录方式详解