文:江浩

9月中旬有幸参加了优达学城、pix 和 Autoware 联合举办的线下无人驾驶实训,收获颇丰。这篇文章的目的,一方面是我对这次线下实训的复盘总结,另一方面,感兴趣的同学也可以借此了解实训的具体内容。

本次参加实训的同学都很厉害,有来自上汽、NEVS 等主机厂的工程师,有来自滴滴的软件工程师,有来自创业公司 CEO,还有来自上海交大、同济和东北大学等知名高校的学霸。而导师们分别来自优达学城、pix 和 Autoware 3个主办方。

实训基地

实训内容

实训的最终目的是实现红绿灯的启停。具体来说,车辆在进入无人驾驶模式后,沿着录制的轨迹自动行驶,当行驶到红绿灯前方时,对其进行识别。如果是绿灯则继续行驶,是红灯则需要在规定的范围内停车。当绿灯亮起时,车辆再次启动。

说起来容易做起来难,无人驾驶是一个系统工程,想用实现这个看似简单的功能,需要的知识着实不少。下面就来说说我们小队是如何做的。顺便说一句,我们的队名是“红鲤鱼与绿鲤鱼与驴”,考虑到我是南方人实在分不清“l”和“n”的发言,简称“鲤鱼队”。

首先,在名古屋大学教授 Alex 和优达学城导师 Aaron 的指导下,我们学习了 Autoware 的基础知识,完成了 GPU 版 Tensorflow、ROS 和 Autoware 的安装。Autoware 是一款连接代码和硬件的软件,类似于百度的 Apollo.

Autoware 界面

Autoware 界面

然后,把激光雷达和摄像头连接到 Autoware,通过摄像头采集试验场地的环境数据,用来训练红绿灯检测器。

通过手机观察激光雷达发出的激光

接下来是制作高清地图。开车绕行试验场地,通过车载激光雷达(Velodyne 提供)生成点云,再通过 Autoware 制作成高清地图。

激光雷达检车到的试验场地
高精地图

制作好高清地图后,就可以实现车辆的寻迹功能了,也就是通过 Autoware,让车辆在设定好的轨道上行驶(无需人工控制),类似于火车沿着轨道行驶,只不过车辆沿着的不是金属的轨道,而是 Autoware 中的“路点”。

Autoware 模拟寻迹
实车寻迹

要实现最终目的,还需要编写一个红绿灯检测器。检测器对摄像头拍摄到的图像进行识别,识别的结果输出给 Autoware,再由 Autoware 控制车辆行驶或者停止。

最初,我们打算使用深度学习算法训练红绿灯检测器,但是检测效果并不好,后来改用传统的计算机视觉,图像识别的准确率能达到 87%,优化参数后,准确率接近 95%.

这一切都准备完毕后,就可以对车辆进行检测和优化了。由于前期进度较慢,一直到晚上 8、9 点我们才有时间去试验场。检测效果不错,优化参数后,车辆能够准确识别红绿灯,并且在规定范围内实现启停。

夜间测试

虽然晚上检测的效果不错,但是并不代表白天也是如此。第二天,也就是比赛当天,我们队的表现并不如人意。原因其实很简单,白天拍摄到的图像背景太复杂,红色的地面,绿色的树木,甚至彩色的衣服(摄影师小妹妹快走开,你的衣服上怎么红绿黄三色都有!),都会对红绿灯的检测造成影响。而在夜晚,背景一片黑色,红绿灯的检测要容易得多。

三色毛衣是鲤鱼队的噩梦

让我难以理解的是,我编写的识别红绿灯的代码,使用白天拍摄的图像进行检测,正确率接近 95%,但是两天后在试验场上却识别不出来了。想必还有许多影响因素没有考虑到,在无人驾驶领域,我还需要多多研究,提高自己。

实训收获

虽然最终结果不是太理想,但是在在 5 天的实训中,我们收获太多。

1 实车测试

作为优达学城《无人驾驶工程师》的学员,我们都具备一定的相关知识,但是几乎没有在真车上做过测试,运行自己的代码。这次实训,让我们在短短5天的时间里,实现了从0到1的跨越。我们不但掌握了Autoware的基本操作,编写了相关代码,学习了线控知识,还亲手生成了点云和高精地图,亲眼看到自己编写的代码在车辆上运行,亲身体验了测试车辆的整个过程...

2 实践学过的知识

知识不是用来学的,而是用来实践的。只有实践过的知识才能显示其价值。在完成《高级车道线识别》项目的过程中,为了消除图像失真,需要对摄像头进行校准。校准很简单,只需要几行代码。不过,能在实践中应用这几行代码,仍然让我有点激动。

围棋棋盘校准摄像头

3 体会到模拟和试验的差距

我是《无人驾驶入门》的助教、《无人驾驶工程师》的学员,完成过红绿灯检测、车道线识别、交通标志识别等项目,但是它们和实训项目有很大的区别。

首先,以前的项目使用的都是课程中提供的数据集,而实训中使用的数据都是我们自己采集的。后者需要考虑更多事情比前者多得多。比如,在使用摄像头采集红绿灯数据时,需要对摄像头对焦,否则采集的图像模糊不清,根本无法使用。我们队由于缺乏经验,就犯过这样的错误。再比如,《交通路牌识别》这个项目使用深度学习的方法识别 43 种交通标志,数据集是课程中提供的。而在实训中,我们需要自己给采集的图像打上标签,以区分红绿灯。

其次,模拟中可行的方案,在实车上未必有用。我们的最终目的是在实车上实现红绿灯的启停,所以编写一个红绿灯检测器。我做过一个识别红绿灯的项目,准确率达到 95%,这样的准确率完全可以满足项目的要求,本来想直接用在这里,结果却发现不可行。为什么?因为项目中使用的数据集只包含红绿灯,没有其他干扰,识别起来相对容易。

课程提供的图像

但是摄像头采集到的图像却并不是这样的,图像中还包大量背景信息,绿色的树,蓝色的天空,红色的地面,刺眼的阳光,甚至身穿红绿黄三色毛衣的摄影师小妹妹(曾经的噩梦啊,不过很好奇代码会识别成什么呢?),都会对识别结果造成影响。如何排除这些干扰,也是必须要考虑的。

摄像头采集的图像

最后,在完成实训项目的过程中,我对学过的知识又有了更深的理解。比如,曾经做过一个小习题,让我利用给定的yaw rate数据,求出汽车行驶时的角度。在数学上这是一个很简单的问题,只需要对 yaw rate 求积分就可以了,然而我并不知道这些数据是如何得到的。在这次实训中,我发现 autoware 导出的路点数据就包括了这些数据。虽然都是获得数据,但是自己亲手测量数据,和使用别人给的数据,感觉完全不同,这两者的区别,就好像一个是看别人玩游戏,另一个则是自己亲自参与游戏。

路点数据

4 遇到了不少困难

在实训过程中,我们也遇到了不少困难。比如,机器部署出现错误、操作系统奔溃了、工控机电源烧了、激光雷达烧了...多亏了优达学城 Aaron、pix 曾工以及名古屋大学教授 Alex 的帮助,让我们在第一时间解决了这些问题。遇到困难并不一定是坏事,没有什么事情是一帆风顺了,如果真的有,那也不值得做。

最后,非常感谢优达学城、pix 和 Autoware 联合举办的这次线下实训,感谢三位导师 Aaron、曾工和 Alex 对我们的帮助。还得感谢pix的行政人员,每餐都有贵阳美食,每天都有丰富的夜宵,而且还不带重样的!回重庆后我称了下体重,足足重了 5 斤。

如果你想了解线下实训的更多细节,可以移步阅读导师 Aaron 的文章:

TBA

手把手自己造无人驾驶车,是什么样的体验?相关推荐

  1. 百度要造什么车?汽车依然逃不出 BAT 的手掌心 | 撩车

    作者 | 王贺 编辑丨大湿兄 来源 | 创业邦(ID:ichuangyebang) 很多人或许会认为,百度和吉利的造车合作,从2019年时就已经注定的. 那一年,在百度AI开发者大会上,李彦宏和李书福 ...

  2. 宝马与intel合作 2021年推全自动无人驾驶车

    在16日当天进行的英特尔2016年开发者大会(IDF)现场,一辆宝马i3轿车缓缓驶上舞台中央,透过车内的摄像头,大屏幕上展示出车内的驾驶者完全没有触碰方向盘,宝马无人驾驶事业部高级副总裁ElmarFr ...

  3. 基于linux的智能小车_ROS全开源阿克曼转向智能网联无人驾驶车

    ROS 世界上最主流的机器人开发框架 ROS(Robot Operating System,机器人操作系统)是目前世界上最主流的机器人开源操作系统.它可以提供操作系统应有的服务,包括硬件抽象,底层设备 ...

  4. 建造属于你的无人驾驶车——(七)为XACRO模型添加GAZEBO属性与运动控制插件

    建造属于你的无人驾驶车! 本专栏持续更新中- 程序源码:https://github.com/kkmd66/ZZX_RUN Solidworks模型文件:https://github.com/kkmd ...

  5. 从小康到极狐,华为的“造好车”答卷,你准备打几分?

    到今天为止,没有人敢忽视华为的技术能力.但,从技术到产品,再到市场,却并非"一家之言",竞争永远是残酷的. "坐拥全景天幕,简约之下皆是享受.搭载HarmonyOS 智能 ...

  6. 【基础导航软件架构】无人驾驶车/机器人的基本导航软件系统框架(自己总结)

    系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录 前言 一.感知模块的理解 1.环境感知 传感器sensor 目标检测det ...

  7. 5分钟构建一个自己的无人驾驶车

    心情不够振奋,学个新技术吧! 翻译来源: https://www.youtube.com/watch?v=hBedCdzCoWM 发现了一个特逗儿的小伙儿,有一些5分钟系列的视频,介绍一些人工智能的技 ...

  8. 百度无人驾驶车北京上路!网友:没有司机我有点慌

      新智元报道   编辑:卫民 [新智元导读]10月11日,百度官方微博发布消息,百度自动驾驶出租车服务在北京全面开放,用户可在海淀.亦庄的自动驾驶出租车站点,无需预约,直接下单免费试乘自动驾驶出租车 ...

  9. 5G无人驾驶车上路雄安 中兴通讯携手中国电信、百度完成国内首测

    点击上方"中兴开发者社区",关注我们 每天读一篇一线开发者原创好文 近日,中兴通讯携手中国电信.百度在河北雄安新区完成了基于5G网络实况环境下的无人驾驶车测试,这是国内首个在5G网 ...

最新文章

  1. 来自新手Banana Pi香蕉派初体验
  2. 同步电路设计的一些问题(时序分析基础,同步电路设计规则)
  3. LruCache缓存处理及异步加载图片类的封装
  4. Visual Studio 2013 Web开发新特性
  5. 史上最详细“截图”搭建Hexo博客——For Windows
  6. opencv鼠标操作,画矩形
  7. long 比较大小_Long-Term Feature Banks
  8. RabbitMQ direct交换机
  9. python + pyqt5 UI和信号槽分离方法
  10. Replace Nested Conditional with Guard Clauses(以卫语句取代嵌套条件表达式)
  11. 十分钟学习python_10分钟带你入门Cython
  12. 【周记:距gdoi43天】
  13. (110)FPGA面试题-介绍Verilog块语句begin-end执行过程
  14. maven下载安装环境配置
  15. 隔离 docker 容器中的用户-------分享链接
  16. VBA函数定义及说明
  17. WordPress 5.2中的致命错误恢复模式
  18. Obsolete属性
  19. 十大简单排序:桶排序
  20. Yeti Feather贴图着色与Arnold 渲染

热门文章

  1. 让无线网卡同时工作在 AP 和 STA 模式
  2. HNU 12894 Keys dfs
  3. C语言之do_while输出菱形
  4. (转)一步一步Asp.Net MVC系列_权限管理之权限控制
  5. 利用CSS按比例缩小图片
  6. 【09】Jenkins:Pipeline 补充
  7. ESXi安装时遇到不识别的硬件的处理
  8. 关闭窗口(window.close)
  9. 接口的显式实现与隐式实现
  10. 什么是事务的传播特性?(转载)