CN116662039A - 基于共享内存的工业信息并行检测方法、装置及介质 - Google Patents
基于共享内存的工业信息并行检测方法、装置及介质 Download PDFInfo
- Publication number
- CN116662039A CN116662039A CN202310913487.1A CN202310913487A CN116662039A CN 116662039 A CN116662039 A CN 116662039A CN 202310913487 A CN202310913487 A CN 202310913487A CN 116662039 A CN116662039 A CN 116662039A
- Authority
- CN
- China
- Prior art keywords
- shared memory
- detection
- detected
- information
- industrial information
- 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.)
- Granted
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 282
- 230000015654 memory Effects 0.000 title claims abstract description 267
- 238000000034 method Methods 0.000 claims abstract description 60
- 238000012545 processing Methods 0.000 claims abstract description 37
- 230000008569 process Effects 0.000 claims abstract description 23
- 230000006870 function Effects 0.000 claims description 61
- 238000003860 storage Methods 0.000 claims description 30
- 238000004590 computer program Methods 0.000 claims description 16
- 230000006386 memory function Effects 0.000 claims description 13
- 238000007689 inspection Methods 0.000 claims 2
- 230000004888 barrier function Effects 0.000 claims 1
- 238000004891 communication Methods 0.000 abstract description 17
- 230000005540 biological transmission Effects 0.000 abstract description 8
- 238000011161 development Methods 0.000 abstract description 5
- 238000007726 management method Methods 0.000 description 39
- 239000000872 buffer Substances 0.000 description 11
- 238000010586 diagram Methods 0.000 description 7
- 230000003993 interaction Effects 0.000 description 7
- 238000012546 transfer Methods 0.000 description 4
- 239000011800 void material Substances 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000000737 periodic effect Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000009414 blockwork Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 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/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- 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/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Multi Processors (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于共享内存的工业信息并行检测方法、装置及介质。包括:基于并行检测模型配置文件在后端创建指定数量的检测模型;通过检测模型基于共享内存配置文件加载共享内存;当前端接收到待检测工业信息时,将待检测工业信息保存到共享内存中;后端在确定各检测模型准备就绪时,通过各检测模型从共享内存中同步读取待检测工业信息,并对待检测工业信息进行并行检测处理所生成的后端消息进行汇总后保存到共享内存中。在进程间进行通信时仅需根据配置文件就可配置检测环境,提升了开发效率,通过模型配置文件在后端创建的多个检测模型从的共享内存中读取同一份待检测工业信息后并行进行处理,减少了数据传输的开销。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种基于共享内存的工业信息并行检测方法、装置及介质。
背景技术
工业目标检测中通常采用的是远程传输协议通过网络将图像数据发送到后端的数据处理服务器以进行处理。
但是在大规模的工业目标检测场景中,针对图像数据分发方案中所采用的进程间通信方案,在实施进程间通信的编程过程中,由于需要处理多种复杂的同步和并发问题,其实施难度很高。同时,由于缺乏统一的协议框架,使得各个开发者的工程实践能力不一,这可能导致开发出的进程间通信代码存在各种bug,以及严重的数据同步和性能问题。这些问题在生产环境中可能带来严重的后果,威胁到生产线的稳定运行。
发明内容
本发明提供了一种基于共享内存的工业信息并行检测方法、装置及介质,可以基于共享内存并行进行高效准确的工业信息检测。
根据本发明的一方面,提供了一种基于共享内存的工业信息并行检测方法,包括:
基于并行检测模型配置文件在后端创建指定数量的检测模型;
通过所述检测模型基于共享内存配置文件加载共享内存,以使前端和后端的各检测模型具有读写所述共享内存的权限;
当前端接收到待检测工业信息时,将所述待检测工业信息保存到所述共享内存中;
所述后端在确定各检测模型准备就绪时,通过各检测模型从所述共享内存中同步读取所述待检测工业信息,并对所述待检测工业信息进行并行检测处理所生成的后端消息进行汇总后保存到所述共享内存中;
所述前端对所述共享内存中汇总的后端消息进行读取,以获取工业信息检测结果。
根据本发明的另一方面,提供了一种基于共享内存的工业信息并行检测装置,包括:
检测模型创建模块,用于基于并行检测模型配置文件在后端创建指定数量的检测模型;
共享内存加载模块,用于通过所述检测模型基于共享内存配置文件加载共享内存,以使前端和后端的各检测模型具有读写所述共享内存的权限;
待检测工业信息保存模块,用于当前端接收到待检测工业信息时,将所述待检测工业信息保存到所述共享内存中;
后端消息保存模块,用于所述后端在确定各检测模型准备就绪时,通过各检测模型从所述共享内存中同步读取所述待检测工业信息,并对所述待检测工业信息进行并行检测处理所生成的后端消息进行汇总后保存到所述共享内存中;
工业信息检测结果获取模块,用于所述前端对所述共享内存中汇总的后端消息进行读取,以获取工业信息检测结果。
根据本发明的另一方面,提供了一种计算机设备,所述计算机设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的一种基于共享内存的工业信息并行检测方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的一种基于共享内存的工业信息并行检测方法。
本发明实施例的技术方案,在进程间进行通信时无需进行代码开发,仅需根据配置文件就可配置检测环境,提升了开发效率,通过模型配置文件在后端创建多个检测模型,可以从所创建的共享内存中读取同一份待检测工业信息后并行进行处理,减少了数据传输的开销,从而保证了生产线的稳定运行。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例一提供的一种基于共享内存的工业信息并行检测方法的流程图;
图2是根据本发明实施例一提供的应用框架示意图;
图3是根据本发明实施例二提供的一种基于共享内存的工业信息并行检测方法的流程图;
图4是根据本发明实施例三提供的一种基于共享内存的工业信息并行检测装置的结构示意图;
图5是实现本发明实施例四提供的一种电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
图1为本发明实施例一提供了一种基于共享内存的工业信息并行检测方法的流程图,本实施例可适用于对工业信息并行进行高效精准检测的情况,该方法可以由一种基于共享内存的工业信息并行检测装置来执行,该工业信息并行检测装置可以采用硬件和/或软件的形式实现,该基于共享内存的工业信息并行检测装置可集成配置于电子设备中。如图1所示,该方法包括:
步骤S101,基于并行检测模型配置文件在后端创建指定数量的检测模型。
可选的,基于并行检测模型配置文件在后端创建指定数量的检测模型之前,还包括:接收用户预先制定的共享内存配置文件,其中,共享内存配置文件中包括共享内存创建参数;将共享内存配置文件按照指定路径在本地进行保存,并创建管理共享内存的内存管理组件,其中,内存管理组件中包括加载共享内存函数接口、前端放入待检测工业信息函数接口、后端获取待检测工业信息函数接口、后端返回后端消息函数接口以及前端获取后端消息函数接口;接收用户预先制定的并行检测模型配置文件,其中,并行检测模型配置文件中包括模型创建参数以及共享内存配置文件的保存路径。
具体的说,本实施方式中接收待检测工业信息的前端以及对待检测工业信息进行并行处理的后端都位于同一台终端设备上,为了提高前端和后端之间数据传输的速度,本申请在终端设备上会根据需求分配出指定数量和大小的共享内存,前端和后端可以基于共享内存快速的进行信息交互。另外,为了保证后端能够对待检测工业信息采用不同的进程分别进行同步并行处理,并避免进程间的数据不一致,竞态条件等问题,也会在后端创建指定数量的检测模型。而在终端设备上创建检测模型以及加载共享内存之前,终端设备会接收用户预先指定的共享内存配置文件以及并行检测模型配置文件,而在共享内存配置文件中包括共享内存创建参数,如下代码为共享内存配置文件的示例:
"shm1":{
"max_image_width": 10000,
"max_image_height": 10000,
"max_image_channel": 3,
"buff_nums": 1,
"comm_bytes_length": 104857600
}
其中,shm1为共享内存名称,max_image_width为该段共享内存中可能出现的最大图片宽度,max_image_height为该段共享内存中可能出现的最大图片高度,max_image_channel为该段共享内存中可能出现的图片最大通道数;
buff_nums为该段共享内存中需要几个缓存区,comm_bytes_length为单个缓存区中消息传递区预留的大小,单位为字节。
需要说明的是,终端设备在获取到共享内存配置文件后,会将共享内存配置文件按照指定路径在本地进行保存,并创建与共享内存所关联的内存管理组件,而在内存管理组件中包括加载共享内存函数接口、前端放入待检测工业信息函数接口、后端获取待检测工业信息函数接口、后端返回后端消息函数接口以及前端获取后端消息函数接口。其中,加载共享内存函数接口为loadConfigFromFile,代码定义形式为:void loadConfigFromFile
(const char *fileName),具体作用是从共享内存配置文件中获取共享内存信息到进程中,如共享内存名称、共享内存预分配大小以及共享内存指针信息等,而fileName则指的是共享内存在本地所保存的指定路径。其中,前端放入待检测工业信息函数接口为putImgAndMsgByMat,代码定义形式为:returnFront
Put putImgAndMsgByMat(const unsigned char *pData, unsiged long longwidth, unsiged long long height, unsiged long long channel, const char*shmName, int buffId = 0, const char *tag=NULL, void*message = NULL, intmessageLength = 0, int messageType = messageType::string),具体作用是以一维图片内存解码数据的方式向缓存区放入图片数据和消息等。其中,后端获取待检测工业信息函数接口为getImgAndMsg,代码定义形式为:returnBackGet getImgAndMsg
(const char *shmName, int buffId = 0),具体作用是从缓存区中获取前端发送的检测工业信息。其中,后端返回后端消息函数接口为putMsg,代码定义形式为:voidputMsg(const char *shmName, int buffId, void *message = NULL, intmessageLength = 0, int messageType = messageType::string),具体作用是将后端消息放入到指定的缓存区中,后续由前端接收。其中,前端获取后端消息函数接口为getMsg,代码定义形式为:returnFrontGet getMsg(const char *shm
Name, int buffId = 0),具体作用是从缓存区中获取后端处理完图片后返回的消息。当然,本实施方式中仅是对内存管理组件中所包含的函数接口进行举例说明,而并不对内存管理组件中函数接口的具体类型进行限定。
另外,本实施方式中还会获取并行检测模型配置文件,如下代码为并行检测模型配置文件的示例:
"shm_config_path": "configs/shm_config.json",
"models": {
{
"model_name": "model1_multi",
"model_type": "FasterRCNNModel",
"share_name": "shm1",
"buff_id": 1,
"process_id": 1,
"n_processes ": 2,
"device_id": 0,
"model_path": "./models/faster_rcnn_checkpoint.pb"
},
{
"model_name": "model2_multi",
"model_type": "FasterRCNNModel",
"share_name": "shm1",
"buff_id": 1,
"process_id": 2,
"n_processes": 2,
"device_id": 1,
"model_path": "./models/faster_rcnn_checkpoint.pb"
}
}
其中,在上述的并行检测模型配置文件中包括模型创建参数以及共享内存配置文件的保存路径,shm_config_path表示共享内存配置文件的保存路径,models则是一个包含多个模型配置信息的数组,包含如下模型创建参数:model_name为模型的名称,model_type为模型的类型,用于指定使用的python模型接口类,share_name为该模型需要使用哪一个共享内存,buff_id为该模型需要使用指定共享内存中的哪一个缓存区,process_id为进程ID,表明这是目标检测模型进程组中的第几个进程,n_processes为进程数,表明该目标检测模型进程组的并行总数,device_id为设备ID,指定模型运行的GPU设备,model_path为模型文件的路径,指定需要加载的模型文件位置,便于后续将该并行检测模型配置文件在所指定的位置进行加载。
可选的,基于并行检测模型配置文件在后端创建指定数量的检测模型,包括:基于并行检测模型配置文件中的模型创建参数在后端创建指定数量的检测模型,以及与检测模型所关联的消息队列和同步原语栅栏;为各检测模型分别分配指定类型的GPU资源,以使检测模型基于GPU资源启动运行。相对于传统的多GPU并行运行模型需要对数据进行复制,然后将复制的数据分发给各个GPU,这种方式会增加大量数据传输的开销,尤其是对于大规模数据或高精度模型,其效率将大打折扣。然而,本发明利用共享内存协议,使得所有GPU直接读取同一份数据,从而显著减少了数据传输的开销,提高了并行运行的效率。
具体的说,在获取到用户预先定义的共享内存配置文件和并行检测模型配置文件之后,会基于并行检测模型配置文件中的模型创建参数在后端创建指定数量的检测模型,如根据上述示例的并行检测模型会创建名称分别为model1_multi和model2_multi的两个检测模型,并且还会根据每个模型所指定的GPU设备为每个检测模型分别分配指定类型的GPU资源,从而保证所创建的检测模型能够正常启动运行。并且具体是根据n_processes创建与检测模型所关联的同步原语栅栏,即后端只有在确定2个检测模型都准备就绪的情况下,才会执行下一操作,从而保证后端各检测模型的并行执行。本实施方式中在创建各检测模型的同时,还会创建与检测模型所对应的消息队列,并且各检测模型共用同一消息队列。
步骤S102,通过检测模型基于共享内存配置文件加载共享内存,以使前端和后端的各检测模型具有读写共享内存的权限。
可选的,通过检测模型基于共享内存配置文件加载共享内存,包括:
通过检测模型调用内存管理组件中的加载共享内存函数接口;通过加载共享内存函数接口从指定路径中读取共享内存配置文件;根据共享内存配置文件中的共享内存创建参数在本地加载指定数量的共享内存。
其中,本实施方式中后端所创建的检测模型会基于上述的共享内存配置文件进行共享内存的加载,检测模型在加载共享内存时具体是通过调用内存管理组件中的加载共享内存函数接口loadConfigFromFile从共享内存配置文件的指定路径中读取共享内存配置文件,并根据共享内存配置文件中的共享内存创建参数在本地加载指定数量和大小的共享内存。例如,针对上述所提供的共享内存配置文件,会创建一个名称为shm1,缓存区数量为1,共享内存中可能出现的最大图片宽度为10000,共享内存中可能出现的最大图片高度为10000,共享内存中可能出现的图片最大通道数为3,每个缓存区中的被动消息传递区的预留大小为104857600字节。并且在缓存区中还可以包括块头信息Block Header、图片存放区Image Buff以及被动消息传递区Comm Area,图片存放区用于存放待检测工业信息中的待检测图像,被动消息传递区用于存放前端和后端的交互信息,块头信息中用于存储图片或交互信息的相关参数。当然,本实施方式中仅是举例说明,而并不对共享内存创建参数的具体数值进行限定。如图2所示为本实施方式中所提供的应用框架示意图,在图2中的应用框架中包括根据基于共享内存配置文件所创建的共享内存,以及后端基于并行检测模型配置文件所创建的多个检测模型。
步骤S103,当前端接收到待检测工业信息时,将待检测工业信息保存到共享内存中。
可选的,当前端接收到待检测工业信息时,将待检测工业信息保存到共享内存中,包括:当前端接收到待检测信息时通过调用内存管理组件中的前端放入待检测工业信息函数接口确定共享内存中的目标缓存区;将待检测工业信息保存到目标缓存区中,并通过内存管理组件将目标缓存区中的块状态码更新为前端写入信息完毕状态。
具体的说,在一个工业缺陷检测的项目中,当前端接收到待检测信息时,会通过调用内存管理组件中的前端放入待检测工业信息函数接口确定共享内存中的目标缓存区,由于根据共享内存配置文件在本地仅创建了包含一个缓存区的单个共享内存,则将所创建的共享内存的缓存区作为目标缓存区,并在确定待检测工业信息符合目标缓存区的存储格式要求时,将待检测工业信息保存到目标缓存区中。并且在确定前端将待检测工业信息保存到目标缓存区后,内存管理组件还会将块头消息中的块状态码更新为前端写入信息完毕状态,以便于后端通过读取更新后的块状态码进行内存信息的读取。
步骤S104,后端在确定各检测模型准备就绪时,通过各检测模型从共享内存中同步读取待检测工业信息,并对待检测工业信息进行并行检测处理所生成的后端消息进行汇总后保存到共享内存中。
可选的,后端在确定各检测模型准备就绪时,通过各检测模型从共享内存中同步读取待检测工业信息,包括:后端通过同步原语栅栏确定各检测模型的就绪状态,当确定各检测模型的就绪状态都为准备完成时,则确定各检测模型准备就绪;通过各检测模型通过调用内存管理组件中的后端获取待检测工业信息函数接口从目标缓存中同步读取待检测工业信息。
具体的说,本实施方式中的后端会进行周期性事件轮询,当后端通过读取状态码确定前段已经写入信息完毕的情况,会根据同步原语栅栏确定各检测模型的就绪状态。例如,当确定后端有三个检测模型,同步原语栅栏的数值为3,当目前确定仅有两个检测模型通过事件轮询确定准备完毕的情况下,说明第三个检测模型还未准备完成,为了保证后端各模型的检测同步性,因此会禁止准备完毕的两个检测模型从共享内存中读取待检测工业信息。只有当确定三个检测模型通过周期性事件轮询全部准备完毕的情况下,后端才确定准备就绪,此时各检测模型则通过调用内存管理组件中的后端获取待检测工业信息函数接口getImgAndMsg从目标缓存区中同步读取待检测工业信息。在传统的并行运行模型中,由于进程间通信问题,往往需要使用复杂的同步机制来保证数据一致性。这不仅增加了代码的复杂性,也降低了系统的可用性。然而,本发明使用共享内存协议,位于后端的各检测模型通过配置文件所创建的共享内存进行进程间的通信,并通过所创建的原语栅栏来就可以保证各检测模型处理操作的同步,从而无需再使用复杂的同步机制进行各检测模型的进程通信,可以有效地解决进程间通信问题,提高了系统的可用性。
可选的,对待检测工业信息进行并行检测处理所生成的后端消息进行汇总后保存到共享内存中,包括:后端各检测模型分别调用指定类型的推理接口函数,并采用推理接口函数所对应的处理方式对待检测工业信息进行处理获取后端消息,并将后端消息保存到消息队列中;从各检测模型中确定出目标检测模型,并通过目标检测模型对消息队列中的各后端消息进行汇总;通过目标检测模型通过调用后端返回后端消息函数接口将汇总后的后端消息保存到共享内存的目标缓存区中;通过内存管理组件将目标缓存区中的块状态码更新为后端写入信息完毕状态。
具体的说,本实施方式中的各检测模型在获取到待检测工业信息后,可以对待检测工业信息进行并行处理,而在进行并行处理时具体涉及两种情况,第一种情况是各模块采用同样的处理方式对待检测图像的不同部位进行检测,第二种情况是各模块采用不同的处理方式对整个待检测图像分别进行检测,本实施方式中并不限定后端中各检测模型的具体处理方式。而各检测模型具体是通过调用指定类型的推理接口函数,例如,model_run_inference,每个类型的推理接口函数分别对应不同的处理方式,因此具体是采用推理接口函数所对应的处理方式对待检测工业信息进行推理处理工作,以获取后端消息。例如,在确定后端有两个检测模型时,两个检测模型分别采用相同的处理方式分别对待检测图像的不同部位进行检测,第一个检测模型对待检测图像的上半部分进行检测推理,获取关于上半部分后端消息的同时,第二检测模块采用同样的处理方式对待检测图像的下半部分进行检测推理,获取关于下半部分后端消息。
需要说明的是,各检测模型在对待检测图像进行处理获取到所对应的后端消息之后,会分别将后端消息保存到消息队列中,由于在创建各检测模型的同时还会从中指定一个进行后端消息反馈到共享内存的目标检测模型。其中,目标检测模型可以是GPU资源分配最多的检测模型,或者是将第一个创建出的检测模型作为目标检测模型。当然,本实施方式中仅是举例说明,而并不对目标检测模型的具体选定方式进行限定。因此当后端确定各检测模型分别对待检测图像推理处理完并所获取的后端消息放到消息队列之后,会通过之前所指定的目标检测模型对消息队列中的各后端消息进行汇总,并通过调用内存管理组件中的后端返回后端消息函数接口putMsg将汇总后的后端消息保存到共享内存的目标缓存区中。并且内存管理组件会将目标缓存区中的块状态码更新为后端写入信息完毕状态。
步骤S105,前端对共享内存中汇总的后端消息进行读取,以获取工业信息检测结果。
可选的,前端对共享内存中汇总的后端消息进行读取,以获取工业信息检测结果,包括:前端通过调用内存管理组件中的前端获取后端消息函数接口从共享内存的目标缓存区中读取汇总后的后端消息;
将读取的汇总后的后端消息作为工业检测结果;通过内存管理组件将目标缓存区中的块状态码更新为前端读取信息完毕。
具体的说,当前端通过周期性事件轮询根据块状态码确定后端已经写入信息完毕时,会调用内存管理组件中的前端获取后端消息函数接口getMsg,从目标缓存区中获取汇总后的后端消息,并将汇总后的后端消息作为工业信息检测结果。并且还会通过内存管理组件将目标缓存区中的块状态码更新为前端读取信息完毕。
其中,本实施方式中利用所加载的共享内存,使得所有检测模型直接读取同一份数据,从而显著减少了数据传输的开销,提高了并行运行的效率。另外,本申请通过配置文件,使得开发者可以快速定制并部署自己的模型推理后端,大大简化了模型部署的工作,提高了部署的灵活性。并且通过多个检测模型基于共享内存进行信息交互,有效地解决进程间通信问题,提高了系统的可用性。
本发明实施例在进程间进行通信时仅需根据配置文件就可配置检测环境,提升了开发效率,通过模型配置文件在后端创建的多个检测模型从的共享内存中读取同一份待检测工业信息后并行进行处理,减少了数据传输的开销。
实施例二
图3为本发明实施例二提供的基于共享内存的工业信息并行检测方法的流程图,在上述实施例的基础上,在前端对共享内存中汇总的后端消息进行读取,以获取工业信息检测结果之后还会对工业信息检测结果进行校验,如图3所示,该方法包括:
步骤S201,基于并行检测模型配置文件在后端创建指定数量的检测模型。
可选的,基于并行检测模型配置文件在后端创建指定数量的检测模型之前,还包括:接收用户预先制定的共享内存配置文件,其中,共享内存配置文件中包括共享内存创建参数;将共享内存配置文件按照指定路径在本地进行保存,并创建管理共享内存的内存管理组件,其中,内存管理组件中包括加载共享内存函数接口、前端放入待检测工业信息函数接口、后端获取待检测工业信息函数接口、后端返回后端消息函数接口以及前端获取后端消息函数接口;接收用户预先制定的并行检测模型配置文件,其中,并行检测模型配置文件中包括模型创建参数以及共享内存配置文件的保存路径。
可选的,基于并行检测模型配置文件在后端创建指定数量的检测模型,包括:基于并行检测模型配置文件中的模型创建参数在后端创建指定数量的检测模型,以及与检测模型所关联的消息队列和同步原语栅栏;为各检测模型分别分配指定类型的GPU资源,以使检测模型基于GPU资源启动运行。
步骤S202,通过检测模型基于共享内存配置文件加载共享内存,以使前端和后端的各检测模型具有读写共享内存的权限。
可选的,通过检测模型基于共享内存配置文件加载共享内存,包括:
通过检测模型调用内存管理组件中的加载共享内存函数接口;通过加载共享内存函数接口从指定路径中读取共享内存配置文件;根据共享内存配置文件中的共享内存创建参数在本地加载指定数量的共享内存。
步骤S203,当前端接收到待检测工业信息时,将待检测工业信息保存到共享内存中。
可选的,当前端接收到待检测工业信息时,将待检测工业信息保存到共享内存中,包括:当前端接收到待检测信息时通过调用内存管理组件中的前端放入待检测工业信息函数接口确定共享内存中的目标缓存区;将待检测工业信息保存到目标缓存区中,并通过内存管理组件将目标缓存区中的块状态码更新为前端写入信息完毕状态。
步骤S204,后端在确定各检测模型准备就绪时,通过各检测模型从共享内存中同步读取待检测工业信息,并对待检测工业信息进行并行检测处理所生成的后端消息进行汇总后保存到共享内存中。
可选的,后端在确定各检测模型准备就绪时,通过各检测模型从共享内存中同步读取待检测工业信息,包括:后端通过同步原语栅栏确定各检测模型的就绪状态,当确定各检测模型的就绪状态都为准备完成时,则确定各检测模型准备就绪;通过各检测模型通过调用内存管理组件中的后端获取待检测工业信息函数接口从目标缓存中同步读取待检测工业信息。
可选的,对待检测工业信息进行并行检测处理所生成的后端消息进行汇总后保存到共享内存中,包括:后端各检测模型分别调用指定类型的推理接口函数,并采用推理接口函数所对应的处理方式对待检测工业信息进行处理获取后端消息,并将后端消息保存到消息队列中;从各检测模型中确定出目标检测模型,并通过目标检测模型对消息队列中的各后端消息进行汇总;通过目标检测模型通过调用后端返回后端消息函数接口将汇总后的后端消息保存到共享内存的目标缓存区中;通过内存管理组件将目标缓存区中的块状态码更新为后端写入信息完毕状态。
步骤S205,前端对共享内存中汇总的后端消息进行读取,以获取工业信息检测结果。
可选的,前端对共享内存中汇总的后端消息进行读取,以获取工业信息检测结果,包括:前端通过调用内存管理组件中的前端获取后端消息函数接口从共享内存的目标缓存区中读取汇总后的后端消息;
将读取的汇总后的后端消息作为工业检测结果;通过内存管理组件将目标缓存区中的块状态码更新为前端读取信息完毕。
步骤S206,对工业信息检测结果进行校验。
具体的说,本实施方式中在获取到工业信息检测结果之后,会对工业信息检测结果进行校验,具体是校验工业信息检测结果中是否存在乱码或者结果缺失的情况,例如,当需要对元件产品的合格性进行工业检测时,通过前后端的交互获取到后端通过推断处理所反馈的汇总的后端消息时,当确定汇总的后端消息时仅包含待检测图形前半部分检测所对应的检测结果,而并不包含待检测图像后半部分所对应的检测结果。在这种情况下则可以确定后端反馈给前端的工业信息检测结果是存在明显错误的。而出现上述的原因可能是检测模型并行运行时未出现同步情况,即栅栏设置的不合理,或者是虽然进行了并行同步处理,但是后端中用于负责对待检测图像后半部分进行处理的检测模型出现了故障,本实施方式中并不对校验失败的具体原因进行限定。
需要说明的是,当确定校验失败时会生成报警提示信息,并将报警在前端进行展示,以提示检测用户根据提示信息及时堆软件或硬件设备进行检修,以进一步提高工业信息检测结果的准确性。
本发明实施例在进程间进行通信时仅需根据配置文件就可配置检测环境,提升了开发效率,通过模型配置文件在后端创建的多个检测模型从的共享内存中读取同一份待检测工业信息后并行进行处理,减少了数据传输的开销。
实施例三
图4为本发明实施例三提供的一种基于共享内存的工业信息检测装置的结构示意图。如图4所示,该装置包括:检测模型创建模块310、共享内存加载模块320、待检测工业信息保存模块330、后端消息保存模块340和工业信息检测结果获取模块350。
检测模型创建模块310,用于基于并行检测模型配置文件在后端创建指定数量的检测模型;
共享内存加载模块320,用于通过检测模型基于共享内存配置文件加载共享内存,以使前端和后端的各检测模型具有读写共享内存的权限;
待检测工业信息保存模块330,用于当前端接收到待检测工业信息时,将待检测工业信息保存到共享内存中;
后端消息保存模块340,用于后端在确定各检测模型准备就绪时,通过各检测模型从共享内存中同步读取待检测工业信息,并对待检测工业信息进行并行检测处理所生成的后端消息进行汇总后保存到共享内存中;
工业信息检测结果获取模块350,用于前端对共享内存中汇总的后端消息进行读取,以获取工业信息检测结果。
可选的,装置还包括配置文件获取模块,用于接收用户预先制定的共享内存配置文件,其中,共享内存配置文件中包括共享内存创建参数;
将共享内存配置文件按照指定路径在本地进行保存,并创建管理共享内存的内存管理组件,其中,内存管理组件中包括加载共享内存函数接口、前端放入待检测工业信息函数接口、后端获取待检测工业信息函数接口、后端返回后端消息函数接口以及前端获取后端消息函数接口;
接收用户预先制定的并行检测模型配置文件,其中,并行检测模型配置文件中包括模型创建参数以及共享内存配置文件的保存路径。
可选的,检测模型创建模块,用于基于并行检测模型配置文件中的模型创建参数在后端创建指定数量的检测模型,以及与检测模型所关联的消息队列和同步原语栅栏;
为各检测模型分别分配指定类型的GPU资源,以使检测模型基于GPU资源启动运行。
可选的,共享内存加载模块,用于通过检测模型调用内存管理组件中的加载共享内存函数接口;
通过加载共享内存函数接口从指定路径中读取共享内存配置文件;
根据共享内存配置文件中的共享内存创建参数在本地加载指定数量的共享内存。
可选的,待检测工业信息保存模块,用于当前端接收到待检测信息时通过调用内存管理组件中的前端放入待检测工业信息函数接口确定共享内存中的目标缓存区;
将待检测工业信息保存到目标缓存区中,并通过内存管理组件将目标缓存区中的块状态码更新为前端写入信息完毕状态。
可选的,后端消息保存模块,用于后端通过同步原语栅栏确定各检测模型的就绪状态,当确定各检测模型的就绪状态都为准备完成时,则确定各检测模型准备就绪;
通过各检测模型通过调用内存管理组件中的后端获取待检测工业信息函数接口从目标缓存中同步读取待检测工业信息。
可选的,后端消息保存模块,还用于后端各检测模型分别调用指定类型的推理接口函数,并采用推理接口函数所对应的处理方式对待检测工业信息进行处理获取后端消息,并将后端消息保存到消息队列中;
从各检测模型中确定出目标检测模型,并通过目标检测模型对消息队列中的各后端消息进行汇总;
通过目标检测模型通过调用后端返回后端消息函数接口将汇总后的后端消息保存到共享内存的目标缓存区中;
通过内存管理组件将目标缓存区中的块状态码更新为后端写入信息完毕状态。
可选的,工业信息检测结果获取模块,用于 前端通过调用内存管理组件中的前端获取后端消息函数接口从共享内存的目标缓存区中读取汇总后的后端消息;
将读取的汇总后的后端消息作为工业检测结果;
通过内存管理组件将目标缓存区中的块状态码更新为前端读取信息完毕。
本发明实施例所提供的一种基于共享内存的工业信息并行检测装置可执行本发明任意实施例所提供的一种基于共享内存的工业信息并行检测方法,具备执行方法相应的功能模块和有益效果。
实施例四
图5示出了可以用来实施本发明的实施例的电子设备10的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图5所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
电子设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如基于共享内存的工业信息并行检测方法。
在一些实施例中,基于共享内存的工业信息并行检测方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到设备10上。当计算机程序加载到RAM 13并由处理器11执行时,可以执行上文描述的基于共享内存的工业信息并行检测方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行基于共享内存的工业信息并行检测方法。
本文中以上描述的装置和技术的各种实施方式可以在数字电子电路装置、集成电路装置、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上装置的装置(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程装置上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储装置、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储装置、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程天车作业报警装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行装置、装置或设备使用或与指令执行装置、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体装置、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在设备上实施此处描述的装置和技术,该设备具有:用于向用户显示信息的显示装置(例如,触摸屏);以及按键,用户可以通过触摸屏或按键来将输入提供给设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (10)
1.一种基于共享内存的工业信息并行检测方法,其特征在于,包括:
基于并行检测模型配置文件在后端创建指定数量的检测模型;
通过所述检测模型基于共享内存配置文件加载共享内存,以使前端和后端的各检测模型具有读写所述共享内存的权限;
当前端接收到待检测工业信息时,将所述待检测工业信息保存到所述共享内存中;
所述后端在确定各检测模型准备就绪时,通过各检测模型从所述共享内存中同步读取所述待检测工业信息,并对所述待检测工业信息进行并行检测处理所生成的后端消息进行汇总后保存到所述共享内存中;
所述前端对所述共享内存中汇总的后端消息进行读取,以获取工业信息检测结果。
2.根据权利要求1所述的方法,其特征在于,所述基于并行检测模型配置文件在后端创建指定数量的检测模型之前,还包括:
接收用户预先制定的所述共享内存配置文件,其中,所述共享内存配置文件中包括共享内存创建参数;
将所述共享内存配置文件按照指定路径在本地进行保存,并创建管理共享内存的内存管理组件,其中,所述内存管理组件中包括加载共享内存函数接口、前端放入待检测工业信息函数接口、后端获取待检测工业信息函数接口、后端返回后端消息函数接口以及前端获取后端消息函数接口;
接收用户预先制定的所述并行检测模型配置文件,其中,所述并行检测模型配置文件中包括模型创建参数以及共享内存配置文件的保存路径。
3.根据权利要求2所述的方法,其特征在于,所述基于并行检测模型配置文件在后端创建指定数量的检测模型,包括:
基于所述并行检测模型配置文件中的所述模型创建参数在后端创建指定数量的所述检测模型,以及与所述检测模型所关联的消息队列和同步原语栅栏;
为各所述检测模型分别分配指定类型的GPU资源,以使所述检测模型基于所述GPU资源启动运行。
4.根据权利要求2所述的方法,其特征在于,所述当前端接收到待检测工业信息时,将所述待检测工业信息保存到所述共享内存中,包括:
当前端接收到所述待检测工业信息时通过调用所述内存管理组件中的所述前端放入待检测工业信息函数接口确定所述共享内存中的目标缓存区;
将所述待检测工业信息保存到所述目标缓存区中,并通过所述内存管理组件将所述目标缓存区中的块状态码更新为前端写入信息完毕状态。
5.根据权利要求3所述的方法,其特征在于,所述后端在确定各检测模型准备就绪时,通过各检测模型从所述共享内存中同步读取所述待检测工业信息,包括:
所述后端通过所述同步原语栅栏确定各检测模型的就绪状态,当确定各检测模型的就绪状态都为准备完成时,则确定各检测模型准备就绪;
通过各所述检测模型通过调用所述内存管理组件中的所述后端获取待检测工业信息函数接口从目标缓存中同步读取所述待检测工业信息。
6.根据权利要求5所述的方法,其特征在于,所述对所述待检测工业信息进行并行检测处理所生成的后端消息进行汇总后保存到所述共享内存中,包括:
后端各检测模型分别调用指定类型的推理接口函数,并采用所述推理接口函数所对应的处理方式对所述待检测工业信息进行处理获取所述后端消息,并将所述后端消息保存到所述消息队列中;
从各所述检测模型中确定出目标检测模型,并通过所述目标检测模型对所述消息队列中的各后端消息进行汇总;
通过所述目标检测模型调用所述后端返回后端消息函数接口将汇总后的后端消息保存到所述共享内存的目标缓存区中;
通过所述内存管理组件将所述目标缓存区中的块状态码更新为后端写入信息完毕状态。
7.根据权利要求2所述的方法,其特征在于,所述前端对所述共享内存中汇总的后端消息进行读取,以获取工业信息检测结果,包括:
所述前端通过调用所述内存管理组件中的所述前端获取后端消息函数接口从所述共享内存的目标缓存区中读取汇总后的后端消息;
将读取的汇总后的后端消息作为所述工业信息检测结果;
通过所述内存管理组件将所述目标缓存区中的块状态码更新为前端读取信息完毕。
8.一种基于共享内存的工业信息并行检测装置,其特征在于,包括:
检测模型创建模块,用于基于并行检测模型配置文件在后端创建指定数量的检测模型;
共享内存加载模块,用于通过所述检测模型基于共享内存配置文件加载共享内存,以使前端和后端的各检测模型具有读写所述共享内存的权限;
待检测工业信息保存模块,用于当前端接收到待检测工业信息时,将所述待检测工业信息保存到所述共享内存中;
后端消息保存模块,用于所述后端在确定各检测模型准备就绪时,通过各检测模型从所述共享内存中同步读取所述待检测工业信息,并对所述待检测工业信息进行并行检测处理所生成的后端消息进行汇总后保存到所述共享内存中;
工业信息检测结果获取模块,用于所述前端对所述共享内存中汇总的后端消息进行读取,以获取工业信息检测结果。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-7中任一项所述的方法。
10.一种计算机可执行指令的存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一项所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310913487.1A CN116662039B (zh) | 2023-07-25 | 2023-07-25 | 基于共享内存的工业信息并行检测方法、装置及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310913487.1A CN116662039B (zh) | 2023-07-25 | 2023-07-25 | 基于共享内存的工业信息并行检测方法、装置及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116662039A true CN116662039A (zh) | 2023-08-29 |
CN116662039B CN116662039B (zh) | 2024-01-23 |
Family
ID=87715603
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310913487.1A Active CN116662039B (zh) | 2023-07-25 | 2023-07-25 | 基于共享内存的工业信息并行检测方法、装置及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116662039B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117351016A (zh) * | 2023-12-05 | 2024-01-05 | 菲特(天津)检测技术有限公司 | 提升缺陷检测模型准确度的后处理优化方法及装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103366386A (zh) * | 2013-07-14 | 2013-10-23 | 西安电子科技大学 | 基于多进程和多线程的并行图像解压缩系统 |
CN103441831A (zh) * | 2013-08-22 | 2013-12-11 | 焦点科技股份有限公司 | 一种双进程间的全双工通信及互保方法和系统 |
CN105956021A (zh) * | 2016-04-22 | 2016-09-21 | 华中科技大学 | 一种适用于分布式机器学习的自动化任务并行的方法及其系统 |
CN107391278A (zh) * | 2017-07-25 | 2017-11-24 | 郑州云海信息技术有限公司 | 一种基于共享内存的前后端通信方法 |
CN109358974A (zh) * | 2018-10-17 | 2019-02-19 | 武汉斗鱼网络科技有限公司 | 一种进程间通信的方法及相关装置 |
CN110018914A (zh) * | 2019-03-26 | 2019-07-16 | 中国人民银行清算总中心 | 基于共享内存的消息采集方法及装置 |
CN111985629A (zh) * | 2019-05-21 | 2020-11-24 | 辉达公司 | 用于训练神经网络的并行化策略 |
CN112308096A (zh) * | 2020-11-02 | 2021-02-02 | 得遇科技(杭州)有限责任公司 | 图像识别方法、装置、计算机设备和存储介质 |
CN112434131A (zh) * | 2020-11-24 | 2021-03-02 | 平安科技(深圳)有限公司 | 基于人工智能的文本错误检测方法、装置、计算机设备 |
-
2023
- 2023-07-25 CN CN202310913487.1A patent/CN116662039B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103366386A (zh) * | 2013-07-14 | 2013-10-23 | 西安电子科技大学 | 基于多进程和多线程的并行图像解压缩系统 |
CN103441831A (zh) * | 2013-08-22 | 2013-12-11 | 焦点科技股份有限公司 | 一种双进程间的全双工通信及互保方法和系统 |
CN105956021A (zh) * | 2016-04-22 | 2016-09-21 | 华中科技大学 | 一种适用于分布式机器学习的自动化任务并行的方法及其系统 |
CN107391278A (zh) * | 2017-07-25 | 2017-11-24 | 郑州云海信息技术有限公司 | 一种基于共享内存的前后端通信方法 |
CN109358974A (zh) * | 2018-10-17 | 2019-02-19 | 武汉斗鱼网络科技有限公司 | 一种进程间通信的方法及相关装置 |
CN110018914A (zh) * | 2019-03-26 | 2019-07-16 | 中国人民银行清算总中心 | 基于共享内存的消息采集方法及装置 |
CN111985629A (zh) * | 2019-05-21 | 2020-11-24 | 辉达公司 | 用于训练神经网络的并行化策略 |
CN112308096A (zh) * | 2020-11-02 | 2021-02-02 | 得遇科技(杭州)有限责任公司 | 图像识别方法、装置、计算机设备和存储介质 |
CN112434131A (zh) * | 2020-11-24 | 2021-03-02 | 平安科技(深圳)有限公司 | 基于人工智能的文本错误检测方法、装置、计算机设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117351016A (zh) * | 2023-12-05 | 2024-01-05 | 菲特(天津)检测技术有限公司 | 提升缺陷检测模型准确度的后处理优化方法及装置 |
CN117351016B (zh) * | 2023-12-05 | 2024-02-06 | 菲特(天津)检测技术有限公司 | 提升缺陷检测模型准确度的后处理优化方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN116662039B (zh) | 2024-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111639287A (zh) | 一种页面处理方法、装置、终端设备及可读存储介质 | |
CN112540806B (zh) | 一种小程序页面渲染方法、装置、电子设备及存储介质 | |
CN116662038B (zh) | 基于共享内存的工业信息检测方法、装置、设备及介质 | |
CN116662039B (zh) | 基于共享内存的工业信息并行检测方法、装置及介质 | |
CN107526623B (zh) | 一种数据处理方法及装置 | |
CN114168222A (zh) | 一种启动耗时的获取方法、装置、终端设备和存储介质 | |
CN113986424A (zh) | 一种页面显示方法及装置 | |
CN109614094B (zh) | 基于UML的GPU glCallList视图模型的绘制方法 | |
CN118193389A (zh) | 一种测试案例生成方法、装置、设备、存储介质及产品 | |
CN114697398B (zh) | 数据处理方法、装置、电子设备、存储介质及产品 | |
CN115390992A (zh) | 一种虚拟机创建方法、装置、设备和存储介质 | |
CN114510334A (zh) | 类实例的调用方法、装置、电子设备及自动驾驶车辆 | |
CN115248735A (zh) | 一种日志数据输出控制方法、装置、设备及存储介质 | |
CN116627682B (zh) | 基于共享内存的远程工业信息检测方法及装置 | |
CN116579914B (zh) | 一种图形处理器引擎执行方法、装置、电子设备及存储介质 | |
CN115222041B (zh) | 用于模型训练的图生成方法、装置、电子设备及存储介质 | |
CN117520080B (zh) | 一种服务器测试方法、装置、设备及介质 | |
CN117709255B (zh) | 间接访问寄存器的测试方法、装置、设备及介质 | |
US11907194B2 (en) | Systems and methods for executing and hashing modeling flows | |
CN114595231B (zh) | 一种数据库表生成方法、装置、电子设备及存储介质 | |
CN112817573B (zh) | 用于构建流式计算应用的方法、装置、计算机系统和介质 | |
CN117009000A (zh) | 运行开源鸿蒙系统的组件、方法、装置、设备及介质 | |
CN117609064A (zh) | 单元测试方法、装置、电子设备及存储介质 | |
CN117827207A (zh) | 图元面板的动态构建方法、装置、设备及介质 | |
CN116307551A (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 |