Ce référentiel contient du code qui peut être utilisé pour visualiser des dizaines de milliers d'images dans une projection bidimensionnelle dans laquelle des images similaires sont regroupées. L'analyse d'image utilise les liaisons de création de TensorFlow et la couche de visualisation utilise une visionneuse WebGL personnalisée.
Voir le journal de changement pour les mises à jour récentes.

Nous maintenons plusieurs livres de cuisine d'installation spécifiques à la plate-forme en ligne.
D'une manière générale, pour installer les dépendances Python, nous vous recommandons d'installer Anaconda, puis de créer un environnement conda avec un runtime Python 3.7:
conda create --name=3.7 python=3.7
source activate 3.7Ensuite, vous pouvez installer les dépendances en fonctionnant:
bash
pip install https://github.com/yaledhlab/pix-plot/archive/master.zip
Le site Web que Pixplot crée finalement nécessite un navigateur compatible WebGL.
Si vous avez un navigateur compatible WebGL et un répertoire plein d'images à traiter, vous pouvez préparer les données pour la visionneuse en installant les dépendances ci-dessus puis en exécutant:
pixplot --images " path/to/images/*.jpg "Pour voir les résultats de ce processus, vous pouvez démarrer un serveur Web en exécutant:
# for python 3.x
python -m http.server 5000
# for python 2.x
python -m SimpleHTTPServer 5000 La visualisation sera ensuite disponible sur http://localhost:5000/output .
Pour acquérir des données d'échantillons pour construire un tracé, n'hésitez pas à utiliser certaines données préparées par le DHLAB de Yale:
pip install image_datasetsPuis dans un script python:
import image_datasets
image_datasets . oslomini . download () La commande .download() fera un répertoire nommé datasets dans votre répertoire de travail actuel. Ce répertoire datasets contiendra un sous-répertoire nommé «Oslomini», qui contient un répertoire d'images et un autre répertoire avec un fichier CSV de métadonnées d'image. En utilisant ces données, nous pouvons ensuite construire un tracé:
pixplot --images " datasets/oslomini/images/* " --metadata " datasets/oslomini/metadata/metadata.csv " Si vous avez besoin de tracer plus de 100 000 images mais que vous n'avez pas de carte graphique coûteuse avec laquelle visualiser d'énormes affichages WebGL, vous voudrez peut-être spécifier un paramètre "Cell_size" plus petit lors de la construction de votre tracé. L'argument "Cell_Size" contrôle la taille de chaque image dans les fichiers Atlas; Des valeurs plus petites nécessitent moins de textures pour être rendues, ce qui diminue le RAM GPU nécessaire pour afficher un tracé:
pixplot --images " path/to/images/*.jpg " --cell_size 10L'algorithme UMAP est particulièrement sensible à trois hyperpareètes:
--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
Le créateur d'Umap, Leland McInnes, a écrit un aperçu utile de ces hyperparamètres. Pour spécifier la valeur pour un ou plusieurs de ces hyperparamètres lors de la construction d'un graphique, on peut utiliser les drapeaux ci-dessus, par exemple:
pixplot --images " path/to/images/*.jpg " --n_neighbors 2S'il est installé et disponible, PixPlot utilise le regroupement spatial basé sur la densité hiérarchique des applications avec du bruit, un raffinement de l'algorithme DBSCAN précédent, pour trouver des points chauds dans la visualisation. Vous pourriez être intéressé à consulter cette explication du fonctionnement du HDBSCAN.
Astuce: si vous utilisez HDBSCAN et constatez que PixPlot crée trop peu (ou un seul) «hotspots automatiques», essayez d'abaisser le --min_cluster_size à partir de sa valeur par défaut de 20. Cela se produit souvent avec des ensembles de données plus petits (moins de quelques milliers.)
Si HDBSCAN n'est pas disponible, Pixplot retombera à la mise en œuvre de Kmeans par Scikit-Learn.
Si vous avez des métadonnées associées à chacune de vos images, vous pouvez transmettre ces métadonnées lors de l'exécution du script de traitement des données. Cela permettra à la visionneuse PIXPLOT d'afficher les métadonnées associées à une image lorsqu'un utilisateur clique sur cette image.
Pour spécifier les métadonnées de votre collection d'images, vous pouvez ajouter --metadata=path/to/metadata.csv à la commande que vous utilisez pour appeler le script de traitement. Par exemple, vous pouvez spécifier:
pixplot --images " path/to/images/*.jpg " --metadata " path/to/metadata.csv "Les métadonnées doivent être dans un fichier de valeur séparée par des virgules, doivent contenir une ligne pour chaque image d'entrée et contenir des en-têtes spécifiant l'ordre de colonne. Voici un exemple de fichier de métadonnées:
| nom de fichier | catégorie | balises | description | permalien | Année |
|---|---|---|---|---|---|
| abeilles.jpg | jaune | A | B | C | genoux d'abeilles | https: // ... | 1776 |
| Cats.jpg | dangereux | b | c | d | pyjama des chats | https: // ... | 1972 |
Les étiquettes de colonne suivantes sont acceptées:
| Colonne | Description |
|---|---|
| nom de fichier | le nom de fichier de l'image |
| catégorie | Une étiquette catégorique pour l'image |
| balises | Une liste délimitée par des tuyaux de balises catégoriques pour l'image |
| description | Une description en texte en clair du contenu de l'image |
| permalien | un lien vers l'image hébergée sur un autre domaine |
| année | un horodatage d'un an pour l'image (devrait être un entier) |
| étiquette | Une étiquette catégorique utilisée pour la projection UMAP supervisée |
| lat | la position latitudinale de l'image |
| GNL | La position longitudinale de l'image |
Si vous souhaitez traiter des images hébergées sur un serveur IIIF, vous pouvez spécifier une liste de nouvelles images dirigée de Newline IIIF comme l'argument --images . Par exemple, les éléments suivants pourraient être enregistrés en tant que manifest.txt :
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 On pourrait alors spécifier ces images en entrée en exécutant pixplot --images manifest.txt --n_clusters 2
| Lien | Nombre d'images | Informations sur la collection | Parcourir les images | Télécharger pour pixplot |
|---|---|---|---|---|
| Plot de journal: 1910-1912 | 24 026 | Collection George Grantham Bain | Nouvelles dans les années 1910 | Images, métadonnées |
| Bildefelt i oslo | 31 097 | oslobilder | Recherche avancée, 1860-1924 | Images, métadonnées |
Le DHLAB tient à remercier Cyril diagnostic et Nicolas Barradeau, les développeurs principaux des spectaculaires d'expériences sur les arts Google Tsne, pour avoir généreusement partagé des idées sur les techniques d'optimisation utilisées dans ce spectateur, et Lillianna Marie pour nommer ce spectateur Pixplot.