Multi-scale object detection (with black and white images)

I want to be able to locate and classify each of the bright dots in the image below as a star or galaxy:

Note the red circles indicate where the scikit-image blob detection algorithm has located where objects of interest are within the image.

Because this blob detection appears to work so well, I’m thinking of using this scikit-image blob detection method for the locating part of my problem (and to prevent me from having to label lots of data regarding location within an image).

Thus I intend to use a 2 step pipeline - blob detection, then crop each blob and run an image classfier to determine “star” or “galaxy”. My question is, how big should I create the image crop to be passed to the classifier? If I create it too big, I risk classifying multiple bright spots as a single star or galaxy. If I create it too small, I risk classifying a single large bright spot as multiple small stars/galaxies.

One approach I think may work is to create 2/multiple classifiers at different scales, and ensemble/average each prediction? I have come across this excellent blog post regarding similar problem, which combines the 2 location/classification steps (similar to YOLO), but again requires labelled data and whilst blob detection works so well, I feel I may be able to prevent having to create a labelled dataset :slight_smile:

Thanks for any help/advice!

1 Like

I have nothing to contribute other than encouragement. This sounds great and I hope you post back as you discover more.

1 Like