1. 以12Net为例,参考其他mtcnn的用例,思考如何训练:
  • 多增加负样本以提高对错误的排除能力
  • mutly如何使用
  • hard_example为何如此慢如何优化.
提高对错误分类的排除能力:


DNCNN改进_复选框


这样一张照片:我使用训练出来的模型,即使采用0.8的prob阈值,得到的候选框也有664个

DNCNN改进_预处理_02


如果使用别人训练好的12-net的取0.4的阈值大概得到 724个候选框

DNCNN改进_复选框_03

左右两个男的都没框进来,这幅图上效果不如我训练出来的

但在其他图上的效果不好如:

…/prepare_data/WIDER_val/images/11–Meeting/11_Meeting_Meeting_11_Meeting_Meeting_11_102.jpg

一共 8193个复选框

DNCNN改进_预处理_04


把衣服上的纹路

DNCNN改进_复选框_05


官方给出的model中 ,对衣服纹路的误判少一些,貌似是红色容易被误判,是否我需要对图片全部取个均值,然后在减去均值做计算会得到更加准确的数值 1067个复选框

DNCNN改进_复选框_06

在来一个bad_sample:

…/prepare_data/WIDER_val/images/11–Meeting/11_Meeting_Meeting_11_Meeting_Meeting_11_441.jpg

DNCNN改进_用例_07


我训练的模型0.8阈值下找4602个候选框

DNCNN改进_复选框_08


而使用官方提供的: 使用0.4的阈值,对桌布这种复杂纹理的误判少很多

DNCNN改进_复选框_09

黑人朋友的漏掉了不少候选框…

DNCNN改进_复选框_10


…/prepare_data/WIDER_val/images/11–Meeting/11_Meeting_Meeting_11_Meeting_Meeting_11_71.jpg

官方给出的模型中,为纹理复杂出现误判较少

DNCNN改进_预处理_11

对图像做减均值处理:

[104.14622335 110.80776087 119.85612174]

常用的处理如下:

DNCNN改进_用例_12

减去均值之后再看之前的图效果 0.8的阈值最终 3666个复选框.且包含正确分类,这张图效果上好于不做均值处理.(具体可能需要做全数据的统计)

DNCNN改进_用例_13

…/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的排除能力.

DNCNN改进_复选框_14

使用之前训练的48Net

DNCNN改进_复选框_15