陈冰萸
(杭州电子科技大学计算机学院,浙江 杭州 310018)
近年来,我国政府重视维护残疾人权益的工作,并大力推进信息无障碍建设,例如为残疾人提供带有语音及文字提示的信息交流服务,如影视节目手语播报、公共图书馆无障碍设施和残疾人公益组织等。如果这些工作都由人力完成,则成本高,且远远不能满足需求。因此,借助计算机技术进行突破成为了无障碍建设的重点任务。
在计算机视觉领域,视频描述这一技术的重要性日益突显出来。其能够用于视频标题生成、视频字幕生成、视频分类、内容检索及个性化推荐等方面。而在无障碍建设领域,视频描述能够辅助视障人士的日常生活,例如辅助日常出行、物品辨别等场景。
本文以现有的一些网络模型为基础,运用近年来影响较深的注意力机制,结合缓冲区、多进程的系统设计,设计出一种基于PyTorch Mobile 框架的在线视频描述系统,将科技作为视障人士的“眼”,为他们的日常生活带去便利。
受图像描述技术的启发,目前视频描述技术经常使用编码器-解码器(Encoder-Decoder)框架。现有的视频描述模型通常使用卷积神经网络(Convolutional Neural Networks,CNN),或递归神经网络(Recurrent Neural Networks,RNN)作为编码器,对视频进行编码,并使用RNN 作为解码器对视频进行解码,使视频信息通过其他形式和载体呈现出来。
针对如何充分利用视频信息,生成更贴近场景需求、更准确的描述结果的问题,近十年来学术界提出了很多可实现的解决方案。目前的视频描述模型通过使用注意力机制整合视频帧的特征,或采用层次循环编码器、属性增强反编码器、多模态记忆和重构损失等方法,来提高生成的描述质量。虽然这些方法使视频描述技术快速发展,但它们仅限于用一句话描述一段离线视频,使用情景较为局限。因此,Yu等人提出了一种分层递归神经网络,它能够把较长的视频转化为文字描述,使视频描述技术在工业界发展成为可能;而Xiong等人提出了一种基于事件的段落生成方法,系统中包含一个事件选择模块,用于选择某个事件参与到描述生成的过程中去,由此实现对多个事件的描述,拓宽视频描述的应用情景。
而对于实时作业,动作检测、目标识别的研究开始得较早。实现实时目标识别较为简单,目标识别系统可以从实时视频帧中定时采帧,并对该特定帧进行分析;动作检测需要针对一个区间的视频帧,即一个短视频进行分析,与视频描述所需的场景较为贴合。而动作检测需要针对一个区间的视频帧,即一个短视频进行分析,与视频描述所需的场景较为贴合。由Mohammadreza 在2018 年提出一种ECO 系统结构,该结构通过维护两个队列,分别用于维护当前视频帧和历史视频帧,在保证视频帧的充分利用的同时极大地提高了系统的运行速度,很适合用于视频描述系统中。
本文的实时系统即是基于ECO 模型的基础上加以改进,结合多层注意机制和双层解码器技术,自主研发了一种能够将在线视频转化为符合语法规范且能够准确反映视频内容的描述的视频描述系统。
为使系统能够贴合目标群体的需求,达到满意的效果,本系统的开发分理论设计,编程实现,模型训练及调优和架构效果验证,共四个步骤(如图1)。其中,考虑到视障人群日常使用需要不断获得信息反馈,视频时长较长,且有多个使用场景,系统的描述生成模块同时包括视觉注意模块和文本注意模块,以保证视频的视觉特征及描述的文本特征能够被充分挖掘,且能够突出其重点部分,使用户能对所反映的事物有更准确的认识。
图1 技术框架图
项目模型使用目前最大的视频描述数据集MSVD 数据集作为训练集及测试集,样本划分为8:2。在训练过程中,以CIDER1~4 作为模型当前训练程度的评估指标,不断调整模型的梯度、学习率等参数,直至评估指标达到收敛,表示模型训练完成。架构效果验证时,针对系统的两种视频获取方式,需要从描述准确度、实时性、系统可运行时间、多场景下的系统鲁棒性等方面着手。
2.2.1 Nginx-Rtmp-Module流媒体服务器
Nginx 本身是非常出色的HTTP 服务器,FFMPEG是非常好的音视频解决方案。通过Nginx-Rtmp-Module 模块可将两者组合在一起,搭建成一个功能较为完善的流媒体服务器,以支持RTMP 和LHS(LiveHTTPStream)。
本系统将该模块整合到手机系统(以iOS 系统为例)APP 中,当在手机APP 开启视频识别功能的时候,APP 调用手机摄像头拍摄视频信息,Nginx-Rtmp-Module流媒体服务器则会将其推流至服务器中。
2.2.2 OpenCV库
OpenCV 库是一个基于BSD 许可发行的跨平台计算机视觉和机器学习软件库,它主要用于图像处理、计算机视觉、模式识别、物体识别(人脸识别、对象识别)等领域。如图2所示,本系统中,OpenCV库会每隔四秒,将接收到的视频流转化为MP4 格式的视频,并输入到视频描述模型中。
图2 技术路线图
2.2.3 Video Captioning模型
视频描述模型,即技术框架中的描述生成模块。其输入为MP4 格式视频,输出为一句对输入视频的描述。本系统将视频描述模型部署在云服务器中,它会接受由OpenCV 库生成的MP4 视频作为输入。在其运行前,只需要在后台设置时间戳为四秒,即可使得视频描述模型能够自动每隔四秒读取一次视频文件,并生成相应描述输出。
2.2.4 iOS手机系统语音库
iOS 手机系统自iOS7.0 以来就支持文本转语音功能(TextToSpeech),iOS 手机开发者可以通过该功能将文字转为语音输出。在本系统中,当视频描述模型生成了视频描述后,iOS 手机APP 即可从服务区获取该描述语句,并通过iOS 手机系统自带的文本转语音功能将其由文字转为语音输送出,传达给使用者,完成一个周期的视频描述。
本系统通过维护两个缓冲器(队列结构),实现对实时视频帧的接收、选取并合成视频的操作。在每个存储周期中,其中一个缓冲器(缓冲器A)用于存放当前新接收的16 帧视频帧,而另一个(缓冲器B)用于存放上一周期选取出的16 帧视频帧。当设置的四秒接收时间结束后,系统会从缓冲器B 中任意取出4 帧,从缓存器A 中任意取出12 帧,并将从B 中取出的历史视频帧放在前面,得到新的16帧视频帧。
对应于系统技术路线,Nginx 流媒体服务器会将此16 帧推至OpenCV 库中,并由OpenCV 库将其转化为MP4 视频。同时,将缓冲器B 清空,并将此次选出的16 帧放入B 中,作为下一周期的历史视频帧。这样,既能保证每一阶段的输入视频大部分是当前的内容,又保留了部分历史信息,使得最后的输出内容的前后连贯性提升。
针对每个周期从OpenCV 库中得到的16 帧视频,视频描述模型会分别提取其空间特征(二维静态特征)和时间特征(三维动态特征),以充分挖掘其画面、动作信息。
如图3 所示,本系统使用I2D 卷积网络,对每一个视频帧提取空间特征,该空间特征可以体现视频帧中对象的特征。通过I2D 卷积网络,可以得到每一帧的特征f∈R,最后将16 帧的空间特征进行拼接,得到完整的视频空间特征F∈R。此外,本系统采用C3D 卷积网络对该16 帧视频提取其三维时间特征。C3D 卷积网络由三维卷积层、池化层及全连接层组成。通过C3D 卷积网络可以得到视频的时间特征M∈R,该特征包括了视频本身的时序信息,即动态信息。
图3 实时视频接受及其特征提取
根据人的视觉特性,当人在看一个画面时,往往更关注画面中最重要的对象或位置,注意力机制即是模拟了人类视觉的这一特征。
通过注意力机制,系统可以在训练完成后,对视频的特征生成权重分布,主体对象会得到更高的权值;然后再将视觉特征按权相加,整合得到最终的视觉特征。本系统的视觉注意模块分为两层,第一层为Region-LevelAttention,其可以学习关注每帧中最显著的区域;第二层为Frame-LevelAttention,可以关注与视觉信息最相关的帧。两层视觉注意模块的设计不仅能够自动聚焦于最相关的帧以及每帧中的显著区域,也能保持帧内的结构信息和帧间的平滑性。
此外,本系统还设计了文本注意模块。相比传统的Word-LevelAttention,本系统采用Phrase-LevelAttention。与视觉注意模块的作用相似,文本注意模块可以自动关注到当前生成词的前三个单词,再从该短语级前缀中自动关注到最有用的内容,从而提高生成描述的准确率。
本系统选用长短期记忆网络(Long Short Term Memory,LSTM)作为解码器,即描述生成器。如图4所示。LSTM 能够通过隐藏门自动且隐式地保存每一节点的部分信息,作为下一时间步的历史信息,故LSTM 相较于普通RNN 等解码器,能够挖掘到跨度更大的视觉特征,符合本系统使用场景的需求。
图4 描述生成模块
另外,本系统额外设置“平衡门”机制。在普通模型中,视觉特征和文本特征的权重比例大多是认为固定的,故本系统中额外设置了平衡门。令视觉特征的权重值为λ,则文本特征的权重值为1-λ,在训练时即可得到该视频描述模型的λ值。
系统将MSVD 数据集作为训练集,不断优化调整模型参数,直至模型能够在数据集上得到一个较好得分。测试时通过手机摄像头对准测试视频片段,视频效果如图5所示。
图5 测试摄像头获取视频的可行性-观影场景
经测试,我们可以看到系统对于摄像头获取实时视频的方式支持性较好,且输出的场景、人物、动作的识别都较为准确。
此外,此系统还可以用于日常生活,例如模拟出行,当我们模拟用户在日常出行时使用此系统,将摄像头对准前行道路,可以得到如图6所示的结果。
图6 测试摄像头获取视频的可行性-出行场景
经测试,我们可以看到在出行场景下,系统对于道路环境、人数情况判断较为准确,基本可以满足用户出行时的辅助需求。
由本系统设计初衷,系统还可以通过在线上传视频的方式获取视频,经过测试可以得到如图7所示效果。
图7 测试在线上传视频的可行性
通过在多个视频和使用场景下进行的是,能够得出以下结论:在大部分情况下,系统输出的文字描述与视频内容基本一致,且实时性较好,手机运行时也不容易卡顿,能够基本满足用户的需求;在小部分情况下,输出仍会有语法问题,但不会对理解产生影响,不会妨碍用户使用。
为了给视障人士的生活提供方便,同时降低在无障碍建设进程中的人力成本,本文提出了一种基于在线视频描述的视障人士辅助系统,论述了其设计及实现过程。该系统采用一种面向多使用场景的实时反馈技术架构,涵盖了视频传输、缓冲设计、描述生成及最终语音反馈等过程。该系统能够有效从实时视频帧中提取出空间特征、时间特征,通过视觉注意模块及文本注意模块合成整体特征,最后结合长短记忆解码器,其生成的描述结果的准确度、模型整体的速度均达到预期。