文章目录

  • 前言
  • 一、主要函数
    • 1.从3d视角投影到2d平面(均为图像下)
    • 2.得到目标在图像视角下的2d坐标(坐上,右下)
  • 二、效果展示
  • 三、源码以及运行
    • 1.源码链接
    • 2.源码运行

前言

接续上篇文章nuScenes数据集3Dbounding box的更新,本篇文章主要讲解如何从图像的3dbox转到2dbox(内附源码)

注意:在nuScenes源码文件下有一个get_2d_annotation_as_json.py,运行之后可以直接得到2d注释信息,但是小编在运行得到后,发现会有遗漏,也就是多个相机下的sanples数量不等。因此加以改进得到所有的注释信息。

一、主要函数

1.从3d视角投影到2d平面(均为图像下)

代码如下:

def view_points(points: np.ndarray, view: np.ndarray, normalize: bool) -> np.ndarray:
# points就是我们的3d框的8个角坐标;view就是我们所需要用到对应相机的相机内参。assert view.shape[0] <= 4assert view.shape[1] <= 4assert points.shape[0] == 3viewpad = np.eye(4)viewpad[:view.shape[0], :view.shape[1]] = viewnbr_points = points.shape[1]points = np.concatenate((points, np.ones((1, nbr_points))))points = np.dot(viewpad, points)points = points[:3, :]if normalize:points = points / points[2:3, :].repeat(3, 0).reshape(3, nbr_points)return points

2.得到目标在图像视角下的2d坐标(坐上,右下)

def post_process_coords(corner_coords: List,imsize: Tuple[int, int] = (1600, 900)) -> Union[Tuple[float, float, float, float], None]:polygon_from_2d_box = MultiPoint(corner_coords).convex_hull  # 多边形img_canvas = box(0, 0, imsize[0], imsize[1])  # 图像的画布 box(minx,miny,maxx,maxy)左上右下if polygon_from_2d_box.intersects(img_canvas):  # 如果相交img_intersection = polygon_from_2d_box.intersection(img_canvas)intersection_coords = np.array([coord for coord in img_intersection.exterior.coords])min_x = min(intersection_coords[:, 0])min_y = min(intersection_coords[:, 1])max_x = max(intersection_coords[:, 0])max_y = max(intersection_coords[:, 1])return min_x, min_y, max_x, max_yelse:return None

二、效果展示

在生成2dbox的时候,加入了id信息。



从上面相连的两帧可以看出,同一个物体的id号是没有改变的,可以很好的应用到数据集的检测、跟踪过程。

放一个场景下的一段GIF图:

从这里可以更清楚的看到一个scene下,目标的id是始终保持一致的。

三、源码以及运行

1.源码链接

源码链接

2.源码运行

获取源码后,需要更改dataroot,确保数据集的路径准确。在pycharm上直接运行draw_2d_box.py即可;另外一个py文件是把同一场景下的6个摄像机的图片放在一起。

nuScenes数据集3dBox转换2dBox相关推荐

  1. Nuscenes数据集转换voc_xml格式用于yolov4训练

    1.下载nuscenes数据集 数据集下载地址https://www.nuscenes.org/download,这里下载v1.0-mini为例. 2.转换nuscenes的json格式(3D转2D) ...

  2. nuScenes数据集3Dbonding box

    文章目录 前言 一.nuScenes数据集box标注信息 二.如何在对应图像上画出3D框 1.如何得到图像下的3D框角坐标 1.1 得到注释的box信息,使用get_box()函数 1.2 标注的bo ...

  3. 【mmdetection3d】——3D 目标检测 NuScenes 数据集

    3D 目标检测 NuScenes 数据集 本页提供了有关在 MMDetection3D 中使用 nuScenes 数据集的具体教程. 准备之前 您可以在这里下载 nuScenes 3D 检测数据并解压 ...

  4. nuScenes 数据集(CVPR 2020)

    nuScenes 数据集(CVPR 2020) 摘要 1. 引言 1.1 贡献 1.2 相关数据集 2. nuScenes数据集 3. 任务和指标 3.1 检测 3.2 跟踪 4. 实验 4.1 基线 ...

  5. 在远程linux服务器上用wget命令下载nuscenes数据集出现HTTP request sent, awaiting response... 403 Forbidden错误

    问题描述: 在使用wget命令在服务器上下载nuscenes数据集的时候,出现了403的错误 问题原因: 查了一些博客说是wget命令后面的网址有问题 想到自己实在google浏览器上复制的下载网址, ...

  6. VIL-100视频车道线实例数据集格式转换

    VIL-100车道线数据集 数据集简介及下载路径 数据集格式转换 支持的标签转化格式:1.车道线实例分割标签; 2.车道线实例点集标签(Tusimple标注形式) 数据集相关示例图 - 原图标签可视化 ...

  7. nuScenes数据集详细介绍

    nuScenes网上介绍资料较多,但是大部分仅仅是对官网的翻译,缺乏各个文件的内在联系介绍.例如,nuScenes激光雷达的数据格式,点云包含哪几种属性.再比如,sample文件夹和sweeps文件夹 ...

  8. 【舰船数据集格式转换】HRSID数据集VOC转COCO

    系列文章目录 [舰船数据集格式转换]AIR-SARShip-1.0数据集VOC转COCO [舰船数据集格式转换]AIR-SARShip-2.0数据集VOC转COCO 文章目录 系列文章目录 前言 一. ...

  9. 自动驾驶nuScenes数据集——一个KITTI以外的新数据集

    1. 数据集简介 (图片来源:https://www.nuscenes.org/data-collection ) nuScenes数据集 是自动驾驶公司nuTonomy建立的大规模自动驾驶数据集,该 ...

最新文章

  1. 自定义Android注解Part3:绑定
  2. pycharm不进入test模式
  3. 通信网络基础期末复习-第一章和第二章-概论和端到端的传输协议
  4. java中 instanceof 的用法
  5. 203. 移除链表元素(C语言)
  6. 每天走6000步,血糖真的可以恢复正常吗?
  7. paip.uapi 获取网络url内容html 的方法java php ahk c++ python总结.
  8. 小米note位置服务器,小米Note
  9. 流程图怎么画?绘制一个流程图的简单操作方法
  10. 树莓派4b自带wifi_树莓派4B(ubuntu)无线网络配置
  11. cmd安装pip以及第三方库的最简单的安装方法
  12. Python 学习:函数
  13. 奇迹暖暖登录显示服务器满,奇迹暖暖登录不是全屏
  14. 2022吴恩达机器学习课程——第一课
  15. HDU 6078 Wavel Sequence (dp)
  16. 高通AP侧新增AT命令流程
  17. 计算机机房年度重点工作,信息中心计算机的机房建设要求最新.doc
  18. 511遇见安卓手机投屏支持一键转无线群控
  19. 北京公共自行车租赁方法_百度知道
  20. Mapbox、GeoServer离线部署矢量地图

热门文章

  1. word文档出现乱码的解决方法
  2. pcb-新手入门级(注意事项)(避坑)
  3. 数据结构练习题---先序遍历二叉树
  4. “天龙八部基于颜色的简易动作式外挂”的增强
  5. 通俗易懂!一文看懂手机Root的操作与防护
  6. 网众无盘io服务器超时,网众无盘注意问题的解决教程
  7. cygwin 查找ip地址_NBtscan扫描整个局域网IP及MAC地址
  8. ASP .NET(基于.NET 6.0)源码解读
  9. win10电脑设置鼠标文本选择时光标样式和颜色
  10. C#,纽曼-康韦数(Newman Conway Number)的算法与源代码