jewettaij / visfd

volumetric image toolkit for simple feature detection (segment tomograms)
MIT License
6 stars 2 forks source link

blob-detection is slow for large blobs #4

Closed jewettaij closed 3 years ago

jewettaij commented 5 years ago

Optimization 1 (not implemented yet)

In order to reduce computation time, some blob-detection implementations will automatically down-sample the image when the blob-size (sigma parameter) reaches a certain width. This is an optimization I should add eventually. However blob-detection in its current form is efficient for detecting small blobs (such as ribosomes, nucleosomes and other small complexes in the cell.)

Optimization 2 (not implemented yet)

I could also reduce the computation time by a factor of 2 when the -dog-delta parameter δ satisfies δ <= gratio-1 where "gratio" is one of the parameters to the "-blob" argument.

Perhaps later, I will add both optimizations.

jewettaij commented 3 years ago

Today, I added the ability to reduce image size and resolution using the "-bin" argument to "filter_mrc". (This feature is implemented in visfd/resample.hpp.) This will make a dramatic difference in the computation time needed to perform blob detection. The location and size of the detected blobs will be scaled up accordingly to compensate for the reduction in resolution. If the user is detecting blobs whose diameter is much larger than a few voxels, then reducing the resolution will not have a noticeable effect on the results. I have updated the examples (and the tutorial) to take advantage of this feature.

jewettaij commented 3 years ago

As of v0.29.3, this reduction in resolution happens automatically to make sure the speed of the algorithm remains within reasonable limits. Users can override this by manually specifying the "-bin" argument.

jewettaij commented 3 years ago

I used the new code on some large blobs. I think this issue has been resolved. Closing.