jhb86253817 / PIPNet

Efficient facial landmark detector
MIT License
413 stars 82 forks source link

Cfg file for running the demo of MobileNetv2 and MobileNetV3 models #47

Open DanielXu123 opened 1 year ago

DanielXu123 commented 1 year ago

First of all, thanks for sharing the excellent models. I've tested the resnet101 based models, it works perfect. And I noticed that you guys also provide the mobilenet-v3-large model (mobilenetv3-large-1cd25616.pth) in ~/PIPNet/lib.

I'd like to test the effect of this model, but can't find the related cfg file, seems that only Resnet related cfg files have been provided. Could you provide the 'cfg' file and also the 'data_name' which may needed in calculating the get_meanface function.

jhb86253817 commented 1 year ago

Hi, Here is the cfg file of mobilenetv3 on 300W:

class Config():
    def __init__(self):
        self.det_head = 'pip'
        self.net_stride = 32
        self.batch_size = 16
        self.init_lr = 0.0001
        self.num_epochs = 120
        self.decay_steps = [60, 100]
        self.input_size = 256
        self.backbone = 'mobilenet_v3'
        self.pretrained = True
        self.criterion_cls = 'l2'
        self.criterion_reg = 'l1'
        self.cls_loss_weight = 10
        self.reg_loss_weight = 1
        self.num_lms = 68
        self.save_interval = self.num_epochs
        self.num_nb = 10
        self.use_gpu = True
        self.gpu_id = 0

For get_meanface function, all backbones share the same file, and the data name corresponds to training data, e.g., datat_300W, WFLW, etc.

DanielXu123 commented 1 year ago

I may have confused. Have you offered the facial landmark model trained on MobileNetv3 or MobileNet-v2? The model mentioned above "mobilenet-v3-large model (mobilenetv3-large-1cd25616.pth) in ~/PIPNet/lib " is the pretrained model, not the final facial landmark model, is that right ?

DanielXu123 commented 1 year ago

Will you provid the trained models of MobileNet-V3 and MobileNet-v2 ? It woild be very appreciated.

jhb86253817 commented 1 year ago

I did not provide trained model for mobilenets previously. And the one named '"mobilenet-v3-large model (mobilenetv3-large-1cd25616.pth)" is an ImageNet pretrained model for initialization. I just updated the trained models by adding mobilenet v2 and v3 trained on 300W and WFLW. You may check the shared Google Drive in the ReadMe.

DanielXu123 commented 1 year ago

Thx!! I will test the model. Thanks for your sharing. For the model you trained on WFLW, the config file should be like this:


class Config():
    def __init__(self):
        self.det_head = 'pip'
        self.net_stride = 32
        self.batch_size = 16
        self.init_lr = 0.0001
        self.num_epochs = 120
        self.decay_steps = [60, 100]
        self.input_size = 256
        self.backbone = 'mobilenet_v3'
        self.pretrained = True
        self.criterion_cls = 'l2'
        self.criterion_reg = 'l1'
        self.cls_loss_weight = 10
        self.reg_loss_weight = 1
        self.num_lms = 98
        self.save_interval = self.num_epochs
        self.num_nb = 10
        self.use_gpu = True
        self.gpu_id = 0

Is that right ? Again, thanks for your awasome work.

jhb86253817 commented 1 year ago

Yes, I think so. The only difference is the number of landmarks. Your're welcome :)