首页 理论教育 利用视觉实现操纵和导航

利用视觉实现操纵和导航

时间:2022-02-11 理论教育 版权反馈
【摘要】:视觉的一个主要应用是为操纵物体——拾起、抓住、转动等——和避障导航提供信息。利用视觉完成这些目标的能力,对于动物视觉系统来说是最基本不过的。很可能,现代视觉系统是从早期原始生物体进化而来的,这些生物体利用身体一端的感光点指引它们自己朝向(或离开)光源的方向。计算机视觉系统被用于一种称为机器人的“生物体”中。利用这些技术,视觉控制的汽车现在能够以高速公路上的速度长时间行驶。

24.6 利用视觉实现操纵和导航

视觉的一个主要应用是为操纵物体——拾起、抓住、转动等——和避障导航提供信息。利用视觉完成这些目标的能力,对于动物视觉系统来说是最基本不过的。在许多情况下,如果视觉系统从可获得的光线场中抽取的仅仅是动物指导其行为所需的信息,那么这个视觉系统是最小限度的。很可能,现代视觉系统是从早期原始生物体进化而来的,这些生物体利用身体一端的感光点指引它们自己朝向(或离开)光源的方向。我们在第 24.4 节中看到,苍蝇使用一个非常简单的光流检测系统来降落到墙上。一个经典的研究,《青蛙的双眼揭示了青蛙大脑的哪些东西》(What the Frog’s Eye Tells the Frog’s Brain)(Lettvin等人,1959),对一只青蛙进行了观察:“如果它周围的食物不移动的话,它就会饿死。它对食物的选择只取决于大小和运动”。

计算机视觉系统被用于一种称为机器人的“生物体”中。让我们考虑一种特定的机器人类型:在高速公路上行驶的自动车。(参见图24.23。)首先,我们进行任务分析;然后,我们确定视觉算法,为充分执行这些任务提供所需信息。驾驶员面对的任务如下:

(1)横向控制——确保车辆安全地保持在它的车道内,或者在需要时平稳地换道。

(2)纵向控制——确保和前面车辆之间有一个安全的车距。

(3)障碍物避让——监视相邻车道的车辆,并准备好当它们中的某一辆决定换道时应做出避让动作。

司机要解决的问题在于生成合适的转向、加速和制动行动,以最好地完成这些任务。


图24.23 一辆汽车上的摄像头拍摄的道路图像。白色水平条带指示了控制器搜索车道标志的搜索窗口。在低分辨率灰度视频中,这样低质量的图像并不鲜见

对于横向控制,需要保持对汽车与车道的相对位置和方向的表示。在图 24.23 所示的图像中,我们可以用边缘检测算法寻找与车道标志段对应的边缘。然后我们可以用光滑曲线拟合这些边缘部分。这些曲线的参数携带有关于汽车的横向位置、它相对于车道前进的方向,以及车道曲率等信息。这些信息,再加上关于汽车的动态信息,就是驾驶控制系统所需的全部信息。还要注意到,因为从每一帧到下一帧图像中车道的投影位置只有很小的变化,所以人们知道应该在图像中的什么地方寻找车道标志——在图中,我们只需要看平行白色条带标出的区域即可。

对于纵向控制,需要知道到前方车辆的距离。这可以利用双目立体视觉或光流来完成。两种方法都可以通过采用来自车辆行驶在平坦表面上这个事实的作用域约束而得到简化。利用这些技术,视觉控制的汽车现在能够以高速公路上的速度长时间行驶。

驾驶的例子很清楚地说明了一点:对于某个特定任务,并不需要从一幅图像中找到原则上能够找到的所有信息。人们不需要得到每辆车的确切形状,不需要为公路边的草地表面求解从纹理到形状的问题,等等。任务需要的只是特定种类的信息,通过只恢复这些信息并充分利用作用域约束,可以得到可观的运算速度和鲁棒性。我们在前几节讨论一般性方法的目的在于,它们形成了基本理论,人们可以把它们专门化,以满足某些特定任务的需要。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈