重磅!刷新两项世界纪录的腾讯优图人脸检测算法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程序员的两项通用能力
工作这几年来,经历了很多.从小白到中级(手机里有一款叫中国象棋的游戏,里面给对弈中电脑水平分为小白.菜鸟.新手.入门.初级.中级.高级.大师.特级大师,编程我暂且按照这样来区分). 学校教给我的是从小 ...
随机推荐
- OpenCV读一张图片并显示
Java 版本: JavaCV 用OpenCV读一张图片并显示.只需将程序运行时的截图回复.如何安装配置创建项目编写OpenCV代码,可参考何东健课件和源代码或其他资源. package com.gi ...
- iMX287A多种方法实现流水灯效果
目录 1.流水灯在电子电路中的地位 2.硬件电路分析 3.先点个灯吧 4.shell脚本实现流水灯 5.ANSI C文件操作实现流水灯 6.Linux 系统调用实现流水灯 @ 1.流水灯在电子电路中的 ...
- Java并发编程(01):线程的创建方式,状态周期管理
本文源码:GitHub·点这里 || GitEE·点这里 一.并发编程简介 1.基础概念 程序 与计算机系统操作有关的计算机程序.规程.规则,以及可能有的文件.文档及数据. 进程 进程是计算机中的程序 ...
- NLP(二十二)利用ALBERT实现文本二分类
在文章NLP(二十)利用BERT实现文本二分类中,笔者介绍了如何使用BERT来实现文本二分类功能,以判别是否属于出访类事件为例子.但是呢,利用BERT在做模型预测的时候存在预测时间较长的问题.因此 ...
- SPA那点事
前端猿一天不学习就没饭吃了,后端猿三天不学习仍旧有白米饭摆于桌前.IT行业的快速发展一直在推动着前端技术栈在不断地更新换代,前端的发展成了互联网时代的一个缩影.而单页面应用的发展给前端猿分了一杯羹. ...
- 初窥构建之法——记2020BUAA软工个人博客作业
项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任建) 这个作业的要求在哪里 个人博客作业 我在这个课程的目标是 完成一次完整的软件开发经历并以博客的方式记录开发过程的心得掌握 ...
- PYTHON程序设计实验
Python程序设计实验报告一: 熟悉IDLE和在线编程平台 安徽工程大学 Python程序设计实验报告 班级 物流191 姓名 邹缕学号 3190505117成绩 ▁▁▁ 日期 2020.3.5 指 ...
- SpringBoot1.5.10.RELEASE配置mybatis的逆向工程
在application.properties配置扫描等,不做多说 1.在pom配置文件中引入mybatis和mysql的依赖,如下: <dependency> <groupId&g ...
- 必备技能七、Vuex
这段时间一直在用vue写项目,vuex在项目中也会依葫芦画瓢使用,但是总有一种朦朦胧胧的感觉.于是决定彻底搞懂它. 看了一下午的官方文档,以及资料,才发现vuex so easy! 作为一个圈子中的人 ...
- JS如何进行对象的深克隆(深拷贝)?
JS中,一般的赋值传递的都是对象/数组的引用,并没有真正的深拷贝一个对象,如何进行对象的深拷贝呢? var a = {name : 'miay'}; var b = a; b.name = 'Jone ...