日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

kitti rotation,label等细节相关

發(fā)布時間:2024/3/12 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 kitti rotation,label等细节相关 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

kitti label rotation_y

kitti rotation

  • 在sencond 和 det3d中,均是從kitti label信息中讀取的在相機坐標(biāo)系下的rotation信息,在訓(xùn)練過程中也是回歸的camera坐標(biāo)系下的rotation,如果我想得到lidar坐標(biāo)系下的rotation公式為:
    rotation_lidar_y = - (rotation_cam_y + pi/2),至于怎么來的,抽出時間來講一下,經(jīng)過網(wǎng)絡(luò)后得到的輸出為(Center_lidar(x,y,z),size_lidar(wlh),rotation_y_camera[弧度])。

  • 在det3d的 wamoy 數(shù)據(jù)集和nuscens,里面的數(shù)據(jù)格式都是先轉(zhuǎn)換到kitti格式,然后再去訓(xùn)練,最后應(yīng)該是再返回,這步?jīng)]看。

  • 在OpenPCDet中,直接使用的就是lidar坐標(biāo)系,在讀取完kitti的label的pkl信息后,直接就將相機坐標(biāo)系下的rotarion轉(zhuǎn)換到了lidar坐標(biāo)下,所以O(shè)penPCDet的整個過程的坐標(biāo)都是在激光雷達坐標(biāo)系下完成的,最終得到的格式也是(center_lidar(x,y,z),size_lidar(lwh),rotation_lidar)

  • 在OpenPCdet中,kitti其實標(biāo)注了8種類別,分別是car, van, truck, pedestrian, pedestrian(sitting), cyclist, tram以及misc,但是在測評的時候我們只測評car,ped,cyclist 那么在代碼中我們是如何處理的呢?
    首先在OpenPCdet中在生成各種pkl和gt base的時候 這些類別實際上依然都存在,比如pkl里面的annation的name里面是包含其他類別的,同樣的gt base里面也是. 真正的處理是在pcdet->datasets->dataset.py 中的prepare_data函數(shù)里面,也就是在kitti_dataset.py 里面 的data_dict = self.prepare_data(data_dict=input_dict)進行調(diào)用, 在prepare_data 會查看把傳進來的info里面的gt names是否是[car,ped,cyclist]中的一類,然后生成一個mask,比如gt里面有10個obj,但是還有除了這三個類別以外的類別,那么我們會生成[False,true,true…]的列表表示哪幾個GT是我們需要的.然后將這個mask傳進data_augmentor.forward 這個里面首先做的事情是做數(shù)據(jù)增廣,往點云里面增加新的gt,首先要做的是計算兩個IoU:iou3d_nms_utils.boxes_bev_iou_cpu(sampled_boxes[:, 0:7], existed_boxes[:, 0:7])和iou2 = iou3d_nms_utils.boxes_bev_iou_cpu(sampled_boxes[:, 0:7], sampled_boxes[:, 0:7]),即分別計算要加入的GT和現(xiàn)有GT和新加入的GTs是否有重疊的現(xiàn)象.比如剛開始準(zhǔn)備增加15個車,但是經(jīng)過IoU的計算后可能只剩下5個符合要求.在這個時候通過add_sampled_boxes_to_scene這個函數(shù)將新加入的GT增添到data_dict里面,同時把不需要的類別的obj從gt_boxes里面去除掉.這個時候我們數(shù)據(jù)的輸入里面的GT是只包含[car,ped,cyclist]的gt了.
    后續(xù)的是一些數(shù)據(jù)曾廣的步驟,比如xy flip,global rotation,
    那什么時候把這個類別對應(yīng)成12345,這樣的數(shù)字的呢,我們知道在計算loss的時候肯定是數(shù)字的形式,所以這個時候會通過這個函數(shù)進一步的處理.self.data_processor.forward(data_dict=data_dict)首先這個函數(shù)先把一定距離外的gt去除掉,就是point_cloud_range外的gt,同時把距離外的點也會去掉.接下來的一種增廣是隨機變化點云中點的IDX.具體的類別轉(zhuǎn)到數(shù)字是通過gt_classes = np.array([self.class_names.index(n) + 1 for n in data_dict[‘gt_names’]], dtype=np.int32)進行變化的.1->car,2->ped,3->cycylist.

  • 總結(jié)

    以上是生活随笔為你收集整理的kitti rotation,label等细节相关的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。