2D image convolution
在学习cnn的过程中,对convolution的概念真的很是模糊,本来在学习图像处理的过程中,已对convolution有所了解,它与correlation是有不同的,因为convolution = correlation + filp over in both horizontal + vertical
但在CNN中,明明只是进行了correlation,但却称之为convolution,实在不解
下面, 将图像处理中的convolution重新整理记录
因为网络关于这部分的解释很多,这里直接借用其他 参考
“A convolution is done by multiplying a pixel's and its neighboring pixels color value by a matrix”, 这里的matrix就是convoluiton kernel (usually a small matrix of numbers)
这里假设图像是3*3,kernel也是3*3,实际计算中,有时为了使得卷积结果与原图像一致,会对原图像进行padding操作
原图像x:
0 | 0 | 0 | 0 | 0 |
0 | 1 | 2 | 3 | 0 |
0 | 4 | 5 | 6 | 0 |
0 | 7 | 8 | 9 | 0 |
0 | 0 | 0 | 0 | 0 |
x(0,0) | x(0,1) | x(0,2) | x(0,3) | x(0,4) |
x(1,0) | x(1,1) | x(1,2) | x(1,3) | x(1,4) |
x(2,0) | x(2,1) | x(2,2) | x(2,3) | x(2,4) |
x(3,0) | x(3,1) | x(3,2) | x(3,3) | x(3,4) |
x(4,0) | x(4,1) | x(4,2) | x(4,3) | x(4,4) |
卷积核h:
-1 | -2 | -1 |
0 | 0 | 0 |
1 | 2 | 1 |
h(1,1) | h(1,2) | h(1,3) |
h(2,1) | h(2,2) | h(2,3) |
h(3,1) | h(3,2) | h(3,3) |
具体的过程为:
将h先上下翻转,再左右翻转,然后,与x进行correlation运算
1 | 2 | 1 |
0 | 0 | 0 |
-1 | -2 | -1 |
h(3,3) | h(3,2) | h(3,1) |
h(2,3) | h(2,2) | h(2,1) |
h(1,1) | h(1,2) | h(1,1) |
输出结果y:3*3
x(0,0) | x(0,1) | x(0,2) | x(0,3) | x(0,4) |
x(1,0) | x(1,1) | x(1,2) | x(1,3) | x(1,4) |
x(2,0) | x(2,1) | x(2,2) | x(2,3) | x(2,4) |
x(3,0) | x(3,1) | x(3,2) | x(3,3) | x(3,4) |
x(4,0) | x(4,1) | x(4,2) | x(4,3) | x(4,4) |
依次覆盖,对应元素相乘
h(3,3) | h(3,2) | h(3,1) |
h(2,3) | h(2,2) | h(2,1) |
h(1,1) | h(1,2) | h(1,1) |
y(1,1) = h(3,3) *x(0,0) + h(3,2) *x(0,1) + h(3,1) *x(0,2) +
h(2,3) *x(1,0) + h(2,2) *x(1,1) + h(2,1) *x(1,2) +
h(1,3) *x(2,0) + h(1,2) *x(2,1) + h(1,1) *x(2,2)
其他元素类似
注:In image processing, a kernel, convolution matrix, or mask is a small matrix useful for blurring, sharpening, embossing, edge-detection, and more. This is accomplished by means of convolution between a kernel and an image.
2D image convolution的更多相关文章
- Understanding Convolution in Deep Learning
Understanding Convolution in Deep Learning Convolution is probably the most important concept in dee ...
- 转置卷积Transposed Convolution
转置卷积Transposed Convolution 我们为卷积神经网络引入的层,包括卷积层和池层,通常会减小输入的宽度和高度,或者保持不变.然而,语义分割和生成对抗网络等应用程序需要预测每个像素的值 ...
- TensorflowTutorial_二维数据构造简单CNN
使用二维数据构造简单卷积神经网络 觉得有用的话,欢迎一起讨论相互学习~Follow Me 图像和一些时序数据集都可以用二维数据的形式表现,我们此次使用随机分布的二位数据构造一个简单的CNN-网络卷积- ...
- Intel DAAL AI加速——神经网络
# file: neural_net_dense_batch.py #================================================================= ...
- tensorflow: a Implementation of rotation ops (旋转的函数实现方法)
tensorflow 旋转矩阵的函数实现方法 关键字: rot90, tensorflow 1. 背景 在做数据增强的操作过程中, 很多情况需要对图像旋转和平移等操作, 针对一些特殊的卷积(garbo ...
- gdc skin
https://www.gdcvault.com/play/1024410/Achieving-High-Quality-Low-Cost 这篇是教美术怎么用做地形那种方法 复用贴图 做skin的 做 ...
- Winograd Convolution 推导 - 从1D到2D
Winograd Convolution 推导 - 从1D到2D 姚伟峰 http://www.cnblogs.com/Matrix_Yao/ Winograd Convolution 推导 - 从1 ...
- Deep Learning 10_深度学习UFLDL教程:Convolution and Pooling_exercise(斯坦福大学深度学习教程)
前言 理论知识:UFLDL教程和http://www.cnblogs.com/tornadomeet/archive/2013/04/09/3009830.html 实验环境:win7, matlab ...
- Deep Learning 学习随记(七)Convolution and Pooling --卷积和池化
图像大小与参数个数: 前面几章都是针对小图像块处理的,这一章则是针对大图像进行处理的.两者在这的区别还是很明显的,小图像(如8*8,MINIST的28*28)可以采用全连接的方式(即输入层和隐含层直接 ...
随机推荐
- OPTIMIZE TABLE
INNODB 不支持 mysql> OPTIMIZE TABLE t; +--------+----------+----------+----------------------------- ...
- 动作之CCActionInstant(立即动作)家族
立即动作就是不需要时间,马上就完成的动作.立即动作的共同基类是CCActionInstant.CCActionInstant的常用子类有: CCCallFunc:回调函数包装器 CCFlipX:X轴翻 ...
- 使用HttpURLConnection实现在android客户端和服务器之间传递对象
一般情况下,客户端和服务端的数据交互都是使用json和XML,相比于XML,json更加轻量级,并且省流量,但是,无论我们用json还是用xml,都需要我们先将数据封装成json字符串或者是一个xml ...
- C#基础篇02
首先:一个完整的方法是包括两部分的,代码和注释!!!! 程序的调试: 3:设置断点: 断点之前的程序已经确保正确,可是在断点后的部分可能出现错误,所以设置完断点后,直接点击启动,然后按F11逐步棸的 ...
- jquery杂记之checkbox控制select置灰
jquery: $(function(){ $("#avg_day_live").bind("click",function(){ //点击 if($(&q ...
- oracle定时备份
1.将如下代码复制到文本中,最后将文本后缀名称修改成XXX.bat 批处理文件: *********************************************************** ...
- android中相关的图形类
Bitmap - 称作位图,一般位图的文件格式后缀为bmp,当然编码器也有很多如RGB565.RGB888.作为一种逐像素的显示对象执行效率高,但是缺点也很明显存储效率低.我们理解为一种存储对象比较好 ...
- 动态加载js、css 代码
一.原生js: /** * 加载js和css文件 * @param jsonData.path 前缀路径 * @param jsonData.url 需要加载的js路径或css路径 * @param ...
- 坑爹CF April Fools Day Contest题解
H - A + B Strikes Back A + B is often used as an example of the easiest problem possible to show som ...
- layerX && layerY
转载:https://developer.mozilla.org/en-US/docs/Web/API/UIEvent/layerX UIEvent.layerX 非标准 这个属性是非标准的属性,并且 ...