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(Network Attached Storage) 사용자를 위한 로컬 전용 AI 기반 이미지 카탈로그 및 검색 도구입니다. 클라우드로 데이터를 전송하지 않고도 대규모 이미지, PDF, 동영상 라이브러리를 정리하고 검색할 수 있도록 해주며, 파일 이름이 아닌 콘텐츠 기반으로 미디어 파일을 분류, 인덱싱, 검색할 수 있는 프라이버시 중심의 방법을 제공합니다.
작동 방식
이 애플리케이션은 미디어를 처리하기 위한 다단계 파이프라인을 사용합니다.
- 탐지 및 인덱싱: 디렉터리에 대한 읽기 전용 스캔을 수행하여 새로운 또는 수정된 파일의 지문과 썸네일을 생성합니다.
- AI 분류: Ollama를 통해 로컬 비전 LLM을 사용하여 이미지를 설명하고 분류하며, 애니메이션/만화 캐릭터를 식별하고 문서를 탐지합니다.
- 텍스트 추출: Surya OCR(비전 LLM 백업 포함)을 사용하여 문서, 영수증, 스크린샷에서 텍스트를 추출합니다.
- 얼굴 인식: 내장된 ONNX 모델(SCRFD 및 ArcFace)을 사용하여 얼굴을 탐지하고 임베딩을 생성하며, 식별 가능한 사람으로 클러스터링합니다.
- 검색: 추출된 메타데이터, 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 등 다양한 동영상 포맷을 지원합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트