基于光场多层折射模型的水下折射率自标定方法与流程

文档序号:17154127发布日期:2019-03-19 23:46阅读:427来源:国知局
基于光场多层折射模型的水下折射率自标定方法与流程

本发明涉及水下标定技术领域,尤其涉及一种基于光场多层折射模型的水下折射率自标定方法。



背景技术:

水的折射率对于水下测距、三维重建有着重要意义。水下折射率随温度的升高而减小,随盐度的增大而增大。对于一个测量深度为2-3m的仪器,当折射率变化千分之一,则在3m处误差就达到3mm。因此,高精度的水下折射率标定是一个重要科学问题。

测量折射率的方法有很多种,宋师霞等人在其论文“用迈克尔干涉仪测水的折射率[j].山东工业技术,2015(21):255-255.”中提出了一种通过测出迈克尔逊干涉仪的动镜在水中的移动量及其相应的干涉条纹变化数进而测量水折射率的方法;李强等人在其论文“毛细管成像法精确测量微量液体的折射率[j].光学精密工程,2012,20(7):1440-1446.”中以充入透明液体的毛细管构成柱透镜,基于共轴球面光学系统的成像原理,对光学成像系统的放大率进行单一参数的测量,进而计算出待测液体的折射率。

上述这些用于测量折射率的方法虽然精度较高,但其实验装置搭建都比较复杂,设备昂贵,对操作者的专业性具有一定要求并且仅适用于实验室环境下的测量,在运用到水下甚至深海环境进行测量时,实际操作性比较低。



技术实现要素:

针对现有技术存在的缺陷,本发明的目的在于提供一种基于光场多层折射模型的水下折射率自标定方法。

为达此目的,本发明采用如下技术方案:

在水下拍摄环境中,成像光线依次通过水、玻璃、空气这三种介质。在已知相机内参,空气和玻璃的折射率、厚度以及立体视觉系统相对姿态的情况下,通过在测定海域拍摄一组清晰的标定板图片,根据物点p在左、右相机两约束平面(界面法线和入射光线决定的平面)所相交的直线上这一约束,从而测定拍摄海域海水折射率μ。

一种基于光场多层折射立体模型的水下折射率自标定方法,操作步骤如下:

步骤一:在左、右相机拍得的清晰标定板图片上,提取得到相对应的一组像点,左像点ml,右像点mr;

步骤二:根据光线的光场表示方法,分别计算对于左、右相机像点经过多层界面传播和折射后到达水中的入射光线并转换成光场矢量ql,qr;

步骤三:将右相机坐标系下矢量和点转换到左相机坐标系:qr'=rl_r×qr+tl_r,对于右多层折射坐标系的z轴同理得:zr'=rl_r×zr,or'=tl_r;

步骤四:根据平面法线和点约束,分别求出左、右相机约束平面πl、πr;左相机约束平面表示为:平面法线平面上一点ol=[000];右相机约束平面表示为:平面法线平面上一点or'=tl_r;

步骤五:两个约束平面相交于一条直线,由折射定律知,物点p在该直线上;

步骤六:预估海水的折射率位于1.3至1.5之间,采用搜索法在这个范围内确定折射率;取折射率区间内某一折射率μi,此时左、右相机像点对应的最后一层介质折射后的光线与步骤五中的直线分别相交于两点,当这两点之间距离最小时,其对应的μ即为海水的折射率。

与现有技术相比,本发明具有如下显而易见的突出实质性特点和显著的技术进步:

1、标定精度高,采用基于多层折射模型的水下立体视觉系统标定方法对相机进行标定,比传统的小孔成像模型标定精度要高很多,不存在系统误差。

2、操作方便,不需在水下进行相机视场内的多位置标定,只需在测定水域拍摄一次标定板即可确定测定水域折射率。

3、采用光场变换的方法对成像过程进行描述。光场相比于传统的光矢量,不仅包含方向信息,还包含位置信息。光场的传播与折射直接用线性变换的方式来表示使得光线传播的过程更加直观。

附图说明

图1为本发明实施例提供的光场描述示意图。

图2为本发明实施例用到的光场多层折射平面系统模型。

图3为本发明实施例标定水下折射率流程图。

具体实施方式

下面结合附图和实施例对本发明做出详细说明。

如图1所示,首先对光场进行相关说明。光线穿过两个平行平面,分别交两平面于点o和od。两平行平面之间的距离为d=1,并且oo'垂直于两平面。第一个平面上的点o表示为[u,v]t,向量o'od表示为[s,t]t,所以光线ood在空间中传播可以用四维光场函数[u,v,s,t]t表示。光线穿过的第一个平面记录光线的位置信息(u,v)t,第二个平面记录光线的方向信息(s,t)t

如图2所示,基于光场表示方法,建立多层折射立体模型,标定两个相机的折射参数,操作步骤如下:

步骤一:在空气中对左相机和右相机分别进行单相机标定,获得单相机的内参数相机矩阵cameramatrixl、cameramatrixr和畸变系数distortionl、distortionr。表1给出了标定结果。

表1空气中相机标定参数

步骤二:采用中国专利cn201710702222.1中的“基于多层折射模型的水下立体视觉系统标定方法”在水池内对相机进行标定,获得两个相机的折射参数(nl,dl,miul)、(nr,dr,miur)和立体外参数tl_r,rl_r;

上述步骤二中使用光场多层折射模型在水下对相机进行标定,包括以下步骤:

步骤①:拍摄水池中的棋盘格标定板。在1m—2m之间任意选定8个位置拍摄图片,图片在两个相机视场中大致位于中间位置,标定板倾斜角度不可太大,要保证拍得的图片角点清晰。

步骤②:使用harris角点检测法提取拍摄到的棋盘格图片角点,使用预先标定的单相机标定参数cameramatrixl、cameramatrixr、distrotionl、distortionr对角点坐标去除畸变。

步骤③:选择待标定参数的初始数值,取法线初值n=[001]和折射率初值miu=[11.51.33](分别代表空气、玻璃和水的折射率),迭代计算出两个相机的折射参数(nl,dl,miul)、(nr,dr,miur)和外参数rl_r,tl_r。表2给出了标定的折射参数和立体外参数。

表2水下立体视觉标定参数

如图3所示,在上述步骤的基础上,测定拍摄海域海水折射率μ,操作步骤如下:

步骤一:在左、右相机拍得的清晰标定板图片上,提取得到相对应的一组像点,左像点ml,右像点mr;

步骤二:根据光线的光场表示方法,分别计算对于左、右相机像点经过多层界面传播和折射后到达水中的入射光线并转换成光场矢量ql,qr;

步骤三:将右相机坐标系下矢量和点转换到左相机坐标系:qr'=rl_r×qr+tl_r,对于右多层折射坐标系的z轴同理得:zr'=rl_r×zr,or'=tl_r;

步骤四:根据平面法线和点约束,分别求出左、右相机约束平面πl、πr;左相机约束平面表示为:平面法线平面上一点ol=[000];右相机约束平面表示为:平面法线平面上一点or'=tl_r;

步骤五:两个约束平面相交于一条直线,由折射定律知,物点p在该直线上;

步骤六:预估海水的折射率位于1.3至1.5之间,采用搜索法在这个范围内确定折射率;取折射率区间内某一折射率μi,此时左、右相机像点对应的最后一层介质折射后的光线与步骤五中的直线分别相交于两点,当这两点之间距离最小时,其对应的μ即为海水的折射率。

在长4m,宽2m,高1.2m的水池内摄一组有靶标的清晰图片,测定拍摄水域水的折射率为μ=1.3337。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1