2 pontos por GN⁺ 2023-11-14 | 1 comentários | Compartilhar no WhatsApp

Introdução

  • Os usuários do Canva podem expressar sua criatividade e adicionar ilustrações personalizadas aos designs por meio da nova ferramenta Draw.
  • Como até linhas ou formas simples desenhadas pelo usuário com mouse ou trackpad podem sair imprecisas, foi desenvolvido o recurso Shape Assist para compensar isso.
  • O Shape Assist usa aprendizado de máquina (ML) para transformar rabiscos instáveis em gráficos vetoriais suaves.

Considerações de design

  • Ao desenvolver o recurso, a latência de classificação foi tratada como prioridade máxima para garantir uma experiência do usuário rápida e precisa.
  • A solução foi implantada no navegador para oferecer reconhecimento de formas e suporte ao desenho em tempo real.
  • Não exige conexão com a internet, garantindo acessibilidade mesmo em situações offline.

Coleta de dados

  • A base de um modelo de ML bem-sucedido está na coleta de dados, e foram coletados dados de desenhos de usuários diversos.
  • As linhas desenhadas pelos usuários foram registradas como sequências de coordenadas x e y, formando um conjunto de dados com vários estilos e variações.
  • Ao registrar os dados com coordenadas, garantiu-se flexibilidade para pré-processamento e aplicação de várias técnicas de aumento de dados.

Projeto e treinamento do modelo

  • Foi projetado um modelo de ML para rodar no lado do cliente sem impactar negativamente o tempo de carregamento da página.
  • Em vez de CNNs, foram feitos experimentos com RNNs que usam coordenadas diretamente, para minimizar o tamanho do modelo.
  • Diversos hiperparâmetros foram ajustados para identificar as propriedades ideais do modelo.
  • Considerando as diferenças na velocidade de desenho dos usuários, foi fixado o número de pontos que representam cada forma.
  • Uma versão modificada do algoritmo Ramer-Douglas-Peucker (RDP) foi usada para reduzir o número de pontos, preservando detalhes importantes.

Considerações de implantação

  • Como o modelo é pequeno e computacionalmente simples, todo o processamento pode ser executado dentro da aplicação cliente.
  • O recurso funciona totalmente offline, sem necessidade de conexão com o servidor.

Arquitetura do modelo

  • O modelo é composto por uma estrutura com uma camada LSTM e Gemm (camada densa ou totalmente conectada).
  • O modelo tem cerca de 250 quilobytes e foi implementado diretamente em Typescript para rodar no cliente.

Substituição de formas

  • Depois de determinar a forma desenhada pelo usuário, foi usada uma abordagem de template matching para alinhar com precisão a representação vetorial e o caminho do desenho do usuário.

Conclusão

  • Há grande entusiasmo em compartilhar o recurso Shape Assist com o mundo, com a expectativa de que tanto designers profissionais quanto quem apenas faz rabiscos possam aproveitá-lo.

Opinião do GN⁺

O ponto mais importante deste artigo é que o Canva desenvolveu o recurso Shape Assist, que usa um modelo de aprendizado de máquina executado no navegador para reconhecer com precisão as formas desenhadas pelos usuários e convertê-las em gráficos vetoriais suaves. Esse recurso oferece feedback imediato ao usuário e pode ser usado mesmo sem conexão com a internet, aumentando a acessibilidade. O que torna este artigo interessante é mostrar como o avanço da tecnologia pode tornar o trabalho criativo mais fácil e agradável.

1 comentários

 
GN⁺ 2023-11-14
Comentários do Hacker News
  • Em vez de RNN, o algoritmo "$1 unistroke recognizer" é uma solução simples e elegante para o problema

    • O "$1 unistroke recognizer" funciona bem mesmo quando treinado com uma única amostra
    • Pode ser facilmente integrado a projetos para tornar a interface de usuário mais familiar
    • Funciona de forma confiável para entrada de texto no estilo "Graffiti", sendo eficaz quando cada letra é um único traço
    • O artigo original foi escrito de forma fácil de entender e agradável de ler
    • Link do projeto unistroke recognizer
  • Engenheiros da ASML, TSMC e outras empresas criam chips menores e mais potentes disparando lasers em chumbo líquido todos os dias para gerar luz com comprimentos de onda extremamente curtos

    • Desenvolvedores web se esforçam todos os dias para que o próprio trabalho não chame atenção
  • Mesmo ao desenhar uma linha reta com mouse ou trackpad, é fácil acabar com uma forma irregular

    • Fica a dúvida se realmente há necessidade de desenhar formas com o mouse no Canva
    • O Miro já teve no passado um recurso que convertia uma estrela desenhada com o mouse em uma estrela geometricamente precisa
    • Ao criar diagramas, usam-se formas prontas; ao criar ícones, usa-se um programa dedicado
    • Quando se desenha de fato, usa-se um tablet
    • A tecnologia em si é legal, mas há dúvidas sobre os casos de uso reais
  • Interesse na biblioteca que o Canva usa para desenhar linhas

  • Surpresa com o recurso do Macromedia Flash, de mais de 20 anos atrás, que suavizava curvas ao desenhar curvas à mão livre

    • Era uma função impressionante considerando a capacidade de processamento limitada da época
  • Menção ao desenvolvimento de uma variação do algoritmo Ramer-Douglas-Peucker (RDP)

    • O RDP é um algoritmo de simplificação de curvas que reduz o número de pontos em uma curva enquanto preserva detalhes importantes
    • Compartilhado um caso da aplicação de Douglas-Peucker ao trabalho de Picasso na Strange Loop de 2018
    • Link do projeto Picasso's Bulls
  • Uma versão de "rabisco trêmulo" com aparência desenhada à mão pode ser mais atraente do que gráficos vetoriais suaves

    • Em um mundo de perfeição artificial, existe um apelo por obras genuinamente desenhadas à mão
  • Ao implementar esse tipo de recurso, o ideal é permitir que o usuário escolha e que fique claro quando ele está ativado

    • Pode ser frustrante quando a ferramenta tenta ser inteligente demais e não é perfeita
  • Treinou-se um modelo para reconhecer 9 formas predefinidas

    • Ao treinar um modelo, seria melhor criar uma função geral de suavização/assistência para desenhar formas
    • Isso pode permitir obter formas únicas com um estilo mais "analógico"
  • Seria bom se esse recurso fosse open source

    • Recentemente têm surgido modelos de tamanho pequeno (este modelo tem 250kb)
    • Há expectativa por um momento em que se possa voltar a usar modelos pequenos para aplicações úteis