91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

關(guān)于激光雷達(dá)傳感器如何投影成二維圖像

新機(jī)器視覺(jué) ? 來(lái)源:CSDN技術(shù)社區(qū) ? 作者:W_Tortoise ? 2021-04-03 09:58 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

“前視圖”投影

為了將激光雷達(dá)傳感器的“前視圖”展平為2D圖像,必須將3D空間中的點(diǎn)投影到可以展開(kāi)的圓柱形表面上,以形成平面。

2a6759e6-8e94-11eb-8b86-12bb97331649.png

2a9336d8-8e94-11eb-8b86-12bb97331649.png

問(wèn)題在于這樣做會(huì)將圖像的接縫直接放在汽車的右側(cè)。將接縫定位在汽車的最后部更有意義,因此前部和側(cè)部更重要的區(qū)域是不間斷的。讓這些重要區(qū)域不間斷將使卷積神經(jīng)網(wǎng)絡(luò)更容易識(shí)別那些重要區(qū)域中的整個(gè)對(duì)象。

以下代碼解決了這個(gè)問(wèn)題。

沿每個(gè)軸配置刻度

變量h r e s h_{res}和v r e s v_{res}非常依賴于所使用的LIDAR傳感器。在KTTI數(shù)據(jù)集中,使用的傳感器是Velodyne HDL 64E。根據(jù)Velodyne HDL 64E的規(guī)格表,它具有以下重要特征:

垂直視野為26.9度,分辨率為0.4度,垂直視野被分為傳感器上方+2度,傳感器下方-24.9度

360度的水平視野,分辨率為0.08-0.35(取決于旋轉(zhuǎn)速度)

旋轉(zhuǎn)速率可以選擇在5-20Hz之間

可以按以下方式更新代碼:

然而,這導(dǎo)致大約一半的點(diǎn)在x軸負(fù)方向上,并且大多數(shù)在y軸負(fù)方向上。為了投影到2D圖像,需要將最小值設(shè)置為(0,0),所以需要做一些改變:

繪制二維圖像

將3D點(diǎn)投影到2D坐標(biāo)點(diǎn),最小值為(0,0),可以將這些點(diǎn)數(shù)據(jù)繪制成2D圖像。

完整代碼

把上面所有的代碼放在一個(gè)函數(shù)中。

def lidar_to_2d_front_view(points, v_res, h_res, v_fov, val=“depth”, cmap=“jet”, saveto=None, y_fudge=0.0 ): “”“ Takes points in 3D space from LIDAR data and projects them to a 2D ”front view“ image, and saves that image.

Args: points: (np array) The numpy array containing the lidar points. The shape should be Nx4 - Where N is the number of points, and - each point is specified by 4 values (x, y, z, reflectance) v_res: (float) vertical resolution of the lidar sensor used. h_res: (float) horizontal resolution of the lidar sensor used. v_fov: (tuple of two floats) (minimum_negative_angle, max_positive_angle) val: (str) What value to use to encode the points that get plotted. One of {”depth“, ”height“, ”reflectance“} cmap: (str) Color map to use to color code the `val` values. NOTE: Must be a value accepted by matplotlib‘s scatter function Examples: ”jet“, ”gray“ saveto: (str or None) If a string is provided, it saves the image as this filename. If None, then it just shows the image. y_fudge: (float) A hacky fudge factor to use if the theoretical calculations of vertical range do not match the actual data.

For a Velodyne HDL 64E, set this value to 5. ”“”

# DUMMY PROOFING assert len(v_fov) ==2, “v_fov must be list/tuple of length 2” assert v_fov[0] 《= 0, “first element in v_fov must be 0 or negative” assert val in {“depth”, “height”, “reflectance”}, ’val must be one of {“depth”, “height”, “reflectance”}‘

x_lidar = points[:, 0] y_lidar = points[:, 1] z_lidar = points[:, 2] r_lidar = points[:, 3] # Reflectance # Distance relative to origin when looked from top d_lidar = np.sqrt(x_lidar ** 2 + y_lidar ** 2) # Absolute distance relative to origin # d_lidar = np.sqrt(x_lidar ** 2 + y_lidar ** 2, z_lidar ** 2)

v_fov_total = -v_fov[0] + v_fov[1]

# Convert to Radians v_res_rad = v_res * (np.pi/180) h_res_rad = h_res * (np.pi/180)

# PROJECT INTO IMAGE COORDINATES x_img = np.arctan2(-y_lidar, x_lidar)/ h_res_rad y_img = np.arctan2(z_lidar, d_lidar)/ v_res_rad

# SHIFT COORDINATES TO MAKE 0,0 THE MINIMUM x_min = -360.0 / h_res / 2 # Theoretical min x value based on sensor specs x_img -= x_min # Shift x_max = 360.0 / h_res # Theoretical max x value after shifting

y_min = v_fov[0] / v_res # theoretical min y value based on sensor specs y_img -= y_min # Shift y_max = v_fov_total / v_res # Theoretical max x value after shifting

y_max += y_fudge # Fudge factor if the calculations based on # spec sheet do not match the range of # angles collected by in the data.

# WHAT DATA TO USE TO ENCODE THE VALUE FOR EACH PIXEL if val == “reflectance”: pixel_values = r_lidar elif val == “height”: pixel_values = z_lidar else: pixel_values = -d_lidar

# PLOT THE IMAGE cmap = “jet” # Color map to use dpi = 100 # Image resolution fig, ax = plt.subplots(figsize=(x_max/dpi, y_max/dpi), dpi=dpi) ax.scatter(x_img,y_img, s=1, c=pixel_values, linewidths=0, alpha=1, cmap=cmap) ax.set_axis_bgcolor((0, 0, 0)) # Set regions with no points to black ax.axis(’scaled‘) # {equal, scaled} ax.xaxis.set_visible(False) # Do not draw axis tick marks ax.yaxis.set_visible(False) # Do not draw axis tick marks plt.xlim([0, x_max]) # prevent drawing empty space outside of horizontal FOV plt.ylim([0, y_max]) # prevent drawing empty space outside of vertical FOV

if saveto is not None: fig.savefig(saveto, dpi=dpi, bbox_inches=’tight‘, pad_inches=0.0) else: fig.show()

以下是一些用例:

import matplotlib.pyplot as pltimport numpy as np

HRES = 0.35 # horizontal resolution (assuming 20Hz setting)VRES = 0.4 # vertical resVFOV = (-24.9, 2.0) # Field of view (-ve, +ve) along vertical axisY_FUDGE = 5 # y fudge factor for velodyne HDL 64E

lidar_to_2d_front_view(lidar, v_res=VRES, h_res=HRES, v_fov=VFOV, val=“depth”, saveto=“/tmp/lidar_depth.png”, y_fudge=Y_FUDGE)

lidar_to_2d_front_view(lidar, v_res=VRES, h_res=HRES, v_fov=VFOV, val=“height”, saveto=“/tmp/lidar_height.png”, y_fudge=Y_FUDGE)

lidar_to_2d_front_view(lidar, v_res=VRES, h_res=HRES, v_fov=VFOV, val=“reflectance”, saveto=“/tmp/lidar_reflectance.png”, y_fudge=Y_FUDGE)

產(chǎn)生以下三個(gè)圖像:

Depth

2ac4628a-8e94-11eb-8b86-12bb97331649.png

Height

2afb4796-8e94-11eb-8b86-12bb97331649.png

Reflectance

2b4c7080-8e94-11eb-8b86-12bb97331649.png

后續(xù)操作步驟

目前創(chuàng)建每個(gè)圖像非常慢,可能是因?yàn)閙atplotlib,它不能很好地處理大量的散點(diǎn)。

因此需要?jiǎng)?chuàng)建一個(gè)使用numpy或PIL的實(shí)現(xiàn)。

測(cè)試

需要安裝python-pcl,加載PCD文件。

sudo apt-get install python-pip

sudo apt-get install python-dev

sudo pip install Cython==0.25.2

sudo pip install numpy

sudo apt-get install git

git clone https://github.com/strawlab/python-pcl.git

cd python-pcl/

python setup.py build_ext -i

python setup.py install

可惜,sudo pip install Cython==0.25.2這步報(bào)錯(cuò):

Cannot uninstall ‘Cython’。 It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.”

換個(gè)方法,安裝pypcd:

pip install pypcd

查看 https://pypi.org/project/pypcd/ ,用例如下:

Example-------

。. code:: python

import pypcd# also can read from file handles.pc = pypcd.PointCloud.from_path(’foo.pcd‘)# pc.pc_data has the data as a structured array# pc.fields, pc.count, etc have the metadata

# center the x fieldpc.pc_data[’x‘] -= pc.pc_data[’x‘].mean()

# save as binary compressedpc.save_pcd(’bar.pcd‘, compression=’binary_compressed‘)

測(cè)試數(shù)據(jù)結(jié)構(gòu):

“ 》》》 lidar = pypcd.PointCloud.from_path(‘~/pointcloud-processing/000000.pcd’)

》》》 lidar.pc_data

array([(18.323999404907227, 0.04899999871850014, 0.8289999961853027, 0.0),

(18.3439998626709, 0.10599999874830246, 0.8289999961853027, 0.0),

(51.29899978637695, 0.5049999952316284, 1.944000005722046, 0.0),

…,

(3.7139999866485596, -1.3910000324249268, -1.7330000400543213, 0.4099999964237213),

(3.9670000076293945, -1.4739999771118164, -1.8569999933242798, 0.0),

(0.0, 0.0, 0.0, 0.0)],

dtype=[(‘x’, ‘《f4’), (‘y’, ‘《f4’), (‘z’, ‘《f4’), (‘intensity’, ‘《f4’)])

》》》 lidar.pc_data[‘x’]

array([ 18.3239994 , 18.34399986, 51.29899979, …, 3.71399999,

3.96700001, 0. ], dtype=float32) ”

加載PCD:

import pypcd

lidar = pypcd.PointCloud.from_path(’000000.pcd‘)

x_lidar:

x_lidar = points[’x‘]

結(jié)果:

Depth

2bc5c4ee-8e94-11eb-8b86-12bb97331649.png

Height

2c287c7e-8e94-11eb-8b86-12bb97331649.png

Reflectance

2c7f18cc-8e94-11eb-8b86-12bb97331649.png

編輯:lyn

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 傳感器
    +關(guān)注

    關(guān)注

    2576

    文章

    55041

    瀏覽量

    791313
  • 投影
    +關(guān)注

    關(guān)注

    0

    文章

    147

    瀏覽量

    25380
  • 激光雷達(dá)
    +關(guān)注

    關(guān)注

    979

    文章

    4470

    瀏覽量

    196522

原文標(biāo)題:點(diǎn)云處理——將激光雷達(dá)數(shù)據(jù)投影到二維圖像

文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺(jué)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    漢思新材料:車載激光雷達(dá)傳感器封裝膠:種類、要求及選擇指南

    車載激光雷達(dá)(LiDAR)傳感器封裝膠是保障傳感器性能穩(wěn)定、提升環(huán)境適應(yīng)性的核心關(guān)鍵材料,直接決定傳感器在復(fù)雜車載環(huán)境中的工作可靠性與使用壽命。以下將詳細(xì)介紹常見(jiàn)封裝膠種類、核心要求及
    的頭像 發(fā)表于 02-06 14:06 ?3313次閱讀
    漢思新材料:車載<b class='flag-5'>激光雷達(dá)</b><b class='flag-5'>傳感器</b>封裝膠:種類、要求及選擇指南

    自動(dòng)駕駛激光雷達(dá)會(huì)傷害人體嗎?

    人體造成傷害,那事實(shí)果真如此嗎? 什么是激光雷達(dá)? 激光雷達(dá)作為一種主動(dòng)感知傳感器,它的核心工作方式是發(fā)射大量的激光脈沖,這些脈沖碰到前方的物體后會(huì)反射回來(lái),當(dāng)接收到反射信號(hào)后就可以計(jì)
    的頭像 發(fā)表于 02-05 08:59 ?217次閱讀
    自動(dòng)駕駛<b class='flag-5'>激光雷達(dá)</b>會(huì)傷害人體嗎?

    雨霧天氣,毫米波雷達(dá)表現(xiàn)為什么比激光雷達(dá)更好?

    在自動(dòng)駕駛領(lǐng)域,要讓汽車自己“看懂”周圍環(huán)境,必須借助激光雷達(dá)、毫米波雷達(dá)傳感器。它們雖都用于探測(cè)周圍物體,但物理原理和應(yīng)對(duì)惡劣天氣的能力卻有明顯不同。
    的頭像 發(fā)表于 01-13 17:47 ?2086次閱讀
    雨霧天氣,毫米波<b class='flag-5'>雷達(dá)</b>表現(xiàn)為什么比<b class='flag-5'>激光雷達(dá)</b>更好?

    如何為自動(dòng)駕駛汽車選擇一款合適的激光雷達(dá)

    物體離傳感器多遠(yuǎn)。把很多這樣的測(cè)距結(jié)果按角度組織起來(lái),就能得到一個(gè)三的“點(diǎn)云”,用來(lái)表示周圍物體的形狀和位置。激光雷達(dá)的主要作用就是讓車知道周圍有哪些東西、在什么位置、大概是什么大小。 ? 它是怎么工作的?
    的頭像 發(fā)表于 12-14 09:58 ?2603次閱讀
    如何為自動(dòng)駕駛汽車選擇一款合適的<b class='flag-5'>激光雷達(dá)</b>?

    自動(dòng)駕駛里的激光雷達(dá)有何作用?

    [首發(fā)于智駕最前沿微信公眾號(hào)]激光雷達(dá)(LiDAR)是一款把光當(dāng)“尺子”來(lái)量距離的一類傳感器,在自動(dòng)駕駛里負(fù)責(zé)“看清三形狀和距離”。它和攝像頭、毫米波雷達(dá)不一樣,能直接給出稠密的三
    的頭像 發(fā)表于 10-10 07:15 ?1077次閱讀
    自動(dòng)駕駛里的<b class='flag-5'>激光雷達(dá)</b>有何作用?

    自動(dòng)駕駛激光雷達(dá)可以安裝在哪些位置?

    為了讓自動(dòng)駕駛汽車在各種復(fù)雜環(huán)境中都能精準(zhǔn)感知周圍情況,激光雷達(dá)(LiDAR)作為重要的環(huán)境感知傳感器,發(fā)揮著不可替代的作用。激光雷達(dá)能夠發(fā)射數(shù)十萬(wàn)乃至數(shù)百萬(wàn)束激光脈沖,并接收反射光信
    的頭像 發(fā)表于 09-08 09:19 ?984次閱讀

    速騰聚創(chuàng)激光雷達(dá)全球銷量破百萬(wàn),市占率26%居首

    應(yīng)用最廣泛、量產(chǎn)車型最多的車載激光雷達(dá)平臺(tái)。今年,RoboSense速騰聚創(chuàng)全球首個(gè)可量產(chǎn)全固態(tài)數(shù)字化激光雷達(dá)E平臺(tái)產(chǎn)品開(kāi)啟量產(chǎn)交付,成為業(yè)內(nèi)唯一攻破二維可尋址VCSEL技術(shù)、有效抑制高反膨脹問(wèn)題、實(shí)現(xiàn)自研SPAD-SoC量產(chǎn)的
    的頭像 發(fā)表于 06-17 19:25 ?1452次閱讀
    速騰聚創(chuàng)<b class='flag-5'>激光雷達(dá)</b>全球銷量破百萬(wàn),市占率26%居首

    FMCW激光雷達(dá),加速落地工業(yè)場(chǎng)景

    產(chǎn)品融合實(shí)時(shí)測(cè)速、無(wú)GPS高精度定位、全建圖、圖像級(jí)分辨率及原生抗干擾能力,為智能工業(yè)與行業(yè)機(jī)器人領(lǐng)域注入強(qiáng)勁動(dòng)力。 ? 據(jù)介紹,F(xiàn)MCW技術(shù)應(yīng)用在球形激光雷達(dá)中,有以下優(yōu)勢(shì): ? 動(dòng)靜分離,決策優(yōu)化:FMCW技術(shù)賦予
    的頭像 發(fā)表于 06-17 00:21 ?4346次閱讀

    SPAD席卷車載激光雷達(dá)市場(chǎng)

    電子發(fā)燒友網(wǎng)報(bào)道(文/梁浩斌)上周我們報(bào)道了一款新推出的激光雷達(dá)ASIC方案,值得關(guān)注的是該方案中與ASIC搭配的傳感器均選擇了SiPM。當(dāng)然從成本的角度來(lái)看,作為第三方的激光雷達(dá)ASIC方案
    的頭像 發(fā)表于 06-13 00:59 ?5514次閱讀

    自動(dòng)駕駛中純視覺(jué)替代不了激光雷達(dá)?

    ,不少人設(shè)想“移除LiDAR,只用攝像頭+AI”也能實(shí)現(xiàn)可靠感知。但現(xiàn)實(shí)遠(yuǎn)比想象復(fù)雜,為什么純視覺(jué)難以完全替代LiDAR? 首先要知道,攝像頭與LiDAR的工作原理截然不同。攝像頭通過(guò)光學(xué)透鏡和圖像傳感器獲取二維彩色
    的頭像 發(fā)表于 06-11 09:06 ?921次閱讀

    超酷的樹莓派激光雷達(dá)掃描儀!

    摘要這款DIY的PiLiDAR掃描儀項(xiàng)目利用樹莓派進(jìn)行激光雷達(dá)測(cè)繪。激光雷達(dá)通過(guò)發(fā)射激光來(lái)掃描周圍環(huán)境,從而創(chuàng)建三模型。該項(xiàng)目需要樹莓派4、攝像頭、電機(jī)以及
    的頭像 發(fā)表于 06-01 08:33 ?1093次閱讀
    超酷的樹莓派<b class='flag-5'>激光雷達(dá)</b>掃描儀!

    AGV搬運(yùn)機(jī)器人常用傳感器應(yīng)用簡(jiǎn)介及其原理

    雷達(dá) #?揭秘雷達(dá)如何實(shí)時(shí)鎖定高速目標(biāo)! 激光雷達(dá)是一種通過(guò)發(fā)射激光束探測(cè)目標(biāo)信息的傳感器系統(tǒng)。其核心原理為:向目標(biāo)發(fā)射
    的頭像 發(fā)表于 05-23 09:33 ?980次閱讀
    AGV搬運(yùn)機(jī)器人常用<b class='flag-5'>傳感器</b>應(yīng)用簡(jiǎn)介及其原理

    FMCW激光雷達(dá),工業(yè)應(yīng)用新進(jìn)展

    電子發(fā)燒友網(wǎng)報(bào)道(文/梁浩斌)FMCW激光雷達(dá)有了新進(jìn)展。近日FMCW激光雷達(dá)廠商Aeva宣布,通過(guò)與SICK?AG和LMI等工業(yè)自動(dòng)化領(lǐng)域領(lǐng)導(dǎo)者合作,其應(yīng)用于工業(yè)自動(dòng)化的高精度傳感器Eve?1系列
    的頭像 發(fā)表于 05-18 00:02 ?5966次閱讀

    激光雷達(dá)技術(shù)在自動(dòng)駕駛汽車中的應(yīng)用

    在不斷發(fā)展的汽車技術(shù)領(lǐng)域,LiDAR(光探測(cè)和測(cè)距)傳感器——也就是“激光雷達(dá)”——已成為關(guān)鍵組件,隨著汽車行業(yè)向自主化邁進(jìn),激光雷達(dá)傳感器在提供安全導(dǎo)航所需的實(shí)時(shí)3D地圖方面發(fā)揮著關(guān)
    的頭像 發(fā)表于 04-10 10:11 ?2503次閱讀
    <b class='flag-5'>激光雷達(dá)</b>技術(shù)在自動(dòng)駕駛汽車中的應(yīng)用

    激光雷達(dá)技術(shù):自動(dòng)駕駛的應(yīng)用與發(fā)展趨勢(shì)

    激光雷達(dá)是一種通過(guò)發(fā)射激光束并接收反射光束來(lái)測(cè)量物體距離和速度的傳感器。它能夠生成周圍環(huán)境的精確三地圖,為自動(dòng)駕駛車輛提供關(guān)鍵的感知信息。激光雷達(dá)
    的頭像 發(fā)表于 03-10 10:16 ?1664次閱讀
    <b class='flag-5'>激光雷達(dá)</b>技術(shù):自動(dòng)駕駛的應(yīng)用與發(fā)展趨勢(shì)