一、简单描述卷积、卷积核、多通道、特征图、特征选择概念。
卷积:
卷积是两个变量在某范围内相乘后求和的结果,卷积是通过两个函数 [公式] 和 [公式] 生成第三个函数的一种数学算子,表征函数 f()与 f() 经过翻转和平移的重叠部分函数值乘积对重叠长度的积分。
卷积核:
卷积核就是图像处理时,给定输入图像,输入图像中一个小区域中像素加权平均后成为输出图像中的每个对应像素,其中权值由一个函数定义,这个函数称为卷积核。
多通道:
多通道卷积
多通道输出:
特征图:
由图像提取出的特征值组成的方图
特征选择:
从已经有的特征中选择若干有效的特征使图片最优
二、探究不同卷积核的作用,研究背后的原理。
1.经典卷积核,实现灰度图的边缘检测、锐化、模糊****
[-1, -1, -1]
[-1, 8, -1]
[-1, -1, -1]
边缘检测:
sobel_kernel = np.array([[-1, -1, -1],
[-1, 8, -1],
[-1, -1, -1]], dtype='float32') # 定义轮廓检测算子
sobel_kernel = sobel_kernel.reshape((1, 1, 3, 3)) # 适配卷积的输入输出
锐化:
sobel_kernel = np.array([[0, -1, 0],
[-1, 5, -1],
[0, -1, 0]], dtype='float32') # 定义轮廓检测算子
sobel_kernel = sobel_kernel.reshape((1, 1, 3, 3)) # 适配卷积的输入输出
模糊:
sobel_kernel = np.array([[1, 2, 1],
[2, 4, 2],
[1, 2, 1]], dtype='float32') # 定义轮廓检测算子
sobel_kernel = sobel_kernel / 16
sobel_kernel = sobel_kernel.reshape((1, 1, 3, 3)) # 适配卷积的输入输出
三、调整参数,观察更多变化
上面这些变化可能不太明显,接下来尝试改变参数等使变化更加明显。
更换了一个边界更清晰的图片如下:
锐化:
模糊:
调整参数之后确实变化更加明显了。
尝试更多类型的卷积核:
浮雕滤波器:
可以给图像一种3D阴影的效果。
只要将中心一边的像素减去另一边的像素就可以了。这时候,像素值有可能是负数,我们将负数当成阴影,将正数当成光
卷积核:
还是挺有意思的。