【人脸检测】DBface_small深度剖析

2024-06-13 09:08

本文主要是介绍【人脸检测】DBface_small深度剖析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

摘要: 基于高斯热力图的目标检测是anchor free中的代表方法,其具有原理简单,易于拓展,后处理简单等优势。

1. 简介

采用热力图做人脸检测,最开始是Centernet的出现,其在通用通用目标检测,人体关键点检测,3D目标检测上都达到了std的效果。后来就出现了centerface,采用mobilev2做bonenet,做人脸与关键点检测。但,项目只给出了推理代码,没有给出训练代码。后面我借鉴Centernet项目,复现了一个版本:CenterFace.pytorch,但,训练结果没法达到原文的最好效果。且代码是用的Centernet,所以可读性较差。

今年,出现了DBface,和dbface_small,其中dbface_small只有1.4M也能和retinaface_small一样的精度。同时,项目重构的代码,结构清晰,也便于理解和阅读。

2. 网络模型结构

2.1 神经网络部分

直接上图(PPT画的,😂😂😂)
在这里插入图片描述

  • Block
    就是一个残差模块

  • ResSE
    在每个残差模块的shortcut前,增加一个SE模块

  • FPN中的UP(借用原作者的经验)
    双线性插值Bilinear+Conv+BN+Activation的上采样模块,优于用反卷积、最近邻插值等,所以比较推荐,但是不同框架对这个的支持不一样,造成使用困难

  • SSH
    在输出加了一个SSH模块,增强特征

  • 输出
    有三个分支,分别对应人脸box中心点的高斯热力图,人脸box,人脸关键点landmark

2.2 模型原理部分

  • hm loss
    人脸box中心点hm的尺寸为:200*200,hm_target也是200 * 200 ,采用focal loss作为损失函数。hm_target == 1表示正样本,hm_target < 1的表示负样本。所以一个目标用anchor的理念,就只有一个anchor。

    • 引入pos_weight,改善大目标检测
      CenterNet AnchorFree的特性是所有目标都一个点,正类贡献无论目标尺寸大小都一样,Anchor Base的特性是目标越大正类loss贡献越大,也正因此,大目标在CenterNet上训练效果总是不好,解决大目标不行,本项目提倡增加pos_weights来处理,并且增加大目标的权重,实验证明有良好的提升大目标效果
  • box loss——giou loss
    box输出为200 * 200 * 4。在Centernet项目中是预测的w,h,采用的是L1loss。DBface中人脸box采用的是[x1, y1, x2, y2]左上,右下,相对box中心的偏差,并用giou loss。

  • landmark loss
    landmark输出为200 * 200 * 10。其也是相对于box中心点的偏差。人脸关键点采用WingLoss

Reference

  1. Centernet
  2. centerface
  3. CenterFace.pytorch
  4. DBface

这篇关于【人脸检测】DBface_small深度剖析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1056874

相关文章

Python如何实现PDF隐私信息检测

《Python如何实现PDF隐私信息检测》随着越来越多的个人信息以电子形式存储和传输,确保这些信息的安全至关重要,本文将介绍如何使用Python检测PDF文件中的隐私信息,需要的可以参考下... 目录项目背景技术栈代码解析功能说明运行结php果在当今,数据隐私保护变得尤为重要。随着越来越多的个人信息以电子形

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

最长公共子序列问题的深度分析与Java实现方式

《最长公共子序列问题的深度分析与Java实现方式》本文详细介绍了最长公共子序列(LCS)问题,包括其概念、暴力解法、动态规划解法,并提供了Java代码实现,暴力解法虽然简单,但在大数据处理中效率较低,... 目录最长公共子序列问题概述问题理解与示例分析暴力解法思路与示例代码动态规划解法DP 表的构建与意义动

Go中sync.Once源码的深度讲解

《Go中sync.Once源码的深度讲解》sync.Once是Go语言标准库中的一个同步原语,用于确保某个操作只执行一次,本文将从源码出发为大家详细介绍一下sync.Once的具体使用,x希望对大家有... 目录概念简单示例源码解读总结概念sync.Once是Go语言标准库中的一个同步原语,用于确保某个操

SpringBoot使用Apache Tika检测敏感信息

《SpringBoot使用ApacheTika检测敏感信息》ApacheTika是一个功能强大的内容分析工具,它能够从多种文件格式中提取文本、元数据以及其他结构化信息,下面我们来看看如何使用Ap... 目录Tika 主要特性1. 多格式支持2. 自动文件类型检测3. 文本和元数据提取4. 支持 OCR(光学

五大特性引领创新! 深度操作系统 deepin 25 Preview预览版发布

《五大特性引领创新!深度操作系统deepin25Preview预览版发布》今日,深度操作系统正式推出deepin25Preview版本,该版本集成了五大核心特性:磐石系统、全新DDE、Tr... 深度操作系统今日发布了 deepin 25 Preview,新版本囊括五大特性:磐石系统、全新 DDE、Tree

Node.js 中 http 模块的深度剖析与实战应用小结

《Node.js中http模块的深度剖析与实战应用小结》本文详细介绍了Node.js中的http模块,从创建HTTP服务器、处理请求与响应,到获取请求参数,每个环节都通过代码示例进行解析,旨在帮... 目录Node.js 中 http 模块的深度剖析与实战应用一、引言二、创建 HTTP 服务器:基石搭建(一

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

烟火目标检测数据集 7800张 烟火检测 带标注 voc yolo

一个包含7800张带标注图像的数据集,专门用于烟火目标检测,是一个非常有价值的资源,尤其对于那些致力于公共安全、事件管理和烟花表演监控等领域的人士而言。下面是对此数据集的一个详细介绍: 数据集名称:烟火目标检测数据集 数据集规模: 图片数量:7800张类别:主要包含烟火类目标,可能还包括其他相关类别,如烟火发射装置、背景等。格式:图像文件通常为JPEG或PNG格式;标注文件可能为X

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模

前言 本系列教程旨在使用UE5配置一个具备激光雷达+深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博客Nav2代价地图实现和原理–Nav2源码解读之CostMap2D(上)-CSDN博客往期教程: 第一期:基于UE5和ROS2的激光雷达+深度RG