Clustering pour compression d'image

Bonjour,
Je ne comprend pas comment l’algorithme Mean Shift est utilisé pour la compression d’image.
J’ai testé avec l’algorithme K-Mean avec 30 clusters et cela donne une bonne compression de l’image.

from sklearn.cluster import KMeans
clf = KMeans(n_clusters=30)
clf.fit(X)
centroids_k = clf.cluster_centers_
labels_k = clf.labels_
X_compressed = centroids_k[labels_k].astype(int)
img_compressed = mat_compressed.reshape(img.shape[0],img.shape[1], img.shape[2])

En changeant le k, on a une compression + ou - grande.
Le temps d’exécution est plus rapide que de passer par la fonction findClosestCentroids.
Pouvez-vous me préciser l’intérêt du Mean Shift dans ce cas? Quelque chose a dû m’échapper.
Je vous remercie.

Bonjour Laure,

La compression d’images n’est pas la seule application de l’algorithme Mean Shift. L’interêt de l’utiliser pour cela est de vous donner un autre exemple d’application du clustering, mais en effet vous pouvez aussi compresser une image avec un KMeans, un clustering spectral, une PCA, un auto-encodeur, etc.

L’interêt du MeanShift est que c’est une technique plus subtile, plus avancée et moins brutale pour faire du clustering. Comme pour toutes les modélisations par machine learning, cette technique va donner de meilleures performances sur certaines applications et de moins bonnes performances sur d’autres.

J’espère avoir répondu convenablement à votre question :slight_smile:

Pierre