1.边缘检测示例(进行卷积运算convolution operation)
在数学中星号就是卷积的标准标志,但在python中常用来表示乘法或者元素乘法,所以有很多定义,它是一个重载符号。所以表示的时候要特别申明它是卷积即“*”=convolution;一般不同编程语言有不同函数来实现convolution而不是用星号来表示。(eg:python(conv_forward)/tensorflow(tf.nn.conv2d)
其实卷积运算就是一个矩阵相乘的过程。例如:
给你一张左边的6x6的图片,然后你用中间的3x3的图片与它相乘就可以得到右边4x4的图片,它是怎么乘的呢,就是从左上至右下用中间的矩阵去套,一个一个相乘再相加得到右边的图。中间的图就是一个核,或者称为过滤器,英文filter。
为什么要这么做呢,下面这张图就很好的诠释了。
这张图中,很显然,正数为白色,0为灰色,负数为黑色。也就是一个由亮到暗的过程,这样就可以得到一个很明显的垂直边缘。当图片是从暗到亮的图片的时候,得到的效果也不同。这里得到的是由暗变亮的边缘