相对于其他的相册管理软件,Immich的智能搜索和人脸识别功能是其优势,通过应用机器学习模型,其智能搜索和人脸识别功能更为先进。
一、大模型的下载与安装
网上有大佬提供了相关大模型的下载:https://url22.ctfile.com/d/58003522-62058436-b932de?p=4215
其中Roberta-Large-Vit-B-16Plus.zip是中文搜索要用的大模型,buffalo_l.zip是人脸检测的大模型。ViT-B-32__openai.zip好像是提取中文地址用的,好像不用也行,不知是不是新版immich已经自动支持中文地图和中文地址了。
搜索模型也有较多版本,这个比较大,近5G,下载太慢,我先在网上找了个2.24G的。人脸检测模型也有很多,这只是其中一种,究竟那个效果要好一些,可能要自己试试才知道。下载后要上传到相应文件夹中。我是在/volume1/docker/immich下建了个model-cache文件夹,文件结构如下:
注意下载的文件要解压缩,子目录参考如下(也许不同版本有不同的目录结构,我的人脸检测还下载有另一个模型antelopev2):
注意:各个模型上传好后,要把immich停用,然后再重新构建,也许模型才生效。
二、人脸识别及元数据的提取
打开immich:用你NAS的IP加端口号如192.168.1.100:2283,打开immich客户端,登录后在右边的帐户各下点击系统管理,进入任务界面。
运行人脸检测,对帐户中的照片进行人脸检测,完成后再根据人脸进行分组。如果照片比较多,这个过程会比较长。
点击左上角,回到照片界面,点击下面的探索,可以看到人物、地点等,说明人脸检测、人脸识别成功。如对人脸头像不满意,还可以更换头像。
而地点的出现,说明提取元数据也完成了。
人脸检测设置比较简单,只需在任务设置里选择好模型就好。
三、智能搜索的设置
智能搜索的设置就要复杂的多,我是设置后又花了太长时间运行,然后用文字一搜索,竟然没有成功。后来反思,应是以前用的模型有问题,而我也没找到大模型加载成功与否的判断方法,白白在大夏天让电脑在高温下运行了N长的时间。某种程度来说,这才是我写这篇文章的初衷和动力,希望和我一样的菜鸟少走一些弯路。
首先要在任务设置中打开智能搜索,并将默认的不支持中文的模型替换成现在的模型XLM-Roberta-Large-Vit-B-16Plus。
其次,还要修改配置文件docker-compose.yml。
将 - model-cache:/cache改为 - ./model-cache:/cache。大致意思是将当前目录(immich)下的 model-cache目录映射为cache目录(可能在运行人脸识别前就应修改此处)。同样保存后要重新构建immich 项目。
重新构建项目后,模型XLM-Roberta-Large-Vit-B-16Plus究竟有没正确加载呢?有的网文说要看immich_machine_learning的日志中是否有load XLM-Roberta-Large-Vit-B-16Plus之类。
刚才有又重新查看了日志,应该是说明加载成功了:
但我重新下载模型并重启immich项目时等了好长时间,一直没有任何关于 XLM-Roberta-Large-Vit-B-16Plus的提示:
为了判断模型加载是否成功,我就在探索中输入中文内容搜索,同时打开终端机,终于发现了我所想要的内容。同时搜索结果也出来了:
虽然智能搜索还没有运行完成,所以相关数据库还没有建立,这些搜索应是实时搜索,但结果还是很快,准确度也还行。也许数据库建立后,中文搜索会更迅速更准确吧。这才是我们花大量时间部署immich的初衷。