Hi Ultrack team, I'm using Ultrack to track cells in 2D mother machine data and encountering unexpected filtering behavior that I cannot resolve through parameter tuning.
My workflow is first obtain perfect segmentation masks using Cellpose + manual correction, and then extract foreground and contours from these masks as input to Ultrack.
Since the input segmentation is perfect, there should be no FN or FP. However, after Ultrack tracking, some cells are being filtered out, resulting in: 2 FN (cells present in input but missing in output) and 8 FP (Spurious detections appear in the output that were NOT in my input masks. Interestingly, these correspond to partial/incomplete cells visible in the raw image that were intentionally excluded during manual correction (as they were identified as incomplete cells at the image boundary or artifacts)). An example attached, and the FP shows in yellow.
I have attempted to disable all filtering by these configs: config.segmentation_config.min_frontier = 0.0; config.segmentation_config.min_area = 1; config.segmentation_config.max_area = 999999. Despite these adjustments, cells are still being lost.
This seems similar to the circled region in your paper's Figure 6a (2D slice), where a cell present in the input disappears in the Ultrack output. I have highlighted it in green circle attached below.
I want to ensure ALL segments from my input masks are preserved as tracking candidates since my input segmentation is already perfect. My questions: 1. What processing occurs between foreground/contours input and segments output? 2. Where in the code is this implemented? 3. Are there additional parameters or code sections I can modify to prevent this filtering?
Any guidance on preserving all input segments would be greatly appreciated. Thank you!
