版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
- 计算机视觉能做什么
图像分类
将只有一个桌子的图片中的桌子分辨为桌子
目标检测
将图像中的桌子和椅子分别用框框框出来,且框尽量小
目标追踪
在视频的第一帧中检测到一个目标,并框出来,然后在第二帧以及往后的帧中框出目标
风格迁移
将A图片中的风格a和B图片中的目标b相结合,做出图片C(风格a的目标b)
超像素
将一个像素做成多个像素(去马赛克,旧照片翻新)
图像拼接
A图片右边为目标z,B图片左边为目标z,可以将A和B图片拼接到一块(重合目标z)
语义分割
将图像中的桌子中的所有像素标红(只能标桌子的像素)
人脸识别
将图像中的人识别为人。(用于安检)
- 图片在计算机中的表示
众所周知,在计算机的世界里面信息是01表示的。
到底01 是怎么表示图像的呢?
- 灰度图
2*2 4个像素,8bit/像素 的图片
0b1111 1111表示白,0b0000 0000表示黑, 0b0111 1111 表示灰 (当然 0b0000 0000 到 0b1111 1111 中间的数值都可以表示一个像素的颜色)
黑白图片就是用一个矩阵表示出来的
- -
| 0b00000000 0b00000101|
| 0b11100110 0b00101011|
- -
- 彩色图
2*2 4个像素,8bit/像素 的图片
彩色图就是用3个矩阵表示出来的,R矩阵,G矩阵,B矩阵。
0b1111 1111表示满,0b0000 0000表示空, 0b0111 1111 表示半空 (当然 0b0000 0000 到 0b1111 1111 中间的数值都可以表示一个色素的颜色)
R矩阵
- -
| 0b00000000 0b00000101|
| 0b11100110 0b00101011|
- -
G矩阵
- -
| 0b00000000 0b00000001|
| 0b11101110 0b00101011|
- -
B矩阵
- -
| 0b00000010 0b00001101|
| 0b11101110 0b00001011|
- -
- 对黑白图片的分析
灰度直方图
展示灰度为x(例如0b00001000)的比例为多少
可以知道这张图是偏白(整体偏右)还是偏黑
可以知道对比度是大还是低(像素集中)
- 对矩阵的处理
去噪
现象:周围是一些35-50的点,但是突然出现几个255(白),0(黑)的点,这个点叫做椒盐噪点
处理,将255 或者 0 点 改为 35-50 的点, 这个过程叫做磨平。过程中用到了滤波器,也叫核(kernel)。用核(3*3)在矩阵中滑动,叫做卷积。这个核每滑动一次,会对核心的数据进行修改一次。
原图像为 S*S , 核为N*N,步长为K,那么卷积处理的数据的长宽为 [S-N+1/K] 的上取整,最外面那圈数据就不要了??为什么
为了保存最外面那圈数据,就做一个处理,将外面在扩充一圈,叫做padding,至于扩充的数据为什么,一般为0或者255。也可以是其他的数。
如果padding A圈那么 卷积处理的数据的长宽就变为了 [S+2*A-N+1/K]
核心数据修改方法:
平均滤波:
方法:修改后的核心数据 = 1/9 的 核内的 9个数
问题:再怎么平均,椒盐噪点还是对最终数据有影响
中值滤波:
方法:修改后的核心数据 = 核内的 9个数的中位数
全连接神经网络
- 一层线性网络
--------------一层网络
输入1 网络 输出1
输入2 网络 输出2
. .
. 网络 .
. 网络 .
输入N 输出K
网络的函数为 多元一次方程
Yk = X1Wk1 + X2Wk2 + ... + XnWkn + Bk
所以对应所有的网络,需要 N*K 个W(权重), K个B(bias)
所谓的网络训练就是不断更新 N*K 个W(权重), K个B(bias)
- 多层线性网络
--------------多层网络
输入1 网络1 网络2 ... 输出1
输入2 网络1 网络2 ... 输出2
. .
. 网络1 网络2 ...
. 网络1 网络2 ...
输入N 输出K
网络的函数为
Yk(next) = X1(prev)Wk1 + X2(prev)Wk2 + ... + Xn(prev)Wkn + Bk(prev)
所以对应所有的网络,需要 N*K 个W(权重), K个B(bias)
- 非线性网络
线性网络在图片上划出的线都是直线,有时候需要用曲线分割图像,所以需要非线性网络???
对应的需要 在 多元一次方程上添加一个激活函数
激活函数分类
sigmoid函数
将所有的值通过运算出来,结果范围为0~1
tanh函数
将所有的值通过运算出来,结果范围为-1~1
relu函数(用的比较广泛)
小于0不激活,大于0开始激活
leaky relu
小于0激活度小,大于0激活度大