ignaciorlando / fundus-vessel-segmentation-tbme

In this work, we present an extensive description and evaluation of our method for blood vessel segmentation in fundus images based on a discriminatively trained, fully connected conditional random field model. Standard segmentation priors such as a Potts model or total variation usually fail when dealing with thin and elongated structures. We overcome this difficulty by using a conditional random field model with more expressive potentials, taking advantage of recent results enabling inference of fully connected models almost in real-time. Parameters of the method are learned automatically using a structured output support vector machine, a supervised technique widely used for structured prediction in a number of machine learning applications. Our method, trained with state of the art features, is evaluated both quantitatively and qualitatively on four publicly available data sets: DRIVE, STARE, CHASEDB1 and HRF. Additionally, a quantitative comparison with respect to other strategies is included. The experimental results show that this approach outperforms other techniques when evaluated in terms of sensitivity, F1-score, G-mean and Matthews correlation coefficient. Additionally, it was observed that the fully connected model is able to better distinguish the desired structures than the local neighborhood based approach. Results suggest that this method is suitable for the task of segmenting elongated structures, a feature that can be exploited to contribute with other medical and biological applications.
47 stars 15 forks source link

Undefined function or variable 'openVesselLabels' #5

Closed soulnd closed 7 years ago

soulnd commented 7 years ago
  1. When I run the script_experiments_massive according to the user_manual, there is a error that matlab can not find the openVesselLabels .
  2. I don't know how to run on my dataset because my dataset don't have binary ground truth masks of the vessels. Can I use DRIVE to train and validate ,then use my dataset to test?
ignaciorlando commented 7 years ago

Hi @soulnd. Sorry for not answering before, I was on holidays.

  1. It could be possible that I accidentally removed that function. While I try to reproduce the bug, would you mind to checkout to the branch "refactoring" and see if the problem persists? That branch contains a newer version of the project that should be more stable and easy to use, and it will become master after testing.

  2. If you don't have binary labels for your test set, you can put all your images on DRIVE/test, for example, to segment vessels from your data set with a model trained on DRIVE. Please, take into account that if there are huge changes in the resolution then you won't get proper results due to feature parameters. The easiest way to deal with that issue would be to downsample your images to approximately the same resolution on DRIVE, or to multiply all feature parameters by a scaling factor as the one we reported in our paper (\rho).

Let me know if (1) works. I'll try to reproduce the bug in the meantime.

Cheers,

Nacho

soulnd commented 7 years ago

I download the branch "master" you revised and run the code again, the problem is solved. But in your branch "refactoring", the file openVesselLabels.m is still not found.

ignaciorlando commented 7 years ago

Hi @soulnd

The refactoring branch should be working now (at least is working good in my laptop). The openVesselLabels file was always in the fundus-util folder, but the issue was at the time of computing the quality values in the validation set. Let me know if it works in your computer.

Cheers,

Nacho

soulnd commented 7 years ago

I run the code again,and it works.

ignaciorlando commented 7 years ago

Great!

janasubrata commented 4 years ago

script_experiments_massive Undefined function or variable 'DRIVE'.

Error in getConfiguration_GenericDataset (line 15) config.dataset = DRIVE; how to solve this problem

janasubrata commented 4 years ago

script_experiments_massive Undefined function or variable 'DRIVE'.

Error in getConfiguration_GenericDataset (line 15) config.dataset = DRIVE; I.m uing windows platform matlab 14