How does MoBIE keep track of segment locations / bounding boxes?

Hi MoBIE team, (@Kimberly_Meechan @Christian_Tischer @constantinpape )

Some specific questions:

  1. Are object locations and/or bounding boxes precomputed?
  2. Where and how are they stored in the segmentation metadata? I found this example:
    a) Are these ever stored in a different format (e.g. as part of a zarr / n5 container)?
    b) Is the anchor “some representative point” or specifically the centroid, or something else?
  3. Could I have a pointer to where this is either computed parsed by MoBIE?

Why I care:
I see that here (Interacting with segmentation table), for example, Mobie keeps track of where objects are and can show them in the viewer. We have similar needs and are considering having Fiji’s N5Viewer know about segment properties. We’d like for it to (1) be compatible with your work and (2) not re-invent the wheel.

Thanks as always!
John

5 Likes

Hi John,

nice to hear from you. With regard to your questions:

  1. yes, we precompute both the anchors and bounding boxes.
  2. a) currently, we store this in a tsv table (which can also be used to store other properties). See here for details. We have been discussing to also enable storing this data in zarr/n5 directly or in a database, in case it becomes too large to handle in tsv. See initial discussion here. If the tsv doesn’t fit your use-case we would be very happy to hear your thoughts and work on something together.
    b) Yes, the anchor is just some representative point. We usually use the centroid, or, in the case of non-convex shape where the centroid is not inside of the object, the eccentricity center.
  3. @Christian_Tischer would be more qualified to give you some pointers here, but I see some discussions on this in my mail inbox already ;).
2 Likes

I’d love to share the code about interacting with the segmentation table with you (in fact we also have a linked interactive scatterplot now, partly thanks to your help :wink: ). In general, I’d be super motivated factor out functionality into a common repository such that we could use the same code base for segmentation exploration. I think also @frauzufall has recently been very active in this respect. Ideally we would all converge to the same solutions.

1 Like

Thank you for the answers, and for looping in @frauzufall

In general, I’d be super motivated factor out functionality into a common repository such that we could use the same code base for segmentation exploration.

This would be wonderful! :smiley:
Miss you all, and hoping hackathons will be possible soon.