色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

激光雷達點云預處理介紹

麥辣雞腿堡 ? 來源:古月居 ? 作者:lovely_yoshin ? 2023-11-27 18:11 ? 次閱讀

激光雷達作為自動駕駛最常用的傳感器,經常需要使用激光雷達來做建圖、定位和感知等任務。

而這時候使用降低點云規模的預處理方法,可以能夠去除無關區域的點以及降低點云規模。并能夠給后續的PCL點云分割帶來有效的收益。

點云預處理

1.1 指定區域獲取點云

在實際使用中,我們可以看出,雖然點云的分布范圍較廣,但大部分的點都集中的中間區域,距離越遠點云越稀疏,相對的信息量也越小。

此外還能明顯看到一些離群點,因此我們可以篩選掉一些較遠的點,只保留我們感興趣范圍內的點。以下為保留 x 在 30m,y 在 15m,z 在 2m 范圍內的點的效果:

template < class PointType >void removePointsOutsideRegion(boost::shared_ptr< pcl::PointCloud< PointType > >& src_cloud_ptr,                               boost::shared_ptr< pcl::PointCloud< PointType > >& dst_cloud_ptr,                               const std::pair< double, double >& x_range,                               const std::pair< double, double >& y_range,                               const std::pair< double, double >& z_range) {    int num_points = src_cloud_ptr- >points.size();    boost::shared_ptr< pcl::PointCloud< PointType > > cloud_ptr(new pcl::PointCloud< PointType >());    cloud_ptr- >points.reserve(num_points);    for (const auto& pt : src_cloud_ptr- >points) {        bool inside = (pt.x  >= x_range.first && pt.x < = x_range.second && pt.y  >= y_range.first &&                       pt.y < = y_range.second && pt.z  >= z_range.first && pt.z < = z_range.second);        if (inside) {            cloud_ptr- >points.push_back(pt);        }    }    dst_cloud_ptr = cloud_ptr;} // 或者使用CropBox來實現去除給定區域外的點 pcl::CropBox< pcl::PointXYZ > box_filter; box_filter.setInputCloud(cloud_ptr); box_filter.setMin(Eigen::Vector4f(keep_x_range.first, keep_y_range.first, keep_z_range.first, 1.0)); box_filter.setMax(Eigen::Vector4f(keep_x_range.second, keep_y_range.second, keep_z_range.second, 1.0)); box_filter.filter(*temp_cloud_ptr);

1.2 去除給定區域的點

在某些情況下,我們也會需要去除給定區域內部的點,比如在自動駕駛中激光掃描的區域有一部分來自搭載激光雷達的車子本身

template < class PointType >void filterPointsWithinRegion(boost::shared_ptr< pcl::PointCloud< PointType > >& src_cloud_ptr,                              boost::shared_ptr< pcl::PointCloud< PointType > >& dst_cloud_ptr,                              const std::pair< double, double >& x_range,                              const std::pair< double, double >& y_range,                              const std::pair< double, double >& z_range,                              bool remove) {    int num_points = src_cloud_ptr- >points.size();    boost::shared_ptr< pcl::PointCloud< PointType > > cloud_ptr(new pcl::PointCloud< PointType >());    cloud_ptr- >points.reserve(num_points);    for (const auto& pt : src_cloud_ptr- >points) {        bool inside = (pt.x  >= x_range.first && pt.x < = x_range.second && pt.y  >= y_range.first &&                       pt.y < = y_range.second && pt.z  >= z_range.first && pt.z < = z_range.second);        if (inside ^ remove) {            cloud_ptr- >points.push_back(pt);        }    }    dst_cloud_ptr = cloud_ptr;}// PassThrough: 可以指定點云中的點的某個字段進行范圍限制,將其設為 true 時可以進行給定只保留給定范圍內的點的功能 pcl::PassThrough< pcl::PointXYZ > pass_filter; bool reverse_limits = true; pass_filter.setInputCloud(filtered_cloud_ptr); pass_filter.setFilterFieldName("x"); pass_filter.setFilterLimits(-5, 5); pass_filter.getFilterLimitsNegative(reverse_limits);  // reverse the limits pass_filter.filter(*filtered_cloud_ptr); pass_filter.setFilterFieldName("y"); pass_filter.setFilterLimits(-2, 2); pass_filter.getFilterLimitsNegative(reverse_limits);  // reverse the limits pass_filter.filter(*filtered_cloud_ptr); pass_filter.setFilterFieldName("z"); pass_filter.setFilterLimits(-2, 2); pass_filter.getFilterLimitsNegative(reverse_limits);  // reverse the limits pass_filter.filter(*filtered_cloud_ptr);

1.3 點云下采樣

1.3.1 柵格化采樣

這里第一點介紹柵格化的下采樣,在 PCL 中對應的函數為體素濾波。柵格化下采樣大致的思路是計算整體點云的中心

通過計算每個點到中心的距離結合要求的分辨率計算柵格對應的坐標,并入其中,最后遍歷每個包含點的柵格計算其中點的幾何中心或者取該柵格中心加入目標點云即可。

pcl::VoxelGrid< pcl::PointXYZ > voxel_filter;    voxel_filter.setLeafSize(0.1, 0.1, 0.1);    voxel_filter.setInputCloud(cloud_ptr);    voxel_filter.filter(*filtered_cloud_ptr);

1.3.2 點云所在區域密度規律濾波

該方法直接基于點云分布密度進行去噪,直觀的感受是可以根據點云中每個點所在區域判斷其是否是噪聲,一般來說噪聲點所在區域都比較稀疏。

pcl::RadiusOutlierRemoval< pcl::PointXYZ >::Ptr radius_outlier_removal(        new pcl::RadiusOutlierRemoval< pcl::PointXYZ >(true));    radius_outlier_removal- >setInputCloud(cloud_ptr);    radius_outlier_removal- >setRadiusSearch(1.0);    radius_outlier_removal- >setMinNeighborsInRadius(10);    radius_outlier_removal- >filter(*filtered_cloud_ptr);

1.3.3 點云所在區域分布規律濾波

除了根據稠密意以外還可以根據距離來篩選濾波,每個點計算其到周圍若干點的平均距離,如果這個平均距離相對于整體點云中所有點的平均距離較近,則認為其不是噪點

// PCL built-in radius removal    pcl::StatisticalOutlierRemoval&lt;pcl::PointXYZ&gt;::Ptr statistical_outlier_removal(        new pcl::StatisticalOutlierRemoval&lt;pcl::PointXYZ&gt;(true)); // set to true if we want to extract removed indices    statistical_outlier_removal-&gt;setInputCloud(cloud_ptr);    statistical_outlier_removal-&gt;setMeanK(20);    statistical_outlier_removal-&gt;setStddevMulThresh(2.0);    statistical_outlier_removal-&gt;filter(*filtered_cloud_ptr);

1.3.4 根據點云是否可以被穩定觀察到篩選

LOAM 中對點云中的點是否能形成可靠特征的一個判斷標準是它能否被穩定觀察到。

LOAM 中著重提了這兩種情況的點是不穩定的:

  • 特征成平面和掃描線近乎平行
  • 特征掃描到的其中一端被另一個平面擋住,這部分的點也不穩定
template < typename PointType >void filter_occuluded_points(boost::s
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 傳感器
    +關注

    關注

    2551

    文章

    51163

    瀏覽量

    754156
  • 激光雷達
    +關注

    關注

    968

    文章

    3981

    瀏覽量

    190014
  • 自動駕駛
    +關注

    關注

    784

    文章

    13838

    瀏覽量

    166532
  • 點云
    +關注

    關注

    0

    文章

    58

    瀏覽量

    3801
收藏 人收藏

    評論

    相關推薦

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

    看到這種低成本的激光雷達,從研發、樣品到商用,可能會比原來預想的周期更快。因為不是一家激光雷達公司在努力,而是整個產業鏈都在努力。是在同一空間倡導系下表達目標空間分布和目標表面特性
    發表于 09-08 17:24

    激光雷達分類以及應用

    激光雷達實際上是一種工作在光學波段(特殊波段)的雷達,它的優點非常明顯:1、具有極高的分辨率:激光雷達工作于光學波段,頻率比微波高2~3個數量級以上,因此,與微波雷達相比,
    發表于 09-19 15:51

    常見激光雷達種類

    單線激光雷達特點:結構簡單、掃描速度快、分辨率高、可靠性高、成本低。單線激光雷達實際上就是一個高同頻激光脈沖掃描儀,加上一個一維旋轉掃描。單線激光雷達雖然原理簡單但是可以有效、高頻的測
    發表于 09-25 11:30

    激光雷達面臨的機遇與挑戰

    機遇激光雷達在智能機器生態系統中有很多機遇。與使用二維圖像相比,能夠更容易的被計算機使用,用于構建物理環境的三維形象——二維圖像是人腦最容易理解的數據,而對于計算機來說,
    發表于 09-26 14:30

    固態激光雷達

    `我們已經對單線激光雷達司空見慣,其旋轉線掃的測量方式導致造成壽命問題和價格居高不下。 因此,北醒研發了CE30,它是一款具有大視場角的固態激光雷達。它可同時輸出132°水平視場、9度垂直視場范圍內
    發表于 01-04 10:18

    激光雷達

    `我們已經對單線激光雷達司空見慣,其旋轉線掃的測量方式導致造成壽命問題和價格居高不下。 因此,北醒研發了CE30,它是一款具有大視場角的固態激光雷達。它可同時輸出132°水平視場、9度垂直視場范圍內
    發表于 01-11 09:21

    固態設計激光雷達

    ``一年一度的國際消費類電子產品展覽會(CES)已經完滿收官,短短的幾天時間里,我們見識了Intel無人飛機燈光秀、百度無人車、移動行李箱等眾多“黑科技”。而北醒不僅展示了性能卓越的固態激光雷達,在
    發表于 01-25 09:41

    激光雷達除了可以激光測距外,還可以怎么應用?

    簡單的3D雷達,獲取三維數據呢?目前市面上主流的有2種方式:1、采用線狀激光器,將原先的一個變成一條線型光;2、使用一個2D激光雷達掃描,同時在另一個軸進行旋轉,從而掃描出3D信息;
    發表于 05-11 15:33

    激光雷達知多少:從技術上講講未來前景

    激光雷達產業迅速擴大。 地基激光雷達 地基激光雷達可以獲取林區的3D信息,利用
    發表于 07-14 07:56

    激光雷達

    想了解行業國內做固態激光雷達的廠家,激光雷達里面是怎么樣的啊
    發表于 01-17 15:29

    激光雷達數據分割算法的嵌入式平臺上的部署實現

    點擊上方“AI算法修煉營”,選擇“星標”公眾號精選作品,第一時間送達這篇文章是激光雷達數據分割算法的嵌入式平臺上的部署實現。主要的創新有兩
    發表于 12-21 08:28

    詳解激光雷達數據的處理過程

    隨著激光雷達的上車數量的不斷攀升,如何用好激光雷達成為了重中之重,而用好激光雷達的關鍵之一就在于處理好點
    的頭像 發表于 03-14 09:36 ?3969次閱讀

    激光雷達處理中遇到的問題及對策

    在與激光雷達公司和下游主機廠或者解決方案商的專家交流的過程中,筆者發現,當前激光處理過程中,感知算法人員會遇到很多問題。
    的頭像 發表于 03-14 17:50 ?2634次閱讀

    自動駕駛之激光雷達預處理/特征提取

    0. 簡介 激光雷達作為自動駕駛最常用的傳感器,經常需要使用激光雷達來做建圖、定位和感知等任務。而這時候使用降低點規模的預處理方法,可以能夠去除無關區域的
    發表于 06-06 10:07 ?2次下載
    自動駕駛之<b class='flag-5'>激光雷達</b><b class='flag-5'>預處理</b>/特征提取

    激光雷達數據包含哪些信息

    )、環境監測、城市規劃等領域。激光雷達數據是激光雷達系統收集到的一系列三維空間坐標點,包含了豐富的空間信息。本文將介紹
    的頭像 發表于 08-29 17:18 ?957次閱讀
    主站蜘蛛池模板: 好紧好湿太硬了我太爽了文字| 欧美无码专区| 神马电影院午夜神福利在线观看| gay台湾无套男同志xnxⅹ| 日韩精品一区二区三区AV在线观看| 爱暖暖1000部免费| 午夜熟女插插XX免费视频| 精品成人在线视频| 99青草青草久热精品视频| 色欲国产麻豆精品AV免费| 黄色亚洲片| AV天堂午夜精品蜜臀AV| 宿舍BL 纯肉各种PLAY H| 久久9精品区-无套内射无码| 99久久久免费精品国产| 婷婷亚洲AV色香蕉蜜桃| 久艾草在线精品视频在线观看| ebc5恐怖5a26房间| 亚洲精品不卡在线| 欧美最猛性xxxxx亚洲精品| 国产午夜精品久久理论片小说| 91久久偷偷做嫩草影院免| 熟女人妻AV五十路六十路| 久久综合视频网站| 国产白浆视频在线播放| 在线观看免费视频a| 色婷婷亚洲精品天天综合影院| 久久精品视频3| 高清国产在线播放成人| 18国产精品白浆在线观看免费| 偷柏自拍亚洲综合在线| 男人一进一出桶女人视频| 国产深夜福利视频在线| WWWXXXX兽交| 中文国产在线观看| 午夜国产精品免费观看| 欧美男女爱爱| 久久免费大片| 国产睡熟迷奷系列网站| 超碰在线视频公开| 91九色网址|