chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

使用CUDA PCL 1.0加速Jetson的點(diǎn)云處理

星星科技指導(dǎo)員 ? 來源:NVIDIA ? 作者:NVIDIA ? 2022-04-27 10:53 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

很多Jetson用戶在自動(dòng)化解決方案中選擇激光雷達(dá)進(jìn)行定位和感知。激光雷達(dá)使用3D點(diǎn)云描繪周圍的空間環(huán)境。點(diǎn)云可以高精度長(zhǎng)距離采樣物體表面信息以便于上層應(yīng)用的障礙感知、繪圖、定位和路徑規(guī)劃算法。

使用CUDA-PCL處理點(diǎn)云

CUDA PCL 1.0是基于CUDA開發(fā)的點(diǎn)云處理庫(kù),在本文中,我們將介紹目前所有的三個(gè)庫(kù):ICP,segmentation 和 filter。

CUDA-ICP

迭代最近點(diǎn)算法(Iterative Closest Point,ICP) 用于計(jì)算兩幀點(diǎn)云數(shù)據(jù)之間的坐標(biāo)變換矩陣,從而能夠使不同的坐標(biāo)下的點(diǎn)云數(shù)據(jù)合并到同一個(gè)坐標(biāo)系統(tǒng)中。ICP算法 通過計(jì)算兩幀點(diǎn)云的距離誤差從而修正變換矩陣(平移和旋轉(zhuǎn))以便最小化距離誤差,通常兩幀點(diǎn)云之間的距離誤差是通過匹配點(diǎn)的距離計(jì)算得來。ICP算法應(yīng)用廣泛,能夠獲得很高的匹配結(jié)果且有很高的魯棒性,同時(shí)會(huì)耗費(fèi)大量的計(jì)算資源。為了改進(jìn)ICP算法在Jetson上的性能,我們推薦使用基于CUDA加速的CUDA-ICP。

使用CUDA-ICP

以下是CUDA ICP的使用實(shí)例

我們僅僅需要初始化相關(guān)的類對(duì)象,并調(diào)用接口函數(shù)即可。

    cudaICP icpTest(nPCountM, nQCountM, stream);
    icpTest.icp(cloud_source, nPCount,
            float *cloud_target, int nQCount,
            int Maxiterate, double threshold,
            Eigen::Matrix4f &transformation_matrix, stream);

CUDA-ICP 計(jì)算的輸出是 transformation_matrix,代表的含義如下:

源點(diǎn)云(P)* transformation = 目標(biāo)坐標(biāo)系的點(diǎn)云(Q)

因?yàn)榧す忸愋偷妮敵鳇c(diǎn)云的數(shù)量為固定值,所以CUDA-ICP在輸出化的時(shí)候,要求輸入兩幀點(diǎn)云的最大數(shù)量,從而分配計(jì)算資源。

class cudaICP
{
public:
    /*
       nPCountM and nQCountM are the maximum of count for input clouds
       They are used to pre-allocate memory.
    */
    cudaICP(int nPCountM, int nQCountM, cudaStream_t stream = 0);
    ~cudaICP(void);

    /*
    cloud_target = transformation_matrix *cloud_source
    When the Epsilon of transformation_matrix is less than threshold,
    the function will return transformation_matrix.
    Input:
        cloud_source, cloud_target: data pointer for points cloud
        nPCount: the points number of cloud_source
        nQCount: the points number of cloud_target
        Maxiterate: the threshold for iterations
        threshold: When the Epsilon of transformation_matrix is less than
            threshold, the function will return transformation_matrix.
    Output:
        transformation_matrix
    */

    void icp(float *cloud_source, int nPCount,

Figure 1. 執(zhí)行ICP之前的兩幀點(diǎn)云。

Figure 2. 經(jīng)過ICP匹配后的兩幀點(diǎn)云。

CUDA-Segmentation

點(diǎn)云地圖包含大量的地面點(diǎn),不僅會(huì)使得地圖變的雜亂,也會(huì)干擾之后的點(diǎn)云的分類和識(shí)別。因此在實(shí)際處理中,我們會(huì)首先使用點(diǎn)云分割移除點(diǎn)云中的地面。CUDA-Segmentation 使用隨機(jī)樣本一致性算法(random sample consensus, Ransac)進(jìn)行點(diǎn)云的分割。

使用CUDA- Segmentation

以下代碼是CUDA Segmentation的使用實(shí)例。

我們直接初始化對(duì)象并調(diào)用相關(guān)的接口函數(shù)即可。

  //Now Just support: SAC_RANSAC + SACMODEL_PLANE
  std::vector indexV;
  cudaSegmentation cudaSeg(SACMODEL_PLANE, SAC_RANSAC, stream);
  segParam_t setP;
  setP.distanceThreshold = 0.01; 
  setP.maxIterations = 50;
  setP.probability = 0.99;
  setP.optimizeCoefficients = true;
  cudaSeg.set(setP);
  cudaSeg.segment(input, nCount, index, modelCoefficients);
  for(int i = 0; i < nCount; i++)
  {
    if(index[i] == 1) 
    indexV.push_back(i);
  }

CUDA Segmentation分割擁有nCount個(gè)的點(diǎn)云,并輸出索引表index用于指示輸入點(diǎn)云中的被分割掉的點(diǎn)和modelCoefficients用于指示尋找的平面公式。

typedef struct {
  double distanceThreshold; 
  int maxIterations;
  double probability;
  bool optimizeCoefficients;
} segParam_t;

class cudaSegmentation
{
public:
    //Now Just support: SAC_RANSAC + SACMODEL_PLANE
    cudaSegmentation(int ModelType, int MethodType, cudaStream_t stream = 0);

    ~cudaSegmentation(void);

    /*
    Input:
        cloud_in: data pointer for points cloud
        nCount: count of points in cloud_in
    Output:
        Index: data pointer which has the index of points in a plane from input
      modelCoefficients: data pointer which has the group of coefficients of the plane
    */
    int set(segParam_t param);
    void segment(float *cloud_in, int nCount,
            int *index, float *modelCoefficients);
private:
    void *m_handle = NULL;
}; 

讓我們查看下面的實(shí)例,第一張圖是原始的點(diǎn)云,第二張圖是經(jīng)過算法尋找到的平面。這是一個(gè)非常典型的平面移除的應(yīng)用。

Figure 3. cuda-segmentaion處理之前的點(diǎn)云。

Figure 4. cuda-segmentaion找到的點(diǎn)云平面。

CUDA-Filter

濾波器是在分割,檢測(cè)和識(shí)別之前,點(diǎn)云數(shù)據(jù)中最重要的處理。

帶通點(diǎn)云濾波是最簡(jiǎn)單的方法,僅僅是過濾X,Y和Z軸方向的點(diǎn)云。

目前CUDA-Filter僅支持帶通操作,更多的濾波器會(huì)在后續(xù)加入。

使用CUDA- Filter

這個(gè)是CUDA Filter的使用實(shí)例。

我們僅僅需要初始化對(duì)象并調(diào)用相關(guān)的接口函數(shù)即可。

我們僅僅需要初始化對(duì)象并調(diào)用相關(guān)的接口函數(shù)即可。

  cudaFilter filterTest(stream);
  FilterParam_t setP;
  FilterType_t type = PASSTHROUGH;
  setP.type = type;
  setP.dim = 2;
  setP.upFilterLimits = 1.0;
  setP.downFilterLimits = 0.0;
  setP.limitsNegative = false;
  filterTest.set(setP);
  filterTest.filter(output, &countLeft, input, nCount);

CUDA-Filter使用指定的參數(shù)過濾nCount有個(gè)點(diǎn)的點(diǎn)云數(shù)據(jù),過濾后輸出的點(diǎn)云數(shù)量為countLeft。


typedef struct {
    FilterType_t type;
    //0=x,1=y,2=z
    int dim;
    float upFilterLimits;
    float downFilterLimits;
    bool limitsNegative;

} FilterParam_t;

class cudaFilter
{
public:
    cudaFilter(cudaStream_t stream = 0);
    ~cudaFilter(void);
    int set(FilterParam_t param);
    /*
    Input:
        source: data pointer for points cloud
        nCount: count of points in cloud_in
    Output:
        output: data pointer which has points filtered by CUDA
        countLeft: count of points in output
    */
    int filter(void *output, unsigned int *countLeft, void *source, unsigned int nCount);

    void *m_handle = NULL;
}; 

讓我們看下X軸方向的帶通濾波實(shí)例。

Figure 5. 原始點(diǎn)云。

Figure 6. X周過濾后的數(shù)據(jù)。

開始使用 CUDA-PCL

我們希望通過本文介紹使用CUDA-PCL從而獲得更好的點(diǎn)云處理性能。

因?yàn)镻CL在Jetson上無法使用CUDA進(jìn)行點(diǎn)云的加速處理,所以我們開發(fā)了基于CUDA的點(diǎn)云處理庫(kù)CUDA-PCL。

關(guān)于作者

范磊是英偉達(dá)高級(jí)CUDA軟件工程師,在TSE China 小組致力于CUDA軟件方案的開發(fā)和優(yōu)化。

李雨倩負(fù)責(zé)基于Jetson的自主機(jī)器解決方案和生態(tài)發(fā)展建設(shè),讓開發(fā)者在Jetson上開發(fā)機(jī)器人應(yīng)用獲得更好更全面的體驗(yàn)和支持。

審核編輯:郭婷

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

    關(guān)注

    977

    文章

    4373

    瀏覽量

    195278
  • CUDA
    +關(guān)注

    關(guān)注

    0

    文章

    125

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    【CIE全國(guó)RISC-V創(chuàng)新應(yīng)用大賽】+基于MUSE Pi Pro的3d激光里程計(jì)實(shí)現(xiàn)

    ├── USB 3.0接口 ← IMU數(shù)據(jù)通道 └── 電源管理模塊 軟件架構(gòu) 應(yīng)用層: Point-LIO里程計(jì)節(jié)點(diǎn) ↓ 中間件層: ROS2通信框架 + PCL點(diǎn)處理庫(kù) ↓
    發(fā)表于 10-24 17:02

    BPI-AIM7 RK3588 AI與 Nvidia Jetson Nano 生態(tài)系統(tǒng)兼容的低功耗 AI 模塊

    應(yīng)用。 []() AIM-IO是一款專為 Jetson Nano 生態(tài)系統(tǒng)設(shè)計(jì)的開源擴(kuò)展板。它與 RK3588 AI Module7 配合使用,為您提供一個(gè)微型 AI 開發(fā)平臺(tái),支持定制載板開發(fā),并加速機(jī)器
    發(fā)表于 10-11 09:08

    什么是加速?加速的重點(diǎn)選購(gòu)指標(biāo)是哪些?

    加速是提升網(wǎng)站、APP訪問速度的關(guān)鍵工具,很多人卻搞不清它的作用和選購(gòu)要點(diǎn)。本文 華納 會(huì)先用通俗語言解釋加速是什么,再拆解選購(gòu)時(shí)必看
    的頭像 發(fā)表于 09-12 16:29 ?693次閱讀

    ADI借助NVIDIA Jetson Thor平臺(tái)加速人形機(jī)器人研發(fā)進(jìn)程

    當(dāng)前,人形機(jī)器人正逐步邁向?qū)嶋H應(yīng)用部署階段,其落地節(jié)奏取決于物理智能與實(shí)時(shí)推理能力的發(fā)展。隨著NVIDIA Jetson Thor平臺(tái)的正式面市,Analog Devices, Inc. (ADI)將進(jìn)一步加速人形機(jī)器人與自主移動(dòng)機(jī)器人(AMR)的研發(fā)進(jìn)程。
    的頭像 發(fā)表于 08-29 14:07 ?2596次閱讀

    基于 NVIDIA Blackwell 的 Jetson Thor 現(xiàn)已發(fā)售,加速通用機(jī)器人時(shí)代的到來

    ·專為物理 AI 和機(jī)器人打造的機(jī)器人計(jì)算機(jī) NVIDIA Jetson AGX Thor 開發(fā)者套件和量產(chǎn)級(jí)模組,現(xiàn)已發(fā)售。 ·超過 200 萬開發(fā)者正在使用 NVIDIA 的機(jī)器人技術(shù)棧,聯(lián)影
    發(fā)表于 08-26 09:28 ?1185次閱讀
    基于 NVIDIA Blackwell 的 <b class='flag-5'>Jetson</b> Thor 現(xiàn)已發(fā)售,<b class='flag-5'>加速</b>通用機(jī)器人時(shí)代的到來

    AI 驅(qū)動(dòng)三維逆向:點(diǎn)降噪算法工具與機(jī)器學(xué)習(xí)建模能力的前沿應(yīng)用

    在三維逆向工程領(lǐng)域,傳統(tǒng)方法在處理復(fù)雜數(shù)據(jù)和構(gòu)建高精度模型時(shí)面臨諸多挑戰(zhàn)。隨著人工智能(AI)技術(shù)的發(fā)展,點(diǎn)降噪算法工具與機(jī)器學(xué)習(xí)建模能力的應(yīng)用,為三維逆向工程帶來了創(chuàng)新性解決方案,顯著提升
    的頭像 發(fā)表于 08-20 10:00 ?431次閱讀
    AI 驅(qū)動(dòng)三維逆向:<b class='flag-5'>點(diǎn)</b><b class='flag-5'>云</b>降噪算法工具與機(jī)器學(xué)習(xí)建模能力的前沿應(yīng)用

    NVIDIA Jetson + Isaac SDK 人形機(jī)器人方案全面解析

    SDK + Isaac Sim :專為機(jī)器人打造的軟件開發(fā)平臺(tái),支持 ROS、實(shí)時(shí)感知、動(dòng)作規(guī)劃和 AI 強(qiáng)化學(xué)習(xí) 二、Jetson 芯片系列對(duì)比 型號(hào) GPU (CUDA) CPU AI級(jí)別
    的頭像 發(fā)表于 07-30 16:12 ?1832次閱讀

    Jetson平臺(tái)核心組件BOM清單概覽

    Jetson平臺(tái)核心組件BOM清單概覽 NVIDIA Jetson系列作為業(yè)界領(lǐng)先的邊緣計(jì)算和人工智能(AI)平臺(tái),其強(qiáng)大的性能背后是一系列精心挑選的核心芯片、電源管理集成電路(PMIC)以及豐富
    的頭像 發(fā)表于 07-30 16:11 ?2407次閱讀

    NVIDIA Jetson + Isaac SDK 在人形機(jī)器人領(lǐng)域的方案詳解

    機(jī)器人感知、導(dǎo)航、運(yùn)動(dòng)控制、任務(wù)規(guī)劃的模塊化開發(fā)框架和物理仿真環(huán)境 二、Jetson 系列芯片型號(hào)對(duì)比表 型號(hào) GPU (CUDA 核心) CPU AI性能(TOPS) 功耗(W) 典
    的頭像 發(fā)表于 07-30 16:05 ?3115次閱讀

    PCl Express M.2規(guī)格書

    電子發(fā)燒友網(wǎng)站提供《PCl Express M.2規(guī)格書.pdf》資料免費(fèi)下載
    發(fā)表于 06-25 15:41 ?0次下載

    使用NVIDIA CUDA-X庫(kù)加速科學(xué)和工程發(fā)展

    NVIDIA GTC 全球 AI 大會(huì)上宣布,開發(fā)者現(xiàn)在可以通過 CUDA-X 與新一代超級(jí)芯片架構(gòu)的協(xié)同,實(shí)現(xiàn) CPU 和 GPU 資源間深度自動(dòng)化整合與調(diào)度,相較于傳統(tǒng)加速計(jì)算架構(gòu),該技術(shù)可使計(jì)算工程工具運(yùn)行速度提升至原來的 11 倍,計(jì)算規(guī)模增加至 5 倍。
    的頭像 發(fā)表于 03-25 15:11 ?1188次閱讀

    驥智行借助NVIDIA Jetson打造“域腦”通用計(jì)算平臺(tái)

    本案例中,驥智行(Pegasus Technology)借助 NVIDIA Jetson 打造“域腦”通用計(jì)算平臺(tái),實(shí)現(xiàn)了在人形機(jī)器人、智能新終端等具身智能場(chǎng)景的部署應(yīng)用,滿足多場(chǎng)景算力需求,保障系統(tǒng)安全穩(wěn)定運(yùn)行并推動(dòng)功能拓展。
    的頭像 發(fā)表于 02-21 11:41 ?1456次閱讀

    操作指南:pytorch服務(wù)器怎么設(shè)置?

    設(shè)置PyTorch服務(wù)器需選擇平臺(tái),創(chuàng)建合適的GPU實(shí)例,安裝操作系統(tǒng)、Python及Anaconda,創(chuàng)建虛擬環(huán)境,根據(jù)CUDA版本安裝PyTorch,配置環(huán)境變量,最后驗(yàn)證安裝。過程中需考慮
    的頭像 發(fā)表于 02-08 10:33 ?594次閱讀

    GPU加速服務(wù)器怎么用的

    GPU加速服務(wù)器是將GPU硬件與計(jì)算服務(wù)相結(jié)合,通過服務(wù)提供商的平臺(tái),用戶可以根據(jù)需求靈活租用帶有GPU資源的虛擬機(jī)實(shí)例。那么,GPU加速
    的頭像 發(fā)表于 12-26 11:58 ?837次閱讀

    數(shù)據(jù)庫(kù)和主機(jī)哪個(gè)好一點(diǎn)?

    數(shù)據(jù)庫(kù)和主機(jī)哪個(gè)好一點(diǎn)主機(jī)和數(shù)據(jù)庫(kù)各有優(yōu)勢(shì),選擇哪個(gè)更好取決于具體需求。主機(jī)提供虛擬
    的頭像 發(fā)表于 12-04 13:50 ?718次閱讀