计算机视觉复习资料2016
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、名词解释
视知觉:
直方图均衡化:
拉普拉斯算子:
统计模式识别:
人工智能:
无监督学习:
视感觉:
直方图规定化:
马尔算子:
人工神经网络:
有监督学习:
模糊聚类:
参考:
1.视知觉主要论述人们从客观世界接收到视觉刺激后如何反应以及反应所采
用的方式,视知觉是在神经中枢进行的一组活动,它把视野中一些分散的刺激加以组织,构成具有一定形状的整体以认识世界。
2.直方图均衡化的基本思想是把原始图的直方图变换为在整个灰度范围内均
匀分布的形式,这样就增加了像素灰度值的动态范围,从而达到增强图像整体对比度的效果。
3.模板的基本要求是对应中心像素的系数应是正的,而对应中心像素邻近像素
的系数应是负的,且所有系数的总和应该是零。
4.统计模式识别方法就是用给定的有限数量样本集,在已知研究对象统计模型
或已知类判别函数条件下根据一定的准则通过学习算法把d维特征空间划分为c个区域,每一个区域与每一类别相对应。
模式识别系统在进行工作时只要判断被识别的对象落入哪一个区域,就能确定出它所属的类别。
一个统计模式识别系统应包含预处理、特征抽取、分类器等部分。
5.人工智能是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术
及应用系统的一门技术科学。
研究用计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,主要包括计算机实现智能的原理、制造类似于人脑智能的计算机,使计算机能实现更高层次的应用。
6.无监督式学习是人工智能网络的一种算法,目的是对原始资料进行分类,以
了解资料内部结构。
有别于监督学习网络,无监督学习网络在学习时并不知道其分类结果是否正确,亦即没有受到监督式增强(告诉它何种学习是正确的) 。
其特点是仅对此种网络提供输入范例,而它会自动从这些范例中找出潜在类别规则。
当学习完毕并经测试后,也可以将之应用到新的案例上。
7.视感觉中主要研究的内容有:①光的物理特性;②光刺激视觉感受器官的程
度;③光作用于视网膜后经视觉系统加工而产生的感觉。
8.用户可指定规定化函数来得到特殊的增强功能,3个步骤:①对原始图的直
方图进行灰度均衡化,②规定需要的直方图,并计算能使规定的直方图均衡化的变换,③将第1步得到的变换反转过来,即将原始直方图对应映射到规定的直方图。
9.在每个分辨率上进行如下计算:①用一个2-D的高斯平滑模板与原图像卷积,
②计算卷积后图像的拉普拉斯值,③检测拉普拉斯图像中的过零点作为边缘
点。
10.人工神经网络从信息处理角度对人脑神经元网络进行抽象,建立某种简单模
型,按不同的连接方式组成不同的网络;神经网络是一种运算模型,由大量的节点(或称神经元)相互联接构成;每个节点代表一种特定的输出函数,称为激励函数;每两个节点间的连接代表一个对于通过该连接信号的加权值,称之为权重,这相当于人工神经网络的记忆;网络的输出按网络的连接方式,权重值和激励函数而不同;网络自身通常都是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。
11.有监督学习是指利用一组已知类别的样本调整分类器的参数,使其达到所要
求性能的过程,是从标记的训练数据来推断一个功能的机器学习任务。
训练数据包括一套训练实例,每个实例都是由一个输入对象(通常为矢量)和一个期望的输出值(也称为监督信号)组成。
监督学习算法是分析该训练数据,并产生一个推断的功能,可以映射出新实例。
12.模糊聚类分析是指根据研究对象本身的属性来构造模糊矩阵,并在此基础上
根据一定的隶属度来确定聚类关系,即用模糊数学的方法把样本之间的模糊关系定量的确定,从而客观且准确地进行聚类。
聚类就是将数据集分成多个
类或簇,使得各个类之间的数据差别尽可能大,类内之间的数据差别尽可能小,即“最小化类间相似性,最大化类内相似性”原则。
二、简答
1、计算机视觉的定义、研究方法、研究的目标是什么?它和图像处理、机器视觉、模式识别、人工智能、计算机图形学等相关学科有哪些联系或区别?
计算机视觉是指用计算机实现人类的视觉功能。
就是用各种成像系统代替视觉器官作为输入敏感手段,由计算机来代替大脑完成处理和解释。
计算机视觉的研究方法目前主要有两种,①仿生学的方法:参照人类视觉系统的结构原理;②工程的方法:实现系统的功能。
计算机视觉的主要研究目标可归纳成两个:①建立计算机视觉系统来完成各种视觉任务;②加深对人脑视觉机理的掌握和理解。
相关学科:(1)图像理解:与计算机视觉有相同的目标;(2)机器视觉:更关注通过视觉传感器获取环境的图像,构建具有视觉感知功能的系统以及实现检测和辨识物体的算法;(3)模式识别:图像就是模式的一种;(4)人工智能:视觉功能是人类智能的体现(1分);(5)计算机图形学:计算机视觉的反/逆问题。
2、实现图像分割有哪几类技术方法?各自的特点是什么?
图像分割方法可以分为两大类。
一类是边界方法,这种方法假设图像分割结果的某个子区域在原来图像中一定会有边缘存在;一类是区域方法,这种方法假设图像分割结果的某个子区域一定会有相同的性质,而不同区域的像素则没有共同的性质。
根据上述分割操作策略的不同,图像分割主要可以分为以下四种技术:并行边界分割技术、串行边界分割技术、并行区域分割技术和串行区域分割技术。
其特点可作如下归纳。
并行边界分割技术:不同图像灰度不同,在边界处通常都会有明显的边缘,利用此特征可以分割图像。
串行边界分割技术:并行边缘检测的方法,对图像的每一
点上所做的处理不依赖于其他的点处理结果。
串行边界分割在处理图像时不但利用了本身像素的信息,而且利用前面处理过像素的结果。
对某个像素的处理,以及是否把它分类成边界点,和先前对其他点的处理得到的信息有关。
并行区域分割技术:采用并行的方法对目标区域进行检测实现图像分割的方法。
区域分割是最直接的方法,因此这种分割方法可以直接得到感兴趣的目标区域。
串行区域分割技术:采用串行处理策略对目标区域直接检测实现分割的方法。
特点:整个处理过程可以分解为顺序的多个步骤依次进行。
可分为:区域生长,分列合并。
3、摄像机的标定程序和标定步骤?两级标定法的原则?
标定程序:令A = PRT,A中的元素包括摄像机平移、旋转和投影参数。
①获得M≥ 6个具有已知世界坐标(Xi, Yi, Zi)的空间点;
②用摄像机拍摄这些点以得到图像平面坐标(xi, yi);
③把这些坐标代入上两式以解出未知系数。
标定步骤:第1步:标定旋转矩阵R和平移矢量T;第2步:标定焦距λ;第3步:标定镜头径向失真系数k;第4步:标定不确定性图像尺度因子μ。
两级标定法的原则:先外部参数,即摄像机姿态参数(如摄像机的位置和方向或平移、扫视角和倾斜角);后内部参数,摄像机自身参数(如焦距、镜头径向失真、不确定性图像尺度因子);如果μ已知,标定时只需用一幅含有一组共面基准点的图像即可;如果μ未知,标定时需用一幅含有一组不共面基准点的图像。
4、请详细描述Marr视觉计算理论。
Marr认为视觉是一个复杂的信息加工过程,要解决两个问题:一个是视觉信息
的表达问题,另一个是视觉信息的加工问题。
他从信息处理系统的角度出发,认为视觉信息加工有三个要素,即计算理论、算法实现、硬件实现。
一个任务要用计算机完成,它应该是可以被计算的;这就是可计算性问题,需要用计算理论来回答。
有了计算理论后,还必须要有算法实现,为此需要给加工所操作的实体选择一种合适的表达。
有了表达和算法,在物理上如何实现算法也是必不可少的;特别是随着对实时性要求的不断提高,专用的硬件实现问题常常被提出来。
三、分析与计算
1、已知某含噪声的图像f 如图所示,用中值滤波模板M 对噪声点(已经标明)进行处理,求去噪结果。
⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦
11221192f(x,y)=15221122 ⎡⎤⎢⎥⎢⎥⎢⎥⎣⎦010M=111010
⎡⎤⎢
⎥⎢⎥'⎢⎥⎢⎥⎣⎦11221122f (x,y)=11221
122
2、给出一幅图像的四方向链码(原码)为1-0-1-0-3-3-2-2,取左下像素点的
右上角点作为初始点,画出其轮廓。
30
21
4、判断下列模板类型,包括平滑模板、锐化模板和边缘检测模板。
1⎡⎤⎢⎥⎢⎥⎢⎥⎣⎦0-10
M =-14-10-102⎡⎤⎢⎥⎢⎥⎢⎥⎣⎦0-10M =-15-10-103⎡⎤⎢⎥⎢⎥⎢⎥⎣⎦
0140M =140140140 M1边缘检测模板、M2锐化模板、M3平滑模板
5、一幅32×32,8个灰度级的数字图像,各灰度级所占像素个数见下表,对其进行直方图均衡化处理,求实际直方图、变换函数()i i s T r =以及变换后的直方图(取两位小数)。
原始图像灰度级s k0 1 2 3 4 5 6 7 原始图像各灰度级像素个数195 256 216 164 82 61 30 20 计算原始直方图p(s k)=n k/n0.19 0.25 0.21 0.16 0.08 0.06 0.03 0.02 计算原始累计直方图t k0.19 0.44 0.65 0.81 0.89 0.95 0.98 1.00 取整t k=int[(N-1)* t k+0.5] 1 3 5 6 6 7 7 7 确定映射对应关系0→1 1 →3 2 →5 3,4 →6 5,6,7 →7
新图像各灰度级像素个数195 256 216 246 111 计算新直方图0.19 0.25 0.21 0.24 0.11
四、设计与应用
1、设计一个基于计算机视觉的车辆自动识别收费系统,要求该系统可以对行驶中的车辆进行车型和车牌识别,在不停车的情况下实现车辆按型号不同分类收费的功能。
列出系统的总体结构和主要组成模块,并阐述它们的功能和作用。
系统的拓扑图如图所示,车辆进入收费站时触发埋设在地下的地感线圈,产生触发信号,收费计算机控制嵌入式车牌识别模块进行图像抓拍,抓拍到的车辆车牌图像经视频采集卡送到收费计算机,并由嵌入式车牌识别模块识别车牌,根据识别出的车牌在数据库中查找对应车型,若数据库已存在该车车型,系统通知软件自动打印发票;若该车型尚未被数据库确认,软件将提示收费员人工确认该车车型。
再进行打印发票收费。
车牌车型信息在同一管理中心下属各收费站共享。
2、按下图分析说明虹膜识别的过程,以及虹膜抓拍系统的软件流水线。
虹膜识别的过程依次是:捕获人脸的图像、检测眼睛图像、虹膜图像分割、虹膜图像增强与归一化、虹膜特征抽取、虹膜特征矢量编码、虹膜特征数据库匹配、输出识别结果。
在整个过程中最重要的是虹膜的分割与特征提取。
列举一种可行的软件流水线。
首先,标定立体相机和红外抓拍相机,将脸部检测和跟踪算法应用于立体相机捕获的图像上。
使用基于自适应增强算法的检测技术以及卡尔曼滤波来检测和跟踪脸部区域。
在立体相机计算得到眼睛的三维位置后,进一步将这个位置转换到抓拍相机的坐标系。
如果眼睛位置在抓拍相机的视场范围内,系统促发抓拍相机去捕获一幅目标脸部特写的近红外图像。
由于用户运动
的关系,捕获到的图像很可能是模糊的,进一步使用去模糊模块以恢复清晰图像。
一旦捕获到的图像能够被恢复,就对脸部图像进行眼睛检测,然后将裁剪后的眼睛图像发送给识别模块。
五、编程
1、OpenCV编程,利用cvHoughCircles在灰度图中找到圆序列并返回,代码中进行相应注释。
1.#include <highgui.h>
2.#include <math.h>
3.#include <cv.h>
4.
5.int main(int argc, char** argv)
6.{
7.IplImage* src = cvLoadImage( argv[1], 0 );
8.IplImage* dst = cvLoadImage( argv[1], 0 );
9.CvMemStorage* storage = cvCreateMemStorage(0);
10.cvSmooth( src, dst, CV_GAUSSIAN, 5, 5 ); //降噪
11.CvSeq* results = cvHoughCircles( //cvHoughCircles函数需要估计每一个像
素梯度的方向,
12.//因此会
在内部自动调用cvSobel,而二值边缘图像的处理是比较难的
13.dst,
14.storage,
15.CV_HOUGH_GRADIENT,
16.2, //累加器图像的分辨率
17.image->width/10
18.);
19.for( int i = 0; i < results->total; i++ )
20.{
21.float* p = ( float* )cvGetSeqElem( results, i );
22.//霍夫圆变换
23.CvPoint pt = cvPoint( cvRound( p[0] ), cvRound( p[1] ) );
24.cvCircle(
25.dst,
26.pt, //确定圆心
27.cvRound( p[2] ), //确定半径
28.CV_RGB( 0xff, 0, 0 )
29.); //画圆函数
30.}
31.cvNamedWindow( "cvHoughCircles", 1 );
32.cvShowImage( "cvHoughCircles", dst );
33.cvWaitKey(0);
34.
35.return0;
36.}
2、OpenCV编程,利用cvCanny实现Canny算子边缘检测,代码中进行相应注释。
1.#include <highgui.h>
2.#include <cv.h>
3.#include <cxcore.h> //人脸识别的一个库文件
4.
5.//Canny:Implements Canny algorithm for edge detection.
6.int main( int argc, char** argv )
7.{
8.IplImage* src = NULL;
9.IplImage* dst = NULL;
10.
11.//载入图像,转换为灰度图
12.src = cvLoadImage( argv[1], 0 );
13.//为canny边缘图像申请空间,1表示单通道灰度图
14.dst = cvCreateImage( cvGetSize( src ), IPL_DEPTH_8U, 1 );
15.cvCanny( src, dst, 50, 150, 3 );//边缘检测
16.cvNamedWindow( "src", 1 );
17.cvNamedWindow( "canny", 1 );
18.cvShowImage( "src", src );
19.cvShowImage( "canny", dst );
20.cvWaitKey(0);
21.
22.cvReleaseImage( &src );
23.cvReleaseImage( &dst );
24.cvDestroyAllWindows();
25.return0;
26.
27.}。