CN112286753B - 测试图像处理准确度的方法、装置、服务器及存储介质 - Google Patents
测试图像处理准确度的方法、装置、服务器及存储介质 Download PDFInfo
- Publication number
- CN112286753B CN112286753B CN201910661997.8A CN201910661997A CN112286753B CN 112286753 B CN112286753 B CN 112286753B CN 201910661997 A CN201910661997 A CN 201910661997A CN 112286753 B CN112286753 B CN 112286753B
- Authority
- CN
- China
- Prior art keywords
- image processing
- image
- program module
- intermediate program
- sample
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种测试图像处理准确度的方法、装置、服务器及存储介质,该方法包括:向业务系统的各中间程序模块中注入结果监测代码,该业务系统包括:图像处理算法模型及至少一个中间程序模块;针对获取到的每个图像样本,将图像样本依次经至少一个中间程序模块及图像处理算法模型处理;针对每个该中间程序模块,通过该中间程序模块中注入的结果监测代码截获中间程序模块处理各个图像样本的实际图像处理结果;针对每个中间程序模块,依据该中间程序模块处理各个图像样本的实际图像处理结果以及各个图像样本标注的图像处理结果,确定该中间程序模块对应的图像处理准确度。通过本申请的方案能够获取到业务平台内部各程序模块的图像处理精准度。
Description
技术领域
本申请涉及图像处理技术领域,尤其涉及一种测试图像处理准确度的方法、装置、服务器及存储介质。
背景技术
智能化的图像处理技术的应用日益广泛。如,较为普遍的图像处理技术可以包括光学字符识别(OpticalCharacterRecognition,OCR)、人脸识别、人证比对等等。
为了提高图像处理的精准度,在实验室阶段会对图像处理所采用的图像处理算法的算法模型进行训练和测试。在测试出图像处理算法的图像处理准确度符合要求的情况下,就可以将图像处理算法应用到与图像处理有关的业务场景中。如,将图像处理算法的算法模型封装为业务平台的一部分程序,以使得终端等设备可以调用业务平台的图像处理算法完成与图像处理相关的业务。
其中,业务平台调用图像处理算法模型进行图像处理的过程中,会涉及到多层程序模块的调用。而由于图像处理算法模型与多层程序模块之间所涉及到的一些逻辑处理与数据交互等,会导致业务平台的图像处理结果的精准度有所下降,即,业务平台最终输出的图像处理结果的精准度低于图像处理算法模型本身的图像处理精准度。
在业务平台出现精度下降的幅度较为异常的情况下,就需要分析该业务平台中导致精准度下降的具体程序模块层。然而,目前只能测试图像处理算法或者业务平台整体的图像处理精准度,却无法得到业务平台内部各层程序模块对应的图像处理精准度,从而无法较为快速的定位出业务平台可能出现异常的程序模块层。
发明内容
有鉴于此,本申请提供了一种测试图像处理准确度的方法、装置、服务器及存储介质,以实现能够获取到业务平台内部各层程序模块对应的图像处理精准度。
为实现上述目的,一方面,本申请提供了一种测试图像处理准确度的方法,包括:
向业务系统的各中间程序模块中注入监测代码,所述监测代码至少包括:结果监测代码,所述业务系统包括:至少一个所述中间程序模块,以及,图像处理算法模型;
获取已标注图像处理结果的多个图像样本;
针对每个所述图像样本,依据所述业务系统的图像处理逻辑,将所述图像样本依次经所述至少一个中间程序模块以及所述图像处理算法模型处理,以最终得到所述业务系统对所述图像样本的图像处理结果;
针对每个所述中间程序模块,通过注入到所述中间程序模块中的结果监测代码分别截获所述中间程序模块处理各个图像样本的实际图像处理结果;
针对每个所述中间程序模块,依据所述中间程序模块处理各个图像样本的实际图像处理结果以及各个图像样本标注的图像处理结果,确定所述中间程序模块对应的图像处理准确度。
在一种可能的实现方式中,还包括:
通过最下层中间程序模块中注入的所述结果监测代码获得所述图像处理算法模型输出的各个图像样本的实际图像处理结果,其中,所述最下层中间程序模块为所述至少一个中间程序模块中,与所述图像处理算法模型中存在数据交互的中间程序模块;
依据所述图像处理算法模型输出的各个图像样本的实际图像处理结果以及各个图像样本标注的图像处理结果,确定所述图像处理算法模型的图像处理准确度。
在又一种可能的实现方式中,所述业务系统还包括:图像采集程序模块,所述图像采集程序模块用于响应于终端的图像处理请求,通过所述终端采集待处理的图像;
所述多个图像样本为通过所述图像采集程序模块获取到的图像;
所述方法还包括:
截获所述图像采集程序模块输出各个图像样本的实际处理结果,所述图像采集程序输出的图像样本的实际处理结果为所述业务系统最终输出的图像样本的实际图像处理结果;
依据所述图像采集程序模块输出的各个图像样本的实际图像处理结果以及各个图像样本标注的图像处理结果,确定所述图像采集程序模块的图像处理准确度。
在又一种可能的实现方式中,所述依据所述业务系统的图像处理逻辑,将所述图像样本依次经所述至少一个中间程序模块以及所述图像处理算法模型处理,以最终得到所述业务系统对所述图像样本的图像处理结果,包括:
模拟所述图像采集程序模块调用最上层中间程序模块处理所述图像样本,以使得所述图像样本经所述至少一个中间程序模块以及所述图像处理算法模型处理后返回给所述图像采集程序模块处理,所述最上层中间程序模块为所述至少一个中间程序模块中与所述图像采集程序模块存在数据交互的中间程序模块。
又一方面,本申请还提供了一种测试图像处理准确度的装置,包括:
代码注入单元,用于向业务系统的各中间程序模块中注入监测代码,所述监测代码至少包括:结果监测代码,所述业务系统包括:至少一个所述中间程序模块,以及,图像处理算法模型;
样本获取单元,用于获取已标注图像处理结果的多个图像样本;
样本测试单元,用于针对每个所述图像样本,依据所述业务系统的图像处理逻辑,将所述图像样本依次经所述至少一个中间程序模块以及所述图像处理算法模型处理,以最终得到所述业务系统对所述图像样本的图像处理结果;
第一监测单元,用于针对每个所述中间程序模块,通过注入到所述中间程序模块中的结果监测代码分别截获所述中间程序模块处理各个图像样本的实际图像处理结果;
第一精度确定单元,用于针对每个所述中间程序模块,依据所述中间程序模块处理各个图像样本的实际图像处理结果以及各个图像样本标注的图像处理结果,确定所述中间程序模块对应的图像处理准确度。
又一方面,本申请还提供了一种服务器,包括:
处理器和存储器;
所述处理器,用于调用并执行所述存储器中存储的程序;
所述存储器用于存储所述程序,所述程序至少用于:
向业务系统的各中间程序模块中注入监测代码,所述监测代码至少包括:结果监测代码,所述业务系统包括:至少一个所述中间程序模块,以及,图像处理算法模型;
获取已标注图像处理结果的多个图像样本;
针对每个所述图像样本,依据所述业务系统的图像处理逻辑,将所述图像样本依次经所述至少一个中间程序模块以及所述图像处理算法模型处理,以最终得到所述业务系统对所述图像样本的图像处理结果;
针对每个所述中间程序模块,通过注入到所述中间程序模块中的结果监测代码分别截获所述中间程序模块处理各个图像样本的实际图像处理结果;
针对每个所述中间程序模块,依据所述中间程序模块处理各个图像样本的实际图像处理结果以及各个图像样本标注的图像处理结果,确定所述中间程序模块对应的图像处理准确度。
又一方面,本申请还提供了一种存储介质,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上任一项所述的测试图像处理准确度的方法。
经由上述的技术方案可知,本申请向业务系统的各层中间程序模块中注入了结果监测代码,在利用多个图像样本经过该业务系统的各层中间程序模块以及图像处理算法模型处理的过程中,通过中间程序模块中注入的结果监测代码便可以截获该中间程序模块处理各图像样本的实际图像处理结果。在此基础上,根据中间程序模块处理各个图像样本的实际图像处理结果以及各个图像样本标注的图像处理结果,便可以得到该中间程序模块对应的图像处理准确度,从而可以获取到业务系统中每层中间程序模块的图像处理准确度,进而为分析业务系统中各层中间程序模块是否存在异常提供了依据,有利于快速准确定位出业务平台可能出现异常的程序模块。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1示出了本申请的一种测试图像处理准确度的方法的一种应用场景的组成结构示意图;
图2示出了本申请一种业务系统的组成架构示意图;
图3示出了本申请一种测试图像处理准确度的方法一个实施例的流程示意图;
图4示出了本申请一种测试图像处理准确度的方法又一个实施例的流程示意图;
图5示出了本申请的测试图像准确度的方法在一种应用场景中的实现原理框架图;
图6示出了本申请一种测试图像准确度的方法一种应用场景中的流程示意图;
图7示出了本申请一种测试图像准确度的装置的一种组成结构示意图;
图8示出了本申请一种测试图像准确度的装置的又一种组成结构示意图;
图9示出了本申请一种服务器的组成结构示意图。
具体实施方式
本申请的方案可以应用于测试业务系统处理图像的过程中,业务系统中各层程序模块所对应的图像处理精准度。
其中,该业务系统可以封装有图像处理算法模型以及满足业务需求且与图像处理算法模型存在调用关系的中间程序模块。其中,终端等设备通过调用业务系统可以实现图像处理。
为了便于理解,下面对本申请的测试图像处理准确度的方法所适用的一种场景架构进行介绍。
如图1所示,其示出了本申请的方案所适用的一种场景的组成架构示意图。
由图1可知,该场景包括终端101以及至少一台服务器102。该至少一台服务器属于业务系统。
其中,终端可以通过向业务系统的服务器发送业务调用请求,以通过业务系统实现与图像处理相关的业务处理。
该服务器102中封装有至少一个中间程序模块以及至少一个图像处理算法模型,以使得业务系统包括至少一个中间程序模块以及至少一个图像处理算法模型。
其中,该图像处理算法模型可以有多种可能。
可选的,图像处理算法模型可以为基于深度学习的图像处理算法的算法模型。如,图像处理算法模型可以为光学字符识别(OpticalCharacter Recognition,OCR)的算法模型,人脸识别的算法模型、人证比对的算法模型、抠图的算法模型、鉴别证件的算法模型。
该图像处理算法模型可以为需要对图像进行某种处理,以得到对图像处理后的图像处理结果。如,以OCR算法模型为例说明,通过OCR算法模型可以对扫描出的图像信息进行文字识别,以将图像信息翻译为计算机文字。而抠图的算法模型的图像处理是把图片一部分从原图片中分离出来成为单独的图层。
其中,中间程序模块为包含业务系统的业务处理逻辑相关的函数以及代码的程序。根据业务系统所提供的业务服务(即接入的业务逻辑)的不同,业务系统的业务处理逻辑也会有所差别,因此,该业务系统中的中间程序模块的数量以及类型也会有所不同。
如,对于业务系统为涉及金融处理的设备提供证件的OCR处理与鉴定的情况下,业务系统的中间程序模块可能需要包括:涉及业务逻辑相关数据转换的程序模块以及涉及将OCR算法模型输出的结果转换为工程化数据的程序模块等等。
可以理解的是,在涉及图像处理的业务场景中,一般都需要业务系统提供一些图像采集功能,因此,业务系统还可以包括:图像采集程序模块。如图1所示,服务器封装的各层程序模块还包括图像采集程序模块。在业务系统接收到终端的图像处理请求之后,图像采集程序模块响应于该图像处理请求,通过该终端采集待处理的图像。
可以理解的是,在图1中是以业务系统的每个服务器中均封装有实现业务系统所需功能的各个程序模块为例说明,在实际应用中,业务系统所涉及到的各个程序模块也可能会分布到多个服务器中。
为了便于理解业务系统中各个程序模块的组成关系,下面结合业务系统的一种组成架构进行说明。如图2,其示出了业务系统的一种组成架构示意图。
在图2中以涉及金融服务的业务系统为例说明。
由图2可以看出,该业务系统包括自上而下的多个程序模块层,从上到下依次为:对外程序层、业务逻辑封装层(俗称的gateway层)、支付业务中间件层(俗称的middle层)、算法工程化层以及图像处理算法模型。
其中,业务系统可以封装有多种图像处理算法模型,每种图像处理算法模型对应了一个算法工程化层。算法工程化层用于将图像处理算法的处理结果转换为适应业务的语言格式。如,将图像处理算法输出的处理结果转换为采用另一种语言格式的处理结果等。
如图2所示,该业务系统包括:OCR算法模型,在该种情况下,该OCR算法模型对应了OCR算法工程化层;相应的,业务系统的图像处理算法还可以包括:人证比对模型、证件鉴伪模型以及抠图算法模型,且每种算法模型均对应的工程化层。
该支付业务中间件层可以执行支付相关业务的业务规则处理,如,将工程化层转换后的图像处理结果进行支付相关业务处理等。
业务逻辑封装层可以涉及符合业务格式的逻辑处理,如,对图像进行压缩处理等。
其中,对外程序层就是业务系统与终端设备连接的程序层,在图2中该业务程序层可以为业务系统中实现图像采集功能的程序。终端设备中可以按照有与该对外程序层建立通信连接的客户端软件。
如,以业务系统可以为银行等金融系统提供证件信息扫描与验证为例说明,银行等金融系统可以通过终端设备向该业务系统发送证件识别请求,而业务系统的对外程序层响应该证件识别请求,可以指示终端设备展现图像扫描界面并启动终端的摄像头进行图像采集。终端设备采集到的证件图像会传输给业务系统的对外程序层。
对外程序层会调用业务逻辑封装层,并将证件图像传输给业务逻辑封装层,以使得该证件图像依次经业务逻辑封装层、支付业务中间件层以及工程化层传输给图像处理算法模型,而图像处理算法模型处理的证件图像的处理结果(如,对证件图像进行字符识别所得到的字符识别结果)又会依次经过工程化层、支付业务中间件层以及业务逻辑封装层的处理转换之后,最终将图像处理识别结果经对外程序层返回给终端设备。
结合以上介绍,下面对本申请测试图像处理准确度的方法进行介绍。
如图3所示,其示出了本申请一种测试图像处理准确度的方法一个实施例的流程示意图,本实施例可以应用于如上提到的业务系统中的服务器,本实施例的方法可以包括:
S301,向业务系统的各中间程序模块中注入监测代码。
在本实施例中,该业务系统至少包括:至少一个该中间程序模块,以及,图像处理算法模型。
其中,监测代码至少包括:结果监测代码,该结果监测代码用于监测中间程序模块的图像处理过程,并获得该中间程序模块输出的图像处理结果。
其中,在向中间程序模块注入监测代码之前,可以根据中间程序模块的程序处理逻辑分析出获取中间程序模块输出的图像处理结果所需的插入点以及相应的代码,从而按照插入点插入相应的结果监测代码。
可选的,可以采用插桩技术,向中间程序模块中注入监测代码。如,使用面向切片编程技术对中间程序模块进行插桩,以实现监测代码的注入。在实际应用中,考虑到不同中间程序模块所采用的程序语言会有所差别,注入监测代码的过程也会有所差别。
如,如果中间程序模块采用的是JAVE语言,则可以采用AspectJ工具进行动态代码的自动注入。如果中间程序模块采用的是C++语言,可以采用静态代码预编译插入的方式进行代码插桩。
需要说明的是,业务系统可以有多种图像处理算法模型,但是一次测试可以仅仅测试业务系统对于一种图像处理算法模型的调用,以测试各层模块所对应的图像处理精准度。
S302,获取已标注图像处理结果的多个图像样本。
其中,为了提高测试效率,该多个图像样本为预先采集到的。
图像样本标注的图像处理结果为基于图像处理算法模型对图像样本进行准确处理的情况下所得到的处理结果。
其中,针对待测试的图像处理算法模型的不同,图像样本以及图像样本标注的图像处理结果也会有所差别。
如,如果待测试的图像处理算法模型为OCR模型,由于OCR算法模型需要识别图片中的字符,因此,图像样本可以为扫描到的各种图像,而图像样本标注的图像处理结果为图像样本对应的正确识别出的字符。
如果待测试的图像处理算法模型为抠图算法,则图像样本为扫描的包含文字、人脸等对象的图像,而图像样本标注的图像处理结果为图像样本对应的正确抠图的抠图结果数据,例如,抠图出的人脸关键点的坐标,文字所在位置的坐标等等。
如果图像处理算法为人证比对算法,则图像样本为图像样本对,每个图像样本对包括一张证件照以及至少一张人脸图像,而图像样本标注的图像处理结果表征该图像样本对中人脸与证件是否一致的一致性比对结果。
当然,对于其他图像处理算法模型也类似,在此不一一列举。
S303,针对每个该图像样本,依据该业务系统的图像处理逻辑,将该图像样本依次经该至少一个中间程序模块以及该图像处理算法模型处理,以最终得到该业务系统对该图像样本的图像处理结果。
其中,业务系统的图像处理逻辑是指业务系统处理图像中对中间程序模块以及图像处理算法模型的调用逻辑顺序。
如图2所示的业务系统的图像处理逻辑为:业务系统按照图2中各个程序层的上下顺序关系,将图像按照自上而下依次经过对外程序层、业务封装逻辑层、支付中间件层以及算法工程化层的处理后传入图像处理算法模型进行图像处理,而图像处理算法模型处理后的图像处理结果会依次向上传输给算法工程化层、支付中间件层、业务封装逻辑层处理,并最终传输给对外程序层输出最终的图像处理结果。
可以理解的是,在业务系统的图像处理逻辑确定的情况下,将图像样本按顺序依次经各个中间程序模块以及图像处理算法模型处理后,最终得到业务系统最终输出的图像处理结果。
S304,针对每个该中间程序模块,通过注入到该中间程序模块中的结果监测代码分别截获该中间程序模块处理各个图像样本的实际图像处理结果。
由前面的介绍可知,图像样本依次经过各个中间程序模块的传输与处理之后,会调用图像处理算法模型对图像样本进行图像处理,然后图像处理算法模型对图像样本处理得到的图像处理结果会依次向上传输给各个中间程序模块进行处理。
而中间程序模块在接收到图像处理算法模型或者上一层中间程序模块传输的图像处理结果之后,该中间程序模块也会对图像处理结果进行一些逻辑处理,如果中间程序模块本身存在代码编写错误等异常,则会导致中间程序模块对图像处理结果的转换处理出错,从而使得该中间程序模块最终输出的处理后的图像处理结果发生错误,从而使得该中间程序模块对应的图像处理结果的精准度下降。
如,以OCR识别为例,中间程序模块获得通过OCR算法识别出的文字字符“abc”之后,可能需要进行一些逻辑转换或者数据封装等,但是如果中间程序模块存在异常,则可能将“abc”识别为“abd”,这样,中间程序模块基于“abd”进行相关处理之后,实际上已经改变了图像处理结果的实际内容,可见,即使图像处理算法的图像处理结果为正确的,但是到了某一中间程序模块之后图像处理结果可能会发生改变,从而导致图像处理结果出错,这样,该中间程序模块输出的图像处理结果也就是错误的。
相应的,如果多次发生异常处理,相对于OCR算法模型层的图像处理准确度,该中间程序模块对应的图像处理准确度必然存在较大的精度下降。
基于以上分析可知,为了分析每个中间程序模块对应的图像处理准确度,需要获取经过该中间程序模块处理后的图像处理结果。
其中,在步骤S304依次调用各个中间程序模块的过程中,在中间程序模块运行并进行数据处理的过程中,注入到该中间程序模块中的结果监测代码便可以对该中间程序模块的数据处理过程进行监测。这样,通过该结果监测代码可以捕获到该中间程序模块输出的图像处理结果。
其中,该结果监测代码获取到的该中间程序模块的图像处理结果可以表征经过该中间程序模块处理后的图像处理结果的实际含义,该图像处理结果可以与标注的图像样本的图像处理结果进行比对,以判断二者是否一致。
可以理解的是,由于业务系统可能还会包括与终端连接的图像采集程序模块,而在业务系统的正常业务处理过程中,一般是图像采集程序模块从终端获取采集到的图像之后,触发业务系统进行图像处理,从而依次调用该至少一个中间程序模块以及图像处理算法模型。然而,在测试过程中,图像样本是预先获取到的,从而无需再经过该图像采集程序模块调用中间程序模块,所以需要跳过该图像程序模块而将图像样本直接经至少一个中间程序模块传输给图像处理算法模块。
可选的,本申请还可以模拟该图像采集程序模块调用最上层中间程序模块处理图像样本,以使得图像样本经至少一个中间程序模块以及图像处理算法模型处理后返回给图像采集程序模块处理。该最上层中间程序模块为至少一个中间程序模块中与图像采集程序模块存在数据交互的中间程序模块,也就是说,最上层中间程序模块为无需经其他中间程序模块而直接与图像采集程序模块进行图像或者图像处理结果传输的中间程序模块。
如图2中,最上层中间程序模块为业务逻辑封装层,图像采集程序模块(对外程序层)获取到的图像会先传输给业务逻辑封装层,然后再经业务逻辑封装层依次向其他程序层传输。
S305,针对每个该中间程序模块,依据该中间程序模块处理各个图像样本的实际图像处理结果以及各个图像样本标注的图像处理结果,确定该中间程序模块对应的图像处理准确度。
可以理解的是,图像样本已标注的图像处理结果为图像样本经过图像处理算法模型正确处理所得到的正确处理结果,而中间程序模块对应的该图像样本的实际图像处理结果为图像样本再经过图像处理算法模型处理并传输到该中间程序模块处理后所表现出的实际处理结果。
由此可知,对于每个图像样本,如果该中间程序模块处理该图像样本得到的实际图像处理结果与标注的图像处理结果一致,则该中间程序模块处理该图像样本的图像处理结果正确。相应的,通过对比所有图像样本的实际处理结果与标注的图像处理结果,可以得到图像处理准确度。
可以理解的是,图像样本中可能会存下一些反光、模糊不清等图像效果不符合要求的图像,如,多个图像样本中包括:至少一个图像效果不符合要求的非正常图像样本以及至少一个图像效果符合要求的正常图像样本。这些不符合要求的图像很难得到准确的图像处理结果,而这与中间程序模块自身的是否异常并无关系,因此,为了能够更为精准的确定中间程序模块的图像处理准确度,需要排除这些图像效果不符合要求的图像来分析图像准确度。因此,作为一种可选方式,可以通过如下方式,确定该中间程序模块对应的图像处理准确度:
依据该中间程序模块处理各个图像样本的实际图像处理结果以及各个图像样本标注的图像处理结果,确定该中间程序模块输出的图像处理结果正确的第一数量;
将该第一数量与该至少一个正常图像样本的图像数量的比值,确定为该中间程序模块对应的图像处理准确度。
如,经过比对发现,中间程序模块输出的各个图像样本的实际图像处理结果中,有10个图像样本的实际图像处理结果与标注的图像处理结果一致,则第一数量为10。
可以理解的是,获取到各层中间程序模块各自对应的图像处理准确度之后,通过比对各层中间程序模块的图像处理准确度可以定位出图像处理准确度下降幅度较大的中间程序模块,从而有利于定位可能存在异常的中间程序模块,以便于开发人员快速定位问题。
可见,本申请向业务系统的各层中间程序模块中注入了结果监测代码,在利用多个图像样本经过该业务系统的各层中间程序模块以及图像处理算法模型处理的过程中,通过中间程序模块中注入的结果监测代码便可以截获该中间程序模块处理各图像样本的实际图像处理结果。在此基础上,根据中间程序模块处理各个图像样本的实际图像处理结果以及各个图像样本标注的图像处理结果,便可以得到该中间程序模块对应的图像处理准确度,从而可以获取到业务系统中每层中间程序模块的图像处理准确度,并为分析业务系统中各层中间程序模块是否存在异常提供了依据,有利于快速准确定位出业务平台可能出现异常的程序模块。
同时,在本申请所提供的方法基础上,在分析业务系统中导致精度下降的程序模块的过程中无需通过逐层程序模块的代码分析,并层层挖掘来寻找异常原因,有利于异常定位效率。
可以理解的是,为了能够更为有效、准确的定位出导致业务系统出现图像处理精准度下降的模块,本申请还可以获取业务系统中图像处理算法模型对图像样本处理的图像处理结果,并得到在业务系统中该图像处理算法模型对应的图像处理准确度,以辅助分析其他程序模块是否存在异常。
进一步的,考虑到业务系统的图像采集程序模块会涉及到业务系统中待处理图像的采集,因此,通过该图像采集程序模块采集到图像的清晰度等图像效果,也会影响到业务系统对图像处理的准确度。因此作为一种可选方式,本申请采用的图像样本可以是预先通过图像采集程序模块采集到的图像。
而且,业务系统对图像的最终处理结果也是由该图像采集程序模块输出,因此,为了能够更为全面的分析业务系统的影响图像处理精准度的程序模块,也需要获取该图像采集程序模块对应的图像处理精准度。
如图4所示,其示出了本申请一种测试图像处理准确度的方法又一个实施例的流程示意图,本实施例的方法可以包括:
S401,向业务系统的各中间程序模块中注入监测代码。
该监测代码至少包括:结果监测代码。
在本实施例中,该业务系统至少包括:图像采集程序模块、至少一个该中间程序模块,以及,图像处理算法模型。
如前面所述,业务系统的图像处理流程为图像采集程序模块获得待处理的图像,然后图像依次经至少一个中间程序模块和图像处理算法模型处理后,图像处理结果再从图像处理算法模型经至少一个中间程序模块返回给图像采集程序模块。
S402,获取已标注图像处理结果的多个图像样本。
为了能够测试图像采集程序模块,该多个图像样本为通过图像采集程序模块采集到的图像。
在具体实现时,可以由图像采集程序模块预先通过终端获取图像样本并存储,同时,通过调用其他平台或者该业务系统的图像处理算法对图像样本进行图像处理,并结合各个图像样本的图像处理结果,进一步通过人工筛选,得到各个图像样本标注的图像处理结果。
可以理解的是,为了使得测试环境与真实环境贴近,可以通过图像采集程序模块从不同类型终端,且在不同拍摄环境下拍摄图像。由此可知,图像采集程序模块从终端获取图像中,很可能会采集到反光、清晰度不够或者模糊的图像,为了提高测试准确度,本申请中该图像样本可以包含反光等图像效果不符合要求的非正常图像样本,以及不存在反光等图像效果符合要求的正常图像样本。
S403,针对每个图像样本,模拟该图像采集程序模块调用最上层中间程序模块处理该图像样本,以使得该图像样本经该至少一个中间程序模块以及该图像处理算法模型处理后返回给该图像采集程序模块处理。
其中,该最上层中间程序模块为该至少一个中间程序模块中与该图像采集程序模块存在数据交互的中间程序模块。
如,可以通过编写脚本模拟图像采集程序模块对最上层中间程序模块的调用,通过运行该脚本可以向该最上层中间程序模块发送图像处理请求,并将图像样本传输给该最上层中间程序模块。
当然,通过其他方式跳过图像采集程序模块而直接调用最上层中间程序模块也同样适用于本实施例。
S404,针对每个该中间程序模块,通过注入到该中间程序模块中的结果监测代码分别截获该中间程序模块处理各个图像样本的实际图像处理结果。
该步骤可以参见前面的相关介绍。
S405,通过最下层中间程序模块中注入的该结果监测代码获得该图像处理算法模型输出的各个图像样本的实际图像处理结果。
其中,该最下层中间程序模块为该至少一个中间程序模块中,与该图像处理算法模型中存在数据交互的中间程序模块。即,最下层中间程序模块为将图像样本直接传输给该图像处理算法模型的中间程序模块,且图像处理算法模型处理图像样本所得到的图像处理结果会直接传输给该最下层中间程序模块。
由此可知,最下层中间程序模块可以获得该图像处理算法模型输出的各个图像样本的实际图像处理结果,因此,通过注入到该最下层中间程序模块的结果监测代码可以捕获到图像处理算法模型输入该最下层中间程序模块的图像处理结果,从而得到图像处理算法模型处理图像样本的图像处理结果。
S406,截获该图像采集程序模块输出各个图像样本的实际图像处理结果。
其中,该图像采集程序输出的图像样本的实际处理结果为该业务系统最终输出的图像样本的实际处理结果,基于此,可以直接截获业务系统输出的各个图像样本的实际处理结果,从而得到图像采集程序对各个图像样本的实际处理结果。
S407,依据该图像处理算法模型输出的各个图像样本的实际图像处理结果以及各个图像样本标注的图像处理结果,确定该图像处理算法模型的图像处理准确度。
可以理解的是,依据图像样本标注的图像处理结果,确定图像处理算法模型输出的图像样本的图像处理结果是否正确,从而结合图像处理结果正确的图像数量,可以确定出该业务系统中图像处理算法模型对应的图像处理准确度。
可选的,与前面确定中间程序模块的图像处理准确度相似,在图像样本包括前面提到的正常图像样本和非正常图像样本的情况下,还可以是依据该图像处理算法模型输出的各个图像样本的实际图像处理结果以及各个图像样本标注的图像处理结果,确定该图像处理算法模型输出的图像处理结果正确的第二数量。然后,将该第二数量与该至少一个正常图像样本的图像数量的比值,确定为该图像处理算法模型对应的图像处理准确度。
S408,针对每个该中间程序模块,依据该中间程序模块处理各个图像样本的实际图像处理结果以及各个图像样本标注的图像处理结果,确定该中间程序模块对应的图像处理准确度。
该步骤可以参见前面实施例的相关介绍,在此不再赘述。
S409,依据该图像采集程序模块输出的各个图像样本的实际图像处理结果以及各个图像样本标注的图像处理结果,确定该图像采集程序模块的图像处理准确度。
由于图像采集程序模块所能获取到的图像质量也是衡量图像采集程序模块的一个指标,因此,图像采集程序模块对应的图像处理准确度可以基于所有图像样本标注的图像处理结果以及图像采集程序模块输出的所有图像样本的图像处理结果来得到。
如,图像采集程序模块的图像处理准确度为图像采集程序模块输出的图像处理结果正确的图像样本数量与所有图像样本数量的比值。
可以理解的是,由于业务系统会处理多个图像样本,为了区分图像样本,并能够各层程序模块以及图像处理算法模型中区分不同图像样本的图像处理结果,业务系统可以为每个图像样本分配一个唯一标识Gid,在图像样本被依次传递到各个程序模块的过程中都会携带该唯一标识,这样,每层程序模块以及图像处理算法模型输出图像样本的图像处理结果时,图像处理结果也会携带该唯一标识。这样,基于图像处理结果对应的唯一标识可以区分出该图像处理结果对应的唯一标识,可以分析出该图像处理结果所属的图像样本。
如,在模拟图像采集程序模块调用最上层中间程序模块时,为输入到该最上层中间程序模块的各个图像样本依次分配一个唯一标识,该唯一标识会随着图像样本或者图像样本的图像处理结果在后续各层程序模块和算法模型中传递。
可以理解的是,为了后续开发人员能够更为精准定位业务系统中存在异常的程序模块以及异常原因,本申请还可以通过结果监测代码获取中间程序模块的输入参数以及其他信息,具体可以根据需要设定。
可以理解的是,业务系统中各个程序模块在处理图像过程中的耗时也可以反映出各个程序模块的异常状况,因此,本申请实施例中,向中间程序模块注入的监测代码还可以包括:耗时监测代码。该耗时监测代码可以监测中间程序模块处理每个图像样本的耗时。
相应的,针对每个该中间程序模块,本申请还可以通过注入到该中间程序模块中的耗时监测代码分别获取该中间程序模块处理各个图像样本的耗时信息。
其中,该耗时信息可以是中间程序模块的总耗时,也可以是中间程序模块中不同函数各自的耗时。
其中,针对每个图像样本,通过该耗时监测代码还可以获取到中间程序模块以及中间程序各个函数被调用的调用起始时刻以及调用结束的调用结束时刻。在该种情况下,针对每个图像样本,可以结合最上层中间程序模块中最下层程序模块中各个函数被调用的调用起始时刻和调用结束时刻,可以分析出图像处理算法模型被调用的起始时刻以及输出图像结果的时刻,从而可以得到该图像处理算法模型处理图像样本的耗时。
相应的,针对每个图像样本,可以获取最上层程序模块向图像采集程序模块传输图像样本的图像处理结果的起始时刻,以及该图像采集程序模块输出该图像样本的结束时刻,并基于该起始时刻和结束时刻可以得到该图像采集程序模块处理图像样本的耗时。
为了便于理解本申请的方案,下面结合一具体应用场景进行介绍。以图2所示的业务系统为例,在该业务系统的组成架构的基础上,本申请测试图像处理准确度的原理示意图可以参见图5。在图5中以图像处理算法模型为OCR算法模型为例。
如图5可以看出,通过对外程序层(即图像采集程序模块)可以预先获取到多个图像样本,而图像样本会按照业务系统的各层程序从上到下依次调用并对图像样本进行处理。
同时,每个程序模块传输给下一层程序模块或者算法模型的图像样本都会携带有该图像样本的唯一标识。因此,通过每个中间程序模块中插桩代码可以输出每个程序模块对应的图像处理结果的数据。这样,通过将各个中间程序模块输出的图像处理结果与图像样本标注的图像处理结果进行比对,便可以最终分析出各中间程序模块对应的图像处理精准度。
如图5所示,该业务系统从下到上各种程序模块对应的图像处理精准度会逐层有所下降,这样根据下降幅度可以分析是否存在程序模块异常。
下面结合图6对图5所示应用场景进行详细介绍。如图6所示的测试图像处理准确度的方法的流程可以包括:
S601,向业务系统的各中间程序模块中注入监测代码。
该监测代码至少包括:结果监测代码。
当然,该监测代码还可以包括:耗时监测代码。
如,业务逻辑封装层采用JAVE语言,则可以采用AspectJ工具进行动态代码的插桩注入;而业务中间件层和OCR算法工程化层采用的是C++语言,则可以采用AspectC++进行静态代码预编译进行代码插桩。
S602,获取已标注字符识别结果的多个图像样本。
多个图像样本为通过对外程序模块采集到的图像,且该多个图像样本包括:正常图像样本集和不正常图像样本集,正常图像样本集包括至少一个图像效果符合要求的图像样本;不正常图像样本集包括至少一个图像效果不符合要求的图像样本。
S603,针对每个图像样本,模拟该对外程序模块调用业务封装程序层,并将图像样本以及为该图像样本分配的唯一标识传输给业务封装程序层,以使得该图像样本经业务封装程序层、业务中间件层、OCR算法工程化层以及OCR算法模型处理后返回给该对外程序模块处理。
S604,针对业务封装程序层、业务中间件层、OCR算法工程化层中任意一个中间程序模块,依据各个图像样本的唯一标识,通过该中间程序模块中的结果监测代码截获该中间程序模块处理得到的各个图像样本的实际字符识别结果。
其中,业务封装程序层、业务中间件层、OCR算法工程化层均属于中间程序模块。
如图5中该任意一个中间程序模块均会存在插桩输出,即通过插桩注入的代码获取到的图像处理结果。
在监测代码包括耗时监测代码的情况下,可以通过该中间程序模块中注入的耗时监测代码获取中间程序模块中个函数分别处理各个图像样本的耗时。
同时,针对每个图像样本,根据OCR算法工程化层中耗时监测代码获取到的该OCR算法工程化层中各个函数的起始调用时间和结束调用时间,分析出该OCR算法模型处理该图像样本的耗时。
类似的,针对每个图像样本,可以根据业务封装程序层中耗时监测代码获取到的该业务封装程序中各个函数的起始调用时间和结束调用时间,可以分析出该对外程序层处理图像样本的耗时。
S605,通过OCR算法工程化层中注入的结果监测代码获得OCR算法模型向OCR算法工程化层输入的各个图像样本的实际字符识别结果,得到OCR算法模型处理各个图像样本的实际字符识别结果。
S606,截获该对外程序模块输出各个图像样本的实际字符识别结果。
其中,该图像采集程序输出的图像样本的实际处理结果为该业务系统最终输出的图像样本的实际处理结果,基于此,可以直接截获业务系统输出的各个图像样本的实际处理结果,从而得到图像采集程序对各个图像样本的实际处理结果。
S607,针对每个该中间程序模块,依据该中间程序模块处理各个图像样本的实际字符识别结果以及各个图像样本标注的字符识别结果,确定出该中间程序模块正确识别出的图像样本的第一数量,并确定该第一数量与正常样本集中图像样本的数量的第一比值,将该第一比值确定为该中间程序模块对应的图像处理准确度。
其中,为了便于区分,将第一数量与正常样本集中图像样本的数量的比值称为第一比值,而将后面步骤S607中第二数量与正常样本集中图像样本的数量的比值称为第二比值。相应的,将后续步骤S609中的比值称为第三比值。
如图5中,业务封装程序层对应的图像处理准确度为80.3%、业务中间件层对应的图像处理准确度为84.6%、OCR算法工程化层对应的图像处理准确度为90.3%。
S608,依据该OCR算法模型输出的各个图像样本的实际图像处理结果以及各个图像样本标注的图像处理结果,确定出OCR算法模型正确识别出的图像样本的第二图像数量,确定该第二图像数量与正常样本集中图像样本的数量的第二比值,将该第二比值确定该OCR算法模型的图像处理准确度。
如图5中,该OCR算法模型的图像处理准确度为96.6%。
S609,依据该对外程序模块输出的各个图像样本的实际字符识别结果以及各个图像样本标注的字符识别结果,确定出对外程序模块正确识别出的图像样本的第三数量,确定该第三数量与所有图像样本的总数量的第三比值,将该第三比值确定该对外程序模块的图像处理准确度。
如图5所示,该对外程序模块对应的图像处理准确度为77.6%。
对应本申请的一种测试图像处理准确度的方法,本申请还提供了一种测试图像处理准确度的装置。
如图7所示,其示出了本申请一种测试图像处理准确度的装置一个实施例的组成结构示意图,本实施例的装置可以包括:
代码注入单元701,用于向业务系统的各中间程序模块中注入监测代码,所述监测代码至少包括:结果监测代码,所述业务系统包括:至少一个所述中间程序模块,以及,图像处理算法模型;
样本获取单元702,用于获取已标注图像处理结果的多个图像样本;
样本测试单元703,用于针对每个所述图像样本,依据所述业务系统的图像处理逻辑,将所述图像样本依次经所述至少一个中间程序模块以及所述图像处理算法模型处理,以最终得到所述业务系统对所述图像样本的图像处理结果;
第一监测单元704,用于针对每个所述中间程序模块,通过注入到所述中间程序模块中的结果监测代码分别截获所述中间程序模块处理各个图像样本的实际图像处理结果;
第一精度确定单元705,用于针对每个所述中间程序模块,依据所述中间程序模块处理各个图像样本的实际图像处理结果以及各个图像样本标注的图像处理结果,确定所述中间程序模块对应的图像处理准确度。
如图8所示,其示出了本申请一种测试图像处理准确度的装置的又一种组成结构示意图,在图8中,该装置除了包括代码注入单元701、样本获取单元702、样本测试单元703、第一监测单元704和第一精度确定单元705之外,还可以包括:
第二监测单元706,用于通过最下层中间程序模块中注入的所述结果监测代码获得所述图像处理算法模型输出的各个图像样本的实际图像处理结果,其中,所述最下层中间程序模块为所述至少一个中间程序模块中,与所述图像处理算法模型中存在数据交互的中间程序模块;
第二精度确定单元707,用于依据所述图像处理算法模型输出的各个图像样本的实际图像处理结果以及各个图像样本标注的图像处理结果,确定所述图像处理算法模型的图像处理准确度。
在又一种可能的实现方式中,所述业务系统还包括:图像采集程序模块,所述图像采集程序模块用于响应于终端的图像处理请求,通过所述终端采集待处理的图像;
所述多个图像样本为通过所述图像采集程序模块获取到的图像;
所述装置还包括:
第三监测单元708,用于截获所述图像采集程序模块输出各个图像样本的实际处理结果,所述图像采集程序输出的图像样本的实际处理结果为所述业务系统最终输出的图像样本的实际图像处理结果;
第三精度确定单元709,用于依据所述图像采集程序模块输出的各个图像样本的实际图像处理结果以及各个图像样本标注的图像处理结果,确定所述图像采集程序模块的图像处理准确度。
可选的,所述样本测试单元,具体为,用于针对每个所述图像样本,模拟所述图像采集程序模块调用最上层中间程序模块处理所述图像样本,以使得所述图像样本经所述至少一个中间程序模块以及所述图像处理算法模型处理后返回给所述图像采集程序模块处理,所述最上层中间程序模块为所述至少一个中间程序模块中与所述图像采集程序模块存在数据交互的中间程序模块。
可选的,以上装置的实施例中,所述多个图样样本包括:至少一个图像效果不符合要求的非正常图像样本以及至少一个图像效果符合要求的正常图像样本;
所述第一精度确定单元,包括:
第一数量确定子单元,用于依据所述中间程序模块处理各个图像样本的实际图像处理结果以及各个图像样本标注的图像处理结果,确定所述中间程序模块输出的图像处理结果正确的第一数量;
第一精度确定子单元,用于将所述第一数量与所述至少一个正常图像样本的图像数量的比值,确定为所述中间程序模块对应的图像处理准确度;
所述第二精度确定单元,包括:
第二数量确定子单元,用于依据所述图像处理算法模型输出的各个图像样本的实际图像处理结果以及各个图像样本标注的图像处理结果,确定所述图像处理算法模型输出的图像处理结果正确的第二数量;
第二精度确定子单元,用于将所述第二数量与所述至少一个正常图像样本的图像数量的比值,确定为所述图像处理算法模型对应的图像处理准确度。
可选的,在以上装置实施例中,该监测代码还包括:耗时监测代码;
该装置还可以包括:
耗时监测单元,用于针对每个所述中间程序模块,通过注入到所述中间程序模块中的耗时监测代码分别获取所述中间程序模块处理各个图像样本的耗时信息。
又一方面,本申请还提供了一种服务器,参见图9,其示出了本申请实施例的测试图像处理准确度的方法所适用的服务器的一种组成结构示意图。在图9中,该服务器900可以包括:处理器901和存储器902。
可选的,该服务器还可以包括:通信接口903、输入单元904和显示器905和通信总线906。
处理器901、存储器902、通信接口903、输入单元904、显示器905、均通过通信总线906完成相互间的通信。
在本申请实施例中,该处理器901,可以为中央处理器、现成可编程门阵列(FPGA)或者其他可编程逻辑器件等。
该处理器可以调用存储器902中存储的程序,具体的,可以处理器可以执行图3至图6中业务系统中服务器侧所执行的操作。
存储器902中用于存放一个或者一个以上程序,程序可以包括程序代码,所述程序代码包括计算机操作指令,在本申请实施例中,该存储器中至少存储有用于实现以下功能的程序:
向业务系统的各中间程序模块中注入监测代码,该监测代码至少包括:结果监测代码,该业务系统包括:至少一个该中间程序模块,以及,图像处理算法模型;
获取已标注图像处理结果的多个图像样本;
针对每个该图像样本,依据该业务系统的图像处理逻辑,将该图像样本依次经该至少一个中间程序模块以及该图像处理算法模型处理,以最终得到该业务系统对该图像样本的图像处理结果;
针对每个该中间程序模块,通过注入到该中间程序模块中的结果监测代码分别截获该中间程序模块处理各个图像样本的实际图像处理结果;
针对每个该中间程序模块,依据该中间程序模块处理各个图像样本的实际图像处理结果以及各个图像样本标注的图像处理结果,确定该中间程序模块对应的图像处理准确度。
在一种可能的实现方式中,该存储器902可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、以上所提到的程序,以及至少一个功能所需的应用程序等;存储数据区可存储根据服务器的使用过程中所创建的数据。
此外,存储器902可以包括高速随机存取存储器,还可以包括非易失性存储器等。
该通信接口903可以为通信模块的接口。
本申请还可以包括输入单元905,该输入单元可以包括感应触摸显示面板上的触摸事件的触摸感应单元、键盘等等。
该显示器904包括显示面板,如触摸显示面板等。
当然,图9所示的服务器结构并不构成对本申请实施例中服务器的限定,在实际应用中服务器可以包括比图9所示的更多或更少的部件,或者组合某些部件。
另一方面,本申请还提供了一种存储介质,该存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上任意一个实施例中的测试图像处理准确度的方法。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
以上仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (7)
1.一种测试图像处理准确度的方法,其特征在于,包括:
向业务系统的各中间程序模块中注入监测代码,所述监测代码至少包括:结果监测代码,所述业务系统包括:至少一个中间程序模块,以及,图像处理算法模型;
获取已标注图像处理结果的多个图像样本,所述多个图样样本包括:至少一个图像效果不符合要求的非正常图像样本以及至少一个图像效果符合要求的正常图像样本;
针对每个所述图像样本,依据所述业务系统的图像处理逻辑,将所述图像样本依次经所述至少一个中间程序模块以及所述图像处理算法模型处理,以最终得到所述业务系统对所述图像样本的图像处理结果;
针对每个所述中间程序模块,通过注入到所述中间程序模块中的结果监测代码分别截获所述中间程序模块处理各个图像样本的实际图像处理结果;
针对每个所述中间程序模块,依据所述中间程序模块处理各个图像样本的实际图像处理结果以及各个图像样本标注的图像处理结果,确定所述中间程序模块输出的图像处理结果正确的第一数量;
将所述第一数量与至少一个正常图像样本的图像数量的比值,确定为所述中间程序模块对应的图像处理准确度;
通过最下层中间程序模块中注入的所述结果监测代码获得所述图像处理算法模型输出的各个图像样本的实际图像处理结果,其中,所述最下层中间程序模块为所述至少一个中间程序模块中,与所述图像处理算法模型中存在数据交互的中间程序模块;
依据所述图像处理算法模型输出的各个图像样本的实际图像处理结果以及各个图像样本标注的图像处理结果,确定所述图像处理算法模型输出的图像处理结果正确的第二数量;
将所述第二数量与至少一个正常图像样本的图像数量的比值,确定为所述图像处理算法模型对应的图像处理准确度。
2.根据权利要求1所述的测试图像处理准确度的方法,其特征在于,所述业务系统还包括:图像采集程序模块,所述图像采集程序模块用于响应于终端的图像处理请求,通过所述终端采集待处理的图像;
所述多个图像样本为通过所述图像采集程序模块获取到的图像;
所述方法还包括:
截获所述图像采集程序模块输出各个图像样本的实际处理结果,所述图像采集程序模块输出的图像样本的实际处理结果为所述业务系统最终输出的图像样本的实际图像处理结果;
依据所述图像采集程序模块输出的各个图像样本的实际图像处理结果以及各个图像样本标注的图像处理结果,确定所述图像采集程序模块的图像处理准确度。
3.根据权利要求2所述的测试图像处理准确度的方法,其特征在于,所述依据所述业务系统的图像处理逻辑,将所述图像样本依次经所述至少一个中间程序模块以及所述图像处理算法模型处理,以最终得到所述业务系统对所述图像样本的图像处理结果,包括:
模拟所述图像采集程序模块调用最上层中间程序模块处理所述图像样本,以使得所述图像样本经所述至少一个中间程序模块以及所述图像处理算法模型处理后返回给所述图像采集程序模块处理,所述最上层中间程序模块为所述至少一个中间程序模块中与所述图像采集程序模块存在数据交互的中间程序模块。
4.根据权利要求1至3任一项所述的测试图像处理准确度的方法,其特征在于,所述监测代码还包括:耗时监测代码;
所述方法还包括:
针对每个所述中间程序模块,通过注入到所述中间程序模块中的耗时监测代码分别获取所述中间程序模块处理各个图像样本的耗时信息。
5.一种测试图像处理准确度的装置,其特征在于,包括:
代码注入单元,用于向业务系统的各中间程序模块中注入监测代码,所述监测代码至少包括:结果监测代码,所述业务系统包括:至少一个中间程序模块,以及,图像处理算法模型;
样本获取单元,用于获取已标注图像处理结果的多个图像样本,所述多个图样样本包括:至少一个图像效果不符合要求的非正常图像样本以及至少一个图像效果符合要求的正常图像样本;
样本测试单元,用于针对每个所述图像样本,依据所述业务系统的图像处理逻辑,将所述图像样本依次经所述至少一个中间程序模块以及所述图像处理算法模型处理,以最终得到所述业务系统对所述图像样本的图像处理结果;
第一监测单元,用于针对每个所述中间程序模块,通过注入到所述中间程序模块中的结果监测代码分别截获所述中间程序模块处理各个图像样本的实际图像处理结果;
第一精度确定单元,用于针对每个所述中间程序模块,依据所述中间程序模块处理各个图像样本的实际图像处理结果以及各个图像样本标注的图像处理结果,确定所述中间程序模块对应的图像处理准确度;
第二监测单元,用于通过最下层中间程序模块中注入的所述结果监测代码获得所述图像处理算法模型输出的各个图像样本的实际图像处理结果,其中,所述最下层中间程序模块为所述至少一个中间程序模块中,与所述图像处理算法模型中存在数据交互的中间程序模块;
第二精度确定单元,用于依据所述图像处理算法模型输出的各个图像样本的实际图像处理结果以及各个图像样本标注的图像处理结果,确定所述图像处理算法模型的图像处理准确度;
所述第一精度确定单元,包括:
第一数量确定子单元,用于依据所述中间程序模块处理各个图像样本的实际图像处理结果以及各个图像样本标注的图像处理结果,确定所述中间程序模块输出的图像处理结果正确的第一数量;
第一精度确定子单元,用于将所述第一数量与至少一个正常图像样本的图像数量的比值,确定为所述中间程序模块对应的图像处理准确度;
所述第二精度确定单元,包括:
第二数量确定子单元,用于依据所述图像处理算法模型输出的各个图像样本的实际图像处理结果以及各个图像样本标注的图像处理结果,确定所述图像处理算法模型输出的图像处理结果正确的第二数量;
第二精度确定子单元,用于将所述第二数量与至少一个正常图像样本的图像数量的比值,确定为所述图像处理算法模型对应的图像处理准确度。
6.一种服务器,其特征在于,包括:
处理器和存储器;
所述处理器,用于调用并执行所述存储器中存储的程序;
所述存储器用于存储所述程序,所述程序至少用于:
向业务系统的各中间程序模块中注入监测代码,所述监测代码至少包括:结果监测代码,所述业务系统包括:至少一个中间程序模块,以及,图像处理算法模型;
获取已标注图像处理结果的多个图像样本,所述多个图样样本包括:至少一个图像效果不符合要求的非正常图像样本以及至少一个图像效果符合要求的正常图像样本;
针对每个所述图像样本,依据所述业务系统的图像处理逻辑,将所述图像样本依次经所述至少一个中间程序模块以及所述图像处理算法模型处理,以最终得到所述业务系统对所述图像样本的图像处理结果;
针对每个所述中间程序模块,通过注入到所述中间程序模块中的结果监测代码分别截获所述中间程序模块处理各个图像样本的实际图像处理结果;
针对每个所述中间程序模块,依据所述中间程序模块处理各个图像样本的实际图像处理结果以及各个图像样本标注的图像处理结果,确定所述中间程序模块输出的图像处理结果正确的第一数量;
将所述第一数量与至少一个正常图像样本的图像数量的比值,确定为所述中间程序模块对应的图像处理准确度;
通过最下层中间程序模块中注入的所述结果监测代码获得所述图像处理算法模型输出的各个图像样本的实际图像处理结果,其中,所述最下层中间程序模块为所述至少一个中间程序模块中,与所述图像处理算法模型中存在数据交互的中间程序模块;
依据所述图像处理算法模型输出的各个图像样本的实际图像处理结果以及各个图像样本标注的图像处理结果,确定所述图像处理算法模型输出的图像处理结果正确的第二数量;
将所述第二数量与至少一个正常图像样本的图像数量的比值,确定为所述图像处理算法模型对应的图像处理准确度。
7.一种存储介质,其特征在于,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上权利要求1至4任一项所述的测试图像处理准确度的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910661997.8A CN112286753B (zh) | 2019-07-22 | 2019-07-22 | 测试图像处理准确度的方法、装置、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910661997.8A CN112286753B (zh) | 2019-07-22 | 2019-07-22 | 测试图像处理准确度的方法、装置、服务器及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112286753A CN112286753A (zh) | 2021-01-29 |
CN112286753B true CN112286753B (zh) | 2023-03-17 |
Family
ID=74418652
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910661997.8A Active CN112286753B (zh) | 2019-07-22 | 2019-07-22 | 测试图像处理准确度的方法、装置、服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112286753B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101625556A (zh) * | 2009-08-14 | 2010-01-13 | 中国印钞造币总公司 | 生产现场控制机应用程序精确监控装置及其电路 |
CN101706749A (zh) * | 2009-11-18 | 2010-05-12 | 电子科技大学 | 基于软件安全缺陷检测的综合处理方法及其功能模块构架 |
CN102592530A (zh) * | 2012-02-29 | 2012-07-18 | 信利半导体有限公司 | 一种液晶显示模块的检测设备 |
CN104268055A (zh) * | 2014-09-01 | 2015-01-07 | 腾讯科技(深圳)有限公司 | 一种程序异常的监控方法和装置 |
CN109460365A (zh) * | 2018-11-16 | 2019-03-12 | 苏州好玩友网络科技有限公司 | 一种系统性能测试方法、装置、设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8666551B2 (en) * | 2008-12-22 | 2014-03-04 | Asm Japan K.K. | Semiconductor-processing apparatus equipped with robot diagnostic module |
-
2019
- 2019-07-22 CN CN201910661997.8A patent/CN112286753B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101625556A (zh) * | 2009-08-14 | 2010-01-13 | 中国印钞造币总公司 | 生产现场控制机应用程序精确监控装置及其电路 |
CN101706749A (zh) * | 2009-11-18 | 2010-05-12 | 电子科技大学 | 基于软件安全缺陷检测的综合处理方法及其功能模块构架 |
CN102592530A (zh) * | 2012-02-29 | 2012-07-18 | 信利半导体有限公司 | 一种液晶显示模块的检测设备 |
CN104268055A (zh) * | 2014-09-01 | 2015-01-07 | 腾讯科技(深圳)有限公司 | 一种程序异常的监控方法和装置 |
CN109460365A (zh) * | 2018-11-16 | 2019-03-12 | 苏州好玩友网络科技有限公司 | 一种系统性能测试方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112286753A (zh) | 2021-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110399293B (zh) | 系统测试方法、装置、计算机设备和存储介质 | |
CN109302522B (zh) | 测试方法、装置以及计算机系统和介质 | |
CN108427613B (zh) | 异常接口定位方法、装置、计算机设备和存储介质 | |
CN109408375B (zh) | 接口文档的生成方法和装置 | |
CN107526676B (zh) | 一种跨系统测试方法及装置 | |
WO2020232883A1 (zh) | 脚本缺陷扫描方法、装置、计算机设备和存储介质 | |
CN111797026A (zh) | 测试用例生成方法、装置、计算机设备及存储介质 | |
CN111782505A (zh) | 列车系统仿真测试方法、装置、计算机设备和存储介质 | |
CN108399125A (zh) | 自动化测试方法、装置、计算机设备和存储介质 | |
CN113132181B (zh) | 移动应用程序IPv6网络协议支持度检测方法及装置 | |
CN112882957B (zh) | 一种测试任务有效性检查方法和装置 | |
CN117370203A (zh) | 自动化测试方法、系统、电子设备及存储介质 | |
CN112286753B (zh) | 测试图像处理准确度的方法、装置、服务器及存储介质 | |
CN112612706A (zh) | 自动化测试方法、计算机设备及存储介质 | |
CN109815127B (zh) | 自动化脚本转换方法、装置、计算机设备和存储介质 | |
CN116932360A (zh) | 一种页面测试方法、装置、计算机设备和存储介质 | |
CN115599683A (zh) | 自动化测试方法、装置、设备及存储介质 | |
CN114490337A (zh) | 调测方法、调测平台、设备及存储介质 | |
CN108108369B (zh) | 公用接口库调用错误处理方法和装置 | |
CN111949510A (zh) | 测试处理方法、装置、电子设备及可读存储介质 | |
CN110109819A (zh) | 应用异常调试的处理方法、装置、设备及可读存储介质 | |
CN112631926B (zh) | 代码测试覆盖率显示方法、装置、计算机设备及存储介质 | |
CN110704218B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN114661609B (zh) | 人工智能医疗自动化测试集成系统 | |
CN112783759B (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 |