基于Aruco码的机器人定位系统设计_第1页
基于Aruco码的机器人定位系统设计_第2页
基于Aruco码的机器人定位系统设计_第3页
基于Aruco码的机器人定位系统设计_第4页
基于Aruco码的机器人定位系统设计_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

PAGEii基于Aruco码的机器人定位系统设计摘要:机器人定位是确定其在已知环境中所处位置的过程,是实现机器人自动导航能力的关键,而其中最关键也是最基础的是找到真实世界和成像投影之间的对应点,即机器人的位置和姿态估计,这一步通常很困难,因此我们常用自己制作的或基本的标识符号来让这一切变得更容易。目前最为流行的一个途径是基于二进制平方的Aruco码标记。这种标记的主要便利之处在于,一个标识符号提供了足够多的对应(四个角)来获取相机的信息。同样的,内部的二进制编码使得算法非常健壮,允许应用错误检测和校正技术的可能性。本文针对机器人与目标物之间难以相对定位的问题提出了一种基于Aruco码的机器人定位系统设计,进行了相机标定及静态动态检测,并利用Python中的OpenCV库进行代码编写完成效果演示。关键词:Aruco码;机器人定位;位置姿态估计;相机标定;静态动态检测目录TOC\o"2-3"\h\z\t"标题1,1,次标题,1"目录 ii1 绪论 11.1 课题背景及研究意义 11.2 国内外研究现状 21.2.1视觉检测技术研究现状21.2.2视觉定位技术研究现状31.2.3基于二维码的定位技术研究现状41.3 论文的主要研究内容 42 机器人定位和Aruco码 52.1 机器人定位 52.1.1机器人定位技术62.1.2机器人定位方法72.2 Aruco码 82.2.1Aruco码组成82.2.2标记解码93 Aruco码的图像处理123.1 Aruco码图像处理的技术背景123.1.1python123.1.2opencv133.2 Aruco码图像处理的方法133.2.1图像灰度化133.2.2图像阈值化144 Aruco码的检测154.1 相机标定154.1.1摄像头模型154.1.2畸变矫正164.2 Aruco码检测164.2.1静态检测164.2.2动态检测18致谢19参考文献20附录 1 PAGE10 绪论1.1课题的背景及研究意义近几十年以来,关于机器人的各种技术得到了跨越式的发展及应用,诸如自动控制理论的研究、现代控制理论的发展、机器人导航算法的更新、传感器精度大大提高等,都支持了机器人技术的不断迭代更新。机器人凭借自身灵活机动、占用空间小便于携带等优点逐渐成为21世界的研究热点,各种机器人技术也应用到我们生活的方方面面,摄及军事、民用、商用等用途,比如用于精确制导、救灾救援、反恐排爆、农业植保、航空航天等领域。相应的,也催生了的许多高新技术机器人企业,比如美国的3DRobotics,法国的Parrot以及我国的大疆、科沃斯、新松等。同样,机器人的发展也伴随着计算机技术的进步,近年来,计算机视觉、深度学习、图像处理等新名词被提出,相应的,人们也越发关注机器人的目标识别与定位技术,另一方面,随着传统材料被逐渐淘汰,更多的轻型复合材料被用在机器人的制造上,这使得机器人的灵活机动性能得到了很大的提高,能执行更多以前不能执行的任务,同样的,关于机器人其他方面的技术,比如卫星定位技术,电子通信技术以及无线控制技术等,都得到了巨大的发展,致使人们开发更加灵活的机器人定位控制技术以提高机器人的自主性。近十几年的发展过程中,关于机器人的定位问题始终是机器人领域的主要研究方向及研究难点之一,机器人只有准确了解自身在环境中的位置及姿态,才能成功完成路径规划、避障等任务。目前机器人的定位方法主要有2种,第一种是由外部设备想向机器人本体提供环境位置信息,比如用于实验室的运动捕捉系统,但这种系统造价昂贵且抗干扰性弱,所以只能用于特定的场合下,这限制了机器人的应用范围,基于这种前提,用机器视觉来估计机器人位姿情况的技术得到了广泛的关注。目前,市面上大多数产品级机器人的定位控制系统都是通过多颗卫星无死角联合定位的,但由于距离原因,亦或者在室内、高楼间等复杂环境下定位信号往往存在延时性或定位信号缺失从而导致定位精度不高或者定位失败,这样机器人就会变为一个机器,就像人失去视觉一样,不能实现自主控制。然而,在现实情况下,机器人应用的绝大部分场景,例如室内物流仓库、写字楼间传递物品以及发生自然灾害的情况下,都需要机器人自己控制自己,因为人的工作量是有限的,这就像工业机器人在工厂工作时,人只是起到一个监督及排障等作用一样。更甚者,在一些特定的工作状态下,例如国防领域中,我们用无人机进行侦察、干扰、打击等任务时,就需要机器人完全自主控制,因此,提高机器人自主控制的能力,是推动机器人技术进步的关键。本课题建立在没有户外运动捕捉系统、卫星定位系统信号差(诸如室内、隧道、桥洞等环境下)等机器人与目标物难以相对定位的前提下,提出了一种基于Aruco码的机器人定位系统设计方法,从而为机器人精确定位提供了支持。在以前,在人们的认知中,机器人彷佛是一个虚无缥缈的东西,只能在一些科幻电影中看见,但其实人们无比渴望能在现实世界中看到它,本文就是为了解决机器人定位系统造价高昂,发明一种价格低廉且满足机器人控制精度要求的定位与姿态估计系统,具有实际意义和一定的科研意义。1.2 国内外研究现状1.2.1视觉识别技术研究现状视觉识别技术是当下热门的计算机技术的研究方向之一,是人工智能领域在计算机技术领域的一个重要延申,它通过计算机将真实世界呈现在我们眼前,是当下人们花费巨大人力物力研究的一种高新技术。通过了多年的努力,全世界的科学家们及各国当地的大学或者研究机构在视觉识别技术领域进行了广泛且深入的探索研究,并取得了一系列重大的成果,但许多关键性的问题噩待解决,其中一个最具挑战性的课题莫过于对目标进行识别与定位。目前,在科研及工程领域内,用于计算机视觉技术的目标检测识别定位技术的常用方法如下:基于统计特征的目标识别检测定位这种方法的基本过程是最初经过学习,选取一定量的样本和非样本,然后抽象出它们的特征,最后于图像中的系统特征进行辨识。这种方法的优点是不需要事前建立目标的模型,从而避免了大量的计算及验证过程,并且如果建立的模型不完整的话,会给后面的实验带来误差并不断累积,最总造成结果大大偏离真实值,该法的常见种类有Boost法、支持向量机法、神经网络法等。这种方法也有缺陷,那就是在识别之前,需要选取大量样本,并对它们进行学习训练,这一步通常会花费大量时间。基于模板的目标检测识别定位顾名思义,这种方法要预先定义并设置一些模板,以便在之后的实验中能够根据所设模板的特征,成功匹配目标物,从而确定目标是否存在于所检测图像中,如果图像匹配,能当即得到模板在世界坐标系中的位置坐标。之后结合预测算法,就可以预测目标物在接下来会产生什么运动,也就是在下一帧图像中,目标可能出现在的地方的位置集合,这种方法最大的优点就是让检测的范围尽量小,大大提高效率。(3)基于运动的目标检测识别定位这种方法通过对比一个图像相邻的帧的像素值是否发生变化,且向什么方向变化,这可以作为这个图像的某种特征值,然后分析得出目标的位置及运动状态,目前这种技术应用在众多领域,它的优点有两个,一是精确检测,二是得到在时间维度上目标的所有信息。目前有两种方法运用较成熟,一是差分法,二是光流法。(4)基于特征的目标检测识别定位这种方法同样要先提取目标的所有特征点,然后与待识别物体的所有特征点进行对比分析,以确定目标在图像中的位置情况。现存的算法有很多种,其中较为常见的有SIFT法、SUFT法、FAST法以及Haar法等等,而最后一个方法Haar是目前最成熟且运用最广泛的方法之一,它有许多优点,比如它能够将目标的全部特征都描述出来且描述的十分全面,而且它所需要处理的数据量较其他算法少,这样就使得它的结构十分简单且运算速度很快。它通常结合AdaBoost算法进行实验,然后对所选取样本的Haar特征进行学习训练,然后将结果输出,构成一个集合,用于检测目标。(5)基于区域的目标检测识别定位这种方法将图像的全局信息进行创建并关联起来,再进行分析推断,最后得出相邻图像的对应区域之间的互相联系信息,最后进行目标识别。这种算法有一个明显的缺点,一是计算十分繁琐,从而计算所需要时间很长,简介导致检测成本变高。由于计算十分复杂,就导致了计算的实时性很差,因此此种方法很难单独应用在需要实时处理数据的场合中,在运算中必须结合其他信息因素正常进行。目前,出现了一个新的算法:显著性区域目标检测算法,这是一个以人类视觉原理作为基础的先进检测方法,通过近年来的运用取得了较大的发展,是这几年发展最为迅速的基于区域的目标识别方法之一。1.2.2视觉定位技术研究现状经过了很多年的发展,目前,在计算机、传感器等服务于视觉定位技术的相关技术发展的推动下,机器人定位技术得到了跨越式的飞速发展,并且应用的领域也十分广泛,例如军工技术、医疗科技技术以及航空航天技术等领域。对于机器人,和人需要有最基础的感知能力和视觉一样,需要通过自身安装的各种传感器准确的自主感知到自己位于已知及未知环境的位置及姿态,建立在此基础上,机器人方可实现自主导航。但是,在不同的空间环境中,用于定位的各种传感器的精度会发生一定程度的漂移从而导致定位不准,所以要顺利完成自主定位与导航任务,就需要机器人在不同的环境下应用不同的定位方法。由于移动机器人的应用环境不同,有些环境下需要较高的定位精度,比如物流车间场景,要求机器人的定位精度要达到厘米级别,最严苛的环境诸如排爆等场景时甚至要达到毫米级别。卫星信号在良好的条件下定位精度一般在米级,不符合上述应用场景的要求。而利用惯性导航元件虽然可以测量目标相对位移,但这种元件有个致命的缺点:由惯导元件测量后的数据存在一定程度上的漂移,因此它需要其他传感器配合使用以提高精度,并且它的算法复杂,不利于大规模应用。近几年提出的技术利用激光雷达进行精准测距,完成定位任务,但是需要在环境中布置反光板来为激光雷达提供定位信息,而且激光雷达造价昂贵也不是适合大规模使用。近两年来机器人可以通过电磁、寻迹的方式进行定位,虽然此种方法可以基本满足其定位精度要求,但是在定位前需要提前在环境中布置轨道或路标,而当机器人的任务发生变化时,需要重新布置路径,灵活性很差,成本很高。1.2.3基于二维码的定位技术研究现状近些年,出现了利用色带和条形码、qr码等利用二维码的视觉定位方法,这种方法通常在地面铺设的彩带做引导,在二维码中添加位置信息,机器人通过识别二维码实现定位,但这种方法的缺点是地面上的彩带和二维码容易被人为地污损,且当机器人任务路径发生改变时,需要重新粘贴色带或二维码,这使得机器人的灵活性变差,定位对环境要求变高。另外,这种方法要求摄像头的光轴方向与二维码铺设的平面必须呈垂直关系,而且要求摄像头与二维码铺设平面距离要尽可能地接近,否则机器人将不能很好地识别二维码,这使得这种方法有较大的局限性。在一个以往的专利中公开了一种用单目相机和二维码路标进行室内机器人自主定位的方法,该方法不仅克服了不能有效识别二维码所产生的机器人运动局限性,而且当机器人执行任务的内容发生改变时不需要重新布置路径,但这种方法依然不够灵活,其不足之处在于,需要根据机器人的行驶路径提前布置好二维码,二维码的布局需要严格按照一定的规律,而且必须经过精确地测量才能确定二维码之间的位姿关系;如果用这种方法机器人行进路线必将受二维码布局和二维码信息的制约,机器人行走方式单一,不能完成复杂曲线行驶。而且,此方法使用在二维平面铺设二维码的方式,不能获得机器人的三维空间坐标,只能用于局限的规划平面路径,无法规划无人机等空间中运行的机器人的三维路径,应用场景比较有限。近些年,随着AR/VR技术的飞速发展,人们开发出了各种各样用于视觉检测的标志,这些二维码均能实现目标的快速检测且具有很高的抗干扰性,便用成本也很低。这些二维码被用于增强现实技术,下表1.1为几个常见的增强现实二维码比较。表1.1增强现实二维码比较1.3论文的主要研究内容在进行机器人的定位与导航时,我们通常人为的设置合作标记,这是一种重要的辅助手段,而要实现机器人完成自主定位及导航,最重要的就是要能正确检测并识别出环境中的标记。本文的主要研究内容如下:第一章介绍了了课题的背景和意义,总结了视觉识别技术、视觉定位技术及基于二维码的定位技术的国内外研究现状,并阐述了论文的主要研究内容;第二章研究了机器人定位的技术和方法,并研究了Aruco的组成及编码解码方式;第三章研究了Aruco图像处理的技术背景和图像处理方法;第四章研究了Aruco码的检测过程,研究了相机标定,静态和动态检测过程,并展示了实验结果。机器人定位和Aruco码近年来,基于图像处理的机器人定位方法在普遍应用于我们所熟知的领域,从最初应用于与人类密切相关的民用危险环境领域(例如火灾、地震等自然灾害现场),到如今应用于关乎国家安全的国防安全领域(例如军事作战、武装侦察和防空防御等方面),尤其是没有GPS信号或GPS信号受到干扰不稳定时(例如室内、地下通道和隧道等环境),有巨大的应用前景。当前,视觉导航技术是一种重要的机器人定位导航的方法,早在机器人诞生之初,人们就设想并尝试进行机器人的视觉导航,因为双眼提供的视觉为人类提供了关于周围环境最真实的信息,眼见为实就是这个道理。那么机器人是否实现视觉导航这一点呢?在很久以前机器人诞生之初,计算机的存储能力及运算能力还较差,而图像处理占用的内存很大且要求计算机有较快的运行速度,这就使得处理一块图像需要大量的人力物力,最终导致图像处理没有实时性,机器视觉发展滞后。但随着近十几年来计算机技术得到了跨越式发展,上述问题被一个个解决,计算机图像处理能力及计算速度的大大提高,使得图像处理展现出实时性,慢慢的图像处理被用于各种实时场合,在这种大环境下,关于机器人的视觉定位技术受到了学术界广泛的研究及关注。目前应用机器人视觉定位技术的场合十分之多,例如智能机器人、公共交通的管理、汽车行驶应用和无人机完全自主着降。机器人定位技术的核心要务就是要对标志进行快速且准确的检测与识别,从而精确计算出机器人在自身所处环境中的实际地理位置。机器人在实际环境下定位精度的高低水平主要取决于对标志辨识的准确与否以及是否能准确并实时的识别出各种传感器所反馈的位置信息2.1机器人定位2.1.1机器人定位技术进入21世纪以来,智能技术、传感器技术和计算机技术在不断进步,支撑了机器人技术也在不断进步,智能移动机器人在人类的生产和生活中发挥着越来越关键的作用,现如今关于机器人的定位技术主要涉及以下五个方面:1.移动机器人的超声导航定位技术超声导航定位技术的原理类似于激光技术和红外技术,由超声波传感器的发射探头发射超声波,在某种介质中进行传播,如果遇到障碍,超声波就会被反射然后由接收装置接收。长期以来,超声波传感器广泛应用于移动机器人导航定位中,它具有诸如分辨率高、采集速度快和造价低能被大范围应用等优点,而且超声波导航定位在没有复杂的图像设备技术支持时也可采集环境信息时,这样就不会产生测量延时,测量得到的数据也就更加真实。同时,在天气条件恶劣、环境光照不足、有障碍物产生阴影、等外部不良条件下,超声导航定位受到的影响较小,因此超声导航定位广泛应用于各种移动机器人传感系统中。2.移动机器人视觉导航定位技术在视觉导航定位系统研究领域,目前国内导航方法主要是将安装于汽车的车载摄像头安装在机器人上以实现导航定位,这样也就意味着定位所用到的传感器及控制设备等原安装在环境中的设备被安装在机器人本体上,也就是说图像识别和路径规划等高级动作将由机器人控制计算机加以决策实现。这种定位技术的工作原理是机器人对周围环境完成一些简单的光学处理,首先机器人通过摄像机对周围环境进行检测,采集图像信息,然后压缩处理采集到的信息,接着由神经网络和统计方法组成的学习子系统对信息作反馈处理,然后就可以对图像相信和机器人运动初始位置建立某种连接关系,最后完成机器人的自主导航定位功能。3.全球定位系统技术全球定位系统技术一般采用伪距离差分动态定位方法。通过4颗卫星观测位置信息的变化,反馈给接收机,由计算机进行计算,最后通过某种算法经过推导得到机器人正在任一时刻环境中的三维位置坐标。如果与参考站的实际距离大于1000公里,可以消除卫星钟差和对流层误差。在移动导航中,卫星定位系统GPS的定位精度由许多参考因素,除了信号差、传播道路不通畅等因素,还与时钟误差、传播误差、接收机噪声等诸多因素有关联。由于要参考众多因素,如果我们只用GPS进行导航定位的化,可靠性并不高。因此,我们通常将磁罗盘和GPS相结合进行定位。除此之外,GPS在室内和水下等对定位精度要求很高的复杂情况下也不能得到很好的应用。4.移动机器人光反射导航定位技术典型光导定位技术以激光反射和红外定位为前提。目前研究出的用激光技术制造的全球定位系统的工作主要由激光旋转、激光反射、光电接收及数据采集四个步骤构成。工作时,激光的发射步骤由旋转装置进行,经过一段时间激光反射,反射的激光被光电接收装置接收,数据采集器读取数据并进行信号处理,处理后的数据将作为码盘的旋转机构角度测量值(靶标),然后与主机建立通信连接,对PC机进行数据处理,将标志值和测量值比较,就能计算出传感器电流在路线图系统中的位置和方向,对目标进行进一步的精准定位导航。5.SLAM技术目前大多数处于行业领先地位的服务机器人公司采用的主要技术为SLAM技术。在SLAM技术中,只有硅烷技术(SLAMTEC)具有独特的优势。SLAM技术是一种未知环境地图建模技术,就是首先对未知环境进行检测,在模拟器上建立环境地图,为之后的路径规划打下基础。1988年,提出了SLAM实时建图技术,建立环境的实时地图,这类方法主要应用于对地图的定位以及工程方面。对于完全未知的环境,SLAM技术主要通过激光雷达测距的方式建图,为机器人自主导航提供支持。SLAM技术可以概括的描述为:机器人在未知的环境中移动,初始位置不知道的情况下,机器人可以在移动过程中对自己当前的位置进行估计并根据传感器反馈的信息定位位置,建立实时地图。2.1.2机器人定位方法关于机器人的定位方法,麻省理工教授JohnJ.Leonard和原悉尼大学教授HughDurrant-Whyte最初提出了三个问题。第一个问题机器人如何根据已知的信息和观测到的信息确定自己在环境中的实时位置。第二个和第三个问题,可以归结为一个问题:指定一个目标点,如何通过机器人的自主路径规划来到达这个目标点。对一般的移动机器人来说,这个目标是二位空间坐标点,即平面坐标点,我们称之为机器人的定点导航问题。而对于像无人机等在三位空间运动的机器人,定点导航显然不适用,如果想要实现三维空间导航,那么就要求机器人要能到达空间中的所有位置,这和SLAM建图类似。在我们日常生活中由许多地方用到了机器人的三位空间导航技术,比如用于通讯的基站和用于卫星定位的GPS系统,相比之下,机器人的定位环境一般都比较苛刻,大多是室内和室外的复杂环境,比如用于日常生活的扫地机器人和用于反恐排爆的机器人,它们对机器人的定位的精度和速度都很高,因此需要用到别的定位方法。下面就列举了几个。1.相对定位法航位推算法(Dead-ReckoningMethod)应用于无人机定位的相对定位法,它是最经典也是运用最广泛的相对定位法。就和我们现在看到的飞机一样,上面装备了大量的精密传感器,它们的作用是对机器人的实时运动状态进行监测,防止定位偏离或失败。通过递推累计公式,还能计算出机器人的初始位置。航算法用到的传感器一般有:码盘、惯性传感器(如陀螺仪、加速度计等)。码盘是一种安装在车轮上的光电传感器,用来计算车轮的转数,进而得出机器人相对上一时刻的位置及姿态变化量,这些量经过累积就可以对机器人的下一步动作进行估计,推理出下一位置坐标。由于码盘价格便宜且安装简单,用码盘进行定位操作简单,步骤少,所以能进行快速定位,但用码盘进行定位容易受到环境的影响,如果车轮产生位移,亦或者由于道路原因产生干扰,码盘的定位精度将大打折扣,最终导致定位失败。常用的惯性传感器有用于测量角加速度的陀螺仪和用于测量线加速度的加速度计。将测得的角加速度和线加速度进行拟合,积分得出机器人的位姿信息。一般情况下,用惯性传感器的定位精度比用码盘的高,但惯性传感器定位也易环境影响,影响因素有:陀螺仪产生漂移、标定有误差等。无论是码盘定位还是惯性传感器定位,它们都存在一个共同的缺点,那就是累积误差:随着时间、距离的不断增加,误差也会随之增大。因此相对定位法不适用于长时间、长距离的精确定位。2.绝对定位法机器人在进行绝对定位时,要在环境中选取一个参照物,这个参照物是恒定不变的且它的参照信息是要易获取的。然后将自己与参照信息进行对比分析,建立某种联系,解算自己的位姿信息。3.基于信标的定位原先信标主要指用于航空或航海的无线电波。在机器人定位领域,信标主要指可以被识别和检测出的带有明显特征的标志,机器人在定位时可以通过这种标志算出机器人本体与标志的相对位置,进而带入标志位置坐标,解算出机器人的绝对坐标实现定位。用于定位的标志有以下三个特征:①信标的位置固定且信标的绝对坐标已知;②信标具有主被动特征,易于辨识;③信标位置便于从各方向观测。信标定位的方法主要是三边测量和三角测量。三边指机器人与信标之间的距离,三边测量定位系统至少需要3个安装在机器人身上的发射器或接收器且它们的位置必须是已知的。三角指机器人与信标之间的角度,也需要3个发射器或接收器进行辅助。环境中已知信标的特征是信标定位的基础,通过安装在机器人身上的传感器进行观测。用于观测的传感器有许多种类,比如激光雷达、超声波传感器和视觉传感器,这些传感器优点众多,比如定位精度高、定位实时性好、鲁棒性高及没有累计误差等。目前基于信标的机器人已经具备成熟的技术,但由于造价高昂,只适合对定位精度要求较高的场合。4.基于视觉的定位科学研究统计表明,人类从外界获得信息量约有75%来自视觉,与人一样,机器人探测周围环境最直接的方式就是通过视觉探测。近年来热门的研究领域,比如模式识别和机器视觉,都属于视觉定位领域。视觉定位主要有单目视觉和双目视觉两种。单目视觉用于二维定位,只能探测平面信息,如果要获取环境的深度信息,只能通过移动改变位姿进行不同方向不同角度的测量,适用于执行简单的定位任务,比如通过目标的几何形状,取3个以上特征点进行目标位置信息获取,但单目视觉的定位精度不高。双目立体视觉三维测量是基于视差原理的。双目视觉利用两个相机,如果一个相机像面上的任意一点都能在另一个相机上找到相对应的点,即可得出该点的三位信息坐标。5.环境地图模型匹配定位环境地图模型匹配定位通过机器人上安装的各种传感器对周围环境信息探测并进行局部地图构建,在其内部通常由完整的地图,将构建的局部地图与完整地图进行比对,即可得出自己的环境位置。由于要事先建立完整的地图,对于复杂的环境,该方法就不太适用了。2.2Aruco码2.2.1Aruco码组成ArUco标记最初由RafaelMuioz和SergioGarrido共同提出并实现的,它是一种二进制标记码,主要作用是增强现实。标准的二进制基准Aruco码标记可以准确估计环境中摄像头的具体位置。由于内部构造较为简单,所以在进行Aruco码检测时能很简单并高校的被识别出,并且它对环境的抗干扰性很强。为了实现机器人的精确定位,关键就是要找到真实世界和成像投影间相对应的点,最容易也是最简单的方法就是采用基本的标记,aruco码标记就是当前最流行及简便的标记之一。它的id可以由内部的二进制编码进行验证,如果错误,它可以及时检测到并进行矫正。机器人实现自主定位导航需要一个外部载体,而一个优良的合作标记应具有下列特征:(1)标记本身应具有明显的特征且包含丰富的特征信息以便于之后的位置和姿态估计工作;(2)标记本身的形状及颜色等特征要与周围环境有明显差别,以便于被更容易的检测识别出来:(3)不受周围环境的影响,以便于能够被应用于大多数场合;(4〉标记内所包含的信息易于被检测装置提取,以便于计算机能够及时的、实时的处理提取到的信息,从而满足系统实时性的要求。外部的黑色边框有利于检测装置对标记图像的快速检测,内部的二进制编码矩阵则允许它的识别和检测,满足了一个优良的合作标记的各种技术指标。ArUco是一个被用于增强现实技术的库,它其中包含了许多预定义的不同尺寸的标识。每个ArUco标记内部都有一个唯一固定的内部矩阵,由二进制编码组成。这样的结构使识别装置对它的识别速度加快,增强了编码的可靠性、保密性,减少了被错误检测的几率。图2.1Aruco码的组成2.2.2标记解码每一个Aruco码都有一个内部编码,比如一个7×7的Aruco码,它的本体被分为7×7的网络,除了外部的一周是它的黑色边框,它的id信息包含在内部的5×5网络中。受到计算机二进制语言的启发,我们发现该码也只有两种状态:黑和白,对应的我们将黑色表示为0,白色表示为1。通过这样的信息分割,在经过数组的排列组合,Aruco码的内部就存在5个标记序列,每个序列有5位数字组成。海明码是一种内部包含用于验证信息传输的数据的代码。一个标准的海明码有8位,包含4个数据位(D1-D4)、3个奇偶校验位(用于控制)和最后1位检查位。如图2.2所示。Aruco码的编码方式与海明码相似,3位数字用于校验,2位数字用于数据存储。图2.2海明码与海明码不同,本文采用的Aruco码中将编码的位数由8位减少为5位,奇偶校验位不变,仍然是3位,数据位由4位减少为2位,其中将偶数列作为数据列,如图2.3所示。这种编码方式产生了1024种组合,如图2.4所示。图2.3Aruco编码图2.4Aruco编码形式的标记标记解码的流程如下:(1)检查轮廓的完整性。如果Aruco码有完整的四边形轮廓,那么进行切割,先将一个完整的Aruco码平均分为7×7个小方格。然后检测每个小方格的像素值,如果小方格中非零像素小于方格中像素,则判定该方格为黑色格,反之则为白色。最后检测外围一圈的所有方格,如果所有方格都是黑色的,那么判定此轮廓是完整的。(2)识别编码区域。经过轮廓检查,将方格分为黑白两类,在黑白方格中分别写入0或1进行编码。搭载在机器人上的摄像头在拍摄时受环境影响会产生旋转变化,由于有4个旋转方向,就要分析4种不同的情况,因此对标记区域进行4次编码解码,然后在4个结果中选出1一个真实值。(3)通过海明距离,确定旋转角度。统计所有处于旋转状态之下的标记,计算它们的海明距离。和第二步类似,每个标记都对应着4种海明编码方式,经过计算之后,会产生四个不同的海明距离。在4个结果中0的个数大于等于1,则计算这个旋转后的矩阵来表示ID。过程如图2.5所示。图2.5Aruco解码Aruco码的图像处理第二部分介绍了Aruco码的编码方式以及如果进行解码,第三部分主要介绍Aruco码的图像处理,在这之前,先介绍用于Aruco码图像处理的工具。3.1Aruco码图像处理的背景技术3.1.1PythonPython是一种广泛使用的解释型、高级和通用的编程语言。1991年,荷兰数学与计算机科学研究学会的GuidovanRossum创造并发布了第一版Python语言。Python语言使用中缀表达式,是LISP语言的一种,同时承继了ABC语言。Python进行面对对象编程时十分简单和高效,并提供了许多高级的数据结构,并且这些结构运用起来十分高效。目前Python语言已经成为快速开发语言的代表,这是因为它解释型语言的本质易于被理解掌握且Python版本的更新速度不断加快,并且每次伴随更新,新的功能就会被不断添加进来,也正以为如此,Python逐渐被用于独立的、大型项目的开发。Python支持多种编程范型,包括函数式、指令式、结构化、面向对象和反射式编程。Python解释器易于扩展,可以使用C或C++(或者其他可以通过C调用的语言)扩展新的功能和数据类型。Python也可用于可定制化软件中的扩展程序语言。Python拥有动态类型系统和垃圾回收功能,能够自动管理内存使用,并且其本身拥有一个巨大而广泛的标准库,提供了适用于各个主要系统平台的源码或机器码。20世纪90年代,Python诞生,经过几十年的发展,现如今它已在系统管理任务方面和Web编程得到了大面积的使用。1989年圣诞节期间的阿姆斯特丹,Python的创始人Guido因为太过无聊,决心开发一个新的脚本解释程序。Python的名字来源于英国20世纪70年代首播的电视喜剧《蒙提.派森干的飞行马戏团》(MontyPython'sFlyingCircus)。Guido参加设计了一种教学语言ABC,就Guido本人看来,ABC这种语言非常优美和强大,是专门为非专业程序员设计的。但是事与愿违,ABC语言并没有成功,究其原因,Guido认为它的非开放性。Guido发明了Python并决心在Python中避免这一错误。同时,他还想将ABC中闪现过但未曾实现的东西在Python中得以实现。Python还受到了Modula-3语言的影响,并且结合了Unixshell和C的习惯。到今天,Python已经成为最受欢迎的编程语言之一。Python使用的爆发式增长主要在2004年以后,2011年1月,它被评为2010年度语言。由于Python语言的简洁性、易读性以及可扩展性,在国外用Python做科学计算的学术和研究机构日益增多,这其中也有很多大学,他们用Python来教授程序、设计课程。众多开源的科学计算软件包都提供了Python的调用接口,例如著名的计算机视觉库OpenCV、医学图像处理库ITK。而Python专用的科学计算扩展库就更多了,例如如下2个十分经典的科学计算扩展库:NumPy和matplotlib,它们分别为Python提供了快速数组处理和绘图功能。因此Python语言及其众多的扩展库所构成的开发环境十分适合工程技术、科研人员处理实验数据、制作图表,甚至开发科学计算应用程序。2018年3月,该语言作者在邮件列表上宣布Python2.7将于2020年1月1日终止支持。用户如果想要在这个日期之后继续得到与Python2.7有关的支持,则需要付费给商业供应商。随着Python2的产品寿命结束,只有Python3.9和后续版本正在被完全支持,但仍提供对3.6、3.7和3.8版本的安全性修正。3.1.2OpenCVOpenCV是一个开源计算机视觉与机器学习软件库,可以在各种系统上运行。它由一系列c函数和少量C++类构成,呈现出轻量且高效的特性,同时其他编程语言也可应用在OpenCv上,OpenCv多用于图像处理算法和计算机视觉技术。OpenCV主要由C++语言编写,它的主要接口也是C++语言,但是依然保留了大量的C语言接口。该库也有大量的Python、JavaandMATLAB/OCTAVE(版本2.5)的接口。这些语言的API接口函数可以通过在线文档获得。如今也提供对于C#、Ch、Ruby,GO的支持。所有新的开发和算法都是用C++接口。OpenCV于1999年由Intel建立,如今由WillowGarage提供支持。OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和MacOS操作系统上。它轻量级而且高效——由一系列C函数和少量C++类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。OpenCV拥有包括500多个C函数的跨平台的中、高层API。它不依赖于其它的外部库——尽管也可以使用某些外部库。OpenCV为IntelRIntegratedPerformancePrimitives(IPP)提供了透明接口。这意味着如果有为特定处理器优化的IPP库,OpenCV将在运行时自动加载这些库。3.2图像处理算法3.2.1图像灰度化彩色图像中的每一个像素点都是由RGB(红绿蓝)三通道组成,每一种通道都有0-255共256种值可取,因此一个像素点就可能会有1600多万种变化。图像灰度处理就是将图像RGB三个通道的值变成一样,使得图像中的每一个像素点只有256种变化方式,进而减少计算量。由于本次采用的Aruco码是由黑白块组成的,这就使得更容易灰度处理这些图像,获得所需的目标信息。图像灰度化处理中用到最多的方法时加权平均法,将RGB图像的3个通道的值分别与一定的权值相乘并累加。经过灰度处理后图像保留下了大部分原图的特征信息,不会改变图像包含的信息,色度和亮度分等级仍很鲜明,不会影响到接下来的图像处理。按照下式就能得到加权平均后的灰度图像Gray(x,y)。R(x,y)、G(x,y)、B(x,y)分别为RGB图像三个分量的值。3.2.2图像阈值化 图像阈值化是指把经过灰度处理后的图像根据算法的规则将RGB通道的值变为仅有黑色(0)、白色(255)两种值的图像,通过这样转变,我们能更加容易的捕获目标,不同的阈值选取能直接对图像取黑还是白产生巨大的影响。阈值选择方法的可以分为以下几种(1)全局固定阈值二值化 这种方法采用一个固定的阈值来对图像进行二值化,这种方法在二值化时稳定性高,能排除掉部分干扰。通过现场视频画面提前经过不断的调试得出一个最优的阈值,可以提高入侵目标二值化的精度,使得目标更容易被分辨出来。这种方法虽然适应环境的变化能力较弱,但在一些室内场地,光线变化不大的场景下,通过现场调试得出最优阈值后,二值化的效果非常好。 (2)局部自适应阈值二值化 局部自适应阈值二值化指定一个像素点周围的一定范围,检测该范围内的像素值,然后确定这个像素点的二值化阈值。这样做可以根据周围的环境的明亮程度来自动选择适应的阈值。二值化阈值在亮度高的区域相对高,在亮度低的地方相对低。这种方法能够自适应环境进行二值化处理,避免了不同的场景都要重复进行调试,但因此精度会有缩减。设原始图像的灰度为Ⅰ,通过合适方法选取一个阈值T将图像进行分割,分割后的图像为:I(i,j)表示分割前图像(i,j)处的灰度摄像头标定和Aruco检测摄像头标定4.1.1摄像头模型摄像头成像使用小孔成像模型,如图4.1所示;图4.1小孔成像模型采用张氏标定法,对摄像头进行标定,确定摄像头的内参矩阵K,标定过程如图2.2所示。图4.2摄像头标定示意图4.1.2畸变矫正相机的成像模型有线性成像模型和非线性成像模型两种。线性成像模型是理想状态下的成像模型,它不考虑镜头制造和安装过程中引入的畸变,根据针孔成像原理而成。在相机镜头生产过程中,由于制造水平和安装工艺有限,会使镜头发生一定的畸变,因此理想的线性成像模型并不存在,实际的相机在成像过程中都云反生一足的畸变,径向畸变和切向畸变是成像过程中最常见的两种畸变类型。企问畸受云便图像像素点沿着半径方向发生移动,切向畸变会使图像像素点沿着垂直于半径的方向发生移动,径向畸变和切向畸变会对像素点位置产生影响。径向畸变存在的主要原因是由于镜头径向曲率的不规则变化。它会使图像发生扭曲变形,在离中心点距离越大的地方变形量也越大。在正方向上的变形会导致图像发生枕形畸变,负方向上的变形会导致图像发生桶形畸变。切向畸变一般是由于镜头的几何中心和光学中心不一致造成的。在发生畸变变形以后,图像的像素坐标发生了变化,偏离了它本来的位置。可以通过对相机进行标定,将相机畸变系数求解出来,然后利用畸变系数对图像进行校正,得到理想的没有变形的图像。矫正前后对比:矫正前矫正后图4.3矫正前后对比图4.2.1静态检测ArUco的检测步骤如下:步骤1:检测标记,检测过程如图2.3所示,包括:步骤1.1:搜索图像中所有的待选标记,利用自适应性阈值法来将标记进行分割,然后从阈值化的图像中提取出外形轮廓,并且舍弃掉非凸多边形和不是方形的轮廓,接着使用一些额外的滤波来剔除过小或过大的轮廓以及过于相近的凸多边形等。步骤1.2:对比分析待筛选标记的内部编码来认定它们是否确实是标记,包括:步骤1.2.1:对图像进行透视变换处理,来得到其规范形态图(正视图)。步骤1.2.2:对规范化的图像用最大类间差法(Otsu法)进行阈值化处理以分离黑色和白色位,然后提取出每个标记的标记位,最后分析出标记的编号。步骤2:先进行角点处亚像素级细化处理,再根据小孔成像模型,利用ArUco码标记了的4个角点的像素坐标,通过solvePnP函数处理即可求解出摄像机的旋转矩阵R′和平移矩阵T。图4.5标记检测过程流程图在环境中图像检测Aruco标记,环境中有7个标记静态检测分为以下8个步骤;1.导入所需库importnumpyasnpimporttimeimportcv2importcv2.arucoasaruco读取图片frame=cv2.imread('1.jpg')3.灰度化处理gray=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)4.设置预定义的字典aruco_dict=aruco.Dictionary_get(aruco.DICT_6X6_250)5.使用默认值初始化检测器参数parameters=aruco.DetectorParameters_create()6.使用aruco.detectMarkers()函数可以检测到marker,返回ID和标志板的4个角点坐标corners,ids,rejectedImgPoints=aruco.detectMarkers(gray,aruco_dict,parameters=parameters)7.画出标志位置aruco.drawDetectedMarkers(frame,corners,ids)8.返回cv2.imshow("frame",frame)cv2.waitKey(0)效果演示:检测前检测后图4.5静态检测效果图4.2.2动态检测摘要:安防监控是保障社会环境安全和公民人身财产安全的重要手段,基于视频智能分析的入侵监测识别已成为安防领域的重要发展方向,但现有的智能视频安防监控系统中大多都是基于二维图像进行研究和处理的,存在着误报率和漏报率高等问题。采用OpenCV结合三维成像与计算机视觉技术,采集到的图像包含三维信息,提取图像深度信息,并结合目标检测技术进行入侵目标检测和判断,既实现了智能安防监测,又在此基础上减少了误报和漏报的现象,降低了安全风险。本系统的软件开发环境为PyCharm和OpenCV,采用Python来进行代码编写,主要是针对静态背景下的入侵目标监测与跟踪。当有目标出现时,能够及时高效的检测到运动目标。关键词: OpenCV;目标监测;三维视觉;空间入侵;图像处理近几年来,随着我国的经济的飞速发展,国民的生活物质水平不断的提高,对自身的人身财产安全日益重视。伴随着我国开展的诸多如平安城市和天网工程等的安防工程,智能化安防领域迎来了自己强有力的发展前景。安防系统主要是由远程视频监控、综合监控管理中心、应急处理部门等组成。安防领域的不断发展不仅仅给我们带来安全性,同时也为我们生活智能化提供了便利。目前大量传统的安防系统的远程视频监控画面仍停留在仅使用人工查看的情况,在一些人流量较小的地方,由于监控视频画面中往往长时间没有入侵目标出现,安保人员极易造成视觉疲劳。当正在的具有危险的入侵目标出现时,无法及时的发现危险并制止。安防系统仅成为了事故取证的工具,而失去了预防安全事故发生的功能,可能会造成较大的损失。现如今,随着用工成本的大幅度提升,全国各行各业中都开始逐步采用基于三维视觉和图像分析的智能化入侵监测系统,以此来实现分析和处理来自现场的监控视频。智能化三维空间入侵系统可以使来自监控中心的人员无需全天一直盯着监控电视墙,只需要在系统发出入侵提醒时再去进行应急处理。相较于传统监控系统来说,智能系统辅助完成大量的重复且枯燥的工作,大幅度缩短了监控人员的工作量,提高了人工效率,也可以避免了因为人工长时间的工作导致的视觉疲劳引发的漏检和错检。同时由于智能化系统是基于像素点变化,精度相较于传统的人工也更高。为了满足人们的需求,需要研究一个性能良好的智能化三维空间入侵监测系统,一个优秀的监控需要满足准确、可靠、实时三种特征。这些特征主要表现在视频分析算法能够在一线画面通过局域网传输到数据处理中心时能够第一时间高效执行的对目标的准确监测和跟踪,同时也能够面对复杂的环境干扰时,具有强大的抗干扰能力。目前全国范围内的监控设备覆盖率已经极高,设备的新旧程度各有不同,摄像头相对来说都是固定位置的。因此我们应该侧重于算法的设计,使算法能在一些老旧设备采集图像的质量差的情况下,也能通过算法逻辑的优化,尽可能达到占用较小的内存的情况下实现优秀目标跟踪。国内外研究现状三维视觉研究现状机器视觉的研究是从20世纪50年代开始的,刚开始的机器视觉主要是针对二维图像处理,在60年代美国科学家罗伯兹首先通过程序实现了三维积木世界。此后大量的科学家对积木研究发现并解决了阴影处理、景物解释等问题。积木世界的研究对机器视觉的研究起了奠基的作用,能够实现一些较为简单的物体实现三维的程序解释,但仍无法解释复杂世界。1977年,美国麻省理工学院马尔教授提出了马尔视觉理论,通过对二维图像中的边缘点、顶点、直线等通过图像基本要素恢复技术首次实现了不完全三维重建。机器视觉发展至今,国内外在该领域获得了巨大的成果,英国牛津大学工程科学系采用了最为先进的计算机视觉和人工智能数学理论研究,实现了交互实时3D场景分割框架,不需要昂贵的硬件设备支持,就可以在半小时内捕获并重建出整个房屋的三维模型。意大利EuclidLabs公司致力于开发机器人三维视觉系统和离线编程系统。其中,三维视觉系统主要用于上下料的机器人随机抓取、折弯钣金定位、码垛拆垛、三维位置识别和检测等,具有智能化、精度高、调试方便等特点,在国际处于领先水平;离线编程系统则覆盖了上下料应用、折弯应用、码垛拆垛等场合,其智能化的路径规划技术能够使复杂的工程应用简单化,降低调试周期和成本,具有很好的应用前景。在国内,浙江大学的国家重点实验室CVG实现了自动相机跟踪系统,可以从视频和电影序列中恢复摄像机运动和3D场景结构,提供自动跟踪的便利性。它可以高效稳定地跟踪各种摄像机运动,可以旋转或自由移动。中国科学院自动化研究所,对摄像机校准和3D重建,姿势估计,基于视觉的机器人导航和视觉服务进行了大量的研究,取得了巨大的进展智能监测系统研究现状在全球范围内,以欧美发达国家为代表,对智能监控领域投入了大量的人力物力,将各种现代会前沿科技与历史经验相结合,对相关技术逐步攻关,取得了不菲的成果。以美国麻省理工学院和斯坦福大学为代表的高等教育机构,早在1997年的时候,就共同召开了历史上第一届具有划时代意义的基于因特网的远程网络视频会议,会议上主要探讨了视频监控系统的主体框架,监控方案与机制等基本问题,为此后的三维视觉空间入侵监测奠定一个良好的基础。通过了几十年的理论验证和创新,智能视频监控系统得到了强有力的发展,其运用到的技术已经逐渐被应用到各行各业中。无人驾驶领域的龙头企业特斯拉提出了一种基于深度学习的纯机器视觉汽车无人驾驶方案。采用分别从安装在汽车周围的八个摄像头中提取需要的图像特征,通过机器智能学习将这些可以相互融合在一起的特征进行图像处理。目前,此方案已经在达到计算出车道线、红绿灯状态的同时,预测汽车及行人的运动轨迹,无论是机器视觉的识别效率还是识别精度都达到了一个极高的层次,能充分满足无人自动驾驶的各项要求。英特尔公司提出了一种面向工业4.0的机器视觉解决方案,提供了一种经优化的神经网络模型以进行缺陷检测和预测性维护,赋予了机器模拟人类的能力,推动了工业现代化4.0转型。国外在机器视觉领域起步较早、投入大、不同机构间有不断的交流合作,使得大量的国外机构在这些领域取得了极为显著的成果,成为了该领域的领头羊,推动了机器视觉的发展。虽然国内的科学技术在过去受到科学技术水平落后的限制,在机器视觉视频监控领域起步相较于国外起步较晚,但慢慢的随着国内的经济和科学技术水平的发展,计算机视觉也得到了巨大的发展,运动目标的入侵监测的研究开始得到了国内学者的重视。2002年5月国内第一届全国智能视觉监控学术会议在北京举行,会议重点讨论了图像序列分析、目标识别和跟踪、高层理解等研究方向。中国的高等学府如中国科学技术研究所、北京航空航天大学、南理工大学等首先敏锐的发现了机器视觉领域未来前景,大力的投入运动目标的监测的研究。2018年中国机器视觉市场的规模首次超过了百亿,在消费电子、汽车、半导体、虚拟现实、智能安防等领域都对机器视觉视觉有着巨大需求。2021年上海国际机器视觉展览会表现出机器视觉已经具有高度的自动化、高效率、高精度的特点。在实现中国智能制造2025的目标下,使用机器视觉的智能监测系统的工业生产线相较于传统的传感器的不仅仅节省了大量的人力物力,还可以提高了工业生产的良品率,机器视觉的重要性愈来愈大,运动目标的监测也逐步成为了机器视觉核心。智能化入侵监测领域需要解决的问题传统的监控系统存在的问题有:1)需要人工判断分析在一些背景复杂、环境恶劣的监控环境下,大量的人工被使用来判断监控画面中目标的行为状态,长时间的观看会造成人员的视觉疲劳,导致不能及时发现问题并处理。2)视频分析困难视频画面的图像快速分析的仍困扰着视频处理,由于图像数据的多变性,当面对数据量增大时,在某些重大事故需要分析大量的视频数据时,由于图像数据各不相同,寻找目标如同大海捞针,所以常常会发生误报漏报等问题,加重了数据分析的负担。3)监控系统的响应时间问题采用计算机对视频画面进行图像处理非常耗时,传统的视频监控系统对事故发生的响应速度主要取决于人员的反应时间,在面对突发情况时,假如工作人员因为注意力不集中,反应时间和处理的速度会被加长,不利于突发状况的预防处理。本文的研究内容基于上述问题,本文主要采用的Python中的OpenCV库编写了一个空间入侵监测系统。入侵监测系统主要有图像采集模块、图像处理,目标监测等模块组成,通过计算机实现基于三维视觉的空间入侵监测。二值化处理图像二值化是指把经过灰度处理后的图像根据算法的规则将RGB通道的值变为仅有黑色(0)、白色(255)两种值的图像,通过这样转变,我们能更加容易的捕获目标,不同的阈值选取能直接对图像取黑还是白产生巨大的影响。阈值选择方法的可以分为以下几种(1)全局固定阈值二值化全局固定阈值二值化是通过采用一个固定的阈值来进行二值化,这种方法在二值化时稳定性高,能排除掉部分干扰。通过现场视频画面提前经过不断的调试得出一个最优的阈值,可以提高入侵目标二值化的精度,使得目标更容易被分辨出来。这种方法虽然适应环境的变化能力较弱,但在一些室内场地,光线变化不大的场景下,通过现场调试得出最优阈值后,二值化的效果非常好。(2)局部自适应阈值二值化局部自适应阈值二值化指根据一个像素点周围指定范围内的像素值来确定该像素点的二值化阈值。这样做可以根据周围的环境的明亮程度来自动选择适应的阈值。二值化阈值在亮度高的区域相对高,在亮度低的地方相对低。这种方法能够自适应环境进行二值化处理,避免了不同的场景都要重复进行调试,但因此精度会有缩减。形态学操作形态学是一门比较先进的学科。形态学图像处理是通过计算机程序结合数学理论知识对物体进行操作。形态学操作一般运用于边界提取、噪声消除、区域填充、细化、粗化等操作,通过定义具有一定结果的数学模型来测量和操作图像中与模型相似的形状来简化图像中无意义的图像数据。形态学操作不会对图像原有的特征造成影响,不会影响到图像识别与处理的目的。膨胀和腐蚀两种操作往往被广泛的运用到形态学操作中。在形态学操作中,腐蚀和膨胀的作用可谓相当丰富。首先,可以帮我们去除掉二值图像中的各种噪声,其次,可以在找到二值图像中噪声点的同时,连接图像中邻近的像素点,最后,可以帮助我们找到图像中的极大和极小值点。形态学腐蚀操作和形态学膨胀操作从其数学原理上可以理解为图像与内核了卷积,内核也被称为喵点或者模拟掩码,其形状和大小都通过需求单独定义了,并没有固定的标准。腐蚀操作是将内核和其覆盖区域二值图中的每一个像素点都进行与操作,如果两个值都为1,那么该像素点去白色,反之取黑色。膨胀操作也是进行内核与其覆盖区域二值图进行相与,两个值都为0,则取黑色否则取白色。腐蚀操作是求取局部最大值的过程,计算得到的内核与二值图进行卷积后的局部区域的像素点的RGB最大值,将局部的最大值赋值给指定的像素后,图像中的高亮区域会逐渐扩张。膨胀可以理解为内核将图像的外边界包围,对于高亮部分而已,图像边界以外的部分小于图像的高亮像素,使用图像外部会被内部取代。 两者虽然看起来是互逆操作,但使用形态学腐蚀操作对膨胀后的图像进行并不能完全的还原出膨胀前的原图,反之也不能还原出原图。先腐蚀后膨胀称为开操作,先膨胀后腐蚀称为闭操作。另外图像形态学操作还有击中与击不中变换,顶帽变换,黑帽变换等。轮廓提取在进行过上述图像灰度化,二值化,形态学操作以后我们就可以进行边缘检测与轮廓提取,边缘检测的实质是通过某种特定的算法将图像中的对象与背景进行分割。在对图像进行二值化处理后,可以清晰的发现图像中对象的边缘就在处理过后黑与白两种像素块的交界处。由于图像二值化后会产生大量的孔洞,所以对象会产生很多边缘,我们需要选取最外层的边缘。找到边缘后就可以使用函数将轮廓绘制. 值得注意的是,某些特殊的情况可能会导致轮廓出现一个导致无法闭合的缺口,我们必须采用形态学操作使图像外部边缘闭合,这样就可以避免遇到特殊情况时也能提取到目标。 通过对目标的轮廓提取,我们可以获取到目标的位置,通过不断的连续的进行图像处理操作我们便可以得到一个动态的轮廓变化,从而达到空间入侵目标的动态监测。机器视觉简介机器视觉就是通过机器人仿生模拟人眼观察物体并提取特征信息,正如双眼观察目标的时候,我们不仅仅可以知道物体是什么,同时也可以在这个过程中了解到更多的深度信息,根据技术手段的不同可以分为双目视觉和单目视觉两种技术路线。单目视觉的技术路线是先识别在深度:通过单目摄像头获取的图像中的运动目标的信息,同时计算运动目标的相对运动速度,通过导入固定参数并将目标物体与周围的固定参照物进行对比,计算得出物体一些三维的信息,技术的关键就在于提前编写好样本数据库。双目摄像头是采用先进行建模在进行识别,通过视差来进行深度信息的获取,虽然对比单目视觉系统,双目视觉系统对深度信息的获取优势更大,但由于双目系统的计算量大,为了识别的实时性在入侵目标的检测阶段仍采用单目视觉来进行,在获取深度信息时采用双目视觉相机采样的原理由图2.2可以分现相机成像的原理与小孔成像的原理很相似。相机在获取图像时,物体表面会通过反射可见光,经过相机透镜反射到内部成像平面上,三维的图像就转变成为了二维图像。产生了世界坐标系,图像坐标系,相机坐标系1)世界坐标系世界坐标系的建立没有任何个固定法制,但为了后续三维视觉的行人目标检测研究比较方便。我们将人的在中心点设为原点Ow,以目标面对的方向为Xw正方向,以垂直向下为Yw正方向2)图像坐标系图像坐标系主要是描述图像中的像素点的相对位置,所以以图像的中心点O为原点X轴与Y轴垂直相交3)相机坐标系以O点为摄像机光心(投影中心),Xc轴和Yc轴与成像平面坐标系的x轴和y轴平行,Zc轴为摄像机的光轴,和图像平面垂直。光轴与图像平面的交点为图像的主点O1,由点O与Xc,Yc,Zc轴组成的直角坐标系称为摄像机的坐标系。O01为摄像机的焦距。相机标定方法利用相机进行信息采集时,三维世界场景经过透视变换到二维平面时,势必会由于畸变等原因导致深度信息的丢失,因此需要对相机进行标定,获取精确的相机参数后,再对三维场景进行重构。对单个相机进行标定可以获得相机的焦距、主点坐标、畸变参数等内部参数;对于立体视觉而言,在单个相机标定的基础上,还需对左右相机进行双目标定,获得旋转矩阵、平移矩阵等外部参数。(1)传统相机标定法传统相机标定法[60]以基于最优化算法的相机标定为代表,该类方法需要通过与外部参照物的对比获得标定结果。传统标定方法的标定精度较高,适用于相机参数相对固定的情况。(2)相机自标定法相机自标定法基于Kruppa方程等进行相机标定,该类方法无需外部参照物,通过分析多幅场景图像的差异和相机内部参数之间的约束关系即可得到标定结果,这种方式适用范围广,但鲁棒性相对较差。(3)张正友相机标定法张正友相机标定法是张正友教授1998年提出的单平面棋盘格的相机标定方法。传统标定法的标定板是需要三维的,需要非常精确,这很难制作,而张正友教授提出的方法介于传统标定法和自标定法之间,但克服了传统标定法需要的高精度标定物的缺点,而仅需使用一个打印出来的棋盘格就可以。同时也相对于自标定而言,提高了精度,便于操作。因此张氏标定法被广泛应用于计算机视觉方面。双目视觉成像原理分析及矫正双目视觉有的时候我们也会把它称为体视,是人类利用双眼获取环境三维信息的主要途径。从目前来看,随着机器视觉理论的发展,双目立体视觉在机器视觉研究中发回来看了越来越重要的作用。双目视觉原理分析双目立体视觉是基于视差原理,由多幅图像获取物体三维几何信息的方法。在机器视觉系统中,双目视觉一般由双摄像机从不同角度同时获取周围景物的两幅数字图像,或有由单摄像机在不同时刻从不同角度获取周围景物的两幅数字图像,并基于视差原理即可恢复出物体三维几何信息,重建周围景物的三维形状与位置。双目立体视觉由三角法原理进行三维信息的获取,即由两个摄像机的图像平面和北侧物体之间构成一个三角形。一直两个摄像机之间的位置关系,便可以获得两摄像机公共视场内物体的三维尺寸及空间物体特征点的三维坐标。所以,双目视觉系统一般由两个摄像机构成。当左右两个相机同时观察三维像素点时,像素点在这两个平面上的投影的差异就是视差,在图2.3中,在同一坐标系内,点P为三维物体顶部坐标,O1与O2与两垂直平面的交点就是投影点。通过数学运算可以得出深度=光心的间距*相机的焦距/视差。视差越小,可以探测的深度越大。根据双目视觉原理图,我们可以发现可以通过使用两个单目摄像头构成双目摄像系统,我们需要将两个摄像头交叉放置来增加测量范围。通过两个摄像头分别从左右两个角度获取图像,以左摄像头为主体进行实时的空间入侵监测,通过程序处理左右两个摄像头中的图像,得到更多的三维信息,以此来提高入侵监测的精度。双目视觉校正在双目视觉系统中,当两个相机从两个不同的位置观测同一物体时,三维空间中的点和它的像点存在着一定的几何关系。从相机的中心点出发,经过像点作一条射线,则空间中这条射线上的点在图像平面上所成的像均为同一个点。两个相机光心之间的连线与左右像平面的交点称为极点。射线在左相机平面上的投影为点,在右相机平面上的投影为直线,这条线在右相机中叫做极线,同理直线在左相机平面上也是一条极线。在三维空间中,三点构成一个平面,这个平面叫做极平面,极平面与相机成像平面的交线是极线,所有的极平面均相交于两个极点之间的连线。根据空间点在左图像平面上的投影点,可以求得它在右图像平面上的极线,空间点在右图像平面上的投影点必然在极线上面。对于左相机图像上的每一个像点,在右相机图像平面上必然有与它相对应的极线,这种对应关系被称为极线约束。极线约束的建立,使得相机匹配的搜索范围从一个平面缩小到了一条极线上,降低了搜索时间,提高了搜索效率。对于相交式双目视觉系统,我们可以通过双目极线校正的方法,使得两个相机的像平面共面,光轴相互平行。经过双目极线校正以后,左图像上一点与右图像上和它具有相同的行坐标的一条直线相对应,搜索左图像中一点在右图像上的对应点时只需要对行坐标相同的像素点进行搜索匹配即可,大大的提高了搜索效率基于单目视觉的空间入侵算法设计常见的空间入侵监测算法基于三维视觉的空间入侵监测系统,本质上是一个针对图像中的入侵目标进行检测与跟踪,通过图像处理把入侵目标从背景中提取出来进行跟踪处理。在现实应用环境中,我们根据摄像头是否是固定的,将入侵目标监测系统分为动态背景监测和静态背景监测,本文主要讨论固定摄像头的情况下的算法设计以优化。常见的目标监测算法有光流法,帧差法,背景减除法这三种。光流法光流法是目前一种较为先进的图像处理算法,光流是用来描述运动图像模式运动的速度,光流场是用来描述图像上物体点运动的速度场。光流法是基于光流提出的一种计算机视觉操作,其原理是通过建立光流场模型,因为入侵目标会对光流产生干扰,所以通过计算出图像中像素点的运动速度,如果图像中像素点的光流有大幅度的相对运动,那么大幅度移动的地方就是入侵目标。但光流法的应用难度也相当大,由于其要满足亮度不变和动幅度小两个基本条件,如果亮度发生大幅度改变或者入侵目标运动迅速,会导致大面积的光流场受到大面积的影响,容易造成误检。并且光流法的算法计算量大,运行时间长,需要搭建特定的硬件平台才能够实现,所以在此次系统设计中不做考虑。帧差法帧差法从字面意思上可以理解为将图像帧与帧之间进行差分运算来得出入侵目标。当摄像头处于固定状态时,当视频画面中没有入侵目标出现时,由于背景没有变化,相邻近帧之间的像素点几乎没有什么变化,当入侵目标出现时,帧与帧之间的像素点的灰度值做减法并取绝对值便会得到一个值,将该值与设定的二值化阈值进行对比,如果大于设定值就可以认定为有目标出现。帧差法一般有邻近帧差法和三帧差法两种,邻近帧差法仅计算相邻帧之间的灰度图的像素点差,这种方法在实际运用时由于监测目标在一帧图像变化的时间的位移较小,会有大量的重复部分,容易照常目标重复部分出现巨大的空洞,不易于我们后续图像识别。相较于邻近帧差法,三帧差法在此基础上做了很大的优化。三帧差法选取连续的三帧图像,分别对连续两帧的灰度图进行差分运算,对得到两个差分值二值化后与进行逻辑运算后得出结果,能够更准确的检测运动目标。帧差法的优点在于其算法较为简单,运行占用内存小,对运行的硬件要求低,同时由于其算法的特点导致这种方法受光线变化的影响较小,能够适应一些环境变化小的环境,是目前比较广泛使用的算法。但时同样是因为其算法的特点,在面对运动较慢或者相对禁止的目标的时候,无论是邻近帧差法还是三帧差法都会由于运动目标的像素点在连续几帧之间可能是重合的,目标可能会短暂的消失。背景减除法背景差法与帧差法的原理基本上是相似的,区别在于帧差法才用的是邻近帧的差法运算,而背景减除法是与建立的背景模型进行对比。当摄像头是固定的,图像的背景几乎是不发生任何变化的,通过逻辑运算建立一个一个背景模型,并将其与当前帧的灰度图进行差值运算,得到值二值化后与二值化阈值进行对于,只要大于阈值,那么就是运动目标。相较于帧差法,背景建模法对于目标检测效果更好,具有更强的抗干扰性和稳定性。常见的背景减除法由均值建模法,混合高斯建模法法等。均值建模法的原理相当的简单,建立模型的速度极快。只需要截取一段视频序列中的所有帧,通过计算所有帧的灰度图的像素值的平均值,各个像素点平均值构成的就是该环境的背景模型。而混合高斯建模法则相对比较复杂,需要通过对每一个像素点都进行对高斯模型来体现出像素的信息,将不同的高斯值通过加权叠加的办法来建模。通过这种办法建立的模型能够有较强的环境适应能力,能满足几乎所有的应用环境,背景建模法相较于帧差法来说有着更高的准确性,更强的抗干扰性,而且在运行的时长上也仅必帧差法慢上一点点。基于混合高斯建模的空间入侵监测算法设计混合高斯模型是一类稳定的背景模型,假设在待测视频图像序列中某位置像素点的像素值分别为(X,X,X),为了描述该像素点像素值的分布情况,为其建立包含n(1≤n≤K)个高斯分布的混合模型,在时刻t,通过公式3-1来表示像素值X,属于背景的概率: (3-1)其中,K表示高斯分布的个数,w为第k个高斯分布在时刻t的权重值;,分别是第k个高斯分布在时刻t的期望和标准差;n为高斯分布概率密度函数。式中K决定了计算的精度,其取值越大,则跟踪过程中能够适应的环境变化就越多,处理效果也会提升。但实际应用中,受硬件数据处理能力的限制及计算复杂度的要求,K取值一般为3~5个。基于混合高斯的背景模型建模步骤如下:1)初始模型的建立将第一帧图像中各个像素点的像素值X作为其第一个高斯分布的均值以,给定标准差己和权值w,构建得到初始混合高斯模型。其中,标准差己应取较大值,而权值w宜取较小值。2)前景检测和模型学习高斯模型函数体现了图像中像素点属于背景的概率大小,如果视频当前帧中某一像素点符合建立的背景模型范畴,则认为其为背景像素,否则属于前景。在前景检测过程中,用待测像素点的像素值X,去匹配已有的k个高斯分布,若满足式(3-2),则表明当前匹配成功,做模型参数更新处理,如果未能成功匹配,则将其作为下一个新的高斯分布更新模型结构,其中,当k<K时,直接引入;当k=K时,则把权值最小的那个高斯分布用其取代。(3-2)(3)模型参数的实时更新模型的实时更新保证了混合高斯模型的优良稳定性,采用公式(3-3)调整混合高斯模型中各个高斯分布的权值。(3-3)其中,o为学习率。若第k个高斯分布与被检测的像素值X,匹配,则M为1,其余高斯分布对应的M为0。通过这样的配置,使得匹配次数多的高斯分布权值不断变大,进而达到模型的稳定。均值和方差分别按式(3-4)和式(3-5)进行更新。(3-4)(3-5)其中,r和β分别为预设的更新系数。模型更新完成后,将各高斯分布按式(3-6)从大到小排列,并选定其中权重最大的S个分布为稳定的分布作为下一次目标检测的依据。 (3-6)程序测试及成果为了验证基于混合高斯建模法的入侵目标检测的算法性能,本文在Python的编译环境下进行,利用OpenCV-python提供的函数接口实现,选取了一段来自OpenCV官网的视频。主要调用的函数和程序VideoCapture():进行视频读取cv2.getStructuringElement():生成一个指定形状和大小的内核结构用于形态学操作, cv2.createBackgroundSubtractorMOG2():混合高斯模型建立的函数读取视频中的每一帧:while(True):ret,frame=cap.read()#有两个返回值,第一个返回值表示是否读取到图片,返 回True或者False,第二个参数表示截取到的每一帧图片。fgmask=fgbg.apply(frame)fgmask=cv2.morphologyEx(fgmask,cv2.MORPH_OPEN,kernel)im,contours,hierarchy=cv2.findContours(fgmask,cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)遍历所有的轮廓,筛选出超过阈值的部分画出矩形框:forcincontours:perimeter=cv2.arcLength(c,True)ifperimeter>188:x,y,w,h=cv2.boundingRect(c)cv2.rectangle(frame,(x,y),(x+w,y+h),(123,123,17),2)实验结果如图3-1所示,采用了混合高斯模型建模法能够正确的识别出图像中的绝大多数目标并绘制了矩形框图进行了相应的标记,得出较为完整的前景目标轮廓,图像中没有较大的空洞,能够有效的进行入侵目标监测与跟踪,但当两个目标距离较近时,两个会被识别到同一个矩形框中,造成了误检,仍需要提高和完善。通过对单目视觉入侵监测的实验,验证了目标检测的方法,结合双目摄像头原理,采用两个单目摄像头构成基于三维视觉的空间入侵监测

温馨提示

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

评论

0/150

提交评论