草庐IT

双目标定

全部标签

深度相机介绍(TOF、RGB双目、结构光参数对比)

一、深度相机的介绍    随着计算机视觉与人工智能技术的飞速发展,采用深度相机进行场景三维重建、目标检测、环境感知等应用越来越广泛,与传统的2D相机不同,深度相机可以通过拍摄空间来获得景深信息,从而获得目标的3D信息,构建3D模型,这也是与普通相机最大的差别。目前的深度相机根据其工作原理可以分为三种:TOF、RGB双目、结构光,在机器人、人机交互以及其他工业领域中等到了广泛应用。如下图所示为三种相机的参数差异对比:相机类型TOFRGB双目结构光测距方式主动式被动式主动式工作原理根据光的飞行时间直接测量RGB图像特征点匹配,三角测量间接计算主动投射已知的编码图案,提升特征匹配效果测量精度最毫米级

【ORB_SLAM2源码解读】EuRoC双目数据集跑通ORB_SLAM2

文章目录ORB_SLAM2框架简介下载ORB_SLAM2源码ORB_SLAM2源码介绍ORB_SLAM2源码编译下载EuRoCDataset将数据集移动到路径下stereo_euroc终端运行命令终端运行效果配置clion运行参数clion运行效果运行效果stereo_euroc运行视频ORB_SLAM2框架简介Tracking-跟踪LocalMapping-地图LoopClosing-回环

使用Autoware标定工具包联合标定相机和激光雷达

前面文章介绍了,安装autoware标定工具包、ros驱动usb相机、robosense-16线激光雷达的使用,本文记录使用Autoware标定工具包联合标定相机和激光雷达的过程。1.ros驱动相机,启动相机;启动激光雷达2.联合录制bag包rosbagrecord-a参照大佬AdamShan的录制建议,时间长一些,调整占位动作3.打开标定工具(此过程中相机、雷达保持开着状态)选择相机节点,然后选择Camera->Velodyne进入界面,根据自己标定板大小设置尺寸(PatternSize),然后重启一下标定工具播放点云rosbagplaybag包名称.bag/lslidar_point_cl

张正友标定法理解

本文参考王坤峰老师《计算机视觉》的课上PPT,如有错误,欢迎指正!一、内参矩阵针孔摄像机示意图如下:由相似三角形(标黄色)可得:使用齐次坐标:(可理解为上式的u,v等式最后一行还有个1=1,然后三个式子左右均乘上一个Z,那么1=1就变成了Z=Z,用w代替左边的Z,即为下式中的w=Z)不过这是一个理想的情况,即相机图像平面平行于XY平面,其原点在主轴与像平面的交点。假设图像平面的原点与Z轴与图像平面相交的点不重合。在这种情况下,我们需要将Pc平移到期望的原点。(向模型中添加新的参数)如上图,A点为理想情况,A’为现在要考虑的偏移情况。偏移的x轴的分量为tu,y轴的分量为tv,那么此时u=f*X/

c++ - 给定四点如何标定相机焦距和平移旋转?

我正在尝试找出相机在世界空间中的焦距、位置和方向。因为我需要它与分辨率无关,所以我将我的图像坐标标准化为[-1,1]范围内的x,并且稍微小一些y的范围(取决于纵横比)。所以(0,0)是图像的中心。我已经校正了镜头畸变(使用k1和k2系数),所以这不会进入画面,除了有时会抛出x或y稍微超出了[-1,1]范围。作为给定的,我在世界空间中有一个已知尺寸(以毫米为单位)的平面固定矩形。矩形的四个角保证是可见的,并且在图像中是手动标记的。例如:std::vectorworldPoints={cv::Point3f(0,0,0),cv::Point3f(2000,0,0),cv::Point3f(

matlab单双目标定提取相机标定中各张标定图片的重投影误差数据

前言  我们在使用matlab工具箱进行相机标定时,有时候想得到每张标定图片的重投影误差和opencv-python中的比较一下。然而,该数据在系统里没有直接输出,我们应该如何获取呢?  参考了《提取相机标定中各张标定图片的重投影误差数据》中的思路给出单双目代码,直接粘贴使用!思路如下:1、提取角点坐标的像素坐标;2、将标定板中角点在世界坐标中的坐标(标定平面为世界坐标系中Z=0所在平面)基于相机参数反计算得到新的像素坐标;3、计算两个对应像素坐标的2范数求和并取均值,即可得到该张标定图片的平均投重影误差。一、单目标定启动单目标定工具箱cameraCalibrator添加照片,选择calibr

OpenCV-Python相机标定:Camera Calibration

1.概述:在使用相机拍照片时,大多数人会考虑拍的好不好看,关注相机中物体坐标的并不多,但是对于地信学科来说,如果能从照片中获取物体的真实位置,对地理信息获取大有帮助,在这里面,十分关键的一步就是相机标定。相机标定的基本原理也是相对简单的,看官网中的一个示意图,很容易发现,物点P(Xw,Yw,Zw),像点(u,v)和相机点三点在同一条线上(红线),如果知道多对物点和像点,画出他们的连线,找到的焦点就是相机的位置,同时还可以根据这些线的走向解算相机的旋转角,旋转角和坐标偏移共同构成了相机的外参。(实际上,这里的像点并不是照片中物体的坐标,而是相机中感光片上的坐标,他们的转化需要一定的几何变化)2.

双目相机国产、非国产统计参数对比分析

双目相机国产、非国产统计参数对比分析ZEDZED是STEREOLABS出品的双目摄像头,广泛应用在科研机构的无人车、协作机械臂上,如图2-1所示。其3D分辨率在Ultra模式下可达到RGB时的分辨率,具体见图2-2,物理尺寸为175×30×33mm,帧率可达100FPS,深度范围为0.3-25m,视场角最大为90°(H)×60°(V)×100°(D),接口为USB3.0,支持ROS驱动。Bumblebee系列Bumblebee系列是美国红外热成像巨头菲力尔公司(FLIRSystem)的一款用于快速构建立体视频及立体重建的双/三目立体视觉组件,凌云光技术作为FLIR在国内的代理商。该系列利用双目

机械臂 手眼标定 手眼矩阵 eye-in-hand 原理、实践及代码

1.手眼标定所谓手眼系统,就是人眼睛看到一个东西的时候要让手去抓取,就需要大脑知道眼睛和手的坐标关系。而相机知道的是像素坐标,机械手是空间坐标系,所以手眼标定就是得到像素坐标系和空间机械手坐标系的坐标转化关系。目前工业上通常使用两种方法进行机械臂的手眼协作。第一种是:手在眼外(eye-to-hand),即摄像机与机械臂分离,应用场景为:机械臂的工作位置固定,工作平面固定,摄像机置于合理的位置以识别机械臂要工作的平面,例如:货物码垛、货物搬运等。第二种是:手在眼上(eye-in-hand),即摄像机布置在机械臂末端,应用场景为:机械臂移动式的工作,例如:果园采摘、货物运转等。总的来说,采用手在眼

手眼标定原理(眼在手上和眼在手外)

手眼标定是指求解出工业机器人的末端坐标系与相机坐标系之间的坐标变换关系,或者工业机器人的基底坐标系与相机坐标系之间的坐标变换关系。手眼标定有两种情形:第一种是相机(眼)固定在机器臂(手)的末端,相机相对于机器臂末端是固定的,相机跟随机器臂移动,这种方式的手眼标定成为Eye-in-hand;第二种是相机(眼)和机器臂(手)分离,相机相对于工业机器人的基座是固定的,机器臂的运动对相机没有影响,这种方式的手眼标定成为Eye-to-hand。1、眼在手上的手眼标定对于Eye-in-hand手眼标定方式,需要求解工业机器人的末端坐标系与相机坐标系之间的坐标转换关系。Eye-in-hand手眼标定的原理示