图片推荐方法及装置与流程

文档序号:11950388阅读:192来源:国知局
图片推荐方法及装置与流程

本发明涉及数据处理领域,具体而言,涉及一种图片推荐方法及装置。



背景技术:

用户观看节目的同时喜欢上明星,大部分原因是靠明星的衣着,爱屋及乌自然有购买明星穿的某款衣服的愿望,但是针对高清甚至超清电视节目,海量观众且内容更新快的应用场景,离线有监督机器学习方式需要不断的学习,因此不适合。针对在线用户多,用户的喜好各不相同,现在很少有方案去分析节目视频中人物的衣着,并通过实时分析视频中人物的衣着,向用户进行图片的推荐。



技术实现要素:

有鉴于此,本发明实施例的目的在于提供一种图片推荐方法及装置,以解决上述问题。

第一方面,本发明实施例提供一种图片推荐方法,所述方法包括:依次计算待推荐图片的第一特征向量与视频流中每一视频帧的第二特征向量的差异度;当视频流中存在任意视频帧的特征向量与所述待推荐图片的特征向量之间的差异度小于预设阈值,则判定所述图片为推荐图片;其中,计算待推荐图片的第一特征向量与视频流中视频帧的第二特征向量的差异度,包括:分别确定所述待推荐图片以及视频帧中衣着区域;分别对所述待推荐图片以及所述视频帧中衣着区域进行分块,分别计算每个分块对应的LBP值;依次扫描所述待推荐图片分块对应的LBP值形成第一特征向量,依次扫描所述视频帧分块对应的LBP值形成第二特征向量;将所述第一特征向量与所述第二特征向量相同位置的LBP值求差值,将差值平方乘以对应的扫描顺序号后求和,得到差异度。

第二方面,本发明实施例提供一种图片推荐装置,所述装置包括:计算模块,用于依次计算待推荐图片的第一特征向量与视频流中每一视频帧的第二特征向量的差异度;其中,计算待推荐图片的第一特征向量与视频流中视频帧的第二特征向量的差异度,包括:分别确定所述待推荐图片以及视频帧中衣着区域;分别对所述待推荐图片以及所述视频帧中衣着区域进行分块,分别计算每个分块对应的LBP值;依次扫描所述待推荐图片分块对应的LBP值形成第一特征向量,依次扫描所述视频帧分块对应的LBP值形成第二特征向量;将所述第一特征向量与所述第二特征向量相同位置的LBP值求差值,将差值平方乘以对应的扫描顺序号后求和,得到差异度;判断模块,用于当视频流中存在任意视频帧的特征向量与所述待推荐图片的特征向量之间的差异度小于预设阈值,则判定所述图片为推荐图片。

与现有技术相比,本发明实施例提供的一种图片推荐方法及装置,通过计算待推荐图片的第一特征向量与视频流中每一视频帧的第二特征向量的差异度,根据差异度来判断是否为推荐图片,这种方式,能够实时的根据视频内容来用户推荐合适的图片,使得用户体验度提升。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1是本发明实施例提供的服务器的方框示意图。

图2是本发明第一实施例提供的一种图片推荐方法的流程图。

图3是本发明第二实施例提供的一种图片推荐方法的流程图。

图4是本发明实施例提供的一种图片推荐装置的功能模块示意图。

具体实施方式

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性或时间先后。

如图1所示,是服务器200的方框示意图。所述服务器200包括选图片推荐装置210、存储器220、存储控制器230、处理器240。

所述存储器220、存储控制器230、处理器240各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述图片推荐装置210包括至少一个可以软件或固件(firmware)的形式存储于所述存储器中或固化在所述服务器200的操作系统(operating system,OS)中的软件功能模块。所述处理器240用于执行存储器220中存储的可执行模块,例如所述图片推荐装置210包括的软件功能模块或计算机程序。

其中,存储器220可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。其中,存储器220用于存储程序,所述处理器240在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流过程定义的服务器所执行的方法可以应用于处理器中,或者由处理器实现。

处理器240可能是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

图2示出了本发明第一实施例提供的一种图片推荐方法的流程图,请参阅图2,本实施例描述的是服务器的处理流程,所述方法包括:

步骤S301,分别确定所述待推荐图片以及当前视频帧中衣着区域;

其中,确定所述待推荐图片以及当前视频帧中衣着区域的实施方式有多种,下面简单介绍几种实施方式:

作为一种实施方法,可以通过确定人物的人物的头、躯干和四肢的位置来确定衣着区域。可以将所述待推荐图片以及所述视频帧分别与第一预存储模板进匹配,确定待推荐图片以及视频帧中人物的头、躯干和四肢的位置,所述人物的头、躯干和四肢的位置为所述待推荐图片以及所述视频帧中衣着区域。

其中,可以预先建立第一预存储模板。首先分析人体器官尺寸与位置的各种组合。根据一些人体形体规则的空间先验知识,确定人的头、躯干和四肢的位置。对检测到对象整体进行单元切分。区分形体过程中关注特殊形体:这类人的四肢与躯干无法按照正常人的比例进行计算。具体包括:(1)特别瘦,身体骨骼与各个关节的弯曲、旋转功能超过正常人。例如互联网视频中钻过道路中间宽10cm左右铁栏杆的人士。(3)非完备人,指缺少器官或器官尺寸或位置畸变的人,包括穿戴各种假肢、假器官的人。(3)卡通吉祥物人,例如加菲猫、米老鼠等等。(4)对药物或食物有过敏症状的人,服用后身体有异常,或排泄、排遗物异常。

作为另一种实施方式,也可以通过确定人物的皮肤区域位置来确定衣着区域。可以将所述视频帧进行分块,计算每个分块的直方图,所述每个分块的直方图是指每个分块中相同颜色的数目;将所述每个分块的直方图分别与第二预存储模板中的直方图进行匹配,如果存在分块的直方图与第二预存储模板中的直方图相似,则判断所述分块为皮肤区域位置,所述皮肤区域位置判断为所述视频帧中衣着区域。

作为又一种实施方式,也可以通过确定人物的姿势来确定衣着区域。例如,将所述待推荐图片以及所述视频帧分别与第三预存储模板进匹配,确定所述待推荐图片以及所述视频帧中人物的姿势,所述人物的姿势对应的区域为所述待推荐图片以及所述视频帧中衣着区域。其中,第三预存储模板主要的姿势类型包括但不仅限于:立姿,坐姿,蹲/跪姿,卧姿。各种姿态主要检测人物头部,躯干,上肢,下肢。正样本可以参考各个购物网站的模特图片。如果针对一些特殊的衣服,例如运动服、棉袄、棉裤,可以在各种体育视频或文艺节目中截取正样本图片来进行分析,例如007电影、科幻、奇幻、体操、滑冰、跳水、舞蹈、杂技、赵家班的各种表演视频和各种医学过敏症状视频等等,这里不一一列出。对各个模板图片,计算出特征值,并保存成模板库。另外,采用GMM算子标注出人体的轮廓,保存成轮廓像素列表。如果检测的图片与某个模板匹配,则该图片人轮廓即为模板的人轮廓。

当然,也可以根据所述待推荐图片以及所述视频帧中人物在视频帧中的视图关系以及人物的投影,确定所述待推荐图片以及所述视频帧中衣着区域。可以根据模板匹配的方法,判断人物在视频帧中的视图关系,一般选取具有人物正视图、侧视图(分左和右)、后视图等等的视频帧进行比对,确定待检测帧的视图关系。作为一种实施方式,可以采用人脸识别的方法进行人物视图确定。具体为检测到一张完整的人脸即为正视图,一般情况下,对人物的正视图进行下一步的分析。人脸检测使用基于Haar小波变换的方法。首先进行彩色空间的变换,检测出图像中的肤色区域;利用Adaboost算法训练出的基于Haar小波变换的检测器对该区域进行人脸检测;建立眼睛颜色模型,并根据眼睛、嘴在不同分量上的分布特征,将它们从人脸区域中提取出来;最后融合眼睛、嘴候选区域的信息,利用特征不变的方法进行眼睛和嘴的确定。上述方法能够快速有效地检测出人脸,并能够确定眼、嘴的位置。接着采用人脸识别来区分不同的脸,默认在检测出人脸的位置的候选邻域内检测人脸,例如左右镜像,左右1.6~2倍镜像,等等。进一步地,为了验证视图关系,进行影子检测,以便进一步确定候选人体区域投影关系的正确性。在强光下,影子区域灰度值较大,且与人本身连通。若在人体对象周围能检测到大灰度的联通区域,且此区域不再连通的大灰度区域,则认为当前检测的对象是人体。

可以理解的是,实施方式有多种,并不局限于上述实施方式,这几种所述方式可以分别实施,也可以多个共同实施来确定衣着区域,多个实施方式共同实施时,能够更加准确的确定衣着区域。

步骤S302,分别对所述待推荐图片以及所述当前视频帧中衣着区域进行分块,分别计算每个分块对应的LBP值;

其中,LBP(Local Binary Pattern),是指局部二值模式算法。LBP算法的范围基于当前分块的大小,LBP算子定义为在3*3的窗口内,以窗口中心像素为阈值,将相邻的8个像素的灰度值与其进行比较,若周围像素值大于中心像素值,则该像素点的位置被标记为1,否则为0。这样,3*3邻域内的8个点经比较可产生8位二进制数,(通常转换为十进制数即LBP码,共256种),即得到该窗口中心像素点的LBP值,并用这个值来反映该区域的纹理信息。本发明实施例利用具有旋转不变性的LBP算子,即不断旋转圆形邻域得到一系列初始定义的LBP值,取其最小值作为该邻域的LBP值。

步骤S303,依次扫描所述待推荐图片分块对应的LBP值形成第一特征向量,依次扫描所述当前视频帧分块对应的LBP值形成第二特征向量;

其中,扫描顺序可以为zigzag顺序。

步骤S304,将所述第一特征向量与所述第二特征向量相同位置的LBP值求差值,将差值平方乘以对应的扫描顺序号后求和,得到待推荐图片的第一特征向量与视频流中当前视频帧的第二特征向量的差异度。

例如,第一特征向量为(5,5,15),第二特征向量为(6,7,11),则差异度为1*(6-5)2+2*(7-5)2+3*(11-15)2=57。

步骤S305,判断所述差异度是否小于预设阈值。

假设预设阈值为60,则差异度57小于预设阈值,可以判断所述图片为推荐图片。

如果否,执行步骤S306至步骤S308,如果是,执行步骤S309。

步骤S306,判断当前视频流中视频帧是否判断完毕;

如果否,执行步骤S307,否则,执行步骤S308。

步骤S307,将视频流中下一帧作为当前帧,执行步骤S301。

优选的,可以首先计算当前视频帧中人物所占的比例值,如果小于预设比例值,则计算待推荐图片的第一特征向量与视频流中下一视频帧的第二特征向量的差异度,即可以跳过当前视频帧,不再计算当前视频帧的第二特征向量。可以采用GMM算子进行检测,然后按照模板进行匹配,即可计算出当前视频帧中人物所占的比例值。可以将352x288(cif)格式的图片进行离线学习并生成模板。其中,对于不同分辨率的图片,采用cif图片格式上下采样,然后进行离线学习并生成模板。可以设置对于人物处于剪切图像的中部,占图像整体面积30%以上的视频帧,才进行处理。

优选的,也可以在计算当前视频帧中人物所占的比例值之前,首先判断当前视频流的编码方式是否为H.264,对于对H.264视频,保存解码后的运动矢量(mv)和编码模式(mode)信息。

其中,H.264亮度Y分量宏块上采用分层的分块方式,块层包括大小为16x16,16x8,8x16像素的块;子块层包括大小为8x8,8x4,4x8,4x4的块,对于4:2:0格式的视频,色度U、V分量的分辨率是上面列出的分辨率的一半,因此色度块,块层包括:8x8,8x4,4x8尺寸的块;子块层包括:4x4,4x2,2x4,2x2的块。而mv是定义在上述Y分量各个块上的,定义一个mv向量,共有16维,保存各个4x4块的mv,例如对于模式为16x16的块,16个mv均相同。mv的大小代表块运动的剧烈程度,一般运动剧烈的视频帧不宜进行分析。

可以理解的是,对于H.264视频流,可以很方便的从其视频编码流的头信息中获取到其分块的相关信息,而无需进行解码分析,因此对于H.264视频流,本发明实施例将会更快的计算速度。因此,可以首先判断当前视频流的编码方式是否为H.264,如果不是,则不对当前视频流进行处理。

步骤S308,判断所述图片不为推荐图片。

步骤S309,判断所述图片为推荐图片。

本发明实施例提供的一种图片推荐方法,通过计算待推荐图片的第一特征向量与视频流中每一视频帧的第二特征向量的差异度,根据差异度来判断是否为推荐图片,这种方式,能够实时的根据视频内容来用户推荐合适的图片,使得用户体验度提升。

图3示出了本发明第二实施例提供的一种图片推荐方法的流程图,请参阅图3,本实施例描述的是服务器的处理流程,所述方法包括:

步骤S401,分别确定所述待推荐图片以及当前视频帧中衣着区域;

步骤S402,分别对所述待推荐图片以及所述当前视频帧中衣着区域进行分块,分别计算每个分块对应的LBP值;

步骤S403,分别根据所述待推荐图片以及所述当前视频帧中衣着区域的每个分块对应的LBP值进行聚类,分别形成所述待推荐图片以及所述当前视频帧中衣着区域的新的分块;

其中,可以采用自适应K-均值算法来进行聚类,控制在三维平面上的长、宽、高尺度,对于图像中长方向上和时域上同一位置宏块连续为SKIP模式的,可以合并成一个大的区域,对该区域沿光栅方向扫描块,进行K-均值聚类。而对于其他模式的块,U、V分量块尺寸从8x8逐渐缩小到2x2,则在二维平面内,该块的区域选择长或宽的较小值进行K-均值聚类。把聚类初始点的颜色定为主颜色,分类颜色数目可以自适应地调整。例如三基色红、绿、蓝,加上白、黄、紫和黑,一共7种颜色。在Y分量灰度图上,块尺寸为16x16到4x4,则在各种块中,进行灰度值的K-均值聚类,灰度值的范围为[0,255],按照16的间隔,进行K=16的聚类。如果K-均值函数在块上计算的结果值小于设定的阈值Tb,则认为该块为同一灰度/颜色。否则,把差值大于λ*Tb的像素,分为另一类的灰度/颜色的像素。

步骤S404,依次扫描待推荐图片新的分块对应的像素值形成第一特征向量,依次扫描所述当前视频帧新的分块对应的LBP值形成第二特征向量。

可以理解的是,通过聚类后形成的新的分块的数目,肯定小于等于聚类之前的分块的数目,因此依次扫描形成的第一特征向量以及第二特征向量中包含的元素的个数也变小了。

步骤S405,将所述第一特征向量与所述第二特征向量相同位置的LBP值求差值,将差值平方乘以对应的扫描顺序号后求和,得到待推荐图片的第一特征向量与视频流中当前视频帧的第二特征向量的差异度。

步骤S406,判断所述差异度是否小于预设阈值。

如果否,执行步骤S407至步骤S409,如果是,执行步骤S410。

步骤S407,判断当前视频流中视频帧是否判断完毕。

如果否,执行步骤S408,否则,执行步骤S409。

步骤S408,将视频流中下一帧作为当前帧,执行步骤S401。

步骤S409,判断所述图片不为推荐图片。

步骤S410,判断所述图片为推荐图片。

优选的,也可以在聚类之前,扫描依次扫描所述待推荐图片分块对应的LBP值形成第三特征向量,依次扫描所述当前视频帧分块对应的LBP值形成第四特征向量,并计算第三特征向量以及第四特征向量的差异度,并判断它们形成的差异度是否也小于预设阈值,当第一特征向量与第二特征向量的差异度小于预设阈值,且第三特征向量与第四特征向量的差异度也小于预设阈值时,则判断所述图片为推荐图片,这样限定,能够进一步的提高推荐图片的准确率。

本发明实施例提供的一种图片推荐方法,通过计算待推荐图片的第一特征向量与视频流中每一视频帧的第二特征向量的差异度,根据差异度来判断是否为推荐图片,这种方式,能够实时的根据视频内容来用户推荐合适的图片,使得用户体验度提升。

请参阅图4,是本发明实施例提供的图1所示的图片推荐装置210的功能模块示意图。所述图片推荐装置210包括计算模块211,判断模块212。

所述计算模块211,用于依次计算待推荐图片的第一特征向量与视频流中每一视频帧的第二特征向量的差异度;其中,计算待推荐图片的第一特征向量与视频流中视频帧的第二特征向量的差异度,包括:分别确定所述待推荐图片以及视频帧中衣着区域;分别对所述待推荐图片以及所述视频帧中衣着区域进行分块,分别计算每个分块对应的LBP值;依次扫描所述待推荐图片分块对应的LBP值形成第一特征向量,依次扫描所述视频帧分块对应的LBP值形成第二特征向量;将所述第一特征向量与所述第二特征向量相同位置的LBP值求方差乘以对应的扫描顺序号后求和,得到差异度;

其中,所述分别确定待推荐图片以及视频帧中衣着区域,包括:将所述待推荐图片以及所述视频帧分别与第一预存储模板进匹配,确定待推荐图片以及视频帧中人物的头、躯干和四肢的位置,所述人物的头、躯干和四肢的位置为所述待推荐图片以及所述视频帧中衣着区域。

优选的,所述计算模块211,还用于依次计算待推荐图片的第一特征向量与视频流中每一视频帧的第二特征向量的差异度;其中,计算待推荐图片的第一特征向量与视频流中视频帧的第二特征向量的差异度,包括:分别确定所述待推荐图片以及视频帧中衣着区域;分别对所述待推荐图片以及所述视频帧中衣着区域进行分块,分别计算每个分块对应的LBP值;分别根据所述待推荐图片以及所述视频帧中衣着区域的每个分块对应的LBP值进行聚类,形成所述待推荐图片以及所述视频帧中衣着区域的新的分块;依次扫描待推荐图片新的分块对应的像素值形成第一特征向量,依次扫描所述视频帧新的分块对应的LBP值形成第二特征向量;将所述第一特征向量与所述第二特征向量相同位置的LBP值求方差乘以对应的扫描顺序号后求和,得到差异度。

所述判断模块212,用于当视频流中存在任意视频帧的特征向量与所述待推荐图片的特征向量之间的差异度小于预设阈值,则判定所述图片为推荐图片。

以上各模块可以是由软件代码实现,此时,上述的各模块可存储于中间服务器200的存储器220内。以上各模块同样可以由硬件例如集成电路芯片实现。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本发明实施例所提供的图片推荐装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

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