nuscenes數據集分析

nuscenes數據集分析

標注與總體介紹

在這里插入圖片描述

nuscenes包含有相機、激光雷達、毫米波雷達、IMU與GPS等設備提供的數據。它的數據采集了1000個場景,每個場景大約有20s,針對目標檢測任務,對23類物體進行標注,且以2Hz的頻率提供精確的三維目標框標注。此外,還有物體級別的屬性如可見度、姿態、活動狀態等。
具體來說,對于標注數據,標注的要求有以下幾點:

  • 一個物體不超過一個框,確保所有點在框中且在圖像視角看著正常。
  • 如果對于一個物體能夠判斷出他的位置形狀等,且至少有一個點云,就標注它。
  • 框要緊湊,如果目標物體有外延如胳膊腿等要包含進來,但像車的側邊鏡或超過一定高度的外延不需要考慮。如果目標攜帶其他物體,需要包含進來,若多個目標攜帶一個東西,則這個東西只能包含在一個框中。
  • 如果由于定位誤差導致一個靜止的物體移動,同樣要標注框。對于點云稀疏的物體,用圖像輔助框進行調整。

標注的物體類別有23類,

  • 此外他們還有屬性Visibility,它代表該物體在全景視角下的可見程度。
  • 對于有四個輪子以上的汽車有屬性Vehicle Activity,它有三種選擇,Parked代表靜止的,Stopped代表靜止的,但是司機在上面,Moving代表在移動。
  • 對于自行車、摩托車與個人便攜移動工具,有屬性Has Ride,它有Yes與No代表是否有人在上面。
  • 對于場景中的人有屬性Human Activity,可以有Sitting or Lying Down,Standing與Moving三種。

在元數據中,maps文件夾就是我們采集場景的4張地圖。
在這里插入圖片描述

數據格式介紹

所有的標注數據與元數據都以關系數據庫的形式組織起來,接下來將分別介紹。
在這里插入圖片描述
下面三個記錄了我們需要標注的屬性

  • 對于visibility.json,記錄了四種不同程度的可見程度。
  • 對于attribute.json,記錄了動態物體的運動狀態,也就是上一節說到的Vehicle Activity等等,通過token進行標識。
  • 對于category,記錄的就是類別信息,一共有23類。

下面四個則是我們汽車的一些記錄信息,如傳感器參數,地圖等。

  • 對于log,記錄的是數據采集的日志信息,它包含以下的信息,vehicle代表車名,date_captured代表數據采集日期,location代表采集地點,logfile代表數據日志文件名,可能多個場景對應同個日志。
  • 對于map,它描述了每段數據采集的語義地圖,包含有category表示語義先驗圖,filename代表地圖文件路徑,log_tokens為一個列表,包含所有在該地圖下進行數據采集的log_token。
  • 對于sensor,它記錄了我們的傳感器,即6個相機,lidar與radar等,包含有channel表示它具體的通道,如CAM_FRONT,CAM_BACK_LEFT等等,modality標識它的傳感器類別。
  • 對于calibrated_sensor,他記錄了對傳感器標定的參數信息,其中的sensor_token定義傳感器對象,translation與rotation則是外參,camera_intrinsic則是相機內參矩陣。

下面四個是關于具體采集數據時的一些信息記錄。

  • 對于ego_pose,他記錄了具體時間戳下的車輛相對于世界坐標系的外參,即translation與rotation,還有timestamp記錄時間戳。
  • 對于scene,他是從log中提取的連續的20s長的連續幀,可能多個scene取自一個log。包含的信息有,log_token告訴我們來自哪個log,nbr_samples告訴我們samples的數量,first_sample_token代表該場景下第一個sample的token,last_sample_token代表該場景下最后一個sample,name即場景的名字,description是場景詳細描述。
  • 對于sample,它代表關鍵采樣幀,頻率為2HZ,包含以下信息,timestamp代表時間戳信息,prev與next代表前一個與下一個sample的token,scene_token對應的是該sample屬于的場景token。
  • 對于sample_data,代表傳感器采集的原始數據。sample_token為所屬的sample的token,要選擇時間上最接近的;ego_pose_token代表汽車位姿信息;calibrated_sensor_token代表傳感器內外參信息;filename代表文件的相對路徑;fileformat為數據文件的格式;width與height代表如果是圖片,它的寬高;timestamp為時間戳;is_key_frame代表sample_data是否是關鍵幀。next與prev代表在該場景下該傳感器順著時間向前向后的一個Sample data。

下面是標注信息的介紹

  • 對于instance,代表的就是單個物體實例。category_token指向類別,nbr_annotations為該實例被標注的數量。first_annotation_token與last_annotation_token指向sample_annotation,代表第一次與最后一次被標注的token,指向sample_annotation。
  • 對于sample_annotation,它是坐標框信息,定義了在sample中看到的物體的位置,所有位置信息都是全局坐標系下的,sample_token代表對應的sample,instance_token代表對應的實例,attribute_tokens與attribute_tokens即屬性,translation代表框的中心位置,size代表框的大小,rotation代表框的朝向,num_lidar_pts代表此邊界框內的激光雷達點數,next與prev指向自身,代表同一物體之前之后的下一個標注token。

nuscenes數據集的使用

在這里以mini數據集為例

#導入nuscenes開發包,并把數據集加載進來,得到對象nusc。
from nuscenes.nuscenes import NuScenes
nusc = NuScenes(version='v1.0-mini', dataroot='/data/sets/nuscenes', verbose=True)
#可以使用nusc訪問我們的場景,具體展示如下
my_scene = nusc.scene[0]
print(my_scene)

在這里插入圖片描述

#接下來獲得該場景下的第一個sample
first_sample_token = my_scene['first_sample_token']
my_sample = nusc.get('sample', first_sample_token)
print(my_sample)
#展示如下所示,它提功了該sample對應的數據sample_data以及所需要的標注信息sample_annotation。

在這里插入圖片描述

#接下來看data數據是什么樣子的
sensor = 'CAM_FRONT'
cam_front_data = nusc.get('sample_data', my_sample['data'][sensor])
print(cam_front_data)
#此外,還可以對此進行渲染,如圖所示
nusc.render_sample_data(cam_front_data['token'])

在這里插入圖片描述
在這里插入圖片描述

#這個則是獲取標注信息,同樣可以可視化。
my_annotation_token = my_sample['anns'][18]
my_annotation_metadata =  nusc.get('sample_annotation', my_annotation_token)
nusc.render_annotation(my_annotation_token)

在這里插入圖片描述
在這里插入圖片描述

總結

nuscenes的開發工具主要就是加載數據集并讓你可以用字典的方式訪問它,并且可以對其進行渲染,并通過token標識獲取你想要的東西。具體的操作可以在官網查看,本篇文章講述了一些核心的方法,最主要還是數據庫的架構得看懂。

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

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

相關文章

JavaScript學習教程,從入門到精通,JavaScript 運算符及語法知識點詳解(8)

JavaScript 運算符及語法知識點詳解 一、JavaScript 運算符 1. 算術運算符 用于執行數學運算: 加法- 減法* 乘法/ 除法% 取模(余數) 遞增-- 遞減** 冪運算(ES6) let a 10, b 3; console.log(a b); // 13 conso…

Shell腳本的學習

編寫腳本文件 定義以開頭:#!/bin/bash #!用來聲明腳本由什么shell解釋,否則使用默認shel 第一步:編寫腳本文件 #!/bin/bash #注釋 echo "這是輸出" 第二步:加上執行權限:chmod x 腳本文件名.sh 第三步&…

在線PDF文件拆分工具,小白工具功能實用操作簡單,無需安裝的文檔處理工具

小白工具中的在線 PDF 文件拆分工具是一款功能實用、操作便捷的文檔處理工具,以下是其具體介紹: 操作流程 上傳 PDF 文檔:打開小白工具在線PDF文件拆分工具 - 快速、免費拆分PDF文檔 - 小白工具的在線 PDF 文件拆分頁面,通過點擊 …

數字的乘階運算

求數字的乘階: 例如:6的乘階運算:6*5*4*3*2*1 例如:3的乘階運算:3*2*1 class Program{static void Main(string[] args){Console.WriteLine("請輸入數字:");int num_01 Convert.ToInt32 (Con…

tcp/ip攻擊及防范

作為高防工程師,我每天攔截數以萬計的惡意流量,其中TCP/IP協議層攻擊是最隱蔽、最具破壞性的威脅之一。常見的攻擊手法包括: 1. SYN Flood攻擊:攻擊者發送大量偽造的SYN包,耗盡服務器連接資源,導致正常用…

C++類成員內存分布詳解

本文將探討C類中成員變量的內存分布情況,包括普通成員、靜態成員、虛函數等不同情況下的內存布局。 一、基本成員內存布局 1. 普通成員變量 普通成員變量按照聲明順序在內存中連續排列(受訪問修飾符和內存對齊影響): class Nor…

計算機視覺——為什么 mAP 是目標檢測的黃金標準

概述 在目標檢測領域,有一個指標被廣泛認為是衡量模型性能的“黃金標準”,它就是 mAP(Mean Average Precision,平均精確率均值)。如果你曾經接觸過目標檢測模型(如 YOLO、Faster R-CNN 或 SSD)…

C語言單鏈表的增刪改補

目錄 (一)單鏈表的結構定義及初始化 (二)單鏈表的尾插,頭插 (三)單鏈表的尾刪,頭刪 (四)單鏈表的查找,刪除,銷毀 單鏈表是數據結構課程里的第二個數據結構。單鏈表在邏輯結構是連續的,在物理…

Android10.0 framework第三方無源碼APP讀寫斷電后數據丟失問題解決

1.前言 在10.0中rom定制化開發中,在某些產品開發中,在某些情況下在App用FileOutputStream讀寫完畢后,突然斷電 會出現寫完的數據丟失的問題,接下來就需要分析下關于使用FileOutputStream讀寫數據的相關流程,來實現相關 功能 2.framework第三方無源碼APP讀寫斷電后數據丟…

殺戮尖塔(Slay The Spire) 的全新角色模組 - 女巫

女巫(The Witch) 殺戮尖塔(Slay The Spire) 的全新角色模組 女巫模組為游戲增添了超過 75 張新卡牌和 4 個全新遺物,圍繞 詛咒(Curses) 展開獨特的玩法體驗。她的起始遺物 黑貓(Bl…

AI開發學習路線(闖關升級版)

以下是一份輕松版AI開發學習路線,用「闖關升級」的方式幫你從零開始變身AI開發者,每個階段都配有有趣的任務和實用資源,保證不枯燥、可落地!👇 目錄 🔰 新手村:打基礎(1-2個月&…

迭代器模式深度解析與實戰案例

一、模式定義 迭代器模式(Iterator Pattern) 是一種行為設計模式,提供一種方法順序訪問聚合對象的元素,無需暴露其底層表示。核心思想是將遍歷邏輯從聚合對象中分離,實現 遍歷與存儲的解耦。 二、核心組件 組件作用…

SSH遠程工具

一、常見SSH遠程工具 工具開源跨平臺多標簽文件傳輸高級功能價格Xshell?Win????腳本、會話管理免費/商業版Tabby??全平臺????插件擴展免費MobaXterm?Win????集成工具集免費/付費SecureCRT?Win/macOS/Linux????企業級加密$129+PuTTY??全平臺??基礎連接…

VUE中的路由處理

1.引入,預處理main.ts import {} from vue-router import { createRouter, createWebHistory } from vue-router import HomePages from @/pages/HomePages.vue import AboutPage from @/pages/AboutPage.vue import NewsPage from @/pages/NewsPage.vue //1. 配置路由規…

編程助手fitten code使用說明(超詳細)(vscode)

這兩年 AI 發展迅猛,作為開發人員,我們總是追求更快、更高效的工作方式,AI 的出現可以說改變了很多人的編程方式。 AI 對我們來說就是一個可靠的編程助手,給我們提供了實時的建議和解決方,無論是快速修復錯誤、提升代…

Opencv計算機視覺編程攻略-第九節 描述和匹配興趣點

一般而言,如果一個物體在一幅圖像中被檢測到關鍵點,那么同一個物體在其他圖像中也會檢測到同一個關鍵點。圖像匹配是關鍵點的常用功能之一,它的作用包括關聯同一場景的兩幅圖像、檢測圖像中事物的發生地點等等。 1.局部模板匹配 憑單個像素就…

C++內存管理優化實戰:提升應用性能與效率

🧑 博主簡介:CSDN博客專家、CSDN平臺優質創作者,高級開發工程師,數學專業,擁有高級工程師證書;擅長C/C、C#等開發語言,熟悉Java常用開發技術,能熟練應用常用數據庫SQL server,Oracle…

17-產品經理-創建發布

點擊“發布”-“創建發布”。 填寫發布名稱,選擇測試的版本。還可以設置此次發布是否為“里程碑”。 點擊“保存”后,進入該發布詳情頁面。需要為此次發布關聯需求、已解決BUG、以及遺留BUG。可以通過設置條件,進行“搜索”,然后批…

Axure RP9.0教程 | 內聯框架 對應html 元素中的iframe標簽 (打開內部頁面和外部網址)

文章目錄 引言I 打開內部頁面II 打開外部網址操作效果引言 應用場景: 選擇右側不同欄目,左側內容發生變化 I 打開內部頁面 在公用元件庫中找到內聯框架圖標,將其拖到畫布中,設置其寬、高;在右側添加三個按鈕,分別用來跳轉三個不同的頁面;在內部框架中,添加三個子頁面,…

在1panel中安裝WebUI

如果需要建站,那得選安裝Openresty。點擊應用商店,安裝 Openresty 接下來安裝Ollama,可以部署本地模型提供給WebUi平臺使用 最后是安裝 WebUi,安裝時需要填寫Ollama的地址: 容器地址:30000 這些安裝都很方便&#xf…