图16为15个虚拟相机图像中的图像8的样式。图17为15个虚拟相机图像中的图像9的样式。图18为15个虚拟相机图像中的图像10的样式。图19为15个虚拟相机图像中的图像11的样式。图20为15个虚拟相机图像中的图像12的样式。图21为15个虚拟相机图像中的图像13的样式。图22为15个虚拟相机图像中的图像14的样式。图23为15个虚拟相机图像中的图像15的样式。具体实施方式
如图1所示,本技术提供的图像采集系统包括相机、上位机以及相机通用检测设备;相机通用检测设备通过线缆与相机互连,实时采集相机输出的图像数据并进行缓存,然后通过千兆以太网将采集到的各种数据上传给上位机。上位机将收到的图像数据解析之后,实时直观的显示,并具有画面截屏、保存的功能。
相机通用检测设备同时能够接收上位机的指令信号,实现对相机或者相机通用检测设备内部各种参数的设置,发送相应的指令信号给相机,实现对相机的各种参数的配置。
相机通用检测设备可以同时实现单台、多台相机的检测,完成对相机图像的实时监测、显示和数据存储。
便携式相机通用检测系统千兆以太网接口部分,采用自主研发完成的《一种基于FPGA的高带宽以太网IP核》(技术专利号:ZL 201410158047.0),实现千兆以太网接口的互联数据传输。
相机通用检测设备相机通用检测设备的硬件电路采用模块化设计,包括子板和母板。
如图2所示:子板包括第一基板、设置在第一基板上的N个相机接口、N个接口芯片、N个电平转换芯片以及第一电连接器;子板上相机接口和接口芯片如下表所示:表1
另外,为了实现批量相机产品的快速测试,设计一块子板可以同时与多台相机连接起来。图像采集时,采用分时调度的原则,每台相机采集完毕一帧完整的图像后就切换到下一台相机进行采集,轮循完成与子板相连的多台相机的实时测试。这样,该通用检测设备就可以实现对多台相机的实时测试。本实施例中采用的是8台,分辨率是640x480,帧频是100帧/秒的相机。
如图3和图4所示,母板包括第二基板、设置在第二基板上的电源模块、第二电连接器、FPGA芯片、SDRAM芯片、串行UART接口以及数据输出接口;
第一电连接器和第二电连接器是板间电连接器,通过这两个电连接器将第一基板和第二基板互联起来;
相机图像输出接口与第一基板上的接口芯片、相机接口、电平转换芯片电连接,用于对图像数据进行传输和处理;第二基板上的SDRAM芯片、串行UART接口以及数据输出接口均与FPGA芯片电连接;
串行UART接口与上位机电连接用于接收上位机发送的控制指令,数据输出接口与上位机通过千兆以太网实现物理连接,通过标准的UDP协议实现相互通讯。串行UART接口为RS485接口和RS422接口。数据输出接口为RJ45接口和光纤接口。
电源模块包括集成在第一基板上的一块LTM4644芯片和两块PTN7800芯片,用于向外部相机提供三种不同的电源,分别是:DC+28V、DC+12V、
DC+5V,其电源转换示意图,如5图所示。相机通用检测设备能够向外部提供三种不同的电源:DC+28V、DC+12V、DC+5V,可供被测相机选择
使用。
子板上实现相机接口转换和图像接收,将相机图像数据进行串并转换,或者AD采集,或者电平转换之后,将电平转换为母板能接收的LVTTL电平信号,通过子板与母板之间的板间电连接器(第一电连接器和第二电连接器),将采集到图像数据发送到到FPGA芯片。设计研发出针对不同相机接口的子板硬件电路,开发出多款不同接口的子板电路板,方便与不同的相机接口进行对接。但是不同类型的子板与母板之间的板间电连接是一致的,从而可以方便的根据相机接口的不同,将子板进行替换,快速实现检测系统对不同接口相机的对接。
母板上的FPGA芯片是相机通用检测设备的核心器件,它控制着整个检测设备的正常运行。FPGA内部软件模块之间的相互关系,如下图所示:图像接口控制模块:针对不同的接口的相机,图像接口控制模块产生不同的时序接口波形,控制接口芯片完成相机图像数据的正确采集。在该模块设计时,将多种不同接口时序的子模块分别实现,然后将这些子模块封装在一个大的接口模块中。根据相机接口的不同,在上位机指令的控制下,选择大的接口模块中的其中一个符合相机接口的子模块工作,其余子模块不工作。这样,就完成了对不同相机接口子板的适配。
图像数据缓存模块:将采集到的图像数据缓存到FPGA内部的FIFO中,并在缓存到特定FIFO深度的时候,通知以太网数据打包模块读取FIFO内部的数据,并按照协议进行打包。
虚拟相机控制模块:根据指令的设置,依据指令产生不同分辨率的15个虚拟相机图像,且在同一时刻,只产生一种虚拟相机图像。
以太网数据打包模块:根据上位机指令设置,选择“图像数据缓存模块”或者“虚拟相机控制模块”中的其中一个,读取其中的数据进行以太网数据打包。
以太网发送模块:依据千兆以太网接口的RGMII接口时序,将打包后的数据,通过RGMII接口发送出去。
SDRAM控制模块:在FPGA内部数据缓存区有限的情况下,将部分要缓存的数据通过该模块缓存到FPGA片外的SDRAM芯片中。UART模块:实现与上位机或者其他UART接口之间的数据通讯,实时回报相机通用检测设备的工作状态。
为了实现不同场合,不同试验环境的要求,相机通用检测设备具有可配置性,以便在各种不同的网络环境中应用。相机通用检测设备在与上位机交互的过程中,网络数据全部采用UDP协议进行数据通信。检测设备内部的初始化配置参数如表2所示:表2
为了保证设计的可靠性和通用性,检测设备采用业界标准的UDP网络数据协议。相机通用检测设备发送给上位机软件的网络帧,简称为图像数据帧。上位机软件给相机通用检测设备发送的网络帧,简称为命令帧。下面分别就这两种网络帧的具体格式定义说明如下。
1)命令帧
命令帧用来对检测设备自身和相机进行设置,配置用户需要改变的各种参数。命令帧分为两种,一个命令帧用来设置检测电路内部的各种参数,另一个命令帧用来设置所检测相机的各种参数。这两个命令帧通过UDP端口号进行区别,两者的端口号分别为0x1F90、0x1F9C。命令帧必须具备以下特点:
1)命令帧必须是标准的UDP协议帧;2)命令帧的长度固定是160字节;
3)命令帧的端口号必须符合相应的UDP目的端口号。
检测设备自身参数设置命令帧
下面,首先将检测设备自身设置的命令帧(端口号0x1F90),具体协议说明如表3所示,协议中的具体数据均以十六进制的数值表示。
相机参数设置命令帧
下面,首先将相机参数设置的命令帧(端口号0x1F9C),具体协议说明表4所示,协议中的具体数据均以十六进制的数值表示,帧长度为160字节。
表4
虚拟相机控制模块使得相机通用检测设备本身具有自检功能,它能够模拟产生不同分辨的各种样式的原始图像,并将原始图像正确显示出来,这样也将大大方便对图像的质量进行观测。
通信协议中设置的虚拟相机通道号指的就是相机通用检测设备可以模拟产生的虚拟相机图像数据个数,本实施例中可以模拟虚拟相机图像共15个。每个虚拟相机图像数据不相同,从而便于对图像行、列数据进行测试。检测设备将根据命令帧中相机通道数的不同产生不同的图像数据。这
15个虚拟相机图像的具体如下:
图像1:每行图像数据相同;每行图像数据的第一个像素点数值0,其他像素点依次加1,如图9;图像2:每个像素点的数值相同,均为200,如图10;
图像3:所有像素点的数值在200附近随机发生变化,变化幅度小于10,如图11;
图像4:每行第一个像素点的数值相同,均为200,且每行中下一个像素点的值比上一个像素点的数值大10,如图12;
图像5:图像中左上角第一个像素点的数值为0,然后从左至右依次累加10,直至累加到图像右下角的最后一个像素点,如图13;图像6:图像每行的第一个像素点的数值相同,均为0,且每行中下一个像素点的值比上一个像素点的数值大10,如图14;
图像7:图像中心为是一个正方形区域,正方形区域对角线上的像素点的值为255,在图像整个画幅一半大小的行和列上,分别有横线和竖线组成的矩形,矩形的行和列上的像素点值为255,矩形内部的像素点值为0;该图像用于观测图像有无错行错列;如图15;图像8:图像上每列像素值相同,每隔20列,像素值增加10,如图16;图像9:图像上每行像素值相同,每隔20行,像素值增加10如图17;
图像10:用于红外相机图像检测,低温图像,像素值0x23ee,在固定的行列位置插入不同的像素值,表明传感器的坏点如图18;图像11:用于红外相机图像检测,高温图像,像素值0x29AA,在固定的行列位置插入不同的像素值,表明传感器的坏点,如图19;图像12:用于红外相机图像检测,常温图像,像素值0x2736,在固定的行列位置插入不同的像素值,表明传感器的坏点,如图20;图像13:图像上的像素值随着图像传感器的温度发生变化,图像像素值为0x20ee+1*n,其中n为温度变化系数,如图21;图像14:图像上的像素值随着图像传感器的温度发生变化,图像像素值为0x26AA+7*n,其中n为温度变化系数,如图22;图像15:图像上的像素值随着图像传感器的温度发生变化,图像像素值为0x2436+5*n,其中n为温度变化系数,如图23;本例中相机通用检测设备能够支持检测的图像位数、相机种类、图像视频格式和相机硬件电路接口具体是:
1)支持检测的图像像素点位数a)8bits;b)12bits;c)16bits2)支持相机种类
a)红外相机b)可见光相机c)面阵相机d)线阵相机
3)支持检测图像/视频格式
a)原始数据图像(raw格式)b)彩色RGB图像c)Bayer格式d)YCbCr格式e)JPEG压缩图像f)高清/标清H.264压缩视频
g)H.264压缩视频与JPEG压缩图像混合4)支持相机硬件接口类型
a)Camlink接口b)并行LVDS接口c)串行LVDS接口d)高清HDMI接口e)标清PAL接口f)高清SDI接口g)同步、异步RS422接口
上位机
上位机通过千兆以太网网线与相机通用检测设备连接,上位机采用的工作界面如下图6所示。工作界面分为操作控制区域、工作模式选择区域、图像显示区域、状态栏显示区域、菜单区域、参数设置区域等部分。
该软件能对接收到的RGB、Bayer、YCbCr格式图像流数据的稳定解析、实时插值、显示、存储、数据后处理等功能。
相机通用检测设备发送的UDP数据帧是巨型帧,计算机网络设置要允许巨型帧接收,设置IP地址为192.168.0.*,默认RGB数据处理功能占用端口号为8090,Bayer数据处理功能占用端口号为8091,YCbCr数据处理功能占用端口号为8092。软件运行前首先设置图像参数,如图7所示。参数设置区域包括网卡/路径设置区域和UDP参数设置区域,功能是设置与插值处理软件相关的参数。网卡/路径设置模块对网卡选择、.bmp图片保存路径、视频流保存路径进行设置。程序架构通过动态设置UDP包属性参数,从而支持多种图像分辨率模式,
操作控制区域包括数据捕获、停止捕获、截图、相机开关机功能。选择相应模式后,点击“捕获数据”,程序通过UDP协议分别经由相应端口号与高清摄像机进行通信获取数据。在程序运行过程中,可随时点击“截图”按钮进行当前传输数据流图像的保存处理,保存格式为.bmp,交互界面如图8所示。
图像显示区域功能是在相应工作模式下,接收数据采集模块采集到的相应格式图像流数据,经由DirectShow插值解码器(Filter),将图像流数据进行相应专用插值算法处理,从而在充分考虑程序运行效率的前提下,将图像数据解析显示在视频显示区域。
菜单区域中包括监视和保存状态设置,用于在软件实时运行的过程中,不中断软件操作的情况下,实时切换监视和监视并保存状态。格式转换功能,用于进行数据格式转换操作,将实时保存的.dat文件分解为图片文件进行事后处理。
状态栏显示区域,用于显示系统在运行时的各项参数,例如图片参数属性、工作模式、网络帧速率、网络流量、监视与保存状态、截图路径等。