最新黑群晖DSM7.0、7.1、 7.2 相册Synology Photos支持人脸识别补丁、视频缩略图修复
仅适用于X86_64的黑群晖7.0-7.2机型,目前测试识别正常,索引期间CPU占用率也不高。
原理修改为不调用GPU显卡,只用CPU,所以不算完美!仅测试了DS918+、DS920+,其它机型自行研究!
群晖6.x系统中主要是用Moments来管理相册,之前有个用老版本的Moments来做补丁,可以让群晖支持人脸识别。其实这个有点风险,如果Moments升级多了,可能这个补丁就不好用了而导致程序调用出错。
群晖7.0以上系统新出现的Synology Photos出来后,这个补丁就不起作用了。一方面用的老Moments的so库文件,本来就是碰运气能用。另外一方面,Synology Photos是另外一种软件了,代码和库都有些不一样了。
经过研究,Synology Photos应该使用了OpenCv的DNN神经网络来识别人脸。这个OpenCv库可根据群晖的型号调用不同的神经网络模型,并调用显卡的GPU来加速计算。如果硬件和库代码不匹配,那就无法人脸识别了。所以人脸识别主要是显卡的GPU调用的问题,跟洗白没关系。技术上可以打个补丁解决。
这里的补丁主要是针对黑群晖的,白群晖厂家已经做好了适配,对应的CPU和GPU运行都没问题。如果无法人脸识别,那是Photos套件自身有Bug,等着Photos出新版本修复即可。黑裙由于建于虚拟机或者直接硬件运行群晖,使用的CPU和GPU都不一定是官方群晖用过的,比较容易出问题。 其实神经网络对CPU的兼容性比较高,不容易兼容的是显卡的GPU。
建议
以下是说明的打补丁的技术过程,如果没兴趣可以直接去文章最下面的下载地址下载。
个人建议没特殊需要的话,可以装DS3615xs的群晖,对GPU没要求,不用打如下补丁,可以直接人脸识别。
除非特别想用DS918+的系统,那显卡能支持,已经有人脸识别的话,也不用打补丁。
此补丁主要是为了用了DS918+的系统,显卡又不支持,而没有人脸识别的用户。
如果Synlology Photos升级,版本更新了,补丁可能会失效,需要重新破解。 所以为了省事,最好用DS3615xs,或者能够让显卡支持人脸识别。
提示:
用虚拟机装群晖,最少分4个CPU核心给群晖,在群晖里面要能看到4个核心。如果CPU核心没分够,这个人脸识别的代码库也容易出问题。
9代及以前的英特尔CPU能搞定核显就不要折腾这个补丁!NEW:12代及以后也能搞核显了。。。10-11未知
如果CPU不带核显但安装机型支持核显,肯定要搞这个补丁了!安装机型原版CPU不带核显也不需要折腾补丁。
人脸识别自动补丁操作步骤(建议)
1、首先、停用Synology Photos套件
2、SSH连接群晖执行修复(2023.10.31更新脚本)
Synology Photos 1.6.x版本手动打补丁
wget http://code.imnks.com/face/PatchELFSharp
chmod +x PatchELFSharp
./PatchELFSharp "/var/packages/SynologyPhotos/target/usr/lib/libsynophoto-plugin-platform.so.1.0" "_ZN9synophoto6plugin8platform20IsSupportedIENetworkEv" "B8 00 00 00 00 C3"
./PatchELFSharp "/var/packages/SynologyPhotos/target/usr/lib/libsynophoto-plugin-platform.so.1.0" "_ZN9synophoto6plugin8platform18IsSupportedConceptEv" "B8 01 00 00 00 C3"
./PatchELFSharp "/var/packages/SynologyPhotos/target/usr/lib/libsynophoto-plugin-platform.so.1.0" "_ZN9synophoto6plugin8platform23IsSupportedIENetworkGpuEv" "B8 00 00 00 00 C3"
Synology Photos 1.3.3及之前的旧版本手动打补丁
wget http://code.imnks.com/face/PatchELFSharp
chmod +x PatchELFSharp
./PatchELFSharp "/var/packages/SynologyPhotos/target/usr/lib/libsynophoto-plugin-model.so.1.0" "_ZN9synophoto6plugin7network9IeNetwork11IsSupportedEv" "B8 00 00 00 00 C3"
已打好的补丁,一键替换(也行)
Synology Photos 1.6.2-0710
wget http://code.imnks.com/face/1.6.2-0710/libsynophoto-plugin-platform.so.1.0 -O /var/packages/SynologyPhotos/target/usr/lib/libsynophoto-plugin-platform.so.1.0 && synopkgctl stop SynologyPhotos && synopkgctl start SynologyPhotos
Synology Photos 1.6.1-0641
wget http://code.imnks.com/face/1.6.1-0641/libsynophoto-plugin-platform.so.1.0 -O /var/packages/SynologyPhotos/target/usr/lib/libsynophoto-plugin-platform.so.1.0 && synopkgctl stop SynologyPhotos && synopkgctl start SynologyPhotos
Synology Photos 1.6.0-0629
wget http://code.imnks.com/face/1.6.0-0629/libsynophoto-plugin-platform.so.1.0 -O /var/packages/SynologyPhotos/target/usr/lib/libsynophoto-plugin-platform.so.1.0 && synopkgctl stop SynologyPhotos && synopkgctl start SynologyPhotos
Synology Photos 1.3.3-0330
wget http://code.imnks.com/face/1.3.3-0330/libsynophoto-plugin-model.so.1.0 -O /var/packages/SynologyPhotos/target/usr/lib/libsynophoto-plugin-model.so.1.0 && synopkgctl stop SynologyPhotos && synopkgctl start SynologyPhotos
注:一键替换脚本也提供了原版备份文件 修改上面脚本文件名为...so.1.0.bak 再执行即可一键恢复官方。
最后记得进入相册点击“重新索引”,修复效果。
PS:视频缩略图问题(群友实测OK,成功条件?:CPU核数≥4)
提前安装矿神群晖SPK套件源里面的ffmpeg 4套件,群友测试DSM7.1、7.2 OK,2024.6.23更新,
cd /var/packages/CodecPack/target/bin
mv ffmpeg41 ffmpeg41.bak
ln -s /var/packages/ffmpeg/target/bin/ffmpeg ffmpeg41
#另有反馈ffmpeg 6套件也可以,如果上面的4不行那就自己试试吧,提前安装ffmpeg 6套件
#rm ffmpeg41指删除上一步的ffmpeg 4,直接6就还是 mv ffmpeg41 ffmpeg41.bak
rm ffmpeg41
ln -s /var/packages/ffmpeg6/target/bin/ffmpeg ffmpeg41
进入DSM后台,“控制面板”-“共享文件夹”,为“photo”和“homes”设置“sc-ffmpge”的“可读写”访问权限;
登录Synology Photos,进入“设置”-“个人”,点击“重建索引”。
群晖7.0系统中的Synology Photos支持人脸识别的补丁
jinlife/Synology_Photos_Face_Patch
恢复官方原版
下载官方套件spk安装包,套件中心手动安装覆盖即可:Synology Photos
本文来自转载,文中观点不代表本站立场,文章出自:https://blog.jinlife.com/index.php/archives/49/
看RSS,突然看到常年没动静的又更新了。。。哈哈!!