A visão é responsável por extrair informações importantes sobre o estado do jogo, como posição da bola e dos jogadores, bem como limites do campo e do gol.
De modo a identificar os robôs presentes no campo, é utilizado um padrão de cores nas camisas dos robôs. As cores azul e amarelo identificam os times, enquanto que as cores verde, vermelho, rosa, etc, identificam os jogadores. Outra cor importante é a laranja, que identifica a bola.
Inicialmente, para identificar uma cor no campo é necessário definir um sistema, que pode ser RGB, CMYK, HSV, etc. A utilização de um desses sistemas em conjunto com a limiarização permite restringir as imagens obtidas pela câmera numa região de interesse, facilitando os próximos passos de processamento. No exemplo abaixo é mostrada a extração da cor laranja:
Em seguida, é necessário tratar as imagens geradas pela limiarização, de modo a remover ruídos presentes. Isso é feito pelos processos de abertura e fechamento, mostrados respectivamente nas figuras abaixo:
Em geral, é vantajoso trabalhar com um único ponto que represente a figura. Nesse caso utilizamos a estimação do centro de massa para essa representação. De modo a identificar esses pontos médios, utilizamos o método k-means que realiza o agrupamento de pontos próximos no espaço. Um exemplo de centro encontrado é mostrado abaixo:
Para conhecer mais a fundo os desafios de cada uma dessas etapas e as soluções encontradas, confira o link para o nosso GITHUB abaixo: