/EDUCATION/COMP3200
COMP3200: Part III Individual Project
Third Year, 2025/26 · Full year
Overall mark 82%
An independent comparison of classical and deep learning segmentation for cell microscopy, with a modular framework and desktop app.
SKILLS Research Design · Image Segmentation · Deep Learning · Dataset Annotation · Experimental Evaluation · Software Architecture
TECHNOLOGIES Python · PyTorch · OpenCV · NumPy · PyQt5
What the module covered
My individual project compared classical and deep learning methods for segmenting single cells moving through microfluidic channels. The aim was to investigate whether a thresholding-based approach remained useful in this constrained setting, rather than assuming that a neural network would always be the better choice.
I built a modular Python framework with interchangeable segmentation methods, implementing an Otsu thresholding pipeline with morphological cleanup and a U-Net. I also created a semi-automatically annotated dataset of 2,274 frames across five clips, an evaluation pipeline, and a PyQt5 demonstrator for inspecting segmentation results and exporting per-frame position, shape, and movement measurements.
Evaluation held out whole clips in turn and compared overlap and boundary accuracy using Dice and 95th-percentile Hausdorff distance. U-Net achieved a higher mean Dice overall, 0.876 compared with 0.806 for thresholding. However, thresholding performed better on the clip acquired under different microscope conditions. The comparison was limited to five clips and two methods, so the result supports a useful baseline for this setting rather than a general ranking of segmentation approaches.
What I took from it
The most valuable part was designing a comparison whose results I could explain. Keeping whole clips separate for evaluation avoided mixing neighbouring frames between training and testing, and looking at individual clips revealed differences that the overall averages hid. Annotation quality and the small number of clips also placed limits on the conclusions.
On the software side, a common interface let the GUI and experiment scripts share the same segmentation logic. Managing scope mattered too: I prioritised the comparison and per-frame kinematics over adding a separate tracking algorithm. Given more time, I would focus first on more varied data and stronger annotation checks.