矩阵变换

sift算法原理解析

感情迁移 提交于 2020-01-28 21:41:22
尺度不变特征变换匹配算法详解 Scale Invariant Feature Transform(SIFT) Just For Fun 转自: http://blog.csdn.net/zddblog/article/details/7521424 对于初学者,从 David G.Lowe 的论文到实现,有许多鸿沟,本文帮你跨越。 1 、 SIFT 综述 尺度不变特征转换 (Scale-invariant feature transform 或 SIFT) 是一种电脑视觉的算法用来侦测与描述影像中的局部性特征,它在空间尺度中寻找极值点,并提取出其位置、尺度、旋转不变量,此算法由 David Lowe 在 1999 年所发表, 2004 年完善总结。 其应用范围包含物体辨识、机器人地图感知与导航、影像缝合、 3D 模型建立、手势辨识、影像追踪和动作比对。 此算法有其专利,专利拥有者为英属哥伦比亚大学。 局部影像特征的描述与侦测可以帮助辨识物体, SIFT 特征是基于物体上的一些局部外观的兴趣点而与影像的大小和旋转无关。对于光线、噪声、些微视角改变的容忍度也相当高。基于这些特性,它们是高度显著而且相对容易撷取,在母数庞大的特征数据库中,很容易辨识物体而且鲜有误认。使用 SIFT 特征描述对于部分物体遮蔽的侦测率也相当高,甚至只需要 3 个以上的 SIFT 物体特征就足以计算出位置与方位

单目视觉标定原理

时光怂恿深爱的人放手 提交于 2020-01-26 02:44:30
在计算机视觉中,通过相机标定能够获取一定的参数,其原理是基于三大坐标系之间的转换和摄像机的畸变参数矩阵。在实验中经常用张正友标定发,进行摄像机标定,获取到内参数矩阵和外参数矩阵以及畸变参数矩阵。在应用中要区分三者作用。这也是在程序中函数输入量。 一、三大坐标系 在计算机视觉中,利用图像中目标的二维信息获取目标的三维信息,肯定需要相机模型的之间转化。 1、图像坐标系 在计算机系统中,描述图像的大小是像素,比如图像分辨率是1240*768.也就就是以为图像具矩阵rows是1024,cols是768.那图像的原点是在图像的左上角。 以图像左上角为原点建立以像素为单位的直接坐标系u-v。像素的横坐标u与纵坐标v分别是在其图像数组中所在的列数与所在行数。这是像素坐标,而不是物理坐标,为了后续的模型转换,有必要建立图像坐标系。 图像坐标系是以图像中心为原点,X轴和u轴平行,Y轴和v轴平行。 dx和dy标示图像中每个像素在X轴和Y轴的物理尺寸,其实就是换算比例。比如图像大小是1024*768,图像坐标系x-y中大小为19*17.那么dx就是19/1024 . 则图像中的每个像素在u-v坐标系中的坐标和在x-y坐标系中的坐标之间都存在如下的关系: (上述公式中我们假设物理坐标系中的单位为毫米,那么dx的的单位为:毫米/像素。那么x/dx的单位就是像素了,即和u的单位一样都是像素) 为了使用方便

矩阵论 - Part II

拜拜、爱过 提交于 2020-01-25 21:31:26
矩阵论 - Part II 文章目录 矩阵论 - Part II 概念索引 4 矩阵空间 概念索引 4 向量空间, 最大线性无关组, 线性(子)空间, 线性空间的维数, 基和坐标, 同构映射, 同构空间, 基变换, 过度矩阵, 坐标变换, 线性变换, 线性变换的矩阵表示, 相似矩阵 , 欧式空间, 內积, 范数, Schwartz不等式, 夹角, 规范正交基, Schmidt正交化过程, 正交矩阵 4 矩阵空间 向量空间 向量空间: n n n 维向量的集合 V V V , 如果对加法和数乘运算封闭, 则集合 V V V 称为 向量空间 生成向量空间 子空间 空间维数 0空间 最大线性无关组 : 向量组 A A A 中有 r r r 个向量(设为向量组 A 0 A_0 A 0 ​ )线性无关, 任意 r + 1 r+1 r + 1 个向量线性相关, 则称 A 0 A_0 A 0 ​ 是一个 最大线性无关组 , r r r 称为向量组的 秩 , 只含有0向量的向量组没有最大无关组, 规定其秩为 0 0 0 矩阵的秩等于其列向量组的秩, 也等于其行向量组的秩 向量组 B B B 可以由向量组 A A A 线性表示, 则向量组 B B B 的秩不大于向量组 A A A 的秩 等价的向量组秩相等 设 C = A B C = AB C = A B , 则 { R ( C ) ≤ R ( A

张量网络学习笔记[1]

前提是你 提交于 2020-01-25 17:23:05
0. 简介与前置知识 本笔记着重学习Zhao Qibin教授等发表的"关于利用张量网络缩减维度和大规模优化"(Tensor Networks for dimensionality Reduction and Large-Scale Optimization)等张量网络相关的内容. 就目前来看, 网上并没有公开资源, 而前述学术文章的官方中文据悉仍在制作中. 本笔记视作笔者自己的一个自学概要, 其目的为加深理解, 方便回顾. 同时, 也希望能用我自己的理解串联有关内容, 给大家呈现更清晰地知识布局. 本笔记将不是一个完整的翻译作品, 而是一个根据自己理解有选择性的, 摘要性的翻译与整理工作. 希望为互联网上, 特别是中文圈内学习张量领域的热情贡献自己的一份力量. 由于笔者写过关于张量综述的笔记, 很多入门内容就不重复记述. 若有必要, 会提及"笔记系列"以指代该系列. 如果读者不理解什么是张量(tensor) 不理解什么是CP, TUCKER, KRONECKER及KHATRI-RAO乘法, 以及张量秩, mode-n乘法以及低秩分解的基本知识, 欢迎查阅我的另外一个笔记系列, 张量学习笔记. (笔者也经常查阅, 如果不熟悉大可放心. 只要学过, 随学随查即可) 为了方便顺应原作对公式的引用及方便大家查阅原书, 会将公式在原书内的tag写出 0.1. 本文所用图表与符号

【译】Unity3D Shader 新手教程(6/6) —— 更好的卡通Shader

浪尽此生 提交于 2020-01-22 19:09:03
本文为翻译,附上 原文链接 。 转载请注明出处—— polobymulberry-博客园 。 动机 如果你想了解以下几件事,我建议你阅读以下这篇教程: 想知道如何写一个multipass的toon shader。 在shader中学习更多不同参考坐标系(空间space)以及其作用。 深入学习一个实用的fragment shader。 学习矩阵相乘和Unity内建矩阵的使用。 该教程比 第五篇教程 更实用。 准备工作 为了实现一个描边的toon shader,我们需要做的是: 为模型描边。 将 第四篇文章 中的介绍的toon shader(使用的是surface shader)移植到vertex&fragment shader中。 描边 有很多方法进行描边,在 第四篇文章 中,我们使用了rim lighting(边缘光照)来给我们人物加上描边效果。现在我们采用另一种方法,额外使用一个Pass改善已有的描边效果。 不同于之前描边效果的实现,在这篇教程中,你可以将你看不到的模型部分(比如背面)放大一些,再渲染成全黑,这样也是可以实现描边效果的。这种方法可以将原模型的正面完好无损呈现出来。 所以我们首先试着: 单独写一个仅仅用来绘制模型背面的Pass。 扩展模型背面的顶点,使其看起来变大了一些。 下面这个Pass就是用来仅仅绘制模型背面(Cull Front,剔除正面的多边形): Pass

矩阵乘法题目汇总

烈酒焚心 提交于 2020-01-21 08:44:16
矩阵,学过线性代数的都知道,矩阵满足结合律,但不满足交换律 关于矩阵,有很多经典的应用,可以看下大牛的博客 http://www.matrix67.com/blog/archives/276 下面的题目中,最常见的一种应用就是利用矩阵求递推式,可以通过构造矩阵求幂 在这方面,最常见的就是在斐波那契数列方面,可以看下这个博客,超牛的 http://www.cnblogs.com/Knuth/archive/2009/09/04/1559951.html 很容易构造出关于斐波那契的矩阵,累乘求幂,就可以求出斐波那契的对应的项 直接开始题目吧 hdu1575 Tr A 题目,直接矩阵求幂,再求该矩阵的迹,注意,利用矩阵乘法满足结合律,我看可以利用二进制优化求幂次数。比如:A^7=A^4 * A^2 * A^1 具体的结合代码很容易理解的 View Code #include<iostream>#include<algorithm>#include<string>using namespace std;const int MOD = 9973;const int N = 11;int ret[N][N],init[N][N],temp[N][N];int n;void init_(){ for(int i=0;i<n;i++) for(int j=0;j<n;j++) ret[i][j]=

循环神经网络(RNN, Recurrent Neural Networks)介绍

谁说我不能喝 提交于 2020-01-20 04:45:27
原文地址: http://blog.csdn.net/heyongluoyao8/article/details/48636251# 循环神经网络(RNN, Recurrent Neural Networks)介绍    这篇文章很多内容是参考: http://www.wildml.com/2015/09/recurrent-neural-networks-tutorial-part-1-introduction-to-rnns/ ,在这篇文章中,加入了一些新的内容与一些自己的理解。   循环神经网络(Recurrent Neural Networks,RNNs)已经在众多 自然语言 处理(Natural Language Processing, NLP)中取得了巨大成功以及广泛应用。但是,目前网上与RNNs有关的学习资料很少,因此该系列便是介绍RNNs的原理以及如何实现。主要分成以下几个部分对RNNs进行介绍: 1. RNNs的基本介绍以及一些常见的RNNs(本文内容); 2. 详细介绍RNNs中一些经常使用的训练 算法 ,如Back Propagation Through Time(BPTT)、Real-time Recurrent Learning(RTRL)、Extended Kalman Filter(EKF)等学习算法,以及梯度消失问题(vanishing

循环神经网络(Recurrent Neural Networks, RNN)介绍

情到浓时终转凉″ 提交于 2020-01-20 04:44:32
目录 1 什么是RNNs 2 RNNs能干什么   2.1 语言模型与文本生成Language Modeling and Generating Text   2.2 机器翻译Machine Translation   2.3 语音识别Speech Recognition   2.4 图像描述生成 Generating Image Descriptions 3 如何训练RNNs 4 RNNs扩展和改进模型   4.1 Simple RNNsSRNs2   4.2 Bidirectional RNNs3   4.3 DeepBidirectionalRNNs4   4.4 Echo State Networks5   4.5 Gated Recurrent Unit Recurrent Neural Networks6   4.6 LSTM Netwoorks7   4.7 Clockwork RNNsCW-RNNs9 5 总结 6 参考博文 7 参考文献   这篇文章很多内容是参考: http://www.wildml.com/2015/09/recurrent-neural-networks-tutorial-part-1-introduction-to-rnns/ ,在这篇文章中,加入了一些新的内容与一些自己的理解。   循环神经网络(Recurrent Neural

VINS-mono详细解读

本小妞迷上赌 提交于 2020-01-20 03:58:54
VINS-mono详细解读 极品巧克力 前言 Vins-mono是香港科技大学开源的一个VIO算法, https://github.com/HKUST-Aerial-Robotics/VINS-Mono ,是用紧耦合方法实现的,通过单目+IMU恢复出尺度,效果非常棒。 感谢他们开源,我从中学到了非常多的知识。源码总共有15000多行,我在通读完程序之后,结合参考文献,把程序背后的算法理论都推导了一遍,总结成了本文,与各位分享。 本文目标读者:对vins-mono有一定了解的SLAM算法工程师。由于程序里有非常多的实现细节,建议读者在读本文前,先读一遍vins-mono的程序。 1.特征点跟踪 首先用 cv::goodFeaturesToTrack 在第一帧图像上面找最强的150个特征点,非极大值抑制半径为30。新的特征点都有自己的新的对应的id。然后在下一帧过来时,对这些特征点用光流法进行跟踪,在下一帧上找匹配点。然后对前后帧中这些匹配点进行校正。先对特征点进行畸变校正,再投影到以原点为球心,半径为1的球面上,再延伸到深度归一化平面上,获得最终校正后的位置。对于每对匹配点,基于校正后的位置,用F矩阵加ransac来筛选。然后再在匹配上的特征点之外的区域,用 cv::goodFeaturesToTrack 搜索最强的新的特征点,把特征点数量补上150个。 最后,把剩下的这些特征点

GML和SML映射规则

試著忘記壹切 提交于 2020-01-20 00:55:55
GML和SML原理 GML规定化(组映射) 先列出图像灰度值i,j,计算原始直方图Pr(i),列出规定直方图Pz(j),计算原始累计直方图Pi和规定累计直方图Pj,然后按照Pj到Pi寻找最接近的值存储为j,当满足给定的值多于一个时,按惯例取最小值。确定变换关系为i->j,最后列出匹配直方图P(j)。 SML规定化(单映射) 先列出图像灰度值i,j,计算原始直方图Pr(i),列出规定直方图Pz(j),计算原始累计直方图Pi和规定累计直方图Pj,然后按照Pi到Pj寻找最接近的值存储为j,当满足给定的值多于一个时,按惯例取最小值。确定变换关系为i->j,最后列出匹配直方图P(j)。 映射结果与分析 GML(组映射)映射结果 GML映射分析 先列出图像灰度值i,j,计算原始直方图Pr(i),列出规定直方图Pz(j),计算原始累计直方图Pi和规定累计直方图Pj,然后按照Pj到Pi寻找最接近的值存储为j,当满足给定的值多于一个时,按惯例取最小值。确定变换关系为i->j,最后列出匹配直方图P(j)。 SML(单映射)映射结果 SML映射分析 先列出图像灰度值i,j,计算原始直方图Pr(i),列出规定直方图Pz(j),计算原始累计直方图Pi和规定累计直方图Pj,然后按照Pi到Pj寻找最接近的值存储为j,当满足给定的值多于一个时,按惯例取最小值。确定变换关系为i->j,最后列出匹配直方图P(j)。