【《单目测距系统实现案例分析》2400字】_第1页
【《单目测距系统实现案例分析》2400字】_第2页
【《单目测距系统实现案例分析》2400字】_第3页
【《单目测距系统实现案例分析》2400字】_第4页
【《单目测距系统实现案例分析》2400字】_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2页共168页单目测距系统实现案例分析目录TOC\o"1-3"\h\u23705单目测距系统实现案例分析 1651.1所使用基本原理说明 1297451.2步骤处理说明分析 2178141.3测距结果与分析 4在设计双目测距系统之前,先设计了一个较为简单的单目测距系统,以便对于对原理以及相关的操作的熟悉和应用。本章就详细介绍了所设计的单目测距系统,介绍其所使用的的方法原理并展示相关成果。1.1所使用基本原理说明摄像头测距就是要得到照片中目标到摄像机的距离,为达到目的这可以使用相对复杂度更高却也更加准确的摄像机模型的内部参数来实现,但本章的系统中使用了更为简便传统的另一种方法原理,以下是说明:首先,其名称为相似三角形(trianglesimilarity)方法,模型结构如图:图1.1相似三角形测距模型图假设要测量的物体的宽度为W,同时该物体到摄像机的距离为D,对目标进行图像采集,并且在图片上,目标的像素宽度P也能被测量出来,其中像素宽度是指图片或者屏幕在横向上划分的像素点的数量,这样,我们就能通过计算得出所使用的的摄像机的焦距F,其公式为:(1.1)这一步之后,通过移动物体或者相机位置,改变他们之间的距离,我们就能通过相似三角形来求得更新之后的距离:(1.2)基本原理就是这样,接下来是所设计的单目测距系统中之后的处理步骤说明与分析。1.2步骤处理说明分析本部分将按照前文所说明的测距系统结构来逐步简明分析在设计该系统时所采取的步骤。按步骤首先是图像的采集。这一步要说明的是采取的设备是手机摄像头,原因是获取使用方便,手机型号Redmik20pro,摄像师采用普通模式,即使用的主摄像头,该摄像头参数为1/4"型传感器,1.12um,5P镜头,f/2.4光圈,基本条件如上,为保证成像质量,顾在光源条件较好即光照充足的时候拍摄,拍摄对象为一个主题色调为蓝色的鼠标垫,背景为灰白色,鼠标垫长25.7cm,宽20.8cm。图像采集完成后,进入下一步操作处理。接下来是图像预处理,这一步的目的是便于在所拍摄的图片中找到目标物体,本文所采取的的操作是先对图片进行轻微的模糊处理(Smooth/Blur),这一步的目的是减低噪声对后续的影响。模糊操作的基本原理是数学的卷积运算。按原理不同,模糊处理可分为均值滤波,中值滤波,高斯滤波以及双边滤波,本文采取的是高斯滤波以去除高斯噪声,其原理为:对整幅图像进行加权平均处理,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到。一维高斯函数如下:(1.3)同时该操作在OpenCV中也刚好提供了API,为voidGaussianBlur(InputArraysrc,OutputArraydst,Sizeksize,doublesigmaX,doublesigmaY=0,intbord),这之后,我又进行了一步操作:将图片转换为灰度图。这一步的目的是去除颜色特征带来的影响,便于后续的一系列操作。灰度图,也叫灰阶图。灰度,可以理解为亮度,也就是色彩的明显程度,灰度图像也称为黑白图像。通过红绿蓝三原色和灰度的排列组合,可以组合成成各种各样的颜色,而灰度图就是让RGB的色彩分量全部相等,目前,最常用的是256级灰度图。例如,RGB(49,49,49)就表示灰度为49,这个灰度的范围是0~255,把彩色图像转换为灰度图像有多种常用的计算方法,这主要视应用场景而定,一般是按加权平均的方法进行计算,其中R:G:B一般为三:六:一。OpenCV中可以在读取时转化图片或者用函数进行变换,本文采取了第二种方法,使用了函数cvtColor。图像预处理完成后就是对摄像机的标定了,这部分本应是去求其内参,不过此处是应用了相似三角形原理,这一部分上文中有详细说明,不再赘述。本文程序中就定义了一个distance函数根据焦距、像素宽度来计算距离。下一步是特征提取。由于上文我们进行了灰度图转换手段,这一步我们所感兴趣的部分就是“轮廓”,通过进行边缘检测来获取特征,来找到目标物体。边缘检测一般分为三大步骤,即滤波,增强和检测。其中滤波这一步以及在上一段中进行了说明,除去了噪声的影响。边缘增强的基础是决定各图像点的附近亮度的变化值。强调算法可以强调图像灰度点附近的亮度值有重要变化的部分。在特定编程中,可以通过计算梯度幅度来确定。在扩展图像中,在具有大梯度值的附近有许多点,但是在特定应用中,这些点不是我们想要找到的边缘点,所以应该使用几种方法来选择这些点。在实际工程中,通常使用的方法是通过检测阈值法。这一部分OpenCV中也给了相应的函数:voidCanny(InputArrayimage,OutputArrayedges,doublethreshold1,doublethreshold2,intapertureSize=3,boolL2gradient=false)。函数中的参数,从左到右依次的作用是:输入单通道8位图像,输出的边缘图像,且尺寸类型与输入一致,第一个以及第二个double类型的阈值,Sobel算子孔径大小且默认为3,最后一个则是计算图像梯度幅值的标志,默认为false。经过处理的图片展示效果如下图所示:图1.2图片处理效果展示那么,如何在检测出来的各个轮廓中找出目标物体的呢?这一步本文所设计的系统中采取的是对各个轮廓进行比对,挑出其中轮廓最大的作为目标对象继续后续的研究,此处使用的是函数cv2.findContours找到相片中的每一个轮廓,然后对各个轮廓的大小进行比较,使用max函数,找出其中最大的一个,由此确定目标物体的轮廓。最后一步就是计算深度即距离了。利用函数imread来读取预先存储在磁盘文件夹的各个图片,再利用函数find_marker读取预先输入的目标的各种信息,即长度、宽度、焦距等。最后套用公式1.2对图片一一进行处理,利用相似三角形原理可以较简单地求出最终结果。1.3测距结果与分析该系统会对预先存入目标文件夹的图片进行分析处理,输出图片,并用绿色框图圈出目标物体并且在右下角显示以cm为单位的测量结果。首先展示一下程序的运行结果图:图1.3运行结果图1可以发现,此次测量中系统较为准确地识别了目标物体并框出,但并不是每一次都会出现这样的结果,有几次识别出现了比较糟糕的识别结果,如下图所示:图1.4运行结果图2这只是其中一例,在本次实验中一共处理了十张照片,其结果将使用表格进行展示。如下表:表1.1单目测距结果单位:mm标号实际的距离测量的距离误差1100102.32.3%2150155.71.8%3200220.410.2%4250260.34.12%5300340.511.5%6350335.84.05%7400389.21.125%8450419.46.8%9500550.410.08%10550501.58.45%从表格可以看出明显可

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论