本发明涉及图像分类领域,特别是涉及一种图像库的建立方法及系统、图像库和图像分类方法。
背景技术:
机器视觉作为人工智能的重要组成部分,在如今的生活中发挥着越来越重要的作用。但是机器视觉系统在训练过程中需要通过识别大量已经标注好的样本来提高机器视觉识别系统识别图片的准确性。传统的图片标注方法是直接通过人工方式对图片进行标注,然后将标签集作为图片的最终标签用作机器视觉学习的训练样本。
传统的人工标注方式不仅效率低下,而且由于个人专业知识的不同,会导致图片的标签过于发散,标注质量参差不齐,训练样本不纯,最终导致机器视觉识别图片系统识别率低。
技术实现要素:
本发明的目的是提供一种图像库的建立方法及系统、图像库和图像分类方法,用于解决传统的人工标注方式标注质量参差不齐的问题。
为实现上述目的,本发明提供了如下方案:
本发明提供了一种图像库的建立方法,其特征在于,包括:
获取待标注的图像;
根据图像识别算法确定所述图像的初始标签;
获取所述图像的自定义标签;所述自定义标签为用户的输入文本;
根据所述初始标签和所述自定义标签确定所述图像的目标标签;
存储所述图像和所述目标标签,形成训练样本。
可选的,所述根据图像识别算法确定所述图像的初始标签,具体包括:
提取所述图像的特征信息;
将所述特征信息与特征库里的图像参照特征信息进行对比,得到对比结果;
根据所述对比结果确定所述图像的的初始标签。
可选的,所述获取所述图像的自定义标签,具体包括:
获取用户的输入文本;
判断所述输入文本是否为所述初始标签,得到第一判断结果;
若第一判断结果表示所述输入文本为所述初始标签,确定所述输入文本为自定义标签;
若第一判断结果表示所述输入文本不为所述初始标签,对所述输入文本进行预处理,得到自定义标签。
可选的,所述对所述输入文本进行预处理,具体包括:
对所述输入文本进行分词,得到分词结果;
将所述分词结果转换成词向量;
判断两个所述词向量的距离是否小于阈值,得到第二判断结果;
当第二判断结果表示两个所述词向量的距离小于阈值时,将两个所述向量对应的分词结果进行合并;
当第二判断结果表示两个所述词向量的距离不小于阈值时,保留所述向量对应的分词结果;
得到自定义标签。
可选的,所述根据所述自定义标签确定所述图像的目标标签,具体包括:
获取所述用户的置信度;
根据所述置信度确定所述自定义标签的权重;
根据所述权重确定所述自定义标签的优选结果。
可选的,所述获取用户的置信度,具体包括:
将带有数学期望最大的若干个标签的图片呈现给所述用户;
获取所述用户对所述图片标注的结果;
根据所述结果计算所述用户标注的准确率;
根据置信度公式计算所述用户的置信度,所述置信度公式为:
本发明还提供了一种图像库的建立系统,包括:
图像获取模块,用于获取待标注的图像;
初始标签确定模块,用于根据图像识别算法确定所述图像的初始标签;
自定义标签获取模块,用于获取所述图像的自定义标签;
目标标签确定模块,用于根据所述初始标签和所述自定义标签确定所述图像的目标标签;
存储模块,用于存储所述图像和所述目标标签,形成训练样本。
本发明还提供了一种图像库,所述图像库根据所述图像库的建立方法获得。
本发明还提供了一种图像分类的方法,根据所述的图像库对待分类的图像进行分类,所述图像分类方法包括:
获取待分类的图像;
提取所述图像的特征信息;
将所述特征信息与图像库里的图像参照特征信息进行对比,得到对比结果;
根据所述对比结果确定所述图像的的分类结果。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明提供的图像库建立方法,首先根据图像识别算法确定图像的初始标签;再根据初始标签和用户标注的自定义标签共同对图像进行标注,增加了图像标注的专业性,同时参考了人工的意见,提高了标注质量和训练样本的纯度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明图像库的建立方法的实施例的流程图;
图2为起始模块(inceptionmodule)的结构图;
图3为起始模块(inceptionmodule)的结构改进图;
图4为本发明图像库的建立系统的实施例的结构连接图;
图5为本发明图像分类方法的实施例的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供了一种图像库的建立方法,所述图像库的建立方法包括:获取待标注的图像;根据图像识别算法确定所述图像的初始标签;获取所述图像的自定义标签;所述自定义标签为用户的输入文本;根据所述初始标签和所述自定义标签确定所述图像的目标标签;存储所述图像和所述目标标签,形成训练样本。
本发明提供的图像库建立方法,首先根据图像识别算法确定图像的初始标签;再根据初始标签和用户标注的自定义标签共同对图像进行标注,增加了图像标注的专业性,同时参考了人工的意见,提高了标注质量和训练样本的纯度。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
实施例
图1为本发明图像库的建立方法的实施例1的流程图,如图1所示,所述图像库的建立方法包括:
步骤101,获取待标注的图像;
步骤102,根据图像识别算法确定所述图像的初始标签,具体包括:
步骤a1,提取所述图像的特征信息;
步骤a2,将所述特征信息与特征库里的图像参照特征信息进行对比,得到对比结果;
步骤a3,根据所述对比结果确定所述图像的的初始标签,具体为:当所述对比结果满足某一预设条件时,将特征库里的图像的标签赋给所述待标注的图像。
我们选择imagenet-1k作为训练样本,imagenet-1k是目前公认的图像分类数据集,总共为1000个类,数据集覆盖广。
对于分类模型,我们选用了2014年的imagenet比赛中的佼佼者----google。googlenet第一次提出了inceptionmodule(起始模块),一般情况下,在进行对图像的卷积(一种提取图像特征的操作,且具有一定的降低图像数据维度的作用)操作时仅仅只使用一种卷积核(进行卷积操作时计算单元,主要参数包括卷积核的尺寸,以及步距,即相应几个像素点进行一次卷积操作,当步距大于1时,卷积操作也起到了降低数据维度的作用),而inceptionmodule则在同一层中使用了多个卷积核,即在同一层中可以提取到不同的特征,结构图如图2所示。数据从下向上流,可以看到总共有4个不同尺寸的卷积核,其中包括1*1、3*3、5*5和一个3*3的maxpooling,pooling是一种特殊的卷积操作,通常是取一个区域像素点的平均值或者最大值,maxpooling即代表取原图像3*3区域内的最值)。
但是采用此种方法,会使得网络的参数量很大,且特征图数量不断增加(即经过卷积操作之后的图像),5*5的卷积操作将非常耗时,所以对网络的结构进行了调整,如图3所示。
我们假设前一层传来的数据为96*96*256,其中96*96代表经过卷积操作后的图像长宽,256代表图像的个数,这里的图像均为先前提到的特征图,我们考虑图一的结构,对于5*5的卷积,如果我们想要得到维度为512的输出,即最终的输出为96*96*512,根据矩阵运算,参数量为256*5*5*512,但是加上32个1*1的卷积后,参数量为256x1x1x32+32x5x5x512,缩小了4倍左右。
本发明通过上述方法确定待标注图像的10个初始标签。
步骤103,获取所述图像的自定义标签,具体包括:
步骤b1,获取用户的输入文本;
步骤b2,判断所述输入文本是否为所述初始标签;
步骤b3,若所述输入文本为所述初始标签,确定所述输入文本为自定义标签;
步骤b4,若所述输入文本不为所述初始标签,对所述输入文本进行预处理,得到自定义标签。所述预处理包括:对所述输入文本进行分词,得到分词结果;将所述分词结果转换成词向量;判断两个所述词向量的距离是否小于阈值;当两个所述词向量的距离小于阈值时,将两个所述向量对应的分词结果进行合并;当两个所述词向量的距离不小于阈值时,保留所述向量对应的分词结果;得到自定义标签。
具体实施方式为:对于每一张待标签化的图片,先在后台用图片识别算法获得10个初始标签,然后将这张图片跟这10个初始标签绑定一起推向多个用户。
用户可以从10个给定的初始标签中任选若干理想的标签提交至后台。
用户还可以在输入栏中输入自定义的文本内容提交至后台。后台基于某种分词策略(例如词典字符串最长匹配)对用户自定义输入文本内容进行分词。例如用户输入为“奔跑的小狗”,分词的结果为“奔跑”、“的”、“小狗”;用户的输入为“调皮的泰迪狗”,分词的结果为“调皮”、“的”、“泰迪狗”。
分词结果池中收集分词结果(可重复)至一定的数量n后(n>=30),使用word2vec将每一个词转换成向量,两两计算彼此的距离,将距离小于某个既定值的两个向量所对应的词进行任取其一合并。
词向量获得方法:
word2vec是基于迭代的方法获取词向量,下面的两个公式分别对应一元语言模型(当前词的概率只和自己有关)和二元语言模型(当前词的概率和前一个词有关),利用cbow(continuousbagofwordsmodel)和skip-grammodel,可以从语料库中计算出给定上下文预测当前词的概率值,从而得到词向量。即通过建模,每个词与其上下文建立了联系;通过训练,参数和输入得到优化。最终,在实现损失函数最小化的同时,得到词向量。
计算两个向量之间的距离,即cos距离:
假设两个词向量为x(x1,x2,x3,…,xn),y(y1,y2,y3,…,yn),则两个向量之间的距离公式如下:
本发明弃用纯人工标注,加入了机器学习已有的成果先进行图片分类,再由人工选取标签标注。传统的图片标注是纯人力的对一张图片进行手动输入标签,没有任何范围限制,由于每个人的专业知识以及思维不一样,所以标注的结果往往会很混乱,而且传统标注一般一张图片仅由一人标注一次便出结果,最终造成生成的训练集质量低。我们加入现有的图片分类算法后,可以将图片的类别缩小到一定范围,避免标注人员的主观意见的影响。在得到一定范围的标签后,我们再由标注人员从范围标签内选择他所认为正确的标签进行该轮次的统计。每张图片均由多人标注,虽然标注的频率高,但是由于只是采取标注,所以每张图片标注的时间大大减少了。
步骤104,根据所述初始标签和所述自定义标签确定所述图像的目标标签;
步骤c1,获取所述用户的置信度。用户的置信度最初是一致的,但是可以通过每次标注进行调整。
在每次图片标注完成以后,通过以下步骤进行调整:
a、统计每个用户标注结果中正确的标签数和错误的标签数,计算每个用户的准确率。
b、利用置信度评测公式对所有的标签统计结果进行计算,得到该用户的置信度。置信度评测公式为:
步骤c2,根据所述置信度确定所述自定义标签的权重。
后台结合用户的置信度对一张图片中的每一个标签进行加权,得到每个标签的当前总分值。例如有1个用户的置信度为10,选了标签a;而另外有8个用户的置信度都为1,都选了标签b,此时,标签a的当前总分值即为1*10,而标签b的当前总分值即为8*1。
步骤c3,根据所述权重确定所述自定义标签的优选结果。
选出权重最高的5个标签,将这5个标签与任意5个图片初始标签,再推向用户进行打标签过程,如此重复k次(k>=3),得到最终结果,即目标标签。
采用迭代方式进行图片标注,增加图片标注准确度。在每次得到足够多的标注结果后,我们会从中选取出标签数量最多的几个,然后将其作为下一轮标注的原始标签重新进行标注。重复迭代数次可得到最终图片标签。
将这5个标签与之前每个用户选定的标签与或自定义输入的标签文本做word2vec计算距离,若距离小于某个既定值,则认为该标签正确,根据正确率修改用户的置信度。
步骤105,存储所述图像和所述目标标签,形成训练样本。
将所有图像进行上述操作,获得尽量多的训练样本,共同构成图像库。
将得到的标签生成的测试集以备机器学习使用,做到反哺。在得到图片标注结果标签后,我们将其规范化成训练集,提供给机器学习者直接使用。
本发明还提供了一种图像库,所述图像库根据上述的图像库的建立方法获得。
本发明提供了一种图像库的构建系统。图4为本发明图像库的建立系统的实施例的结构连接图,如图4所示,所述图像库的构建系统包括:图像获取模块401、初始标签确定模块402、自定义标签获取模块403、目标标签确定模块404和存储模块405。
图像获取模块401,用于获取待标注的图像;
初始标签确定模块402,用于根据图像识别算法确定所述图像的初始标签;
自定义标签获取模块403,用于获取所述图像的自定义标签;
目标标签确定模块404,用于根据所述初始标签和所述自定义标签确定所述图像的目标标签;
存储模块405,用于存储所述图像和所述目标标签,形成训练样本。
本发明还提供了一种图像分类方法,根据上述的图像库对待分类的图像进行分类。
图5为本发明图像分类方法的实施例的流程图,如图5所示,所述图像分类方法包括:
步骤501,获取待分类的图像;
步骤502,提取所述图像的特征信息;
步骤503,将所述特征信息与图像库里的图像参照特征信息进行对比,得到对比结果;
步骤504,根据所述对比结果确定所述图像的的分类结果。当所述对比结果满足某一预设条件时,将特征库里的图像的标签赋给所述待标注的图像。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。