Há dez anos, os pesquisadores achavam que fazer um computador distinguir um gato de um cachorro seria quase impossível. Hoje, os sistemas de...
Há dez anos, os pesquisadores achavam que fazer um computador distinguir um gato de um cachorro seria quase impossível. Hoje, os sistemas de visão computacional fazem isso com uma precisão superior a 99%. Como? Joseph Redmon trabalha com o sistema YOLO (You Only Look Once), um método de código aberto para detecção de objetos que pode identificar objetos em imagens e vídeos - de zebras a sinais de PARE - com velocidade extremamente rápida. Em uma extraordinária demonstração ao vivo, Redmon mostra este importante passo adiante para aplicações como carros autodirigíveis, robótica e até detecção de câncer.
Há dez anos, os pesquisadores da visão computacional achavam que fazer um computador distinguir um cão de um gato seria quase impossível, mesmo com o avanço significativo da inteligência artificial. Agora podemos fazer isso com precisão superior a 99%. Chamamos de classificação de imagem: fornecer ao computador uma imagem, atribuir a ela um rótulo, e os computadores também reconhecem milhares de outras categorias.
Sou aluno da Universidade de Washington, e trabalho no projeto "Darknet", uma estrutura de rede neural para preparar e testar modelos de visão computacional. Vamos ver o que o Darknet acha desta imagem que temos. Quando executamos nosso classificador nela, não sabemos apenas se é um cão ou um gato, obtemos realmente a raça específica. É o nível de detalhe que temos agora. E está correto: meu cachorro é mesmo um malamute.
Temos feito avanços incríveis na classificação de imagens, mas o que acontece quando executamos o classificador em uma imagem como esta? Bem... Vemos que o classificador retorna um prognóstico bastante semelhante. Está certo: há um malamute na imagem. Mas só com este rótulo, não sabemos realmente muito a respeito do que está acontecendo na imagem. Precisamos de algo mais convincente. Trabalho com um assunto chamado detecção de objetos, em que analisamos a imagem e tentamos achar todos os objetos, colocamos molduras ao redor deles e dizemos o que eles são. Isso é o que acontece quando executamos um detector nesta imagem.
Com este tipo de resultado, podemos fazer muito mais com a visão computacional. Vemos que o detector identifica que há um gato e um cachorro. Sabe a posição relativa e o tamanho deles. Pode até identificar algumas informações extras, como um livro ao fundo. Se quiserem construir um sistema atualizado de visão computacional, como um veículo autodirigível ou um sistema robótico, este é o tipo de informação que vocês precisam. Precisam de algo para poder interagir com o mundo físico. Quando comecei a detectar objetos, demorava 20 segundos para processar uma única imagem. Para ter uma ideia da importância da velocidade nesta área, aqui está um exemplo de um detector de objetos que leva dois segundos para processar uma imagem. É dez vezes mais rápido que o detector de 20 segundos por imagem. Você podem ver que, quando são feitos os prognósticos, tudo mudou, o que não seria muito útil para uma aplicação.
Se aumentarmos a velocidade em dez vezes, teremos um detector executando a cinco quadros por segundo. Isso é muito melhor, mas, por exemplo, se houver algum movimento significativo, eu não gostaria de um sistema como esse dirigindo meu carro.
Este é nosso sistema de detecção rodando em tempo real em meu laptop. Ele acompanha suavemente meu movimento ao redor do quadro, e é potente para uma grande variedade de mudanças de tamanho, pose, para frente, para trás. Isso é ótimo. É o que realmente precisamos se formos construir sistemas atualizados de visão computacional.
(Aplausos)
Como chegamos lá? No passado, os sistemas de detecção de objetos pegavam uma imagem como esta, dividiam-na em várias partes e depois executavam um classificador em cada uma delas. As pontuações altas para esse classificador eram consideradas detecções na imagem. Mas isso envolvia rodar um classificador milhares de vezes em uma imagem, milhares de avaliações de rede neural para fazer a detecção. Em vez disso, preparamos uma única rede para fazer toda a detecção para nós. Ela cria todas as molduras e probabilidades de classe ao mesmo tempo. Com nosso sistema, em vez de analisar uma imagem milhares de vezes para fazer a detecção, olhamos apenas uma vez. Por isso, chamamos de método "YOLO" de detecção de objetos. Com essa velocidade, não estamos limitados somente a imagens; podemos processar vídeos em tempo real. Em vez de ver apenas aquele gato e cachorro, podemos ver o movimento e a interação entre eles.
Este é um detector que desenvolvemos em 80 classes diferentes no conjunto de dados "COCO" da Microsoft. Ele contém todo tipo de coisas, como colher, garfo, tigela, objetos comuns assim. Contém uma variedade de coisas mais exóticas: animais, carros, zebras, girafas. Agora vamos fazer algo divertido. Iremos para a plateia e veremos que tipo de coisas podemos detectar. Alguém quer um bicho de pelúcia? Há alguns ursinhos de pelúcia por aí. Podemos diminuir um pouco nossa tolerância de detecção, para poder encontrar mais de vocês na plateia. Vamos ver se conseguirmos pegar os sinais de PARE. Encontramos algumas mochilas. Vamos ampliar um pouco. Isso é ótimo. Todo o processamento acontece em tempo real no laptop.
É importante lembrar que este é um sistema de detecção de objetos de uso geral. Podemos desenvolver isso para qualquer domínio de imagem. O mesmo código que usamos para encontrar sinais de PARE ou pedestres, bicicletas em um veículo autodirigível, pode ser usado para encontrar células cancerígenas em uma biópsia de tecido. Existem pesquisadores em todo o mundo que já utilizam esta tecnologia para avanços em coisas como medicina, robótica.
(Aplausos)
Mas queríamos tornar a detecção ainda mais acessível e utilizável.
(Aplausos)
Estou realmente animado, pois temos uma solução muito potente para esta questão de visão computacional. Qualquer um pode pegar e construir algo com ele. O restante depende agora de vocês e das pessoas em todo o mundo com acesso a este software. Mal posso esperar para ver o que elas farão com essa tecnologia.
Obrigado.
(Aplausos)
Fonte: TED
[Visto no Brasil Acadêmico]
Há dez anos, os pesquisadores da visão computacional achavam que fazer um computador distinguir um cão de um gato seria quase impossível, mesmo com o avanço significativo da inteligência artificial. Agora podemos fazer isso com precisão superior a 99%. Chamamos de classificação de imagem: fornecer ao computador uma imagem, atribuir a ela um rótulo, e os computadores também reconhecem milhares de outras categorias.
Sou aluno da Universidade de Washington, e trabalho no projeto "Darknet", uma estrutura de rede neural para preparar e testar modelos de visão computacional. Vamos ver o que o Darknet acha desta imagem que temos. Quando executamos nosso classificador nela, não sabemos apenas se é um cão ou um gato, obtemos realmente a raça específica. É o nível de detalhe que temos agora. E está correto: meu cachorro é mesmo um malamute.
Temos feito avanços incríveis na classificação de imagens, mas o que acontece quando executamos o classificador em uma imagem como esta? Bem... Vemos que o classificador retorna um prognóstico bastante semelhante. Está certo: há um malamute na imagem. Mas só com este rótulo, não sabemos realmente muito a respeito do que está acontecendo na imagem. Precisamos de algo mais convincente. Trabalho com um assunto chamado detecção de objetos, em que analisamos a imagem e tentamos achar todos os objetos, colocamos molduras ao redor deles e dizemos o que eles são. Isso é o que acontece quando executamos um detector nesta imagem.
Com este tipo de resultado, podemos fazer muito mais com a visão computacional. Vemos que o detector identifica que há um gato e um cachorro. Sabe a posição relativa e o tamanho deles. Pode até identificar algumas informações extras, como um livro ao fundo. Se quiserem construir um sistema atualizado de visão computacional, como um veículo autodirigível ou um sistema robótico, este é o tipo de informação que vocês precisam. Precisam de algo para poder interagir com o mundo físico. Quando comecei a detectar objetos, demorava 20 segundos para processar uma única imagem. Para ter uma ideia da importância da velocidade nesta área, aqui está um exemplo de um detector de objetos que leva dois segundos para processar uma imagem. É dez vezes mais rápido que o detector de 20 segundos por imagem. Você podem ver que, quando são feitos os prognósticos, tudo mudou, o que não seria muito útil para uma aplicação.
Se aumentarmos a velocidade em dez vezes, teremos um detector executando a cinco quadros por segundo. Isso é muito melhor, mas, por exemplo, se houver algum movimento significativo, eu não gostaria de um sistema como esse dirigindo meu carro.
Este é nosso sistema de detecção rodando em tempo real em meu laptop. Ele acompanha suavemente meu movimento ao redor do quadro, e é potente para uma grande variedade de mudanças de tamanho, pose, para frente, para trás. Isso é ótimo. É o que realmente precisamos se formos construir sistemas atualizados de visão computacional.
(Aplausos)
Em apenas alguns anos, passamos de 20 segundos por imagem a 20 milissegundos, mil vezes mais rápido.
Como chegamos lá? No passado, os sistemas de detecção de objetos pegavam uma imagem como esta, dividiam-na em várias partes e depois executavam um classificador em cada uma delas. As pontuações altas para esse classificador eram consideradas detecções na imagem. Mas isso envolvia rodar um classificador milhares de vezes em uma imagem, milhares de avaliações de rede neural para fazer a detecção. Em vez disso, preparamos uma única rede para fazer toda a detecção para nós. Ela cria todas as molduras e probabilidades de classe ao mesmo tempo. Com nosso sistema, em vez de analisar uma imagem milhares de vezes para fazer a detecção, olhamos apenas uma vez. Por isso, chamamos de método "YOLO" de detecção de objetos. Com essa velocidade, não estamos limitados somente a imagens; podemos processar vídeos em tempo real. Em vez de ver apenas aquele gato e cachorro, podemos ver o movimento e a interação entre eles.
Este é um detector que desenvolvemos em 80 classes diferentes no conjunto de dados "COCO" da Microsoft. Ele contém todo tipo de coisas, como colher, garfo, tigela, objetos comuns assim. Contém uma variedade de coisas mais exóticas: animais, carros, zebras, girafas. Agora vamos fazer algo divertido. Iremos para a plateia e veremos que tipo de coisas podemos detectar. Alguém quer um bicho de pelúcia? Há alguns ursinhos de pelúcia por aí. Podemos diminuir um pouco nossa tolerância de detecção, para poder encontrar mais de vocês na plateia. Vamos ver se conseguirmos pegar os sinais de PARE. Encontramos algumas mochilas. Vamos ampliar um pouco. Isso é ótimo. Todo o processamento acontece em tempo real no laptop.
É importante lembrar que este é um sistema de detecção de objetos de uso geral. Podemos desenvolver isso para qualquer domínio de imagem. O mesmo código que usamos para encontrar sinais de PARE ou pedestres, bicicletas em um veículo autodirigível, pode ser usado para encontrar células cancerígenas em uma biópsia de tecido. Existem pesquisadores em todo o mundo que já utilizam esta tecnologia para avanços em coisas como medicina, robótica.
Esta manhã, li um artigo sobre um recenseamento de animais no Nairobi National Park utilizando o YOLO como parte deste sistema de detecção. Isso porque o Darknet tem o código aberto de domínio público, gratuito para qualquer um usar.
(Aplausos)
Mas queríamos tornar a detecção ainda mais acessível e utilizável.
Então, por meio de uma combinação de otimização de modelo, aproximação e binarização de redes, temos realmente a detecção de objetos sendo executada em um celular.
(Aplausos)
Estou realmente animado, pois temos uma solução muito potente para esta questão de visão computacional. Qualquer um pode pegar e construir algo com ele. O restante depende agora de vocês e das pessoas em todo o mundo com acesso a este software. Mal posso esperar para ver o que elas farão com essa tecnologia.
Obrigado.
(Aplausos)
Fonte: TED
[Visto no Brasil Acadêmico]
Comentários