具体实施方式
为使得本申请的特征和优点能够更加的明显和易懂,下面将结合本申请实 施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然, 所描述的实施例仅仅是本申请一部分实施例,而非全部实施例。基于本申请中 的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实 施例,都属于本申请保护的范围。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同 或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一 致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本申请的 一些方面相一致的装置和方法的例子。
请参见图1,为本申请实施例提供的一种图像识别模型训练的系统结构图。 如图1所示,本申请实施例提供的图像识别模型训练方法可以应用于终端设备, 以实现对图像识别模型的训练过程,本申请实施例提供的系统结构主要包括终 端设备、图像样本、存储于终端中的图像识别模型以及自动训练引擎。其中终 端设备可以包括但不限于手机,个人电脑、智能家具、车载设备、可穿戴设备 等具备处理功能的终端设备。图像识别模型训练装置,是图像识别模型训练的 核心装置,图像识别模型训练装置可以是终端设备的终端系统中运行的系统进 程,也可以是独立于终端设备以外的并与终端设备可靠连接的图像识别模型训 练装置,主要用于对终端设备的图像识别模型进行训练,图像识别模型训练装 置可以在终端设备出厂时配置于终端系统中,或者可以由用户自行在终端设备 中进行安装。终端设备系统具体可以为终端设备中配置的操作系统,例如:安 卓系统、Windows系统、IOS系统、鸿蒙系统等。自动训练引擎为服务器。
在本申请实施例中,终端设备通过采集第一图像样本并调用图像识别模型, 然后采用所述图像识别模型对所述第一图像样本进行识别,得到识别合格率, 当识别合格率为合格率且该合格率大于某一阈值时,确定识别合格率满足预设 条件,将该第一图像样本作为合格样本,或者当所述识别合格率为不合格率且 不合格率大于某一阈值时,确定识别合格率满足预设条件,将该第一图像样本 作为不合格样本,那么调用自动训练引擎基于所述第一图像样本对所述图像识 别模型进行训练。若识别合格率不满足预设条件,则由人工对该第一图片样本 进行分类识别,并根据分类的结果并调用自动训练引擎对所述图像识别模型进 行训练。
在本申请实施例中,通过自动化采集第一图像样本,并调用经过初步训练 的图像识别模型,然后采用所述图像识别模型对所述第一图像样本进行识别, 得到识别合格率,当所述识别合格率满足预设条件时,基于所述第一图像样本 对所述图像识别模型进行训练。可以基于对所采集的图像样本的识别结果再对 该图像识别模型进行重复训练,避免了人工的重复测试行为,节省人力的同时, 可以不断提升图像识别模型的识别准确度。
下面将结合图2-图3,对本申请实施例提供的图像识别模型训练方法进行 详细介绍。
请参阅图2,图2为本申请实施例提供的一种图像识别模型训练方法的流 程示意图。
在本申请实施例中,一种图像识别模型训练方法应用于终端设备,也即可 以认为本申请实施例的执行主体为终端设备。可以理解的,如图1所示,一种 图像识别模型训练方法包括:
S101、采集第一图像样本,并调用图像识别模型;
所述第一图像样本可以为所采集的任意图像,如所安装的各应用APP的界 面截图,图库中保存的图片,从网络端下载的图片等。
采集不同类型图像样本的方式各不相同。例如,当第一图像样本为某应用 APP的界面截图时,可通过自动化截图工具截取,或者通过脚本进行截图。又 例如,当第一图像样本为图库中的图片时,可直接根据用户的选择从图库中调 用。又例如,当第一图像样本为网络端的图片时,可通过向网络端请求并下载 得到。
具体的,可通过python调用预先训练的图像识别模型,该图像识别模型用 于对当前采集的第一图像样本进行识别。
Python是一种计算机程序设计语言,由吉多·范罗苏姆创造,第一版发布于 1991年,可以视之为一种改良的LISP。Python的设计哲学强调代码的可读性 和简洁的语法。
Python的库有很多,如TensorFlow、NumPy、Httpie、Django、Flask、Ansible 等,每一个库可理解为一个机器学习框架。
TensorFlow是一个机器学习框架,是Python的机器学习库。Python的库有 很多,如TensorFlow、NumPy、Httpie、Django、Flask、Ansible。
TensorFlow是一个基于数据流编程(dataflow programming)的符号数学系 统,被广泛应用于各类机器学习(machine learning)算法的编程实现,其前身 是谷歌的神经网络算法库DistBelief。
Tensorflow拥有多层级结构,可部署于各类服务器、PC终端和网页并支持 GPU和TPU高性能数值计算,被广泛应用于谷歌内部的产品开发和各领域的 科学研究。
S102、采用所述图像识别模型对所述第一图像样本进行识别,得到识别合 格率;
将第一图像样本输入至该图像识别模型中,从而输出相应的识别合格率。
可以理解的是,所述识别合格率包括合格率和不合格率两种情况。因此, 输出的识别合格率为合格率=A,或者不合格率=B。其中,A和B均为常数。
S103、当所述识别合格率满足预设条件时,基于所述第一图像样本对所述 图像识别模型进行训练。
所述识别合格率满足预设条件,可以理解为,合格率大于某一阈值(如 99%),或者不合格率大于某个阈值(如99%)。
在识别合格率满足预设条件时,表明可将该第一图像样本作为正训练样本 或者负训练样本,引入所创建的模型中,然后通过预先搭建的一个自动训练的 引擎对模型进行进一步训练,以提高模型的识别准确率。在本申请实施例中, 通过自动化采集第一图像样本,并调用经过初步训练的图像识别模型,然后采 用所述图像识别模型对所述第一图像样本进行识别,得到识别合格率,当所述 识别合格率满足预设条件时,基于所述第一图像样本对所述图像识别模型进行 训练。可以基于对所采集的图像样本的识别结果再对该图像识别模型进行重复 训练,避免了人工的重复测试行为,节省人力的同时,可以不断提升图像识别 模型的识别准确度。
请参阅图3,图3为本申请另一实施例提供的一种图像识别模型训练方法 的流程示意图。
如图3所示,一种图像识别模型训练方法包括:
S201、采集第二图像样本,基于所述第二图像样本对图像识别基础库进行 训练,生成图像识别模型。
所述第二图像样本可以为所采集的任意图像,如所安装的各应用APP的界 面截图,图库中保存的图片,从网络端下载的图片等。所述第二图像样本可以 包括多个,这多个第二图像样本可以为相同类型的图像,也可以为不同类型的 图像。
例如,这多个第二图像样本均为应用APP的界面截图,对于android系统 的终端设备,可以用自动化工具(如uiautomator和monkey),或脚本进行截 图。对于MAC系统的终端设备,可以借助第三方的工具进行截图。
在获取了第二图像样本后,可通过人工区分出来一些异常样本与一些正常 样本,并进行分类标记。同时,可通过机器学习框架结合所标记的第二图像样 本训练基础库,生成图像识别模型。其中,所述图像识别模型为所训练的基础 图像识别模型。
机器学习框架是编程语言下的机器学习库。例如,Python的机器学习库有 很多,如TensorFlow、NumPy、Httpie、Django、Flask、Ansible。
在本申请实施例中,可采用TensorFlow训练基础库。TensorFlow是一个基 于数据流编程(dataflow programming)的符号数学系统,被广泛应用于各类机 器学习(machinelearning)算法的编程实现,其前身是谷歌的神经网络算法库 DistBelief。
Tensorflow拥有多层级结构,可部署于各类服务器、PC终端和网页,并支 持GPU和TPU高性能数值计算,被广泛应用于谷歌内部的产品开发和各领域 的科学研究。
首先需安装Tensorflow,引入数据集。数据集通常为图片的形式或者cvs 格式。然后对所引入的数据集进行处理,方便计算机计算,如归一化处理,图 片像素值变为了(0,1)之间,因为数据太大容易出现很多问题。或者还可以是 其他的数据处理方式,比如灰度处理、去噪音、旋转、剪切等。再基于系统的 基础库创建模型,并选用优化器(如adam)对模型进行编译,同时选取损失函 数,当分类用0,1,2,3……9这样的分类,就选用损失函数SparseCategoricalCrossentropy。
具体的,截取第二交互界面图像,将所述第二交互界面图像作为第二图像 样本,引入所创建的模型中,然后通过预先搭建的一个自动训练的引擎对模型 进行训练,输出第二图像样本的合格率。
需要说明的是,此处所训练的图像识别模型为基础模型。
S202、采集第一图像样本,并调用图像识别模型;
一种可行的实现方式为,截取第一交互界面图像,将所述第一交互界面图 像作为第一图像样本。所述第一交互界面图像与所述第二交互界面图像可以相 同,可以不同。
为了对第一图像样本进行识别,则需要调用该基础模型。具体调用方式可 参见S101,此处不再赘述。
S203、采用所述图像识别模型对所述第一图像样本进行识别,得到识别合 格率;
具体描述可参见S102,此处不再赘述。
S204、当所述识别合格率满足预设条件时,基于所述第一图像样本对所述 图像识别模型进行训练。
当所述识别合格率为合格率,且所述合格率大于第一阈值时,确定所述识 别合格率满足预设条件,则可以作为合格样本,对所述图像识别模型进行训练; 当所述识别合格率为不合格率,且所述不合格率大于第二阈值时,确定所述识 别合格率满足预设条件,则可以作为不合格样本,对所述图像识别模型进行训 练。
S205、当所述识别合格率不满足预设条件时,显示所述第一图像样本;
当所述识别合格率为合格率,且所述合格率小于或者等于第一阈值时,确 定识别合格率不满足预设条件;或者当所述识别合格率为不合格率,且所述不 合格率小于或者等于第二阈值时,确定识别合格率不满足预设条件。因此需要 供人工筛选,那么就需要对所述第一图像样本进行显示。
S206、基于对所述第一图像样本的人工识别结果,对所述图像识别模型进 行训练。
当所述第一图像样本的人工识别结果为合格时,将所述第一图像样本作为 合格样本对所述图像识别模型进行训练;当所述第一图像样本的人工识别结果 为不合格时,将所述第一图像样本作为不合格样本对所述图像识别模型进行训 练。
在本申请实施例中,通过自动化采集第二图像样本对基础库进行初步训练, 然后采集第一图像样本,并调用经过初步训练的图像识别模型,然后采用所述 图像识别模型对所述第一图像样本进行识别,得到识别合格率,当所述识别合 格率满足预设条件时,基于所述第一图像样本对所述图像识别模型进行训练。 当所述识别合格率不满足预设条件时,可以由人工标记后对所述图像识别模型 进行训练。可以通过初始训练的图像识别模型对截取的应用界面自动化区分以 判断是否合格来对该图像识别模型进行重复训练,避免了人工的重复测试行为, 节省人力,减少人在兼容测试中的人为失误。同时,可以不断提升图像识别模 型的识别准确度。此外,可以自动化测试APP在不同机型上的兼容测试,减少 人在兼容性测试的复杂度。
请参阅图4,图4为本申请另一实施例提供的一种图像识别模型训练装置 的结构示意图。
如图4所示,本申请实施例中一种图像识别模型训练装置应用于终端中, 图像识别模型训练装置1包括:
模块调用模块10,用于采集第一图像样本,并调用图像识别模型;
合格率确定模块20,用于采用所述图像识别模型对所述第一图像样本进行 识别,得到识别合格率;
模型训练模块30,用于当所述识别合格率满足预设条件时,基于所述第一 图像样本对所述图像识别模型进行训练。
可选的,所述模型训练模块30还用于:
当所述识别合格率不满足预设条件时,显示所述第一图像样本;
基于对所述第一图像样本的人工识别结果,对所述图像识别模型进行训练。
可选的,所述模型训练模块30,具体用于:
当所述第一图像样本的人工识别结果为合格时,将所述第一图像样本作为 合格样本对所述图像识别模型进行训练;
当所述第一图像样本的人工识别结果为不合格时,将所述第一图像样本作 为不合格样本对所述图像识别模型进行训练。
可选的,如图5所示,所述装置还包括合格率判断模块40,用于:
当所述识别合格率为合格率,且所述合格率大于第一阈值时,确定所述识 别合格率满足预设条件;
当所述识别合格率为不合格率,且所述不合格率大于第二阈值时,确定所 述识别合格率满足预设条件。
可选的,所述模型训练模块30,具体用于:
当所述识别合格率为合格率,且所述合格率大于第一阈值时,将所述第一 图像样本作为合格样本对所述图像识别模型进行训练;
当所述识别合格率为不合格率,且所述不合格率大于第二阈值时,将所述 第一图像样本作为不合格样本对所述图像识别模型进行训练。
可选的,所述模块调用模块10,具体用于:
截取第一交互界面图像,将所述第一交互界面图像作为第一图像样本。
可选的,如图5所示,所述装置还包括模型生成模块50,用于:
采集第二图像样本,基于所述第二图像样本对图像识别基础库进行训练, 生成图像识别模型。
可选的,所述模型生成模块50,具体用于:
截取第二交互界面图像,将所述第二交互界面图像作为第二图像样本。
在本申请实施例中,通过自动化采集第二图像样本对基础库进行初步训练, 然后采集第一图像样本,并调用经过初步训练的图像识别模型,然后采用所述 图像识别模型对所述第一图像样本进行识别,得到识别合格率,当所述识别合 格率满足预设条件时,基于所述第一图像样本对所述图像识别模型进行训练。 当所述识别合格率不满足预设条件时,可以由人工标记后对所述图像识别模型 进行训练。可以通过初始训练的图像识别模型对截取的应用界面自动化区分以 判断是否合格来对该图像识别模型进行重复训练,避免了人工的重复测试行为, 节省人力,减少人在兼容测试中的人为失误。同时,可以不断提升图像识别模 型的识别准确度。此外,可以自动化测试APP在不同机型上的兼容测试,减少 人在兼容性测试的复杂度。
本申请实施例还提供了一种计算机存储介质,计算机存储介质可以存储有 多条指令,指令适于由处理器加载并执行如上述实施例中的任一项的方法的步 骤。
本申请实施例还提供了一种终端,包括存储器、处理器及存储在存储器上 并可在处理器上运行的计算机程序,处理器执行如上述实施例中的任一项的方 法的步骤。
请参见图6,图6为本申请实施例提供的一种终端的结构示意图。如图6 所示,终端1100可以包括:至少一个处理器1101,至少一个网络接口1104, 用户接口1103,存储器1105,至少一个通信总线1102。
其中,通信总线1102用于实现这些组件之间的连接通信。
其中,用户接口1103可以包括显示屏(Display)、摄像头(Camera), 可选用户接口1103还可以包括标准的有线接口、无线接口。
其中,网络接口1104可选的可以包括标准的有线接口、无线接口(如WI-FI 接口)。
其中,处理器1101可以包括一个或者多个处理核心。处理器1101利用各 种接口和线路连接整个终端1100内的各个部分,通过运行或执行存储在存储器 1105内的指令、程序、代码集或指令集,以及调用存储在存储器1105内的数 据,执行终端1100的各种功能和处理数据。可选的,处理器1101可以采用数 字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列 (Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器1101可集成中央处理器 (Central Processing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户 界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调 制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到 处理器1101中,单独通过一块芯片进行实现。
其中,存储器1105可以包括随机存储器(Random Access Memory,RAM), 也可以包括只读存储器(Read-Only Memory,ROM)。可选的,该存储器1105 包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器1105可用于存储指令、程序、代码、代码集或指令集。存 储器1105可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现 操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、 图像播放功能等)、用于实现上述各个装置实施例的指令等;存储数据区可存储上面各个装置实施例中涉及到的数据等。存储器1105可选的还可以是至少一 个位于远离前述处理器1101的存储装置。如图6所示,作为一种计算机存储介 质的存储器1105中可以包括操作系统、网络通信模块、用户接口模块以及频段 分配程序。
在图6所示的终端1100中,用户接口1103主要用于为用户提供输入的接 口,获取用户输入的数据;而处理器1101可以用于调用存储器1105中存储的 频段分配程序,并具体执行以下操作:
采集第一图像样本,并调用图像识别模型;
采用所述图像识别模型对所述第一图像样本进行识别,得到识别合格率;
当所述识别合格率满足预设条件时,基于所述第一图像样本对所述图像识 别模型进行训练。
在本申请实施例中,通过自动化采集第二图像样本对基础库进行初步训练, 然后采集第一图像样本,并调用经过初步训练的图像识别模型,然后采用所述 图像识别模型对所述第一图像样本进行识别,得到识别合格率,当所述识别合 格率满足预设条件时,基于所述第一图像样本对所述图像识别模型进行训练。 当所述识别合格率不满足预设条件时,可以由人工标记后对所述图像识别模型 进行训练。可以通过初始训练的图像识别模型对截取的应用界面自动化区分以 判断是否合格来对该图像识别模型进行重复训练,避免了人工的重复测试行为, 节省人力,减少人在兼容测试中的人为失误。同时,可以不断提升图像识别模 型的识别准确度。此外,可以自动化测试APP在不同机型上的兼容测试,减少 人在兼容性测试的复杂度。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和装置,可 以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例 如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方 式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可 以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通 信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性, 机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块 显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可 以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块 来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中, 也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块 中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的 形式实现。
集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用 时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技 术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分 可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中, 包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网 络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质 包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取 存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序 代码的介质。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述 为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的 动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。 其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施 例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详 述的部分,可以参见其它实施例的相关描述。
以上为对本申请所提供的一种图像识别模型训练方法、装置、存储介质及 终端的描述,对于本领域的技术人员,依据本申请实施例的思想,在具体实施 方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请 的限制。