該存儲庫包含的代碼可用於在二維投影中可視化成千上萬的圖像,其中相似的圖像聚集在一起。圖像分析使用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。