首页 > 代码库 > 华盛顿大学计算机视觉课程笔记(一)
华盛顿大学计算机视觉课程笔记(一)
课程的第一节,是一个综述性的课。对于这节课,我总结为以下几个问题:
(一)什么是计算机视觉;
(二)怎样实现计算机视觉(怎么让机器看懂图像)
(三)计算机视觉的应用有哪些。
那么首先解决第一个问题:什么是计算机视觉。
Computer vision is a field that includes methods for acquiring, processing, analyzing, and understanding images. ------------------------ Wikipidia
计算机视觉是一个包含图像获取、处理、分析和理解的一个学科。
那么计算机视觉的目的是什么呢?
The goal of computer vision is to make useful decisions about real physical objects and scenes based on sensed images.
计算机视觉是对图像进行处理、分析和理解,以此来对现实中的物体或场景得出有用的信息并且做出决断。
那么为了对现实物体和场景做出决断,那就必须要对图像中含有的信息进行建立描述体(descriptor)和建模(model),因此很多专家认为计算机视觉的目的是为了从图像(image)中提取出对场景(scene)的一个描述体(descriptor)。
所以这就得出了我们的第二个问题:怎么实现计算机视觉(怎么让机器看懂图像)
首先我得说一个题外话,计算机视觉这个学科是属于人工智能领域的,而人工智能的目的是让机器拥有和人类一样的能力,人工智能的一个典型的方法就是模拟人类的工作方式。计算机视觉也是如此,仔细思考一下,你的眼睛和大脑是如何理解图像,这对你理解计算机视觉的实现很有帮助。比如说在你的面前摆放着一台电脑,你是如何得出“这是一台电脑”的这个决断的呢?好好剖析一下你的思维,我想最明显的特征那就是键盘和屏幕,如果拥有这两个特征的物体就可以判断为电脑了,那么如何判断这个是键盘呢,那么很明显的就是它拥有如此排布方式的方格和上面的字母,所以识别一个键盘就是第一步要先识别出方格型(shape),然后在判断方格之间的排布方式(relationship),这大概就是键盘的排布方式,然后也可以通过识别方格里面的字母,这就是文字识别了(text recognition)那么屏幕呢,首先仍然应该是方格形状,但是要大的多,然后呢就是玻璃材质也就是纹理(texture)了。
以上的例子是我为了解释如何理解图像而想的一个例子,我并没有实际实现,而且实际实现多半也不是这样的,所以别太在意。
总结一下,由以上的例子可以说明,实现计算机视觉是可以划分成很多的子问题的,那么有哪些子问题呢,在文档中由如下总结:
Sensing:How do sensors obtain images of the world? How do the images encode properties of the world, such as material, shape, illumination and spatial relationships?
Encoded Information: How do images yield information for understanding the 3D world,including the geometry, texture, motion, and identity of objects in it?
Representations: What representations should be used for stored descriptions of objects,their parts, properties and relationships?
Algorithms:What methods are there to process image information and construct descriptions of the world and its objects?
以下是我自己翻译的:(仅供参考)
成像原理:光学传感器是怎样形成图片的,图片是怎样编码世界的一些属性,如材料,形状,光强和空间关系。
编码的信息:怎么从图像中推出用于理解三维世界的信息,包含几何信息,纹理信息,空间移动以及物体识别。
表示形式:如何来表示对物体以及它的局部特征,属性和相互关系(数据结构)
算法:处理图像信息和构建描述世界和物体特征的算法
但我认为维基百科里讲的对图像获取,处理,分析,理解这四个层次的划分更加准确。
讲完了计算机视觉的内容以后,接下来就是第三个问题计算机视觉的应用,应用全部来自课件。
应用一:数洞洞(hole counting)
如上述这个图,如何计算出图中有多少个洞(就是白色区域的个数)。这是一个工程师做出来的算法用来计算汽车横杆的螺栓洞的数量。他采用的方法是计算角点的数量,分为外角点(external Corner)和内角点(internel Corner)两种,下图是外角点和内角点的像素特征
然后使用公式(E-I)/4就可计算出洞洞的数量。至于原因就不解释,当然我认为在某些特殊情况下这是有问题的。
比如说这个图,交接点就成为这种形式,就不是角点,所以这图总共有六个外角点和零个内角点,但是有两个洞洞,不符合上述公式。当然这个问题有更好的答案,或者说我的答案是错的,请告诉我。
应用二:核磁共振成像分析
用到了二值化分析,将像素亮点强度高于某个阀值的设置为亮点,低于某个阀值设置为暗点,这样图像的对比度和纹理结构就可以很清晰的显示出来了。
应用三:扫描文字识别
比如说上述的手写体,自动的识别转成机器体。
应用四:通过卫星图像计算雪覆盖面积
通过计算卫星图像里面白色像素点的数量就可以计算出地上被雪覆盖的面积
应用五:理解三维结构和相对关系
通过理解三个部件的几何机构和相对位置关系,就可以把被遮蔽的信息给恢复出来,因为人是可以做到的,那么计算机就也可以做到。
应用六:基于内容的图片搜索
这个其实谷歌图片搜索很早就有了,之前的图片搜索都是用关键字去搜索,而更准确你可以输入一张图片,然后搜索出具有这个内容的图片。
找出还有树的图片
应用七:脸部检测和识别
华盛顿大学计算机视觉课程笔记(一)