一种智能看物识名的方法和系统与流程

文档序号:16037905发布日期:2018-11-24 10:13阅读:1676来源:国知局

本发明属于看物识别技术领域,尤其涉及一种智能看物识名的方法和系统。

背景技术

随着科技的发展,人们越来越依赖于手机,尤其是智能手机。智能手机不仅仅用于通信,更重要的是用在生活中,娱乐、商务等等,在手机上安装相应的app能够大大方便人们的生活。

深度学习在图像处理、语音识别、自然语言处理领域的应用取得了巨大成功,但是它通常在功能强大的服务器端进行运算。如果智能手机通过网络远程连接服务器,也可以利用深度学习技术,但这样的识别处理过程可能会很慢,而且只有在设备处于良好的网络连接环境下才行。也有考虑把深度学习模型迁移到终端设备,但是运行这些模型一般都需要强大的内存支持,而手机等移动终端的cpu和内存资源有限。

为了解决上述技术问题,人们进行了长期的探索,例如中国专利公开了一种应用检测方法和装置[公开号:cn105975861a],其方法包括:从存储在移动终端本地的深度学习模型文件中读取模型数据,并利用所读取的模型数据构造深度学习模型;对待检测应用程序安装文件进行特征提取;对所提取的特征进行转换处理,以转换成与所述深度学习模型的输入相匹配的特征数据;将所述特征数据输入至所述深度学习模型进行匹配,得到所述待检测应用程序安装文件与预设应用类型的匹配度;展示与所述匹配度相关联的检测结果。

上述方法通过在本地形成的深度学习模型对从待检测应用程序安装文件提取的特征数据进行处理得到匹配度,并利用匹配度生成最终的检测结果并展示,使得在执行时不需要通过网络进行数据上传。但是其需要将深度学习模型文件压缩在安装包中,也就是说安装包与深度学习模型文件是分离的,使安装包需要的容量增大,且对安装包的更新与深度学习模型文件的更新需要分步更新,并且上述方法用于应用的检测,无法实现对外界物体的识别。



技术实现要素:

本发明的目的是针对上述问题,提供一种能够识别物体并输出识别结果的智能看物识名的方法;

本方案的另一目的是提供一种智能看物识名的系统。

为达到上述目的,本发明采用了下列技术方案:

一种智能看物识名的方法,包括:

s1:在服务器中对深度学习框架进行深度学习训练以获得训练模型;

s2:使用ndk和/或sdk生成动态链接库,并基于所述动态链接库和所述训练模型编译生成安装包;

s3:将所述安装包安装至终端设备以用于离线识别。

在上述的智能看物识名的方法中,在步骤s1中,使用alexnet网络对深度学习框架进行深度学习训练;

在步骤s2中,基于所述动态链接库和所述训练模型编译生成安装包之前先生成java接口,并通过所述java接口编译生成安装包。

在上述的智能看物识名的方法中,步骤s1之后还包括:

s11:通过记录文件记录保存信息,且所述的记录文件可用于定位最新保存的训练模型。

s12:提取最新保存的训练模型,并将最新保存的训练模型与pb模型文件固化以获得pb文件格式的训练模型。

在上述的智能看物识名的方法中,在步骤s12之后还包括:

s13:将步骤s12中获得的pb文件格式的训练模型进行数据量化处理以使所述训练模型的参数存储空间要求变小。

在上述的智能看物识名的方法中,在步骤s3之后还包括:

接收所述终端设备上传的当前训练模型中没有记录的目标图片信息,并根据所述目标图片信息定期或不定期对深度学习框架进一步进行深度学习训练并重复步骤s1~s3以更新终端设备中的安装包。

一种智能看物识名的方法,包括:

s1:获取目标图片,对目标图片进行识别,并将所述目标图片与训练模型的模型数据进行匹配;

s2:当读取到匹配度高于预设阈值的时候,输出读取结果,否则,执行步骤s3;

s3:保存包括目标图片的目标图片信息,并在检测到处于wifi环境下时将所述目标图片信息上传至服务器;

s4:定期或不定期从服务器中下载更新后的安装包。

一种智能看物识名系统,包括服务器,所述服务器中具有深度学习框架和训练模块,以及ndk工具包和/或sdk工具包,且所述服务器包括有安装包编译模块和信息交换模块,其中,

深度学习框架,用于提供深度学习系统;

训练模块,用于对深度学习框架进行深度学习训练以获得训练模型;

ndk工具包和sdk工具包,用于生成动态链接库;

安装包编译模块,用于基于所述动态链接库和训练模型编译安装包;

信息交换模块,用于与终端设备进行信息交互以将所述安装包安装至所述终端设备中。

在上述的智能看物识名系统中,所述服务器还包括文件记录模块、模型转换模块和数据量化模块,其中,

文件记录模块,用于记录保存信息,以及定位最新保存的训练模型;

模型转换模块,用于提取最新保存的训练模型,并将最新保存的训练模型与pb模型文件固化以获得pb文件格式的训练模型;

数据量化模块,用于将所述pb文件格式的训练模型进行数据量化处理以使所述训练模型的参数存储空间要求变小;

所述安装包编译模块还包括java接口生成模块,用于基于所述动态链接库和所述训练模型生成java接口,所述安装包编译模块又通过所述java接口编译生成安装包。

在上述的智能看物识名系统中,所述服务器还包括更新模块,用于根据终端设备上传的目标图片信息定期或不定期对训练模型进一步进行深度学习训练;

并由所述信息交换模块接收当前训练模型中没有记录的目标图片信息,以及将根据进一步深度学习训练的结果重新编译的安装包更新至所述终端设备中。

在上述的智能看物识名系统中,所述安装包具有图片识别模块、匹配度判断模块、存储模块、输出模块和目标图片上传模块,其中,

图片识别模块,用于识别目标图片;

匹配度判断模块,用于将目标图片的识别结果与训练模型的模型数据进行匹配;

输出模块,用于在匹配度高于预设阈值的时候,输出读取结果;

图片上传模块,用于在匹配度低于预设阈值的情况下,在检测到处于wifi环境下时将包括所述目标图片的目标图片信息上传至服务器。

本发明相较于现有技术具有以下优点:

1、不需要终端设备具有强大的内存支持就能够实现使用深度学习技术对物体进行识别;

2、能够在无网的环境下进行离线识别;

3、通过安装包制作手段直接将经过处理后的训练模型制作在安装包中,减小安装包需要的容量;

4、识别过程操作简单方便,无需上网查,并且具有较高的识别准确性。

附图说明

图1是本发明实施例一的方法流程图;

图2是本发明实施例一中的alexnet网络图;

图3是本发明实施例一中安装包生成过程流程示意图;

图4是本发明实施例一中训练模型转换流程示意图;

图5是本发明实施例二的方法流程图;

图6是本发明实施例三的系统结构框图。

附图标记:服务器1;深度学习框架11;训练模块12;ndk工具包13;sdk工具包14;安装包编译模块15;信息交换模块16;文件记录模块17;模型转换模块18;数据量化模块19;更新模块10;安装包2;图片识别模块21;匹配度判断模块22;存储模块23;输出模块24;目标图片上传模块25;终端设备3。

具体实施方式

虽然流程图将各项操作描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。各项操作的顺序可以被重新安排。当其操作完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方法、函数、规程、子例程、子程序等等。

这里所使用的术语“和/或”包括其中一个或更多所列出的相关联项目的任意和所有组合。当一个单元被称为“连接”或“耦合”到另一单元时,其可以直接连接或耦合到所述另一单元,或者可以存在中间单元。

这里所使用的术语仅仅是为了描述具体实施例而不意图限制示例性实施例。除非上下文明确地另有所指,否则这里所使用的单数形式“一个”、“一项”还意图包括复数。还应当理解的是,这里所使用的术语“包括”和/或“包含”规定所陈述的特征、整数、步骤、操作、单元和/或组件的存在,而不排除存在或添加一个或更多其他特征、整数、步骤、操作、单元、组件和/或其组合。

本发明智能看物识名的方法和系统,主要应用于物体识别技术领域,解决了现有技术需要看物识别过程复杂,需要较好的网络环境进行支持或者需要较大的本地容量支持等问题,以下是本发明的优选实施例并结合附图,对本发明的技术方案作进一步的描述,但本发明不限于这些实施例。

实施例一

目前可用的深度学习框架11包括但并不限于tensorflow、caffe、theano、mxnet等。本实施例使用的深度学习框架11是tensorflow,tensorflow最新版本增加了对android和ios的支持,允许它在这些设备上执行图像识别、图像分类等操作。这样就可在智能手机上工作并且不需要云端每时每刻都支持的机器学习模型。

基于最新版本的tensorflow学习框架,本实施例公开了一种能够在安卓设备上实现智能看物识名的方法,如图1所示,包括:

s1:在服务器1中对深度学习框架11进行深度学习训练以获得训练模型;这里的深度学习框架11便是指最新版本的tensorflow,tensorflow是一种本领域公知的人工智能学习系统,具体实现方式在此不再进行赘述。

s2:使用ndk和/或sdk生成动态链接库,并基于所述动态链接库和所述训练模型编译生成安装包2;这里的ndk即androidndk,sdk即androidsdk,都是安卓软件开发工具,具体实现方式也不再进行赘述。

s3:将所述安装包2安装至终端设备3以用于离线识别。

上述方法过程均以服务器1为执行主题,在服务器1中完成对深度学习框架11的深度学习训练后获得训练模型,然后利用tensorflowandroid开发环境构建以及应用开发api(applicationprograminterface,应用程序接口),生成安装包2,将安装包2安装到android手机就可以实现看物识名的目的,这里的物体可以为任何东西,例如,用来识别各种各样的花,安卓手机用户可以通过对看到的花进行拍摄然后再通过安装包2对花进行识别即可,也可以是其他一些东西,例如用于识别各种各样的建筑物来历,各种中草药等,具体用于识别什么东西主要看用什么东西对深度学习框架11进行深度学习训练,如果对象是花,那么就使用各种花的数据对深度学习框架11进行深度学习训练。

进一步地,在步骤s1中,使用alexnet网络对深度学习框架11进行深度学习训练;alexnet网络的网络图如图2所示,它包括八个网络层第一层输入层不计算在内;,前五层是卷积层,再是两层全连接层和最后输出层。卷积层目的是学习输入数据的特性表征,卷积层由几个卷积核组成,用于计算不同的特征图。池化层旨在通过减少特征图的分辨率来完成移位不变性,它通常放置在两个卷积层之间。全连接层表示对类别的预测,在实际使用中,全连接层可由卷积操作实现,它在整个卷积神经网络中起到“分类器”的作用。最后一个输出层,就是输出预测的结果。

具体地,如图3所示,在步骤s2中,基于所述动态链接库和所述训练模型编译生成安装包2之前先生成java接口,并通过所述java接口编译生成安装包2。

进一步地,如图4所示,以识别花种为例,在步骤s1中,使用各种花的数据对深度学习框架11进行深度学习训练以获得训练模型。且,在步骤s1之后还对模型文件进行转化:

s11:通过记录文件chekpoint记录保存信息,且所述的chekpoint可用于定位最新保存的训练模型;

s12:提取最新保存的训练模型,并通过模型固化步骤将最新保存的训练模型与pb模型文件inferencepb固化以获得pb文件格式的训练模型,此时的训练模型为固化模型freezepb;

s13:将步骤s12中获得的pb文件格式的训练模型进行数据量化处理以使训练模型参数存储空间要求变小,此时的训练模型为转换模型transformspb。

通过上述的模型文件转换步骤,对模型文件进行转换处理,使得其被安装在终端设备3上时具有更强大有效的推断计算能力。

进一步地,在步骤s3之后还包括更新步骤:

接收所述终端设备3上传的当前训练模型中没有记录的目标图片信息,并根据所述目标图片信息定期或不定期对深度学习框架11进一步进行深度学习训练并重复步骤s1~s3以更新终端设备3中的安装包2。

通过上述步骤,终端设备3在用本实施例生成的安装包2软件识别对象时,有时候会识别到无法识别的对象,此时,终端设备3就会向服务器1上传这些无法识别到的图片,若用户知道该对象的其他信息,在上传这些图片的同时还可以上传这些其他信息以用于对训练模型进行进一步训练;当然,还可以将终端设备3上传的信息暂时保留在服务器1的存储器中,由管理人员和/或管理工具对这些数据进行后台管理整理,保证数据准确性后再对训练模型进行进一步训练以提高训练效果。

通过不断更新的方法使训练模型不断完善,也就是说随着使用用户的增多,训练模型被使用次数的增多,训练模型能够识别的对象会越来越完善。

实施例二

如图5所示,本实施例提供一种智能看物识名的方法,包括:

s1:获取目标图片,对目标图片进行识别,并将所述目标图片与训练模型的模型数据进行匹配;

s2:当读取到匹配度高于预设阈值的时候,输出读取结果,否则,执行步骤s3;

s3:保存包括目标图片的目标图片信息,并在检测到处于wifi环境下时将所述目标图片信息上传至服务器1;

s4:定期或不定期从服务器1中下载更新后的安装包2。

上述方法在终端设备3中执行,终端设备3可以是智能手机、平板等移动式设备。

实施例三

如图6所示,本实施例公开了一种智能看物识名系统,包括服务器1,所述服务器1中具有深度学习框架11和训练模块12,以及ndk工具包13和/或sdk工具包14,且所述服务器1包括有安装包编译模块15和信息交换模块16,其中,

深度学习框架11,用于提供深度学习系统;

训练模块12,用于对深度学习框架11进行深度学习训练以获得训练模型;

ndk工具包13和sdk工具包14,用于生成动态链接库;

安装包编译模块15,用于基于所述动态链接库和训练模型编译安装包2;

信息交换模块16,用于与终端设备3进行信息交互以将所述安装包2安装至所述终端设备3中。

进一步地,服务器1还包括文件记录模块17、模型转换模块18和数据量化模块19,其中,

文件记录模块17,用于记录保存信息,以及定位最新保存的训练模型;

模型转换模块18,用于提取最新保存的训练模型,并将最新保存的训练模型与pb模型文件固化以获得pb文件格式的训练模型;

数据量化模块19,用于将所述训练模型进行数据量化处理以获得参数存储空间要求变小的训练模型;

并且,所述安装包编译模块15还包括java接口生成模块,用于基于所述动态链接库和所述训练模型生成java接口,所述安装包编译模块15又通过所述java接口编译生成安装包2。

进一步地,所述服务器1还包括更新模块10,用于根据终端设备3上传的目标图片信息定期或不定期对训练模型进一步进行深度学习训练;

并由所述信息交换模块16接收当前训练模型中没有记录的目标图片信息,以及将根据进一步深度学习训练的结果重新编译的安装包2更新至所述终端设备3中。

所述安装包2具有图片识别模块21、匹配度判断模块22、存储模块23、输出模块24和目标图片上传模块25,其中,

图片识别模块21,用于识别目标图片;

匹配度判断模块22,用于将目标图片的识别结果与训练模型的模型数据进行匹配;

输出模块24,用于在匹配度高于预设阈值的时候,输出读取结果;

图片上传模块,用于在匹配度低于预设阈值的情况下,在检测到处于wifi环境下时将包括所述目标图片的目标图片信息上传至服务器1。

本文中所描述的具体实施例仅仅是对本发明作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

此外,尽管本文较多地使用了服务器1;深度学习框架11;训练模块12;ndk工具包13;sdk工具包14;安装包编译模块15;信息交换模块16;文件记录模块17;模型转换模块18;数据量化模块19;更新模块10;安装包2;图片识别模块21;匹配度判断模块22;存储模块23;输出模块24;目标图片上传模块25;终端设备3等术语,但并不排除使用其它术语的可能性。使用这些术语仅仅是为了更方便地描述和解释本发明的本质把它们解释成任何一种附加的限制都是与本发明精神相违背的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1