网站首页 > 技术教程 正文
许多应用需要从多个相机同步捕捉图像。这些应用包括从三角法3D任务、到体育和运动分析、到传送带监测应用。举例来说,当在足球比赛中拍摄射门时,必须在精准确定的时间没有任何延迟地拍摄图像,也就是实时拍摄图像。其他实时应用包括机器人和质保系统的自动光学检测(AOI)任务。
本文将为您介绍多相机应用如何利用GigE Vision 2.0标准的功能实现同步图像获取。
其基础是精确时间协议(PTP,IEEE1588)。PTP是在一个计算机网络上的多个设备之间实现精确时间同步的网络协议。
图像捕捉的要求是什么?
要实现同步或实时操作,通常通过相机上的专用I/O端口的数字信号触发图像采集。采用这种设置时,每个相机必须使用配备合适插头的额外电缆连接。这样,不仅安装更加复杂,而且成本更高,特别是如果需要高质量电缆(如那些用于拖链应用的相机)的情况下更是如此。
目前,GigE Vision 2.0标准提供了另一种简单方式,无需额外布线,即可同步和(或)实时操作相机。此外,更进一步的优势是,许多应用现已不再需要单独搭配触发盒,而是直接通过软件进行相机触发,包括实现同步操作。
GigE Vision 2.0主要组件包括:
通过PTP(精确时间协议,IEEE 1588)为所有网络组件提供的共享高精度时间源
相机同步自由运行
使用动作命令或计划动作命令通过以太网触发
下面提供了这些功能的更精确定义以及应用示例。
基于网络的时间同步:精确时间协议(PTP,IEEE 1588)
精确时间协议定义网络组件(如GigE Vision相机)在连接到一个以太网网络时,如何以完全同步的系统时间运行。
典型的PTP兼容网络设置 - 所有组件都有相同的系统时间
根据给定的网络组件的PTP就位状态是在硬件还是软件层级实现的,PTP提供从几微秒到几纳秒的精度范围。在此网址提供了PTP实施列表:http://en.wikipedia.org/wiki/List_of_PTP_implementations.
精确时间协议的要求及其功能方法
要使PTP在网络段内正常运行,需要为PTP做好准备的设备(包括相机在内)。优化的实时操作还需要交换机兼容PTP。必要时,PC必须配备一个为PTP做好准备的网卡,或必须运行至少一个提供PTP服务的软件解决方案。软件解决方案的精度低于兼容PTP的网卡等硬件解决方案。一旦具备了这些条件,集成的PTP兼容组件首先确定在它们中哪个组件的时钟最精确。然后其他组件全部进行同步,以匹配这一时间标记,直到所有组件使用精确的同一系统时间为止。下面的框中包含了更多详细信息。
PTP的功能方法
PTP采用两种类型的时钟:主时钟和从时钟。在一个终端设备中的一个时钟称为普通时钟,而以太网交换机等传输组件中的时钟被指定为边界时钟。
理想情况主时钟受无线信号或GPS接收机控制,使所有与之连接的从时钟同步。
主时钟和从时钟
同步过程分为两个步骤。第一步是校准主时钟和从时钟之间的时间差,称为偏移校正。主时钟以最佳时间估计(作为时间戳)向连接的从时钟发送一条周期性同步消息(SYNC)。同时,系统以可以实现的最高精度级别测量消息发送的时间。主时钟然后向从时钟发送第二个后续消息,其中包含发送相应同步消息的精确的实际发送时间信息。从时钟然后测量收到第一条消息和后续消息之间的精确间隔,使用此结果定义一个来自主时钟的纠正“偏移量”。从时钟然后调整本身以消除偏移量。
使用PTP进行时间同步
同步的第二阶段称为延迟测量,它确定从时钟和主时钟之间的通过时间。使用与第一步类似的方法,将延迟请求和延迟响应消息发送到从时钟。计算结果,然后用来调整时钟。
具备精确时间功能的相机
当前Basler GigE Vision相机(例如ace GigE相机系列中的相机)在硬件级别实现PTP服务。这样相机实现了几纳秒精度的系统时间同步。
这一精度级别的主要优势是作为元信息附加到相机图像的非常准确的时间戳。也可以使用这些高精度时间戳对相机事件进行注释,用于实时性极其重要的应用进行评估。例如,如果检测到汽车超速,多个相机从不同角度记录违法行为非常重要。通过精确的时间戳,不同设备的单独图像可以轻松关联。
PTP时间戳
PTP时间戳是80位标签。GigE Vision相机使用的时间戳(例如Image Chunks中)只有64位。GigE Vision 2.0标准假定80位PTP值将转换为64位值。尽管理论上这一解决方案不够强大,但是并没有实际的缺点: 64位时间戳提供相同的纳秒级别的精度,但不能超过其计数限制:格林尼治标准时间2262年11月4日星期二下午11:47:16。
精确时间协议是“同步自由运行”和“计划动作命令”的先决条件,后面将讨论这两种方式。
同步自由运行:相机以同步方式自由运行
在PTP的帮助下,所有的相机使用相同的系统时间工作,所有相机都可以自由运行 — 单个相机与所有链接的相机在同一时间进行拍摄。在实践中,举例来说,某些应用可能需要同时以多个相机从多个视角同步记录图像,这样才能生成一个360°全方位视角场景。虽然之后必须按照时间线关联单个图像,但是同步图像捕捉仍然至关重要。上文所述的共享时间戳使这成为可能。
没有PTP:相机使用相同的帧速率运行:每台相机在不同时刻捕捉图像。
使用PTP:相机在完全同步的情况下捕捉图像。
使用动作命令通过以太网触发:通过软件命令同步图像采集
目前这一代Basler GigE Vision相机可以接收称为动作命令的信息并做出响应。动作命令是可以由网络客户端以广播模式向网络上的所有接收者发送的以太网数据包。
动作命令功能的三个关键参数
· 设备密钥:
设备密钥充当动作命令的“密码”。每台相机都使用自己的设备密钥(即一个自由选择的32位值)进行了预先配置。该设备密钥是只写的,不能简单地从相机读出。只有包含相应密钥的动作命令才可以触发事件。
· 组密钥:
作为动作命令实际标识的可自由选择的32位值。如果组密钥与协议消息和相机的组密钥均匹配,则每台相应的相机只执行一个动作。
· 组掩码:
所连接的相机由动作命令与相应的设备密钥和组密钥共同确定。组掩码是用于指定实际执行该命令的相机子集的32位掩码。
动作命令最重要的用例无疑是通过以太网触发。过去要同时触发多台GigE相机,需要通过相机的数字端口进行硬连接,即通过一根电缆将每台相机连接到触发信号发生器。而有了动作命令,经由单个广播以太网数据包同步触发多台相机成为可能。所涉及的动作命令最初不要求PTP功能。可以在软件级别(例如通过使用Basler pylon相机软件套装)简单方便地触发相应的命令。
动作命令的示例应用:拍摄运动中的马匹
动作命令功能的一个典型应用是对运动中的马匹进行视频分析。想象一个沿整个跑道安装了一列相机的赛马场:该应用需要四台相邻的相机拍摄跑动的马。因为这四台相机所拍摄的图像要被并入一张图像,所以,实现图像采集的同步非常重要。所有相机都配置了相同的组密钥,这是接收到动作命令(借助于相匹配的设备密钥和相同的组密钥)的必要的前提条件。除此之外,动作命令还包含一组掩码,该掩码确保在任何给定的时刻,只有该相机前面的四台相机实际拍摄图像。
沿跑道安装的所有相机都接收动作命令。组掩码确保在任何给定的时刻,只有马前的四台相机实际拍摄图像。
实时兼容性的限制
当然,也可以从软件程序(如Basler pylon相机软件套装)触发相机。“正常”的软件触发与动作命令之间的差异在于:基于单播的软件触发仅发送到单台相机。软件触发无法将同步触发信号同时广播到多台相机。
虽然在适当配置的相机之间可以实现图像采集的完全同步,但基于软件的命令触发与图像拍摄启动之间的反应不是实时进行的。操作系统各层以及软件与相机网络连接之间的硬件(PC和交换机)会产生各种不可预知的因素,它们均会影响定时。其结果是,各张图像间软件命令和图像采集启动之间的延迟时间(被称为抖动)会有最高达微秒级的波动。
而发送动作命令的特殊GigE网络适配器(例如由美国国家仪器公司制造的这类设备)可替代动作命令的软件触发。通常的处理方式是,在数字输入中为这些卡创建特殊信号。这种设置避免了上文提到的抖动,系统会实时发生反应。
通过预警实现精确性:计划动作命令
软件启动的动作命令有张王牌:附加的特别PTP时间戳,它指定执行动作命令的系统时间。以这种方式发出的动作命令称为计划动作命令。这在纯软件解决方案中有助于重新建立实时行为。例如,如果已知从软件发出命令和开始图像采集之间最大总共延迟 < 200 ms,然后可以在计划动作命令中选择PTP时间戳,从而在所有情况下补偿最大可能延迟。
计划动作命令的应用示例:半导体检测
在一条传送带上匀速传送半导体。它们会通过安装的一组四个用于检查的相机。这些相机彼此紧密相邻,且与传送带垂直。每个相机在同一精确时刻获取半导体图像,也就是在半导体通过相机位置下方时。因为每个相机的图像之后将合并成一幅图像,这些相机在同一时间精确拍摄图像至关重要。
在PTP的帮助下,所有组件使用相同的高精度系统时间运行。PC可以使用计划动作命令告知相机必须在特定时间开始下一个图像采集周期。相机然后在这一时刻精确捕捉图像 — 延迟和抖动已变得无足轻重。
假设在这个半导体测试例子中已经确定由软件发出命令与相机(同时)开始采集图像之间的延迟不超过150 ms。因为传送带的速度已知,PTP兼容传送带使用与PC和相机相同的系统时间运行,传送带的控制单元可以告知PC软件下次应该捕捉图像的时间。PC然后将在所需图像捕捉时间之前不小于150 ms发送相应的计划动作命令。图像采集将实现高度同步,误差低至几微秒。
总结
GigE Vision 2.0基于精确时间协议(PTP,IEEE 1588)实现了全新相机功能:网络中的所有相机能够以相同的精确时间同步工作,反过来为捕捉的图像提供了高精度时间戳。
通过使用相同的系统时间,相机可以自由运行,以绝对同步的方式进行图像采集。
动作命令(严格地说并不需要PTP)允许通过单一广播软件命令触发相机,从而同时拍摄图像。延迟(命令和实际图像采集之间的延误)可能使此过程无法预测。
额外增加的PTP时间戳将标准动作命令变为计划动作命令。时间戳通知相机应执行图像采集的时间。与简单的动作命令不同,下次图像采集事件的时间可以精确指定,补偿软件命令触发和实际图像采集之间的延迟。
猜你喜欢
- 2024-10-29 图像伪影消失术,照亮视界每一处 《Basler小讲堂》第36期,
- 2024-10-29 深度学习阿丘科技AIDI-常见问题(阿丘科技有限公司)
- 2024-10-29 通用闪测仪——广泛应用于工业测量领域
- 2024-10-29 多相机系统:视觉系统检查软包装的密封质量
- 2024-10-29 3D视觉引导无人快速充电机器人(机器人自动充电原理)
- 2024-10-29 TOYO&ECON&TM 人机协作机器人实战应用产品发布会
- 2024-10-29 软件源代码调试,你用过什么方法?看我介绍上位机源码调试
- 2024-10-29 莘默曹工-Grünbeck 过滤器 101210
- 2024-10-29 全志科技T3开发板(4核ARM Cortex-A7)——视频开发案例
- 2024-10-29 莘默品质稳定技术质好-Gutekunst 弹簧 RZ-001I
你 发表评论:
欢迎- 最近发表
-
- linux CentOS检查见后门程序的shell
- 网络安全工程师演示:黑客是如何使用Nmap网络扫描工具的?
- Linux中ftp服务修改默认21端口等(linux修改ftp配置文件)
- Linux系统下使用Iptables配置端口转发,运维实战收藏!
- 谈谈TCP和UDP源端口的确定(tcp和udp的端口号相同吗)
- Linux 系统 通过端口号找到对应的服务及相应安装位置
- 快速查找NAS未占用端口!Docker端口秒级排查+可视化占坑双杀技
- 【知识杂谈#2】如何查看Linux的(本地与公网)IP地址与SSH端口号
- 如何在Linux中查询 DNS 记录,这三个命令可谓是最常用、最经典的
- 【Linux系统编程】特殊进程之守护进程
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)