Dassault Systèmes
Vélizy-Villacoublay, France
During the placement at Dassault Systèmes, the project focused on developing deep learning methods for the automatic segmentation of coronary arteries in X-ray angiography. Coronary angiography is an X-ray imaging technique used to visualise the blood vessels supplying the heart and to diagnose stenosis, a narrowing of the arteries that restricts blood flow. Automatically identifying these vessels is a key step towards applications such as stenosis assessment and 3D reconstruction, but is challenging because the images are noisy, the arteries are often faint, and the smallest vessels are only a few pixels wide. The full segmentation pipeline was developed, including data preparation, model training, inference, post-processing, and evaluation. A more comprehensive evaluation framework was designed to assess performance across different vessel calibres, and the models were validated on an independent public dataset. Extensive experimentation showed that the main limitation of the approach was data quality and image resolution rather than model architecture, providing clear evidence to guide the team's future research. The placement provided first-hand experience of tackling open-ended research problems where there was no obvious solution. Rather than continuing to tune the model, experiments were designed to understand why performance had plateaued, turning a negative result into the main outcome of the project.
The placement was carried out within the Healthcare Immersive Experiences team at Dassault Systèmes, working on the development of deep learning methods for coronary artery segmentation in X-ray angiography. The role involved taking ownership of the project from end to end, including reviewing the literature, building and annotating a training dataset, developing a human-in-the-loop annotation workflow, training and evaluating segmentation models, and implementing the complete inference pipeline with post-processing and evaluation. Beyond model development, the work included designing a more representative evaluation framework, validating the approach on an independent public dataset, and conducting extensive experiments to understand the limitations of the method.
The project was a computer vision problem tackled with deep learning: training a model to pick out blood vessels in medical X-ray images. Day to day that meant Python and PyTorch, building and adapting model architectures and then running variants to see which ones held up. I managed the project on GitHub and maintained the repository myself, which mattered more than I expected once the experiments piled up: it was the only reliable way to tell which version of the code had produced which result. A good part of the work was evaluating and testing the models, not only training them. Choosing what to measure turned out to be harder than getting a model to run, and I learned to distrust a single score that looks fine on average while hiding the cases that actually matter.
The hardest adjustment was having no defined task. I had to choose a direction, commit to it, and accept that some weeks would produce nothing usable. It got easier once I started writing down every experiment and what I expected from it, which began as a way to stay organised and turned out to be the thing that made the final result visible. Explaining the work to different people took real practice. I reported progress to the team each week, went into detail with my manager, and sat down every week with a heart surgeon, where none of the modelling vocabulary was any use. Learning to lead with what the model finds and where it fails, instead of how it is built, changed how I thought about the problem itself.