PFLD icon indicating copy to clipboard operation
PFLD copied to clipboard

提升精度问题

Open liguiyuan opened this issue 5 years ago • 83 comments

大家来分享一下训练的最好精度,还有提升精度的方法? 目前我在 WFLW数据集最好精度: mean error: 0.073(7.3 %) failure rate: 0.175(17.5%)

liguiyuan avatar Jul 24 '19 01:07 liguiyuan

mean error:0.055 failure rate:0.086

github-luffy avatar Jul 24 '19 02:07 github-luffy

添加训练样本或者修改网络,我都尝试了,最好的效果mean error:0.055,failure rate:0.086;现在准备在移动端测试速度,看能否使用。

github-luffy avatar Jul 24 '19 03:07 github-luffy

添加训练样本或者修改网络,我都尝试了,最好的效果mean error:0.055,failure rate:0.086;现在准备在移动端测试速度,看能否使用。

请问你修改网络是怎么修改的, 我到mean error: 0.085 就降不下去了

wei-ma avatar Jul 24 '19 04:07 wei-ma

添加训练样本或者修改网络,我都尝试了,最好的效果mean error:0.055,failure rate:0.086;现在准备在移动端测试速度,看能否使用。

可以的话,麻烦分享下修改网络的经验呗~

liguiyuan avatar Jul 24 '19 05:07 liguiyuan

目前我发现欧拉角估算偏差有点大,可能会影响网络的学习,打算去掉辅助网络再训练看看效果了

liguiyuan avatar Jul 24 '19 05:07 liguiyuan

网络用的mobileNetV3,10000多张人脸,做数据增强后,总共30多万张图片。

github-luffy avatar Jul 24 '19 06:07 github-luffy

网络用的mobileNetV3,10000多张人脸,做数据增强后,总共30多万张图片。

听您的描述,您是把2500测试集也用作训练了啊,这样对最终测试的MNE不太准确吧。

luckynote avatar Jul 24 '19 06:07 luckynote

测试集不变,从其他人脸库找了新的数据

github-luffy avatar Jul 24 '19 06:07 github-luffy

小白请教,failure rate反应的是什么呢?如何理解失败率

Augnine avatar Jul 24 '19 06:07 Augnine

小白请教,failure rate反应的是什么呢?如何理解失败率

简单来讲,就是根据MNE,取一个固定的阈值,比如取T=0.10,然后统计大于T的样本数量,这些都记为失败,然后你就看到失败率了,如果取多个T,你就可以绘制AUC曲线了

luckynote avatar Jul 24 '19 07:07 luckynote

测试集不变,从其他人脸库找了新的数据

不同数据集算Wn问题你怎么解决的呢,我改到了0.060,没有其他数据。能否分享下学习率等的设置

Sawyer000 avatar Jul 26 '19 02:07 Sawyer000

都是68点的数据------------------ 原始邮件 ------------------ 发件人: "Sawyer000"[email protected] 发送时间: 2019年7月26日(星期五) 上午10:56 收件人: "guoqiangqi/PFLD"[email protected]; 抄送: "叶修强"[email protected];"Comment"[email protected]; 主题: Re: [guoqiangqi/PFLD] 提升精度问题 (#28)

测试集不变,从其他人脸库找了新的数据

不同数据集算Wn问题你怎么解决的呢,我改到了0.060,没有其他数据。能否分享下学习率等的设置

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or mute the thread.

github-luffy avatar Jul 26 '19 03:07 github-luffy

最新精度分享: 1.在 WFLW数据集上: mean error: 0.062 failure rate: 0.110

2.在300W数据集上: mean error: 0.034 failure rate: 0.006 (已经较接近论文,论文为mean error: 0.0332)

liguiyuan avatar Aug 03 '19 06:08 liguiyuan

你们嘴巴训练的效果怎么样,会不会偶尔嘴巴的点就飘了,下不来的情况?

github-luffy avatar Aug 03 '19 07:08 github-luffy

最新精度分享: 1.在 WFLW数据集上: mean error: 0.062 failure rate: 0.110

2.在300W数据集上: mean error: 0.034 failure rate: 0.006 (已经较接近论文,论文为mean error: 0.0332)

关于,300W论文哪里有提到“mean error: 0.0332”?

keyxuliang avatar Aug 05 '19 00:08 keyxuliang

最新精度分享: 1.在 WFLW数据集上: mean error: 0.062 failure rate: 0.110 2.在300W数据集上: mean error: 0.034 failure rate: 0.006 (已经较接近论文,论文为mean error: 0.0332)

关于,300W论文哪里有提到“mean error: 0.0332”?

PFLD 论文中有的,你仔细再读读吧

luckynote avatar Aug 05 '19 02:08 luckynote

最新精度分享: 在 WFLW数据集上: mean error: 5.597% failure rate: 8.213% 目前该模型在测试集上指标已经非常好了,但同样面临着如下问题:

  1. 检测自跟踪框或检测的Bbox对于正脸效果较好,但同样对于抬头、侧脸状态,存在眉毛、眼睛定位不准的问题
  2. 该模型对于各个姿态的张嘴有一定的准确度,但对于眨眼和眉毛跳动等状态定位非常差
  3. 对于闭嘴状态下,嘴巴最外层关键点比真值有一定偏差
  4. 此外就是转pb,lite,模型确实很小,只有2点几M,但c++接口相对于python而言,检测速度会下降一半等问题
  5. ncnn的暂时未操作

luckynote avatar Aug 05 '19 02:08 luckynote

你们嘴巴训练的效果怎么样,会不会偶尔嘴巴的点就飘了,下不来的情况?

嘴巴没遮挡效果还好啦,如果嘴巴又遮挡的话就往上飘了

liguiyuan avatar Aug 05 '19 02:08 liguiyuan

你们嘴巴训练的效果怎么样,会不会偶尔嘴巴的点就飘了,下不来的情况?

嘴巴没遮挡效果还好啦,如果嘴巴又遮挡的话就往上飘了

我觉得有遮挡,会飘的问题很正常,wflw本身遮挡的图片也不是很多,在没有遮挡下,嘴巴各个姿态都还不错。 其实最主要的是眼睛和眉毛,这两个地方似乎是有些过拟合了,基本不会随着表情状态的变化而变化,灵敏度和定位的准确性不如sdm和ert。

luckynote avatar Aug 05 '19 02:08 luckynote

最新精度分享: 1.在 WFLW数据集上: mean error: 0.062 failure rate: 0.110 2.在300W数据集上: mean error: 0.034 failure rate: 0.006 (已经较接近论文,论文为mean error: 0.0332)

能分享一下网络修改、学习率和epoch么,我WFLW的failure rate 0.018

网络修改:在bottlenet层的1x1 conv 的expand 扩张加上激活函数RELU6,增加非线性成分;然后conv8上,pandding改为VALID。 学习率:可以从1e-4开始,然后进行迭代递减 epoch:目前只训练了1000个epoch(其实到150个epoch已经达到最好效果了)

liguiyuan avatar Aug 05 '19 03:08 liguiyuan

最新精度分享: 1.在 WFLW数据集上: mean error: 0.062 failure rate: 0.110 2.在300W数据集上: mean error: 0.034 failure rate: 0.006 (已经较接近论文,论文为mean error: 0.0332)

关于,300W论文哪里有提到“mean error: 0.0332”?

PFLD 论文中有的,你仔细再读读吧 @luckynote 请教,是从Figure 3: CED curves上看出来的吗?:(

keyxuliang avatar Aug 05 '19 03:08 keyxuliang

最新精度分享: 1.在 WFLW数据集上: mean error: 0.062 failure rate: 0.110 2.在300W数据集上: mean error: 0.034 failure rate: 0.006 (已经较接近论文,论文为mean error: 0.0332)

关于,300W论文哪里有提到“mean error: 0.0332”?

PFLD 论文中有的,你仔细再读读吧 @luckynote 请教,是从Figure 3: CED curves上看出来的吗?:(

Table 4: Comparison in normalized mean error on the 300W Common Subset, Challenging Subset, and Fullset.

PFLD 1X common(3.32) chellenging(6.56) fullset(3.95)

luckynote avatar Aug 05 '19 03:08 luckynote

最新精度分享: 在 WFLW数据集上: mean error: 5.597% failure rate: 8.213% 目前该模型在测试集上指标已经非常好了,但同样面临着如下问题:

  1. 检测自跟踪框或检测的Bbox对于正脸效果较好,但同样对于抬头、侧脸状态,存在眉毛、眼睛定位不准的问题
  2. 该模型对于各个姿态的张嘴有一定的准确度,但对于眨眼和眉毛跳动等状态定位非常差
  3. 对于闭嘴状态下,嘴巴最外层关键点比真值有一定偏差
  4. 此外就是转pb,lite,模型确实很小,只有2点几M,但c++接口相对于python而言,检测速度会下降一半等问题
  5. ncnn的暂时未操作

感谢你的分享,你在测试集上效果很好了呀,请问一下你的训练集有没有加更多的样本或者一些特殊从处理?还有你的epoch是多少?

针对你以上的问题,貌似我这边有些解决了: 1.对于抬头、侧脸状态下眉毛和眼睛定位的问题,我这边一开始也是比较不准的,通过修改网络结构得到较大的改善。 2.对于眨眼(闭眼?)也是通过修改网格结构得到改善。

liguiyuan avatar Aug 05 '19 03:08 liguiyuan

最新精度分享: 1.在 WFLW数据集上: mean error: 0.062 failure rate: 0.110 2.在300W数据集上: mean error: 0.034 failure rate: 0.006 (已经较接近论文,论文为mean error: 0.0332)

关于,300W论文哪里有提到“mean error: 0.0332”?

PFLD 论文中有的,你仔细再读读吧 @luckynote 请教,是从Figure 3: CED curves上看出来的吗?:(

Table 4: Comparison in normalized mean error on the 300W Common Subset, Challenging Subset, and Fullset.

PFLD 1X common(3.32) chellenging(6.56) fullset(3.95) @luckynote 谢谢,请问fullset 上你们能达到多少?

keyxuliang avatar Aug 05 '19 03:08 keyxuliang

最新精度分享: 在 WFLW数据集上: mean error: 5.597% failure rate: 8.213% 目前该模型在测试集上指标已经非常好了,但同样面临着如下问题:

  1. 检测自跟踪框或检测的Bbox对于正脸效果较好,但同样对于抬头、侧脸状态,存在眉毛、眼睛定位不准的问题
  2. 该模型对于各个姿态的张嘴有一定的准确度,但对于眨眼和眉毛跳动等状态定位非常差
  3. 对于闭嘴状态下,嘴巴最外层关键点比真值有一定偏差
  4. 此外就是转pb,lite,模型确实很小,只有2点几M,但c++接口相对于python而言,检测速度会下降一半等问题
  5. ncnn的暂时未操作

感谢你的分享,你在测试集上效果很好了呀,请问一下你的训练集有没有加更多的样本或者一些特殊从处理?还有你的epoch是多少?

针对你以上的问题,貌似我这边有些解决了: 1.对于抬头、侧脸状态下眉毛和眼睛定位的问题,我这边一开始也是比较不准的,通过修改网络结构得到较大的改善。 2.对于眨眼(闭眼?)也是通过修改网格结构得到改善。

网络修改,是指 下面这个吗? 网络修改:在bottlenet层的1x1 conv 的expand 扩张加上激活函数RELU6,增加非线性成分;然后conv8上,pandding改为VALID。

我只修改了网络,没有增加数据,大概迭代2000次左右吧

luckynote avatar Aug 05 '19 03:08 luckynote

最新精度分享: 在 WFLW数据集上: mean error: 5.597% failure rate: 8.213% 目前该模型在测试集上指标已经非常好了,但同样面临着如下问题:

  1. 检测自跟踪框或检测的Bbox对于正脸效果较好,但同样对于抬头、侧脸状态,存在眉毛、眼睛定位不准的问题
  2. 该模型对于各个姿态的张嘴有一定的准确度,但对于眨眼和眉毛跳动等状态定位非常差
  3. 对于闭嘴状态下,嘴巴最外层关键点比真值有一定偏差
  4. 此外就是转pb,lite,模型确实很小,只有2点几M,但c++接口相对于python而言,检测速度会下降一半等问题
  5. ncnn的暂时未操作

感谢你的分享,你在测试集上效果很好了呀,请问一下你的训练集有没有加更多的样本或者一些特殊从处理?还有你的epoch是多少? 针对你以上的问题,貌似我这边有些解决了: 1.对于抬头、侧脸状态下眉毛和眼睛定位的问题,我这边一开始也是比较不准的,通过修改网络结构得到较大的改善。 2.对于眨眼(闭眼?)也是通过修改网格结构得到改善。

网络修改,是指 下面这个吗? 网络修改:在bottlenet层的1x1 conv 的expand 扩张加上激活函数RELU6,增加非线性成分;然后conv8上,pandding改为VALID。

我只修改了网络,没有增加数据,大概迭代2000次左右吧

除了这个,还去掉了最后的两个pool层,卷积conv6,conv7直接flatten。其实就是改成和论文里面的一样。

liguiyuan avatar Aug 05 '19 03:08 liguiyuan

最新精度分享: 在 WFLW数据集上: mean error: 5.597% failure rate: 8.213% 目前该模型在测试集上指标已经非常好了,但同样面临着如下问题:

  1. 检测自跟踪框或检测的Bbox对于正脸效果较好,但同样对于抬头、侧脸状态,存在眉毛、眼睛定位不准的问题
  2. 该模型对于各个姿态的张嘴有一定的准确度,但对于眨眼和眉毛跳动等状态定位非常差
  3. 对于闭嘴状态下,嘴巴最外层关键点比真值有一定偏差
  4. 此外就是转pb,lite,模型确实很小,只有2点几M,但c++接口相对于python而言,检测速度会下降一半等问题
  5. ncnn的暂时未操作

感谢你的分享,你在测试集上效果很好了呀,请问一下你的训练集有没有加更多的样本或者一些特殊从处理?还有你的epoch是多少? 针对你以上的问题,貌似我这边有些解决了: 1.对于抬头、侧脸状态下眉毛和眼睛定位的问题,我这边一开始也是比较不准的,通过修改网络结构得到较大的改善。 2.对于眨眼(闭眼?)也是通过修改网格结构得到改善。

网络修改,是指 下面这个吗? 网络修改:在bottlenet层的1x1 conv 的expand 扩张加上激活函数RELU6,增加非线性成分;然后conv8上,pandding改为VALID。 我只修改了网络,没有增加数据,大概迭代2000次左右吧

除了这个,还去掉了最后的两个pool层,卷积conv6,conv7直接flatten。其实就是改成和论文里面的一样。

我同样尝试了你说的这个方法,似乎对眼睛睁闭和眉毛变动的微表情没什么帮助

luckynote avatar Aug 06 '19 02:08 luckynote

最新精度分享: 在 WFLW数据集上: mean error: 5.597% failure rate: 8.213% 目前该模型在测试集上指标已经非常好了,但同样面临着如下问题:

  1. 检测自跟踪框或检测的Bbox对于正脸效果较好,但同样对于抬头、侧脸状态,存在眉毛、眼睛定位不准的问题
  2. 该模型对于各个姿态的张嘴有一定的准确度,但对于眨眼和眉毛跳动等状态定位非常差
  3. 对于闭嘴状态下,嘴巴最外层关键点比真值有一定偏差
  4. 此外就是转pb,lite,模型确实很小,只有2点几M,但c++接口相对于python而言,检测速度会下降一半等问题
  5. ncnn的暂时未操作

感谢你的分享,你在测试集上效果很好了呀,请问一下你的训练集有没有加更多的样本或者一些特殊从处理?还有你的epoch是多少? 针对你以上的问题,貌似我这边有些解决了: 1.对于抬头、侧脸状态下眉毛和眼睛定位的问题,我这边一开始也是比较不准的,通过修改网络结构得到较大的改善。 2.对于眨眼(闭眼?)也是通过修改网格结构得到改善。

网络修改,是指 下面这个吗? 网络修改:在bottlenet层的1x1 conv 的expand 扩张加上激活函数RELU6,增加非线性成分;然后conv8上,pandding改为VALID。 我只修改了网络,没有增加数据,大概迭代2000次左右吧

除了这个,还去掉了最后的两个pool层,卷积conv6,conv7直接flatten。其实就是改成和论文里面的一样。

我同样尝试了你说的这个方法,似乎对眼睛睁闭和眉毛变动的微表情没什么帮助

对双眼同时睁或同时闭效果还不错,但对一睁一闭的效果就不好了,眉毛变动如果比较夸张的话,还是不太准。简单看了训练集里面的图片,感觉只能在训练集增加这方面的图片了。

liguiyuan avatar Aug 07 '19 02:08 liguiyuan

请问你们landmark_loss以及euler_loss都是多少啊?为什么我的landmark_loss为0.001,而euler_loss缺为0.12左右,landmark收敛特别迅速,而euler_loss收敛特别缓慢,所以我的mean_error训练到0.14就很难降低了,,求助一下,谢谢

mifan0208 avatar Aug 07 '19 07:08 mifan0208

最新精度分享: 1.在 WFLW数据集上: mean error: 0.062 failure rate: 0.110

2.在300W数据集上: mean error: 0.034 failure rate: 0.006 (已经较接近论文,论文为mean error: 0.0332) @liguiyuan 请问,用辅助网络了吗?在300W数据集fullset上能达到什么水平?

keyxuliang avatar Aug 07 '19 08:08 keyxuliang