Idiomas: English · Nederlands · Deutsch · Español · Français · Italiano · Português · Papiamentu · Frysk

Índice / Artigos / Reconhecimento de poses humanas em tempo real com visão computacional

Reconhecimento de poses humanas em tempo real com visão computacional

TensorFlow e PoseNet numa transmissão de vídeo

Publicado
Atualizado
(criado )
Escrito por
Willem L. Middelkoop
Temas
arte · dados · experiência · jogo · pessoas · sensores · trabalho
Versão humana deste artigo
https://willem.com/pt/2019-12-01_reconhecimento-de-poses-humanas-em-tempo-real-com-visao-computacional/
English
Realtime human pose recognition through computer vision
Nederlands
Realtime herkenning van menselijke houdingen via computervisie
Deutsch
Echtzeit-Menschliche Posenerkennung durch Computer Vision
Español
Reconocimiento de postura humana en tiempo real a través de visión por computadora
Français
Reconnaissance de la posture humaine en temps réel grâce à la vision par ordinateur
Italiano
Riconoscimento della posa umana in tempo reale con la computer vision
Papiamentu
Rekonosimentu di postura humano na tempu real via vishon di kompiuter
Frysk
Realtime werkenning fan minsklike hâldingen mei kompjûterfisy
Idiomas
Traduzido do original em inglês por um modelo de linguagem em duas passagens (tradução e revisão) com um glossário e um corretor ortográfico; ainda não revisto por um falante nativo.

Resumo

Para um projeto novo e emocionante, tenho andado a experimentar visão computacional com o TensorFlow. Queria conseguir detetar poses humanas em tempo real, para comandar projeções de vídeo interativas e jogos. Chegou a altura de mergulhar no mundo da aprendizagem automática, dos tensores e da visão computacional!

Texto completo

Visão computacional

O que me entusiasma a sério é o campo científico interdisciplinar da visão computacional, que estuda como é que os computadores podem chegar a uma compreensão de alto nível a partir de imagens digitais e transmissões de vídeo. Inclui desafios como adquirir, processar e analisar imagens digitais. No fim, o que queres é que o computador tome decisões com base na compreensão que tem do (complexo) mundo à sua volta.

TensorFlow

O TensorFlow é uma plataforma de código aberto, de ponta a ponta, para aprendizagem automática, desenvolvida originalmente pela Google. Assenta no trabalho científico de vários investigadores e tornou-se entretanto um ecossistema estável e robusto de ferramentas, bibliotecas e recursos da comunidade.

O nome «TensorFlow» vem da ideia de um «fluxo de tensores». Um tensor descreve-se melhor como uma «coisa», algo que o computador reconheceu ou tenta analisar. Tecnicamente, um tensor é uma matriz multidimensional de valores numéricos. Isto permite ao computador comparar «coisas» diferentes e ver até que ponto as suas características se parecem (ou não).

O grande desafio do processamento de imagem em tempo real é reduzir a complexidade da imagem a pedaços processáveis, que se possam exprimir como tensores. Normalmente isto implica muitos passos no algoritmo de visão computacional. Passos como reconhecer uma forma, recortar essa forma, redimensioná-la, tirar-lhe a cor, comparar os contornos, etc. Os tensores fluem por estes passos, de «não analisado» a «reconhecido», daí o nome TensorFlow.

Poder de processamento

O melhor da aprendizagem automática moderna com o TensorFlow é que, em geral, não precisas de hardware (muito) caro para obter resultados. Isto acontece porque o «trabalho pesado» é feito ao treinar os modelos de aprendizagem automática, que podes imaginar mais ou menos como «tabelas de referência». Estes modelos são criados a partir da análise de conjuntos de dados conhecidos, em que o computador recebe a «resposta» e determina as características do objeto. Treinar modelos exige tempo, poder de processamento e dados de treino.

Dados de treino

A Google fez algo verdadeiramente inteligente: distribuiu o treino dos seus modelos de aprendizagem automática por todos nós. Sim, incluindo-te a ti!

Recaptcha

É bem possível que já tenhas encontrado o «reCAPTCHA» ou «Recaptcha». Um desafio visual que tens de completar quando compras algo online ou tentas registar-te nalgum sítio. Este desafio protege os donos de lojas online e de sites contra (spam)bots. O objetivo é distinguir humanos de robôs. Fá-lo ao mostrar aos humanos imagens (complexas) e ao pedir-lhes que identifiquem objetos nelas. Como sinais de trânsito, passadeiras, carros, etc. A Google usa este feedback humano para treinar os seus modelos.

ReCaptcha: há anos que andas a treinar a IA da Google!
ReCaptcha: há anos que andas a treinar a IA da Google!

O melhor é que muitas das descobertas da Google são tornadas públicas, e há imensos projetos de código aberto interessantes que nos permitem, a nós, programadores simples, fazer coisas incríveis com aprendizagem automática.

Reconhecimento de poses humanas com o PoseNet

Um dos modelos de aprendizagem automática disponíveis é o PoseNet. É um modelo de visão que serve para estimar a pose de uma pessoa numa imagem ou num vídeo. Fá-lo ao determinar onde estão as articulações principais do corpo, como os cotovelos, as mãos, as ancas, os joelhos, os tornozelos, etc.

Eu e o mini-eu a ser reconhecidos pelo modelo PoseNet
Eu e o mini-eu a ser reconhecidos pelo modelo PoseNet

Algoritmo Single Shot MultiBox Detector (SSD)

O Single Shot MultiBox Detector é um algoritmo popular para detetar objetos em imagens e transmissões de vídeo. É popular por causa da sua velocidade. O princípio é relativamente simples de perceber: o algoritmo tenta reduzir a complexidade da imagem o mais depressa possível e só faz análises profundas em mapas de características encolhidos e simplificados.

Esta abordagem funciona melhor quando queres detetar objetos grandes, porque se destacam depressa: geram características de alto nível suficientes para fazer previsões logo no início do algoritmo. Isto é ótimo para a deteção de corpos, que é um dos primeiros passos quando queres determinar poses humanas (primeiro vês onde está uma pessoa, depois qual é a pose dela).

Algoritmo MobileNet-SSD (imagem: hey-yahei.cn)
Algoritmo MobileNet-SSD (imagem: hey-yahei.cn)

O reconhecimento de imagens e de pessoas é uma área em que o pessoal da China é muito bom, por várias razões. Os algoritmos deles funcionam bem em hardware relativamente fraco. Isto permite que a visão computacional funcione bem em todo o tipo de dispositivos, em tempo real!

Casos de utilização fixes

Poder detetar poses em tempo real abre a porta a todo o tipo de coisas fixes. Tu podes, literalmente, tornar-te o comando do jogo ou o input de uma instalação de arte interativa!

Espelho PomPom

Com 928 pompons esféricos de pelo sintético, esta instalação de arte de Daniel Rozin é fantástica. A escultura é controlada por centenas de motores que formam silhuetas de quem a observa, através de visão computacional.

Espelho de pompons sintéticos PomPom, de Daniel Rozin
Espelho de pompons sintéticos PomPom, de Daniel Rozin

Transformar-te num pássaro: The Treachery of Sanctuary

Permitir que as pessoas se percam por um momento só foi possível juntando disciplinas diferentes. Esta incrível instalação de arte interativa dirigida por Chris Milk é um tríptico gigante que leva os visitantes por várias fases do voo, com recurso à visão computacional.

Transformar pessoas em pássaros com visão computacional
Transformar pessoas em pássaros com visão computacional

Conclusão

Trabalhar em projetos criativos e experimentais é um privilégio incrível, e é isso que torna o meu trabalho tão entusiasmante.

Com montanhas de dados cada vez maiores, dar sentido a tudo isto de forma digital e autónoma é um grande desafio para o futuro: e é um desafio no qual tenho muita vontade de trabalhar!

Formatos legíveis por máquinas desta página