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

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

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

視覺激光雷達(dá)信息融合與聯(lián)合標(biāo)定

新機器視覺 ? 來源:新機器視覺 ? 2023-04-09 10:47 ? 次閱讀

編者薦語使用視覺進行目標(biāo)檢測,將檢測結(jié)果2D bounding box坐標(biāo)信息投影到點云里面獲得3D bounding boxx坐標(biāo),這里面需要將攝像頭和激光雷達(dá)進行聯(lián)合標(biāo)定,即獲取二者坐標(biāo)系的空間轉(zhuǎn)換關(guān)系。

一、引言

最近在為車輛添加障礙物檢測模塊,障礙物檢測可以使用激光雷達(dá)進行物體聚類,但是我們使用的是16線的velodyne,線數(shù)還是有些稀疏,對于較遠(yuǎn)的物體過于稀疏的線數(shù)聚類效果并不好,因此考慮使用視覺進行目標(biāo)檢測,然后投影到3D點云里面,獲取障礙物位置,同時視覺還可以給出障礙物類別信息。 使用視覺進行目標(biāo)檢測,將檢測結(jié)果2D bounding box坐標(biāo)信息投影到點云里面獲得3D bounding boxx坐標(biāo),這里面需要將攝像頭和激光雷達(dá)進行聯(lián)合標(biāo)定,即獲取二者坐標(biāo)系的空間轉(zhuǎn)換關(guān)系。 相關(guān)代碼已經(jīng)同步到我的github-smartcar 鏈接:https://github.com/sunmiaozju/smartcar 標(biāo)定部分在detection/calibration文件夾, 信息融合部分在detection/camera_point_fusion

二、聯(lián)合標(biāo)定轉(zhuǎn)換關(guān)系

聯(lián)合標(biāo)定的作用就是建立點云的point和圖像pixel之間的對應(yīng)關(guān)系, 需要獲取相機與激光雷達(dá)外參,將點云3維坐標(biāo)系下的點投影到相機3維坐標(biāo)系下。 還需要通過相機標(biāo)定獲得相機內(nèi)參,這個是把相機3維坐標(biāo)系下的點投影到成像平面。具體如下所示:

f8f27414-d616-11ed-bfe3-dac502259ad0.jpg

上圖顯示的就是聯(lián)合標(biāo)定得到的4×4轉(zhuǎn)換矩陣的作用,將我們的3D點云轉(zhuǎn)換到相機坐標(biāo)系下面

f90d14a4-d616-11ed-bfe3-dac502259ad0.jpg

這幅圖顯示了相機坐標(biāo)系和成像坐標(biāo)系的關(guān)系,相機標(biāo)定會得到相機內(nèi)參矩陣和畸變系數(shù),畸變系數(shù)可以消除相機凸透鏡的畸變效應(yīng),相機內(nèi)參的信息就可以想相機坐標(biāo)下的3維點投影到2維的像素平面。相機標(biāo)定的具體原理可以參考//zhuanlan.zhihu.com/p/24651968三、相機標(biāo)定需要一個標(biāo)定板,要硬質(zhì)板或者泡沫的標(biāo)定板,因為標(biāo)定板的平面要保證是平的。標(biāo)定板的文件可以到opencv官網(wǎng)下載。 首先做相機標(biāo)定,相機標(biāo)定模塊在detection/calibration/camera_calibration 編譯

cd your_rosworkspace_path/ catkin_make -DCATKIN_BLACKLIST_PACKAGES=ndt_mapping;static_map;ndt_localization

這里我們先不編譯ndt_mapping;static_map;ndt_localization這三個軟件包 如果出錯,可以先編譯消息文件,再編譯全部文件:

catkin_make -DCATKIN_WHITELIST_PACKAGES=smartcar_msgs;yunle_msgs;smartcar_config_msgs catkin_make -DCATKIN_WHITELIST_PACKAGES=“”

然后要修改detection/calibration/camera_calibration/nodes文件夾下面python文件的可執(zhí)行權(quán)限:

sudo chmod a+x your_path/detection/calibration/camera_calibration/.

啟動攝像頭驅(qū)動節(jié)點

roslaunch cv_camera cv_camera_driver.launch

這里注意你自己的攝像頭video_id,使用如下命令查看

ls /dev/video*

然后根據(jù)需要修改your_path/driver/cv_camera/launch/cv_camera_driver.launch里面的

新開一個終端,執(zhí)行

rosrun calibration cameracalibrator.py --square 0.13 --size 8x6 image:=/cv_camera/image_raw

然后就可以進行標(biāo)定了,彈出的界面如下所示:

f923791a-d616-11ed-bfe3-dac502259ad0.jpg

需要做的就是移動標(biāo)定版,讓右上角的四個條都變綠(我這里綠的是已經(jīng)調(diào)好了,未調(diào)整是偏黃色) x代表左右移動,y代表上下移動,size代表遠(yuǎn)近移動,skew代表傾斜側(cè)角,可以上下傾,也可以左右傾。 只有四個尺度的信息都滿足要求之后,右側(cè)的calibration圖標(biāo)才會顯示出來,這時候代表可以計算標(biāo)定結(jié)果了,點擊calibration,然后save,標(biāo)定結(jié)果會保存在home文件夾下面。

四、聯(lián)合標(biāo)定

聯(lián)合標(biāo)定使用的是autoware的CalibrationTookit模塊,代碼在detection/calibration/calibration_camera_lidar文件夾下面 編譯好代碼之后,首先要啟動攝像頭和激光雷達(dá)的驅(qū)動節(jié)點

roslaunch cv_camera cv_camera_driver.launch

新終端

roslaunch velodyne_pointcloud VLP16_points.launch

然后驅(qū)動聯(lián)合標(biāo)定節(jié)點

roslaunch calibration_camera_lidar camera_lidar_calib.launch

啟動之后可以看到UI界面,具體操作指南,可以參考文檔:detection/calibration/calibration_camera_lidar/CalibrationToolkit_Manual.pdf 的2.3節(jié) 也可以參考鏈接//blog.csdn.net/AdamShan/article/details/81670732#commentBox 如何使用這個模塊上面的鏈接已經(jīng)說的很明白,這里簡單說一下:·首先左上角load之前標(biāo)定的相機內(nèi)參文件,導(dǎo)入相機內(nèi)參·調(diào)整點云的視角(操作方法參考上面鏈接),然后確保圖像和點云都可以看到完整的白標(biāo)定板,點擊右上角的grab捕獲單幀圖片和點云·在捕獲單幀的點云上面,選取圖片中對應(yīng)標(biāo)定板的位置,選取的是圓圈內(nèi)的所有點,所包含的信息不僅僅只有點,還有平面法相量,標(biāo)定的時候一定要確保法相量與平面是垂直的,因為開始我沒有注意這個,結(jié)果后面驗證的時候投影點在圖片上顯示不出,根本沒有投影在圖像范圍內(nèi)。 標(biāo)定好之后,在右上角有一個project,可以查看標(biāo)定的效果,一般來將,可以看到如下效果:

f9694d46-d616-11ed-bfe3-dac502259ad0.jpg

左下角圖片上的紅線就是右下角點云紅線投影到圖片上的位置,下面這幅圖片換一個角度,點同樣投影上去,而且相對位置在點云和圖片里面基本一致:

f988803a-d616-11ed-bfe3-dac502259ad0.jpg

這樣的效果基本就是可以了,點擊save,會將輸出的外參文件保存在home文件夾下面。

五、視覺與點云信息融合

有了聯(lián)合標(biāo)定的外參文件,我們就可以進行信息融合了。 信息融合主要有兩個模塊:點云到圖像 、 圖像到點云

5.1 image2points

這部分代碼在your_path/deteection/camera_point_fusion/packages/joint_pixel_pointcloud這個pkg下面 這部分代碼實現(xiàn)的功能是建立將velodyne-16的點云投影到640×480的圖像上面,如果點云投影的二維點在圖像640×480范圍內(nèi),那么就把這個三維激光雷達(dá)點的位置記下來,同時匹配圖像上對應(yīng)像素的顏色,變成pcl::XYZRGB點返回,并顯示出來。 除此之外,這個模塊還可以訂閱目標(biāo)檢測信息,攝像頭獲取圖像,經(jīng)過目標(biāo)檢測模塊之后,得到2維bounding box坐標(biāo),利用點云和圖像像素的對應(yīng)關(guān)系,得到3維bounding box信息,并在RVIZ中顯示出來。 編譯好代碼之后,運行:

roslaunch joint_pixel_pointcloud joint_pixel_pointcloud.launch

同樣,需要先運行攝像頭驅(qū)動節(jié)點和velodyne驅(qū)動節(jié)點,還有目標(biāo)檢測節(jié)點,不過目標(biāo)檢測模塊因為某些原因不能公開到github,你可以使用自己的目標(biāo)檢測模塊,作為ROS節(jié)點添加到工作空間即可。 代碼運行效果如下所示:

f99f4fd6-d616-11ed-bfe3-dac502259ad0.jpg

這個就是圖像像素所對應(yīng)的點云,可以看到點云已經(jīng)被加上了黑白的顏色,點云周邊有一些比較淡的顏色,下面這幅圖加深了顏色,同時顯示出圖像對應(yīng)的點云在整個點云幀的位置:

f9c47b3a-d616-11ed-bfe3-dac502259ad0.jpg

下面是目標(biāo)檢測的效果:

f9e3762a-d616-11ed-bfe3-dac502259ad0.jpg

fa090dae-d616-11ed-bfe3-dac502259ad0.jpg

可以看到,圖像上檢測出來的物體,基本都在3D場景下對應(yīng)出來了,其中,不同的顏色代表不同的物體類別。 不過,因為這個目標(biāo)檢測模型是針對于自動駕駛場景的,分類對象都是car,pedestrian,info signs等,而因為實驗條件的原因我還沒有來得及拿出去測試代碼效果,就先在房間測試了一下,所以可以看到目標(biāo)檢測的框是有些沒意義的東西,不過不影響驗證信息融合效果。 這個節(jié)點可以便于我們進行障礙物檢測,因為視覺信息進行障礙物檢測是要優(yōu)于低線數(shù)激光雷達(dá)聚類的,但是視覺信息識別物體雖然準(zhǔn),卻沒有距離信息,激光雷達(dá)可以提供距離信息,因此,視覺和激光雷達(dá)二者結(jié)合,就可以獲得障礙物的距離、類別以及位置了

5.2 points2image

這個是把點云投影到圖像上,具體運行基本同理我就不說了。 代碼的具體效果如下所示:

fa1c5120-d616-11ed-bfe3-dac502259ad0.jpg

可以看到,點云基本是和圖像是匹配的。 這個節(jié)點的作用是可以幫助我們進行紅綠燈識別或者其他info_sign識別。因為進行紅綠燈檢測最好是可以獲取紅綠燈在圖像上的位置,即ROI,然后再進行識別會容易很多。我們可以在事先建立好的場景語義地圖中,加入紅綠燈的位置,這樣車輛到達(dá)該位置的時候就可以立刻找到紅綠燈在圖像上的ROI,這樣會優(yōu)化info sign的檢測。具體如下所示:

fa38b63a-d616-11ed-bfe3-dac502259ad0.jpg

六、總結(jié)

本文主要介紹了關(guān)于視覺和激光雷達(dá)進行信息融合相關(guān)內(nèi)容,包括相機標(biāo)定,攝像頭與激光雷達(dá)聯(lián)合標(biāo)定,信息融合節(jié)點等等 利用激光雷達(dá)和視覺信息融合,我們可以結(jié)合二者的優(yōu)點優(yōu)化障礙物檢測或交通標(biāo)志的識別,以及優(yōu)化其他相關(guān)任務(wù)等等。

審核編輯 :李倩

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

    關(guān)注

    9

    文章

    2853

    瀏覽量

    107279
  • 視覺
    +關(guān)注

    關(guān)注

    1

    文章

    146

    瀏覽量

    23870
  • 目標(biāo)檢測
    +關(guān)注

    關(guān)注

    0

    文章

    202

    瀏覽量

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

    關(guān)注

    967

    文章

    3929

    瀏覽量

    189468

原文標(biāo)題:視覺激光雷達(dá)信息融合與聯(lián)合標(biāo)定(附代碼)

文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    淺析自動駕駛發(fā)展趨勢,激光雷達(dá)是未來?

    的2D畫面)的數(shù)據(jù)收集器。二、視覺主導(dǎo)還是激光雷達(dá)主導(dǎo)?據(jù)清華大學(xué)鄧志東教授介紹,自動駕駛環(huán)境感知的技術(shù)路線主要有兩種:一種是以特斯拉為代表的視覺主導(dǎo)的多傳感器融合方案,另一種以低成本
    發(fā)表于 09-06 11:36

    激光雷達(dá)是自動駕駛不可或缺的傳感器

    要部分還是定位:位置確定了,無人車才知道要去哪里、以及怎么去。所以,確定“我在哪里”是第一步,也是非常關(guān)鍵的一步?,F(xiàn)在定位用 RTK,差分 GPS ,也有用激光雷達(dá)或者視覺去做。但 RTK 還是會受信號
    發(fā)表于 09-08 17:24

    激光雷達(dá)分類以及應(yīng)用

    束的回波信號來獲取目標(biāo)信息。激光雷達(dá)從線束上分可以分為:1、單線束激光雷達(dá)主要是應(yīng)用在掃地機器人2、多線束激光雷達(dá)這里主要是應(yīng)用在汽車行業(yè)中,有16線束、32線束以及64線束的
    發(fā)表于 09-19 15:51

    常見激光雷達(dá)種類

    和場景還原上有了質(zhì)的改變,可以識別物體的高度信息。多線激光雷達(dá)常規(guī)是2.5D,最多可以做到3D。目前在國際市場上推出的主要有 4線、8線、16 線、32 線和 64 線。多線激光雷達(dá)主要應(yīng)用于汽車
    發(fā)表于 09-25 11:30

    消費級激光雷達(dá)的起航

    提供給客戶,或提供系統(tǒng)級參考設(shè)計。而作為機器人的眼睛,激光雷達(dá)能夠幫助倉儲AGV在倉庫中自主避開障礙。目前用于倉儲AGV避障傳感器方案主要有:激光雷達(dá)、視覺傳感器(攝像頭)、紅外傳感器、超聲波傳感器等
    發(fā)表于 12-07 14:47

    北醒固態(tài)設(shè)計激光雷達(dá)

    看到機械或固態(tài)面陣激光雷達(dá)和攝像頭毫米波等“大家伙”在無人車上大放異彩的同時,有一些關(guān)鍵信息,其實正是這些“小伙伴”提供的。 賣出去,用起來,是好產(chǎn)品最重要的證明。本屆CES不僅是北醒展示技術(shù)的大舞臺
    發(fā)表于 01-25 09:36

    固態(tài)設(shè)計激光雷達(dá)

    看到機械或固態(tài)面陣激光雷達(dá)和攝像頭毫米波等“大家伙”在無人車上大放異彩的同時,有一些關(guān)鍵信息,其實正是這些“小伙伴”提供的。 賣出去,用起來,是好產(chǎn)品最重要的證明。本屆CES不僅是北醒展示技術(shù)的大舞臺
    發(fā)表于 01-25 09:41

    機器人和激光雷達(dá)都不可或缺

    幫助無人駕駛汽車獲取所在環(huán)境的三維位置信息,確定物體的位置、大小、外部形貌甚至材質(zhì)等信息,以“精準(zhǔn)”、“快速”、“高效作業(yè)”的空間探測能力成為無人駕駛領(lǐng)域不可或缺的存在?!   o人駕駛激光雷達(dá)三維成像
    發(fā)表于 02-15 15:12

    激光雷達(dá)和相機之間的外參標(biāo)定

    lidar_camera_calibration項目——激光雷達(dá)和相機聯(lián)合標(biāo)定
    發(fā)表于 04-12 09:27

    最佳防護——激光雷達(dá)與安防監(jiān)控解決方案

    波段的,以激光為工作光束的雷達(dá)稱為激光雷達(dá)。它由激光發(fā)射機、光學(xué)接收機、轉(zhuǎn)臺和信息處理系統(tǒng)等組成,激光
    發(fā)表于 02-29 17:03

    激光雷達(dá)

    想了解行業(yè)國內(nèi)做固態(tài)激光雷達(dá)的廠家,激光雷達(dá)里面是怎么樣的啊
    發(fā)表于 01-17 15:29

    FMCW激光雷達(dá)與dTOF激光雷達(dá)的區(qū)別在哪?

    FMCW激光雷達(dá)與dTOF激光雷達(dá)的區(qū)別在哪?
    發(fā)表于 07-23 13:22

    一種不依賴于棋盤格等輔助標(biāo)定物體實現(xiàn)像素級相機和激光雷達(dá)自動標(biāo)定的方法

    主要內(nèi)容本文提出了一種不依賴于棋盤格等輔助標(biāo)定物體,實現(xiàn)像素級相機和激光雷達(dá)自動標(biāo)定的方法。方法直接從點云中提取3D邊特征,一避免遮擋問題,并且使用了精確度更高的深度連續(xù)邊。文中首先指出:以下四種
    發(fā)表于 09-01 07:42

    基于梯形棋盤格標(biāo)定板對激光雷達(dá)和攝像機聯(lián)合標(biāo)定方法

    針對無人車(UGV)自主跟隨目標(biāo)車輛檢測過程中需要對激光雷達(dá)(LiDAR)數(shù)據(jù)和攝像機圖像進行信息融合的問題,提出了一種基于梯形棋盤格標(biāo)定板對激光雷
    發(fā)表于 11-30 16:23 ?7次下載
    基于梯形棋盤格<b class='flag-5'>標(biāo)定</b>板對<b class='flag-5'>激光雷達(dá)</b>和攝像機<b class='flag-5'>聯(lián)合</b><b class='flag-5'>標(biāo)定</b>方法

    視覺替代激光雷達(dá),可能嗎?特斯拉為何不用激光雷達(dá)?

    但是,埃隆·馬斯克真的就將激光雷達(dá)踩在腳底了嗎?恰恰相反,他清楚地認(rèn)識到視覺激光雷達(dá)的優(yōu)劣勢,同時不斷推動讓視覺方案做到本只能由激光雷達(dá)
    的頭像 發(fā)表于 09-23 16:30 ?7380次閱讀