?BEV和OCC學習-3:mmdet3d 坐標系

目錄

坐標系

轉向角 (yaw) 的定義

框尺寸的定義

與支持的數據集的原始坐標系的關系

KITTI

Waymo

NuScenes

Lyft

ScanNet

SUN RGB-D

S3DIS


坐標系

坐標系 — MMDetection3D 1.4.0 文檔https://mmdetection3d.readthedocs.io/zh-cn/latest/user_guides/coord_sys_tutorial.html

  • 相機坐標系 – 大多數相機的坐標系,在該坐標系中 y 軸正方向指向地面,x 軸正方向指向右側,z 軸正方向指向前方。
  • 激光雷達坐標系 – 眾多激光雷達的坐標系,在該坐標系中 z 軸負方向指向地面,x 軸正方向指向前方,y 軸正方向指向左側。
  • 深度坐標系 – VoteNet、H3DNet 等模型使用的坐標系,在該坐標系中 z 軸負方向指向地面,x 軸正方向指向右側,y 軸正方向指向前方。

三個坐標系的圖示如下:

上面三張圖是 3D 坐標系,下面三張圖是鳥瞰圖。以后我們將堅持使用本教程中定義的三個坐標系。

轉向角 (yaw) 的定義

在目標檢測中,我們選擇一個軸作為重力軸,并在垂直于重力軸的平面 $\Pi$ 上選取一個參考方向,那么參考方向的轉向角為 0,在Pi上的其他方向有非零的轉向角,其角度取決于其與參考方向的角度。目前,對于所有支持的數據集,標注不包括俯仰角 (pitch) 和滾動角 (roll),這意味著我們在預測框和計算框之間的重疊時只需考慮轉向角 (yaw)。

在 MMDetection3D 中,所有坐標系都是右手坐標系,這意味著如果從重力軸的負方向(軸的正方向指向人眼)看,轉向角 (yaw) 沿著逆時針方向增加

下圖顯示,在右手坐標系中,如果我們設定 x 軸正方向為參考方向,那么 y 軸正方向的轉向角 (yaw) 為\frac{Pi}{2}

                     z 上  y 前 (yaw=0.5*pi)^    ^|   /|  /| /|/
左 (yaw=pi)    ------ 0 ------> x 右 (yaw=0)

對于一個框來說,其轉向角 (yaw) 的值等于其方向減去一個參考方向。在 MMDetection3D 的所有三個坐標系中,參考方向總是 x 軸的正方向,而如果一個框的轉向角 (yaw) 為 0,則其方向被定義為與 x 軸平行。框的轉向角 (yaw) 的定義如下圖所示。

  y 前^      框的方向 (yaw=0.5*pi)/|\        ^|        /|\|     ____|____|    |    |    ||    |    |    |
__|____|____|____|______\ x 右|    |    |    |      /|    |    |    ||    |____|____||

框尺寸的定義

框尺寸的定義與轉向角 (yaw) 的定義是分不開的。在上一節中,我們提到如果一個框的轉向角 (yaw) 為 0,它的方向就被定義為與 x 軸平行。那么自然地,一個框對應于 x 軸的尺寸應該是 $dx$。但是,這在某些數據集中并非總是如此(我們稍后會解決這個問題)。

下圖展示了 x 軸和dx,y 軸和dy 對應的含義。

y 前^      框的方向 (yaw=0.5*pi)/|\        ^|        /|\|     ____|____|    |    |    ||    |    |    | dx
__|____|____|____|______\ x 右|    |    |    |      /|    |    |    ||    |____|____||         dy

注意框的方向總是和dx 邊平行。

y 前^     _________/|\   |    |    ||    |    |    ||    |    |    | dy|    |____|____|____\  框的方向 (yaw=0)|    |    |    |    /
__|____|____|____|_________\ x 右|    |    |    |         /|    |____|____||         dx|

與支持的數據集的原始坐標系的關系

KITTI

KITTI數據集的原始標注是在相機坐標系下的,詳見?get_label_anno。在 MMDetection3D 中,為了在 KITTI 數據集上訓練基于激光雷達的模型,首先將數據從相機坐標系轉換到激光雷達坐標,詳見?get_ann_info。對于訓練基于視覺的模型,數據保持在相機坐標系不變

在 SECOND 中,框的激光雷達坐標系定義如下(鳥瞰圖):

對于每個框來說,尺寸為 $(w, l, h)$,轉向角 (yaw) 的參考方向為 y 軸正方向。更多細節請參考代碼庫。

我們的激光雷達坐標系有兩處改變:

  • 轉向角 (yaw) 被定義為右手而非左手,從而保持一致性;

  • 框的尺寸為 $(l, w, h)$ 而非 $(w, l, h)$,由于在 KITTI 數據集中 $w$ 對應 $dy$,$l$ 對應 $dx$。

Waymo

我們使用 Waymo 數據集的 KITTI 格式數據。因此,在我們的實現中 KITTI 和 Waymo 也共用相同的坐標系。

NuScenes

NuScenes 提供了一個評估工具包,其中每個框都被包裝成一個?Box?實例。Box?的坐標系不同于我們的激光雷達坐標系,在?Box?坐標系中,前兩個表示框尺寸的元素分別對應 $(dy, dx)$ 或者 $(w, l)$,和我們的表示方法相反。更多細節請參考 NuScenes?教程。讀者可以參考?NuScenes 開發工具,了解?NuScenes 框?的定義和?NuScenes 評估的過程。

Lyft

就涉及坐標系而言,Lyft 和 NuScenes 共用相同的數據格式。請參考官方網站獲取更多信息。

ScanNet

ScanNet 的原始數據不是點云而是網格,需要在我們的深度坐標系下進行采樣得到點云數據。對于 ScanNet 檢測任務,框的標注是軸對齊的,并且轉向角 (yaw) 始終是 0。因此,我們的深度坐標系中轉向角 (yaw) 的方向對 ScanNet 沒有影響。

SUN RGB-D

SUN RGB-D 的原始數據不是點云而是 RGB-D 圖像。我們通過反投影,可以得到每張圖像對應的點云,其在我們的深度坐標系下。但是,數據集的標注并不在我們的系統中,所以需要進行轉換。

將原始標注轉換為我們的深度坐標系下的標注的轉換過程請參考?sunrgbd_data_utils.py。

S3DIS

在我們的實現中,S3DIS 與 ScanNet 共用相同的坐標系。然而 S3DIS 是一個僅限于分割任務的數據集,因此沒有標注是坐標系敏感的。

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

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

相關文章

Redis高可用架構

概述 Redis作為常用的緩存中間件,因其高性能,豐富的數據結構,使用簡單等,常被用在需要一定高性能的To C業務場景中,如「秒殺場景」「用戶信息中心」「帖子」「群聊」等等大家常見的業務場景中,以提高服務的…

使用WPF的Microsoft.Xaml.Behaviors.Wpf中通用 UI 元素事件

Nuget下載之后記得要先引用下面的 xmlns:i"http://schemas.microsoft.com/xaml/behaviors" <!-- 鼠標事件 --> <i:EventTrigger EventName"MouseEnter"/> <!-- 鼠標進入 --> <i:EventTrigger EventName"MouseLeave"/&g…

敏捷開發中如何避免過度加班

在敏捷開發過程中避免過度加班&#xff0c;需要明確敏捷原則、合理規劃迭代任務、加強團隊溝通、優化流程效率、設定合理的工作負荷、注重團隊士氣和成員健康。明確敏捷原則&#xff0c;即保證可持續發展的步調&#xff0c;避免頻繁地變更需求、過度承諾任務量。合理規劃迭代任…

JSON解析崩潰原因及解決方案

問題記錄&#xff1a; /************************************************| * 描述: 將ID124執行NFC操作-JSON解析為結構體* 函數名: cJSON_ID124_to_struct* 參數[ I]: *json_string 待解析的指針* 參數[II]: *wireless_rxd 結構體指針* 返回: 成功返回0 失…

業務系統對接大模型的基礎方案:架構設計與關鍵步驟

業務系統對接大模型&#xff1a;架構設計與關鍵步驟 在當今數字化轉型的浪潮中&#xff0c;大語言模型&#xff08;LLM&#xff09;已成為企業提升業務效率和創新能力的關鍵技術之一。將大模型集成到業務系統中&#xff0c;不僅可以優化用戶體驗&#xff0c;還能為業務決策提供…

Edge(Bing)自動領積分腳本部署——基于python和Selenium(附源碼)

微軟的 Microsoft Rewards 計劃可以通過 Bing 搜索賺取積分&#xff0c;積分可以兌換禮品卡、游戲等。每天的搜索任務不多&#xff0c;我們可以用腳本自動完成&#xff0c;提高效率&#xff0c;解放雙手。 本文將手把手教你如何部署一個自動刷積分腳本&#xff0c;并解釋其背…

前端基礎之《Vue(19)—狀態管理》

一、什么是狀態管理 1、Vue版本問題 Vue2 Vuex3 Vue3 Vuex4 / Pinia2 在使用任何技術的時候&#xff0c;都先要去搜索一下版本&#xff0c;你的版本和腳手架環境是否兼容。 2、安裝Vuex yarn add vuex3.6.2 3、狀態管理 狀態&#xff0c;在應用程序中表示數據&#xff0c…

【圖像處理基石】如何進行圖像畸變校正?

圖像畸變校正常用于計算機視覺、攝影測量學和機器人導航等領域&#xff0c;能夠修正因鏡頭光學特性或傳感器排列問題導致的圖像失真。下面我將介紹幾種常用的圖像畸變校正算法&#xff0c;并提供Python實現和測試用例。 常用算法及Python實現 1. 徑向畸變校正 徑向畸變是最常…

藍橋杯_DS18B20溫度傳感器---新手入門級別超級詳細解析

目錄 一、引言 DS18B20的原理圖 單總線簡介&#xff1a; ?編輯暫存器簡介&#xff1a; DS18B20的溫度轉換與讀取流程 二、代碼配置 maic文件 疑問 關于不同格式化輸出符號的使用 為什么要rd_temperature()/16.0&#xff1f; onewire.h文件 這個配置為什么要先讀lo…

MySQL的并發事務問題及事務隔離級別

一、并發事務問題 1). 贓讀&#xff1a;一個事務讀到另外一個事務還沒有提交的數據。 比如 B 讀取到了 A 未提交的數據。 2). 不可重復讀&#xff1a;一個事務先后讀取同一條記錄&#xff0c;但兩次讀取的數據不同&#xff0c;稱之為不可重復讀。 事務 A 兩次讀取同一條記錄&…

密碼學基礎——SM4算法

博客主頁&#xff1a;christine-rr-CSDN博客 ????專欄主頁&#xff1a;密碼學 &#x1f4cc; 【今日更新】&#x1f4cc; 對稱密碼算法——SM4 目錄 一、國密SM系列算法概述 二、SM4算法 2.1算法背景 2.2算法特點 2.3 基本部件 2.3.1 S盒 2.3.2 非線性變換 ?編輯…

練習:對象數組 4

定義數組存儲 4 個女朋友的對象。女朋友的屬性&#xff1a;姓名、年齡、性別、愛好&#xff1b;要求1&#xff1a;計算出四個女朋友的平均年齡&#xff1b;要求2&#xff1a;統計年齡比平均值低的女朋友有幾個&#xff1f;并把他們的所有信息打印出來。 代碼&#xff1a; //對…

React Hooks 基礎指南

React Hooks 是 React 16.8 引入的重要特性&#xff0c;它允許開發者在函數組件中使用狀態和其他 React 特性。本文將詳細介紹 6 個最常用的 React Hooks。 1. useState useState 是最常用的 Hook&#xff0c;用于在函數組件中添加 state。 import React, { useState } from…

【Python 算法零基礎 4.排序 ⑥ 快速排序】

既有錦繡前程可奔赴&#xff0c;亦有往日歲月可回首 —— 25.5.25 選擇排序回顧 ① 遍歷數組&#xff1a;從索引 0 到 n-1&#xff08;n 為數組長度&#xff09;。 ② 每輪確定最小值&#xff1a;假設當前索引 i 為最小值索引 min_index。從 i1 到 n-1 遍歷&#xff0c;若找到…

處理git沒做修改,但是文件顯示變更的情況

使用 TortoiseGit&#xff08;小烏龜 Git&#xff09; 時遇到 “文件內容沒改&#xff0c;但顯示為變更&#xff0c;提示有 n 行刪除、n 行添加”&#xff0c;你可以按照以下步驟操作來排查并解決問題&#xff1a; ? 一、定位問題根源&#xff08;是否為行尾差異&#xff09;…

智慧貨運飛船多維度可視化管控系統

圖撲搭建智慧貨運飛船可視化系統&#xff0c;借數字孿生技術&#xff0c;高精度復刻貨運飛船外觀、結構與運行場景。整合多維度數據&#xff0c;實時呈現飛行狀態、設備參數等信息&#xff0c;助力直觀洞察貨運飛船運行邏輯&#xff0c;為航天運維、任務推演及決策提供數字化支…

maven微服務${revision}依賴打包無法識別

1、場景描述 我現在又一個微服務項目&#xff0c;父pom的版本&#xff0c;使用<properties>定義好&#xff0c;如下所示&#xff1a; <name>ypsx-finance-center</name> <artifactId>ypsx-finance</artifactId> <packaging>pom</pack…

詳解代理型RAG與MCP服務器集成

檢索增強型生成(RAG)將語言模型與外部知識檢索相結合,讓模型的回答基于最新的事實,而不僅僅是其訓練數據呢。 RAG(高級別) 在 RAG 流程中,用戶查詢用于搜索知識庫(通常通過向量數據庫中的嵌入來實現),并將檢索到的最相關文檔“增強”到模型的提示中,以幫助生成事實…

智能倉儲的未來:自動化、AI與數據分析如何重塑物流中心

當倉庫學會“思考”&#xff0c;物流的終極形態正在誕生 想象這樣的場景&#xff1a; 凌晨3點&#xff0c;某物流中心燈火通明卻空無一人。AGV機器人集群根據實時訂單動態規劃路徑&#xff1b;AI視覺系統在0.1秒內掃描包裹信息&#xff1b;數字孿生平臺正模擬次日峰值流量壓力…

如何防止服務器被用于僵尸網絡(Botnet)攻擊 ?

防止服務器被用于僵尸網絡&#xff08;Botnet&#xff09;攻擊是關鍵的網絡安全措施之一。僵尸網絡是黑客利用大量被感染的計算機、服務器或物聯網設備來發起攻擊的網絡。以下是關于如何防止服務器被用于僵尸網絡攻擊的技術文章&#xff1a; 防止服務器被用于僵尸網絡&#xff…