CN117251156A - 一种服务接口代码生成方法及装置 - Google Patents
一种服务接口代码生成方法及装置 Download PDFInfo
- Publication number
- CN117251156A CN117251156A CN202310273491.6A CN202310273491A CN117251156A CN 117251156 A CN117251156 A CN 117251156A CN 202310273491 A CN202310273491 A CN 202310273491A CN 117251156 A CN117251156 A CN 117251156A
- Authority
- CN
- China
- Prior art keywords
- template
- sub
- image
- service interface
- interface
- 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
- 238000000034 method Methods 0.000 title claims abstract description 66
- 238000013461 design Methods 0.000 claims abstract description 135
- 230000015654 memory Effects 0.000 claims description 29
- 230000011218 segmentation Effects 0.000 claims description 28
- 239000011159 matrix material Substances 0.000 claims description 26
- 238000004422 calculation algorithm Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 16
- 238000007781 pre-processing Methods 0.000 claims description 11
- 238000005260 corrosion Methods 0.000 claims description 10
- 230000007797 corrosion Effects 0.000 claims description 10
- 238000012216 screening Methods 0.000 claims description 10
- 238000010606 normalization Methods 0.000 claims description 9
- 230000000877 morphologic effect Effects 0.000 claims description 8
- 238000003708 edge detection Methods 0.000 claims description 7
- 230000009467 reduction Effects 0.000 claims description 6
- 230000009466 transformation Effects 0.000 claims description 6
- 238000012163 sequencing technique Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 13
- 238000011161 development Methods 0.000 abstract description 12
- 238000012827 research and development Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 19
- 230000018109 developmental process Effects 0.000 description 12
- 239000013598 vector Substances 0.000 description 11
- 230000006870 function Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000033228 biological regulation Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 235000002566 Capsicum Nutrition 0.000 description 1
- 239000006002 Pepper Substances 0.000 description 1
- 235000016761 Piper aduncum Nutrition 0.000 description 1
- 235000017804 Piper guineense Nutrition 0.000 description 1
- 244000203593 Piper nigrum Species 0.000 description 1
- 235000008184 Piper nigrum Nutrition 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000003709 image segmentation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 150000003839 salts Chemical class 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/30—Noise filtering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/75—Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
- G06V10/751—Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
-
- 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)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Image Analysis (AREA)
Abstract
本说明书涉及计算机技术领域,提供了一种服务接口代码生成方法及装置。该方法包括:接收界面设计图像;计算所述界面设计图像与预设的界面模板库中子模板的模板匹配率;若存在不小于第一阈值的模板匹配率,则确定最高模板匹配率对应的第一子模板;从第一服务接口代码库中匹配所述第一子模板对应的第一服务接口代码。通过本说明书实施例,实现自动识别UI设计图中的服务接口并生成服务接口代码,可降低软件项目开发过程中的人力成本和人为失误率,提高研发效率和代码自动生成的准确率。
Description
技术领域
本说明书涉及计算机技术领域,尤其是涉及一种服务接口代码生成方法及装置。
背景技术
完整的软件项目开发流程在项目启动阶段和需求阶段之后,由UI设计师针对软件项目提供UI设计规范等用于研发工程师进行研发的软件项目开发文件,UI设计规范等文件主要是明确常用界面、形式、尺寸等,方便研发快速开发,UI设计通常涵盖交互的内容,研发工程师根据UI设计规范中的UI设计图手动编写软件项目的服务接口,然而服务接口较多的软件项目存在人力成本和人为失误率较高、研发效率较低的问题,现有的将输入的UI设计图转化为代码的pix2code、sketch2code等工具只能处理简单的UI设计图,并且精度较差、灵活度低,因此亟需一种服务接口代码生成方法,实现自动识别UI设计图中的服务接口并生成服务接口代码,以降低软件项目开发过程中的人力成本和人为失误率,提高研发效率和代码自动生成的准确率。
发明内容
鉴于目前服务接口较多的软件项目存在人力成本和人为失误率较高、研发效率较低的问题,现有的将输入的UI设计图转化为代码的pix2code、sketch2code等工具只能处理简单的UI设计图,并且精度较差、灵活度低,提出了本方案以便克服上述问题或者至少部分地解决上述问题。
一方面,本说明书的一些实施例的目的在于提供一种服务接口代码生成方法,所述方法包括:
接收界面设计图像;
计算所述界面设计图像与预设的界面模板库中子模板的模板匹配率;
若存在不小于第一阈值的模板匹配率,则确定最高模板匹配率对应的第一子模板;
从第一服务接口代码库中匹配所述第一子模板对应的第一服务接口代码。
进一步地,接收界面设计图像之后,还包括,对所述界面设计图像进行预处理。
进一步地,所述对所述界面设计图像进行预处理,包括:
对所述界面设计图像进行灰度变换,得到第一灰度图像;
将所述第一灰度图像输入至第一级联降噪滤波器中,得到第二灰度图像;
将所述第二灰度图像输入至预设的边缘检测算法中,以完成对界面设计图像的预处理。
进一步地,所述计算所述界面设计图像与预设的界面模板库中子模板的模板匹配率,包括:
根据所述子模板与所述界面设计图像的字符及字符位置信息计算第一匹配率;
根据所述子模板与所述界面设计图像的指纹信息计算第二匹配率;
根据所述子模板与所述界面设计图像的梯度图计算第三匹配率;
利用所述第一匹配率、所述第二匹配率和所述第三匹配率中的一个或多个计算所述模板匹配率。
进一步地,所述根据所述子模板与所述界面设计图像的字符位置信息计算第一匹配率,包括:
获取所述界面设计图像中的所有字符及字符位置信息;
从所述预设的界面模板库中调用所述子模板对应的字符及字符位置信息;
逐个匹配所述界面设计图像中的所有字符及字符位置信息和所述子模板对应的字符及字符位置信息,得到字符匹配结果和字符位置信息匹配结果;
通过为所述字符匹配结果和所述字符位置信息匹配结果分别分配字符权重和字符位置信息权重,计算所述第一匹配率。
进一步地,所述根据所述子模板与所述界面设计图像的指纹信息计算第二匹配率,包括:
将所述界面设计图像均压缩至第一尺寸;
对压缩后的界面设计图像进行离散余弦变换,得到对应的系数矩阵;
将所述系数矩阵压缩至第二尺寸;
计算压缩后系数矩阵的均值;
判断所述压缩后系数矩阵中的每个系数是否大于所述均值;
若当前系数大于所述均值,则将该系数替换为第一系数,否则替换为第二系数;
根据替换后系数矩阵中的系数确定第一指纹信息;
调用所述子模板对应的第二指纹信息;
对所述第一指纹信息和所述第二指纹信息进行异或运算;
将运算结果中数字为所述第一系数的个数和数字总数的比值作为第二匹配率。
进一步地,所述根据所述子模板与所述界面设计图像的梯度图计算第三匹配率,包括:
计算所述界面设计图像的梯度图;
将所述梯度图划分为多个大小为第三尺寸的子图片;
对所述多个大小为第三尺寸的子图片进行归一化处理;
计算归一化处理结果对应的第一直方图数据;
调用所述子模板对应的第二直方图数据;
计算所述第一直方图数据和所述第二直方图数据中各维度的子匹配率;
通过为所述各维度的子匹配率分配对应的权重计算所述第三匹配率。
进一步地,所述利用所述第一匹配率、所述第二匹配率和所述第三匹配率中的一个或多个计算所述模板匹配率,包括:
选取所述第一匹配率、所述第二匹配率和所述第三匹配率中的一个或多个;
通过为选取结果分配对应的参数计算所述模板匹配率。
进一步地,所述确定最高模板匹配率对应的第一子模板之后,进一步包括:
统计调用所述预设的界面模板库中的子模板的次数;
根据所述次数计算子模板的历史调用频率;
按所述历史调用频率从高到低的顺序对所述预设的界面模板库中的子模板排序。
进一步地,若所述模板匹配率均小于所述第一阈值,进一步包括:
根据所述界面设计图像计算并筛选得到目标文字定位框;
对所述目标文字定位框中的文字图像进行形态学运算,得到对应的识别评分;
根据最高识别评分对应的识别结果从预设的服务接口要素库中匹配服务接口要素;
确定所述服务接口要素对应的第二服务接口代码。
进一步地,所述服务接口要素包括服务接口名称、服务接口入参和服务接口出参。
进一步地,所述根据所述界面设计图像计算并筛选得到目标文字定位框,包括:
计算所述界面设计图像的连通域,以确定所述界面设计图像的各文字区域;
根据所述各文字区域确定对应的文字定位框;
计算相邻文字定位框之间的距离;
筛选得到与相邻文字定位框之间的距离大于第二阈值的文字定位框。
进一步地,所述对目标文字定位框中的文字图像进行形态学运算,得到对应的识别评分,包括:
将筛选后的文字定位框中的文字图像输入至预设的分割算法中,得到对应的二值化图像;
将所述二值化图像进行画布拉伸以得到拉伸图像;
对所述拉伸图像分别进行腐蚀处理和膨胀处理,得到对应的腐蚀化图像和膨胀化图像;
调用预设的文字识别引擎依次识别所述拉伸图像、所述腐蚀化图像和所述膨胀化图像中的文字并给出对应的识别评分。
进一步地,所述根据最高识别评分对应的识别结果从预设的服务接口要素库中匹配服务接口要素,包括:
将所述服务接口要素库中的服务接口要素输入至预设的语义分割模型中,得到多个分割词;
在所述识别结果中逐个匹配所述多个分割词;
若所述多个分割词在所述识别结果中均成功匹配,则确定所述多个分割词对应的服务接口要素。
进一步地,所述确定所述服务接口要素对应的第二服务接口代码,包括:
从第二服务接口代码库中匹配所述服务接口要素对应的中间代码;
将所述中间代码中的第一变量、第二变量以及第三变量分别替换为所述服务接口要素中的服务接口入参、服务接口出参以及服务接口名称;
将替换后的中间代码作为所述服务接口代码。
另一方面,本说明书的一些实施例还提供一种服务接口代码生成装置,所述装置包括:
接收模块,用于接收界面设计图像;
计算模块,用于计算所述界面设计图像与预设的界面模板库中子模板的模板匹配率;
调用模块,用于若存在不小于第一阈值的模板匹配率,则确定最高模板匹配率对应的第一子模板;
匹配模块,用于从第一服务接口代码库中匹配所述第一子模板对应的第一服务接口代码。
另一方面,本说明书的一些实施例还提供了一种计算机设备,包括存储器、处理器、以及存储在所述存储器上的计算机程序,所述计算机程序被所述处理器运行时,执行上述方法的指令。
另一方面,本说明书的一些实施例还提供了一种计算机存储介质,其上存储有计算机程序,所述计算机程序被计算机设备的处理器运行时,执行上述方法的指令。
另一方面,本说明书的一些实施例还提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被计算机设备的处理器运行时,执行上述方法的指令。
本说明书的一些实施例提供的一个或者多个技术方案,至少具有如下的技术效果:
本说明书的实施例自动接收界面设计图像,调用预设的界面模板库中子模板计算模板匹配率,选取模板匹配率大于第一阈值中的最高模板匹配率对应的第一子模板,以提高子模板匹配的正确率,并根据第一子模板确定对应的第一服务接口代码,从而实现利用界面设计图像自动生成服务接口代码,相比于现有技术,可以提高开发效率、降低人力成本,还避免了人为开发中的失误情况,提高代码自动生产的准确率。
上述说明仅是本说明书的一些实施例技术方案的概述,为了能够更清楚了解本说明书的一些实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本说明书的一些实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本说明书的一些实施例的具体实施方式。
附图说明
为了更清楚地说明本说明书的一些实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示出了本说明书一些实施例中服务接口代码生成方法的实施系统示意图;
图2示出了本说明书一些实施例中一种服务接口代码生成方法的流程图;
图3为本说明书一些实施例中计算模板匹配率的步骤示意图;
图4为本说明书一些实施例中计算第二匹配率的步骤示意图;
图5为本说明书一些实施例中计算第三匹配率的步骤示意图;
图6为本说明书一些实施例中一种服务接口代码生成装置的结构示意图;
图7为本说明书一些实施例中提供的计算机设备结构示意图。
【附图标记说明】
1、服务接口代码生成系统;
11、终端;
12、服务器;
61、接收模块;
62、计算模块;
63、调用模块;
64、匹配模块;
702、计算机设备;
704、处理器;
706、存储器;
708、驱动机构;
710、输入/输出接口;
712、输入设备;
714、输出设备;
716、呈现设备;
718、图形用户接口;
720、网络接口;
722、通信链路;
724、通信总线。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书的一些实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的一些实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
需要说明的是,本文的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本文的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。需要说明的是,本申请技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。
如图1所示为本发明实施例一种服务接口代码生成方法的实施系统示意图,可以包括:终端11以及服务器12,终端11和服务器12之间通过网络进行通信,网络可以包括局域网(Local Area Network,简称为LAN)、广域网(Wide Area Network,简称为WAN)、因特网或其组合,并连接至网站、用户设备(例如计算设备)和后端系统。开发人员可以通过终端11向服务器12发送界面设计图像,服务器12接收到接收界面设计图像后,对界面设计图像进行分析处理,得到服务接口代码,并将服务接口代码发送给终端11,以使开发人员根据服务接口代码进行后续开发任务。
在本说明书实施例中,所述服务器12可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(CDN,Content Delivery Network)、以及大数据和人工智能平台等基础云计算服务的云服务器。
在一个可选的实施例中,终端11可以包括但不限于自助终端设备、台式计算机、平板电脑、笔记本电脑、智能可穿戴设备等类型的电子设备。可选的,电子设备上运行的操作系统可以包括但不限于安卓系统、IOS系统、Linux、Windows等。当然,所述终端11并不限于上述具有一定实体的电子设备,其还可以为运行于上述电子设备中的软件。
此外,需要说明的是,图1所示的仅仅是本公开提供的一种应用环境,在实际应用中,还可以包括多个终端11,本说明书不做限制。
图2是本发明实施例提供的一种服务接口代码生成方法的流程图,本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或装置产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行。具体的如图2所示,由所述服务器侧执行,所述方法可以包括:
S101:接收界面设计图像;
S102:计算所述界面设计图像与预设的界面模板库中子模板的模板匹配率;
S103:若存在不小于第一阈值的模板匹配率,则确定最高模板匹配率对应的第一子模板;
S104:从第一服务接口代码库中匹配所述第一子模板对应的第一服务接口代码。
本说明书的实施例自动接收界面设计图像,调用预设的界面模板库中子模板计算模板匹配率,选取模板匹配率大于第一阈值中的最高模板匹配率对应的第一子模板,以提高子模板匹配的正确率,并根据第一子模板确定对应的第一服务接口代码,从而实现利用界面设计图像自动生成服务接口代码,相比于现有技术,可以提高开发效率、降低人力成本,还避免了人为开发中的失误情况,提高代码自动生产的准确率。
具体而言,一些实施例中,界面设计图像是指软件项目开发时由界面设计师绘制的对软件的人机交互、操作逻辑、界面美观的整体设计图,也可以被叫作UI设计图,预设的界面模板库中包含多个子模板,子模板即UI设计图模板,为了节省人力成本、提高开发效率,将界面模板库中的子模板与接受到的界面设计图像逐个匹配计算模板匹配率,模板匹配率用于衡量界面模板库中的子模板与界面设计图像之间的相似程度,具体地,模板匹配率的计算可以考虑子模板和界面设计图像之间的文本内容相似度、子模板和界面设计图像之间文本所在位置的相似度、子模板和界面设计图像之间图像梯度的相似度等,在计算得到界面设计图像和预设的界面模板库中多个子模板的模板匹配率后,首先筛选大于第一阈值的模板匹配率,因为只有大于第一阈值的模板匹配率对应的子模板与界面设计图像的相似程度是可信的,或者说也可以认为不大于第一阈值的模板匹配率对应的子模板不足以作为目标匹配结果,之后,在存在大于第一阈值的模板匹配率的前提下,再选取最高模板匹配率对应的第一子模板,将该第一子模板作为界面设计图像的模板匹配结果,之后调用第一服务接口代码库,第一服务接口代码库包括:子模板、服务接口代码以及二者的映射关系,其中,服务接口指一个自动化系统与另一个自动化系统或人之间的共享边界,在软件开发项目中,服务接口代码是指一个UI设计图与另一个UI设计图或人之间共享的边界对应的代码,通过服务接口能实现应用程序页面的切换、跳转、信息录入等功能,从第一服务接口代码库中可以匹配得到第一子模板对应的第一服务接口代码之后,即完成了通过界面设计图像自动生成服务接口代码的过程。
在一些实施例中,所述接收界面设计图像之后,还可以包括,对所述界面设计图像进行预处理。
进一步地,在一些实施例中,所述对所述界面设计图像进行预处理,可以包括:
对所述界面设计图像进行灰度变换,得到第一灰度图像;
将所述第一灰度图像输入至第一级联降噪滤波器中,得到第二灰度图像;
将所述第二灰度图像输入至预设的边缘检测算法中,以完成对界面设计图像的预处理。
可以理解为,一些实施例中,图像预处理是对输入图像进行特征抽取、分割和匹配前所进行的处理,主要目的是消除图像中无关的信息,恢复有用的真实信息,增强有关信息的可检测性和最大限度地简化数据,从而改进特征抽取、图像分割、匹配和识别的可靠性,在接收到界面设计图像后,由于界面设计图像可以具有高清晰度、尺寸大的特点,因此在预处理时不需要考虑图像去雾、去模糊等处理,具体地,可以先对界面设计图像进行灰度变换,以使界面设计图像对比度扩展、特征明显,还能使图像具有更为简洁的数据结构(灰度图像的像素只要一个灰度值来表示)、减小图像尺寸、提高后续图像处理效率,一些实施例中,灰度变换方式可以为伽马变换、对数变换和采用分段线性变换函数等,本文对此不做限定,需要说明的是,进行灰度变换还能实现对颜色较深的界面设计图像(例如夜间模式下的界面设计图像)的反色处理,从而保证界面设计图像与后续子模板的顺利匹配。
一些实施例中,得到第一灰度图像后,将第一灰度图像输入至第一级联降噪滤波器中,以消除因灰度变换产生的图像噪声(存在于图像数据中的不必要的或多余的干扰信息),具体地,第一级联降噪滤波器可以采用中值滤波器(或自适应中值滤波器等)和高斯滤波器级联的方式,以消除图像中的椒盐噪声、高斯噪声、平滑其他非脉冲噪声以及尽可能的保护图像中细节信息,避免图像边缘的细化或者粗化。
一些实施例中,得到第二灰度图像后,为了提取图像的边缘信息、标识数字图像中亮度变化明显的点,需要对第二灰度图像进行边缘检测,将第二灰度图像输入至预设的边缘检测算法中,具体地,预设的边缘检测算法可以为Canny算法,Canny算法通常包括四个步骤:步骤a、高斯滤波;步骤b、计算第二灰度图像的梯度值和梯度方向;步骤c、过滤第二灰度图像的非最大值;步骤d、使用上下阈值来检测第二灰度图像的边缘。由于第二灰度图像已经是第一级联降噪滤波器处理后得到的图像,因此Canny算法中的步骤a可以省略,步骤c用于过滤第二灰度图像中的非边缘像素点,使模糊的边界变得清晰,步骤四用上下阈值的方法判断第二灰度图像潜在的边界,经边缘检测算法输出后,就完成了对界面设计图像的预处理。
参照附图3,在一些实施例中,所述计算所述界面设计图像与预设的界面模板库中子模板的模板匹配率,可以包括:
S301:根据所述子模板与所述界面设计图像的字符及字符位置信息计算第一匹配率;
S302:根据所述子模板与所述界面设计图像的指纹信息计算第二匹配率;
S303:根据所述子模板与所述界面设计图像的梯度图计算第三匹配率;
S304:利用所述第一匹配率、所述第二匹配率和所述第三匹配率中的一个或多个计算所述模板匹配率。
具体而言,一些实施例中,第一匹配率用于比较子模板与界面设计图像中的字符及字符位置信息的相似程度,第二匹配率是利用图像指纹信息来比较子模板与界面设计图像整体的相似程度的数值,第三匹配率是通过比较子模板与界面设计图像对应的图像梯度来判断两个图像相似与否的数值,其中,图像的字符及字符位置信息即图像中包含什么字符和包含的字符在图像中的具体坐标信息,图像指纹信息是指将图像通过特征提取、函数映射等处理方式保存起来,以在需要时浏览、查阅、比较或分析的字符串数据,能够用于判断图像的整体相似度,图像的梯度图也可以叫作梯度图像,梯度图像是通过计算图像的梯度得到的,具体地,一些实施例中,将图像X中每两个像素做差,结果赋值给原来像素,像素之间的差值形成的图像Y就是图像X对应的梯度图像。由于第一匹配率、第二匹配率和第三匹配率都能在不同维度上衡量两个图像的相似程度,因此在计算模板匹配率时,可以选取第一匹配率、第二匹配率和第三匹配率中的一个或多个来计算。
在一些实施例中,所述根据所述子模板与所述界面设计图像的字符位置信息计算第一匹配率,可以包括:
获取所述界面设计图像中的所有字符及字符位置信息;
从所述预设的界面模板库中调用所述子模板对应的字符及字符位置信息;
逐个匹配所述界面设计图像中的所有字符及字符位置信息和所述子模板对应的字符及字符位置信息,得到字符匹配结果和字符位置信息匹配结果;
通过为所述字符匹配结果和所述字符位置信息匹配结果分别分配字符权重和字符位置信息权重,计算所述第一匹配率。
可以理解为,一些实施例中,计算第一匹配率时,首先获取界面设计图像中的所有字符及字符位置信息,字符的获取可以采用预设的文字识别引擎,字符位置信息的获取预设的文本框定位引擎,本文对此不做限定,之后从所述预设的界面模板库中调用所述子模板对应的字符及字符位置信息,计算每个子模板和界面设计图像的第一匹配率,具体地,一些实施例中,可以逐个匹配所述界面设计图像中的所有字符及字符位置信息和所述子模板对应的字符及字符位置信息,并根据以下公式计算所述第一匹配率:
其中,simcharacter为第一匹配率,ω1为字符位置信息权重,ks为成功匹配的界面设计图像中的字符位置信息的数量,k为子模板中所有字符的数量,k也为子模板中的所有字符位置信息的数量,ω2为字符权重,kj为第j种字符在界面设计图像中出现的次数,l为界面设计图像中字符种类的数量。
第一匹配率的计算同时考虑了子模板和界面设计图像的字符相似程度和字符位置信息相似程度,并为字符相似程度和字符位置信息相似程度分配权重,以使第一匹配率考虑得更全面,需要说明的是,在分配权重时,也可以将一个权重设为1,另一个权重设为0,即仅将字符相似程度或字符位置信息相似程度作为第一匹配率。
参照附图4,在一些实施例中,所述根据所述子模板与所述界面设计图像的指纹信息计算第二匹配率,可以包括:
S401:将所述界面设计图像均压缩至第一尺寸;
S402:对压缩后的界面设计图像进行离散余弦变换,得到对应的系数矩阵;
S403:将所述系数矩阵压缩至第二尺寸;
S404:计算压缩后系数矩阵的均值;
S405:判断所述压缩后系数矩阵中的每个系数是否大于所述均值;
S406:若当前系数大于所述均值,则将该系数替换为第一系数,否则替换为第二系数;
S407:根据替换后系数矩阵中的系数确定第一指纹信息;
S408:调用所述子模板对应的第二指纹信息;
S409:对所述第一指纹信息和所述第二指纹信息进行异或运算;
S410:将运算结果中数字为所述第一系数的个数和数字总数的比值作为第二匹配率。
具体而言,一些实施例中,计算第二匹配率时,需要根据界面设计图像生成对应的图像指纹信息,具体地,首先将界面设计图像均压缩至第一尺寸,通常第一尺寸不小于8×8,不大于32×32,以在保留图像结构的同时降低图像信息量,还能去掉细节、大小和横纵比的差异,方便计算,例如可以将界面设计图像缩小为8×8共64个像素的图片,或32×32共1052个像素的图片,之后若界面设计图像经预处理则无需再次进行灰度变换操作,若未经预处理,则需要进行灰度变换以简化图片色彩,减少计算量,去除不必要的特征,再将界面设计图像进行离散余弦变换,离散余弦变换用于将数据或图像的压缩,能够将空域的信号转换到频域上,具有良好的去相关性的性能,例如,对于一个32×32的图片,离散余弦变换处理后可以得到一个32×32的系数矩阵,之后压缩该系数矩阵至第二尺寸,第二尺寸可以为8×8,具体压缩方式可以为选取图像左上角8×8的系数矩阵,因为左上角8×8的系数矩阵呈现了界面设计图像中的最低频率,仅需要这部分系数矩阵就可以得到对应的图像指纹信息,进一步地,计算压缩后系数矩阵的均值,判断该压缩后系数矩阵中的每个系数是否大于均值,若当前系数大于均值,则将该系数替换为第一系数,否则替换为第二系数,例如可以将第一系数设为0,第二系数设为1,也可以将第一系数设为1,第二系数设为0,本文对此不做限定,之后根据替换系数后系数矩阵中的系数确定第一指纹信息,再调用所述子模板对应的第二指纹信息,并对第一指纹信息和所述第二指纹信息进行异或运算,将运算结果中数字为所述第一系数的个数和数字总数的比值作为第二匹配率,例如,若第一系数为0,第二系数为1,此时第一指纹信息为100010010,第二指纹信息为101100011,异或运算结果中0的个数为5,数字总数为9,因此对应的第二匹配率为5/9。
参照附图5,在一些实施例中,所述根据所述子模板与所述界面设计图像的梯度图计算第三匹配率,可以包括:
S501:计算所述界面设计图像的梯度图;
S502:将所述梯度图划分为多个大小为第三尺寸的子图片;
S503:对所述多个大小为第三尺寸的子图片进行归一化处理;
S504:计算归一化处理结果对应的第一直方图数据;
S505:调用所述子模板对应的第二直方图数据;
S506:计算所述第一直方图数据和所述第二直方图数据中各维度的子匹配率;
S507:通过为所述各维度的子匹配率分配对应的权重计算所述第三匹配率。
可以理解为,一些实施例中,计算第三匹配率时,首先根据界面设计图像计算对应的梯度图,具体地,可以利用Sobel算子、Prewitt算子等计算界面设计图像的水平梯度和垂直梯度,分别得到水平方向梯度图和垂直方向梯度图,其中,水平方向梯度图强化了图像的垂直边缘特征,垂直方向梯度图强化了图像的水平边缘特征,使得图像中有用的特征(轮廓)得到保留,无关不重要的信息被去除,并根据水平方向梯度图和垂直方向梯度图得到最终的梯度图,之后,由于一整张梯度图里面的有效特征稀疏,影响运算效果,并且运算量大,因此需要将梯度图划分为多个小尺寸的子图片,即多个大小为第三尺寸的子图片,再根据多个小尺寸图片中的灰度值矩阵绘制对应的多个子梯度直方图,并根据将多个子梯度直方图进行归一化处理,得到一整张梯度图对应的归一化处理结果,再计算归一化处理结果对应的第一直方图数据,以解决图像光照度不均匀的问题,调用所述子模板对应的第二直方图数据,根据所述第一直方图数据和第二直方图数据计算第三匹配率,具体地,一些实施例中,可以根据所述第一直方图数据和第二直方图数据,利用如下公式计算所述第三匹配率:
其中,p为第三匹配率,n为直方图维数,ωi为直方图数据中第i个维度的权重,si为第一直方图数据中第i个维度的统计值,mi为第二直方图数据中第i个维度的统计值。
一些实施例中,对应于上述第三匹配率的计算过程,将所述梯度图划分为多个大小为第三尺寸的子图片时,第三尺寸可以取8×8,对每张子图片进行归一化处理时,首先确立一个角度范围0°到180°,并将角度范围分为9份,则每个区间占20°,由于子图片对应的系数矩阵中每个数值还有一个相应的角度(原因是梯度为矢量),若系数矩阵中数值为2,角度为80°,则将该数值划分到80°对应的角度范围,若数值为4,角度为10°,则在0°和20°均赋值4/2=2,另,某个像素对应的梯度角度大于160°,则将该像素的梯度值按比例分配给0°和160°,从而实现将所有子图片均表示在0°、20°、……、160°对应的共9个角度区间中,即每个子图片可以由一个含9个数值的九维向量表示,之后由于子图片的尺寸比较小,为了方便计算,可以按从左至右、从上到下的顺序确定由2×2个子图片组成的子直方图,并拼接该2×2个子图片对应的九维向量,得到该子直方图对应的2×2×9=36维的向量,将该向量进行数值归一化,例如对于向量[128,64,32],向量长度为将向量[128,64,32]中每个元素除以向量长度,得到数值归一化后的归一化向量[0.87,0.43,0.22],重复对每个子直方图的数值归一化过程,得到对应的多个归一化向量,将多个归一化向量依次拼接,得到界面设计图像对应的特征向量,即第一直方图数据。
在一些实施例中,所述利用所述第一匹配率、所述第二匹配率和所述第三匹配率中的一个或多个计算所述模板匹配率,可以包括:
选取所述第一匹配率、所述第二匹配率和所述第三匹配率中的一个或多个;
通过为选取结果分配对应的参数计算所述模板匹配率。
可以理解为,一些实施例中,可以通过所述第一匹配率、所述第二匹配率和所述第三匹配率中的一个或多个,利用如下公式计算所述模板匹配率:
其中,sim为模板匹配率,simcharacter为第一匹配率,α为第一参数,simentirety为第二匹配率,β为第二参数,simrim为第三匹配率,γ为第三参数。其中,第一参数、第二参数和第三参数的和为1,目的是使模板匹配率在[0,1]之间,例如,第一参数、第二参数和第三参数可以分别为0.2、0.2和0.6,同时,如果第一匹配率、第二匹配率、第三匹配率中任一个没有被选择去计算模板匹配率的,则相应的第一参数或第二参数或第三参数为0。
进一步地,在一些实施例中,所述确定最高模板匹配率对应的第一子模板之后,进一步包括:
统计调用所述预设的界面模板库中的子模板的次数;
根据所述次数计算子模板的历史调用频率;
按所述历史调用频率从高到低的顺序对所述预设的界面模板库中的子模板排序。
可以理解为,一些实施例中,历史调用频率是指固定时间段内界面模板库中的子模板被调用的次数,预设的界面模板库中的子模板中,相同时间段内不同子模板被调用的次数不同,将高历史调用频率对应的子模板排序在前面有助于提高子模板的匹配效率。
进一步地,在一些实施例中,若所述模板匹配率均小于所述第一阈值,进一步可以包括:
根据所述界面设计图像计算并筛选得到目标文字定位框;
对所述目标文字定位框中的文字图像进行形态学运算,得到对应的识别评分;
根据最高识别评分对应的识别结果从预设的服务接口要素库中匹配服务接口要素;
确定所述服务接口要素对应的第二服务接口代码。
可以理解为,一些实施例中,文字定位框是指界面设计图像中的文字所在位置的定位框,形态学是基于形状处理图像的一组广泛的图像处理运算,基本思想是用具有一定形态的结构元素去度量和提取图像中的对应形状以达到对图像分析和识别的目的,形态学运算可以包括膨胀、腐蚀、开启和闭合等,其中膨胀、腐蚀具有消除噪声、腐蚀分割出独立的图像元素或膨胀在图像中连接相邻的元素、寻找图像中的明显的极大值区域或极小值区域以及求出图像的梯度的作用。当所述模板匹配率均小于所述第一阈值,则认为在预设的界面模板库中并没有合适的子模板与界面设计图像匹配或者相似程度高,为了解决预设的界面模板库中子模板匹配失败时服务接口代码生成的问题,可以直接分析识别界面设计图像中的文字并给出识别评分,将最高识别评分对应的识别结果作为服务接口要素,以匹配得到第二服务接口代码,其中。
在一些实施例中,所述服务接口要素可以包括服务接口名称、服务接口入参和服务接口出参。
可以理解为,一些实施例中,服务接口要素是指调用服务接口代码时必需的参数,服务接口名称是界面设计图像中服务接口的名称,起到区分不同服务接口的作用,服务接口入参是指该服务接口需要输入的参数,服务接口出参是指该服务接口需要输出的参数,并且服务接口名称、服务接口入参和服务接口出参并非是大段的文字,在界面设计图像中显示为互相独立、分离的文本内容,例如对于服务接口要素A:服务接口名称可以为添加输入钱包ID,服务接口入参可以为对方钱包ID,服务接口出参可以为对方名称、对方ID。
在一些实施例中,所述根据所述界面设计图像计算并筛选得到目标文字定位框,可以包括:
计算所述界面设计图像的连通域,以确定所述界面设计图像的各文字区域;
根据所述各文字区域确定对应的文字定位框;
计算相邻文字定位框之间的距离;
筛选得到与相邻文字定位框之间的距离大于第二阈值的文字定位框。
可以理解为,一些实施例中,图像的连通域是指图像中具有相同像素值并且位置相邻的像素组成的区域,采用连通域分析算法,例如two-pass算法、种子填充法等能够确定所述界面设计图像的各文字区域,之后确定各文字区域对应的坐标信息,计算相邻文字定位框的距离,若一个文字定位框与相邻文字定位框之间的距离不大于第二阈值,则说明该文字定位框与其他文字定位框是连接比较紧密,不属于独立的文字定位框,因此不属于服务接口要素的文字定位框,此外,还可以判断文字定位框的占据的像素大小,如果占据的像素大小大于第四阈值,则说明该文字定位框中的内容为大段的文字,也不属于服务接口要素的文字定位框,由此能够排除一些不可能是服务接口要素的文字定位框,提高后续处理效率。
在一些实施例中,所述对目标文字定位框中的文字图像进行形态学运算,得到对应的识别评分,可以包括:
将筛选后的文字定位框中的文字图像输入至预设的分割算法中,得到对应的二值化图像;
将所述二值化图像进行画布拉伸以得到拉伸图像;
对所述拉伸图像分别进行腐蚀处理和膨胀处理,得到对应的腐蚀化图像和膨胀化图像;
调用预设的文字识别引擎依次识别所述拉伸图像、所述腐蚀化图像和所述膨胀化图像中的文字并给出对应的识别评分。
可以理解为,一些实施例中,预设的分割算法可以为大津算法,大津算法是一种自适应的阈值确定方法,通过预设的分割算法得到的二值化图像能够更清晰地提取文字定位框中的文字图像特征,以便于后续利用预设的文字识别引擎识别文字,画布拉伸是指仅将图像中的文字图像重新画在一个空白的图像上,可以有效减少原图像中非文字信息的干扰,同时预设的文字识别引擎能得到更为丰富的字符边缘信息,形态学运算可以包括腐蚀处理和膨胀处理,拉伸图像、腐蚀化图像和膨胀化图像均是由二值化图像得到的,同时对三种图像进行文字识别,并选取最高识别评分对应的识别结果有利于提高目标文字的识别准确率,需要说明的是,预设的文字识别引擎可以为开源的文字识别引擎,也可以是开发人员自行搭建的文字识别引擎,本文对此不做限定。
在一些实施例中,所述根据最高识别评分对应的识别结果从预设的服务接口要素库中匹配服务接口要素,可以包括:
将所述服务接口要素库中的服务接口要素输入至预设的语义分割模型中,得到多个分割词;
在所述识别结果中逐个匹配所述多个分割词;
若所述多个分割词在所述识别结果中均成功匹配,则确定所述多个分割词对应的服务接口要素。
可以理解为,一些实施例中,在服务接口要素包括服务接口名称、服务接口入参和服务接口出参的前提下,在匹配由文字识别引擎得到的文字识别结果和服务接口要素时,现将服务接口要素利用语义分割模型进行分词,例如,对于服务接口要素A:服务接口名称为添加输入钱包ID,服务接口入参为对方钱包ID,服务接口出参为对方名称、对方ID,分词结果可以为多个分割词:添加、输入、钱包、ID、对方、钱包、ID、对方、名称、对方、ID,之后在识别结果中查找匹配是否有以上分割词,若所述多个分割词在所述识别结果中均成功匹配,则认为将该多个分割词对应的服务接口要素即目标结果,需要说明的是,匹配分割词可以采用正则表达式、Sunday算法等,本文对此不做限定。
在一些实施例中,所述确定所述服务接口要素对应的第二服务接口代码,可以包括:
从第二服务接口代码库中匹配所述服务接口要素对应的中间代码;
将所述中间代码中的第一变量、第二变量以及第三变量分别替换为所述服务接口要素中的服务接口入参、服务接口出参以及服务接口名称;
将替换后的中间代码作为所述服务接口代码。
可以理解为,一些实施例中,在得到所述服务接口要素后,还需要得到相应的服务接口代码,此时需要根据服务接口要素确定对应的中间代码,并将中间代码中的相应变量分别替换为服务接口入参、服务接口出参以及服务接口名称,替换后的中间代码即为服务接口代码。
需要说明的是,尽管在上述实施例及附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
与上述的方法对应,本说明书的一些实施例还提供了一种服务接口代码生成装置,参考图6所示,在一些实施例中,所述装置可以包括:
接收模块61,用于接收界面设计图像;
计算模块62,用于计算所述界面设计图像与预设的界面模板库中子模板的模板匹配率;
调用模块63,用于若存在不小于第一阈值的模板匹配率,则确定最高模板匹配率对应的第一子模板;
匹配模块64,用于从第一服务接口代码库中匹配所述第一子模板对应的第一服务接口代码。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
需要说明的是,本说明书的实施例中,所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权同意且经过各方充分授权的信息和数据。
本说明书的实施例还提供一种计算机设备。如图7所示,在本说明书一些实施例中,所述计算机设备702可以包括一个或多个处理器704,诸如一个或多个处理器(CPU)或图形处理器(GPU),每个处理单元可以实现一个或多个硬件线程。计算机设备702还可以包括任何存储器706,其用于存储诸如代码、设置、数据等之类的任何种类的信息,一具体实施例中,存储器706上并可在处理器704上运行的计算机程序,所述计算机程序被所述处理器704运行时,可以执行上述任一实施例所述的方法的指令。非限制性的,比如,存储器706可以包括以下任一项或多种组合:任何类型的RAM,任何类型的ROM,闪存设备,硬盘,光盘等。更一般地,任何存储器都可以使用任何技术来存储信息。进一步地,任何存储器可以提供信息的易失性或非易失性保留。进一步地,任何存储器可以表示计算机设备702的固定或可移除部件。在一种情况下,当处理器704执行被存储在任何存储器或存储器的组合中的相关联的指令时,计算机设备702可以执行相关联指令的任一操作。计算机设备702还包括用于与任何存储器交互的一个或多个驱动机构708,诸如硬盘驱动机构、光盘驱动机构等。
计算机设备702还可以包括输入/输出接口710(I/O),其用于接收各种输入(经由输入设备712)和用于提供各种输出(经由输出设备714)。一个具体输出机构可以包括呈现设备716和相关联的图形用户接口718(GUI)。在其他实施例中,还可以不包括输入/输出接口710(I/O)、输入设备712以及输出设备714,仅作为网络中的一台计算机设备。计算机设备702还可以包括一个或多个网络接口720,其用于经由一个或多个通信链路722与其他设备交换数据。一个或多个通信总线724将上文所描述的部件耦合在一起。
通信链路722可以以任何方式实现,例如,通过局域网、广域网(例如,因特网)、点对点连接等、或其任何组合。通信链路722可以包括由任何协议或协议组合支配的硬连线链路、无线链路、路由器、网关功能、名称服务器等的任何组合。
本申请是参照本说明书一些实施例的方法、设备(系统)、计算机可读存储介质和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理器的处理器以产生一个机器,使得通过计算机或其他可编程数据处理器的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理器以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理器上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算机设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算机设备访问的信息。按照本说明书中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理器来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
还应理解,在本说明书实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书实施例的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (19)
1.一种服务接口代码生成方法,其特征在于,所述方法包括:
接收界面设计图像;
计算所述界面设计图像与预设的界面模板库中子模板的模板匹配率;
若存在不小于第一阈值的模板匹配率,则确定最高模板匹配率对应的第一子模板;
从第一服务接口代码库中匹配所述第一子模板对应的第一服务接口代码。
2.根据权利要求1所述的方法,其特征在于,接收界面设计图像之后,还包括,对所述界面设计图像进行预处理。
3.根据权利要求1所述的方法,其特征在于,所述对所述界面设计图像进行预处理,包括:
对所述界面设计图像进行灰度变换,得到第一灰度图像;
将所述第一灰度图像输入至第一级联降噪滤波器中,得到第二灰度图像;
将所述第二灰度图像输入至预设的边缘检测算法中,以完成对界面设计图像的预处理。
4.根据权利要求1所述的方法,其特征在于,所述计算所述界面设计图像与预设的界面模板库中子模板的模板匹配率,包括:
根据所述子模板与所述界面设计图像的字符及字符位置信息计算第一匹配率;
根据所述子模板与所述界面设计图像的指纹信息计算第二匹配率;
根据所述子模板与所述界面设计图像的梯度图计算第三匹配率;
利用所述第一匹配率、所述第二匹配率和所述第三匹配率中的一个或多个计算所述模板匹配率。
5.根据权利要求4所述的方法,其特征在于,所述根据所述子模板与所述界面设计图像的字符位置信息计算第一匹配率,包括:
获取所述界面设计图像中的所有字符及字符位置信息;
从所述预设的界面模板库中调用所述子模板对应的字符及字符位置信息;
逐个匹配所述界面设计图像中的所有字符及字符位置信息和所述子模板对应的字符及字符位置信息,得到字符匹配结果和字符位置信息匹配结果;
通过为所述字符匹配结果和所述字符位置信息匹配结果分别分配字符权重和字符位置信息权重,计算所述第一匹配率。
6.根据权利要求4所述的方法,其特征在于,所述根据所述子模板与所述界面设计图像的指纹信息计算第二匹配率,包括:
将所述界面设计图像均压缩至第一尺寸;
对压缩后的界面设计图像进行离散余弦变换,得到对应的系数矩阵;
将所述系数矩阵压缩至第二尺寸;
计算压缩后系数矩阵的均值;
判断所述压缩后系数矩阵中的每个系数是否大于所述均值;
若当前系数大于所述均值,则将该系数替换为第一系数,否则替换为第二系数;
根据替换后系数矩阵中的系数确定第一指纹信息;
调用所述子模板对应的第二指纹信息;
对所述第一指纹信息和所述第二指纹信息进行异或运算;
将运算结果中数字为所述第一系数的个数和数字总数的比值作为第二匹配率。
7.根据权利要求4所述的方法,其特征在于,所述根据所述子模板与所述界面设计图像的梯度图计算第三匹配率,包括:
计算所述界面设计图像的梯度图;
将所述梯度图划分为多个大小为第三尺寸的子图片;
对所述多个大小为第三尺寸的子图片进行归一化处理;
计算归一化处理结果对应的第一直方图数据;
调用所述子模板对应的第二直方图数据;
计算所述第一直方图数据和所述第二直方图数据中各维度的子匹配率;
通过为所述各维度的子匹配率分配对应的权重计算所述第三匹配率。
8.根据权利要求4所述的方法,其特征在于,所述利用所述第一匹配率、所述第二匹配率和所述第三匹配率中的一个或多个计算所述模板匹配率,包括:
选取所述第一匹配率、所述第二匹配率和所述第三匹配率中的一个或多个;
通过为选取结果分配对应的参数计算所述模板匹配率。
9.根据权利要求1所述的方法,其特征在于,所述确定最高模板匹配率对应的第一子模板之后,进一步包括:
统计调用所述预设的界面模板库中的子模板的次数;
根据所述次数计算子模板的历史调用频率;
按所述历史调用频率从高到低的顺序对所述预设的界面模板库中的子模板排序。
10.根据权利要求1所述的方法,其特征在于,若所述模板匹配率均小于所述第一阈值,进一步包括:
根据所述界面设计图像计算并筛选得到目标文字定位框;
对所述目标文字定位框中的文字图像进行形态学运算,得到对应的识别评分;
根据最高识别评分对应的识别结果从预设的服务接口要素库中匹配服务接口要素;
确定所述服务接口要素对应的第二服务接口代码。
11.根据权利要求10所述的方法,其特征在于,所述服务接口要素包括服务接口名称、服务接口入参和服务接口出参。
12.根据权利要求10所述的方法,其特征在于,所述根据所述界面设计图像计算并筛选得到目标文字定位框,包括:
计算所述界面设计图像的连通域,以确定所述界面设计图像的各文字区域;
根据所述各文字区域确定对应的文字定位框;
计算相邻文字定位框之间的距离;
筛选得到与相邻文字定位框之间的距离大于第二阈值的文字定位框。
13.根据权利要求10所述的方法,其特征在于,所述对目标文字定位框中的文字图像进行形态学运算,得到对应的识别评分,包括:
将筛选后的文字定位框中的文字图像输入至预设的分割算法中,得到对应的二值化图像;
将所述二值化图像进行画布拉伸以得到拉伸图像;
对所述拉伸图像分别进行腐蚀处理和膨胀处理,得到对应的腐蚀化图像和膨胀化图像;
调用预设的文字识别引擎依次识别所述拉伸图像、所述腐蚀化图像和所述膨胀化图像中的文字并给出对应的识别评分。
14.根据权利要求10所述的方法,其特征在于,所述根据最高识别评分对应的识别结果从预设的服务接口要素库中匹配服务接口要素,包括:
将所述服务接口要素库中的服务接口要素输入至预设的语义分割模型中,得到多个分割词;
在所述识别结果中逐个匹配所述多个分割词;
若所述多个分割词在所述识别结果中均成功匹配,则确定所述多个分割词对应的服务接口要素。
15.根据权利要求10所述的方法,其特征在于,所述确定所述服务接口要素对应的第二服务接口代码,包括:
从第二服务接口代码库中匹配所述服务接口要素对应的中间代码;
将所述中间代码中的第一变量、第二变量以及第三变量分别替换为所述服务接口要素中的服务接口入参、服务接口出参以及服务接口名称;
将替换后的中间代码作为所述服务接口代码。
16.一种服务接口代码生成装置,其特征在于,所述装置包括:
接收模块,用于接收界面设计图像;
计算模块,用于计算所述界面设计图像与预设的界面模板库中子模板的模板匹配率;
调用模块,用于若存在不小于第一阈值的模板匹配率,则确定最高模板匹配率对应的第一子模板;
匹配模块,用于从第一服务接口代码库中匹配所述第一子模板对应的第一服务接口代码。
17.一种计算机设备,包括存储器、处理器、以及存储在所述存储器上的计算机程序,其特征在于,所述计算机程序被所述处理器运行时,执行根据权利要求1-15任意一项所述方法的指令。
18.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被计算机设备的处理器运行时,执行根据权利要求1-15任意一项所述方法的指令。
19.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序被处理器运行时,执行根据权利要求1-15任意一项所述方法的指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310273491.6A CN117251156A (zh) | 2023-03-20 | 2023-03-20 | 一种服务接口代码生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310273491.6A CN117251156A (zh) | 2023-03-20 | 2023-03-20 | 一种服务接口代码生成方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117251156A true CN117251156A (zh) | 2023-12-19 |
Family
ID=89131943
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310273491.6A Pending CN117251156A (zh) | 2023-03-20 | 2023-03-20 | 一种服务接口代码生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117251156A (zh) |
-
2023
- 2023-03-20 CN CN202310273491.6A patent/CN117251156A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111723860B (zh) | 一种目标检测方法及装置 | |
CN110008809B (zh) | 表格数据的获取方法、装置和服务器 | |
CN110569721A (zh) | 识别模型训练方法、图像识别方法、装置、设备及介质 | |
CN110032998B (zh) | 自然场景图片的文字检测方法、系统、装置和存储介质 | |
CN115861135A (zh) | 一种应用于箱体全景探测的图像增强及识别方法 | |
CN110781885A (zh) | 基于图像处理的文本检测方法、装置、介质及电子设备 | |
CN111126115B (zh) | 暴力分拣行为识别方法和装置 | |
JP7026165B2 (ja) | テキスト認識方法及びテキスト認識装置、電子設備、記憶媒体 | |
CN112101386B (zh) | 文本检测方法、装置、计算机设备和存储介质 | |
CN111680690A (zh) | 一种文字识别方法及装置 | |
CN112991536B (zh) | 一种专题地图地理面要素自动提取和矢量化方法 | |
CN114241388A (zh) | 基于时空记忆信息的视频实例分割方法和分割装置 | |
CN110807110A (zh) | 结合局部和全局特征的图片搜索方法、装置及电子设备 | |
CN114444565A (zh) | 一种图像篡改检测方法、终端设备及存储介质 | |
CN114445651A (zh) | 一种语义分割模型的训练集构建方法、装置及电子设备 | |
CN111104941B (zh) | 图像方向纠正方法、装置及电子设备 | |
CN112561074A (zh) | 一种机器学习可解释方法、装置及存储介质 | |
CN112906800B (zh) | 基于图像组自适应的协同显著性检测方法 | |
CN112966687B (zh) | 图像分割模型训练方法、装置及通信设备 | |
CN114519788A (zh) | 图像处理方法、装置、电子设备及计算机可读存储介质 | |
EP3591608A1 (en) | Method and system for image reconstruction using deep dictionary learning (ddl) | |
CN111738069A (zh) | 人脸检测方法、装置、电子设备及存储介质 | |
CN116798041A (zh) | 图像识别方法、装置和电子设备 | |
CN114511862B (zh) | 表格识别方法、装置及电子设备 | |
CN117251156A (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 |