基于文心一言的底层视觉理解,百度网盘把「猫」换成了「黄色的猫」

news2025/1/17 5:57:01

图片11.png

随着移动互联网的一路狂飙,手机已经成为人们的新器官。出门不带钥匙可以,不带手机却是万万不可以的。而手机上,小小的摄像头也越来越成为各位「vlogger」的口袋魔方。每天有超过数亿的照片和视频被上传到百度网盘中,这些照片和视频大多来自于用户自己的拍摄或收藏,覆盖的主题和内容相当广泛,包括人物、风景、动物、地标建筑、素材等。他们记录着生活,也通过灵感和创意展示着生活。但由数量庞大、种类繁多,这些图像资源的管理和搜索成为了用户的一大挑战。

截屏2023-03-22 19.39.21.png

在和用户的沟通中,“找照片的过程十分痛苦”引起了大家的共鸣。即使网盘提供了云上大空间供照片储存,基础分类搜索后的照片还是如同汪洋大海。有时候为了寻找一张在记忆中“闪现”的照片,需要长时间在时光轴里滑动。

「如果能通过 去年夏天我在海边的照片 这种关键词直接得到照片就好了」。

说干就干。

网盘的技术同学开始广泛调研市面上的图片搜索功能。研究发现,目前大部分都是基于标签的图片搜索方法。这往往需要用户手动或者AI帮助添加标签或关键词,才能进行检索和匹配。然而,由于一张图片往往有很多不同的内容和特征,标签的限制导致用户只能添加少量有限范围内的标签,诸如简单的“猫”,“日出”等,无法全面地描述图片的内容和特征。因此,现有的图片搜索无法响应用户更加复杂的图片描述。

「怎么办?」用户这样问我们,我们就这样问自己。

「精准精准再精准」

话不多说,先来看看优化后的实际效果

截屏2023-03-22 19.42.48.png

截屏2023-03-22 19.43.02.png

截屏2023-03-22 19.43.11.png

截屏2023-03-22 19.43.22.png

从「鸟」到「海边的鸟」,从「海边」定位到「我在海边」,从「宝宝」精准到「抱着宝宝逛街」……

百度网盘想做的,做成的,就是从「面」精准到「线」甚至到「点」。

为了解决这个问题,百度网盘引入了基于自然语言的图片内容语义检索方法,这种方法是利用深度学习和人工智能技术,将每张图片转化为一个向量表示,从而通过计算语言向量和视觉向量之间的相似度来进行搜索和匹配。由于向量表示比传统标签更加丰富,因此,能有效实现人们用自然语言搜索图片的目的。

「为什么用向量?」相信这也是很多“行友”的疑惑。

相比传统的标签搜索方法,基于向量的语义检索具有以下优点:

  • 用户输入的灵活度高:用户可以直接按照正常说话的方式进行检索,不需要考虑图片是什么标签;
  • 检索准确性高:由于向量可以全面地描述图片的内容和特征,因此搜索结果更加准确和全面;
  • 可检索的内容广:百度网盘采用百度文心跨模态大模型ERNIE-ViL技术(不错,openai有一个类似的技术clip,这也是最近风靡全球的AI绘画的核心模型),这种技术使用了海量网络数据进行训练,从而可以理解和识别广泛的图片内容,无论是人物、风景、动物、地标建筑、素材等各种领域的图片都不在话下;

因此,在百度网盘团队的努力下,我们真的做到了「精准精准再精准」,图片搜索也不再那么“难”了。

有「AI」,我们更「爱」搜了

实际技术产品化过程并非一帆风顺,我们遇到了很多问题,这也是业界很多相册管理工具未提供类似功能的原因。从项目立项、效果验证到产品化,我们花了超过四个月的时间,直到22年8月底正式上线和大家见面。“怎么做到的?” “如何理解自然语言” “还能更快搜到吗”……这些都是我们和用户共同关注的问题。

搜得到

像“穿鞋子的猫”、“穿正装的照片”这种,传统的标签检索很难搜到。因此,我们选择了语义向量。无论是OpenAI开源的CLIP,还是百度自研的融合了场景图知识的多模态预训练模型ERNIE-ViL,都很擅长解决语义匹配问题。

这类方法的核心原理是将检索文本和个人影像数据映射到同一语义向量空间,文本和个人影像数据向量之间的距离越近,相似度就越高。这样我们通过向量检索,来实现用中文文本查找对应图片的功能了。相比传统先打标签,再关键词搜索的方法,基于语义的检索方案,直接实现了端到端的语义匹配,能够避免语义的丢失。

图片12.png

搜得准

在网盘用户的实际搜索中,我们发现,用户存在着复杂多维度组合查询的需求。比如:去年我在三亚海边看日出的照片。其中包含了时间、地点、人物的信息,这就超出了语义向量的能力边界了,语义向量无法精准的判断时间、地点,也无法知道你是谁。

但是,经常拍照的用户应该会说「我们手机拍出来的照片,就包含了拍摄时间、经纬度等相关信息呀!」

没错,我们正是通过提取这些元信息,把经纬度转换成实际的街道名、场所名称从而用来做时间、地点的精确匹配。

「那怎么识别我是谁?」

别急,虽然识别“谁是你”相对复杂一些,但我们也找到了解决办法。在百度网盘备份过照片的用户,应该都知道智能分类。我们会把照片中出现的同一个人物的照片聚合出来,你可以自己给这个人物打上标签,比如“我自己”、“宝贝”等。我们便基于这个标签来做人物的搜索。有了这些信息,我们就可以实现,时间、地点、人物、事件组合的复杂搜索。回到上面这个例子,“去年我在三亚海边看日出的照片”,我们拿到这个请求,会首先解析出里面包含的各个元素:

  • 时间:去年

  • 地点:三亚

  • 人物:我

  • 事件:海边看日出

其中,时间、地点、人物可以用范围查询或者关键词查询来实现,事件适合用语义向量来实现,通过这样的组合查询,我们最终就能得到用户想要的结果。

有些用户反馈,图片的结果太靠后了,「在找图片的时候,总是要翻好几次才能看到,真难」

于是,我们增加了对用户搜索意图的理解,如果识别出来你是想要找图片,我们就会把图片的返回结果放在最上面。

图片13.png

搜得快

解决了效果方面的问题,又出现了新的挑战:如何将技术变成用户可使用的产品?由于成本太高,效率太低,很多相册APP并没有把这种功能开放给用户。

「无所谓,我会溜走」(划掉

说正经的!

影响速度的环节有很多,整个过程中,我们首先需要提前对用户的图片进行向量计算,并建立索引,然后查询的时候,能够快速的对用户的query进行分析并完成图片向量的检索,最终把结果排序后呈现给用户。这个流程中我们遇到了很多挑战:

图片15.png

图片16.png

端+云结合

  • 我们在云上对已备份的图片进行向量计算,避免了数据在用户设备和服务器之间公网传输的延时,也弥补了用户设备算力不足的问题,可以快速的完成向量计算的工作
  • 在云端完成向量计算后,通过实时数据同步通道,及时下发到用户设备本地建立索引,用户在查询的时候,可以直接在本地完成向量检索

端本地索引优化:为了节省用户本地的索引存储量,同时尽可能减少计算量,我们对索引进行了大量的压缩,优化后,即使图片规模达到10w,向量检索速度也可以达到ms(毫秒)级别,最终返回结果的延时能控制在秒级别。

端+云向量检索流程如下图所示:

图片17.png

  1. 请求云端计算文本“黄色的猫”的特征向量和LSH(Locality-Sensitive Hashing,局部敏感哈希)编码;

  2. 计算文本和图片LSH编码相等的维数,找到相等维数超过阈值的图片子集
    a. 这里使用的LSH编码具有如下特点:相同的维数越多,向量相似的概率越高
    b. 这样我们就找到了一批与查询的文本向量相似度较高的图片子集,可以节省后续向量相似度计算的次数。

  3. 在候选的图片子集中,计算图片向量与文本向量的相似度,按照相似度,从高到底返回

异构算力调度:除了要每天为新增的亿级别数据计算向量特征外,我们还需要持续的对用户存量数据进行计算。为了让有迫切需求的用户,能够尽快使用到这个功能,我们也提供了申请加速开通图片高级搜索的通道,优先为申请用户计算数据。为了利用一切可以计算的资源来加速计算效果,我们开发了一套能够统一管理CPU、GPU等异构资源的调度系统,充分利用闲置资源,来实现尽可能快的覆盖更多用户。

搜更多

除了图片语义检索,我们之前也收到了用户各种各样的找图需求,比如:想搜索图片里的文字、想给朋友圈文案配一张以前拍的图片。

「安排,统统安排!」

图片18.png

针对 「搜索图片里的文字」 , 用户可以在搜索筛选里开启,开启后可能需要等待文字提取完成

图片19.png

「我想要朋友圈文案配图片」你不妨直接搜一下,我们会给你推荐相册里最适合这句话的图片,就像

图片21.png

怎么用?

在百度网盘,搜索“高级图片搜索”,点击“开启高级图片搜索功能”,点击“立即体验”,等待图片计算并建立索引后即可体验,我们会在计算完成后发送PUSH提醒。

图片20.png

变成「黄色的猫」以后*

经历了种种曲折,项目最终成功上线。通过检测后台算力,我们高兴地看到申请高级图像搜索的用户占比正在慢慢提升。同时,用户也提出了一些建议和意见,比如图像搜索不够精细等问题。我们了解到,有的用户用这个功能管理视觉素材,还有的管理各种报销发票。前者需要更精细的特征提取,后者则需要引入文字ocr,通过把视觉和文本进行多模态融合搜索,才能满足用户需求。

另外针对有些用户提出的「用户自定义的精细化图像标签能力」,如“我和爸爸的合照”、“我的自拍照”等,这对我们模型训练和预测框架的伸缩性,提出了更高的要求。

用户不断多样化、个性化的需求,成为网盘产研例行工作讨论的输入,同时也促进我们继续在技术和产品上思考和尝试。

作为一个智能化的存储工具,网盘已经逐步成为人们日常生活和工作中必不可少的一部分。还记得很多年前,网盘在大家心中的形象局限于“网络硬盘”。甚至互相开玩笑说,「这几个T的空间,什么时候能填满啊!」现如今,这里填满了大家的生活、工作和学习的各种记录,并且也成为大家不可或缺的一部分。变成「黄色的猫」以后,我们感激于大家的信任,致力于不断的技术创新,让用户更快速、准确地找到所需的文件,带来全新的使用体验。

把「猫」变成「黄色的猫」,不是终点,而是一个更高的起点,我们前进的动力不停,学习的步履不止。我们致力于将这只「黄色的猫」赋予更多可能性,从而变成您贴心的朋友、同事与亲人。

最后,欢迎大家使用百度网盘的【高级图片搜索】功能并积极反馈,大家的鞭策将持续激励我们的成长。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/415444.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Nginx 实战-负载均衡

一、负载均衡今天学习一下Nginx的负载均衡。由于传统软件建构的局限性,加上一台服务器处理能里的有限性,在如今高并发、业务复杂的场景下很难达到咱们的要求。但是若将很多台这样的服务器通过某种方式组成一个整体,并且将所有的请求平均的分配…

Kafka的命令行操作

一、topic命令 下面Windows命令需要把cmd路径切换到bin/windows下。 而Linux命令只需要在控制台切换到bin目录下即可。 下面都以Windows下的操作为例,在Linux下也是一样的。 1.1 查看主题命令的参数 kafka-topics.bat # Windows kafka-topics.sh # Linux输…

机器学习中的数学——学习曲线如何区别欠拟合与过拟合

通过这篇博客,你将清晰的明白什么是如何区别欠拟合与过拟合。这个专栏名为白话机器学习中数学学习笔记,主要是用来分享一下我在 机器学习中的学习笔记及一些感悟,也希望对你的学习有帮助哦!感兴趣的小伙伴欢迎私信或者评论区留言&…

关于人工智能前沿信息获取的精品课程

通过观看在线课程可以很方便掌握获取人工智能前沿信息的方法,本文将介绍一些相关课程。 1. 武汉大学黄如花教授的信息检索中文课程知识面广泛,内容详尽,讲解清晰,课程的视频见课程 56。 ​ 课程 56 武汉大学黄如花教授的《信息检…

图神经网络GNN介绍

目录标题图神经网络基础图基本模块定义图的邻接矩阵点特征的更新(重构)多层GNN图卷积GCN模型GCN基本思想网络层数:基本计算图注意力机制graph attention networkT-GCN序列图神经网络图相似度图神经网络基础 图基本模块定义 三个特征&#x…

C++ 模板初阶

目录 一、函数模板 1.函数模板的概念 2.函数模板的定义 3.函数模板的原理 4.函数模板的实例化 ①隐式实例化 ②显式实例化 5.非模板函数与同名的函数模板同时存在 6.模板参数的匹配原则 二、类模板 1.类模板的定义格式 2.采用类模板的类外函数的定义格式 3.类模板…

【Linux-计算机网络】-TCP协议通信流程

1.TCP协议通信流程图 1.1TCP协议的通讯流程可以分为以下步骤: 应用层:应用程序通过系统调用API(如socket)创建一个TCP套接字(socket),并设置好相关的选项。 传输层:当应用程序调用c…

机器学习中的数学原理——过拟合、正则化与惩罚函数

通过这篇博客,你将清晰的明白什么是过拟合、正则化、惩罚函数。这个专栏名为白话机器学习中数学学习笔记,主要是用来分享一下我在 机器学习中的学习笔记及一些感悟,也希望对你的学习有帮助哦!感兴趣的小伙伴欢迎私信或者评论区留言…

153.网络安全渗透测试—[Cobalt Strike系列]—[生成hta/exe/宏后门]

我认为,无论是学习安全还是从事安全的人多多少少都会有些许的情怀和使命感!!! 文章目录一、后门简介1、hta后门2、exe后门3、宏病毒后门二、生成后门并测试0、测试环境1、生成hta后门并测试2、生成exe后门并测试3、生成宏病毒后门…

分布式监控平台-Zabbix

分布监控平台-Zabbix一、Zabbix概述1、Zabbix是什么?2、Zabbix监控原理二、部署Zabbix服务端(端口:10051)1、关闭防火墙 修改主机名2、获取Zabbix下载资源3、安装SCL(Software Collections),修改 Zabbix-front 前端源4…

SQL Server的子查询

SQL Server的子查询一、子查询基础知识二、子查询规则三、限定子查询中的列名四、子查询的多层嵌套五、相关子查询六、子查询类型总结一、子查询基础知识 子查询是嵌套在SELECT、INSERT、UPDATE、DELETE语句中或另一个子查询中的查询。 可以在允许表达式的任何位置使用子查询。…

【MySQL】联合查询

目录 1、前言 2、联合查询 3、内连接和外连接 4、案例演示 4.1 查询篮球哥每科的成绩 4.2 查询所有同学的总成绩及邮箱 5、自连接 5.1 显示所有计算机原理成绩比java成绩高的同学 6、子查询 6.1 查询出篮球哥的同班同学 6.2 多行子查询 7、合并查询 1、前言 在实际…

macOS Monterey 12.6.5 (21G531) 正式版发布,ISO、IPSW、PKG 下载

本站下载的 macOS 软件包,既可以拖拽到 Applications(应用程序)下直接安装,也可以制作启动 U 盘安装,或者在虚拟机中启动安装。另外也支持在 Windows 和 Linux 中创建可引导介质。 2023 年 4 月 10 日(北京…

如何使用Midjourney辅助建筑平面设计和室内设计,常用的建筑平面效果图提示和使用效果展示(内附Midjourney提示词网站)

文章目录一、室内建筑平面设计1.AutoCAD图纸(别墅图为例)2.平面效果图3.三维平面透视图二、建筑室内设计1.现代简约2.波西米亚风格3.工业风格4.沿海风格5.法国风格6.现代风格7.提示增加颜色倾向8.提示中增加设计师9.其它一些尝试三、好用的Midjourney提示…

unity 全局光照

全局光照由两部分组成:直接光照和间接光照。 直接光照由直接光照射到物体上以后直接弹射到人眼接收到的光照。 间接光照为直接光照照射到物体上又弹射到其它物体上面以后多次弹射才被人眼接收的光照(两次及以上的光照统称为间接光照) 材质光…

消息队列RocketMQ、Kafka小计

1、消息队列模型 点对点模式 (一对一,消费者主动拉取数据,消息收到后消息清除)点对点模型通常是一个基于拉取或者轮询的消息传送模型,这种模型从队列中请求信息,而不是将消息推送到客户端。这个模型的特点是…

Observability: Elastic RUM (真实用户监控)演示

在之前的文章 “Elastic RUM(真实用户监测)浅谈”,我们详细描述了 Elastic RUM (Real User Monitor)。在今天的文章中,我将详细一步一步地对该文章进行演示以便大家也能和我一样进行展示。在今天的展示中&a…

Docker6种网络配置详解,网络模式应该这么选

文章目录一、Bridge网络模式二、Host网络模式三、Overlay网络模式四、None网络模式五、Macvlan网络模式六、Ipvlan网络模式七、网络模式选择在Docker中,网络配置是一个重要的主题,因为容器需要与其他容器或外部网络进行通信。Docker提供了多种网络模式和…

GPT-4 和ChatGPT API的定价分析

OpenAI发布了他们的ChatGPT新机器学习模型GPT-4。GPT-4是GPT-3的一大进步,GPT-3是当前ChatGPT免费版本(GPT 3.5 Turbo)所运行的模型的基础,今天我们也来凑个热点,研究一下它们的定价 GPT-4新的功能 GPT-4可以在对话中使用图像,并…

2023年美赛春季赛 赛题浅析

由于今年各种各样的原因,导致美赛头一次,据说也将是最后一次,临时调整,加设春季赛。这对于急需建模奖项的大家来说是一个很好的机会。无论怎样的原因,今年美赛我们可能有所遗憾。但,春季赛也许就是弥补遗憾…