单目视觉定位测距的两种方式[通俗易懂]

单目视觉定位测距的两种方式[通俗易懂]单目定位和双目定位的选择,我觉得主要还是成本和时间的考虑。之前也尝试过双目定位,感觉要更精准些,但双目测距需要对两幅图像进行图像变换和极线匹配,稍微耗时了一些。这几天尝试了一下单摄像头进行测距定位,主要有两个思路:  1.定位测量插值得到每个像素的实际坐标    该方法总觉得有很大的问题:一个是摄像头安装后就必须固定不动,稍微的旋转都会导致之间测量的像素点对应的坐标偏移。另一个是人工测量的

大家好,又见面了,我是你们的朋友全栈君。

  单目定位和双目定位的选择,我觉得主要还是成本和时间的考虑。之前也尝试过双目定位,感觉要更精准些,但双目测距需要对两幅图像进行图像变换和极线匹配,稍微耗时了一些。这几天尝试了一下单摄像头进行测距定位,主要有两个思路:
  1.定位测量插值得到每个像素的实际坐标  
  该方法总觉得有很大的问题:一个是摄像头安装后就必须固定不动,稍微的旋转都会导致之间测量的像素点对应的坐标偏移。另一个是人工测量的工程量之大,对于1024*1280像素的摄像头,准确的测量就应该是130万个点,而就算我们按米来分割地面,10*20m2的地面也要测量200个点,就算可以通过算法自动识别,做200个标志就算测量画线也是令人头疼的。考虑到针孔成像模型的等比例放大,我们通过直接打印布满等距阵列圆点的纸来进行测量。
  其原理如下:
        几何
  根据相似三角形的等比例关系,有:


EGBD=AGAD  




GFDC=AGAD  
   

  同时又有:

EGEB=AEAB  
  

  通过等式传递有:

EGBD=GFDC=AEAB  
  

  如此一来,可以在较高距离测量等距阵列点(如标定板),经过插值,再进行等比例放大即可得到每个像素点对应的实际地面的坐标。
  
  处理的示意图如下:



几何

  这样操作可以省去人工在地面测量绘画标志。测量好纸上的点距后再进行H/h的放大就可以得到像素对应实际地面的坐标。但实际操作过程中遇到的问题是图像上边缘的梯形失真过于严重,导致打印纸上的标志点不容易识别,因此还需要准备不同距离的等距阵列圆点图。

  2.根据相似三角比例计算出对应像素点的实际坐标  
  这个方法对摄像机标定的要求比较高,同时要求镜头本身造成的畸变就比较小,但总体来说这种方法的可移植性和实用性都较强。其主要的思路还是小孔成像的模型。
   模型一:假设测量的点都在Y轴上,此时无X轴分量  
这里写图片描述
  该图主要有三个坐标系,分别是图像坐标系 UO1V ,以 O2 为原点的摄像机坐标系,世界坐标系 XO3Y 。(相关的内容我就不复述了,不懂的百度和知乎上都有,搜搜相机标定的知识)
  我们可以看到,世界坐标中的点通过光轴成像在图像坐标的点是成比例的,其比例媒介就是相机镜头中心在图像上的像素点O1与其在世界坐标中的实际点M,通过推导可以求解 O3P 的长度。(注意,由于相机安装一般都有误差,所以镜头中心点不一定是图像的中点,所以ucenter,vcenter不一定为0) 

  一步步推导如下:
  已知量:摄像机高度H
      图像坐标中心对应的世界坐标点与摄像头在y轴上的距离 O3M
      镜头中心点的图像坐标 (ucentervcenter)
      测量像素点的图像坐标 P1(u0       
      实际像素的长度xpix
      实际像素的宽度ypix。
      摄像头焦距f
      (镜头中心点图像坐标,焦距,像素长宽都可以由标定直接求解出来,通过halcon的标定助手可以很容易的得到,openCV也有相应的程序)
       α=arctan(HO3M)

       γ=arctan(O1P1×ypixf)=(vvcenter)ypixf

       β=αγ

       O3P=Htan(β)
  
  这样就可以得到垂直方向的坐标  Y=O3P
  
   模型二:假设测量的点有X轴、Y轴分量  

  针对以下模型图我们将进行说明:
这里写图片描述
  一步步推导如下:
  已知量:摄像机高度H
      图像坐标中心对应的世界坐标点与摄像头在y轴上的距离 O3M
      镜头中心点的图像坐标 O1(ucentervcenter)
      测量像素点的图像坐标 P1(u0Q1uv       
      实际像素的长度xpix
      实际像素的宽度ypix
      摄像头焦距f
(y轴方向计算和上一个模型相同,x轴计算是y轴坐标通过比例计算得到)
       α=arctan(HO3M)

       γ=arctan(O1P1×ypixf)=(vvcenter)ypixf

       β=αγ

       O3P=Htan(β)
  
  这样就可以得到垂直方向的坐标  Y=O3P

       O2P1=(vvcenter)xpix)2+f2

       O2P=Hsin(β)

  由 PQP1Q1=O2PO2P1  得到  PQ=O2P×P1Q1O2P1
  
  这样就可以得到垂直方向的坐标  X=PQ
   模型三:假设测量的点有X轴、Y轴分量,且物体有高度h    
  
  针对以下模型图我们将进行说明:
这里写图片描述
  由于物体有高度,因此还需要进行一个投影变换,其实也还是相似变换 
  
  设真实的坐标 (X,Y) ,模型二求出的坐标 (X,Y)
  
  则 (X,Y)=(X,Y)×(1hH)
   模型评价    

  实际操作过程中,发现该模型在畸变较小的图像中误差较小,且在矫正畸变后的图像中测量的图像坐标可以得到更准确的值。另一方面,在实际操作过程中,发现由于镜头有稍微歪曲或者内置感光区域安装歪了,可能导致我们找不到真正的X,Y轴,所以在测量验证的时候会有稍许误差,但即便如此,在10米的定位下,误差也不到5%,效果还是可以接受的。如果有人知道如何找到真正的X,Y轴,请博客留言告知一下,先谢谢了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/147648.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • vlanmuxld_vlan互通

    vlanmuxld_vlan互通无论如何,不许退缩,不许不努力,决不许放弃!文章目录一、VLAN聚合二、MUXVLAN三、QinQ四、VLANMapping五、拓扑六、基本配置与分析七、设备完整配置VLAN特性映射、聚合、MUXVLAN、QinQ;DHCP,DHCP中继,NAT,ACL。一、VLAN聚合聚合VLAN产生的背景:不同VLAN隔离二层通信(主要目的划分广播域),为了实现互通需要借助三层通信,这样每个VLAN都属于一个子网,需要自己的IP子网和网关,随着网络中VLAN数量的增加,IP子网也会剧增,但是实际每.

    2022年8月10日
    5
  • 什么是bs模型_cs模型人物看不见

    什么是bs模型_cs模型人物看不见C/S结构,即Client/Server(客户机/服务器)结构,是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势。早期的软件系统多以此作为首选设计标准。(用的是ip,tcp/udp通信协议)B/S结构,即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种…

    2022年9月17日
    1
  • Python实现“EMD\EEMD\VMD+Hilbert时频图”与“CWT小波时频图”

    Python实现“EMD\EEMD\VMD+Hilbert时频图”与“CWT小波时频图”Python实现“EMD\EEMD\VMD+Hilbert时频图”与“CWT小波时频图”  信号处理中常需要分析时域统计量、频率成分,但不平稳信号的时域波形往往复杂、无序,且傅里叶变换得到的频率成分是该时间段内的平均频率,无法分析频率随时间变化的情况。随后,短时傅里叶变换(STFT)、小波变换(WT)、希尔伯特变换(HHT)等时频分析方法相继而出。  其中,STFT受时间窗口的影响、WT则需要自己选择小波、HHT在变换时需要预先将信号分解为平稳信号。由于网上只有CWT小波时频图的python代码,笔者自

    2025年6月14日
    3
  • 第一范式、第二范式及第三范式的定义与举例

    第一范式、第二范式及第三范式的定义与举例第一范式存在非主属性对码的部分依赖关系R(A,B,C)AB是码C是非主属性B–>CB决定CC部分依赖于B第一范式定义:如果关系R中所有属性的值域都是单纯域,那么关系模式R是第一范式的那么符合第一模式的特点就有1)有主关键字2)主键不能为空,3)主键不能重复,4)字段不可以再分例如: StudyNo  |  Name  |  Sex  

    2022年5月22日
    63
  • 校园兼职平台青团社获数亿元B+轮融资,蚂蚁⾦服领投

    校园兼职平台青团社获数亿元B+轮融资,蚂蚁⾦服领投

    2021年7月1日
    151
  • Lena与图像处理

    Lena与图像处理在数字图像处理中,Lena(Lenna)是一张被广泛使用的标准图片,特别在图像压缩的算法研究中。(为什么用这幅图,是因为这图的各个频段的能量都很丰富:即有低频(光滑的皮肤),也有高频(帽子上的羽毛),很适合来验证各种算法)       然而,这张图片背后的故事是颇有意思的,很多人都抱有学究都是呆子的看法,然而Lena对此就是一个有力的驳斥。lena(lenna)是一张于19

    2022年6月19日
    30

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号