博客
关于我
MTCNN论文实现细节详解 附疑难点纯手绘讲解图 python
阅读量:215 次
发布时间:2019-02-28

本文共 1237 字,大约阅读时间需要 4 分钟。

论文解读:P、R、O网络结构与实现

本文对P、R、O网络结构进行解读,详细分析网络的工作流程及其实现步骤,并探讨其中的难点。


1. 论文概述

本研究基于P、R、O网络框架,旨在实现面部关键点检测。网络由三个部分组成:P网络、R网络和O网络,分别负责初步检测、精确检测和优化检测。


2. P、R、O网络结构图解

P网络、R网络和O网络通过多级特征学习,逐步提升人脸检测的精度。以下是网络的主要组成部分:

  • P网络:负责初步的人脸框定,采用全卷积结构,支持多尺度输入。
  • R网络:基于P网络的结果,进一步精确人脸框定。
  • O网络:对R网络的输出进行优化,提升检测精度。

3. 代码实现步骤

代码实现分为以下几个阶段:

  • 样本预处理

    数据集采用celeba,生成三种尺寸(12×12、24×24、48×48),每种尺寸包含正样本、负样本及部分中性样本。

  • P网络实现

    • 写P网络:设计包含多个卷积层的网络结构,支持多尺度输入。
    • 训练网络:利用预处理后的数据集进行训练,输出pkl权重文件。
  • 测试流程

    • P网络测试

      • 输入任意大小的图像(min(w,h) ≥ 12),将图像转换为数据格式并升维到4维。
      • 经过P网络(_cls, _offset = self.pnet(img_data))得到置信度与偏移量。
      • 选取置信度大于阈值(0.6)的框定结果,经边框回归(平移、缩放逆操作)得到原图人脸附近的预测框坐标,并补充金字塔操作生成更多框定候选。
    • R网络测试

      • 将P网络输出的框定结果补充为正方形(convert_to_square),在原图上剪裁可能为人脸的区域并缩小至24×24。
      • 经过R网络(_cls, _offset = self.rnet(imgdataset))输出置信度与偏移量,选取置信度大于0.6的框定结果,经边框回归得到原图坐标。
    • O网络测试

      • 与R网络类似流程,但置信度阈值由0.6提高至0.7,且非极大值抑制(NMS)时设置isMin=True。

  • 4. 难点分析

    本实现的难点在于对多个方法的理解与应用,尤其是以下几个方面:

  • 图像金字塔

    图像金字塔仅在推理阶段使用,训练时不需要多尺度样本。P网络可看作一个12×12的大卷积核,以stride=2的步长在全图上做滑窗操作。

  • iou(交叠度)

    计算两个框的交叠程度,值越高表示交叠越大。

  • nms(非极大值抑制)

    根据iou值将重叠度较低的框排除。

  • convert_to_square

    将P网络输出的框定结果补充为正方形。

  • 边框回归(box_reg)

    根据偏移量和缩放因子,计算框定框的最终坐标。


  • 5. 效果图展示

  • 原图

    输入图像可能包含多个人脸区域。

  • P网络输出

    得到多个候选框定框,部分框可能局部化。

  • R网络输出

    精确筛选出高置信度的框定框。

  • O网络输出

    对最终框定框进行优化,提升检测精度。


  • 后续进度展望

    本研究基于P、R、O网络框架,计划依次研究YOLO系列(v1、v2、v3),探讨其优缺点与应用场景。

    转载地址:http://trpi.baihongyu.com/

    你可能感兴趣的文章
    Node-RED通过npm安装的方式对应卸载
    查看>>
    node-request模块
    查看>>
    node-static 任意文件读取漏洞复现(CVE-2023-26111)
    查看>>
    Node.js 8 中的 util.promisify的详解
    查看>>
    node.js debug在webstrom工具
    查看>>
    Node.js RESTful API如何使用?
    查看>>
    node.js url模块
    查看>>
    Node.js Web 模块的各种用法和常见场景
    查看>>
    Node.js 之 log4js 完全讲解
    查看>>
    Node.js 函数是什么样的?
    查看>>
    Node.js 函数计算如何突破启动瓶颈,优化启动速度
    查看>>
    Node.js 切近实战(七) 之Excel在线(文件&文件组)
    查看>>
    node.js 初体验
    查看>>
    Node.js 历史
    查看>>
    Node.js 在个推的微服务实践:基于容器的一站式命令行工具链
    查看>>
    Node.js 实现类似于.php,.jsp的服务器页面技术,自动路由
    查看>>
    Node.js 异步模式浅析
    查看>>
    node.js 怎么新建一个站点端口
    查看>>
    Node.js 文件系统的各种用法和常见场景
    查看>>
    Node.js 模块系统的原理、使用方式和一些常见的应用场景
    查看>>