深度学习
文章平均质量分 74
coder_mckee
暂无
展开
-
语义分割之SegNet个人总结
1. 网络结构SegNet采用的是对称式的结构,同时引入了BN层(相比于FCN)。encoder即pooling,decoder即upsample。SegNet的核心在于其上采样的方法(decoder部分)。 FCN是利用双线性插值初始化的反卷积进行上采样。而SegNet则是在每次pooling时,都存下最大值的位置,在upsample时将input值直接赋给相应的位置,其他位置的值置零...原创 2018-10-11 16:12:54 · 2646 阅读 · 0 评论 -
轻量级网络--SqueezeNet、ShuffleNet_v2、MobileNet_v2
大网络虽然精度高,但是体积太大,不利于部署移动端。于是出现了一些性能好、精度高的轻量级网络。一、SqueezeNet SqueezeNet的特点就是先squeeze,再expand。 即先降低channel数量,再分两路扩大channel数量,最后进行concat拼接。 模型大小不到5M。 我将SqueezeNet作为base_network用到faster rcnn上,检测一下自...原创 2018-08-12 19:59:03 · 4728 阅读 · 5 评论 -
深度学习之SENet
SENet是17年的分类赛的冠军(错误率最低),上个星期跑了一下,所以做个总结。SENetSENet是一种网络层之间可以安插的block,比如可以安插在ResNet、Inception中。它的核心就是: 对feature map,抑制没用的channel,增强有用的channel。而抑制和增强则是通过训练(0,1)之间的权重来完成。具体如下: 以SE-Inception...原创 2018-06-12 17:32:54 · 4228 阅读 · 3 评论 -
人脸对齐(Face Alignment)
有时候,我们希望数据集中的人脸全是正的,而不是歪着头的,并且希望所有的人脸都处于图片中固定的位置,于是我们需要对图像进行旋转,将头摆正,然后再进行平移,把人脸放到图片正中央。 此时,我们需要建立纠正后图像与原图的关系。如图,我们需要将(x,y)纠正为(x’,y’)。 可以得到如下表达式: 我选取的是眼角的两个点(通过特征点定位得到),设置变换后的点为(110,95),(160...原创 2018-05-29 10:55:46 · 6437 阅读 · 4 评论 -
人脸检测之Cascade CNN
这是2015年的CVPR,有点早,但是比较经典。1. Introduction本文的级联结构是把一系列浅层的网络集成到一起,可以有效的减小CNN的计算量。 本文工作直接从图片中训练分类器,而不是依赖人工选取的特征(15年以前的基本是先提取特征) 特点: 可以在12-net的低分辨率阶段快速剔除背景,在24-net的高分辨率阶段细致进行检测。(这句话看了后面的具体网络结构就知道什么...原创 2018-05-08 11:16:49 · 1484 阅读 · 2 评论 -
深度学习之GoogLeNet (Inception v4 & Inception-ResNet-v2)
Google的Inception是比较特别的网络结构,利用多个size不同的卷积核对input进行处理,最后在channel上进行拼接。可以有效减少参数量,从而防止过拟合且节省计算资源。 关于Inception v1和v3,这篇文章写的非常好:GoogLeNet Inception v1及v3本文主要很浅很浅地介绍下v4以及与ResNet相结合的网络。(因为Inception的motiv...原创 2018-05-20 21:58:53 · 2268 阅读 · 0 评论 -
人脸识别之 Center Loss
2016年的 ECCV1. Introduction对于人脸识别来说,不仅要将不同类的特征分开,还应该将同一类内样本的特征变得紧凑。本文提出一个新的损失函数:center loss,有效增强CNN对学到的深度特征的辨别力。什么是辨别力? 如图: 不同类分开了,但是同一类的样本距离也比较大(图左)。 有了辨别力后,同一类内样本变得更紧凑了(图右)。center l...原创 2018-05-13 18:32:32 · 1740 阅读 · 5 评论 -
人脸识别之FaceNet
从来没做过人脸识别,决定好好学习学习。1. Introduction首先看看是一个怎样的流程: 这里有一个embedding嵌入到我们的网络当中,随后接了一个三元组损失。我们使用一个embedding: f(x),将图像变换到一个128维的特征空间中,在这里存放所有脸之间的距离。 相同人脸的距离比较小,而不同人脸的距离比较大。三元组由2个同一个人的face和1个其他人的...原创 2018-05-11 20:17:23 · 1395 阅读 · 0 评论 -
人脸关键点检测之TSRN (Deep Regression Architecture with Two-Stage Re-initialization)
2017年的CVPR1. Introductionpipeline: 首先是全局阶段(整张脸) (1)对人脸进行re-initialize,把它变成一个规范的形状。如(a)处理后,人脸变正了。 (2)进行一个粗精度的回归然后是局部阶段 (3)对人脸的不同部分进一步进行re-initialize,变成规范的状态 (4)分别对每一部分再次进行回归实验中,在300-W和...原创 2018-05-10 15:07:25 · 1189 阅读 · 0 评论 -
人脸关键点检测之Facial landmark detection using Multi-Task Learning
2014 ECCV的paper1. Introduction作者认为,人脸关键点检测不是一个孤立的问题,应该与其他问题联系起来(比如头的姿势、有无旋转、有无戴眼镜、有没有笑)。为什么要这样猜想呢?因为人脸处于不同的状态,其特征也是不同的。对于不同的图片,如果CNN能区分出它的状态,那么会更有利于检测关键点。比如侧脸和正脸的关键点的位置是不同的。有没有旋转,关键点的分布也是不同的。 ...原创 2018-05-09 21:04:07 · 1274 阅读 · 0 评论 -
语义分割之U-net个人总结
1. 网络结构U-net的特点在于,通过将下采样时feature map和上采样(反卷积)时feature map进行concat,来融合位置信息和语义信息。图中,input是一张单通道图片,最后output之前,通道数2表示num_classes=2.同时,图中的crop: 最后复现时我看到的更多的是直接concat。2. 示例代码代码来源于互联网。和图片中略微有所出入,不过更适合应...原创 2018-10-13 20:36:56 · 2247 阅读 · 0 评论 -
语义分割之large kernel matters个人总结
1. Architecture作者想要解决的是分类与定位的对立矛盾。分类具有平移不变性,而定位则对位置变化非常敏感。在分割任务中,全卷积的网络更侧重于定位,往往会让分类任务获得的感受野较小,这会导致无法获得足够的object信息,不利于分类。于是作者增大了感受野。整体的decoder过程依旧是老套路,融合+反卷积。不过,引入了两个新的block–GCN和BR。2. GCN类似于In...原创 2018-10-27 21:43:16 · 959 阅读 · 0 评论 -
语义分割之PSPNet个人总结
1. Architecture作者想解决的问题有:(1) 由于没有理解上下文语义关系导致类的错分,如水上的船被错分为car,而事实是car一般不在水上。(2) 相似类的混淆: 如 摩天大楼、building、wall。(3) 不显眼的类的划分,如路灯。作者认为想解决这三个问题,在于要利用不同感受野的信息,并且要理解上下文语义关系。于是作者致敬SPPNet,也采用了多尺度池化。主要核...原创 2018-10-25 23:39:17 · 3407 阅读 · 0 评论 -
语义分割之RefineNet个人总结
1. ArchitectureRefineNet是ResNet + 金字塔 的结合体。ResNet残差块可以让网络变的很深。金字塔则是用于Refine。 high-level feature map语义信息较强,但更粗糙。而low-level feature map则具有更好的fine-grained特征。 于是利用金字塔不断的融合这两种特征。整个网络从大体上和之前的语义分割一样,都是从...原创 2018-10-25 15:29:03 · 2054 阅读 · 0 评论 -
深度学习之DenseNet个人总结
1. 网络结构CVPR2017的oral。DenseNet和ResNet很相似,都可以防止梯度消失,并且都作为一种block可以放在任何网络中。ResNet 主要是利用skip connection,对两个feature map进行Eltwise add操作,作为下一层的输入。而DenseNet则是对两个feature map进行concat操作,作为下一层的输入。(可能和图中画的有点出入...原创 2018-10-14 23:26:15 · 1014 阅读 · 0 评论 -
深度学习系列之Focal Loss个人总结
1. Introductionobject detection按其流程来说,一般分为两大类。一类是two stage detector(如非常经典的Faster R-CNN),另一类则是one stage detector(如SSD、YOLO系列)。 虽然one stage detector检测速度可以完爆two stage,但是mAP却干不过two stage。 So,Why? the...原创 2018-04-24 19:55:08 · 30070 阅读 · 5 评论 -
人脸检测之Improved Faster R-CNN
之前用faster r-cnn做object detection,感觉非常好。这篇文章对faster r-cnn做了一些改进,进行人脸检测。 下面就讲下做了哪些改进。0. Overview先看下整体的流程 基础网络采用VGG-16 (1)首先用wilder face对faster r-cnn进行预训练。 (2)难例挖掘 (3)fine-tuning(这一过程涉及本文的3大...原创 2018-05-08 20:48:24 · 1559 阅读 · 1 评论 -
CS231n课程作业(一) Two-layer Neural Network
神经网络的过程主要就是forward propagation和backward propagation。 forward propagation to evaluate score function & loss function, then back propagation 对每一层计算loss对W和b的梯度,利用梯度完成W和b的更新。 总体过程可以理解为:forward–>b...原创 2018-01-21 14:13:30 · 3130 阅读 · 1 评论 -
CS231n课程作业(一) kNN classifier
之前就写过一个简单的kNN分类器:机器学习之kNN算法,kNN的理论非常通俗易懂,有兴趣的可以参考。 cs231n是针对图像的,本次作业内容是对图像进行分类。 分类的标准就是待分类图像与训练集图像的L2距离。 (PS:样本集是32x32x3的图像,所以分类前需要对待分类图像进行resize。但其实没有人用kNN进行图像识别,所以不用care,hahaha) 源代码见GitHub:CS231原创 2018-01-04 18:48:45 · 1120 阅读 · 0 评论 -
CS231n课程作业(一) SVM classifier
一、理论知识1. score function将原始数据映射到每一类上计算得分的函数。 (PS: CNN也是将原始输入的像素映射成类目得分,只不过其中间映射更加复杂,参数更多。) 对于SVM,score function为: 其中,xi指第i张图片,W为权重(可以理解为图像上每个像素点都有weight),b为偏移量bias。 这里可以看出,优化时不仅要调整W,还需调整b。为了简原创 2018-01-10 15:21:48 · 3815 阅读 · 0 评论 -
CS231n课程作业(一) Softmax classifier
首先需要说明的是,softmax与SVM(SVM classifier链接)极其类似,区别在于data loss函数不同。因此针对不同点作出解释就可以了。一、softmax data loss function 其中,Li表示第i张图片的data loss,Syi表示第i张图片所属正确类的score,Sj表示第i张图片对第j类的score。本次作业最关键的当然还是求梯度了。下面是原创 2018-01-12 20:48:06 · 1143 阅读 · 0 评论 -
机器学习之决策树
在这里,我想以更直观的方式帮助各位理解、掌握并且运用【注意:是运用 】决策树,从而为机器学习作铺垫。 PS:但还是希望大家稍微知道决策树大概是什么样子。一、简单概念1.根结点(root node):没有入边,但有零条或多条出边 2.内部结点(internal node):恰有一条入边和 两条或多条出边 3.叶结点(leaf node): 恰有一条入边,无出边 4.熵(entropy):这个原创 2017-10-29 22:27:56 · 541 阅读 · 0 评论 -
Ubuntu 16.04 + CUDA 9.0 + cuDNN v7 配置深度学习库caffe
博主是在T_H学长的帮助下完成安装的,考虑到很多人应该需要一个比较详细的安装过程,特意写下此教程,以及博主在安装过程中遇到的问题及solution。T_H学长的安装过程链接,大家可以结合参考**1. 安装Nvidia显卡驱动** 在系统设置->软件和更新->附加驱动中:将NVIDIA Corporation里的选项选为第一项。完成后需要重启。**2. 安装CUDA 8.0** 参照学长的原创 2017-09-20 22:34:17 · 941 阅读 · 0 评论 -
CS231n课程作业(二) CNN
前言:之前介绍了全连接网络(FC Net),也就是常规的神经网络。常规的神经网络是对input进行仿射变换、非线性变换等处理,最终计算出score。其目的是为了让input data所属类的score最高。为了达到这个目的,需要通过迭代不断地调整仿射变换时的参数W。(因此主要涉及的参数量也与W有关)常规的神经网络表现还不错,但如果图像尺寸较大,则会出现问题:我们之前数据集中图片尺寸...原创 2018-02-20 16:42:38 · 1510 阅读 · 0 评论 -
深度学习系列之 Fast R-CNN 个人总结
一、R-CNN的缺点1. 训练流程比较分散:第一个阶段R-CNN从图像中提取大量的proposal,将每个proposal warp后通过CNN提取特征。第二个阶段用SVM分类器进行分类。第三个阶段才用回归器进行回归。Fast R-CNN则是一套端对端的流程,single stage且multi-task并行。2.训练速度慢且所需空间大:对于分类器和回归器,通过CNN提取的特征需要存储...原创 2018-03-15 15:57:25 · 789 阅读 · 0 评论 -
深度学习系列之YOLOv3 个人总结
前几天YOLOv3问世了,朋友圈也是很多同学转发,很兴奋,当然我也是。所以,先是直接上手体验了一下darknet53,今天把paper看了,做个总结。1. BBox Prediction与YOLOv2一样,YOLOv3也是在feature map上对每个位置进行bbox预测。图中,t为预测值,但是,注意这些值都是相对当前grid的相对值,分别是(tx,ty,tw,th)。最终的预测...原创 2018-03-28 21:29:19 · 24952 阅读 · 15 评论 -
深度学习系列之R-FCN个人总结
关于R-FCN,其实我一开始是完全懵逼的,完全理解不了究竟是什么样的流程。今天我不知道自己理解的对不对,但还是把自己理解的做个记录吧。1. Introduction在Faster R-CNN中,RPN生成的region proposal经过RoI pooling layer处理,变成固定尺寸的特征向量,这是都能理解的。这里的问题是,RoI pooling layer后面的FC层不是...原创 2018-03-31 16:11:06 · 2097 阅读 · 0 评论 -
深度学习系列之YOLOv3 mAP计算
今天跑了以下YOLOv2,发现竟然没有计算mAP的,这样怎么和其他模型对比呢? 于是乎,百度了一下,折腾了好几下,我发现,有些人不知道是不是故意的,竟给别人出馊主意。方法绕来绕去(虽然也能计算,但让人觉得不知所云)。我竟无言以对。 幸好,有一篇比较良心:我的参考文献,本文也只是对这篇博客更细致的解释。为了避免大家踩坑,觉得写一篇这个很有必要。一、生成检测结果文件./dark...原创 2018-03-25 20:39:45 · 14572 阅读 · 35 评论 -
深度学习系列之YOLOv2 个人总结
YOLO1很渣,但YOLO2却很6,在保证速度的前提下精度还很高。而且基于YOLO2的YOLO9000,可以实时检测不同类别下的不同品种。比如检测dog,YOLO9000可以检测出是哪一种狗:哈士奇、阿拉斯加、拉布拉多等等。 YOLO9000跟我做的联系比较密切。我之前做交通标志的检测是先检测出交通标志这个大类,然后再单独训练一个分类网络,进行类下的具体交通标志的识别。如果利用YOLO9000,...原创 2018-03-25 17:30:56 · 1753 阅读 · 0 评论 -
深度学习系列之YOLO 个人总结
YOLO这个模型虽然我不会拿来用,但YOLO2还是不错的。所以还是把YOLO做个简单的了解吧。 注意:这并不是详解!1. IntroductionYOLO相对于基于Region proposal的模型来说,不同之处在于直接在图像上做检测和分类。因为region proposal比较费时间,无法做到real-time。所以YOLO把这个给砍掉了。当然,YOLO这种方法虽然保证了实时速度...原创 2018-03-24 13:44:09 · 4618 阅读 · 1 评论 -
深度学习系列之R-CNN 个人总结
Paper地址:R-CNN一、Object Detection With R-CNN目标检测有两大任务:一个是确定object的类别,另一个是确定object的位置基本流程如下:1.给出一张图片,利用selective search生成约2000个region proposals 2.将proposal resize到固定大小,然后输入到CNN,提取每个proposal ...原创 2018-03-14 14:10:21 · 498 阅读 · 0 评论 -
Selective Search for Object Recognition 个人总结
selective search是object detection中非常著名的候选框生成方法,对此做一个总结是很有必要的。一、Introduction首先说下这个算法是怎么来的。很长一段时间,object在被识别之前都需要先进行划分,这就产生了图像分割。但是图像本质上是具有层级的,如图a所示,桌子上有碗、碗里有汤匙。我们说的桌子是指桌子本身呢?还是包括桌上所有的东西呢?这就是层...原创 2018-03-06 17:24:23 · 710 阅读 · 0 评论 -
深度学习系列之SSD(Single Shot MultiBox Detector) 个人总结
1. IntroductionSSD模型在保证精度的前提下,速度还特别快,可以做到real time。其中原因在于ssd消除了object proposal这个环节。Faster R-CNN是先利用RPN产生object proposal,然后对proposal进行分类和回归,所以速度没有ssd快。ssd进行检测的方法是利用卷积后的多个不同尺度的feature map,每个feature ...原创 2018-03-22 20:58:57 · 2172 阅读 · 1 评论 -
深度学习系列之Faster R-CNN 个人总结
在Fast R-CNN中,说检测速度有显著的提升。这是没错,但如果算上用selective search生成region proposal的时间,其实速度提升并不是特别大。而且这个过程是CPU上进行的,显得不伦不类。因此,Faster R-CNN提出了RPN(region proposal network),代替了费时的selective search,利用共享的卷积网络来预测建议框(数量限定...原创 2018-03-18 17:42:42 · 1608 阅读 · 0 评论 -
OverFeat 个人总结
论文:《OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks》。可在google学术、百度学术下载。一、Introduction卷积网络的优点:end to end,由像素对应到最终的类别缺点:需要大量已标记的样本本文主要介绍了利用OverFeat进行分...原创 2018-03-09 22:59:08 · 3922 阅读 · 2 评论 -
深度学习系列之 mAP
mAP:mean Averge Precision,作为object detection中衡量检测精度的指标。在目标检测中,每一类都可以根据recall和precision绘制P-R曲线,AP就是该曲线下的面积。而mAP就是所有类AP的平均值。Recall:召回率召回率也叫查全率,是你预测的样本中实际的正样本数 / 所有的正样本数,所以为了提高召回率,可以多预测。eg:有1...原创 2018-03-15 17:00:50 · 9469 阅读 · 0 评论 -
关于caffe下ssd模型安装与测试的一点问题
关于caffe下安装ssd时出现的问题原创 2017-09-27 11:18:56 · 787 阅读 · 0 评论