Closed 0x00b1 closed 7 years ago
Shape zernikes (in MeasureObjectSizeShape ) are very useful for profiling – they often show up as being among the top features for distinguishing between treatments.
There is no texture alternative for that because it is a shape feature.
I truly ❤️ shape Zernikes. I haven't used intensity Zernikes so I can't comment on that.
@shntnu Are they worth the cost? Is there a preferable feature?
Add me to the list of people who <3 Zernikes .
Some initial thoughts:
Add me to the list of people who <3 @shntnu @bethac07 and @braymp
@braymp I'm writing issues for other expensive features. Do you have any thoughts on other modules and features with unbalanced cost and usefulness?
Awww, always nice to end the week with a love fest. FWIW I don't know of any instance where intensity distribution zernike's have been used to good effect, but I assume there are some or it wouldn't have gotten written in. They do make me sad in #2193 .
@bethac07 I probably should have fixed #2193 before asking. 😎
@0x00B1: I would say by far, the Haralick features are the most expensive; I believe Lee's optimized it quite a bit. The addition of #1229 was a game changer, in that if you select objects only, it cuts comp time in half.
@braymp I should’ve added that it’d be unwise to remove any feature unless it’s truly useless. I’m discussing “practical defaults.”
More re: textures - The Haralick paper reports that texture measurements can be dependent on image rotation. I have a strong suspicion that the texture as calculated (for multiple angles) is not as useful as calculating the avg magnitude of each texture feature across the angles; I think I've seen a few more recent papers do this. @shntnu probably recalls my working in this area.
@braymp I’m writing a Haralick issue too. I think there’s a lot we can do.
An example of run times from a Cell Painting pipeline
Times reported are CPU times for each module, not wall-clock time
Fri Jul 15 22:33:18 2016: Image # 1, module LoadData # 1: 6.88 sec
Fri Jul 15 22:33:34 2016: Image # 1, module CorrectIlluminationApply # 2: 0.38 sec
Fri Jul 15 22:33:35 2016: Image # 1, module IdentifyPrimaryObjects # 6: 8.91 sec
Fri Jul 15 22:33:44 2016: Image # 1, module IdentifySecondaryObjects # 7: 5.36 sec
Fri Jul 15 22:33:49 2016: Image # 1, module IdentifyTertiaryObjects # 8: 1.02 sec
Fri Jul 15 22:33:50 2016: Image # 1, module MeasureCorrelation # 9: 566.84 sec
Fri Jul 15 22:43:17 2016: Image # 1, module MeasureGranularity # 10: 78.09 sec
Fri Jul 15 22:44:35 2016: Image # 1, module MeasureObjectIntensity # 11: 20.38 sec
Fri Jul 15 22:44:55 2016: Image # 1, module MeasureObjectNeighbors # 12: 4.23 sec
Fri Jul 15 22:45:00 2016: Image # 1, module MeasureObjectNeighbors # 13: 2.34 sec
Fri Jul 15 22:45:02 2016: Image # 1, module MeasureObjectNeighbors # 14: 2.38 sec
Fri Jul 15 22:45:04 2016: Image # 1, module MeasureObjectIntensityDistribution # 15: 87.98 sec
Fri Jul 15 22:46:32 2016: Image # 1, module MeasureObjectSizeShape # 16: 78.53 sec
Fri Jul 15 22:47:51 2016: Image # 1, module MeasureTexture # 17: 444.24 sec
Fri Jul 15 22:55:15 2016: Image # 1, module OverlayOutlines # 18: 0.09 sec
Fri Jul 15 22:55:15 2016: Image # 1, module OverlayOutlines # 19: 0.10 sec
Fri Jul 15 22:55:15 2016: Image # 1, module SaveImages # 20: 2.65 sec
Fri Jul 15 22:55:16 2016: Image # 1, module SaveImages # 21: 0.26 sec
Fri Jul 15 22:55:17 2016: Image # 1, module ExportToSpreadsheet # 23: 0.01 sec
@0x00b1 , have you gotten what you need out if this discussion and thus okay to close? Sounds to me like the decision is not to deprecate.
Zernike features are extremely expensive to compute and provide arguable value for their cost.
Is there an alternative with a more equitable utility-for-time cost?
Do people truly love Zernike features?