当前位置: 华文问答 > 数码

完全自动驾驶距离我们还有多远,遇到了哪些难以逾越瓶颈?

2022-09-26数码

还差一个gpt++。

其实现在的自动驾驶是基于图像识别的(如果包含激光雷达的话,那就是点云识别)。

图像识别技术现在的确已经非常成熟了;尤其基于深度神经网络的识别准确率甚至可以超过人眼。

但,问题来了:我们人类虽然的确是依赖眼睛「导航」的;但如果出现了误识别、比如把路牌看成人了、把路边广告牌上的风景/道路看成路口了、把公交车上的广告明星当成过街的行人了……那没关系,我们还有大脑,可以立即做一个逻辑推断——不对!我现在在高速公路上,这是城市街道不是高速公路!

但,计算机程序做不到。

更进一步的,我讲过自己开车的一个案例:去火车站,路上见到4个小孩打闹。其中一个打了另一个一下,转身就跑过了马路;另一个追着就过去了。然后剩下两个哈哈大笑,随即第三个也追上去了,只剩第四个站在路边笑的直不起腰。

我熟悉儿童心理。所以立即踩了一脚刹车,把车速降低到5km左右。果然,第四个笑完,什么都不看直接冲过马路,追着另外三个去了。

如果不刹车,你觉得这危险不危险?

那么,问题来了:这样的程序,应该怎么写?

其实,因为图像识别失误造成的自动驾驶车祸已经发生过很多次、也死了不少人了。

比如,去年还是什么时候,一名华裔工程师开特斯拉回家,就因为路面标线模糊造成车辆失控,直接撞了隔离墙。车毁人亡。

人开车显然是不会这样的。因为我们可以根据周围环境迅速做出推断。

不需要明显的标线(图像识别依赖的「锚」),我们自己看着道路、就知道标线应该是什么样子、哪里缺损了、该如何补。

类似的,路上出现了阴影/疑似坑穴,我们也能提前发现、做好推断然后迅速采取措施。

类似「看到孩子打闹,猜到最后一个孩子会过马路」这样的推断是平凡而琐碎的,伴随着我们开车的每分每秒——比如,我学车时,有人给我讲过,说你要注意自行车/电动车/摩托车,这些车没有或者不会打转向灯,你要注意他看哪个方向。如果骑车者突然往左看了一眼,那么他很可能马上就要左转;此时汽车驾驶员就必须注意减速,别撞上去。

再比如,路上见了个纸盒子、掉了张报纸、塑料袋,最好不要压上去。因为下面/里面可能有钉子。尤其人在外地,轮胎被扎麻烦就大了。

还有,有的路标线清晰宽敞……但其实是一条断头路,前方直接石墩堵死。人类司机可以大老远看出问题、切换到支路;自动驾驶怎么办?

或者,前方学校,斑马线附近画了很多小朋友的画像,提醒司机注意。人眼可以一眼看出这是一幅画,画在地上的平面画;自动驾驶呢?

换句话说,自动驾驶之所以无法替代人类司机,或者说L2之所以被卡的死死的、无论如何都提不到L3水平,原因就在于,整个驾驶过程中,是存在无数的「推断」的。

这些「推断」包括但不限于地理知识、生活常识、施工/工地见闻乃至逻辑学、心理学等方面的知识——当然,仅仅是这些知识的入门;入门,但实用,而且无处不在。

但这个推断,是传统计算机程序做不到的。

我们可以提前写很多很多的判断、搞出无数的预设场景……但我们没有办法预设所有场景。

从这个角度看的话,其实L2、L3、L4之类的划分是非常的拍脑袋的、也是不科学的。

原因很简单,L3想要做到可行水平,那么「道路状况推断」就必须做。不能道路标线模糊了你就把人撞死。

同样的,道路标线再清晰,地上撒了钉子、放了破胎器,那就必须立即紧急停车,一步都不能多走。

类似的,弯道,没有视野;听见前方当的一声闷响然后飘过来几丝烟气——怎么办?

你当然应该推断到「前方可能出了车祸所以必须立即减速」,对吧。

那么,现在我要问了:哪个公司敢说自己能做到?

甚至,基于传统编程方案,哪个二蛋敢说这事有可能做到?

这是做不到的。 L3是永远不可能用传统编程方案触及的

因为它里面包含了推断。不管这个(开放性的)推断有多弱,它都不是预设逻辑的、传统的软件工程能解决的问题。

反过来说也对:一旦能解决推断问题——比如,接入chatgpt、把摄像头/麦克风捕捉到的各种信息巨细靡遗的提交给它,要求它立即做出判断(至多延迟2秒,不能更久了)——那么,其实直接到L5了,对吧?

但,chatgpt我们现在已经很熟悉了。它的推断能力还是有些薄弱,可靠性不是很好。很多时候,它的答案取决于我们提问的方式……

想要让它可靠,那么训练数据就要更多、就要用更好的方案更强的硬件……

熟悉深度神经网络的都知道,其实我们不可能划分级别、按L3、L4、L5的训练它的。

要么全有,要么全无。这就是问题所在。

换句话说,L2和L3的划分有意义;L3到L5的划分是ppt。

所有的问题最终归结为一个,就是如何训练一个可靠的、有推断能力的AI,可以近实时的、像人一样的做出决策。

换句话说,chatgpt之类AI什么时候能足够的靠谱。