本贴来源网络。只是博主为了临时记录,三十日后将删帖

根据评论区反应,部分描述欠佳,请技术人员自动规避。

这个仅 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) & 0xFFif key == ord('q'):breakok, frame = cap.read()

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

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

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

  1. 轻量级3d模型查看器_耐能取得两项软件著作权,自研轻量级3D人脸识别算法领先业界...

    近日,耐能收到国家版权局颁发的两份<计算机软件著作权登记证书>,两款软件分别是人脸活体检测和人脸识别开发包软件V1.1.0.卷积神经网络简化和加速开发工具软件V2.2.17.这次取得两项软 ...

  2. MDFR :基于人脸图像复原和人脸转正联合模型的人脸识别方法

    点上方计算机视觉联盟获取更多干货 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:AI 科技评论报道 编辑 | 陈大鑫 AI博士笔记系列推荐 周志华<机器学习>手推笔记正式开源!可 ...

  3. 【毕业设计/课程设计】基于opencv的高精度人脸识别考勤系统设计与实现

    文章目录 0 项目说明 1 需求分析 2 总体设计 3 详细设计 4 程序运行结果测试与分析 5 实验心得 6 项目源码 0 项目说明 基于opencv的高精度人脸识别考勤系统设计与实现 提示:适合用 ...

  4. 视觉识别入门之人脸识别——基于FACENET的高精度人脸识别

    视觉识别入门之人脸识别---- 基于FACENET的高精度人脸识别 一:项目展示: - 这是实时视频读取的展示,是可以读单张图片,或者本地视频流,抑或是实时人脸检测与分类的,至于我为什么不展示我的自拍 ...

  5. MDFR:基于人脸图像复原和人脸转正联合模型的人脸识别方法

    AI 科技评论报道 编辑 | 陈大鑫 在现实生活中,许多因素可能会影响人脸识别系统的识别性能,例如大姿势,不良光照,低分辨率,模糊和噪声等.为了应对这些挑战,之前的人脸识别方法通常先把低质量的人脸图像 ...

  6. 戴口罩人脸识别、高精度人脸识别解决方案

    1.数据集的整理及清洗 1. 线上数据40万人,2000万张图 2. glint360,36万人,2000多万张图 2.人脸预处理 ----采用自研的图像处理算法对人脸进行 "中心矫正&qu ...

  7. dodo:人脸识别方法个人见解 (zz)

    广告 我在英国SURREY UNIVERSITY的CVSSP作关于人脸方面的研究,师从英国皇家院士Prof. Josef Kittler http://personal.ee.surrey.ac.uk ...

  8. dodo:人脸识别方法个人见解(三部分汇总)

    dodo的个人主页:sites.google.com/site/zhaodeli/(需要翻墙),新浪博客:blog.sina.com.cn/dodo2pami.原文分3部分,虽然原文是07年左右的文章 ...

  9. dodo:人脸识别方法个人见解(包括稀疏表示方法的理解)

    dodo:人脸识别方法个人见解 科院网站 http://www.cbsr.ia.ac.cn/Li%20Group/publicationsCH.htmlgoogle的软件picasa汉王公司  dod ...

最新文章

  1. EPICenter: 用户管理
  2. html游戏键盘控制,键盘控制方块移动.html
  3. Linux下如何使用虚拟用户增加FTP的安全性
  4. 如何在服务器端写关闭窗口的代码?同时能够更新父窗口?
  5. Java StringBuffer的用法
  6. Hibernate4.x之映射关系--双向1-n
  7. 有趣c语言编程经典例子,C语言简单有趣例子总结ZWF.pdf
  8. HDU 4857 拓扑排序 优先队列
  9. 随机生成从大到小排序python_随机快速排序(使用Python描述)
  10. 安卓案例:基于HttpURLConnection下载文本与图片
  11. iis启动时发生意外错误0x8ffe274的解决方法
  12. Oracle的SQL基础之查询(简单查询)
  13. 基于JAVA+SpringBoot+Mybatis+MYSQL的课程在线学习系统
  14. 2021高考成绩查询大学城一中,“有梦就去追,做勇于逐梦的少年”——直击重庆市2021年普通高考...
  15. Python判断文件是否存在、访问
  16. gridview生成的html,.NET_GridView生成的HTML代码示例对比,复制代码 代码如下: asp:GridV - phpStudy...
  17. [RK3399][Android7.1] 问题记录 --- GPU 重启问题分析
  18. 最详细G1垃圾回收器日志解读
  19. 亚马逊独一份的有趣规则
  20. 输出的字符串中有空格并且无法替换B e a r e r N D c y Z T g 4 N z A t N 2 N h Z C 0 0 Y 2 E 4 L T g x M W E t O D Y

热门文章

  1. 【软件工程】实验八 建立对象模型--自行车租赁管理系统
  2. 对象之间的6种关联关系
  3. linuxmint安装mysql_linuxmint安装MySQL
  4. win7系统下搭建服务器搭建,win7系统下搭建iis服务器的方法步骤
  5. python项目管理岗位职责_项目实施工程师岗位的工作职责表述
  6. 【IOS问题解决方法】 Showing All Messages :-1: Undefined symbol: _OBJC_CLASS_$_CMMotionManager
  7. 使用PHP导出Excel时处理复杂表头的万能方法
  8. 案例:中科润泽鞋业专用ERP(CRS-ERP)在东艺鞋业的成功实施(转)
  9. 2020.12.10【读书笔记】丨Survey二代数据质控
  10. 《萧十一郎》之灵鹫篇——夕阳西下,断肠人在天涯