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

【计算机视觉】角点检测(Harris、SIFT)

Harris

角点指的是窗口延任意方向移动,都有很大变化量的点。

用数学公式表示为:

E(u,v)反映的移动后窗口的差异,w(x,y)为每个像素的点权值,I(x+u,y+v)是移动的像素值,I(x,y)是移动前的像素值。

将E(u,v)进行泰勒展开,直接建立E(u,v)和u,v的联系

最终:

M称为二阶矩矩阵(second moment matrix)

I_x,I_y 互不影响:

M=\begin{bmatrix} \lambda _1 & 0\\0 & \lambda_2 \end{bmatrix}

假设 \lambda 2 = 0

只有在u方向上变化是E才会变,因此只有 \lambda 1, \lambda 2 都不为0时(x,y)才是角点。

I_x,I_y 相关可以通过正交化变成前面的形式:

M = \begin{bmatrix} a &c \\c & d \end{bmatrix}= R^{-1}\begin{bmatrix} \lambda_1 &0 \\ 0&\lambda_2 \end{bmatrix}R= R^{T}\begin{bmatrix} \lambda_1 &0 \\ 0&\lambda_2 \end{bmatrix}R

\lambda_1,\lambda_2就反映了点在某个方向上的变化率,之后当\lambda_1,\lambda_2都很大时,该点才是角点。

为了减少计算可以用R来判定是否为角点

SIFT

Harris角点检测不具有尺度不变性,窗口大小不同,响应的结果也不同。

所谓的尺度不变性,指的是提取器能够对不同的尺度下的同一个点,有比较大的响应值。

接下来,介绍的SIFT就是具有尺度不变性的特征提取算法。

在边缘提取的时候,用高斯一阶导对信号进行卷积,响应值最大的就是边界。

如果用高斯二阶导对信号进行卷积,0点就是边界点(二阶导等于0的点,对应一阶导的极值点)如果用高斯二阶导在不同的信号上进行卷积,当信号宽度与高斯滤波核匹配的时候,就能得到绝对值最大的信号,这样就建立了尺度和滤波核之间的联系。

用不同的Laplacian对同一个信号进行卷积的时候,随着\sigma的增大,响应值会越来越不明显。

因为\sigma作为分母,\sigma越来越大,卷积后的信号值就会越来越小 ,对于一阶偏导需要对卷积后的信号补偿\sigma,对于二阶偏导需要对卷积后的信息补偿\sigma ^2 ,将响应值固定在一个尺度上。

补偿之后,就能用\sigma反映尺度

二维Laplacian高斯卷积核如下图所示:

当半径值正好与Laplacian为0的值匹配上的时候,响应值最大

假设这个圆是二进制的,简单来说就是找到一个合适的laplacian卷积核,卷积之后使得laplacian卷积核中小于0的部分权值为0,laplacian大于0的部分权值为1。

找到合适的laplacian卷积核,它的\sigma与信号半径有对应关系

SIFT使用的是DoG模版(两个高斯模版的差分),拥有和Laplacian类似的特性

一般而言,随着\sigma的增大,窗口也会变大,Laplacian每一次都会在原图进行卷积,卷积的成本就会增大。而DoG是利用高斯卷积核来做的,可以通过对较小\sigma的卷积核卷积得到较大\sigma的卷积核,减小卷积成本。

在找合适的尺度空间的时候,会进行非极大值抑制,只有当该点是27(上下两个尺度18个,当前尺度9个)个领接点中的极值时,认为该点为特征点,因此,有效DoG 个数为S时,总共的DoG个数为S+2(首尾不能构成三个尺度空间)。

每一个Octave表示对GuassianSpace缩小1/2后卷积,当我们需要更大的尺度的时候,需要跟大的sigma,意味着更大的卷积核更多的计算。SIFT算法中,将这样操作可以转换为,将图像缩小1/2,得到结果后将响应的sigma放大2倍,这样减少了计算的同时也得到了更大的尺度空间。

K的取值同样也很讲究,k=2^{1/s} ,s为有效DoG个数。

K这样取值的好处是,对应高斯空间来说,只要将倒数第三图下采样2倍就能得到下一个Octave的第一个图,对于DoG空间来说,当前最后一个有效DoG的sigma与下一个Octave的第一个有效DoG的sigma是连续的(如图所示)

相关文章:

【计算机视觉】角点检测(Harris、SIFT)

Harris 角点指的是窗口延任意方向移动,都有很大变化量的点。 用数学公式表示为: E(u,v)反映的移动后窗口的差异,w(x,y)为每个像素的点权值,I(xu,yv)是移动的像素值,I(x,y)是移动前的像素值。 将E(u,v)进行泰勒展开&am…...

Python实现张万森下雪了的效果

系列文章 序号文章目录直达链接表白系列1浪漫520表白代码https://want595.blog.csdn.net/article/details/1306668812满屏表白代码https://want595.blog.csdn.net/article/details/1297945183跳动的爱心https://want595.blog.csdn.net/article/details/1295031234漂浮爱心http…...

最长的指定瑕疵度的元音子串 (100%用例)C卷 (JavaPythonNode.jsC语言C++)

开头和结尾都是元音字母(aeiouAEIOU)的字符串为 元音字符串 ,其中混杂的非元音字母数量为其 瑕疵度 。比如 : “ a ” 、 “ aa ”是元音字符串,其瑕疵度都为 0 “ aiur ”不是元音字符串(结尾不是元音字符) “ abira ”是元音字符串,其瑕…...

Qt/C++音视频开发62-电子放大/按下选择区域放大显示/任意选取区域放大

一、前言 电子放大这个功能思考了很久,也是一直拖到近期才静下心来完整这个小功能,这个功能的前提,主要得益于之前把滤镜打通了,玩出花样来了,只要传入对应的滤镜字符串,就可以实现各种各样的效果&#xf…...

Vue(一):Vue 入门与 Vue 指令

Vue 01. Vue 快速上手 1.1 Vue 的基本概念 用于 构建用户界面 的 渐进性 框架 构建用户界面:基于数据去渲染用户看到的界面渐进式:不需要学习全部的语法就能完成一些功能,学习是循序渐进的框架:一套完整的项目解决方案&#x…...

C语言——最古老的树

归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍 收藏⭐ 留言​📝 缺乏明确的目标,一生将庸庸…...

dnSpy调试工具断点信息是保存在哪里的呢

本人是C#开发,dnSpy工具用的比较多,有时候想把有用的断点信息保留下来,挪到别的机器上也能使用。我做这个事情的主要目标是在调试我们公司的程序时,顺带把访问的sql也进行输出,就可以偷懒不用每次都去查阅代码了&#…...

融汇贯通 —— 2023年技术与心灵的双重成长旅程

当我们站在2023年的岁末,回望这一年赋予我们的经历和挑战,心中涌动的感慨与启示像朝日初升的光芒,照亮脚下的路,亦照见心中的路。在此,我想分享几个方面的感悟和成长,愿它们能有所触动,成为您前…...

基于element ui封装table组件

效果图&#xff1a; 1.封装表格代码如下 <template> <div><div class"TableList"><el-tablev-loading"loading"selection-change"selectionChange"class"table":data"tableData":border"hasBorde…...

MySQL进阶之(一)逻辑架构

一、逻辑架构 1.1 逻辑架构剖析1.1.1 连接层1.1.2 服务层01、基础服务组件02、SQL Interface&#xff1a;SQL 接口03、Parser&#xff1a;解析器04、Optimizer&#xff1a;查询优化器05、Caches & Buffers&#xff1a; 查询缓存组件 1.1.3 引擎层1.1.4 存储层1.1.5 总结 1.…...

【前端学习指南】开启 Vue 的学习之旅

&#x1f36d; Hello&#xff0c;我是爱吃糖的范同学 秋招终于结束了&#xff08;拿到了比较满意的 offer&#x1f389;&#x1f389;&#x1f389;&#xff0c;后续也会有“面筋”系类给大家分享&#xff09;&#xff0c;目前我终于也有足够的时间和精力来完成我 23 年遗留下…...

编程笔记 html5cssjs 011 HTML页面划分

编程笔记 html5&css&js 011 HTML页面划分 HTML的框架、区块和布局是什么&#xff0c;它们之前的关系是怎样的&#xff1f;框架注意 接下来要看一下网页内的划分。通过框架、区块及布局等方式&#xff0c;将网页从一个长方形整体划分为若干个部分&#xff0c;以合理展示…...

Centos7:Jenkins+gitlab+node项目启动(2)

Centos7&#xff1a;Jenkinsgitlabnode项目启动(1) Centos7&#xff1a;Jenkinsgitlabnode项目启动(1)-CSDN博客 Centos7&#xff1a;Jenkinsgitlabnode项目启动(2) Centos7&#xff1a;Jenkinsgitlabnode项目启动(2)-CSDN博客 Centos7&#xff1a;Jenkinsgitlabnode项目启…...

Qt+Opencv:人脸检测

话接上一篇&#xff0c;我们仍使用在上篇《QtOpencv&#xff1a;Qt中部署opencv》创建的Qt项目来测试opencv提供的sample。 在正式开始本篇之前&#xff0c;我们先说做一下准备工作&#xff1a; 一、opencv官方文档 学习最权威和最可靠的方式&#xff0c;就是阅读官方文档和…...

ChatGPT在地学、GIS、气象、农业、生态、环境等领域中的高级应用

以ChatGPT、LLaMA、Gemini、DALLE、Midjourney、Stable Diffusion、星火大模型、文心一言、千问为代表AI大语言模型带来了新一波人工智能浪潮&#xff0c;可以面向科研选题、思维导图、数据清洗、统计分析、高级编程、代码调试、算法学习、论文检索、写作、翻译、润色、文献辅助…...

Unreal Engine游戏引擎的优势

在现在这个繁荣的游戏开发行业中&#xff0c;选择合适的游戏引擎是非常重要的。其中&#xff0c;Unreal Engine作为一款功能强大的游戏引擎&#xff0c;在业界广受赞誉。那Unreal Engine游戏引擎究竟有哪些优势&#xff0c;带大家简单的了解一下。 图形渲染技术 Unreal Engin…...

[OCR]Python 3 下的文字识别CnOCR

目录 1 CnOCR 2 安装 3 实践 1 CnOCR CnOCR 是 Python 3 下的文字识别&#xff08;Optical Character Recognition&#xff0c;简称OCR&#xff09;工具包。 工具包支持简体中文、繁体中文&#xff08;部分模型&#xff09;、英文和数字的常见字符识别&#xff0c;支持竖…...

字符串序列判定(100%用例)C卷 (JavaPythonNode.jsC语言C++)

输入两个字符串 S 和 L ,都只包含英文小写字母。 S 长度 <=100 , L 长度 <=500,000 。判定 S 是否是 L 的有效字串。 判定规则: S 中的每个字符在 L 中都能找到(可以不连续),且 S 在L中字符的前后顺序与 S 中顺序要保持一致。(例如, S="ace" 是 L=&q…...

ERROR: No matching distribution found for torch==2.0.1解决方案

大家好&#xff0c;我是水滴~~ 本文主要介绍在安装 stable-diffusion-webui 时出现的 ERROR: No matching distribution found for torch2.0.1 问题的解决方案&#xff0c;希望能对你有所帮助。 《Python入门核心技术》专栏总目录・点这里 文章目录 问题描述解决方案离线安装 …...

ClickHouse基础知识(五):ClickHouse的SQL 操作

基本上来说传统关系型数据库&#xff08;以 MySQL 为例&#xff09;的 SQL 语句&#xff0c;ClickHouse 基本都支持&#xff0c; 这里不会从头讲解 SQL 语法只介绍 ClickHouse 与标准 SQL&#xff08;MySQL&#xff09;不一致的地方。 1. Insert 基本与标准 SQL&#xff08;My…...

【决胜公务员考试】求职OMG——见面课测验1

2025最新版&#xff01;&#xff01;&#xff01;6.8截至答题&#xff0c;大家注意呀&#xff01; 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:&#xff08; B &#xff09; A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

Android15默认授权浮窗权限

我们经常有那种需求&#xff0c;客户需要定制的apk集成在ROM中&#xff0c;并且默认授予其【显示在其他应用的上层】权限&#xff0c;也就是我们常说的浮窗权限&#xff0c;那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...

#Uniapp篇:chrome调试unapp适配

chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器&#xff1a;Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...

20个超级好用的 CSS 动画库

分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码&#xff0c;而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库&#xff0c;可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画&#xff0c;可以包含在你的网页或应用项目中。 3.An…...

【笔记】WSL 中 Rust 安装与测试完整记录

#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统&#xff1a;Ubuntu 24.04 LTS (WSL2)架构&#xff1a;x86_64 (GNU/Linux)Rust 版本&#xff1a;rustc 1.87.0 (2025-05-09)Cargo 版本&#xff1a;cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...

Selenium常用函数介绍

目录 一&#xff0c;元素定位 1.1 cssSeector 1.2 xpath 二&#xff0c;操作测试对象 三&#xff0c;窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四&#xff0c;弹窗 五&#xff0c;等待 六&#xff0c;导航 七&#xff0c;文件上传 …...

uniapp手机号一键登录保姆级教程(包含前端和后端)

目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号&#xff08;第三种&#xff09;后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...

什么是VR全景技术

VR全景技术&#xff0c;全称为虚拟现实全景技术&#xff0c;是通过计算机图像模拟生成三维空间中的虚拟世界&#xff0c;使用户能够在该虚拟世界中进行全方位、无死角的观察和交互的技术。VR全景技术模拟人在真实空间中的视觉体验&#xff0c;结合图文、3D、音视频等多媒体元素…...

全面解析数据库:从基础概念到前沿应用​

在数字化时代&#xff0c;数据已成为企业和社会发展的核心资产&#xff0c;而数据库作为存储、管理和处理数据的关键工具&#xff0c;在各个领域发挥着举足轻重的作用。从电商平台的商品信息管理&#xff0c;到社交网络的用户数据存储&#xff0c;再到金融行业的交易记录处理&a…...

Java并发编程实战 Day 11:并发设计模式

【Java并发编程实战 Day 11】并发设计模式 开篇 这是"Java并发编程实战"系列的第11天&#xff0c;今天我们聚焦于并发设计模式。并发设计模式是解决多线程环境下常见问题的经典解决方案&#xff0c;它们不仅提供了优雅的设计思路&#xff0c;还能显著提升系统的性能…...