Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

best Segmentation algorithm [closed]

I'm trying to develop a system, which recognizes various objects present in an image based on their primitive features like texture, shape & color.

The first stage of this process is to extract out individual objects from an image and later on doing image processing on each one by one.

However, segmentation algorithm I've studied so far are not even near perfect or so called Ideal Image segmentation algorithm.

Segmentation accuracy will decide how much better the system responds to given query.

Segmentation should be fast as well as accurate.

Can any one suggest me any segmentation algorithm developed or implemented so far, which won't be too complicated to implement but will be fair enough to complete my project..

Any Help is appreicated..

like image 802
Mahesh Gupta Avatar asked Jun 17 '26 10:06

Mahesh Gupta


2 Answers

A very late answer, but might help someone searching for this in google, since this question popped up as the first result for "best segmentation algorithm".

Fully convolutional networks seem to do exactly the task you're asking for. Check the paper in arXiv, and an implementation in MatConvNet.

The following image illustrates a segmentation example from these CNNs (the paper I linked actually proposes 3 different architectures, FCN-8s being the best). Segmentation results

like image 160
JLagana Avatar answered Jun 20 '26 06:06

JLagana


Unfortunately, the best algorithm type for facial recognition uses wavelet reconstruction. This is not easy, and almost all current algorithms in use are proprietary. This is a late response, so maybe it's not useful to you but one suggestion would be to use the watershed algorithm. beforehand, you can use a generic drawing(black and white) of a face, generate a FFT of the drawing---call it *FFT_Face*.
Now segment your image of a persons face using the watershed algorithm. Call the segmented image *Water_face*. now find the center of mass for each contour/segment. generate an FFT of *Water_Face*, and correlate it with the *FFT_Face image*. The brightest pixel in resulting image should be the center of the face. Now you can compute the distances between this point and the centers of segments generated earlier. The first few distances should be enough to distinguish one person from another.

I'm sure there are several improvements to the process, but the general idea should get you there.

like image 40
Mike Adams Avatar answered Jun 20 '26 04:06

Mike Adams



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!