导读

唇语识别有着极长的历史。古代的唇语师通过长期的训练,具备了“观察别人的嘴型,解读其表达语句”的能力。在现代社会里,一些听力障碍者们也会使用这种技巧与他人交谈,补充听力器官的不足。


但这项工作对机器而言则要复杂了许多。唇语识别是一项集机器视觉与自然语言处理于一体的技术。通过视觉技术从图像中连续识别出人脸,并提取此用户连续的口型变化特征,再其输入到唇语识别模型中,即可识别出该用户口型所对应的发音,进而计算出语句。



2003 年,Intel便已开发了唇语识别软件AVSR,开发者得以研发可以进行唇语识别的计算机。2016 年,谷歌唇语识别技术就已经支持 17500 个词,新闻测试集识别准确率达到了 50% 以上。


那唇语识别究竟是如何实现的?

本期将将以Amirsina Torfi 等人实现的使用 3D 卷积神经网络的交叉视听识别技术为引,介绍唇语识别技术。

唇语识别

唇语识别/Lip Reading

Github:github.com/astorfi/lip-reading-deeplearning​github.com

软件地址:暂无项目基于用于交叉视听匹配识别的3D卷积神经网络实现。模型结构如下图。模型具有以下四个特点:

  • 输入是音频和视频,输出是他们是否匹配
  • 标签是音频视频是否是一样的
  • 衡量音频视频3D卷积后的低维映射之间的欧氏距离
  • 两个重要的手段去掉多余数据

当音频损坏时,视听语音识别(AVR)被认为是完成语音识别任务的另一种解决方案,同时,它也是一种在多人场景中用于验证讲话人的视觉识别方法。

AVR 系统的方法是利用从某种模态中提取的信息,通过填补缺失的信息来提高另一种模态的识别能力。

这篇文章提出了利用耦合的三维卷积神经网络(CNN)架构,该架构可以将两种模态映射到表示空间,以使用学习到的多模态特征来评估音频 - 视频流的对应关系。


这种体系结构将结合空间和时间信息共同有效地发现不同模态的时间信息之间的相关性。通过使用相对较小的网络体系结构和更小的数据集,其方法超越了现有的用于视频匹配的相似方法的性能。

代码实现

输入管道必须由用户提供。其余实现将考虑包含基于话语的提取特征的数据集。 ▌唇语识别对于嘴唇跟踪,必须将所需的视频作为输入。首先,将cd转到相应的目录:

cd code/lip_tracking

运行专用python file如下:

python VisualizeLip.py --input input_video_file_name.ext --output output_video_file_name.ext

运行上述脚本可以通过保存每帧的嘴巴区域来提取嘴唇动作,并创建一个在嘴巴区域周围具有矩形的输出视频,以实现更好的可视化效果。

所需文件arguments由VisualizeLip.py文件中定义的以下python脚本定义:

ap = argparse.ArgumentParser()
ap.add_argument("-i", "--input", required=True,help="path to input video file")
ap.add_argument("-o", "--output", required=True,help="path to output video file")
ap.add_argument("-f", "--fps", type=int, default=30,help="FPS of output video")
ap.add_argument("-c", "--codec", type=str, default="MJPG",help="codec of output video")
args = vars(ap.parse_args()

▌处理

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

视觉部分,视频通过后期处理使其帧率相等,均为 30。然后,使用 dlib 库跟踪视频中的人脸和提取嘴部区域。最后,所有嘴部区域都调整为相同的大小,并拼接起来形成输入特征数据集。

数据集并不包含任何音频文件。使用 FFmpeg 框架从视频中提取音频文件。数据处理管道如下图所示:


▌输入管道

所提出的体系结构利用了两个不同的ConvNet,它们使用一对语音和视频流。网络输入是一对特征,表示从0.3秒的视频剪辑中提取的嘴唇运动和语音特征。主要任务是确定音频流是否在所需的流持续时间内与嘴唇运动剪辑相对应。

语音网与视觉网

▌语音网络

在时间轴上,时间特征是20ms的非重叠窗口,用于生成具有局部特征的频谱特征。输入语音特征图(表示为图像立方体)与频谱图以及MFEC特征的一阶和二阶导数相对应。


这三个通道对应于图像深度。从0.3秒的剪辑中,可以得出15个时间特征集,这些特征集形成了语音特征立方体。单个音频流的每个输入特征图的尺寸为15×40×3。上图描述了这种表示形式。

语音特征使用 SpeechPy 包进行提取。要了解输入管道是如何工作的,请参阅:

code/speech_input/input_feature.py

▌视觉网络

在此过程中使用的每个视频剪辑的帧速率均为30。因此,9个连续的图像帧形成0.3秒的视觉流。网络可视流的输入是一个9x60x100大小的多维数据集,其中9是表示时间信息的帧数。每个通道都是嘴巴区域的60x100灰度图像。


训练与结果

▌训练与评估

首先克隆存储库。然后cd到专用目录:

cd code/training_evaluation

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

python train.py

在评估阶段,必须执行类似的脚本:

python test.py

▌结果

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


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


所提出的在线对选择方法的效果如上图所示。项目代码可访问Github地址或关注gzh获取。

「唇语识别技术」看不透TA的心,但可以听懂TA的话相关推荐

  1. 唇语识别技术的开源教程,听不见声音我也能知道你说什么!

    作者 | Amirsina Torfi.Seyed Mehdi Iranmanesh.Nasser M. Nasrabadi 译者 | 清爹 整理 | Jane 出品 | AI科技大本营 [导读]唇语 ...

  2. 从人脸识别到唇语识别,图像识别技术发展现状

           "唇语识别研究的起源有一个故事.2006年世界杯上,马特拉齐好像说了一句话把齐达内惹怒了,然后齐达内就用头撞了马特拉齐.事后,大家都在猜他到底说了什么." 山世光 中 ...

  3. 唇语识别真会是语言交互的终极战场?

    文 | 夏汀 来源 | 智能相对论(aixdlun) 在今年的乌镇世界互联网大会上,搜狗展出了一项黑科技--唇语识别,12月14号搜狗在北京又公开演示了这项技术.作为行业领先的唇语识别系统,搜狗在非特 ...

  4. 史上最详细唇语识别数据集综述

    更新:VIPL官网网页格式更改,导致旧的LRW1000链接无法访问,现已更新LRW1000数据集链接,内部包含申请需要的文件 推荐一个大佬的综述,关于实现唇语识别的多种途径. 说明:本文包括经常用语唇 ...

  5. 唇语识别!AI 领域的下一个万亿市场?

    英国查尔斯王子迎娶卡米拉时,读唇者成功破解了伊丽莎白二世与儿子的低语,让女王糟糕的婆媳关系浮现在大众眼前 -- 这可能是"唇语识别"第一次大面积走进大众的视野. 什么是唇语识别 所 ...

  6. AI如何练就读唇术?唇语识别数据功不可没

    所谓的"唇语识别",其实并不神秘. 早在古代,就有专门的唇语师存在.通过长期的训练,他们具备了"观察别人的嘴型,解读其表达语句"的能力.随着科技的发展,人工智能 ...

  7. 平安科技亮相重庆,「AI人脸识别+健康医疗」首秀;GE 推智能医疗影像系统UV6.0,已在3000家机构投入使用...

    平安科技亮相重庆,「AI人脸识别+健康医疗」首秀 雷锋网(公众号:雷锋网)消息,9月1日,平安科技亮相重庆,参加由中华医学会.中华医学会健康管理学分会主办的第十一届中国健康服务业大会,其「AI人脸识别 ...

  8. 今日新出 CV 论文汇总(含医学图像、目标检测、唇语识别、SLAM等)

    点击我爱计算机视觉标星,更快获取CVML新技术 最近,52CV分享了多篇CVPR 2019 的论文,有位群友问难道除了CVPR 就没有值得读的论文了吗?当然不是,其实很多优秀的工作并不一定出自CVPR ...

  9. 时间卷积网络(TCN)在唇语识别中的应用

    目录 前言 一.TCN的发展与应用 二.TCN详解 三.MS-TCN用于唇语识别 四.DC-TCN用于唇语识别 总结 前言 唇语识别是深度学习领域极具挑战性的课题,主要表现在两方面:一是技术的复杂性, ...

最新文章

  1. linux lnmp yum,yum安装LNMP
  2. python下载地址-python下载网址
  3. 双系统环境下解决wine的字体为方块的问题
  4. Java——Arrays类操作数组的工具类
  5. java学习(134):泛型通配符的使用
  6. JavaScript-严格检查模式
  7. pyCharm最新2017激活
  8. python画矩阵图_Python根据已知邻接矩阵绘制无向图操作示例
  9. 利用PowerDesigner15在win7系统下对MySQL 进行反向project(二)
  10. Swift闭包概念与常见使用场景总结
  11. 归并排序java(内附超详解图文讲解)
  12. flutter 一键生成安卓和ios应用图标
  13. 电商、数字化下的中国书店
  14. 行人与车辆检测计数人脸识别
  15. html实现点击出现小爱心
  16. mybatis在工作中的使用简介
  17. 计算机编程学英语词汇,计算机编程 常用术语英语词汇大全
  18. 【项目】数仓项目(八)
  19. excel取消保护(忘记密码)
  20. Thinkphp+vue开源商城系统

热门文章

  1. 441_MPLAB X中导入MPLAB工程
  2. Android基础篇(四)
  3. 车载监控需求日益上升, 浅析车载远程视频监控解决方案
  4. carla学习笔记(六)
  5. 学术海报Poster-- 模板分享
  6. 软件工程大作业(完整详细)火车订票管理系统
  7. KL散度和交叉熵的对比介绍
  8. 光耦隔离前后电阻阻值选择注意事项
  9. 代谢组学检测公司怎么挑选,需要考虑哪些方面?-百趣生物
  10. 个人笔记:数据库——数据库如何进行备份?