All Projects → 1996scarlet → Openvtuber

1996scarlet / Openvtuber

Licence: gpl-3.0
虚拟爱抖露(アイドル)共享计划, 是基于单目RGB摄像头的人眼与人脸特征点检测算法, 在实时3D面部捕捉以及模型驱动领域的应用.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Openvtuber

Deep Face Recognition
One-shot Learning and deep face recognition notebooks and workshop materials
Stars: ✭ 147 (-59.73%)
Mutual labels:  face-detection, face-alignment
Img2pose
The official PyTorch implementation of img2pose: Face Alignment and Detection via 6DoF, Face Pose Estimation - CVPR 2021
Stars: ✭ 247 (-32.33%)
Mutual labels:  face-detection, face-alignment
Face Dataset
Face related datasets
Stars: ✭ 204 (-44.11%)
Mutual labels:  face-detection, face-alignment
Insightface
State-of-the-art 2D and 3D Face Analysis Project
Stars: ✭ 10,886 (+2882.47%)
Mutual labels:  face-detection, face-alignment
DeepVTB
🌌 OpenVTuber-虚拟アイドル共享计划 An application of real-time face and gaze analyzation via deep nerual networks.
Stars: ✭ 32 (-91.23%)
Mutual labels:  face-detection, face-alignment
Pyseeta
python api for SeetaFaceEngine(https://github.com/seetaface/SeetaFaceEngine.git)
Stars: ✭ 93 (-74.52%)
Mutual labels:  face-detection, face-alignment
Facepapercollection
A collection of face related papers
Stars: ✭ 241 (-33.97%)
Mutual labels:  face-detection, face-alignment
Face.evolve.pytorch
🔥🔥High-Performance Face Recognition Library on PaddlePaddle & PyTorch🔥🔥
Stars: ✭ 2,719 (+644.93%)
Mutual labels:  face-detection, face-alignment
Face-alignment-Trees
This is the C++ implement of the paper: Face Detection, Pose Estimation, and Landmark Localization in the Wild
Stars: ✭ 17 (-95.34%)
Mutual labels:  face-detection, face-alignment
Face
I have published my face related codes in this repository
Stars: ✭ 53 (-85.48%)
Mutual labels:  face-detection, face-alignment
Retinadetector
基于RetinaFace的目标检测方法,适用于人脸、缺陷、小目标、行人等
Stars: ✭ 73 (-80%)
Mutual labels:  face-detection, face-alignment
retinaface
RetinaFace: Deep Face Detection Library for Python
Stars: ✭ 242 (-33.7%)
Mutual labels:  face-detection, face-alignment
Facekit
Implementations of PCN (an accurate real-time rotation-invariant face detector) and other face-related algorithms
Stars: ✭ 1,028 (+181.64%)
Mutual labels:  face-detection, face-alignment
Tenginekit
TengineKit - Free, Fast, Easy, Real-Time Face Detection & Face Landmarks & Face Attributes & Hand Detection & Hand Landmarks & Body Detection & Body Landmarks & Iris Landmarks & Yolov5 SDK On Mobile.
Stars: ✭ 2,103 (+476.16%)
Mutual labels:  face-detection, face-alignment
Face Alignment
🔥 2D and 3D Face alignment library build using pytorch
Stars: ✭ 5,417 (+1384.11%)
Mutual labels:  face-alignment, face-detection
Awesome Face recognition
papers about Face Detection; Face Alignment; Face Recognition && Face Identification && Face Verification && Face Representation; Face Reconstruction; Face Tracking; Face Super-Resolution && Face Deblurring; Face Generation && Face Synthesis; Face Transfer; Face Anti-Spoofing; Face Retrieval;
Stars: ✭ 3,220 (+782.19%)
Mutual labels:  face-detection, face-alignment
enhanced-ssh-mxnet
The MXNet Implementation of Enhanced SSH (ESSH) for Face Detection and Alignment
Stars: ✭ 54 (-85.21%)
Mutual labels:  face-detection, face-alignment
iqiyi-vid-challenge
Code for IQIYI-VID(IQIYI Video Person Identification) Challenge Implemented in Python and MXNet
Stars: ✭ 45 (-87.67%)
Mutual labels:  face-detection, face-alignment
Workattendancesystem
一个基于opencv、dilb的员工人脸识别考勤系统
Stars: ✭ 299 (-18.08%)
Mutual labels:  face-detection
Face recognition
🍎 My own face recognition with deep neural networks.
Stars: ✭ 328 (-10.14%)
Mutual labels:  face-detection

OpenVtuber-虚拟アイドル共享计划

Language grade: Python License ECCV

OpenVtuber: An application of real-time face and gaze analyzation via deep nerual networks.

  • Lightweight network architecture for low computing capability devices.
  • 3D gaze estimation based on the whole face semantic informations.
  • The total framework is an upgradation of the [ECCV 2018] version.
  • Drive MMD models through a single RGB camera.

Setup

Requirements

  • Python 3.6+
  • pip3 install -r requirements.txt
  • node.js and npm or yarn
  • cd NodeServer && yarn # install node modules

Socket-IO Server

  • cd NodeServer
  • yarn start
  • Open http://127.0.0.1:6789/kizuna.html

Python Client

  • python3 vtuber_link_start.py <your-video-path>

Face Detection

RetinaFace: Single-stage Dense Face Localisation in the Wild of CVPR 2020, is a practical single-stage SOTA face detector. It is highly recommended to read the official repo RetinaFace (mxnet version).

However, since the detection target of the face capture system is in the middle-close range, there is no need for complex pyramid scaling. We designed and published Faster RetinaFace to trade off between speed and accuracy, which can reach 500~1000 fps on normal laptops.

Plan Inference Postprocess Throughput Capacity (FPS)
9750HQ+1660TI 0.9ms 1.5ms 500~1000
Jetson-Nano 4.6ms 11.4ms 80~200

Face Alignment

In this project, we apply the facial landmarks for calculating head pose and slicing the eye regions for gaze estimation. Moreover, the mouth and eys status can be inferenced via these key points.

Emotion

The 2D pre-trained 106 landmarks model is provided by insightface repository, based on the coordinate regression face alignment algorithm. We refine this model into TFLite version with lower weights (4.7 MB), which can be found at here. For checking the effectiveness of landmark detection, run the following command at PythonClient sub directory:

python3 service/TFLiteFaceAlignment.py <your-video-path>

Head Pose Estimation

The Perspective-n-Point (PnP) is the problem of determining the 3D position and orientation (pose) of a camera from observations of known point features. The PnP is typically formulated and solved linearly by employing lifting, or algebraically or directly.

Briefily, for head pose estimation, a set of pre-defined 3D facial landmarks and the corresponding 2D image projections need to be given. In this project, we employed the eyebrow, eye, nose, mouth and jaw landmarks in the AIFI Anthropometric Model as origin 3D feature points. The pre-defined vectors and mapping proctol can be found at here.

We adopt cv2.SolvePnP API for calculating the rotation vector and transform vector. Run the following command at PythonClient sub directory for real-time head pose estimation:

python3 service/SolvePnPHeadPoseEstimation.py <your-video-path>

Iris Localization

Estimating human gaze from a single RGB face image is a challenging task. Theoretically speaking, the gaze direction can be defined by pupil and eyeball center, however, the latter is unobservable in 2D images. Previous work of Swook, et al. presents a method to extract the semantic information of iris and eyeball into the intermediate representation, which so called gazemaps, and then decode the gazemaps into euler angle through regression network.

Inspired by this, we propose a 3D semantic information based gaze estimation method. Instead of employing gazemaps as the intermediate representation, we estimate the center of the eyeball directly from the average geometric information of human gaze.

rKWPK0.jpg

Our eye region landmark detection and iris localization models are more robust than the original implementation, which leads to the higher accuracy in more complex situations. The demo of iris localization can be run as follows:

python3 service/TFLiteIrisLocalization.py <your-video-path>

More details about 3D gaze estimation can be found at the Laser Eye repository.

Special Thanks

  • threejs.org: Applying Three.js WebGL Loader to render MMD models on web pages.
  • kizunaai.com: モデルは無料でご利用いただけます.

Citation

@InProceedings{Park_2018_ECCV,
      author = {Park, Seonwook and Spurr, Adrian and Hilliges, Otmar},
      title = {Deep Pictorial Gaze Estimation},
      booktitle = {Proceedings of the European Conference on Computer Vision (ECCV)},
      month = {September},
      year = {2018}
}

@inproceedings{Liu_2018_ECCV,
      author = {Liu, Songtao and Huang, Di and Wang, Yunhong},
      title = {Receptive Field Block Net for Accurate and Fast Object Detection},
      booktitle = {Proceedings of the European Conference on Computer Vision (ECCV)},
      month = {September},
      year = {2018}
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].