CN113010281B - 多相机检测***的线程处理方法、装置、存储介质和终端 - Google Patents
多相机检测***的线程处理方法、装置、存储介质和终端 Download PDFInfo
- Publication number
- CN113010281B CN113010281B CN202110208862.3A CN202110208862A CN113010281B CN 113010281 B CN113010281 B CN 113010281B CN 202110208862 A CN202110208862 A CN 202110208862A CN 113010281 B CN113010281 B CN 113010281B
- Authority
- CN
- China
- Prior art keywords
- camera
- functional block
- cameras
- dimensional
- space
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 90
- 238000003672 processing method Methods 0.000 title claims abstract description 22
- 238000004458 analytical method Methods 0.000 claims abstract description 26
- 230000000875 corresponding effect Effects 0.000 claims abstract description 17
- 238000000034 method Methods 0.000 claims abstract description 13
- 230000006870 function Effects 0.000 claims description 70
- 125000004122 cyclic group Chemical group 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 15
- 238000011161 development Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 3
- 230000000007 visual effect Effects 0.000 abstract description 6
- 238000005457 optimization Methods 0.000 abstract description 4
- 238000010191 image analysis Methods 0.000 abstract description 3
- 239000000047 product Substances 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000007547 defect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 240000007651 Rubus glaucus Species 0.000 description 3
- 235000011034 Rubus glaucus Nutrition 0.000 description 3
- 235000009122 Rubus idaeus Nutrition 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 239000006227 byproduct Substances 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0207—Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Studio Devices (AREA)
Abstract
本发明涉及多相机视觉检测技术领域,特别涉及一种多相机检测***的线程处理方法、装置、存储介质和终端,包括以下步骤:在计算机上创建一个独立线程,用于管理相机图像的数据以及功能块的分析、判断及输出结果;对相机图像进行数据采集,并基于相机的数量以及各相机所使用的功能块在***中自动加载所有功能块,以生成一个二维功能块空间;所述独立线程对所述二维功能块空间内的功能块进行分析,以输出结果并执行相应的动作。本发明提供的线程处理方法,只通过一个线程来管理多相机的图像分析,使其适用在低功耗的芯片上;另一方面,通过生成可自由伸缩的二维空间分配各个功能块,可大大节省了***的内存,使其达到最优化,具有较好的应用价值。
Description
技术领域
本发明涉及多相机视觉检测技术领域,特别涉及一种多相机检测***的线程处理方法、装置、存储介质和终端。
背景技术
随着视觉检测技术的不断发展,多相机***应用在3D重建、运动捕捉、多视点视频等,其应用范围也不断扩大。多相机***是指每个相机都开辟一个线程,这个线程读取对应相机采集的图像,还对图像进行分析。除了每个相机对应的线程,还需一个线程来统一汇总每个相机的分析结果,进行逻辑判断、综合输出结果。而多相机***需要依靠的硬件主要分为两大类:基于X86架构的PC***和基于ARM架构的嵌入式***。
然而,将现有的多相机处理技术应用在低功耗可用线程数少的芯片,比如ARM架构的计算机上时,发现存在着如下缺点:一、无论是连续的相机工作模式还是触发的相机工作模式,每个相机分析处理图像都是在各自线程中完成的,导致创建过多的线程,而对于低功耗可用线程数少的芯片,其多线程处理能力比较弱,就会产生线程处理滞后的现象,从而造成了从启动检测到得出最后结果的总时间根本无法有效掌控的问题。二、如果只用一个独立的线程去管理各个相机的分析,则需要生成一个二维功能块空间,但如果使用目前的多线程技术中创建矩阵的模式,就会产生一个横向空间长度必须完全相同的二维矩阵,因此,该模式将使得每个相机用到的功能块的数量必须全部相同,这就会导致内存空间的巨大浪费。
发明内容
为解决上述提到的多相机检测***应用在线程数较少的芯片中存在的线程处理技术问题,本发明提供了一种多相机检测***的线程处理方法,包括以下步骤:S100、在计算机上创建一个独立线程,用于管理相机图像的采集数据以及对数据进行功能块的分析、判断及输出结果;S200、对相机图像进行数据采集,并基于相机的数量以及各相机所使用的功能块在***中自动加载所有功能块,以生成一个二维功能块空间;S300、所述独立线程对所述二维功能块空间内的功能块进行分析,以输出结果并执行相应的动作。
在上述技术方案的基础上,进一步地,所述各相机的工作模式为触发模式。
在上述技术方案的基础上,进一步地,在步骤S200中,所述二维功能块空间基于Python开发语言通过以下步骤生成:
S210、构建一功能块的类作为数据结构,记为C;
S220、创建一空的列表list,记为A=[];
S230、获取相机总数m,同时设置一个数值从1到m的循环变量i,代表当前处理的相机序号,初始值为1;
S240、列表A扩充为一维空间,即A.append([]);
S250、获取第i个相机执行的总功能块数量 n,同时设置一个数值从1到n的循环变量j,代表当前处理的功能块序号,初始值为1;
S260、在A的第i个一维空间中扩充,填上功能块的类,即为A[i].append(C);
S270、将A[i][j]实体化,即在空列表中读入第i个相机第j个功能块的参数,将所有相机的所有功能块实体化后即生成二维功能块空间。
在上述技术方案的基础上,进一步地,在步骤S300中,对所述二维功能块空间内的功能块进行分析包括以下步骤:
S310、传输一采集信号以使相机进行图像采集,并判断在规定时间内是否所有相机的图像都传输回***,若至少一个相机的图像没有传输回***,则报警,并且停止检测;
S320、依次执行每一个功能块,在判定全部功能块执行完成后,再执行功能块集合的组合逻辑判断,以输出总检测结果;若当前执行的功能块检测结果符合它的中断条件时,则中断所有功能块的执行,并判定以该功能块指定的结果作为总检测结果;
S330、将总检测结果输出给外部电路,以执行相应的动作。
在上述技术方案的基础上,进一步地,步骤S310中,在给所有相机传输采集信号前,需要检测所述采集信号是否为真,若为真,则开始给所有相机传输所述采集信号;若为假,则检测停止信号是否为真,若停止信号为真,则结束分析,若停止信号为假,则重新检测新的采集信号是否为真。
本发明还提供一种多相机检测装置,包括:采集模块,用于对多个相机图像进行数据采集;线程创建模块,创建一个独立线程,用于管理采集的相机图像数据以及对数据进行功能块的分析、判断及输出结果;二维功能块生成模块,基于相机的数量以及各相机所使用的功能块在***中自动加载所有功能块,以生成一个二维功能块空间;分析输出模块,通过所述线程对所述二维功能块空间内的功能块进行分析并输出结果。
在上述技术方案的基础上,进一步地,还包括执行模块,对分析输出模块中传输的信号执行相应的动作。
在上述技术方案的基础上,进一步地,所述分析输出模块还用于执行以下步骤:
(1)传输一采集信号以使相机进行图像采集,并判断在规定时间内是否所有相机的图像都传输回***,若至少一个相机的图像没有传输回***,则报警,并且停止检测;
(2)依次执行每一个功能块,在判定全部功能块执行完成后,再执行功能块集合的组合逻辑判断,以输出总检测结果;若当前执行的功能块的检测结果符合它的中断条件,则中断所有功能块的执行,并判定以该功能块指定的结果作为总检测结果;
(3)将总检测结果输出给外部电路,以执行相应的动作。
本发明提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于:该程序被处理器执行时实现如上所述的多相机检测***的线程处理方法。
本发明还提供一种终端,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如上所述的多相机检测***的线程处理方法。
本发明提供的一种多相机检测***的线程处理方法,与现有技术相比,具有以下优点:一方面,仅通过一个独立线程管理多相机的图像分析,适用在低功耗且多线程处理能力弱的芯片上,且能稳定输出结果,不会造成线程处理滞后现象;另一方面,通过生成一个可自由伸缩的二维空间来分配各个功能块,大大节省了***的存储空间,使其达到内存的最优化,不仅能够解决ARM架构的计算机线程管理问题,同样也可在X86架构上有效工作,具有较好的应用价值。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的多相机检测***的线程处理方法的流程图;
图2为使用现有技术创建二维功能块空间的示意图;
图3为使用本发明方法创建二维功能块空间的示意图;
图4为生成二维功能块空间的步骤流程图;
图5为对所述二维功能块空间内的功能块进行分析的步骤流程图;
图6为检测盘面物体的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供的一种多相机检测***的线程处理方法,包括以下步骤:S100、在计算机上创建一个独立线程,用于管理相机图像的采集数据以及对数据进行功能块的分析、判断及输出结果;S200、对相机图像进行数据采集,并基于相机的数量以及各相机所使用的功能块在***中自动加载所有功能块,以生成一个二维功能块空间;S300、所述独立线程对所述二维功能块空间内的功能块进行分析,以输出结果并执行相应的动作。
具体实施时,如图1所示,所述功能块又称为子程序,在视觉软件分析中,用于对采集的图像进行各个项目的检测分析,以实现不同的检测功能,例如对产品的尺寸、形状、缺陷、角度等项目进行检测分析。本发明所述的线程处理方法首先要在计算机上创建一个独立线程,再对相机图像进行数据采集,并加载所有功能块以生成一个二维功能块空间;最后由建立的独立线程对二维功能块进行逐个分析、组合逻辑判断并输出结果给外部设备。本发明的线程处理方法,既适用于多相机***又适用于单相机***。
本发明提供的多相机检测***的线程处理方法,一方面,仅通过一个独立线程管理多相机的图像分析,适用在低功耗且多线程处理能力弱的芯片上,例如ARM架构的计算机线程管理;另一方面,通过生成一个可自由伸缩的二维空间来分配各个功能块,大大节省了***的存储空间,使其达到内存的最优化,同样也可在X86架构上有效工作,具有较好的应用价值。
优选地,所述各相机的工作模式为触发模式。
具体实施时,还包括将所有相机工作模式设置为触发模式,所述触发模式触发的方式可包括由软件触发的软触发模式以及由传感器/开关触发的硬触发模式,通过将相机的工作模式设置为触发模式,便于计算机提供触发信号给多相机以控制多相机对产品进行图像采集的工作。
优选地,在步骤S200中,所述二维功能块空间基于Python开发语言通过以下步骤生成:
S210、构建一功能块的类作为数据结构,记为C;
S220、创建一空的列表list,记为A=[];
S230、获取相机总数m,同时设置一数值从1到m的循环变量i,代表当前处理的相机序号,初始值为1;
S240、列表A扩充为一维空间,即A.append([]);
S250、获取第i个相机执行的总功能块数量n,同时设置一数值从1到n的循环变量j,代表当前处理的功能块序号,初始值为1;
S260、在A的第i个一维空间中扩充,填上功能块的类,即为A[i].append(C);
S270、将A[i][j]实体化,即在空列表中读入第i个相机第j个功能块的参数,将所有相机的所有功能块实体化后即生成二维功能块空间。
具体实施时,如图4所示,所述生成二维功能块空间通过Python开发语言来完成代码,包括步骤:S210、构建一功能块的类作为数据结构,记为C,所述类用于存储所有功能块的参数变量和方法,换言之,用于存储产品检测所需的各个参数信息。S220、创建一空的列表list,记为A=[],其利用了Python语言的list(列表)功能,列表一般用于数据结构的自由扩展,本质上是给list的内容指定一个内存指针,将空列表记为A=[]表示为只是获得一个入口地址,并不消耗内存。S230、获取相机总数,设相机总数为m个,同时设置一个数值从1到m的循环变量i,代表当前处理的相机序号,初始值为1,该步骤用于依次统计相机的总数量。S240、列表A扩充为一维空间,即A.append([]),该步骤表示为列表A的内存仍为空的,只是安排了每个不同的相机依次占用不同的一维空间。S250、获取第i个相机执行的总功能块数量,假设为n个,j=1是设置一个循环变量j的初始值,j为功能块数量值,该步骤表示为统计第i个相机总共有j个功能块。S260、在A的第i个一维空间中扩充,填上功能块的类,即为A[i].append(C),该步骤表示给第i个相机安排各个检测所需的参数信息,即依次安排不同相机的j个空间用于存放功能块。S270、将A[i][j]实体化,即在空列表中读入第i个相机第j个功能块的参数,该步骤表示为将每个相机的每个功能块分别填入已经扩充好的二维空间中,将所有相机的所有功能块进行实体化后就生成了一个存放各个功能块的二维空间。
现有技术中若用一个独立的线程去管理各个相机的分析,其生成的二维空间,需要事先根据相机数量来创建Y方向的维度,根据所有相机中功能块最多的功能块数量来创建X方向的维度,再通过X、Y组成的矩形二维空间来存放功能块,通过该方式创建的二维空间,其Y方向是可伸缩的,但是所有X方向的维度已经预设好全部相同,这就会导致未使用功能块的内存空间发生了极大的浪费,如图2所示为现有技术创建的二维功能块空间的示意图,其中黑色部分为浪费的内存空间。
不同于上述现有技术提到的创建二维功能块空间的缺点,本发明则是利用列表(list)来放置数据,其放置数据的特点在于将数据的地址放在内存中,而不是放置实际的数据本身,即只是安排了入口地址,并不占用实际的内存空间。并且在具体操作中,是一维内存地址分配完,再依次分配另外一维的内存地址,使得不同数量的功能块有相对应的地址数量。如图3所示为通过本发明方法创建二维功能块空间的示意图,可以看出不仅Y方向为可伸缩的,X方向也是根据实际功能块的数量可自由伸缩。这样的方法创建二维功能块空间既维护了完整的结构,又在内存占用上做到既不多也不少地使用,达到了内存的最优化,极大节约了***的开销。
作为一种应用实施例,本发明方法在使用Cortex-A53处理器的树莓派3B+开发板上得到了成功的应用。实施案例中,树莓派3B+开发板的供电方式只能是电池供电,其CPU型号为Cortex-A53,处理能力不允许开辟过多的线程,而开发板的内存也只有1G,除了自身运行Linux***需要的内存外,所剩内存只有500M,是一种低功耗、可用线程数少、线程处理能力较弱的开发板。本应用实施例采用树莓派3B+开发板以及两个USB相机(相机由开发板供电)进行检测,其中一个相机检测外包装的上半部分是否破损和其他缺陷,另外一个相机检测包装的下半部分是否破损和其他缺陷,但由于产品的上半部分和下半部分的光线有些区别,而且破损缺陷各不相同,所以用到多个检测功能块以实现不同的检测功能。本应用实施例采用本发明的方法,也就是只使用一个线程,在一个线程中加载了一个二维内存空间,用来放置两个相机的功能块,通过给相机一个检测信号,先后采集两个相机的图像,并依次对各个功能块进行处理,最后输出总的检测结果。通过上述视觉检测分析的实施例,可以得知检测一次消耗的总时间始终稳定在1.5秒左右,检测程序消耗的内存在300M不到,功耗也控制在8W左右,其检测效果符合了用户的预期,不会产生线程处理滞后的现象,总体上很好地满足了用户的需求。
优选地,在步骤S300中,对所述二维功能块空间内的功能块进行分析包括以下步骤:
S310、传输一采集信号以使相机进行图像采集,并判断在规定时间内是否所有相机的图像都传输回***,若至少一个相机的图像没有传输回***,则报警,并且停止检测;
S320、依次执行每一个功能块,在判定全部功能块执行完成后,再执行功能块集合的组合逻辑判断,以输出总检测结果;若当前执行的功能块检测结果符合它的中断条件时,则中断所有功能块的执行,并判定以该功能块指定的结果作为总检测结果;
S330、将总检测结果输出给外部电路,以执行相应的动作。
具体实施时,如图5所示为具体功能块分析的流程图,其分析的步骤为先给所有相机一个采集信号以采集图像,再依次执行每一个功能块并进行逻辑判断,判断每个功能块的结果是否为合格,再对每个相机的功能块结果做组合逻辑判断(其组合逻辑的判断将根据具体工作需求设置),然后得出每个相机的判断结果。若当前执行的功能块具有中断条件且该检测结果为A或B符合它的中断条件时,则中断所有功能块的执行,并判定以该功能块指定的结果即1或0作为总检测结果;最终输出总检测结果1或0给外部电路。其中A为功能块获取目标物,B为功能块未获取目标物;1为总检测结果为合格,0为总检测结果为不合格。
例如,根据具体工作需求,将条件和逻辑中功能块1的中断条件设置为功能块检测结果为A时,输出总检测结果为0;其中,在执行到当前功能块1时,若执行到功能块1的检测结果为A,则发出中断指令,中断所有功能块的执行,直接输出总检测结果为0。
应当理解的是,根据实际工作需求,可给不同功能块设置若干不同的中断条件,也可以根据需求,在符合中断条件的同时,选择执行该中断指令或者不执行该中断指令;通过上述方式的设置不仅能够减少检测步骤,还能加快检测速度,提高检测效率。
优选地,步骤S310中,在给所有相机传输采集信号前,需要检测所述采集信号是否为真,若为真,则开始给所有相机传输所述采集信号;若为假,则检测停止信号是否为真,若停止信号为真,则结束分析,若停止信号为假,则重新检测新的采集信号是否为真。
具体实施时,如图5所示,步骤S310中,在给所有相机传输采集信号前,需要检测所述采集信号是否为真,若检测所述采集信号为真,则开始给所有相机传输所述采集信号,并往下继续执行,直至输出总检测结果后,需要检测停止信号是否为真,若停止信号为真则结束分析,若停止信号为假,则重新检测新的采集信号是否为真。若检测所述采集信号为假,则需要返回检测停止信号是否为真。
本发明还提供一种多相机检测装置,包括:采集模块,用于对多个相机图像进行数据采集;线程创建模块,创建一个独立线程,用于管理采集的相机图像数据以及对数据进行功能块的分析、判断及输出结果;二维功能块生成模块,基于相机的数量以及各相机所使用的功能块在***中自动加载所有功能块,以生成一个二维功能块空间;分析输出模块,通过所述线程对所述二维功能块空间内的功能块进行分析并输出结果。
具体实施时,多相机检测装置包括采集模块、线程创建模块、二维功能块生成模块以及分析输出模块。通过各个模块的配合,将采集的图像信息,经过分析转化为所需的结果,达到多相机检测的目的。
例如,有个检测项目,如图6所示,左右是两个不同的盘面,需要检测一个盘面上是否有三个正方形物体和两个圆形物体。通常需要通过线程创建模块创建一个独立线程,再利用采集模块对多个相机的图像进行采集,并配置成第一个功能块检测盘面上是否有三个正方形物体,第二个功能块检测盘面上是否有两个圆形物体,接着,将多个相机的两个功能块通过二维功能块生成模块集合在一个二维空间中,最后再通过分析输出模块将第一个功能块的结果跟第二个功能块的结果组合起来进行逻辑判断并输出总的结果。
优选地,还包括执行模块,对分析输出模块中传输的信号执行相应的动作。
具体实施时,还包括执行模块,所述执行模块将根据具体工作需求来执行相应的动作。例如检测为不合格,则用***吹掉产品等动作。
优选地,所述分析输出模块还用于执行以下步骤:(1)传输一采集信号以使相机进行图像采集,并判断在规定时间内是否所有相机的图像都传输回***,若至少一个相机的图像没有传输回***,则报警,并且停止检测;(2)依次执行每一个功能块,在判定全部功能块执行完成后,再执行功能块集合的组合逻辑判断,以输出总检测结果;若当前执行的功能块的检测结果符合它的中断条件,则中断所有功能块的执行,并判定以该功能块指定的结果作为总检测结果;(3)将总检测结果输出给外部电路,以执行相应的动作。
具体实施时,通过分析输出模块的各个执行步骤,能够很好地满足了用户对不同产品进行视觉检测的需求。
本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的多相机检测***的线程处理方法。
具体实施时,计算机可读存储介质为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)、随机存储记忆体(Random Access Memory,RAM)、快闪存储器(FlashMemory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;计算机可读存储介质还可以包括上述种类的存储器的组合。
本发明又提供一种终端,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如上所述的多相机检测***的线程处理方法。
具体实施时,处理器的数量可以是一个或多个,处理器可以为中央处理器,(Central Processing Unit,CPU)。处理器还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP) 、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器与处理器可以通过总线或其他方式通信连接,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使处理器执行如上任一项所述的一种多相机检测***的线程处理方法。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (9)
1.一种多相机检测***的线程处理方法,其特征在于,包括以下步骤:
S100、在计算机上创建一个独立线程,用于管理相机图像的采集数据以及对数据进行功能块的分析、判断及输出结果;
S200、对相机图像进行数据采集,并基于相机的数量以及各相机所使用的功能块在***中自动加载所有功能块,以生成一个二维功能块空间;
在步骤S200中,所述二维功能块空间基于Python开发语言通过以下步骤生成:
S210、构建一功能块的类作为数据结构,记为C;
S220、创建一空的列表list,记为A=[];
S230、获取相机总数m,同时设置一数值从1到m的循环变量i,代表当前处理的相机序号,初始值为1;
S240、列表A扩充为一维空间,即A.append([]);
S250、获取第i个相机执行的总功能块数量n,同时设置一数值从1到n的循环变量j,代表当前处理的功能块序号,初始值为1;
S260、在A的第i个一维空间中扩充,填上功能块的类,即为A[i].append(C);
S270、将A[i][j]实体化,即在空列表中读入第i个相机第j个功能块的参数,将所有相机的所有功能块实体化后即生成二维功能块空间;
S300、所述独立线程对所述二维功能块空间内的功能块进行分析,以输出结果并执行相应的动作。
2.根据权利要求1所述的多相机检测***的线程处理方法,其特征在于:所述各相机的工作模式为触发模式。
3.根据权利要求1或2所述的多相机检测***的线程处理方法,其特征在于,在步骤S300中,对所述二维功能块空间内的功能块进行分析包括以下步骤:
S310、传输一采集信号以使相机进行图像采集,并判断在规定时间内是否所有相机的图像都传输回***,若至少一个相机的图像没有传输回***,则报警,并且停止检测;
S320、依次执行每一个功能块,在判定全部功能块执行完成后,再执行功能块集合的组合逻辑判断,以输出总检测结果;若当前执行的功能块检测结果符合它的中断条件时,则中断所有功能块的执行,并判定以该功能块指定的结果作为总检测结果;
S330、将总检测结果输出给外部电路,以执行相应的动作。
4.根据权利要求3所述的多相机检测***的线程处理方法,其特征在于:步骤S310中,在给所有相机传输采集信号前,需要检测所述采集信号是否为真,若为真,则开始给所有相机传输所述采集信号;若为假,则检测停止信号是否为真,若停止信号为真,则结束分析,若停止信号为假,则重新检测新的采集信号是否为真。
5.一种多相机检测装置,其特征在于,包括:
采集模块,用于对多个相机图像进行数据采集;
线程创建模块,创建一个独立线程,用于管理相机图像的采集数据以及对数据进行功能块的分析、判断及输出结果;
二维功能块生成模块,基于相机的数量以及各相机所使用的功能块在***中自动加载所有功能块,以生成一个二维功能块空间;所述二维功能块空间基于Python开发语言通过以下步骤生成:
S210、构建一功能块的类作为数据结构,记为C;
S220、创建一空的列表list,记为A=[];
S230、获取相机总数m,同时设置一数值从1到m的循环变量i,代表当前处理的相机序号,初始值为1;
S240、列表A扩充为一维空间,即A.append([]);
S250、获取第i个相机执行的总功能块数量n,同时设置一数值从1到n的循环变量j,代表当前处理的功能块序号,初始值为1;
S260、在A的第i个一维空间中扩充,填上功能块的类,即为A[i].append(C);
S270、将A[i][j]实体化,即在空列表中读入第i个相机第j个功能块的参数,将所有相机的所有功能块实体化后即生成二维功能块空间;
分析输出模块,通过所述线程对所述二维功能块空间内的功能块进行分析并输出结果。
6.根据权利要求5所述的一种多相机检测装置,其特征在于:还包括执行模块,对分析输出模块中传输的信号执行相应的动作。
7.根据权利要求6所述的一种多相机检测装置,其特征在于:所述分析输出模块还用于执行以下步骤:
(1)传输一采集信号以使相机进行图像采集,并判断在规定时间内是否所有相机的图像都传输回***,若至少一个相机的图像没有传输回***,则报警,并且停止检测;
(2)依次执行每一个功能块,在判定全部功能块执行完成后,再执行功能块集合的组合逻辑判断,以输出总检测结果;若当前执行的功能块的检测结果符合它的中断条件,则中断所有功能块的执行,并判定以该功能块指定的结果作为总检测结果;
(3)将总检测结果输出给外部电路,以执行相应的动作。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:该程序被处理器执行时实现如权利要求1-4任一项所述的多相机检测***的线程处理方法。
9.一种终端,其特征在于:所述终端包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如权利要求1-4任一项所述的多相机检测***的线程处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110208862.3A CN113010281B (zh) | 2021-02-24 | 2021-02-24 | 多相机检测***的线程处理方法、装置、存储介质和终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110208862.3A CN113010281B (zh) | 2021-02-24 | 2021-02-24 | 多相机检测***的线程处理方法、装置、存储介质和终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113010281A CN113010281A (zh) | 2021-06-22 |
CN113010281B true CN113010281B (zh) | 2024-04-02 |
Family
ID=76385948
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110208862.3A Active CN113010281B (zh) | 2021-02-24 | 2021-02-24 | 多相机检测***的线程处理方法、装置、存储介质和终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113010281B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5933638A (en) * | 1996-04-04 | 1999-08-03 | Cencik; Peter | Method and apparatus for creating application computer programs using an objects evaluation matrix |
WO2007006344A1 (en) * | 2005-07-08 | 2007-01-18 | Universita' Degli Studi Di Firenze | Versatile ccd camera |
EP3065017A1 (en) * | 2015-03-06 | 2016-09-07 | Rockwell Automation Technologies, Inc. | Safety relay configuration editor |
CN107820605A (zh) * | 2017-03-27 | 2018-03-20 | 香港应用科技研究院有限公司 | 用于动态低延迟优化的***和方法 |
CN111539498A (zh) * | 2020-04-27 | 2020-08-14 | 吉林大学中日联谊医院 | 一种信息化病案管理***患者签名装置 |
CN111860478A (zh) * | 2019-04-26 | 2020-10-30 | Awl株式会社 | 图像分析装置以及图像分析*** |
CN112188090A (zh) * | 2020-09-22 | 2021-01-05 | 深圳大学 | 相机***多线程控制方法、装置、服务器和存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7038676B2 (en) * | 2002-06-11 | 2006-05-02 | Sony Computer Entertainmant Inc. | System and method for data compression |
WO2010097847A1 (ja) * | 2009-02-24 | 2010-09-02 | パナソニック株式会社 | プロセッサ装置、マルチスレッドプロセッサ装置 |
GB2471067B (en) * | 2009-06-12 | 2011-11-30 | Graeme Roy Smith | Shared resource multi-thread array processor |
US9456071B2 (en) * | 2013-11-12 | 2016-09-27 | At&T Intellectual Property I, L.P. | Extensible kernel for adaptive application enhancement |
-
2021
- 2021-02-24 CN CN202110208862.3A patent/CN113010281B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5933638A (en) * | 1996-04-04 | 1999-08-03 | Cencik; Peter | Method and apparatus for creating application computer programs using an objects evaluation matrix |
WO2007006344A1 (en) * | 2005-07-08 | 2007-01-18 | Universita' Degli Studi Di Firenze | Versatile ccd camera |
EP3065017A1 (en) * | 2015-03-06 | 2016-09-07 | Rockwell Automation Technologies, Inc. | Safety relay configuration editor |
CN107820605A (zh) * | 2017-03-27 | 2018-03-20 | 香港应用科技研究院有限公司 | 用于动态低延迟优化的***和方法 |
CN111860478A (zh) * | 2019-04-26 | 2020-10-30 | Awl株式会社 | 图像分析装置以及图像分析*** |
CN111539498A (zh) * | 2020-04-27 | 2020-08-14 | 吉林大学中日联谊医院 | 一种信息化病案管理***患者签名装置 |
CN112188090A (zh) * | 2020-09-22 | 2021-01-05 | 深圳大学 | 相机***多线程控制方法、装置、服务器和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113010281A (zh) | 2021-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11961286B2 (en) | Performing object detection in an image | |
CN107967205A (zh) | 一种内存分析方法、装置、***以及计算设备 | |
CN1520579A (zh) | 利用具有时间分配器的图形渲染引擎的装置、方法和*** | |
JPH01270177A (ja) | 細胞画像切出記憶処理装置および方法 | |
KR100380909B1 (ko) | 외형 검사 장치 및 외형 검사 방법 | |
CN112487034A (zh) | 双队列异步图像处理方法及装置 | |
KR20210119899A (ko) | 그래픽 프로세싱 | |
CN111242943A (zh) | 图像处理方法、装置、图像处理设备及存储介质 | |
CN110647981B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN113010281B (zh) | 多相机检测***的线程处理方法、装置、存储介质和终端 | |
CN114034972B (zh) | 基于图像数据的智能电缆故障确定方法和装置 | |
CN113238852B (zh) | 一种任务分配方法、装置、电子设备及存储介质 | |
CN113435312A (zh) | 审讯场景的监测方法、设备及存储介质 | |
CN111917974A (zh) | 一种基于fpga的视频处理***、方法、设备及介质 | |
CN109472735B (zh) | 实现织物疵点检测神经网络的加速器、方法和加速*** | |
CN112621767A (zh) | 一种人工智能示教器 | |
CN213659503U (zh) | 图像数据处理***、存储策略设备 | |
CN112712124B (zh) | 一种基于深度学习的多模块协同物体识别***及方法 | |
CN112234932B (zh) | 光伏清扫设备的控制方法、装置及存储介质 | |
CN117234541A (zh) | Gpu监控程序的部署方法、监控方法、装置及网络节点 | |
CN108089932B (zh) | 一种操作事件处理的方法、***及相机 | |
CN111602410B (zh) | 适合性判定装置、适合性判定方法和存储介质 | |
CN118072151A (zh) | 一种针对视频数据的低代码人工智能分析方法及*** | |
CN117011511A (zh) | 一种图像调整方法、装置、电子设备和计算机可读存储介质 | |
CN114722997A (zh) | 神经网络计算的加速方法、装置及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |