COMP 9517 Computer Vision week3

news2024/10/6 3:45:45

目录

  • 特征表示
    • 图像特征概念(image feature)
      • 图像特征应该具备的属性
    • 图像特征种类
      • 颜色特征
        • 颜色直方图(Color Histogram)
        • 颜色矩(Colour moments)
      • 纹理特征(texture features)
        • Haralick特征
        • 局部二值模式(Local Binary Patterns, LBP)
        • 尺度不变特征变换SIFT(Scale-invariant feature transform)
          • SIFT应用
    • 空间变换的类型
      • 空间坐标变换
        • 拟合和对齐
          • 拟合与对齐总结

特征表示

图像特征概念(image feature)

图像特征是矢量(vector),它们是图像的紧凑表示(compact representation)。它们代表图像中显示的重要信息
图像特征示例:斑点(Blobs)、边缘(Edges)、角点(Corner)、脊线(Ridges)、圆(Circles)、椭圆(Ellipses)、线条(Lines)
我们需要将图像表示为特征向量(represent image as feature vectors),以便**更高效(efficient)、更鲁棒(robust)**地进行进一步处理
进一步处理的示例:
目标探测(Object detection)
图像分割(Image segmentation)
图像分类(Image classification)
图像检索(Image retrieval)
图像拼接(Image stitching)
目标跟踪(Object tracking)

为什么不能直接使用像素值(use pixel values directly)作为图像特征

  • 像素值会随光照强度、颜色和角度变化(angle)
  • 像素值也会随着摄像机的方向(orientation)变化
  • 像素值高度冗余(redundant)

图像特征应该具备的属性

  • 可再现性(鲁棒性)(Reproducibility(robustness))
    尽管存在光照(illumination)和视角(viewpoint)的变化,特征应该能够在不同图像中的相同位置被检测到。
  • 显著性(描述性)(Saliency(descriptiveness))
    不同图像中相似的显著(salient)点应该具有相似的特征
  • 紧凑性(效率)(Compactness(efficiency))
    更少、更小的特征

在这里插入图片描述

图像特征种类

颜色特征、纹理特征、形状特征

颜色特征

  • 计算最简单的一种特征
  • 在图像缩放(scaling)、平移(translation)和旋转时不变(invariant)

例子:基于颜色的图像检索
在这里插入图片描述

颜色直方图(Color Histogram)

表示图像中像素颜色的全局分布(global distribution),它展示了每种颜色在图像中的出现频率。

  • 为每个颜色通道(R,G,B)分别构建直方图。
  • 将所有颜色通道的直方图(向量)连接(Concatenate)起来,形成最终的特征向量(as the final feature vector)
    在这里插入图片描述
颜色矩(Colour moments)

表示颜色分布(colour distributions)的另一种方式,常用的有一阶矩、二阶矩和三阶矩,分别表示颜色分布的均值(mean反映总体趋势)、标准差(standard deviation反应分散程度)和偏度(skewness描述颜色分布的对称性)。
在这里插入图片描述

基于颜色矩(based colour moments)的颜色分布表示

  • 使用颜色矩可以得到一个仅包含9个元素的特征向量(对于RGB图像,每个颜色通道3个矩值,共9个元素)。
  • 颜色矩的表示能力低于颜色直方图

在这里插入图片描述

纹理特征(texture features)

  • 描述物体的视觉特征和外观
  • 用于识别视觉模式的强大区分特征
  • 超越颜色或亮度(intensity)的结构均匀性特性(structural homogeneity)
  • 特别用于纹理分类
Haralick特征

图像模式的统计描述数组:Haralick特征是图像中统计描述纹理模式的一组特征,它们能够通过计算统计量来描述图像的纹理特性。
捕捉邻近像素之间的空间关系:Haralick特征通过分析邻近像素之间的灰度共生矩阵(GLCM),来捕捉图像中像素之间的空间关系,从而描述纹理的局部模式。

  • 步骤1:构建灰度共生矩阵(GLCM):首先从图像中构建一个灰度共生矩阵,表示像素之间的灰度值联合分布情况。
    在这里插入图片描述

  • 步骤2:从GLCM中计算Haralick特征描述符:然后从GLCM中提取各种统计特征(例如对比度、能量、同质性等),这些特征被称为Haralick特征。
    在这里插入图片描述

局部二值模式(Local Binary Patterns, LBP)

概念
描述图像局部纹理的空间结构

  • 将图像划分为 N × N N×N N×N像素的网格块
  • 比较每个像素与其 8 个邻域像素的值
  • 如果中心像素的值大于相邻像素的值,写 1;否则写 0
  • 这会给每个像素生成一个 8 位的二进制模式(可以表示为 0 到 255 之间的一个值)
    比较2与周围每个值的大小,生成8位的二进制
    在这里插入图片描述
  • 计算网格单元中每个 8 位二进制数出现的次数
  • 这会生成一个 256 柱的直方图(也称为 LBP 特征向量)
  • 将所有网格单元的直方图组合起来,得到整个图像的 LBP 特征描述符

LBP 可以是多分辨率和旋转不变的

  • 多分辨率:通过改变中心像素和邻域像素之间的距离以及邻域像素的数量来实现。
    P (Points)表示在计算 LBP 时,围绕中心像素选择的邻域像素的数量。它定义了在圆形邻域中使用多少个像素点进行计算。
    R (Radius)表示圆形邻域的半径,即中心像素和邻域像素之间的距离。它定义了邻域的尺度,即邻域像素与中心像素之间的距离。
  • 旋转不变性:通过执行位移(bitwise shift)操作来构建 8 位二进制数,获取(derive)最小的数字以实现旋转不变性。

在这里插入图片描述
最小的模式是 00001111,其对应的值是 15,因此,模式 11110000 的旋转不变表示是 15

尺度不变特征变换SIFT(Scale-invariant feature transform)
  • SIFT 特征描述局部区域(in a localised region)中围绕关键点的纹理。
  • SIFT 描述子对各种变换(various transformations)**缩放、旋转、仿射变形(affine distortion)、光照变化(illumination changes)**保持不变。

SIFT算法概述
在这里插入图片描述1. 尺度空间极值检测 (Scale-Space Extrema Detection):在不同尺度的 DoG(差分高斯)图像中查找极大值和极小值。

  • 在图像的尺度空间(scale space)中检测极大值和极小值
    在这里插入图片描述
  1. 关键点定位 (Keypoint Localization):丢弃低对比度的关键点,并消除边缘响应
    改进并减少找到的关键点集
    • 在尺度空间中使用 3D 二次拟合(quadratic fitting)来获得亚像素级的极值点
    • 使用 Hessian 分析拒绝低对比度(reject low-constrast)点和边缘点。在这里插入图片描述
  2. 方向分配 (Orientation Assignment):通过分配方向,实现旋转不变性。
    使用局部梯度向量(local gradient vectors)估计关键点的方向
    • 生成局部梯度向量的方向直方图
    • 从直方图的主峰中找到主导方向
    • 如果第二高的峰值超过80%,则为其创建额外的关键点
  3. 关键点描述子 (Keypoint Descriptor):计算梯度方向直方图
    表示每个关键点的128维特征向量
    • 4x4的梯度方向直方图阵列,其每个直方图的权重由梯度幅度决定
    • 每个梯度方向直方图包含8个方向(bins)
    • 总共的维度数为8个方向 × 4 × 4 的阵列 = 128维
SIFT应用

匹配两个部分重叠的图像

  1. 在128维特征空间中找到SIFT关键点的最佳匹配
    在这里插入图片描述
    最近邻距离比率(NNDR)
    比较最近邻和次最近邻的描述符距离
    N N D R = d 1 d 2 = ∥ D A − D B ∥ ∥ D A − D C ∥ \mathrm{NNDR}=\frac{d_1}{d_2}=\frac{\left\|D_A-D_B\right\|}{\left\|D_A-D_C\right\|} NNDR=d2d1=DADCDADB
    在这里插入图片描述
    如果比率NNDR > 0.8,则认为这个匹配不可靠,应该舍弃。比率越大,说明第一个匹配的准确性不高,容易产生误匹配。

  2. 找到SIFT关键点和特征对应关系
    在这里插入图片描述

  3. 找到正确的空间变换(spatial transformation)
    在这里插入图片描述

空间变换的类型

  • 刚性变换
    • 平移(Translation)
    • 旋转(Rotation)
  • 非刚性变换
    • 缩放(Scaling)
    • 仿射变换(Affine)
    • 透视变换(Perspective)

空间坐标变换

缩放(scale)、旋转(rotate)、仿射变换(Affine):

在这里插入图片描述
剪切(shear)、平移(translate)、透视变换(perspective)
在这里插入图片描述

拟合和对齐
  • 使用 最小二乘法(Least Squares, LS) 进行拟合和对齐(Fitting and alignment)对应的关键点,以找到图像变换的最佳参数
    找到一个变换 T 的参数向量 p,最小化所有关键点配对之间的平方误差
    E = ∑ i ∥ T ( x i ; p ) − x i ′ ∥ 2 E=\sum_i\left\|T\left(\mathbf{x}_i ; \mathbf{p}\right)-\mathbf{x}_i^{\prime}\right\|^2 E=iT(xi;p)xi2
  • 仿射变换的例子 x i = ( x i , y i )  into  x i ′ = ( x i ′ , y i ′ ) \mathbf{x}_i=\left(x_i, y_i\right) \text { into } \mathbf{x}_i^{\prime}=\left(x_i^{\prime}, y_i^{\prime}\right) xi=(xi,yi) into xi=(xi,yi)
    在这里插入图片描述
    RANSAC(随机采样一致性)
  • 最小二乘法受到离群点影响(hampered by outliers)
  • 需要某种离群点检测(outlier detection)和剔除(rejection)的方法。
  • 最好使用数据的一个子集并检查内点(inlier)的匹配度(agreement)
  • RANSAC以迭代(iterative)的方式进行,以找到最佳解(optimum)
    RANSAC例子线性拟合模型
  • 随机采样:随机采样出拟合模型(fit the model)所需的最少点数。比如,拟合直线时,需要采样两个点。
    在这里插入图片描述
  • 模型拟合:使用采样点来解出模型参数(model parameter)(例如直线的斜率和截距)。
    在这里插入图片描述
  • 评分内点:通过计算与模型(即直线)在设定阈值距离内的点(称为内点)的比例来对模型进行评分。
    图中的直线表示拟合的模型(如直线),两侧的虚线表示允许的误差范围(即阈值 δ)。被蓝圈圈住的点是内点,它们位于模型允许的误差范围内,因此被视为符合模型的点。

在这里插入图片描述

  • 迭代过程:重复步骤1-3,并记录具有最多内点的模型(最佳拟合),直到找到具有高置信度的最佳模型为止。
    在这里插入图片描述
拟合与对齐总结

根据匹配点 A 和 B 估计变换
平移示例:
[ x i B y i B ] = [ x i A y i A ] + [ t x t y ] \left[\begin{array}{l} x_i^B \\ y_i^B \end{array}\right]=\left[\begin{array}{l} x_i^A \\ y_i^A \end{array}\right]+\left[\begin{array}{l} t_x \\ t_y \end{array}\right] [xiByiB]=[xiAyiA]+[txty]
通过这些匹配点,可以计算出从左图到右图的平移向量 t x t_x tx t y t_y ty,从而实现图像对齐。
在这里插入图片描述

  • 写出方程组: A p = b A p=b Ap=b
  • 求解参数: p = ( A T A ) − 1 A T b p=\left(A^T A\right)^{-1} A^T b p=(ATA)1ATb
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2191049.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python酷库之旅-第三方库Pandas(133)

目录 一、用法精讲 596、pandas.DataFrame.plot.density方法 596-1、语法 596-2、参数 596-3、功能 596-4、返回值 596-5、说明 596-6、用法 596-6-1、数据准备 596-6-2、代码示例 596-6-3、结果输出 597、pandas.DataFrame.plot.hexbin方法 597-1、语法 597-2、…

如何向文科生解释什么是计算机的缓存

缓存(Cache)是计算机系统中的一个至关重要的技术概念,用于提高数据访问的速度。我们可以把缓存想象成一个临时的存储区域,它存放着系统中常用或最近使用的数据,以便快速访问,而不必每次都从速度较慢的原始数…

HTB:Synced[WriteUP]

目录 连接至HTB服务器并启动靶机 1.What is the default port for rsync? 2.How many TCP ports are open on the remote host? 3.What is the protocol version used by rsync on the remote machine? 4.What is the most common command name on Linux to interact w…

showdoc二次开发

showdoc用的vue版本老,需要安装老版本nodejs,比如node 14.21.3 win32-x64-93_binding.node问题 https://github.com/sass/node-sass/releases 下载 web_src\node_modules\node-sass\vendor\win32-x64-93 下面重命名为binding.node

HTML+CSS之过度,变形,动画(14个案例+代码+效果图)

目录 过渡 (Transitions) transition-property: 案例:鼠标悬浮方逐渐放大 1.代码 2.效果 transition-duration: 案例:鼠标悬停逐渐慢慢放大 1.代码 2.效果 transition-timing-function: 案例:放大速度为ease-out 1.代码 2.效果 transition-de…

【无人机设计与技术】基于EKF的四旋翼无人机姿态估计matlab仿真

摘要: 本文设计了一种基于扩展卡尔曼滤波(EKF)的四旋翼无人机姿态估计方法。利用EKF算法处理四旋翼无人机姿态的动态模型,通过该滤波算法实现对姿态的实时估计和校正。该方法通过对无人机的运动学和动力学模型的分析,…

新编英语语法教程

新编英语语法教程 1. 新编英语语法教程 (第 6 版) 学生用书1.1. 目录1.2. 电子课件 References A New English Grammar Coursebook 新编英语语法教程 (第 6 版) 学生用书新编英语语法教程 (第 6 版) 教师用书 1. 新编英语语法教程 (第 6 版) 学生用书 https://erp.sflep.cn/…

Python从入门到高手5.1节-Python简单数据类型

目录 5.1.1 理解数据类型 5.1.2 Python中的数据类型 5.1.3 Python简单数据类型 5.1.4 特殊的空类型 5.1.5 Python变量的类型 5.1.6 广州又开始变热 5.1.1 理解数据类型 数据类型是根据数据本身的性质和特征来对数据进行分类,例如奇数与偶数就是一种数据类型。…

软件测试:postman详解

一、Postman背景介绍 用户在开发或者调试网络程序或者是网页B/S模式的程序的时候是需要一些方法来跟踪网页请求的,用户可以使用一些网络的监视工具比如著名的Firebug等网页调试工具。今天给大家介绍的这款网页调试工具不仅可以调试简单的css、html、脚本等简单的网…

自动驾驶系列—全面解析自动驾驶线控制动技术:智能驾驶的关键执行器

🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中…

小阿轩yx-案例:jenkins部署Maven和NodeJS项目

小阿轩yx-案例:jenkins部署Maven和NodeJS项目 前言 在 Java 项目开发中,项目的编译、测试、打包等是比较繁琐的,属于重复劳动的工作,浪费人力和时间成本。以往开发项目时,程序员往往需要花较多的精力在引用 jar 包搭…

8月AI绘画方向APP用户量及人均时长排行榜

全球用户量Top10(APP) 排名 产品名 分类 8月MAU 上月对比 1 Remini 人工智能修图 29.14M -0.88% 2 FaceApp AI 人脸编辑器 26.46M 0.14% 3 Hypic Photo Editor & AI Art 17.37M 5.74% 4 AI Mirror AI Art Photo Editor 16.81…

【第三版 系统集成项目管理工程师】第16章 监理基础知识

持续更新。。。。。。。。。。。。。。。 【第三版】第十六章 监理基础知识 16.1 监理的意义和作用1.监理的地位和作用(非重点)-P5692.监理的重要性与迫切性-P5703.监理技术参考模型-P570 16.2 监理相关概念1.信息系统工程监理-P5722.信息系统工程监理单位-P5723.业主单位-P57…

LeNet学习

Lenet是一个 7 层的神经网络,包含 3 个卷积层,2 个池化层,1 个全连接层。其中所有卷积层的所有卷积核都为 5x5,步长 strid1,池化方法都为全局 pooling,激活函数为 Sigmoid,网络结构如下&#xf…

25重庆长安深蓝控制器开发面试经验 深蓝最常见面试问题总结

【面试经历】 秋招气氛组选手的第一场面试,9.17网申,9.24电话约面,9.26线上面试。问得很细,全长约1个小时 1. 自我介绍、项目介绍 2.项目细节,遇到了哪些困难;有没有PCB设计经验DC-DC芯片选型,电源噪声的原因、怎么消除、 3.画BUCK和BOOST拓扑图,讲原理 4.了解MCU的主…

ffmpeg面向对象——拉流协议匹配机制探索

目录 1.URLProtocol类2.协议匹配的基础接口3. URLContext类4. 综合调用流程图5.rtsp拉流协议匹配流程图及对象图5.1 rtsp拉流协议调用流程图5.2 rtsp拉流协议对象图 6.本地文件调用流程图及对象图6.1 本地文件调用流程图6.2 本地文件对象图 7.内存数据调用流程图及对象图7.1 内…

李宏毅深度学习-梯度下降和Batch Normalization批量归一化

Gradient Descent梯度下降 ▽ -> 梯度gradient -> vector向量 -> 下图中的红色箭头(loss等高线的法线方向) Tip1: Tuning your learning rates Adaptive Learning Rates自适应lr 通常lr会越来越小 Adaptive Learning Rates中每个参数都给它不…

基于依赖注入技术的.net core WebApi框架创建实例

依赖注入(Dependency Injection, DI)是一种软件设计模式,用于实现控制反转(Inversion of Control, IoC)。在ASP.NET Core中,依赖注入是内置的核心功能之一。它允许你将应用程序的组件解耦和配置&#xff0c…

【JAVA开源】基于Vue和SpringBoot的服装生产管理系统

本文项目编号 T 066 ,文末自助获取源码 \color{red}{T066,文末自助获取源码} T066,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 查…

【LVGL进阶日记】① 开源LVGL在MCU上的移植

关注+星标公众号,不错过精彩内容 作者 | 量子君 微信公众号 | 极客工作室 【LVGL进阶日记】专栏目录 第一章 开源LVGL在MCU上的移植 文章目录 前言一、LVGL介绍1.1 LVGL的主要特性如下:1.2 LVGL对MCU的要求如下:二、移植LittlevGL到MCU2.1 LVGL源码下载和文件组织2.2 LVGL配…