发明内容
本申请提供了一种工业相机及其控制方法,以解决技术问题。
为了达到上述目的,本申请实施例采用以下技术方案:
第一方面,本申请部分实施例提供一种工业相机的控制方法,所述方法包括:
确定采集缓存队列和算法缓存队列,其中,所述采集缓存队列中具有M个采集缓存数据,所述采集缓存数据包括采集序号、采集锁定状态和采集缓存内容,所述算法缓存队列中具有M个算法缓存数据,所述算法缓存数据包括算法序号、算法锁定状态和算法缓存内容;
对所述采集缓存队列中采集锁定状态和所述算法缓存队列中算法锁定状态进行判定;
如果所述采集缓存队列中存在采集锁定状态为否的采集缓存数据,其采集序号为i(i≤M),进行图像拍摄处理步骤,以及保存图像内容至第i个采集缓存数据的采集缓存内容中,将所述第i个采集缓存数据的采集锁定状态设为是;
如果所述采集缓存队列中存在采集锁定状态为是的采集缓存数据,其采集序号为i(i≤M),对第i个采集缓存数据的采集缓存内容进行算法处理,得到算法处理结果,将所述第i个采集缓存数据的采集锁定状态设为否;
如果所述算法缓存队列中存在算法锁定状态为否的算法缓存数据,其算法序号为j(j≤M),保存算法处理结果至第j个算法缓存数据的算法缓存内容中,将所述第j个算法缓存数据的算法锁定状态设为是;
如果所述算法缓存队列中存在算法锁定状态为是的算法缓存数据,其算法序号为j(j≤M),将第j个算法缓存数据的算法缓存内容进行数据传输处理步骤,将所述第j个算法缓存数据的算法锁定状态设为否。
在一种可能的实现方式中,所述方法还包括:
如果所述采集缓存队列中不存在采集锁定状态为否的采集缓存数据,预设时间后进行判定所述采集缓存队列中是否存在采集锁定状态为否的采集缓存数据。
在一种可能的实现方式中,所述方法还包括:
如果所述采集缓存队列中不存在采集锁定状态为是的采集缓存数据,预设时间后进行判定所述采集缓存队列中是否存在采集锁定状态为是的采集缓存数据。
在一种可能的实现方式中,所述方法还包括:
如果所述算法缓存队列中不存在算法锁定状态为否的算法缓存数据,预设时间后进行判定所述算法缓存队列中是否存在算法锁定状态为否的采集缓存数据。
在一种可能的实现方式中,所述方法还包括:
如果所述算法缓存队列中不存在算法锁定状态为是的算法缓存数据,预设时间后进行判定所述算法缓存队列中是否存在算法锁定状态为否的采集缓存数据。
在一种可能的实现方式中,所述采集锁定状态用于标记对应的采集缓存数据是否被占用;
如果采集锁定状态为是,则对应的采集缓存数据被占用,可用于算法处理;
如果采集锁定状态为否,则对应的采集缓存数据被不占用,可用于图像拍摄处理。
在一种可能的实现方式中,所述算法锁定状态用于标记对应的算法缓存数据是否被占用;
如果算法锁定状态为是,则对应的算法缓存数据被占用,可用于数据传输处理;
如果算法锁定状态为否,则对应的算法缓存数据被不占用,可用于保存算法处理结果。
在一种可能的实现方式中,所述方法还包括:
获取第一标志、第二标志和第三标志;
当所述第一标志、所述第二标志和所述第三标志均表示结束时,所述工业相机停止运行;
当所述第一标志、所述第二标志和所述第三标志中至少有一个表示不结束时,所述工业相机继续运行。
第二方面,本申请部分实施例提供一种工业相机,所述工业相机包括处理器,所述处理器具有多个内核,多个所述内核分别用于处理图像拍摄、算法处理、数据传输;所述工业相机采用第一方面所述控制方法。
第二方面,本申请部分实施例提供一种机器视觉***,,所述机器视觉***包括光源、工业相机、镜头、图像采集与处理设备;所述工业相机采用第一方面所述控制方法。
本申请提供的工业相机及其控制方法,通过采集缓存队列和算法缓存队列以及三个处理分支分别处理图像拍摄、算法处理和数据传输,通过采集缓存队列的采集锁定状态和算法缓存队列的算法锁定状态控制三个处理分支,使得三个处理分支之间即相互联系,又不相互制约,例如:如果所述采集缓存队列中存在采集锁定状态为否的采集缓存数据,其采集序号为i,进行图像拍摄处理步骤,以及保存图像内容至第i个采集缓存数据的采集缓存内容中,将所述第i个采集缓存数据的采集锁定状态设为是;本申请通过工业相机的控制方法,实现了流水式并行处理,使得工业相机处理时间减少,提高检测效率。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
工业相机中每一帧图片都需要经过图像拍摄、算法处理、数据传输处理,且三个处理步骤之间具有依赖性,是因为图像拍摄是在工业相机与光源同步下拍摄的多张2D图像,每张2D图像具有不同光源特性的信息;算法处理对拍摄多张2D图像进行算法分析得到3D数据;数据传输将3D数据传给图像采集与处理设备,
为解决上述问题,本申请部分实施例提供一种工业相机的控制方法,通过结合流水线工作模式控制工业相机的整体处理流程,通过将处理过程并行交叠,充分利用硬件资源,提高工业相机的采集频率,提升机器视觉***整体检测率。
通过本申请提出的工业相机的控制方法,达到如图2所示的工作模式,将每一帧图像的处理步骤并行交叠,充分利用工业相机的硬件资源,提高工业相机的采集频率,所述工业相机可以是3D工业相机,
为达到图2所示的工作模式,所述工业相机的控制方法如图3所示,将流水线工作模式与缓存队列结合,所述控制方法可以包括如下步骤:
S101、确定采集缓存队列和算法缓存队列。
所述采集缓存队列具有M个采集缓存数据,所述算法缓存队列也具有M个算法缓存数据。
如图4所示,所述采集缓存数据包括采集序号I(I=1至I=M)、采集锁定状态LG和采集缓存内容TG。如图5所示,所述算法缓存数据包括算法序号J(J=1至J=M)、算法锁定状态LA和算法缓存内容TA。
S102、通过第一线程进行图像拍摄处理。
所述第一线程具有第一标志F1,所述第一标志F1用于判定是否结束第一线程。
采集锁定状态用于标记对应的采集缓存数据是否被占用中,如果采集锁定状态为是,则其被占用,可用于算法处理;如果采集锁定状态为否,则其被不占用,可用于图像拍摄处理。
如果所述采集缓存队列中不存在采集锁定状态为否的采集缓存数据,等待预设时间后再进行判断。
如果所述采集缓存队列中存在采集锁定状态为否的采集缓存数据,其采集序号为i,进行图像拍摄处理步骤,以及保存图像内容至第i个采集缓存数据的采集缓存内容中,将所述第i个采集缓存数据的采集锁定状态设为是。
例如,首先判定采集缓存队列中是否存在采集锁定状态为否的采集缓存数据,如果当采集缓存队列中不存在采集锁定状态为否的采集缓存数据,等待10毫秒,再次判定采集缓存队列中是否存在采集锁定状态为否的采集缓存数据;如果集缓存队列中存在采集锁定状态为否的采集缓存数据,其采集序号为2,执行图像拍摄处理步骤,以及保存图像内容至第2个采集缓存数据的采集缓存内容中,将所述第2个采集缓存数据的采集锁定状态设为是。最后判定第一标志F1,如果第一标志F1为是,则跳出第一线程的循环;如果第一标志F1为否,则继续第一线程的循环。
S103、通过第二线程进行算法处理。
所述第二线程具有第二标志F2,所述第二标志F2用于判定是否结束第二线程。
首先判定采集缓存队列中采集锁定状态,采集锁定状态用于标记对应的采集缓存数据是否被占用中,如果采集锁定状态为是,则其被占用,可用于算法处理;如果采集锁定状态为否,则其被不占用,可用于图像拍摄处理。
如果所述采集缓存队列中不存在采集锁定状态为是的采集缓存数据,等待预设时间后再进行判断。
如果所述采集缓存队列中存在采集锁定状态为是的采集缓存数据,其采集序号为i,对第i个采集缓存数据的采集缓存内容进行算法处理,得到算法处理结果,将所述第i个采集缓存数据的采集锁定状态设为否。
然后判定算法缓存队列中算法锁定状态,算法锁定状态用于标记对应的算法缓存数据是否被占用中,如果算法锁定状态为是,则其被占用,可用于数据传输处理;如果算法锁定状态为否,则其被不占用,可用于保存算法处理结果。
如果所述算法缓存队列中不存在算法锁定状态为否的算法缓存数据,等待预设时间后再进行判断。
如果所述算法缓存队列中存在算法锁定状态为否的算法缓存数据,其算法序号为j,保存算法处理结果至第j个算法缓存数据的算法缓存内容中,将所述第j个算法缓存数据的算法锁定状态设为是。
例如,首先判定采集缓存队列中是否存在采集锁定状态为是的采集缓存数据,如果当采集缓存队列中不存在采集锁定状态为是的采集缓存数据,等待10毫秒,再次判定采集缓存队列中是否存在采集锁定状态为是的采集缓存数据;如果集缓存队列中存在采集锁定状态为是的采集缓存数据,其采集序号为2,对第2个采集缓存数据的采集缓存内容执行算法处理步骤,将所述第2个采集缓存数据的采集锁定状态设为否。其次判定算法缓存队列中是否存在算法锁定状态为否的算法缓存数据,如果当算法缓存队列中不存在算法锁定状态为否的算法缓存数据,等待10毫秒,再次判定算法缓存队列中是否存在算法锁定状态为否的算法缓存数据;如果集缓存队列中存在算法锁定状态为否的算法缓存数据,其算法序号为5,对第5个算法缓存数据的算法缓存内容执行算法处理步骤,将所述第5个算法缓存数据的算法锁定状态设为是。最后判定第二标志F2,如果第二标志F2为是,则跳出第二线程的循环;如果第二标志F2为否,则继续第二线程的循环。
S104、通过第三线程进行数据传输处理。
所述第三线程具有第三标志F3,所述第三标志F3用于判定是否结束第三线程。
判定算法缓存队列中算法锁定状态,算法锁定状态用于标记对应的算法缓存数据是否被占用中,如果算法锁定状态为是,则其被占用,可用于数据传输处理;如果算法锁定状态为否,则其被不占用,可用于保存算法处理结果。
如果所述算法缓存队列中不存在算法锁定状态为是的算法缓存数据,等待预设时间后再进行判断。
如果所述算法缓存队列中存在算法锁定状态为是的算法缓存数据,其算法序号为j,将第j个算法缓存数据的算法缓存内容(即算法处理结果)进行数据传输处理步骤,将所述第j个算法缓存数据的算法锁定状态设为否。
例如,首先判定算法缓存队列中是否存在算法锁定状态为是的算法缓存数据,如果当算法缓存队列中不存在算法锁定状态为是的算法缓存数据,等待10毫秒,再次判定算法缓存队列中是否存在算法锁定状态为是的算法缓存数据;如果集缓存队列中存在算法锁定状态为是的算法缓存数据,其算法序号为5,将第5个算法缓存数据的算法缓存内容(即算法处理结果)进行数据传输,将所述第5个算法缓存数据的算法锁定状态设为是。最后判定第三标志F3,如果第三标志F3为是,则跳出第三线程的循环;如果第三标志F3为否,则继续第三线程的循环。
S105、当第一标志、第二标志和第三标志均表示结束时,工业相机的结束本次控制。
清除采集缓存队列和算法缓存队列,关闭第一线程、第二线程和第三线程。
在一些实施例中,当第一标志、第二标志和第三标志中至少有一个表示未结束,工业相机继续执行本次控制。
本申请通过上述工业相机的控制方法提高工业相机的采集频率,本申请中可实现的具体的时间片的流转情况,图2所示如下:
在时间片1:第1帧进行图像拍摄,第2、3帧尚未开始;
在时间片2:第1帧进行算法处理,第2帧进行图像拍摄,第3帧尚未开始;
在时间片3:第1帧进行数据传输,第2帧进行算法处理,第3帧进行图像拍摄;
在时间片4:第1帧结束,第2帧进行数据传输,第3帧进行算法处理,第4帧进行图像拍摄;
在时间片N:第N-3帧结束,第N-2帧进行数据传输,第N-1帧进行算法处理,第N帧进行图像拍摄;
在时间片N+3:第N帧结束,第N+1帧进行数据传输,第N+2帧进行算法处理,第N+3帧进行图像拍摄;
由上可知,在现有的工作模式完成N帧图片的处理,需要3N个时间片;而通过本申请提出的工业相机的控制方法优化过后的流水线工作模式,仅需要N+3个时间片,时间减少,提升效率。
在一种实施例中,在每一帧图片的图像拍摄、算法处理、数据传输三个步骤并不能达到一模一样的时间长度,因此每个时间片的长度由当时正在进行的步骤中耗时最大的一个步骤决定。
本申请部分实施例还提供了一种工业相机,所述工业相机包括处理器,所述处理器具有多个内核,多个所述内核分别用于处理图像拍摄、算法处理、数据传输;所述工业相机采用上述控制方法。
本申请部分实施例还提供了一种机器视觉***,所述机器视觉***包括光源、工业相机、镜头、图像采集与处理设备;所述光源、工业相机和图像采集与处理设备连接,所述工业相机和镜头连接,通过图像采集与处理设备实现机器视觉***的控制,所述工业相机采用上述控制方法。
在一些实施例中也可以在,所述机器视觉***可以还包括控制器,所述控制器和工业相机、图像采集与处理设备连接,用于控制所述机器视觉***。
本申请提供的工业相机及其控制方法,通过采集缓存队列和算法缓存队列以及三个处理分支分别处理图像拍摄、算法处理和数据传输,通过采集缓存队列的采集锁定状态和算法缓存队列的算法锁定状态控制三个处理分支,使得三个处理分支之间即相互联系,又不相互制约,例如:如果所述采集缓存队列中存在采集锁定状态为否的采集缓存数据,其采集序号为i(i≤M),进行图像拍摄处理步骤,以及保存图像内容至第i个采集缓存数据的采集缓存内容中,将所述第i个采集缓存数据的采集锁定状态设为是;本申请通过工业相机的控制方法,实现了流水式并行处理,使得工业相机处理时间减少,提高检测效率。
以上内容仅为说明本申请的技术思想,不能以此限定本申请的保护范围,凡是按照本申请提出的技术思想,在技术方案基础上所做的任何改动,均落入本申请权利要求书的保护范围之内。
此外,除非权利要求中明确说明,本申请所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本申请流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本申请实施例实质和范围的修正和等价组合。例如,虽然以上所描述的***组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的***。
同理,应当注意的是,为了简化本申请披露的表述,从而帮助对一个或多个实施例的理解,前文对本申请实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本申请对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
针对本申请引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本申请作为参考。与本申请内容不一致或产生冲突的申请历史文件除外,对本申请权利要求最广范围有限制的文件(当前或之后附加于本申请中的)也除外。需要说明的是,如果本申请附属材料中的描述、定义、和/或术语的使用与本申请所述内容有不一致或冲突的地方,以本申请的描述、定义和/或术语的使用为准。