当前位置: 首页 > 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. 结构体和方法
  • “大数据应用场景”之隔壁老王(连载四)
  • JWT究竟是什么呢?
  • LintCode 31. partitionArray 数组划分
  • ng6--错误信息小结(持续更新)
  • Sass Day-01
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 如何使用 JavaScript 解析 URL
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 通过几道题目学习二叉搜索树
  • 因为阿里,他们成了“杭漂”
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • ​Linux·i2c驱动架构​
  • #### go map 底层结构 ####
  • #stm32整理(一)flash读写
  • (04)odoo视图操作
  • (2)STM32单片机上位机
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016
  • (七)理解angular中的module和injector,即依赖注入
  • (四)Linux Shell编程——输入输出重定向
  • (一)VirtualBox安装增强功能
  • (原創) 未来三学期想要修的课 (日記)
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .md即markdown文件的基本常用编写语法
  • .NET 使用 XPath 来读写 XML 文件
  • .Net7 环境安装配置
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试
  • ;号自动换行
  • @require_PUTNameError: name ‘require_PUT‘ is not defined 解决方法
  • [Android 13]Input系列--获取触摸窗口
  • [BUUCTF 2018]Online Tool
  • [C#]OpenCvSharp结合yolov8-face实现L2CS-Net眼睛注视方向估计或者人脸朝向估计
  • [CentOs7]搭建ftp服务器(2)——添加用户
  • [IE编程] 打开/关闭IE8的光标浏览模式(Caret Browsing)
  • [iHooya]2023年1月30日作业解析
  • [java/jdbc]插入数据时获取自增长主键的值
  • [JavaWeb]—Spring入门
  • [LeetCode] 2.两数相加