Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 5

19.11.

2020

计算机视觉应该怎样入门——知乎

 量子位

https://www.pyimagesearch.com/start-here/

 知乎用户

CV 是啥:研究让机器像人一样具有能够“看”的能力,并在必要的时候给予合适的反馈(输出:比如看图说话,看视频

说话)

学 CV 的前提:python,C++,高数,线性代数,概率统计,机器学习基础

在哪学:斯坦福李飞飞教授的 CS231n 课程 http://cs231n.stanford.edu/

推荐书籍:《计算机视觉:模型、学习和推理》——入门

《Learning OpenCV》——实战经典

《Python 计算机视觉编程》——CV 的基本概念和算法结合代码实战

《计算机视觉:算法与应用》——工具书,大而全,不适合初学者

《Multiple View Geometryin Computer Vision》,中文版名《CV 中的多视图几何》——3D VR/AR 必看

其他:国际顶尖的 CV 会议,扫扫论文的摘要、看看报告视频,稍作了解就好。

 言有三(公众号:有三 AI)

 读芯术(公众号同名)

以下网站看 slides,辅助 slides 中提到的书的章节

http://vision.stanford.edu/

http://vision.stanford.edu/tea

http://cvgl.stanford.edu/teach

http://vision.stanford.edu/tea

 七月在线(公众号:七月在线实验室)

 团学社-大鹏

由谷歌出品,屡次斩获图像识别大赛冠军的深度学习模型——Inception,当初是被设计用于对 1000 种不同类型的图片

进行分类。

强烈推荐安装 tensorflow_gpu,TensorFlow 安装方法可以参考官网。

讨论群:837627861

 Sophia(公众号:计算机视觉联盟)

 CotCoux

冈萨雷斯的《数字图像处理》:基础的部分:取样量化,图像操作,灰度变换,空间/频域滤波,形态学处理,分割什么

找一个方向去先试着了解下:人脸检测,物体识别,姿态识别,行人检测,表情识别,基于内容的图像检索等等

OpenCV 配合 C++,或者 MATLAB

 莫小刀

确定自己需要计算机视觉做什么,然后针对自己想做的,比如猫狗分类,去 GitHub 上找小的 demo 照着做,最后一行一

行研读代码。

 人邮异步社区(公众号:异步社区)

《计算机视觉度量 从特征描述到深度学习》

 灰灰(公众号:磐创 AI)

 Lensyu(公众号:汽车电控与智能驾驶)

 永无止境

深度学习对计算机视觉有益:

卷积神经网络,深度残差网络,深度残差收缩网络
 《计算机视觉—算法与应用》
Harris Corner Detector

4.harris corner detection(角点检测)——会飞的吴克(b站)

有一个小的窗口在平面上移动来检测角点,在平坦区域,所有方向的亮度都没有明显梯度变化;在边缘区域,只有某个方向亮

度有明显梯度变化;在角点附近,几乎各个方向亮度梯度值都有明显的变化。

这个移动的窗口用 W 表示,W(x,y)的值就是窗口中的某点(x,y)的权重,这里分为两种情况,第一种情况是点在窗

口里面则权重为1,点不在窗口里面则权重是0;第二种情况是高斯分布,窗口最里面的点权重最高,窗口边缘的点权重最低。

(u,v)表示窗口沿着x方向移动了u个单位,沿着y方向移动了 v 个单位。

I(x+u,y+v)-I(x,y)表示移动后和移动前相比的变化程度。

综上,E 的值越大代表越有可能是检测到了角点。

二元函数的泰勒级数展开,为下面的计算铺垫。

窗口移动到任意位置(对任意的u和v)都使得 E 最大。

λ1 0 −1
下图中,M 矩阵是实对称矩阵,可以将它正交相似对角化,即 M = P [ ]P
0 λ2
经过下面的计算可以发现 E 是中心在坐标原点,但长轴和短轴不在x轴和y轴的椭圆。

要使得 E 很大,必须 λ 1和 λ 2同时很大。

方块图中绿色的部分表示 λ 1和 λ 2同时很大,也就是角点。

也可用上式来表示,k是一个自己选取的参数,比如0.5。

1.image processing from scratch(从零开始的图像处理)——会飞的吴克(b站)

像素的4邻域和8邻域:

像素的表示(如下图):R、G、B 通道分别代表红色、绿色和蓝色,值域是[0,255],即8bit,1个字节,RGB 值一共

需要3个字节。下图归一化为[0,1],坐标原点即 RGB 值均为 0 代表黑色,[1,1,1]代表白色,从黑色到白色的对角

线是灰色,即灰度值。除了 RGB 3通道之外还有一个 A 通道代表透明度。


灰度图就是将3通道变成1通道,即图中的对角线,就是亮度的大小。

代码实例:

19  plt.show()

2.canny edge detection(canny 边缘检测)——会飞的吴克(b站)

首先将图片灰度化之后再做边缘检测。做完边缘检测后的图每个像素都是二值的,要么黑(0)要么白(1)。

卷积:通常是奇数*奇数的大小,比如3*3,为了确保有一个中心点。

在下图左中,首先将原始图片灰度化后的四周补(padding)一圈0(为了保证卷积后的矩阵和原始图片大小一致),然后将右

边3*3的格子重叠到左边矩阵的左上角,相对应的元素相乘,然后所有的积相加,如图18+121=139,然后左上角

的3*3格子将向右移动一格(stride),重新计算卷积和,依次计算后会得到新的图片如下图右。3*3补一圈0,5*5补

两圈0。

常见的卷积核:高斯核(如下图中的等式,不包含 B 和 A 的部分)
5*5的高斯卷积核,159是矩阵内所有元素的和,1/159相当于对矩阵做归一化处理,归一化使得像素值不会溢出

(0,255)的范围。这个矩阵是高斯核,因为距离中心15距离相等的位置值相等。高斯核卷积后的图像会更加平滑,因

为每个像素点的值都被它附近的像素影响,而且也能去掉一些随机噪声,噪点。

常见的卷积核:sobel核,下图分别是水平方向(下图右)和竖直方向(下图左)的sobel核

分别用上图左和上图右去卷积原始图片,得到的结果为 G x(原始图片竖向的导数)和 G y(原始图片横向的导数)

利用下式计算得到梯度的幅值(G)和梯度的方向(θ)

边就是灰度变化率很大的地方,幅值就是衡量变化率的标志。要得到一条很细的边,即非常准确地找到边的位置,在这条边的

梯度方向,这个像素点变化率最大的一个极大值的位置才是准确的边的位置。

非极大值抑制:

You might also like