Dieses Repository enthält Code, mit dem Zehntausende von Bildern in einer zweidimensionalen Projektion visualisieren können, in der ähnliche Bilder zusammengeklustert werden. Die Bildanalyse verwendet die Inception -Bindungen von TensorFlow, und die Visualisierungsschicht verwendet einen benutzerdefinierten WebGL -Viewer.
Weitere Aktualisierungen finden Sie im Änderungsprotokoll.

Wir führen mehrere plattformspezifische Installationskochbücher online.
Um die Python -Abhängigkeiten zu installieren, empfehlen wir im Großen und Ganzen, dass Sie Anaconda installieren und dann eine Conda -Umgebung mit einer Python 3.7 -Laufzeit erstellen:
conda create --name=3.7 python=3.7
source activate 3.7Dann können Sie die Abhängigkeiten durch Ausführen installieren:
bash
pip install https://github.com/yaledhlab/pix-plot/archive/master.zip
Die Website, die PixPlot schließlich erstellt, erfordert einen WebGL-fähigen Browser.
Wenn Sie einen WebGL-fähigen Browser und ein Verzeichnis voller Bilder haben, können Sie die Daten für den Zuschauer vorbereiten, indem Sie die obigen Abhängigkeiten installieren und dann ausgeführt werden:
pixplot --images " path/to/images/*.jpg "Um die Ergebnisse dieses Prozesses zu sehen, können Sie einen Webserver starten, indem Sie ausgeführt werden:
# for python 3.x
python -m http.server 5000
# for python 2.x
python -m SimpleHTTPServer 5000 Die Visualisierung ist dann unter http://localhost:5000/output erhältlich.
Um einige Beispieldaten zu erwerben, mit denen ein Diagramm erstellt werden kann, können Sie einige Daten verwenden, die von Yale's DHLAB erstellt wurden:
pip install image_datasetsDann in einem Python -Skript:
import image_datasets
image_datasets . oslomini . download () Der Befehl .download() erstellt ein Verzeichnis mit dem Namen datasets in Ihrem aktuellen Arbeitsverzeichnis. Dieses datasets -Verzeichnis enthält ein Unterverzeichnis mit dem Namen "Oslomini", das ein Verzeichnis von Bildern und ein anderes Verzeichnis mit einer CSV -Datei mit Bildmetadaten enthält. Mit diesen Daten können wir als nächstes ein Diagramm erstellen:
pixplot --images " datasets/oslomini/images/* " --metadata " datasets/oslomini/metadata/metadata.csv " Wenn Sie mehr als 100.000 Bilder zeichnen müssen, aber keine teure Grafikkarte verfügen, mit der große WebGL -Anzeigen visualisieren müssen, möchten Sie beim Erstellen Ihres Handels möglicherweise einen kleineren Parameter "cell_size" angeben. Das Argument "cell_size" steuert, wie groß jedes Bild in den Atlas -Dateien ist. Kleinere Werte erfordern weniger Texturen, die gerendert werden müssen, wodurch der GPU -RAM, der zum Anzeigen eines Diagramms erforderlich ist, verringert wird:
pixplot --images " path/to/images/*.jpg " --cell_size 10Der UMAP -Algorithmus ist besonders empfindlich gegenüber drei Hyperparemetern:
--min_dist: determines the minimum distance between points in the embedding
--n_neighbors: determines the tradeoff between local and global clusters
--metric: determines the distance metric to use when positioning points
Der Schöpfer von UMAP, Leland McInnes, hat einen hilfreichen Überblick über diese Hyperparameter geschrieben. Um den Wert für einen oder mehrere dieser Hyperparameter beim Erstellen eines Grundstücks anzugeben, kann man die obigen Flaggen verwenden, z. B.:
pixplot --images " path/to/images/*.jpg " --n_neighbors 2Wenn sie installiert und verfügbar sind, verwendet Pixplot hierarchische dichte basierte räumliche Clusterbildung von Anwendungen mit Rauschen, eine Verfeinerung des früheren DBSCAN-Algorithmus, um Hotspots in der Visualisierung zu finden. Möglicherweise sind Sie daran interessiert, diese Erklärung zu konsultieren, wie HDBSCAN funktioniert.
Tipp: Wenn Sie Hdbscan verwenden und feststellen, dass PixPlot zu wenige (oder nur eine) „automatische Hotspots“ erstellt, senken Sie die --min_cluster_size von seiner Standardeinstellung von 20. Dies geschieht häufig mit kleineren Datensätzen (weniger als ein paar Tausend).
Wenn Hdbscan nicht verfügbar ist, fällt Pixplot auf die Implementierung von Kmeans durch Scikit-Learn zurück.
Wenn Sie mit jeder Ihrer Bilder Metadaten zugeordnet haben, können Sie diese Metadaten beim Ausführen des Datenverarbeitungsskripts übergeben. Auf diese Weise kann der Pixplot -Viewer die mit einem Bild zugeordneten Metadaten anzeigen, wenn ein Benutzer auf dieses Bild klickt.
Um die Metadaten für Ihre Bildsammlung anzugeben, können Sie dem Befehl, mit dem Sie das Verarbeitungsskript aufrufen, hinzufügen --metadata=path/to/metadata.csv Zum Beispiel können Sie angeben:
pixplot --images " path/to/images/*.jpg " --metadata " path/to/metadata.csv "Die Metadaten sollten in einer von Kommas getrennten Wertdatei vorliegen, eine Zeile für jedes Eingabebild enthalten und Header enthalten, die die Spaltenorder angeben. Hier ist eine Beispiel -Metadatendatei:
| Dateiname | Kategorie | Tags | Beschreibung | Permalink | Jahr |
|---|---|---|---|---|---|
| Bienen.jpg | Gelb | a | b | c | Bienen der Knie | https: // ... | 1776 |
| cats.jpg | gefährlich | B | c | d | Katzenpyjama | https: // ... | 1972 |
Die folgenden Spaltenbezeichnungen werden akzeptiert:
| Spalte | Beschreibung |
|---|---|
| Dateiname | Der Dateiname des Bildes |
| Kategorie | ein kategorisches Etikett für das Bild |
| Tags | Eine pipe-delimitierte Liste kategorischer Tags für das Bild |
| Beschreibung | Eine Klartextbeschreibung des Inhalts des Bildes |
| Permalink | Ein Link zu dem auf einer anderen Domain gehosteten Bild |
| Jahr | Ein Jahr Zeitstempel für das Bild (sollte eine Ganzzahl sein) |
| Etikett | ein kategoriale Etikett, das für die überwachte UMAP -Projektion verwendet wird |
| Lat | die Breitenposition des Bildes |
| lng | Die Längsstellung des Bildes |
Wenn Sie Bilder verarbeiten möchten, die auf einem IIIF-Server gehostet werden, können Sie eine von Newline delimitierte Liste von IIIF-Bild als Argument für --images angeben. Zum Beispiel könnte Folgendes als manifest.txt gespeichert werden:
https://manifests.britishart.yale.edu/manifest/40005
https://manifests.britishart.yale.edu/manifest/40006
https://manifests.britishart.yale.edu/manifest/40007
https://manifests.britishart.yale.edu/manifest/40008
https://manifests.britishart.yale.edu/manifest/40009 Man könnte diese Bilder dann als Eingabe angeben, indem pixplot --images manifest.txt --n_clusters 2 ausgeführt wird
| Link | Bildanzahl | Sammlungsinformationen | Images durchsuchen | Laden Sie für PixPlot herunter |
|---|---|---|---|---|
| NewsPlot: 1910-1912 | 24.026 | George Grantham Bain Collection | Nachrichten in den 1910er Jahren | Bilder, Metadaten |
| Bildefelt i oslo | 31.097 | Oslobilder | Erweiterte Suche, 1860-1924 | Bilder, Metadaten |
Der Dhlab möchte Cyril Diagne und Nicolas Barradeau, den führenden Entwicklern der spektakulären Google Arts -Experimente Tsne Viewer, danken, um großzügig Ideen zu Optimierungstechniken zu teilen, die bei diesem Betrachter verwendet werden, und Lillianna Marie, um diesen Betrachter zu benennen.