← 开源
rizkiarm

LipNet

Keras implementation of 'LipNet: End-to-End Sentence-level Lipreading'

Model DevelopmentArchitecturePython
在 GitHub 打开
增长势头
+024 小时新增 Star0.0%
691
Star
244
Fork
+0
本周
2
贡献者
创建于 2017-04-20 · 更新于 2026-09-02 · 今日第 14951 名
主要开发者
rizkiarmmichiyosony

rizkiarm/LipNet 排名第 14,951,有 691 个星标。

同类别比较

rizkiarm/LipNet 排名第 14,951,此处有 8 个同类条目;philipperemy/FX-1-Minute-Data 排名第 14,950。

同类别比较
名称排名指标
PaulDanielML/MuJoCo_RL_UR514,942
语言:
Python
星标数:
691
分叉数:
70
简介:
A MuJoCo/Gym environment for robot control using Reinforcement Learning. The task of agents in this environment is pixel-wise prediction of grasp success chances.
google-research/pix2struct14,946
语言:
Python
星标数:
691
分叉数:
62
juho-lee/set_transformer14,947
语言:
Jupyter Notebook
星标数:
691
分叉数:
118
简介:
Pytorch implementation of set transformer
philipperemy/FX-1-Minute-Data14,950
语言:
Python
星标数:
691
分叉数:
172
简介:
HISTDATA - Dataset composed of all FX trading pairs / Crude Oil / Stock Indexes. Simple API to retrieve 1 Minute data (and tick data) Historical FX Prices (up to date).
vanderschaarlab/synthcity14,953
语言:
Python
星标数:
691
分叉数:
99
简介:
A library for generating and evaluating synthetic tabular data for privacy, fairness and data augmentation.
x4nth055/emotion-recognition-using-speech14,954
语言:
Python
星标数:
691
分叉数:
252
简介:
Building and training Speech Emotion Recognizer that predicts human emotions using Python, Sci-kit learn and Keras
ShichenLiu/CondenseNet14,957
语言:
Python
星标数:
690
分叉数:
128
简介:
CondenseNet: Light weighted CNN for mobile devices
maxpumperla/betago14,959
语言:
Python
星标数:
690
分叉数:
164
简介:
BetaGo: AlphaGo for the masses, live on GitHub.
关键参数与规格
关键参数与规格
参数值
语言Python
类别Model Development
子类别Architecture
关键词Computer vision, Speech-to-text
星标数691
分叉数244
贡献者2
创建日期2017-04-20
更新日期2026-09-02
1 天星标数0
7 天星标数0
排名14,951
上次排名14,780
排名变化-171
7 天星标排名14,734
上次 7 天星标排名14,744
7 天星标排名变化10
总星标排名15,035
上次总星标排名15,011
总星标排名变化-24
国家Singapore
README 摘录

LipNet: End-to-End Sentence-level Lipreading Keras implementation of the method described in the paper 'LipNet: End-to-End Sentence-level Lipreading' by Yannis M. 93% | **Notes**: [C] means using curriculum learning. Your contribution in sharing the results of this model is highly appreciated :) Dependencies Keras 2. 0+ PIP (for package installation) Plus several other libraries listed on Usage To use the model, first you need to clone the repository: Then you can install the package: **Note:** if you

don't want to use CUDA, you need to edit the setup. py and change tensorflow-gpu to tensorflow You're done! Here is some ideas on what you can do next: Modify the package and make some improvements to it. Train the model using predefined training scenarios. Use pre-trained weights to do lipreading. Go crazy and experiment on other dataset! by changing some hyperparameters or modify the model. Dataset This model uses GRID corpus ( Pre-trained weights For those of

you who are having difficulties in training the model (or just want to see the end results), you can download and use the weights provided here: More detail on saving and loading weights can be found in Keras FAQ. Training There are five different training scenarios that are (going to be) available: Prerequisites 1. Download all video (normal) and align from the GRID Corpus website. Create datasets folder on each training scenario folder. Create align folder inside the datasets folder

. py expect the videos to be in the form of 100x50px mouthcrop image frames. You can change this by adding vtype = "face" and face_predictor_path (which can be found in evaluation/models ) in the instantiation of Generator inside the train. The other way would be to extract the mouthcrop image using scripts/extract_mouth_batch. py (usage can be found inside the script). Create symlink from each training/*/datasets/align to your align folder. You can change the training

parameters by modifying train. Random split (Unmaintained) Create symlink from training/random_split/datasets/video to your video dataset folder (which contains s* directory). Train the model using the following command: **Note:** You can change the validation split value by modifying the val_split argument inside the train. Unseen speakers Create the following folder: training/unseen_speakers/datasets/train training/unseen_speakers/datasets/val Then, create symlink from training/unseen_speakers/datasets/[train|val]/s* to your selection of s

* inside of the video dataset folder. The paper used s1 , s2 , s20 , and s22 for evaluation and the remainder for training. Train the model using the following command: Unseen speakers with curriculum learning The same way you do unseen speakers. **Note:** You can change the curriculum by modifying the curriculum_rules method inside the train. py Overlapped Speakers Run the preparation script: **Notes:** [Path to video dataset] should be a folder with structure: /s{i}/[video] [Path to align dataset

] should be a folder with structure: /[align]. align [Number of samples] should be less than or equal to min(len

常见问题

记录了多少星标和分叉?

rizkiarm/LipNet 有 691 个星标和 244 个分叉。

仓库排名是多少?

rizkiarm/LipNet 排名第 14,951。

记录的语言和类别是什么?

rizkiarm/LipNet 有 691 个星标,语言为 Python,类别为 Model Development。

哪个仓库排名最接近?

rizkiarm/LipNet 与 philipperemy/FX-1-Minute-Data 比较,后者排名第 14,950,有 691 个星标。

README

LipNet: End-to-End Sentence-level Lipreading

Keras implementation of the method described in the paper 'LipNet: End-to-End Sentence-level Lipreading' by Yannis M. Assael, Brendan Shillingford, Shimon Whiteson, and Nando de Freitas (https://arxiv.org/abs/1611.01599).

Results

Scenario Epoch CER WER BLEU
Unseen speakers [C] N/A N/A N/A N/A
Unseen speakers 178 6.19% 14.19% 88.21%
Overlapped speakers [C] N/A N/A N/A N/A
Overlapped speakers 368 1.56% 3.38% 96.93%

Notes:

  • [C] means using curriculum learning.
  • N/A means either the training is in progress or haven't been performed.
  • Your contribution in sharing the results of this model is highly appreciated :)

Dependencies

  • Keras 2.0+
  • Tensorflow 1.0+
  • PIP (for package installation)

Plus several other libraries listed on setup.py

Usage

To use the model, first you need to clone the repository:

git clone https://github.com/rizkiarm/LipNet

Then you can install the package:

cd LipNet/
pip install -e .

Note: if you don't want to use CUDA, you need to edit the setup.py and change tensorflow-gpu to tensorflow

You're done!

Here is some ideas on what you can do next:

  • Modify the package and make some improvements to it.
  • Train the model using predefined training scenarios.
  • Make your own training scenarios.
  • Use pre-trained weights to do lipreading.
  • Go crazy and experiment on other dataset! by changing some hyperparameters or modify the model.

Dataset

This model uses GRID corpus (http://spandh.dcs.shef.ac.uk/gridcorpus/)

Pre-trained weights

For those of you who are having difficulties in training the model (or just want to see the end results), you can download and use the weights provided here: https://github.com/rizkiarm/LipNet/tree/master/evaluation/models.

More detail on saving and loading weights can be found in Keras FAQ.

Training

There are five different training scenarios that are (going to be) available:

Prerequisites

  1. Download all video (normal) and align from the GRID Corpus website.
  2. Extracts all the videos and aligns.
  3. Create datasets folder on each training scenario folder.
  4. Create align folder inside the datasets folder.
  5. All current train.py expect the videos to be in the form of 100x50px mouthcrop image frames. You can change this by adding vtype = "face" and face_predictor_path (which can be found in evaluation/models) in the instantiation of Generator inside the train.py
  6. The other way would be to extract the mouthcrop image using scripts/extract_mouth_batch.py (usage can be found inside the script).
  7. Create symlink from each training/*/datasets/align to your align folder.
  8. You can change the training parameters by modifying train.py inside its respective scenarios.

Random split (Unmaintained)

Create symlink from training/random_split/datasets/video to your video dataset folder (which contains s* directory).

Train the model using the following command:

./train random_split [GPUs (optional)]

Note: You can change the validation split value by modifying the val_split argument inside the train.py.

Unseen speakers

Create the following folder:

  • training/unseen_speakers/datasets/train
  • training/unseen_speakers/datasets/val

Then, create symlink from training/unseen_speakers/datasets/[train|val]/s* to your selection of s* inside of the video dataset folder.

The paper used s1, s2, s20, and s22 for evaluation and the remainder for training.

Train the model using the following command:

./train unseen_speakers [GPUs (optional)]

Unseen speakers with curriculum learning

The same way you do unseen speakers.

Note: You can change the curriculum by modifying the curriculum_rules method inside the train.py

./train unseen_speakers_curriculum [GPUs (optional)]

Overlapped Speakers

Run the preparation script:

python prepare.py [Path to video dataset] [Path to align dataset] [Number of samples]

Notes:

  • [Path to video dataset] should be a folder with structure: /s{i}/[video]
  • [Path to align dataset] should be a folder with structure: /[align].align
  • [Number of samples] should be less than or equal to min(len(ls '/s{i}/*'))

Then run training for each speaker:

python training/overlapped_speakers/train.py s{i}

Overlapped Speakers with curriculum learning

Copy the prepare.py from overlapped_speakers folder to overlapped_speakers_curriculum folder, and run it as previously described in overlapped speakers training explanation.

Then run training for each speaker:

python training/overlapped_speakers_curriculum/train.py s{i}

Note: As always, you can change the curriculum by modifying the curriculum_rules method inside the train.py

Evaluation

To evaluate and visualize the trained model on a single video / image frames, you can execute the following command:

./predict [path to weight] [path to video]

Example:

./predict evaluation/models/overlapped-weights368.h5 evaluation/samples/id2_vcd_swwp2s.mpg

Work in Progress

This is a work in progress. Errors are to be expected. If you found some errors in terms of implementation please report them by submitting issue(s) or making PR(s). Thanks!

Some todos:

  • [X] Use Stanford-CTC Tensorflow CTC beam search
  • [X] Auto spelling correction
  • [X] Overlapped speakers (and its curriculum) training
  • [ ] Integrate language model for beam search
  • [ ] RGB normalization over the dataset.
  • [X] Validate CTC implementation in training.
  • [ ] Proper documentation
  • [ ] Unit tests
  • [X] (Maybe) better curriculum learning.
  • [ ] (Maybe) some proper scripts to do dataset stuff.

License

MIT License

排名相邻
同类项目