首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏机器视觉那些事儿

    【相机标定篇】Halcon标定助手逐步使用(2

    Halcon标定助手逐步使用 1 Step: 打开标定助手。 ? 2 Step: 选择标定描述文件 方法一:此步骤可以点击描述文件右侧浏览图片选择halcon自带的描述文件。 ? 2. 打开对应算子窗口,配置各参数,各参数含义上篇文章已经介绍,可以翻阅。 ? 3.点击描述文件最右面靠近边框有个文件夹形状的图标,选择上述描述文件。 本篇选择标注助手30*30的标定描述文件。 ? 3 Step: 切换至标定标定,加载标定图像。 ? 加载图像有两种,一种是加载离线图像文件,另一种是在线图像采集。 需要注意的几点,标定板与采集的图片质量要好,相机采集标定图片需要至少10张,尽可能多覆盖多个方向,视野至少1//3。 本文加载官方自带标定图片后,如下图。 ? 方式二:图像源->图像采集助手。 警告级别选择70即可,移除最后一张“标定点提取失败”状态的图片。 ? 品质没有超过警告级别的70%都为正常的。 5 Step: 标定。 点击“标定”按钮,会自动切换到“结果”选项卡。

    11.2K51发布于 2019-06-03
  • 来自专栏祥的专栏

    摄像机标定(2) 张正友标定推导详解

    ---- => 2. 正戏 => 2.1. 因此,H有8个未知量待解 ( 可以分析一下, A 有5个未知量,后面的 [r1,r2,t] 有三个未知量,一共8个) 。 (X,Y) 作为标定物的坐标,可以由设计者人为控制,是已知量 。 Step.2 利用约束条件求解内参矩阵A 从Step1可知,应用4个点我们可以获得单应性矩阵H。但是H是内参阵和外参阵的合体。我们想要最终分别获得内参和外参。所以需要想个办法,先把内参求出来。 上式中的 h1,h2 是通过求解单应性矩阵 H 求出来的,所以未知量只剩下 内参矩阵A 。 ( 如果用2张照片进行标定,就要舍去一个内参 r=0 ) 当然这只是张正友标定法不断变换标定板方位的 第一个原因 。

    1.9K10发布于 2020-03-10
  • 来自专栏全栈程序员必看

    OpenCv相机标定——圆形标定标定

    OpenCv相机标定——圆形标定标定 0.前言 1.标定图案 2.OpenCv标定 3.标定结果分析 0.前言   OpenCv中,相机标定所使用的标定图案分为棋盘格、对称圆形及非对称圆形特征图、ArUco 本文主要介绍如何使用圆形标定图案(对称和非对称)完成相机的标定,并将OpenCv标定结果与Halcon标定结果进行对比分析。 图2为本文使用的标定板,其为高精度铝制标定板,精度为±0.01mm,是200x200mm的halcon标准标定板,圆的直径为12.5mm,圆心距为25mm。 2.OpenCv标定   本文采用的标定为离线标定,先由相机采集N幅图像,再由标定程序读取图像。为了保证标定精度,建议采集10幅或更多的视图,尽量使得标定板的移动范围覆盖相机视野。    (OpenCv标定过程中采用了5项畸变系数k1,k2,p1,p2,k3;Halcon标定中只考虑径向畸变k,表中没有列出)   需要指出的是,实验数据来源于对同一组图片的标定

    6.9K20编辑于 2022-09-02
  • 来自专栏全栈程序员必看

    深度学习 相机标定_相机标定

    相机标定 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/140339.html原文链接:https://javaforall.cn

    95540编辑于 2022-09-02
  • 来自专栏点云PCL

    基于消失点的相机自标定2

    (1) 相机是通过透视投影变换来将3D场景转换为2D图像。 图11 利用由噪声图像标定的摄像机模型估计外部参数的误差。 使用两个真实的VPs进行相机校准 2个VPs校准用一个真实的相机进行测试。根据图像分三步计算VPs的位置。 [2] Michael Bosse, Richard Rikoski, John Leonard, and Seth Teller. Computer Vision, 4(2):127–140, 1990. [5] X. Chen, J. Davis, and P. Slusallek. Multiple View Geometry in Computer Vision – 2nd Edition.

    1.4K30编辑于 2022-02-10
  • 来自专栏深度学习和计算机视觉

    相机标定究竟在标定什么?

    分为以下内容: 相机标定的目的和意义 相机成像过程的简化与建模 针孔相机模型的数学描述 标定针孔相机模型的参数 相机标定的目的和意义 我们所处的世界是三维的,而照片是二维的,这样我们可以把相机认为是一个函数 标定板的第二大作用是把标定板中的角点变换到相机坐标系下的坐标 。对于标定的初学者来说,很容易忽略的一点是标定板是具有标定板坐标系的。 换句话说,标定板中的每个角点,在标定板坐标系下的位置是确定并且是已知的。 而标定板坐标系变换到相机坐标系的变换矩阵,我们称它的元素为外参数,所以在我眼中,相机标定的外参根本就是标定内参的副产品,它会随着标定板的摆放不同而不同,由标定板坐标系变换到相机坐标系的变换矩阵可以由下式表达 如果用OpenCV或Matlab标定工具箱进行标定,需要给出棋盘格的物理尺寸,这其实就是在建立标定板坐标系,从测量的角度讲,标定板的精度是相机标定精度的基准,是误差传递链上的第一个环节。

    1.6K40编辑于 2022-04-06
  • 来自专栏深度学习和计算机视觉

    相机标定——标定图片拍摄规范

    相机标定是进行视觉测量和定位的基础工作之一,标定参数准确与否直接关系到整个系统的精度,为此根据自己项目中的经验及参考相关的商用视觉软件的做法将相机标定过程中标定图片的获取过程中需要注意的问题总结如下: 标定板拍摄的张数要能覆盖整个测量空间及整个测量视场,把相机图像分成四个象限(如图1所示),应保证拍摄的标定板图像均匀分布在四个象限中,且在每个象限中建议进行不同方向的两次倾斜,图2是一组推荐摆放方式图片 圆或者圆环特征的像素数尽量大于20,标定板的成像尺寸应大致占整幅画面的1/4 用辅助光源对标定板进行打光,保证标定板的亮度足够且均匀 标定板成像不能过爆,过爆会导致特征轮廓的提取的偏移,从而导致圆心提取不准确 标定板特征成像不能出现明显的离焦距,出现离焦时可通过调整调整标定板的距离、光圈的大小和像距(对于定焦镜头,通常说的调焦就是指调整像距)。 标定过程,相机的光圈、焦距不能发生改变,改变需要重新标定。 图1 图像的四象限位 图2 标定板合适摆放位置 End 声明:部分内容来源于网络,仅供读者学术交流之目的。文章版权归原作者所有。如有不妥,请联系删除。

    1.9K21编辑于 2022-05-22
  • 来自专栏机器视觉那些事儿

    【手眼标定篇】九点标定

    综合考虑调试难度、标定精度等因素,9点法标定是工业上使用广泛的二维手眼标定,常用于从固定平面抓取对象进行装配等工业应用场景。 2 相关坐标系 手眼标定的熟练使用必须理解所涉及到的各个坐标系。 ? 图像坐标系 相机坐标系 标定板坐标系 ? 工具坐标系 机械手基础坐标系 ? 3 标定原理 通常眼在手上,相机拍照与标定的位置时一样的,那么眼在手上和手眼分离的标定过程都是一样的。 (Row,Column,Row_robot,Column_robot,HomMat2D) *求解变换矩阵,HomMat2D是图像坐标和机械手坐标之间的关系 ***求解*** affine_trans_point _2d(HomMat2D,Row2,Column2,Qx,Qy) *由像素坐标和标定矩阵求出机器人基础坐标系中的坐标 5 改进点 一般项目没什么特殊要求,可以按照以上9点法走一遍即可。

    21.7K22发布于 2021-06-15
  • 来自专栏具身小站

    机械臂标定指南(手眼标定

    2. 机械臂末端位姿 (T_base_flange)2. 相机识别标定板位姿 (T_cam_marker) 异步记录会引入严重噪声。 ⑦ 算法解算 调用如 cv2.calibrateHandEye() 函数,输入所有位姿数据,求解 T_base_cam。 根据运动类型选择合适的算法参数。 使用 OpenCV 的 calibrateHandEye 函数(对于眼在手外,R_gripper2base 传入末端姿态的旋转部分,t_gripper2base 传入平移部分;R_target2cam 和 t_target2cam 传入标定板姿态)。

    71810编辑于 2026-02-04
  • 来自专栏全栈程序员必看

    Halcon—Realsense相机标定+手眼标定

    使用软件:Halcon18.05(默认安装好任一版halcon) 使用设备:Intel Realsense 435+AUBO机械臂 完成功能:相机标定、eye-in-hand手眼标定 1.准备标定板 MarkDist(单位为米) caltab.descr是标定板描述文件 caltab.ps为标定板生成文件,没有ps用Adobe PDF打开就能看到如下图1-2所示的标定板,可以直接打印。 如果买了标定板直接用标定板的数据就行,但还是需要用这个生成一个标定板的描述文件,也就是caltab.descr 点filename.write可以看到保存路径 图1-2 1.1.2.点插入 ,运行,在刚刚的保存路径下找到生成的caltab.descr 1.2有标定板 按照已有标定板尺寸生成caltab.descr——标定板描述文件,之后操作与1.1.2相同 2.相机标定 助手–打开新的Calibration 在结果中摄像机参数需要记录下来,之后会用到,摄像机位姿需要点击“保存”保存成 .dat 格式的文件 3.手眼标定 标定板不动,移动机械臂,拍摄15+张图片,覆盖多个位姿,并记录每张图片拍摄时机械臂的位姿

    6.4K22编辑于 2022-09-06
  • 来自专栏机器视觉那些事儿

    【相机标定篇】halcon自标定(3)

    在项目中,偶尔会遇到由于产品形状、拍摄位置等原因导致标定板很难放置的情况,此时可以考虑使用halcon自标定算法来标定相机。由于自标定可以在不使用用标定板情况下,进行畸变矫正。 论文下载地址: 链接:https://pan.baidu.com/s/118YDti24nvbnsz2CbOJa1Q 提取码:5t67 从论文中可知自标定的一般流程:轮廓检测、共线线段连接、剔除干扰线、 在halcon我们可以对自标定流程梳理为两大步骤:1.检测直线轮廓XLD 2.图像畸变矫正,如下图所示。 ? 2. 算法功能:径向畸变自校正*2. ', 'window', 0, 0, 'black', 'true') *----------------(2)矫正畸变图像=----------------* i 相机自标定,根据边缘求取内参radial_distortion_self_calibration

    8.4K41发布于 2019-06-03
  • 来自专栏科学计算

    IMU标定(三)确定误差的标定

    一、确定性误差公式  我们将第一节给出的IMU确定性误差直接拿过来,轴偏角公式如下:  尺度因子:  零偏: 二、工具标定  这里我们使用开源的imu_tk进行标定,下载:https ( raw_samp ); residuals[0] = _T2 ( g_mag_ ) - calib_samp.norm(); return true; }  其次,我们进行陀螺仪的标定 ; }  最后,对温度进行直线拟合,标定加速度计与陀螺仪的三轴k,b参数。 /test_imu_calib data/imu.txt data/imu_temperature.txt  加速度计的标定结果: ?  陀螺仪的标定结果: ?  温漂标定结果: ?   至此,IMU的整个标定已经完成,下一期我们开始单目及双目摄像头的标定

    3.9K40发布于 2020-12-16
  • 来自专栏科学计算

    IMU标定(二)随机误差的标定

    二、工具标定   这里我们使用开源的imu_utils进行标定,读者可以从github直接git clone。 = calcSigma2( _Q, _N, _B, _K, _R, _tau ); T _dsigma2 = T( calcLog10( _sigma2 ) ) - T( calcLog10 ( sigma2 ) ); residuals[0] = _dsigma2; return true; } template< typename T > T calcSigma2 生成的bmx160.yaml文件在imu_utils/data下,打开yaml文件我们可以看到陀螺仪与加速度计的三轴噪声以及随机游走,至此标定完成。 ? IMU标定系列文章 1.

    2.8K20发布于 2020-12-02
  • 来自专栏智能算法

    摄像机标定和立体标定

    将上面代码复制到自己的工程之后还需要对工程或者编译环境做一下设置 VC6下的详尽设置可以见代码的注释(修改工程的属性) VS2008中的设置也可以参照代码注释中VC++2005的设置(修改编译环境) 2. 点击Image names, 命令行窗口会提示你输入图片的basename以及图片的格式(比如你图片文件名是right1, right2, …, right10,basename就是right),然后Matlab 提取角点2 在提取第一幅图的时候命令行窗口可能会提示你输入方格大小,这里输入你方格的实际大小就行,比如我方格是27mm,就输入27。 实际视差大约是(64-mind-1)*256=1163, 基本是对的, 后面一项修正值在通常情况下可以忽略 目前我还是不是很清楚立体坐标系原点和尺度,但是从这三个点的z坐标可以大致看出这三个物体的距离差大概是1:2: f=1&t=4603帖子之后,也曾经尝试过现用cvCalibrateCamera2单独标定(左右各20幅图),得出的结果基本和Matlab单独标定的相同,然后再在cvStereoCalibrate中将参数设成

    2.5K81发布于 2018-04-02
  • 来自专栏C++/python记录日志

    相机标定

    矫正径向畸变前后的坐标关系为: x_c=x(1+k_1r^2+k_2r^4+k_3r^6) y_c=y(1+k_1r^2+k_2r^4+k_3r^6) 因此,为了矫正径向畸变,我们需要三个参数k_1,k _2,k_3。 切向畸变需要两个额外的畸变参数来描述,矫正前后的坐标关系为: x_c=x+[2p_1y+p_2(r^2+2x^2)] y_c=y+[2p_2x+p_1(r^2+2y^2)] 因此,为了矫正切向畸变,我们需要两个参数 : u=u_0+\frac{x_c}{d_x},v=v_0+\frac{y_c}{d_y} 化为齐次坐标表示形式可得: 最后回到一整个流程(忽略透镜畸变): 棋盘 棋盘是一块由黑白方块间隔组成的标定板 ,我们用它来作为相机标定标定物(从真实世界映射到数字图像内的对象)。

    2.9K30编辑于 2022-12-26
  • 来自专栏Pou光明

    5_相机标定2_calibrateCamera()与内外参

    使用工业相机标定后,感觉图像畸变很小,所以买了一个USB免驱的摄像头(100块),货到之后再标定相机一次看看效果。相机内参矩阵可以让我们将3D坐标转为2D图像坐标。 TermCriteria::COUNT + TermCriteria::EPS, 30, DBL_EPSILON) ); objectPoints: imagePoints: 使用标定标定时 4:k1,k2,p1,p2. 5:k1,k2,p1,p2,k3. 五元素形式通常只适用于鱼眼透镜。 它们说明在每幅图片中标定板相对于相机的姿态和位置。 标志位变量是用来做某些细微的控制使得标定能够完成的更好。 ps:觉得还是旧版学习OpenCV好一些。写这么多,都是在介绍函数接口如何使用。

    1.5K10编辑于 2024-03-20
  • 来自专栏全栈程序员必看

    halcon手眼标定

    手眼标定最简单的方法:九点标定 九点标定的目的: 建立Mark点的图像坐标与其在机械手坐标系下的仿射变换矩阵,利用求得的仿射变换矩阵,可以把Mark点的图像坐标转成物理坐标,进而控制机械手完成定点抓取任务 halcon九点标定算子 %Mark点像素坐标 area_center(SortedRegions,Area,Row,Column) % Column_robot := [275,225,170,280,230,180,295,240,190 ] %机械手末端运动到9点的列坐标 Row_robot := [55,50,45,5,0,-5,-50,-50,-50] %机械手末端运动到9点的行坐标 vector_to_hom_mat2d( Row,Column,Row_robot,Column_robot,HomMat2D) %求解变换矩阵,HomMat2D是Mark点像素坐标和机械手坐标之间的关系 affine_trans_point _2d(HomMat2D,Row2,Column2,Qx,Qy) %由像素坐标和HomMat2D矩阵求出机械手坐标系中的坐标 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn

    1.8K10编辑于 2022-08-14
  • 来自专栏计算机视觉life

    实战 | 相机标定

    相机标定方法分类 相机标定方法有:传统相机标定法、主动视觉相机标定法、相机自标定法。 标定方法 优点 缺点 常用方法 传统相机标定法 可使用于任意的相机模型、 精度高 需要标定物、算法复杂 Tsai两步法、张氏标定法 主动视觉相机标定法 不需要标定物、算法简单、鲁棒性高 成本高、设备昂贵 这种标定方法需要配备精准的控制平台,因此成本较高。 分层逐步标定法是先对图像的序列做射影重建,在重建的基础上进行放射标定和欧式标定,通过非线性优化算法求得相机内外参数。 对于标定图像数量,位姿越多,标定结果也会越精确,建议在10到20幅之间。按照上图中的1、2、3进行相机标定操作。 1.添加标定图像后显示界面如下图: ? 2.相机标定后显示界面会显示相机与标定板之间的位置关系。 ? 3.相机参数输出 camera calibrator应用程序相机标定参数输出如图所示: ?

    2.5K41发布于 2019-05-27
  • 来自专栏3D视觉从入门到精通

    再谈「相机标定

    前言 计算机视觉中,相机标定的重要性不言而喻,前面在公众号【视觉IMAX】中写过有多篇文章是关于相机标定的,包括一分钟详解OpenCV之相机标定函数calibrateCamera(),从零开始学习「 张氏相机标定法」,但是,今天还想再次聊一聊相机标定,进一步加深对其基本方法与概念的理解。 一 基本问题 相机内外参数标定步骤主要包括如下: 考虑相机线性模型: ? 解算mij项; 分解内、外参数; 考虑非线性项。 Zhang方法:由张正友提出,OpenCV等广泛使用。 Zhang方法标定步骤: (1)对一个pose,计算单应性矩阵; (2)有三个以上pose,根据各单应矩阵计算线性相机参数; (3)使用非线性优化方法计算非线性参数。

    96010发布于 2020-12-11
  • 来自专栏全栈程序员必看

    手眼标定 matlab源码,经典手眼标定算法matlab

    【实例简介】 经典手眼标定算法matlab代码,程序作者为 Christian Wengert 。 实例截图】 【核心代码】 1cdffffa-57b3-468c-8073-d4f45202c11a └── calib_toolbox_addon ├── addDistortion.m ├── angle2Vect.m ├── averageRotation.m ├── averageTransformation.m ├── backprojectDistorted.m ├── crossprod.m ├── dcm2q.m ├── distToLine.m ├── draw2DPoints.m ├── example1 │ ├── 0000.bmp │ ├── 0001.bmp │ ├── 0002.bmp │ ├── 0003.bmp │ ├── 0004.bmp │ ├── 0005.bmp │ └── 0006.bmp ├── example2 │ ├── 0000.ppm │

    94620编辑于 2022-08-26
领券