mtcnn-ncnn概念入门

文章目录

  • 引言
  • mtcnn介绍
    • mtcnn是什么
    • 图像金字塔
    • 模型+参数配置
  • ncnn介绍
    • ncnn是什么
    • 深度学习框架是什么

引言

刚接触人脸识别,各种新名词看的很懵逼,下面介绍下mtcnn和ncnn的概念入门

mtcnn介绍

mtcnn是什么

mtcnn:Multi-task convolutional neural network(多任务卷积神经网络)
其实是一种网络模型,一种算法,同级别的还有下面一些模型
物体分类领域:AlexNet VGG Inception ResNet mobileNet
目标检测领域:R-CNN,faster R-CNN,yolo,SSD, yoloV2
自然语言处理领域:RNN LSTM GRU

mtcnn可分为P-Net、R-Net、和O-Net三层网络结构,你可以理解为每一层做的功能都不相同,具体深入就自行搜索。
mtcnn流程

图像金字塔

图像在进入P-Net前会先构建图像金字塔,简单说就是把你输入的图像,按不同比例缩放,得到一堆图片,再每张都传入P-Net做计算,为什么要这样做的,看下面解释
mtcnn-ncnn概念入门_第1张图片
mtcnn-ncnn概念入门_第2张图片

模型+参数配置

mtcnn初始化需要加载 param和bin
PARAM //模型描述,layer、blob,层,输入输出
BIN //模型里部分层参数,权重数据(weight_data) ,偏置数据(bias_data)
mtcnn-ncnn概念入门_第3张图片
param里面的内容:
mtcnn-ncnn概念入门_第4张图片
param文件如何阅读:
mtcnn-ncnn概念入门_第5张图片

ncnn介绍

ncnn是什么

ncnn是一套深度学习框架,是腾讯为手机端优化的高性能神经网络前向计算框架。但是比较特殊,ncnn只支持推理,不支持学习。所以一般是研究员用训练框架训练好模型,转化到ncnn,用于移动端设备。
mtcnn-ncnn概念入门_第6张图片

深度学习框架是什么

深度学习框架就是一套用于深度学习的函数。在深度学习中,有这样几种基本操作:卷积,池化,全连接,二分类多分类,反向传播等。这些功能在普通的编程语言中都没有,所以大佬们就开发出一套函数,并命个名。比如谷歌有自家的TensorFlow、Facebook有Torch、百度有Paddle Paddle、微软有CNTK、而亚马逊的AWS则有MXNet

mtcnn-ncnn概念入门_第7张图片
结合前面介绍的mtcnn举个例子,研究员用caffe框架训练好mtcnn的模型,这些模型目前可能是在PC端运行良好的,但是要移植到移动端,就要转为ncnn框架的模型。ncnn支持caffe,mxnet等模型转换。

你可能感兴趣的:(mtcnn-ncnn概念入门)