Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/TreB1eN/InsightFace_Pytorch
Pytorch0.4.1 codes for InsightFace
https://github.com/TreB1eN/InsightFace_Pytorch
Last synced: 4 months ago
JSON representation
Pytorch0.4.1 codes for InsightFace
- Host: GitHub
- URL: https://github.com/TreB1eN/InsightFace_Pytorch
- Owner: TreB1eN
- License: mit
- Created: 2018-07-30T22:38:04.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2022-11-22T02:49:08.000Z (over 2 years ago)
- Last Synced: 2024-10-29T17:49:29.357Z (4 months ago)
- Language: Jupyter Notebook
- Homepage:
- Size: 14 MB
- Stars: 1,747
- Watchers: 25
- Forks: 423
- Open Issues: 136
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# InsightFace_Pytorch
Pytorch0.4.1 codes for InsightFace
------
## 1. Intro
- This repo is a reimplementation of Arcface[(paper)](https://arxiv.org/abs/1801.07698), or Insightface[(github)](https://github.com/deepinsight/insightface)
- For models, including the pytorch implementation of the backbone modules of Arcface and MobileFacenet
- Codes for transform MXNET data records in Insightface[(github)](https://github.com/deepinsight/insightface) to Image Datafolders are provided
- Pretrained models are posted, include the [MobileFacenet](https://arxiv.org/abs/1804.07573) and IR-SE50 in the original paper------
## 2. Pretrained Models & Performance
[IR-SE50 @ BaiduNetdisk](https://pan.baidu.com/s/12BUjjwy1uUTEF9HCx5qvoQ), [IR-SE50 @ Onedrive](https://1drv.ms/u/s!AhMqVPD44cDOhkPsOU2S_HFpY9dC)
| LFW(%) | CFP-FF(%) | CFP-FP(%) | AgeDB-30(%) | calfw(%) | cplfw(%) | vgg2_fp(%) |
| ------ | --------- | --------- | ----------- | -------- | -------- | ---------- |
| 0.9952 | 0.9962 | 0.9504 | 0.9622 | 0.9557 | 0.9107 | 0.9386 |[Mobilefacenet @ BaiduNetDisk](https://pan.baidu.com/s/1hqNNkcAjQOSxUjofboN6qg), [Mobilefacenet @ OneDrive](https://1drv.ms/u/s!AhMqVPD44cDOhkSMHodSH4rhfb5u)
| LFW(%) | CFP-FF(%) | CFP-FP(%) | AgeDB-30(%) | calfw(%) | cplfw(%) | vgg2_fp(%) |
| ------ | --------- | --------- | ----------- | -------- | -------- | ---------- |
| 0.9918 | 0.9891 | 0.8986 | 0.9347 | 0.9402 | 0.866 | 0.9100 |## 3. How to use
- clone
```
git clone https://github.com/TropComplique/mtcnn-pytorch.git
```### 3.1 Data Preparation
#### 3.1.1 Prepare Facebank (For testing over camera or video)
Provide the face images your want to detect in the data/face_bank folder, and guarantee it have a structure like following:
```
data/facebank/
---> id1/
---> id1_1.jpg
---> id2/
---> id2_1.jpg
---> id3/
---> id3_1.jpg
---> id3_2.jpg
```#### 3.1.2 download the pretrained model to work_space/model
If more than 1 image appears in one folder, an average embedding will be calculated
#### 3.2.3 Prepare Dataset ( For training)
download the refined dataset: (emore recommended)
- [emore dataset @ BaiduDrive](https://pan.baidu.com/s/1eXohwNBHbbKXh5KHyItVhQ), [emore dataset @ Dropbox](https://www.dropbox.com/s/wpx6tqjf0y5mf6r/faces_ms1m-refine-v2_112x112.zip?dl=0)
- More Dataset please refer to the [original post](https://github.com/deepinsight/insightface/wiki/Dataset-Zoo)**Note:** If you use the refined [MS1M](https://arxiv.org/abs/1607.08221) dataset and the cropped [VGG2](https://arxiv.org/abs/1710.08092) dataset, please cite the original papers.
- after unzip the files to 'data' path, run :
```
python prepare_data.py
```after the execution, you should find following structure:
```
faces_emore/
---> agedb_30
---> calfw
---> cfp_ff
---> cfp_fp
---> cfp_fp
---> cplfw
--->imgs
---> lfw
---> vgg2_fp
```------
### 3.2 detect over camera:
- 1. download the desired weights to model folder:
- [IR-SE50 @ BaiduNetdisk](https://pan.baidu.com/s/12BUjjwy1uUTEF9HCx5qvoQ)
- [IR-SE50 @ Onedrive](https://1drv.ms/u/s!AhMqVPD44cDOhkPsOU2S_HFpY9dC)
- [Mobilefacenet @ BaiduNetDisk](https://pan.baidu.com/s/1hqNNkcAjQOSxUjofboN6qg)
- [Mobilefacenet @ OneDrive](https://1drv.ms/u/s!AhMqVPD44cDOhkSMHodSH4rhfb5u)- 2 to take a picture, run
```
python take_pic.py -n name
```press q to take a picture, it will only capture 1 highest possibility face if more than 1 person appear in the camera
- 3 or you can put any preexisting photo into the facebank directory, the file structure is as following:
```
- facebank/
name1/
photo1.jpg
photo2.jpg
...
name2/
photo1.jpg
photo2.jpg
...
.....
if more than 1 image appears in the directory, average embedding will be calculated
```- 4 to start
```
python face_verify.py
```- - -
### 3.3 detect over video:
```
```
python infer_on_video.py -f [video file name] -s [save file name]
```
```the video file should be inside the data/face_bank folder
- Video Detection Demo [@Youtube](https://www.youtube.com/watch?v=6r9RCRmxtHE)
### 3.4 Training:
```
```
python train.py -b [batch_size] -lr [learning rate] -e [epochs]# python train.py -net mobilefacenet -b 200 -w 4
```
```## 4. References
- This repo is mainly inspired by [deepinsight/insightface](https://github.com/deepinsight/insightface) and [InsightFace_TF](https://github.com/auroua/InsightFace_TF)
## PS
- PRs are welcome, in case that I don't have the resource to train some large models like the 100 and 151 layers model
- Email : [email protected]