用于计算机视觉的卷积神经网络

用于计算机视觉的卷积神经网络

前言

随着计算机视觉的不断发展,深度学习这门技术也越来越重要,其中卷积神经网络(CNN),是一种常见的深度学习架构,常用于图像识别,这项技术使得机器人可以自主对于特定目标进行识别,极大提升工作效率。

1. 计算机如何识别特定目标?

计算机的世界里只有0和1,所有的数据在电脑中都是以0和1组成的编码存储的,这样的编码叫做二进制。
那么它是如何对图像进行识别的呢?要解决这个问题,我们首先要了解大脑是如何识别物体的?图像进入我们的眼睛后,我们并不能直接认出这个物体,第一层大脑皮层看到的是“一些有规律的点”,再将这些点传至下一层大脑皮层,在这一层将有规律的点连接成线条,再将这些局部线条拼接起来传至下一层大脑皮层,就认出字母Z。如下图所示:
用于计算机视觉的卷积神经网络
基于这个原理,卷积神经网络应运而生,帮助计算机实现图像识别。与大脑类似,卷积神经网络主要包括三个部分:卷积层、池化层和全连接层。

卷积层:卷积操作的目的是提取输入的不同特征。第一层卷积层可能只提取边缘、线、角等一些低级特征。网络的更多层可以从低级特征迭代。提取更复杂的特征。

池化层:用于减小图像数据量,提升识别效率。有多种不同形式的非线性池化函数,而其中最大池化(Max pooling)和平均采样是最为常见的

全连接层:和普通神经网络一样的连接方式,一般在最后几层,用来做最后的识别判断

卷积层
在如下图像上,有一个黄色X
用于计算机视觉的卷积神经网络
我们将黄色的像素点设置为1,白色的像素点设置为0,要想识别出这个X,我们只需要识别出,一个右下的斜线和一个左下的斜线即可。如下图所示:
用于计算机视觉的卷积神经网络
首先识别右下斜线,在此处我们使用一个33的卷积核,此卷积核也是一个右下斜线,然后我们用图像左上角33的区域,与这个卷积核相应的像素点相乘,再相加得到一个结果2,如下图所示:

用于计算机视觉的卷积神经网络
放到另一个表中,依次做相应的计算,直到填满整个表,如下图:
用于计算机视觉的卷积神经网络
同理,我们使用左下斜线的卷积核计算左下斜线的特征,得到下表:
用于计算机视觉的卷积神经网络
基本上,表格的较大部分是原始图像右下角有对角线的部分。

池化层
由于图像的像素非常大,计算非常复杂,因此需要对图像进行压缩。池化的目的是这样的,我们只需要保持四个像素的最大值即可。依次进行计算,得到更小的图像,如下图所示:
用于计算机视觉的卷积神经网络
压缩后的图像仍然保持原始特征,同样的方法用于计算左下斜线点的卷积核。现在得到的图像仍然无法被计算机识别,需要进入下一个阶段,全连接层。

全连接层
将上述得到的两个3*3的图像,展开成一维数组,并且拼接起来,对于人眼这个数组难以判别,但是对于计算机十分容易。因为在识别前要拿样本图像对计算机进行训练,训练后计算机就会对每个特定的图像,保存一个特征数组,然后计算机利用识别图像得到的数组,与训练后数组作对比,根据相似度,对物体进行识别。如下图所示:
用于计算机视觉的卷积神经网络

严格来说,全连接层可以理解为一个函数,把展开后的数组扔进去,输出图片属于每个类的概率。

总结

卷积神经网络仿照大脑识别物体,经过不断卷积、池化、全连接,最后基于概率识别出目标。目前,CNN用于手写数字识别并一直保持了其在该问题的霸主地位。近年来卷积神经网络在多个方向持续发力,在语音识别、人脸识别、通用物体识别、运动分析、自然语言处理甚至脑电波分析方面均有突破。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
xiaoxingxing的头像xiaoxingxing管理团队
上一篇 2022年3月26日 下午7:59
下一篇 2022年3月26日 下午8:09

相关推荐