zed2i相机内参标定

这篇具有很好参考价值的文章主要介绍了zed2i相机内参标定。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

参考:

https://blog.csdn.net/yanpeng_love/article/details/107166922
https://blog.csdn.net/weixin_41954990/article/details/127928852

参考以上连接先安装kalibr

注意:

  • python包装不上,换成:pip install
  • 出现pyx找不到的错误:sudo apt-get install python3-pyx
1. 生成标定板

可以自己定制特定尺寸的标定板:

source ~/桌面/liweidong/kalibr_ws/devel/setup.bash
rosrun kalibr kalibr_create_target_pdf --type apriltag --nx 4 --ny 4 --tsize 0.035 --tspace 0.2

其中,tsize为方块的边长,tspace为方块边长/方块间距离(上述参数刚好可以用A4纸张打印出来)。
同时,生成相应的配置文件aprilgrid.yaml

target_type: 'aprilgrid' #gridtype
tagCols: 4               #number of apriltags
tagRows: 4               #number of apriltags
tagSize: 0.035           #size of apriltag, edge to edge [m]
tagSpacing: 0.2          #ratio of space between tags to tagSize

根据张正友标定法,标本板需要为平面,采用纸张可能不够平整,最好用特制的标定板。实验室的标定板如下,规格为297x210mm:
zed2i相机内参标定
生成的配置文件如下:

target_type: 'aprilgrid' #gridtype
tagCols: 7               #number of apriltags
tagRows: 5               #number of apriltags
tagSize: 0.03           #size of apriltag, edge to edge [m]
tagSpacing: 0.2          #ratio of space between tags to tagSize

(很疑惑,我用购买的标定板的标定质量反而不如打印的A4纸)

2. 开启zed2i相机
source ~/桌面/zed/ros/catkin_ws/devel/setup.bash
roslaunch zed_wrapper zed2i.launch
3. 显示图片

开两个终端,分别输入以下命令,用以观察相机左右目图像

rqt_image_view

两个窗口分别订阅话题:
/zed2i/zed_node/left/image_rect_color/zed2i/zed_node/right/image_rect_color

4. 录制bag

相机对准标定板

rosbag record /zed2i/zed_node/imu/data /zed2i/zed_node/left/image_rect_color /zed2i/zed_node/right/image_rect_color 

要求:

  • 相机的6个自由度都要运动到,且运动要比较缓慢
  • 标定板应当占据图像比较大的视野
    可以参考以下视频:
    https://youtu.be/puNXsnrYWTY?t=57
5. 计算相机参数

将录制的bag以及aprilgrid.yaml放到同一目录下

rosrun kalibr kalibr_calibrate_cameras --bag xxx.bag --topics /zed2i/zed_node/left/image_rect_color /zed2i/zed_node/right/image_rect_color --models pinhole-radtan pinhole-radtan --target aprilgrid.yaml

如果依赖出现错误:

pip install -U wxPython
pip uninstall numpy
pip install numpy==1.23.5

如果焦距初始化有问题:

Initialization of focal length failed. You can enable manual input by setting ‘KALIBR_MANUAL_FOCAL_LENGTH_INIT’.
[ERROR] [1668944382.174500]: initialization of focal length for cam with topic /color failed

先输入export KALIBR_MANUAL_FOCAL_LENGTH_INIT=1,然后再输入标定命令,会再次出现上述错误,然后手动输入焦距初始值,比如513,不需要太准确。

之后需要等待一段时间,然后会生成标定报告

6. 标定报告

标定结果的质量衡量主要靠重投影误差,我标定的平均重投影误差如下:

reprojection error: [-0.000013, -0.000000] +- [0.439647, 0.382278]
reprojection error: [0.000014, -0.000000] +- [0.446480, 0.360552]

得到的内参为:文章来源地址https://www.toymoban.com/news/detail-442720.html

cam0:
  cam_overlaps: [1]
  camera_model: pinhole
  distortion_coeffs: [-0.007672411193999486, -0.0018797608319184925, 0.00010455529940025013, 0.003016299846222382]
  distortion_model: radtan
  intrinsics: [513.9484564548267, 514.419647214949, 655.6025133839975, 355.2192952629164]
  resolution: [1280, 720]
  rostopic: /zed2i/zed_node/left/image_rect_color
cam1:
  T_cn_cnm1:
  - [0.999984579215046, -0.0002977357189092575, -0.005545510395196279, -0.1198602703850598]
  - [0.00029918561625662975, 0.9999999212808846, 0.00026062652575081026, 0.00013190712977596532]
  - [0.005545432360832611, -0.0002622816436302485, 0.9999845895753918, -0.0028534346937582433]
  - [0.0, 0.0, 0.0, 1.0]
  cam_overlaps: [0]
  camera_model: pinhole
  distortion_coeffs: [-0.00881952628646651, -0.0009790074643185275, 6.896618449740411e-06, 0.0021108942872241914]
  distortion_model: radtan
  intrinsics: [512.4235378267127, 511.74360543501797, 658.7869197242953, 354.8151090771085]
  resolution: [1280, 720]
  rostopic: /zed2i/zed_node/right/image_rect_color

到了这里,关于zed2i相机内参标定的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 相机内参标定理论篇------相机模型选择

    当拿到一款需要标定内参的相机时,第一个问题就是选择那种的相机模型来标定相机。首先对相机类型进行分类,然后针对相机类型选择相机模型。工程上相机类型的划分并不是十分严格,一般来说根据相机FOV可以把相机大概分为以下几类: 长焦相机:=  标准相机:~; 广角

    2024年02月04日
    浏览(46)
  • matlab标定相机内参

    在APP中选择Camera Calibrator,如下: 点击 Add Images,导入拍照图片。标定20张左右就够了,然后角度变一下,但不需要变太大,太大了会影响标定效果。标定板最好在视场中心,且占据较大面积。 修改棋盘格大小为27*27mm(我的A4纸测量是这样) 对于标准相机,菜单栏的option里选

    2024年02月05日
    浏览(51)
  • 2.4.1.1 相机内参标定

    更多内容,请关注: github:https://github.com/gotonote/Autopilot-Notes.git 相机内参标定主要是为了获取相机本身的性质参数,包括相机的焦距,光心以及畸变参数等。 内参的物理意义与相机模型强相关,常用的相机成像模型为小孔模型,等效焦距与光心用数学可表示为一个矩阵 [ f

    2024年02月22日
    浏览(40)
  • Opencv 相机内参标定及使用

    目录 一、功能描述 二、标定板制作 三、图像采集 四、标定内参 方法一:Matlab标定  方法二:C++程序标定 五、使用内参 1.本文用于记录通过 Opencv 进行相机内参标定和对内参的使用来进行图像畸变矫正。         1)相机矩阵:包括焦距(fx,fy),光学中心(Cx,Cy),完

    2024年01月24日
    浏览(40)
  • 【相机标定】opencv python 标定相机内参时不计算 k3 畸变参数

    畸变参数 k3 通常用于描述径向畸变的更高阶效应,即在需要高精度的应用中可以用到,一般的应用中 k1, k2 足矣。 常见的应用中, orbslam3 中是否传入 k3 是可选的,而 kalibr 标定中则只需要传入 k1, k2 。但计算 k3 时的 k1, k2 不等于不计算 k3 时的 k1, k2 ,因此需要学会两种场景下

    2024年02月09日
    浏览(41)
  • 相机标定 >> 坐标系转换@内参、外参

    为了更好的理解标定,首先应熟悉各个坐标系。(坐标系图均取自百度百科) 该坐标系是以图像左上角为原点建立以像素为单位的二维坐标系u-v。(相对坐标系) 图像坐标系是以 O1 (是图像的主点,也即光轴与像平面的交点,一般就是像素坐标系的中点)为原点的二维坐标

    2024年02月12日
    浏览(53)
  • python opencv实现相机内参标定

    使用python opencv 标定相机内参。 (1)从网络上下载一张棋盘格图片,粘贴到word文档上,设定尺寸大小为合适值,作为标定板。 (2)在不同距离,不同角度下用手机相机拍摄棋盘图片。 (3)调用 opencv findChessboardCorners 和 cornerSubPix 函数提取棋盘的角点。 (4)调用 opencv cal

    2024年02月13日
    浏览(55)
  • 【Ubuntu18.04】激光雷达与相机联合标定(Livox+HIKROBOT)(一)相机内参标定

    Livox Lidar + HIKROBOT Camera 联合标定 参考链接:相机雷达标定文档 安装ROS环境,参考笔者的博客:【ROS】Ubuntu18.04安装Ros 参考链接:海康Camera MVS Linux SDK二次开发封装ROS packge过程记录(c++) 海康的相机没有ros驱动,且对linux开发不太友好(但支持windows),因此需要重写了sdk接口

    2024年02月04日
    浏览(49)
  • 机械臂手眼标定ZED相机——眼在手外python、matlab

    目录 1.眼在手外原理 2.附上眼在手外求得手眼矩阵的python代码 3.眼在手外标定步骤 1)打印棋盘格 2)得到hand数据 3)得到camera数据 4.运行python得到手眼矩阵   眼在手外所求的手眼矩阵是基坐标到相机的转换矩阵 其中:         hand为基坐标系下抓夹的位姿,一般从示教器

    2024年02月11日
    浏览(32)
  • 计算机视觉(相机标定;内参;外参;畸变系数)

    目录 一、预备知识 1、坐标系变换过程(相机成像过程) (1)相机坐标系转换为图像坐标系(透视投影变换遵循的是针孔成像原理) (2)齐次坐标的引入原因:(为什么引入齐次坐标???) 2、内参与外参矩阵的构成 3、畸变参数 二、相机标定 1、张正友标定法(光学标

    2024年02月07日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包