测试集的好坏,从源头上会影响整个测试过程和测试效果,对于测试集评价的意义在便于算法开发或测试从多维宏观整体上把控测试集,为测试集逼近理想测试集(与算法实际使用场景素材分布一致的测试集)提供优化方向。
测试集的评价最核心的一个标准是其是否接近产品使用环境的真实数据,这就需要知道算法在实际使用中会覆盖到那些场景,各个场景的分布情况。
1)、在测试集设计过程中可能弱化对算法使用场景的分析,或者由于其它原因无法明确算法实际使用的场景,比如一个通用算法做出来可能要在多个不同场景中使用
2)、缺少对测试集评价的理论,应该从那些方面进行评价
1)与实际场景的关联程度:
基于素材标注的标签信息(如目标类别,场景标签等),统计其与真实使用场景的关联度,当真实场景无法具体获得时可以考虑进行替代的场景分析,如室内、室外,可能会覆盖到的光线,天气类型,或者是否有其它相似场景。
2)测试集的数据量与分布:
对各个目标类型的数量或具体属性的目标的数量维度进行统计,评价其是否具有统计意义(比如检测目标,结果测试集中这种类型的目标只有几个),其次是测试集素材在各个场景测试集数据量的分布占比,该占比是否均匀或者与实际场景是否符合(比如某目标分布在多个场景,但是不同场景中分布量差异较大),并不一定分布越均匀越好,如果能预估实际使用场景中的分布占比则逼近该占比即可,但是通常情况下不知道占比是可尽量考虑同一目标不同场景数量均匀分布。
3)数据质量:
图像视频质量,标注质量(多标、漏标、误标、或标签方案不合理导致的其它问题)
4)多样性:
从涉及场景的种类数量、标注类别数、标注属性数、涉及属性值的种类数等多个维度进行评价
基于第 3 个部分种可参考的测试集评价维度,可以形成对应的评价指标,因此可以将评价流程自动化,即用户输入测试集路径信息和算法使用场景类别等信息,自动生成评价结果,结果的展示可以考虑通过图表的形式展现,同时能附带预警信息,用户操作简单,将自测集和测试集同时进行分析评价,可以对两个测试集分布的相似程度进行评价,如果两个测试集分布差异较大,说明可能需要对测试集进行调整,以免算法在训练调优阶段出现方向错误。
1)上述的实现过程其实很大程度上依赖于标注的基础,如果数据没有标注或者标注漏标和错标都会对评价结果造成影响,因此如何实现自动化标注是一个比较大的需求点,目前有一些辅助平台提高了标注效率,但是依然离不开人工。
2)基于已有测试集维度的分析结果,进行测试集复用,或基于需求自动生成测试集。