相機模型和對極幾何

一、相機模型

1.針孔相機模型-外參矩陣

1.世界坐標系到相機坐標系

  • 世界坐標系:可以定義空間中任意一個位置,原點位置+三個坐標軸方向=坐標系姿態(X,Y,Z)
  • 相機坐標系:定義在相機上,原點是相機中心,z軸沿著相機朝向,需要定義Y軸上下

點的世界坐標:

點相機坐標:

剛體變換:旋轉+平移 -> 齊次坐標形式(兩個坐標系的轉換)

逆變換(相機坐標系到世界坐標系):

2.相機中心在世界坐標系中的位置

:相機中心在相機坐標系中的坐標為0

相機中心在世界坐標系中的坐標

2.相機模型-內參矩陣

1.相機坐標系到歸一化像平面坐標系

歸一化像平面是虛擬的平面坐標,它與物理像平面平行,且距離相機光心距離為f=1

2.歸一化像平面坐標系到物理像平面坐標系—小孔成像過程

3.歸一化像平面到像素坐標系

一般以左上角為坐標原點,需要進行坐標系平移

整體轉換流程如下所示:

3.2D-2D的對極幾何約束

  • x1, x2像素坐標
  • x1^, x2^ 相機坐標

本質矩陣的對極約束是對相機坐標系下的對極約束。

基礎矩陣的對極約束是對像素坐標系下的對極約束。

**3.1 **2D-2D:對極幾何——基礎矩陣F

性質:

  • 3x3的矩陣,秩為2->不可逆
  • 具有7個自由度,沒有尺度少了一個自由度,秩為2少一個自由度
  • 奇異值為: [𝜎1,𝜎2,0]𝑇
  • 極線約束:

求解方法:

  • 直接線性變換法
    • 8點法
    • 最小二乘法
  • 基于RANSAC的魯棒方法

3.2 2D-2D:對極幾何——RANSAC

RANSAC——隨機一致性采樣

  • N:樣本點個數
  • K:求解模型需要最少的點的個數
  • 流程:
  • 1)隨機采樣 K 個點
  • 2)對該 K個點擬合模型
  • 3)計算其它點到擬合模型的距離 小于一定閾值,當作內點,統計內點個數
  • 4)重復 M 次,選擇內點數最多的模型
  • 5)利用所有的內點重新估計模型(可選)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/89768.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/89768.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/89768.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Git 常用命令與操作步驟

以下是 Git 常用命令與操作步驟 的整理&#xff0c;涵蓋日常開發中最核心的場景&#xff0c;適合快速查閱和上手&#xff1a;1. 初始化與克隆倉庫操作命令本地初始化倉庫git init克隆遠程倉庫git clone <倉庫URL> &#xff08;如 git clone https://gitlab.com/user/repo…

Leetcode-.283移動零

class Solution:def moveZeroes(self, nums: List[int]) -> None:"""Do not return anything, modify nums in-place instead."""pos0for i in range(len(nums)):if nums[i]!0:nums[pos],nums[i]nums[i],nums[pos]pos1本題運用雙指針來寫&…

在React中做過哪些性能優化?

1. 使用 React.memo 進行組件優化 問題:當父組件重新渲染時,子組件也會重新渲染,即使它的 props 沒有變化。 解決方案:使用 React.memo 包裹子組件,讓其只在 props 變化時才重新渲染。 const MyComponent = React.memo((props) => {// 子組件代碼 }); 2. 使用 useCa…

安裝docker可視化工具 Portainer中文版(ubuntu上演示,所有docker通用) 支持控制各種容器,容器操作簡單化 降低容器門檻

以下有免費的4090云主機提供ubuntu22.04系統的其他入門實踐操作 地址&#xff1a;星宇科技 | GPU服務器 高性能云主機 云服務器-登錄 相關兌換碼星宇社區---4090算力卡免費體驗、共享開發社區-CSDN博客 兌換碼要是過期了&#xff0c;可以私信我獲取最新兌換碼&#xff01;&a…

ansible批量部署zabbix客戶端

?ansible編寫劇本步驟 1??創建roles目錄結構2??在group_vars/all/main.yml中定義變量列表3??在tasks目錄下編寫tasks任務4??在files目錄下準備部署文件5??在templates目錄下創建j2模板文件6??在handlers目錄下編寫handlers7??在roles目錄下編寫主playbook8??運…

螞蟻數科AI數據產業基地正式投產,攜手蘇州推進AI產業落地

近日&#xff0c;螞蟻數科AI數據產業基地在太倉智匯谷科技創新園正式投產。該基地作為蘇州市首個AI數據產業基地&#xff0c;旨在通過跨行業人才與前沿技術&#xff0c;為長三角制造業、金融、醫療等領域的大模型落地提供場景化、高質量的訓練數據支撐。數據被視為AI學習的核心…

計算機的網絡體系及協議模型介紹

目錄 1、網絡協議介紹 1.1、定義 1.2、基本作用 1.3、協議的主要內容 2、網絡協議分層 2.1、協議分層原因 2.2、網絡協議分層的缺點 2.3、OSI協議和TCP/IP協議的聯系 3、TCP/IP 協議族 3.1、定義介紹 3.2、組成 1、應用層 2、運輸層 3、網絡層 3.3、底層流程 4、…

密碼管理安全防御

密碼管理是信息安全的核心環節,其目標是通過規范密碼的生成、存儲、傳輸、驗證和生命周期管理,防止未授權訪問,保護用戶賬號和系統資源的安全。以下從核心原則、技術實踐、常見問題及解決方案等方面詳細說明: 一、密碼管理的核心原則 密碼管理需遵循“安全性”與“可用性…

Java異步日志系統性能優化實踐指南:基于Log4j2異步Appender與Disruptor

Java異步日志系統性能優化實踐指南&#xff1a;基于Log4j2異步Appender與Disruptor 一、技術背景與應用場景 在高并發的后端應用中&#xff0c;日志記錄往往成為性能瓶頸之一。同步寫日志會阻塞業務線程&#xff0c;導致響應延遲&#xff1b;而簡單的異步隊列實現又可能出現積壓…

Mybatis07-緩存

一、緩存機制的原理計算機每次從mysql中執行sql語句&#xff0c;都是內存與硬盤的通信&#xff0c;對計算機來說&#xff0c;影響效率。因此使用緩存機制。1-1、MyBatis 的緩存機制&#xff1a;執行 DQL&#xff08;select 語句&#xff09;的時候&#xff0c;將查詢結果放到緩…

【機器學習深度學習】LoRA 與 QLoRA:大模型高效微調的進階指南

目錄 前言 一、LoRA&#xff1a;低秩微調的經典之作 二、QLoRA&#xff1a;效率與精度的升級版 三、LoRA vs QLoRA&#xff1a;如何選擇&#xff1f; 3.1 性能維度對比 3.2 根據「顯卡資源」選擇 3.3 根據「任務類型與目標」選擇 3.4 根據「模型規模」選擇 3.5 根據…

教育行業網絡升級最佳實踐:SD-WAN、傳統方案與混合方案對比分析

隨著教育行業的數字化轉型不斷深入&#xff0c;網絡的穩定性、靈活性和安全性成為各類教育應用&#xff08;如遠程課堂、智慧校園和教育云平臺&#xff09;的核心支撐。然而&#xff0c;傳統的 MPLS 專線方案成本高、擴展性差&#xff0c;而純 SD-WAN 的方案在極高可靠性要求的…

[黑馬頭條]-文章列表加載

目錄 1.1)需求分析 1.2)表結構分析 ap_article 文章基本信息表 ap_article_config 文章配置表 ap_article_content 文章內容表 導入文章數據庫 實現思路 接口定義 功能實現 定義接口 編寫mapper文件 編寫業務層代碼 實現類&#xff1a; 定義常量類 編寫控制器代碼 …

使用TIANAI-CAPTCHA進行行為驗證碼的生成和緩存的二次校驗

1.導入依賴&#xff1a;<dependency><groupId>cloud.tianai.captcha</groupId><artifactId>tianai-captcha-springboot-starter</artifactId><version>1.5.2</version> </dependency>2.在application.yml中配置驗證碼相關配置…

db.refresh()的重復使用和db.rollback()

db.refresh()在 SQLAlchemy 中&#xff0c;db.refresh() 用于從數據庫中重新加載對象的狀態&#xff0c;確保對象屬性與數據庫中的實際數據保持一致。下面詳細介紹其使用場景和作用&#xff1a;1.獲取數據庫生成的值當數據庫自動生成字段&#xff08;如自增 ID、默認值、觸發器…

《Web安全之機器學習入門》讀書筆記總結

目錄 一、案例總結 1、基礎知識 &#xff08;1&#xff09;第1章 通向智能安全的旅程 &#xff08;2&#xff09;第2章 打造機器學習工具箱 &#xff08;3&#xff09;第3章 機器學習概述 &#xff08;4&#xff09;第4章 Web安全基礎 2、安全案例 &#xff08;1&#…

github 近期熱門項目-2025.7.20

github 近期熱門項目-2025.7.20 GitHub 上近期熱門或趨勢項目的信息可以從多個來源獲取,包括 GitHub Trending 頁面、技術社區推薦、以及各大技術媒體的報道。以下是一些近期在 GitHub 上備受關注的項目類別和示例: 1. AI 與機器學習項目 隨著 AI 技術的快速發展,許多開源…

使用Python清理Excel中的空行和單元格內部空行:初學者指南

前言 作為數據處理人員或辦公室工作者,你可能經常遇到Excel文件中存在多余空行或單元格內有多余空行的問題。這些不必要的空白會影響數據的美觀性,更重要的是會給后續的數據分析、合并或處理帶來麻煩。本文將介紹一個簡單的Python腳本,幫助你高效地解決這些問題。 很多工具…

華為歐拉系統(openEuler)安裝 Docker 容器完整教程

&#x1f525; 前言&#xff1a;在國產化操作系統日益普及的當下&#xff0c;華為歐拉系統&#xff08;openEuler&#xff09;憑借其穩定性和安全性受到不少用戶青睞。但 Docker 官方暫未提供對 openEuler 的原生支持&#xff0c;不過好在 openEuler 與 CentOS 底層架構兼容&am…

數據結構--JDK17新增語法和順序表

一.yield關鍵字用于switch語句上的case代碼塊的返回值舉例&#xff1a;二.var關鍵字作用&#xff1a;當類型名字較長時可以簡化代碼。注意事項&#xff1a;1.不能使用var來聲明字段2.不能使用var來聲明方法參數3.不能使用var來聲明方法返回類型4.使用時必須初始化&#xff0c;但…