图像处理常用算法介绍

此篇简单回顾下图像处理领域常用到的一些算法,这边只对每个知识点重要的点做一些记录,便于快速的知其形,会其意。

一. SIFT(Scale-Invariant feature transform)特征

重点是了解DOG(Difference of Gaussian)高斯差分图像是如何生成的,以及求取关键点,求取关键点的主方向,并以此主方向来做坐标系,梯度方向和梯度幅值按新的坐标系进行计算,构造一个特征向量描述子。主要可参考如下博客

SIFT局部描述子 - 知乎

https://www.cnblogs.com/Jack-Elvis/p/11297216.html

SIFT算法原理与源码分析

 二. PCA

可参考博主的论文

 这边投影的一些知识点拓展也可以参考之前的博客中第17点

线性代数基础知识-CSDN博客

这里其实就是通过PCA去求新的坐标系的各坐标轴,一个轴可以认为就是一个特征向量。d个特征向量即为d个轴。然后k等同于选取了其中的k个轴,只获取原数据在这k个轴上的投影值组成一个特征向量来表示图像。

也可以参考其它博客

PCA(主成分分析) - 知乎

 【机器学习】降维——PCA(非常详细) - 知乎

 三. SVD

上面最后一个参考博客中也提到了SVD,其左奇异矩阵和右奇异矩阵介绍可见如下帖子

降维算法: 奇异值分解SVD - 知乎

《统计学习方法》之SVD - 知乎

具体计算示例可参考如下博客

强大的矩阵奇异值分解(SVD) - 知乎

 回想之前在校期间,用PCA对图像提取特征时,需要计算AA^{T}, 当是一张2000*2000大小图片时,由于直接将图像拉伸为向量,一个样本将达到400万长的一个维度。假设这边有1000个样本,A的大小将会是100万* 1000, 所以AA^{T}将会100万* 100万大小,Matbalb计算时候直接显示内存不足,当时就转用SVD方法去求解。 我们可以用SVD方法,将A表达为:

A = U\Sigma V^{T} ,那么协方差矩阵

AA^{T} = U\Sigma V^{T} * V\Sigma U^{T} = U\sum ^{2}U^{T} ,转换为了U的计算

【数学和算法】SVD奇异值分解原理、以及在PCA中的运用_svd怎么在pca-CSDN博客

PCA和SVD的联系和区别? - 知乎

如下博客很好的说明了SVD在图像压缩上的一个应用

SVD与图像压缩 - 知乎

四. 矩阵的迹

关于矩阵迹的相关性质 - 知乎

 高等代数|第四章 矩阵--矩阵的迹与相似

五. 牛顿法

涉及到泰勒展开(其实就是在一个点附近,用多项式去无限逼近此函数),下面先回顾下一些基本知识点

泰勒展开百度安全验证

 讲透泰勒公式,让你成为高手! - 知乎

 [计算机数值分析]牛顿法求解方程的根-CSDN博客

 最优化方法复习笔记(三)牛顿法及其收敛性分析 - 知乎

牛顿迭代法(求函数的根)_迭代法函数必须单调-CSDN博客 

牛顿法的优缺点及特征_newton迭代法的优缺点-CSDN博客 

六. 梯度下降算法

 为什么局部下降最快的方向就是梯度的负方向? - 知乎

 最优化方法之梯度下降法和牛顿法_优化问题目标函数的梯度怎么求-CSDN博客

七. EM算法 

EM算法详解 - 知乎

【大道至简】机器学习算法之EM算法(Expectation Maximization Algorithm)详解(附代码)---通俗理解EM算法。-CSDN博客 

八. 几个矩阵的含义

雅可比(Jacobian)矩阵_雅可比矩阵-CSDN博客

Jacobian矩阵和Hessian矩阵 - 知乎

雅克比矩阵的意义 - 知乎

雅可比矩阵几何意义的直观解释及应用-CSDN博客

九. 最小二乘法

​最小二乘法 (Least Squares) - 知乎

 GD&T干货 | 最小二乘法的数学公式详解 - 知乎

十. RANSAC算法 

RANSAC算法_51CTO博客_kmeans聚类算法

RANSAC算法(仅供学习使用)-CSDN博客 

https://www.cnblogs.com/xrwang/archive/2011/03/09/ransac-1.html 

RANSAC算法 - 知乎 

十一. 梯度方向直方图 

一文讲解方向梯度直方图(hog) - 知乎

博主之前相关的论文

后面有时间会再继续概括! 

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何解决Flutter应用程序的兼容性问题

随着移动应用开发领域的不断发展,Flutter作为一种跨平台框架,受到了越来越多开发者的青睐。要确保Flutter应用程序能够在不同的设备和操作系统上稳定运行,并提供一致的用户体验,我们需要重视应用程序的兼容性问题。下面将简单的介…

C++多态深度剖析

文章目录 1. 前言2. 多态的概念及定义2.1 概念2.2 多态的构成条件2.3 虚函数2.4 虚函数的重写2.5 override 和 final2.5 重载、覆盖(重写)、隐藏(重定义)的对比 3. 抽象类3.1 概念3.2 接口继承和实现继承 4. 多态的原理4.1 虚函数表4.2 多态的原理4.3 动…

计算机二级C语言的注意事项及相应真题-6-程序填空

目录 51.将参数num按升序插入到数组xx中52.在数组中找出两科成绩之和最高的学生并返回其在数组中的下标53.删除所有串长超过k的字符串,输出剩下的字符串54.根据所给的一组学生的成绩,计算出平均成绩,并计算低于平均成绩的学生的平均成绩55.将…

C语言指针数组的一篇补充

这段代码是我今早在想指针数组应该怎么去了解清楚的时候想到的一个代码,纠结了1半个多小时将代码理清楚,分享给大家看一下,对我最近发布的博文应该有一个补充帮助理解的作用。 对于这段代码的解释: 要正确理解指针数组是一个数组&…

直线拟合(支持任意维空间的直线拟合,附代码)

文章目录 一、问题描述二、推导步骤三、 M A T L A B MATLAB MATLAB代码 一、问题描述 给定一系列的三维空间点 ( x i , y i , z i ) , i 1 , 2 , . . . , n (x_i,y_i,z_i),i1,2,...,n (xi​,yi​,zi​),i1,2,...,n,拟合得到直线的方程。本文的直线拟合方法适用于任…

深度学习之处理多维特征的输入

我们首先来看一个糖尿病的数据集: 在数据集中,我们称每一行叫做sample,表示一个样本,称每一列是feature,也就是特征在数据库里面这就是一个关系表,每一行叫做记录,每一列叫做字段。 每一个样本都…

node.js Redis SETNX命令实现分布式锁解决超卖/定时任务重复执行问题

Redis SETNX 特性 当然,让我们通过一个简单的例子,使用 Redis CLI(命令行界面)来模拟获取锁和释放锁的过程。 在此示例中,我将使用键“lock:tcaccount_[pk]”和“status:tcaccount_[pk]”分别表示锁定键和状态键。 获…

java关键字概述——final及常量概述

前言: 打好基础,daydayup! final final概述 final关键字是最终的意思,可以修饰(类,方法,变量) final作用 修饰类:该类被称为最终类,特点为不能被继承 修饰方法&#xff…

Git常用命令介绍

Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目 一、Git的安装 安装包下载地址:https://gitforwindows.org/ 国内的镜像地址:https://npm.taobao.org/mirrors/git-for-windows/ 完成安装之后,在开…

fastapi学习

fastapi框架 fastapi,一个用于构建 API 的现代、快速(高性能)的web框架。 fastapi是建立在Starlette和Pydantic基础上的,Pydantic是一个基于Python类型提示来定义数据验证、序列化和文档的库。Starlette是一种轻量级的ASGI框架/工…

C#,数据检索算法之跳跃搜索(Jump Search)的源代码

数据检索算法是指从数据集合(数组、表、哈希表等)中检索指定的数据项。 数据检索算法是所有算法的基础算法之一。 本文提供跳跃搜索的源代码。 1 文本格式 using System; namespace Legalsoft.Truffer.Algorithm { public static class ArraySe…

3d导入的模型怎么缩小内存---模大狮模型网

要缩小导入的3D模型的内存占用,可以尝试以下方法: 优化模型:检查模型是否存在多余的面、顶点或边。通过删除重复的几何体、简化细节或使用优化算法,可以减少模型的复杂度,从而降低内存占用。 减少纹理贴图大小&#x…