1. 程式人生 > 資訊 >教程:香!用一行命令實現文字檢索 Linux 電腦圖片

教程:香!用一行命令實現文字檢索 Linux 電腦圖片

讓你從 7 萬張照片裡面,找一張貓的照片。

崩潰不?

可就在最近,一位外國小哥就搞出了個神器 —— 只要 1 行程式碼,就能輕鬆搞定這種海底撈針的事兒。

就比如剛說的找“貓照片”:

裝上神器,終端進入你存照片的資料夾,輸入“rclip cat”——

很快,10 張跟貓有關的照片就列出來了!

當然,文字顯示不直觀,加個命令就能在圖片檢視器中預覽:

再來一個抽象的:找跟“love”有關的。

幾秒鐘後四張人類或動物相擁的照片(以及一張三朵“相擁”的向日葵)就出來了。

是不是挺好使?

看到這,你有可能會說目前已有一些程式可以實現用文字檢索影象。

不過,小哥發現它們大多都只能用有限的預設詞來搜尋 —— 而他這個工具和它們最大的區別就在這了。

下面就試試。

找一隻正在打哈欠的狗,你就可以輸入“a yawning dog”。

搞定!

再來一個,“woman jumping in the mountains”:

完美!結果都非常準確。

emmm,如果你發現不準,很有可能是你描述有問題。

比如你想找一些肖像,但如果直接輸入“portrait”,可能會出來一堆有人有狗有貓的“肖像”:

這肯定不是你想要的,這樣描述:a portrait of person,結果就對了:

心動不?

就是 CLIP 的一個簡單介面,你也可以試試

此工具被小哥命名為“rclip”。

看名字你也知道了,這就是用那個能實現影象與文字的精準匹配的 CLIP 做的。(rclip 代表 recursion CLIP,也就是遞迴 CLIP)

更確切地說,rclip 就是 CLIP 的一個簡單介面。

當你輸入查詢文字後,它所要做的就是載入模型,提取你所選目錄中所有影象的特徵向量,將它們儲存在資料庫(小哥用的 SQLite)。

其中,提取操作只進行一次,也就是你第一次檢索的時候。

然後它再從你輸入的查詢文字中提取特徵向量,計算它與你的影象特徵向量庫之間的相似性,最後輸出最相似的影象。

下面是安裝與使用方法:

首先去 GitHub 上下載 rclip 最新的 AppImage 檔案:

對,目前該工具只支援 Linux x86_64……

如果你正在使用 Linux,下載好之後,執行下面兩行就可以使用了:

$chmod+xrclip-v1.0.0-x86_64.AppImage$sudomvrclip-v1.0.0-x86_64.AppImage/usr/local/bin/rclip

安好以後,就可以 cd 進入你存圖片的目錄,開始“rclip + ‘關鍵字’”的檢索了。

首次使用提取所有圖片的特徵向量需要花一些時間,這取決於你所存圖片的數量還有你的 CPU 效能。

ps.小哥的 72769 張照片是在效能較低的英特爾 Celeron J3455 處理器上跑了一天。

如果你只想要前 5 張照片並在本地預設的圖片檢視器上預覽,可以用下面的命令:

$rclip-nf-t5“kitty”|xargs-d‘\n’-n1xdg-open

最後,線上等一個能在 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/