akitaonrails/FrankSherlock

Intelligent File Searcher that can search for descriptions in media files like photos, for example "receipt from market of $42.00" using AI based classification

解决的问题

Frank Sherlock 是一款专为 NAS(网络附加存储)用户设计的本地化 AI 图像分类与搜索工具。它解决了在不将数据发送到云端的情况下,对海量图像、PDF 和视频库进行整理和搜索的难题,提供了一种基于内容而非仅基于文件名的私密方式来分类、索引和查找媒体文件。

工作原理

该应用程序使用多阶段流水线处理媒体:

  1. 发现与索引:对目录进行只读扫描,为新文件或修改过的文件生成指纹和缩略图。
  2. AI 分类:通过 Ollama 使用本地视觉大语言模型(LLM)对图像进行描述和分类,识别动漫/漫画角色,并检测文档。
  3. 文本提取:使用 Surya OCR(配备视觉 LLM 备用方案)从文档、收据和截图中提取文本。
  4. 人脸识别:采用原生 ONNX 模型(SCRFD 和 ArcFace)检测人脸,生成嵌入向量,并将它们聚类为可识别的人物。
  5. 搜索:将提取的所有元数据、OCR 文本和人脸聚类索引到 SQLite 数据库中,使用 FTS5 实现快速全文搜索。

适用人群

拥有大型本地媒体库(尤其在 NAS 上)且重视隐私,希望使用自然语言搜索和人脸识别来 AI 驱动地组织和查找照片、文档和视频的用户。

特色亮点

  • 完全本地处理:所有 AI 模型通过 Ollama 和 ONNX 在用户设备上运行,确保数据不会离开设备。
  • 增量扫描:针对 10 万+ 文件优化,支持中断后恢复扫描并跳过未更改的文件。
  • 重复文件检测:通过 SHA-256 检测完全重复项,并结合感知哈希(dHash)和 LLM 描述相似性检测近似重复项。
  • 人脸聚类:自动将人脸聚类为人物,支持命名和合并,并可通过 face:name 搜索。
  • 广泛格式支持:支持 JPEG、PNG、GIF、BMP、WebP、TIFF、PDF 以及 MP4、MKV、AVI 等多种视频格式。

相关

  • 项目
  • 项目
  • 项目
  • 项目