一份指南鼓励大家在家训练自动驾驶系统的感新时代

激光设备2020年06月02日

一份指南,鼓励大家在家训练自动驾驶系统的感知能力

自动驾驶汽车依靠摄像头、激光雷达以及雷达等等传感器来感知周围的变化,感知能力对自动驾驶来说非常重要。本文是一份指南,鼓励大家在家训练自动驾驶系统的感知能力。

△?神秘的视觉

感知,大概就是感受到周遭正在发生什么的一种能力。这项技能对自动驾驶来说太重要了。

自动驾驶汽车依靠摄像头、激光雷达以及雷达等等传感器来感知周围的变化。

一位名叫凯尔 (Kyle Stewart-Frantz) 的大叔,准备了一份指南,鼓励大家在家训练自动驾驶系统的感知能力。

当然,这个手册并不是他出于爱好写出来的,是随着Lyft和Udacity联合发起的感知挑战赛?(Lyft Perception Challenge),而生的。

比赛考验的就是系统能不能准确地感受到,可以行驶的路面在哪里,周围的汽车在哪里。

挑战赛中,能够倚仗的所有数据,都来自车载的前向摄像头。

摄像头不存在?

这里的“摄像头数据”并非真实摄像头记录的影像,而是一个名为CARLA的模拟器生成的图景。

毕竟,自动驾驶汽车的软件开发大多是在模拟器中进行的,那里快速的原型设计和迭代,比在现实世界里使用真实硬件要高效得多。

那么,来看一下CARLA给的数据长什么样——

左边是模拟摄像头捕捉的画面,右边则是与之对应的、标记好的图像。

用这样的数据来训练算法,让AI能够在从未见过的新鲜图像里,判断出哪些像素对应的是道路,哪些部分对应的是其他车辆。

这就是挑战赛的目标。

车前盖太抢镜?

要完成比赛任务,自然会想到语义分割。用这种方式来训练神经络,成熟后的AI便可以判断每个像素里包含的物体了。

第一步,是对标记好的图像做预处理。比如,因为设定是“车载前向摄像头”拍下的画面,每一幅图像都会出现车前盖,可是如果这样就把所有图像判定为“车”,就不太好了。

所以要把显示车前盖的那些像素的值设为零,或者贴上其他的“非车”标签。

第二步,车道标识和道路的值是不一样的,但我们希望这些标识,可以被识别为路面的一部分。

△?这不是给汽车的指示,但也太随性了

所以,要把车道标识和路面,贴上一样的标签。

用Python写出来,预处理功能就长这样——

1def preprocess_labels(label_image): 2 ? ?labels_new = ros_like(label_image) 3 ? ?# Identify lane marking PIxels (label is 6) 4 ? ?lane_marking_pixels = (label_image[:,:,0] == 6).nonzero() 5 ? ?# Set lane marking pixels to road (label is 7) 6 ? ?labels_new[lane_marking_pixels] = 7 7 8 ? ?# Identify all vehicle pixels 9 ? ?vehicle_pixels = (label_image[:,:,0] == 10).nonzero()10 ? ?# Isolate vehicle pixels associated with the hood (y-position > 496)11 ? ?hood_indices = (vehicle_pixels[0] >= 496).nonzero()[0]12 ? ?hood_pixels = (vehicle_pixels[0][hood_indices], \13 ? ? ? ? ? ? ? ? ? vehicle_pixels[1][hood_indices])14 ? ?# Set hood pixel labels to 015 ? ?labels_new[hood_pixels] = 016 ? ?# Return the preprocessed label image 17 ? ?return labels_new

预处理过后的结果,就是标记和之前的不太一样了。

准备活动做好了,神经络的正式训练也就可以开始了。

谁是分类小公主?

那么,大叔选的是怎样的神经络

定制一个FCN-Alexnet或许是个不错的选项,它擅长把每个像素分到不同的类别里。

循着以下链接,可以找到这个模型的详细信息——

代码:

论文:

大叔用一个随机梯度下降solver,把全部训练数据跑了10次?(10 epochs) ,基础学习率设的是0.0001。

评估训练成果

拿训练好的神经络去跑验证数据,凯尔得到了0.6685的F2值,以及0.9574的F0.5值 (前者更重视召回率,后者更重视准确率) 。系统每秒处理6.06幅图像。

当然,视频会比这些数字更加生动

然后还想怎样?

大叔说,要让神经络表现更好,将来会搜集更多数据,涉及更加丰富的路况。

另外,要进行一系列的数据增强,让数据和数据之间的差异更加明显。

关于神经络的结构,也还有其他选择,比如为细粒度预测而生的FCN-8,值得尝试。

还有,可以引入时态数据?(光流) ,来减少推断需要的帧数,同时保持比较高的准确今年则变成了两三百度。

模拟器不够真?

当然,只有模拟器也是不够的,自动驾驶系统终究要接受现实的考验。

面对真实摄像头传出的画面,系统的辨识结果并没有非常理想。不过在许多帧里面,神经络都能够在一定程度上,辨认出道路和车辆。

真实世界和模拟器里的驾驶场景,还是不一样的。

如果模拟器生成的图像和现实更加接近的话,可能结果就会好一些了。

不难看到,在和模拟器设定更为接近的路况下,系统的表现还是很不错的。

如此看来,这只AI还是很有前途。只要把模拟器造得更贴近真实,神经络应该就能得到更有效的训练。

这里提供一段代码,可以用来查看,算法跑出的结果到底怎么样——

1fROM itor import VideoFileClip, ImageSequenceClip 2import numpy as np 3import scipy, argparse, sys, cv2, os 4 5file = gv[-1] 6 7if file == : 8 ? ?print ("Error loading video") 9 ? ?quit1011def your_pipeline(rgb_fRame):1213 ? ?## Your algorithm here to take rgb_frame and produce binary array outputs!1415 ? ?out = your_function(rgb_frame)1617 ? ?# Grab cars18 ? ?car_binary_result = ere(out==10,1,0).astype(uint8)19 ? ?car_binary_result[496:,:] = 020 ? ?car_binary_result = car_binary_result * ? ?# Grab road23 ? ?road_lines = ere((out==6),1,0).astype(uint8)24 ? ?roads = ere((out==7),1,0).astype(uint8)25 ? ?road_binary_result = (road_lines | roads) * ? ?overlay = ros_like(rgb_frame)28 ? ?overlay[:,:,0] = car_binary_result29 ? ?overlay[:,:,1] = road_binary_result3031 ? ?final_frame = dWeighted(rgb_frame, 1, overlay, 0.3, 0, rgb_frame)3233 ? ?return final_frame3435# Define pathname to save the output video36output = segmentation_output_437clip1 = VideoFil签订合同等。关于上门拜访的工作eClip(file)38clip = _image(your_pipeline)ite_videofile(output, audio=False)

用到的可视化数据在这里:

你也一起来吧?

当然,作为Lyft感知挑战赛的研发负责人,凯尔大叔这番苦口婆心的目的,还是吸引更多的小伙伴掺和进来。

道路安全,人人有责。大概就是这个意思,吧。


新乡白癜风治疗费用
昆明治疗白癜风医院
唐山治疗白癜风哪家医院好
尿黄尿痛尿不尽吃什么药物
相关阅读
把女朋友当女儿养的男生也比较聪明 女孩子本来就是你越宠爱 她越可爱的 你给她足够的安全感和保护 她也

把女朋友当女儿饲的男生也非常聪明 女孩子本来就是你越好宠爱 她越好可爱...

2023-09-16
【医学小常识】慢阻肺患者睡觉时不成形易腹泻?这三款代茶饮总有一款能帮你!

慢阻呼吸系统水泡不成形易病症?这三款代茶饮总有一款能找来你止燥! 本...

2023-09-08
孩子到了这个年龄段,老人就该“撤出”了,爸妈亲自带孩子才最好

现如今,越来越多的年轻一代结婚,有了孩子们再次,则会因为各种原因,比...

2023-09-05
进修《中国共产党宣传工作简史》(四)

华南地区共产党在 鼓动管理工作巨著 党在对开展黄兴的鼓动 华南地区共产党...

2023-09-02
一年出水百万吨,繁荣暗藏还暗藏玄机?带鱼的“忧虑”是什么?

如果让大家回忆起一下三十年从前,中秋时佳肴的最常见新鲜有哪些,有可能...

2023-09-01
欧洲主要股指集体收涨 瑞士DAX30指数涨0.7%

欧洲地区主要交易者集体收飙升 德国DAX30标准普尔飙升0.7% 【欧洲地区主要交...

2023-08-31
友情链接