ch1机器视觉与计算机视觉-绪论

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

机器视觉基础IntroductionofMachineVision2课程信息课程目标理解机器视觉/计算机视觉的概念掌握视觉程序设计方法第一层次:编程第二层次:基本算法第三层次:视觉核心掌握视觉算法细节通过算法改进完成视觉应用通过数学物理方法、结合机器学习算法解决视觉问题3课程信息讲授内容第三部分特征提取与目标跟踪特征点检测直线与圆检测运动检测目标跟踪第四部分3D视觉摄像机标定立体视觉第一部分绪论机器视觉的概念程序设计基础第二部分图像处理基础数字图像的概念与性质图像预处理图像分割数学形态学4课程信息课程考核方式平时作业+大作业(40分)期末考试(60分)规则独立完成平时作业按时交作业,过时不候程序要求能演示,符合编程规范,有必要注释答疑当面、电话、邮件5主要参考书图像处理、分析与机器视觉(第3版)MilanSonka,VaclavHlavac,RogerBoyle著艾海舟,苏延超等译清华大学出版社,20116参考书(视觉相关)BertholdKlausPaulHorn著,王亮,蒋欣兰译,《机器视觉》,中国青年出版社,2014E.R.Davies《计算机与机器视觉:理论、算法与实践(英文版•第4版)》,电子工业出版社,2012马颂德,张正友《计算机视觉——计算理论与算法基础》,科学出版社,19987参考书(编程相关)RobertLaganière著,张静译,《OpenCV2计算机视觉编程手册》,科学出版社,2013毛星云,冷雪飞等《OpenCV3编程入门》,电子工业出版社,2015GaryBradski,AdrianKaehler著,于仕琪,刘瑞祯译,《学习OpenCV(中文版)》,清华大学出版社,2009冈萨雷斯著,《数字图像处理(MATLAB版)》,电子工业出版社,2005第一部分绪论Introduction9主要内容第1章绪论1.1机器视觉(MachineVision)的概念1.2视觉技术的发展1.3视觉技术的应用1.4视觉程序设计基础101.1机器视觉的概念WhyVision?视觉是人类最重要的感觉,人类认识外界信息80%来自视觉视觉传感器比较成熟机器视觉与计算机视觉(ComputerVision)基本理论框架、底层理论、算法相似研究的最终目标不同111.1机器视觉的概念从“人类视觉”到“机器视觉”理解Apple&IPodInteresting!121.1机器视觉的概念从“人类视觉”到“机器视觉”视觉系统的三个层次:识别、描述、理解低层阶段:图像预处理、图像特征提取及分割中层阶段:物体的几何模型与图像特性表达高层阶段:景物知识的理解131.1机器视觉的概念机器视觉的概念利用各种成像系统代替人类的视觉器官作为输入手段,由计算机来代替大脑完成处理和解释141.1机器视觉的概念机器视觉的目标使计算机像人那样,通过视觉观察和理解世界,具有自主适应环境的能力机器视觉的任务通过分析图像生成关于成像物体(场景)的描述场景图像成像系统描述应用反馈机器视觉15机器视觉与相关学科的关系图像处理(ImageProcessing)计算机图形学(Computer计算机图形学是一种使用数学算法将二维或三维图形转化为计算机显示器的栅格形式的科学输入图像输出图像图像处理特征向量所属分类模式识别三维模型二维显示计算机图形学模式识别(PatternRecognition)Graphics)16机器视觉的困难与问题机器视觉是一个逆问题(Inverseproblem)从三维世界到二维图像的信息损失噪声的存在数据量大,信息存储与检索困难局部处理与全局理解171.2视觉技术的发展1820世纪70年代视觉研究关注于从图像恢复世界的三维结构,进而进行场景理解光流法积木世界立体视觉对应1970年代:Marr的计算视觉理论框架核心是从图像恢复物体的三维形状视觉是一个复杂的信息处理过程视觉信息处理系统的三个层次计算理论层次:各部分的计算目的与计算策略表达与算法层次:各部分(各模块)的信息表达,以及实现计算理论目标的算法硬件实现层次:如何用硬件实现算法2070年代:Marr的计算视觉理论框架视觉信息处理的三个阶段1)低层视觉:构成要素图(primalsketch)2)中层视觉:构成对环境的2.5维描述3)高层视觉:构成物体的完整三维描述原始图像感知亮度要素图边缘点直线段曲线顶点纹理2.5维描述表面方向、观察距离及不连续性表面反射照明情况3维模型曲面和体元素的分级组织观察者为中心物体为中心2120世纪80年代视觉研究关注于定量图像与场景分析的更复杂的数学方法图像金字塔与小波由阴影到形状边缘和轮廓检测(snake)马尔科夫随机场2220世纪90年代前期研究的继续与发展光流方法跟踪算法图像分割统计学习方法多视角立体视觉增加与计算机图形学的交互基于图像的建模基于图像的绘制全景图拼接人脸跟踪图像分割23视觉技术在21世纪的发展趋势视觉与图形学的相互影响进一步加深在物体识别领域出现了基于特征的方法(结合学习方法)发展更高效的求解复杂全局优化问题的算法在视觉问题中应用复杂的机器学习方法抠图与合成高动态范围成像241.3视觉技术的应用自动驾驶辅助与交通管理:辅助自动驾驶、车辆识别、车牌识别眼动追踪(Eyetracking):疲劳驾驶、残疾人辅助体育分析(Sportsanalysis):增强报道(3D图形生成)裁判辅助、实时跟踪球员、游戏与姿态识别:MicrosoftKinect、GestureTek视频处理:相机跟踪、模型生成、防抖处理、超分辨率分析、全景图生成参考:~lowe/vision.html25医疗方面手术导航医学图像分析与诊断26全景图合成27人类跟踪28传统工业应用汽车工业电子工业食品与农业纺织品检测塑料检测医疗设备检测物流业29视觉的实际应用浮云的数字化去除:用MATLAB去除拍摄大礼堂星轨过程中遇到的云彩总结:复杂而有趣的视觉31总结:复杂而有趣的视觉32总结:复杂而有趣的视觉图灵奖获得者JimGray列出的12大信息科学问题之一:Seeaswellasaperson数字图像处理射影几何工程数学……信息类基础知识生理性心理物理学神经生物学……与人类视觉结合工程实践33编程平台说明课上举例Matlab:容易上手,显示结果便捷;程序运行速度慢,注重研究OpenCV(OpenSourceComputerVisionLibrary):基于开源的跨平台视觉开发包,功能更加丰富,程序执行效率高,注重实际应用;OpenCV版本说明OpenCV1(2006):C接口OpenCV2(2009):C++接口,增加新平台支持,实现GPU加速,提供Python/Java接口OpenCV3(2015):改变了项目架构方式34编程语言说明课上举例Matlab:容易上手,显示结果便捷;程序运行速度慢,注重研究OpenCV(OpenSourceComputerVisionLibrary):基于开源的跨平台视觉开发包,功能更加丰富,程序执行效率高,注重实时应用;编程复杂,需要C/C++语言基础编程语言:C++/Java/Python+OpenCV/Matlabopencv.org多阅读源程序,善于使用帮助35OpenCV2库中的模块【core】:核心功能,包括底层数据结构和算法函数【imgproc】:图像处理函数【highgui】:读写图像及视频函数,操作图形界面函数【features2d】:兴趣点检测子、描述子、兴趣点匹配框架【calib3d】:相机标定、双目集合估计及立体视觉【video】:运动估计、特征跟踪与前景提取函数【objdetect】:物体检测,如人脸与行人检测【ml】:机器学习【gpu】:运行GPU加速的视觉模块【legacy】:废弃代码库,用于向下兼容【nonfree】:具有专利的算法模块……36使用OpenCV2//头文件#includeopencv2/core/core.hpp#includeopencv2/imgproc/imgproc.hpp#includeopencv2/highgui/highgui.hpp//OpenCV库#pragmacomment(lib,opencv_core244d.lib)#pragmacomment(lib,opencv_imgproc244d.lib)#pragmacomment(lib,opencv_highgui244d.lib)usingnamespacecv;//OpenCV命名空间37使用OpenCV2//头文件#includeopencv2/core/core.hpp#includeopencv2/imgproc/imgproc.hpp#includeopencv2/highgui/highgui.hpp//OpenCV库#pragmacomment(lib,opencv_core244d.lib)#pragmacomment(lib,opencv_imgproc244d.lib)#pragmacomment(lib,opencv_highgui244d.lib)usingnamespacecv;//OpenCV命名空间OpenCV1#includecxcore.h#includecv.h#includehighgui.h#pragmacomment(lib,cxcore.lib)#pragmacomment(lib,cv.lib)#pragmacomment(lib,highgui.lib)38补充:程序设计基础(矩阵操作)1)矩阵初始化Matlab矩阵:a=[123;456;789];b=[123456789];向量:v=[123];v=[1;2;3];v=1:2:7%v=[1357]OpenCV1OpenCV239补充:程序设计基础(矩阵操作)2)访问矩阵元素Matlabm=a(1,3)%m=3n=a(2,:)%n=[456]p=b(:,3)%p=[3;6;9]q=v(2:4)%q=[357]t=a(1:2,2:3)%t=[23;56]OpenCV1OpenCV240补充:程序设计基础(矩阵操作)3)基本运算Matlaba=[123;456;789];b=[987;654;321];a+2a/4a.^2a^2a+ba.*ba*bOpenCV241补充:程序设计基础(矩阵操作)3)基本运算Matlaba=[123;456;789];b=[987;654;321];a+2a/4a.^2a^2a+ba.*ba*bOpenCV142补充:程序设计基础(矩阵操作)4)相关函数(matlab&OpenCV2)特殊矩阵初始化:zeros/Mat::zeros,eye/Mat::eye逻辑、比较运算:使用运算符数学函数:abs,sqrt,max,min统计函数:sum,mean线性代数函数:inv/Mat::inv(invert),svd……43补充:matlab程序设计Matlab中的矩阵运算zeros/ones利用冒号表达式:x=x0:step:xn区分“*”和“.*”Matlab绘图x=0:pi/360:2*pi;y=sin(x);z=cos(x);plot(x,y,'.')holdonplot(x,z,'r')44补充:程序设计基础(图像操作)Matlabi=imread('missrgb.bmp');imshow(i);gray=rgb2gray(i);figure;imshow(gray);imwrite(gray,'mi

1 / 47
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功