Asteroid Light Сurves Inversion

High-Level Project Summary

The challenge was to build an algorithm that can create a light curve based on the 3d shape model. We did it in 3 hours and decided to solve an inverse task - given a light curve build a shape of the potential asteroid.We have very close results in obtained lightcurves for common asteroids.Our result can be used to study the shapes of the asteroids since we cannot directly see them. That helps to find the most interesting asteroids to visit or study remotely.

Link to Project "Demo"

Detailed Project Description

Our solution:

1. 1 Million generated asteroid shapes (Genetic Algorithm used)

2. Light curves generated from each of them with all timeshifts are put in the database as vectors.

3. Faiss database is used to quickly get the potential candidates for a search answer.

4. Modifier cross-correlation is used to compare the light curves and select a final candidate.


We have very close results in obtained lightcurves for common asteroids.


Some details:


  1. All the shapes are evolved from a single spherical object and many shapes modifications.
  2. For light curve computation, we finalized our work on rendering to image and computing the brightness of pixels. Currently, it works in 9 ms per shot, but there is a 1000x optimization possibility with leveraging the GPU parallelization. It will enable the generation of 10 Billion objects in the database and much better light curve matches.
  3. Our database is able to handle search query among the 10 billion objects in under 10 seconds.
  4. Our lightcurve matching algorithm is robust to noise and can easily work with folding.


Videos of the light curves and shapes: https://drive.google.com/drive/folders/1yiOveSx3z9m2W8Xl1c9cN_SXgrq9dToK


Our goal with 10 billion objects is to be able to propose an average of 5 close matches of light curve per real light curve obtained from real observations.


Tools and languages:


  1. Python Programming Language: python.org
  2. Faiss DB: https://github.com/facebookresearch/faiss/
  3. OpenCV: https://opencv.org/
  4. pymesh: https://pymesh.readthedocs.io/en/latest/
  5. open3d: http://www.open3d.org/
  6. numpy: https://numpy.org/

Hackathon Journey

Really expiring to work on a problem that is important and build something in a really short time. We had a really good mentor that could validate some of our hypothesis. With the right expertise and a nice collaborative environment, we were able to achieve quite good results and have fun. Interestingly, most of our challenges we were able to resolve by just 1 out of 3 people in our team, that had just the right experience to help with a certain problem we had in the meanwhile.

References

Tags

#asteroid #lightcurve #inversion #searchengine #geneticalgorithm #opencv #mesh3d

Global Judging

This project has been submitted for consideration during the Judging process.