计算机视觉
- 眼睛不等于视觉
- 摄像机不等于视觉
- 单个像素只有一个颜色信息,不表示任何复杂语义
传统图像特征举例:HOG
- 方向梯度直方图
传统图像特征举例:LBP
- 局部二值模式(以中间的值作为阈值,若像素值高于阈值则设置为1低于则为0)
图像分类任务
- 怎么区分鱼和自行车?
- 有效描述图像内容(像素图像比较无效)
- 找出区分鱼和自行车的关键信息(比如不能通过鱼有眼睛来区分,自行车上挂一个小黄人也是有眼睛的)
- 逻辑分类
卷积(Convolution)
- 对于一个有噪声的函数y=f(x),使用一个核(kernel)函数k(n)对其进行滤波
- 形象描述:滚动式的加权平均
离散二维卷积
计算方法就是3*3的模板一直移动,模板框出来的数字和卷积核对应相乘然后相加得到对应的值,在没有增加padding 的情况下,获得的输出的大小是(width-2,height-2)
- 图中的卷积核可以用来检测边缘。
- 对图像进行三维卷积运算,得到特征图。
- 卷积核是可训练参数。
- 卷积沟通了临近像素,一二增加了视野。
- 当图像内容与卷积核形状吻合的时候,激活度会很高,因而是一个特征提取器。
- 输出特征图的通道数等于使用的卷积核个数。
padding
- 使用padding可以对图像进行填充,使得卷积后的图像大小不变。
池化
- 池化是模板在输入图像上不断移动,模板框中的最大像素值输出,最后形成一个矩阵。
例题:MNIST手写数字识别
用卷积神经网络去构建模型,解决手写数字识别的问题。
这里就放构建模型的部分,如果需要把模型进行识别,用一下predict。
import numpy as np
#import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
#读取数据
def load_mnist