# ResNet50-Pytorch-Face-Recognition
**Repository Path**: srwpf/ResNet50-Pytorch-Face-Recognition
## Basic Information
- **Project Name**: ResNet50-Pytorch-Face-Recognition
- **Description**: Using Pytorch to implement a ResNet50 for Cross-Age Face Recognition
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2019-12-10
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# ResNet-Pytorch-Face-Recognition
Using Pytorch to implement a ResNet50 for Cross-Age Face Recognition
Generally speaking, Pytorch is much more user-friendly than Tensorflow for academic purpose.
Prepare Dataset and Environment
====
Trainable ResNet50 using Python3.5 + Pytorch
DataSet: Cross-Age Celebrity Dataset[(CACD)](http://bcsiriuschen.github.io/CARC/)
By default, you should put all the CACD images under "./CACD2000/". If your dataset is in another place, add "--root-path your_path" when you run main.py.
You don't need to crop image into 224*224*3 size anymore, pytorchvision provide convenient "transforms" to do so.
Explanation of Each File
====
1. main.py is just used to control parameters, it doesn't contains any useful details.
2. ResNet.py & VGG.py are the cores of the project, they have the implementation of Networks.
3. train.py contains the details of training process.
4. data.py maintains a Class to generate CACD data class, which is very different with Tensorflow and quite useful.
5. In /model/params.pkl, we give a pretrained model learnt through default setting (change number of epoch to 30)
Training Part
====
1. Run main.py directly, there are some options and parameters you can modify, pleace check the details of main.py.
2. About "--model", there are 3 options: resnet50, resnet101, vgg16. Although I also implemented VGG class, but I didn't check whether it's working or not, so the default option is resnet50.
3. Labels and Image names are loaded from "./data/label.npy" and "./data/name.npy".
Pytorch provide a very useful approach to create datasets. Please check data.py
4. Label is range from [1, LABELSNUM], to make correct classification, we should change it to [0, LABELNUM-1]
5. If you want to load a existing model, you should run the following "python main.py --model-path your_path --pretrained 1".
Evaluation
====
Since I just want to get used to Pytorch. I didn't prepare a evaluation method, you can make your own if you like.