卷积神经网络 CNN 前传

2020-09-18  本文已影响0人  zidea

在开始介绍卷积神经网络之前,觉得有必要说一说什么是图像,在计算机中我们如何通过数据来表示图像。以及有关图像的一些问题。我们可以将图像处理为灰度图,在灰度图中明暗可以 intensity 来描述图片。这里 intensity 可以简单理解为我们某一像素(点)对光感知程度。怎么把这件事说清楚呢。我们看到物体是物体反射的光,发生不同颜色光以及光强度来反映一个物体。在计算机上我们将图像数字化过程,就是给图像每一个位置一个像素值,这个值可以分解为多个通道,值大小表示感光的程度。这就是我们在计算机视觉中要研究的对象。


这张图表示在计算机中如何用数据(矩阵)来表示一张图片,白色像素取值为 255 而黑色像素值取值为 0,这里要注意我们像素不是孤立,而是在位置上存在一定关系。

截屏2020-08-18下午1.43.20.png
img = cv2.imread("data/bear.jpeg")
img = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
plt.imshow(img,cmap='gray')

我们可以同函数来定义图片f(x,y) x 和 y 分别表示像素在 2D 坐标系上位置,f(x,y) 表示改点

resized_img = cv2.resize(img,(32,32))
plt.imshow(original_res,cmap='gray')
截屏2020-08-18下午2.12.55.png
xx, yy = np.mgrid[0:resized_img.shape[0], 0:resized_img.shape[1]]
fig = plt.figure(figsize=(15,15))
ax = fig.gca(projection='3d')
ax.plot_surface(xx, yy, resized_img ,rstride=1, cstride=1, cmap=plt.cm.gray,linewidth=2)
ax.view_init(80, 30)
plt.show()

通过 3D 视图形象地将我们如何通过灰度图 intensity 来表示图。

图像平滑

图像平滑

根据某一个像素其周围值来重新计算得到改点的新的值从而实现平滑。
\frac{10 + 5 + 3 + 4 + 5 + 1 + 1+ 1+ 7}{9} = 7

互相关

G[i,j] = \sum_{u = -k}^k \sum_{v = -k}^k H[u,v] F[i + u, j+ v]

卷积

G[i,j] = \sum_{u = -k}^k \sum_{v = -k}^k H[u,v] F[i - u, j - v]

非极大值抑制

我们观察一下,发现我们找到的边缘粗细不均匀,在图像标示出来比较粗的部分。那么对于这个问题如何解决,这里就是通过极大值抑制来解决


上一篇 下一篇

猜你喜欢

热点阅读