搜图、裁剪一步到位,有人用YOLOv5和CLIP做了一个找图神器,在线可试用

简介: 搜图、裁剪一步到位,有人用YOLOv5和CLIP做了一个找图神器,在线可试用

给 Crop-CLIP 一个口令,就能自动搜图,还能帮忙裁剪出图片中的关键部分。


经常找图的人都知道,根据检索关键词组寻找理想中的照片是件很麻烦的事情。

打开搜索引擎或无版权图片网站,输入关键词,如果幸运的话,可能会在第一页或前 N 个检索结果中找到想要的图像。这种搜索方式仍然是基于图片标签进行的。

自从 2021 年 1 月,OpenAI 推出了名为 CLIP 的神经网络,找图就进入了语义搜索时代。CLIP 建立在零样本迁移、自然语言监督、多模态学习的大量工作基础之上,因此它可以从自然语言监督中有效地学习视觉概念。

语义搜索不会试图为输入短语中的单词找到精确匹配,而是捕获上下文和单词之间的更广泛的关系,然后检索与搜索查询的上下文密切相关的结果。

近日,一位开发者将 YOLOv5 和 CLIP 结合起来,在使用关键词检索图片内容的同时,直接精确裁剪出包含检索主题的那一部分。


在这张图中,检索的关键词是「Whats the time」。


先看几个示例,比如你输入关键词「卫衣男」,效果如下图:

关键词「威士忌酒瓶」:

输入关键词「计算机」,就不会包含水杯和耳机:

惊喜的是,它也能认出「Jeff Dean」:

怎么实现的?

CLIP 是用大量带有对应标题的图像进行训练的,因此它学会了理解哪个标题与哪个图片相匹配。

用户可以给出一个随机图像,并在向量空间中找到该图像的余弦相似度,其中包含两个短语向量:「这是狗的照片吗?」、「这是猫的照片吗?」。模型会查看哪一个具有最高的相似度,然后找到图像的类别。某种程度上说,CLIP 具有像 GPT-2 和 GPT-3 一样的零样本分类能力。

图源:OpenAI CLIP 博客。

和目标检测器 YOLOv5 相结合之后,CLIP 在语义搜索图像的基础上增加了裁剪能力,变身 Crop-CLIP。

  • 检测和裁剪对象 (yolov5s)
  • 使用 CLIP 对裁剪后的图像进行编码
  • 使用 CLIP 编码搜索查询
  • 找到最佳匹配部分


Crop-CLIP 也可用于创建数据集,需要在代码中进行一些更改,进行批量搜索查询。如下图所示,Jack Daniels 威士忌酒瓶的图像已被裁剪并保存。

项目作者 Vijish Madhavan 是一位自由开发者,现居英国,是利物浦约翰摩尔斯大学的硕士生。

但作者也提到了一点「限制」,Crop-CLIP 严重依赖目标检测器 YOLOv5,鉴于 YOLOv5 是在 COCO 数据集上进行预训练的目标检测架构和模型,因此 Crop-CLIP 检测过程中的类别会依赖于 COCO 中的类别。

所以在机器之心编辑部的试用过程中,也会出现不同程度的翻车事故。

想要草莓,结果却是金桔:

想要猫咪,结果却是螃蟹:

这两张输出结果,刘能看了也要叹气:

至少,这个项目是一种有趣的创新,在后续的优化中,相信作者也会对数据集等方面进行改进,实现更好的搜图效果。

相关文章
|
5月前
|
监控 前端开发 安全
一个 经典的 聚合支付 (支付中台) 设计与实现 (图解+秒懂+史上最全)
一个 经典的 聚合支付 (支付中台) 设计与实现 (图解+秒懂+史上最全)
|
6月前
|
监控 Java API
Java 异步编程难题拆解实操指南:从入门到精通解决异步编程关键问题
本文深入探讨了Java异步编程的实操技巧,基于Project Reactor与Spring WebFlux等技术框架,通过具体案例解决常见难题。内容涵盖反应式编程基础、回调地狱解决方案、并行任务处理、响应式REST API开发、背压策略应用、微服务异步通信及性能监控等方面。结合代码示例,详细讲解了如何构建高性能异步应用,并总结了最佳实践,帮助开发者掌握异步编程的核心技能。适合希望提升异步开发能力的技术人员阅读。
228 3
|
6月前
|
API
揭秘电商API接口:商品订单支付全解析
电商API接口种类繁多,涵盖商品、订单、支付、营销、用户等多方面。常见的有:商品相关(如item_get获取详情、item_search搜索商品)、订单相关(如buyer_order_list获取订单列表)、支付接口(处理支付请求)、营销相关(优惠券、促销活动接口)、用户相关(用户信息、授权、地址管理)及其他常用接口(评价、上下架、购物车管理等)。不同平台提供的API可能有所差异,需参考具体文档。
258 0
Stable Diffusion文生图-图生图-ControINet插件-线稿上色-生产全套表情包-3D Openpose-局部重绘-换衣服,换姿势人设三视图一键生成教程大全(二)
Stable Diffusion文生图-图生图-ControINet插件-线稿上色-生产全套表情包-3D Openpose-局部重绘-换衣服,换姿势人设三视图一键生成教程大全(二)
759 4
|
存储 JavaScript 前端开发
JavaScript复杂功能实现:实时数据可视化图表
JavaScript复杂功能实现:实时数据可视化图表
|
前端开发
一张思维导图入门React
一张思维导图入门React
一张思维导图入门React
|
机器学习/深度学习 人工智能 开发框架
智能ai量化高频策略交易软件、现货合约跟单模式开发技术规则
该项目涵盖智能AI量化高频策略交易软件及现货合约跟单模式开发,融合人工智能、量化交易与软件工程。软件开发包括需求分析、技术选型、系统构建、测试部署及运维;跟单模式则涉及功能定义、策略开发、交易执行、终端设计与市场推广,确保系统高效稳定运行。
|
监控 算法 Java
JVM问题排查宝典
本文介绍了JVM问题排查与学习的经验,包括使用VisualVM监控本地JVM、通过GCViewer和gceasy分析GC日志、使用MAT分析OOM以及查询官方JVM参数。还提到了一个第三方网站HeapDump,提供简化版的JVM参数分析和生成服务,以快速生成适合特定环境的JVM配置。此外,推荐了几本深入学习JVM的书籍,并提供了进一步学习JVM问题的资源。
298 1
|
机器学习/深度学习 存储 监控
基于YOLOv8深度学习的120种犬类检测与识别系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战、狗类检测、犬种识别
基于YOLOv8深度学习的120种犬类检测与识别系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战、狗类检测、犬种识别