State of the art in unsupervised image segmentation

asked 2018-11-09 01:28:42 -0500

Martian gravatar image

I've been researching methods for automatically segmenting gray-scale images. I only need binary segmentation, but it needs to run without intervention (unsupervised). OpenCV's adaptive thresholding has problems in some cases, so I've been looking at Markov Random Field and Conditional Random Field methods. Unfortunately there appears to be no built-in support for unsupervised versions in OpenCV (not sure why that is???).

MRF-based methods seem to have problems with convergence in some cases, and of course they are likely to be slow. So before going through the considerable effort of coding MRF or CRF functions, I thought it would be good to see if there are even better alternatives. Any suggestions?

edit retag flag offensive close merge delete


there are some in contrib, e.g. hdf and GraphSegmentation

(it also has samples to try there !)

then, ofc: cnn based (but more for color images, imho)

berak gravatar imageberak ( 2018-11-09 01:37:32 -0500 )edit

Thanks for the links, Berak. How does hdf relate to segmentation? I did not see any related code.

I am reading through the references to get some background on the graph-based segmentation methods at the other link. I had read some things by Felzenszwalb before, but hadn't seen that paper. The methodology seems logical, but the illustrations of segmented images seem a bit rough. Any idea why that particular approach was chosen?

Martian gravatar imageMartian ( 2018-11-10 07:04:17 -0500 )edit

sorry, i don't know much about the details here, all i wanted was to point out some "often overlooked" parts of the library. and again, there are samples for both !

berak gravatar imageberak ( 2018-11-10 07:13:07 -0500 )edit

Thanks, Berak. It is helpful. I was wondering about the HDF link, but that could indeed prove helpful later, since the format is used in neural net libraries. Good to know it's there.

OpenCV really should have a wider assortment of segmentation methods. There are unsupervised Markov Random Field and Conditional Random Field methods that probably out-perform existing adaptive threshold and Otsu. That would be a great complement to the newer neural net library interfaces.


Martian gravatar imageMartian ( 2018-11-10 20:19:57 -0500 )edit

lol, apologies for the typo -- , hfs, not hdf

berak gravatar imageberak ( 2018-11-11 00:27:25 -0500 )edit

Well, that makes more sense. :-) HFS looks promising, and the images look better than the older Felzenszwalb segmentation examples. Unfortunately, appears to be CUDA only.

Martian gravatar imageMartian ( 2018-11-16 06:16:40 -0500 )edit

no, not CUDA only. just try the sample !

berak gravatar imageberak ( 2018-11-16 06:48:13 -0500 )edit