相机外参标定 世界坐标

我们提到标定,很多情况下想到的是用棋盘图,用张正友的方法
在matlab或者opencv里进行标定

然而,这只是第一步,在工业上应用的相机还有一步操作

那就是相机坐标系和世界坐标系的关系

在用棋盘图标定时,提及世界坐标系是不太准确的,因为标定方法是假定的相机坐标系和世界坐标系有一定关系,并且假定了x,y的指向,因此这里可以说它是假定世界坐标系,而非我们所需的世界坐标系。因此这里我们只能得到内参,无法得到准确的外参。

我们想要相机坐标系和世界坐标系产生关系需要五步
①确定世界坐标系的位置:我们可以把相机装到固定位置,然后我们将我们的世界坐标系设置到与相机固连的结构上,这样世界坐标系和相机坐标系之间的转换便已确定。
②设定世界坐标系:设定方法有很多,比较常见的方法是利用激光跟踪仪定位到我们设定的世界坐标系的原点,将该点设置为(0,0,0)点,并设定好x,y,z的指向(这些设定均在跟踪仪完成)。
③获取世界坐标系:此时我们在相机前放置我们的高精度激光标定板(板上有激光的定位点),此时我们用激光跟踪仪测出在之前设定的世界坐标系下,此时板上的定位点的三维信息。
④获取对应图像:同时我们需要用相机拍摄当前场景图像。
⑤标定这样我们便获得了世界坐标系下的图像,以及图像上定位点的世界坐标。有了x,y,z和u,v,我们便可利用opencv或者matlab实现
相机外参标定。

  • 1
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
BP网络相机外参标定代码是一种用于相机标定的算法。它主要针对相机外参参数进行标定,即确定相机世界坐标系中的位置和姿态。 以下是一种可能的BP网络相机外参标定代码的伪代码实现: 1. 导入所需的库和模块 import numpy as np import cv2 2. 定义BP网络的结构 def create_bp_network(input_size, hidden_size, output_size): model = cv2.ml.ANN_MLP_create() model.setLayerSizes(np.array([input_size, hidden_size, output_size])) model.setActivationFunction(cv2.ml.ANN_MLP_SIGMOID_SYM, 1, 1) model.setTrainMethod(cv2.ml.ANN_MLP_BACKPROP, 0.001) return model 3. 定义训练数据 def generate_training_data(image_points, world_points): training_data = [] for i in range(len(image_points)): training_data.append([image_points[i][0], image_points[i][1], world_points[i][0], world_points[i][1], world_points[i][2]]) return np.array(training_data, dtype=np.float32) 4. 进行BP网络相机外参标定 def calibrate_camera_exterior_parameters(image_points, world_points, hidden_size): num_data = len(image_points) train_data = generate_training_data(image_points, world_points) input_size = 2 output_size = 3 # 世界坐标系中的位置(x, y, z) model = create_bp_network(input_size, hidden_size, output_size) # 训练BP网络 model.train(train_data, cv2.ml.ROW_SAMPLE, np.zeros((num_data, output_size), dtype=np.float32)) # 获取标定结果 exterior_parameters = model.getLayerSizes()[0][0:2] return exterior_parameters 其中,image_points和world_points分别是图像坐标系中的特征点和世界坐标系中的特征点的集合。通过将这些特征点输入到BP网络中进行训练,可以得到相机外参标定的结果。 以上是一种可能的BP网络相机外参标定代码的伪代码实现。实际实现中可能还需要进行参数调整和优化,以及对数据进行预处理和后处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值