{
  "id": 109072,
  "title": "nuScenes to KITTI format",
  "url": "/competitions/3d-object-detection-for-autonomous-vehicles/discussion/109072",
  "author_name": "",
  "post_date": "2019-09-16T08:05:07.772449600Z",
  "votes": 16,
  "comment_count": 13,
  "views": 0,
  "content": "<p>You may find a lot of state of the art frameworks on GitHub and most of them are benchmarked on the pioneering KITTI dataset, as the competition's dataset follows nuScenes schema here's a python script to convert nuScenes dataset to KITTI format: <a href=\"https://github.com/lyft/nuscenes-devkit/blob/master/lyft_dataset_sdk/utils/export_kitti.py\">link</a></p>\n\n<p>Edit: Updated to link to lyft sdk from nuscenes sdk.</p>",
  "messages": [
    {
      "id": "627653",
      "postDate": "09/16/2019 08:05:07",
      "content": "<p>You may find a lot of state of the art frameworks on GitHub and most of them are benchmarked on the pioneering KITTI dataset, as the competition's dataset follows nuScenes schema here's a python script to convert nuScenes dataset to KITTI format: <a href=\"https://github.com/lyft/nuscenes-devkit/blob/master/lyft_dataset_sdk/utils/export_kitti.py\">link</a></p>\n\n<p>Edit: Updated to link to lyft sdk from nuscenes sdk.</p>",
      "rawMarkdown": "You may find a lot of state of the art frameworks on GitHub and most of them are benchmarked on the pioneering KITTI dataset, as the competition's dataset follows nuScenes schema here's a python script to convert nuScenes dataset to KITTI format: [link](https://github.com/lyft/nuscenes-devkit/blob/master/lyft_dataset_sdk/utils/export_kitti.py)\n\nEdit: Updated to link to lyft sdk from nuscenes sdk.",
      "votes": null
    },
    {
      "id": "627765",
      "postDate": "09/16/2019 10:48:52",
      "content": "<p>Thank you for the link. \nKITTI dataset is here: <a href=\"http://www.cvlibs.net/datasets/kitti/eval_object.php?obj_benchmark=3d\">http://www.cvlibs.net/datasets/kitti/eval_object.php?obj_benchmark=3d</a>\nAlso,\n the say \"Render the annotations of the (generated or real) KITTI dataset.\" -- the word \"generated\" made me wonder... can you really generate such data?</p>",
      "rawMarkdown": "Thank you for the link. \nKITTI dataset is here: http://www.cvlibs.net/datasets/kitti/eval_object.php?obj_benchmark=3d\nAlso,\n the say \"Render the annotations of the (generated or real) KITTI dataset.\" -- the word \"generated\" made me wonder... can you really generate such data?",
      "votes": null
    },
    {
      "id": "627778",
      "postDate": "09/16/2019 11:06:38",
      "content": "<p>I think we can, many companies work on synthetic LIDAR data for multiple purposes, especially for  gaming stuff. \nOne example <a href=\"https://www.cvedia.com/\">CVEDIA</a></p>",
      "rawMarkdown": "I think we can, many companies work on synthetic LIDAR data for multiple purposes, especially for  gaming stuff. \nOne example [CVEDIA](https://www.cvedia.com/)",
      "votes": null
    },
    {
      "id": "631955",
      "postDate": "09/23/2019 02:30:33",
      "content": "<p>Hi, did you successfully convert the format with this script?  </p>\n\n<p>There seems to be a lot of things that need to be changed, especially when someone mentioned the axis definition problem, where I used the default <code>Quaternion(axis=(0, 0, 1), Angle =np.pi / 2)</code> and changed a few api of nuscenes SDK, and the result of converting the format for visualization looks fine.  </p>\n\n<p>I'm a stranger in this field. I hope I didn't miss anything.</p>",
      "rawMarkdown": "Hi, did you successfully convert the format with this script?  \n  \nThere seems to be a lot of things that need to be changed, especially when someone mentioned the axis definition problem, where I used the default `Quaternion(axis=(0, 0, 1), Angle =np.pi / 2)` and changed a few api of nuscenes SDK, and the result of converting the format for visualization looks fine.  \n  \nI'm a stranger in this field. I hope I didn't miss anything.",
      "votes": null
    },
    {
      "id": "632035",
      "postDate": "09/23/2019 06:35:13",
      "content": "<blockquote>\n  <p>Hi, did you successfully convert the format with this script? </p>\n</blockquote>\n\n<p>I modified a little bit, because this script is written for nuscenes dataset, it splits train/val based on log files specific to that dataset. So, I modified this part before conversion.</p>\n\n<blockquote>\n  <p>when someone mentioned the axis definition problem, </p>\n</blockquote>\n\n<p>can you point me to that?</p>\n\n<p>P.S: I'm still doing a lot of tests to understand these transformations myself, even I'm new to this problem. </p>",
      "rawMarkdown": "&gt; Hi, did you successfully convert the format with this script? \n\nI modified a little bit, because this script is written for nuscenes dataset, it splits train/val based on log files specific to that dataset. So, I modified this part before conversion.\n\n&gt; when someone mentioned the axis definition problem, \n\ncan you point me to that?\n\nP.S: I'm still doing a lot of tests to understand these transformations myself, even I'm new to this problem.",
      "votes": null
    },
    {
      "id": "632040",
      "postDate": "09/23/2019 06:47:31",
      "content": "<p>Yes, about the axis definition <a href=\"https://github.com/lyft/nuscenes-devkit/issues/9\">here</a>.</p>",
      "rawMarkdown": "Yes, about the axis definition [here](https://github.com/lyft/nuscenes-devkit/issues/9).",
      "votes": null
    },
    {
      "id": "634082",
      "postDate": "09/25/2019 20:09:10",
      "content": "<p>Hey <a href=\"/sdeagggg\">@sdeagggg</a>, I've thoroughly analysed the script. There's no issue of axis definition see <a href=\"https://github.com/lyft/nuscenes-devkit/issues/9#issuecomment-535168052\">here</a></p>\n\n<p>Also, KITTI has only front-facing cameras, so only those boxes which are present/can-be-projected to front camera view are kept, rest are discarded in final kitti-formatted dataset.</p>\n\n<p>Original top lidar view in a sample:\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F761152%2F52f0d144512c6042de43138bd47091ee%2Forg.png?generation=1569441996697634&amp;alt=media\" alt=\"\"></p>\n\n<p>After conversion:\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F761152%2Fd1f02df530845edaeb126dec852bfd4b%2Ftraining_000000_lidar.png?generation=1569442055110642&amp;alt=media\" alt=\"\"></p>\n\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F761152%2F0d301a8c7656573a6d3d495c94a60c8c%2Fsnapshot.png?generation=1569442131550107&amp;alt=media\" alt=\"\"></p>",
      "rawMarkdown": "Hey @sdeagggg, I've thoroughly analysed the script. There's no issue of axis definition see [here](https://github.com/lyft/nuscenes-devkit/issues/9#issuecomment-535168052)\n\nAlso, KITTI has only front-facing cameras, so only those boxes which are present/can-be-projected to front camera view are kept, rest are discarded in final kitti-formatted dataset.\n\nOriginal top lidar view in a sample:\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F761152%2F52f0d144512c6042de43138bd47091ee%2Forg.png?generation=1569441996697634&amp;alt=media)\n\nAfter conversion:\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F761152%2Fd1f02df530845edaeb126dec852bfd4b%2Ftraining_000000_lidar.png?generation=1569442055110642&amp;alt=media)\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F761152%2F0d301a8c7656573a6d3d495c94a60c8c%2Fsnapshot.png?generation=1569442131550107&amp;alt=media)",
      "votes": null
    },
    {
      "id": "636656",
      "postDate": "09/30/2019 01:56:32",
      "content": "<p>Thank you <a href=\"/rishabhiitbhu\">@rishabhiitbhu</a>. <br>\nI've noticed what you're talking about, I'm using pointrcnn, so I'm directly inputting 360 deg annotations point cloud, but the loss is weird compared to the kitti format data, and I'm looking for reasons why.</p>",
      "rawMarkdown": "Thank you @rishabhiitbhu.  \nI've noticed what you're talking about, I'm using pointrcnn, so I'm directly inputting 360 deg annotations point cloud, but the loss is weird compared to the kitti format data, and I'm looking for reasons why.",
      "votes": null
    },
    {
      "id": "653664",
      "postDate": "10/20/2019 19:37:24",
      "content": "<p><a href=\"/rishabhiitbhu\">@rishabhiitbhu</a> Is there still value in converting to KITTI as only the front facing camera data is retained ? What i am not able to grapple in this competition is where to even start ?</p>",
      "rawMarkdown": "rishabhiitbhu Is there still value in converting to KITTI as only the front facing camera data is retained ? What i am not able to grapple in this competition is where to even start ?",
      "votes": null
    },
    {
      "id": "653671",
      "postDate": "10/20/2019 19:46:24",
      "content": "<ol>\n<li>Use <a href=\"https://www.kaggle.com/stalkermustang/converting-lyft-dataset-to-kitty-format\">this</a> kernel, it'll convert all cam boxes to kitti format.</li>\n<li>Assuming that you are familiar with 2d object detection, <a href=\"https://towardsdatascience.com/the-state-of-3d-object-detection-f65a385f67a8\">this</a> blog can give you a head start</li>\n</ol>",
      "rawMarkdown": "1. Use [this](https://www.kaggle.com/stalkermustang/converting-lyft-dataset-to-kitty-format) kernel, it'll convert all cam boxes to kitti format.\n2. Assuming that you are familiar with 2d object detection, [this](https://towardsdatascience.com/the-state-of-3d-object-detection-f65a385f67a8) blog can give you a head start",
      "votes": null
    },
    {
      "id": "654565",
      "postDate": "10/22/2019 03:08:08",
      "content": "<p>Thanks for the hint . Looking at PointPillars</p>",
      "rawMarkdown": "Thanks for the hint . Looking at PointPillars",
      "votes": null
    },
    {
      "id": "658505",
      "postDate": "10/26/2019 04:36:35",
      "content": "<p>Hi, Rishabh, do you have any suggestions about converting KITTI format detection results back to nuScenes format for submission? </p>",
      "rawMarkdown": "Hi, Rishabh, do you have any suggestions about converting KITTI format detection results back to nuScenes format for submission?",
      "votes": null
    },
    {
      "id": "658582",
      "postDate": "10/26/2019 07:51:55",
      "content": "<p>Hey Bob, see <a href=\"https://github.com/nutonomy/nuscenes-devkit/blob/master/python-sdk/nuscenes/scripts/export_kitti.py#L275\">this</a></p>",
      "rawMarkdown": "Hey Bob, see [this](https://github.com/nutonomy/nuscenes-devkit/blob/master/python-sdk/nuscenes/scripts/export_kitti.py#L275)",
      "votes": null
    },
    {
      "id": "659376",
      "postDate": "10/27/2019 14:38:20",
      "content": "<p>Well done, bro, thank you a lot.</p>",
      "rawMarkdown": "Well done, bro, thank you a lot.",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 627765,
      "author_name": "blondinka",
      "author_url": "",
      "post_date": "09/16/2019 10:48:52",
      "content": "<p>Thank you for the link. \nKITTI dataset is here: <a href=\"http://www.cvlibs.net/datasets/kitti/eval_object.php?obj_benchmark=3d\">http://www.cvlibs.net/datasets/kitti/eval_object.php?obj_benchmark=3d</a>\nAlso,\n the say \"Render the annotations of the (generated or real) KITTI dataset.\" -- the word \"generated\" made me wonder... can you really generate such data?</p>",
      "votes": null,
      "replies": [
        {
          "id": 627778,
          "author_name": "rishabhiitbhu",
          "author_url": "",
          "post_date": "09/16/2019 11:06:38",
          "content": "<p>I think we can, many companies work on synthetic LIDAR data for multiple purposes, especially for  gaming stuff. \nOne example <a href=\"https://www.cvedia.com/\">CVEDIA</a></p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 631955,
      "author_name": "sdeagggg",
      "author_url": "",
      "post_date": "09/23/2019 02:30:33",
      "content": "<p>Hi, did you successfully convert the format with this script?  </p>\n\n<p>There seems to be a lot of things that need to be changed, especially when someone mentioned the axis definition problem, where I used the default <code>Quaternion(axis=(0, 0, 1), Angle =np.pi / 2)</code> and changed a few api of nuscenes SDK, and the result of converting the format for visualization looks fine.  </p>\n\n<p>I'm a stranger in this field. I hope I didn't miss anything.</p>",
      "votes": null,
      "replies": [
        {
          "id": 632035,
          "author_name": "rishabhiitbhu",
          "author_url": "",
          "post_date": "09/23/2019 06:35:13",
          "content": "<blockquote>\n  <p>Hi, did you successfully convert the format with this script? </p>\n</blockquote>\n\n<p>I modified a little bit, because this script is written for nuscenes dataset, it splits train/val based on log files specific to that dataset. So, I modified this part before conversion.</p>\n\n<blockquote>\n  <p>when someone mentioned the axis definition problem, </p>\n</blockquote>\n\n<p>can you point me to that?</p>\n\n<p>P.S: I'm still doing a lot of tests to understand these transformations myself, even I'm new to this problem. </p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 632040,
          "author_name": "sdeagggg",
          "author_url": "",
          "post_date": "09/23/2019 06:47:31",
          "content": "<p>Yes, about the axis definition <a href=\"https://github.com/lyft/nuscenes-devkit/issues/9\">here</a>.</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 634082,
          "author_name": "rishabhiitbhu",
          "author_url": "",
          "post_date": "09/25/2019 20:09:10",
          "content": "<p>Hey <a href=\"/sdeagggg\">@sdeagggg</a>, I've thoroughly analysed the script. There's no issue of axis definition see <a href=\"https://github.com/lyft/nuscenes-devkit/issues/9#issuecomment-535168052\">here</a></p>\n\n<p>Also, KITTI has only front-facing cameras, so only those boxes which are present/can-be-projected to front camera view are kept, rest are discarded in final kitti-formatted dataset.</p>\n\n<p>Original top lidar view in a sample:\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F761152%2F52f0d144512c6042de43138bd47091ee%2Forg.png?generation=1569441996697634&amp;alt=media\" alt=\"\"></p>\n\n<p>After conversion:\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F761152%2Fd1f02df530845edaeb126dec852bfd4b%2Ftraining_000000_lidar.png?generation=1569442055110642&amp;alt=media\" alt=\"\"></p>\n\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F761152%2F0d301a8c7656573a6d3d495c94a60c8c%2Fsnapshot.png?generation=1569442131550107&amp;alt=media\" alt=\"\"></p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 636656,
          "author_name": "sdeagggg",
          "author_url": "",
          "post_date": "09/30/2019 01:56:32",
          "content": "<p>Thank you <a href=\"/rishabhiitbhu\">@rishabhiitbhu</a>. <br>\nI've noticed what you're talking about, I'm using pointrcnn, so I'm directly inputting 360 deg annotations point cloud, but the loss is weird compared to the kitti format data, and I'm looking for reasons why.</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 653664,
      "author_name": "venkat555",
      "author_url": "",
      "post_date": "10/20/2019 19:37:24",
      "content": "<p><a href=\"/rishabhiitbhu\">@rishabhiitbhu</a> Is there still value in converting to KITTI as only the front facing camera data is retained ? What i am not able to grapple in this competition is where to even start ?</p>",
      "votes": null,
      "replies": [
        {
          "id": 653671,
          "author_name": "rishabhiitbhu",
          "author_url": "",
          "post_date": "10/20/2019 19:46:24",
          "content": "<ol>\n<li>Use <a href=\"https://www.kaggle.com/stalkermustang/converting-lyft-dataset-to-kitty-format\">this</a> kernel, it'll convert all cam boxes to kitti format.</li>\n<li>Assuming that you are familiar with 2d object detection, <a href=\"https://towardsdatascience.com/the-state-of-3d-object-detection-f65a385f67a8\">this</a> blog can give you a head start</li>\n</ol>",
          "votes": null,
          "replies": []
        },
        {
          "id": 654565,
          "author_name": "venkat555",
          "author_url": "",
          "post_date": "10/22/2019 03:08:08",
          "content": "<p>Thanks for the hint . Looking at PointPillars</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 658505,
      "author_name": "usherbob",
      "author_url": "",
      "post_date": "10/26/2019 04:36:35",
      "content": "<p>Hi, Rishabh, do you have any suggestions about converting KITTI format detection results back to nuScenes format for submission? </p>",
      "votes": null,
      "replies": [
        {
          "id": 658582,
          "author_name": "rishabhiitbhu",
          "author_url": "",
          "post_date": "10/26/2019 07:51:55",
          "content": "<p>Hey Bob, see <a href=\"https://github.com/nutonomy/nuscenes-devkit/blob/master/python-sdk/nuscenes/scripts/export_kitti.py#L275\">this</a></p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 659376,
          "author_name": "usherbob",
          "author_url": "",
          "post_date": "10/27/2019 14:38:20",
          "content": "<p>Well done, bro, thank you a lot.</p>",
          "votes": null,
          "replies": []
        }
      ]
    }
  ],
  "raw_markdown_by_id": {
    "627653": "You may find a lot of state of the art frameworks on GitHub and most of them are benchmarked on the pioneering KITTI dataset, as the competition's dataset follows nuScenes schema here's a python script to convert nuScenes dataset to KITTI format: [link](https://github.com/lyft/nuscenes-devkit/blob/master/lyft_dataset_sdk/utils/export_kitti.py)\n\nEdit: Updated to link to lyft sdk from nuscenes sdk.",
    "627765": "Thank you for the link. \nKITTI dataset is here: http://www.cvlibs.net/datasets/kitti/eval_object.php?obj_benchmark=3d\nAlso,\n the say \"Render the annotations of the (generated or real) KITTI dataset.\" -- the word \"generated\" made me wonder... can you really generate such data?",
    "627778": "I think we can, many companies work on synthetic LIDAR data for multiple purposes, especially for  gaming stuff. \nOne example [CVEDIA](https://www.cvedia.com/)",
    "631955": "Hi, did you successfully convert the format with this script?  \n  \nThere seems to be a lot of things that need to be changed, especially when someone mentioned the axis definition problem, where I used the default `Quaternion(axis=(0, 0, 1), Angle =np.pi / 2)` and changed a few api of nuscenes SDK, and the result of converting the format for visualization looks fine.  \n  \nI'm a stranger in this field. I hope I didn't miss anything.",
    "632035": "&gt; Hi, did you successfully convert the format with this script? \n\nI modified a little bit, because this script is written for nuscenes dataset, it splits train/val based on log files specific to that dataset. So, I modified this part before conversion.\n\n&gt; when someone mentioned the axis definition problem, \n\ncan you point me to that?\n\nP.S: I'm still doing a lot of tests to understand these transformations myself, even I'm new to this problem.",
    "632040": "Yes, about the axis definition [here](https://github.com/lyft/nuscenes-devkit/issues/9).",
    "634082": "Hey @sdeagggg, I've thoroughly analysed the script. There's no issue of axis definition see [here](https://github.com/lyft/nuscenes-devkit/issues/9#issuecomment-535168052)\n\nAlso, KITTI has only front-facing cameras, so only those boxes which are present/can-be-projected to front camera view are kept, rest are discarded in final kitti-formatted dataset.\n\nOriginal top lidar view in a sample:\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F761152%2F52f0d144512c6042de43138bd47091ee%2Forg.png?generation=1569441996697634&amp;alt=media)\n\nAfter conversion:\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F761152%2Fd1f02df530845edaeb126dec852bfd4b%2Ftraining_000000_lidar.png?generation=1569442055110642&amp;alt=media)\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F761152%2F0d301a8c7656573a6d3d495c94a60c8c%2Fsnapshot.png?generation=1569442131550107&amp;alt=media)",
    "636656": "Thank you @rishabhiitbhu.  \nI've noticed what you're talking about, I'm using pointrcnn, so I'm directly inputting 360 deg annotations point cloud, but the loss is weird compared to the kitti format data, and I'm looking for reasons why.",
    "653664": "rishabhiitbhu Is there still value in converting to KITTI as only the front facing camera data is retained ? What i am not able to grapple in this competition is where to even start ?",
    "653671": "1. Use [this](https://www.kaggle.com/stalkermustang/converting-lyft-dataset-to-kitty-format) kernel, it'll convert all cam boxes to kitti format.\n2. Assuming that you are familiar with 2d object detection, [this](https://towardsdatascience.com/the-state-of-3d-object-detection-f65a385f67a8) blog can give you a head start",
    "654565": "Thanks for the hint . Looking at PointPillars",
    "658505": "Hi, Rishabh, do you have any suggestions about converting KITTI format detection results back to nuScenes format for submission?",
    "658582": "Hey Bob, see [this](https://github.com/nutonomy/nuscenes-devkit/blob/master/python-sdk/nuscenes/scripts/export_kitti.py#L275)",
    "659376": "Well done, bro, thank you a lot."
  },
  "source": "meta"
}