dreamocean


  • 首页

  • 分类

  • 归档

  • 标签

密集连接卷积网络DenseNet

发表于 2017-09-16 | 阅读次数

算法简介

近几年来,随着卷积神经网络的迅速发展,GoogleNet、VGGNet、ResNet等模型在各种计算机视觉任务上得到广泛的应用。但随着网络层数的加深,网络在训练过程中的前传信号和梯度信号在经过很多层之后可能会逐渐消失。目前很多论文都针对这个问题提出了解决方案,比如ResNet,Highway Networks,Stochastic depth,FractalNets等,这些算法的核心都在于:创建了一个跨层连接来连通网路中前后层。
DenseNet就是基于这个核心理念设计了一种全新的连接模式,在保证网络中层与层之间最大程度的信息传输的前提下,直接将所有层连接起来,具体参考2017CVPR最佳论文Densely Connected Convolutional Networks。
DenseNet的网络结构如下:

注意由多个dense block组成,单个dense block的结构如下:

阅读全文 »

L-Softmax Loss & A-Softmax Loss解析

发表于 2017-09-07 | 阅读次数

L-Softmax

Softmax Loss函数经常在卷积神经网络中被广泛应用,但是这种形式并不能够有效地学习得到使得类内较为紧凑、类间较离散的特征。论文Large-Margin Softmax Loss for Convolutional Neural Networks提出了L-Softmax loss,能够有效地引导网络学习使得类内距离较小、类间距离较大的特征。
对于Softmax loss而言:

其中fj表示最终全连接层的类别输出向量f的第j个元素,N为训练样本的个数。由于f=W*X是全连接层的激活函数的输出,W和X均为多维向量,最终的损失函数又可以写为:

阅读全文 »

Triplet Loss & Center Loss解析

发表于 2017-08-30 | 阅读次数

Triplet Loss

Triplet loss是Google团队在FaceNet中提出的基于度量学习的loss function,具体参考论文FaceNet•A Unified Embedding for Face Recognition and Clustering。
Triplet是一个三元组,其构成如下:从训练数据集中随机选一个样本,该样本称为Anchor,然后再随机选取一个和Anchor属于同一类的样本和不同类的样本,这两个样本对应的称为Positive和Negative,由此构成一个(Anchor,Positive,Negative)三元组。Triplet loss的目的就是通过学习,让同类样本的特征表达间距尽可能小,而异类样本的特征表达间距尽可能大,示意图如下:

数学表达式如下:

阅读全文 »

目标检测算法:YOLO

发表于 2017-08-20 | 分类于 object detect | 阅读次数

算法详解

从RCNN到Faster RCNN的目标检测算法一直基于region proposal和分类的思想,region proposal输出目标区域,也就是目标的位置信息,而分类提供类别信息,虽然精度已经很高了,但是实时性并不强。YOLO提供了另一种更为直接的思路:将物体检测作为回归问题求解,基于一个单独的end-to-end网络,整张图作为网络的输入,直接在输出层回归bounding box的位置和类别,完成从原始图像的输入到物体位置和类别的输出。具体参考论文You Only Look Once: Unified, Real-Time Object Detection,另外作者也提供了工程实现的官网https://pjreddie.com/darknet/yolo/。
YOLO目标检测流程如下:

阅读全文 »

目标检测算法:Faster R-CNN

发表于 2017-08-15 | 分类于 object detect | 阅读次数

算法详解

在RCNN和Fast RCNN之后,Ross B. Girshick团队在2016年提出了新的Faster RCNN,在结构上,Faster RCN已经将特征抽取(feature extraction),proposal提取,bounding box regression(rect refine),classification都整合在了一个网络中,使得综合性能有较大提高,尤其是在检测速度上,简单网络目标检测速度达到17fps,在PASCAL VOC上准确率为59.9%;复杂网络达到5fps,准确率78.8%。具体参考论文:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks。下面将简单介绍RCNN和Fast RCNN,再引申到Faster RCNN算法。

RCNN

目标检测步骤如下:

阅读全文 »

人脸检测之MTCNN

发表于 2017-08-07 | 分类于 face detect | 阅读次数

算法介绍

基于多任务级联卷积神经网络的人脸检测和对齐算法MTCNN,相对于上篇介绍的SDM算法在性能和准确率上有所提升,而且具有实时处理能力,参考论文Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks,文章主要通过三阶的级联卷积神经网络(P-Net,R-Net,O-Net)对任务进行从粗到细的处理,具体流程如下:

数据与处理:为应对目标多尺度问题,将原始图像resize到不同尺寸,构建图像金字塔,作为三阶级联架构的输入。
第一阶段,通过一个浅层的CNN快速生成候选窗口。该阶段是一个全部由卷积层组成的CNN,取名P-Net,获取候选人脸窗口以及人脸框回归向量。基于人脸框回归向量对候选窗口进行校正,之后采用非极大值抑制NMS合并高重叠率的候选窗口。
第二阶段,通过一个更复杂的CNN否决大量非人脸窗口从而精化人脸窗口。第一阶段输出的候选窗口作为R-Net的输入,R-Net能够进一步筛除大量错误的候选窗口,再利用人脸框回归向量对候选窗口做校正,并执行NMS。
第三阶段,该层比R-Net层又多了一层卷积层,进一步精化结果并输出5个人脸特征点。
与第二阶段相似,但这一阶段用更多的监督来识别人脸区域,而且网络能够输出五个人脸特征点位置坐标。

示意图和各层网络结构如下:

阅读全文 »

人脸检测之SDM

发表于 2017-08-03 | 分类于 face detect | 阅读次数

算法介绍

人脸对齐就是在已经检测到的人脸的基础上,自动找到人脸上的眼睛鼻子嘴和脸轮廓等标志性特征位置,通过这一手段可以衍生出很多产品应用,包括美图软件、魔漫相机、表情检测和性别检测等。目前有很多的人脸对齐算法,比较传统的有ASM、AAM、CLM和一些列改进算法,而目前比较流行的有ESR、3D-ESR、SPR、LBF、SDM、CFSS等。这里将详细介绍分析SDM算法,具体参考论文Supervised Descent Method and its Applications to Face Alignment 。
SDM人脸对齐算法属于回归方法,基于回归的方法的基本原理:对于一张给定的人脸,给出一个初始的形状,通过不断地迭代,将初始形状回归到接近甚至等于真实形状的位置。
事实上SDM并非是一种人脸对齐方法,而是一种监督下降方法,用于解决非线性最小化问题。

阅读全文 »

人脸检测之Haar

发表于 2017-07-30 | 分类于 face detect | 阅读次数

目前的人脸检测方法主要有两大类:基于知识和基于统计。

基于知识的方法:主要利用先验知识将人脸看作器官特征的组合,根据眼睛、眉毛、嘴巴、鼻子等器官的特征以及相互之间的几何位置关系来检测人脸,如模板匹配、人脸特征、形状与边缘、纹理特性、颜色特征。
基于统计的方法:将人脸看作一个整体的模式(二维像素矩阵),从统计的观点通过大量人脸图像样本构造人脸模式空间,根据相似度量来判断人脸是否存在,如主成分分析与特征脸、神经网络方法、支持向量机、隐马尔可夫模型、Adaboost算法。

这里主要介绍OpenCV内部集成的基于Haar特征与Adaboost的人脸检测算法haarcascade。OpenCV安装目录中的\data\haarcascades目录下的haarcascade_frontalface_alt.xml与haarcascade_frontalface_alt2.xml都是用来检测人脸的Haar分类器,其中包含了描述人脸的Haar特征值。这个haarcascades目录下还有人的全身,眼睛,嘴唇的Haar分类器。xml文件结构如下:

阅读全文 »

评价指标FRR/FAR/ROC/ACC解析

发表于 2017-07-25 | 阅读次数

各指标计算规则

考虑一个二分问题,如人脸验证,即将实例分成正类(positive)或负类(negative)。对一个二分问题来说,会出现四种情况:如果一个实例是正类并且也被预测成正类,即为真正类(True positive),如果实例是负类被预测成正类,称之为假正类(False positive),误报。相应地,如果实例是负类被预测成负类,称之为真负类(True negative),正类被预测成负类则为假负类(False negative),漏报。具体如下表所示:

actual\pediction positive negative rate
positive TP FN TPR=TP/(TP+FN)
negative FP TN FPR=FP/(FP+TN)

TPR为命中率;
FPR=FAR=FMR为误识率;
FRR=FNMR=(1-TPR)为识拒率;
ACC=(TP+TN)/(TP+FN+FP+TN),为判对准确率;
在有些文献中将误识率表达为FMR(False match rate),以及将拒识率表达为FNMR(False non-match rate)。

ROC曲线

阅读全文 »

各深度学习模型比较分析

发表于 2017-07-20 | 分类于 deep learning | 阅读次数

深度神经网络自出现以来,已经成为计算机视觉领域一项举足轻重的技术。其中,ImageNet 图像分类竞赛极大地推动着这项新技术的发展。这里将对各个深度学习模型进行比较分析,具体参考论文AN ANALYSIS OF DEEP NEURAL NETWORK MODELS FOR PRACTICAL APPLICATIONS。
论文综合分析了实际应用中的几项重要指标:准确度、内存占用、参数、操作时间、操作次数、推理时间、功耗,并得出了以下几项主要研究结论:

功耗与批量大小、体系结构无关;
准确度与推理时间呈双曲线关系;
能量限制是最大可达准确度和模式复杂度的上限;
操作次数可以有效评估推理时间。

自从2012年的 ImageNet 竞赛上,Alexnet取得突破发展,成为第一个应用深度神经网络的应用,其他关于DNN的更复杂的应用也陆续出现。
图像处理软件分类挑战赛的终极目标是,在考虑实际推理时间的情况下,提高多层分类框架的准确度。为了达到这个目标,就要解决以下三方面的问题。

阅读全文 »
123
MengyangZhang

MengyangZhang

技术笔记与分享,与君共勉

28 日志
16 分类
24 标签
微博 GitHub
© 2018 MengyangZhang
由 Hexo 强力驱动
主题 - NexT.Pisces