想象一个场景:我们在高铁站候车,由于进站比较早,我们还需要再等会儿。这时手里有一个3D相机,然后你在那儿瞎琢磨,如何能通过拍照识别旅客的身高呢?

视觉测量已经不是一个新鲜的话题了,但是里面蕴含的知识还是很值得学习的。首先,我们了解一些基本概念:

一、针孔相机模型

简单的说,针孔相机模型就是把相机简化成小孔成像。这里引出两个概念:三大坐标系以及像素点坐标的计算。

1.三大坐标系:

  • 世界坐标系:目标物体位置的参考系。除了无穷远,世界坐标可以根据运算方便与否自由放置。

  • 摄像机坐标系:摄像机站在自己角度上衡量的物体的坐标系。摄像机坐标系的原点在摄像机的光心上,z轴与摄像机光轴平行。它是与拍摄物体发生联系的桥头堡,世界坐标系下的物体需先经历刚体变化转到摄像机坐标系(旋转和平移),然后再和图像坐标系发生关系。

  • 图像坐标系:以摄像机拍摄的二维照片为基准建立的坐标系。用于指定物体在照片中的位置。

2.对于3D空间中的一个点,其投影到图像平面上的像素点坐标计算过程为:

其中f为相机焦距,X,Y,Z为相机坐标系下某点坐标,x,y为相机图像坐标系下对应该点坐标,c为主点坐标(一片薄的双凸透镜的焦点距离,一般指镜片的中心到焦点为止的光轴上的距离,这个镜片的中心叫做“主点”,表示图像的中心像素坐标和图像原点像素坐标之间相差的横向和纵向像素数)。

二、简单的相机标定

相机标定是一个求解内外参的过程,这里我们以内参为例做个简单标定。

1)未知:焦距f(单位: 像素)

2)已知:图像平面上观察到的目标高度h(单位:像素)

3)假设:

  • 目标高度H和到相机的距离Z已知;

  • 目标与图像平面对齐。

    标定过程如下图所示:

三、消失点

我们都有经验,当你沿着铁路线去看两条铁轨,又或者沿着公路线去看两边排列整齐的树木时,两条平行的铁轨或两排树木连线相交于很远很远的某一点,这点在透视投影中叫做消失点(vanishing point),又称灭点。

  • 每组平行线都在同一方向,在不同的点上相遇。

  • 另一件事是,平行线都在同一平面上,它们都会收敛到共线消失点。

有了前面的概念做基础,我们看下如何进行目标定位与测量,这里给出两种情况:

A. 目标定位和测量#1

1)未知:目标位置和高度(单位: m)

2)已知:图像中目标和地面的接触点以及目标的头部点(单位:像素)

3)假设:

  • 焦距、主点和相机高度已知;

  • 相机和参考面对齐;

  • 目标位于参考面上。

    求解过程如下图所示:

B.目标定位和测量#2

1)未知:目标位置和高度(单位: m)

2)已知:图像中目标和地面的接触点以及目标的头部点(单位:像素)

3)假设:

  • 焦距、主点和相机高度已知;

  • 相机朝向未知;

  • 目标位于参考面上。

    求解过程如下图所示:

最后,我们给出部分代码及测量结果:

如何用视觉的方法量身高?相关推荐

  1. [转]设计高效SQL: 一种视觉的方法

    原文地址:http://www.itpub.net/thread-1357925-1-1.html 英文原文:http://www.simple-talk.com/sql/performance/de ...

  2. 对SLAM和自动驾驶定位的思考,最新自动驾驶视觉SLAM方法综述!

    摘要 自动驾驶车辆在不同的驾驶环境中需要精确的定位和建图解决方案.在这种背景下,SLAM技术是一个很好的解决方案.LIDAR和相机传感器通常用于定位和感知.然而,经过十年或二十年的发展,激光雷达SLA ...

  3. 刚学平面设计如何用简单的方法来设计字体

    本文由:"学设计上兔课网"原创,图片素材来自网络,仅供学习分享 刚学平面设计如何用简单的方法来设计字体?设计师在日常工作中每天都在跟字体打着交道,视觉传达的根本目的是传播信息,文字 ...

  4. RoadMap:面向自动驾驶的轻型语义地图视觉定位方法

    文章:RoadMap: A Light-Weight Semantic Map for Visual Localization towards Autonomous Driving 作者:Tong Q ...

  5. oracle 窗体翻译,[翻译]设计高效SQL: 一种视觉的方法

    这篇文章是关于SQL SERVER的,但仍有参考价值. http://www.simple-talk.com/sql/p ... -a-visual-approach/ Designing Effic ...

  6. 【CV】综述:基于深度学习的视觉跟踪方法进展

    人眼可以比较轻松地在一段时间内持续定位某个目标,而这对于计算机而言却是一项极具挑战的高级任务---目标跟踪.近年来,深度学习方法开始在目标跟踪领域崭露头角,并逐渐在性能上超越传统方法.温州大学人工智能 ...

  7. 【论文推荐】张笑钦团队 | 综述:基于深度学习的视觉跟踪方法进展

    导读 IJAC特约稿件 人眼可以比较轻松地在一段时间内持续定位特定目标,而在计算机视觉领域,这一任务便是高级计算机任务之一--"目标跟踪".但对计算机而言,在不同场景下实现目标跟踪 ...

  8. mysql 社区版密码如何修改_如何用优雅的方法修改MySQL root密码

    搭噶好,我系小编,我好久没发文章了啊,今天发文章的原因是,我竟然忘了我的MySQL root密码..本来想找RAKsmart客服直接重置啥的,后来想想还是自己搞吧,还能长知识. 然后,我发现一个事情, ...

  9. python珠穆朗玛峰问题_给珠穆朗玛峰“量身高”为什么这么难?

    原标题:给珠穆朗玛峰"量身高"为什么这么难? (经济观察)给珠穆朗玛峰"量身高"为什么这么难? 中新社北京12月8日电 (记者 庞无忌)中国和尼泊尔8日联合公布 ...

最新文章

  1. 智源论坛Live丨青年科学家线上报告会日程发布
  2. IntelliJ IDEA中跳转到上一个视图位置(向后/向前导航)的键盘快捷键
  3. eclipse中的debug按钮组突然找不到了,找回方法
  4. 机器学习——梯度下降算法
  5. makefile使用宏及用法$(宏标识符) $(cc)_宏编程的艺术
  6. HDU - 4784 Dinner Coming Soon(bfs+动态规划+优先队列)
  7. 计算机水平考试ppt试卷,计算机等级考试一级笔试卷库.ppt
  8. JSON(5)---JSON.stringify()
  9. 以太网的分层架构_读《企业应用架构模式》记录-分层
  10. Java运行时出现”the serializable class drawline does not declare a static final serialversio”...
  11. 幅度和幅值有区别吗_你知道避雷器与浪涌保护器的区别吗?
  12. Hadoop切换namenode为active
  13. 【hdu1018】Big Number(求n!的位数----斯大林公式/log函数)
  14. html 简单动画效果,HTML-简单动画
  15. 浙江大学计算机学院就业办,浙江大学就业信息网
  16. 2022年最新遥感类期刊JCR影响因子及分区
  17. 【图像分类损失】Encouraging Loss:一个反直觉的分类损失
  18. 刷新校史!985副研究员,以独立作者身份,研究成果被数学顶级期刊录用!
  19. java 管道设计_设计模式——管道模式
  20. 果园机器人反思稿_果园机器人读后感

热门文章

  1. sonatype nexus仓库介绍
  2. sublime 经验总结 主题有 less2css
  3. Oracle 11gR2构建RAC之(3)--安装grid前环境检测
  4. 硅谷产品实战-总结:19、增长黑客的核心公式
  5. 多数据中心的百万级消息服务实战
  6. Java Web开发API Boy如何进阶?
  7. 面试官一个线程池问题把我问懵逼了。
  8. 某程序员吐槽:分手一个月,发现前女友和一个已婚男人在一起,愤而向他们公司举报,该男已被开除!网友:举报别人不道德!...
  9. 《让系统发生重大宕机事故的15个方法》
  10. K8s如何改变美团的云基础设施?