Autor: equipeunball

Coding Dojo de Carnaval

E aí, pessoal! Há quanto tempo, não é?

Não se preocupem, não é porque não demos notícia que a UnBall parou nessas férias. Após a competição utilizamos o feedback coletado para reavaliar o nosso projeto. Embora tenhamos trabalhado duro no último ano, sabemos que sempre há melhorias a serem feitas.

Mas Carnaval é diferente. Afinal, é uma época de muita comemoração aqui no país do futebol. E conosco não é diferente. Por isso, resolvemos inovar. Demos uma pausa no desenvolvimento dos nossos robôs para ver como ficou nosso mais novo curso de Python! Após este intensivo estamos todos fluentes em mais uma linguagem de programação, e podemos afirmar que o nosso curso será um sucesso! Se você não conhece Python ou ainda não sabe do nosso curso radical e da moda não se preocupe, falaremos sobre tudo isso mais para frente.

E aproveitando essa onda de Python, resolvemos trabalhar em uma das nossas maiores necessidades – um simulador para testar a nossa inteligência artificial. Há meses temos percebido que o simulador que usamos não tem atendido às exigências de nosso projeto, então por que não aproveitar este embalo para construir um novo? Esta é uma tarefa importante e complexa, e para solucioná-la com a maior qualidade possível nos aventuramos em uma técnica nova de programação: o Coding Dojo.

Mas o que é “Coding Dojo”? Ainda bem que perguntaram! É uma metologia muito divertida de desenvolvimento de projetos de computação. Com apenas um computador, todos nós opinamos e ajudamos o “piloto”, aquele que está programando no momento. A cada 10 minutos revezamos o piloto, para que todos possam efetivamente “meter a mão na massa”.

photo 3.JPG

Unindo cabeças para fazer o simulador

Ainda temos muito que programar para terminar este simulador, mas estamos bem animados! Agora que passou o Carnaval, o trabalho volta ao normal. Voltamos a trabalhar nos nossos robôs, mas para não deixar o projeto do simulador de lado, estamos nos encontrando algumas vezes na semana e praticando nosso “Coding Dojo”.

Fiquem de olho pois, estaremos os atualizando sobre o andamento do simulador, dos robôs e do nosso curso de Python!

Anúncios

Como foi a CBR/LARC 2015

        Depois de um merecido descanso após a competição estamos de volta para contar um pouco sobre a CBR/LARC. Neste ano voltamos a competir e honramos nosso papel de Jovens Padawans! Dos três jogos realizados conseguimos uma vitória, terminando na 17ª colocação dentre 24 equipes participantes.

        Na nossa jornada por Uberlândia fizemos amizades, conquistamos torcedores fanáticos (principalmente depois de colocarmos nosso goleiro para bater pênalti) e torcemos muito para nossas equipes irmãs: UnBeatables e Droid. Muito obrigado por tornarem esse evento infinitamente melhor!

12281833_1108615159149523_1399324970_o

A torcida vai a loucura!

        O conhecimento que obtivemos foi surpreendente, trocamos experiências com muitas equipes e já estamos cheios de planos para o ano que vem. O mais incrível é que apesar de ser uma competição todas as equipes visam ensinar e aprender cada vez mais. Somos muito gratos a todas as equipes que participaram e conseguiram fazer um evento tão emocionante. Um agradecimento especial a equipe da UFS, Caboclinhos, que torceram freneticamente para nós. Parabéns pelo merecido terceiro lugar!

        Se neste ano o nosso objetivo foi participar, em 2016 vamos para conseguir a melhor classificação possível. Estamos desde já nos preparando para o ano que vem. Será que nossos Neybots trocarão a camisa? Será que teremos novos jogadores? O que podemos adiantar é que o time já está em pré-temporada e passando por uma preparação física intensa!

DSC02499

Vai UnBall!

Estamos em “Berlândia”!

É isso aí. Após muita preparação, finalmente chegamos ao nosso objetivo: CBR 2015! É muita emoção. Muita dedicação, noites em claro, e tudo por este momento. Chegou a hora de colocarmos em prática todo trabalho realizado ao longo do ano. Mas ainda não é hora de descansar! Estamos trabalhando até o último momento para termos o melhor desempenho possível na competição.

photo(1)

Viajamos de ônibus junto com as equipes Droid e UnBeatables, com quem dividimos sala, materiais, experiências e histórias, e sem as quais não teríamos conseguido chegar onde chegamos. Ambas equipes nos deram muito suporte e, por isso, somos muito agradecidos. Inclusive, estamos todos no mesmo hotel. A UnB tomou conta – temos a impressão de que somos os únicos hospedes aqui. Fizemos o cadastramento logo após a chegada no hotel (estamos à 700 metros do local da competição). É oficial: Vamos competir! Temos crachás e tudo.

photo(2)

A competição começa hoje, quarta-feira (28/10), porém os jogos só têm inicio amanhã. Hoje é dia de cadastramento e aquecimento. Para nós, isso significa calibrar nosso kinect para utilizá-lo no campo oficial da competição e seguir com o trabalho duro. A CBR vai até domingo (01/11), quando ocorrerá a final do campeonato.
Fiquem de olho para mais atualizações!

Tamanho de formiga, força de gigante

Robôs existem no mundo físico e, portanto, sucumbem às suas limitações. Podem ser lentos, tropeçar e cair da escada. Entretanto, se depender dos engenheiros mecânicos da Universidade de Stanford, robôs não terão problema algum em carregar peso.

Os pesquisadores apresentaram o MicroTug, um conceito de robôs que utiliza tecnologia adesiva controlável, inspirada na forma de aderência existente em formigas e lagartos. O diferencial é serem extremamente pequenos (na ordem de centímetros) e capazes de carregar até 2000 vezes o seu próprio peso. Caso fossem seres humanos, cada um desses robôs seria capaz de carregar uma baleia azul!

As aplicações são inúmeras: robôs capazes de fazer resgates, como no Nepal, e salvar milhares de vidas; nano-robôs para cirurgias não-intrusivas; robôs para agricultura etc.

Confira o vídeo abaixo e se espante também:

Fontes:

O time está crescendo!

Finalmente chegou a hora de apresentar a mais nova composição da Equipe UnBall. Após uma ótima seleção, quatro novos integrantes juntam-se à equipe. Confiram:


IzaIzabella Gomes

Graduanda em Engenharia Mecatrônica – 6º Semestre

Souza

Gabriel Sousa

Graduando em Engenharia Mecatrônica – 7º Semestre

Vieira

Manoel Vieira

Graduando em Engenharia Mecatrônica – 2º Semestre

Vitor

Vitor Duarte

Graduando em Engenharia Mecatrônica – 5º Semestre

 Parabéns pessoal! É um prazer enorme tê-los conosco. E para comemorar, há jeito melhor do que com muita bagunça e pizza?
WIN_20150401_214714Fiquem de olho para acompanhar os resultados que essa turminha vai trazer.

Uma foto vale por mil palavras. Ou não.

Você deve lembrar-se da nossa postagem sobre os avanços na área de visão computacional, em especial, o algoritmo da Google capaz de reconhecer objetos em cenas arbitrárias, certo? Pois é, a Google é insaciável e divulgou os resultados de mais uma pesquisa relacionada e inovadora, sob o título “A picture is worth a thousand (coherent) words“.

A gigante de Mountain View mostra os avanços das suas pesquisas em descrição natural de imagens, uma área que surge da interação entre processamento de linguagem natural e visão computacional. Seu principal objetivo é conseguir que computadores analisem e compreendam imagens para que, em seguida, consigam gerar frases sucintas que descrevam a cena observada.

Descrição gerada por computador: “Two pizzas sitting on top of a stove top oven”

Descrição gerada por computador: “Two pizzas sitting on top of a stove top oven”

Os avanços mais recentes na área de tradução automática (tal qual o Google Translator) utilizam uma rede neural recorrente para converter uma frase em português, por exemplo, em uma representação vetorial. Em seguida, outra rede neural recorrente é responsável por sintetizar frases a partir de tal vetor em outra língua, como japonês.

A diferença entre o estudo apresentado e os algoritmos anteriores é que, ao invés de combinar um sistema de visão com outro de processamento de linguagem natural, a Google decidiu implementar um único sistema de aprendizado. Para tanto, construiu-se uma rede neural convolucional que analisa imagens e, em sequência, uma rede neural recorrente para gerar as descrições em linguagem natural. As redes foram treinadas para maximizarem, diretamente, as descrições.

Como apresentado abaixo, os resultados são impressionantes. O artigo científico da pesquisa foi divulgado gratuitamente e pode ser acessado por meio deste link.

Algumas frases, corretas e incorretas, descritas automaticamente

Algumas frases, corretas e incorretas, descritas automaticamente

Não deixe de acompanhar as próximas invenções e descobertas em visão computacional, além das interações que irão surgir cada vez mais com outras áreas do conhecimento.

Você conhece o jogo Go?

Go é um jogo de tabuleiro que surgiu na China há mais de 2500 anos e é considerado uma das quatro artes do estudioso chinês, sendo as outras três a música, a caligrafia e a pintura.  Nesse jogo, dois jogadores alternadamente colocam as peças (chamadas pedras)  nas intersecções do tabuleiro. Ganha o jogador que cercar o maior território com suas pedras.

Um dos elementos notáveis do Go é a sua simplicidade. Essencialmente, possui apenas duas regras! Apesar de sua aparente simplicidade, é um jogo que exige muita estratégia. Considerando o tamanho do tabuleiro (19 x 19), o número de jogos possíveis é da ordem de 10^761!!! Bem maior que no xadrez, onde o número de jogos possíveis é da ordem de 10^120.

GoPost2Em 1997, um computador da IBM chamado Deep Blue ganhou do então campeão mundial de xadrez, Garry Kasparov. Dessa forma, muitos acreditam que cientistas da computação serão capazes de criar uma inteligência artificial capaz de ganhar em qualquer jogo. Go, com sua vasta gama de movimentos possíveis a cada turno, continua sendo uma barreira para pesquisadores em inteligência artificial.

Atualmente, existem diversos programas que jogam Go. Mas um em especial entrou pra história: o programa Fuego, criado na Universidade de Alberta, no Canadá, com contribuições de pesquisadores da IBM e outros lugares. Em 22 de agosto de 2009 um computador executando esse programa ganhou, pela primeira vez, de um dos melhores jogadores de Go do mundo. Ainda que tenha sido em um tabuleiro menor do que o oficial, foi um momento histórico. E o mais notável desse programa é que ele não ganhou por possuir mais conhecimento da estratégia do Go, e também não analisava todas as jogadas possíveis a cada turno. Suas decisões eram tomadas com base em escolhas aleatórias e estatística!

Para saber mais sobre como o Fuego foi capaz de ganhar aquele jogo, acesse o artigo completo no site do IEEE Spectrum: http://spectrum.ieee.org/robotics/artificial-intelligence/ais-have-mastered-chess-will-go-be-next

Para saber mais sobre o fantástico jogo Go, confira o link: http://en.wikipedia.org/wiki/Go_(game)#Computers_and_Go

Um bate-papo sobre visão computacional

Como detalhamos em artigo anterior, visão computacional é o conjunto de técnicas que permitem a um computador interpretar uma cena visual. A pergunta é: como um computador consegue enxergar algo?

Quando tiramos uma foto com uma Tekpix (é uma brincadeira, não compre essa câmera), um sensor é responsável em codificar raios luminosos em uma imagem digital, no formato de uma matriz. É como se o computador olhasse para cada pedaço da cena e calculasse, por exemplo, o quão forte as cores vermelha, verde e azul estão em determinado ponto (famoso RGB). Esses números formarão um grande “quadro”, no qual cada unidade é chamada de pixel (picture element), representando o que a câmera enxergou no momento em que a foto foi tirada.

dsa

Representação de imagem em grayscale (escala de cinza). Cada pixel possui a intensidade da cor associada (0 representa preto enquanto 255, branco).

A visão computacional, portanto, lida com algoritmos que, a partir das informações de cor e intensidade dos pixels, consiga extrair informações valiosas da cena em questão. Claramente, essa é uma tarefa extremamente complexa e abrangente, tendo assuntos em comum com várias outras áreas do conhecimento, tal como inteligência artificial, aprendizado estatístico de máquinas (machine learning), processamento de sinais, robótica, estatística, física, matemática, entre outros.

Pode-se definir quatro grandes sub-áreas da visão computacional:

  • Restauração de imagens: visa a remoção de ruídos de uma imagem, como ruídos de sensor, borrões, movimentações etc. É essa área a responsável por salvar a sua foto quando você mexe a câmera na hora H, ou até mesmo restaurar fotos que estejam danificadas.
Foto restaurada utilizando a técnica de inpainting

Foto restaurada utilizando a técnica de inpainting

  • Reconstrução de cenas: busca, a partir de um conjunto de imagens, reconstruir um modelo 3D da cena podendo, inclusive, incorporar informações de cor de textura.
Modelo 3D do Coliseu construído a partir de fotos da internet

Modelo 3D do Coliseu construído a partir de fotos da internet

  • Análise de movimento: possui diversas tarefas, como determinar o tipo de movimentação que ocorreu entre duas ou mais imagens (translação e rotação), rastrear o movimento de objetos (tracking) e calcular o fluxo ótico, isto é, como cada ponto moveu-se entre duas imagens.
Cabeça, mãos e pés sendo rastreados a cada imagem

Cabeça, mãos e pés sendo rastreados a cada imagem

  • Reconhecimento: a sub-área clássica da visão computacional, responsável identificar objetos ou atividades em uma cena, por exemplo, contar a quantidade de pessoas presentes na imagem ou detectar um possível assalto.
Reconhecimento de objetos (pessoa e bicicleta) e de cena (pessoa montada na bicicleta)

Reconhecimento de objetos (pessoa e bicicleta) e de cena (pessoa montada na bicicleta)

Visão computacional é tão complexa que, mesmo após décadas de intensa pesquisa na área, não há algoritmo que consiga interpretar imagens de maneira natural, tal qual pessoas são capazes.

Por essa razão, são muito animadores os resultados dessa pesquisa realizada pela Google. Utilizando técnicas avançadas de sistemas distribuídos e redes neurais, a equipe da Google desenvolveu um algoritmo significativamente superior aos mais atuais e venceu a ILSVRC desse ano, uma competição voltada para visão computacional. O algoritmo conseguiu, inclusive, identificar objetos pequenos e difíceis de reconhecer.

Resultados do algoritmo desenvolvido pela Google

Resultados do algoritmo desenvolvido pela Google

Na UnBall, utilizamos algoritmos de visão computacional para identificar bola, campo e robôs, além de realizar o rastreamento de tais objetos e reconhecer o estado atual do jogo.

Gostou de aprender um pouco mais sobre visão computacional? Fique ligado nos próximos posts da equipe UnBall.

Você sabe o que acontece com seu voto depois da urna?

Sabe aquela caixinha na qual você deposita o seu voto, a urna eletrônica? Já se perguntou o que acontece depois que você aperta “confirma” e vai pra casa? É complicado, especialmente porque a maioria da população não tem conhecimento de programação e eletrônica para saber sequer questionar a confiabilidade da urna… O jeito, então, é torcer para que não haja fraude… ou assistir a esta entrevista com Diego Aranha, ex-professor da UnB e atual professor da UniCamp, onde ele explica um pouco sobre a confiabilidade da urna eletrônica.

Diego explica que realizou testes em cima da urna eletrônica e encontrou diversas falhas de segurança. “As falhas tinham implicação tanto no sigilo do voto como na integridade dos resultados”, diz. Em outras palavras, o software da urna permite a manipulação indevida do resultado da eleição.
O entrevistado propõe uma solução para a questão da integridade dos votos. Através de uma motivação chamada “Você Fiscal”, os eleitores podem tirar uma foto do comprovante de voto, e com isso, ajudar na fiscalização do resultado da eleição. O projeto é explicado com mais detalhes no link abaixo:
http://catarse.me/pt/VoceFiscal