日本无码免费高清在线|成人日本在线观看高清|A级片免费视频操逼欧美|全裸美女搞黄色大片网站|免费成人a片视频|久久无码福利成人激情久久|国产视频一二国产在线v|av女主播在线观看|五月激情影音先锋|亚洲一区天堂av

  • 手機(jī)站
  • 小程序

    汽車測(cè)試網(wǎng)

  • 公眾號(hào)
    • 汽車測(cè)試網(wǎng)

    • 在線課堂

    • 電車測(cè)試

Comma2k19數(shù)據(jù)集使用

2021-03-07 20:10:15·  來源:軒轅實(shí)驗(yàn)室  作者:軒轅實(shí)驗(yàn)室  
 
1.數(shù)據(jù)集介紹 comma2k19是由comma.ai發(fā)布的自動(dòng)駕駛數(shù)據(jù)集, 是加利福尼亞280高速公路上超過33小時(shí)通勤的數(shù)據(jù)集。它將加利福尼亞州圣何塞和舊金山之間20公里的高速公路上行駛時(shí)記錄的數(shù)據(jù)分為2019段,每段1分鐘。comma2k19是一個(gè)完全可重現(xiàn)且可擴(kuò)展的數(shù)據(jù)集。
1.數(shù)據(jù)集介紹
comma2k19是由comma.ai發(fā)布的自動(dòng)駕駛數(shù)據(jù)集, 是加利福尼亞280高速公路上超過33小時(shí)通勤的數(shù)據(jù)集。它將加利福尼亞州圣何塞和舊金山之間20公里的高速公路上行駛時(shí)記錄的數(shù)據(jù)分為2019段,每段1分鐘。comma2k19是一個(gè)完全可重現(xiàn)且可擴(kuò)展的數(shù)據(jù)集。數(shù)據(jù)采用comma EONs收集,其傳感器類似于任何現(xiàn)代智能手機(jī),包括道路相機(jī),手機(jī)GPS,溫度計(jì)和9軸IMU。 此外,EON還使用comma  grey panda捕獲原始GNSS測(cè)量值和汽車發(fā)送的所有CAN數(shù)據(jù)。
這里還引入了Laika,一個(gè)開源的GNSS處理庫。為了計(jì)算定位,來自數(shù)據(jù)集的原始測(cè)量值用Laika處理,然后輸入卡爾曼濾波器或其他估計(jì)位置的優(yōu)化器。Laika產(chǎn)生的位置比用來收集原始數(shù)據(jù)的全球?qū)Ш叫l(wèi)星系統(tǒng)模塊(如 u-blox M8)精確40%。該數(shù)據(jù)集還包括記錄相機(jī)的全局參考系中的pose(位置+方向)估計(jì)。這些姿態(tài)是用一個(gè)緊密耦合的慣性導(dǎo)航系統(tǒng)/全球?qū)Ш叫l(wèi)星系統(tǒng)/視覺優(yōu)化器計(jì)算的,該優(yōu)化器依賴于Laika處理的數(shù)據(jù)。comma2k19非常適合開發(fā)和驗(yàn)證與商用傳感器配合使用的緊密耦合的全球?qū)Ш叫l(wèi)星系統(tǒng)算法和測(cè)繪算法。
項(xiàng)目github地址:https://github.com/commaai/comma2k19
 
2.下載數(shù)據(jù)集
事先提醒:因?yàn)樵擁?xiàng)目的某些文件命名中包含“|”,而在windows的文件系統(tǒng)中這是不允許的,所以為避免這個(gè)問題,最好在ubuntu系統(tǒng)上下載這個(gè)數(shù)據(jù)集。數(shù)據(jù)集有95GB這么大,將以10GB為一個(gè)數(shù)據(jù)包進(jìn)行下載,鏈接戳此下載地址提示:跳轉(zhuǎn)時(shí)請(qǐng)關(guān)閉代理否則會(huì)顯示遇到審計(jì)規(guī)則拒絕訪問。
需用bittorrent下載,ubuntu用默認(rèn)的工具下載即可,之后就是漫長(zhǎng)的等待。
 
3.數(shù)據(jù)集結(jié)構(gòu)
目錄結(jié)構(gòu)
數(shù)據(jù)被分成10塊,每一塊大約200分鐘的車程。數(shù)據(jù)集1-2塊使用的車型是RAV4,其余的是civic。RAV4的dongle_id是b0c9d2329ad1606b, civic的dongle_id是99c94dc769b5d96e。
Dataset_chunk_n
|
+-- route_id (dongle_id|start_time)
    |
    +-- segment_number
        |
        +-- preview.png (first frame video)
        +-- raw_log.bz2 (raw capnp log, can be read with openpilot-tools: logreader)
        +-- video.hevc (video file, can be read with openpilot-tools: framereader)
        +-- processed_log/ (processed logs as numpy arrays, see format for details)
        +-- global_pos/ (global poses of camera as numpy arrays, see format for details)
日志格式

processed_log文件夾中的每個(gè)日志類型都包含2個(gè)numpy數(shù)組,分別是使用系統(tǒng)設(shè)備引導(dǎo)時(shí)間的時(shí)間戳數(shù)組(以秒為單位)和值數(shù)組。

processed_log
|
+--IMU ([forward, right, down])
|  |
|  +--acceleration: (m^2/s)
|  +--gyro_uncalibrated (rad/s)
|  +--gyro_bias: android gyro bias estimate (rad/s)
|  +--gyro: with android bias correction (rad/s)
|  +--magnetic_uncalibrated: (T)
|  +--magnetic: with android calibration(T)
|
+--CAN data:
|  |
|  +--car_speed (m/s)
|  +--steering_angle (deg)
|  +--wheel_speeds: [front_left, front_right, rear_left, rear_right] (m/s)
|  +--radar: [forward distance (m),
|  |          left distance (m),
|  |          relative speed (m/s),
|  |          nan,
|  |          nan,
|  |          address,
|  |          new_track (bool)]
|  +--raw CAN: This not stored as a value array but as three seperate arrays [src, address, data]
|
+--GNSS
   |
   +--live_gnss_qcom: [latitude (deg),
   |                   longitude (deg),
   |                   speed (m/s),
   |                   utc_timestamp (s),
   |                   altitude (m),
   |                   bearing (deg)]
   +--live_gnss_ublox: [latitude (deg),
   |                    longitude (deg),
   |                    speed (m/s),
   |                    utc_timestamp (s),
   |                    altitude (m),
   |                    bearing (deg)]
   |
   +--raw_gnss_qcom: every row represents a measurement
   |                 of 1 sattelite at 1 epoch can easily
   |                 be manipulated with laika.
   |                 [prn (nmea_id, see laika),
   |                  week of gps_time of reception (gps_week),
   |                  time pf week of gps_time of reception (s),
   |                  nan,
   |                  pseudorange (m),
   |                  pseudorange_std (m),
   |                  pseudorange_rate (m/s),
   |                  pseudorange_rate_std (m/s)]
   +--raw_gnss_ublox: every row represents a measurement
                      of 1 sattelite at 1 epoch can easily
                      be manipulated with laika.
                      [prn (nmea_id, see laika),
                       week of gps_time of reception (gps_week),
                       time pf week of gps_time of reception (s),
                       GLONASS channel number (-7..6) nan if not GLONASS,
                       pseudorange (m),
                       pseudorange_std (m),
                       pseudorange_rate (m/s),
                       pseudorange_rate_std (m/s)]

raw表示未經(jīng)處理,live表示可以直接使用。所有的日志都是由raw_log.bz2用openpilot(是項(xiàng)目的一個(gè)子模塊)讀取處理出來的。

pose格式
除了原始傳感器數(shù)據(jù)之外,日志還包含由Mesh3D計(jì)算的全局姿態(tài)(位置+方向)最佳估計(jì)值,Mesh 3D是Comma.ai的內(nèi)部后處理基礎(chǔ)設(shè)施,依賴于Laika處理的數(shù)據(jù)。它們是用一個(gè)緊密耦合的全球?qū)Ш叫l(wèi)星系統(tǒng)/慣性導(dǎo)航系統(tǒng)/視覺優(yōu)化器計(jì)算的,其中原始的全球?qū)Ш叫l(wèi)星系統(tǒng)測(cè)量值和ORB特征被輸入到一個(gè)多狀態(tài)約束卡爾曼濾波器中, 得出的相機(jī)的姿態(tài)(位置)和對(duì)應(yīng)視頻的每幀的時(shí)間戳如下:
  frame_times: timestamps of video frames in boot time (s)
  frame_gps_times: timestamps of video frames in gps_time: ([gps week (weeks), time-of-week (s)])
  frame_positions: global positions in ECEF of camera(m)
  frame_velocities: global velocity in ECEF of camera (m/s)
  frame_orientations: global orientations as quaternion needed to
                      rotate from ECEF  frame to local camera frame
                      defined as [forward, right, down] (hamilton quaternion!!!!)

comma2k19中的全局位置以米為單位在ECEF中給出,并且方向被給出為從ECEF旋轉(zhuǎn)到本地框架所需的四元數(shù)。其中根據(jù)NED[North, East, Down]慣例,本地框架被定義為[向前、向右、向下]。

4.配置項(xiàng)目
現(xiàn)在我們要將項(xiàng)目代碼拷貝過來。先復(fù)制項(xiàng)目地址

你想要放置的地方打開終端,輸入git命令,如果沒有安裝git的需要安裝一下,安裝教程。此處會(huì)遇到第一個(gè)坑,直接終端執(zhí)行命令git clone [url]會(huì)發(fā)現(xiàn)openpilot文件夾下是空的。這是因?yàn)閛penpilot它在原項(xiàng)目中的圖標(biāo)帶了一個(gè)白色箭頭,類似于引用,用普通的clone命令將其拷貝下來。因此在終端運(yùn)行命令git clone --recurse-submodules [url]來遞歸下載所有引用子模塊。
  • windows系統(tǒng)用戶注意:如果你最終是要在windows系統(tǒng)下做實(shí)驗(yàn),那么你需要把下載好的數(shù)據(jù)集解壓到windows的文件系統(tǒng)中,因?yàn)槲沂茄b的雙系統(tǒng),所以在ubuntu的文件系統(tǒng)中可以訪問到windows的文件系統(tǒng)。終端運(yùn)行 python3 utils/unzip_msft_fs.py 去將文件解壓到windows文件系統(tǒng),其中 是你在unbuntu下下載壓縮數(shù)據(jù)集的文件夾, 是你的目標(biāo)文件夾,這個(gè)命令需要執(zhí)行很長(zhǎng)時(shí)間,它會(huì)并行解壓所有的壓縮包并將“|”以下劃線“_”代替,請(qǐng)保證目標(biāo)文件夾磁盤有足夠的空間并耐心等待。
5.代碼示例
項(xiàng)目提供了example數(shù)據(jù)片段用于實(shí)驗(yàn),notebooks中也有許多示例代碼。ipynb的文件可以在anaconda的jupyter上打開瀏覽。
  • processed_readers: 讀取數(shù)據(jù)并繪圖的示例
  • position_benchmarks: 運(yùn)行定位基準(zhǔn)的示例,定位基準(zhǔn)用于評(píng)估定位質(zhì)量
  • raw_readers: 使用OpenPilot tools的示例
  • 與GNSS原始數(shù)據(jù)相關(guān)的示例請(qǐng)?jiān)L問Laika
所有代碼只在python 2.7和3.6上測(cè)試,但我用python 3.7也沒問題。首先運(yùn)行pip install -r requirements.txt去安裝一些包,其中你會(huì)遇到一個(gè)錯(cuò)誤
這是由于安裝pycurl失敗 進(jìn)入下載地址https://www.lfd.uci.edu/~gohlke/pythonlibs/安裝ctrl+f搜索pycurl,下載對(duì)應(yīng)的版本的pycurl

cp36意思是CPython version 3.6.,win_amd64意思是64位的windows操作系統(tǒng),按照你自己的配置選擇對(duì)應(yīng)的安裝包下載。然后到本地切換到pycurl的下載位置,運(yùn)行pip3 install [pycurl]安裝。
之后你可以在pycharm上打開該項(xiàng)目文件夾,注意一定要添加openpilot和notebooks到PYTHONPATH中。添加方式:file->setting->interpreter
這樣在import組件的時(shí)候就會(huì)去這些路徑下查找了。做完上述準(zhǔn)備工作后我們就可以運(yùn)行一下utils下的代碼了,注意在代碼中把文件名中的“|”改成“_”,且注意當(dāng)前工作位置。下次將介紹如何使用該數(shù)據(jù)集實(shí)現(xiàn)具體的項(xiàng)目。
 
分享到:
 
反對(duì) 0 舉報(bào) 0 收藏 0 評(píng)論 0
滬ICP備11026917號(hào)-25