O conjunto de dados Quick Draw é uma coleção de 50 milhões de desenhos em 345 categorias, contribuídos por jogadores do jogo Quick, Draw!. Os desenhos foram capturados como vetores com carimbo de data e hora, marcados com metadados, incluindo o que o jogador foi solicitado a desenhar e em que país o jogador estava localizado. Você pode navegar pelos desenhos reconhecidos em quickdraw.withgoogle.com/data.
Estamos compartilhando-os aqui para desenvolvedores, pesquisadores e artistas explorarem, estudarem e aprenderem. Se você criar algo com este conjunto de dados, informe-nos por e-mail ou em AI Experiments.
Também lançamos um tutorial e um modelo para treinar seu próprio classificador de desenho em tensorflow.org.
Tenha em mente que embora esta coleção de desenhos tenha sido moderada individualmente, ela ainda pode conter conteúdo impróprio.
O conjunto de dados bruto moderado
Conjunto de dados pré-processado
Obtenha os dados
Projetos usando o conjunto de dados
Mudanças
Licença
Os dados brutos estão disponíveis como arquivos ndjson
separados por categoria, no seguinte formato:
Chave | Tipo | Descrição |
---|---|---|
chave_id | Inteiro não assinado de 64 bits | Um identificador exclusivo em todos os desenhos. |
palavra | corda | Categoria que o jogador foi solicitado a sortear. |
reconhecido | booleano | Se a palavra foi reconhecida pelo jogo. |
carimbo de data/hora | datahora | Quando o desenho foi criado. |
código do país | corda | Um código de país de duas letras (ISO 3166-1 alpha-2) de onde o jogador estava localizado. |
desenho | corda | Uma matriz JSON representando o desenho vetorial |
Cada linha contém um desenho. Aqui está um exemplo de um único desenho:
{ "key_id":"5891796615823360","word":"nose","countrycode":"AE","timestamp":"2017-03-01 20:41:36.70725 UTC","reconhecido":true,"desenho":[[[129,128,129,129,130,130,131,132,132,133,133,133,133,...]]] }
O formato da matriz de desenho é o seguinte:
[ [ // Primeiro traço [x0, x1, x2, x3, ...],[y0, y1, y2, y3, ...],[t0, t1, t2, t3, ...] ], [ // Segundo golpe[x0, x1, x2, x3, ...],[y0, y1, y2, y3, ...],[t0, t1, t2, t3, ...] ], ... // Golpes adicionais]
Onde x
são as coordenadas do pixel t
y
o tempo em milissegundos desde o primeiro ponto. x
e y
têm valor real, enquanto t
é um número inteiro. Os desenhos brutos podem ter caixas delimitadoras e números de pontos muito diferentes devido aos diferentes dispositivos usados para exibição e entrada.
Pré-processamos e dividimos o conjunto de dados em diferentes arquivos e formatos para torná-lo mais rápido e fácil de baixar e explorar.
.ndjson
) Simplificamos os vetores, removemos as informações de tempo e posicionamos e dimensionamos os dados em uma região de 256x256. Os dados são exportados no formato ndjson
com os mesmos metadados do formato bruto. O processo de simplificação foi:
Alinhe o desenho ao canto superior esquerdo, para ter valores mínimos de 0.
Dimensione uniformemente o desenho, para ter um valor máximo de 255.
Faça uma nova amostra de todos os traços com um espaçamento de 1 pixel.
Simplifique todos os traços usando o algoritmo Ramer – Douglas – Peucker com um valor épsilon de 2,0.
Há um exemplo em exemplos/nodejs/simplified-parser.js mostrando como ler arquivos ndjson no NodeJS.
Além disso, o documento exemplos/nodejs/ndjson.md detalha um conjunto de ferramentas de linha de comando que podem ajudar a explorar subconjuntos desses arquivos bastante grandes.
.bin
)Os desenhos e metadados simplificados também estão disponíveis em formato binário personalizado para compactação e carregamento eficientes.
Há um exemplo em samples/binary_file_parser.py mostrando como carregar os arquivos binários em Python.
Há também um exemplo em exemplos/nodejs/binary-parser.js mostrando como ler os arquivos binários no NodeJS.
.npy
) Todos os desenhos simplificados foram renderizados em um bitmap em escala de cinza 28x28 no formato numpy .npy
. Os arquivos podem ser carregados com np.load()
. Essas imagens foram geradas a partir de dados simplificados, mas estão alinhadas ao centro da caixa delimitadora do desenho, e não ao canto superior esquerdo. Veja aqui o trecho de código usado para geração.
O conjunto de dados está disponível no Google Cloud Storage como arquivos ndjson
separados por categoria. Veja a lista de arquivos na nuvem ou leia mais sobre como acessar conjuntos de dados públicos usando outros métodos. Por exemplo, para baixar facilmente todos os desenhos simplificados, uma maneira é executar o comando gsutil -m cp 'gs://quickdraw_dataset/full/simplified/*.ndjson' .
Arquivos brutos ( .ndjson
)
Arquivos de desenhos simplificados ( .ndjson
)
Arquivos binários ( .bin
)
Arquivos bitmap numpy ( .npy
)
Esses dados também são usados para treinar o modelo Sketch-RNN. Uma implementação de código aberto do TensorFlow deste modelo está disponível no Projeto Magenta (link para o repositório GitHub). Você também pode ler mais sobre esse modelo nesta postagem do blog do Google Research. Os dados são armazenados em arquivos .npz
compactados, em um formato adequado para entradas em uma rede neural recorrente.
Neste conjunto de dados, 75 mil amostras (treinamento de 70 mil, validação de 2,5 mil, teste de 2,5 mil) foram selecionadas aleatoriamente de cada categoria, processadas com simplificação de linha RDP com um parâmetro epsilon
de 2,0. Cada categoria será armazenada em seu próprio arquivo .npz
, por exemplo, cat.npz
.
Também fornecemos os dados completos para cada categoria, se você quiser usar mais de 70 mil exemplos de treinamento. Eles são armazenados com as extensões .full.npz
.
Arquivos numpy .npz
Nota: Para Python3, carregar os arquivos npz
usando np.load(data_filepath, encoding='latin1', allow_pickle=True)
Instruções para converter arquivos Raw ndjson
para este formato npz
estão disponíveis neste notebook.
Aqui estão alguns projetos e experimentos que usam ou apresentam o conjunto de dados de maneiras interessantes. Tem algo a acrescentar? Deixe-nos saber!
Projetos criativos e artísticos
Colagens de cartas de Deborah Schmidt
Experimento de rastreamento facial de Neil Mendoza
Faces da Humanidade por Tortue
QuickDraw infinito por kynd.info
Misfire.io por Matthew Collyer
Desenhe isto por Dan Macnish
Discurso rabiscado de Xinyue Yang
ilustração de Ling Chen
Sonhando com ovelhas elétricas, do Dr. Ernesto Diaz-Aviles
Análises de dados
Como você desenha um círculo? da Quartz
Forma Fluens de Mauro Martino, Hendrik Strobelt e Owen Cornec
Quanto tempo leva para desenhar (rápido) um cachorro? por Jim Vallandingham
Encontrando desenhos ruins de flamingos com redes neurais recorrentes por Colin Morris
Facetas Mergulho x Rápido, Empate! pela People + AI Research Initiative (PAIR), Google
Explorando e visualizando um conjunto de dados global aberto pela Google Research
Aprendizado de máquina para visualização - Palestra / artigo de Ian Johnson
Artigos
Uma representação neural de desenhos de esboço por David Ha, Douglas Eck, ICLR 2018. código
Sketchmate: hashing profundo para recuperação de esboços humanos em escala de um milhão por Peng Xu et al., CVPR 2018.
Transformador multigráfico para reconhecimento de esboço à mão livre por Peng Xu, Chaitanya K Joshi, Xavier Bresson, ArXiv 2019. código
Aprendizagem profunda de representação auto-supervisionada para esboço à mão livre por Peng Xu et al., ArXiv 2020. código
SketchTransfer: uma nova tarefa desafiadora para explorar a invariância de detalhes e as abstrações aprendidas por redes profundas por Alex Lamb, Sherjil Ozair, Vikas Verma, David Ha, WACV 2020.
Aprendizado profundo para esboço à mão livre: uma pesquisa de Peng Xu, ArXiv 2020.
Um novo modelo de reconhecimento de esboço baseado em redes neurais convolucionais por Abdullah Talha Kabakus, 2º Congresso Internacional sobre Interação Humano-Computador, Otimização e Aplicações Robóticas, pp.
Guias e tutoriais
Tutorial do TensorFlow para classificação de desenhos
Treine um modelo em tf.keras com Colab e execute-o no navegador com TensorFlow.js de Zaid Alyafeai
Código e ferramentas
Rápido, desenhe! Componente de polímero e API de dados por Nick Jonas
Rápido, desenhe para processamento por Cody Ben Lewis
Rápido, desenhe! modelo de previsão de Keisuke Irie
A ferramenta de amostra aleatória da Learning Statistics é incrível
Renderização SVG no exemplo d3.js por Ian Johnson (leia mais sobre o processo aqui)
Classificação Sketch-RNN por Payal Bajaj
quickdraw.js por Thomas Wagenaar
~ Doodler ~ por Krishna Sri Somepalli
API Python de desenho rápido por Martin O'Hanlon
RealTime QuickDraw por Akshay Bahadur
Processamento DataFlow por Guillem Xercavins
Plug-in QuickDrawGH Rhino por James Dalessandro
QuickDrawBattle por Andri Soone
25 de maio de 2017: conjunto de dados Sketch-RNN QuickDraw atualizado, conjuntos complementares .full.npz
criados.
Esses dados são disponibilizados pela Google, Inc. sob a licença Creative Commons Attribution 4.0 International.
A tabela a seguir é necessária para que este conjunto de dados seja indexado por mecanismos de pesquisa como o Google Dataset Search.
propriedade | valor | ||||||
---|---|---|---|---|---|---|---|
nome | The Quick, Draw! Dataset | ||||||
nome alternativo | Quick Draw Dataset | ||||||
nome alternativo | quickdraw-dataset | ||||||
url | https://github.com/googlecreativelab/quickdraw-dataset | ||||||
mesmo que | https://github.com/googlecreativelab/quickdraw-dataset | ||||||
descrição | 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) | ||||||
provedor |
| ||||||
licença |
|