当前位置: 首页 > article >正文

单目视觉测量及双目视觉测量

一、单目视觉测量        

1.1 原理部分讲解        

        单目视觉系统通过采集图像,将图像转换为二维数据,然后对采集的图像进行模式识别,通过图像匹配算法识别行驶过程中的车辆、行人、交通标志等,最后依据目标物体的运动模式和定位技术,估算目标物体与本车的相对距离和相对速度。

        单目相机测距常用或者说实用的方法就是相似三角形法。这种方法假设我们有一个宽度为W的目标或者物体,然后我们将这个目标放在距离我们的相机为D的位置。我们用相机对物体进行拍照并且测量物体的像素宽度P。这样我们就得出了相机焦距的公式:F = (P x D) / W。通过这个公式,我们可以计算出物体离相机的距离。

        该算法具有结构简单、运算速度快、成本低等优点。它不需要像双目视觉那样进行复杂的特征点匹配,因此算法的实时性和鲁棒性较好。但一个主要挑战是缺乏深度信息,导致尺度模糊问题。此外,单目视觉系统在复杂环境下的距离估计、低光照条件下的性能表现等方面也面临挑战。

1.2 常用特征测量算法    

1.2.1 SIFT(尺度不变特征变换)

        SIFT(Scale-Invariant Feature Transform,尺度不变特征变换)是一种在计算机视觉领域广泛使用的特征检测和描述算法,由David G. Lowe在1999年提出,并在2004年完善。SIFT算法的核心思想是提取图像中的局部特征,并生成对应的特征描述子,这些特征对图像的旋转、尺度缩放、亮度变化保持不变性,对视角变化、仿射变换、噪声也保持一定程度的稳定性。

        其主要包括以下特点:

  1. 尺度不变性:SIFT特征对图像的缩放保持不变,这意味着在同一物体的不同尺度图像中,SIFT能够检测到相同的特征点。
  2. 旋转不变性:SIFT特征对图像的旋转保持不变,即旋转图像后,SIFT能够检测到相同的特征点。
  3. 亮度不变性:SIFT特征对图像的亮度变化不敏感,即使在不同光照条件下,也能检测到相同的特征点。

        同时SIFT对视角变化、仿射变换、噪声等具有一定的稳定性,具有较好的区分性,信息量丰富,适用于在海量特征数据库中进行快速、准确的匹配。即使在图像中只有少数几个物体,SIFT也能产生大量的特征向量,并且SIFT可以与其他形式的特征向量方便地联合使用。

        SIFT算法的实现步骤主要包括:

  1. 尺度空间极值检测:在不同尺度下,通过高斯滤波器构建图像的高斯金字塔,并在每个尺度上寻找局部极值点,作为关键点候选。
  2. 关键点定位:通过在尺度空间和图像空间中对极值点进行精确定位,找到稳定的关键点。
  3. 方向赋值:为每个关键点分配一个或多个方向,提高特征的旋转不变性。
  4. 特征描述:基于关键点的位置和方向,计算局部特征向量,构建特征描述符

1.2.2 SURF(加速稳健特征)

        SURF(Speeded Up Robust Features,加速稳健特征)算法是一种用于图像特征提取和描述的计算机视觉算法,由Herbert Bay等人在2006年提出。它是基于SIFT(Scale-Invariant Feature Transform)算法的改进版本,旨在提高特征检测和描述的速度,同时保持特征的尺度不变性和旋转不变性。

        其主要包括以下特点:

  1. 快速性:SURF算法通过使用积分图像和快速的盒式滤波器(Box Filter)来加速特征点检测和描述符生成,比SIFT算法快几倍。
  2. 稳健性:SURF算法对于旋转、缩放、亮度变化等干扰具有较好的鲁棒性,能够在不同的场景中保持稳定的性能。
  3. 特征点检测:SURF使用Hessian矩阵的行列式值作为特征点检测的依据,这种方法可以有效地识别图像中的角点、边缘等特征点。

        SURF算法在特征点周围选择一个区域,并计算该区域内的水平和垂直Haar小波响应,形成特征描述符。默认情况下,SURF描述符为64维,但也可以配置为128维以提高描述的精度。同时SURF算法可以为特征点分配一个主方向,以提高特征的旋转不变性。这一步骤可以通过统计特征点邻域内的Haar小波特征来实现。

        值得一提的是,与SIFT不同,SURF的专利已经过期,因此在商业应用中更加自由无碍,其在图像匹配、目标识别、全景拼接等领域有着广泛的应用。

二、双目视觉测量

2.1 原理部分讲解

        双目视觉测量算法是一种基于双目立体视觉原理的计算机视觉技术,它通过使用两个摄像头从不同角度捕捉同一场景的图像,来计算图像中每个像素点的视差信息,进而获取实际空间中物体的三维信息。通过双目视觉测量算法,甚至可以构建出三维空间中的点云,这些点云数据可以用于进一步的三维重建和分析。以下是双目视觉测量算法的关键步骤和原理:

  1. 双目标定:确定两个摄像头的内外参数。
  2. 立体校正(含消除畸变):对图像进行校正,使两个摄像头的图像位于同一平面且互相平行。
  3. 立体匹配:在两个校正后的图像中进行像素点匹配。
  4. 视差计算:根据匹配结果计算每个像素的视差。
  5. 深度计算(3D坐标):利用视差信息计算空间中物体的三维坐标

        这种双目视觉测量算法的精度受到多种因素的影响,包括相机畸变、视差偏差、基线距离与焦距、像素大小和物理尺寸、深度范围等。其中相机畸变是指由于镜头光学特性导致的图像失真,需要通过标定来校正这些畸变,以获得准确的几何关系。而立体校正作为是双目视觉中的一个重要步骤,它包括消除畸变和调整图像,使得两个摄像头的图像可以进行有效的匹配。

        立体匹配是双目视觉系统中的核心部分,它确定多幅图像之间投影点间的一一对应关系。有效的立体匹配可以使关键点更加容易被提取。视差图是立体匹配的结果,显示了场景中每个像素点的视差值。深度图是基于视差图计算得到的,它表示了场景中每个像素点到摄像头的距离。深度图的计算通常涉及到将视差值转换为实际的距离,这需要知道摄像头的焦距和摄像头之间的基线距离。

2.2 常用特征测量算法

        在双目视觉测量中,特征测量算法是用于从图像中提取关键信息并进行匹配的重要技术。以下是一些常用的特征测量算法:

        SIFT(Scale-Invariant Feature Transform,尺度不变特征变换)

        SIFT算法能够在不同尺度和旋转下提取稳定的特征点,并且对亮度变化和视角变化保持不变性。SIFT特征提取的实质是在不同的尺度空间上查找关键点,并计算关键点的方向。这些关键点通常是图像中的角点、边缘点、暗区的亮点及亮区的暗点等。

        SURF(Speeded Up Robust Features,加速稳健特征)

        SURF算法是SIFT算法的改进版本,它采用快速Hessian算法检测关键点,并使用特征向量描述关键点周围区域的情况。SURF算法比SIFT算法快好几倍,同时保持了特征的尺度不变性和旋转不变性。

        ORB(Oriented FAST and Rotated BRIEF)

ORB算法结合了FAST关键点检测和BRIEF描述子,具有旋转不变性和尺度不变性。ORB特征由关键点和描述子两部分组成,其中关键点是Oriented FAST,描述子是BRIEF。ORB对BRIEF进行了改进,使用了先前计算的方向信息。

        Harris角点检测

        Harris角点检测是一种经典的角点检测方法,它通过计算图像的梯度和其二阶矩来检测角点。Harris角点检测基本思想是识别图像中灰度变化明显的地方,这些地方通常是角点。

        BRIEF(Binary Robust Independent Elementary Features)

BRIEF是一种快速的特征描述子提取方法,它通过对关键点周围的小块区域进行随机采样,并比较这些区域的像素值来生成二进制字符串作为描述子。

        FREAK(Fast Retina Keypoint)

        FREAK是一种快速的特征点提取和匹配算法,它模拟人类视网膜对视觉信息的处理方式,具有旋转不变性和尺度不变性。

        AKAZE(Accelerated-KAZE)

        AKAZE是一种非线性特征提取算法,它结合了KAZE算法的优点,并对其进行了加速。AKAZE能够提取出对视角变化和光照变化具有不变性的特征点。


http://www.kler.cn/a/390153.html

相关文章:

  • L10.【LeetCode笔记】回文链表
  • Gurobi学术版+Anaconda安装步骤
  • 安全生产管理的重要性:现状、痛点与改进之路
  • Rust 整数
  • Hadoop(环境搭建篇)
  • 大数据 ETL + Flume 数据清洗 — 详细教程及实例(附常见问题及解决方案)
  • AndroidStudio 加载grade失败问题解决
  • 企业级大数据安全架构
  • 二叉树搜索树(上)
  • 【lambda表达式】【DP】个人练习-Leetcode-1039. Minimum Score Triangulation of Polygon
  • QML —— 遮罩功能,模拟软件头像功能(附源码)
  • python printf中文乱码
  • JedisException:Could not get a resource from the pool
  • SpringCloud 微服务消息队列灰度方案 (RocketMQ 4.x)
  • SQL 窗口函数
  • 什么是C/C++,有什么特点
  • 物联网学习路线来啦!
  • 道可云人工智能元宇宙每日资讯|2024国际虚拟现实创新大会将在青岛举办
  • cache写策略 操作系统
  • nginx 部署2个相同的vue
  • 241111.学习日志——【CSDIY】Cpp零基础速成
  • 2024年11月10日系统架构设计师考试题目回顾
  • 【算法速刷(9/100)】LeetCode —— 42.接雨水
  • 2024年9月青少年软件编程(C语言/C++)等级考试试卷(四级)
  • flask logger 使用 TimedRotatingFileHandler 报错 PermissionError 另一个程序正在使用此文件
  • NVR录像机汇聚管理EasyNVR多品牌NVR管理工具/设备:大华IPC摄像头局域网访问异常解决办法