We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
2021-09-29 22:41:13 40点赞 188收藏 27评论
创作立场声明: 文中所有硬件软件皆为本人自费购入或捡垃圾得来,非IT从业人员,只是一个长期垃圾不能变现还管不住手的垃圾佬
前段时间写了一篇Unraid DIY的思路分享,因为当时NAS才搭建起来,很多地方我心里也没底,使用两个月后,改补充下一些应用上面的更新, 有时间准备做成一个系列的笔记。
从上篇文章到现在其实我也只是更新了2个主力应用:音乐服务上面放弃了Airsonic,改用Funkwhale和msteam,这两个应用各有优点,我准备再试用一阵子后选择好了再写篇, 照片上面放弃使用Nextcloud,改用Libre Photos,Nextcloud其实对一般人够用了,不过很多时候用习惯了专用的照片管理系统,例如群晖的moment或者google photo, 还是想要一个更强大的系统,
Libre Photos就是这样一个比较有前途的照片管理系统,这是一个从Own Photos fork出来的照片管理软件,前面我也使用过其他的一些照片管理系统,不是功能上太简陋就是操作逻辑上很繁琐,在我看来一个好的照片管理系统需要满足以下几点:
导入和管理照片操作简单
维护方便
照片分类逻辑清晰,功能齐全(地点,时间线,人物,类型)
Libre Photos 推荐使用docker-compose部署,官网上面有很详细的部署教程, 因为笔者目前用的是unraid系统,这里说下安装的时候一些注意事项,unraid的部署步骤:
Libre Photos需求配置:
需要X86 CPU及至少8GB内存(ARM版这里不作讨论,感兴趣的请自行去官网查看)
至少需要10G的docker 镜像空间,因为其自带的机器学习模型
数据库,生成缩略图和缓存这些操作可能需要更多的硬盘空间
所以请自己注意自己的硬件配置和docker镜像大小设置,该安装会使用自带postgresql数据库,介意勿装。
安装步骤:
如果你和笔者一样用unraid这种本身没有docker-compose的系统,需要先加载docker-compose,unraid用户建议修改go文件,在文件中添加如下内容:
curl -L "https://github.com/docker/compose/releases/download/1.28.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose
curl -L "https://github.com/docker/compose/releases/download/1.28.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
这样每次在启动时都会加载docker-compose,同样的也可以用脚本完成,修改完后记得重启系统。
接下来就是建立目录,笔者因为appdata是在SSD缓存盘上面,所以在/mnt/user/appdata下面建立librephotos安装目录,然后在自己的数据盘上面建立一个picture目录作为照片导入目录,和其他docker保持一致,你也可以在其他地方建立目录。
接下来要下载libre photos的环境配置文件,这个操作如果是玩过docker-compose的同学应该很熟悉了,打开控制台,转到你刚才设置的安装目录里面输入:
wget -O .env https://raw.githubusercontent.com/LibrePhotos/librephotos-docker/main/librephotos.env
对命令不太熟悉的同学解释下,这个命令就是下载librephoto.env环境配置文件并重命名为.env
接下来下载docker-compose的安装配置文件,在同一目录下输入:
wget https://raw.githubusercontent.com/LibrePhotos/librephotos-docker/main/docker-compose.yml
这个命令同上,只不过是不重命名该文件。
确认你的安装目录里面现在有.env和docker-compose.yml这两个文件,接下来我们需要配置下.env, 用你顺手的文本编辑器,比如nano之类的:
# This file contains all the things you need to change to set up your Libre Photos. # There are a few items that must be set for it to work such as the location of your photos. # After the mandatory entry's there are some optional ones that you may set. # Start of mandatory changes. 以下是必填项 # Location of your photos.你照片的目录路径 myPhotos=./librephotos/pictures # Comma delimited list of patterns to ignore (e.g. "@eadir,#recycle" for synology devices)指定忽略的文件,比如群晖上生成的@eadir之类的目录,可以留空 skipPatterns= # The location where you would like to store the log files. The full path must exist as it will not be created for you.日志文件目录 logLocation=./librephotos/logs/ # Protected media directory. This is where we store some files like the thumbnails of your images.生成媒体存储目录,用来存放生成的缩略图之类的 proMedia=./librephotos/media # Where shall we store the cache files.缓存文件目录 cachedir=./librephotos/cache # Where shall we store the database.数据库目录 dbLocation=./librephotos/data # Username for the Administrator login. 管理员用户名 userName=admin # Password for the administrative user you set above.管理员密码 userPass=admin # Email for the administrative user.管理员邮件地址,可以用默认的 adminEmail=[email protected] # Secret Key. Get one here https://rb.gy/emgmwo (Shortened random.org link)密匙码,可以从https://rb.gy/emgmwo 随机生成一个 shhhhKey=D2VymuMn2gAhx4tmAawd # Time zone https://docs.djangoproject.com/en/3.1/ref/settings/#std:setting-TIME_ZONE 时区,一定要改!我用的是Asia/Shanghai timeZone=America/Denver #What port should Libre Photos be accessed at (Default 3000) 服务端口,默认3000 httpPort=3000 # ------------------------------------------------------------------------------------------------ # Wow, we are at the optional now. Pretty easy so far. You do not have to change any of the below.以下是选填项: # Do you want to see on a map where all your photos where taken (if a location is stored in your photos) 地图API KEY,如果需要照片定位的需要获取一个 # Get a Map box API Key https://account.mapbox.com/auth/signup/ 从这个网状注册,然后获取一个API KEY mapApiKey= # What branch should we install the stable or the development branch (dev) 安装版本:稳定版还是开发版 # NOTE: only the dev branch is currently supported as we are working towards the stable version. 目前只支持dev(开发版) tag=dev # You can set the database name. Did you know Libre Photos was forked from OwnPhotos? 设定自定义数据库名称 dbName=librephotos # Here you can change the user name for the database. 设置自定义数据库用户名 dbUser=docker # The password used by the database.自定义数据库密码 dbPass=AaAa1234 # Number of workers, which take care of the request to the api. This setting can dramatically affect the ram usage. API工作线程数量 # A positive integer generally in the 2-4 x $(NUM_CORES) range. 一般推荐2-4*核心数 # You’ll want to vary this a bit to find the best for your particular workload.你需要自己试试最合适自己的数量 # Each worker needs 800MB of RAM. Change at your own will. Default is 2.每个线程需要800MB内存,默认设置为2 gunniWorkers=2 # Number of workers, when scanning pictures. This setting can dramatically affect the ram usage. 扫描照片的工作线程 # Each worker needs 800MB of RAM. Change at your own will. Default is 1.每个线程需要800MB内存,默认设置为1 HEAVYWEIGHT_PROCESS=1 # Default minimum rating to interpret as favorited. This default value is used when creating a new user. 最小解析比例,新用户建立时的默认值 # Users can change this in their settings (Dashboards > Library).用户可以在Dashboards > Library里面改变这个设置 DEFAULT_FAVORITE_MIN_RATING=4 # --------------------------------------------------------------------------------------------- # If you are not a developer ignore the following parameters: you will never need them. # Where shall we store the backend and frontend code files. codedir=./librephotos/code
# This file contains all the things you need to change to set up your Libre Photos.
# There are a few items that must be set for it to work such as the location of your photos.
# After the mandatory entry's there are some optional ones that you may set.
# Start of mandatory changes. 以下是必填项
# Location of your photos.你照片的目录路径
myPhotos=./librephotos/pictures
# Comma delimited list of patterns to ignore (e.g. "@eadir,#recycle" for synology devices)指定忽略的文件,比如群晖上生成的@eadir之类的目录,可以留空
skipPatterns=
# The location where you would like to store the log files. The full path must exist as it will not be created for you.日志文件目录
logLocation=./librephotos/logs/
# Protected media directory. This is where we store some files like the thumbnails of your images.生成媒体存储目录,用来存放生成的缩略图之类的
proMedia=./librephotos/media
# Where shall we store the cache files.缓存文件目录
cachedir=./librephotos/cache
# Where shall we store the database.数据库目录
dbLocation=./librephotos/data
# Username for the Administrator login. 管理员用户名
userName=admin
# Password for the administrative user you set above.管理员密码
userPass=admin
# Email for the administrative user.管理员邮件地址,可以用默认的
adminEmail=[email protected]
# Secret Key. Get one here https://rb.gy/emgmwo (Shortened random.org link)密匙码,可以从https://rb.gy/emgmwo 随机生成一个
shhhhKey=D2VymuMn2gAhx4tmAawd
# Time zone https://docs.djangoproject.com/en/3.1/ref/settings/#std:setting-TIME_ZONE 时区,一定要改!我用的是Asia/Shanghai
timeZone=America/Denver
#What port should Libre Photos be accessed at (Default 3000) 服务端口,默认3000
httpPort=3000
# ------------------------------------------------------------------------------------------------
# Wow, we are at the optional now. Pretty easy so far. You do not have to change any of the below.以下是选填项:
# Do you want to see on a map where all your photos where taken (if a location is stored in your photos) 地图API KEY,如果需要照片定位的需要获取一个
# Get a Map box API Key https://account.mapbox.com/auth/signup/ 从这个网状注册,然后获取一个API KEY
mapApiKey=
# What branch should we install the stable or the development branch (dev) 安装版本:稳定版还是开发版
# NOTE: only the dev branch is currently supported as we are working towards the stable version. 目前只支持dev(开发版)
tag=dev
# You can set the database name. Did you know Libre Photos was forked from OwnPhotos? 设定自定义数据库名称
dbName=librephotos
# Here you can change the user name for the database. 设置自定义数据库用户名
dbUser=docker
# The password used by the database.自定义数据库密码
dbPass=AaAa1234
# Number of workers, which take care of the request to the api. This setting can dramatically affect the ram usage. API工作线程数量
# A positive integer generally in the 2-4 x $(NUM_CORES) range. 一般推荐2-4*核心数
# You’ll want to vary this a bit to find the best for your particular workload.你需要自己试试最合适自己的数量
# Each worker needs 800MB of RAM. Change at your own will. Default is 2.每个线程需要800MB内存,默认设置为2
gunniWorkers=2
# Number of workers, when scanning pictures. This setting can dramatically affect the ram usage. 扫描照片的工作线程
# Each worker needs 800MB of RAM. Change at your own will. Default is 1.每个线程需要800MB内存,默认设置为1
HEAVYWEIGHT_PROCESS=1
# Default minimum rating to interpret as favorited. This default value is used when creating a new user. 最小解析比例,新用户建立时的默认值
# Users can change this in their settings (Dashboards > Library).用户可以在Dashboards > Library里面改变这个设置
DEFAULT_FAVORITE_MIN_RATING=4
# ---------------------------------------------------------------------------------------------
# If you are not a developer ignore the following parameters: you will never need them.
# Where shall we store the backend and frontend code files.
codedir=./librephotos/code
设置完了后,就可以下载和启动容器了,输入:
docker-compose up -d
稍等一会,docker-compose会安装好5个容器:
前端,后端,代理和数据库都一次装好并运行后,输入链接就可以访问了。
输入你的管理员用户名和密码,登陆就行了。
首先需要在Libre photos里面设置你的照片目录 ,点击右上角的倒三角图标,再下拉菜单里面选择Admin Area
点击Scan Directory下面的图标,第一次使用这里应该是红色的,表示你还没有设置照片目录,在弹出的页面里面填入/data,再点绿色的Update按钮,这样设置就完成了。
导入照片:
把照片放入你前面映射到.env目录里面的路径里面后,点击右上角的倒三角图标,再下拉菜单里面选择Settings
在Setting菜单前面部分可以修改admin的个性化设置,连接nextcloud之类的,这些请自己研究,这里我们下拉到Library库设置项里面:
从左到右分为4个大栏:
1. 扫描照片,从上到下分别是
扫描照片(文件系统),最常用的扫描选项,新加入照片后请运行这项让系统设别照片并导入数据库
扫描照片(nextcloud文件),连接了nextcloud时候用的,具体功能和上面一样
扫描照片(整个文件系统),如果删除,改动照片位置后,请运行这项,它会把目录的照片的信息和数据库的记录对比
扫描照片速度和你硬件,设置的工作线程数量都有关系,如果照片数量庞大,花费时间会比较久。
2. 删除照片
3. 生成事件相册,从上到下分别是
生成事件相册,根据时间,在12小时内的内容类似的照片会被归为一个事件
生成事件名称,根据照片类型自动生成事件名称
4. 人物设别,从上到下分别是
训练人脸设别,让系统自动设别归类人脸
人物设别面板
重新扫描人脸
如果要使用人脸设别,在导入照片后,先用最后一项Rescan faces重新扫描人脸,然后进入Face Dashborad人物设别面板,这时候设别出的人脸应该全部在unkown(未知)页面下:
首先选择几张你需要人脸归类的人物,点右上角绿色加号添加标记人物,然后选择对不需要设别的路人或者识别错误的图片点击红色垃圾桶图片点删除。
然后回到Setting里面,点击Train Face训练人脸设别,再次进入Face Dashborad人物设别面板,这时可以在inferred(机器判断)页面下看到机器自动判别的人脸相似程度了,把设别出来正确的人脸加入人物标签,重复筛选和训练后几次后系统应该会自动设别unknow了。
关于这方面的操作,目前还在开发中,大家可以自行探索。
一般的相册软件里面的时间线,地点,相册和共享功能都在主页面的左边一列,比较有趣的是它的Data viz数据可视化功能,如果有用过Power BI的人会感到很亲切,可以分析人物关系,照片属性,时间频率,地点分布等等,这点需要大家自己用自己的照片库去喂数据了,数据少了一开始还是很人工智障的。
如果需要手机客户端,安卓可以去看看这个, iOS的话目前没有发布正式版,请自己编译
我其实并不是很在意照片管理,死宅垃圾佬一个,活动范围不超过城市圈,一年手机照片不超过200张,不过我父母从以前开始用我的群晖,很喜欢moment,加上他们喜欢旅游,一年照片超5W的,所以我换NAS后抱怨了很久没有顺手的管理软件,于是让我开始了各种实验和测试,目前我测试了至少不下10个NAS上面的照片管理应用,我还是告诉大家,如果要省事,直接上群晖720,420之类的,照片管理绝对是家用最强的。
Libre Photos作为Own Photo的fork, 我使用下来的感觉是最接近群晖moment和google photo功能的系统,能替代80%, 一般软件也就能达到30%-50%左右,目前这款软件还在积极开发中,加强数据库稳定性和机器学习模型效率和准确性,未来可期。
未经授权,不得转载
The text was updated successfully, but these errors were encountered:
No branches or pull requests
2021-09-29 22:41:13 40点赞 188收藏 27评论
创作立场声明: 文中所有硬件软件皆为本人自费购入或捡垃圾得来,非IT从业人员,只是一个长期垃圾不能变现还管不住手的垃圾佬
前段时间写了一篇Unraid DIY的思路分享,因为当时NAS才搭建起来,很多地方我心里也没底,使用两个月后,改补充下一些应用上面的更新, 有时间准备做成一个系列的笔记。
应用更新
从上篇文章到现在其实我也只是更新了2个主力应用:音乐服务上面放弃了Airsonic,改用Funkwhale和msteam,这两个应用各有优点,我准备再试用一阵子后选择好了再写篇, 照片上面放弃使用Nextcloud,改用Libre Photos,Nextcloud其实对一般人够用了,不过很多时候用习惯了专用的照片管理系统,例如群晖的moment或者google photo, 还是想要一个更强大的系统,
Libre Photos就是这样一个比较有前途的照片管理系统,这是一个从Own Photos fork出来的照片管理软件,前面我也使用过其他的一些照片管理系统,不是功能上太简陋就是操作逻辑上很繁琐,在我看来一个好的照片管理系统需要满足以下几点:
导入和管理照片操作简单
维护方便
照片分类逻辑清晰,功能齐全(地点,时间线,人物,类型)
应用部署
Libre Photos 推荐使用docker-compose部署,官网上面有很详细的部署教程, 因为笔者目前用的是unraid系统,这里说下安装的时候一些注意事项,unraid的部署步骤:
Libre Photos需求配置:
需要X86 CPU及至少8GB内存(ARM版这里不作讨论,感兴趣的请自行去官网查看)
至少需要10G的docker 镜像空间,因为其自带的机器学习模型
数据库,生成缩略图和缓存这些操作可能需要更多的硬盘空间
所以请自己注意自己的硬件配置和docker镜像大小设置,该安装会使用自带postgresql数据库,介意勿装。
安装步骤:
如果你和笔者一样用unraid这种本身没有docker-compose的系统,需要先加载docker-compose,unraid用户建议修改go文件,在文件中添加如下内容:
这样每次在启动时都会加载docker-compose,同样的也可以用脚本完成,修改完后记得重启系统。
接下来就是建立目录,笔者因为appdata是在SSD缓存盘上面,所以在/mnt/user/appdata下面建立librephotos安装目录,然后在自己的数据盘上面建立一个picture目录作为照片导入目录,和其他docker保持一致,你也可以在其他地方建立目录。
接下来要下载libre photos的环境配置文件,这个操作如果是玩过docker-compose的同学应该很熟悉了,打开控制台,转到你刚才设置的安装目录里面输入:
对命令不太熟悉的同学解释下,这个命令就是下载librephoto.env环境配置文件并重命名为.env
接下来下载docker-compose的安装配置文件,在同一目录下输入:
这个命令同上,只不过是不重命名该文件。
确认你的安装目录里面现在有.env和docker-compose.yml这两个文件,接下来我们需要配置下.env, 用你顺手的文本编辑器,比如nano之类的:
设置完了后,就可以下载和启动容器了,输入:
稍等一会,docker-compose会安装好5个容器:
前端,后端,代理和数据库都一次装好并运行后,输入链接就可以访问了。
输入你的管理员用户名和密码,登陆就行了。
使用教程
首先需要在Libre photos里面设置你的照片目录 ,点击右上角的倒三角图标,再下拉菜单里面选择Admin Area
点击Scan Directory下面的图标,第一次使用这里应该是红色的,表示你还没有设置照片目录,在弹出的页面里面填入/data,再点绿色的Update按钮,这样设置就完成了。
导入照片:
把照片放入你前面映射到.env目录里面的路径里面后,点击右上角的倒三角图标,再下拉菜单里面选择Settings
在Setting菜单前面部分可以修改admin的个性化设置,连接nextcloud之类的,这些请自己研究,这里我们下拉到Library库设置项里面:
从左到右分为4个大栏:
1. 扫描照片,从上到下分别是
扫描照片(文件系统),最常用的扫描选项,新加入照片后请运行这项让系统设别照片并导入数据库
扫描照片(nextcloud文件),连接了nextcloud时候用的,具体功能和上面一样
扫描照片(整个文件系统),如果删除,改动照片位置后,请运行这项,它会把目录的照片的信息和数据库的记录对比
扫描照片速度和你硬件,设置的工作线程数量都有关系,如果照片数量庞大,花费时间会比较久。
2. 删除照片
3. 生成事件相册,从上到下分别是
生成事件相册,根据时间,在12小时内的内容类似的照片会被归为一个事件
生成事件名称,根据照片类型自动生成事件名称
4. 人物设别,从上到下分别是
训练人脸设别,让系统自动设别归类人脸
人物设别面板
重新扫描人脸
如果要使用人脸设别,在导入照片后,先用最后一项Rescan faces重新扫描人脸,然后进入Face Dashborad人物设别面板,这时候设别出的人脸应该全部在unkown(未知)页面下:
首先选择几张你需要人脸归类的人物,点右上角绿色加号添加标记人物,然后选择对不需要设别的路人或者识别错误的图片点击红色垃圾桶图片点删除。
然后回到Setting里面,点击Train Face训练人脸设别,再次进入Face Dashborad人物设别面板,这时可以在inferred(机器判断)页面下看到机器自动判别的人脸相似程度了,把设别出来正确的人脸加入人物标签,重复筛选和训练后几次后系统应该会自动设别unknow了。
关于这方面的操作,目前还在开发中,大家可以自行探索。
其他功能
一般的相册软件里面的时间线,地点,相册和共享功能都在主页面的左边一列,比较有趣的是它的Data viz数据可视化功能,如果有用过Power BI的人会感到很亲切,可以分析人物关系,照片属性,时间频率,地点分布等等,这点需要大家自己用自己的照片库去喂数据了,数据少了一开始还是很人工智障的。
如果需要手机客户端,安卓可以去看看这个, iOS的话目前没有发布正式版,请自己编译
感想和总结
我其实并不是很在意照片管理,死宅垃圾佬一个,活动范围不超过城市圈,一年手机照片不超过200张,不过我父母从以前开始用我的群晖,很喜欢moment,加上他们喜欢旅游,一年照片超5W的,所以我换NAS后抱怨了很久没有顺手的管理软件,于是让我开始了各种实验和测试,目前我测试了至少不下10个NAS上面的照片管理应用,我还是告诉大家,如果要省事,直接上群晖720,420之类的,照片管理绝对是家用最强的。
Libre Photos作为Own Photo的fork, 我使用下来的感觉是最接近群晖moment和google photo功能的系统,能替代80%, 一般软件也就能达到30%-50%左右,目前这款软件还在积极开发中,加强数据库稳定性和机器学习模型效率和准确性,未来可期。
未经授权,不得转载
The text was updated successfully, but these errors were encountered: