史上最详细LRW数据集、LRW-1000数据集、LRS2数据集、LRS3-TED数据集、OuluVS2数据集介绍
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数据集介绍相关推荐
- 史上最详细唇语识别数据集综述
更新:VIPL官网网页格式更改,导致旧的LRW1000链接无法访问,现已更新LRW1000数据集链接,内部包含申请需要的文件 推荐一个大佬的综述,关于实现唇语识别的多种途径. 说明:本文包括经常用语唇 ...
- 史上最详细唇语识别最新研究进展记录
本文是唇语识别近2年来最新的方法的记录,主要集中在中英文词级数据集如LRW,LRW-1000,英文句子级数据集如LRS2,英文短语级数据集如OuluVS2,以及其他一些数据集. 记录方法为1.简要翻译 ...
- 史上最详细Lipreading using Temporal Convolutional Networks(MS-TCN)代码层面详解
本文将从代码层面详细介绍在LRW数据集实现SOTA效果的唇语识别模型MS-TCN.GitHub代码请看Lipreading using Temporal Convolutional Networks, ...
- 史上最详细 Lipreading using Temporal Convolutional Networks 环境配置
唇语识别是目前人工智能领域比较热门的应用之一,本文将在之后的内容中介绍2020年英文词汇级唇语识别在LRW(Lir Reading in the Wild)数据集以及LRW-1000两个数据集上实现S ...
- 史上最详细的Pytorch版yolov3代码中文注释详解(四)
史上最详细的Pytorch版yolov3代码中文注释详解(一):https://blog.csdn.net/qq_34199326/article/details/84072505 史上最详细的Pyt ...
- 史上最详细全中文 Cisco 3560交换机使用手册
史上最详细全中文 Cisco 3560交换机使用手册 (末尾送交换机安全技术) 目 录 CISCO Catalyst 3560-E系列交换机的功能应用及安全解决方案 3 一.Cisco? Cataly ...
- Flink:史上最详细的介绍(一)[简介]
1.Flink简介 Flink:史上最详细的介绍(二)[架构体系] Flink:详细的不能再详细的安装步骤(三)[安装步骤] Flink:详细讲解FlinkFlink 运行架构(四)[运行架构] Fl ...
- RISC-V AI芯片Celerity史上最详细解读(上)(附开源地址)
RISC-V AI芯片Celerity史上最详细解读(上)(附开源地址) (本文包括Celerity中二值化神经网络的介绍) 作者 陈巍,资深芯片专家,人工智能算法-硬件协同设计专家. 在Hot Ch ...
- 史上最详细的微生物扩增子数据库整理
声明:文件所有链接内容来自"生信控"公众号,已经获作者向屿授权. 本人对每个数据库的使用目的和经验配导读,需要使用的小伙伴读点击链接跳转原文学习. "生信控"相 ...
最新文章
- Matlab学习笔记——find()函数
- 提高工作效率:15个有用的项目管理工具
- 声明:songzijian这个域名已经被抢注。大家别上了。不是我了。
- ChromeDriver启动Chrome浏览器后,地址栏只显示data;——chromeDriver版本不对
- Linux下的inode记录
- 阿里云服务器下安装LAMP环境(CentOS Linux 6.3) 安装与配置 Apache 服务
- 近距离无线通信技术对比
- 前端学习(2457):文章发布
- 樊登高效休息法心得400字_从3个方面入手,让运营工作更高效!
- C++ 进阶——object slicing 与虚函数与dynamic_cast
- 溢出植入型木马(后门)的原型实现 作者:FLASHSKY(原创)
- Delta对冲:模拟实验
- 计算机软考中级网络工程师考点总结——待续
- Amazing!在线浏览 Stata Journal 单篇论文 (2001-2019)
- 微信小程序云开发之云函数与本地数据库获取数据
- LeetCode刷题复盘笔记—一文搞懂509. 斐波那契数70. 爬楼梯以及递归时间复杂度计算方法(动态规划系列第一篇)
- 25 - 线程池和指令系统
- 5G/NR中RRC的三种状态(idle, active, inactive)
- 测试容器网络带宽,限制容器对内存,对CPU的使用
- 页面自动更新(javascript)