不是吐槽,是转载技术大佬的文章!备份QNAP威联通QUMAGIE相册人脸数据&人像识别数据

前段时间因为其中一个硬盘出现故障,将其他硬盘进行了换位更改操作,进入相册后发现已经完成的人像识别没有了。之前有对QNAP的中心数据库Mysql进行过恢复相册数据操作,感觉只要有数据库在,不怕已识别的人物数据丢失,但是新的问题又来了,仅仅恢复了Mysql的数据,人物中心的人脸识别数据回来了,但是在人物列表里不显示人脸照片。

经过多次索引和重新进行人脸识别后,找到了同时备份人物数据以及人脸识别照片的操作。

首先了解下威联通智能AI引擎的工作背景:

  • 从内容管理获取照片、视频
  • 对其进行索引
  • 生成略缩图
  • 人脸识别、物品识别、相似照片识别

这几个后台工作是同时进行的,这些工作会在2个地方写入数据,一个是系统的Mysql数据库,一个是本地图片缓存目录。

  1. Mysql数据库中记录了照片的路径、属性、标签、人像采集、略缩图位置等信息。
  2. 本地图片缓存目录有2个位置记录数据,在系统磁盘(默认是第一块磁盘)也是QuMagie的安装磁盘,记录人脸识别后的图片以及略缩图。

    /share/CACHEDEV1_DATA/.system/facedata/ #已识别的人脸图片
    /share/CACHEDEV1_DATA/.system/thumbnail/ #索引以及略缩图

如果要完整备份相册的数据,包括人像识别、照片标签等,需要同时备份这3处,等到恢复相册数据的时候才会完整,不会导致数据回来但是人脸照片不显示的问题:

以我的为例,40000个照片+视频大约300GB容量

  1. 备份照片的Mysql数据库 (备份数据大概150MB,压缩后40MB)
  2. 备份已识别的人像照片(备份数据大概350MB)
  3. 备份照片的略缩图目录(备份数据大概11GB,入口在Multimedia Console进入略缩图生成看到的是这个数据)

什么情况下会导致照片人像数据丢失?

  • Multimedia Console,进入内容管理选项,对QuMagie和Photo Station同时取消勾选相册目录
  • Multimedia Console,进入索引选项,进行重新建立索引动作
  • Multimedia Console,进入AI引擎选项,进行人脸识别重新开始动作
  • 更换硬盘,导致Multimedia Console内容管理已标记的照片文件夹丢失
  • 对相册文件夹进行 非常规 重命名、添加、删除、移动照片或目录的操作

在系统挂载的SMB、威联通文件总管、相册管理App里对照片文件夹的操作都属于正常操作,非正常的操作例如用Winscp、SSH或第三方文件管理器对照片和文件夹进行移动、添加、删除等,不会唤醒照片处理程序,导致图片移动/删除后,略缩图还在却打不开。

不是吐槽,是转载技术大佬的文章!备份QNAP威联通QUMAGIE相册人脸数据&人像识别数据

如何完整恢复人脸识别数据?

  1. 保持原来照片存放目录的共享名一致,例如相册存放目录名字为Photo,存在路径就是/share/Photo,不管这个目录是哪个磁盘都可以。
  2. 恢复Mysql数据库
  3. 恢复人脸图片和略缩图目录数据

备份

  1. 备份MySQL数据库
    /usr/local/mariadb/bin/mysqldump --defaults-file=/usr/local/mariadb/my-mariadb.cnf -u root -pqnapqnap s01 > /share/备份/backup_s01_$(date +%Y-%m-%d-%H-%M-%S).sql
    Shell
  2. 增量备份人脸识别数据&略缩图数据
    rsync -azv /share/CACHEDEV1_DATA/.system/facedata/ /share/备份/facedata/
    rsync -azv /share/CACHEDEV1_DATA/.system/thumbnail/ /share/备份/thumbnail/
    
    Shell

恢复

恢复操作需要有一定的编程基础,由此出现的数据丢失问题需自负

先建立原来的相册目录,将照片文件导入后,再进行下面操作

  1. 恢复人脸识别数据,一定要先删除/share/CACHEDEV1_DATA/.system/里面的facedata和thumbnail文件夹内容,再恢复
    rsync -azv /share/备份/facedata/ /share/CACHEDEV1_DATA/.system/facedata/
    rsync -azv /share/备份/thumbnail/ /share/CACHEDEV1_DATA/.system/thumbnail/
    
    Shell
  2. 恢复数据库MySQL备份
    /usr/local/mariadb/bin/mysql --defaults-file=/usr/local/mariadb/my-mariadb.cnf -u root -pqnapqnap s01 < /share/备份/backup_s01.sql
    
    Shell

注意

恢复时,建议停用QuMagie和Photo Station服务,防止略缩图还未恢复完成,系统因为检测到没有略缩图,再次生成。再次生成的略缩图会跟之前备份的数据库记录不匹配,导致出现不可预知的问题。

贴一段我自己用的备份脚本,加载到自己写的gocron任务管理器里,每隔3天自动备份一次并压缩,保留30个MySQL备份记录。

#!/bin/sh
#保存备份个数
number=30
#备份保存路径
backup_dir=/share/Backup/照片备份/face_info
#备份时间
dd=$(date +%Y-%m-%d-%H-%M-%S)

#备份MySQL数据库
/usr/local/mariadb/bin/mysqldump --defaults-file=/usr/local/mariadb/my-mariadb.cnf -u root -pqnapqnap s01 | gzip > $backup_dir/$dd_face_info_backup_$database_name.sql.gz

#写创建备份日志
echo "创建文件 $backup_dir/$dd-face_info_backup_$database_name.sql.gz" | tee -a $backup_dir/log.txt

#找出需要删除的备份
delfile=`ls -l -crt $backup_dir/*.gz | awk '{print $9 }' | head -1`

#判断现在的备份数量是否大于$number
count=`ls -l -crt $backup_dir/*.gz | awk '{print $9 }' | wc -l`

if [ $count -gt $number ]
then
rm $delfile //删除最早生成的备份,只保留number数量的备份
#写删除文件日志
echo "删除文件 $delfile" | tee -a $backup_dir/log.txt
fi

echo ''
echo "备份人脸数据"
rsync -azv /share/CACHEDEV1_DATA/.system/facedata/ $backup_dir/facedata/

echo ''
echo "备份相册略缩图"
rsync -azv /share/CACHEDEV1_DATA/.system/thumbnail/ $backup_dir

本文转自枫叶飘落:https://cheen.cn/1059.html

声明:本站文章,有些原创,有些转载,如发现侵权侵请联系删除。本站所有原创帖均可复制、搬运,开网站就是为了大家一起乐乐,不在乎版权。对了,本站小水管,垃圾服务器,请不要采集,吐槽君纯属用爱发电,经不起折腾。

给TA打赏
共{{data.count}}人
人已打赏
技术宅

如何解开网易云音乐NCM格式锁?

2022-1-14 13:46:47

技术宅

不是吐槽,是实用转载:让你的Edge/Chrome浏览器变得更酷炫的插件!

2022-1-15 15:51:27

2 条回复 A文章作者 M管理员
  1. 枫叶飘落

    ? 咱俩交换个链接?

    • 吐槽君

      好啊好啊,我先研究下链接怎么搞上万事屋,稍等

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索