上篇文章我们介绍了 immich 在群晖上的基础搭建,immich最具特色的AI相册管理功能并没有详细说明。
所以下面我们一起来看看如何使用 immich 的高级功能:大模式识别图片内容、链接外部图库以及硬件加速。
🔻 搜索"红色的花",那么 immich 会把匹配程度最高的第一张排在最前面。
模型识别
immich 可以通过加载大模型来分析上传到图库的照片内容,除了可以直接语义化搜索符合图片的内容之外,还可以智能对照片中的人物进行分类。
如果没有搭建 immich 项目,请先按照前一篇文章进行 immich 项目的搭建。我们在原来的基础上修改配置文件来加载大模型才能使用模型识别功能。
🔻 首先需要设置模型文件夹的映射路径。修改docker-compose.yml
文件,把原来的cache-model设置为一个变量${MODEL_CACHE}
。(改了要记得保存)
🔻 在compose文件的同级目录新建model-cache
文件夹用来存放大模型。
🔻 修改.env
文件,把前面增加的变量MODEL_CACHE赋值为model-cache文件夹的路径。(可以打开文本编辑器套件,把.env
文件拖进套件即可编辑)
通过前面的配置,我们就可以把大模型文件放在model-cache
文件夹中由 immich 容器读取。那么大模型从哪里来呢?一般来说大部分模型都会放在“抱脸”网上,由于网络环境的问题,我们无法访问,所以老宁把它们都准备好了。
🔻 先去网盘下载三个模型 antelopev2
、buffalo_l
、XLM-Roberta-Large-Vit-B-16Plus
。
🔻 再去先创建clip
和facial-recognition
文件夹,再把三个模型上传到群晖后,再解压到对应的文件夹中。
🔻 clip
文件夹放入XLM-Roberta-Large-Vit-B-16Plus
CLIP模型;facial-recognition
放入两个人脸识别模型:antelopev2
、buffalo_l
。
🔻 配置好模型后,需要重启项目才能生效。打开【Container Manager】套件,进入到 immich 项目详情页,点击右上角把项目停止,再重新点击构建按钮重新构建。(这样才修改后的配置才能生效)
🔻 等待重新构建成功后,进入 immich 的的设置界面。在智能搜索菜单下,把CLIP模型原来的名称修改为clip大模型的名字XLM-Roberta-Large-Vit-B-16Plus
。
🔻 接下进入人脸识别菜单,前面已经上传了两个人脸识别模型,所以我们选择其中一个就行。
🔻 如果后面感觉 immich 人脸识别精度不高,可以在下面进行相关配置。
🔻 当上传了人脸照片时,immich就会自动进行人脸检测。(这时CPU占用会很高)
🔻 等待任务处理完毕后就可以在探索中看到人脸了。我们还可以对识别到的人物进行分类命名。
🔻 想要进行智能搜索(识别图片的内容),那么需要在加载CLIP模型后,手动处理智能搜索任务。
🔻 等待任务完成就可以使用 immich 进行AI搜索了。比如搜索"红色的花",那么 immich 会把匹配程度最高的第一张排在最前面。
🔻 搜索“黄色的花”。
🔻 搜索“领带”也能正确显示。
外部图库
外部图库就是图片资源被放在 immich 之外其他地方,而 immich 则可以扫描外部图库的资源展示到immich的主界面、时间轴和地图中,不用额外重复上传图片资源到 immich中。
以群晖为例,我们来看看如何把Photos套件中的照片设置为 immich 的外部图库。
🔻 首先需要确定 Photos套件中图片保存的位置。了解群晖的用户都知道用户的文件都在当前账户的home文件下,而照片就在该文件夹下的Photos文件内。
🔻 回到【Container Manager】套件,在项目先中把 immich 停止,找到YAML配置,在 immich-server 容器下新增路径映射。:
左边的路径为前面Photos文件夹的路由,:
右边可以任意填写。
🔻 修改完毕点击保存,在弹出选框中选择构建并启动项目,等待项目重启。
🔻 等待 immich 重启成功后,在设置界面找到外部图库界面,并新增一个图库。
🔻 接着需要添加图库的导入路径为前面YAML配置中:
右边的路径。
🔻 如果不想要扫描特定的内容,可以在扫描设置中添加排除规则。比如群晖的**/@eaDir/**
,它包含了缩略图,扫描后会导致 immich 扫描数量成倍增加。
🔻 全部修改成功后,需要点击扫描对外部图库进行扫描。扫描完毕后可以看到Photos的照片已经出现在 immich 中。
硬件加速
在 immich 中,可以通过硬件进行两种类型的加速:第一是转码加速,第二是机器学习加速。它们都是实验性功能,如果不使用硬件加速那么会直接采用CPU进行运算,导致CPU占用过高。当然如果不想折腾或者没有相关的硬件,那么这节可以跳过。
转码加速
转码加速是针对视频转码进行加速,没有相关硬件加速则会调用CPU。 🔻 转码加速支持AMD、NVIDIA、Intel、Rockchip,不支持树莓派。
🔻 对于Intel来说,是至少要第9代CPU,否则就要开启低功耗模式。
老宁演示的DS218+是J3355的CPU,就必须要开启低功耗模式,由于太过麻烦(怕出问题),所以就不开启了,加上这个转码是针对视频,对我来说意义不大。
如果需要开启可以参考官方文档:https://immich.app/docs/features/hardware-transcoding进行操作。
机器学习加速
机器学习加速是针对图片识别模型的加速,没有相关硬件加速则会调用CPU。 🔻 转码加速支持Mali、NVIDIA GPUs、Intel discrete GPUs。
如果家里有这些显卡,那么就可以使用机器学习加速。老宁没有,所以也无法开启。
如果你有相关硬件,同样可以参考官方文档进行操作:https://immich.app/docs/features/ml-hardware-acceleration
docker-compse设置
如果你的硬件符合上面的要求,那么接下来还需要修改docker-compose文件以启用硬件加速。 🔻 下载项目的 releases 页面的hwaccel.ml.yml
和hwaccel.transcoding.yml
文件。
🔻 把它们上传到docker-compose.yml
的同级目录。
🔻 打开docker-compose.yml
文件,取消加载转码的注释。(service后的值要根据自己的情况配置)
🔻 机器学习加速同样需要取消相关的配置,镜像名称也要根据service的值进行修改。
后记
经过老宁这几天的使用,发现 immich 基于大模型的搜索功能非常的强大,结合外部图库功能可以无缝把任何图片文件夹链接到 immich。个人觉得结合 Photos 套件一起使用是个不错的选择,Photos 稳定适合备份,immich 更新频繁可以用来浏览图片资源,享受更多新功能。
我是老宁
一个热爱技术的程序员和极客,群晖NAS深度玩家!
专注NAS相关技术分享,原创!干货!
觉得老宁的文章对你有帮助,记得点赞、收藏、加关注!
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
本文来自:什么值得买