Pular para o conteúdo

Reconhecimento de imagens: o fim da infância prolongada

O reconhecimento facial tem se tornado cada vez mais comum no nosso dia-a-dia: das ferramentas de detecção de rostos do Facebook até a detecção de sorrisos naquela foto marcante da virada do ano, os seus usos no cotidiano são diversos. Entretanto, isto é apenas a ponta do iceberg de um campo conhecido como “reconhecimento de imagens”. Com o objetivo de “ensinar os computadores a enxergarem”, este campo se deparou com diversos problemas nas últimas décadas, mas parece ter finalmente encontrado uma base estável o suficiente para decolar nos próximos anos.

Embora não pareça, o reconhecimento de imagens é uma subárea antiga da computação e tem avançado muito lentamente nas últimas décadas – este é o motivo para nossos computadores e celulares anteriores a 2010 não terem muitas funcionalidades nesse sentido. Os seus impedimentos eram os mais diversos: a complexidade inerente do problema [de reconhecimento de imagens e padrões], a indisponibilidade de uma quantidade grande de imagens para análise, ferramentas ruins, técnicas mal desenvolvidas e principalmente o poder de processamento da época.

Screenshot from 2016-02-07 16-52-26Hoje em dia, com as mais de 400 milhões de fotos enviadas por dia para o Facebook, ferramentas recheadas de funcionalidades complexas, processamento massivo paralelo e técnicas cada vez mais avançadas de inteligência artificial, finalmente estamos começando a obter progresso neste campo.

A imagem ao lado mostra uma foto de um bebê segurando uma escova de dentes. Logo abaixo vemos uma descrição em inglês que diz: “um jovem menino segurando um taco de baseball“. Esta descrição, embora errada, foi inteiramente criada por um computador da Universidade de Stanford. Entretanto, esse mesmo computador também gerou a incrível descrição destas imagens:

Da esquerda para a direita: “pequena garota está comendo um pedaço de torta”, “jogador de baseball está arremessando uma bola em um jogo”, “gato preto está sentado em cima de uma mala”.

Os resultados alcançados para as imagens acima são excitantes e realmente históricos, pois em mais de 20 anos de estudo do campo isto nunca havia sido feito. Embora o computador ainda possa confundir tacos de baseball com escovas de dente e doninhas com gatos, hoje temos resultados muito melhores do que sequer poderíamos imaginar há alguns anos atrás.

“As coisas estão andando rápido agora, porque nós estamos tendo os primeiros casos de sucesso de reconhecimento de objetos”, disse Fei-Fei Li, diretora do Laboratório de Visão e também do Laboratório de Inteligência Artificial, ambos da Universidade de Stanford (EUA).

mosaic_sm_imagenet_stanfordUm dos motivos desses primeiros sucessos foi a criação, em 2007, da Image-Net, que é um banco de dados gigantesco com mais de meio bilhão de imagens catalogadas e descritas “a mão” por mais de 50.000 pessoas de quase 150 países diferentes. Ao mesmo tempo que a Image-Net era criada por Fei-Fei, a Microsoft desenvolvia o COCO (“Common Objects in Context” – “Objetos Comuns em Contexto”), que hoje em dia possui mais de 300 mil imagens descritas com 5 tags diferentes (cada imagem).

Hoje em dia, Google, Facebook, Apple e diversas outras empresas gigantes da área possuem projetos similares. Por que as principais empresas do mundo criaram projetos tão grandiosos ao mesmo tempo que parecem ser tão tolos? A justificativa até que é bem simples: a melhor forma que encontramos de reconhecer imagens é imitar seres humanos e para isso precisamos agir/aprender como eles. Se considerarmos o olho humano como uma máquina digital, ele é capaz de capturar imagens a cada 200 milisegundos, o que significa que durante a infância de uma criança milhões de fotografias de formas e padrões já foram armazenados. A ideia é, portanto, obter o maior número possível de imagens com descrições e ensinar ao computador o que essas imagens representam. Basicamente, todo esse banco de dados gigantesco vai ser dado para um computador e obviamente, quanto maior for a amostragem, maior será a facilidade do computador em reconhecer uma imagem corretamente.

Outro avanço importante é que agora os computadores finalmente tem poder computacional o suficiente para utilizar modelos de redes neurais para compreender imagens. Cada neurônio da rede neural é um filtro específico para um pequeno segmento da imagem que computa o quão confiante o computador está sobre esse segmento representar algum objeto conhecido. Os segmentos calculam isso para toda a imagem e repete esse processo através de várias camadas, onde a entrada de cada camada recebe a saída da camada anterior. Rob Fergus, cientista na equipe de Pesquisa de Inteligência Artificial do Facebook, afirmou: “Com um treinamento cuidadoso, essas coisas atualmente funcionam muito bem. (…) Antes desses modelos, os sistemas de reconhecimento de imagem não funcionavam na prática.”

Segundo Fergus, há cinco anos atrás os sistemas de reconhecimento de imagem tinham uma taxa de erro de aproximadamente 26%, hoje ela está estabilizada por volta dos 5%-6%. “Isso não é dizer que computadores podem reconhecer imagens tão bem quanto humanos, mas nessa configuração moderadamente virtual, eles são muito bons”, completou Fergus. Na verdade, computadores poderão eventualmente ultrapassar seres humanos graças a grande disponibilidade de informações que eles tem. Alguns exemplos desse cenário incluem a identificação de raças de cães e ano/modelo de carros, algo que a maioria dos seres humanos não consegue fazer muito bem.

Fergus também revelou uma funcionalidade que o Facebook quer há algum tempo, que é automatizar o entendimento do que uma imagem representa. Com isso, o Facebook deseja saber se coloca ou não uma foto no feed de notícias do usuário, baseando-se no fato da imagem mostrar um amigo do usuário ou não. Também é desejado pelo Facebook que o conteúdo impróprio seja removido antes que qualquer pessoa tenha chance de observar a imagem, ou seja, sem ter que passar por um avaliador de conteúdo do Facebook ou por algoritmos burros de detecção de irregularidades.

facebook-face-recognitionEntre todas estas ideias, existe mais uma bem interessante que o Facebook anda explorando com mais intensidade: a detecção de pessoas mesmo quando o rosto delas não está visível na foto (ou está visível apenas parcialmente). Entretanto, esse reconhecimento de imagens é algo muito mais complexo do que podemos fazer hoje em dia, então é provável que tal funcionalidade demore para surgir na rede social mais famosa do mundo.

Você pode estar se perguntando: e o que acontecerá quando ficarmos bons em reconhecimento de imagens; qual será o próximo passo? Após conseguirmos reconhecer imagens de forma muita precisa, o próximo passo será não apenas identificar o que existe na imagem, mas realmente entender o seu significado. Por exemplo, ao ver a foto de uma criança olhando feliz para um bolo não apenas identificar que há uma criança e um bolo na imagem, mas identificar o sentimento da criança em relação ao outro objeto que está presente (no caso, o bolo). Outro exemplo seria de uma câmera de segurança que está gravando uma criança se afogando em uma piscina – o computador deve entender o que está acontecendo e não apenas dizer que ali há uma criança “brincando” em uma piscina.

Richard Zemel, da Universidade de Toronto, propõe um outro exemplo: imagine uma foto de um barco com pessoas dentro. Os programas de reconhecimento atual que temos podem apenas nos dizer o que constitui a imagem, mas a “inteligência” dele para aí. “O que eles estão fazendo? Eles estão remando? Estão pulando fora do barco? Nós não estamos no ponto de entender o que está se passando nessa imagem. De relance, uma pessoa pode descobrir isso”, afirma Zemel.

Para se aproximar desse futuro ainda remoto, Zemel tem trabalhado para fazer um computador responder questões arbitrárias sobre as imagens, como por exemplo “qual a cor da camiseta na imagem?” e “o que está na frente do sofá? Responder essas perguntas requer uma descrição que vai além de “o que há na imagem e onde?”. Zemel prosseguiu: “Se você realmente entendeu a imagem, então você pode responder uma pergunta sobre ela”. Esse trabalho, entretanto, ainda está em seus estágios iniciais.

Fei-Fei Li, a responsável por criar o Image-Net e as descrições geradas por computador mostradas anteriormente, acredita que uma verdadeira inteligência visual poderá ser utilizada por câmeras em todo o mundo, possibilitando assim carros autônomos mais inteligentes; hospitais com “olhos virtuais” para ajudar a cuidar dos pacientes; aeroportos, domicílios, lojas e indústrias mais seguras; além de muitos outros casos.

Ainda de acordo com Li, a descrição das imagens dada pelos nossos mecanismos de reconhecimento de imagens mais modernos são comparáveis aos de uma criança de 3 anos. De qualquer forma, esta é a primeira vez na história que temos uma base sólida para progredir mais rapidamente em direção à adolescência desse campo cada vez mais importante. “O nível completo, comparável a um adulto com formação de Ensino Médio, ainda vai levar um bom tempo”, concluiu Fei-Fei.

Uma síntese muito boa de como ensinamos computadores a entender imagens é a palestra fantástica da Fei-Fei Li no TED (possui legendas). Se quiser aprender mais sobre reconhecimento de imagens, veja a palestra que está disponível logo abaixo:

Este artigo foi escrito por Fernando Paladini mas contém trechos substânciais traduzidos do artigo “Seeing More Clearly”, da última edição do periódico “Communications of the ACM”, conforme referências abaixo.

Referências

  • Deep Visual-Semantic Alignments for Generating Image Descriptionshttp://cs.stanford.edu/people/karpathy/deepimagesent/
  • Fang, H., Gupta, S., Iandola, F., Srivastava, R.K., Deng, L., Dollár, P., Gao, J., He, X., Mitchell, M., Plattz J.C., Zitnick, C.L., Zweig, G. From Captions to Visual Concepts and Back, Computer Vision and Pattern Recognition, Boston, MA, 2015.
  • How We Teach Computers to Understand Pictures, Fei-Fei Li TED Talk.https://youtu.be/40riCqvRoMs
  • Ren, M., Kiros, R., and Zemel, R. Exploring Models and Data for Image Question Answering, Deep Learning Workshop at the International Conference on Machine Learning, Lille, France, 2015.
  • Seeing More Clearly –
    Neil Savage
    http://cacm.acm.org/magazines/2016/1/195740-seeing-more-clearly/fulltext
  • Vinyals, O., Toshev, A., Bengio, S., and Erhan D. Show and Tell: A Neural Image Caption Generator, Computer Vision and Pattern Recognition, Boston, MA, 2015.
  • Zhang, N., Paluri, M., Taigman, Y., Fergus, R., and Bourdev, L. Beyond Frontal Faces: Improving Person Recognition Using Multiple Cues, Computer Vision and Pattern Recognition, Boston, MA, 2015.
Fernando Paladini

Fernando Paladini

Estudante de Ciência da Computação na UFSC e entusiasta de ideias disruptivas (Bitcoin e impressoras 3D), além de ser um grande defensor do movimento open-source. Apaixonado por ciência, filosofia e livros. Criador do www.bolsonarocristao.com e destruidor da família tradicional brasileira.