Synchronizing LiDAR and Camera Data for Offline Processing Using ROS

Robots and other complex machines are usually equipped with a wide variety of sensors. Often, when performing tasks such as driving autonomously or collecting data for offline processing, it is useful to synchronize the different sensors. For example, in my work with 3D Machine Learning, I had to collect a dataset consisting of LiDAR pointContinue reading “Synchronizing LiDAR and Camera Data for Offline Processing Using ROS”

3D Object Detection with Open3D-ML and PyTorch Backend

In previous articles, I described how I used Open3D-ML to do Semantic Segmentation on the SemanticKITTI dataset and on my own dataset. Now it is time to move to another important aspect of the Perception Stack for Autonomous Vehicles and Robots, which is Object Detection from Point Clouds. Make sure to install Open3D-ML with PyTorchContinue reading “3D Object Detection with Open3D-ML and PyTorch Backend”

Filtering a Point Cloud to Match the Field of View of the Camera

In a previous post, I described why and how I was collecting a Point Clouds dataset. My setup is depicted in the image above, where a 360°, 32-beam LiDAR is placed above a stereo camera. One of the steps mentioned in the article was to crop (or filter) the Point Cloud to only show points approximatelyContinue reading “Filtering a Point Cloud to Match the Field of View of the Camera”

Semantic Segmentation with Open3D-ML, PyTorch Backend, and a Custom Dataset

Note: Instructions to download, run, and troubleshoot the code introduced in this article are provided at the end. As part of my experimentation with Open3D-ML for Point Clouds, I wrote articles explaining how to install this library with Tensorflow and PyTorch support. To test the installation, I explained how to run a simple Python script to visualize a labeledContinue reading “Semantic Segmentation with Open3D-ML, PyTorch Backend, and a Custom Dataset”

Installing Open3D-ML for 3D Computer Vision with PyTorch

In a previous post, I introduced my reasons to test Open3D-ML and the steps to install it with TensorFlow as the backend. In this post, I go over the steps to install the same library with PyTorch as the backend. Many of the steps are similar but there are some important differences. I hope thisContinue reading “Installing Open3D-ML for 3D Computer Vision with PyTorch”

Selecting a Dataset for a Natural Language Processing Paper

The following article describes the process I followed to discover and download a new text dataset. Often researchers have to go through this process and I hope that with this article I can make someone’s life easier. A while ago I was working on an area of Natural Language Processing named Sentiment and Emotion analysis,Continue reading “Selecting a Dataset for a Natural Language Processing Paper”

Testing Open3D-ML for 3D Object Detection and Segmentation

When starting out new research, my approach is usually to test different related things until enough experience allows me to begin connecting the dots. Before I could start building custom models for 3D object detection, I acquired a LiDAR and played around with some data. One next obvious step was to find out how the research worldContinue reading “Testing Open3D-ML for 3D Object Detection and Segmentation”

Normalizing (Feature Scaling) Point Clouds for Machine Learning

Continuing my work on Machine Learning with point clouds in the realm of autonomous robots, and coming from working with image data, I was faced with the following question: does 3D data need normalization like image data does? The answer is a clear YES (duh!). Normalization, or feature scaling, is an important preprocessing step for many machineContinue reading “Normalizing (Feature Scaling) Point Clouds for Machine Learning”

Creating a Point Cloud Dataset for 3D Deep Learning

For the past two years, I have been working with robots. Earlier this year I stopped focusing on cameras only and decided to start working with LiDARs. So after much research, I settled for a 32 beams RoboSense device. I had to spend some time setting it up, especially creating a suitable mount able toContinue reading “Creating a Point Cloud Dataset for 3D Deep Learning”

Simplifying Point Cloud Labeling with Contextual Images and Point Cloud Filtering

Annotating point clouds from multi-line 360° LiDAR is exceedingly difficult. Providing context in the form of camera frames and limiting the point cloud to the Field Of View (FOV) of the camera simplifies things. To achieve this, we first had to replace our old, and not so stable LiDAR mount, with a sturdier one capableContinue reading “Simplifying Point Cloud Labeling with Contextual Images and Point Cloud Filtering”