近日,知名开源社区Github上有个名为DSFD(Dual Shot Face Detector)的算法引起了业内关注,它正是来自于腾讯优图。目前,该算法已经被计算机视觉顶级会议CVPR 2019接收,并且在2018年10月刷新了两个权威的人脸检测数据集WIDER FACE和FDDB上的新纪录。

Github开源地址:

https://github.com/TencentYoutuResearch/FaceDetection-DSFD

论文公开地址:https://arxiv.org/abs/1810.10220

“三点创新”打造人脸检测领域最值得参考的代码

人脸检测算法是在图像上,检测出人脸的位置(通常以矩形框形式输出),是人脸配准、人脸属性识别、人脸核身、人脸检索等技术的基础。优图此次提出的DSFD人脸检测算法,主要有3点创新:

(1)设计了一种新的“特征增强”模块(FEM:Feature Enhance Module)

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

(2)提出了“分层锚点渐进”式的代价函数监督(PAL: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的关系,提出了一种新的数据扩增方法。

(算法整体流程图)

效果提升,来自优图不断的研究

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

(复杂场景下的人脸检测效果展示)

然而,在新算法探索的过程中,并不是一帆风顺的。这个项目从去年7月中旬启动,进行到第三周,检测效果已经在top5了,但优图的研究员们清楚,到这里还远远不够。在接下来的两个多月里,想要提升效果却越来越难。就好像爬山,前面爬得很快,越到后面,对耐力和决心的要求就越高,腾讯优图高级研究员Casey回忆道:“那段时间,我和其他几位同事实验了很多方案,很多时候是多个方案同时跑,甚至有些方案跑了4-5天后,发现失败了,又得做新的尝试。”失败后,几个研究员就近在工位旁边的玻璃房里,一起分析原因,开始摸索下一套试跑方案。在3个多月的反复“试跑-推翻-试跑”中,最后终于跑出一套大家都满意的算法。不负所望,该算法论文也已被CVPR2019接收。

走出实验室,为业务创造价值;

代码开源,与同行共同探讨

算法从实验室走出来,不是立马就能直接套用到业务里。事实上,论文里的模型通常比较大,导致实时性不好。在使用时,需结合实际应用情况压缩、裁剪,整体模型会做一定的调整。目前,腾讯优图的人脸检测技术已在安防、金融、社交、交通、零售等多个应用场景落地,并在手机QQ、微众银行、天天P图等多个公司内外部产品上进行应用验证。以安防领域为例,腾讯优图天眼智能安防平台以警务、安防需求为导向,是优图团队面向稽查布控、刑侦办案、社会安防等多场景推出智能化海量人脸检索解决方案。

(腾讯优图天眼智能安防平台)

2017年,腾讯对外开源节奏开始加快,主要覆盖AI、云计算、腾讯游戏、腾讯安全、小程序等相关领域。而腾讯优图的计算机视觉技术的开源更是其中重要的一环。2017年7月,腾讯优图首个AI开源项目NCNN已经正式开源,这是一个为移动端极致优化的高性能神经网络前向的计算框架,是业内首个为移动端优化的开源神经网络推断库。2018年,NCNN宣布正式加入ONNX,截止目前,NCNN的Github star数已接近6000。随着计算机视觉技术的不断开源, AI开发者能更快实现从研究到模型的落地部署,也能更方便地在不同框架间切换,为每项任务选取最优的开发工具。相信随着越来越多的AI机构、企业和个人的算法开源,将驱动整个AI研究更快发展和落地。

欢迎关注磐创博客资源汇总站:http://docs.panchuang.net/

欢迎关注PyTorch官方中文教程站:http://pytorch.panchuang.net/

重磅!刷新两项世界纪录的腾讯优图人脸检测算法DSFD开源了!的更多相关文章

  1. caffe_实战之两个简单的例子(物体分类和人脸检测)

    一.物体分类: 这里使用的是caffe官网中自带的例子,我这里主要是对代码的解释~ 首先导入一些必要的库: import caffe import numpy as np import matplot ...

  2. 东方超环(EAST)世界纪录

    2017年7月3日夜晚,国家大科学装置——世界上第一个全超导托卡马克(EAST)东方超环再传捷报:实现了稳定的101.2秒稳态长脉冲高约束等离子体运行,创造了新的世界纪录.这标志着EAST成为了世界上 ...

  3. [APIO2018]铁人两项 --- 圆方树

     [APIO2018] 铁人两项 题目大意: 给定一张图,问有多少三元组(a,b,c)(a,b,c 互不相等)满足存在一条点不重复的以a为起点,经过b,终点为c的路径 如果你不会圆方树 ------- ...

  4. 世界视频编码器大赛结果揭晓,腾讯V265编码器勇夺两项第一

    2019年10月22日,由莫斯科国立大学(Moscow State University)举办的MSU世界视频编码器大赛成绩揭晓, 腾讯内部开源协同的V265编码器再创佳绩,一举拿下PSNR(峰值信噪 ...

  5. 人工机器:NDC-谷歌机器翻译破世界纪录,仅用Attention模型,无需CNN和RNN

    终于找到ML日报的微信链接,抄之...................................... 请拜访原文链接:[谷歌机器翻译破世界纪录]仅用Attention模型,无需CNN和RNN. ...

  6. 阿里巴巴AI夺肝结节诊断两项世界冠军,至今无人超越

    在澳门用人工智能预测流感趋势后,阿里巴巴还在继续探索如何用科技保障人类健康,这一次是更准确地测量肝结节. 12月28日消息,在全球LiTS(Liver Tumor Segmentation Chall ...

  7. 存储区更新、插入或删除语句影响到了意外的行数(0)。实体在加载后可能被修改或删除。刷新 ObjectStateManager 项。

    在用asp.net MVC3 的MusicStore时候 Edit某个数据项时提示下面的错误: 存储区更新.插入或删除语句影响到了意外的行数(0).实体在加载后可能被修改或删除.刷新 ObjectSt ...

  8. Word Flow:创造吉尼斯世界纪录的触屏文本输入的全新体验——微软Windows Phone 8.1系统倾情巨献

    Flow:创造吉尼斯世界纪录的触屏文本输入的全新体验--微软Windows Phone 8.1系统倾情巨献" title="Word Flow:创造吉尼斯世界纪录的触屏文本输入的全 ...

  9. Java程序员的两项通用能力

    工作这几年来,经历了很多.从小白到中级(手机里有一款叫中国象棋的游戏,里面给对弈中电脑水平分为小白.菜鸟.新手.入门.初级.中级.高级.大师.特级大师,编程我暂且按照这样来区分). 学校教给我的是从小 ...

随机推荐

  1. python之面向对象02

    在python中方法名如果是__xxxx__()的,那么就有特殊的功能,因此叫做“魔法”方法 1. __init__()方法 class Cat: def __init__(self,newname, ...

  2. day05基本运算符,格式化输出,垃圾回收机制

    内容大纲:1.垃圾回收机制详解(了解) 引用计数 标记清除 分代回收 2.与用户交互 接收用户输入 # python3中 input # python2.7(了解) input raw_input 格 ...

  3. vue 项目总结,以及对未来的理解,对性能方面的认知

    之前自己写了一个vue项目,因为没有经验,所以很多方面的提升做的不好,比如说路由.比如说ajax都没有封装,比如说业务逻辑和通用逻辑都混合在一起,导致大片大片重复的代码累积.忽悠忽悠没入门的前端感觉还 ...

  4. ES6拓展的对象功能

    前言:因为之前看过很多的博客啊,书籍啊但是最后都雁过无痕,再问我基本没什么印象,所以就迫使自己看书的时候记点笔记,因为懒得写字[捂脸],现在是打字比写字要快好多,所以就写博客吧! ES6规范明确定义了 ...

  5. 在Linux上查询物理机信息-不用去拆机器了

    目录 一.查看系统信息(包含机器型号) 1.1 查看机型和品牌 二.查看CPU 信息 2.1 查看CPU 型号 2.2 查看CPU的物理数量 2.3 查看 CPU核心数量(非逻辑CPU) 2.4 查看 ...

  6. C语言程序设计(七) 函数

    第七章 函数 分而治之: 把较大的任务分解成若干较小.较简单的任务,并提炼出公用任务的方法 函数是C语言中模块化程序设计的最小单位,既可以把每个函数都看作一个模块,也可以将若干相关的函数合并成一个模块 ...

  7. 将python的字典格式数据写入excei表中

    上面的为最终结果 import requests import re import xlwt import json # 导入必须的包: xlwt,json,requests,re. headers ...

  8. mysql那些事之索引篇

    mysql那些事之索引篇 上一篇博客已经简单从广的方面介绍了一下mysql整体架构以及物理结构的内容. 本篇博客的内容是mysql的索引,索引无论是在面试还是我们日常工作中都是非常的重要一环. 索引是 ...

  9. 浅谈CSRF(跨站请求伪造)攻击方式

    一.CSRF是什么? CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSR ...

  10. linux svn切换用户

    1. 临时切换 在所有命令下强制加上--username 和--password选项. 例如:svn up --username zhangsan --password 123456 2.永久切换 删 ...