重磅!刷新两项世界纪录的腾讯优图人脸检测算法DSFD开源了!
近日,知名开源社区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开源了!的更多相关文章
- caffe_实战之两个简单的例子(物体分类和人脸检测)
一.物体分类: 这里使用的是caffe官网中自带的例子,我这里主要是对代码的解释~ 首先导入一些必要的库: import caffe import numpy as np import matplot ...
- 东方超环(EAST)世界纪录
2017年7月3日夜晚,国家大科学装置——世界上第一个全超导托卡马克(EAST)东方超环再传捷报:实现了稳定的101.2秒稳态长脉冲高约束等离子体运行,创造了新的世界纪录.这标志着EAST成为了世界上 ...
- [APIO2018]铁人两项 --- 圆方树
[APIO2018] 铁人两项 题目大意: 给定一张图,问有多少三元组(a,b,c)(a,b,c 互不相等)满足存在一条点不重复的以a为起点,经过b,终点为c的路径 如果你不会圆方树 ------- ...
- 世界视频编码器大赛结果揭晓,腾讯V265编码器勇夺两项第一
2019年10月22日,由莫斯科国立大学(Moscow State University)举办的MSU世界视频编码器大赛成绩揭晓, 腾讯内部开源协同的V265编码器再创佳绩,一举拿下PSNR(峰值信噪 ...
- 人工机器:NDC-谷歌机器翻译破世界纪录,仅用Attention模型,无需CNN和RNN
终于找到ML日报的微信链接,抄之...................................... 请拜访原文链接:[谷歌机器翻译破世界纪录]仅用Attention模型,无需CNN和RNN. ...
- 阿里巴巴AI夺肝结节诊断两项世界冠军,至今无人超越
在澳门用人工智能预测流感趋势后,阿里巴巴还在继续探索如何用科技保障人类健康,这一次是更准确地测量肝结节. 12月28日消息,在全球LiTS(Liver Tumor Segmentation Chall ...
- 存储区更新、插入或删除语句影响到了意外的行数(0)。实体在加载后可能被修改或删除。刷新 ObjectStateManager 项。
在用asp.net MVC3 的MusicStore时候 Edit某个数据项时提示下面的错误: 存储区更新.插入或删除语句影响到了意外的行数(0).实体在加载后可能被修改或删除.刷新 ObjectSt ...
- Word Flow:创造吉尼斯世界纪录的触屏文本输入的全新体验——微软Windows Phone 8.1系统倾情巨献
Flow:创造吉尼斯世界纪录的触屏文本输入的全新体验--微软Windows Phone 8.1系统倾情巨献" title="Word Flow:创造吉尼斯世界纪录的触屏文本输入的全 ...
- Java程序员的两项通用能力
工作这几年来,经历了很多.从小白到中级(手机里有一款叫中国象棋的游戏,里面给对弈中电脑水平分为小白.菜鸟.新手.入门.初级.中级.高级.大师.特级大师,编程我暂且按照这样来区分). 学校教给我的是从小 ...
随机推荐
- C++扬帆远航——17(递归函数求阶乘)
/* * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:阶乘.cpp * 作者:常轩 * 微信公众号:Worldhell ...
- USB小白学习之路(11) Cy7c68013A驱动电路设计注意事项(转)
Cy7c68013A驱动电路设计注意事项 转自:http://group.chinaaet.com/116/79029#0-tsina-1-71467-397232819ff9a47a7b7e80a4 ...
- jquery 获取css3 transform 值
最近写了个旋转,有要求获取transform值.当看到console.log($("#id").css("transform"))的值的时候,我的内心是崩溃的 ...
- ALSA 声卡 驱动 linux 4.1.36 中变化
linux 4.1.36 中变化 1ret = request_irq(IRQ_DMA2, s3c2440_dma2_irq, IRQF_DISABLED, "myalsa for play ...
- 如何创建一个自定义的`ErrorHandlerMiddleware`方法
在本文中,我将讲解如何通过自定义ExceptionHandlerMiddleware,以便在中间件管道中发生错误时创建自定义响应,而不是提供一个"重新执行"管道的路径. 作者:依乐 ...
- C++ 随机函数/伪随机函数
使用rand()函数时,每次随机数都是固定(伪随机数),在前面加上以下函数,每次生成的随机数为随机, srand((int)time(NULL)); rand();
- Django 中自定义用户模型及集成认证授权功能总结
1. 概述 Django 中的 django.contrib.auth 应用提供了完整的用户及认证授权功能. Django 官方推荐基于内置 User 数据模型创建新的自定义用户模型,方便添加 bir ...
- (转)协议森林05 我尽力 (IP协议详解)
协议森林05 我尽力 (IP协议详解) 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! IPv4与IPv6头部的对比 我们已经在I ...
- PostgreSQL查询表以及字段的备注
目录 查询所有表名称以及字段含义 查看所有表名 查看表名和备注 查看特定表名备注 查看特定表名字段 查询所有表名称以及字段含义 select c.relname 表名,cast(obj_descrip ...
- Angular介绍
Angulay介绍 1.介绍:是一个用于Html和TypeScript构建客户端应用平台与框架.Angular 本身就是用 TypeScript 写成的.基本构造块是 NgModule,它为组件提供了 ...