Experimenting with Robotics and AI
-
2D Boxes to 3D Frustums: Simplifying Point Cloud Labeling for Object Detection
Labeling point clouds for object detection is a daunting task. The data is massive and its 3D nature makes it harder for the annotator to find the objects of interest as compared to labeling images. In order to facilitate the process of labeling point clouds, I have explored and developed a simple algorithm that leverages…
-
Using ChatGPT as a Well-Being Assistant.
In my late twenties, after detecting high cholesterol, I became more careful about my physical health. I joined a gym, started working out regularly, and eventually purchased my first sports watch. Being able to track progress and complete challenges took my fitness journey to a whole new level. Currently, I work out 5–6 times a…
-
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 point…
-
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 PyTorch…
-
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 approximately…
-
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 labeled…
-
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 this…
-
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,…
-
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 world…
-
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 machine…