本地圖片語義搜尋

👤 tobemsk 📦 v1.0.0 ⭐ 4.5 ⬇️ 731 下載
📚 知識管理 免費

📖 技能介紹


name: image-search description: 本地圖片語義搜尋工具,基於 CLIP 模型實現中英文圖片內容的語義理解檢索,類似小米相簿 AI 搜尋功能。使用場景:(1) 使用者想用自然語言搜尋本地圖片 (2) 使用者需要搜尋中文關鍵詞相關的圖片 (3) 使用者提到"搜圖片"、"找圖片"、"圖片搜尋"、"AI相簿"等關鍵詞


本地圖片語義搜尋工具

基於 CLIP 模型的全盤中英文圖片語義搜尋工具,支援中文關鍵詞檢索。

專案結構

image-search/
├── SKILL.md              # 本說明檔案
├── requirements.txt      # Python 依賴
└── scripts/
    ├── scan.py           # 首次全量建庫(約2小時)
    ├── update.py         # 增量更新(只處理新增圖片)
    ├── search.py         # 搜尋圖片
    └── config.py         # 配置檔案

快速開始

第一步:安裝依賴

pip install -r requirements.txt

注意:首次執行會自動下載 CLIP 模型(約 400MB),請確保網路暢通。模型會快取到 ~/.cache/huggingface/

第二步:首次建庫(只需一次)

python scripts/scan.py
  • 掃描 C:\ D:\ E:\ F:\ 四個磁碟機代號的所有圖片
  • 提取圖片特徵並建立向量索引
  • 耗時約 2 小時(取決於圖片數量)
  • 完成後索引儲存在 image_db/ 目錄

第三步:搜尋圖片

python scripts/search.py 關鍵詞

支援中英文關鍵詞,例如:

python scripts/search.py 塔
python scripts/search.py 貓
python scripts/search.py sunset
python scripts/search.py 建築 紅色

搜尋結果儲存到桌面 搜尋結果_關鍵詞.txt,包含圖片路徑和相似度分數。

增量更新(後續使用)

每次新增圖片後,執行增量更新:

python scripts/update.py
  • 自動掃描四個磁碟機代號
  • 找出新增圖片(不在索引中的)
  • 只對新圖片提取特徵,幾分鐘完成
  • 追加到現有索引

工作原理

  1. 特徵提取:使用 OFA-Sys/chinese-clip-vit-base-patch16 模型將圖片轉換為 512 維向量
  2. 向量儲存:使用 FAISS 向量資料庫儲存和檢索
  3. 語義搜尋:將搜尋詞轉換為向量,在向量空間中找最相似的圖片

配置修改

編輯 scripts/config.py

SCAN_ROOTS = ["C:\\", "D:\\", "E:\\", "F:\\"]  # 掃描的根目錄
EXCLUDE_DIRS = ["$RECYCLE.BIN", "System Volume Information", ".cache"]  # 排除的目錄
IMAGE_EXTENSIONS = {".jpg", ".jpeg", ".png", ".gif", ".bmp", ".webp"}  # 支援的圖片格式
MODEL_NAME = "OFA-Sys/chinese-clip-vit-base-patch16"  # CLIP 模型
BATCH_SIZE = 16  # 批處理大小,記憶體不足可調小

硬體要求

  • CPU: i5-4590(已驗證可用)
  • 記憶體: 建議 8GB 以上
  • 顯示卡: 可用 GPU 加速(如 GTX 750 Ti),不用也能跑
  • 硬碟: 需要約 1GB 空間儲存索引

常見問題

Q: 記憶體不足怎麼辦? A: 減小 config.py 中的 BATCH_SIZE(如改為 4 或 8)

Q: 模型下載失敗? A: 國內網路可能需要設定映象源:

set HF_ENDPOINT=https://hf-mirror.com

本技能來自小蔥技能站7w4.net。

Q: 如何完全重建索引? A: 刪除 image_db/ 目錄,然後重新執行 scan.py

🤖 AI 評測

質量較好,能用自然語言搜本地圖片、支援中文搜尋,體驗還不錯。不過首次建庫要2小時且中途無法暫停重試,搜到的結果只能看到路徑沒法預覽圖片,首次使用還得聯網下載幾百兆的模型,對網路不好或記憶體小的電腦不太友好。總體適合有耐心、配置不錯的使用者使用。

📊 多維度評分

適應性4.3
規範性4.3
有效性4.6
可靠性4.3
可信度5

📁 包含檔案 (8 個)

📄 README.md 2.6 KB
📄 SKILL.md 3.2 KB
📄 _meta.json 139 B
📄 requirements.txt 306 B
📄 scripts/config.py 1.9 KB
📄 scripts/scan.py 6.2 KB
📄 scripts/search.py 4.3 KB
📄 scripts/update.py 7 KB