- 以12Net为例,参考其他mtcnn的用例,思考如何训练:
- 多增加负样本以提高对错误的排除能力
- mutly如何使用
- hard_example为何如此慢如何优化.
提高对错误分类的排除能力:
如
这样一张照片:我使用训练出来的模型,即使采用0.8的prob阈值,得到的候选框也有664个
如果使用别人训练好的12-net的取0.4的阈值大概得到 724个候选框
左右两个男的都没框进来,这幅图上效果不如我训练出来的
但在其他图上的效果不好如:
…/prepare_data/WIDER_val/images/11–Meeting/11_Meeting_Meeting_11_Meeting_Meeting_11_102.jpg
一共 8193个复选框
把衣服上的纹路
官方给出的model中 ,对衣服纹路的误判少一些,貌似是红色容易被误判,是否我需要对图片全部取个均值,然后在减去均值做计算会得到更加准确的数值 1067个复选框
在来一个bad_sample:
…/prepare_data/WIDER_val/images/11–Meeting/11_Meeting_Meeting_11_Meeting_Meeting_11_441.jpg
我训练的模型0.8阈值下找4602个候选框
而使用官方提供的: 使用0.4的阈值,对桌布这种复杂纹理的误判少很多
黑人朋友的漏掉了不少候选框…
…/prepare_data/WIDER_val/images/11–Meeting/11_Meeting_Meeting_11_Meeting_Meeting_11_71.jpg
官方给出的模型中,为纹理复杂出现误判较少
对图像做减均值处理:
[104.14622335 110.80776087 119.85612174]
常用的处理如下:
减去均值之后再看之前的图效果 0.8的阈值最终 3666个复选框.且包含正确分类,这张图效果上好于不做均值处理.(具体可能需要做全数据的统计)
…/prepare_data/WIDER_val/images/11–Meeting/11_Meeting_Meeting_11_Meeting_Meeting_11_441.jpg
对应 候选框是 4221个.
写个脚本来总体评估一下不同方式训练方式下,12net提出的效果.
0.8阈值 不加减均值预处理
pos part neg
4 16 11926
3 27 27670
1 7 5906
8 48 3106
5 31 10535
0 5 5798
0 31 9558
5 77 5855
2 53 6390
5 30 7859
5 51 13065
1 42 9287
5 36 7189
0 0 7920
4 18 6019
0 9 4703
11 45 4435
2 21 6650
0 11 5395
0 2 5784
total: 61 560 165050
使用预处理
0 0 428
1 4 955
0 15 1026
0 6 513
2 30 1485
0 4 586
17 100 1201
24 96 732
6 33 1021
7 48 1155
1 3 345
2 30 374
4 16 787
0 0 1017
7 39 1345
6 22 81
1 9 264
5 60 1131
0 40 1858
0 2 1384
total: 83 557 17688
官方提供的
0 8 3796
2 18 7321
0 2 3115
2 10 2717
2 7 3407
0 1 3652
2 11 4081
2 25 3013
2 9 4506
0 8 3554
2 20 2048
1 14 5926
2 14 3213
0 0 2988
0 9 4183
0 11 4147
1 31 3732
0 16 3571
1 2 2369
0 0 3190
total: 19 216 74529
总的看来还是加上减去均值效果会好不少.
48Net 我扩大了样本,选用的样本比例240000:240000:960000 ,同时也使用了减均值处理, 经过48Net过滤出来的效果好了不少
如:
48Net上效果好了不少,所以还是需要使用12net_hard_example中生成的负样本,以加强对bad case的排除能力.
使用之前训练的48Net