このリポジトリには、同様の画像が一緒にクラスター化される2次元投影で数万の画像を視覚化するために使用できるコードが含まれています。画像分析では、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が最終的に作成するWebサイトには、WebGL対応ブラウザーが必要です。
WebGL対応のブラウザとプロセスの画像でいっぱいのディレクトリがある場合は、上記の依存関係をインストールして実行して、視聴者のデータを準備できます。
pixplot --images " path/to/images/*.jpg "このプロセスの結果を確認するには、実行してWebサーバーを開始できます。
# for python 3.x
python -m http.server 5000
# for python 2.x
python -m SimpleHTTPServer 5000視覚化は、 http://localhost:5000/outputで利用できます。
プロットを構築するためのいくつかのサンプルデータを取得するには、Yaleの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アルゴリズムは、3つのハイパーセメーターに特に敏感です。
--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は、これらのハイパーパラメーターの有益な概要を書きました。プロットを構築するときにこれらのハイパーパラメーターの1つ以上の値を指定するには、上記のフラグを使用する場合があります。
pixplot --images " path/to/images/*.jpg " --n_neighbors 2インストールして利用可能な場合、PixPlotは、以前のDBSCANアルゴリズムの改良であるノイズ付きアプリケーションの階層密度ベースの空間クラスタリングを使用して、視覚化のホットスポットを見つけます。 HDBSCANの仕組みについてこの説明に相談することに興味があるかもしれません。
ヒント:HDBSCANを使用していて、PIXPLOTが「自動ホットスポット」が少なすぎる(または1つだけ)作成されていることがわかった場合は、20のデフォルトから--min_cluster_sizeを下げてみてください。
HDBSCANが利用できない場合、PixPlotはScikit-LearnのKmeansの実装に戻ります。
各画像に関連付けられているメタデータがある場合は、データ処理スクリプトを実行するときにそのメタデータを渡すことができます。そうすることで、ユーザーがその画像をクリックすると、Pixplot Viewerが画像に関連付けられたメタデータを表示できます。
画像コレクションのメタデータを指定するには、処理スクリプトを呼び出すために使用するコマンドに--metadata=path/to/metadata.csvを追加できます。たとえば、指定する場合があります。
pixplot --images " path/to/images/*.jpg " --metadata " path/to/metadata.csv "メタデータは、コンマ区切りの値ファイルで、入力画像ごとに1つの行を含める必要があり、列の順序を指定するヘッダーを含める必要があります。これがサンプルメタデータファイルです。
| ファイル名 | カテゴリ | タグ | 説明 | パーマリンク | 年 |
|---|---|---|---|---|---|
| bees.jpg | 黄色 | a | b | c | ミツバチの膝 | https:// ... | 1776 |
| cats.jpg | 危険な | b | c | d | 猫のパジャマ | https:// ... | 1972年 |
次の列ラベルが受け入れられます。
| カラム | 説明 |
|---|---|
| ファイル名 | 画像のファイル名 |
| カテゴリ | 画像のカテゴリラベル |
| タグ | 画像のカテゴリタグのパイプ削除リスト |
| 説明 | 画像の内容のプレーンテキストの説明 |
| パーマリンク | 別のドメインでホストされている画像へのリンク |
| 年 | 画像の年間タイムスタンプ(整数である必要があります) |
| ラベル | 監視されたUMAP投影に使用されるカテゴリラベル |
| ラット | 画像の緯度の位置 |
| lng | 画像の縦方向の位置 |
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 | オスロビルダー | 高度な検索、1860-1924 | 画像、メタデータ |
DHLABは、この視聴者で使用されている最適化技術に関するアイデアをgeneしみなく共有してくれた壮大なGoogle Arts Experiments TSNE Viewerのリード開発者であるCyril DiagneとNicolas Barradeauに感謝します。