作者简介:林冬梅(1982-),女,博士研究生.研究方向:生物医学图像处理与分析.E-mail:lindm1215@lut.cn
基于千兆以太网实现了连接在同一台计算机上的两部相机同时工作。采用一个即插即用的数据采集模块作为同步触发信号发生器,利用LabVIEW编程产生两路具有指定周期的同步脉冲信号,用于触发两部相机同步工作。采用Microsoft Visual C++编写相机同步采集软件,实现了两台相机间的同步图像采集及自动存储。同步帧率达到18 帧/s,为课题组的双目视觉脉搏信息测量研究奠定了基础。
On the basis of Gigabit Ethernet, two cameras connected to the same computer can work simultaneously. A plug and play data acquisition module was adopted as a synchronous signal generator. By means of LabVIEW programming, two synchronous pulse signals with a specified period were generated, which were then used to trigger two cameras. Microsoft Visual C++ was used to develop the synchronous acquisition software. The two cameras can capture images synchronously and the images can be automatically saved. The maximum synchronous frame rate is up to 18 frames per second, laying a good foundation for the research of binocular vision pulse information measurement.
脉搏波蕴含着丰富的人体生理病理信息。脉诊是我国传统医学中最具特色的诊断方法, 然而, 对脉象的判断缺乏客观量化指标。脉诊客观化的关键是如何建立合理科学的检测方法, 获取全面的脉搏触觉信息[1]。2007年, 本课题组研制了脉搏动态图像采集系统[2], 采用柔性充压探头模拟手指, 探头与桡动脉皮肤接触端用薄膜密封, 给探头施加压力, 脉搏搏动通过薄膜的运动反映出来, 探头上方的相机采集薄膜动态图像, 实现脉搏触觉可视化; 根据成像模型及数字图像处理理论, 可获得多点幅度信息, 并实现薄膜表面的三维重构[3]。该方法打破了传统脉搏传感器检测的基本原理, 将脉搏信息以图像的形式表现出来, 使脉诊客观化取得突破性进展。然而, 单目视觉测量动态多点的空间三维坐标, 尚无成熟算法。该系统仅用单个相机采集图像序列, 对于多点离面位移的求取, 只能依赖于薄膜受力变形时的空间位移测量原理, 结合成像模型及图像处理理论中的相关公式推导, 通过计算薄膜网格面积的变化而求得。其中, 将大块网格区域视作一个特征点, 导致重构的脉搏三维形态不够精确, 亟待改进。
双目视觉测量空间点的三维坐标已有成熟的理论算法[4, 5]。课题组拟在前期工作的基础上, 研究双目视觉测量脉搏信息的新方法, 实现多点脉象检测。由于所测对象为随脉搏跳动而持续运动的薄膜, 因此, 本研究的关键前提是保证两部相机能连续同步采集。相机同步采集, 指在一定控制条件下, 各相机同时曝光[6]。系统只有实现左、右相机同步开始采集及采集过程中帧同步, 才能保证时序上的匹配性, 防止出现左丢帧或右丢帧[7]。
近年来, 许多学者致力于多相机同步的研究[8, 9]。早在十几年前, 就有学者基于PCI总线或多PCI数据采集卡实现多相机同步采集[10, 11]。刘风等通过单片机控制多台相机的同步曝光[12, 13]。也有不少研究者设计了基于FPGA的双目视觉同步采集系统[14, 15]。吕培森等[16]基于GPS授时同步电路控制相机进行异地同步采集。贾超广等[17]设计了一种基于图像采集卡的双相机高速立体摄影测量系统。上述方法中, 基于多PCI、单片机或FPGA的同步方法需要编写驱动程序, 对硬件知识和专业编程能力要求较高, 开发周期较长。基于GPS授时的同步方法精度较高, 但由于各种干扰的存在, GPS同步脉冲会出现毛刺等干扰现象, 且对于地下应用环境, 该方法完全失效[6]。姜广文等[6]避开上述方法的不足, 设计了基于外触发和软件控制的多相机同步采集处理系统, 方法简单、通用性强、具有较高的参考价值。
本文基于千兆以太网设计了一种可靠、易行的双相机同步采集方案。以MP425数据采集模块为信号发生器, 产生两路同步信号触发两台相机工作。同时, 开发了同步采集及自动存储软件, 实现了连接在同一台计算机上的两部千兆以太网相机之间的同步采集及自动存储功能。
双目视觉脉搏测量拟从两台相机获得的同步图像序列来求取多点脉搏跳动幅度信息, 进而重构任意时刻脉搏跳动的三维形态。图1为双目视觉脉搏信息测量的流程图, 其中薄膜图像采集是整个流程的前提, 而本文研究的双相机同步采集正是薄膜图像采集的关键。同步采集方案设计如图2所示。
配备的硬件及软件如下:
(1)两台工业相机
选用德国Basler品牌acA1300-30gm千兆以太网(GigE)黑白工业相机, CCD型号为Sony ICX445, 靶面尺寸为1/3″, 分辨率为1296× 966(130万像素), 最大帧频为30 帧/s。该相机体积小巧(29 mm× 29 mm× 42 mm)、速度快、传输距离远, 且具有外触发采集功能。
(2)两个工业镜头
根据测量视场及工作距离计算, 选用日本COMPUTAR M0814-MP定焦镜头。焦距为8 mm, 光圈系数为F1.4-F16C。该镜头变形率低(低于1.0%), 在整个视场范围内都具有高对比度及清晰度的图像, 且为本文所需的紧凑式设计(⌀33.5 mm× 28.2 mm)。
(3)一块双口千兆网卡
为了使两部GigE相机能够连接在同一台计算机上, 且可以同时工作, 选用了Intel PRO/1000 PT双口千兆服务器网卡(9402PT PCI-E)。
(4)两根千兆网线
为了匹配两台GigE相机及双口千兆网卡, 在此选用两根千兆网线。网线带锁紧螺钉的一端固定在相机上, 防止松动或脱落, 一端插于网卡端口, 将相机与计算机连接起来。实现图像数据到计算机的传输, 以及计算机对相机的操作控制。
(5)一块MP425数据采集模块
北京双诺测控技术有限公司的MP425是一款USB2.0总线14位8路并行采集模块, 支持即插即用。可编程产生两路同步脉冲信号, 用于触发两台相机同步采集图像。
(6)一台计算机
课题组使用的计算机为Lenovo品牌, 2.0 GB内存, Intel core i3 CPU, 主频3.20 GHz, Windows XP 32位操作系统。计算机通过程序控制MP425产生两路同步信号, 触发两台相机同时曝光, 同时, 负责相机的采集控制及图像的存储显示等。
(7)双相机同步采集软件
双相机同步采集软件(Dual-camera synchronous acquisition software)是同步采集方案中不可或缺的软件部分, 通过人机交互控制相机的图像采集和存储。
同步采集过程简述如下:采集系统搭建完成后, 首先在计算机上运行双相机同步采集软件, 初始化后检测到两台相机, 设置外触发采集模式、图像名称和图像保存路径。然后用计算机通过LabVIEW程序控制MP425产生两路具有指定周期的同步脉冲信号。同步信号开始, 两台相机便同时开始触发曝光; 同步信号停止, 两台相机便同时停止采集。至此, 便可在预先设置的两个不同文件夹中查看左、右相机连续采集的图像。下面依次介绍双相机同步采集方案中各个环节的具体实现方法。
GigE接口的工业相机具有技术成熟、速度快且传输距离远的优点, 非常符合本课题的需求。本文选用了一块双口千兆网卡及两根千兆网线来解决单机单网的问题, 按照图3所示流程即可实现连接在同一台计算机的两部相机同时工作。在Basler相机自带的图像采集控制软件pylon Viewer中能够看到两部相机同时工作的画面, 且可对相机进行各种配置和采集控制, 如图4所示。然而, 该自带软件只能手动保存单帧图像, 无法将两台相机采集的图像进行连续自动存储, 对于本课题, 这是一个致命的缺点, 亟需解决。因此, 本文开发了双相机同步采集软件。
本课题研究的双目视觉脉搏测量的数据依据就是两台相机获取的同步图像序列, 因此, 要求软件能连续自动存储两台相机采集的每帧图像。针对上述要求及Basler相机自带图像采集软件的不足, 基于Basler pylon 应用程序编程接口(Application programming interface, API), 在Microsoft Visual C++ 2008环境下二次开发了双相机同步采集软件, 工作界面如图5所示。
该软件具有如下特点:
(1)软件的开发基于多线程处理, 两台相机的工作互不影响。
(2)能接收两路外触发信号, 进而控制两台相机的同步曝光。
(3)存储的图像格式为JPEG格式, 在满足后续图像处理和分析的基础上, 大大减少了数据量, 提高了传输和存储速率。
(4)在自定义图像名称和设置好图像保存路径之后, 能够对连续采集的图像自动连续编号, 并存储在相应的文件夹中。
(5)人机交互界面简单大方、操作简便。可随意控制相机采集的开始和停止; 可选择外触发采集或自动采集模式; 具有单相机采集图像或双相机采集图像选择功能。
双相机同步采集软件很好地解决了Basler相机自带图像采集软件不能连续自动存储图像的不足, 实现了双相机同步采集的相关控制, 操作方便。
如何使得两部相机在同一时刻曝光, 实现帧同步采集, 是整个同步采集方案中的关键。本方案中将两台相机设置成外触发采集模式, 在两路同步脉冲信号的触发下, 实现帧同步曝光采集。
1.4.1 相机外触发原理
本课题选用的Basler ace GigE相机具有外触发控制曝光的功能。相机上的6插针Hirose(广濑)接头中的2号插针为输入端口(Input), 用来接收外部信号输入。当输入电平大于2.2 V时, 认为是高电平1; 当输入电平为0~1.4 V时, 则认为是低电平0。将相机外触发采集模式打开, 选择上升沿触发。每当接收到一个符合电平要求的上升沿时, 相机便被触发, 开始曝光。在具有指定周期的外部脉冲信号的触发下, 相机便可根据课题所需的采集帧率进行图像采集。
图6给出了Basler acA1300-30gm相机在外部信号触发下的工作时序图[18]。其中, 曝光延迟时间为34.50 μ s, 曝光时间可设置为16 μ s至10 000 000 μ s之间的任意整数值。当曝光积分完成后, 即可将数据从成像传感器读出, 传送至相机的帧缓冲寄存器中, 同时, 经过短暂的数据传送延迟后, 便开始数据传送, 即通过网线将该帧图像数据从帧缓冲寄存器传送至计算机中。
1.4.2 同步信号的产生
采用MP425数据采集模块作为同步信号发生器, 并利用LabVIEW编程控制使之产生两路具有指定周期的同步脉冲信号。
MP425配置了16入/16出的开关量输出通道, 其中, 16路开关量输出通道的输出电压高电平大于2.5 V, 低电平小于0.5 V, 满足相机的外触发输入电平。因此, 本文采用LabVIEW编程, 通过对高低电平延时的设置, 控制两路输出通道产生周期相同的同步脉冲信号, 作为两台相机的外触发信号, 触发信号的周期根据采集帧率设置。例如, 希望采集帧率为N 帧/s, 即每秒触发曝光N次, 则触发信号的周期T应为:
在这个周期中, 先将两路输出通道同时置1(高电平), 并延时x ms(x大于曝光延迟时间即可), 再将这两路输出通道同时置0(低电平), 控制延时T-x ms, 进行周期循环, 达到预设时间后, 停止循环, 即可产生需要的同步脉冲信号。图7为泰克(Tektronix)示波器界面, 显示了MP425产生的两路同步信号(T=33.33 ms)及其减法操作的波形。由图7可见, 输出的两路信号同步精度较高, 几乎没有同步误差, 可用于同步触发两台相机。
中医切脉部位常为手腕桡骨茎突内侧的桡动脉, 分为寸、关、尺三部位[19]。本课题组前期已经研制出单目视觉传感器进行三部位测量, 三部位同时测量需要三个探头, 结构较复杂[20]。而用双目视觉进行三部测量, 系统将会非常复杂, 制约条件众多, 且需要处理的数据量庞大。本文中讨论的双目视觉脉搏测量系统是单部位测量系统, 即每次只测量寸、关、尺三个部位中的其中一个部位。因此, 系统中两台相机的公共视场不需要太大, 在此, 设定视场约为13 mm× 13 mm至18 mm× 18 mm, 根据系统要求, 相机工作距离约为50 mm至60 mm, 此时, 设置两台相机采集图像的尺寸大小均为440像素× 440像素, 调节两台相机至合适的相对位置, 即可得到需要观测的公共视场。
采用1.1节中所述计算机作为主控制机; MP425数据采集模块作为同步触发信号发生器; 设置采集图像的尺寸大小为440像素× 440像素, 用以下两种方法进行双相机同步采集性能测试。
测试方法1 两台相机同时对一台正在播放视频的笔记本电脑显示器进行图像采集, 设置视频播放帧率与双相机采集帧率始终保持相等, 并逐渐提高, 直到左、右相机采集的图像不同步, 测试最高同步帧率。实验结果表明, 帧率高达18 帧/s时, 左、右相机仍能稳定同步。图8(a)显示的是视频播放帧率与相机采集帧率为18 帧/s时某一时刻采集的左、右图像对, 结果表明, 任意时刻采集到的左、右图像显示的都是视频的同一帧数据, 即此时左、右相机能同步采集图像。
测试方法2 在两路外同步信号的触发下, 两台相机同步采集跳动的秒表图像(此处采用iPhone 5手机上的秒表), 测试每个数字(持续时间为1 s)最多能被两台相机共同拍摄的图像数量。图8(b)为测试中某一时刻采集的左、右图像对(触发信号频率为18 Hz)。图9显示了1 min内左、右相机采集的图像所存储的文件夹, 从文件夹的左下角可见左、右相机采集的图像数量均为1080幅(左图像编号L0~L1079, 右图像编号R0~R1079), 符合18 帧/s× 60 s=1080 帧。
基于上述两种测试方法, 测试采集帧率从1 帧/s增至30 帧/s时(即触发信号频率从1 Hz增至30 Hz时), 两台相机能保持同步的时间长度。测试时间最长为1 min, 图10为同步性能曲线。
测试结果总结如下:
(1)采集帧率小于等于18 帧/s时, 两台相机能长时间保持稳定同步(大于1 min)。
(2)采集帧率从19 帧/s上升至25 帧/s时, 两台相机能保持同步的时间迅速下降(从35 s下降至1 s), 即工作时间稍长, 则会出现左相机丢帧或右相机丢帧, 稳定性较差。
(3)采集帧率大于25 帧/s时, 同步时间小于1 s, 双相机完全不能同步。
(4)触发信号频率越高, 丢帧现象越严重。即在相同的时间内, 两台相机所采集的图像帧数相差越大。
综上所述, 在计算机性能较低的情况下, 本文中的同步方案能实现18 帧/s的稳定同步帧率, 同步帧率较高。
从同步性能测试实验可知, 两台相机图像采集能够达到18 帧/s的稳定同步帧率。成年人正常的脉搏跳动次数为72~80 次/min[19], 即每个脉搏周期为0.750~0.833 s, 以18 帧/s的帧率进行图像采集, 则每个脉搏周期内能够采集到的图像数量约为14~15 帧, 经实验证明, 对于后续脉搏波及其他脉搏信息的提取, 图像数据已经够用。双相机同步采集薄膜图像的实现, 解决了双目视觉脉搏测量的首要问题, 为脉诊客观化奠定了良好的基础。
当然, 每个脉搏周期采集到的图像越多, 提取的脉搏波及其他脉搏信息就越精确。对于小孩、正常人在运动或情绪激动时、以及一些病人的脉率较高, 甚至能达到90~140 次/min[19]。为了能精确提取脉搏信息, 则希望能够在每个脉搏周期采集到更多图像, 此时, 就需要提高双相机采集的同步帧率。本文讨论的同步方案中, 制约同步帧率的主要因素为实验所用的计算机性能较低, 包括CPU性能及硬盘写入速度, 导致存储速度跟不上采集速度。因此, 要想获得更高的同步帧率, 必须提高计算机的性能, 如将Intel core i3 CPU更换为Intel core i7 CPU甚至更高级的处理器, 采用固态硬盘、磁盘阵列或者图像处理工作站等解决办法。
针对课题组的双目视觉脉搏测量方法的研究, 设计了一种基于千兆以太网及硬件同步触发的双相机同步采集方案。该方案基于千兆以太网实现了连接在1台计算机上的两部相机的同时工作。通过计算机用LabVIEW编程控制将一种通用的数据采集模块MP425作为同步信号发生器, 实现两台相机之间的同步采集。基于Basler pylon API在Microsoft Visual C++2008环境下开发了双相机同步采集软件, 实现了相机操作控制及图像的自动连续存储。在计算机性能较低的情况下, 该同步采集方案能够达到18帧/s的稳定同步帧率, 解决了双目视觉脉搏测量的首要问题, 且具有操作简单、成本低、同步性能稳定等优点。本方案中采用MP425采集模块作为外触发同步信号源, 信号稳定、同步精度较高、易于实现, 且成本较低。更主要的是, 由于MP425是一款8路并行采集模块, 能实现多信息同步采集。而课题组的双目视觉脉搏测量系统, 除了要实现两台相机同步采集图像, 在后续研究中, 还要求能同步采集切脉压力、探头内压等多种信息, MP425正好能实现上述功能。总之, 本课题组正在研制的双目视觉脉搏测量系统在临床上具有较高的应用价值和广阔的应用前景, 本文讨论的双相机同步采集的实现, 解决了双目视觉脉搏信息测量的前期关键问题, 为推动脉诊客观化的进一步发展打下了坚实的基础。
The authors have declared that no competing interests exist.
[1] |
|
[2] |
|
[3] |
|
[4] |
|
[5] |
|
[6] |
|
[7] |
|
[8] |
|
[9] |
|
[10] |
|
[11] |
|
[12] |
|
[13] |
|
[14] |
|
[15] |
|
[16] |
|
[17] |
|
[18] |
|
[19] |
|
[20] |
|