研发效能 一种基于图片搜索视频的方案

京东云开发者 · 2023年02月02日 · 2495 次阅读

作者:京东零售 谷伟

1.商品搜索

1.1 网络购物的搜索手段

随着移动互联网发展,手机端购物已成为人们生活的常态。人们在搜索商品时采用的手段也越来越丰富,当前的主要搜索方式是文本搜索与拍照搜索。

1.2 文本搜索

文本搜索应用比较广泛,较为常用的是关键字匹配,针对商品信息的相关描述进行分词,并对分词建立索引库,从而达到查找的目的。随着人工智能的发展,语义搜索得到了快速的发展,它通过用户输入的搜索内容来理解用户真正的意图,从而获得更有价值的内容。其本质是将所有要搜索的内容转化为高维数学向量,用统一的特征向量来描述不同内容,把检索输入的内容向量化,并与要搜索的内容进行向量匹配,把相似度最高的结果展现出来。

1.3 拍照搜索

拍照搜索也就是以图搜图,是近几年的视觉 AI 发展的一个产物。用户登录电商平台,可以通过上传图片,经过图像分析与识别来查找相似的商品主图,从而找出相关的商品。其基本原理是经图像分析抽取图像的颜色、形状、纹理等特征,建立特征索引库,对用户上传的图像进行特征化描述,从索引库中查找出与之近似的特征图像。

2. 现状分析

2.1 需要专业人员参与

文本搜索需要文本描述的支持,也就是需要对短视频进行文本描述,需要人员对短视频进行准确的文本描述,尤其描述中要含有代表其商品的关键词,否则可能难以被搜索引擎所命中,这对视频的发布人员产生了一定的门槛,增加搜索命中的难度。

拍照搜索主要是对商品的主图进行特征匹配,这也就需要商品发布人员要制作尽可能与之匹配的图片,尤其需要美工设计人员的参与,从而增加了人力成本。

2.2 难以支持短视频搜索

随着近几年自媒体的发展,短视频逐渐成为互联网信息传播的主要手段。而短视频可以认为是大量图片的集合,不可能对短视频的每张图片建立特征索引,因为这会浪费大量的计算机算力。

3. 技术方案

3.1 技术问题

以前商品介绍主要以图文方式来展现商品,不仅要展示商品主图还要配细节图,以及产品参数,从而达到全面涵盖产品信息的能力。而短视频能够全方位的展示商品,并搭配语言描述以及背景音乐,可进一步形象的给消费者介绍商品的功能,给顾客更直观的体验,有助于促进下单。同时商家制作的短视频可将其推送到自媒体平台上,便于给商品引流,提高商品销量,从而拓宽了销售市场。

因此短视频营销相对于图文营销更有优势,如何让顾客能够更快更便捷地搜索到其感兴趣的商品短视频,是本发明所要解决的主要问题。本方案主要解决的是商品短视频搜索,按照类目维度对商品短视频进行筛选,并提高视频搜索的命中率,为商品短视频搜索建立桥梁。

3.2 技术方案

3.2.1 流程图

流程图:



3.2.2 详细描述

1.关键帧提取

卖家在制作好商品介绍的短视频后,在发布商品时对短视频进行上传,视频时长不能超过 2 分钟。对该视频进行关键帧提取。视频是由一组连续的图像组成,如果每张图片都存储下来,则会导致视频文件过大,因此视频都会被压缩,在压缩过程中,产生了 I 帧、P 帧、B 帧。I 帧是画面的完整保存,它尽可能去除了图像空间的冗余信息;P 帧则是记录与前一个关键帧的差别;B 帧是记录本帧与上一帧和下一帧的差别。

因此只需提取出 I 帧即可。在 MPEG-4 标准中,stss 部分标识了哪些 sample 是关键帧,如果没有 stss 则全部 sample 是关键帧。当获取的关键帧太多时,以时间轴维度,随机选取 20 帧的图像供商家选择,把商家选取的 5 张图片与视频文件一同保存到文件数据库中。

Mp4 标准

Box 类型 说明
ftyp      文件类型
moov      记录媒体信息
 mvhd     视频文件信息,如时长、创建时间等
 track     存放视频的容器
  tkhd    媒体总体信息,如宽高等
  mdia    媒体容器
   mdhd   换算真实事件
   hdlr   媒体类型,指明是 video、audio、hint
   minf   媒体信息容器
    stbl  偏移映射关系表
     stsd sample 描述
     stts 时戳-sample 序号映射表
     stsc sample 与 chunk 的映射表
     stsz sample 的大小
     stz2 另一种存储 sample 的大小,更节省空间
     stss 关键帧列表(从该处获得 I 帧)
     stco 每个 chunk 的偏移
     co64 64 位 chunk 的偏移
mdat      具体的媒体数据

2.特征向量计算

本次的特征向量计算采用的是 VGG16 模型。由于关键帧的图片都是彩色图片,因此采用 3 通道。卷积核为 3×3,池化核为 2×2。以 224×224 的视频图像为例,过程如下:

1) 输入图像大小为 224×224×3,经 64 个通道的卷积核 3×3,步长为 1,共卷积 2 次,输出尺寸为 224×224×64 的特征向量。进行池化,采用池化核 2×2,步长为 2,输出尺寸为 112×112×64 的特征向量。

2) 经 128 个 3×3 的卷积核,步长为 1,卷积 2 次,尺寸变为 112×112×128,进行池化,步长为 2,输出尺寸为 56×56×128。

3) 经 256 个 3×3 的卷积核,步长为 1,卷积 3 次,尺寸变为 56×56×256,进行池化,步长为 2,输出尺寸为 28×28×256。

4) 经 512 个 3×3 的卷积核,步长为 1,卷积 3 次,尺寸变为 28×28×512,进行池化,步长为 2,输出尺寸为 14×14×256。

5) 经 512 个 3×3 的卷积核,步长为 1,卷积 3 次,尺寸变为 14×14×512,进行池化,步长为 2,输出尺寸为 7×7×256。

6) 将数据拉平成一维数组,7×7×256=25088。

7) 经两层 1×1×4096 与一层 1×1×1000 的全连接层,最终输出 1×1000 的特征向量。



3.向量数据库

向量在存储时要把文件数据库中的 ID 同时存下来,以及商品 ID,从而建立向量、文件、商品的关系。向量搜索都是相似性搜索,通过两个向量在高位空间的距离来做判断,其实就是在高维空间中找到与目标向量最接近的 K 个向量,一般采用欧式距离计算,其公式:





为了召回精度高,暴力搜索的是最好的选择。但这会产生大量的不必要的计算,浪费了计算机资源。因此本方案采用类目维度进行切割。减少搜索范围。

4.视频搜索

买家需要选择要搜索的类目再进行图片上传,通过 VGG16 模型计算出特征向量,然后基于类目维度进行暴力搜索把最接近的 K 个向量筛选出来。最后再根据向量与文件的关系,把视频文件查找出来,返回给买家。

5.视频淘汰策略

每日进行定时巡检,对于长时间没有流量或者流量低于阈值的商品,需要从向量库中对其短视频进行逻辑删除,尽可能减少搜索的体积,减少计算资源的浪费。

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册