一种基于语义场景分类的图像自动标注方法与流程

文档序号:11200242阅读:744来源:国知局
一种基于语义场景分类的图像自动标注方法与流程

本发明涉及计算机应用及计算视觉领域,涉及一种基于语义场景分类的图像自动标注算法。



背景技术:

通过图像标签来管理、检索图像是一种常见且比较简单有效的方式,但是互联网上仍然存在着大量没有标注或者标注不完全的图像,所以设计一种有效的图像自动标注与分类算法是解决这个问题的关键技术。近年来,在图像自动标注问题上已存在很多的研究工作。主要的研究方法可以分为两类:基于模型学习的方法和基于搜索数据库的方法。

基于搜索数据库的方法根据数据库中已标注的图像的标签直接提供标签候选序列,具有简单、有效的特点。tagprop(guillauminm,mensinkt,verbeekj,etal.tagprop:discriminativemetriclearninginnearestneighbormodelsforimageauto-annotation[c]//ieee,internationalconferenceoncomputervision.ieee,2010:309-316.)算法设计了一个度量学习模型得到一个更加有区分力度的特征表示,提高了knn方法的性能。2pknn(vermay,jawaharcv.imageannotationusingmetriclearninginsemanticneighbourhoods[m]//computervision–eccv2012.springerberlinheidelberg,2012:836-849.)算法考虑了数据集不平衡的问题,在处理后的数据平衡的子集中利用knn方法完成标注,提高了算法效率。nmf-knn(kalayehmm,idreesh,shahm.nmf-knn:imageannotationusingweightedmulti-viewnon-negativematrixfactorization[c]//ieeeconferenceoncomputervisionandpatternrecognition.ieee,2014:184-191.)算法为每个待标注图像生成一个特定的生成模型完成标注任务,提升了标注效果,但是算法复杂度高不适合实际应用。swim(liuh,lix,zhangs.learninginstancecorrelationfunctionsformultilabelclassification[j].ieeetransactionsoncybernetics,2016,47(2):499-510.)算法则考虑了训练数据与测试数据的映射关系,提出了一种加权形式的knn算法,实现图像标注。

基于数据集搜索的方法主要存在两个问题,一是忽略了标签共现的问题,从而导致了较低的准确率,另一个是大规模数据库条件下knn-based算法效率低下。

基于模型学习的方法中,自动图像标注问题可以看作多类别分类问题或者针对每个标签的二分类问题。svia(sunl,geh,yoshidas,etal.supportvectordescriptionofclustersforcontent-basedimageannotation[j].patternrecognition,2014,47(3):1361-1374.)算法为每个标签学习一个one-class的svmmodel,之后考虑标签之间的统计关系利用贝叶斯推理重新为推荐的标签序列计分完成标注任务。ldmkl和sdmkl(jium,sahbih.nonlineardeepkernellearningforimageannotation.[c]//ieeeinternationalconferenceonacoustics,speechandsignalprocessing.ieee,2016:1551-1555.)算法设计了一个非线性深度核学习模型,采用one-vs-rest策略独立的对每个标签学习分类器实现标注任务。算法(darwishsm.combiningfireflyalgorithmandbayesianclassifier:newdirectionforautomaticmultilabelimageannotation[j].ietimageprocessing,2016,10(10):763-772.)将图像过分割成多个区域(region),基于在图像区域中提取的特征(regionfeature)利用贝叶斯分类器实现图像标注算法。lift(zhangml,wul.lift:multi-labellearningwithlabel-specificfeatures[j].ieeetransactionsonpatternanalysisandmachineintelligence,2015,37(1):107-120.)算法首先为每个类别标签构建标签特定的特征,然后对每个标签在该标签特定的特征上学习分类器实现标注任务。

此类方法将标签视为类别将标注问题转化为分类问题,当数据集标签数量巨大时,则意味着巨大的分类输出空间,从而导致此类方法不再适合。算法lcmkl(guy,qianx,liq,etal.imageannotationbylatentcommunitydetectionandmultikernellearning[j].ieeetransactionsonimageprocessingapublicationoftheieeesignalprocessingsociety,2015,24(11):3450.)采用fastunfoldingalgorithm算法将标签硬分类,并对不同类别训练mkl分类器,缓解了基于模型学习的算法不适合标签个数多的数据集的问题,但是由于采用硬分类算法忽略了标签属于多个类别的情况,从而导致标签分类不合理、样本映射不准确,算法效果较差。

针对在图像标注问题中没有考虑标签与语义场景间的映射关系以及存在的标签硬分类问题,本发明基于非负矩阵分解提出了一种标签的语义场景划分方法,实现了标签与语义场景间的概率映射。继而利用场景分类,将待标注样本映射到场景相关的样本子集中采用knn(knearestneighbor)方法完成标注。由于本方法在样本场景相关的样本集合中利用knn完成标注,这不仅提升了knn算法效率,也减少了噪音的干扰,提高了标注效果。再者,由于场景个数远小于标签个数,从而解决了基于模型学习的方法不适合标签数量庞大的数据集的问题。



技术实现要素:

针对在图像标注问题中没有考虑标签与语义场景间的映射关系以及存在的标签硬分类问题,本发明提出了一种基于语义场景分类的图像自动标注方法。首先,根据训练集中的标签信息利用nmf-based(基于非负矩阵分解的)方法进行场景检测,得到标签属于每个场景的概率。然后依据训练集中样本的标签信息,将样本以概率的方式映射到对应的场景。继而,将得到的场景视为不同的类别信息,场景内的训练集样本作为训练数据,训练场景分类器。最后根据训练而来的分类器,将测试集中的样本进行场景分类,在得到的top-2最相关场景对应的训练子集上利用knn方法完成标注。

本发明技术方案如下:

本发明实施例提供一种基于语义场景分类的图像自动标注方法及框架。

1、特征提取。

对图像提取多种不同的特征,例如gist(512d),densehue(100d),harrishue(100d),densesift(1000d),harrissift(1000d)。

2、构建标签关系图、场景检测和场景个数确定。

a、构建标签关系图

利用公式(1)建立标签之间的关系图c:

n(ci,cj)表示训练集中同时标注有标签ci和标签cj的样本数,n(cj)表示标注有标签cj的样本数。cij表示在标注有标签cj的样本中,标注有标签ci的样本所占比例。

b、场景检测

依据关系图c和公式(2)建立非负矩阵分解模型,利用更新规则(3)和公式(4)更新公式(2),收敛后利用公式(5)归一化w。

wswt=(wd-1)(dsdt)(wd-1)t(5)

k为潜在场景个数,m为标签的个数,公式(5)在w和s之间引入一个对角矩阵d归一化w,wik表示样本i属于场景k的概率。

c、场景个数确定

通过设定不同的场景个数k,运行b中所述方法。将得到的w矩阵0/1化(将w每行中最大值设定为1,其他设为0),再根据公式(6)计算社区模块性。

其中wi,j表示节点i和节点j之间的连接权重,表示与节点i连接的所有权重的和;当节点i和节点j属于同一个社区时,φ(nodei,nodej)等于1,否则等于0。本发明中的场景检测实质可以理解为标签连接矩阵的社区检测,通过选取不同的值计算法模块性值m,选取m最大的k作为场景个数。

3、映射样本到场景

给定训练样本{xi,yi}(其中xi是该样本的特征向量,yi表示该样本的标签向量,yi∈r1*m,如果该样本标注有第k个标签,则yik=1),根据每个样本的标签信息映射到各个场景。本发明假设图像的每个标签对图像属于哪个场景独立起作用,并基于此假设提供了一种映射样本到场景的策略,即可以如下(7)计算样本i属于场景sk的概率:

其中,wk表示w的第k列,w为步骤2中b小节计算得到。

从而对于训练集{x,y},利用公式(8)得到所有样本的场景信息:

p=v*(y*w)(8)

其中,p∈rn1*k,pik表示样本i属于场景sk的概率,v∈rn1*n1是一个对角阵来归一化(y*w),y∈rn1*m,n1表示训练集样本个数,m表示标签个数。将p矩阵0/1化处理得到z∈rk*n1,即:

其中pi为p的第i行。则训练集由{x,y}转为{x,y,z},其中,如果zki=1,则表示第i个样本所属场景为sk。

4、分类器训练

针对多特征问题本发明采用了基于差分de(查分进化)和elm(极限学习机)的加权投票法,如下:

本发明采用加权投票法线性组合多个特征的分类结果,作为最终分类结果,即:

其中cv表示测试集的第v个视角特征对应的elm分类器的分类结果,即:cv=gelm(xv),θv表示第v个特征对应分类结果的权重,其中θ∈rv*1。本发明采用5-fold交叉验证的方式确定这里的权重θ,构建如下目标函数:

采用de算法优化公式(11)求解上述参数θ,z为步骤3得到的场景类别信息。

5、对未标注图像进行标注。

对未标注图像提取同样的特征信息,并输入到4中训练的分类器里,得到分类结果。在最相关的两个场景内的训练集样本上运行knn-based算法,得到预测标签。下面是本步骤所使用的标注算法伪代码。

本发明的有益效果为:

由于本方法在样本场景相关的样本集合中利用knn完成标注,这不仅提升了knn算法效率,也减少了噪音的干扰,提高了标注效果。再者,由于场景个数远小于标签个数,从而解决了基于模型学习的方法不适合标签数量庞大的数据集的问题。

附图说明

图1算法流程图;

图2场景检测损失函数变化曲线;

图3基准实例iaprtc12模块性变化曲线;

图4基准实例iaprtc12不同最邻近样本个数下的效果曲线;(a)准确率、(b)召回率、(c)f1值、(d)平均准确率;

图5基准实例iaprtc12不同隐藏节点个数下的效果曲线;(a)准确率、(b)召回率、(c)f1值、(d)平均准确率。

具体实施方式

所论述的具体实施例仅用于说明本发明的实现方式,而不限制本发明的范围。下面结合附图对本发明的实施方式进行详细说明。

本发明在基准实例iaprtc12的实施例如下:

符号表示:训练集合{x,y},测试集合{x′},x表示样本特征矩阵,y表示训练集标签信息,x′表示测试集特征矩阵。

(1)特征提取

利用基准实例iaprtc12已存在的gist(512d),densehue(100d),harrishue(100d),densesift(1000d),harrissift(1000d)五种特征作为本本实施例的特征{x}。

(2)场景检测示例

根据公式(1)和标签矩阵y构建标签关系图c,依据公式(2)和关系矩阵c建立非负分解模型,利用公式(3)和公式(4)更新所建模型,并利用公式(5)归一化所得w。图2展示了算法在基准实例iaprtc12上的损失值变化曲线;图3给出了模块性标准在k=3,…,15时的取值情况。依据图3本实施例选取k=9作为该基准实例的场景个数,并将k=9时公式(2)得到的w作为映射样本的依据。

(3)样本映射到场景

依据上述步骤得到的w,根据公式(8)和公式(9)将样本映射到对应的场景中,从而训练集成为{x,y,z},其中,如果zki=1,则表示第i个样本所属场景为sk。

(4)分类器训练

将上一步骤得到的{x,z},依据公式(10)和公式(11),训练分类器。

(5)对未标注图像进行标注。

对于测试样本x∈x′,首先依据(4)步骤训练的分类器找到最相关的两个场景,在这个两个相关场景内的样本子集中利用knn算法完成标注。图4展示了基准实例对于最邻近样本个数取值为10,20,…,150时,算法的准确率、召回率、f1值、平均准确率的变化曲线。图5展示了基准实例对于极限学习机隐藏层节点个数取值100,200,…,1500时的效果变化曲线。

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