达摩院WIDER FACE榜首近两年人脸检测MogFace CVPR论文深入解读

news2024/12/24 8:14:03

一、开源

1.)论文链接:https://openaccess.thecvf.com/content/CVPR2022/papers/Liu_MogFace_Towards_a_Deeper_Appreciation_on_Face_Detection_CVPR_2022_paper.pdf

2.)代码模型:ModelScope 魔搭社区

3.)可玩应用:ModelScope 魔搭社区

二、背景

        人脸检测算法是在一幅图片或者视频序列中检测出来人脸的位置,给出人脸的具体坐标,一般是矩形坐标。它是人脸关键点、属性、编辑、风格化、识别等模块的基础。本文通过实验观察发现,对应设计出如下三个模块构建出一个高性能的人脸检测器MogFace:1.)动态标签分配策略(dynamic label assignment),2.)误检上下文相关性分析(FP context analysis),3.)金字塔层级监督信号分配(pyramid layer level GT assignment)。该方法的模型在WIDER FACE榜单上取得了截止目前将近两年的六项第一。

三、观察

1.1 动态标签分配策略(dynamic label assignment)

         为每个anchor点定义cls和reg目标是训练检测器的必要过程,在人脸检测中这个过程称之为标签分配(Label Assignment)。最近,标签分配吸引了诸多研究人员的注意,在人脸检测及通用物体检测领域提出了一系列方法,例如:OTA、PAA,ATSS以及HAMBox。 如示例图(a),标签分配过程依赖4个元素。分别是:1.)offline information: a.)IoU (anchor与ground-truth框的IoU) , b.)CPD (anchor与ground-truth中心点的距离) ,2.)online information: a.)PCS (cls分支对anchor的前景分类概率值) ,b.)PLC (reg分支对anchor的预测坐标值)。

        但是,目前的标签分配方法存在三个问题。1.)若只用offline information做静态标签分配,那么会有很多具备更强回归能力的negative anchor无法被有效利用起来,会导致标签分配策略欠饱和。2.)若过度信任online information动态调整正负anchor时(如OTA和Hambox),由于online information属于预测信息可信度不高,会导致标签分配策略错误多, 极端情况下会陷入trivial 的分配结果。 3.) 若引入大量超参 (K in ATSS, alpha in OTA)做标签分配,则当数据集分布发生变化时,需要大量的调参时间。

1.2 误检上下文相关性分析(FP context analysis)

        在实际应用中,人脸检测器并不会十分care AP的指标,而对误检(false positive [FP])的数量十分敏感。针对这个问题,目前的做法是收集大量带有FP的图片去fine-tune或者from scratch训练检测器,来帮助检测器了解更多范式的FP,但是我们发现有些频繁出现在训练集中的的FP在这种策略下无法有效解决。这篇文章,我们发现了一个有趣的现象:对于同一个FP,当它的context发生变化时,对于同一个检测器来说它可能就不是FP了。如下图(c),最左面的图片里日历是FP,剩余两张日历都不是FP。

1.3 金字塔层级监督信号分配(pyramid layer level GT assignment)

        scale-level 数据增强策略常常作通用物体检测以及人脸检测中解决scale variance主要手段。如图(b)所示,相对于COCO,人脸检测数据集Wider Face 中人脸的尺度分布更为严峻。为此,我们分提出了一个新的问题,如何合理的分配ground-truth 在不同pyramidlayer上的分布?即检测器的性能与每个pyramidlayer匹配ground-truth的个数之间的关系是什么?是否越多越好?通过严格的对比实验我们发现:对于所有的pyramid layer来说,并不是这个pyramid layer匹配到越多的ground-truth就越好。这说明要挖掘每一个pyramidlayer的最好性能,需要控制在这个pyramidlayer上的ground-truth分配的比例。

四、方法

2.1 Adaptive Online Incremental Anchor Mining Strategy (Ali-AMS)

        针对上述动态标签分配策略(dynamic label assignment)观察分析,本文提出了在里面一种自适应的在线增量锚挖掘策略(Ali-AMS),它基于standard anchor matching 策略,并进一步adaptive 帮助outlier face匹配anchor。如下:

2.2 Hierachical Context-Aware Module (HCAM)

        基于上述误检上下文相关性分析(FP context analysis)观察分析,发现对于同一个FP,当它的context发生变化时,对于同一个检测器来说他可能就不是FP了,我们进一步提出了一个two-step的模块来显示的encode context 信息来帮助区分FP和TP,显著减少了FP的数量。

2.3 Selective Scale Enhancement Strategy (SSE)

        基于上述的金字塔层级监督信号分配(pyramid layer level GT assignment)观察分析,发现对于所有的pyramid layer来说,并不是这个pyramid layer匹配到越多的ground-truth就越好,我们提出通过控制pyramid layer 匹配的ground-truth的数量来最大化pyramid layer 的性能。

五、实验

3.1 Ablation Study

3.2 Comparison with sota

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/32228.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

新知实验室_初探腾讯云音视频

本文目标: 了解 TRTC 的基本概念 初步运行 demo 调用 API 完成进入视频房间 完成多人进入同一房间 一、腾讯 TRTC 可能有些同学并不知道 RTC 的相关概念, 这里先简单说一下。 WebRTC(web Real-Time Communication) 是指网站实时音视频通话技术。 这项技…

Shopro商城 高级版 Fastadmin和Uniapp进行开发的多平台商城(微信公众号、微信小程序、H5网页、Android-App、IOS-App)

Shopro商城无加密的开源源码(可用于自营外包项目(多主体)、可用于外包定制开发项目) shopro 商城,一款基于 uni-app 的前端模板商城。目前适配了(小程序apph5公众号)。 主要功能:登录、注册、签到、富文本、分类、购物车、筛选、…

CI/CD docker compose 部署 humpback - single mode

最近想搭一搭个人服务器,其中有很多东西都是通过 docker 来管理,每次都手动输入命令比较麻烦,需要一个轻量级的容器管理工具来直观轻松的管理容器和镜像。于是便相中了 humpback。 Humpback humpback 相关的详细介绍请自助传送 架构 主要组…

【无线传感器】WSN 查找两个节点之间的最短路径并发送数据(Matlab代码实现)

👨‍🎓个人主页:研学社的博客 💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜…

前后端分离项目,vue+uni-app+php+mysql教室预约系统设计与实现(H5移动项目)

功能模块 【后台管理功能模块】 系统设置:设置关于我们、联系我们、加入我们、法律声明 广告管理:设置小程序首页轮播图广告和链接 留言列表:所有用户留言信息列表,支持删除 会员列表:查看所有注册会员信息&#xff0c…

【力扣】787. K 站中转内最便宜的航班加权——有向图最短路径

前言 我感觉这题比较有代表性,所以记录一下,这题是加权有向图中求最短路径的问题。 题目 787. K 站中转内最便宜的航班 动态规划 假设有一条路径是[src, i, ..., j, dst],解法一子问题的定义是[src, i, ..., j],解法二子问题…

面经汇总--校招--北京顺丰同城

文章目录🔥1.一面🔥2.二面🔥3. 三面🔥4. 结果🔥1.一面 你对Spring aop的理解 面向切面编程,可以对某个方法前后加入自己想执行的方法函数。底层是动态代理,默认jdk动态代理,没有实现…

Redis 通用命令(keys,help,mset,exists,expire,ttl,tab补全)

目录 1.help【command】 2.tab自动补全 3. KEYS pattern(模板)(不建议再生产环境上使用) 4.del 删除指定的key,value也会删除(也可以批量删除) 5.MSET(批量插入键值对&#xf…

【C语言】反序加密(非文件)

《算法集训传送门》 👉引言 铭记于心🎉✨🎉我唯一知道的,便是我一无所知🎉✨🎉💖 ❄️我们的算法之路❄️💖众所周知,作为一名合格的程序员,算法 能力 是不可…

Python OpenCV实现鼠标绘制矩形框和多边形

Python OpenCV实现鼠标绘制矩形框和多边形 目录 Python OpenCV实现鼠标绘制矩形框和多边形 1. OpenCV鼠标事件操作说明 (1)setMouseCallback函数说明 (2)回调函数onMouse说明 (3)event 具体说明&…

Flutter高仿微信-第24篇-隐私政策

Flutter高仿微信系列共59篇,从Flutter客户端、Kotlin客户端、Web服务器、数据库表结构、Xmpp即时通讯服务器、视频通话服务器、腾讯云服务器全面讲解。 详情请查看 效果图: 实现代码: /*** 显示服务条款、隐私政策对话框*/ static void show…

如何修复老照片?这三个方法建议收藏

当你在图书馆查阅一些资料时,会发现里面有许多的老照片,通过这些老照片我们能大概了解到那个时期的建筑特色、人们的穿衣特色等等。但由于那个时候的照片只有黑白,再加上时间悠久,老照片已经过于模糊了,影响到我们进行…

线性回归的梯度下降法——机器学习

一、实验内容 理解单变量线性回归问题;理解最小二乘法;理解并掌握梯度下降法的数学原理;利用python对梯度下降法进行代码实现; 二、实验过程 1、算法思想 梯度下降法是一阶最优化算法。 要使用梯度下降法找到一个函数的局部极小值…

Docker学习(3)—— 将容器转化为新的镜像,并将新镜像发布到阿里云公共仓库或私有仓库

一. 将容器转化为镜像 使用docker pull命令从远程仓库下载的镜像为base镜像,只具有最小的内核。我们可以在base镜像上安装其他工具,将其生成为一个新的镜像。相当于可以在原始的基础镜像上一层一层添加。 例如:下载一个centos的镜像&#x…

kibana 操作elasticsearch索引

前言 使用kibana可以很方便的对es进行各种操作,比如创建索引,删除索引,查询文档等,本篇先演示如何基于kibana 对es的索引进行常见的操作。 环境准备 请提前安装好es和kibana,可以参考 docker搭建es kibana操作es索引…

进销存商城前几名的运营方法|三招提高微信商城用户黏性

你有没有感到奇怪,明明是差不多装修,为什么有的微信商城只能和用户做成“单次消费行为”,但有的微信商城能让用户在他家复购一次两次三次? 这其实都跟用户忠诚度有关。进入存量时代后,维护好老用户就成为门店经营不可…

如何配置 ESXi 主机管理网络?

配置 ESXi 主机管理网络 VMware ESXi管理网络提供ESXi主机和客户端之间的通信。在服务器上安装 ESXi 虚拟机监控程序后,将通过动态主机配置协议(DHCP)获得ESXi管理IP。你可能需要配置ESXi主机的静态管理IP和主机名。按照以下指南配置ESXi管理网络,以便你可以通过域名而不是…

Apache ShenYu ModifyResponse插件使用

Apache ShenYu网关使用手册1 介绍1.1 概念1.2 特性1.3 架构图2 运行2.1 运行先决条件2.1 本地运行3 插件使用3.1 ModifyResponse插件3.1.1 插件名称3.1.2 适用场景3.1.3 插件功能3.1.4 插件代码3.1.5 如何使用插件3.1.5.1 插件使用流程图3.1.5.2 接入SpringBoot应用改造3.1.5.3…

kali没有wlan0

kali没有wlan0解决方案 第一步ifconfig发现没有wlan0 使用wget下载无线设备 命令如下: wget https://mirror2.openwrt.org/sources/compat-wireless-2010-06-28.tar.bz2 3. 解压刚才下载的压缩包: tar -xjvf compat-wireless-2010-06-28.tar.bz2 进…

【Leetcode】拿捏链表(三)——CM11 链表分割(牛客)、OR36 链表的回文结构(牛客)

作者:一个喜欢猫咪的的程序员 专栏:《Leetcode》 喜欢的话:世间因为少年的挺身而出,而更加瑰丽。 ——《人民日报》 目录 CM11 链表分割 OR36 链表的回文结构 CM11 链表分割 链表分割_牛客题霸…