计算机视觉学习之-Classification

Visual Recognition包括:Classification, Classification+Localization, Object Detection, Instance Segment。

计算机视觉学习之-Classification
Classification:一张图里面有这么一个物体,然后我们根据图片里面的这个物体来判断这张图片属于哪一个类;比如kaggle上有一个著名的猫狗大赛,判断这张图片里面的动物是猫还是狗。
Classification+Localization: 我们不但要判断出这张图片里面的物体,还要判断出这个物体在这张图片的什么地方。
Object Detection: 由于我们的图片中一般都包含不止一个物体,比如一张照片里面同时包含了人脸、猫脸、和狗脸,那我们就要用Object Detection来处理,Object Detection包括分类和定位。
Instance Segment:再深一步的话,其实是一个语义分割,Object Detection只是框出了一个大概位置,语义分割的话,就是把这个物体的轮廓抠出来,类似于美图秀秀里面的美拍,把人脸抠出来,美化之后再放回去。

接下来让我们认识一下 Classification
首先是数据集:Mnist,, 被称为深度学习里面的helloWord, 比较主流的深度学习框架,都会提供这个数据集的借口。我们来看其中的一张图:
计算机视觉学习之-Classification
图片里面写了一个“1”, 这张图片是黑白的,并且我们把他正规化到0和1之间。
接下来,我们看一下对这张图片的分类依据:
计算机视觉学习之-Classification
这是一个非常简单的神经网络模型,我们把这一张图片以像素为单位拆解成一个特征向量,输入到神经网络中,然后输出一个预测的结果。因为数字0~9一共有10个,所以输出一共是一个长度10维的向量,预测这个数字是几,输出的结果中对应位就是1。
上边这个网络的识别率很高,可以达到百分之八十几,但是我们想一下,我们把一个二维的图片,展开成一个一维的向量,那会损失很多信息,所以在现在深度学习中,我们都用的是另外一种方法。这个方法是在2012年的imagenet脱颖而出的,叫convolutional neural network卷积神经网络,当然他并不是12年才提出的。接下来我们看一下什么是卷积神经网络:
计算机视觉学习之-Classification
输出和前面的神经网络一样,是一个概率,但是里面有Convolutional和pooling。
接下来我们看一下什么是convolution:
计算机视觉学习之-Classification
中间的3*3的小矩阵,叫卷积核,把卷积核在图片上滑动,重叠部分叫感受野filter。计算方法就是对应相乘再相加。
我们来看一个具体的例子:
计算机视觉学习之-Classification
左边的图片,经过中间的卷积核之后,提取到了左边的图片的边缘特征。不同的卷积核会提取不同的特征。
接下来我们再看一下Pooling & Relu:
计算机视觉学习之-Classification
Pooling: 我们一般采用最大池化max pool,就是提取一个2*2区域中最大的像素,也就是保留主要特征,减少网络当中的计算量,把主要信息保留出来。
计算机视觉学习之-Classification
Relu: 整流线型单元,是一个线性**函数。

卷积神经网络中的主要部分已经描述完了,现在让我们开始深入了解各种经典网络吧!

AlexNet:
Alex在2012年提出的alexnet网络结构模型引爆了神经网络的应用热潮,并赢得了2012届图像识别大赛的冠军,使得CNN成为在图像分类上的核心算法模型。

结构
AlexNet有5个卷积层和3个全连接层
计算机视觉学习之-Classification
这个网络前面5层是卷积层,后面三层是全连接层,最终softmax输出是1000类。AlexNet使用ReLU代替了传统的**函数。

VGG16( Visual Geometry Group )(16的意思是16层):
计算机视觉学习之-Classification
结构
一共有16层网络,其中13层卷积层,3层全连接层。最终softmax输出是1000类。