Image segmentation implementation end to end

Hi. I have been trying to implement a deep learning based automatic segmentation for pelvic bone structure. I have a few questions:

  1. Is there some open source pelvic bone structure image segmentation dataset already implemented? (or some source where I can find data like these)

  2. Roughly speaking, how much training data do I need to implement this segmentation procedure?

  3. Roughly speaking, how long would the data preparation take?

  4. Would we need specific trained model for specific type of patients? For example, one group of patient already has an implant placed and other group has no implants placed.

  5. Roughly speaking, how much total time would be required to implement this procedure end to end? (weeks, months etc)

  6. Can you suggest any good graphics card which could provide state of the art results?

I don’t think that exists - if you find one or create one be sure to report back!

The rest of your questions are pretty open-ended so it’s hard to give you any specifics. It all depends on what kind of data you want to segment. High resolution CT would be best, but can you justify the radiation exposure and cost? Are these patients who may have implants leading to metal artifacts in the scan? How much accuracy do you need? These and many other details influence what segmentation approach you might take and how much data and time you will need to invest. Best if you read up in the literature to see what other people have done and see how that compares to your case.

Exact details depend on the specifics, as @pieper explained, but some rough estimates:

Hundreds of thousands of pelvic CTs are acquired every year for external beam radiation therapy treatment planning of prostate cancer. Bones are (roughly) segmented in probably most of them so, there is definitely lots of data sets out there. You “just” need to go out and get them. Of course, a CT acquired for radiation therapy treatment planning might not be perfect for planning musculoskeletal interventions, and if you don’t just need segment all the bones as one piece but also separate them then segmentation is not that trivial. So, depending on what exactly you need, it may or may not be easy to access lots of data. You can find freely usable, potentially segmented CTs on TCIA. For example, Siewerdsen et al. used 40 CTs from TCIA to create a statistical model of left/right hip and sacrum. You may find relevant data in various deep learning challenges or you can also contact authors that have data sets but did not share the publicly.

You can segment bones on CTs pretty well, so if you use classic semiautomatic methods such as “Grow from seeds”, you don’t need to do any training. If you use classic statistical learning (e.g., statistical atlases) then a few dozens should suffice. If you use convolutional neural networks then probably you need a few hundred to get good confidence.

If you are experienced in this and you can get a suitable database then you may need just a few days. If you need to build the database from scratch and you have never segmented CTs, etc. then it may take 1-2 weeks for you to learn to segment from clinicians, figure out a good segmentation workflow using semi-automatic tools (grow from seeds, etc.). You can then probably segment 10-20 data sets per day.

You can try use MONAILabel Slicer extension, which starts to train the neural network as you are segmenting each case and you might get useful preliminary segmentation which might speed up the segmentation. This concept has not been tested very widely, but on a relatively easy problem like this, it may work well.

Finding a good network configuration and train and validate it takes probably a few weeks for someone who already completed a couple of projects like this. For a student who is completely new to the entire field it probably takes half a year.

It might save you some time if you don’t have to worry less about running out of GPU memory. So, I would recommend getting an NVidia RTC3090 with 24GB GPU RAM. Do to power and cooling requirements, it is not easy to just stick a card like this into an existing PC, so I would recommend to buy a gaming PC or a workstation that already comes with a card like this.

If you don’t want to invest into hardware or wait for a physical device to be shipped then you can rent virtual machines with GPUs from cloud providers. However, if you are experimenting a lot (doing lots of overnight training), then most likely you’ll end up paying more compared to buying your own hardware.

1 Like

Thanks a lot for your valuable suggestions.