【人脸检测】——Sample and Computation Redistribution for Efficient Face Detection论文简读

人脸检测

摘要

在非受控人脸检测方面已经取得了巨大的进步,但低计算成本和高精度的高效人脸检测仍然是一个开放的挑战。作者提出了两种简单而有效的方法:样本再分配(SR)和计算再分配(CR)。在WIDER FACE上进行的大量实验表明,所提出的SCRFD家族具有SOTA的效率和精度权衡。特别是,SCRFD-34GF的性能比最好的竞争对手TinaFace高出3.86%,同时在VGA分辨率图像的gpu上比TinaFace快3倍以上。

1. 简介

图像分辨率的影响
直接将分类网络的主干用于目标检测是次优的。最近的CR-NAS重新分配了不同分辨率之间的计算。这基于观察到计算在不同分辨率之间的分配对有效感受野(ERF)有很大影响,并影响检测性能。在BFbox中,由于COCO和WIDER FACE之间存在巨大的尺度分布差距,因此观察到相同的主干在COCO上的一般目标检测任务和WIDER FACE上的人脸检测任务之间表现不一致。基于这一观察,BFbox设计了一个面向人脸的搜索空间,包括主干和颈部。ASFD发现在目标检测中常用的特征增强模块,在人脸上并不一定有效

本文中探索了在固定的VGA分辨率(即640×480)下进行高效的人脸检测,而不是使用大尺度进行测试,以降低计算成本。在这种尺度设置下,WIDER FACE中的大多数人脸(78.93%)小于32×32像素,因此它们由浅层阶段预测。为了在这些浅层阶段获得更多的训练样本,作者首先提出了一种通过**大型裁剪策略进行样本再分配(SR)**的方法。

2. TinaFace 回顾

a. 不同尺度精度图
b. 不同stage的计算量
在这里插入图片描述
68%计算量主要来自于1/4 scale的head部分,head部分占了整个网络的79%

3. 方法

基于对TinaFace的上述分析和以下精心的实验,作者在人脸检测设计上提出了以下效率改进,条件是(1)测试尺度限制在VGA分辨率(640)内,(2)步幅为4的特征图上没有锚点。具体而言,作者在步幅为8的特征图上铺设{16,32}的锚点,在步幅为16的特征图上铺设{64,128}的锚点,在步幅为32的特征图上铺设{256,512}的锚点。由于测试尺度较小,大多数人脸将在步幅为8的位置预测。因此,作者首先调查了不同尺度特征图之间正训练样本的再分配(第4.1节)。然后,作者探索了不同尺度特征图之间以及不同组件(即主干、颈部和头部)之间的计算再分配,给定预定义的计算预算。

3.1 样本采样

在这里插入图片描述
在训练数据增强期间,从原始图像中裁剪出正方形块,其随机大小来自原始图像短边的[0.3,1.0]集合。为了为步幅8生成更多的正样本,作者将随机大小范围从[0.3,1.0]扩大到[0.3,2.0]。当裁剪框超出原始图像时,平均RGB值填充缺失的像素。如图4(a)所示,在使用所提出的大型裁剪策略后,32以下的人脸更多。此外,尽管在大型裁剪策略下会有更多极小的人脸(例如<4×4),但由于锚匹配不成功,这些地面真实人脸将在训练期间被忽略。如图4(b)所示,在一个时期内,尺度为16的正锚点从72.3K增加到118.3K,尺度为32的正锚点从95.9K增加到115.1K。通过将更多训练样本重新分配到小尺度,检测微小人脸的分支可以得到更充分的训练。

3.2 模型结构搜索
xxxx省略

4. 实验

结果
在这里插入图片描述
其他模型只是用原始预训练的模型,并没有在VGA尺度上微调。那和SCRFD比较应该不公平。

消融实验
在这里插入图片描述
小尺寸采样策略提点明显。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AI失业潮来袭,某些部门裁员过半

历史的车轮滚滚向前&#xff0c;每次生产力的大幅跃进&#xff0c;都会造成一批失业潮。想当年&#xff0c;纺纱机的出现让无数手工作坊的织布师傅失业。如今&#xff0c;在AI技术的催化下&#xff0c;同样的事正在互联网行业的各个领域重演。 疯狂的裁员浪潮 “AI15秒做的&am…

np.convolve(x,h, mode=‘##‘)的使用

用法&#xff1a; np.convolve(a,v,mode) a代表卷积数据&#xff0c;v卷积核大小&#xff0c;mode卷积方式&#xff0c;mode卷积方式有三种 same full valid mode可能的三种取值情况&#xff1a; full’ 默认值&#xff0c;返回每一个卷积值&#xff0c;长度是NM-1,在卷积的…

【策略设计模式详解】C/Java/JS/Go/Python/TS不同语言实现

简介 策略模式&#xff08;Strategy Pattern&#xff09;属于行为型设计模式。将每一个算法封装到具有共同接口的独立类中&#xff0c;根据需要来绑定策略&#xff0c;使得具体实现和策略解耦。 当你想使用对象中各种不同的算法变体&#xff0c;使用if...else 所带来的复杂和…

Python入门教程+项目实战-11.5节: 程序实战-选择排序算法

目录 11.5.1 排序算法简介 11.5.2 选择排序算法 11.5.3 系统学习python 11.5.1 排序算法简介 所谓排序&#xff0c;是指将数据集合中的元素按从小到大的顺序进行排列&#xff0c;或按从大到小的顺序进行排列。前者称为升序排序&#xff0c;后者称为降序排序。在数据结构与算…

【Java笔试强训 7】

&#x1f389;&#x1f389;&#x1f389;点进来你就是我的人了博主主页&#xff1a;&#x1f648;&#x1f648;&#x1f648;戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔&#x1f93a;&#x1f93a;&#x1f93a; 目录 一、选择题 二、编程题 &#x1f525;Fibona…

( 哈希表) 594. 最长和谐子序列 ——【Leetcode每日一题】

❓594. 最长和谐子序列 难度&#xff1a;简单 和谐数组是指一个数组里元素的最大值和最小值之间的差别 正好是 1 。 现在&#xff0c;给你一个整数数组 nums &#xff0c;请你在所有可能的子序列中找到最长的和谐子序列的长度。 数组的子序列是一个由数组派生出来的序列&am…

AWSFireLens轻松实现容器日志处理

applog应用程序和fluent-bit共享磁盘&#xff0c;日志内容是json格式数据&#xff0c;输出到S3也是JSON格式 applog应用部分在applog目录&#xff1a; Dockerfile文件内容 FROM alpine RUN mkdir -p /data/logs/ COPY testlog.sh /bin/ RUN chmod 777 /bin/testlog.sh ENTRYP…

MySQL知识学习01

1、什么是关系型数据库? 顾名思义&#xff0c;关系型数据库&#xff08;RDBMS&#xff0c;Relational Database Management System&#xff09;就是一种建立在关系模型的基础上的数据库。关系模型表明了数据库中所存储的数据之间的联系&#xff08;一对一、一对多、多对多&am…

宏基因组组装 | 就现在!做出改变!!

微生态研究的核心难点是什么&#xff01; 基因组组装&#xff01; 从宏基因组数据中组装获得细菌的完整基因组&#xff08;complete MAGs&#xff09;是微生物组研究的长期目标&#xff0c;但基于NGS的宏基因组测序和组装方法是无法实现完整的细菌基因组组装的。即便是红极一…

【五一创作】Apollo(入门)

Apollo(入门) Quick Start 配置中心是一种统一管理各种应用配置的基础服务组件 Apollo&#xff08;阿波罗&#xff09;是携程框架部门研发的分布式配置中心&#xff0c;能够集中化管理应用不同环境、不同集群的配置&#xff0c;配置修改后能够实时推送到应用端&#xff0c;并且…

使用pands.rolling方法实现移动窗口的聚合计算

一个问题举例 假设有一个5天的收益数据&#xff0c;需要每3天求出一次平均值来达成某个需求&#xff1a; daterevenue2023-05-01102023-05-02202023-05-03302023-05-04402023-05-0550 1号、2号和3号的数据求一次平均值&#xff0c;2号、3号和4号的数据求一次平均值&#xff…

5.4.1树的存储结构 5.4.2树和森林的遍历

回忆一下树的逻辑结构&#xff1a; 双亲表示法&#xff08;顺序存储&#xff09; 如果增加一个结点M&#xff0c;L。毋须按照逻辑上的次序存储。 如果是删除元素&#xff1a; 方案一&#xff1a;比如说删除元素为G,设置其双亲结点为-1。 方案二&#xff1a; 把尾部的结点提上…

Sybase使用sp_helptext查看系统存储过程的源码

sp_helptext存储过程用于显示已编译对象的源代码。 sp_helptext是Sybase ASE内置的存储过程&#xff0c;可从任何位置调用。 但实际上&#xff0c;如果直接使用&#xff0c;常常会得到&#xff08;令人头大的&#xff09;错误提示&#xff1a; Msg 17461 Object does not exi…

基于JavaSpringboot+vue国风汉服文化交流宣传系统

基于JavaSpringbootvue国风汉服文化交流宣传系统 博主介绍&#xff1a;5年java开发经验&#xff0c;专注Java开发、定制、远程、指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源码联系方式 文章目…

【可解释AI】图神经网络的可解释性方法及GNNexplainer代码示例

图神经网络的可解释性方法及GNNexplainer代码示例 GNNExplainerIntroductionModelSingle-instance explanations&#xff08;Explanation via Structural Information&#xff09;Joint learning of graph structural and node feature information&#xff08;Explanation via…

SuperMap iClient3D for Cesium 构建隧道

作者&#xff1a;kele 背景 前段时间看到一篇构建隧道的文章&#xff08;https://blog.csdn.net/supermapsupport/article/details/128453116&#xff09;&#xff0c;突然想到一个使用场景&#xff1a;隧道通常是建在山体下面&#xff0c;是否可以通过这种方式构建出一条贯穿…

使用Python和机器学习进行文本情感分类

使用Python和机器学习进行文本情感分类 1. 效果图2. 原理3. 源码参考这篇博客将介绍如何使用Python进行机器学习的文本情感分类(Text Emotions Classification)。 1. 效果图 训练文本及情感分类前5条数据如下: 训练过程及测试文本情感分类效果图如下: 可以看到 对文本“S…

【量化交易笔记】5.SMA,EMA 和WMA区别

股票中的SMA&#xff0c;EMA和WMA是常用的技术分析指标。这些指标基于历史股价计算得出&#xff0c;可以帮助投资者了解股票的趋势&#xff0c;为决策提供依据。虽然它们都是平均值算法&#xff0c;但它们之间还是有一些区别的。 SMA 简单移动平均线&#xff08;Simple Moving…

分布式的流处理平台Kafka

目录&#xff1a; 一、简介二、基本概念三、生产者使用详解四、发送消息五、消费者代码示例 一、简介 ApacheKafka 是一个分布式的流处理平台。它具有以下特点&#xff1a; 支持消息的发布和订阅&#xff0c;类似于 RabbtMQ、ActiveMQ 等消息队列&#xff1b;支持数据实时处理…

计算机组成原理第五章(2)---中断

5.1概述 产生和应用 在IO设备和主机交换数据时&#xff0c;由于设备本身的机电特性的影响&#xff0c;其工作速度比较低&#xff0c;与CPU无法匹配&#xff0c;如果采用程序查询的方式需要CPU进行等待&#xff0c;但是如果在等待的过程中CPU可以执行其他的程序&#xff0c;可…