DSAT aims to find faint moving asteroids using the digital imaging process method. In short, DSAT first extracts all potential faint objects with the help of deep learning-based segmentation. After that, a multi-frame tracking algorithm was developed to find real asteroids from the segmentation results. We utilize a distance tolerance criterion to help the failure detection of asteroids in complex situations.
We recommend using Anaconda or Miniconda to manage the package environment. You can clone this repository, then go to the folder and install the dependencies using Anaconda.
- Try a demo (w/o pytorch-gpu) --> for simulation or asteroid tracking
conda env create -f environment.yml
- Full dependencies (w pytorch-gpu)--> for simulation, asteroid tracking, network training and inference
Note: For GPU training, you need to install CUDA and the corresponding version of Pytorch, which you can find on this page.
After installation, you can activate the created environment with conda activate DSAT
.
You can use the code in 0_simulation
to generate asteroids at different SNRs, speed, and field crowding conditions.
To training a segmentation network, you need to construct a paired training dataset at first.
- We randomly cropped the raw images with a size of 4096×4096 into 256 ×256 patches to prepare the training dataset. The code in folder
2_Segmentation_network/generate_patches
can be used for reference. - The label data can be generate by ground truth (for simulation case) or manual annotation (for real data, EISeg is an efficient interactive segementation tool for labeling, detailed descriptions can be found in our Supplementary document).
Users can train the segmentation network by run the script train.py
in folder 2_Segmentation_network
with parameter setting in config.json
.
You can apply the well-trained segmentation model by run the script apply_model.py
in folder 2_Segmentation_network
with file path and model checkpoint.
By giving raw data and segmentation results, you can test the tracking script asteroid_tracking.py
in folder 3_Asteroid_tracer
.
The simulated training dataset and example data has been uploaded to Zenodo: Data for DeepSegAsteroidTracker.
If you find this work useful, please consider citing us.
@article{DSAT2024,
title = {Deep learning-assisted near-Earth asteroid tracking in astronomical images},
journal = {Advances in Space Research},
volume = {73},
number = {10},
pages = {5349-5362},
year = {2024},
issn = {0273-1177},
doi = {https://doi.org/10.1016/j.asr.2024.02.048},
url ={https://www.sciencedirect.com/science/article/pii/S0273117724001911},
author = {Zhenhong Du and Hai Jiang and Xu Yang and Hao-Wen Cheng and Jing Liu},
keywords = {Near-Earth asteroid, Deep learning, Convolutional neural network, Faint object extraction, Moving object linking},
}