chainer / chainercv

ChainerCV: a Library for Deep Learning in Computer Vision
MIT License
1.48k stars 305 forks source link

Super pixels / unsupervised clustering #520

Open pksorensen opened 6 years ago

pksorensen commented 6 years ago

Are there any implementation already that would help solve the following problem.

Given a sample set of images (fixed size n x n pixels) would it be possible to run a unsupervised clustering to find similar super pixels / clusters.

And then run it against two images to assign clusters to each pixel, and compare two images against eachother by looking at which pixels that changed cluster.

How complicated would it be to set such flow up with chainercv for a noob like me ?

yuyu2172 commented 6 years ago

Maybe you can work with feature maps of typical CNNs to cluster segments of pixels. Something like this. https://arxiv.org/pdf/1606.03558.pdf

VGG16 can be used for this purpose.

model = VGG16()
 # By default, __call__ returns a probability score (after Softmax).
model.pick = 'conv5_3'
conv5_3 = model(imgs)
pksorensen commented 6 years ago

My images have 10+ bands of different sensors, so i would assume that I need to build a custom model and not use a pretrained one. Most of them is based on RGB bands of random images i guess.

Would like to use sentinel 2 satellite images as examples. They consist of 13 bands. 4 at 10m, 6 at 20m and 3 at 60m.

Do you have any recommendation for a starting point => samples / tutorials that would help me getting started for this.

I assume that I would need to solve the following things:

This also would form as a good basis of creating a classification if there was learning labels but that is next on my topic.