UC Berkeley CS180 FA24 Final Project 1/3: Facial Keypoint Detection using NN
.
├── 1
├── 1_imm_nose_tip_detection.ipynb
├── 2
├── 2_full_facial_keyp_detection.ipynb
├── 3
├── 3_ibug_facial.ipynb
├── 4
├── 4_ibug_heatmap.ipynb
├── ibug_300W_large_face_landmark_dataset # downloaded from kaggle and project spec
├── imm_face_db # imm face dataset
├── my_ims # images from my collection
│ ├── 1.jpg
│ ├── 2.jpg
│ └── 3.jpg
├── README.md
└── unet.py
- First, please install
albumentationsandtorchsummaryby runningpip install albumentations torchsummary. - Every notebook is corresponding to a part of the project, and can be run independently.
- In the first part, I write a method for computing the real nose tips as labels by weighted averages, but because this is not explicitly said to be allowed in the project spec, I just preserve the implementation in the notebook and set
REAL_NOSE_TIP = Falseto use the provided labels (52-th index). unet.pyis the implementation of the U-Net model, which is used in the project. Also the aggregation (weighted average) functionheatmap_to_landmarksis defined in this file.- The iBUG dataset is not included in the repo, but can be downloaded from the project spec or kaggle. IMM Face dataset can also be downloaded through the wayback-ed IMM homepage. The datasets should be placed in the root directory of the project.
- The
my_imsdirectory contains some images from my collection, which can be used to test the model in part 3 and 4.