人脸检测--Supervised Transformer Network for Efficient Face Detection

Supervised Transformer Network for Efficient Face Detection
ECCV2016

人脸检测: the cascaded network;end-to-end learning; jointly conduct face detection and face alignment
Our detector runs at 30 FPS on a single CPU core for a VGA-resolution image

2 Network Architecture
2.1 Overview
这里写图片描述
整个网络主要包括两个模块:
1):第一个模块是多任务 Region Proposal Network (RPN),它负责提取人脸候选区域及相应的人脸特征点 facial landmarks,在局部邻域,我们只选前 K 个候选区域,其他的候选区域直接扔掉。
2):第二个模块是一个 Supervised Transformer layer 和 一个 RCNN,Transformer layer 的输入是人脸区域及对应的特征点,然后将人脸映射到标准姿态,即人脸转正。主要是通过特征点对齐完成的:facial landmarks and the canonical positions 两者是一一对应的。最后将人脸区域输入 RCNN network 进行人脸二分类。

2.2 Multi-task RPN
这里的多任务RPN 是受 文献【16】启发的,RPN同时完成人脸检测及对应的人脸特征点。我们的方法和文献【20】很相似,只不过我们回归的目标是人脸特征点位置,而不是矩形框坐标参数
这里写图片描述

2.3 The supervised transformer layer
这个模块主要负责解决人脸多尺度和多姿态问题 scale and rotation variation

常用的方法是训练一个预测模型用于检测人脸特征点,然后通过特征点对应关系来将人脸转正 map to a canonical pose
这个过程至少有两个问题:
1)需要人工设定 canonical locations,not only time-consuming, but also suboptimal
2)训练样本中的 facial landmark points 这个标记不太容易, highly subjective process

We propose to learn both the canonical positions and the prediction of the facial landmarks end-to-end from the network with additional supervision
information from the classification objective of the RCNN using end-to-end back propagation

这里我们通过学习得到 canonical positions 和 prediction of the facial landmarks

接着就是公式推导

2.4 Non-top K suppression
keep K candidate regions with highest confidence for each potential face

2.5 Multi-granularity feature combination
综合利用多尺度特征有助于提高系统性能,这里我们将 RPN 的特征 和 RCNN特征综合起来

3 The ROI convolution
3.1 Motivation
如何在 CPU 中 提高 CNN 网络的运算速度是一个很重要的问题,卷积层的计算量大约占整个网络的 90%。
我们这里主要的加速思路是:使用一个标准的级联人脸检测器用于快速去除非人脸区域,得到一个 二值 ROI mask。 这个 ROI mask 的尺寸和输入图像尺寸一样,背景区域为0,人脸区域为1. DNN 卷积只对 mask 为 1的区域进行计算。
这里写图片描述

3.2 Implementation details
Cascade pre-filter: 这里就是一个加强版的 Volia-Jones’s detector,更多的弱分类和更多的训练数据

ROI convolution
这里写图片描述
主要利用 二值 mask 来加速卷积计算
The original DNN detector can run at 50 FPS on GPU and 10 FPS on CPU for a VGA image. With ROI convolution, it can speed up to 30 FPS on CPU with little accuracy loss

4 Experiments
这里写图片描述

这里写图片描述

各种方法性能对比
这里写图片描述

检测效果图

### 融合Transformer和V-Net的半监督情境感知网络 在医疗图像分割领域,融合 Transformer 和 V-Net 的架构展示了显著的优势。这种组合旨在利用两者各自的特点来提升模型性能。 #### 半监督学习背景 半监督学习方法通过结合少量标注数据和大量未标注数据来进行训练,在减少人工标注成本的同时保持较高的预测精度。对于医学影像分析而言,获取高质量的手动标注非常耗时且昂贵,因此半监督技术显得尤为重要[^1]。 #### 架构设计原理 该类网络通常采用编码器-解码器结构,其中编码部分基于多层卷积操作提取特征图谱;而解码阶段则负责逐步恢复空间分辨率并最终生成像素级分类结果。为了增强上下文理解能力以及捕捉全局依赖关系,引入了自注意力机制作为补充模块嵌入到传统 CNN 层之间形成混合型框架。 具体来说: - **编码路径 (Encoder Path)** 使用类似于 V-Net 或 U-Net 中的标准下采样过程; - **中间桥接组件 (Bridging Component)** 将低维表示传递给后续处理单元之前应用 Transformer 编码器堆栈对其进行转换,从而更好地建模远程交互模式; - **解码路径 (Decoder Path)** 则遵循上采样的原则重建原始输入尺寸,并可能再次融入局部细节信息以提高边界定义准确性。 ```python import torch.nn as nn from transformers import ViTModel class TransUNet(nn.Module): def __init__(self, config): super(TransUNet, self).__init__() # Define the encoder part using a pre-trained Vision Transformer model self.encoder = ViTModel.from_pretrained('google/vit-224-in21k') # Decoder layers can be implemented similarly to UNet architecture self.decoder_blocks = ... # Implement decoder blocks here def forward(self, x): encoded_features = self.encoder(x).last_hidden_state output = self.decoder_blocks(encoded_features) return output ``` 此代码片段展示了一个简化版的 TransUNet 实现方式,它集成了预训练好的视觉变换器(Vision Transformer)用于特征抽取,并在其基础上构建了解码器部分完成端到端的任务需求。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值