zoukankan      html  css  js  c++  java
  • Loitor_产品(二)校准立体摄像机

    [1]Loitor VI Sensor 可以通过 ROS 自自带的双目相机标定工工具 cameracalibrator.py 来标定相机内参,详细过程http://wiki.ros.org/camera_calibration/Tutorials/StereoCalibration

    [2]  下载源码:  https://github.com/loitor-vis

    准备工作:

    • 已知尺寸的大棋盘(8x6)棋盘(7x6) 。 (我选用的是一个7x7棋盘与250mm正方形 )

    • 明亮的5米x 5米区域无障碍物和检查板图案
    • 一个立体相机通过ROS发布左右图像(如果要使用两个独立的相机作为立体相机,必须确保图像具有相同的时间戳)

    注意 :棋盘大小指的是内部角的数量。

    1.安装标定工工具(首先获取依赖关系并编译驱动程序。)

    $ rosdep install camera_calibration
    $ rosmake camera_calibration

    2. 启动VI-Sensor的ROS驱动程序

    参考http://www.cnblogs.com/Jessica-jie/p/6582720.html中的  [2.ROS Package的编译]

    [3.ROS Package的启动]

    3.Camera Publishing

    确保您的立体相机正在通过ROS发布左图像和右图像。 让我们列出要检查图像是否已发布的主题:

    $ rostopic list

    这将显示所有发布的主题,检查是否有一个左右image_raw主题:

     wj@wj-Inspiron-5437:~$ rostopic list
    /camera/left/image_raw
    /camera/left/image_raw/compressed
    /camera/left/image_raw/compressed/parameter_descriptions
    /camera/left/image_raw/compressed/parameter_updates
    /camera/left/image_raw/compressedDepth
    /camera/left/image_raw/compressedDepth/parameter_descriptions
    /camera/left/image_raw/compressedDepth/parameter_updates
    /camera/left/image_raw/theora
    /camera/left/image_raw/theora/parameter_descriptions
    /camera/left/image_raw/theora/parameter_updates
    /camera/right/image_raw
    /camera/right/image_raw/compressed
    /camera/right/image_raw/compressed/parameter_descriptions
    /camera/right/image_raw/compressed/parameter_updates
    /camera/right/image_raw/compressedDepth
    /camera/right/image_raw/compressedDepth/parameter_descriptions
    /camera/right/image_raw/compressedDepth/parameter_updates
    /camera/right/image_raw/theora
    /camera/right/image_raw/theora/parameter_descriptions
    /camera/right/image_raw/theora/parameter_updates
    /image
    /imu0
    /rosout
    /rosout_agg

    4.Running the Calibration Node运行校准节点

    要开始校准,需要加载要校准的图像主题,输入以下命令:

    (如果使用多个棋盘,请为其他棋盘提供多个--size--square选项)

    下面红色部分需要自己修改,将标定棋盘的单元格大大小小转化为单位米。

    wj@wj-Inspiron-5437:~$ cd workspace/catkin_ws
    wj@wj-Inspiron-5437:~/workspace/catkin_ws$ sudo -s
    [sudo] password for wj:
    root@wj-Inspiron-5437:~/workspace/catkin_ws# source devel/setup.sh
    root@wj-Inspiron-5437:~/workspace/catkin_ws# rosrun camera_calibration cameracalibrator.py --size 7x7 --square 0.025 --no-service-check --approximate=0.1 right:=/camera/right/image_raw left:=/camera/left/image_raw right_camera:=/camera/right left_camera:=/camera/left

    命令会打开校准窗口,要突出显示棋盘。(在棋盘存在之前,您将不会在校准窗口中看到任何图像):

    注意事项:

    1.拿着棋盘:确保水平地保持棋盘(更多的棋子水平而不是垂直)。

    2.移动棋盘:为了获得良好的校准,您需要在相机框架中移动棋盘使得:

    • 在视场的左右边缘检测棋盘(X校准)
    • 在视场的顶部和底部边缘检测棋盘(Y校准)
    • 以相对于照相机的各种角度检测棋盘(“倾斜”)
    • 棋盘填充整个视野(尺寸校准)
    • 棋盘格向左,右,上和下倾斜(X,Y和尺寸校准)

    5. 判断标定数据已经采集完成

    当您移动周围的棋盘时,会看到校准侧边栏上的三个条形的长度增加。

    "CALIBRATE"按钮亮起时,就意味着采集完成。

    终端中的显示:

    6.校准结果

    采集完成后,可以进行行内参计算。点击一次CALIBRATE按钮,等待1分钟左右就会出现标定结果:

     校准完成后,您将在终端中看到校准结果,并在校准窗口中看到校准的图像。

    侧边栏将显示棋盘方块的测量精度和尺寸,在上述情况下,棋盘方块为111mm,精度为0.31像素。

    成功的校准将导致真实世界的直边在校正的图像中直线出现。

    校准失败通常会导致空白或无法识别的图像,或者不保存直边的图像。

    通常,低于0.25像素的极线误差被认为是可接受的,并且低于0.1极好。

    还可以使用校准窗口顶部的滑块更改校正图像的大小,如下所示。 尺度为0.0意味着图像的大小被设置为使得整形图像中的所有像素都是有效的。 整形图像没有边界,但是丢弃了来自原始图像的一些像素。 1.0的标度意味着原始图像中的所有像素都是可见的,但是校正后的图像具有黑色边界,其中原始图像中没有输入像素。 推荐的滑块值为0.0。

    7.后续处理

    [1]此时的标定GUI界面面会显示示实时畸变矫正之后的图像,您可以根据显示示图像的矫正效果来评
    估当前标定参数的准确性(如果矫正效果不满意可以重新标定)。

     [2]有关立体相机模型的更多详细信息(包括这些结果的解释),请参见http://opencv.willowgarage.com/documentation/python/camera_calibration_and_3d_reconstruction.htmlimage_geometry

     [3]如果对校准感到满意,请单击提交 (在上面的图片上是按钮具有旧名称UPLOAD ),以将校准参数发送到相机进行永久存储。

    如果要保存校准中使用的校准参数和图像,请单击“ 保存”一切都将在压缩文件夹/如果您对校准感到满意,请单击提交 (在上面的图片上是按钮具有旧名称UPLOAD ),以将校准参数发送到相机进行永久存储。

    如果要保存校准中使用的校准参数和图像,请单击“ 保存”一切都将在压缩文件夹/tmp/calibrationdata.tar.gz中提供。

     

     

  • 相关阅读:
    树莓派交叉编译环境搭建
    手机购买怎样识别假货——一点心得体会分享!
    Ubuntu 网站服务器环境搭建
    转载:Raspberry Pi 树莓派入门
    Python中的条件选择和循环语句
    关于VMare中安装Ubuntu的一些说明
    如何去掉系统快捷方式的箭头和更改登录界面背景图片
    重装系统后,硬盘分区丢失的解决办法
    Python中的字符串
    Python的基础语法
  • 原文地址:https://www.cnblogs.com/Jessica-jie/p/6567638.html
Copyright © 2011-2022 走看看