加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_开封站长网 (http://www.0378zz.com/)- 科技、AI行业应用、媒体智能、低代码、办公协同!
当前位置: 首页 > 站长资讯 > 传媒 > 正文

智能发展应用看算法测试的测试策略

发布时间:2021-04-29 12:47:28 所属栏目:传媒 来源:互联网
导读:靠性。 好比我们的功能测试,根据功能测试设计,构造对应的数据进行测试覆盖。算法测试亦然,以人脸检测算法而言,除了考虑选取正样本、负样本外,还需要考虑正样本中人脸特征的覆盖,如人脸占比、模糊度、光照、姿态(角度)、完整性(遮挡)等特征。 选择好对

靠性。

好比我们的功能测试,根据功能测试设计,构造对应的数据进行测试覆盖。算法测试亦然,以人脸检测算法而言,除了考虑选取正样本、负样本外,还需要考虑正样本中人脸特征的覆盖,如人脸占比、模糊度、光照、姿态(角度)、完整性(遮挡)等特征。

选择好对应的测试数据后,后来后期的指标计算、结果分析,还需对数据进行标注,标注对应的特征,以人脸检测为例,使用工具对人脸图标进行人脸坐标框图,并将对应特征进行标注记录及存储,如下图。

另外,除了数据特征的覆盖,也需要考虑数据来源的覆盖,结合实际应用环境、场景的数据进行数据模拟、准备。比如公共场所摄像头下的人脸检索,图片一般比较模糊、图片光照强度不一,因此准备数据时,也需要根据此场景,模拟数据。一般来讲,最好将真实生产环境数据作为测试数据,并从其中按照数据特征分布选取测试数据。

此外,关于测试数据的数量,一般来讲测试数据量越多越能客观的反映算法的真实效果,但出于测试成本的考虑,不能穷其尽,一般以真实生产环境为参考,选取20%,如果生产环境数据量巨大,则选取1%~2%,或者更小。由于我们的生产环境数据量巨大,考虑到测试成本,我们选取了2W左右的图片进行测试。

测试集的独立性

测试集的独立性主要考虑测试数据集相互干扰导致测试结果的失真风险。

我们以人脸检索为例,我们准备200组人脸测试数据,每组为同一个人不同时期或角度的10张人脸照片,对人脸检索算法模型指标进行计算时,如计算TOP10的精确率,此时若在数据库中,存在以上200组人的其他照片时,便会对指标计算结果造成影响,比如我们200组人脸中包含Jack,但数据库中除了Jack的10张,还存在其他的8张Jack的照片。若算法微服务接口返回的TOP10图片中有我们测试集中的Jack图片6张,非测试集但在数据库中的其他Jack照片2张,还有2张非Jack的照片,测试的精确率该如何计算,按照我们的测试集(已标注)来看,精确率为60%,但实际精确率为80%,造成了精确率指标计算结果的失真。

因此,我们在测试集数据准备时,需考虑数据干扰,测试准备阶段对数据库的其他测试数据进行评估,比如从200组人脸测试数据组,进行预测试,对相似度非常高的数据进行研判,判断是否为同一人,若是则删除该照片或者不将该人从200组测试集中剔除。

测试集的准确性

数据集的准确性比较好理解,一般指的是数据标注的准确性,比如Jack的照片不应标注为Tom,照片模糊的特征不应标注为清晰。如果数据标注错误,那么直接影响了算法模型指标计算的结果。

对于测试集的准备,为了提高测试集准备效率及复用性,我们尝试搭建了算法数仓平台,实现数据(图片)的在线标注、存储等功能,作为算法测试数据的同一获取入口。

算法功能测试

以我现在接触的人工智能系统而言,将算法以微服务接口的形式对外提供服务,类似于百度AI开放平台。

(编辑:开发网_开封站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读