设置首页收藏本站
开启左侧

皮带线9点标定

[复制链接]
33ffaa 发表于 2025-12-30 12:20:34 | 显示全部楼层 |阅读模式
悬赏4视觉币
本帖最后由 33ffaa 于 2025-12-30 14:11 编辑

单相机标定已经做了畸变校正了,现在运动相关要做9点标定,相机向皮带线运动方向稍微倾斜,皮带线有宽度定义为物理x轴,运动方向定义为y轴,皮带线进去相机视野左下角像素坐标在(200,2996位置),图像像素4096*3000大小,皮带离开相机视野左上角像素靠近(0,0)位置,然后现在想做皮带线运动的物理坐标和图像坐标系的对应,要通过像素row,col计算相应的物体大小,1、物理坐标系原点的定义,在进入图像视野位置还是离开视野位置?2、标定的流程是怎么样的,每次手动移动标定板是否可以代替使用皮带线移动标定板?手动移动的时候每次是否需要固定距离的?还是只要移动,然后测量到原点的距离就可以,9点或者更多点的标定是否?现在的流程是通过人工移动标定板,每次测量x,y到某一个定点的距离,从皮带入相机开始,总共移动25次,按z字形移动,选择每张图像中标定板中心点,然后根据像素点坐标和x,y测量值,进行仿射变换或者透视变换,但是误差一直存在,平均达到12mm,最大误差大达到了70mm,这块的标定怎么做合适,还是说必须通过皮带线带动标定板移动才可以?标定板和皮带线的x,y平行的(通过测量距离将其放置平行)。

奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
大凡光学,专注标定板提供
moonwell0106 发表于 2025-12-30 13:52:03 | 显示全部楼层
1、用标定板相机标定。第一个拍照位置标定板平放在皮带线上。标定完获得相机内参和第一个拍照位置的姿态(外参矩阵)。这个姿态对应的世界坐标系就在第一个拍照位置的标定板原点。知道在那就好,测量尺寸无所谓在哪。
2、标定流程就是常规的相机标定,标定板多个姿态拍照。注意就是第一个位置平放在皮带线上,以后测量会需要这个位置算出的世界坐标系姿态
参考这个算子的示例代码:image_points_to_world_plane。注意点就是set_origin_pose做姿态修正Z轴。标定板表面和待测物体高度差
*  Perform camera calibration (with standard calibration plate).
calibrate_cameras (CalibDataID, Error)
get_calib_data (CalibDataID, 'camera', 0, 'params', CamParam)
* Get reference pose (pose 2 of calibration object 0).
get_calib_data (CalibDataID, 'calib_obj_pose',\
                [0,2], 'pose', WorldPose)
*  Compensate thickness of plate.
set_origin_pose(ObjInCameraPose, 0, 0, 0.0006, WorldPose)
*  Transform image points into world coordinate system (unit mm).
image_points_to_world_plane(CamParam, WorldPose, PointRows, PointColumns, \
                            'mm', PointXCoord, PointYCoord)
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
回复

使用道具 举报

 楼主| 33ffaa 发表于 2025-12-30 14:13:58 | 显示全部楼层
moonwell0106 发表于 2025-12-30 13:52
1、用标定板相机标定。第一个拍照位置标定板平放在皮带线上。标定完获得相机内参和第一个拍照位置的姿态( ...

畸变校正最早只进行单相标定,然后image_points_to_world_plane算子转世界坐标,但是计算结果差的很远,然后才根据机械手运动相关做9点标定,皮带线虽然是单轴,但是有宽度,相当于x轴也变化的符合运动9点
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
回复

使用道具 举报

moonwell0106 发表于 2025-12-30 15:35:32 来自手机 | 显示全部楼层
33ffaa 发表于 2025-12-30 14:13
畸变校正最早只进行单相标定,然后image_points_to_world_plane算子转世界坐标,但是计算结果差的很远, ...

你说的9点无非是计算两组点算投影矩阵,参考那个体育场的例程,理论上精度不会比相机标定高,看看是不是哪里弄错了
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
回复

使用道具 举报

halcon2016 发表于 2025-12-30 20:18:22 | 显示全部楼层
本帖最后由 halcon2016 于 2025-12-30 20:22 编辑

你只是测量尺寸,跟皮带的运动和位置有什么关系,你又不需要绝对位置,你可以手动移动标定板来采集多张图片,你只需要买一个精度高的标定板,用最常规的相机标定算法标定出内外参就可以了,内参就已经代表了镜头畸变,外参就已经代表了透视畸变,用image_points_to_world_plane (CamParam, Pose, Row, Col, 'mm', X1, Y1)就可以算出实际尺寸,不需要再进行额外的畸变校正,不用去考虑什么9点标定了(当然你如果非要采用9点标定也是可以实现的,但注意9点标定前你必须要先进行畸变校正,要进行畸变校正,你还不是得先标定出相机的内外参吗,所以你的这种应用场景,普通的相机标定就足够,你搞9点标定多此一举,简单事复杂化),但需要特别注意的是,只有标定板图像覆盖的范围内的点进行此转换才有精度保证,范围之处的点可能精度较差。请仔细参考halcon中的这个示例measure_perspective_scratch.hdev
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
回复

使用道具 举报

 楼主| 33ffaa 发表于 2025-12-31 08:40:42 | 显示全部楼层
halcon2016 发表于 2025-12-30 20:18
你只是测量尺寸,跟皮带的运动和位置有什么关系,你又不需要绝对位置,你可以手动移动标定板来采集多张图片 ...

是需要绝对位置的,要明确定位到物体在皮带位置的,畸变和9点都做了,但是映射到物理坐标系的时候误差就放大了,然后映射不准确。这个跟图像的倾斜角度有关系没?肉眼可见的图像拍摄的是倾斜的。
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
回复

使用道具 举报

halcon2016 发表于 2025-12-31 12:27:53 | 显示全部楼层
本帖最后由 halcon2016 于 2025-12-31 14:02 编辑
33ffaa 发表于 2025-12-31 08:40
是需要绝对位置的,要明确定位到物体在皮带位置的,畸变和9点都做了,但是映射到物理坐标系的时候误差就 ...

你前面的帖子不是说了要计算物体的长宽吗?计算尺寸你要绝对位置干什么?
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
回复

使用道具 举报

 楼主| 33ffaa 发表于 2026-1-4 12:02:39 | 显示全部楼层
halcon2016 发表于 2025-12-31 12:27
你前面的帖子不是说了要计算物体的长宽吗?计算尺寸你要绝对位置干什么? ...

需要知道绝对位置是皮带终点有不同的轨道口,需要给plc信息每个框子放哪个轨道上的,一张图有多个框子不只一个的,所以做9点标定。
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表