这是2020年年初做的一个小测试啦,在草稿箱待了这么久决定发出来,希望对大家有帮助~

一、数据介绍

一部分probe set,即测试集,采用FaceScrub数据集,从中选取80个人,男女各半,共3530张照片。
一部分distractors,即干扰集,由megaface官方提供,包括约69w人的约1027000张照片;

二、数据处理

(一)检测&对齐

对干扰图片进行人脸检测并进行对齐,约6.5w张图片未检测出人脸。
漏检率约为6.36%.
耗时:一分钟处理1000张左右图片。总共耗时约17h。

(二)特征提取

特征提取完后,剩余92w左右图片
仅仅特征提取耗时:1s提取45张图片的特征
耗时:95w张人脸总耗时约56h

“这29人在统计结果时会形成55608条记录,实际我们的算法使其中25232条均为Rank-1错误,错误率高达45.37%。若扣除这29人,则我们的算法在余下51个人的Rank-1准确率为88.87%。因此可以解释为什么我们的Rank-10准确率与megaface榜上前三接近,但Rank-1准确率相差很多。”

facescrub

由于facescrub数据集图片存在的问题:不存在后缀、后缀是gif、图片文件名格式正确但为空文件(0bytes)
尝试根据bbox和三个点(左眼,有眼,鼻子)检测并对齐得到3525张图片。

移除megaface和facescrub中不干净的数据特征

噪声文件由insightface提供
去除了测试集facescrub的24个噪声特征,megaface的671个噪声特征

测试流程

1.官方测试思路

每个人有N张图像,每次选出一张和干扰图片合起来作为图库,剩下的N-1张作为测试集,测试集的图片依次和图库里的图片进行对比。如果有M个人,每人有N张图片,则总计比较MN(N-1)次查询计算top1准确率。

2.参考思路

测试集80个人每个人选一张正面、清晰的图片入库,入库后库保持不变,比较3426次,避免库每次更新需要时间。

测试方法

1.利用sqlite建库并完成更新
存在的问题:由于库每次增加或者删除特征需要重新建立索引,每次更新库的时间较长,在3w张干扰图片的情况下,更新一次库大概需要5s
干扰图片为3w张时,按照megaface的官方评测方法,top1 accuracy为96.17%,按照入库80张测试集每个人的照片后不更新库的方法,top1 accuracy 为97.65%。
2.暴力搜索
构造一个干扰图片特征列表,计算该列表中特征与测试集的图片特征的欧氏距离,通过比较距离得到top1图片的名字
存在的问题:计算距离时耗费时间较长,1w张干扰图片情况下,比较100次需要80s,预计干扰图片1w张时完成所有比较需要24h+

点击阅读全文
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐