当前位置: 首页 > news >正文

曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...

雷锋网(公众号:雷锋网) AI 科技评论按:近年来,卷积神经网络在人脸检测中取得了很大的成功,然而这些方法在处理人脸中多变的尺度,姿态,遮挡,表情,光照等问题时依然比较困难。为此,腾讯优图推出名为 DSFD (中文名为双分支人脸检测器)的全新算法,该算法在著名人脸检测数据集上取得喜人结果,如今腾讯优图决定将之进行开源。

TB1HwQGQlLoK1RjSZFuXXXn0XXa.jpg

腾讯优图的研究员们发现,虽然之前的人脸检测算法大都采用深度学习模型,并在特征学习的过程中也有采用特征金字塔网络(Feature Pyramid Network),但在面对遮挡、暗光、大姿态、小脸等复杂场景时,仍容易出现误检或漏检的情况。因此,在 FPN 基础上,腾讯优图团队采用了 3 种不同级联方式的空洞卷积(Dilated Convolution),设计了特征增强模块 FEM,充分学习到了不同感受野下的人脸特征。

本文提出了一种新的方法,分别处理了人脸检测方向的三个关键点,包括更好的特征学习,渐进式的损失函数设计以及基于锚点分配的数据扩充:

(1)新的「特征增强」模块(FEM:Feature Enhance Module)

FEM 在采用 Top-Down 层间信息融合的同时,在同一「感受野」内做了更多的 enhancement。因此在 width and depth 上学习到了更有效的 context 和 semantic 信息。

(2)「分层锚点渐进」式的代价函数监督(PLA:Progressive Anchor Loss)

模型采用 2 个层级(hierarchy),基于第一层(low-level)和第二层(high-level)的差异性,适配了不同尺寸的 anchor。在训练过程中,PAL 对整个模型形成了更有效的监督。

(3)「改进的锚点匹配策略」(Improved Anchor Matching Strategy)

One-stage detector 由于在输出层分配有密集的 anchor,anchor 与 face 匹配的好坏直接影响训练效果。优图的研究人员 data augmentation 过程中充分考虑了不同大小的 face 和各个 anchor 的关系,提出了一种新的数据扩增法。

TB19jwgi_Zmx1VjSZFGXXax2XXa.jpg

DSFD 算法

该算法已被计算机视觉顶级会议CVPR 2019接收,原文《DSFD: Dual Shot Face Detector》由南京理工大学计算机科学与工程学院 PCALab 与腾讯优图实验室合作完成。

在两个著名的人脸检测数据集 WIDER FACE 和 FDDB 的 5 个评测维度上,DSFD 算法均刷新了当时的世界纪录,取得了 Top1 的人脸检测结果:

TB1DKwAQgTqK1RjSZPhXXXfOFXa.jpg

WIDER FACE 评测结果

TB1RrIIQirpK1RjSZFhXXXSdXXa.jpg

FDDB 评测结果

为了与更多同行探讨 DSFD 算法的实际应用,腾讯优图在近日公布了开源地址:

Github开源地址:https://github.com/TencentYoutuResearch/FaceDetection-DSFD

据了解,目前腾讯优图的人脸检测技术已在安防、金融、社交、交通等多个应用场景落地,并在手机 QQ、微众银行、天天 P 图等多个公司内外部产品上进行应用验证。 

雷锋网 AI 科技评论雷锋网

相关文章:

  • String Boot中@Controller和@RestController的区别?
  • 加入lib
  • form 表单中input 使用disable属性
  • Android 设置按钮为透明
  • 订餐小程序新获利使商家摆脱第三方平台束缚
  • AVR Option -H must not be defined more than once: -H1895 【已解决】
  • 日常问题小记(交接篇)
  • 如何简单的将pdf文件转换成html超文本标记语言
  • css知多少(5)——选择器
  • Flutter完整开发实战详解(十、 深入图片加载流程)
  • 个人支付宝/微信/云闪付收款技术总览
  • [LeetCode] Wildcard Matching
  • Linux之编程进阶(函数、trap信号捕捉、数组、字符串处理...)
  • 子元素浮动后,父元素高度自动增加
  • 【高级数据类型2】- 8. 结构体和方法
  • Android Volley源码解析
  • co.js - 让异步代码同步化
  • IDEA 插件开发入门教程
  • Octave 入门
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • Python_网络编程
  • Python实现BT种子转化为磁力链接【实战】
  • vue2.0项目引入element-ui
  • 阿里云Kubernetes容器服务上体验Knative
  • 闭包,sync使用细节
  • 猴子数据域名防封接口降低小说被封的风险
  • 记录一下第一次使用npm
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 如何选择开源的机器学习框架?
  • 原生Ajax
  • 再次简单明了总结flex布局,一看就懂...
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • # 计算机视觉入门
  • #我与Java虚拟机的故事#连载06:收获颇多的经典之作
  • (5)STL算法之复制
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级
  • (原創) 物件導向與老子思想 (OO)
  • (转)详解PHP处理密码的几种方式
  • *++p:p先自+,然后*p,最终为3 ++*p:先*p,即arr[0]=1,然后再++,最终为2 *p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1]
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .NET 2.0中新增的一些TryGet,TryParse等方法
  • .Net 基于MiniExcel的导入功能接口示例
  • .net 前台table如何加一列下拉框_如何用Word编辑参考文献
  • .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary)
  • .Net多线程Threading相关详解
  • .NET正则基础之——正则委托
  • .NET中的Event与Delegates,从Publisher到Subscriber的衔接!
  • .Net转前端开发-启航篇,如何定制博客园主题
  • /dev/VolGroup00/LogVol00:unexpected inconsistency;run fsck manually