CN114490092A - 基于机器视觉算法的软件系统及构建方法 - Google Patents
基于机器视觉算法的软件系统及构建方法 Download PDFInfo
- Publication number
- CN114490092A CN114490092A CN202210355190.3A CN202210355190A CN114490092A CN 114490092 A CN114490092 A CN 114490092A CN 202210355190 A CN202210355190 A CN 202210355190A CN 114490092 A CN114490092 A CN 114490092A
- Authority
- CN
- China
- Prior art keywords
- detection
- image
- thread
- image object
- processing
- 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.)
- Pending
Links
Images
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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
-
- 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Image Processing (AREA)
Abstract
本发明公开了一种基于机器视觉算法的软件架构和构建方法,软件架构包括:图像对象构建与管理模块,用于基于实时采集的原始图像、原始图像预处理后的结果和基础检测参数信息构建图像对象;线程构建与管理模块,用于响应于程序启动操作,获取预存的配置文件,并基于所述配置文件建立处理线程;多个检测算法动态库,所述检测算法动态库预先加载于所述处理线程,以便按所述处理线程搭建检测算法动态库的处理顺序;依次获取所述目标检测项目的检测参数,并依次将基于所述检测参数和所述成员函数得到的检测结果写入所述图像对象;检测结果交互与管理模块,读取并向对应的预设终端发送所述图像对象内的检测结果。提高了视觉系统的计算能力和计算效率。
Description
技术领域
本申请实施例涉及软件系统设计技术领域,具体涉及一种基于机器视觉算法的软件系统及构建方法。
背景技术
在大型机器视觉系统的工作过程中,涉及到对高分辨率、高精度、大数据量的图像进行计算,且往往具有实时性要求。例如:机器视觉在线检测系统,分辨率通常为0.1mm/像素甚至更高,单张彩色图像数据量通常不低于500M。如此庞大的数据量通常需要在几百毫秒内完成计算并发送检测结果。并且,对于采集到的待处理图像,可能需要进行多个功能算法的同步实时,就更增加了数据处理量和数据算法的难度。
因此,提供一种基于机器视觉算法的软件系统及构建方法,以期针对机器视觉系统的软件系统进行改进设计,以便充分利用计算资源,同时合理分配算力,进而提高视觉系统的计算能力和计算效率,就成为本领域技术人员亟待解决的问题。
发明内容
为此,本申请实施例提供一种基于机器视觉算法的软件系统及构建方法,以期针对机器视觉系统的软件系统进行改进设计,以便充分利用计算资源,同时合理分配算力,进而提高视觉系统的计算能力和计算效率。
为了实现上述目的,本申请实施例提供如下技术方案:
根据本申请实施例的第一方面,提供了一种基于机器视觉算法的软件系统,所述软件系统包括:
图像对象构建与管理模块,用于基于实时采集的原始图像、原始图像预处理后的结果和基础检测参数信息构建图像对象;
线程构建与管理模块,用于响应于程序启动操作,获取预存的配置文件,并基于所述配置文件建立处理线程;
多个检测算法动态库,所述检测算法动态库预先加载于所述处理线程,以便按所述处理线程搭建检测算法动态库的处理顺序;
所述检测算法动态库内储存有其父类的成员函数,以及目标检测项目的检测参数;
各所述检测算法动态库用于响应于目标检测项目的初始化操作,根据所述线程确定的处理顺序,依次获取所述目标检测项目的检测参数,并依次将基于所述检测参数和所述成员函数得到的检测结果写入所述图像对象,以得到处理线程输出的图像对象;
检测结果交互与管理模块,用于获取所述处理线程输出的图像对象,读取并向对应的预设终端发送所述图像对象内的检测结果。
进一步地,所述处理线程具体为:
包括至少两个线程,并根据当前输入的图像对象帧号的奇偶性分配线程;或,
包括至少两个线程,将单帧图像对象中的图像数据进行拆分,并将拆分后的数据分配给不同的线程;或,
包括一个主线程和至少两个子线程;
所述处理线程的起始位置设置所述主线程,所述主线程为存在制约关系的检测项目中的一者所在的检测算法动态库充当;
所述处理线程的结尾位置设置所述主线程,所述主线程为存在制约关系的检测项目中的另一者所在的检测算法动态库充当。
根据本申请实施例的第二方面,提供了一种软件系统的构建方法,所述方法包括:
基于实时采集的原始图像、原始图像预处理后的结果和基础检测参数信息构建图像对象;
响应于程序启动操作,获取预存的配置文件,并基于所述配置文件建立处理线程;
响应于目标检测项目的初始化操作,根据所述线程确定的处理顺序,依次获取所述目标检测项目的检测参数,并依次将基于所述检测参数和所述成员函数得到的检测结果写入所述图像对象,以得到处理线程输出的图像对象;
获取处理线程输出的图像对象,读取并向预设终端发送所述图像对象内的检测结果。
进一步地,响应于程序启动操作,获取预存的配置文件,并基于所述配置文件建立处理线程,具体包括:
若单帧图像的处理时间大于图像采集周期,则创建两个以上线程,并根据当前图像帧号的奇偶性分配线程。
进一步地,响应于程序启动操作,获取预存的配置文件,并基于所述配置文件建立处理线程,具体包括:
创建两个以上线程,将单帧图像中的图像数据进行拆分,并将拆分后的数据分配给不同的线程进行计算。
进一步地,响应于程序启动操作,获取预存的配置文件,并基于所述配置文件建立处理线程,具体包括:
创建一个主线程和至少两个子线程;
所述处理线程的起始位置设置所述主线程,所述主线程为存在制约关系的检测项目中的一者所在的检测算法动态库充当。
进一步地,所述处理线程的结尾位置设置所述主线程,所述主线程为存在制约关系的检测项目中的另一者所在的检测算法动态库充当。
进一步地,原始图像预处理后的结果包括灰度图像、各颜色分量图像、其它颜色空间分量图像、各种滤波算法卷积后的图像和降维或插值后的图像中的至少一者。
根据本申请实施例的第三方面,提供了一种电子设备,所述电子设备包括:数据采集装置、处理器和存储器;所述数据采集装置用于采集数据;所述存储器用于存储一个或多个程序指令;所述处理器,用于执行一个或多个程序指令,用以执行第一方面任一项所述的方法。
根据本申请实施例的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中包含一个或多个程序指令,所述一个或多个程序指令用于执行如第一方面任一项所述的方法。
本申请实施例提供了一种基于机器视觉算法的软件系统包括图像对象构建与管理模块、线程构建与管理模块、多个检测算法动态库和检测结果交互与管理模块;其中,图像对象构建与管理模块用于基于实时采集的原始图像、原始图像预处理后的结果和基础检测参数信息构建图像对象;线程构建与管理模块用于响应于程序启动操作,获取预存的配置文件,并基于所述配置文件建立处理线程;所述检测算法动态库预先加载于所述处理线程,以便按所述处理线程搭建检测算法动态库的处理顺序,所述检测算法动态库内储存有其父类的成员函数,以及目标检测项目的检测参数;各所述检测算法动态库用于响应于目标检测项目的初始化操作,根据所述线程确定的处理顺序,依次获取所述目标检测项目的检测参数,并依次将基于所述检测参数和所述成员函数得到的检测结果写入所述图像对象,以得到处理线程输出的图像对象;检测结果交互与管理模块,用于获取所述处理线程输出的图像对象,读取并向对应的预设终端发送所述图像对象内的检测结果。这样,该针对机器视觉系统的软件系统进行了改进设计,以便充分利用计算资源,同时合理分配算力,进而提高了视觉系统的计算能力和计算效率。
附图说明
为了更清楚地说明本发明的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引伸获得其它的实施附图。
本说明书所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容能涵盖的范围内。
图1为本发明所提供的基于机器视觉算法的软件系统一种具体实施方式的结构框图;
图2为图1所示软件系统的使用流程图;
图3为图1所示软件系统的构建方法一种具体实施方式的流程图;
图4为按照图像帧号奇偶性进行并行处理流程图;
图5为图像采集周期与线程计算周期关系示意图;
图6为图像拆分示意图;
图7为切分图像数据进行并行处理流程图;
图8为根据检测项目进行并行处理流程图。
具体实施方式
以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明所提供的基于机器视觉算法的软件系统一种具体实施方式的结构框图。
在一种具体实施方式中,本发明所提供的基于机器视觉算法的软件系统包括:
图像对象构建与管理模块100,用于基于实时采集的原始图像、原始图像预处理后的结果和基础检测参数信息构建图像对象。
具体地,机器视觉系统在工作时,会不断采集实时图像。每完成一帧实时图像的采集,通常采图回调函数会被触发。在回调函数中需要构建一个自定义类的对象,该构建的自定义对象即为图像对象,此图像对象中应至少被写入实时采集的原始图像、原始图像预处理后的结果、基础检测参数信息等。
图像对象应具备不同类型数据写入和读取的成员函数。在后续的算法流程中,此图像对象将会被传递到各检测算法动态库中,用来传递待检图像等信息,并被各检测算法动态库写入各自的检测结果数据。同时,每个检测算法动态库完成自身的检测计算,都会把检测结果写入图像对象。也就是说,图像对象作为信息传递的媒介,根据设定的线程所要求的顺序,依次传递给检测算法动态库,完成检测结果写入后,再传递给下一个检测算法动态库。另外,图像回调函数中通常具有一个帧号累加器,每次触发回调函数帧号自动加1,以保证每帧图像的帧号各不相同,这个帧号也会被同步写入到图像对象中。
线程构建与管理模块200,用于响应于程序启动操作,获取预存的配置文件,并基于所述配置文件建立处理线程。
其中,所述处理线程具体为:
包括至少两个线程,并根据当前输入的图像对象帧号的奇偶性分配线程;或,
包括至少两个线程,将单帧图像对象中的图像数据进行拆分,并将拆分后的数据分配给不同的线程;或,
包括一个主线程和至少两个子线程;
所述处理线程的起始位置设置所述主线程,所述主线程为存在制约关系的检测项目中的一者所在的检测算法动态库充当;
所述处理线程的结尾位置设置所述主线程,所述主线程为存在制约关系的检测项目中的另一者所在的检测算法动态库充当。
多个检测算法动态库300,所述检测算法动态库预先加载于所述处理线程,以便按所述处理线程搭建检测算法动态库的处理顺序;所述检测算法动态库内储存有其父类的成员函数,以及目标检测项目的检测参数;各所述检测算法动态库用于响应于目标检测项目的初始化操作,根据所述线程确定的处理顺序,依次获取所述目标检测项目的检测参数,并依次将基于所述检测参数和所述成员函数得到的检测结果写入所述图像对象,以得到处理线程输出的图像对象;
检测结果交互与管理模块400,用于获取所述处理线程输出的图像对象,读取并向对应的预设终端发送所述图像对象内的检测结果。具体地,当所有的检测算法动态库完成对图像对象的计算,最后将图像对象传递到检测结果交互与管理模块,由该模块从图像对象中读取所有的检测结果并发送到指定位置、终端、服务器或者数据库。至此,一帧图像检测处理完成,图像对象生命期终止,完成析构。
在该具体实施方式中,如图2所示,该软件系统在获取图像采集信息后,判断是否完成一帧图像的采集,若是,则在图像对象构建与管理模块100中构建图像对象,并在图像对象中写入实时采集的原始图像、写入图像预处理的结果,写入基础检测参数信息。将写入了信息的图像对象传输到各检测算法动态库中,以通过各检测算法动态库分别将检测结果写入图像对象,各检测算法动态库以线程构建与管理模块200确定的线程设置处理顺序。所有检测算法动态库按线程处理完,将所有的检测结果写入图像对象后,将图像对象传输给检测结果交互与管理模块400,读取并向对应的预设终端发送所述图像对象内的检测结果。
在上述具体实施方式中,本发明提供的基于机器视觉算法的软件系统包括图像对象构建与管理模块、线程构建与管理模块、多个检测算法动态库和检测结果交互与管理模块;其中,图像对象构建与管理模块用于基于实时采集的原始图像、原始图像预处理后的结果和基础检测参数信息构建图像对象;线程构建与管理模块用于响应于程序启动操作,获取预存的配置文件,并基于所述配置文件建立处理线程;所述检测算法动态库预先加载于所述处理线程,以便按所述处理线程搭建检测算法动态库的处理顺序,所述检测算法动态库内储存有其父类的成员函数,以及目标检测项目的检测参数;各所述检测算法动态库用于响应于目标检测项目的初始化操作,根据所述线程确定的处理顺序,依次获取所述目标检测项目的检测参数,并依次将基于所述检测参数和所述成员函数得到的检测结果写入所述图像对象,以得到处理线程输出的图像对象;检测结果交互与管理模块,用于获取所述处理线程输出的图像对象,读取并向对应的预设终端发送所述图像对象内的检测结果。这样,该针对机器视觉系统的软件系统进行了改进设计,以便充分利用计算资源,同时合理分配算力,进而提高了视觉系统的计算能力和计算效率。
除了上述软件系统,本发明还提供了一种上述软件系统的构建方法,如图3所示,在一种具体实施方式中,所述方法包括以下步骤:
S310:基于实时采集的原始图像、原始图像预处理后的结果和基础检测参数信息构建图像对象。
具体地,机器视觉系统在工作时,会不断采集实时图像。每完成一帧实时图像的采集,通常采图回调函数会被触发。在回调函数中需要构建一个自定义类的对象即为图像对象,此图像对象中应至少被写入实时采集的原始图像、原始图像预处理后的结果、基础检测参数信息等。
图像对象应具备不同类型数据写入和读取的成员函数。此图像对象将会被传递到各检测算法动态库中,用来传递待检图像等信息,并被各检测算法动态库写入各自的检测结果数据。每个检测算法动态库完成自身的检测计算,都会把检测结果写入图像对象。图像回调函数中通常具有一个帧号累加器,每次触发回调函数帧号自动加1,以保证每帧图像的帧号各不相同。这个帧号会被写入到图像对象中。
其中,对于普通机器视觉系统,实时采集的原始图像通常为RGB格式的彩色图像,即待检图像。对原始图像进行预处理,这些预处理的结果可能会被后续一个或者多个检测算法动态库所使用到。这些预处理的结果通常包含但不限于:灰度图像、各颜色分量图像、其它颜色空间分量图像、各种滤波算法卷积后的图像、降维或插值后的图像等。这些基础检测参数信息可能会被后续一个或者多个检测算法动态库所使用到。所以当程序启动时,就会从模板数据库(或其它数据记录文件)中读取这些信息,并且将其写入每次构建好的图像对象中。
S320:响应于程序启动操作,获取预存的配置文件,并基于所述配置文件建立处理线程。
根据不同的实际应用场景,可以采用三类并行处理方法。当程序启动时,线程构建与管理模块读取配置文件(或者其它数据记录文件),并按照配置文件的要求建立相关处理线程,然后在相应处理线程中按照要求顺序加载检测算法动态库。
第一类并行处理方法为,若单帧图像的处理时间大于图像采集周期,则创建两个以上线程,并根据当前图像帧号的奇偶性分配线程。
在具体使用场景中,如图4和图5所示,当单帧图像的处理时间大于图像采集周期时,例如,单帧图像的处理时间为500ms,而图像的采集周期为300ms(即每300ms完成一帧图像的采集)。如果不采用并行处理方法,就会导致系统计算的丢帧。
因此,为了保证系统计算不发生丢帧,充分利用有限的计算资源,该实施例中,建立两个或者多个线程,再根据图像帧号的奇偶性进行不同线程的分配,如图5所示,每个线程所加载的检测算法动态库完全一致。对于单帧图像处理时间的降低,此类并行处理方法并无效果。
第二类并行处理方法为,创建两个以上线程,将单帧图像中的图像数据进行拆分,并将拆分后的数据分配给不同的线程进行计算。
在具体使用场景中,为了降低单帧图像的处理时间,充分利用有限的计算资源,可以建立两个或者多个线程,将图像数据进行拆分并分配给不同线程进行计算,数据拆分的示意图如图6所示。如图7所示,每个线程所加载的检测算法动态库完全一致。此类并行处理方法可以最大限度的压缩单帧图像处理时间。但通常来讲,图像数据拆分比较复杂,操作起来难以实现。有时图像数据拆分会影响最终的检测结果,此类情况不可采用第二类并行处理方法。
第三类并行处理方法为,创建一个主线程和至少两个子线程;所述处理线程的起始位置设置所述主线程,所述主线程为存在制约关系的检测项目中的一者所在的检测算法动态库充当;所述处理线程的结尾位置设置所述主线程,所述主线程为存在制约关系的检测项目中的另一者所在的检测算法动态库充当。
在具体使用场景中,为了降低单帧图像的处理时间,同时不会因为图像数据拆分影响到最终的检测结果,此时,可以采用第三类并行处理方法,如图8所示。如果检测项目B的检测计算需要检测项目A的检测结果,我们称检测项目A对检测项目B有制约关系。我们将对后续检测有制约关系的检测项目动态库配置在主线程的开始(如果没有可以不配置);将相互之间没有制约关系的检测项目动态库配置于两个或多个线程之中;如果所有检测对某个检测项目都存在制约关系,则该检测项目动态库可配置在主线程的结尾(如果没有可以不配置)。
S330:响应于目标检测项目的初始化操作,根据所述线程确定的处理顺序,依次获取所述目标检测项目的检测参数,并依次将基于所述检测参数和所述成员函数得到的检测结果写入所述图像对象,以得到处理线程输出的图像对象。
具体地,每个检测项目对应一个检测算法动态库。针对印刷设备视觉检测系统,可以包含诸如:颜色检测、缺陷检测、折角检测、走版检测等检测项目;针对车载视觉ADAS系统,可以包含诸如:车道线检测、障碍物检测、红绿灯检测、盲区监测等检测项目。
当程序启动时每个检测算法动态库初始化过程中,从模板数据库(或其它数据记录文件)中读取该检测项目的相关检测参数。当检测算法动态库计算完成,其检测结果都会被写入图像对象。
所有检测算法动态库都是继承于同一个父类的不同子类。在父类中应包含资源初始化、资源析构、模板读取、检测计算等功能的成员函数。对于同一个成员函数,每个子类有各自不同的实现方式。
S340:获取处理线程输出的图像对象,读取并向预设终端发送所述图像对象内的检测结果。
具体地,当所有的检测算法动态库完成对图像对象的计算,最后将图像对象传递到检测结果交互与管理模块,由该模块从图像对象中读取所有的检测结果并发送到指定位置、终端、服务器或者数据库。此时,一帧图像检测处理完成,图像对象生命期终止,完成析构。
在上述具体实施方式中,本发明所提供的软件系统的构建方法基于实时采集的原始图像、原始图像预处理后的结果和基础检测参数信息构建图像对象;响应于程序启动操作,获取预存的配置文件,并基于所述配置文件建立处理线程;响应于目标检测项目的初始化操作,根据所述线程确定的处理顺序,依次获取所述目标检测项目的检测参数,并依次将基于所述检测参数和所述成员函数得到的检测结果写入所述图像对象,以得到处理线程输出的图像对象;获取处理线程输出的图像对象,读取并向预设终端发送所述图像对象内的检测结果。这样,该针对机器视觉系统的软件系统进行了改进设计,以便充分利用计算资源,同时合理分配算力,进而提高了视觉系统的计算能力和计算效率。
基于相同的技术构思,本申请实施例还提供了一种电子设备,所述电子设备包括:数据采集装置、处理器和存储器;所述数据采集装置用于采集数据;所述存储器用于存储一个或多个程序指令;所述处理器,用于执行一个或多个程序指令,用以执行所述的方法。
基于相同的技术构思,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中包含一个或多个程序指令,所述一个或多个程序指令用于执行所述的方法。
本说明书中上述方法的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。相关之处参见方法实施例的部分说明即可。
需要说明的是,尽管在附图中以特定顺序描述了本发明方法的操作,但这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然本申请提供了如实施例或流程图的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。
上述实施例阐明的单元、装置或模块等,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
以上所述的具体实施例,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施例而已,并不用于限定本申请的保护范围,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种基于机器视觉算法的软件系统,其特征在于,所述软件系统包括:
图像对象构建与管理模块,用于基于实时采集的原始图像、原始图像预处理后的结果和基础检测参数信息构建图像对象;
线程构建与管理模块,用于响应于程序启动操作,获取预存的配置文件,并基于所述配置文件建立处理线程;
多个检测算法动态库,所述检测算法动态库预先加载于所述处理线程,以便按所述处理线程搭建检测算法动态库的处理顺序;
所述检测算法动态库内储存有其父类的成员函数,以及目标检测项目的检测参数;
各所述检测算法动态库用于响应于目标检测项目的初始化操作,根据所述处理线程确定的处理顺序,依次获取所述目标检测项目的检测参数,并依次将基于所述检测参数和所述成员函数得到的检测结果写入所述图像对象,以得到处理线程输出的图像对象;
检测结果交互与管理模块,用于获取所述处理线程输出的图像对象,读取并向对应的预设终端发送所述图像对象内的检测结果。
2.如权利要求1所述的基于机器视觉算法的软件系统,其特征在于,所述处理线程具体为:
包括至少两个线程,并根据当前输入的图像对象帧号的奇偶性分配线程;或,
包括至少两个线程,将单帧图像对象中的图像数据进行拆分,并将拆分后的数据分配给不同的线程;或,
包括至少一个主线程和至少两个子线程;
所述处理线程的起始位置设置所述主线程,所述主线程为存在制约关系的检测项目中的一者所在的检测算法动态库充当;
所述处理线程的结尾位置设置另一所述主线程,另一所述主线程为存在制约关系的检测项目中的另一者所在的检测算法动态库充当。
3.一种软件系统的构建方法,其特征在于,所述方法包括:
基于实时采集的原始图像、原始图像预处理后的结果和基础检测参数信息构建图像对象;
响应于程序启动操作,获取预存的配置文件,并基于所述配置文件建立处理线程;
响应于目标检测项目的初始化操作,根据所述处理线程确定的处理顺序,依次获取所述目标检测项目的检测参数,并依次将基于所述检测参数和成员函数得到的检测结果写入所述图像对象,以得到处理线程输出的图像对象;
获取处理线程输出的图像对象,读取并向预设终端发送所述图像对象内的检测结果。
4.如权利要求3所述的软件系统的构建方法,其特征在于,响应于程序启动操作,获取预存的配置文件,并基于所述配置文件建立处理线程,具体包括:
若单帧图像的处理时间大于图像采集周期,则创建两个以上线程,并根据当前图像帧号的奇偶性分配线程。
5.如权利要求3所述的软件系统的构建方法,其特征在于,响应于程序启动操作,获取预存的配置文件,并基于所述配置文件建立处理线程,具体包括:
创建两个以上线程,将单帧图像中的图像数据进行拆分,并将拆分后的数据分配给不同的线程进行计算。
6.如权利要求3所述的软件系统的构建方法,其特征在于,响应于程序启动操作,获取预存的配置文件,并基于所述配置文件建立处理线程,具体包括:
创建一个主线程和至少两个子线程;
所述处理线程的起始位置设置所述主线程,所述主线程为存在制约关系的检测项目中的一者所在的检测算法动态库充当。
7.如权利要求6所述的软件系统的构建方法,其特征在于,所述处理线程的结尾位置设置所述主线程,所述主线程为存在制约关系的检测项目中的另一者所在的检测算法动态库充当。
8.如权利要求3所述的软件系统的构建方法,其特征在于,原始图像预处理后的结果包括灰度图像、各颜色分量图像、其它颜色空间分量图像、各种滤波算法卷积后的图像和降维或插值后的图像中的至少一者。
9.一种电子设备,其特征在于,所述设备包括:数据采集装置、处理器和存储器;
所述数据采集装置用于采集数据;所述存储器用于存储一个或多个程序指令;所述处理器,用于执行一个或多个程序指令,用以执行如权利要求3-8任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中包含一个或多个程序指令,所述一个或多个程序指令用于执行如权利要求3-8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210355190.3A CN114490092A (zh) | 2022-04-06 | 2022-04-06 | 基于机器视觉算法的软件系统及构建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210355190.3A CN114490092A (zh) | 2022-04-06 | 2022-04-06 | 基于机器视觉算法的软件系统及构建方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114490092A true CN114490092A (zh) | 2022-05-13 |
Family
ID=81488347
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210355190.3A Pending CN114490092A (zh) | 2022-04-06 | 2022-04-06 | 基于机器视觉算法的软件系统及构建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114490092A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103218174A (zh) * | 2013-03-29 | 2013-07-24 | 航天恒星科技有限公司 | 一种用于遥感图像的io双缓存交互多核处理方法 |
CN110221924A (zh) * | 2019-04-29 | 2019-09-10 | 北京云迹科技有限公司 | 数据处理的方法及装置 |
CN111190961A (zh) * | 2019-12-18 | 2020-05-22 | 航天信息股份有限公司 | 一种动态优化的多线程数据同步方法及系统 |
CN111274049A (zh) * | 2020-01-17 | 2020-06-12 | 成都鼎安华智慧物联网股份有限公司 | 一种基于异构并行加速的高效多路视频分析方法 |
CN112487034A (zh) * | 2020-12-01 | 2021-03-12 | 上海思客琦智能装备科技股份有限公司 | 双队列异步图像处理方法及装置 |
-
2022
- 2022-04-06 CN CN202210355190.3A patent/CN114490092A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103218174A (zh) * | 2013-03-29 | 2013-07-24 | 航天恒星科技有限公司 | 一种用于遥感图像的io双缓存交互多核处理方法 |
CN110221924A (zh) * | 2019-04-29 | 2019-09-10 | 北京云迹科技有限公司 | 数据处理的方法及装置 |
CN111190961A (zh) * | 2019-12-18 | 2020-05-22 | 航天信息股份有限公司 | 一种动态优化的多线程数据同步方法及系统 |
CN111274049A (zh) * | 2020-01-17 | 2020-06-12 | 成都鼎安华智慧物联网股份有限公司 | 一种基于异构并行加速的高效多路视频分析方法 |
CN112487034A (zh) * | 2020-12-01 | 2021-03-12 | 上海思客琦智能装备科技股份有限公司 | 双队列异步图像处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111049878B (zh) | 微服务调用链具象化的方法、装置、电子装置及存储介质 | |
CN109002295A (zh) | 一种静态代码扫描方法、系统、服务器及存储介质 | |
CN111813686B (zh) | 一种游戏测试方法、装置、测试终端及存储介质 | |
CN111459501A (zh) | 基于SVG的Web组态画面存储与展示系统和方法及介质 | |
JP2750514B2 (ja) | 部分的に順序付けられた情報の表示を構築する方法 | |
CN115392501A (zh) | 数据采集方法、装置、电子设备及存储介质 | |
CN106020752A (zh) | 自适应显示方法及系统 | |
CN108023905B (zh) | 物联网应用系统及方法 | |
CN115237295A (zh) | 一种可视化拖拽生成流程图的方法、电子设备及介质 | |
WO2017095362A1 (en) | Generating application flow entities | |
CN113127195A (zh) | 人工智能分析垂直解决方案集成器 | |
CN114490092A (zh) | 基于机器视觉算法的软件系统及构建方法 | |
CN112015378A (zh) | 骨架屏页面生成方法、装置、计算机设备和存储介质 | |
CN112486807A (zh) | 一种压力测试方法、装置、电子设备和可读存储介质 | |
CN115562707A (zh) | 一种车载终端模型部署方法、装置、设备及介质 | |
CN113626022A (zh) | 物模型创建方法、装置、存储介质及电子设备 | |
CN112667463A (zh) | 一种应用系统基线状态监控方法及装置 | |
CN113365101A (zh) | 对视频进行多任务处理的方法及相关设备 | |
CN112330304A (zh) | 一种合同审批方法和装置 | |
CN110515834A (zh) | 接口测试方法、装置、移动终端及存储介质 | |
Chouiten et al. | Distributed Augmented Reality systems: how much performance is enough? | |
CN109634653A (zh) | 一种基于组件化架构的资源配置方法及装置 | |
CN111724105B (zh) | 数据处理方法、装置及电子设备 | |
CN110942017B (zh) | 基于自动化的多算法指标对比方法及系统 | |
CN115186140A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20220513 |