该存储库包含的代码可用于在二维投影中可视化成千上万的图像,其中相似的图像聚集在一起。图像分析使用TensorFlow的Inception Bindings,可视化层使用自定义WebGL查看器。
有关最新更新,请参见更改日志。

我们在线维护几个特定于平台的安装食谱。
从广义上讲,要安装Python依赖性,我们建议您安装Anaconda,然后使用Python 3.7运行时创建Conda环境:
conda create --name=3.7 python=3.7
source activate 3.7然后,您可以通过运行来安装依赖项:
bash
pip install https://github.com/yaledhlab/pix-plot/archive/master.zip
Pixplot最终创建的网站需要一个启用WebGL的浏览器。
如果您有一个启用WebGL的浏览器和一个装满图像的目录,则可以通过安装上面运行的依赖项来为查看器准备数据:
pixplot --images " path/to/images/*.jpg "要查看此过程的结果,您可以通过运行:
# for python 3.x
python -m http.server 5000
# for python 2.x
python -m SimpleHTTPServer 5000然后,可视化将在http://localhost:5000/output提供。
要获取一些示例数据来构建图,请随时使用耶鲁大学DHLAB准备的一些数据:
pip install image_datasets然后在Python脚本中:
import image_datasets
image_datasets . oslomini . download () .download()命令将在您当前的工作目录中制作名为datasets的目录。该datasets集目录将包含一个名为“ Oslomini”的子目录,其中包含图像目录和其他带有图像元数据CSV文件的目录。使用该数据,我们接下来可以构建一个图:
pixplot --images " datasets/oslomini/images/* " --metadata " datasets/oslomini/metadata/metadata.csv " 如果您需要绘制超过100,000张图像,但没有一个昂贵的图形卡来可视化巨大的WebGL显示屏,则在构建绘图时可能需要指定较小的“ Cell_Size”参数。 “ cell_size”参数控制了每个图像在ATLAS文件中的大小;较小的值需要更少的纹理渲染,这减少了查看图所需的GPU RAM:
pixplot --images " path/to/images/*.jpg " --cell_size 10UMAP算法对三个超级列表特别敏感:
--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
UMAP的创作者Leland McInnes撰写了对这些超参数的有益概述。要在构建图时指定其中一个或多个超参数的值,可以使用上面的标志,例如:
pixplot --images " path/to/images/*.jpg " --n_neighbors 2如果安装并可用,Pixplot使用噪声的应用程序的应用基于层次密度的空间聚类,对早期的DBSCAN算法进行了细化,以在可视化中找到热点。您可能有兴趣咨询有关HDBSCAN如何工作的解释。
提示:如果您使用的是HDBSCAN并发现PixPlot会产生太少(或只有一个)“自动热点”,请尝试从20的默认值中降低--min_cluster_size 。这通常发生在较小的数据集中(不到几千)。
如果没有HDBSCAN,Pixplot将归结为Scikit-Learn的Kmeans实施。
如果您与每个图像关联的元数据,则在运行数据处理脚本时可以传递该元数据。这样做将使Pixplot查看器在用户单击该图像时显示与图像关联的元数据。
要指定图像集合的元数据,您可以将--metadata=path/to/metadata.csv添加到您用于调用处理脚本的命令中。例如,您可以指定:
pixplot --images " path/to/images/*.jpg " --metadata " path/to/metadata.csv "元数据应位于逗号分隔的值文件中,应包含每个输入图像的一行,并应包含指定列顺序的标头。这是一个示例元数据文件:
| 文件名 | 类别 | 标签 | 描述 | 永久链接 | 年 |
|---|---|---|---|---|---|
| bees.jpg | 黄色的 | a | b | c | 蜜蜂的膝盖 | https:// ... | 1776年 |
| cats.jpg | 危险的 | b | c | d | 猫的睡衣 | https:// ... | 1972 |
接受以下列标签:
| 柱子 | 描述 |
|---|---|
| 文件名 | 图像的文件名 |
| 类别 | 图像的分类标签 |
| 标签 | 图像的分类标签列表 |
| 描述 | 图像内容的明文描述 |
| 永久链接 | 指向托管在另一个域上的图像的链接 |
| 年 | 图像的一年时间戳(应该是整数) |
| 标签 | 用于监督UMAP投影的分类标签 |
| 拉特 | 图像的纬度位置 |
| 液化天然气 | 图像的纵向位置 |
如果您想处理在IIIF服务器上托管的图像,则可以指定IIIF图像的新线列表将其显示为--images参数。例如,以下可以保存为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然后,可以通过运行pixplot --images manifest.txt --n_clusters 2将这些图像指定为输入
| 关联 | 图像计数 | 收集信息 | 浏览图像 | 为Pixplot下载 |
|---|---|---|---|---|
| 新闻图:1910-1912 | 24,026 | 乔治·格兰瑟姆·贝恩收藏 | 1910年代的新闻 | 图像,元数据 |
| Bildefelt I OSLO | 31,097 | Oslobilder | 高级搜索,1860- 1924年 | 图像,元数据 |
DHLAB要感谢Cyril Diagne和壮观的Google Arts实验的首席开发商TSNE Viewer的首席开发商Nicolas Barradeau,以慷慨地分享有关该观看者使用的优化技术的想法,以及Lillianna Marie,以命名该观众Pixplot。