我们都用过电脑自带的根据文件名搜索,很多人也知道Everything这个文件搜索神器,但是,如果你想根据描述搜索电脑上的图片或视频内容怎么办?如果你想根据一张图片搜索电脑上相似图片或相关视频怎么办?在以前很难,但有了AI,一切变的简单。
今天推荐一款开源项目MaterialSearch,它可以使用AI大模型扫描本地的图片以及视频,并且可以用自然语言进行查找。
#MaterialSearch简明介绍:AI语义搜索本地素材。以图搜图、查找本地素材、根据文字描述匹配画面、视频帧搜索、根据画面描述搜索视频。
功能
- 文字搜图:输入关键词,查看相关照片和视频截图。
- 以图搜图:拖拽照片进行搜索。
- 文字搜视频:搜索相关视频。
- 以图搜视频:搜索视频路径。
- 路径搜图和路径搜视频:查找文件路径。
- 图文相似度匹配:检查文字与图片的相似度。
注意电脑配置如下
:
- windows 10/11
- CPU或者N卡
使用说明
1.如果你是NVIDIA显卡且想使用显卡加速,则请先双击运行“N卡加速安装.bat”。如果你是用AMD显卡,或者不想用显卡加速,则跳过这一步。
2.右键“.env”文件进行编辑,配置扫描路径和设备,然后保存。
最后双击运行“run.bat”即可
3.待看到"http://127.0.0.1:8085"的输出就可以浏览器打开对应链接进行使用。
关闭“run.bat”的运行框即关闭程序。
配置说明
所有配置都在config.py
文件中,里面已经写了详细的注释。
建议通过环境变量或在项目根目录创建.env
文件修改配置。如果没有配置对应的变量,则会使用config.py
中的默认值。例如os.getenv('HOST', '0.0.0.0')
,如果没有配置HOST
变量,则HOST
默认为0.0.0.0
。
.env
文件配置示例:
ASSETS_PATH=C:/Users/Administrator/Pictures,C:/Users/Administrator/Videos
DEVICE=cuda
目前功能仍在迭代中,配置会经常变化。如果更新版本后发现无法启动,需要参考最新的配置文件手动改一下配置。
如果你发现某些格式的图片或视频没有被扫描到,可以尝试在IMAGE_EXTENSIONS
和VIDEO_EXTENSIONS
增加对应的后缀。如果你发现一些支持的后缀没有被添加到代码中,欢迎提issue或pr增加。
小图片没被扫描到的话,可以调低IMAGE_MIN_WIDTH
和IMAGE_MIN_HEIGHT
重试。
如果想使用代理,可以添加http_proxy
和https_proxy
,如:
http_proxy=http://127.0.0.1:7070
https_proxy=http://127.0.0.1:7070
注意:ASSETS_PATH
不推荐设置为远程目录(如SMB/NFS),可能会导致扫描速度变慢。
Pexels视频搜索功能说明
下载数据库(网盘内)并解压到根目录,然后重启程序。然后你就能搜索Pexels视频了。
注意:该数据库用的是OFA-Sys/chinese-clip-vit-base-patch16
模型,如果你用了其他模型,则无法使用该功能。
问题解答
如遇问题,请先仔细阅读本文档。如果找不到答案,请在issue中搜索是否有类似问题。如果没有,可以新开一个issue,详细说明你遇到的问题,加上你做过的尝试和思考,附上报错内容和截图,并说明你使用的系统(Windows/Linux/MacOS)和你的配置(配置在执行main.py
的时候会打印出来)。
本人只负责本项目的功能、代码和文档等相关问题(例如功能不正常、代码报错、文档内容有误等)。运行环境问题请自行解决(例如:如何配置Python环境,无法使用GPU加速,如何安装ffmpeg等)。
搜索速度
匹配阈值为0的情况下,在 J3455 CPU 上,1秒钟可以进行大约18000次图片匹配或5200次视频帧匹配。
调高匹配阈值可以提高搜索速度。匹配阈值为10的情况下,在 J3455 CPU 上,1秒钟可以进行大约30000次图片匹配或6100次视频帧匹配。