基于区块链的视频版权存储架构①

2020-03-22 07:41王景中王宝成
计算机系统应用 2020年8期
关键词:关键帧关键点架构

付 杨,王景中,杨 洵,王宝成

(北方工业大学 信息学院,北京 100144)

无论是过去还是以网络为导向的知识经济时代,知识产权作为一个企业乃至国家提高核心竞争力的战略资源,都凸现出前所未有的重要地位.在互联网时代,不仅仅是知识产权,原创作品等互联网时代衍生品的保护也很重要,丰富的推广渠道和不断增长的用户数量间接导致了信息的肆意传播.

基于区块链技术的数字版权管理依托于区块链弱中心化的分布式架构等新理念为数字版权管理提供了有效途径.由于区块链自身特性,占用空间较大的数字版权完整上链更容易造成数据的冗余.

考虑到上链存储的意义,本文提出了一种采用深度学习算法进行关键信息提取的思路.以视频版权为大文件代表,以人物类视频为主要存储对象,本文采用OpenPose 算法对视频中人物动作进行识别,简单描述视频中人物的行为,以对视频内容进行合理的描述,之后以“视频关键信息”的形式作为区块链数据存储以便达到溯源的目的.

1 算法介绍

本文以人物类视频为核心,以OpenPose 算法为基础,通过OpenPose 算法对视频中的人体动作、面部表情、手指运动等姿态进行估计.以视频作为输入对象,以关键点数据作为输出,整合存储到区块链中.

OpenPose 前导理论来自于文献[1],该论文描述了主要针对单人识别的CPM 算法.在CPM的基础上,文献[2]提出了实时2D 多人姿态估计,该方法是OpenPose的主要理论基础.同时为了提高算法性能,OpenPose 还基于文献[3]等相关研究提供针对手指的221 个手部关键点识别,以及通过大量数据集训练得到的70 个面部关键点识别.下文基于CVPR2017[2]对OpenPose 算法的主要工作原理进行介绍.

OpenPose 基于部分亲和字段(Part Affinity Fields,PAFs),用于检测多人图像中的2D姿态,PAFs 表示了学习图像中身体关键部位点与人体的联系,PAFs 对全局上下文进行编码,自下而上解析,无需考虑人数多少,实现高精度和实时性能.具体原理大致如下:

步骤1.PAFs 采用自下而上(down-top)解析,记彩色图像尺寸为w×h作为输入.

步骤2.通过VGG19 网络前10 层对图片初始化并微调处理,生成一组特征映射F作为每个分支的第一阶段的输入(图1(a)).

图1 OpenPose 算法流程[2]

步骤3:采用双分支多级CNN的体系结构同时得到两组数据(图2):预测一组身体部位位置的2D 置信图(part confidence maps),记作St(图1(b));编码一组身体部分之间关联程度(亲和度)的2D 矢量场PAFs,记作Lt(图1(c)).

(1)在第一阶段,网络产生一组检测置信图S1=ρ1(F)和一组部分亲和力字段L1=ϕ1(F),其中ρ1和ϕ1作为第一个阶段的CNN.

图2 双分支CNN:CNN_S和CNN_L 工作原理[2]

(2)同理,参考前两个分支阶段预测的结果和映射F可以用于产生新的精准预测.

步骤4.为了判断网络是否收敛,定义损失函数在空间上对损失函数进行加权,和分别代表两个输出图像的误差情况:

每个阶段的中间监督通过周期性的调整梯度来解决梯度消失,具体表示为:

为了得到损失函数fs,则需要知道真实置信图S*和L*.

σ控制置信图峰的范围,经分析得到,得到网络要预测的真实的置信图是独立的置信图通过取最大运算的聚合,即,一个部位置信计算符合高斯分布,则j个部位符合多峰高斯分布.因此在测试的时候,预测置信图通过非最大值抑制得到身体部位的候选.

(2)以图3为例,记xj1,k和xj2,k是图像中某个人(记作k)的第c个真实身体部分j1和j2,假设某点p在该部位c上,则(p)是一个单位向量从j1指向j2,对于其他的点,则有该向量值为0,v是肢体方向上的单位向量.具体表示为:

(3)评估两点相连的可能性时通过计算连接候选身份部分位置的线积分来测量检测到候选身体部分的连接.即,为判断两个候选部分是否相连.

图3 部分亲和域计算[1]

dj1和dj2分 别是两个部位的位置,p(u)是从dj1到dj2连线上的任意一点.假设向量dj1,dj2的方向与(p)的方向一致,则E的值就会很大,说明该位置是一个躯干的可能性就非常大.在实践中,通过抽样来估计积分求和的均匀间隔值.

步骤5.通过贪心推理解析置信度图和亲和度字段(图1(d)),执行一组二分匹配身体部位候选人的匹配,把两者结合起来输出每个人的2D 关键点(图1(e)).

2 输出结果选取

OpenPose 通过write_json 字段将识别到的身体部位数据写成.json 文件.存储数量根据需求包括[4]:基本15 个身体躯干关键点;包含眼睛的18 个基本关键点;带有足部的25 个身体关键点;且以上关键点识别与人数无关.同时包括了双手21 个手部关键点识别和70个面部关键点识别,以上两类数据基于检测人数而增加运算时间.

考虑到识别效率和实际应用需求,关键点识别一方面要保证存取信息的相对唯一性,一方面数据量不能过大,且对于区块链存储的这种需求,现阶段无需精确到面部及手指等.因此,采用18 个基本关键点作为每个关键人物的关键信息.

以图4为例,识别的18 个点从0~17 编号分别对应图4(a):鼻子、颈部、左肩、左手肘、左腕部、右肩、右手肘、右腕部、左臀部、左膝、左脚、右臀部、右膝、右脚、左眼、右眼、左耳、右耳.图4(b)为某视频中截取的1 帧,算法识别最终得到的.json 文件为图4(c),其中包含识别到的8 个人物关键点坐标如图4(d).

图4 OpenPose 姿势输出数据

3 数据存储结构分析

区块链系统具有分布式高冗余存储、时序数据且不可篡改和伪造、去中心化信用、自动执行的智能合约、安全和隐私保护等显著的特点,这使得区块链技术不仅可以成功应用于数字加密货币领域,同时在经济、金融和社会系统中也存在广泛的应用场景[5].在数字版权管理方面,区块链技术为数字版权管理工作提供了良好的存储架构模型,使得数字资产存储过程中具备了安全、可追溯、不可篡改的优良特性[6].

3.1 版权管理流程分析

以计算机软件著作权为例,传统版权管理流程大致分为以下几个部分:

(1)版权登记:填写相关版权信息表,主要包括软件基本信息、软件特点、著作权人信息、申请人信息和相关材料说明.

(2)受理预约:填报登记表后,办理软件受理业务,选择相应的时间和地点.

(3)现场提交材料:提交办理版权的相关纸质材料.

(4)著作权获得:若办理过程顺利,则等待最终办理结果(著作权证明);若办理过程中出现问题,则执行(5).

(5)受理补正:拒绝该申请,可选择重新申请或选择软件受理补正,直到办理成功.

同时,已办理完毕受理业务的作品可以进行作品转让和信息的变更.具体流程均与(1)~(4)类似.

3.2 状态模型

根据现有版权管理流程,数字产品版权登记应包括以下几种状态:版权材料网上提交阶段,版权材料审核阶段,版权登记成功/失败.围绕这几种状态,针对提交的版权具备如下几种状态模型:

状态模型:版权的状态调整,包括版权提交、待确认、登记成功和登记失败4 种状态,如表1所示.

表1 状态模型

版权登记整体过程如下:

NewPublish:版权持有人发布版权之后为NewPublish新发布状态;

EndrWaitSign:权利人提交数字版权,并进行版权受理,版权状态转移为EndrWaitSign 待验签状态;

EndrSigned:相关机构验证数字版权,验收成功,版权状态转移为EndrSigned 数字版权签收成功状态;

EndrReject:反之,则为EndrReject 数字版权签收失败状态.

3.3 版权相关数据

(1)数字版权基本信息(表2)

表2 数字版权基本信息数据表

针对数字版权基本状态应包含以下信息,表中记录链上对应字段:

作品编号:该笔数字版权对应的编号;

作品名称:版权上传时的版权名称;

作品类型:用户填写的版权类型,如个人专利等;

上传时间:版权上传成功后系统得到的时间;

作品哈希:版权摘要MD5;

关键信息:深度学习提取得到的关键信息集合,即采用深度学习提取的人物类视频中人物的18 个基本关键点作为关键信息.

(2)数字版权受理基本信息(表3)

表3 受理登记基本信息数据表

版权登记编号:作品进行版权登记时的流水编号;

版权登记日期:填写成功后记录的日期;

版权截止日期:履行版权登记义务的截止时间;

版权办理费用:版权在登记过程中产生的手续费;

背书历史:用户在系统中的全部操作均被记录在背书历史中;

记录类型:记录在不同的检索界面根据不同的记录类型显示相应的检索结果.

3.4 视频存储

数据库存储视频文件通常采用两种方法,(1)是将视频版权存入服务器,之后存储对应文件路径在数据库中;(2)是直接以二进制流的方式将视频文件写入数据库字段.存储文件路径的方式系统开销低,数据库负担小,但当文件数量逐渐增大的时候,文件处理效率就会呈指数级别的降低.另外存储文件路径的方式不能保证视频文件的安全,视频内容极容易被更改.相对的,采用二进制流的方式可以将文件完整的保存在数据库中,但数据库的频繁读取会影响性能.

传统版权管理系统中,以有序生成的版权编号作为主键,将版权数据转为二进制流,存入版权数据库.当发生版权争执时,需要通过人工比对的方式完成确权操作.

为了解决以上问题,在区块链中,文件上传至服务器后,会得到文件存储地址指针,系统保存视频的Hash 值、索引值和文件指针,通过这样的方式既能把视频相对快速完整的存储到区块中又能尽可能的节约系统资源.为了提高系统的可用性,本架构采用深度学习算法进行关键帧的提取,以视频文件的关键帧作为视频确权的辅助依据,假设发生确权问题时,可以通过关键帧较快获得文件信息而不必去对比原文件内容,在整个版权流程中,关键帧提取的性能损耗和物理资源消耗可以忽略不计.

在本系统中,以图5为例,视频作品上传后通过OpenPose 算法得到矩阵信息,矩阵信息以.json 格式文件分别存储,这些数据会作为相关版权事务存储在版权关键数据文件中.假设某一视频得到“0001_keypoint”~“0004_keypoint” 4 个矩阵信息文件.

首先对信息文件进行Hash 值提取,Hash 值由特定的散列函数生成,这里采用的是SHA256 算法.散列函数是单向陷门函数,无法通过逆推得到原有数据,且计算效率高.在同一散列函数中,如果2 个Hash 值是不相同的,那么他们的原始数据也是不同的(在定义这里,不考虑哈希碰撞),这个特性是散列函数具有确定性的结果,我们可以粗略地认为Hash 值在这里变成了以固定长度输出的不同大小信息的唯一标识符,而且标识符与每个源文件属于天然的一一对应关系,而且当源数据被篡改微小的部分,散列函数也会产生巨大的变化.因此可以将事务的Hash 值作为其唯一标识存储在区块链中.

图5 Merkle 根生成

在背书验证流程中,将这些事务以Merkle tree的形式计算出Hash 值,从而层层向上,最终得到Merkle根填写在区块中.

本区块链架构并发执行版权数据上链、版权数据存储、版权关键数据存储操作:

版权数据上链:以版权编号作为主键,哈希值作为唯一标识,存入版权链;

版权关键数据存储:以版权编号作为主键,提权视频版权数据关键帧,存储到版权关键信息数据库,也就是区块链的CouchDB 中;

版权数据存储:以版权编号作为主键,将版权数据存入服务器中.

其中版权数据存储作为版权备份操作,不参与版权确权流程;版权关键数据存储作为辅助确权模块,发生哈希碰撞时,由视频版权关键帧数据判定版权状态.本架构将上链存储版权作品本身变成存储版权关键帧,因此,区块中存储的内容从“多个视频哈希值”变成了“视频的多个关键帧哈希值”.提取视频关键帧信息并将关键帧信息Hash 值存储在区块中,通过调整关键帧的帧数和关键帧的选定数据理论上可以降低哈希碰撞的发生概率.

4 架构模型

区块链框架采用Hyperledger Fabric 1.0 应用开发模型实现.将项目分层设计,结合传统版权管理业务,基于区块链的版权管理分层架构如图6所示,分为:页面访问层、业务逻辑层、共识与合约、数据访问层.页面访问层(UI)基于B/S 架构,为用户提供版权登记、查看等操作的界面,保证用户体验.

业务逻辑层(BLL)对用户发起事务进行逻辑判断与执行操作,这里需要注意的是,区块链具有不可篡改的特性,这也是本文采用区块链架构的主要原因之一,因此,区块链CouchDB 不进行修改只进行写入和区块关联.当某一版权发生数据变化时,系统生成新的区块并关联相关版权对应模块.

图6 区块链版权管理分层架构

在共识与合约层面上,采用Fabric 作为基础区块链框架.Hyperledger Fabric[7]采用实用拜占庭容错算法(Practical Byzantine Fault Tolerance,PBFT)[8],作为共识机制,PBFT 算法要求节点总数大于3f个(f为拜占庭节点).智能合约通过链码实现,包括版权的登记链码调用功能.图7为版权登记时背书的验证流程.

图7 背书验证流程

对于该架构,数据访问层(DAL)为数据库的主要操控系统,实现数据的增加、删除、修改、查询等操作,并将操作结果反馈到业务逻辑层BLL.

具体的版权登记使背书的验证流程如下:

步骤1.用户通过客户端client 上传视频作品,记作v.

步骤2.通过深度学习算法提取数据,生成单帧列表List,根据List 建立新区块NewBlock,并向全网广播.图片和关键点矩阵信息的.json 文件,记矩阵信息为k.提取过程中,上传人信息和版权作品信息(视频v和矩阵信息k)存储到服务器上.

步骤3.client 发起登记申请,记该申请为p,将p发送给节点A.

步骤4.节点A负责收集登记申请,并建立区块,之后全网广播,要求全网节点进行登记验证.当节点A收到client的申请p后,将p加入未确认的登记.

步骤5.节点B、节点C、节点D收到NewBlock后,进行登记预处理:3 个节点分别计算hash(NewBlock),并向全网广播hash(NewBlock).

步骤6.节点A、节点B、节点C、节点D分别接收到hash(NewBlock),并进行校验,以节点B为例,假设节点B登记预处理阶段生成的hash(NewBlock)B与收到的来自节点C的hash(NewBlock)C一致,则认为登记确认成功;若不一致,则认为登记确认失败.

步骤7.各个节点完成登记确认后,向其他节点广播登记确认结果;根据PBFT 算法的规则,每个正常工作节点应受到超过2f条登记确认消息,且该验证总数不少于2f.各节点收到其他节点登记确认后,存储版权登记,记为数字证书CA.

步骤8.反馈CA 给客户端,至此完成一次背书过程.

5 架构评估

区块链的本质是一种非关系型的数据库,本文的主要工作是优化架构和数据存储结构.本文在给出了通用区块链数字版权存储架构的前提下,提出采用深度学习技术辅助区块链的链上数据存储,以人物类视频资源为例,提供了一种提取人物行为特征的思路,针对存储数据合理选取并加以利用存储到区块链中.

人物特征提取方面,OpenPose 算法在处理结果和性能方面有较显著的结果.关键帧图像及关键信息矩阵总大小远远小于原视频文件.以上文选取的视频为例,大小为134 MB的视频,最终得到800 余帧关键信息,总大小约为1.48 MB.从分布式存储的角度上分析,关键信息提取更好的提高了系统的可用性.

分别比较传统版权管理架构和本文采用的区块链版权管理架构两种版权存储流程,选取大小为1 MB、16 MB、64 MB、256 MB、512 MB的视频版权数据,重复100 次版权存储操作,计算版权存储的时间开销(表4)与内存开销(表5).

表4 时间开销

表5 内存开销

由此看出,采用传统架构在系统两方面开销上越来越大,而区块链版权管理在系统开销方面相对稳定.

采用对照分析法[9]评估本文提出的视频版权存储架构模型.一方面,针对版权管理面临的普遍问题给出架构的应对方法,对架构应对方法进行分析(表6).另一方面,与现有版权管理方法进行对比,分析架构的优缺点(表7).

表6 当前面临问题及架构应对方法分析

区块头数据本身可以采用关系型数据库模拟其本身,因此,仅仅在区块体中存储作品Hash 值的方式完全可以避免采用区块链冗余的数据结构,利用关系型数据库存储每个作品的Hash 值,再进行区块头打包似乎可以替代区块链在版权管理中的位置.

但实际上,一方面,区块链的第一个应用案例比特币[10]是将交易数据存储在交易文件中再生成对应的Hash 值进行链上存储.而在实际的区块链开发中,不能将视频版权完全存储在区块链中,这既不利于系统本身应用范围的扩大,也不利于区块链开发的发展[11].另一方面,区块链中采用的共识机制等使得版权管理流程更加规范化,利于数字版权良性发展.本架构优势如下:

(1)区块链弱化了中心化管理的概念,使得链上数据公开、透明,利于多平台、多单位共同管理.

(2)区块链的链式结构使得链上数据难以篡改,可以较好地保证数据安全性.

(3)区块链结构具有良好的可追溯性,当发生权利问题时,只要在链上有所记录均可以追踪查看,方便相关部门进行确权.

本架构在区块链版权管理的基础 上,引入了深度学习技术进行版权关键信息的提取,这样可以降低区块链数据冗余度,提高系统可用性.采用PBFT 作为共识机制提高了区块链共识效率,整体增强了区块链系架构在数字版权管理中的实用性.但架构仅针对人物类视频版权,按照架构思路,可以针对其他类型视频版权采用“物体识别”、“情感分析”等深度学习算法来进行关键信息提取,并结合提取得到的关键信息分组提出适用于区块链架构的数据存储模型.

6 结论与展望

随着区块链技术的逐渐发展,这一技术从概念上应用也在逐步向实际应用靠近,它的研究会渐渐成为热点研究课题.区块链在保障可信机制的同时也为系统带来了极大的负担,采用深度学习技术可以较好的帮助计算机解释数字资产,减少系统负担,大大拓宽了区块链技术的应用场景.本文以人物类别的视频为例,提出了基于深度学习的区块链视频版权存储架构,由于作者学习能力有限,论文中针对的版权类别不够丰富,希望本架构可以对未来的研究提供相对有益的启发,依靠深度学习进一步推动区块链在实际领域中的发展.

猜你喜欢
关键帧关键点架构
基于图像熵和局部帧差分的关键帧提取方法
论建筑工程管理关键点
肉兔育肥抓好七个关键点
功能架构在电子电气架构开发中的应用和实践
基于B/S架构的图书管理系统探究
构建富有活力和效率的社会治理架构
基于误差预测模型的半自动2D转3D关键帧提取算法
利用定义法破解关键点
基于计算机三维动画建模技术的中国皮影艺术新传承
运动图像关键帧快速跟踪系统的改进