日期
04/15
2020
咨询
  • QQ扫一扫

  • Vision小助手
    (CMVU)

智能控制打造新颖的机器视觉相机系统
收藏
2020-04-15 14:44:26来源: 中国机器视觉网

   在当今的机器视觉相机系统中,已经出现了智能控制功能;而之前的模拟接口相是不具备这种功能的。

   在传统的模拟接口相机中,在拍摄之前,控制应用程序不得不选择多种相机参数,并且相机系统在实际应用中,这些设置不再改变。这是因为许多相机在拍摄前,必须事先使用dip开关进行物理设置;因此,在相机的使用过程中,控制应用程序对相机的控制实际上是非常有限的。

   然而,当下主流的数字接口相机正被广泛应用,而在这些应用中,控制应用程序在相机拍摄时会动态地改变相机设置。这是因为对相机设置的控制已经从硬件控制转移到了软件控制,因此能更容易地更改相机的所有设置。

   虽然现在更容易在数字接口相机上更改相机设置,但即使两台相机在帧率相同的情况下,它们在吞吐量上也有可能存在较大差异;这是因为不同的相机,更改相机设置所需要的时间不同(见图1)。


   图1 相机B的吞吐率比相机A更快,因为它在两次成像之间更改相机设置的时间更短。

   Camera A:相机A

   Camera B:相机B

   Setting:设置时长

   image:图像

   因此,在高速成像应用中,更改相机设置所需要的时长至关重要。更改相机设置所需要的时长,在过去并没有被当作一项相机规格来讨论,而现在其正在成为一个重要话题。

   东芝泰力关注这个问题已经有一段时间了,并且已经开发了一些技术来缩短更改相机设置所需要的时间。东芝泰力推出的BU系列和DU系列 USB3.0 Vision相机、BG系列GigE Vision相机和BC系列Camera Link相机,都内置了很多高速技术,以最大限度地在应用中提高吞吐量。以下介绍了三种主要技巧。

快速响应命令

   为了使相机的吞吐量实现最大化,缩短执行“更改相机设置”命令的时间至关重要。虽然单个命令的执行时间相对于相机的操作周期非常短,但总的执行时间确实会随着执行次数的增多而累积,从而导致相机的吞吐量降低。

   总的命令执行时间是“一次更改相机设置所需的命令数”与“需要更改的拍摄条件数”的乘积。在具有许多拍摄条件的应用中,需要执行更多的命令。因此,即使命令执行时间本身很短,也有可能出现较大的应用延迟

   因此,加速相机执行命令的速度,对于缩短其命令执行时间必不可少。也就是说,在大多数由PC控制的相机中,PC会等待发送下一条命令,直到收到来自相机的关于上一条命令的执行响应。因此,如果相机执行命令的时间较长,那么PC就要等较长的时间才能收到相机的响应,并且应用会在命令执行期间暂停,吞吐量必然随之降低。

   今天,许多传统相机使用嵌入式CPU,通过软件(固件)处理来加速命令执行。(见图2)。


图2 嵌入式CPU管理命令的执行

   Image Sensor:图像传感器

   Data Bus:数据总线

   Driving:驱动

   Register Setting:寄存器设置

   Communication:通讯

   虽然使用软件可以获得较高的生产率和可维护性,但是相机的命令执行速度仍然取决于CPU的性能。因此,要加快相机的命令执行时间,就需要使用更高性能的CPU——而一个更高性能的CPU,其成本也更高,并且会增加相机系统的功耗。

   相比之下,东芝泰力的相机则采用了Teli Core Technology。该技术使用硬件逻辑来执行所有命令,而无需使用嵌入式CPU(见图3)。由于处理是通过硬件执行的,因此东芝泰力相机几乎可以实时执行命令。由于在收到命令时执行就已经几乎完成,因此应用程序的等待时间达到了尽可能最短。


图3 Teli Core Technology取代嵌入式CPU加快命令执行

   Image Sensor:图像传感器

   Data Bus:数据总线

   Driving:驱动

   Register Setting:寄存器设置

   USB/GigE Communication:USB/GigE通讯

   图4显示了分别使用CPU和Teli Core Technology,相机运行时间的比较。尽管每条命令的执行时间差异很小,但是对于不断重复的命令处理,累积起来的时间差异还是很大的。

   图4:使用Teli Core Technology的相机能比使用嵌入式CPU的相机,将命令执行的总时间最多减少三倍。

   Competitor A:竞争厂商A

   Setup time is 3 times faste:设置时间快三倍

   Tear Down:完成

   Image Transfer[ms]:图像传输[ms]

   Exposure[ms]:曝光[ms]

   Setup[ms]:设置[ms]

顺序快门

   在动态更改拍摄条件的应用中,在某些场景中,有时会以相同的顺序重复设置几个固定的拍摄条件。例如,在产品检测应用中,被检测的产品被拍摄一系列图像,这个过程中会根据拍摄图像的不同而更改相机设置;而在接下来的同类产品检测中,同一系列的相机设置会被重复使用。

   因此对于这类应用而言,命令的快速响应尤为重要。然而,特定应用中的命令执行延迟,不仅存在于相机中,而且也存在于控制相机的PC中。事实情况是:PC很难可靠、反复地控制相机的操作定时,因为PC还需要处理许多其他进程和中断,而这些可能会带来不可预知的延时,进而影响PC对相机的管理。

   为了解决这个问题,东芝泰力采用了顺序快门功能。在每次相机循环执行其预定义的成像步骤时,该功能可以将相机自动切换到对应的预先定义的设置。

   在相机的用户设置存储器中存储了多种拍摄条件。用户设置存储器有15个存储区,可以存储多达15种拍摄条件。在特定的应用中,相机设置的使用顺序是通过列出存储器编号来指定的。

   图5显示了顺序快门操作的示例。在本例中,指定了四组相机设置:存储器组1、存储器组9、存储器组5和存储器组15,以分别生成帧1、帧2、帧3和帧4。


   图5:完整的相机设置通过向相机中的“用户设置存储器”发送一条命令来实现,从而加速了重复场景的拍摄速度。

   Frame:帧

   Memory Bank:存储区

   Gain:增益

   Exposure:曝光

   ROI position:ROI位置

图像缓存

   近年来,供应商提供的图像传感器具有了更高的帧率。但是即使在传感器和输出接口之间采用高速串行接口的情况下,也会出现接口带宽过低的情况,从而导致接口成为限制相机帧率的一个瓶颈。

   当传感器的像素格式中具有大量视频数据(如RGB输出)、或具有深位深视频数据时,这一点尤其明显。随着每帧中视频数据量的增加,将这帧数据传输过接口的时间也会增加。在传统相机中,图像传感器在开始下一帧图像采集之前,需要等待接口完成上一帧图像的传输。这个等待时间显然会降低传感器的有效帧率。

   为了解决这个问题,东芝泰力的相机在图像传感器和输出接口之间,增设了一个图像缓存器。现在,只要这个缓存器的空间够用,图像传感器和接口就可以彼此独立地工作。这种方法消除了接口限制,使图像传感器可以在其标称的高帧率下工作。

   存储在图像缓存器中的图像,将根据输出接口的速度,从相机中独立地顺序传输到输出接口(见图6)。这样一来,就可以同时高效地使用高速图像传感器和携带大量信息的视频数据。

   图6:在传感器和输出接口之间加入一个图像缓存器,可以保证图像传感器的高帧率不受输出接口速率较低的影响。

   Exposure:曝光

   Sensor output:传感器输出

   Image buffer:图像缓存器

   Interface output:接口输出

   这个图像缓存器的使用,不需要在相机上进行任何特殊设置。也就是说,相机始终使用它自己的图像缓冲区。这意味着,对于那些每帧图像都包含大量数据的应用,可以使用更短的输入触发周期时间。

   下面是使用东芝泰力的高速相机技术的一些应用示例。

使用BU406M进行ROI高速切换

   第一个应用案例展示了如何在更改图像大小的同时,执行高速拍摄。BU406M相机的能以90fps的帧率拍摄分辨率为4MP的图像,并提供ROI(感兴趣区域)功能。ROI功能可以通过只撷取感兴趣的图像区域,来进一步提高相机的帧率。例如使用BU406M相机的一款应用,要求逐帧更改ROI设置,以减少视频采集时间。

   当相机以90fps的帧率拍摄分辨率为4MP的图像时,图像输出周期(不包括曝光时间)为1/90s=11.1ms。在这个应用中,要求图像的输出周期(包括ROI切换时间)必须大大短于11.1ms。因此,更改ROI设置所需的时间必须不能超过1ms(见图7)。


图7 为了提高相机的帧率ROI切换时间减少到小于1ms

   Full imagie:整幅图像

   ROI imagie:ROI图像

   Image:图像

   Setting:设置

   更改ROI设置是更改相机设置中最耗时的操作。其原因是,必须完全停止视频采集过程才能更改设置,并且更改ROI设置需要许多命令。

   Teli Core Technology的高速响应(以硬件逻辑取代了嵌入式CPU)解决了将ROI设置时间缩短到不超过2ms的问题。这是因为即使在执行大量命令时,无需等待响应的实时处理,可以将延迟时间最小化。

   特别是在改变视频流设置时,相机寄存器会被频繁地写入并读取更新的寄存器。这是因为相机需要通过接收寄存器写入数据来更新其他寄存器,例如在“通过改变图像大小来更新视频数据长度”的情况下。

   因此,在这个操作中,Teli Core Technology(写入命令被立即响应)具有极大的优势。

   在自由运行模式下使用顺序快门的高速序列

   在这个应用案例中,要求在目标物移动的情况下,连续拍摄。具体来说,在一个产品检测系统中,为了改变每次拍摄的角度,目标物需要多次移动。此外,无论拍摄角度如何,拍摄条件序列都是恒定的;因此,使用顺序快门是一种有效的解决方案。

   而且,许多使用顺序快门功能的应用,也使用触发模式功能。这两者的组合用于同步对象和图像序列。然而,为了在触发模式下操作,应用必须根据相机的操作来定时触发。如果触发输入太早,则无法获得所需的曝光;如果触发太晚,则会在序列中出现间隙,降低吞吐量。

   然而,在因为配置而无法设置合适的触发信号发生器的情况下,触发模式可能会不合适。在这种情况下,在自由运行模式下使用顺序快门是一种有效选择。

   使用图像缓存缩短拍摄节拍时间

   这是一个在产品检测系统中使用图像缓存器来减少拍摄节拍时间的案例。在使用彩色相机的产品检测系统中,面临的一个关键问题就是处理由此产生的大量视频数据。这是因为,RGB相机产生的视频数据量是单色相机的三倍。

   大量的视频数据将导致相机接口过载。当使用高速图像传感器时,接口成为限制性能的瓶颈,导致相机实际帧率降低。综合来看,彩色相机存在的问题是:很难缩短节拍时间,因为它的视频信息量远大于黑白相机。

   然而,在需要改变检测位置拍照的产品检测系统中,缩短节拍时间是一个非常重要的因素。缩短节拍时间就能缩短检测时间,提高产品生产率。

   相机帧率对最终的节拍时间有很大影响。特别地,当对每个被检测的产品拍摄多张图像时,节拍时间会有很大的延迟。如果产品检测系统使用的是提供大量视频数据的彩色相机,也会进一步增加缩短节拍时间的难度。            

   通过加速图像缓冲功能,可以避免这个问题。如前所述,图像缓冲功能可以使图像传感器和相机接口的操作彼此独立。通过充分利用图像缓存器,产品检测系统可以立即移动到下一个检测位置,而无需等待完成曝光的图像数据,经由相机接口完全传输出去。通过重叠图像采集和移动,缩短了节拍时间(见图8)。


图8 通过图像缓冲区来缩短节拍时间

   Exposure:曝光

   Sensor output:传感器输出

   Interface output:接口输出

   Machine status:设备状态

   Image capturing:图像采集

   Moving:移动

总结

   一方面,随着图像传感器的速度和灵敏度、以及相机接口速度的提高,曝光时间和视频输出时间已经得以缩短。另一方面,相机控制变得更加复杂,更改相机设置所需要的时间也随之增加。随着技术的改进,这些趋势将变得更加明显。            

   东芝泰力将继续为高速应用引入新的相机产品:其高速性能可以轻松匹配其标称规格(如帧率和接口速度),以及一些其他真正的高速相机功能(包括相机控制)。

为你推荐