香!用一行命令實現文本檢索電腦圖片
本文經AI新媒體量子位(公眾號ID:QbitAI)授權轉載,轉載請聯系出處。
讓你從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 +x rclip-v1.0.0-x86_64.AppImage
- $ sudo mv rclip-v1.0.0-x86_64.AppImage /usr/local/bin/rclip
安好以后,就可以cd進入你存圖片的目錄,開始“rclip + ‘關鍵字’ ”的檢索了。
首次使用提取所有圖片的特征向量需要花一些時間,這取決于你所存圖片的數量還有你的CPU性能。
ps.小哥的72769張照片是在性能較低的英特爾Celeron J3455處理器上跑了一天。
如果你只想要前5張照片并在本地默認的圖片查看器上預覽,可以用下面的命令:
- $ rclip -nf -t 5 “kitty” | xargs -d ‘\n’ -n 1 xdg-open
最后,在線等一個能在Windows/Mac上實現這個功能的工具,大家有沒有!
GitHub:
https://github.com/yurijmikhalevich/rclip
demo視頻:
https://www.youtube.com/watch?v=tAJHXOkHidw