精华内容
下载资源
问答
  • 鱼眼相机

    千次阅读 2015-04-06 21:59:24
    OpenCV3.0 alpha在8月21日发布,其中增加了鱼眼镜头模型,提供了标定、去畸变等一系列api,其实现方法参考了{Camera Calibration Toolbox for Matlab}。本文简单介绍了OpenCV 中实现的鱼眼镜头模型,给出调用demo的...

    OpenCV3.0 alpha在8月21日发布,其中增加了鱼眼镜头模型,提供了标定、去畸变等一系列api,其实现方法参考了{Camera Calibration Toolbox for Matlab}。本文简单介绍了OpenCV 中实现的鱼眼镜头模型,给出调用demo的关键代码、注释和去畸变的结果。

    鱼眼镜头模型

      鱼眼镜头的内参模型可以表示为,与普通镜头的内参一样,但畸变参数不同,为,含义如下:

      设(X,Y,Z)为一个三维坐标点,投影在图像上的二维坐标为(u,v),如果不考虑畸变,投影关系如下:

      

      R和t分别代表相机外参中的旋转矩阵和平移向量。

      当考虑鱼眼镜头的畸变后,投影关系转化为:

      (x'/x = seta'/r相似比相等)

    标定流程

      首先调用OpenCV的FindChessboardCorners()来寻找图像上的标定板的角点,再根据标定板的尺寸指定这些角点对应的三维点的三维坐标,再调用fisheye::calibrate()来进行标定,利用标定结果中的内参和畸变参数调用fisheye::undistortImage()对图像做去畸变操作。

    代码片段

      

    复制代码
    tuple<Mat, Mat, double> calibrate_fisheye(const vector<Mat>& images, const Settings& s) {
        /*寻找二维角点*/
        auto corners = chessboard_corners(images, s);
        /*计算二维角点对应的三维点坐标*/
        auto object_points = vector<vector<Point3d>>(corners.size(), object_positions(s));
        cv::Matx33d K;
        cv::Vec4d D;int flag = 0;
        flag |= cv::fisheye::CALIB_RECOMPUTE_EXTRINSIC;
        flag |= cv::fisheye::CALIB_CHECK_COND;
        flag |= cv::fisheye::CALIB_FIX_SKEW;/*非常重要*/
    
        double rms = fisheye::calibrate(object_points, 
            corners, 
            s.imageSize,
            K, D, 
            cv::noArray(), cv::noArray(), 
            flag, 
            cv::TermCriteria(3, 20, 1e-6));
        return make_tuple(Mat(K), Mat(D), rms);
    }
    复制代码

      代码非常简单,和标定普通的镜头的区别在于:

    1. 角点坐标和和对应的三维点坐标为double类型,普通镜头为float类型,弄混后不能正确执行
    2. flag必须指定CALIB_FIX_SKEW,代表求解时假设内参中fx=fy,与鱼眼镜头标定论文中一致,没有这个假设的话是得不到结果的

    结果

     

      测试了OpenCV的测试数据,34张图像进行标定,重投影误差均值为0.343542。

      左边为源图像,右边为去畸变结果:

    展开全文
  • 鱼眼相机标定文献

    2017-10-26 15:40:06
    鱼眼相机标定文献,硕士论文,鱼眼相机标定文献,硕士论文
  • 鱼眼相机标定方法及标定装置制造方法【专利摘要】本发明公开了一种鱼眼相机标定方法及标定装置,包括:建立所述鱼眼相机的成像模型;从不同视角采集多幅标定板图像,在所述标定板图像上获取特征点的坐标,参考所述...

    鱼眼相机标定方法及标定装置制造方法

    【专利摘要】本发明公开了一种鱼眼相机标定方法及标定装置,包括:建立所述鱼眼相机的成像模型;从不同视角采集多幅标定板图像,在所述标定板图像上获取特征点的坐标,参考所述标定板图像的格式调整所述特征点的坐标,并根据所述标定板图像中所述特征点的预设规律,确定所述特征点的世界坐标;以RMS重投影误差为评估值,计算所述标定板图像的畸变中心偏移的初值;最小化所述RMS重投影误差,优化内参和外参。由上述内容可知,本发明提供的技术方案无需特殊的标定设备,能够适用于大多数鱼眼相机,提高了标定方法的适用性和标定结果精准度。

    【专利说明】鱼眼相机标定方法及标定装置

    【技术领域】

    [0001] 本发明涉及鱼眼相机【技术领域】,更为具体的说,涉及一种鱼眼相机标定方法及标 定装置。

    【背景技术】

    [0002] 近年来,由于鱼眼相机能够提供180度的视野摄像范围,在诸多领域得到了广泛 应用,例如,在机器人导航、三维建模、行车安全等领域。但是,鱼眼相机提供大角度视野摄 像范围的同时,伴随而来的是图像的鱼眼畸变,因此,鱼眼相机的应用往往需要设定鱼眼相 机的精准参数,即需要进行标定。而鱼眼相机标定结果的精度直接影响其衍生产品的精准 度,因此,标定技术得到了广泛关注。但是,采用现有标定技术受限于相机类型和特殊标定 设备的要求,适用性低;或者受限于标定计算模型,标定结果精准度差。

    【发明内容】

    [0003] 有鉴于此,本发明提供了一种鱼眼相机标定方法及标定装置,无需特殊标定设备, 适用于大部分的鱼眼相机,提高了其适用性和标定结果精准度。

    [0004] 为实现上述目的,本发明提供的技术方案如下:

    [0005] -种鱼眼相机标定方法,包括:

    [0006] 建立所述鱼眼相机的成像模型;

    [0007] 从不同视角采集多幅标定板图像,在所述标定板图像上获取特征点的坐标,参考 所述标定板图像的格式调整所述特征点的坐标,并根据所述标定板图像中所述特征点的预 设规律,确定所述特征点的世界坐标;

    [0008] 以RMS重投影误差为评估值,计算所述标定板图像的畸变中心偏移的初值;

    [0009] 最小化所述RMS重投影误差,优化内参和外参。

    [0010] 优选的,所述最小化所述RMS重投影误差,优化内参和外参包括:

    [0011] 以LM算法最小化所述RMS重投影误差,优化内参和外参。

    [0012] 优选的,所述建立所述鱼眼相机的成像模型包括:

    [0013] 获取空间中任意一景点在世界坐标系中的齐次坐标为X,在传感器平面中的投影 为U" ' = [U" ',v" ' ]T,在规范化平面中的投影为u" = [u",v" ]T,以及,在成像平 面中的投影为U' =[U',v' ]T,其中,所述U"与U'关系式为:

    【权利要求】

    1. 一种鱼眼相机标定方法,其特征在于,包括: 建立所述鱼眼相机的成像模型; 从不同视角采集多幅标定板图像,在所述标定板图像上获取特征点的坐标,参考所述 标定板图像的格式调整所述特征点的坐标,并根据所述标定板图像中所述特征点的预设规 律,确定所述特征点的世界坐标; 以RMS重投影误差为评估值,计算所述标定板图像的畸变中心偏移的初值; 最小化所述RMS重投影误差,优化内参和外参。

    2. 根据权利要求1所述的鱼眼相机标定方法,其特征在于,所述最小化所述RMS重投影 误差,优化内参和外参包括: 以LM算法最小化所述RMS重投影误差,优化内参和外参。

    3. 根据权利要求2所述的鱼眼相机标定方法,其特征在于,所述建立所述鱼眼相机的 成像模型包括: 获取空间中任意一景点在世界坐标系中的齐次坐标为X,在传感器平面中的投影为 U" ' = [u" ',v" ' ]τ,在规范化平面中的投影为U" = [U",ν" ]τ,以及,在成像平面 中的投影为U' =[u',ν' ]τ,其中,所述U"与U'关系式为:

    其中,Rmr = IW/IW,IW为像素宽高比,IW为显示宽高比,Rmr为存储宽高比; 所述u"'与所述u"关系式为:

    其中,A和T为所述内参中相机制造偏差的参数; 以及,所述鱼眼相机的成像模型为: A*p=A*g(u"' )= λ· g(Au" +T) = λ · g(A · K(u' )+T) = P · X 其中,λ > 〇 ;p为所述鱼眼相机的视点至所述景点的向量,P为世界坐标系与相机坐 标系的透视矩阵;g为成像函数,且表示为g(u" ',V" ' ) = (U" ',V" ',f(P"')) T,f(p "')为所述鱼眼相机畸变函数,f(p " ' ) = aQ+aip " ' +a2(p " ' )2+… aN(P " ' )N,

    ,以及,所述鱼眼相机成像模型中的A,T,aQ, a2, . . .,aN均为所述内参,P为所述外参。

    4. 根据权利要求3所述的鱼眼相机标定方法,其特征在于,所述参考所述标定板图像 的格式调整所述特征点的坐标包括: 根据所述标定板图像的格式,确定所述标定板图像的显示宽高比;根据所述标定板图 像的格式的宽高,计算所述标定板图像的存储宽高比;以及,根据公式所述Rsak = Rdak/Rpak, 计算所述标定板图像的像素宽高比; 根所述标定板图像的显示宽高比、存储宽高比、像素宽高比、所述特征点对应成像平面 的坐标和所述U"与U'关系式,计算所述特征点对应所述规范化平面的坐标。

    5. 根据权利要求4所述的鱼眼相机标定方法,其特征在于,所述以RMS重投影误差为评 估值,计算所述标定板图像的畸变中心偏移的初值包括: 531、 初始化所述内参A为单位阵,对所述内参T设定搜索区间范围,并对所述搜索区间 范围网格化得到多个网格点; 532、 根据所述内参A、所述网格点对应的内参T、所述特征点对应所述规范化平面的坐 标和所述u"'与所述u"关系式,计算所述特征点对应所述传感器平面的坐标,以及,计 算所述网格点对应的RMS重投影误差; 533、 以当前计算出的最小的RMS重投影误差所对应的网格点为中心,重新设定所述搜 索区间范围,并按相应比例更新网格化的所述搜索区间范围的网格大小; 534、 重复所述步骤S32至步骤S33,直至所述搜索区间范围缩小到预设精度要求,则确 定对应RMS重投影误差最小的网格点所对应的内参T为所述标定板图像的畸变中心偏移的 初值Tinit。

    6. 根据权利要求5所述的鱼眼相机标定方法,其特征在于,所述对所述搜索区间范围 网格化得到多个网格点为: 对所述搜索区间范围网格化为矩形网格得到m*n个网格点,且每个网格的尺寸相同,m 和η均为不小于2的整数。

    7. 根据权利要求6所述的鱼眼相机标定方法,其特征在于,对所述搜索区间范围网格 化为矩形网格得到7*7个网格点,且每个网格的尺寸相同。

    8. 根据权利要求5所述的鱼眼相机标定方法,其特征在于,所述以LM算法最小化所述 RMS重投影误差,优化内参和外参包括: 设定LM算法的优化参数为所述内参A和内参T,其中,设定所述内参A的优化初始值为 单位阵,所述内参T的优化初始值为所述畸变中心偏移的初值Tinit ; 执行所述LM算法最小化所述RMS重投影误差,得到优化后的所述内参,并参考所述鱼 眼相机的成像模型,得到优化后的外参。

    9. 一种鱼眼相机标定装置,其特征在于,包括: 鱼眼成像建立模块,用于建立所述鱼眼相机的成像模型; 处理模块,用于从不同视角采集多幅标定板图像,在所述标定板图像上获取特征点的 坐标,参考所述标定板图像的格式调整所述特征点的坐标,并根据所述标定板图像中所述 特征点的预设规律,确定所述特征点的世界坐标; 计算模块,用于以RMS重投影误差为评估值,计算所述标定板图像的畸变中心偏移的 初值; 优化模块,用于最小化所述RMS重投影误差,优化内参和外参。

    10. 根据权利要求8所述的鱼眼相机标定装置,其特征在于,所述优化模块以LM算法最 小化所述RMS重投影误差,优化内参和外参。

    【文档编号】G06T7/00GK104392435SQ201410627763

    【公开日】2015年3月4日 申请日期:2014年11月10日 优先权日:2014年11月10日

    【发明者】徐以强, 李庆, 闫硕, 梁艳菊, 秦瑞, 高荣, 鲁斌, 常嘉义, 陆菁 申请人:中科院微电子研究所昆山分所

    展开全文
  • 鱼眼相机模型

    2021-02-05 11:38:33
    之前的文章我们介绍了针孔相机模型,相机镜头是一个凸透镜,而本文介绍的鱼眼相机镜头是由十几个不同的透镜组合而成,在成像的过程中,入射光线经过不同程度的折射,投影到尺寸有限的成像平面上,使得鱼眼镜头拥有更...

     

    鱼眼镜头

    之前的文章我们介绍了针孔相机模型,相机镜头是一个凸透镜,而本文介绍的鱼眼相机镜头是由十几个不同的透镜组合而成,在成像的过程中,入射光线经过不同程度的折射,投影到尺寸有限的成像平面上,使得鱼眼镜头拥有更大的视野范围。下图为鱼眼相机的组成结构:

    与针孔相机原理不同,鱼眼镜头采用非相似成像,在成像过程中引入畸变,通过对直径空间的压缩,突破成像视角的局限,从而达到广角成像。

    所以鱼眼镜头是一种极端得广角镜头,通常焦距小于等于16mm并且视角接近或等于180°(在工程上视角超过140°的镜头即统称为鱼眼镜头)。

     

    相机畸变

    鱼眼镜头无论如何它的边缘线条都是要弯曲的,即使90度的鱼眼也是这样,这种畸变我们在很多广角镜头上都可以看到,而这就是明显的桶形畸变。同样的120度的鱼眼看起来弯曲的更加厉害一些了,而且被容纳进范围的景物更多;150度同样如此,而180度的鱼眼则可以把镜头周围180度范围内的所有物体都拍摄进去。众所周知,焦距越短,视角越大,因光学原理产生的变形也就越强烈。为了达到180度的超大视角,鱼眼镜头不得不允许这种变形(桶形畸变)的合理存在。

    针对原始图像进行畸变校正后,带有冗余边界,需要做进一步截取。如下图:

     

    投影模型

    通常的光学系统均基于高斯光学,遵循相似成像准则,而鱼眼镜头为了将尽可能大的场景投影到有限的图像平面内采用非相似成像,故需要选择其他的成像公式来替换高斯光学成像公式,每一个成像公式对应一种镜头设计模型。常用的鱼眼镜头模型一共有四个,分别是等距投影、正交投影、等立体角投影、体视投影。

    f为鱼眼相机的焦距,即成像平面的半径,θ是入射光线与鱼眼相机光轴的夹角,即入射角,rd为鱼眼图像的点到畸变中心的距离。rd随着设计模型的变化而发生变化,四种模型投射距离的大小关系如下(反映空间中的一点P投影到球面再到图像平面的成像过程):

    等距投影的成像点的位置rd与入射角θ成正比。这种模型可以解决在小孔成像下入射角为 90°时图像无限拉伸的问题,在二维图像中,成像为随着入射角不断变化的同心圆,最大视场角可达到 360°,这种鱼眼模型是最简单的一种模型。

    正交投影的成像结果,不会产生出透射映射的近大远小结果。在二维图像种,从 0 到 90 度,等差的视场角成像越来越密。180度视场角以内的场景都可以进行投影。

    等立体角投影是鱼眼镜头中比较常用的一种模型。

    体视投影是一种将圆球投影至平面的映射,在几何学里也称共型映射,是一种保角映射。此时相机的光心移至南极的位置,光轴朝北极。体视投影可以将 360度的场景都投影到图像上。

     

    成像模型

    相比针孔相机模型可以将三维点直接投影到归一化平面,鱼眼相机则多了一个中间过程:先将三维点投影到单位球面,再将单位球面上的点投影到归一化平面上。

    对于三维世界中的一点𝑃,其坐标向量为𝑋,𝑃在相机坐标系中的坐标Xc = RX + T。其中R、T分别为世界坐标系到相机坐标系的旋转与平移矩阵,对于针孔投影到相平面上的坐标(𝑎, 𝑏),满足如下等式:

    其中:

    加入鱼眼相机畸变:

    畸变后坐标(𝑥′, 𝑦′),满足:

    最后调整到像素坐标系(𝑢, 𝑣):

    其中𝑓𝑥= f/d𝑥, 𝑓𝑦= f/d𝑦分别为两个方向上的归一化焦距,d𝑥, d𝑦代表了一个像素点对应的图像平面中的长度。


    本文来自杨旭童鞋的整理,在此感谢。欢迎关注小编公众号,最新文章同步更新。

     

    展开全文
  • 文章目录VINS-mono的鱼眼相机模型Unified Camera Model VINS-mono的鱼眼相机模型Unified Camera Model

    VINS-mono的鱼眼相机模型Unified Camera Model

    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 鱼眼相机原理

    千次阅读 2019-10-24 12:45:44
    因为鱼眼相机中,光通过镜头后,光路发生转向。在焦距和感光片大小都一定的情况下,也可以得到不同的视场角。 鱼眼镜头的去畸变 去畸变是指用小孔模型来等效鱼眼模型。如果限定光线穿过镜头后不能转向。那么只有...
  • 充分考虑鱼眼相机应用的空间环境特点,设计了一款基于1/3 inch(1 inch=25.4 mm)CCD的航天鱼眼相机光学系统,系统焦距2.1 mm,F数为4,视场角为210°,工作温度-40 ℃-+60 ℃。重点研究了环境因素对鱼眼相机光学系统...
  • 鱼眼相机成像模型

    万次阅读 多人点赞 2016-10-19 22:21:41
    鱼眼相机成像模型
  • 鱼眼相机图像畸变校正

    千次阅读 2020-01-02 15:33:20
    有关鱼眼相机成像模型相关知识,参考我的这篇文章。通过对鱼眼相机做内参标定,可以得到相机的内参和畸变参数。利用上述参数,可以对鱼眼相机获取的原始畸变图像做畸变校正。 1.畸变校正原理 简单回顾下鱼眼相机...
  • 基于鱼眼相机的自运动参数异步估计
  • Camera Calibration是计算Camera的...你同样可以在在一个鱼眼相机中获得未失真的图像。鱼眼相机可以被用于里程计(odometry)以及vslam(simultaneous localization and mapping)。其他应用中,有包括监控系统(...
  • 首先列一下参考资料: ...鱼眼相机标定以及OpenCV实现 鱼眼相机畸变矫正的汇总链接 鱼眼相机成像模型 鱼眼相机矫正原理 鱼眼相机畸变矫正的总结 鱼眼镜头的选型 Fisheye Calibration Basics ...
  • 鱼眼相机标定模型

    2020-03-08 15:24:15
    Camera Calibration是计算Camera的...你同样可以在在一个鱼眼相机中获得未失真的图像。 鱼眼相机可以被用于里程计(odometry)以及vslam(simultaneous localization and mapping)。其他应用中,有包括监控系统...
  • 鱼眼相机畸变矫正

    2020-08-02 00:04:23
    鱼眼相机的标定方法与普通相机的标定方法类似,可以将其分为基于标定物的方法和自标定的方法。基于标定物的方法就是使用一块标定板,可以是棋盘格的或者是圆点型的标定板。将标定板在相机的视场内摆放不同的位置,...
  • 由于鱼眼相机成像存在较大的畸变, 采用二维标定板的方法难以在图像边缘区域获得准确可靠的角点, 从而导致标定精度下降, 而传统的三维标定法存在标定场建造复杂, 特征点数目有限等问题。为此, 提出一种基于激光扫描的...
  • 鱼眼相机畸变矫正的汇总链接-附件资源
  • 利用opencv图像算法库实现对鱼眼相机内外参的标定,并利用标定结果对畸变图像进行校正。
  • 最近研究了视觉SLAM中不同的鱼眼相机模型,其中包括: Scaramuzza的鱼眼相机模型 代表性的SLAM工作为MultiCo-SLAM,是一个以ORB-SLAM为基础的扩展的多鱼眼相机视觉SLAM系统(Video,Paper) Scaramuzza相机模型标定...
  • 针对此, 提出了基于鱼眼相机的几何校正方法并给出了理论推导。该方法首先对鱼眼相机进行标定, 然后通过拍摄投影到显示墙的结构光特征条纹构建投影机与相机间的亚像素级映射关系, 进而计算出每个投影通道的几何校正...
  • 针孔相机、鱼眼相机模型推导

    千次阅读 2019-04-19 21:19:02
    针孔相机、鱼眼相机模型 一、针孔相机模型 空间的三维物体要成像到相机的 CMOS/CCD 上面,形成了图像。图像上的每个点对应空间上的一个点。 将世界坐标系上的一点 (x,y,z)映射到CMOS/CCD图像坐标系上,只要两步: ...
  • 前言在介绍其他相机模型之前,可以先看一下kalibr支持标定的相机模型(kalibr可以标定的相机模型),这里的相机模型一共有4种,针孔相机模型,全景相机模型,Double sphere相机模型还有EUCM。其中EUCM已经在前一篇...
  • 以待标定鱼眼相机近似垂直棋盘格获取的单张影像为对象, 综合利用多种几何约束分阶段求解鱼眼相机参数初值并进行全局优化:利用鱼眼图像轮廓对称性计算得到准确的相机主点位置(u0,v0), 并通过轮廓外接矩形扫描搜索...
  • 这是用opencv做的相机标定...并且工程里还含有测试图像,是一个180度的鱼眼相机拍摄的棋盘格,能应对各种广角和鱼眼相机的标定。项目工程是在平台vs2015,在其他平台请自己修改一下工程属性,请添加自己的opencv3.x库。
  • 鱼眼相机成像技术

    2020-06-01 18:00:54
    鱼眼相机成像技术 一.特征点选取方法 1.角点选取 以待检测像素为圆心,3为半径,做一个圆,与圆相交的共有16个像素,检测这16个像素中与中心点的像素差大于某个阈值T时n +1,,若这16个点检测完成时n>N(N一般取...
  • 鱼眼相机标定校正+批量加载多张标定图像+批量处理多张测试图像+角点坐标输出+相机参数输出
  • 鱼眼相机标定以及OpenCV实现

    千次阅读 2018-12-13 11:19:48
    在另一篇文章中我已经写过有关普通相机模型及其OpenCV标定实现,这篇文章将主要关注鱼眼相机模型及其OpenCV标定实现。  先看一张鱼眼相机拍摄出来的结果: 从图中可以看出很明显的畸变。对鱼眼相机标定,有时候...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 567
精华内容 226
关键字:

鱼眼相机