一种基于FPGA的图像采集控制方法及装置与流程

文档序号:20272637发布日期:2020-04-03 19:13阅读:368来源:国知局
一种基于FPGA的图像采集控制方法及装置与流程

本发明属于缺陷检测技术领域,更具体地,涉及一种基于fpga的图像采集控制方法及装置。



背景技术:

在面板自动光学检测(automatedopticalinspection,aoi)中,缺陷类型主要包括脏污异物,白点,划伤,刮伤,毛屑。不同种类的缺陷有不同的成像特性,因此需要用特定图像采集方案对所有这些缺陷进行有效的图像采集,并将采集的图像交给图像分析软件进行相应的检测。

现有的图像采集系统结构如图1所示,由一个4端口的网卡驱动四个gigevision接口相机。随着面板尺寸的不断增大,分辨率增高,图像采集系统中需要的相机个数急剧增加,同时相机的分辨率也在增加。当相机进一步增加时,需要增加网卡,系统成本较高,并且上位机软件需要控制两个网卡同时取像,控制较为复杂。另外,由于不同厂家生产的相机控制方法不同,需要软件针对不同厂商的相机的sdk开发工具进行适配,软件开发难,并且不利于后期系统的升级和维护。



技术实现要素:

针对现有技术的至少一个缺陷或改进需求,本发明提供了一种基于fpga的图像采集控制方法及装置,在同时使用多个相机时,硬件及软件控制更为简单方便。

为实现上述目的,按照本发明的第一方面,提供了一种基于fpga的图像采集控制方法,包括:

接收配置命令,所述配置命令包含相机类型参数及相机配置参数;

识别系统中所接入的多个相机的相机类型,根据所述识别的多个相机的相机类型获取与所述配置命令中包含的相机类型参数相匹配的相机,并与所述相机建立连接;

读取所述相机的xml文件,根据所述相机配置参数查找所述相机需要配置命令的寄存器地址;

将所述相机配置参数和寄存器地址转换成控制命令包,根据所述控制命令包来配置所述相机,触发所述相机进行图像采集并接收采集的图像。

优选地,所述配置命令包含多组相机类型参数及相机配置参数,用于同时控制多个相机。

优选地,所述配置命令还包括不同相机的图像顺序参数,则所述方法还包括:

将不同相机采集的图像按照所述图像顺序参数发送给上位机。

优选地,图像采集控制方法,包括:

在fpga上对采集的图像进行图像预处理。

优选地,所述根据所述控制命令包来配置所述相机具体是:

对所述控制命令包进行udp头封装、ip头封装和mac头封装,生成千兆以太网传输格式的报文数据;

将所述报文数据转换成网络信号发送给所述相机进行配置。

优选地,图像采集控制方法采用多线程并行方法控制多个相机完成图像采集。

优选地,所述采用多线程并行方法控制多个相机完成图像采集包括同时进行多个相机的相机类型与所述配置命令中包含的多组相机类型参数的匹配、多个相机的参数配置以及图像采集。

按照本发明的第二方面,提供了一种基于fpga的图像采集控制装置,包括:

接收模块,用于接收配置命令,所述配置命令包含相机类型参数及相机配置参数;

连接模块,用于识别系统中所接入的多个相机的相机类型,根据所述识别的多个相机的相机类型获取与所述配置命令中包含的相机类型参数相匹配的相机,与所述相机建立连接;

读取模块,用于读取所述相机的xml文件,根据所述相机配置参数查找所述相机需要配置命令的寄存器地址;

控制模块,用于将所述相机配置参数和配置命令寄存器地址转换成控制命令包,根据所述控制命令包来配置所述相机,触发所述相机进行图像采集并接收采集的图像。

按照本发明的第三方面,提供了一种图像采集系统,包括上述任一基于fpga的图像采集控制装置、上位机及至少一个相机。

总体而言,本发明与现有技术相比,具有有益效果:在同时控制多个相机时,硬件及软件控制更为简单,能够明显降低系统成本和复杂度,提高系统效率,增强系统可维护性;上位机软件只需要对图像进行相关检测,不需要针对不同厂商、不同相机做相应的软件开发;本系统采用多线程并行系统,可以实现多相机同时配置,节省相机配置时间和总体取像时间。

附图说明

图1是现有技术中的图像采集系统示意图;

图2是本发明实施例提供的图像采集系统示意图;

图3是本发明实施例提供的多线程并行示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

本发明实施例提供的一种图像采集系统,可以应用在aoi检测中,如图2所示,包括上位机、基于fpga的图像采集控制装置和相机。

上位机可以是pc客户端,用于提供界面来输入配置命令、将配置命令发送给图像采集控制装置、接收存储图像采集控制装置上传的图像、显示图像以及进行缺陷检测分析等。

图像采集控制装置运行在fpga平台上,可以自动获取相机类型和相机的配置寄存器,来对相机进行配置,触发相机采集图像。这样,就不需要上位机针对不同厂家不同相机的sdk进行适配,有效降低了软件开发的难度。并且图像采集控制装置可以提供多个接口,支持同时插入多个相机,不需要增加新的网卡。另外,图像采集控制装置还可以采用多线程并行方法运行,在fpga平台内部采用多任务并行流水线系统,一方面可以同时对多个相机进行同时配置,满足多相机高效运行的需要,另一方面降低了维护难度,有利于后期相机升级和维护。

下面具体说明图像采集控制装置的工作原理。图像采集控制装置包括:接收模块、连接模块、读取模块和控制模块。

接收模块,用于接收上位机发送的配置命令,配置命令中包含相机类型参数及相机配置参数。相机类型参数是基于应用场景所需要的相机类型,例如指定厂家的相机或者指定分辨率的相机。相机配置参数是所需相机的工作参数,例如曝光参数、增益、gamma等参数。配置命令中可以包含多组相机类型参数和相机配置参数,用于同时控制多个相机。

连接模块,用于自动识别系统中所接入的多个相机的相机类型,根据识别的多个相机的相机类型获取与接收的配置命令中包含的相机类型参数相匹配的相机,与匹配的相机建立连接,来实现多相机连接状态自动协商。当同时插入多种不同类型的相机,连接模块自动初始化网口和相机,同时识别并读取相机的类型。若识别的多个相机的相机类型中具有与配置命令中包含的相机类型参数相匹配的相机则获取与接收的配置命令中指定的相机类型参数相匹配的相机,与相匹配的相机建立连接,并上报有效的相机连接情况,否则提示连接不正常。建立连接包括与相匹配的相机建立通信信道,以及为每个相匹配的相机分配内存。当配置命令中包含多组相机类型参数和相机配置参数,获取与指定的相机类型参数相匹配的多个相机,分别为每个相机完成参数配置。

读取模块,用于读取相机的xml文件,根据相机配置参数查找相机需要配置命令的寄存器地址。

具体地,连接完成后,可以根据genicam协议标准获取到包含相机所有命令信息的xml文件,读取相机内部的xml文件。每个配置参数是有对应的关键字,根据每个相机的相机配置参数的关键字通过查找表的方式来查找每个相机所需配置命令的寄存器地址。将每个相机的所需配置命令的寄存器地址存储在该相机分配的内存中。

控制模块,用于当需要调用相机时,将每个相机对应的相机配置参数和寄存器地址转换成控制命令包,根据控制命令包来配置每个相机,触发每个相机进行图像采集并接收采集的图像。可以将接收的各个相机的采集图像存储在外部存储器(ddr)中。

根据控制命令包来配置每个相机具体是:将控制命令包进行udp头封装、ip头封装、mac头封装,封装成完整的千兆以太网传输格式,将报文数据给到fpga的mac模块,mac模块将最终报文通过千兆以太网phy芯片转换网络信号,通过网络双绞线将相机的控制命令发送给相机。同时还可以对相机发送到fpga的网络数据,进行网络报文过滤和解析,从报文中区分出gvcp控制命令反馈包和gvsp图像数据包,从而完成命令发送和反馈的闭环,并且接收到相机发送过来的图像数据。

以同时控制两个相机为例具体说明图像采集控制装置的工作原理。当图像采集控制装置接收的配置命令包含两组相机类型参数和相机配置参数,第一组为:相机类型a1,配置参数b1;第一组为:相机类型a2,配置参数b2,则从插入的多个相机中找到相机类型为a1的相机1和相机类型为a2的相机2,分别与这两个相机建立有效连接,分配对应的内存。读取相机1的xml文件,根据相机配置参数b1查找到对应的寄存器地址并存储在对应的内存中。当需要调用相机1时,图像采集控制装置将相机配置参数b1和对应的寄存器地址转换为控制命令包,发送给相机1,相机1进行参数b1的配置后开始进行图像的采集。以同样的方法对相机2的参数b2的配置及控制。

优选地,图像采集控制装置还包括排序上传模块,用于将不同相机采集的图像按照一定的图像顺序参数发送给上位机。在aoi检测领域,在配置命令中可能包括不同相机的图像顺序参数,例如相机1、2采集的图像需要按顺序上传才能来实现有效的检测分析。在多相机系统中,不同相机、不同角度的图像检测分析方法不同,并且相机采集图像时间、预处理所需时间都不同。这就需要对不同相机获取的图像按照图像顺序参数进行排序编号,方便软件算法对不同相机的图像做相应的处理。

优选地,图像采集控制装置还包括预处理模块,用于在fpga上对采集的图像进行预处理。由于光学、镜头、外部环境等原因,采集图像可能达不到检测算法所需要的要求,因而相机图像进行预处理,例如是畸变校正、透视变换等,可以有效提高后续检测分析的准确度。

优选地,如图3所示,图像采集控制装置采用多线程并行方法运行,例如采用freertos实时系统,针对每一个相机,开启一个单独线程,通过多线程并行来实现多个相机同时配置。图像采集控制的任务包括pccfgtask、linkchecktask、cmrcfgtask、ddrctrltask、preproctask和tx_rxtask。每个任务(task)为并行任务,n表示相机个数。在aoi检测中,一般任务较多并且较为复杂,采用多任务并行流水线的形式,一方面可以满足高效运行的需要,另一方面降低了维护难度。

pccfgtask:接收上位机的配置命令,对图像采集控制装置的不同模块和task进行配置。

linkchecktask:当有相机插入时,该线程自动初始化网口和相机,同时读取相机的类型,与相机类型参数匹配,匹配完成后,读取相机内部的xml文件,根据命令查找表获取需要配置命令的寄存器地址。

cmrcfgtask:将每一个相机的曝光、增益、gamma等相机配置参数,配置到图像采集控制装置的共享内存中,将寄存器地址和相应的控制参数转换成对应的gvcp控制命令包,配置到相应的相机中,同时触发相机进入取像模式。

ddrctrltask:相机图像数据输入图像采集控制装置后,控制数据流将图像数据写入到ddr相应的地址中。

preproctask:当某一个相机的图像数据完全输入到图像采集控制装置,任务启动,开始对图像做预处理。

tx_rxtask:当某一个相机预处理完成,就开启相机排序,同时对所有图像进行编号,按照上位机配置的相机顺序开启上传,将图像数据上传到上位机中。

本发明实施例的一种基于fpga的图像采集控制方法,包括:

接收配置命令,配置命令包含相机类型参数及相机配置参数;

自动识别系统中所接入的多个相机的相机类型,根据所述识别的多个相机的相机类型获取与配置命令中包含的相机类型参数相匹配的相机,并与匹配的相机建立连接;

读取相机的xml文件,根据相机配置参数查找相机需要配置命令的寄存器地址;

将相机配置参数和寄存器地址转换成控制命令包,根据控制命令包来配置相机,触发相机进行图像采集并接收采集的图像。

优选地,配置命令包含多组相机类型参数及相机配置参数,用于同时控制多个相机。

优选地,配置命令中还包括不同相机的图像顺序参数,则将不同相机采集的图像按照该图像顺序参数发送给上位机。

优选地,图像采集控制方法,还包括:在fpga上对采集的图像进行图像预处理。

优选地,根据控制命令包来配置相机具体是:

对控制命令包进行udp头封装、ip头封装和mac头封装,生成千兆以太网传输格式的报文数据;

将报文数据转换成网络信号发送给对应的相机进行配置。

优选地,图像采集控制方法采用多线程并行方法控制多个相机完成图像采集。具体是同时进行多个相机的相机类型与所述配置命令中包含的多组相机类型参数的匹配、多个相机的参数配置以及图像采集。

图像采集控制方法的实现原理、技术效果与上述图像采集控制装置类似,此处不再赘述。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1