广州比较好的网站建设,烟台58同城网站建设,深圳网络公司怎么注册,做网站有什么工具MTCNN#xff08;Multi-task Cascaded Convolutional Networks#xff09;是一种用于人脸检测和关键点检测的深度学习模型#xff0c;特别适合在复杂背景下识别出多尺度的人脸。它通过多任务学习来实现人脸检测和人脸关键点定位#xff08;如眼睛、鼻子、嘴巴的位置#x…MTCNNMulti-task Cascaded Convolutional Networks是一种用于人脸检测和关键点检测的深度学习模型特别适合在复杂背景下识别出多尺度的人脸。它通过多任务学习来实现人脸检测和人脸关键点定位如眼睛、鼻子、嘴巴的位置实现高精度的人脸区域定位和关键点提取。MTCNN 主要由三个级联网络组成P-Net、R-Net 和 O-Net。
论文名称《Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks》https://arxiv.org/pdf/1604.02878https://arxiv.org/pdf/1604.02878 一、MTCNN 的网络结构
1.P-NetProposal Network
作用快速生成候选窗口。结构P-Net 是一个全卷积神经网络负责从图片中生成初步的人脸候选框并进行非最大值抑制NMS保留主要候选窗口。输出人脸置信度和候选框回归参数。 P-NetProposal Network——生成候选框 网络结构P-Net 是一个轻量级的卷积网络由三层卷积层构成每一层后面都有 ReLU 激活函数。 Conv13x3 卷积核步长为 1输出 10 个通道的特征图。Max Pooling12x2 池化步长为 2。Conv23x3 卷积核步长为 1输出 16 个通道的特征图。Conv33x3 卷积核步长为 1输出 32 个通道的特征图。 输出层 分类层Cls1x1 卷积核输出通道数为 2表示人脸和非人脸的置信度。回归层Reg1x1 卷积核输出通道数为 4用于预测人脸框的偏移量。 功能 P-Net 接收输入图像生成初步的人脸候选框并输出每个候选框的置信度人脸概率和位置偏移。应用非最大值抑制NMS去除重叠度高的候选框减少冗余检测框。 2.R-NetRefine Network
作用精确化候选框。结构接收 P-Net 生成的候选窗口并过滤掉部分错误窗口进一步提高人脸检测精度。输出细化的人脸置信度和候选框位置。 R-NetRefine Network——筛选候选框 网络结构R-Net 是一个中等复杂度的卷积网络包含三层卷积层和一个全连接层。 Conv13x3 卷积核步长为 1输出 28 个通道的特征图。Max Pooling13x3 池化步长为 2。Conv23x3 卷积核步长为 1输出 48 个通道的特征图。Max Pooling23x3 池化步长为 2。Conv32x2 卷积核步长为 1输出 64 个通道的特征图。全连接层输出 128 维特征向量并与 ReLU 激活函数连接。 输出层 分类层Cls二分类输出检测候选区域是否包含人脸。回归层Reg输出人脸框位置的四个偏移值。 功能 R-Net 接收 P-Net 的候选框并进一步筛选和校正候选框的边界。再次进行非最大值抑制去除相邻且重叠较高的框。 3.O-NetOutput Network
作用最终的人脸框确定与关键点检测。结构输入来自 R-Net 的候选窗口进一步细化人脸检测框最终输出人脸的精确位置和五个关键点眼睛、鼻子、嘴巴位置。输出最终的人脸框、五个关键点的坐标。 O-NetOutput Network——精确定位并检测关键点 网络结构O-Net 是一个相对复杂的网络用于最终的精确化。 Conv13x3 卷积核步长为 1输出 32 个通道的特征图。Max Pooling13x3 池化步长为 2。Conv23x3 卷积核步长为 1输出 64 个通道的特征图。Max Pooling23x3 池化步长为 2。Conv33x3 卷积核步长为 1输出 64 个通道的特征图。Max Pooling32x2 池化步长为 2。Conv42x2 卷积核步长为 1输出 128 个通道的特征图。全连接层输出 256 维特征向量连接 ReLU 激活函数。 输出层 分类层Cls二分类输出用于最终人脸的判断。回归层Reg输出人脸框位置的四个偏移值。关键点检测层Landmarks输出 5 个关键点的坐标位置包括左右眼、鼻尖、嘴角。 功能 O-Net 负责进一步细化人脸边框并预测五个关键点。通过关键点预测进一步提高检测框的精度。 二、级联架构的优点
MTCNN 级联网络架构具有显著的计算效率优势
逐步筛选P-Net 的计算最为轻量用于快速筛选大量非人脸区域。后续网络只需处理少量高置信度候选框减少计算量。逐级优化每个网络的输出作为下一网络的输入通过级联的方式候选框的位置和精度得到逐步优化。多任务学习由于 O-Net 同时进行人脸检测和关键点检测利用共享特征实现多任务提升了模型的整体性能和检测精度。
三、MTCNN 的训练目标
MTCNN 通过多任务损失函数来训练即结合了分类损失、边框回归损失和关键点回归损失目标是
人脸分类损失最小化人脸与非人脸的分类误差。边框回归损失减小候选框的回归偏差保证框的位置更准确。关键点回归损失保证五个关键点的回归误差最小化以获得更精确的关键点位置。
四、代码实现
该源码是基于pytorch框架实现源码的GitHub开源地址为https://github.com/TropComplique/mtcnn-pytorchhttps://github.com/TropComplique/mtcnn-pytorch