新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 用FPGA实现低成本实时深度感知

用FPGA实现低成本实时深度感知

作者:Bart Borosky 莱迪思半导体公司时间:2008-06-17来源:电子产品世界收藏

引言

  对于自主机器人导航和其它应用来说,实时是很关键的。目前通过立体图像来计算深度的算法计算量很大,例如差异测绘,要占用CPU大量的时间,或者需要用昂贵的器件进行实时操作。

  针对立体摄像的解决方案能使处理器的时间得到缓解,减少或除去器件的成本,例如MPU、、激光器和昂贵的镜头。通过提供给机器人其环境中 的差异测绘,使机器人中的CPU专注于重要的高层任务,例如建图和定位。

本文引用地址:http://www.eepw.com.cn/article/84345.htm

差异测绘

  加到机器人的常用技术是用两个水平放置的独立摄像机,互相之间平行分开放置。用差异测绘算法对两个摄像机进行比较,见图1。


图1  差异测绘计算

  简单来说,差异是指右面和左面图像之间的差别。物体越接近摄像机,两个图像之间的差异越大。

  你可以自己来做一个实验,对着你的脸水平地向上握住一支笔,不停地眨你的左眼和右眼。移动的笔越接近你的脸,你眨眼时觉得移动越多。做更多的移动时,物体越接近你的眼睛,图像中的差异越大。

  如图1所示,从两个图像之间物体的位置算出差异:d=x1-x2。为了计算点M的实际坐标,可通过左面和右面的摄像机来进行计算:
  X=Bx1/d
  Y=By1/d
  Z=fB/d
  
  相关的问题

  计算差异测绘依赖于相关的图像,以及左面图像和右面图像的匹配性质。逐点计算相关的像素的计算量是很大的,因此用其它算法来简化这个问题。有一种方法称为图像点相关,仔细检查左面图像的像素块,称为点,然后在右面图像中寻找相同的点。其它的方法包括边沿检测和匹配。一旦定位了相应的图像,就可进行差异计算。

失真与曝光问题

  如果使用高质量的摄像机,可以忽略镜头失真。为了省钱,使用便宜的CMOS 或者CCD摄像机,或者低成本广角镜头。这些较低质量的产品会引入失真或曝光问题。

  镜头会引起比例和定位失真,例如白点效应,靠近图像外面的物体出现弯曲状,使用众所周知的图像处理算法可以进行补偿。针对移动或者其它几何算法,纠正白点的一种方法是使用坐标的查找表重测图像中的像素。

  在非常明亮和非常暗的环境中,其它的算法需要可靠地捕获图像中的详细特征。例如,针对不同的区域确定最佳的曝光设置,使用区域的合成图像可以补偿缺少背景亮度。

用含有的解决方案

  本文中阐述的深度感知算法计算复杂,以实时的视频速率来实现。系统设计者必须评估CPU/软件、ASIC, ASSP(例如处理器)和FPGA解决方案,确定哪个是最佳的,以及FPGA价格。    
图2展示了提出的FPGA协处理器解决方案,解决失真、曝光、通信和针对深度感知差异测绘算法。这个方法使CPU腾出时间,允许DSP处理器处理更多的串行任务。


图2   FPGA支持计算量大的差异测绘算法

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭