update 2022-10-22: 更新了LRW1000的官网链接详见史上最详细唇语识别数据集综述

本文将介绍唇语识别领域使用最多的几个数据集。

一、本文将详细的介绍数据集的格式以及处理方法,欢迎在评论区或私信讨论,博主将持续更新。
二、将全部分区文件下载后拼接解压即可得到完整数据集。

文章目录

  • 0 分区文件拼接方法
  • 1 LRW
    • 1.1 LRW 下载
    • 1.2 数据集格式
    • 1.3 数据集处理
  • 2 LRW-1000
    • 2.1 数据集格式
  • 3 LRS2
    • 3.1 LRS2下载
    • 3.2 数据集格式
  • 4 LRS3-TED
    • 4.1 LRS3-TED下载
    • 4.2 数据集格式
  • 5 OuluVS2
    • 5.1 数据集格式
    • 5.2 数据集处理

0 分区文件拼接方法

针对数据集中的分区文件,LRW-1000,LRS2,LRS3等均可参考LRW数据集的解压方法。首先用cat命令拼接文件,之后用tar命令解压文件,即可得到完整数据集。linux直接使用即可,windows安装git bash再进行解压,可参考windows下Git BASH安装。进入分区文件所在的目录,使用此命令进行拼接(注意将名改为对应的数据集名)。
下图为官网关于LRW数据集解压方法的示例。

cat 数据集名前n-1个字母(最后一个用于排序) > 数据集名.tar
tar -xvf 数据集名

1 LRW

1.1 LRW 下载

MD5码

1.2 数据集格式

如图所示,格式为标准的分类任务数据集。
LRW/

LRW/EXAMPLE/

LRW/EXAMPLE/test/
LRW/EXAMPLE/test/EXAMPLE_00001.txt

1.3 数据集处理

LRW数据集经过人脸定位和预裁切,嘴唇区域位于视频正中心,一般会再次中心裁切出一个96×96的区域,转换为灰度图,npz存储或pkl存储均可。LRW提供每一个样本的属性,记录在对应的txt文件中,有用的是最后一行duration属性,可依据此推断出word boundary,可参考以下代码:

def load_duration(self, file):with open(file, 'r') as f:lines = f.readlines()for line in lines:if line.find('Duration') != -1:duration = float(line.split(' ')[1])tensor = np.zeros(29)mid = 29 / 2start = int(mid - duration / 2 * 25)end = int(mid + duration / 2 * 25)tensor[start:end] = 1.0return tensor

2 LRW-1000

2.1 数据集格式

LRW-1000/
LRW-1000/audio/

LRW-1000/image/

LRW-1000/image/0003529debd6745763c7b6dbfff9b4d3/

LRW-1000/Data_Annotation.txt

LRW-1000/info/

LRW-1000/info/length/

LRW-1000/info/length/tst_1000_length_easy.txt

LRW-1000/info/resolution/

LRW-1000/info/resolution/tst_1000_resolution_easy.txt

LRW-1000/info/yaw/

LRW-1000/info/yaw/tst_1000_yaw_easy.txt

LRW-1000/info/all_audio_video.txt

LRW-1000/info/tst_1000.txt

3 LRS2

3.1 LRS2下载

MD5码(Filelist的值不同,因为是复制粘贴保存的)

3.2 数据集格式

LRS2/

LRS2/main/

LRS2/main/5535415699068794046/

LRS2/main/5535415699068794046/00001

LRS2/pretrain/

LRS2/pretrain/5535415699068794046/

LRS2/pretrain/5535415699068794046/00001

4 LRS3-TED

4.1 LRS3-TED下载

MD5码

4.2 数据集格式

参考LRS2数据集,train不提供单词的起止时间

5 OuluVS2

5.1 数据集格式

按speaker分成52个压缩包
OuluVS2/

包含这个说话者的所有样本,s表示speaker,v表示view,u表示utter
OuluVS2/orig_orgs01/

5.2 数据集处理

OuluVS2数据集转换为LRW分类格式的python代码,将所有压缩包解压到source_root中,如图:

使用此代码进行文件提取及重组,得到与LRW数据集格式相同的OuluVS2数据集。

import glob
from shutil import copyfile
import ossource_root = r"E:\DL\dataset\lipreading\OuluVS2\raw_unzip"
target_root = r"E:\DL\dataset\lipreading\OuluVS2\raw_LRW_format"all_test = [6, 8, 9, 15, 26, 30, 34, 43, 44, 49, 51, 52]files = glob.glob(source_root + "\\*\\*\\*")
files = [i for i in files if "v1" in i]print(len(files))k = []
for j in files:for i in range(31, 61):if "u" + str(i) in j:k.append(j)train_list = []
test_list = []for i in k:flag = Falsefor j in all_test:if "s" + str(j) in i:test_list.append(i)flag = Trueif not flag:train_list.append(i)
print(len(train_list), len(test_list))for i in train_list:file_name = i.split("\\")[-1].split(".")[0].split("_")class_number = (int(file_name[-1][1:]) - 31) // 3# print(class_number)save_name = target_root + "\\" + str(class_number) + "\\train\\" + i.split("\\")[-1]# print(save_name)if not os.path.exists("\\".join(save_name.split("\\")[:-1])):os.makedirs("\\".join(save_name.split("\\")[:-1]))copyfile(i, save_name)print(i)for i in test_list:file_name = i.split("\\")[-1].split(".")[0].split("_")class_number = (int(file_name[-1][1:]) - 31) // 3# print(class_number)save_name = target_root + "\\" + str(class_number) + "\\test\\" + i.split("\\")[-1]# print(save_name)if not os.path.exists("\\".join(save_name.split("\\")[:-1])):os.makedirs("\\".join(save_name.split("\\")[:-1]))copyfile(i, save_name)print(i)
for i in test_list:file_name = i.split("\\")[-1].split(".")[0].split("_")class_number = (int(file_name[-1][1:]) - 31) // 3# print(class_number)save_name = target_root + "\\" + str(class_number) + "\\val\\" + i.split("\\")[-1]# print(save_name)if not os.path.exists("\\".join(save_name.split("\\")[:-1])):os.makedirs("\\".join(save_name.split("\\")[:-1]))copyfile(i, save_name)print(i)

史上最详细LRW数据集、LRW-1000数据集、LRS2数据集、LRS3-TED数据集、OuluVS2数据集介绍相关推荐

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

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

  2. 史上最详细唇语识别最新研究进展记录

    本文是唇语识别近2年来最新的方法的记录,主要集中在中英文词级数据集如LRW,LRW-1000,英文句子级数据集如LRS2,英文短语级数据集如OuluVS2,以及其他一些数据集. 记录方法为1.简要翻译 ...

  3. 史上最详细Lipreading using Temporal Convolutional Networks(MS-TCN)代码层面详解

    本文将从代码层面详细介绍在LRW数据集实现SOTA效果的唇语识别模型MS-TCN.GitHub代码请看Lipreading using Temporal Convolutional Networks, ...

  4. 史上最详细 Lipreading using Temporal Convolutional Networks 环境配置

    唇语识别是目前人工智能领域比较热门的应用之一,本文将在之后的内容中介绍2020年英文词汇级唇语识别在LRW(Lir Reading in the Wild)数据集以及LRW-1000两个数据集上实现S ...

  5. 史上最详细的Pytorch版yolov3代码中文注释详解(四)

    史上最详细的Pytorch版yolov3代码中文注释详解(一):https://blog.csdn.net/qq_34199326/article/details/84072505 史上最详细的Pyt ...

  6. 史上最详细全中文 Cisco 3560交换机使用手册

    史上最详细全中文 Cisco 3560交换机使用手册 (末尾送交换机安全技术) 目 录 CISCO Catalyst 3560-E系列交换机的功能应用及安全解决方案 3 一.Cisco? Cataly ...

  7. Flink:史上最详细的介绍(一)[简介]

    1.Flink简介 Flink:史上最详细的介绍(二)[架构体系] Flink:详细的不能再详细的安装步骤(三)[安装步骤] Flink:详细讲解FlinkFlink 运行架构(四)[运行架构] Fl ...

  8. RISC-V AI芯片Celerity史上最详细解读(上)(附开源地址)

    RISC-V AI芯片Celerity史上最详细解读(上)(附开源地址) (本文包括Celerity中二值化神经网络的介绍) 作者 陈巍,资深芯片专家,人工智能算法-硬件协同设计专家. 在Hot Ch ...

  9. 史上最详细的微生物扩增子数据库整理

    声明:文件所有链接内容来自"生信控"公众号,已经获作者向屿授权. 本人对每个数据库的使用目的和经验配导读,需要使用的小伙伴读点击链接跳转原文学习. "生信控"相 ...

最新文章

  1. Matlab学习笔记——find()函数
  2. 提高工作效率:15个有用的项目管理工具
  3. 声明:songzijian这个域名已经被抢注。大家别上了。不是我了。
  4. ChromeDriver启动Chrome浏览器后,地址栏只显示data;——chromeDriver版本不对
  5. Linux下的inode记录
  6. 阿里云服务器下安装LAMP环境(CentOS Linux 6.3) 安装与配置 Apache 服务
  7. 近距离无线通信技术对比
  8. 前端学习(2457):文章发布
  9. 樊登高效休息法心得400字_从3个方面入手,让运营工作更高效!
  10. C++ 进阶——object slicing 与虚函数与dynamic_cast
  11. 溢出植入型木马(后门)的原型实现 作者:FLASHSKY(原创)
  12. Delta对冲:模拟实验
  13. 计算机软考中级网络工程师考点总结——待续
  14. Amazing!在线浏览 Stata Journal 单篇论文 (2001-2019)
  15. 微信小程序云开发之云函数与本地数据库获取数据
  16. LeetCode刷题复盘笔记—一文搞懂509. 斐波那契数70. 爬楼梯以及递归时间复杂度计算方法(动态规划系列第一篇)
  17. 25 - 线程池和指令系统
  18. 5G/NR中RRC的三种状态(idle, active, inactive)
  19. 测试容器网络带宽,限制容器对内存,对CPU的使用
  20. 页面自动更新(javascript)

热门文章

  1. 带你揭秘学习编程的7大优势!还有可以提升文化课的成绩?
  2. 将dae格式文件导入RViz中创建环境
  3. B站 全套java面试(200道)问题MD(题目+答案)
  4. pyspark 数据类型转换_PySpark之DataFrame的创建与转换
  5. 以全能之力造非凡旗舰:荣耀Magic3系列新品发布
  6. Android融云会话及会话列表的实现
  7. 单元测试——使用Mock
  8. 分布式架构之网络通信
  9. 【AltiumDesigner专栏】01.06——ECAD-MCAD(二)
  10. MCAD,MCSD资料