最近研究了一下两大开源人脸识别算法:insightface和facenet,包括算法效果与性能,facenet使用的是较早的softmax,Python3环境,基于tensorflow实现;insightface使用的是18年出的arcface,Python2环境,基于mxnet实现。关于不同loss函数的区别,可以参看人脸识别损失函数综述(附开源实现)
算法效果比较
算法层面上,使用最新的arcface比相对较早的facenet的效果是要好的,在megaface这个高难度赛事上也证明了这一点。在lfw数据集和我们自己的数据集上做了测试,insightface的效果是比facenet要好的。
算法性能比较
真的到项目里面的时候,不仅仅要考虑准确率的问题,还要考虑速度等性能问题,基于12G显存的GPU简单跑了一下两个模型的service,得出的结果如下:
可以说无论是效果还是性能,insightface都比facenet占有明显的优势。