- 卷积神经网络其实即使模仿人类识别图像的过程人眼看东西首先看到轮廓,然后注意到其他细节。
- 计算机只能识别图片像素的数值,神经网络则会通过卷积核提取图像的不同特征,将特征组合到一起识别人脸或者其他物体
神经网络中的卷积核准确的讲叫特征提取器
数学原理是对一组数据应用一个变化然后得到另一个数据的过程
通过OpenCV展示卷积效果
import cv2 as cv
import numpy as np
img = cv.imread('../day07/img/lena.jpg')
cv.imshow("img", img)
kernel = np.array([
[1/9,1/9,1/9],
[1/9,1/9,1/9],
[1/9,1/9,1/9]
])
src = cv.filter2D(img,-1, kernel)# 使用一个2维的卷积核去处理图像
cv.imshow("src",src)
cv.waitKey()
cv中常见的卷积核其核内各元素相加和为1,这样处理出来的图像亮度与原图差异不大。如果和大于1图像会发白,小于1会变暗。
示例程序中用的卷积核元素和为1,元素值都相等,所以图像上的所有特征都被弱化了
当把卷积核改为这种
[ 0 0 0 0 0 0 0 0 0 0 1 / 3 1 / 3 1 / 3 1 / 3 1 / 3 0 0 0 0 0 0 0 0 0 0 ] \left[ \begin{matrix} 0&0&0&0&0\\ 0&0&0&0&0\\ 1/3&1/3&1/3&1/3&1/3\\ 0&0&0&0&0\\ 0&0&0&0&0 \end{matrix} \right] ⎣⎢⎢⎢⎢⎡001/300001/300001/300001/300001/300