Git Product home page Git Product logo

Comments (5)

ThorstenFalk avatar ThorstenFalk commented on August 25, 2024

A sample image (at best an orthoview) might help. From the curves I can only say that the training loss oscillates a lot. That indicates quite diverse and complicated training data. The anisotropy factor of 5 is quite high, but this is not necessarily a problem, it only means that the model might not be ideal for these data. Usually I perform only 2D convolutions/pooling until resolution is isotropic and then continue in 3D. For your data this means that you would perform 2D operations at two resolution levels, our models usually only do this for the coarsest resolution.

Only IoU is of relevance in this mode of training. The F1 measures rely on fully annotated objects, therefore I would ignore them. And an IoU of 0.6 is already better than nothing. How do the segmentations look like?

from unet-segmentation.

weng-joy avatar weng-joy commented on August 25, 2024

Thanks for quick replay.

My data looks like this:
Untitled-4
and the glomeruli are my aimed objects.
Untitled-5

The segmentation output from the your pre-trained model "IoU of 0.6" was till not good.
You are right, that "the model might not be ideal for these data. "
Therefore I want to "U-net->utilities ->create a new model" to build my own model. The problems came... I never got the IoU, and the segmentation was terrible. That's why I need help. According to your experience on 3D U-net, how should I solve the problems.

By the way, for anisotropy, I've also tried to firstly converte to isotropic stack based on CSBDeep (CARE, http://csbdeep.bioimagecomputing.com/), then applied U-net. No any improvments.

Thanks once more!!

from unet-segmentation.

ThorstenFalk avatar ThorstenFalk commented on August 25, 2024

When training 3D segmentation models from scratch, my experience is that you can expect first non-empty segmentations after approximately 10,000 iterations, then they rapidly get better until you get a quite stable model after around 30,000 iterations. It of course depends on data and annotations, but your problem looks solvable and your annotations clearly indicate the expected outcome. Your glomeruli are embedded in tissue. This is something the model needs to learn because it was only trained for isolated cells on dark background.

What's the main problem with the outputs? Insufficient separation, inaccurate boundaries, both?

from unet-segmentation.

weng-joy avatar weng-joy commented on August 25, 2024

Thanks for the nice answer!
The problems with the output are both, insufficient separation and inaccurate boundaries.

To distinguish the aimed embedded glomeruli, in creating my own new 2D Unet model, I increased the Background/Foreground ration. and also adjusted other parameters, with 20,000 iteraions. I got very nice results. Originally I wanted to build my own 3D Unet model. Since I always failed, I decided to finetune on your example pre-trained model.

Actually, I have already tesed it many times using different input stacks. Usually after 3000 iterations, even the curves of F1 and IoU fluctuating, but they were tent to be constant. No trends would be going increase.

I also wonder, how long time did the training spend approximately in the experiments with the "input patch size 236 * 236 * 100" mentioned in the paper, if choose 10,000 iterations? For my case, just use the stack "802 * 802 * 20" do 3D Unet training with 5000 iterations, it needs 7days, based on GPU Nvidia Geforce RTX 2080 TI.

Thanks for your attention, and I am looking forward to your help!

from unet-segmentation.

ThorstenFalk avatar ThorstenFalk commented on August 25, 2024

Hmz, 5000 iterations in 7 days is too few. How often do you evaluate on the validation set? For 3D models I evaluate only every 1000 iterations, because the evaluation is a serious overhead. Without validation you should reach at least 20k iterations a day, so with validation every 500 iterations maybe 18k a day.

from unet-segmentation.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.