0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用3D卷积神经网络的交叉视听识别技术进行唇语识别

电子工程师 来源:未知 作者:李倩 2018-11-05 17:38 次阅读

唇语识别系统使用机器视觉技术,从图像中连续识别出人脸,判断其中正在说话的人,提取此人连续的口型变化特征,随即将连续变化的特征输入到唇语识别模型中,识别出讲话人口型对应的发音,随后根据识别出的发音,计算出可能性最大的自然语言语句。

唇语识别并非最近才出现的技术,早在 2003 年,Intel 就开发了唇语识别软件 Audio Visual Speech Recognition(AVSR),开发者得以能够研发可以进行唇语识别的计算机;2016 年 Google DeepMind 的唇语识别技术就已经可以支持 17500 个词,新闻测试集识别准确率达到了 50% 以上。

大家一定很好奇唇语识别系统要怎么实现。Amirsina Torfi 等人实现了使用 3D 卷积神经网络的交叉视听识别技术进行唇语识别,并将代码托管到 GitHub 上开源:

传送门:

https://github.com/astorfi/lip-reading-deeplearning

接下来就为大家介绍如何使用 3D 卷积神经网络的交叉视听识别技术进行唇语识别,完整的论文可参阅:

https://ieeexplore.ieee.org/document/8063416

下面是进行唇语识别的简单实现方法。

用户需要按照格式准备输入数据。该项目使用耦合 3D 卷积神经网络实现了视听匹配(audio-visual matching)。唇语识别就是这个项目的具体应用之一。

概况

音频损坏时,视听语音识别(Audio-visual recognition,AVR)被认为是完成语音识别任务的另一种解决方案,同时,它也是一种在多人场景中用于验证讲话人的视觉识别方法。AVR 系统的方法是利用从某种模态中提取的信息,通过填补缺失的信息来提高另一种模态的识别能力。

▌问题与方法

这项工作的关键问题是找出音频和视频流之间的对应关系。我们提出了一种耦合 3D 卷积神经网络架构,该架构可以将两种模式映射到一个表示空间中,并使用学到的多模态特征来判断视听流间的对应关系。

▌如何利用 3D 卷积神经网络

我们提出的该架构将结合时态信息和空间信息,来有效地发现不同模态的时态信息之间的相关性。我们的方法使用相对较小的网络架构和更小的数据集,并在性能上优于现有的视听匹配方法,而现有方法主要使用 CNN来表示特征。我们还证明了有效的对选择(pair selection)方法可以显著提高性能。

代码实现

输入管道须由用户提供。其余部分的实现包含基于话语的特征提取的数据集。

▌唇语识别

就唇语识别来讲,必须将视频作为输入。首先,使用 cd 命令进入相应的目录:

运行专用的python file如下:

运行上述脚本,通过保存每个帧的嘴部区域来提取唇部动作,并在画框圈出嘴部区域来创建新的视频,以便进行更好的可视化。

所需的arguments由以下 Python 脚本定义,VisualizeLip.py文件中已定义该脚本:

一些已定义的参数有其默认值,它们并不需要进一步的操作。

▌处理

视觉部分,视频通过后期处理,使其帧率相等,均为 30f/s。然后,使用 dlib 库跟踪视频中的人脸和提取嘴部区域。最后,所有嘴部区域都调整为相同的大小,并拼接起来形成输入特征数据集。数据集并不包含任何音频文件。使用 FFmpeg 框架从视频中提取音频文件。数据处理管道如下图所示:

▌输入管道

我们所提出的架构使用两个不相同的卷积网络(ConvNet),输入是一对语音和视频流。网络输入是一对特征,表示从 0.3 秒的视频中提取的唇部动作和语音特征。主要任务是确定音频流是否与唇部运动视频在所需的流持续时间内相对应。在接下来的两个小节中,我们将分别讲解语音和视觉流的输入。

语音网络(Speech Net)

在时间轴上,时间特征是非重叠的 20ms 窗口,用来生成局部的频谱特征。语音特征输入以图像数据立方体的形式表示,对应于频谱图,以及 MFEC 特征的一阶导数和二阶导数。这三个通道对应于图像深度。从一个 0.3 秒的视频剪辑中,可以导出 15 个时态特征集(每个都形成 40 个 MFEC 特征),这些特征集形成了语音特征立方体。一个音频流的输入特征维数为 15x40x3。如下图所示:

语音特征使用 SpeechPy 包进行提取。

要了解输入管道是如何工作的,请参阅:

code/speech_input/input_feature.py

视觉网络(Visual Net)

在这项工作中使用的每个视频剪辑的帧率是 30 f/s。因此,9 个连续的图像帧形成 0.3 秒的视频流。网络的视频流的输入是大小为 9x60x100 的立方体,其中 9 是表示时态信息的帧数。每个通道是嘴部区域的 60x100 灰度图像。

架构

该架构是一个耦合 3D 卷积神经网络,其中必须训练具有不同权重的两个网络。在视觉网络中,唇部运动的空间信息和时态信息相结合,以此来利用时间相关性。在音频网络中,提取的能量特征作为空间维度,堆叠的音频帧构成了时间维度。在我们提出的 3D 卷积神经网络架构中,卷积运算是在连续的时间帧上对两个视听流执行的。

训练 / 评估

首先,克隆存储库。然后,用 cd 命令进入专用目录:

最后,必须执行train.py文件:

对于评估阶段,必须执行类似脚本:

▌运行结果

下面的结果表明了该方法对收敛准确度和收敛速度的影响。

最好的结果,也就是最右边的结果,属于我们提出的方法。

所提出的在线对选择方法的效果如上图所示。

分析到这,希望大家可以到 Github 上找到源码,开始练起!附上作者给的代码演示。

DEMO 演示地址

1.Training/Evaluation :

https://asciinema.org/a/kXIDzZt1UzRioL1gDPzOy9VkZ

2.Lip Tracking:

https://asciinema.org/a/RiZtscEJscrjLUIhZKkoG3GVm

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4572

    浏览量

    98744
  • 机器视觉
    +关注

    关注

    161

    文章

    4043

    浏览量

    118357
  • 识别技术
    +关注

    关注

    0

    文章

    190

    浏览量

    19514

原文标题:唇语识别技术的开源教程,听不见声音我也能知道你说什么!

文章出处:【微信号:rgznai100,微信公众号:rgznai100】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    使用Python卷积神经网络(CNN)进行图像识别的基本步骤

    Python 卷积神经网络(CNN)在图像识别领域具有广泛的应用。通过使用卷积神经网络,我们可以让计算机从图像中学习特征,从而实现对图像的分
    的头像 发表于 11-20 11:20 1795次阅读

    【uFun试用申请】基于cortex-m系列核和卷积神经网络算法的图像识别

    项目名称:基于cortex-m系列核和卷积神经网络算法的图像识别试用计划:本人在图像识别领域有三年多的学习和开发经验,曾利用nesys4ddr的fpga开发板,设计过基于cortex-
    发表于 04-09 14:12

    基于赛灵思FPGA的卷积神经网络实现设计

    ,看一下 FPGA 是否适用于解决大规模机器学习问题。卷积神经网络是一种深度神经网络 (DNN),工程师最近开始将该技术用于各种识别任务。图
    发表于 06-19 07:24

    卷积神经网络如何使用

    卷积神经网络(CNN)究竟是什么,鉴于神经网络在工程上经历了曲折的历史,您为什么还会在意它呢? 对于这些非常中肯的问题,我们似乎可以给出相对简明的答案。
    发表于 07-17 07:21

    可分离卷积神经网络在 Cortex-M 处理器上实现关键词识别

    ,接下来是密集全连接层。● 深度可分离卷积神经网络 (DS-CNN)最近,深度可分离卷积神经网络被推荐为标准 3D
    发表于 07-26 09:46

    卷积神经网络一维卷积的处理过程

    。本文就以一维卷积神经网络为例谈谈怎么来进一步优化卷积神经网络使用的memory。文章(卷积神经网络
    发表于 12-23 06:16

    卷积神经网络模型发展及应用

    分析了目前的特殊模型结构,最后总结并讨论了卷积神经网络在相关领域的应用,并对未来的研究方向进行展望。卷积神经网络(convolutional
    发表于 08-02 10:39

    卷积神经网络简介:什么是机器学习?

    通过网络训练来确定才能使模型工作。这将在后续文章“训练卷积神经网络:什么是机器学习?—第 2 部分”中解释。第 3 部分将解释我们讨论过的神经网络
    发表于 02-23 20:11

    3D卷积神经网络的手势识别

    传统2D卷积神经网络对于视频连续帧图像的特征提取容易丢失目标时间轴上的运动信息,导致识别准确度较低。为此,提出一种基于多列深度3D卷积
    发表于 01-30 13:59 2次下载
    <b class='flag-5'>3D</b><b class='flag-5'>卷积</b><b class='flag-5'>神经网络</b>的手势<b class='flag-5'>识别</b>

    卷积神经网络的应用 卷积神经网络通常用来处理什么

    的前馈神经网络卷积神经网络广泛用于图像识别、自然语言处理、视频处理等方面。本文将对卷积神经网络
    的头像 发表于 08-21 16:41 3988次阅读

    卷积神经网络概述 卷积神经网络的特点 cnn卷积神经网络的优点

    卷积神经网络概述 卷积神经网络的特点 cnn卷积神经网络的优点 
    的头像 发表于 08-21 16:41 1933次阅读

    卷积神经网络如何识别图像

    为多层卷积层、池化层和全连接层。CNN模型通过训练识别并学习高度复杂的图像模式,对于识别物体和进行图像分类等任务有着非常优越的表现。本文将会详细介绍
    的头像 发表于 08-21 16:49 1420次阅读

    卷积神经网络的基本原理 卷积神经网络发展 卷积神经网络三大特点

    中最重要的神经网络之一。它是一种由多个卷积层和池化层(也可称为下采样层)组成的神经网络。CNN 的基本思想是以图像为输入,通过网络卷积、下
    的头像 发表于 08-21 16:49 1441次阅读

    卷积神经网络的介绍 什么是卷积神经网络算法

    卷积神经网络的介绍 什么是卷积神经网络算法 卷积神经网络涉及的关键
    的头像 发表于 08-21 16:49 1425次阅读

    图像识别卷积神经网络模型

    图像识别卷积神经网络模型 随着计算机技术的快速发展和深度学习的迅速普及,图像识别卷积
    的头像 发表于 08-21 17:11 533次阅读