位置: IT常识 - 正文

摄像头标定--camera_calibration(摄像头标定方法)

编辑:rootadmin
摄像头标定--camera_calibration

参考链接:camera_calibration - ROS Wiki

为什么要标定

普通相机成像误差的主要来源有两部分,第一是相机感光元件制造产生的误差,比如成 像单元不是正方形、歪斜等;第二是镜头制造和安装产生的误差,镜头一般存在非线性的径 向畸变。 在对相机成像和三维空间中位置关系对应比较严格的场合(例如尺寸测量、视觉 SLAM 等)就需要准确的像素和物体尺寸换算参数,这参数必须通过实验与计算才能得到,求解参 数的过程就称之为相机标定。

标定前准备标定板

在执行摄像头标定前,需要先准备一块标定板。

标定板有两种获得方法,第一种是采购成品的标定板,A4纸大小的标定板通常价格在300~400的样子。

如果不想采购,可以使用打印机将下面的文件按照1:1打印在A4纸上,然后贴在一块纯平的版上,例如亚克力板。

推荐整理分享摄像头标定--camera_calibration(摄像头标定方法),希望有所帮助,仅作参考,欢迎阅读内容。

摄像头标定--camera_calibration(摄像头标定方法)

文章相关热门搜索词:摄像头标定是什么意思,摄像头标定的目的,摄像头标定原理,摄像头标定原理,摄像头标定原理,摄像头标定棋盘格,摄像头标定的目的,摄像头标定的目的,内容如对您有帮助,希望把文章链接给更多的朋友!

标定板PDF文件

打印的标定板缺点在于,第一打印机的精度有限,边缘可能会产生模糊,另外就是在粘贴时很难做到极高的平整度,这两项都会对标定结果产生一定的影响,但是优点时便宜易得。

摄像头调焦

标定只针对手动对焦的相机,自动对焦的相机由于焦距变化,难以形成固定的标定参数。

相机在标定前,需要调整好焦距(拧镜头),使成像清晰,并将当前焦距固定住,防止焦距产生变化。

标定摄像头

标定需要用到camera_calibration功能包,可以通过apt方式安装。

sudo apt install ros-noetic-camera-calibration

安装完成后启动相机

roscorerosrun usb_cam usb_cam_node

然后启动标定节点,启动这个节点传入的参数比较多,拆分来看一下

--size 11x8用于指明标定板的内角点数量,如下图每个红圈的位置就是一个内角点,我所使用的GP290标点板有横向有11个内角点,纵向有8个内角点。需要注意的时11x9中的‘x’时小写的英文字母‘x’,不是数学符号‘*’。

使用时根据你所使用标定板实际尺寸修稿

--square 0.02指明标定板中每个方块的边长0.02m,即2cm,根据你所使用标定板实际尺寸修稿

image:=/usb_cam/image_raw,指明图像话名。根据你实际使用的相机驱动节点产生的话题名做修改

rosrun camera_calibration cameracalibrator.py --size 11x8 --square 0.02 image:=/usb_cam/image_raw

标定启动后会出现这样的界面

拿着标定板放在相机视野内,标定板上出现彩色线条则为有效图像,反之无效,需要调整标定板位置。

分别在左右移动(X),直到标定界面上X下方的精度条为绿色,然后依次在上下(Y),远近(Size),倾斜(Skew)方向移动,移动过程尽量缓慢,避免大幅度的移动使相机成像产生拖影。持续移动直到所有的进度条都为绿色。

当所有进度条都变成绿色后,CALIBRATE按钮由灰色变成深绿色,点击CALIBRATE,点击一下后,界面会卡住,此时不要做任何操作,直到运行标定程序的终端输出标定的结果,大概是这样的。

标点完成后再将标定板放在相机视野内,右上角会出现标定结果的线性误差,通常这个值小于0.1或者显示acc都可以认为标定结果可用

点击标定界面的SAVE按钮,标定结果保存在/tmp/calibrationdata.tar.gz这个压缩包中,打开标定结果的压缩包,里面大概是这些内容,最后一个yaml文件就是我们需要的标定结果。

这里需要注意一下,/tmp目录中的文件随时可能会被系统删除,所以最好将标定的结构拷贝到其他目录下。例如我将ost.yaml文件拷贝至用户主目录~中。

使用标定结果

接下来由于需要编写launch文件,建议你创建一个功能包用于存放文件,例如我使用了我自己编写的bingda_tutorials功能包。在功能包中创建一个config目录,将在标定中的获得的ost.yaml文件拷贝至config目录。

cd ~/catkin_ws/src/bingda_tutorialsmkdir configcp ~/ost.yaml ./config/

在功能包的launch目录中创建launch文件,例如命名为bingda_camera.launch

<launch> <node name="usb_cam" pkg="usb_cam" type="usb_cam_node" output="screen" > <param name="video_device" value="/dev/video0" /> <param name="image_width" value="640" /> <param name="image_height" value="480" /> <param name="pixel_format" value="yuyv" /> <param name="camera_frame_id" value="usb_cam" /> <param name="io_method" value="mmap"/> <param name="camera_name" value="my_camera"/> <param name="camera_info_url" type="string" value="file://$(find bingda_tutorials)/config/ost.yaml"/> </node></launch>

在launch 文件中,将camera_name修改为my_camera,camera_info_url指向标定文件存放的路径和位置中。

然后将文件中的camera_name参数修改为和launch文件中的camera_name参数一致

image_width: 640image_height: 480camera_name: my_camera

现在通过编写luanch文件来启动摄像头

roslaunch bingda_tutorials bingda_camera.launch

使用echo将camera_info话题输出,可以看到摄像头的标定参数已经加载在话题中了

rostopic echo /usb_cam/camera_info

矫正图像 如果需要使用标定参数矫正图像,可以使用image_proc这个功能包 首先通过apt方式安装

sudo apt install ros-noetic-image-proc

安装完成后运行它,这里加入ROS_NAMESPACE是由于usb_cam这个功能包中发布的话题都带有了/usb_cam这个命名空间,所以为了保证图像和摄像头参数话题能正常的被image_proc节点接收需要给它加上命名空间/usb_cam

ROS_NAMESPACE=usb_cam rosrun image_proc image_proc

运行后打开两个rqt_image_view,分别订阅原始的/usb_cam/image_raw和畸变矫正后的/usb_cam/image_rect_color图像话题,下图是我使用一个广角相机运行的结果,可以看到畸变矫正效果很明显。

如果你使用的是视场角比较小或者标称无畸变的相机,可能对比效果没有这么明显,但是标定过程和广角是一致的。

本文链接地址:https://www.jiuchutong.com/zhishi/298817.html 转载请保留说明!

上一篇:ICLR 2023 | 达摩院开源轻量人脸检测DamoFD(达摩院 2021)

下一篇:前端开发:颜色代码速查表【英文颜色、HEX(十六进制)格式、RGB格式、十进制】(前端好看的颜色)

  • 华为nova9怎么添加桌面天气(华为nova9怎么添加小组件)

    华为nova9怎么添加桌面天气(华为nova9怎么添加小组件)

  • 荣耀曲屏手机有哪几款(荣耀曲屏手机有哪几款图片)

    荣耀曲屏手机有哪几款(荣耀曲屏手机有哪几款图片)

  • 华为p40来电闪光灯如何设置(华为p40来电闪光灯怎么弄)

    华为p40来电闪光灯如何设置(华为p40来电闪光灯怎么弄)

  • 小米mix3怎么关闭手机提示音(小米MIX3怎么关闭usb充电模式)

    小米mix3怎么关闭手机提示音(小米MIX3怎么关闭usb充电模式)

  • 手机突然显示HD2(手机突然显示无sim卡怎么回事)

    手机突然显示HD2(手机突然显示无sim卡怎么回事)

  • 小米笔记本m3和i5区别(小米笔记本m3怎么样)

    小米笔记本m3和i5区别(小米笔记本m3怎么样)

  • oppo微信视频怎么美颜(oppo微信视频怎么开美颜)

    oppo微信视频怎么美颜(oppo微信视频怎么开美颜)

  • rs和gis的区别(rs与gis与gps怎么区分)

    rs和gis的区别(rs与gis与gps怎么区分)

  • 换手机卡需要关机吗(换手机卡需要关卡吗)

    换手机卡需要关机吗(换手机卡需要关卡吗)

  • 机械键盘键帽是通用的吗(机械键盘键帽是怎么连接的)

    机械键盘键帽是通用的吗(机械键盘键帽是怎么连接的)

  • 手机上dlna是什么意思(手机里dlna是什么意思)

    手机上dlna是什么意思(手机里dlna是什么意思)

  • vlvl是什么牌子的手机(vlvld是什么牌子)

    vlvl是什么牌子的手机(vlvld是什么牌子)

  • 苹果11屏幕哪家供货(苹果11屏幕哪家公司的)

    苹果11屏幕哪家供货(苹果11屏幕哪家公司的)

  • 华为matebookxpro2020款什么时候上市

    华为matebookxpro2020款什么时候上市

  • 苹果8p边框能单独换吗(8p手机边框)

    苹果8p边框能单独换吗(8p手机边框)

  • 红米k30pro屏幕尺寸(红米K30Pro屏幕尺寸)

    红米k30pro屏幕尺寸(红米K30Pro屏幕尺寸)

  • 怎么把好友拉进微信群(怎么把好友拉进钉钉群)

    怎么把好友拉进微信群(怎么把好友拉进钉钉群)

  • 微信登录不上怎么办(微信登录不上怎么办手机号换了)

    微信登录不上怎么办(微信登录不上怎么办手机号换了)

  • 怎样发朋友圈不被折叠(怎样发朋友圈不需要图片)

    怎样发朋友圈不被折叠(怎样发朋友圈不需要图片)

  • 视频怎么把腿拉长(视频怎么把腿拉短)

    视频怎么把腿拉长(视频怎么把腿拉短)

  • 小米8拍星星怎么设置(小米8手机拍星星)

    小米8拍星星怎么设置(小米8手机拍星星)

  • vivoiqooneo支不支持nfc(vivoiqooneo支不支持无线充电)

    vivoiqooneo支不支持nfc(vivoiqooneo支不支持无线充电)

  • onboard nic什么意思(on board什么意思)

    onboard nic什么意思(on board什么意思)

  • 如何用WPS自动生成目录(如何用wps自动生成序号)

    如何用WPS自动生成目录(如何用wps自动生成序号)

  • 小米9有人脸识别吗(小米9a人脸解锁)

    小米9有人脸识别吗(小米9a人脸解锁)

  • gra.exe进程管理 是什么进程 gra进程查询(go进程管理)

    gra.exe进程管理 是什么进程 gra进程查询(go进程管理)

  • B/S架构(b/s架构的正确解释方式)

    B/S架构(b/s架构的正确解释方式)

  • 小规模纳税人减按1%政策文件
  • 私立幼儿园需要纳税吗
  • 公司注销了账本还需保留吗
  • 税控盘扣税缴税分录怎么写
  • 税控盘维护费发票普通发票
  • 企业所得税年报怎么查询
  • 金蝶k3费用发票怎么做
  • 银行贷款印花税是什么意思
  • 开具了红字发票信息表的税额需要转出吗
  • 企业所得税的税率
  • 安全基金提取标准
  • 送员工礼物
  • 失业社保补助金领取条件
  • 国外客户给你寄来礼物怎么感谢
  • 中央空调 付款
  • 房地产预售款收条怎么写
  • 旅行社开具的发票是不都得写旅游服务
  • 所得税会计核算要点及程序
  • 单品销售的方法
  • 销售佣金的税率怎么算
  • 职工福利费和教育费的计提比例
  • 代扣代缴增值税如何申报抵扣
  • 对公账户转账有延迟吗
  • 免税店购物需要满足什么条件
  • 2021新版win10
  • 国家统计局一套表平台网址
  • 自产自用产品的会计处理
  • 中秋佳节发放职工福利的话语
  • 进项发票没认证可以开红字申请单吗
  • php7.3
  • 高德地图定位获取用户手机号码
  • 居民企业应纳税额
  • uniapp使用高德地图创建多边形
  • 境外付款
  • mmdetection optimizer
  • 补缴去年的工会经费计提
  • 废钢收购无进项怎么处理
  • 原材料按实际成本核算需设置的科目包括
  • 先付款后收到发票怎么入账
  • 自动化工具 业务有哪些
  • 内存分配理解是什么
  • php 截取字符
  • mkfifo命令
  • discuz手机标准版
  • python中生成器的作用
  • 货运代理约柜费怎么算
  • 如何禁用笔记本键盘触摸板
  • 代扣员工伙食费
  • 工业企业的会计核算程序
  • 现金日记账怎么填
  • 偶然所得代扣代缴个人所得税会计分录
  • 售后回租的实质
  • 收到知识产权服务费入什么科目
  • 企业对疫情
  • 工程没钱也没有工资
  • 加计抵减10%政策适用范围
  • 航天信息服务费280元如何申报
  • 库存退货怎么做账
  • windows没有无线网络
  • windows字幕软件
  • Red Hat Enterprise Linux 4+Nginx 0.7.47+PHP5.2+MYSQL5.0+Memcache+eAccelerator收
  • 苹果mac外接显示器合上盖子怎么在显示器上继续
  • CentOS救援模式实验笔记详解
  • win 8怎么样
  • windows8开机慢怎么办
  • linux纯文本浏览器
  • win7右下角点击没反应
  • win7系统怎么设置屏保图片
  • win7屏幕刷新率怎么调高
  • Unity-Shader Sublime 自制shader提示插件
  • 手机摇一摇插件
  • 程序员要求高吗
  • javascript闭包详解
  • 完美解决mac环境异常
  • jquery.form
  • unity ngui
  • 什么是12366
  • 国税局信息中心事业编待遇
  • 城镇土地使用税税率
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设