卷积

nn.Conv2d 参数含义

邮差的信 提交于 2020-03-03 03:54:47
nn.Conv2d(self, in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True)) 参数:   in_channel: 输入数据的通道数,例RGB图片通道数为3;   out_channel: 输出数据的通道数,这个根据模型调整;   kennel_size: 卷积核大小,可以是int,或tuple;kennel_size=2,意味着卷积大小(2,2), kennel_size=(2,3),意味着卷积大小(2,3)即非正方形卷积   stride:步长,默认为1,与kennel_size类似,stride=2,意味着步长上下左右扫描皆为2, stride=(2,3),左右扫描步长为2,上下为3;   padding: 零填充 来源: CSDN 作者: qq_41645987 链接: https://blog.csdn.net/qq_41645987/article/details/104613014

pytorch入门 构建CNN

泪湿孤枕 提交于 2020-03-02 20:45:34
#coding=utf-8 import torch import torch.nn as nn import torch.nn.functional as F from torch.autograd import Variable class Net(nn.Module): #定义Net的初始化函数,这个函数定义了该神经网络的基本结构 def init (self): super(Net, self). init () #复制并使用Net的父类的初始化方法,即先运行nn.Module的初始化函数 self.conv1 = nn.Conv2d(1, 6, 5) # 定义conv1函数的是图像卷积函数:输入为图像(1个频道,即灰度图),输出为 6张特征图, 卷积核为5x5正方形 self.conv2 = nn.Conv2d(6, 16, 5)# 定义conv2函数的是图像卷积函数:输入为6张特征图,输出为16张特征图, 卷积核为5x5正方形 self.fc1 = nn.Linear(16 5 5, 120) # 定义fc1(fullconnect)全连接函数1为线性函数:y = Wx + b,并将16 5 5个节点连接到120个节点上。 self.fc2 = nn.Linear(120, 84)#定义fc2(fullconnect)全连接函数2为线性函数:y = Wx + b

OpenCV 图像处理之膨胀与腐蚀

可紊 提交于 2020-03-02 16:46:08
OpenCV 膨胀与腐蚀 文章目录 1、什么是膨胀与腐蚀 2、形态学处理——膨胀 2.1 更改卷积核大小 2.2、更改迭代次数 3、形态学处理——腐蚀 3.1、更改卷积核大小 3.2、更改迭代次数 4、开运算和闭运算 4.1、开运算 4.2、闭运算 5、梯度计算 6、高帽和黑帽 6.1、高帽计算 6.2、黑帽计算 最后 1、什么是膨胀与腐蚀   膨胀与腐蚀属于形态学范围,具体的含义根据字面意思来理解即可。但是更形象的话就是“增肥”与“减肥”。   它们的用途就是用来处理图形问题上。总结性的来说: 膨胀用来 处理缺陷 问题; 腐蚀用来 处理毛刺 问题。   膨胀就是把缺陷给填补了,腐蚀就是把毛刺给腐蚀掉了。这里其实说的并不严谨,也是为了大家理解方便。下面我们就用实例来进行演示。 2、形态学处理——膨胀   我们先引入一张图片进行分析。 程序实现: img = cv2 . imread ( 'Pic/corrode.png' ) def cv_show ( img ) : cv2 . imshow ( '' , img ) cv2 . waitKey ( 0 ) cv2 . destroyAllWindows ( ) cv_show ( img )   图中我们可以看到,这张图片是一个二值图片(只有黑白),而且还增加了一些 毛刺 。而且还包含字体中还包含一些小的 间隙 (缺陷)。  

空洞卷积Dilated Conv的感受野,计算量以及实现方法详解

大兔子大兔子 提交于 2020-03-02 14:51:19
空洞卷积的目的 是为了在扩大感受野的同时,不降低图片分辨率和不引入额外参数及计算量(一般在CNN中扩大感受野都需要使用s>1的conv或者pooling,导致分辨率降低,不利于segmentation。而如果使用大卷积核来增加感受野,会引入额外的参数及计算量)。可以代替降采样(pooling或s2/conv),标准卷积可以看做空洞卷积的特殊形式。 来源: CSDN 作者: WeissSama 链接: https://blog.csdn.net/Bismarckczy/article/details/104426124

卷积神经网络CNN

旧巷老猫 提交于 2020-03-02 13:16:39
卷积神经网络CNN 为什么选择CNN? CNN基础 -- 边缘检测 padding 填充 Stride 滑动步长 CNN网络层次结构 CNN模型的训练过程 为什么选择CNN? 传统神经网络结构存在两个缺点: (1) 当输入层维度较大时,导致网络权重 W 数值较大(一张 64x64 的三通道图片,神经网络输入层的维度为 12288),训练的神经网络结构较复杂【具体原因在本篇下文介绍】,训练网络所需的内存和计算量庞大,模型训练更加困难,且样本训练集不够,容易出现过拟合; (2) 不符合图像特征提取的机制。传统神经网络是将二维或者三维(包含 RGB 三通道)图片拉伸成一维特征,作为神经网络的输入层。这种操作实际上是将图片的各个像素点独立开来,忽略了各个像素点之间的区域性联系。 CNN基础 – 边缘检测 边缘检测是用来检测图片中包含的边缘信息,具体原理是:将图片与相应的边缘检测算子进行卷积操作(对应位置元素相乘再求和)。 卷积的具体过程如下: padding 填充 根据上述的卷积过程可得,可得如下结论: 当原始图片的尺寸为 n × n (n = 6), 滤波器算法大小为 f × f (f = 3), 注意:f一般为奇数,则卷积后的图片尺寸为 (n-f+1) × (n-f+1) (4 × 4)。 观察上述结论可得出: 卷积运算后,输出的图片的尺寸变小 原始图片边缘信息对输出贡献少

RPN网络学习

白昼怎懂夜的黑 提交于 2020-03-02 12:11:12
RPN网络学习 在阅读学习了一些其他人关于RPN网络的讲解后,总结自己的理解. 如图所示: (1)在进入RPN网络之前,可以先经过数个卷积池化层的运算,然后得到一张特征图,这张特征图即为RPN网络的输入; (2)进入RPN网络后可以对其进行一次卷积操作,得到的还是一张特征图; (3)此时分为两条路线 a 和 b a:对于这张特征图上的每一点都会预测k=9个预选框,而第一条路线,需要用于区分这些框里是否有待检测的目标,所以有 存在目标 和 不存在目标 两种情况,同时有9个预选框,所以总共有18种分类情况; b:对于这k=9个预选框还需要确它们的位置,因此每个框对应2组(x,y)的位置信息,总共就有36种情况; (4)将两条路线输出的最终结果进行整合筛选,比如这个框里有目标的概率有多高?高的留下了来,并将其与框的坐标合并得到一组新的合并后的输出,以这种方式,最终筛选出一些预选框,进入之后的网络中进行学习。** 来源: CSDN 作者: 着魔村民 链接: https://blog.csdn.net/weixin_44019809/article/details/104606191

卷积神经网络为什么具有平移不变性?

断了今生、忘了曾经 提交于 2020-03-02 12:09:03
概述 在读计算机视觉的相关论文时,经常会看到平移不变性这个词,本文将介绍卷积神经网络中的平移不变性是什么,以及为什么具有平移不变性。 什么是平移不变性? 不变性 不变性意味着即使目标的外观发生了某种变化,但是你依然可以把它识别出来。 这对图像分类来说是一种很好的特性,因为我们希望图像中目标无论是被平移,被旋转,还是被缩放,甚至是不同的光照条件、视角,都可以被成功地识别出来。 所以上面的描述就对应着各种不变性: 平移不变性:Translation Invariance 旋转/视角不变性:Ratation/Viewpoint Invariance 尺度不变性:Size Invariance 光照不变性:Illumination Invariance 平移不变性和平移同变性 在欧几里得几何中,平移是一种几何变换,表示把一幅图像或一个空间中的每一个点在相同方向移动相同距离。比如对图像分类任务来说,图像中的目标不管被移动到图片的哪个位置,得到的结果(标签)应该是相同的,这就是卷积神经网络中的平移不变性。 平移不变性意味着系统产生完全相同的响应(输出),不管它的输入是如何平移的 。 平移同变性(translation equivariance)意味着系统在不同位置的工作原理相同,但它的响应随着目标位置的变化而变化 。比如,实例分割任务,就需要平移同变性,目标如果被平移了

图像卷积、相关以及在MATLAB中的操作

余生长醉 提交于 2020-03-02 09:52:58
图像卷积、相关以及在MATLAB中的操作 2016年7月11日 20:34:35, By ChrisZZ 区分卷积和相关 图像处理中常常需要用一个 滤波器 做 空间滤波 操作。空间滤波操作有时候也被叫做卷积滤波,或者干脆叫卷积(离散的卷积,不是微积分里连续的卷积);滤波器也有很多名字:卷积模版、卷积核、掩模、窗口等。 空间滤波可以分为线性滤波和非线性滤波。非线性滤波常见的有中值滤波、最大值滤波等,相当于自定义一个函数,在数学上由于不满足线性变换因此叫做非线性滤波。这里不细研究它。 线性滤波则通常是:将模版覆盖区域内的元素,以模版中 对应位置 元素为权值,进行累加。看起来挺简单的,但是要区分 相关(cross-correlation) 和 卷积(convolution) 两种模式。为什么呢?因为在MATLAB里是有所区分的,而且不少中文书里面把它们混淆了。 我们最容易的理解是:将模版中元素从左到右、从上到下,作为使用顺序,那么卷积操作的结果,就是模版第一个元素乘以它覆盖的元素,加上模版第二个元素乘以它覆盖的元素,再加上模版第三个元素乘以它覆盖的元素,...,一直加到模版最后一个元素乘以它覆盖的元素。好吧,其实就是:模版覆盖区域内,元素逐一相乘然后累加,此时的对应位置就是上下投影后被覆盖的位置。 上面这个理解确实是看起来最容易理解的,因而很多中文书把它叫做"卷积"。然而这个概念其实叫做

YOLO v2 / YOLO9000论文详解

╄→尐↘猪︶ㄣ 提交于 2020-03-02 01:14:56
YOLO9000:Better, Faster, Stronger 声明:笔者翻译论文仅为学习研究,如有侵权请联系作者删除博文,谢谢 ! 源论文地址: https://arxiv.org/abs/1612.08242 注 :文字中标粗和亮色的部分为笔者认为有创新改进余地和需要注意的地方,斜体部分为笔者的一些想法,因水平所限,部分笔触可能有不实和错误之处,敬请广大读者批评指正,让我们一起进步~ YOLO v2 和 YOLO 9000 可以看成是两部分,其中v2是对v1的各个部分进行技术上的加持和改进;9000是对数据集和检测类别进行扩展。这里我们重点说YOLO v2部分。 v2相对于v1来说,速度更快、精度更高。 具体改进措施有以下几点: 1. 各卷积层后添加BN层; 2. YOLO2在采用 224×224 图像进行分类模型预训练后,再采用 448×448 的高分辨率样本对分类模型进行微调(10个epoch),使网络特征逐渐适应 448×448 的分辨率。然后再使用 448×448 的检测样本进行训练,缓解了分辨率突然切换造成的影响; 3. 引入anchor boxes(召回率上升,准确率略微下降),448×448 -> 416×416 通过使用K-means聚类方法筛选出一个网格cell里预测5个锚点框最合适; 通过给anchor

ESPCN论文笔记

ぐ巨炮叔叔 提交于 2020-03-01 21:11:44
ESPCN论文笔记 论文:Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network 此前利用卷积神经网络(CNN)的图像超分辨率方法(Super Resoluiton, SR)中,通常在图像预处理阶段利用双三次插值将低分辨率(LR)图像变换为目标分辨率,然后在高分辨率的条件下进行特征提取与图像重建(例如SRCNN)。这样做使得算法的计算复杂度很高,ESPCN提出了一种在低分辨率场景下提取特征并重建图像的网络结构,降低了计算量,提高了运行速度。 网络结构 首先将L层卷积神经网络直接应用于LR图像,然后应用亚像素卷积层(sub-pixel convolution layer)进行特征映射与放大生成高分辨率(HR)图像。亚像素卷积层就是ESPCN的主要贡献,其后有很多方法都仿照此,在LR上提取特征,继而经过亚像素卷积层提高分辨率。(sub-pixel convolution又称作pixel shuffle) 一般通过卷积操作生成的特征图会比原始图像更小,而当步长小于1时,得到的特征图就会大于原始图像。这里就是将通过CNN生成的r²个H×W×C的张量转化成为一个rH×rW×C的张量。r为scale factor,H、W为图像宽高