无论是过去还是以网络为导向的知识经济时代, 知识产权作为一个企业乃至国家提高核心竞争力的战略资源, 都凸现出前所未有的重要地位. 在互联网时代, 不仅仅是知识产权, 原创作品等互联网时代衍生品的保护也很重要, 丰富的推广渠道和不断增长的用户数量间接导致了信息的肆意传播.
基于区块链技术的数字版权管理依托于区块链弱中心化的分布式架构等新理念为数字版权管理提供了有效途径. 由于区块链自身特性, 占用空间较大的数字版权完整上链更容易造成数据的冗余.
考虑到上链存储的意义, 本文提出了一种采用深度学习算法进行关键信息提取的思路. 以视频版权为大文件代表, 以人物类视频为主要存储对象, 本文采用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)解析, 记彩色图像尺寸为
步骤2. 通过VGG19网络前10层对图片初始化并微调处理, 生成一组特征映射F作为每个分支的第一阶段的输入(图1(a)).
步骤3: 采用双分支多级CNN的体系结构同时得到两组数据(图2): 预测一组身体部位位置的2D置信图(part confidence maps), 记作
(1) 在第一阶段, 网络产生一组检测置信图
(2)同理, 参考前两个分支阶段预测的结果和映射F可以用于产生新的精准预测.
${S^t} = {\rho ^t}(F,{S^{t - 1}},{L^{t - 1}}),\forall t \ge 2$ | (1) |
${L^t} = {\phi ^t}(F,{S^{t - 1}},{L^{t - 1}}),\forall t \ge 2$ | (2) |
步骤4. 为了判断网络是否收敛, 定义损失函数在空间上对损失函数进行加权,
$f_S^t = \sum\nolimits_{j = 1}^J {\sum {_pW(p) \cdot \left\| {S_j^t(p) - S_j^*(p)} \right\|} } _2^2$ | (3) |
$f_L^t = \sum\nolimits_{c = 1}^C {\sum {_pW(p) \cdot \left\| {L_c^t(p) - L_c^*(p)} \right\|} } _2^2$ | (4) |
其中,
每个阶段的中间监督通过周期性的调整梯度来解决梯度消失, 具体表示为:
$f = \sum\nolimits_{t = 1}^T {(f_S^t + f_L^t)} $ | (5) |
为了得到损失函数
(1)对于
$S_{j,k}^*(p) = \exp( - \frac{{\left\| {p - {x_{j,k}}} \right\|_2^2}}{{{\sigma ^2}}})$ | (6) |
$S_{j,k}^*(p) = {\max _k}S_{j,k}^*(p)$ | (7) |
(2)以图3为例, 记
$L_{c,k}^* = \left\{ {\begin{array}{*{20}{l}} {p,\quad {\rm{if }}\;p\;{\rm{ on \;limb }}\;c,k,} \\ {0,\quad {\rm{otherwise}}{\rm{.}}} \end{array}} \right.$ | (8) |
(3)评估两点相连的可能性时通过计算连接候选身份部分位置的线积分来测量检测到候选身体部分的连接. 即, 为判断两个候选部分是否相连.
$E = \int_{u = 0}^{u = 1} {{L_c}(p(u)) \cdot \frac{{{d_{{j_2}}} - {d_{{j_1}}}}}{{{{\left\| {{d_{{j_2}}} - {d_{{j_1}}}} \right\|}_2}}}} {\rm d}u$ | (9) |
步骤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).
3 数据存储结构分析
区块链系统具有分布式高冗余存储、时序数据且不可篡改和伪造、去中心化信用、自动执行的智能合约、安全和隐私保护等显著的特点, 这使得区块链技术不仅可以成功应用于数字加密货币领域, 同时在经济、金融和社会系统中也存在广泛的应用场景[5]. 在数字版权管理方面, 区块链技术为数字版权管理工作提供了良好的存储架构模型, 使得数字资产存储过程中具备了安全、可追溯、不可篡改的优良特性[6].
3.1 版权管理流程分析以计算机软件著作权为例, 传统版权管理流程大致分为以下几个部分:
(1)版权登记: 填写相关版权信息表, 主要包括软件基本信息、软件特点、著作权人信息、申请人信息和相关材料说明.
(2)受理预约: 填报登记表后, 办理软件受理业务, 选择相应的时间和地点.
(3)现场提交材料: 提交办理版权的相关纸质材料.
(4)著作权获得: 若办理过程顺利, 则等待最终办理结果(著作权证明); 若办理过程中出现问题, 则执行(5).
(5)受理补正: 拒绝该申请, 可选择重新申请或选择软件受理补正, 直到办理成功.
同时, 已办理完毕受理业务的作品可以进行作品转让和信息的变更. 具体流程均与(1)~(4)类似.
3.2 状态模型根据现有版权管理流程, 数字产品版权登记应包括以下几种状态: 版权材料网上提交阶段, 版权材料审核阶段, 版权登记成功/失败. 围绕这几种状态, 针对提交的版权具备如下几种状态模型:
状态模型: 版权的状态调整, 包括版权提交、待确认、登记成功和登记失败4种状态, 如表1所示.
版权登记整体过程如下:
NewPublish: 版权持有人发布版权之后为NewPublish新发布状态;
EndrWaitSign: 权利人提交数字版权, 并进行版权受理, 版权状态转移为EndrWaitSign待验签状态;
EndrSigned: 相关机构验证数字版权, 验收成功, 版权状态转移为EndrSigned数字版权签收成功状态;
EndrReject: 反之, 则为EndrReject数字版权签收失败状态.
3.3 版权相关数据(1)数字版权基本信息(表2)
针对数字版权基本状态应包含以下信息, 表中记录链上对应字段:
作品编号: 该笔数字版权对应的编号;
作品名称: 版权上传时的版权名称;
作品类型: 用户填写的版权类型, 如个人专利等;
上传时间: 版权上传成功后系统得到的时间;
作品哈希: 版权摘要MD5;
关键信息: 深度学习提取得到的关键信息集合, 即采用深度学习提取的人物类视频中人物的18个基本关键点作为关键信息.
(2)数字版权受理基本信息(表3)
版权登记编号: 作品进行版权登记时的流水编号;
版权登记日期: 填写成功后记录的日期;
版权截止日期: 履行版权登记义务的截止时间;
版权办理费用: 版权在登记过程中产生的手续费;
背书历史: 用户在系统中的全部操作均被记录在背书历史中;
记录类型: 记录在不同的检索界面根据不同的记录类型显示相应的检索结果.
3.4 视频存储数据库存储视频文件通常采用两种方法, (1)是将视频版权存入服务器, 之后存储对应文件路径在数据库中; (2)是直接以二进制流的方式将视频文件写入数据库字段. 存储文件路径的方式系统开销低, 数据库负担小, 但当文件数量逐渐增大的时候, 文件处理效率就会呈指数级别的降低. 另外存储文件路径的方式不能保证视频文件的安全, 视频内容极容易被更改. 相对的, 采用二进制流的方式可以将文件完整的保存在数据库中, 但数据库的频繁读取会影响性能.
传统版权管理系统中, 以有序生成的版权编号作为主键, 将版权数据转为二进制流, 存入版权数据库. 当发生版权争执时, 需要通过人工比对的方式完成确权操作.
为了解决以上问题, 在区块链中, 文件上传至服务器后, 会得到文件存储地址指针, 系统保存视频的Hash值、索引值和文件指针, 通过这样的方式既能把视频相对快速完整的存储到区块中又能尽可能的节约系统资源. 为了提高系统的可用性, 本架构采用深度学习算法进行关键帧的提取, 以视频文件的关键帧作为视频确权的辅助依据, 假设发生确权问题时, 可以通过关键帧较快获得文件信息而不必去对比原文件内容, 在整个版权流程中, 关键帧提取的性能损耗和物理资源消耗可以忽略不计.
在本系统中, 以图5为例, 视频作品上传后通过OpenPose算法得到矩阵信息, 矩阵信息以.json格式文件分别存储, 这些数据会作为相关版权事务存储在版权关键数据文件中. 假设某一视频得到“0001_keypoint”~“0004_keypoint” 4个矩阵信息文件.
首先对信息文件进行Hash值提取, Hash值由特定的散列函数生成, 这里采用的是SHA256算法. 散列函数是单向陷门函数, 无法通过逆推得到原有数据, 且计算效率高. 在同一散列函数中, 如果2个Hash值是不相同的, 那么他们的原始数据也是不同的(在定义这里, 不考虑哈希碰撞), 这个特性是散列函数具有确定性的结果, 我们可以粗略地认为Hash值在这里变成了以固定长度输出的不同大小信息的唯一标识符, 而且标识符与每个源文件属于天然的一一对应关系, 而且当源数据被篡改微小的部分, 散列函数也会产生巨大的变化. 因此可以将事务的Hash值作为其唯一标识存储在区块链中.
在背书验证流程中, 将这些事务以Merkle tree的形式计算出Hash值, 从而层层向上, 最终得到Merkle根填写在区块中.
本区块链架构并发执行版权数据上链、版权数据存储、版权关键数据存储操作:
版权数据上链: 以版权编号作为主键, 哈希值作为唯一标识, 存入版权链;
版权关键数据存储: 以版权编号作为主键, 提权视频版权数据关键帧, 存储到版权关键信息数据库, 也就是区块链的CouchDB中;
版权数据存储: 以版权编号作为主键, 将版权数据存入服务器中.
其中版权数据存储作为版权备份操作, 不参与版权确权流程; 版权关键数据存储作为辅助确权模块, 发生哈希碰撞时, 由视频版权关键帧数据判定版权状态. 本架构将上链存储版权作品本身变成存储版权关键帧, 因此, 区块中存储的内容从“多个视频哈希值”变成了“视频的多个关键帧哈希值”. 提取视频关键帧信息并将关键帧信息Hash值存储在区块中, 通过调整关键帧的帧数和关键帧的选定数据理论上可以降低哈希碰撞的发生概率.
4 架构模型区块链框架采用Hyperledger Fabric 1.0应用开发模型实现. 将项目分层设计, 结合传统版权管理业务, 基于区块链的版权管理分层架构如图6所示, 分为: 页面访问层、业务逻辑层、共识与合约、数据访问层. 页面访问层(UI)基于B/S架构, 为用户提供版权登记、查看等操作的界面, 保证用户体验.
业务逻辑层(BLL)对用户发起事务进行逻辑判断与执行操作, 这里需要注意的是, 区块链具有不可篡改的特性, 这也是本文采用区块链架构的主要原因之一, 因此, 区块链CouchDB不进行修改只进行写入和区块关联. 当某一版权发生数据变化时, 系统生成新的区块并关联相关版权对应模块.
在共识与合约层面上, 采用Fabric作为基础区块链框架. Hyperledger Fabric[7]采用实用拜占庭容错算法(Practical Byzantine Fault Tolerance, PBFT)[8], 作为共识机制, PBFT算法要求节点总数大于3f个(f为拜占庭节点). 智能合约通过链码实现, 包括版权的登记链码调用功能. 图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).
由此看出, 采用传统架构在系统两方面开销上越来越大, 而区块链版权管理在系统开销方面相对稳定.
采用对照分析法[9]评估本文提出的视频版权存储架构模型. 一方面, 针对版权管理面临的普遍问题给出架构的应对方法, 对架构应对方法进行分析(表6). 另一方面, 与现有版权管理方法进行对比, 分析架构的优缺点(表7).
区块头数据本身可以采用关系型数据库模拟其本身, 因此, 仅仅在区块体中存储作品Hash值的方式完全可以避免采用区块链冗余的数据结构, 利用关系型数据库存储每个作品的Hash值, 再进行区块头打包似乎可以替代区块链在版权管理中的位置.
但实际上, 一方面, 区块链的第一个应用案例比特币[10]是将交易数据存储在交易文件中再生成对应的Hash值进行链上存储. 而在实际的区块链开发中, 不能将视频版权完全存储在区块链中, 这既不利于系统本身应用范围的扩大, 也不利于区块链开发的发展[11]. 另一方面, 区块链中采用的共识机制等使得版权管理流程更加规范化, 利于数字版权良性发展. 本架构优势如下:
(1)区块链弱化了中心化管理的概念, 使得链上数据公开、透明, 利于多平台、多单位共同管理.
(2)区块链的链式结构使得链上数据难以篡改, 可以较好地保证数据安全性.
(3)区块链结构具有良好的可追溯性, 当发生权利问题时, 只要在链上有所记录均可以追踪查看, 方便相关部门进行确权.
本架构在区块链版权管理的基础 上, 引入了深度学习技术进行版权关键信息的提取, 这样可以降低区块链数据冗余度, 提高系统可用性. 采用PBFT作为共识机制提高了区块链共识效率, 整体增强了区块链系架构在数字版权管理中的实用性. 但架构仅针对人物类视频版权, 按照架构思路, 可以针对其他类型视频版权采用“物体识别”、“情感分析”等深度学习算法来进行关键信息提取, 并结合提取得到的关键信息分组提出适用于区块链架构的数据存储模型.
6 结论与展望随着区块链技术的逐渐发展, 这一技术从概念上应用也在逐步向实际应用靠近, 它的研究会渐渐成为热点研究课题. 区块链在保障可信机制的同时也为系统带来了极大的负担, 采用深度学习技术可以较好的帮助计算机解释数字资产, 减少系统负担, 大大拓宽了区块链技术的应用场景. 本文以人物类别的视频为例, 提出了基于深度学习的区块链视频版权存储架构, 由于作者学习能力有限, 论文中针对的版权类别不够丰富, 希望本架构可以对未来的研究提供相对有益的启发, 依靠深度学习进一步推动区块链在实际领域中的发展.
[1] |
Wei S, Ramakrishna V, Kanade T et al. Convolutional pose machines. 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). Las Vegas, NV, USA. 2016. 4724–4732.
|
[2] |
Cao Z, Simon T, Wei SE, et al. Realtime multi-person 2D pose estimation using part affinity fields. Proceedings of 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). Honolulu, HI, USA. 2017. 1302–1310.
|
[3] |
Simon T, Joo H, Matthews I, et al. Hand keypoint detection in single images using multiview bootstrapping. IEEE Conference on Computer Vision and Pattern Recognition. Honolulu, HI, USA. 2017. 1145–1153
|
[4] |
Open Pose Demo-Output. https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/master/doc/output.md. [2019-11-11].
|
[5] |
Swan M. Blockchain: Blueprint for A New Economy. California: O’Reilly Media, 2015.
|
[6] |
袁勇, 王飞跃. 区块链技术发展现状与展望. 自动化学报, 2016, 42(4): 481-494. |
[7] |
Androulaki E, Barger A, Bortnikov V, et al. Hyperledger fabric: A distributed operating system for permissioned blockchains. Proceedings of the 13th EuroSys Conference. New York, NY, USA. 2018. 30.
|
[8] |
Castro M, Liskov B. Practical Byzantine fault tolerance and proactive recovery. ACM Transactions on Computer Systems, 2002, 20(4): 398-461. DOI:10.1145/571637.571640 |
[9] |
薛腾飞, 傅群超, 王枞, 等. 基于区块链的医疗数据共享模型研究. 自动化学报, 2017, 43(9): 1555-1562. |
[10] |
Nakamoto S. Bitcoin: A peer-to-peer electronic cash system. https://bitcoin.org/bitcoin.pdf. 2009.
|
[11] |
房卫东, 张武雄, 潘涛, 等. 区块链的网络安全: 威胁与对策. 信息安全学报, 2018, 3(2): 87-104. |