IMPORTANT NOTE- this software is unstable and under development.
Small collection of utilities for detecting moving objects within sdss images.
The simplest approach is to grab a jpg image from SDSS and run naive_detect:
> naive_detect <jpg-image-file-name>
which will generate a candidate.jpg if it contains a potential moving object, marking its location on the jpeg.
The moving object is identified by a circle in the following example image.
here is another example.
here is a good example of detection at the limit of image resolution.
This effort is an attempt to detect moving objects (eg. asteroids) in SDSS images at scale.
The way SDSS captures image data makes it straightforward to identify moving objects.
The general algorithm for detection I have developed is as follows:
- split image into RGB layers then subtract from each other
- stationary objects should negate themselves
- if there is anything remaining it will indicate offset aka movement
- convert to grayscale for circle detection using HoughCircle
Because it is most familiar to me, I am currently working with jpeg imagas though will be switching over to using FITS soon.
False positives are an issue:
- image flaring
- detecting poor image quality
- unknown (ex. picking up other kinds of artifacts/moving objects in SDSS image)
I have not quite got to 'the at scale' part as I am still grokking lots of ancillary SDSS data.
- publish results to sdss asteroid detect s3 bucket
- Layer in ML approaches for better false positive detection
- Genetic alg for identifying optimal artifact detection parameters
- Reconcile and report to Moving Object Catelog
Build and deploy
To build you may have to install some additional deps:
yum install epel-release yum install cmake3
To build this set of utilities on linux, osx and windows platforms.
>cmake3 -DCMAKE_BUILD_TYPE=Debug -G "CodeBlocks - Unix Makefiles"
Note that running cmake will pull down dependencies.
Then run make, make install.
To create a release package
>cpack3 --config CPackConfig.cmake
This project depends on the following external libs:
- opencv: for image processing
- rapidjson: for json munging
- loguru: for logging
- gnuplot-cpp: for speaking to gnuplot
- googletest: for testing
- curl: for http