卷积神经网络

Faster R-CNN、SSD和YOLO

╄→гoц情女王★ 提交于 2019-11-29 06:31:10
最近做一些关于Faster R-CNN、SSD和YOLO模型选择和优化的项目,之前只了解Faster R-CNN系列目标检测方法,于是抽空梳理一下这几个检测模型。先上两张简单的精确度和运算量的对比图,有个粗略的了解,虽然图中缺了YOLO,参考价值仍然很大: 下面开始分别详述吧~ Faster R-CNN架构 传统目标检测方法大致分为如下三步: 深度学习特别是CNN的出现使得上述第二三步可以合并在一起做。Faster R-CNN步骤: (1)由输入图片产生的区域候选 (2)最后一层卷积输出的所有通道 (2)最后一层卷积输出的所有通道 pooling=> + (3)ROI pooling 候选区的产生 RPN的核心思想是使用卷积神经网络直接产生region proposal,使用的方法本质上就是滑动窗口。RPN的设计比较巧妙,RPN只需在最后的卷积层上滑动一遍,因为anchor机制和边框回归可以得到多尺度、多长宽比的region proposal,3*3滑窗对应的每个特征区域同时预测输入图像3种尺度(128,256,512),3种长宽比(1:1,1:2,2:1)的region proposal,这种映射的机制称为anchor: RPN 利用基网络对图像用一系列的卷积和池化操作进行特征提取,得到原始的feature maps(灰色区域),然后在原始的feature

zz神经网络模型量化方法简介

我的未来我决定 提交于 2019-11-29 03:39:46
神经网络模型量化方法简介 https://chenrudan.github.io/blog/2018/10/02/networkquantization.html 2018-10-02 本文主要梳理了模型量化算法的一些文章,阐述了每篇文章主要的内核思想和量化过程,整理了一些对这些文章的分析和看法。 【转载请注明出处】 chenrudan.github.io 随着神经网络算法的发展,网络性能虽然越来越强大,但是也耗费了太多的计算资源和内存,为了得到更有效率的网络以及能部署在移动端,近几年神经网络的压缩算法成了一个研究热点,主要的网络压缩途径有五种,量化、剪枝、低秩分解、教师-学生网络、轻量化网络设计,量化就是将以往用32bit或者64bit表达的浮点数用1bit、2bit占用较少内存空间的形式进行存储。剪枝的目的是为了去掉一些不重要的神经元、连接、通道等,低秩分解主要是通过各种分解方法用精简的张量来表达复杂张量,教师-学生网络间接通过提升小网络性能来压缩学生网络的规模,一般可以与其他压缩方法同时使用,轻量化网络设计主要是类似MobileNet这种设计的非常精简但性能又好的网络。几种方法都各有特点,都是值得研究和讨论的,本文主要针对量化算法近几年的发展做一个梳理和归纳,我觉得量化算法有几个特点, 理论简单,公式少,性能稳定且trick多。 下图1

卷积

帅比萌擦擦* 提交于 2019-11-29 03:27:59
哪位高手能解释一下卷积神经网络的卷积核? - 知乎 https://www.zhihu.com/question/52237725 如何通俗易懂地解释卷积? - 知乎 https://www.zhihu.com/question/22298352 来源: https://www.cnblogs.com/cx2016/p/11443237.html

什么是卷积和池化

China☆狼群 提交于 2019-11-29 02:41:16
在传统的神经网络中,比如多层感知机( MLP ),其输入通常是一个特征向量,需要人工设计特征,然后将这些特征计算的值组成特征向量,在过去几十年的经验来看,人工找到的特征并不是怎么好用,有时多了,有时少了,有时选择的特征根本就不起作用(真正起作用的特征在浩瀚的未知里面)。这就是为什么在过去卷积神经网络一直被 SVM 等完虐的原因。 如果有人说,任何特征都是从图像中提取的,那如果把整副图像作为特征来训练神经网络不就行了,那肯定不会有任何信息丢失!那先不说一幅图像有多少冗余信息,单说着信息量就超级多。。。 假如有一幅 1000*1000 的图像,如果把整幅图像作为向量,则向量的长度为 1000000 ( 10^6 )。在假如隐含层神经元的个数和输入一样,也是 1000000 ;那么,输入层到隐含层的参数数据量有 10^12 ,什么样的机器能训练这样的网络呢。所以,我们还得降低维数,同时得以整幅图像为输入(人类实在找不到好的特征了)。于是,牛逼的卷积来了。接下来看看卷积都干了些啥。 什么叫卷积? 卷积层是用一个固定大小的矩形区去席卷原始数据,将原始数据分成一个个和卷积核大小相同的小块,然后将这些小块和卷积核相乘输出一个卷积值(注意这里是一个单独的值,不再是矩阵了)。 卷积的本质就是用卷积核的参数来提取原始数据的特征,通过矩阵点乘的运算,提取出和卷积核特征一致的值,如果卷积层有多个卷积核

Paper Reading:RCNN-SPP-Fast RCNN-Faster RCNN

一笑奈何 提交于 2019-11-29 00:54:11
本文对基于RCNN框架的几个模型进行介绍和总结。 [目标检测][base64str0] RCNN 论文:Rich feature hierarchies for accurate object detection and semantic segmentation 发表时间:2014 发表作者:(加州大学伯克利分校)Ross Girshick 发表刊物/会议:CVPR 本文具有很多比较重要的意义。 1、在 Pascal VOC 2012 的数据集上,能够将目标检测的验证指标 mAP 提升到 53.3%,这相对于之前最好的结果提升了整整 30%. 2、这篇论文证明了可以讲神经网络应用在自底向上的候选区域,这样就可以进行目标分类和目标定位。 3、这篇论文也带来了一个观点,那就是当你缺乏大量的标注数据时,比较好的可行的手段是,进行神经网络的迁移学习,采用在其他大型数据集训练过后的神经网络,然后在小规模特定的数据集中进行 fine-tune 微调。 候选区域与 CNN 结合 R-CNN利用候选区域与 CNN 结合做目标定位。其中借鉴了滑动窗口思想,R-CNN 采用对区域进行识别的方案。具体是: 给定一张输入图片,从图片中提取 2000 个类别独立的候选区域。 对于每个区域利用 CNN 抽取一个固定长度的特征向量。 再对每个区域利用 SVM 进行目标分类。 [R-CNN1]

吴恩达:04卷积神经网络 第二周深度卷积网络 编程作业 Keras tutorial - the Happy House

…衆ロ難τιáo~ 提交于 2019-11-29 00:02:14
Keras tutorial - the Happy House Welcome to the first assignment of week 2. In this assignment, you will: Learn to use Keras, a high-level neural networks API (programming framework), written in Python and capable of running on top of several lower-level frameworks including TensorFlow and CNTK. See how you can in a couple of hours build a deep learning algorithm. Why are we using Keras? Keras was developed to enable deep learning engineers to build and experiment with different models very quickly. Just as TensorFlow is a higher-level framework than Python, Keras is an even higher-level

123

大城市里の小女人 提交于 2019-11-28 22:15:25
主要语义分割网络调研 介绍 图像的语义分割是将输入图像中的每个像素分配一个语义类别,以得到像素化的密集分类。虽然自 2007 年以来,语义分割/场景解析一直是计算机视觉社区的一部分,但与计算机视觉中的其他领域很相似,自 2014 年 Long等人 首次使用全卷积神经网络对自然图像进行端到端分割,语义分割才产生了大的突破。 网络架构 一般的语义分割架构可以被认为是一个 编码器-解码器 网络。 编码器 通常是一个预训练的分类网络,像 VGG、ResNet,然后是一个 解码器 网络。这些架构不同的地方主要在于 解码器 网络。 解码器 的任务是将 编码器 学习到的可判别特征(较低分辨率)从语义上投影到像素空间(较高分辨率),以获得密集分类。 不同于分类任务中网络的最终结果(对图像分类的概率)是唯一重要的事,语义分割不仅需要在像素级有判别能力,还需要有能将编码器在不同阶段学到的可判别特征投影到像素空间的机制。不同的架构采用不同的机制(跳跃连接、金字塔池化等)作为解码机制的一部分。 Fully Convolution Networks (FCNs) 全卷积网络 Fully Convolutional Networks for Semantic Segmentation(2015) 作者将当前分类网络(AlexNet, VGG net 和 GoogLeNet)修改为全卷积网络

【深度学习】经典的卷积神经网络(GoogLeNet)

江枫思渺然 提交于 2019-11-28 17:42:44
回顾 简单的浅层神经网络,如三层的卷积神经网络等,在层数比较少的时候,有时候效果往往并没有那么好,在实验过程中发现,当尝试增加网络的层数,或者增加每一层网络的神经元个数的时候,对准确率有一定的提升,简单的说就是增加网络的深度与宽度,但这样做有两个明显的 缺点 : 更深更宽的网络意味着更多的参数,提高了模型的复杂度,从而大大增加过拟合的风险,尤其在训练数据不是那么多或者某个label训练数据不足的情况下更容易发生; 增加计算资源的消耗,实际情况下,不管是因为数据稀疏还是扩充的网络结构利用不充分(比如很多权重接近0),都会导致大量计算的浪费。 解决以上两个问题的基本方法是将全连接或卷积连接改为稀疏连接。不管从生物的角度还是机器学习的角度,稀疏性都有良好的表现,如AlexNet网络提出的Dropout网络以及ReLU激活函数,其本质就是利用稀疏性提高模型泛化性(但需要计算的参数没变少)。 简单解释下稀疏性,当整个特征空间是非线性甚至不连续时: 学好局部空间的特征集更能提升性能,类似于Maxout网络中使用多个局部线性函数的组合来拟合非线性函数的思想; 假设整个特征空间由N个不连续局部特征空间集合组成,任意一个样本会被映射到这N个空间中并激活/不激活相应特征维度,如果用C1表示某类样本被激活的特征维度集合,用C2表示另一类样本的特征维度集合,当数据量不够大时

(CVPR 2019)The better version of SRMD

这一生的挚爱 提交于 2019-11-28 16:39:22
CVPR2019的文章,解决SRMD的诸多问题, 并进行模拟实验。 进行双三次差值(bicubic)===>对应matlab imresize() %% read images im = {}; scale_factor = 6; im_ = dir('E:\A_paper\TEM降噪用GAN\matlab_codes\images\*.jpg'); path = ['E:\A_paper\TEM降噪用GAN\matlab_codes\images\',im_(1).name]; im{1} = imread(path); if size(im{1},3) > 1 im{1} = rgb2gray(im{1}); im{1} = im{1}(:,:,1); end %% bicubic interpolation img_up = imresize(im{1}, scale_factor, 'bicubic'); img_down = imresize(im{1}, 1/scale_factor, 'bicubic'); %% image showing figure,imshow(im{1}); figure,imshow(img_up); figure,imshow(img_down); 对应的图片: 当scale_factor放大图像,图像更为平滑,而缩小图像,则更为模糊。

【深度学习】卷积神经网络CNN——手写一个卷积神经网络

て烟熏妆下的殇ゞ 提交于 2019-11-28 15:42:12
卷积神经网络的前向传播 1.输入层---->卷积层   输入是一个4*4 的image,经过两个2*2的卷积核进行卷积运算后,变成两个3*3的feature_map 以卷积核filter1为例(stride = 1 ): 计算第一个卷积层神经元$ o_{11} $的输入: $$ \begin{align} net_{o11} \nonumber & = conv(input, filter)\nonumber\\ & = i_{11}\times h_{11}+i_{12}\times h_{12}+i_{21}\times h_{21}+i_{22}\times h_{22}\\ & = 1\times 1+0\times (-1)+1\times 1+1\times (-1) = 1\nonumber \end{align} $$ 神经元$ o_{11} $的输出:(此处使用Relu激活函数) $$ \begin{align} out_{o11} \nonumber & = activators(net_{o11})\\ & = max(0, net_{o11})=1 \end{align} $$ 其他神经元的计算方式相同 2.卷积层---->池化层 计算池化层$ m_{11} $的输入(取窗口为 2 * 2),池化层没有激活函数 $$ \begin{align} net_{m