一种基于频繁项目集的图片标注推荐方法与流程

文档序号:17662616发布日期:2019-05-15 22:29阅读:149来源:国知局

本发明属于数据挖掘技术领域,特别涉及了一种基于频繁项目集的图片标注推荐方法。



背景技术:

机器视觉系统在训练过程中,需要通过识别已经标注好的样本来逐步提高机器视觉系统识别图片的准确性,这样就需要提前准备海量已经标注好的训练样本图片。传统的制作训练样本的方法是集中一部分人,以人工方式对图片标签化,这种方式不仅效率低,而且因为每个人具备的专业知识不一样,导致标注的质量参差不齐。现有的图片标注系统如labelimg、bbox-label-tool等仅支持单个用户对图片进行标注,但不能根据用户的专业知识背景对图片进行分发,因此需要一个智能系统能够让大量的图片得到快速、准确地标注。

数据挖掘是一种从大型数据库或数据仓库中发现并提取出隐藏在其中有用信息的一种新技术。它自动从数据中提取出人们感兴趣的潜在可用信息和知识,并将提取出来的信息和知识表示成概念、规则、规律或模式。自从agrawal等人于1993年提出频繁模式挖掘问题以来,已经提出了许多行之有效的技术来进行频繁模式挖掘。根据挖掘的目标和应用领域的不同,这些挖掘方法可以分为两大类:产生候选集/候选模式的方法和不产生候选集/候选模式的方法。前一种方法以算法apriori为代表,而后一种以算法fp-growth为代表。fp-growth算法不同于apriori算法生成候选项集再检验是否频繁的“产生-测试”方法,而是使用一种称为频繁模式树(fp-tree)的紧凑数据结构组织数据,并直接从该结构中提取频繁项目集。fp-growth算法将事务数据库有效地压缩成小存储空间的数据结构,克服了apriori算法中多次扫描事务数据库的缺陷,只需对事务数据库进行二次扫描,将发现长频繁模式的问题转化递归模式增长的策略,避免产生的大量候选集,大大降低了算法的时间复杂度。



技术实现要素:

为了解决现有技术中海量图片标注过程中效率、标注准确度差等问题,本发明提供了一种基于频繁项目集的图片标注推荐方法,提升了图片标注的速度和准确度。

为了实现上述技术目的,本发明的技术方案为:

一种基于频繁项目集的图片标注推荐方法,包括如下步骤:

(1)当新用户首次登录时,因为该新用户没有历史标签,所以将随机向其推送无标签的图片;

(2)当用户拥有历史标签后,获取系统中所有标签构成项目集合l;获取每个用户的历史标签构成事务数据库d,事务数据库d中的每一个事务都与唯一的一个用户对应;

(3)采用频繁模式增长算法构建频繁模式树,并从频繁模式树中获取频繁项目集;

(4)每当用户有新的图片标注请求时,系统便会在频繁项目集中查找,选择用户感兴趣的图片;

(5)当用户标记过一张图片后,立即判断这张图片是否完成标注,即是否这张图片的标签数目满足一阈值v且按频数排序后前n项标签的频数同时满足一阈值w;若完成标注,则该图片标记为已完成,将标注完成的图片导出,且在查找图片阶段不再推送该图片。

进一步地,步骤(3)中构建频繁模式树的具体过程如下:

(301)扫描事务数据库d,过滤掉所有不满足最小支持度的标签,认为这些标签是不频繁的,不参与频繁模式树的建立;对于满足最小支持度的标签,按照全局支持度降序排序;一个标签的全局支持度被定义为扫描事务数据库d中包含该标签的记录所占的比例;

(302)为了快速访问频繁模式树中的相同标签,在扫描事务数据库d的同时建立一个连接具有相同标签的结点的指针列表,每个列表元素包括标签项、该标签的全局支持度和指向频繁模式树中该项链表的表头的指针;

(303)再次扫描过滤后的事务数据库d;创建频繁模式树根结点,将频繁模式树的结点定义为标签、频数、父结点和子结点集;然后将排序后的每个标签项插入频繁模式树中,并将用户的职业信息作为一个虚拟的标签加在末尾;如果某个标签项是第一次遇到,则创建新结点,并在指针列表中添加一个指向该结点的指针,否则按路径找到该标签对应的结点,修改结信息;

(304)当所有标签加入频繁模式树后,建树过程结束。

进一步地,步骤(3)中获取频繁项目集的具体过程如下:

(311)从频繁模式树头指针列表中的单个频繁标签开始,对于每一个标签,获得其对应的条件模式基,即该标签的前缀路径中所有的标签的集合;由于在树的结点定义中有父结点及指向该结点的指针,因此遍历头指针列表,向上回溯到根结点,构造前缀路径;

(312)根据每一标签项的条件模式基和最小支持度的要求构造每一标签项的条件模式树,发掘频繁项目集,并将频繁项目集存入事务数据库d中。

进一步地,步骤(4)的具体过程如下:

(401)计算频繁项目集与用户历史标签集合的重合度val,找出重合度val大于设定阈值r的全部频繁项目集组成集合i,并对集合i进行扩充,使集合i中图片的数量达到设定值leastnum,把扩充后的集合定义为集合i-extend;

(402)当拥有了数量m的已标注图片后,用这些图片构建一个稀疏自编码神经网络,通过该神经网络学习集合i-extend中的图片作为特征向量x,学习用户标注过的图片作为特征向量y;

(403)判断是否存在已构建成功的稀疏自编码神经网络,若存在,则转入步骤(404);若不存在,则将集合i-extend中的图片推荐给用户;

(404)计算特征向量x与特征向量y的相似度sxy,若相似度大于设定阈值u,则将此频繁项目集推荐给用户,反之则不推荐。

进一步地,在步骤(401)中,优先随机选择没有标签的图片对集合i扩充;按下式计算重合度val:

val=f(seta,setb)

上式中,seta为当前频繁项目集,setb为用户历史标签集合,f定义如下:

设集合a中与集合b中相同的元素数目为x,a中有而b中没有的元素数目为y,b中有而a中没有的元素数目为z,则f(a,b)=x+y–z。

进一步地,所述稀疏自编码神经网络分为三层:输入层,隐藏层和输出层;对于集合i-extend,把集合i-extend中的图片作为稀疏自编码神经网络的输入,将隐藏层的输出作为特征向量x;对于用户标注过的图片,把用户一段时间内标注过的图片作为稀疏自编码神经网络的输入,将隐藏层的输出作为特征向量y;每当增加了数量m的已标注图片后对稀疏自编码神经网络进行更新。

进一步地,在步骤(404)中,按下式计算相似度sxy;

上式中,xj和yj分别为特征向量x和特征向量y中的第j个特征,p为特征个数。

采用上述技术方案带来的有益效果:

本发明直接将频繁项目集存放到数据库中,避免多次计算。同时,每隔一段时间在机器空闲时重建频繁项目集,实现推荐的动态更新。当第一批图片标注完成后首次构建稀疏自编码神经网络,此后每当有一批图片标注完成时便更新稀疏自编码神经网络,实现推荐的动态更新。在过滤及重排后的项目中,将用户的职业信息作为一个虚拟的标签加在最后,以发掘出用户喜好的标签与用户职业的关联。

附图说明

图1是本发明的方法流程图。

具体实施方式

以下将结合附图,对本发明的技术方案进行详细说明。

本发明设计了一种基于频繁项目集的图片标注推荐算法,如图1所示,包括如下步骤:

步骤1:当一个新用户首次登录时,因为其没有历史标签,所以将随机推送无标签的图片。

步骤2:获取系统中所有标签构成项目集合l={l1,l2,l3,…,ln},n为所有标签的个数。获取每个用户的历史标签构成事务数据库d={d1,d2,…,dm},m为事务的个数,其中每一个事务di都与一个唯一的用户对应。

步骤3:构建频繁模式树。其例子如下:

在该任务中,事务的id为用户,事务中的项为标签记录。以小写字母代替具体的标签。设有以下用户和对应事务:user01={r,z,h,j,p}、usrer02={z,y,x,w,v,u,t,s}、user03={z}、user04={r,x,n,o,s}、user05={y,r,x,z,q,t,p}、user06={y,z,x,e,q,s,t,m}。设最小支持度为3,将出现次数小于最小支持度的项删除,并根据元素项出现的次数,对元素项进行过滤重排。则过滤重排后的用户和对应事务为:user01={z,r}、usrer02={z,x,y,s,t}、user03={z}、user04={x,s,r}、user05={z,x,y,r,t}、user06={z,x,y,s,t}。

扫描事务数据库,由于h,j,p的出现次数小于3,认为这些项是不频繁的,因此不参与频繁模式树的构建。频繁模式树的构造过程为:创建频繁模式树根结点,标记为null,将user01过滤后的事务按顺序添加在根节点下方{[z:1][r:1]},同时创建指针列表;然后继续添加user02过滤后的事务,并将重复的z改为[z:2],相应的指针列表也要增加,依次将6个用户全部添加进去,建树过程结束。

步骤4:从频繁模式树中获取频繁项目集。频繁项目集是指经常出现在一块儿的标签的集合。其例子如下:

首先根据保存在头指针中的单个频繁元素项开始,对于每一个元素项,获得其对应的条件模式基。每一个频繁项的前缀路径为:z:{}、r:{{x,s}1,{z,x,y}1,{z}1}、x{{z}3,{}1}、y:{{z,x}3}、s:{{z,x,y}2,{x}1}、t:{{z,x,y}2,{x}1}。

每一项的条件模式基构造完毕后,构造每一项的条件模式树。如为t建立条件模式树,根据最小支持度3,删除s,r。s,r出现在条件模式基中,说明s,r本身是频繁的,但是不满足最小支持度,因此认为{t,s},{t,r}是不频繁的。{t,z,x,y}被认为是频繁的。按照以上步骤,递归所有频繁项建立条件频繁模式树,发掘频繁项目集。在处理完成之后,将频繁项目集存入数据库中供以后查找使用。

步骤5:每当用户有新的图片标注请求时,系统便会在频繁项目集中查找,选择用户可能感兴趣的图片。其过程如下:

(1)通过下式计算频繁项目集与用户历史标签集合的重合度,找出大于设定阈值r的全部频繁项目集组成集合i,并对集合i进行扩充得到集合i-extend,使集合i-extend中图片的数量达到值leastnum,优先随机选择没有标签的图片。

val=f(seta,setb)

其中seta为当前频繁项目集,setb为用户历史标签集合,f定义为:

设集合a中与集合b中相同的元素数目为x,a中有而b中没有的元素数目为y,b中有而a中没有的元素数目为z,f(a,b)=x+y–z。因x+y为一个定值,则val的值越大,说明此频繁项目集与当前用户的兴趣或职业越相似;反之val的值越小,说明此频繁项目集与当前用户的兴趣或职业越迥异。

(2)稀疏自编码神经网络分为三层:输入层,隐藏层和输出层;对于集合i-extend,把集合i-extend中的图片作为稀疏自编码神经网络的输入,将隐藏层的输出作为特征向量x;对于用户标注过的图片,把用户一段时间内标注过的图片作为稀疏自编码神经网络的输入,将隐藏层的输出作为特征向量y;每当增加了数量m的已标注图片后对稀疏自编码神经网络进行更新。

(3)判断是否存在已构建成功的稀疏自编码神经网络,若存在,则转入第(4)步;若不存在,则将集合i-extend中的图片推荐给用户。

(4)为了使推荐的图片更能让用户产生兴趣,本发明增加了稀疏自编码神经网络来计算特征向量x与特征向量y的相似度,若大于设定阈值u,说明这个频繁项目集更贴合于用户的职业和兴趣,则将这个频繁项目集推荐给用户,反之则不推荐。其相似度计算如下:

其中,xj和yj分别为特征向量x和特征向量y中的第j个特征;p为特征个数。

步骤6:当用户标记过一张图片后,立即判断这张图片是否完成标注,即这张图片的标签数目满足一阈值且按频数排序后前n项标签的频数同时满足一阈值。若完成标注,则标记为已完成,并把标注完成的图片导出,且在查找图片阶段不在推送。

实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。

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