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

Doing the command ' mex ./CRF/CRF_1.0/pairwisePart.cpp ./CRF/CRF_1.0/densecrf.cpp ./CRF/CRF_1.0/util.cpp' failed. #2

Closed PapaMadeleine2022 closed 7 years ago

PapaMadeleine2022 commented 7 years ago

Hello, when I compile the Fully Connected CRF wrapper, doing the comand 'mex ./CRF/CRF_1.0/fullyCRFwithGivenPairwises.cpp ./CRF/CRF_1.0/densecrf.cpp ./CRF/CRF_1.0/util.cpp' work,but the command ' mex ./CRF/CRF_1.0/pairwisePart.cpp ./CRF/CRF_1.0/densecrf.cpp ./CRF/CRF_1.0/util.cpp' failed. The version of my matlab is R2014a. What should I do?

ignaciorlando commented 7 years ago

Try this out: mex .\CRF\CRF_1.0\pairwisePart.cpp .\CRF\CRF_1.0\util.cpp

PapaMadeleine2022 commented 7 years ago

@ignaciorlando That works.Thank you. I want to run your code in ubuntu, so I still need to compile './Features/Features/BCOSFIRE/COSFIRE/dilateDisc.c' using mex. But as I just know your paper and I do not know the inner function of dilateDisc.c, so how I compile the dilateDisc.c using mex?

ignaciorlando commented 7 years ago

That is part of an external code package by Azzopardi et al., that we used in another paper. You can run our code without even using that feature. If you want to use it as in our TBME paper, you just have to set Nguyen and Soares as the unary features and Zana as the pairwise.