卷积核
卷积运算中使用的小型数值矩阵。卷积核的值决定滤波器类型 - 模糊、边缘检测、锐化或浮雕。
卷积核(也称滤波器核或卷积矩阵)是图像卷积中使用的小型数值矩阵。通常大小为 3×3、5×5 或 7×7(奇数维度),每个值定义应用于周围像素的权重。仅通过改变核的值,就能实现完全不同的效果 - 模糊、锐化、边缘检测、浮雕。
基本的核设计原则:
- 归一化:元素之和为 1 的核保持图像亮度(模糊类滤波器)。元素之和为 0 的核检测边缘
- 对称性:中心对称的核产生各向同性(方向无关)的滤波器
- 大小:更大的核影响更宽的区域,但计算成本呈二次方增长
实用的核示例:
- 3×3 高斯模糊:
[[1,2,1],[2,4,2],[1,2,1]]除以 1/16 归一化。自然平滑 - 3×3 锐化:
[[0,-1,0],[-1,5,-1],[0,-1,0]]。强调中心像素以增强边缘 - 3×3 Sobel(水平):
[[-1,0,1],[-2,0,2],[-1,0,1]]。检测垂直边缘 - 3×3 浮雕:
[[-2,-1,0],[-1,1,1],[0,1,2]]。创建凸起浮雕效果
在代码中,OpenCV 通过 cv2.filter2D(img, -1, kernel) 应用自定义核。将核定义为 NumPy 数组并传递给函数 - 创建自定义滤波器只需基本线性代数,无需专门的库。
在深度学习中,核的值不是手动设计的,而是从训练数据中自动学习。每个 CNN 层包含数十到数百个核:较低层学习边缘和颜色检测器,较高层识别物体部件和语义概念。