工业 3D 视觉最高精度、最稳定的标定方案我会从0 推导到最终平面方程包含多高度平台定义 → 几何约束 → 联立方程 → SVD 求解 → 测量公式 → Halcon 算子对应全程无跳步、无黑箱、纯数学多高度平台标定 利用 N 个已知高度的标准平面直接建立激光平面约束不依赖标定板外参 R、t直接求解AXcBYcCZcD01、问题分析1.1 相机坐标系Cam原点相机光心Xc向右Yc向下Zc光轴向前深度1.2 激光平面方程待求π:AXcBYcCZcD0(1)(A,B,C)单位法向量D光心到平面的有向距离目标求(A,B,C,D)1.3 多高度平台定义你有K 个固定高度平台Zwh1, h2, ..., hK每个高度h 已知、精确、固定。2. 多高度平台标定的 3 个强约束对任意激光点 (u,v)必须同时满足约束 1点在激光平面上AXcBYcCZcD0约束 2点在已知高度平台上Zwhk约束 3针孔相机投影3. 数学推导1、像素-归一化坐标2、带入光平面方程3、高度平台的关键约束4、联立约束最关键5、构建超定方程组6、SVD分解Halcon 使用SVD 最小二乘解这个方程MUΣVT取V 的最后一列作为最优解βV(:,end)即得到β[A,B,C,D]T最后 Halcon 会自动归一化法向量A2B2C214、多高度平台的几何意义平台 1 高度 h1 → 提供一条直线约束平台 2 高度 h2 → 提供第二条直线约束平台 3 高度 h3 → 提供第三条直线约束三条直线确定唯一平面这就是为什么多高度平台 ≥3 个才能标定算子解释算子数学功能create_calib_data创建标定模型set_calib_data_height设置平台高度 h1,h2,h3find_laser_line提取激光线 (u,v)image_points_to_world_plane计算 x,ycreate_planar_laser_planeSVD 求解 A,B,C,Dget_laser_plane_param获取平面参数intersect_ray_with_plane计算深度 Zc−D/(AxByC)多高度平台标定最终测量公式为什么多高度平台精度远高于棋盘格不计算外参 R、t少一层误差传递精度提升 50%~300%高度 h 是物理真值约束极强不受姿态影响不会出现标定板倾斜误差SVD 直接求解平面数值稳定多高度平台标定 用多个已知高度平面 → 构建直线约束 → 拟合激光平面测量 像素射线与平面求交点核心公式Zc−D/(AxByC)5、多高度标定调试步骤1、准备工作1. 硬件线激光 相机固定好绝对不能动35 个已知高度的标准平台平面度 0.01mm例h10mmh210mmh320mmh430mm平台表面哑光黑避免反光相机已标定内参 畸变2. 软件Halcon加载相机内参准备好激光提取算法高斯拟合 / 重心法2、步骤第 1 步放置第 1 个高度平台h1平台放平稳激光线完整打在平台上激光线清晰、不断裂、无反光拍摄 1 张图第 2 步提取激光线亚像素阈值分割亚像素重心拟合输出一行整齐的 (u, v) 亚像素点第 3 步记录平台高度 h1在 Halcon 中设置plaintextset_plane_height (h1)保存当前所有激光点坐标第 4 步更换第 2 个高度平台h2相机、激光绝对不动只换平台高度激光线依然清晰完整提取激光点 → 保存设置高度 h2第 5 步更换第 3 个高度平台h3同上至少3 个高度才能标定推荐45 个高度精度最高第 6 步Halcon 开始标定算子plaintextcreate_planar_laser_plane (CameraParam, HeightList, LaserPointsList, LaserPlanePose)内部数学把所有高度的激光点代入构建超定方程组SVD 求解平面 A,B,C,D归一化法向量第 7 步查看标定结果现场必查plaintextget_laser_plane_param (LaserPlanePose, A, B, C, D)检查平面残差 0.01mm法向量单位化 A²B²C²1无明显倾斜突变第 8 步验证测量现场必做放一个已知高度的标准块测量高度误差 0.02mm 为合格误差 0.05mm 重新标定
激光三角 光平面标定-多高度
工业 3D 视觉最高精度、最稳定的标定方案我会从0 推导到最终平面方程包含多高度平台定义 → 几何约束 → 联立方程 → SVD 求解 → 测量公式 → Halcon 算子对应全程无跳步、无黑箱、纯数学多高度平台标定 利用 N 个已知高度的标准平面直接建立激光平面约束不依赖标定板外参 R、t直接求解AXcBYcCZcD01、问题分析1.1 相机坐标系Cam原点相机光心Xc向右Yc向下Zc光轴向前深度1.2 激光平面方程待求π:AXcBYcCZcD0(1)(A,B,C)单位法向量D光心到平面的有向距离目标求(A,B,C,D)1.3 多高度平台定义你有K 个固定高度平台Zwh1, h2, ..., hK每个高度h 已知、精确、固定。2. 多高度平台标定的 3 个强约束对任意激光点 (u,v)必须同时满足约束 1点在激光平面上AXcBYcCZcD0约束 2点在已知高度平台上Zwhk约束 3针孔相机投影3. 数学推导1、像素-归一化坐标2、带入光平面方程3、高度平台的关键约束4、联立约束最关键5、构建超定方程组6、SVD分解Halcon 使用SVD 最小二乘解这个方程MUΣVT取V 的最后一列作为最优解βV(:,end)即得到β[A,B,C,D]T最后 Halcon 会自动归一化法向量A2B2C214、多高度平台的几何意义平台 1 高度 h1 → 提供一条直线约束平台 2 高度 h2 → 提供第二条直线约束平台 3 高度 h3 → 提供第三条直线约束三条直线确定唯一平面这就是为什么多高度平台 ≥3 个才能标定算子解释算子数学功能create_calib_data创建标定模型set_calib_data_height设置平台高度 h1,h2,h3find_laser_line提取激光线 (u,v)image_points_to_world_plane计算 x,ycreate_planar_laser_planeSVD 求解 A,B,C,Dget_laser_plane_param获取平面参数intersect_ray_with_plane计算深度 Zc−D/(AxByC)多高度平台标定最终测量公式为什么多高度平台精度远高于棋盘格不计算外参 R、t少一层误差传递精度提升 50%~300%高度 h 是物理真值约束极强不受姿态影响不会出现标定板倾斜误差SVD 直接求解平面数值稳定多高度平台标定 用多个已知高度平面 → 构建直线约束 → 拟合激光平面测量 像素射线与平面求交点核心公式Zc−D/(AxByC)5、多高度标定调试步骤1、准备工作1. 硬件线激光 相机固定好绝对不能动35 个已知高度的标准平台平面度 0.01mm例h10mmh210mmh320mmh430mm平台表面哑光黑避免反光相机已标定内参 畸变2. 软件Halcon加载相机内参准备好激光提取算法高斯拟合 / 重心法2、步骤第 1 步放置第 1 个高度平台h1平台放平稳激光线完整打在平台上激光线清晰、不断裂、无反光拍摄 1 张图第 2 步提取激光线亚像素阈值分割亚像素重心拟合输出一行整齐的 (u, v) 亚像素点第 3 步记录平台高度 h1在 Halcon 中设置plaintextset_plane_height (h1)保存当前所有激光点坐标第 4 步更换第 2 个高度平台h2相机、激光绝对不动只换平台高度激光线依然清晰完整提取激光点 → 保存设置高度 h2第 5 步更换第 3 个高度平台h3同上至少3 个高度才能标定推荐45 个高度精度最高第 6 步Halcon 开始标定算子plaintextcreate_planar_laser_plane (CameraParam, HeightList, LaserPointsList, LaserPlanePose)内部数学把所有高度的激光点代入构建超定方程组SVD 求解平面 A,B,C,D归一化法向量第 7 步查看标定结果现场必查plaintextget_laser_plane_param (LaserPlanePose, A, B, C, D)检查平面残差 0.01mm法向量单位化 A²B²C²1无明显倾斜突变第 8 步验证测量现场必做放一个已知高度的标准块测量高度误差 0.02mm 为合格误差 0.05mm 重新标定