大家好,我是上海扩博智能技术有限公司的Frank,负责算法工程相关的工作。很高兴能在 Milvus 社区和大家分享我们在图像检索方面的经验。
01
扩博智能公司简介
扩博智能 Clobotics 成立于 2016 年,总部位于上海长宁。我们聚焦计算机视觉和机器学习技术,专注为行业和企业用户提供端到端一体化智能服务。公司在丹麦、新加坡、巴西、美国分别设有海外销售分公司。
自成立以来,扩博智能申请及获得 300 逾项知识产权,为打造面向零售和风电行业的人工智能产品奠定了深厚的技术基础。凭借自身对技术的专注和探索,吸引了全球众多优秀人才的加入,为全球众多一线头部客户提供更高的创新能力及更安全的技术服务。
在零售业务中,我们的愿景是升级实体零售数字化营销体验,提供高效的、准确的、全面的市场数据收集和分析服务,我们提供端到端的零售智能化解决方法,集零售执行、货架和冰柜情报和竞品追踪于一体。
02
零售业务及图像检索需求
在零售业务中,我们需要对海量的商品图片进行识别,为了训练识别模型,我们需要在产线数据中挖掘有价值的数据,并进行标注,然后迭代模型。传统的标注方式需要人工去做大量的筛选,效率低下,耗费大量的人力和时间。为了提高标注效率,我们引入了图像检索技术。
我们首先对产线数据进行质量检查,过滤掉不合格的图片,然后对合格的图片进行向量提取,并添加到产线向量数据库。在标注阶段,以待标注的 SKU 的注册图片为query,去产线向量数据库中搜索,找到可能的图片,然后进行人工确认和标注。
03
选择 Milvus 的原因
在众多的图像检索工具中,我们选择了 Milvus,主要有以下几个原因:
高效的向量检索能力:Milvus 能够快速处理大规模的图像数据,满足我们零售业务中对海量商品图片的检索需求。
丰富的功能特性:支持多种索引算法,可根据不同的业务场景进行选择。同时,分布式架构也能够应对高并发的查询请求。
活跃的开源社区:Milvus 拥有活跃的开源社区,不断更新和完善功能。在使用过程中,我们遇到问题可以及时在社区中得到解答和支持。
04
使用 Milvus 的过程
安装和配置:按照官方文档进行安装和配置,确保环境搭建正确。根据我们的业务需求,调整了一些参数,如向量维度、索引算法等。
图像特征提取:我们采用了基于深度学习的特征提取方法,将提取的图像特征转换为 Milvus 支持的向量格式。
数据导入:使用 Milvus 的Python SDK,将产线数据库中的图片特征导入到 Milvus 向量数据库中。为了提高导入效率,我们采用了分布式导入方式,分批次导入数据。
图像检索:以待标注的 SKU 图片为query,在 Milvus向量数据库中进行检索。设置合适的相似度阈值和返回结果数量,确保检索结果的准确性和实用性。
05
使用 Milvus 进行图像检索的经验
索引和度量选择:Milvus 支持多种索引和度量算法,不同的算法适用于不同的场景。在选择时,需要考虑数据规模、查询类型和性能要求等因素。我们目前大约有1000多万条向量数据,使用的是IVF_FLAT索引,L2度量方法。
相似度阈值的设置:相似度阈值的设置需要根据具体的业务需求来确定。过高的阈值可能会导致检索结果过少,而过低的阈值可能会导致检索结果过多,增加人工筛选的工作量。我们的经验是,在实际场景中抽取一定数据,使用不同的阈值来进行评估,得到最佳阈值,然后将阈值应用到实际场景中,在我们的场景,对精度的要求高于召回要求,因此最终选择了0.75作为相似度阈值。
06
取得的效果
通过使用 Milvus,我们在零售业务中取得了显著的效果:
提高了标注效率:图像检索技术大大减少了人工筛选图片的时间,提高了标注效率,而且可以根据不同的相似度阈值,来针对性的检索,增加了数据的多样性。
提升了标注质量:通过检索到的相似图片,标注人员可以更好地理解商品的特征,提高标注的准确性和一致性。
加速了模型迭代训练:高效的标注流程为模型的迭代训练提供了更多的数据支持,加快了模型的优化速度。
总之,Milvus 为我们的零售业务带来了巨大的价值。我们也将继续探索和优化图像检索技术,为客户提供更好的服务。希望我们的经验分享能对大家有所帮助。
谢谢!
作者介绍
推荐阅读