[PYTHON] Bildsegmentierung mit Scikit-Image und Scikit-Learn

Das Ziel dieses Artikels ist es, den Bildteilungsalgorithmus durch Clustering zu erfahren. Lassen Sie uns Kameramann anvisieren. (Alle laufen auf ipython --pylab.)

from skimage import data,io
image=data.camera()
io.imshow(image)

camera_original.png

Das Clustering-Ziel ist jedes Pixel. Wenn die Anzahl der Daten n und die Anzahl der Dimensionen d ist, muss eine n × d-Matrix erstellt werden, um den Clustering-Algorithmus verwenden zu können. Da das Ziel diesmal jedes Pixel ist, erstellen Sie zuerst eine 262144 × 1-Matrix mit n = 512 × 512 = 262144 und d = 1.

X=image.reshape((-1,1))

Jetzt bist du bereit. Lassen Sie uns gruppieren. Verwenden Sie Mean-Shift-Clustering. Mean-Shift-Clustering wird als für die Bildteilung geeignet angesehen, da die Anzahl der Cluster nicht im Voraus bestimmt werden muss. Dies ist bereits in scicit-learn implementiert. Wie praktisch ... Es gibt einige Parameter, aber ich werde versuchen, die Referenzen einzuhalten.

from sklearn.cluster import MeanShift,estimate_bandwidth
bandwidth=estimate_bandwidth(X,quantile=0.2,n_samples=500)
ms=MeanShift(bandwidth=bandwidth,bin_seeding=True)
ms.fit(X)

Damit ist das Clustering abgeschlossen. Mal sehen, das Ergebnis.

segmented_image=ms.labels_
segmented_image.shape=image.shape
imshow(segmented_image)
#matshow(segmented_image)

camera_segmented.png

Schauen wir uns auch die Anzahl der Cluster an.

print len(unique(ms.labels_))
3

Der Kameramann wurde in drei Teile geteilt. Richtige Bewertungsdaten werden benötigt, um zu bewerten, ob dies gut oder schlecht ist, aber ist es irgendwo? Die Leistung des Mean-Shift-Clusters hängt weitgehend von der Bandbreite ab. Dieses Mal hatte sklearn eine Funktion zum Schätzen der Bandbreite, also habe ich versucht, sie zu verwenden, aber ich kann nichts sagen, weil ich nicht gesehen habe, was ich im Inneren mache. Ich bin vorerst froh, dass ich mit der Scicit-Serie eine Bildteilung erleben konnte.

Vielen Dank.

Verweise

Recommended Posts

Bildsegmentierung mit Scikit-Image und Scikit-Learn
[Python] Bildverarbeitung mit Scicit-Image
Fotosegmentierung und Clustering mit DBSCAN
Bildsegmentierung mit CaDIS: ein Katarakt-Datensatz
Isomap mit Scikit-lernen
DBSCAN mit Scikit-Learn
Clustering mit Scikit-Learn (1)
Clustering mit Scikit-Learn (2)
PCA mit Scikit-Learn
kmeans ++ mit scikit-learn
Generieren und veröffentlichen Sie Dummy-Bilddaten mit Django
Kreuzvalidierung mit Scikit-Learn
Bildverarbeitung mit MyHDL
Hinweise zur HDR- und RAW-Bildverarbeitung mit Python
Bilderkennung mit Keras
Machen Sie mit PyTorch und Scikit-Learn sichtbarere Leistungsindikatoren
Mehrklassen-SVM mit Scikit-Learn
Clustering mit scikit-learn + DBSCAN
Deep Learning Bildanalyse beginnend mit Kaggle und Keras
Einfaches maschinelles Lernen mit Scikit-Learn und Flask ✕ Web App
Scikit-Lernen mit Chemoinfomatik
Bildsegmentierung mit U-Net
Bildverarbeitung mit Python
POST das Bild mit json und erhalte es mit der Flasche
DBSCAN (Clustering) mit Scikit-Learn
Praktisches maschinelles Lernen mit Scikit-Learn und TensorFlow-TensorFlow gab auf-
Mit und ohne WSGI
Installieren Sie scikit.learn mit pip
Berechnen Sie tf-idf mit scikit-learn
Bildverarbeitung mit PIL
Bildklassifizierung mit selbst erstelltem neuronalen Netzwerk von Keras und PyTorch
Erstellen Sie mit VirtualBox und Ubuntu eine Scikit-Lernumgebung für maschinelles Lernen
Webcrawlen, Web-Scraping, Zeichenerfassung und Speichern von Bildern mit Python
[Lass uns mit Python spielen] Bildverarbeitung zu Monochrom und Punkten
Erstellen Sie eine GPU-Umgebung mit GCP und kaggle offiziellem Image (Docker)
Bei mir cp und Subprocess
Bild herunterladen mit Flickr API
Bildverarbeitung mit Python (Teil 2)
Programmieren mit Python und Tkinter
Ver- und Entschlüsselung mit Python
Lesen Sie die Bildkoordinaten mit Python-matplotlib
Python und Hardware-Verwenden von RS232C mit Python-
Bildbearbeitung mit Python OpenCV
Neuronales Netzwerk mit Python (Scikit-Learn)
Hochladen und Anpassen von Bildern mit django-ckeditor
Sortieren von Bilddateien mit Python (2)
Sortieren von Bilddateien mit Python (3)
100 Klopfen bei der Bildverarbeitung !! (001 - 010) Vorsichtig und vorsichtig
Parallele Verarbeitung mit Parallel von Scikit-Learn
Erstellen Sie den Image Viewer mit Tkinter
Bildverarbeitung mit Python (Teil 1)
Tweet mit Bild in Python
Bilddateien mit Python sortieren
Bildverarbeitung mit Python (3)
Bildunterschriftengenerierung mit Chainer
[Python] Lineare Regression mit Scicit-Learn
Holen Sie sich Bildfunktionen mit OpenCV
Super Auflösung mit SRGAN und ESRGAN
Group_by mit sqlalchemy und sum