이 저장소에는 유사한 이미지가 함께 클러스터링되는 2 차원 투영에서 수만 개의 이미지를 시각화하는 데 사용할 수있는 코드가 포함되어 있습니다. 이미지 분석은 Tensorflow의 Inception 바인딩을 사용하며 시각화 계층은 사용자 정의 WebGL 뷰어를 사용합니다.
최근 업데이트에 대한 변경 로그를 참조하십시오.

우리는 온라인으로 여러 플랫폼 별 설치 요리 책을 유지합니다.
광범위하게 말하면, 파이썬 종속성을 설치하려면 Anaconda를 설치 한 다음 Python 3.7 런타임으로 콘다 환경을 만드는 것이 좋습니다.
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 에서 사용할 수 있습니다.
플롯을 구축 할 일부 샘플 데이터를 얻으려면 Yale의 Dhlab에서 준비한 일부 데이터를 자유롭게 사용하십시오.
pip install image_datasets그런 다음 파이썬 스크립트에서 :
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는 이러한 초반 미터에 대한 유용한 개요를 작성했습니다. 줄거리를 구축 할 때 이러한 하이퍼 파라미터 중 하나 이상의 값을 지정하려면 위의 플래그를 사용할 수 있습니다.
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 "메타 데이터는 쉼표로 구분 된 값 파일에 있어야하며 각 입력 이미지에 대해 하나의 행을 포함해야하며 열 순서를 지정하는 헤더가 포함되어야합니다. 다음은 샘플 메타 데이터 파일입니다.
| 파일 이름 | 범주 | 태그 | 설명 | 퍼머 링크 | 년도 |
|---|---|---|---|---|---|
| 꿀벌 .jpg | 노란색 | a | b | c | 꿀벌의 무릎 | https://... | 1776 |
| cats.jpg | 위험한 | b | c | d | 고양이의 잠옷 | https://... | 1972 |
다음 열 레이블이 허용됩니다.
| 열 | 설명 |
|---|---|
| 파일 이름 | 이미지의 파일 이름 |
| 범주 | 이미지의 범주형 레이블 |
| 태그 | 이미지에 대한 범주 형 태그 목록 |
| 설명 | 이미지의 내용에 대한 일반 텍스트 설명 |
| 퍼머 링크 | 다른 도메인에서 호스팅 된 이미지에 대한 링크 |
| 년도 | 이미지의 1 년 타임 스탬프 (정수 여야합니다) |
| 상표 | 감독 된 UMAP 프로젝션에 사용되는 범주 형 레이블 |
| LAT | 이미지의 위도 위치 |
| lng | 이미지의 종 방향 위치 |
IIIF 서버에서 호스팅 된 이미지를 처리하려면 --images 인수로 Newline 지정 IIIF 이미지를 표시 할 수 있습니다. 예를 들어, 다음은 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 | George Grantham Bain 컬렉션 | 1910 년대 뉴스 | 이미지, 메타 데이터 |
| Bildefelt I Oslo | 31,097 | 오슬로 빌더 | 고급 검색, 1860-1924 | 이미지, 메타 데이터 |
Dhlab 은이 시청자에 사용 된 최적화 기술에 대한 아이디어를 관대하게 공유 한 화려한 Google Arts Experiments Tsne Viewer의 리드 개발자 인 Cyril Diagne과 Nicolas Barradeau에게 감사의 말씀을 전합니다.