基于logo的双目视觉室内定位方法
技术领域
本发明涉及双目视觉室内定位方法,特别涉及基于logo的双目视觉室内定位方法。
背景技术
互联网和可穿戴设备的飞速发展和基于位置感知的应用的不断需求,使得位置感知逐渐成为人们依赖和必不可少的信息。可靠的位置信息在许多不同的环境下为用户带来更好更重要的用户体验和感受。人们在日常生活中越来越离不开那些基于GPS和地图的位置服务和导航***。显而易见,室外定位技术已经非常成熟,并且很多移动设备也都参考使用了室外定位技术。GPS***、GLONASS导航***、伽利略导航***和北斗导航***是目前使用较为广泛的卫星定位***。由于室内环境因素的影响,卫星定位信号无法直接满足室内位置服务的需求,因此全球卫星定位***仅适合于室外场景。目前,位置服务的相关技术和产业正朝着室内方向不断发展,目标是为人们提供无所不在的位置服务。
目前室内定位有很多方法,但是存在实施条件复杂,定位精度不高的缺点。例如通过GPS或者WIFI信号的室内定位并不能很好的连续提供用户的位置信息,这意味着传统的方法在室内这种多干扰的密闭环境下的精确度,敏感性和鲁棒性都存在着劣势。但是视觉的方法却能化繁为简,直接的有效的在相对不变的室内环境中提取出有效的位置信息,而不依赖其他的外部信息,用机器视觉的方法解决室内定位是一个可行的方案。
在室内定位领域中,精度与成本是制约普及的主要因素,那么一种简单方便、易于识别,且内含绝对位置坐标,具有一定纠错能力的标志物的提出,并利用摄像机拍摄到该标志物信息进行图像处理,最后确定所在位置的方法,就是利用计算机视觉进行目标识别在室内定位中的应用。这些标志物可以是楼房内普遍存在的标志物,比如紧急出口,门牌号等等,或者是人为提供的一些图案图标,进行匹配后就能以软件的形式解决问题,精度可靠而且成本低。
在机器视觉中,双目视觉是目前的热点之一,因为较单目能够更容易的提取出目标三维信息,较多目又简单易实现,所以搭建双目立体视觉***在室内定位上会有很好的效果。双目立体视觉***一般是由双摄像机从不同角度同时获得被测物的两幅数字图像,或由单摄像机在不同时刻从不同角度获得被测物的两幅数字图像,并基于视差原理恢复出物体的三维几何信息,重建物体三维轮廓及位置,进而可以获得相对坐标。
而与普通的图像匹配不同的是,例如可穿戴设备,室内中人走动的朝向和方向都是不固定的。在开阔的购物广场中,能捕捉到很多景物图像,但是更多的时间,用户是沿着狭窄的长走廊的道路向前走动,并且面向正前方。为了给用户以更好的体验,在用户面向正前方时,两侧墙面物体就会以一个小角度的形式存在于图像中,对目标的识别造成难度。
发明内容
本发明的目的是为了解决现有技术是存在单目不容易提取出目标三维信息的问题,而提出的基于logo的双目视觉室内定位方法。
上述的发明目的是通过以下技术方案实现的:
步骤一、建立logo图像采集的视觉地图数据库;
步骤二、双目摄像机内外参数的标定;利用张正友棋盘标定法,求得左摄像机的内参数和右摄像机的内参数;利用Matlab确定左摄像机和右摄像机的相对位姿关系的外参数R和T;
步骤三、利用双目摄像机拍摄logo图像,利用logo图像视觉信息特征与VisualMap数据库图像的视觉信息特征进行匹配;保留匹配点将误匹配点的剔除;
步骤四、根据步骤三中得到的像素坐标和计算顶点P1在左摄像机的坐标系OclXclYclZcl下的三维坐标;根据步骤三中得到的像素坐标 计算顶点P2在左摄像机的坐标系OclXclYclZcl下的三维坐标;
步骤五、根据步骤四求得的三维坐标 和视觉地图数据库中存储的logo图像的顶点P1和P2在世界坐标系下的坐标建立坐标转换关系,求得左摄像机在世界坐标系下的坐标,即为用户的位置坐标。
发明效果
在机器视觉中,双目视觉是目前的热点之一,因为较单目能够更容易的提取出目标三维信息,较多目又简单易行,所以使用两个摄像机如同人的双眼在室内定位上会有很好的效果。双目立体视觉***其实是一个三角形的计算***,由左右两个摄像机在不同的位置拍下同一目标物体,或者用单目摄像机移动拍摄,在不同位置照到同一物体,并基于视差原理恢复出目标的远近信息,并可以重建物体的三维轮廓,进而可以获得相对坐标,而视觉的信息干扰较小,精度较高。故本次研究主要选取双目视觉***来完成,以实现高精度的室内定位。
本发明通过拍摄图像对与数据库图像的特征点匹配以及拍摄图像与数据库中现实坐标系的坐标系之间的转换,来实现在线用户的定位功能,针对于长走廊中对于两侧墙体上的logo图像信息进行室内定位。本定位***分为两步:即建立离线数据库阶段和在线的定位估计阶段。离线阶段需要在室内场景中构建含有视觉特征信息的视觉地图数据库,具体为在室内长走廊中布置一定数量的logo图像,并保证每一时刻均有logo落在双目摄像机两图像中,在光照条件较好的情况下正对长走廊墙上logo并对图像拍照,并对图像的左上角和右上角顶点在世界坐标系中的二维坐标进行记录。用户在线定位时,通过双目摄像头拍摄一对图像,与离线数据库中图像进行SURF特征匹配及测距,通过坐标变换便能确定拍摄的位置的坐标。摄像机距logo的距离是3.5m时,定位误差可达到0.22m。累积分布函数图如图6可以看出,在68%的概率分布上的结果为0.22m。
附图说明
图1为具体实施方式五提出的RANSAC算法剔除误匹配点并估单应矩阵H流程图;
图2为具体实施方式四提出的坐标系之间的关系示意图;
图3为具体实施方式七提出的摄像机坐标系与图像物理坐标系之间的关系图(d=1,2);
图4为具体实施方式三提出的双目视觉***图(d=1,2);
图5为具体实施方式二提出的室内坐标系示意图(俯视图);
图6为具体实施方式一提出的累积分布函数图。
具体实施方式
具体实施方式一:本实施方式的基于logo的双目视觉室内定位方法,具体是按照以下步骤制备的:
步骤一、建立logo图像采集的视觉地图(Visual Map)数据库;
步骤二、双目摄像机内外参数的标定;利用张正友棋盘标定法,求得左摄像机的内参数和右摄像机的内参数;利用Matlab确定左摄像机和右摄像机的相对位姿关系的外参数R和T;
步骤三、利用双目摄像机拍摄logo图像,利用logo图像视觉信息特征与VisualMap数据库图像的视觉信息特征进行匹配;保留匹配点将误匹配点的剔除;
步骤四、根据步骤三中得到的像素坐标和计算顶点P1在左摄像机的坐标系OclXclYclZcl下的三维坐标;根据步骤三中得到的像素坐标 计算顶点P2在左摄像机的坐标系OclXclYclZcl下的三维坐标;
步骤五、根据步骤四求得的三维坐标 和视觉地图(VisualMap)数据库中存储的logo图像的顶点P1和P2在世界坐标系下的坐标建立坐标转换关系,求得左摄像机在世界坐标系下的坐标,即为用户的位置坐标;
根据步骤一,可以得到每个视觉信息特征的位置信息;通过步骤三,可以确定与拍摄图像匹配的数据库图像,因此知道拍摄图像包含的视觉信息特征的位置坐标;由步骤三,可以得到视觉信息在摄像机坐标系下的位置坐标;由两个不同的视觉信息,可以确定两个摄像机坐标系下的位置坐标;可以通过坐标解算来求得摄像机在世界坐标下的位置;即可计算出在线用户所在位置。
本实施方式效果:
本实施方式通过拍摄图像对与数据库图像的特征点匹配以及拍摄图像与数据库中现实坐标系的坐标系之间的转换,来实现在线用户的定位功能,针对于长走廊中对于两侧墙体上的logo图像信息进行室内定位。本定位***分为两步:即建立离线数据库阶段和在线的定位估计阶段。离线阶段需要在室内场景中构建含有视觉特征信息的视觉地图数据库,具体为在室内长走廊中布置一定数量的logo图像,并保证每一时刻均有logo落在双目摄像机两图像中,在光照条件较好的情况下正对长走廊墙上logo并对图像拍照,并对图像的左上角和右上角顶点在世界坐标系中的二维坐标进行记录。用户在线定位时,通过双目摄像头拍摄一对图像,与离线数据库中图像进行SURF特征匹配及测距,通过坐标变换便能确定拍摄的位置的坐标。摄像机距logo的距离是3.5m时,定位误差可达到0.22m。累积分布函数图如图6可以看出,在68%的概率分布上的结果为0.22m。
具体实施方式二:本实施方式与具体实施方式一不同的是:步骤一中建立logo图像采集的视觉地图(Visual Map)数据库具体过程为:
步骤一一:根据需要定位的室内环境,选择世界坐标系原点O(xw0,zw0),建立平面二维直角坐标系OwXwZw;
步骤一二:利用单目摄像机对室内墙壁上固定logo图像进行采集,并记录下被拍摄logo图像信息的顶点P1在世界坐标系下的位置坐标和顶点P2在世界坐标系下的位置坐标保存单目摄像机拍摄的logo图像的顶点P1的像素坐标p1=(u1,v1),定义单目摄像机拍摄的logo图像的顶点P2的像素坐标p2=(u2,v2),将像素坐标(u1,v1)、像素坐标(u2,v2)、位置坐标和位置坐标存于视觉地图(Visual Map)数据库中;位置坐标表示如图5所示;
步骤一三、将logo图像通过SURF算法进行特征点信息的提取得到视觉信息特征;将视觉信息特征存储到视觉地图(Visual Map)数据库;q=1…n,n为logo图像个数。其它步骤及参数与具体实施方式一相同。
具体实施方式三:本实施方式与具体实施方式一或二不同的是:步骤二中双目摄像机内外参数的标定;利用张正友棋盘标定法,求得左摄像机的内参数和右摄像机的内参数;利用Matlab确定左摄像机和右摄像机的相对位姿关系的外参数R和T具体为:
步骤二一、利用张正友棋盘标定法,通过棋盘平面图板,在Matlab软件中标定出左摄像机和右摄像机模型参数矩阵,根据模型参数矩阵读取出左摄像机的内参数fl和右摄像机的内参数fr,将fl和fr进行保存;
步骤二二、利用Matlab确定左摄像机和右摄像机的相对位姿关系的外参数R和T;并将R和T保存到Matlab中;其中,表示图4中左摄像机坐标系原点Ocl和右摄像机坐标系原点Ocr之间的旋转矩阵;
若规定一个旋转关系分解为绕坐标系的x轴顺时针旋转α度角、绕y轴顺时针旋转β度角和绕z轴顺时针旋转γ度角,则其中,
表示图4中左摄像机坐标系原点Ocl和右摄像机坐标系原点Ocr之间的平移向量;tx表示Ocr和Ocl在x轴方向的平移值,ty表示Ocr和Ocl在y轴方向的平移值,tz表示Ocr和Ocl在z轴方向的平移值;
拍摄图像大小为1292像素×964像素;首先打印棋盘格标定模板,每个正方形格子为30mm×30mm,规格为9×6,将标定板贴到刚性平面硬板上并保持表面平整;通过不断调整标定模板和双目摄像机之间的距离和角度,利用左、右摄像机各采集15张棋盘平面图板图像。其它步骤及参数与具体实施方式一或二相同。
具体实施方式四:本实施方式与具体实施方式一至三之一不同的是:步骤三中利用双目摄像机拍摄logo图像,利用logo图像视觉信息特征与Visual Map数据库图像的视觉信息特征进行匹配;保留匹配点将误匹配点的剔除具体为:
步骤三一、定义摄像机坐标系、图像物理坐标系及图像像素坐标系;世界坐标系、摄像机坐标系、图像物理坐标系及图像像素坐标系之间的位置关系如图2所示;其中对CCD平面做了关于镜头原点的一个镜像;
(1)、将双目摄像机中左摄像机光心位置Ocl定义为双目摄像机坐标系原点;并令双目摄像机的ZC轴与左摄像机的光轴重合;其中,双目摄像机包括左摄像机和右摄像机;将左摄像机的坐标系定义为OclXclYclZcl;将右摄像机的坐标系定义为OcrXcrYcrZcr;
(2)、将logo图像像素坐标系定义为二维直角坐标系O1UV如图2所示,在该坐标系中以顶点O1为坐标系原点,像素中心点坐标为(u0,v0);世界坐标系、摄像机坐标系、图像物理坐标系及图像像素坐标系之间的位置关系如图2所示;
步骤三二:将左摄像机拍摄的logo图像通过SURF算法进行特征点信息的提取得到视觉信息特征;
步骤三三:计算左摄像机拍摄的logo图像视觉信息特征点与视觉地图(VisualMap)数据库的视觉信息特征点的最近邻欧氏距离,根据最近邻欧氏距离检索出与左摄像机拍摄的logo图像最匹配的视觉地图(Visual Map)数据库的图像即数据库图像;将数据库图像的视觉信息特征与左摄像机提取得到视觉信息特征进行特征点匹配得到m对匹配点;
步骤三四:将右摄像机拍摄的logo图像通过SURF算法进行特征点信息的提取得到视觉信息特征;将数据库图像的视觉信息特征与右摄像机提取得到视觉信息特征进行特征点匹配得到K对匹配点;
步骤三五:采用RANSAC算法剔除步骤三三中匹配图像之间的误匹配点;
步骤三六:采用RANSAC算法剔除经步骤三四的K对匹配点中的误匹配点;
步骤三七:通过估算出的单应矩阵H1、H2和Visual Map数据库中存储的logo图像顶点P1和顶点P2的像素坐标计算求出单应矩阵H1对应的左摄像机拍摄的logo图像的顶点P1的像素点Pl 1和Pl 2,求出单应矩阵H2对应的右摄像机拍摄的logo图像的顶点P2的像素点和其中,下角标表示的l和r分别代表左右摄像机,上角标表示的1和2分别代表图片的左右上角顶点;
单应矩阵和匹配图像对之间的关系表示为:
为Pl 1、Pl 2、或e为左摄像机l或右摄像机r;Hj为H1或H2;pj为p1或p2
将步骤一中视觉地图(Visual Map)数据库存储的logo图像的顶点P1和顶点P2的像素坐标p1、p2分别带入公式(1)中,计算得到左摄像机拍摄的logo图像的顶点P1对应的像素点Pl 1、左摄像机拍摄的logo图像的顶点P2对应的像素点Pl 2的像素坐标、右摄像机拍摄的logo图像的顶点P1对应的像素点和右摄像机拍摄的logo图像的顶点P2对应的像素点的像素坐标;其中,像素点Pl 1的像素坐标表示为像素点Pl 2的像素坐标表示为像素点的像素坐标表示为像素点的像素坐标表示为匹配图像对为左摄像机拍摄的logo图像与Visual Map数据库中的对应图像匹配或者右摄像机拍摄的logo图像与Visual Map数据库中对应的图像匹配;
用户在线定位时,利用两个固定在三脚架上的工业相机和镜头同时拍摄左右两张包含固定视觉信息特征的室内照片;分别将在线用户拍摄的左右图像与离线数据库的三张图像通过SURF算法进行特征点粗匹配;由于SURF算法进行匹配点计算时会存在一些误匹配点,这些误匹配点会导致室内定位的精度下降;因此,利用RANSAC(RANdom SampleConsensus)算法进行误匹配点的剔除,提高匹配的准确度;并用RANSAC算法对单应性矩阵进行估算,计算出两摄像机图像中logo图像左上角和右上角在像素坐标系下的像素坐标;单应矩阵的作用来描述两个平面之间的二维投影变换关系,用两个像平面上的4对对应点能够求出单应矩阵,阈值设定为t和n0满足条件:至少有n0个匹配点的实际位置坐标和由单应矩阵反算的位置坐标之间的欧氏距离小于t时,则认为该单应矩阵能够满足这组匹配图像的变换关系;RANSAC算法通过此种方法剔除掉不满足上述单应矩阵的误匹配点。其它步骤及参数与具体实施方式一至三之一相同。
具体实施方式五:本实施方式与具体实施方式一至四之一不同的是:步骤三五中采用RANSAC算法剔除步骤三三中匹配图像之间的误匹配点具体为:
步骤三五一、迭代次数n和匹配点i的初始值设置为0;
步骤三五二、利用步骤三三中得到的m对匹配点中选择4对匹配点估算左摄像机拍摄logo图像和数据库logo图像间的单应矩阵H1,通过计算获得的单应矩阵H1计算步骤三三中得到的m对匹配点中剩余匹配点在对应logo图像坐标系中的理论坐标;
步骤三五三、计算数据库logo图像中第i个匹配点理论坐标与步骤三二得到的第i个视觉信息特征点坐标的欧氏距离;其中,1≤i≤m;
步骤三五四、判断步骤三五三获得的欧氏距离是否小于预设的欧氏距离阈值t=0.01,如果判断结果为是,则执行步骤三五五;如果判断结果为否,则返回执行步骤三五三;
步骤三五五、令n的值加1,并判断n的值是否大于预设的迭代次数n0=20;如果判断结果为是,则保存该匹配点对,并保存单应矩阵H1;如果判断结果为否,剔除该匹配点对,并返回执行步骤三五二;具体流程如图1所示。其它步骤及参数与具体实施方式一至四之一相同。
具体实施方式六:本实施方式与具体实施方式一至五之一不同的是:步骤三六中采用RANSAC算法剔除经步骤三四的K对匹配点中的误匹配点具体为:
步骤三六一、迭代次数n′和K对匹配点中的匹配点k的初始值设置为0;
步骤三六二、利用步骤三四中得到的K对匹配点中选择4对匹配点估算左摄像机拍摄logo图像和数据库logo图像间的单应矩阵H2,通过计算获得的单应矩阵H2计算步骤三四中得到的匹配点中剩余匹配点在对应logo图像坐标系中的理论坐标;
步骤三六三、计算第k个匹配点理论坐标与步骤三四得到的第k个视觉信息特征点坐标的欧氏距离;其中,1≤k≤K;
步骤三六四、判断步骤三六三获得的欧氏距离是否小于预设的欧氏距离阈值t,如果判断结果为是,则执行步骤三六五;如果判断结果为否,则返回执行步骤三六三;
步骤三六五、令n′的值加1,并判断n′的值是否大于预设的迭代次数n′0=20;如果判断结果为是,则结束,并保存单应矩阵H2;如果判断结果为否,则返回执行步骤三六二;具体流程如图1所示。其它步骤及参数与具体实施方式一至五之一相同。
具体实施方式七:本实施方式与具体实施方式一至六之一不同的是:步骤四中根据步骤三中得到的像素坐标和计算顶点P1在左摄像机的坐标系OclXclYclZcl下的三维坐标;根据步骤三中得到的像素坐标 计算顶点P2在左摄像机的坐标系OclXclYclZcl下的三维坐标具体为:
步骤四一:根据像素坐标 或求转换后的logo图像顶点P1或顶点P2在物理坐标系下的坐标(x,y)如图2所示如式(2)所示:
其中,双目摄像机拍摄的logo图像为左摄像机拍摄的logo图像或右摄像机拍摄的logo图像;(x,y)为(x1 l,y1 l)、(x1 r,y1 r)、(x2 l,y2 l)或(x2 r,y2 r);(x1 l,y1 l)为转换后的左摄像机拍摄的logo图像顶点P1的物理坐标,(x1 r,y1 r)为转换后的右摄像机拍摄的logo图像顶点P1的物理坐标;(x2 l,y2 l)为转换后的左摄像机拍摄的logo图像顶点P2的物理坐标,(x2 r,y2 r)为转换后的右摄像机拍摄的logo图像顶点P2的物理坐标;(u,v)为 或
dx为x的放大系数;dy为y的放大系数;用矩阵表达的齐次坐标如式(3)所示:
定义像素中心点坐标为(u0,v0)作为坐标系原点O2,将logo图像物理坐标系定义为二维直角坐标系O2XY,X轴与Y轴分别与摄像机坐标系的Xcl轴与Ycl轴平行,通常以毫米(mm)为坐标单位;
步骤四二:求转换后的logo图像物理坐标系O2XY和左摄像机坐标系OclXclYclZcl之间的关系;摄像机坐标系与图像物理坐标系之间的关系如图3所示;
OclP与图像平面的交点pcl(x,y)或OcrP与图像平面的交点pcr(x,y)满足基本关系如式(4)所示:
其中,P点为P1点或P2点;
(xc,yc,zc)为双目摄像机坐标,(xc,yc,zc)为 或 为左摄像机坐标系下顶点P1的坐标;为右摄像机坐标系下顶点P1的坐标;为左摄像机坐标系下顶点P2的坐标;为右摄像机坐标系下顶点P2的坐标;OclP中P为P1或顶点P2;
用矩阵表达的齐次坐标形式如式(6)所示:
设左摄像机坐标系为OclXclYclZcl和右摄像机坐标系为OcrXcrYcrZcr,图像物理坐标系分别为OlXlYlZl和OrXrYrZr,左摄像机焦距为内参数fl;右摄像机焦距为内参数fr,f为fl或fr;
则摄像机的透视变换模型如式(8)所示:
(xl,yl)为(x1 l,y1 l)或(x2 l,y2 l);(xr,yr)为(x1 r,y1 r)或(x2 r,y2 r);
用空间转换矩阵Mlr来表示左右摄像机坐标系之间的位置转换关系,如式(9)所示:
其中,Mlr=[R|T];R为旋转矩阵,T为平移向量;Mlr为R和T组成的矩阵;
步骤四三:求解在左摄像机坐标系下的坐标;利用步骤二得到的内参数和外参数,根据步骤四一获得坐标(x,y);计算得到左摄像机坐标系下顶点P1的坐标(xcl,ycl,zcl);
因此,通过矩阵方程(11)表示:
求解矩阵方程能够求出P1点在左摄像机坐标系下的坐标,ρr为比例系数,
如式(12)所示:
其中,根据像素点Pl 1在图像物理坐标系中的齐次坐标表示为和像素点在图像物理坐标系中的齐次坐标表示为求解出P1点在左摄像机坐标系下的坐标为和P2点在左摄像机坐标系下的坐标为图4为本发明所使用的双目视觉***示意图;至此,求解出左摄像机坐标系下logo图像左上角顶点的位置坐标;下面,求解在世界坐标系下左摄像机的位置;
利用步骤三中拍摄图像和Visual Map数据库图像的匹配结果得到与左右拍摄图像相匹配的数据库图像;根据单应矩阵和投影矩阵能够得到logo图像顶点P1和顶点P2在摄像机成像坐标系中的图像像素坐标,然后求得logo图像左上角和右上角顶点在左摄像机坐标系下的三维坐标。其它步骤及参数与具体实施方式一至六之一相同。
具体实施方式八:本实施方式与具体实施方式一至七之一不同的是:步骤五中根据步骤四求得的三维坐标 和视觉地图(Visual Map)数据库中存储的logo图像的顶点P1和P2在世界坐标系下的坐标建立坐标转换关系,求得左摄像机在世界坐标系下的坐标,即为用户的位置坐标具体为:
步骤五一、根据建立的世界坐标系OwXwZw如图5所示,令Xw轴指向的方向为东方,Zw轴指向的方向为北方,即对于目前比较规整的楼层建筑来说,存在如下四种墙壁的朝向,如图5所示;根据摄像机从北向南拍摄的情况,θ表示左摄像机C点与数据库logo图像顶点P1的连线与顶点P1和P2之间的夹角;其中,θ∈(0,π);
步骤五二:计算出C点距P1点的距离D1,计算出C点距P2点的距离D2,已知P1点的坐标和P1P2的长度D3,计算摄像机C点在世界坐标系下的位置;摄像机C点为摄像机的光心;
由式(12)计算P1点和P2点在左摄像机坐标系OclXclYclZcl下的三维坐标为和则求得如下长度:
步骤五三:求出θ角;根据三角形ABC的三个边长D1、D2和D3求得角θ如式(15)所示:
步骤五四:得到定位坐标通过步骤五三可得到点C在世界坐标系下的坐标(xc,zc),如式(16)所示;
同理其他朝向的目标也可以通过这种方法,首先求出三角形各边长,然后确定角θ,最后计算得到摄像机在世界坐标系下的位置。其它步骤及参数与具体实施方式一至七之一相同。