国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

跨模態(tài)Transformer:面向快速魯棒的3D目標檢測

人工智能 新聞
目前將各個模態(tài)融合在一起去提升模型的感知性能已經(jīng)是一個比較火熱的研究方向(畢竟自動駕駛汽車上配備了多種傳感器),同時CMT又是一個完全End-to-End的感知算法。

本文經(jīng)自動駕駛之心公眾號授權轉載,轉載請聯(lián)系出處。

圖片

目前,在自動駕駛的車輛中已經(jīng)配備了多種信息采集傳感器,如激光雷達、毫米波雷達以及相機傳感器。目前來看,多種傳感器融合在自動駕駛的感知任務中顯示出了巨大的發(fā)展前景。比如:相機采集到的2D圖像信息捕獲了豐富的語義特征,激光雷達采集到的點云數(shù)據(jù)可以為感知模型提供物體的準確位置信息和幾何信息。通過將不同種傳感器獲取到的信息充分利用起來可以減少自動駕駛感知過程中的不確定性因素的發(fā)生,同時使感知模型具有更好的檢測魯棒性。

今天介紹的是一篇來自曠視的自動駕駛感知論文,并且中稿了今年的ICCV2023 視覺頂會,該文章的主要特點是類似PETR這類End-to-End的BEV感知算法(不再需要利用NMS后處理操作過濾感知結果中的冗余框),同時又額外使用了激光雷達的點云信息來提高模型的感知性能,是一篇非常不錯的自動駕駛感知方向的論文,文章的鏈接和官方開源倉庫鏈接如下:

  • 論文鏈接:https://arxiv.org/pdf/2301.01283.pdf
  • 代碼鏈接:https://github.com/junjie18/CMT

CMT算法模型整體結構

接下來先整體介紹一下CMT感知模型的網(wǎng)絡結構,如下圖所示:

圖片

通過整個算法框圖可以看出,整個算法模型主要包括三個部分

  • 激光雷達主干網(wǎng)絡+相機主干網(wǎng)絡(Image Backbone + Lidar Backbone):用于獲取點云和環(huán)視圖像的特征得到Point Cloud Token**(PC Tokens)以及Image Token(Im Tokens)**
  • 位置編碼的生成:針對不同傳感器采集到的數(shù)據(jù)信息,Im Tokens生成對應的坐標位置編碼Im PEPC Tokens生成對應的坐標位置編碼PC PE,同時Object Queries也生成對應的坐標位置編碼Query Embedding
  • Transformer Decoder+FFN網(wǎng)絡:輸入為Object Queries + Query Embedding 以及完成位置編碼的Im TokensPC Tokens進行交叉注意力的計算,利用FFN生成最終的3D Boxes + 類別預測

在介紹完網(wǎng)絡整體結構之后,接下來就詳細介紹一下上述提到的三個子部分

激光雷達主干網(wǎng)絡+相機主干網(wǎng)絡(Image Backbone + Lidar Backbone)
  • 激光雷達主干網(wǎng)絡
    通常采用的激光雷達主干網(wǎng)絡提取點云數(shù)據(jù)特征包括以下五個部分
  • 點云信息體素化
  • 體素特征編碼
  • 3D Backbone(常用VoxelResBackBone8x網(wǎng)絡)對體素特征編碼后的結果進行3D特征的提取
  • 將3D Backbone提取到特征的Z軸進行壓縮,得到BEV空間下的特征
  • 利用2D Backbone對投影到BEV空間的特征做進一步的特征擬合
  • 由于2D Backbone輸出的特征圖的通道數(shù)與Image輸出的通道數(shù)不一致,用了一個卷積層進行通道數(shù)的對齊(針對本文模型而言,做了一個通道數(shù)量的對齊,但并不屬于原有點云信息提取的范疇)
  • 相機主干網(wǎng)絡
    一般采用的相機主干網(wǎng)絡提取2D圖像特征包括以下兩個部分:
  • 輸入:2D Backbone輸出的降采樣16倍和32倍的特征圖

  • 輸出:將下采樣16倍和32倍的圖像特征進行融合,獲取降采樣16倍的特征圖

  • Tensor([bs * N, 1024, H / 16, W / 16])

  • Tensor([bs * N,2048,H / 16,W / 16])

  • Tensor([bs * N,256,H / 16,W / 16])

  • 輸入:采用ResNet-50網(wǎng)絡提取環(huán)視圖像特征

  • 輸出:輸出下采樣16倍和32倍的圖像特征

  • 輸入張量:Tensor([bs * N,3,H,W])

  • 輸出張量:Tensor([bs * N,1024,H / 16,W / 16])

  • 輸出張量:``Tensor([bs * N,2048,H / 32,W / 32])`

  • 2D Backbone提取圖像特征

  • Neck(CEFPN)

位置編碼的生成

根據(jù)上面的介紹可知,位置編碼的生成主要包括三個部分,分別是Image Position Embedding,Point Cloud Position Embedding以及Query Embedding;接下來分別介紹一下他們的生成過程。

  • Image Position Embedding(Im PE)
    Image Position Embedding的生成過程與PETR中圖像位置編碼的生成邏輯是一樣的(具體可以參考PETR論文原文,這里不做過多的闡述),可以總結為以下四個步驟:
  • 在圖像坐標系下生成3D圖像視錐點云
  • 3D圖像視錐點云利用相機內(nèi)參矩陣變換到相機坐標系下得到3D相機坐標點
  • 相機坐標系下的3D點利用cam2ego坐標變換矩陣轉換到BEV坐標系下
  • 將轉換后的BEV 3D 坐標利用MLP層進行位置編碼得到最終的圖像位置編碼
  • Point Cloud Position Embedding(PC PE)
    Point Cloud Position Embedding的生成過程可以分為以下兩個步驟
  • 在BEV空間的網(wǎng)格坐標點利用pos2embed()函數(shù)將二維的橫縱坐標點變換到高維的特征空間

    # 點云位置編碼`bev_pos_embeds`的生成
    bev_pos_embeds = self.bev_embedding(pos2embed(self.coords_bev.to(device), num_pos_feats=self.hidden_dim))
    
    def coords_bev(self):
        x_size, y_size = (grid_size[0] // downsample_scale,grid_size[1] // downsample_scale)
        meshgrid = [[0, y_size - 1, y_size], [0, x_size - 1, x_size]]
        batch_y, batch_x = torch.meshgrid(*[torch.linspace(it[0], it[1], it[2]) for it in meshgrid])
        batch_x = (batch_x + 0.5) / x_size
        batch_y = (batch_y + 0.5) / y_size
        coord_base = torch.cat([batch_x[None], batch_y[None]], dim=0)   # 生成BEV網(wǎng)格.
        coord_base = coord_base.view(2, -1).transpose(1, 0)  
        return coord_base  # shape: (x_size *  y_size, 2)
    
    def pos2embed(pos, num_pos_feats=256, temperature=10000):
        scale = 2 * math.pi
        pos = pos * scale
        dim_t = torch.arange(num_pos_feats, dtype=torch.float32, device=pos.device)
        dim_t = temperature ** (2 * (dim_t // 2) / num_pos_feats)
        pos_x = pos[..., 0, None] / dim_t
        pos_y = pos[..., 1, None] / dim_t
        
        pos_x = torch.stack((pos_x[..., 0::2].sin(), pos_x[..., 1::2].cos()), dim=-1).flatten(-2)
        pos_y = torch.stack((pos_y[..., 0::2].sin(), pos_y[..., 1::2].cos()), dim=-1).flatten(-2)
        
        posemb = torch.cat((pos_y, pos_x), dim=-1)
        return posemb  # 將二維的x,y坐標編碼成512維的高維向量


  • 利用一個MLP網(wǎng)絡進行空間轉換,保證通道數(shù)量的對齊


  • Query Embedding

    為了讓Object Queries、Image Token以及Lidar Token之間計算相似性更加的準確,論文中的Query Embedding會利用Lidar和Camera生成位置編碼的邏輯來生成;具體而言Query Embedding = Image Position Embedding(同下面的rv_query_embeds) + Point Cloud Position Embedding(同下面的bev_query_embeds)。


  • bev_query_embeds生成邏輯

    由于論文中的Object Query原本就是在BEV空間進行初始化的,所以直接復用Point Cloud Position Embedding生成邏輯中的位置編碼和bev_embedding()函數(shù)即可,對應關鍵代碼如下:

    def _bev_query_embed(self, ref_points, img_metas):
        bev_embeds = self.bev_embedding(pos2embed(ref_points, num_pos_feats=self.hidden_dim))
        return bev_embeds  # (bs, Num, 256)


  • rv_query_embeds生成邏輯

    上面剛剛提到,Object Query是在BEV坐標系下初始的點,所以論文中為了可以遵循Image Position Embedding的生成過程,就需要先將BEV坐標系下的3D空間點投影到圖像坐標系下,然后再利用之前生成Image Position Embedding的處理邏輯,保證生成過程的邏輯相同,核心代碼如下:

    def _rv_query_embed(self, ref_points, img_metas):
        pad_h, pad_w = pad_shape
        
        # 由歸一化坐標點映射回正常的roi range下的3D坐標點
        ref_points = ref_points * (pc_range[3:] - pc_range[:3]) + pc_range[:3]
        points = torch.cat([ref_points, ref_points.shape[:-1]], dim=-1)
        
        points = bda_mat.inverse().matmul(points)
        points = points.unsqueeze(1)
        points = sensor2ego_mats.inverse().matmul(points)
        points =intrin_mats.matmul(points)
        proj_points_clone = points.clone()
     
        # 選擇有效的投影點
        z_mask = proj_points_clone[..., 2:3, :].detach() > 0
        proj_points_clone[..., :3, :] = points[..., :3, :] / (
            points[..., 2:3, :].detach() + z_mask * 1e-6 - (~z_mask) * 1e-6
        )
        proj_points_clone = ida_mats.matmul(proj_points_clone)
        proj_points_clone = proj_points_clone.squeeze(-1)
        mask = (
            (proj_points_clone[..., 0] < pad_w)
            & (proj_points_clone[..., 0] >= 0)
            & (proj_points_clone[..., 1] < pad_h)
            & (proj_points_clone[..., 1] >= 0)
        )
        mask &= z_mask.view(*mask.shape)
    
        coords_d = (
            1 + torch.arange(depth_num).float() * (pc_range[4] - 1) / depth_num)
        projback_points = (ida_mats.inverse().matmul(proj_points_clone))
        projback_points = torch.einsum("bvnc, d -> bvndc", projback_points, coords_d)
        projback_points = torch.cat(
            [projback_points[..., :3], projback_points.shape[:-1]], dim=-1)
        projback_points = (sensor2ego_mats.matmul(intrin_mats).matmul(projback_points))
        projback_points = (bda_mat@ projback_points)
        projback_points = (projback_points[..., :3] - pc_range[:3]) / (pc_range[3:] - self.pc_range[:3])
        rv_embeds = self.rv_embedding(projback_points)
        rv_embeds = (rv_embeds * mask).sum(dim=1)
        return rv_embeds

    通過上述的變換,即完成了BEV空間坐標系下的點先投影到圖像坐標系,再利用之前生成Image Position Embedding的處理邏輯生成rv_query_embeds的過程。

    最后Query Embedding = rv_query_embeds + bev_query_embeds


Transformer Decoder+FFN網(wǎng)絡
  • Transformer Decoder
    這里與Transformer中的Decoder計算邏輯是完全一樣的,但在輸入數(shù)據(jù)上有點不同
  • 第一點是Memory:這里的Memory是Image Token和Lidar Token進行Concat后的結果(可以理解為兩種模態(tài)的融
  • 第二點是位置編碼:這里的位置編碼是rv_query_embeds和bev_query_embeds進行concat的結果,query_embed是rv_query_embeds + bev_query_embeds;
  • FFN網(wǎng)絡
    這個FFN網(wǎng)絡的作用與PETR中的作用是完全相同的,具體的輸出結果可以看PETR原文,這里就不做過多的贅述了。

論文實驗結果

首先先放出來CMT和其他自動駕駛感知算法的比較實驗,論文作者分別在nuScenes的test和val集上進行了比較,實驗結果如下

  • 各個感知算法在nuScenes的test set上的感知結果對比
    表格中的Modality代表輸入到感知算法中的傳感器類別,C代表相機傳感器,模型只喂入相機數(shù)據(jù)。L代表激光雷達傳感器,模型只喂入點云數(shù)據(jù)。LC代表激光雷達和相機傳感器,模型輸入的是多模態(tài)的數(shù)據(jù)。通過實驗結果可以看出,CMT-C模型的性能要高于BEVDet和DETR3D。CMT-L模型的性能要高于CenterPoint和UVTR這類純激光雷達的感知算法模型。而當CMT采用激光雷達的點云數(shù)據(jù)和相機數(shù)據(jù)后超越了現(xiàn)有的所有單模態(tài)方法,得到了SOTA的結果。

  • 模型在nuScenes的val set上的感知結果對比
    通過實驗結果可以看出,CMT-L的感知模型的性能超越了FUTR3D和UVTR。當同時采用激光雷達的點云數(shù)據(jù)和相機數(shù)據(jù)后,CMT較大幅度超越了現(xiàn)有的采用多模態(tài)的感知算法,像FUTR3D、UVTR、TransFusion、BEVFusion等多模態(tài)算法,取得了在val set上的SOTA結果。

接下來是CMT創(chuàng)新點的消融實驗部分

首先(a)是做了是否采用位置編碼的消融實驗,通過結果可以看出當同時采用圖像和激光雷達的位置編碼后,NDS和mAP指標實現(xiàn)了最好的效果。(c)和(f)部分的消融實驗主要是對點云主干網(wǎng)絡的主干網(wǎng)絡類型和體素大小進行了不同的嘗試。(d)和(e)部分的消融實驗主要是對相機主干網(wǎng)絡的類型和輸入分辨率的大小進行了不同的嘗試。這部分只是做了粗略的概括,如果想要看更多詳細消融實驗的話,大家可以看下論文原文。

最后放一張CMT的感知結果在nuScenes數(shù)據(jù)集上可視化結果的展示,通過實驗結果可以看出,CMT還是有較好的感知結果的。

總結

目前將各個模態(tài)融合在一起去提升模型的感知性能已經(jīng)是一個比較火熱的研究方向(畢竟自動駕駛汽車上配備了多種傳感器),同時CMT又是一個完全End-to-End的感知算法(不需要額外的后處理步驟)并在nuScenes數(shù)據(jù)集上有著SOTA的精度,本文就是對這篇文章進行了較為細致的介紹,希望對大家有所幫助。

原文鏈接:https://mp.weixin.qq.com/s/Fx7dkv8f2ibkfO66-5hEXA

責任編輯:張燕妮 來源: 自動駕駛之心
相關推薦

2024-01-26 10:02:51

自動駕駛3D

2022-12-29 11:57:43

3D框架

2023-10-27 09:57:54

2024-12-10 09:40:00

AI3D模型

2024-05-24 10:16:01

2024-01-15 10:38:24

3D框架

2023-12-12 10:09:33

3D框架模型

2024-10-15 13:07:38

2021-03-18 15:29:10

人工智能機器學習技術

2025-01-22 13:15:10

2022-12-13 10:17:05

技術目標檢測

2023-12-07 13:07:59

3D模型訓練

2023-12-14 11:18:16

視覺檢測

2012-07-06 15:03:43

跨平臺工具Ideaworks 3Marmalade

2023-09-11 11:27:34

自動駕駛3D

2025-02-20 14:44:06

2023-05-03 09:01:41

CanvasWebGL

2022-12-14 10:21:25

目標檢測框架

2023-12-20 09:55:51

雷達傳感器算法

2021-09-18 15:35:00

模型人工智能深度學習
點贊
收藏

51CTO技術棧公眾號

国产精品美女久久久久久久久久久| 一区二区三区四区在线观看视频| 国产在线精品一区| 在线播放成人| 精品视频一区三区九区| 先锋影音资源综合在线播放av| 国产在线精品一区二区中文| 欧美aaa视频| 欧美专区日韩专区| 大香煮伊手机一区| 久国产精品韩国三级视频| 亚洲在线观看视频网站| 午夜电影一区| 国产丝袜视频一区| 国产在线观看91| 日韩欧美精品网址| www.大网伊人| 久久久三级国产网站| 亚洲成年人专区| 国产精品毛片在线| 91亚洲国产精品| 同性恋视频一区| 久久久精品一区| 亚洲一区资源| 精品国产乱码久久久久久影片| 香蕉97视频观看在线观看| 中文字幕二三区不卡| 国产素人在线观看| 国产成人av福利| 日本视频精品一区| 亚洲精品乱码| 99久久精品久久久久久ai换脸| 要久久电视剧全集免费| 欧美日韩aaaa| 99热这里有精品| 日韩在线观看免费高清| 女人让男人操自己视频在线观看| 日韩一级片在线播放| av网站在线免费观看| 色播五月激情综合网| 日本一级在线观看| 色呦呦国产精品| 三级在线电影| 欧美性高潮床叫视频| 亚洲免费av一区二区| 午夜久久福利影院| 在线视频观看你懂的| 欧美日韩在线免费| 中文字幕电影在线| 性感美女久久精品| 欧美高清成人| 欧洲在线/亚洲| 91在线免费看| 日韩美女在线视频| 天堂网在线最新版www中文网| 亚洲福利在线看| 625成人欧美午夜电影| 国产一区二区三区精品久久久 | 国产一区二区在线视频播放| 国产一区二区美女诱惑| 国产爆乳无码一区二区麻豆| 国产91精品入口| 波多野结衣家庭教师视频| 中文字幕+乱码+中文字幕一区| 男人艹女人网站| 亚洲国产精品久久人人爱| 日本人妖在线| 欧美一二三四在线| 成人美女视频| 久久久久久亚洲精品中文字幕| 在线一级成人| 高清不卡日本v二区在线| 丝袜诱惑制服诱惑色一区在线观看| 中文字幕在线乱| 国产精品水嫩水嫩| 在线激情av| 精品精品国产高清一毛片一天堂| 色成人免费网站| 热re99久久精品国产66热| 亚洲色图插插| 日韩第一页在线观看| 国产精品免费免费| 电影av一区| 亚洲天堂网在线观看| 亚州av一区| 麻豆久久久av免费| 91一区二区三区在线观看| 香蕉视频在线观看免费| 亚洲精品一线二线三线无人区| 日本99精品| 成人在线免费网站| proumb性欧美在线观看| 亚亚洲欧洲精品| 亚洲偷熟乱区亚洲香蕉av| 国产欧美日韩精品一区二区三区| 欧美下载看逼逼| 欧美国产97人人爽人人喊| 高清性色生活片在线观看| 中文字幕一区二区精品| 91亚洲成人| 国产精品久久中文字幕| 一道本成人在线| 欧美天堂一区二区| 97se在线视频| 久久九九久精品国产免费直播| 伊人在线视频| 91国产高清在线| 人人狠狠综合久久亚洲| va中文字幕| 一区二区亚洲欧洲国产日韩| 欧美91精品| 亚洲国产精品久久久久爰色欲| 欧美无乱码久久久免费午夜一区| 国产精品**亚洲精品| 欧美动漫一区二区| 尤物视频一区二区| 一级欧美视频| 污视频在线免费观看一区二区三区| 亚洲天堂av一区| 中文.日本.精品| 久久久久久九九| 亚洲精品写真福利| 日韩av懂色| 亚洲第一偷拍网| 欧美日韩免费观看一区=区三区| 欧美成人一区二区在线| 一区二区三区在线视频观看| 粉嫩av一区二区三区四区五区 | 国产宾馆实践打屁股91| 欧美日韩视频精品二区| 欧美激情网站在线观看| 国产一区二区三区不卡在线观看| 久久福利视频网| 1234区在线观看视频免费| 亚洲国产中文字幕在线观看| 婷婷精品进入| 热久久精品免费视频| 亚洲男人av电影| 香蕉精品999视频一区二区 | 国产精品丝袜在线播放| 男人添女人下部视频免费| 日韩色视频在线观看| 在线免费观看日本欧美爱情大片| 高清av影院| 77777少妇光屁股久久一区| av电影在线观看一区| 91av亚洲| 国产激情片在线观看| 亚洲韩国青草视频| 日韩和欧美一区二区| 男人天堂手机在线| 精品久久精品久久| 在线看国产日韩| 国产尤物精品| 黄色av网站在线看| 97超级碰碰| 欧美一a一片一级一片| 欧美日韩精品免费观看视频完整| 天堂中文在线视频| 96久久精品| 精品视频全国免费看| 国产精品试看| 18videosex性欧美麻豆| 欧美一进一出视频| 精品国产三级电影在线观看| 男女性色大片免费观看一区二区| 欧美wwww| 久久人人爽人人爽人人av| 中文字幕综合在线| 国产欧美一区二区精品久导航| av综合网址| 日本视频二区| av一区和二区| 日韩欧美精品三级| 国产麻豆成人传媒免费观看| 欧美一级二级视频| 午夜免费福利在线| 国产精品最新在线观看| 欧美日韩中文字幕日韩欧美| 国模 一区 二区 三区| 91高清在线观看视频| 欧美少妇一区二区三区| 波霸ol色综合久久| 亚洲欧美一区二区三区孕妇| 99国内精品久久久久久久| 欧美一区二区三区| 女女百合国产免费网站| 欧美精品免费看| 午夜激情一区二区| 久久久久久9| 9999精品免费视频| 色视频www在线播放国产| 久久综合九色欧美狠狠| 日韩精品亚洲视频| 中文av一区二区| 午夜久久tv| 美女福利一区二区| 麻豆av观看| 一本一道久久a久久综合精品| 欧美日韩国产999|