黑群晖DS918-7.X的Synology Photos套件没有人脸识别的解决方法(2022年7月21日更新)

Synology Photos V1.3.0-0317版本使用说明

(2022年7月21日更新)

 

一、打开群晖套件中心,已安装,找到Synology Photos,点开,查看下图位置,先确认一下版本是1.3.0-0317,然后点下拉菜单,停用;

 

二、在电脑打开SSH软件,用root用户登录到群晖的SSH下,如果你的群晖没有启用root,可以参考《群晖6.2和6.2以上版本开启root的方法(支持DSM7.X版本)》教程开启root,看到以root@开头的就表示已经处于root状态了,然后输入以下三条命令:

cp -f /var/packages/SynologyPhotos/target/usr/lib/libsynophoto-plugin-model.so /var/packages/SynologyPhotos/target/usr/lib/libsynophoto-plugin-model.so-bak
wget https://wp.gxnas.com/wp-content/uploads/2021/11/libsynophoto-plugin-model.so
cp -f libsynophoto-plugin-model.so /var/packages/SynologyPhotos/target/usr/lib/

 

三、在套件中心重新启用Synonlogy Photos,用浏览器打开Synonlogy Photos,在右上角设置菜单,点”重建索引“,耐心等待;

 

 

四、如果你的群晖系统重装系统或者升级系统,又或者是重装Synlology Photos套件或者升级Synlology Photos套件,那么该补丁会失效,需要重新打补丁。

五、如果使用虚拟机安装群晖,至少要分四个CPU核心给群晖虚拟机,否则这个人脸识别有可能无法正常使用。

 

 


Synology Photos V1.2.0-0217版本使用说明

(2022年6月1日更新)

 

一、DS918_7.x的Synology Photos套件人脸识别原理

        经研究,DS918-7.X的Synology Photos使用的是“OpenCv的DNN神经网络”这个技术来进行人脸识别,默认调用GPU来进行转码,最低要求是intel六代或者以上的CPU。如果物理机安装的黑群晖基本上就没有问题,但是如果是虚拟机安装,由于实际物理核显的硬件ID和虚拟机环境下核显ID不符,因此默认虚拟机安装的黑群晖是没有人脸识别的(用PVE和UNRAID安装的,可以人为重写代码调整ID,能正常识别)。所以,黑群晖DS918-7.X的Synology Photos套件人脸识别,与你的系统是否已经洗白并无直接关系。

        目前已经有大神针对Synology Photos的人脸识别文件做了魔改补丁,将原本用GPU进行转码人脸识别的技术,替换成使用CPU转码进行人脸识别,从而实现黑群晖也可以正常的使用。

        大神的github地址是:https://github.com/jinlife/Synology_Photos_Face_Patch,在此表示感谢!

 

二、操作方法

1、打开群晖套件中心,已安装,找到Synology Photos,点开,查看下图位置,先确认一下版本是1.2.0-0263;

 

 

 

2、如果已经安装的Synology Photos不是这个版本,需要卸载后安装1.2.0-0263版本(官网有下载);如果已经是1.2.0-0263版本的,不需要做卸载,直接去做下一步

 

3、停用Synology Photos套件;

 

4、是;

 

 

5、在电脑打开SSH软件,用root用户登录到群晖的SSH下,如果你的群晖没有启用root,可以参考《群晖6.2和6.2以上版本开启root的方法(支持DSM7.X版本)》教程开启root,看到如下图一样以root@开头的就表示已经处于root状态了,然后输入以下命令:

cp -f /var/packages/SynologyPhotos/target/usr/lib/libsynophoto-plugin-model.so /var/packages/SynologyPhotos/target/usr/lib/libsynophoto-plugin-model.so-bak
wget https://wp.gxnas.com/wp-content/uploads/2021/11/PatchELFSharp
chmod 755 PatchELFSharp
./PatchELFSharp "/var/packages/SynologyPhotos/target/usr/lib/libsynophoto-plugin-model.so" "_ZN9synophoto6plugin7network9IeNetwork11IsSupportedEv" "B8 00 00 00 00 C3"

 

6、回到群晖套件中心,把Synology Photos套件启动;

 

 

7、打开;

 

8、在打开的Synology Photos网页右上角,点图标;

 

 

9、在弹出的菜单中,点:设置;

 

10、向下拉,找到“索引”,看一下系统是否自动索引,如果没有显示“正在索引...”,就点一下重建索引(由于已经改成使用CPU来转码,所以有可能此时会看到CPU占用率比较高,这是正常现象,等索引完成后CPU占用会自动降下来的);

 

 

11、点人物标签进去;

 

 

 

12、我这相片比较多,所以需要耐心等待(具体等待时间根据你的相片数量和CPU性能决定)。

 

13、过了大约2个小时左右我再打开Photos,发现已经正常识别了;

 

14、特别说明

在DSM7.1版本的系统中,如果Synology Photos相册中包含有在Apple iOS系统和macOS系统使用的heic文件,那么群晖的 Advanced Media Extensions (AME)需要登录 Synology Account账号并且该账号下绑定的设备与当前群晖系统的SN一致,heic文件的缩略图才会正常显示。(通俗一点讲就是:heic文件需要全洗白才显示缩略图。)

 

 

15、完工!

 


如果使用上述补丁后,想恢复成原来的文件,可以先停用套件,使用以下命令后再重新启用套件:

rm -f /var/packages/SynologyPhotos/target/usr/lib/libsynophoto-plugin-model.so.1.0
mv -f /var/packages/SynologyPhotos/target/usr/lib/libsynophoto-plugin-model.so.1.0-bak /var/packages/SynologyPhotos/target/usr/lib/libsynophoto-plugin-model.so.1.0
chmod +x /var/packages/SynologyPhotos/target/usr/lib/libsynophoto-plugin-model.so.1.0
chown SynologyPhotos:SynologyPhotos /var/packages/SynologyPhotos/target/usr/lib/libsynophoto-plugin-model.so.1.0

 

点赞
  1. 大地说道:
    Google Chrome Windows 10
    701 相册搞定啦!!哈哈,美滋滋,眼馋711,不能用AEM,哎,谢谢楼主的辛苦付出
  2. anthony_chow说道:
    Google Chrome Windows 10
    我机器核显HD620,人脸识别能使用,不知道为什么,可能核显有问题,一旦开启人脸识别就会导致机器异常关机重启,只有关闭人脸识别机器才正常。没办法唯有曲线救国改成用CPU来转码,但是问题来了,首先是报错wget不支持HTTPS,我把weget卸载重新安装支持https的weget后,又出现OpenSSL: error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version Unable to establish SSL connection.
    1. anthony_chow说道:
      Google Chrome Windows 10
      最后使用土方法解决了:用电脑打开那个网址下载补丁文件 ,然后用winSCP的root用户直接把补丁拖进lib文件夹里面覆盖掉。
  3. MARSCAPTAIN说道:
    Google Chrome Windows 10
    大佬,你好!为了使用完整photos功能我安装了DSM7.0.1-42218系统,现在我的photo、人脸识别、live photo(实况照片)以及手机拍的视频上传都正常,就是相机拍的视频无法生成缩略图,cpu型号:i5 6500;请问这个是什么原因呢?
    1. 博主说道:
      Google Chrome Windows 10
      有可能是不是视频编码里面含有群晖不支持的格式吧
      1. MARSCAPTAIN说道:
        Google Chrome Windows 10
        谢谢大佬百忙回复,视频是可以播放的只是没缩略图;我又试了下iphone4k视频,手机传都是有缩略图的,相机1080p都没有,但是能播放!
  4. cca2878说道:
    Google Chrome Windows 10
    关于ESXi虚拟机无法使用的“原因”,似乎文中的原因是不正确的。在群晖的终端使用lspci能够显示正确的设备id与供应商id。仅有设备名称显示不正确,一般来说并没有问题。我想询问这是否另有其因,或是有无方法可更改虚拟机内的设备名称?
    1. 博主说道:
      Google Chrome Windows 10
      这个原因是写人脸识别的大佬查出来是这个原因,然后才弄了破解的代码出来。哈哈~如果你觉得不是这个原因,请列举你的证据,并说出你的解决方案。
      1. cca2878说道:
        Google Chrome Windows 10
        我在群晖和ESXi宿主的终端使用lspci -vvv命令查询比较得出的结论。DeviceID和VendorID都是正确的,内核驱动也正常运行,但是群晖就是不能用,log无输出……我也没什么好的解决方案,在VMWare Community也发了Question,看看他们有没有相关可能有用的答复。
        1. 博主说道:
          Google Chrome Windows 10
          反正目前得出来的结论,就是虚拟机里面核显的硬件ID地址,跟物理机真实的硬件ID地址不一样造成的。这个问题在PVE下面可以通过修改虚拟机的配置,把硬件ID地址进行纠正,从而可以使用核显GPU进行人脸识别。但是ESXI下没有提供这方面的技术。所以你还要坚持说不是这个原因的话,我也不知道怎么说了。
          1. hips说道:
            Google Chrome Windows 10
            请问博主,用上面方法,提示wget: unable to resolve host address 'wp.gxnas.com' 然后我手工把libsynophoto-plugin-model.so下来,替换。重新索引后还是没有人脸识别。文章往下看,恢复的方法是还原libsynophoto-plugin-model.so.1.0 这个带1.0文件,请问我是不是尝试把下来文件改名,然后替换带1.0那个?
          2. 博主说道:
            Google Chrome Windows 10
            原文件有1.0,你要改名也要改一样的才行
          3. hips说道:
            Google Chrome Windows 10
            感觉不对啊。刚下的photo 套件里面文件是这样的
          4. hips说道:
            Google Chrome Windows 10
            感觉不对呢。 刚下的套件文件是这样的。libsynophoto-plugin-model.so 只是一个快捷方式。 所以是不是替换就不能替换这个。要替换libsynophoto-plugin-model.so.1.0 lrwxrwxrwx 1 SynologyPhotos SynologyPhotos 30 Jul 12 19:09 libsynophoto-plugin-model.so -> libsynophoto-plugin-model.so.1 lrwxrwxrwx 1 SynologyPhotos SynologyPhotos 32 Jul 12 19:09 libsynophoto-plugin-model.so.1 -> libsynophoto-plugin-model.so.1.0 -rwxr-xr-x 1 SynologyPhotos SynologyPhotos 223075 Jul 12 19:09 libsynophoto-plugin-model.so.1.0
          5. 博主说道:
            Google Chrome Windows 10
            不知道你要干嘛!如果你要恢复系统默认的文件,可以直接套件中心卸载套件然后重装,分分钟的事情你要折腾两天。
1 3 4 5

发表评论