Unity3d中使用Apriltag单目测距

Hr为Apriltag码高度,单位CM
Lr为Apriltag码到相机焦点的距离,单位CM
Hv为Apriltag码在照片的高度,单位可为像素,在Unity中transform中的localScale值
Lv为相机的焦距

注意为了减小误差,Apriltag码应尽量位于相机的中轴线上,Apriltag码应与相机中轴线垂直。

第一步,求相机焦距

已知:
Hr为4.65cm(用卷尺直接测量)
Lr为40cm(用卷尺直接测量,起点为摄像头的透镜中心处,差不多就行)
Hv为2.276(transform中的localScale值)

Lv=Lr*Hv/Hr=(Apriltag码到透镜中心距离)*(localScale值)/(Apriltag码宽度)=19.578494623655

第二步,求相机到Apriltag码的实际距离。
经过第一步已经求出焦距Lv,真实距离Lr = Lv*Hr/Hv=(相机焦距)*(Apriltag码宽度)/(localScale值)
如Hv=3.025(transform中的localScale值)
Lr=19.578494623655*4.65/3.025=30.095,即在30cm附近,考虑到各种误差,精度还是很不错的。

第三步,求Apriltag码在相机中轴线垂直平台的移动距离。

原理:Apriltag真实尺寸与照片尺寸之间的比值,乘以二维码在照片上的移动距离,即Mr=Mv * Hr/Hv。实际应用时需要设置某个点为原点,先把移动距离归0。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值