【人脸检测】学界 | 中科院自动化研究所提出 FaceBoxes:实时、高准确率的 CPU 面部检测器

本文主要是介绍【人脸检测】学界 | 中科院自动化研究所提出 FaceBoxes:实时、高准确率的 CPU 面部检测器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

要想用神经网络有效地进行面部检测等操作,往往需要 GPU 等高速并行的计算设备。如果仅使用 CPU,往往会遇到速度与准确度不能兼得的困境。为了解决这个问题,中国科学院自动化研究所和中国科学院大学的研究者提出了一种名叫 FaceBoxes 的新方法,在保证了 CPU 面部识别的准确度的同时,还做到了实时处理。机器之心对该研究进行了摘要介绍。

论文:一种使用 CPU 的高准确度实时面部检测器(FaceBoxes: A CPU Real-time Face Detector with High Accuracy)

论文地址:https://arxiv.org/abs/1708.05234

尽管面部检测领域已经取得了巨大的进展,但要在 CPU 上满足高表现水平的同时实现实时的速度仍然还是一个悬而未决的难题,因为用于面部检测的有效模型往往需要过高的计算基础。为了解决这个难题,我们提出了一种全新的面部检测器 FaceBoxes,它在速度和准确度上都表现优异。具体而言,我们的方法具有轻量却又强大的网络结构,它由快速消化的卷积层(RDCL:Rapidly Digested Convolutional Layers)和多尺度卷积层(MSCL:Multiple Scale Convolutional Layers)构成。RDCL 可以让 FaceBoxes 在 CPU 上实现实时的速度;而 MSCL 的目的是在不同层上丰富感受野(receptive field)和离散化 anchor,以便处理不同尺度的面部。此外,我们还提出了一种新的 anchor 密度化策略,可以让图像上不同类型的 anchor 具有相同的密度,这可以显著提升小面部的召回率。由此,我们提出的这个检测器在 VGA 分辨率的图像上可以在单核 CPU 上以 20 FPS 的速度运行,也可在单个 GPU 上以 125 FPS 的速度运行。此外,FaceBoxes 的速度不会因人脸的数量发生改变。我们对这种方法进行了全面的评估,并且在 AFW、PASCAL 人脸数据集和 FDDB 等多个面部检测基准数据集上都得到了当前最佳的检测表现。

图 1:FaceBoxes 的架构以及我们的 anchor 设计的详细信息表

图 2: ( a ) C.ReLU 模块,其中 Negation 只是简单地为 Convolution 的输出乘上 -1。 ( b ) Inception 模块

图 3:anchor 密度化示例。为了清楚说明,我们仅对一个感受野中心(即中心的黑色单元)的 anchor 进行了密度化,并且只标出了对角 anchor 的颜色

表 1:不同方法的整体 CPU 推理时间和 mAP 比较。FPS 是在 CPU 上处理 VGA 分辨率图像的速度,mAP 的意思是在 FDDB 上 1000 个假正例的真正例率。要提一下,STN [ 5 ] 的 mAP 是 179 个假正例的真正例率,并且使用了 ROI 卷积,它的 FPS 可以提速到 30,而召回率仅会降低 0.6%

表 2:FaceBoxes 在 FDDB 数据集上增添不同方法时的结果变化。Accuracy ( mAP ) 表示 1000 个假正例的真正例率。Speed ( ms ) 是在 CPU 上处理 VGA 分辨率图像的速度

图 4:在 AFW 数据集上的精度召回率曲线

图 5:在 PASCAL 人脸数据集上的精度召回率曲线

图 6:在 FDDB 数据集上的评估结果

本文为机器之心编译,转载请联系本公众号获得授权。

这篇关于【人脸检测】学界 | 中科院自动化研究所提出 FaceBoxes:实时、高准确率的 CPU 面部检测器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/670608

相关文章

Go使用pprof进行CPU,内存和阻塞情况分析

《Go使用pprof进行CPU,内存和阻塞情况分析》Go语言提供了强大的pprof工具,用于分析CPU、内存、Goroutine阻塞等性能问题,帮助开发者优化程序,提高运行效率,下面我们就来深入了解下... 目录1. pprof 介绍2. 快速上手:启用 pprof3. CPU Profiling:分析 C

Python自动化处理手机验证码

《Python自动化处理手机验证码》手机验证码是一种常见的身份验证手段,广泛应用于用户注册、登录、交易确认等场景,下面我们来看看如何使用Python自动化处理手机验证码吧... 目录一、获取手机验证码1.1 通过短信接收验证码1.2 使用第三方短信接收服务1.3 使用ADB读取手机短信1.4 通过API获取

Rust中的Drop特性之解读自动化资源清理的魔法

《Rust中的Drop特性之解读自动化资源清理的魔法》Rust通过Drop特性实现了自动清理机制,确保资源在对象超出作用域时自动释放,避免了手动管理资源时可能出现的内存泄漏或双重释放问题,智能指针如B... 目录自动清理机制:Rust 的析构函数提前释放资源:std::mem::drop android的妙

Python自动化Office文档处理全攻略

《Python自动化Office文档处理全攻略》在日常办公中,处理Word、Excel和PDF等Office文档是再常见不过的任务,手动操作这些文档不仅耗时耗力,还容易出错,幸运的是,Python提供... 目录一、自动化处理Word文档1. 安装python-docx库2. 读取Word文档内容3. 修改

Python自动化办公之合并多个Excel

《Python自动化办公之合并多个Excel》在日常的办公自动化工作中,尤其是处理大量数据时,合并多个Excel表格是一个常见且繁琐的任务,下面小编就来为大家介绍一下如何使用Python轻松实现合... 目录为什么选择 python 自动化目标使用 Python 合并多个 Excel 文件安装所需库示例代码

Python如何实现PDF隐私信息检测

《Python如何实现PDF隐私信息检测》随着越来越多的个人信息以电子形式存储和传输,确保这些信息的安全至关重要,本文将介绍如何使用Python检测PDF文件中的隐私信息,需要的可以参考下... 目录项目背景技术栈代码解析功能说明运行结php果在当今,数据隐私保护变得尤为重要。随着越来越多的个人信息以电子形

10个Python自动化办公的脚本分享

《10个Python自动化办公的脚本分享》在日常办公中,我们常常会被繁琐、重复的任务占据大量时间,本文为大家分享了10个实用的Python自动化办公案例及源码,希望对大家有所帮助... 目录1. 批量处理 Excel 文件2. 自动发送邮件3. 批量重命名文件4. 数据清洗5. 生成 PPT6. 自动化测试

MySQL的cpu使用率100%的问题排查流程

《MySQL的cpu使用率100%的问题排查流程》线上mysql服务器经常性出现cpu使用率100%的告警,因此本文整理一下排查该问题的常规流程,文中通过代码示例讲解的非常详细,对大家的学习或工作有一... 目录1. 确认CPU占用来源2. 实时分析mysql活动3. 分析慢查询与执行计划4. 检查索引与表

10个Python Excel自动化脚本分享

《10个PythonExcel自动化脚本分享》在数据处理和分析的过程中,Excel文件是我们日常工作中常见的格式,本文将分享10个实用的Excel自动化脚本,希望可以帮助大家更轻松地掌握这些技能... 目录1. Excel单元格批量填充2. 设置行高与列宽3. 根据条件删除行4. 创建新的Excel工作表5

MySQL分表自动化创建的实现方案

《MySQL分表自动化创建的实现方案》在数据库应用场景中,随着数据量的不断增长,单表存储数据可能会面临性能瓶颈,例如查询、插入、更新等操作的效率会逐渐降低,分表是一种有效的优化策略,它将数据分散存储在... 目录一、项目目的二、实现过程(一)mysql 事件调度器结合存储过程方式1. 开启事件调度器2. 创