本次来介绍一款实用工具:MaterialSearch。功能为AI语义搜索本地素材,支持文字搜图、以图搜图、查找本地素材、根据文字描述匹配画面(会给出符合描述的视频片段)、以图搜视频(通过视频截图搜索所在片段))、根据画面描述搜索视频。
开源免费!!!经测试也的确是好用的~
支持Docker部署,且ARM和X86平台作者都有做对应的支持!同时也提供Windows整合包、也支持通过源码部署。
硬件要求
推荐使用amd64或arm64架构的CPU。内存最低2G,但推荐最少4G内存。如果照片数量很多,推荐增加更多内存。
作者测试环境:J3455,8G内存。全志H6,2G内存。
搜索速度
在 J3455 CPU 上,1秒钟可以进行大约31000次图片匹配或25000次视频帧匹配。
项目ISSUES中的使用评价
摘取于项目的讨论区:
大佬晚上好,项目对我很有帮助,感谢你的代码。最近一年中国个人nas市场白热化,各种势力都在入局nas,nas是我们新媒体的小工作室管理素材最好的选择。
这项目是在面对几十上百t的素材,在归类管理素材、找寻特定素材上独一档的选择,是让小公司或者新媒体工作室的商业壁垒充分发挥的效率工具。我觉得这个项目有潜力成为以后nas的文件管理标配工具,在小型新媒体工作室与摄影摄像等新媒体从业者圈子非常需要迫切这种管理工具。
举个例子:“航拍的一个带草帽穿奶龙裙子躺在草地上的女人”的数年前10s的素材片段能让我翻自己素材库到发疯。但是这里只需要1秒解决。
我先去尝试了作者搭建的Demo,效果的确不错,所以介绍给大家~
也许很多朋友会说,现在品牌NAS不都已经植入AI了吗?比如威联通NAS的Qsirch,确实也已经非常好用。
虽然Beta版还新加入了大语言模型的支持,但这并不妨碍我们去测试使用第三方,做做横向对比。
部署流程
以威联通可能用户数量最多的NAS TS-464C 为例?通过Docker Compose的方式进行部署。
部署代码如下,但先别急,请继续往下看。
version: "3" # 最新Docker Compose删除该行
services:
MaterialSearch:
image: yumilee/materialsearch:latest # 支持amd64和arm64。
# image: registry.cn-hongkong.aliyuncs.com/chn-lee-yumi/materialsearch:latest # 托管在阿里云支持amd64和arm64。如果 DockerHub 无法访问,可以使用这个镜像。
# image: registry.cn-guangzhou.aliyuncs.com/chn-lee-yumi/materialsearch:latest # 仅支持amd64,仅作为备份。该镜像可能不是最新,不推荐使用。
restart: always
ports:
- "8085:8085" # 映射容器的8085端口到宿主的8085端口(宿主端口:容器端口),左侧也可自行更改
environment: # 通过环境变量修改配置,注意下面填的路径是容器里面的路径,不是宿主的路径
- ASSETS_PATH=/picture,/video # 与下面的对应关系
- SKIP_PATH=/tmp
#- DEVICE=cuda
volumes:
- /share/Container/MaterialSearch/db:/MaterialSearch/instance/ # 数据库路径,自定义
- /share/Phone/picture:/picture 最后这俩对应上面,冒号左侧是你的实际路径
- /share/Phone/video:/video
# 如果使用GPU,就取消注释下面的内容,并在上面environment处也取消注释DEVICE=cuda
# 取消注释后,注意格式对齐!
#deploy:
# resources:
# reservations:
# devices:
# - driver: nvidia
# count: all
# capabilities: [ gpu ]
部署前,按照个人需求对上面的内容进行修改
支持amd64和arm64,打包了默认模型(OFA-Sys/chinese-clip-vit-base-patch16)并且支持GPU(仅amd64架构的镜像支持)。
不推荐对容器设置内存限制,否则可能会出现奇怪的问题。
容器默认设置了环境变量TRANSFORMERS_OFFLINE=1,也就是说运行时不会连接huggingface检查模型版本。如果你想更换容器内默认的模型,需要修改.env覆盖该环境变量为TRANSFORMERS_OFFLINE=0。
其他配置说明(截图自项目)
确认无误后,打开威联通的Container Station创建新的应用程序。
因为有带模型,所以包体比较大,大家耐心等等即可~
部署好之后,原本是输入NAS_IP:8085就可访问,但不行。。。。后面查看日志,监听地址?服务仍然绑定在 127.0.0.1
上。得让它绑定到 0.0.0.0
(表示所有 IP 地址)。
那如何搞呢?最终的部署命令在这里。可直接抄作业。
services:
MaterialSearch:
image: yumilee/materialsearch:latest
restart: always
ports:
- "8133:8085"
environment:
- HOST=0.0.0.0
- ASSETS_PATH=/picture,/video
- SKIP_PATH=/tmp
volumes:
- /share/Phone/picture:/picture
- /share/Phone/video:/video
- /srv/MaterialSearch/db:/MaterialSearch/instance/
使用一览
就简单演示下,我搞了五六张图进去。
打开服务后,要先扫描一遍文件,之后你有多少图片、视频、视频帧会在绿框显示出来。
扫描完毕后,就可以进行搜索了。。。
最后
确实是非常不错的项目,大家可以给作者点点STAR。
感谢观看,本文完。
评论区