简单描述卷积、卷积核、多通道、特征图、特征选择概念。
卷积操作:将卷积核与输入数据的每个位置进行逐个元素相乘,并将相乘结果累加起来,得到卷积结果。这个过程可以看作是卷积核在输入数据上的滑动。通常用于对图像特征的提取或信息的匹配;
卷积核:卷积神经网络的核心组件之一,又称为滤波器,通常为一个nn的方阵,用于卷积运算,同一张图像,应用不同的卷积核进行卷积(卷积核的大小和对应位置的数值完全相同的卷积核才是相同的卷积核,不满足该条件的都是不同的卷积核),得到的卷积结果(特征图)不同。
多通道:不同类型的图像对应的通道数不同,灰度图像的通道数一般为1,真彩色图像一般为三通道(一个像素点描述RGB三种颜色),要想对图像进行卷积运算,图像的通道数必须与卷积核的通道数相同,即每个通道对应一个卷积核。
特征图:卷积得到的结果,图像与卷积核加权累加得到卷积(滤波)后的特征图。
特征选择:对于同一张图像,运用不同的卷积核进行卷积,得到的最终结果不同,即特征图不同,最后展示出来的图像的特征也不同。通常根据自己想要提取的特征,选择合适的卷积核进行卷积。例如,在图像分类任务中,第一个卷积层可能会使用多个卷积核来提取图像的边缘、角点和纹理等特征,第二个卷积层则可能会使用多个卷积核来提取这些特征的组合。
探究不同卷积核的作用,研究背后的原理
卷积核通常为一个二维nn的矩阵,矩阵的大小对应着卷积核的width和height,矩阵的层数对应卷积核的通道数(channel),卷积核的通道数与所处理的图像的通道数必须一致。一个卷积核只能提取一种特定的特征。通过使用多个卷积核,CNN可以同时提取多种不同的特征,并将这些特征结合起来进行分类或回归。卷积核可以提取输入数据的不同特征,例如边缘、脚点、纹理等。通常通过修改卷积核中的数值,来进行不同的特征提取。另外,卷积核的大小,会影响特征提取的效率与准确性。当卷积核的大小比较小的时候,它可以提取到输入数据中的较小的局部特征信息,例如纹理、边缘等。小卷积核可以将输入数据的细节信息提取出来,并保持输入图像的细节特征,从而有效地提高卷积网络的准确率。当卷积核的大小比较大的时候,它可以捕捉到输入数据中的更广泛的局部信息。大卷积核可以捕捉到更大范围的信息,可以用于检测更大的特征,在提取诸如形状、面部部位和物体检测等高层次概念时效果更好。
代码实现灰度检测
边缘检测算法
import cv2
img = cv2.imread("l2.png")
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 灰度图
img_b = cv2.Canny(img, 38,180,apertureSize=3) # (38,180)为阈值
img_c = cv2.Canny(img, 38,180,apertureSize=5)
cv2.imshow('photo1',img)
cv2.imshow('photo2',img_b)
cv2.imshow('photo3',img_c)
cv2.waitKey(0)
高斯模糊
import cv2
img = cv2.imread("lz2.png")
# 高斯模糊
blurred = cv2.GaussianBlur(img, (21, 21), 0) #(21,21)越高越模糊,只能设置为奇数
cv2.imshow('photo1',img)
cv2.imshow('photo2',blurred)
cv2.waitKey(0)