可行驶区域(free space)检测
深度学习以前的可行驶区域检测,有两种方法,一是基于双目摄像头立体视觉或者Structure from motion, 二是基于局部特征,马尔科夫场之类的图像分割。结果是这样的:
绿色部分是可行驶区域检测,看着还不错对不对? 但是注意左边的绿色部分涵盖了马路“倒鸭子”(雷锋网按:路边石)以及人行道部分,因为“倒鸭子”也就比路面高十厘米左右, 靠立体视觉是很难跟马路区分开来的。而传统的图像分割也很困难,因为局部特征上,“倒鸭子”上和路面的颜色极其接近。区分二者需要对环境整个context的综合理解。
自从有了深度学习可以做scene understanding之后,这个问题终于被攻克了:
绿色部分还是可行驶区域,马路右边的路肩跟路面的高度相差无几,颜色texture也是一模一样,用立体视觉的方法不可能区分开来。
而且不仅仅可行驶区域的边界准确检测出来了,连为什么是边界的原因也可以检测出来:
红色表示是物体跟道路的边界,鼠标位置那里表示的是Guard rail(护栏),而上一张图应该是Flat。这样在正常情况下知道哪些区域是可以行驶的,而在紧急情况下,也可以知道哪里是可以冲过去的。
当然,相较于第一部分,这一部分的原理是比较清楚的,就是基于深度学习的scene understanding。学术界也有蛮不错的结果了,比如下图(Cambridge的工作),路面跟倒鸭子就分的很好(蓝色跟紫色):
3