Driving is hard, but humans make it look easy. We're UT Dallas's applied autonomous driving project, and we're making driving look easier than ever.
In the course of our research, we frequently encounter unfiltered pointclouds– that is, 3D scans from our car’s sensors that have not been processed. These unfiltered pointclouds contain usually contain many more points than we need.
We use a process called “downsampling” to remove unnecessary points. By downsampling, the complexity of our 3D data is reduced, which makes our algorithms faster down the road.
We’d like you to write a program in either C++ or Python that reads a pointcloud from a labelled CSV file, downsamples this pointcloud, then writes the result to a second CSV file.
.cpp
or .py
file with a main function. The file can be formatted in any way you choose.We’re looking for efficient, cleanly written downsamplers that fulfill the requirements above. Everything else is up to you, including:
Implementations that remove points systematically (i.e. uniformly in space, or based on a target feature like edges) will be scored higher than programs that remove points randomly. If this all sounds crazy, keep it simple and just submit something that works.
Submissions will be evaluated by a blind panel of developers on our team. That is, your submission will be anonymized before evaluation. This panel will score your code within the following categories using a 12-point scale:
We just want to see your approach to algorithm problems. Of course you can be as creative or ambitious as you like, but at the end of the day, we just need a downsampler. You should be able to knock this out in about 1 hour (though you can take as long as you need). We’re looking forward to seeing your code!
Questions can be emailed to our team lead at daniel.vayman@utdallas.edu. Happy downsampling!