×

实例分析传感器融合在嵌入式视觉的应用

消耗积分:1 | 格式:rar | 大小:0.07 MB | 2017-10-13

分享资料个

传感器在我们的世界经历了快速的推广,事实上,传感器现在已经非常普遍,以至于我们每个人日常所使用的手机里都有好几种不同类型的传感器。这些传感器有的能检测压力、温度、加速度和重力的简单变化,同样也有更为高级的传感器,例如 GPS、RADAR、LIDAR 和图像传感器。
  传感器融合是指从几种不同的传感器中提取数据,以生成靠单个传感器无法提供的信息。随后,可以对该信息做进一步处理和分析。并根据最终应用,必要时还可用传感器来制定决策。传感器融合分为两大类 :
  ·实时传感器融合——提取并融合传感器数据,并根据得到的信息实时制定决策。
  ·离线传感器融合——这种方案是提取并融合传感器数据,但在过后的某个时间制定决策。
  就嵌入式视觉系统和传感器融合应用而言,大部分应用适合实时传感器融合。
  嵌入式视觉应用
  嵌入式视觉应用正在经历迅猛增长,涉及领域广泛,从机器人、高级驾驶员辅助系统 (ADAS) 到增强现实,不一而足。这些嵌入式视觉应用对最终应用的成功运行有很大帮助。将嵌入式视觉系统提供的信息与来自不同传感器或多个传感器的信息进行融合,有助于更好理解环境,从而提升所选应用的性能。
  很多嵌入式视觉应用只使用一个图像传感器来监控一个方向,例如只监测汽车的前方。利用这样的图像传感器可以检测、分类和跟踪对象。然而,由于只使用一个传感器,因此就无法测量与图像中对象的距离。也就是说,我们可以检测和跟踪到另一个车辆或行人,但如果不借助另一个传感器,我们就无法确定是否存在碰撞风险。本例中我们需要另一个传感器,例如 RADAR 或 LIDAR,该传感器能提供与已检测到的对象的距离。由于这种方法能够将来自多个不同类型传感器的信息融合,因此称为异构传感器融合。
  
  ADAS 异构传感器融合实例
  另一种方案是提供第二个图像传感器,以实现立体视觉。这种方案是让两个图像传感器朝着相同方向,但分开一小段距离,就像人的两个眼睛那样,通过视差确定对象在视场中的深度。像这样使用多个相同类型的图像传感器,称为同构传感器融合。
  当然,这里需要根据驾驶条件确定架构和传感器类型的选择。这包括深度感的范围、测量精度、环境光和天气条件、实现成本以及实现复杂程度。
  嵌入式视觉不仅可用于对象检测和汽车防撞,还可以作为导航系统的一部分,用来收集交通标志信息。另外,还可融合医用 X 光、MRI 和 CT 等多种不同图像,或者融合安防与监视设备中的可见光和红外图像。
  我们通常认为嵌入式视觉应用只使用可见电磁光谱,其实很多嵌入式视觉应用能融合来自可见电磁光谱以外的数据。
  处理要求
  如果不进行融合,处理图像时就需要相当大的计算能力,这是因为系统要执行一系列预处理功能。例如在使用彩色图像传感器时,这些处理任务包括颜色滤波插值、色彩空间转换/重采样以及图像校正。除此之外,我们还要执行传感器融合算法本身的处理任务,在之前使用的对象检测实例中,我们需要执行背景减法、阈值和轮廓检测,以使用最简单方案定位对象,或者可能需要更强的 HoG/SVM 分类器。
  随着帧率和图像尺寸增加,预处理图像和提取信息所需的处理能力也会随之增加。
  然而,从图像中提取所需的信息还只是任务的一部分,如果使用异构融合,我们还需对来自第二个传感器的信息进行配置、驱动、接收和提取。如果我们选择同构系统,则需要为第二个图像传感器再次执行与第一个传感器相同的图像处理流水线。
  这样能提供两组数据,必须对这两组数据进行处理以确定与对象的实际距离,这才是真正的融合。
  All Programmable SoC 或 FPGA 的优势
  在嵌入式视觉系统中,一般使用 All Programmable FPGA 或 All Programmable SoC 来实现图像处理流水线。如果它们能用于传统嵌入式视觉应用,那么也适用于嵌入式视觉融合应用。
  无论选择 FPGA 还是 SoC,嵌入式视觉应用通常使用处理器进行监视、控制和通信。如果选用 All Programmable SoC,那么中间有一个硬核,并有很多支持外设和接口标准。如果使用 All Programmable FPGA,就会使用一个软核,例如 MicroBlaze™,并采用更加定制化的外设和接口支持。
  对于嵌入式视觉传感器融合应用,我们可进一步利用处理器为所用的众多传感器提供简单接口。例如,加速计、压力计、陀螺仪和 GPS 传感器都配有串行外设接口 (SPI) 和内部集成电路(I2C)接口,都得到 All Programmable Zynq®-7000 和 MicroBlaze 软核处理器的支持。这使软件能够快速、方便地从不同类型的传感器获得所需信息,并提供给可扩展架构。
  在可编程逻辑架构中可轻松实现用于从图像传感器提取信息的图像处理流水线,此外,可编程逻辑架构还可用来为其他异构传感器(例如 RADAR 和 LIDAR)或者同构系统中的多种情况实现处理流水线。
  当使用 All Programmable Zynq-7000 或 All Programmable UltraScale+™ MPSoC 时,处理器存储器与可编程逻辑之间紧密耦合的架构允许应用软件访问所得到的数据集,以便进一步处理和制定决策。独立传感器链可在可编程逻辑中实现,而且可并行运行,这对于立体视觉等需要同步操作的情况非常有利。
  为了加速在可编程逻辑中实现的融合应用的交付进程,我们可利用高层次综合 (HLS) 开发可直接在可编程逻辑架构中实现的算法。
  实例架构
  开发前面介绍的对象检测和距离算法,利用 All Programmable SoC 演示同构和异构方案。尽管两种方案使用的传感器类型不用,但这两种架构的最终目标都是将两个数据集放在处理系统的 DDR 内存,同时将可编程逻辑架构的性能最大化。
  实现同构对象检测系统需要使用相同的传感器类型,这里是 CMOS 成像传感器。这样做的优势是只需要开发一条图像处理链,这个图像处理链可以为两个图像传感器在可编程逻辑架构中实例化两次。
  同构架构实现立体视觉系统的条件之一是要求两个图像传感器同步在可编程逻辑架构中并行实现两个图像处理链并使用具有适当约束的相同时钟,这样有助于满足这一苛刻的要求。
  尽管视差计算需要进行密集处理,但两次实现相同的图像处理链的能力可显著节省开发成本。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !