模型仅有7M:轻量级高精度人脸识别方法DBFace

2020 年 4 月 11 日 极市平台

加入极市专业CV交流群,与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度 等名校名企视觉开发者互动交流!

同时提供每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流。关注 极市平台 公众号 ,回复 加群,立刻申请入群~

来源:机器之心@微信公众号

这个仅 7M 大小的人脸识别模型几乎识别出了世界最大自拍照中的所有人像!


项目简介


之前机器之心报道过一个跨平台人脸识别项目,在 CPU 上就能轻松跑出 1000FPS。这次介绍的项目也是一个轻量级人脸识别项目。不同的是,该项目在保持较小参数量的前提下,识别精度要高很多,并且只需要 OpenCV 和 PyTorch 就能运行。

DBFace 是一个轻量级的实时人脸识别方法,其有着更快的识别速度与更高的精度。下图展示了多种人脸检测方法在 WiderFace 数据集上的测试效果。可以看到不仅 DBFace 模型的大小最小,其在 Easy、medium、Hard 三个测试任务中均取得了最高的识别精度。


项目地址:https://github.com/dlunion/DBFace

WiderFace 是一个关于人脸检测的基准跑分数据集,其中包含 32,203 张图片以及在各方面剧烈的 393,703 张人脸,数据集具有从简单到困难等不同难度的任务。下图是改数据集中一些样本的展示,可以看到,要想准确地识别出图中所有人脸还是很有挑战的。DBFace 在该数据集的不同任务上分别取得 0.925、0.920、0.847 的准确率,实属不易。


有关 WiderFace 的详细介绍请读者移步其官网:
http://shuoyang1213.me/WIDERFACE/

效果展示


下图展示了不同人脸识别方法在 WiderFace 数据集上的 P-R 曲线。P-R 曲线可以较直观地展示二分类器的 Precision 和 Recall。当需要对不同算法进行比较时,若某个二分类器的 P-R 曲线被另一个二分类器的 P-R 曲线完全包住,即表明后者的性能优于前者。从图中可以看到,DBFace 包围的面积在三个任务中均相对较大。


当阈值设置为 0.2 时,DBFace 对这张世界最大的自拍照识别效果如下图所示:


可以看到,DBFace 的识别准确率非常高,图中很多人脸甚至放大后单凭肉眼也很难分辨,DBFace 却仍然能够识别出来,并且模型大小仅 7M,完全能够在边缘设备上实时运行。于是,机器之心也上手测试了一番。

项目实测


项目作者提供的代码示例中包含对静态图片的识别,同时也有一个调用电脑摄像头的 GUI。值得注意的是,该项目并不需要太多依赖项,只要有 PyTorch、Numpy 和 OpenCV 即可运行。由于以上依赖环境都是非常常用的扩展库,网上有大量相应安装教程,这里就略过其安装步骤。

在 main.py 中,image_demo() 与 camera_demo() 分别对应静态图片识别与调用摄像头进行识别。静态图片识别代码为:

   
   
     
def image_demo():
    dbface = DBFace()
    dbface.eval()

     if HAS_CUDA:
        dbface.cuda()

    dbface.load( "model/dbface.pth")
    detect_image(dbface,  "datas/selfie.jpg")

以上代码将会读取训练后的模型,对图片 datas/selfie.jpg 进行识别,并将结果保存到 detect_result/selfie.draw.jpg。

让我们来看一下识别效果:


从上图可以看到,即使在室内灯光颜色、明暗差别较大的环境下,DBFace 也识别出了图中几乎所有的人,甚至是中间那个一边画彩虹,一边指向闪耀灯球戴头盔的人也难逃其「魔掌」。当然,由于这里设置的检测阈值较低,存在一些误分类的现象。图中一些人的手和右上角的灯球就被误识别为了人脸。适当调高阈值即可消除此现象。

调用电脑摄像头检测的代码为:

   
   
     
def camera_demo():
    dbface = DBFace()
    dbface.eval()

     if HAS_CUDA:
        dbface.cuda()

    dbface.load( "model/dbface.pth")
    cap = cv2.VideoCapture( 0)
    cap.set(cv2.CAP_PROP_FRAME_WIDTH,  640)
    cap.set(cv2.CAP_PROP_FRAME_HEIGHT,  480)
    ok, frame = cap.read()

     while ok:
        objs = detect(dbface, frame)

         for obj  in objs:
            common.drawbbox(frame, obj)

        cv2.imshow( "demo DBFace", frame)
        key = cv2.waitKey( 1) &  0xFF
         if key == ord( 'q'):
             break

        ok, frame = cap.read()

运行以上代码将会生成一个 640x480 的 GUI 界面,调用摄像头实时进行人脸检测。

感兴趣的小伙伴赶快将本项目 git clone 到本地测试一下吧!


-END-



*延伸阅读

极市独家福利
40万奖金的AI移动应用大赛,参赛就有奖,入围还有额外奖励



添加极市小助手微信(ID : cv-mart),备注:研究方向-姓名-学校/公司-城市(如:AI移动应用-小极-北大-深圳),即可申请加入AI移动应用极市技术交流群,更有每月大咖直播分享、真实项目需求对接、求职内推、算法竞赛、干货资讯汇总、行业技术交流一起来让思想之光照的更远吧~


△长按添加极市小助手


△长按关注极市平台,获取最新CV干货


觉得有用麻烦给个在看啦~  

登录查看更多
1

相关内容

人脸识别,特指利用分析比较人脸视觉特征信息进行身份鉴别的计算机技术。广义的人脸识别实际包括构建人脸识别系统的一系列相关技术,包括人脸图像采集、人脸定位、人脸识别预处理、身份确认以及身份查找等;而狭义的人脸识别特指通过人脸进行身份确认或者身份查找的技术或系统。人脸识别是一项热门的计算机技术研究领域,它属于生物特征识别技术,是对生物体(一般特指人)本身的生物特征来区分生物体个体。生物特征识别技术所研究的生物特征包括脸、指纹、手掌纹、虹膜、视网膜、声音(语音)、体形、个人习惯(例如敲击键盘的力度和频率、签字)等...
【经典书】统计学习导论,434页pdf,斯坦福大学
专知会员服务
229+阅读 · 2020年4月29日
大小仅1MB!超轻量级的人脸识别模型火爆Github
大数据技术
25+阅读 · 2019年10月24日
再谈人脸识别损失函数综述
人工智能前沿讲习班
14+阅读 · 2019年5月7日
1500+ FPS!目前最快的CNN人脸检测算法开源
极市平台
25+阅读 · 2019年3月15日
人脸识别损失函数综述(附开源实现)
极市平台
29+阅读 · 2019年3月12日
PFLD:简单、快速、超高精度人脸特征点检测算法
人工智能前沿讲习班
6+阅读 · 2019年3月4日
实战 | 40行代码实现人脸识别
七月在线实验室
3+阅读 · 2018年3月7日
深度学习人脸识别系统DFace
深度学习
17+阅读 · 2018年2月14日
CVPR 2017 | Tiny Faces 小人脸检测算法简介
极市平台
10+阅读 · 2018年2月1日
【源码】Python的开源人脸识别库:离线识别率高达99.38%
全球人工智能
11+阅读 · 2017年10月29日
基于Python的开源人脸识别库:离线识别率高达99.38%
炼数成金订阅号
5+阅读 · 2017年7月28日
Arxiv
5+阅读 · 2019年2月28日
Arxiv
4+阅读 · 2018年12月20日
Arxiv
6+阅读 · 2018年2月6日
Arxiv
4+阅读 · 2018年1月19日
VIP会员
相关资讯
大小仅1MB!超轻量级的人脸识别模型火爆Github
大数据技术
25+阅读 · 2019年10月24日
再谈人脸识别损失函数综述
人工智能前沿讲习班
14+阅读 · 2019年5月7日
1500+ FPS!目前最快的CNN人脸检测算法开源
极市平台
25+阅读 · 2019年3月15日
人脸识别损失函数综述(附开源实现)
极市平台
29+阅读 · 2019年3月12日
PFLD:简单、快速、超高精度人脸特征点检测算法
人工智能前沿讲习班
6+阅读 · 2019年3月4日
实战 | 40行代码实现人脸识别
七月在线实验室
3+阅读 · 2018年3月7日
深度学习人脸识别系统DFace
深度学习
17+阅读 · 2018年2月14日
CVPR 2017 | Tiny Faces 小人脸检测算法简介
极市平台
10+阅读 · 2018年2月1日
【源码】Python的开源人脸识别库:离线识别率高达99.38%
全球人工智能
11+阅读 · 2017年10月29日
基于Python的开源人脸识别库:离线识别率高达99.38%
炼数成金订阅号
5+阅读 · 2017年7月28日
相关论文
Top
微信扫码咨询专知VIP会员