El conjunto de datos Quick Draw es una colección de 50 millones de dibujos en 345 categorías, aportados por los jugadores del juego Quick, Draw!. Los dibujos se capturaron como vectores con marca de tiempo, etiquetados con metadatos que incluían lo que se le pidió al jugador que dibujara y en qué país se encontraba. Puede explorar los dibujos reconocidos en quickdraw.withgoogle.com/data.
Los compartimos aquí para que desarrolladores, investigadores y artistas los exploren, estudien y aprendan de ellos. Si crea algo con este conjunto de datos, háganoslo saber por correo electrónico o en AI Experiments.
También publicamos un tutorial y un modelo para entrenar su propio clasificador de dibujo en tensorflow.org.
Tenga en cuenta que, si bien esta colección de dibujos fue moderada individualmente, aún puede contener contenido inapropiado.
El conjunto de datos moderados sin procesar
Conjunto de datos preprocesados
obtener los datos
Proyectos que utilizan el conjunto de datos.
Cambios
Licencia
Los datos sin procesar están disponibles como archivos ndjson
separados por categoría, en el siguiente formato:
Llave | Tipo | Descripción |
---|---|---|
id_clave | Entero sin signo de 64 bits | Un identificador único en todos los dibujos. |
palabra | cadena | Categoría que se le pidió al jugador que dibujara. |
conocido | booleano | Si la palabra fue reconocida por el juego. |
marca de tiempo | fecha y hora | Cuando se creó el dibujo. |
código de país | cadena | Un código de país de dos letras (ISO 3166-1 alfa-2) de donde se encontraba el reproductor. |
dibujo | cadena | Una matriz JSON que representa el dibujo vectorial. |
Cada línea contiene un dibujo. A continuación se muestra un ejemplo de un solo dibujo:
{ "key_id":"5891796615823360","word":"nariz","countrycode":"AE","timestamp":"2017-03-01 20:41:36.70725 UTC","recognized":true,"drawing":[[[129,128,129,129,130,130,131,132,132,133,133,133,133,...]]] }
El formato de la matriz de dibujo es el siguiente:
[ [ // Primer trazo [x0, x1, x2, x3, ...],[y0, y1, y2, y3, ...],[t0, t1, t2, t3, ...] ], [ // Segundo trazo[x0, x1, x2, x3, ...],[y0, y1, y2, y3, ...],[t0, t1, t2, t3, ...] ], ... // Trazos adicionales]
Donde x
son las coordenadas de y
píxeles y t
es el tiempo en milisegundos desde el primer punto. x
tienen valores reales y
mientras que t
es un número entero. Los dibujos sin formato pueden tener cuadros delimitadores y una cantidad de puntos muy diferentes debido a los diferentes dispositivos utilizados para la visualización y la entrada.
Hemos preprocesado y dividido el conjunto de datos en diferentes archivos y formatos para que su descarga y exploración sea más rápida y sencilla.
.ndjson
) Hemos simplificado los vectores, eliminado la información de tiempo y posicionado y escalado los datos en una región de 256x256. Los datos se exportan en formato ndjson
con los mismos metadatos que el formato sin formato. El proceso de simplificación fue:
Alinee el dibujo con la esquina superior izquierda para que tenga valores mínimos de 0.
Escale uniformemente el dibujo, para tener un valor máximo de 255.
Vuelva a muestrear todos los trazos con un espacio de 1 píxel.
Simplifique todos los trazos utilizando el algoritmo de Ramer-Douglas-Peucker con un valor épsilon de 2,0.
Hay un ejemplo en ejemplos/nodejs/simplified-parser.js que muestra cómo leer archivos ndjson en NodeJS.
Además, el documento de ejemplos/nodejs/ndjson.md detalla un conjunto de herramientas de línea de comandos que pueden ayudar a explorar subconjuntos de estos archivos bastante grandes.
.bin
)Los dibujos y metadatos simplificados también están disponibles en un formato binario personalizado para una compresión y carga eficientes.
Hay un ejemplo en ejemplos/binary_file_parser.py que muestra cómo cargar los archivos binarios en Python.
También hay un ejemplo en ejemplos/nodejs/binary-parser.js que muestra cómo leer los archivos binarios en NodeJS.
.npy
) Todos los dibujos simplificados se han representado en un mapa de bits en escala de grises de 28x28 en formato numpy .npy
. Los archivos se pueden cargar con np.load()
. Estas imágenes se generaron a partir de datos simplificados, pero están alineadas con el centro del cuadro delimitador del dibujo en lugar de con la esquina superior izquierda. Consulte aquí el fragmento de código utilizado para la generación.
El conjunto de datos está disponible en Google Cloud Storage como archivos ndjson
separados por categoría. Consulte la lista de archivos en la nube o lea más sobre cómo acceder a conjuntos de datos públicos mediante otros métodos. Como ejemplo, para descargar fácilmente todos los dibujos simplificados, una forma es ejecutar el comando gsutil -m cp 'gs://quickdraw_dataset/full/simplified/*.ndjson' .
Archivos sin formato ( .ndjson
)
Archivos de dibujos simplificados ( .ndjson
)
Archivos binarios ( .bin
)
Numerosos archivos de mapa de bits ( .npy
)
Estos datos también se utilizan para entrenar el modelo Sketch-RNN. Una implementación de TensorFlow de código abierto de este modelo está disponible en el Proyecto Magenta (enlace al repositorio de GitHub). También puede leer más sobre este modelo en esta publicación del blog de Google Research. Los datos se almacenan en archivos comprimidos .npz
, en un formato adecuado para entradas en una red neuronal recurrente.
En este conjunto de datos, se seleccionaron aleatoriamente 75 000 muestras (70 000 de entrenamiento, 2,5 000 de validación, 2,5 000 de prueba) de cada categoría, procesadas con simplificación de línea RDP con un parámetro epsilon
de 2,0. Cada categoría se almacenará en su propio archivo .npz
, por ejemplo, cat.npz
.
También proporcionamos los datos completos para cada categoría, si desea utilizar más de 70.000 ejemplos de formación. Estos se almacenan con las extensiones .full.npz
.
Numerosos archivos .npz
Nota: Para Python3, cargar los archivos npz
usando np.load(data_filepath, encoding='latin1', allow_pickle=True)
Las instrucciones para convertir archivos Raw ndjson
a este formato npz
están disponibles en este cuaderno.
A continuación se muestran algunos proyectos y experimentos que utilizan o presentan el conjunto de datos de formas interesantes. ¿Tienes algo que agregar? ¡Háganos saber!
Proyectos creativos y artísticos.
Collages de letras de Deborah Schmidt
Experimento de seguimiento facial de Neil Mendoza
Rostros de la humanidad por Tortue
Infinite QuickDraw por kynd.info
Fallo de encendido.io por Matthew Collyer
Dibuja esto por Dan Macnish
Discurso garabateado de Xinyue Yang
Ilustración de Ling Chen
Soñar con ovejas eléctricas por el Dr. Ernesto Díaz-Avilés
Análisis de datos
¿Cómo se dibuja un círculo? por cuarzo
Forma Fluens de Mauro Martino, Hendrik Strobelt y Owen Cornec
¿Cuánto tiempo lleva dibujar (rápidamente) un perro? por Jim Vallandingham
Encontrar dibujos de flamencos malos con redes neuronales recurrentes de Colin Morris
Facetas ¡Sumérgete x rápido, dibuja! por la Iniciativa de Investigación People + AI (PAIR), Google
Explorando y visualizando un conjunto de datos global abierto por Google Research
Aprendizaje automático para visualización: charla/artículo de Ian Johnson
Papeles
Una representación neuronal de bocetos de David Ha, Douglas Eck, ICLR 2018. código
Sketchmate: hash profundo para la recuperación de bocetos humanos a escala de un millón por Peng Xu et al., CVPR 2018.
Transformador multigráfico para reconocimiento de bocetos a mano alzada por Peng Xu, Chaitanya K Joshi, Xavier Bresson, ArXiv 2019. código
Aprendizaje de representación profundo y autosupervisado para bocetos a mano alzada por Peng Xu et al., ArXiv 2020. código
SketchTransfer: una nueva tarea desafiante para explorar la invariancia de detalles y las abstracciones aprendidas por redes profundas por Alex Lamb, Sherjil Ozair, Vikas Verma, David Ha, WACV 2020.
Aprendizaje profundo para bocetos a mano alzada: una encuesta realizada por Peng Xu, ArXiv 2020.
Un novedoso modelo de reconocimiento de bocetos basado en redes neuronales convolucionales por Abdullah Talha Kabakus, 2.º Congreso internacional sobre interacción, optimización y aplicaciones robóticas persona-computadora, págs. 101-106, 2020.
Guías y tutoriales
Tutorial de TensorFlow para clasificación de dibujos
Entrene un modelo en tf.keras con Colab y ejecútelo en el navegador con TensorFlow.js de Zaid Alyafeai
Código y herramientas
¡Rápido, dibuja! API de datos y componentes de polímero por Nick Jonas
Rápido, dibujo para procesamiento por Cody Ben Lewis
¡Rápido, dibuja! modelo de predicción de Keisuke Irie
La herramienta de muestra aleatoria de Learning stats es increíble
Ejemplo de renderizado SVG en d3.js por Ian Johnson (lea más sobre el proceso aquí)
Clasificación Sketch-RNN por Payal Bajaj
Quickdraw.js por Thomas Wagenaar
~ Doodler ~ por Krishna Sri Somepalli
API de Python de dibujo rápido por Martin O'Hanlon
RealTime QuickDraw de Akshay Bahadur
Procesamiento DataFlow por Guillem Xercavins
Complemento QuickDrawGH Rhino por James Dalessandro
QuickDrawBattle de Andri Soone
25 de mayo de 2017: conjunto de datos Sketch-RNN QuickDraw actualizado, conjuntos complementarios .full.npz
creados.
Estos datos están disponibles por Google, Inc. bajo la licencia Creative Commons Attribution 4.0 International.
La siguiente tabla es necesaria para que este conjunto de datos sea indexado por motores de búsqueda como Google Dataset Search.
propiedad | valor | ||||||
---|---|---|---|---|---|---|---|
nombre | The Quick, Draw! Dataset | ||||||
nombrealternativo | Quick Draw Dataset | ||||||
nombrealternativo | quickdraw-dataset | ||||||
URL | https://github.com/googlecreativelab/quickdraw-dataset | ||||||
igual que | https://github.com/googlecreativelab/quickdraw-dataset | ||||||
descripción | 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) | ||||||
proveedor |
| ||||||
licencia |
|