唇语识别是目前人工智能领域比较热门的应用之一,本文将在之后的内容中介绍2020年英文词汇级唇语识别在LRW(Lir Reading in the Wild)数据集以及LRW-1000两个数据集上实现SOTA的项目github,可以在唇语识别数据集综述中找到这两个数据集的官网,以及其他常用数据集的地址,下面是论文地址Lipreading using Temporal Convolutional Networks
这是目前常用的几个大型数据集的介绍史上最详细LRW、LRW-1000和OuluVS2数据集介绍,其中包含数据集的下载链接
0.介绍
该项目中实现唇语识别的过程主要步骤
-
将人脸标记出来
-
对齐每一帧以参考平均脸型
-
从已对齐的人脸图像中裁剪出固定的96×96像素宽ROIs,使嘴部区域始终粗略地以图像裁剪为中心
-
将裁剪的图像转换为灰度图
该项目并未给出训练模型的代码,只有测试与训练模型的代码,所以本人近期将尝试复现该项目的训练代码。
代码分析的博客在本人主页,欢迎感兴趣的童鞋持续关注
下面开始正式的测试代码的环境配置
1.下载项目源代码
将项目的源代码下载到本地
2.环境配置
1.pytorch
参考史上最详细yolov5环境配置搭建+配置所需文件中的第234步进行pytorch-GPU的基本配置
其中需要的文件如cuda,cudnn等均有提供,需要的可以自行下载
2.其他库
通过anaconda进入虚拟环境中,将下面的代码复制进去,即可完成其他库的安装
pip install numpy
pip install scipy
pip install opencv-python
pip install matplotlib
pip install tqdm
pip install scikit-image
3.模型下载
官网提供了预训练的模型
模型下载完不用解压,程序会自动解压导入
4.数据集准备
本文是在LRW数据集上进行测试的,使用者需要先申请LRW数据集,将数据集下载下来按官网的步骤,链接,解压即可。
在运行测试之前还需要预处理数据
将官网提供的landmark文件下载下来,并解压到landmarks文件夹中。进入到crop_mouth_from_video.py中,将–video-direc设置为lrw数据集的路径,–landmark-direc设置为landmas的路径,–save-direc设置为输出结果的路径,–convert-gray设置为True(转化为灰度图),–testset-only设置为True(只转化测试集),
运行代码可能会有list out of index的错误,解决方法:1.linux环境or2.使用在windows调通的代码,提取码:1111
5.进行测试
进入main.py,修改测试参数,–data-dir设置为预处理代码的输出路径,–model-path设置为下载模型的位置,–config-path设置为与模型对应的json文件路径。完成基本设置即可运行测试代码,在一台i7+1050Ti笔记本中运行20分钟即可完成模型测试,ps(共有500*50=25000个样本,使用的是轻量模型中准确率做高的snv1x_dsmstcn3x模型,准确率为85.312%)
另一个模型为改项目准确度最高但较大的模型–resnet18_mstcn_adamw_s3,准确率为87.94%