Quick Draw 데이터세트는 Quick, Draw! 게임 플레이어가 제공한 345개 카테고리의 5천만 장의 그림 모음입니다. 그림은 타임스탬프가 있는 벡터로 캡처되었으며 플레이어가 무엇을 그리도록 요청받았는지, 플레이어가 어느 국가에 있는지를 포함한 메타데이터가 태그되었습니다. Quickdraw.withgoogle.com/data에서 인식된 그림을 찾아볼 수 있습니다.
우리는 개발자, 연구원, 예술가가 탐색하고, 연구하고, 배울 수 있도록 여기에서 이를 공유하고 있습니다. 이 데이터 세트로 무언가를 만들면 이메일이나 AI 실험을 통해 알려주십시오.
우리는 또한 tensorflow.org에서 자신만의 그림 분류기를 훈련하기 위한 튜토리얼과 모델을 출시했습니다.
이 그림 컬렉션은 개별적으로 조정되었지만 여전히 부적절한 콘텐츠가 포함될 수 있다는 점을 명심하세요.
원시 조정 데이터세트
전처리된 데이터 세트
데이터 가져오기
데이터 세트를 사용하는 프로젝트
변경 사항
특허
원시 데이터는 다음 형식의 범주별로 구분된 ndjson
파일로 제공됩니다.
열쇠 | 유형 | 설명 |
---|---|---|
key_id | 64비트 부호 없는 정수 | 모든 도면의 고유 식별자입니다. |
단어 | 끈 | 플레이어에게 추첨하라는 메시지가 표시된 카테고리입니다. |
인식됨 | 부울 | 게임에서 단어를 인식했는지 여부입니다. |
타임스탬프 | 날짜시간 | 도면이 생성된 시기입니다. |
국가번호 | 끈 | 플레이어가 위치한 지역의 2자리 국가 코드(ISO 3166-1 alpha-2)입니다. |
그림 | 끈 | 벡터 드로잉을 나타내는 JSON 배열 |
각 줄에는 하나의 그림이 포함됩니다. 다음은 단일 그림의 예입니다.
{ "key_id":"5891796615823360","word":"nose","countrycode":"AE","timestamp":"2017-03-01 20:41:36.70725 UTC","인식됨":true,"그리기":[[[129,128,129,129,130,130,131,132,132,133,133,133,133,...]]] }
도면 배열의 형식은 다음과 같습니다.
[ [ // 첫 번째 스트로크 [x0, x1, x2, x3, ...],[y0, y1, y2, y3, ...],[t0, t1, t2, t3, ...] ], [ // 두 번째 스트로크[x0, x1, x2, x3, ...],[y0, y1, y2, y3, ...],[t0, t1, t2, t3, ...] ], ... // 추가 스트로크]
여기서 x
와 y
는 픽셀 좌표이고 t
첫 번째 지점 이후의 시간(밀리초)입니다. x
와 y
실수 값이고 t
정수입니다. 원시 도면에는 표시 및 입력에 사용되는 장치가 다르기 때문에 경계 상자와 점 수가 크게 다를 수 있습니다.
우리는 더 빠르고 쉽게 다운로드하고 탐색할 수 있도록 데이터세트를 전처리하고 다양한 파일과 형식으로 분할했습니다.
.ndjson
) 벡터를 단순화하고 타이밍 정보를 제거했으며 데이터를 256x256 영역에 배치하고 크기를 조정했습니다. 데이터는 원시 형식과 동일한 메타데이터를 사용하여 ndjson
형식으로 내보내집니다. 단순화 과정은 다음과 같습니다.
최소값이 0이 되도록 도면을 왼쪽 위 모서리에 정렬합니다.
최대값이 255가 되도록 도면의 배율을 균일하게 조정합니다.
1픽셀 간격으로 모든 스트로크를 리샘플링합니다.
엡실론 값이 2.0인 Ramer–Douglas–Peucker 알고리즘을 사용하여 모든 스트로크를 단순화합니다.
example/nodejs/simplified-parser.js에는 NodeJS에서 ndjson 파일을 읽는 방법을 보여주는 예제가 있습니다.
또한 example/nodejs/ndjson.md 문서에는 이러한 대용량 파일의 하위 집합을 탐색하는 데 도움이 될 수 있는 명령줄 도구 집합이 자세히 설명되어 있습니다.
.bin
)단순화된 도면과 메타데이터는 효율적인 압축 및 로딩을 위해 맞춤형 바이너리 형식으로도 제공됩니다.
예제/binary_file_parser.py에는 Python에서 바이너리 파일을 로드하는 방법을 보여주는 예제가 있습니다.
NodeJS에서 바이너리 파일을 읽는 방법을 보여주는 example/nodejs/binary-parser.js에도 예제가 있습니다.
.npy
) 모든 단순화된 도면은 numpy .npy
형식의 28x28 회색조 비트맵으로 렌더링되었습니다. 파일은 np.load()
로 로드할 수 있습니다. 이러한 이미지는 단순화된 데이터에서 생성되었지만 왼쪽 상단 모서리가 아닌 도면 경계 상자의 중심에 정렬됩니다. 생성에 사용되는 코드 조각은 여기를 참조하세요.
데이터 세트는 카테고리별로 구분된 ndjson
파일로 Google Cloud Storage에서 사용할 수 있습니다. Cloud의 파일 목록을 참조하거나 다른 방법을 사용하여 공개 데이터세트에 액세스하는 방법에 대해 자세히 알아보세요. 예를 들어 모든 단순화된 도면을 쉽게 다운로드하려면 gsutil -m cp 'gs://quickdraw_dataset/full/simplified/*.ndjson' .
원시 파일( .ndjson
)
단순화된 도면 파일( .ndjson
)
바이너리 파일( .bin
)
Numpy 비트맵 파일( .npy
)
이 데이터는 Sketch-RNN 모델 교육에도 사용됩니다. 이 모델의 오픈 소스인 TensorFlow 구현은 Magenta 프로젝트에서 사용할 수 있습니다(GitHub 저장소 링크). 이 Google Research 블로그 게시물에서 이 모델에 대한 자세한 내용을 읽을 수도 있습니다. 데이터는 순환 신경망에 대한 입력에 적합한 형식으로 압축된 .npz
파일에 저장됩니다.
이 데이터 세트에서는 75K 샘플(70K 훈련, 2.5K 검증, 2.5K 테스트)이 각 범주에서 무작위로 선택되었으며 epsilon
매개변수 2.0을 사용하여 RDP 라인 단순화로 처리되었습니다. 각 카테고리는 자체 .npz
파일(예: cat.npz
에 저장됩니다.
또한 70,000개 이상의 훈련 예제를 사용하려는 경우 각 카테고리에 대한 전체 데이터를 제공했습니다. 이는 .full.npz
확장자로 저장됩니다.
Numpy .npz 파일
참고: Python3의 경우 np.load(data_filepath, encoding='latin1', allow_pickle=True)
사용하여 npz
파일을 로드합니다.
Raw ndjson
파일을 이 npz
형식으로 변환하는 방법에 대한 지침은 이 노트북에서 확인할 수 있습니다.
다음은 흥미로운 방식으로 데이터 세트를 사용하거나 특징으로 하는 일부 프로젝트와 실험입니다. 추가할 내용이 있나요? 우리에게 알려주세요!
창의적이고 예술적인 프로젝트
Deborah Schmidt의 편지 콜라주
Neil Mendoza의 얼굴 추적 실험
Tortue의 인류의 얼굴
kynd.info의 무한 QuickDraw
Matthew Collyer의 Misfire.io
Dan Macnish의 그림 그리기
Xinyue Yang의 낙서 연설
그림: Ling Chen
Ernesto Diaz-Aviles 박사의 전기양의 꿈
데이터 분석
원은 어떻게 그리나요? 석영으로
Mauro Martino, Hendrik Strobelt 및 Owen Cornec의 Forma Fluens
개를 (빠르게) 그리는 데 얼마나 걸리나요? 짐 발랜딩햄 지음
Colin Morris의 순환 신경망을 사용하여 잘못된 플라밍고 그림 찾기
패싯 다이브 x 퀵, 드로우! People + AI Research Initiative(PAIR), Google
Google Research의 개방형 글로벌 데이터 세트 탐색 및 시각화
시각화를 위한 기계 학습 - Ian Johnson의 강연/기사
서류
David Ha, Douglas Eck, ICLR 2018의 스케치 드로잉의 신경 표현. 코드
Sketchmate: Peng Xu 외의 수백만 규모 인간 스케치 검색을 위한 딥 해싱, CVPR 2018.
Peng Xu, Chaitanya K Joshi, Xavier Bresson, ArXiv 2019의 프리핸드 스케치 인식을 위한 다중 그래프 변환기. 코드
Peng Xu et al., ArXiv 2020의 프리핸드 스케치를 위한 심층 자기 지도 표현 학습. 코드
SketchTransfer: Alex Lamb, Sherjil Ozair, Vikas Verma, David Ha, WACV 2020의 세부 불변성 및 딥 네트워크에서 학습한 추상화를 탐색하기 위한 도전적인 새로운 작업입니다.
프리핸드 스케치를 위한 딥 러닝: Peng Xu의 설문조사, ArXiv 2020.
Abdullah Talha Kabakus의 컨볼루셔널 신경망을 기반으로 한 새로운 스케치 인식 모델, 인간-컴퓨터 상호 작용, 최적화 및 로봇 응용에 관한 제2차 국제 회의, pp. 101-106, 2020.
가이드 및 튜토리얼
도면 분류를 위한 TensorFlow 튜토리얼
Colab을 사용하여 tf.keras에서 모델을 훈련하고 Zaid Alyafeai의 TensorFlow.js를 사용하여 브라우저에서 실행
코드 및 도구
빨리, 그려라! Nick Jonas의 폴리머 구성 요소 및 데이터 API
Cody Ben Lewis의 처리를 위한 Quick, Draw
빨리, 그려라! Keisuke Irie의 예측 모델
학습 통계의 무작위 표본 도구는 훌륭합니다.
Ian Johnson의 d3.js 예제에서 SVG 렌더링(여기에서 프로세스에 대한 자세한 내용을 읽어보세요)
Payal Bajaj의 Sketch-RNN 분류
Quickdraw.js 작성자: Thomas Wagenaar
~ Doodler ~ 작성자: Krishna Sri Somepalli
Martin O'Hanlon의 Quickdraw Python API
Akshay Bahadur의 실시간 QuickDraw
Guillem Xercavins의 DataFlow 처리
James Dalessandro의 QuickDrawGH Rhino 플러그인
QuickDrawBattle 작성자: Andri Soone
2017년 5월 25일: Sketch-RNN QuickDraw 데이터 세트가 업데이트되고 .full.npz
보완 세트가 생성되었습니다.
이 데이터는 Creative Commons Attribution 4.0 International 라이선스에 따라 Google, Inc.에서 제공됩니다.
Google 데이터 세트 검색과 같은 검색 엔진에서 이 데이터 세트를 색인화하려면 다음 표가 필요합니다.
재산 | 값 | ||||||
---|---|---|---|---|---|---|---|
이름 | The Quick, Draw! Dataset | ||||||
대체 이름 | Quick Draw Dataset | ||||||
대체 이름 | quickdraw-dataset | ||||||
URL | https://github.com/googlecreativelab/quickdraw-dataset | ||||||
동일 | https://github.com/googlecreativelab/quickdraw-dataset | ||||||
설명 | The Quick Draw Dataset is a collection of 50 million drawings across 345 categories, contributed by players of the game "Quick, Draw!". The drawings were captured as timestamped vectors, tagged with metadata including what the player was asked to draw and in which country the player was located.n n Example drawings: ![preview](https://raw.githubusercontent.com/googlecreativelab/quickdraw-dataset/master/preview.jpg) | ||||||
공급자 |
| ||||||
특허 |
|