github-luffy / PFLD_68points_Pytorch

Implementation of PFLD For 68 Facial Landmarks By Pytorch
323 stars 72 forks source link

检测速度 #18

Closed txy1680 closed 3 years ago

txy1680 commented 3 years ago

为什么论文中有毫秒级别的检测速度,但是表格中只有0.2s左右

github-luffy commented 3 years ago

我尝试过论文毫秒级别的检测速度 但精度很低 表格中的是追求精度 速度上暂时没考虑论文的

epoc88 commented 3 years ago

我用 pretrained_model\mobileNetV2_0.25.pth 作为pretrained model parser.add_argument('--pretrained_model', type=str, default='/cache/data/pretrained_model/mobileNetV2_0.25.pth')

#MobileNetV2
coefficient = 0.25
num_of_channels = [int(64 * coefficient), int(128 * coefficient), int(16 * coefficient), int(32 * coefficient), int(128 * coefficient)]
model = MobileNetV2(num_of_channels=num_of_channels, nums_class=136)  # model
auxiliary_net = AuxiliaryNet(input_channels=num_of_channels[0])

.... ....

model = MyResNest50(nums_class=136)

# auxiliary_net = AuxiliaryNet(input_channels=64, first_conv_stride=2)

batch size 选过16,32,64 lr 0.0000001

但是loss 不降。

而不指定 pretrained model,loss就下降,怎么回事

github-luffy commented 3 years ago

我用 pretrained_model\mobileNetV2_0.25.pth 作为pretrained model parser.add_argument('--pretrained_model', type=str, default='/cache/data/pretrained_model/mobileNetV2_0.25.pth')

#MobileNetV2
coefficient = 0.25
num_of_channels = [int(64 * coefficient), int(128 * coefficient), int(16 * coefficient), int(32 * coefficient), int(128 * coefficient)]
model = MobileNetV2(num_of_channels=num_of_channels, nums_class=136)  # model
auxiliary_net = AuxiliaryNet(input_channels=num_of_channels[0])

.... ....

model = MyResNest50(nums_class=136)

auxiliary_net = AuxiliaryNet(input_channels=64, first_conv_stride=2)

batch size 选过16,32,64 lr 0.0000001

但是loss 不降。

而不指定 pretrained model,loss就下降,怎么回事

loss不下降说明已收敛了,你可以直接查看mobileNetV2_0.25.pth模型文件的识别效果如何.

epoc88 commented 3 years ago

感谢回复, pretrained 的模型 loss 是 33 以上,是不是太多了。是不是训练的loss 需要作出相应的修改

wing_loss = WingLoss(10.0, 2.0) ... loss = wing_loss(landmarks_batch.to(device), pre_landmarks, euler_angle_weights) ...

还有,衡量一个模型的好坏原文用 NME 和 AUC, 这里我们训练的时候没有这方面的代码, 有看到98点的。

github-luffy commented 3 years ago

感谢回复, pretrained 的模型 loss 是 33 以上,是不是太多了。是不是训练的loss 需要作出相应的修改

wing_loss = WingLoss(10.0, 2.0) ... loss = wing_loss(landmarks_batch.to(device), pre_landmarks, euler_angle_weights) ...

还有,衡量一个模型的好坏原文用 NME 和 AUC, 这里我们训练的时候没有这方面的代码, 有看到98点的。

loss收敛时,其大小跟模型效果没多大关系,只要loss是由大到小变化的,直到收敛为止就可以。 论文的NME有两种方式:IPN或ION,这里用到的是基于ION的NME,代码在train_model.py的test函数里;而AUC没有去实现。

epoc88 commented 3 years ago

感谢回复!

ION NME的计算看到了,这个算是对full (554个)的测试吧,如果再做个单独的脚本来测试 common 和 challenge 就好了。这样也可以和pretrained 的模型做个比较。我也研究一下。

不知可否加微信trueprodigy保持联系

github-luffy commented 3 years ago

感谢回复!

ION NME的计算看到了,这个算是对full (554个)的测试吧,如果再做个单独的脚本来测试 common 和 challenge 就好了。这样也可以和pretrained 的模型做个比较。我也研究一下。

不知可否加微信trueprodigy保持联系

可以,相互学习分享。