自动驾驶之3D目标检测的SMOKE算法

2023-05-16

SMOKE: Single-Stage Monocular 3D Object Detection via Keypoint Estimation

  • 论文
  • github
  • 知乎

一、数据集-KITTI

1.1 输入

  • 单张图像:1242x375,格式.png
    在这里插入图片描述
    在这里插入图片描述
  • calib,标定数据,格式txt,每张图像对应一个,必须
    在这里插入图片描述
P0: 7.070493000000e+02 0.000000000000e+00 6.040814000000e+02 0.000000000000e+00 0.000000000000e+00 7.070493000000e+02 1.805066000000e+02 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 0.000000000000e+00
P1: 7.070493000000e+02 0.000000000000e+00 6.040814000000e+02 -3.797842000000e+02 0.000000000000e+00 7.070493000000e+02 1.805066000000e+02 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 0.000000000000e+00
P2: 7.070493000000e+02 0.000000000000e+00 6.040814000000e+02 4.575831000000e+01 0.000000000000e+00 7.070493000000e+02 1.805066000000e+02 -3.454157000000e-01 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 4.981016000000e-03
P3: 7.070493000000e+02 0.000000000000e+00 6.040814000000e+02 -3.341081000000e+02 0.000000000000e+00 7.070493000000e+02 1.805066000000e+02 2.330660000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 3.201153000000e-03
R0_rect: 9.999128000000e-01 1.009263000000e-02 -8.511932000000e-03 -1.012729000000e-02 9.999406000000e-01 -4.037671000000e-03 8.470675000000e-03 4.123522000000e-03 9.999556000000e-01
Tr_velo_to_cam: 6.927964000000e-03 -9.999722000000e-01 -2.757829000000e-03 -2.457729000000e-02 -1.162982000000e-03 2.749836000000e-03 -9.999955000000e-01 -6.127237000000e-02 9.999753000000e-01 6.931141000000e-03 -1.143899000000e-03 -3.321029000000e-01
Tr_imu_to_velo: 9.999976000000e-01 7.553071000000e-04 -2.035826000000e-03 -8.086759000000e-01 -7.854027000000e-04 9.998898000000e-01 -1.482298000000e-02 3.195559000000e-01 2.024406000000e-03 1.482454000000e-02 9.998881000000e-01 -7.997231000000e-01
  • Velodyne: 64线3D激光雷达,格式.bin,模型没有用到。

1.2 label

在这里插入图片描述

  • 例子
Pedestrian 0.00 0 -0.20 712.40 143.00 810.73 307.92 1.89 0.48 1.20 1.84 1.47 8.41 0.01
Truck 0.00 0 -1.57 599.41 156.40 629.75 189.25 2.85 2.63 12.34 0.47 1.49 69.44 -1.56
Car 0.00 0 1.85 387.63 181.54 423.81 203.12 1.67 1.87 3.69 -16.53 2.39 58.49 1.57
Cyclist 0.00 3 -1.65 676.60 163.95 688.98 193.93 1.86 0.60 2.02 4.59 1.32 45.84 -1.55
DontCare -1 -1 -10 503.89 169.71 590.61 190.13 -1 -1 -1 -1000 -1000 -1000 -10
  • 类别: ’Road’, ’City’, ’Residential’, ’Campus’ 和’Person’五类

二、安装

我们在Jeston Xavier上安装github代码.
由于Xavier无法安装MAGMA,需要将代码中求逆的操作改为在cpu上运行,该操作对推断用时增加10ms左右,影响不大。
在这里插入图片描述

三、推断速度

  • Batch size = 1
  • Backbone: dla34
  • 环境:Python3
  • 模型:官方预训练
  • 配置如下
2022-12-02 17:39:14,267] smoke INFO: Namespace(ckpt=None, config_file='configs/smoke_gn_vector.yaml', dist_url='tcp://127.0.0.1:50152', eval_only=True, machine_rank=0, num_gpus=1, num_machines=1, opts=[])
[2022-12-02 17:39:14,268] smoke INFO: Loaded configuration file configs/smoke_gn_vector.yaml
[2022-12-02 17:39:14,268] smoke INFO: 
MODEL:
  WEIGHT: "catalog://ImageNetPretrained/DLA34"
INPUT:
  FLIP_PROB_TRAIN: 0.5
  SHIFT_SCALE_PROB_TRAIN: 0.3
DATASETS:
  DETECT_CLASSES: ("Car", "Cyclist", "Pedestrian")
  TRAIN: ("kitti_train",)
  TEST: ("kitti_test",)
  TRAIN_SPLIT: "trainval"
  TEST_SPLIT: "test"
SOLVER:
  BASE_LR: 2.5e-4
  STEPS: (10000, 18000)
  MAX_ITERATION: 25000
  IMS_PER_BATCH: 1
[2022-12-02 17:39:14,270] smoke INFO: Running with config:
CUDNN_BENCHMARK: True
DATALOADER:
  ASPECT_RATIO_GROUPING: False
  NUM_WORKERS: 4
  SIZE_DIVISIBILITY: 0
DATASETS:
  DETECT_CLASSES: ('Car', 'Cyclist', 'Pedestrian')
  MAX_OBJECTS: 30
  TEST: ('kitti_test',)
  TEST_SPLIT: test
  TRAIN: ('kitti_train',)
  TRAIN_SPLIT: trainval
INPUT:
  FLIP_PROB_TRAIN: 0.5
  HEIGHT_TEST: 384
  HEIGHT_TRAIN: 384
  PIXEL_MEAN: [0.485, 0.456, 0.406]
  PIXEL_STD: [0.229, 0.224, 0.225]
  SHIFT_SCALE_PROB_TRAIN: 0.3
  SHIFT_SCALE_TRAIN: (0.2, 0.4)
  TO_BGR: True
  WIDTH_TEST: 1280
  WIDTH_TRAIN: 1280
MODEL:
  BACKBONE:
    BACKBONE_OUT_CHANNELS: 64
    CONV_BODY: DLA-34-DCN
    DOWN_RATIO: 4
    FREEZE_CONV_BODY_AT: 0
    USE_NORMALIZATION: GN
  DEVICE: cuda
  GROUP_NORM:
    DIM_PER_GP: -1
    EPSILON: 1e-05
    NUM_GROUPS: 32
  SMOKE_HEAD:
    DEPTH_REFERENCE: (28.01, 16.32)
    DIMENSION_REFERENCE: ((3.88, 1.63, 1.53), (1.78, 1.7, 0.58), (0.88, 1.73, 0.67))
    LOSS_ALPHA: 2
    LOSS_BETA: 4
    LOSS_TYPE: ('FocalLoss', 'DisL1')
    LOSS_WEIGHT: (1.0, 10.0)
    NUM_CHANNEL: 256
    PREDICTOR: SMOKEPredictor
    REGRESSION_CHANNEL: (1, 2, 3, 2)
    REGRESSION_HEADS: 8
    USE_NMS: False
    USE_NORMALIZATION: GN
  SMOKE_ON: True
  WEIGHT: catalog://ImageNetPretrained/DLA34
OUTPUT_DIR: ./tools/logs
PATHS_CATALOG: /home/autoware/SMOKE/smoke/config/paths_catalog.py
SEED: -1
SOLVER:
  BASE_LR: 0.00025
  BIAS_LR_FACTOR: 2
  CHECKPOINT_PERIOD: 20
  EVALUATE_PERIOD: 20
  IMS_PER_BATCH: 1
  LOAD_OPTIMIZER_SCHEDULER: True
  MASTER_BATCH: -1
  MAX_ITERATION: 25000
  OPTIMIZER: Adam
  STEPS: (10000, 18000)
TEST:
  DETECTIONS_PER_IMG: 50
  DETECTIONS_THRESHOLD: 0.25
  IMS_PER_BATCH: 1
  PRED_2D: True
  SINGLE_GPU_TEST: True

3.1 论文报告Titan Xp

在这里插入图片描述
30ms/张在Titan Xp上。

3.2 Xavier实测

  • 单张耗时: 300ms/张在Xavier上
    根据CUDA核计算,Titan X大概是Xavier的7倍,测算还比较合理。
    在这里插入图片描述

在这里插入图片描述

四、输出

模型实际输出log的例子

Cyclist 0 0 1.038100004196167 724.3541870117188 181.3260955810547 756.7017211914062 224.00320434570312 1.656000018119812 0.5224999785423279 1.617400050163269 5.4492998123168945 1.6898000240325928 28.31760025024414 1.2281999588012695 0.251800000667572
Pedestrian 0 0 0.9455000162124634 322.6777038574219 228.24049377441406 347.2066955566406 268.2008056640625 1.6103999614715576 0.6126000285148621 0.8202000260353088 -11.46679973602295 3.6767001152038574 30.125600814819336 0.5817999839782715 0.25110000371932983

虽然模型中没有显式建模2D bbox,2D bbox通过求将3D bbox映射到图像平面后最小外接矩形获得。

五、衡量指标

在这里插入图片描述

  • AP@0.7: average precision (AP) with IoU.
    分为: 3D object detection 和 BEV,都是用AP
  • 精度水平:2019年底KITTI单目3D检测第一名。
  • 3D Object Detection Evaluation 2017
    目前在所有方法(包含多目、使用雷达等)排名第417.
    在这里插入图片描述
    当前较高水平:
    在这里插入图片描述
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

自动驾驶之3D目标检测的SMOKE算法 的相关文章

随机推荐

  • 目标检测之Kalman滤波追踪

    github tracker span class token operator 61 span Tracker span class token punctuation span distance function span class
  • yolov3、yolov5和DETR在NVIDIA Xavier测速(TensorRT)

    本人实测YoloV3 YoloV5和DETR的TensorRT版本在NVIDIA Xavier上的测速结果如下 xff0c 任何问题留言讨论
  • pytorch转onnx, onnx 12 中没有hardswish opt

    在onnx opset 12下转以下模型时因不支持hardswish激活函数而报错 GhostNetMobileNetv3SmallEfficientNetLite0PP LCNet 解决方案是找到对应的nn Hardswish层 xff0
  • 3D人脸关键点和重构调研

    一 3D 人脸任务 3D Face Alignment 从2D图像到3D 关键点回归 例如68个关键点 3D Dense Face Alignment 从2D图像到3D稠密关键点回归 xff0c 上万个关键点的人脸模型 xff0c 例如3D
  • BEV(Bird’s-eye-view)三部曲之一:综述

    论文名 xff1a Delving into the Devils of Bird s eye view Perception A Review Evaluation and Recipe Github 论文网址 零 摘要 BEV perc
  • BEV(Bird’s-eye-view)三部曲之二:方法详解

    一 Introdution Why BEV 高度信息在自动驾驶中并不重要 xff0c BEV视角可以表达自动驾驶需要的大部分信息 BEV空间可以大致看作3D空间 BEV representation有利于多模态的融合 可解释性强 xff0c
  • BEV(Bird’s-eye-view)三部曲之三:demo和验证

    1 PYVA Projecting Your View Attentively CVPR 2021 数据集 xff1a KITTIpaper xff0c github xff0c 35 FPS输入 xff1a 单张摄像头前向图输出 xff1
  • 记录自己的日常学习生活

    大家好 xff0c 今天是我第一次写博客 xff0c 刚才看了很多大佬的博文 xff0c 突然就想写一下自己的生活 xff0c 记录自己的学习过程 xff0c 本人是一个地地道道的东本人 xff0c 性格算是活泼开朗吧 xff0c 现就读于
  • 自动驾驶之MultiPath++论文阅读笔记

    预测道路参与者的future behavior 摘要 将输入由dense image based encoding改为a sparse encoding of heterogeneous scene elements 即用polylines
  • 自动驾驶之多任务方法调研

    1 YOLOP github C 43 43 TRT TX2 我们提出了一种高效的多任务网络 xff0c 该网络可以联合处理自动驾驶中的目标检测 车 xff0c 没有红绿灯 可驾驶区域分割和车道检测三个关键任务 速度 xff1a TX2上2
  • 自动驾驶之去光晕调研

    中文版综述github 一 光晕类型 常见去光晕算法的光晕 去光晕算法的光晕之二 汇总 样式包括有 halos 色圈 streaks 条纹 bright lines 亮线 saturated blobs 深污点 color bleeding
  • 自动驾驶之3D点云聚类算法调研

    1 方法 总共分为4类 基于欧式距离的聚类Supervoxel 聚类深度 Depth 聚类Scanline Run 聚类 1 1 基于欧氏距离的聚类 思路 在点云上构造kd tree 然后在某个半径阈值 例如0 5m 则分割为一个实例 相似
  • 自动驾驶之夜间检测调研

    1 ExDark 第一个 公开 特定的提供 natural low light images for object的数据集 7363张 low light images 12 classes Low light image enhancem
  • 自动驾驶之行人轨迹预测数据集

    一 Real Data ETH Univ 43 Hotel 750 pedestrians exhibiting complex interactions UCY Zara01 Zara02 and Uni 780 pedestrians
  • 自动驾驶之单目3D目标检测TensorRT调研

    目前在github上只能找到2个项目 TensorRT CenterNet 3D tkDNN 两者都是使用CenterNet xff0c 但第1个基于TensorRT5 无法与当前最新的TensorRT6和TensorRT7兼容 经测试 x
  • 秋招之字节面试智力题

    1 倒水 只有两个无刻度的水桶 xff0c 一个可以装6L水 xff0c 一个可以装5L水 xff0c 如何在桶里装入3L的水 6L装满倒入5L xff0c 剩1L5L倒出 1L倒入5L6L装满倒入5L剩2L5L倒出 xff0c 2L倒入5
  • 数学专业外语之一: 基本概念与术语

    一 四则运算 加法 plus xff0c 1 43 2 one plus two减法 minus 3 2 three minus two乘法 times or multiplied by xff0c 3x2 three times two
  • 数学专业外语之二: 阅读理解与翻译初步

    一 比 率与比例 number xff1a 数 xff1b number axis xff1a number theory xff1a 数论 xff1b the number of xff1a 的数量quantity xff1a 量 xff
  • 从iphone一代看产品创新

    第一代iPhone2007年6月29日正式发售 xff0c 可能大多数人接触Iphone是从iphone4开始 xff0c 先展示一下iphone一代 xff0c 提醒一下这是2007年的一款手机 xff0c 当时市面所有手机都是键盘机 x
  • 自动驾驶之3D目标检测的SMOKE算法

    SMOKE Single Stage Monocular 3D Object Detection via Keypoint Estimation 论文github知乎 一 数据集 KITTI 1 1 输入 单张图像 xff1a 1242x3