1.1 计算机视觉(Computer Vision)
1、机器学习的应用:
(1)图片分类/识别(Image Classification)
(2)目标检测(Object Detection)
(3)神经风格迁移(Neural Style Transfer)
2、传统机器学习存在的问题:数据量过大
1000 * 1000 *3 = 3million(大图片)
故需要使用卷积运算。
1.2边缘检测(Edge Detection)示例
边缘检测分为垂直边缘(Vertical Edges)检测和水平边缘(Horizontal Edges)检测。这里先以垂直边缘检测为例进行介绍:
相当于对一张6 * 6的图片,经过一个3 * 3的过滤器,转换成了一张4 * 4的图片。
【注】不同的编程语言有不同的卷积函数:
python:conv_forward
tensor flow: tf.nn.conv2d
keras: Conv2D
1.3更多边缘检测内容
1.4 Padding(填充)
n * n * f * f =(n-f+1) * (n-f+1)
这样的话,有两个缺点:
(1)每做一次卷积操作,图像就会缩小。
(2)边缘或者角落处的像素点只被一个输出使用,所以那些角落或者边缘区域的像素点在输出中采用较少,也就意味着丢掉了图像边缘位置的许多信息。
为了解决上述两个问题,在卷积操作之前,可以填充原始图像。
6 * 6(P=1)➡️ 8 * 8 * 3 * 3 =(8-3+1) * (8-3+1)= 6*6
习惯上,可以用0去填充,若P为填充数量,
输出则变成了(n+2p-f+1) * ( n+2p-f+1)
同时角落或者边缘的信息发挥的作用比较小的这一缺点就被削弱了。
选择填充多少像素,通常有两个选择:
(1)valid convolutions(no padding):n * n * f * f ➡️(n-f+1) * (n-f+1)
(2)same convolutions:即使得输出大小与输入大小一样。
n+2p-f+1 = n
➡️p = (f-1)/2,f取奇数。