mtphotos——地表最强相册管理软件
本文最后更新于 2024-06-28,文章内容可能已经过时。
大家好,这里是Cherry,喜爱折腾、捡垃圾、玩数码,热衷于分享NAS、docker玩耍经验~
前言
如果说地表最强相册管理软件,大家会选择哪一款呢?是NAS系统自带的相册工具,亦或是开源神器immich,还是photoprism呢?
之前说想做一期相册软件对比的,但是鉴于相册实在太多,跑起来速度太慢太卡,所以一拖再拖。好在近期本Cherry更新了NAS设备,于是这个系列我们继续开搞!
今天呢,给大家带来的是,我自认为最符合国人操作系统,而且功能点、易用性、界面等都不错的国产相册管理软甲,该项目集自动同步、人脸识别(AI)、地点分类、自动场景(回忆)、相册分类、clip、家人分享等等功能于一体,没错,就是mtphotos。
但是本项目是收费项目,首月试运行免费(到期后无法导入相册),费用3元/月、25/年、99永久。这个价格,要啥自行车,至少我觉得比一些影视类软件良心多了。
本次服务教程依旧采用docker-compose部署方式,客户端支持web、ios、安卓等平台。
项目特性
- 以时间线、文件夹方式展示照片
- 通过图库无需移动文件,即可将原有的照片导入到MT Photos中
- 通过人脸识别,自动生成人物相册
- 基于照片的GPS信息,自动生成地点相册
- 支持iOS Live Photos的无损备份、下载、显示
- 支持安卓 Motion Photos的无损备份、下载、显示
- 按文件类型,自动分类屏幕截图、自拍照、视频、动态照片
- 基于照片内容,自动生成场景相册
- 通过App备份手机中的照片
- 通过影集分享,可以方便地将照片分享给家人
系统部署
一、系统构成
mt photos一共有三个容器组成,项目本体、人脸AI(beta)、Clip,其中人脸AI是最近推出的功能,如果是升级mt photos的,需要将历史人脸信息清除重建,不过从体验上来看,和原来的人脸识别差别不大,可升可不升。
🔻老规矩,先建文件夹,路径以【/volume1/docker/mt_photos】为例,然后新建两个子文件夹,分别是【config】和【upload】,然后使用【文本编辑器】生成一个【docker-compose.yml】文件,具体结构如下图
二、docker-compose.yml代码
🔻根据自己的需要修改,修改yml代码,注意点都写在代码里了。把修改好的代码复制到【docker-compose.yml】文件里保存即可。
version: "3"
services:
mtphotos:
image: mtphotos/mt-photos:latest
container_name: mtphotos
restart: always
ports:
- 18063:8063 #左侧是自定义端口,不冲突即可,右侧不能变
volumes:
- /volume1/docker/mt_photos/config:/config #配置文件
- /volume1/docker/mt_photos/upload:/upload #上传照片目录
- /volume1/homes/AAAA/Photos/MobileBackup/iPhone:/photos #这里可配置原有的家庭照片库
environment:
- TZ=Asia/Shanghai
- PUID=1026
- PGID=100
depends_on:
- mtphotos_ai
mtphotos_ai:
image: mtphotos/mt-photos-ai:onnx-latest
container_name: mtphotos_ai
restart: always
ports:
- 18062:8000 #左侧自定义端口
environment:
- API_AUTH_KEY=thisismyphoto #api访问token,自己随便写就行了
mtphotos_face: #这个是新的人脸识别AI,如果不想用,把这一段都删掉就行
# 如果处理器支持avx指令集的,则镜像使用mtphotos/mt-photos-deepface:latest
image: mtphotos/mt-photos-deepface:noavx-latest
container_name: mtphotos_face
restart: always
ports:
- 18061:8066 #左侧自定义端口
environment:
- API_AUTH_KEY=thisismyphoto #api访问token,自己随便写就行了
二、部署系统
方法一:通过SSH登录部署
这里推荐finalshell,十分方便,登录NAS以后以此输入以下指令即可。
# 来到文件夹目录
cd /volume1/docker/mt_photos/
# 启动容器
docker-compose up -d
方法二:群晖7.2部署compose
打开container manager,选择项目,点击新建,选择刚才新建的文件夹路径,会自动识别【docker-compose.yml】文件,点击下一步即可
方法三:威联通部署compose
打开container station,创建应用程序,复制代码验证后部署即可。注意的是威联通的路径不是/volume1,而是/share,这里需要根据NAS系统去调整。
系统使用
一、界面介绍
探索界面整体风格,支持多种多样的分类。web端支持上传照片。
二、中文描述搜图(clip功能)
这是Chrry最看重的,中文文字描述识别能力相当的准,节省了我大量的查找照片的时间~
🔻搜索【沙滩 风景】
🔻搜索【麦当劳】
🔻搜索【晚上 游乐园】
三、影集设定
支持根据人物、地点进行影集设置,这里以人物为例,默认带了一个【宝宝相册】、【旅行相册】、【普通相册】,我们选择【自动添加照片】选择对应的人物,并且排除对应的人物即可。
添加和排除的照片,支持从标签、人物、文件夹分类中进行选择,自定义程度极高
四、手机APP
Mt photos支持IOS和安卓的客户端,大致功能和web一致,有些特有功能,例如手机备份、影集分享等。
五、系统参数配置
系统参数主要就是人脸AI api,Clip api,地图api,CPU使用限制等。
后台任务和CPU限制
CPU限制一般来说给2个线程就行了,慢慢跑。后台任务的话可以看到mt photos里现在正在运行的任务,后面可以在维护工具里去执行。
人脸识别功能
人脸识别包含基础功能和AI功能两块
基础功能主要是设置【人物匹配差异值阈值】和【最低生成数量】,默认的是0.26和3,体验下来使用默认配置还是比较准确的,这里考虑到有很多照片连拍,如果不想看到陌生人入镜,建议把【最低生成数量】调高一些。此外,还提供有手动合并人物的工具,操作都比较简单无脑。
高级功能就是AI识别了,采用的是开源的【serengil/deepface】项目,默认人脸检测模型为【retinaface】,人脸特征提取模型为【Facenet512】,如果想更换模型的,需要添加两个环境变量【DETECTOR_BACKEND】和【RECOGNITION_MODEL】,增加一个文件映射【:/models】
模型下载地址:https://github.com/serengil/deepface_models/releases/tag/v1.0
mtphotos_face:
# 如果处理器支持avx指令集的,则镜像使用mtphotos/mt-photos-deepface:latest
image: mtphotos/mt-photos-deepface:noavx-latest
container_name: mtphotos_face
restart: always
ports:
- 18061:8066
volumes:
- /volume1/docker/mt_photos/models:/models #新增模型存储
environment:
- API_AUTH_KEY=thisismyphoto
- DETECTOR_BACKEND=retinaface #新增人脸检测模型名字
# 包含'opencv', 'ssd', 'dlib', 'mtcnn', 'retinaface', 'mediapipe', 'yolov8', 'yunet', 'fastmtcnn'
- RECOGNITION_MODEL=Facenet512 #新增人脸特征提取模型名字
# 包含"VGG-Face", "Facenet", "Facenet512", "OpenFace", "DeepFace", "DeepID", "ArcFace", "Dlib", "SFace", "GhostFaceNet"
配置API参数
CLIP配置
配置也很简单,填入compose里设置的url和token即可,打开以后可以通过文字搜图的方式搜索图片,中文支持应该是同类型项目里最佳的了。
GPS配置
因为Cherry拍照都不用地理位置,所以这个功能我就不用,配置其实很简单,就三步,注册高德开发平台,获取token,填入并保存,实在搞不定可以看官方文档https://mtmt.tech/docs/start/gps_api。