查看完整版本: [-- 教程:香!用一行命令实现文本检索 Linux 电脑图片 --]

秋无痕论坛 -> 『Linux 系统讨论专区』 -> 教程:香!用一行命令实现文本检索 Linux 电脑图片 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

hexj9 2021-08-30 15:56

让你从 7 万张照片里面,找一张猫的照片。
崩溃不?
可就在最近,一位外国小哥就搞出了个神器 —— 只要 1 行代码,就能轻松搞定这种海底捞针的事儿。
就比如刚说的找“猫照片”:
装上神器,终端进入你存照片的文件夹,输入“rclip cat”——
很快,10 张跟猫有关的照片就列出来了!

当然,文字显示不直观,加个命令就能在图片查看器中预览:

再来一个抽象的:找跟“love”有关的。
几秒钟后四张人类或动物相拥的照片(以及一张三朵“相拥”的向日葵)就出来了。

是不是挺好使?
看到这,你有可能会说目前已有一些程序可以实现用文字检索图像。
不过,小哥发现它们大多都只能用有限的预设词来搜索 —— 而他这个工具和它们最大的区别就在这了。
下面就试试。
找一只正在打哈欠的狗,你就可以输入“a yawning dog”。

搞定!
再来一个,“woman jumping in the mountains”:

完美!结果都非常准确。

hexj9 2021-08-30 15:56
emmm,如果你发现不准,很有可能是你描述有问题。
比如你想找一些肖像,但如果直接输入“portrait”,可能会出来一堆有人有狗有猫的“肖像”:

这肯定不是你想要的,这样描述:a portrait of person,结果就对了:

心动不?
就是 CLIP 的一个简单接口,你也可以试试
此工具被小哥命名为“rclip”。
看名字你也知道了,这就是用那个能实现图像与文本的精准匹配的 CLIP 做的。(rclip 代表 recursion CLIP,也就是递归 CLIP)
更确切地说,rclip 就是 CLIP 的一个简单接口。
当你输入查询文本后,它所要做的就是加载模型,提取你所选目录中所有图像的特征向量,将它们存储在数据库(小哥用的 SQLite)。
其中,提取操作只进行一次,也就是你第一次检索的时候。
然后它再从你输入的查询文本中提取特征向量,计算它与你的图像特征向量库之间的相似性,最后输出最相似的图像。
下面是安装与使用方法:
首先去 GitHub 上下载 rclip 最新的 AppImage 文件:

对,目前该工具只支持 Linux x86_64……
如果你正在使用 Linux,下载好之后,执行下面两行就可以使用了:
$ chmod +x rclip-v1.0.0-x86_64.AppImage$ sudo mv rclip-v1.0.0-x86_64.AppImage /usr/local/bin/rclip[/pre]安好以后,就可以 cd 进入你存图片的目录,开始“rclip + ‘关键字’”的检索了。
首次使用提取所有图片的特征向量需要花一些时间,这取决于你所存图片的数量还有你的 CPU 性能。
ps.小哥的 72769 张照片是在性能较低的英特尔 Celeron J3455 处理器上跑了一天。
如果你只想要前 5 张照片并在本地默认的图片查看器上预览,可以用下面的命令:
$ rclip -nf -5kitty”| xargs -\n -1 xdg-open[/pre]最后,在线等一个能在 Windows/Mac 上实现这个功能的工具,大家有没有!
GitHub:
https://github.com/yurijmikhalevich/rclip
demo 视频:
https://www.youtube.com/watch?v=tAJHXOkHidw
参考链接:
https://mikhalevi.ch/rclip-an-ai-powered-command-line-photo-search-tool/

lifanleo 2021-08-30 16:28
谢楼主辛苦分享!

易凯 2021-08-30 16:56
谢谢分享谢谢楼主

mc2800 2021-08-30 17:16
看看了解一下,谢谢总版分享!

swrxz 2021-09-06 17:58
楼主是人才。

wjwddd 2022-02-08 09:20
了解一下,看看,谢谢楼主辛苦分享!

verycd8 2022-02-08 23:45
决于你所存图片的数量还有你的 CPU 性能

黄一孟 2022-09-02 07:57
多看看,了解一下。

verycd8 2022-09-23 21:19
一行命令实现文本检索


查看完整版本: [-- 教程:香!用一行命令实现文本检索 Linux 电脑图片 --] [-- top --]



Powered by PHPWind v7.3.2 Code © 2003-08 PHPWind
Time 0.039144 second(s),query:3 Gzip enabled

You can contact us