Anime face detection and facial landmark estimation in pure PyTorch
Project description
Anime Face Detector
This is an anime face detector with facial landmark estimation, implemented in plain PyTorch. The face detectors (Faster R-CNN and YOLOv3) and the landmark model (HRNetV2, 28 points) were originally trained with mmdetection and mmpose; since v0.1.0 this package runs them without any OpenMMLab runtime dependency.
(To avoid copyright issues, the above demo uses images generated by the
TADNE model.)
The model detects near-frontal anime faces and predicts 28 landmark points.
The result of k-means clustering of landmarks detected in real images:
The mean images of real images belonging to each cluster:
Installation
pip install anime-face-detector
Requires Python 3.12 or later. PyTorch 2.2.0 or later and torchvision are installed as dependencies; if you need a specific CUDA build, install torch/torchvision first following the official instructions.
Usage
import cv2
from anime_face_detector import create_detector
detector = create_detector('yolov3')
image = cv2.imread('assets/input.jpg')
preds = detector(image)
print(preds[0])
{'bbox': array([2.2450244e+03, 1.5940223e+03, 2.4116030e+03, 1.7458063e+03,
9.9987185e-01], dtype=float32),
'keypoints': array([[2.2593938e+03, 1.6680436e+03, 9.3236601e-01],
[2.2825300e+03, 1.7051841e+03, 8.7208068e-01],
[2.3412151e+03, 1.7281011e+03, 1.0052248e+00],
[2.3941377e+03, 1.6825046e+03, 5.9705663e-01],
[2.4039426e+03, 1.6541921e+03, 8.7139702e-01],
[2.2625220e+03, 1.6330233e+03, 9.7608268e-01],
[2.2804077e+03, 1.6408495e+03, 1.0021354e+00],
[2.2969380e+03, 1.6494972e+03, 9.7812974e-01],
[2.3357908e+03, 1.6453258e+03, 9.8418534e-01],
[2.3475276e+03, 1.6355408e+03, 9.5060223e-01],
[2.3612463e+03, 1.6262626e+03, 9.0553057e-01],
[2.2682278e+03, 1.6631940e+03, 9.5465249e-01],
[2.2814783e+03, 1.6616484e+03, 9.0782022e-01],
[2.2987590e+03, 1.6692812e+03, 9.0256405e-01],
[2.2833625e+03, 1.6879142e+03, 8.0303693e-01],
[2.2934949e+03, 1.6909009e+03, 8.9718056e-01],
[2.3021218e+03, 1.6863715e+03, 9.3882143e-01],
[2.3471826e+03, 1.6636573e+03, 9.5727938e-01],
[2.3677822e+03, 1.6540554e+03, 9.4890594e-01],
[2.3889211e+03, 1.6611255e+03, 9.5125675e-01],
[2.3575544e+03, 1.6800433e+03, 8.5919142e-01],
[2.3688926e+03, 1.6800665e+03, 8.3275074e-01],
[2.3804905e+03, 1.6761322e+03, 8.4160626e-01],
[2.3165366e+03, 1.6947096e+03, 9.1840971e-01],
[2.3282458e+03, 1.7104808e+03, 8.8045174e-01],
[2.3380054e+03, 1.7114034e+03, 8.8357794e-01],
[2.3485500e+03, 1.7080273e+03, 8.6284375e-01],
[2.3378748e+03, 1.7118135e+03, 9.7880816e-01]], dtype=float32)}
Pretrained models
The pretrained weights are hosted on the Hugging Face Hub as safetensors files (faster-rcnn, yolov3, hrnetv2) and are downloaded automatically on first use. The original mm*-era .pth files remain available in the v0.0.1 release; anime-face-detector-convert converts such checkpoints (including self-trained ones) to safetensors.
Demo (using Gradio)
Run locally
pip install gradio
git clone https://github.com/hysts/anime-face-detector
cd anime-face-detector
python demo_gradio.py
License
The code in this repository is released under the MIT License (see LICENSE). The code under anime_face_detector/_vendor/ is derived from mmpose v0.29.0, mmdetection v2.28.2 and mmcv v1.7.0, which are licensed under the Apache License 2.0; see THIRD_PARTY_LICENSES.md for details.
Citation
If you find this repo useful for your research, please consider citing it:
@misc{anime-face-detector,
author = {hysts},
title = {Anime Face Detector},
year = {2021},
howpublished = {\url{https://github.com/hysts/anime-face-detector}}
}
Links
General
Anime face detection
- https://github.com/zymk9/yolov5_anime
- https://github.com/qhgz2013/anime-face-detector
- https://github.com/cheese-roll/light-anime-face-detector
- https://github.com/nagadomi/lbpcascade_animeface
Anime face landmark detection
Others
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file anime_face_detector-0.1.0.tar.gz.
File metadata
- Download URL: anime_face_detector-0.1.0.tar.gz
- Upload date:
- Size: 46.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
adbba0e832c6609f0824b1eba8a560e255ebf0bc0b58482530beb456db406591
|
|
| MD5 |
c364c3e1edd8d7c0eb2d07c1072e0990
|
|
| BLAKE2b-256 |
2901269bfc5d74b9617187969c8005cf85b547d5f2cba1ffee7e122f30c091c8
|
Provenance
The following attestation bundles were made for anime_face_detector-0.1.0.tar.gz:
Publisher:
publish.yml on hysts/anime-face-detector
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
anime_face_detector-0.1.0.tar.gz -
Subject digest:
adbba0e832c6609f0824b1eba8a560e255ebf0bc0b58482530beb456db406591 - Sigstore transparency entry: 2081356443
- Sigstore integration time:
-
Permalink:
hysts/anime-face-detector@7db835de7a3a052eb4d68d241ae9f2cf28a0b509 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/hysts
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@7db835de7a3a052eb4d68d241ae9f2cf28a0b509 -
Trigger Event:
push
-
Statement type:
File details
Details for the file anime_face_detector-0.1.0-py3-none-any.whl.
File metadata
- Download URL: anime_face_detector-0.1.0-py3-none-any.whl
- Upload date:
- Size: 68.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9a6a8c1384b7a57fab8ce9988f814271ff88bac52a9dd871490a28b61dff7692
|
|
| MD5 |
2d4b1e6edbf59e65378ba517309f4bcd
|
|
| BLAKE2b-256 |
ff42a164a2431cff2acc0cace7448d7c61702ecab49a8ed44c7fdd3b704de3f3
|
Provenance
The following attestation bundles were made for anime_face_detector-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on hysts/anime-face-detector
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
anime_face_detector-0.1.0-py3-none-any.whl -
Subject digest:
9a6a8c1384b7a57fab8ce9988f814271ff88bac52a9dd871490a28b61dff7692 - Sigstore transparency entry: 2081356804
- Sigstore integration time:
-
Permalink:
hysts/anime-face-detector@7db835de7a3a052eb4d68d241ae9f2cf28a0b509 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/hysts
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@7db835de7a3a052eb4d68d241ae9f2cf28a0b509 -
Trigger Event:
push
-
Statement type: