60ª Reunião Anual da SBPC




B. Engenharias - 1. Engenharia - 8. Engenharia Elétrica

ESTUDO DE TÉCNICAS DE SEGMENTAÇÃO DE IMAGENS PARA APLICAÇÕES EM ROBÓTICA

Gabriel Matos Araujo1
Eduardo Oliveira Freire1, 2

1. Núcleo de Engenharia Elétrica / UFS
2. Prof. Dr. - Orientador


INTRODUÇÃO:
Acompanhando o crescimento do ramo da robótica, nas últimas décadas os robôs celulares têm recebido grande atenção da comunidade científica. As aplicações deste tipo de tecnologia vão desde detecção de minas terrestres até exploração espacial ou subaquática. A idéia principal reside em retirar complexidade do robô, ou conjunto de robôs (no caso de múltiplos robôs) e transferi-la para uma unidade de processamento externa, como um computador. Sob este aspecto, os dados sensoriais captados no ambiente são transferidos para o computador. Nele as informações são processadas e com base no resultado deste processamento o controlador, programa responsável por controlar o robô, toma as decisões de ação. Através de comunicação sem fio as ações são passadas ao robô, que por sua vez atua no ambiente. Aplicações como estas podem ser encontradas em. Por outro lado, á medida em que a robótica evolui, novas técnicas vão sendo empregadas para melhorar as formas de interação do robô com o ambiente. A eficácia desta interação depende por um lado de como o robô “sente” o ambiente em torno dele e por outro como ele age no mesmo. No campo do “sentido” existem diversos sensores, cuja utilização depende das aplicações em que o uso da robótica está inserido. Contudo, com a melhoria das formas de captação de imagens digitais, dos computadores e das técnicas de processamento de imagens, a visão artificial vem ganhando cada vez mais espaço. Neste contexto, existem dois pontos centrais para obter um sistema de visão artificial robusto. O primeiro deles está relacionado com a aquisição de imagens digitais. Neste caso a robustez depende do hardware aplicado, da resolução da imagem e da resolução temporal da câmera utilizada (taxa de quadros por segundo). O segundo está relacionado com o processamento destas imagens. Neste prisma a robustez depende de técnicas que isolem os objetos de interesse em uma imagem para posterior extração de atributos. O presente trabalho propõe uma técnica adequada para a obtenção da informação sensorial necessária à operação de sistemas de controle servo visual de robôs celulares. São apresentadas aqui técnicas de processamento de imagens para utilização em sistemas baseados em realimentação visual, embora tais técnicas sejam genéricas e possam ser usadas que qualquer outro sistema de visão baseado em detecção por cores. O sensoriamento é então feito por uma câmera do tipo webcam . Assim, uma câmera fixa observa a área de trabalho, o que permite um controle visual direto. Desta forma os cálculos são feitos no plano da imagem, eliminando a necessidade de aplicar transformações para o plano de trabalho. Portanto não é necessária a calibração da câmera. De posse de uma câmera digital do tipo webcam , (câmera digital de baixo custo) e de um computador do tipo PC, o trabalho de implementar um sistema de visão artificial, ou ainda, visão computacional (se tomada pelo ponto de vista da computação), se resume em empregar algoritmos de processamento de imagens capazes de utilizar uma ou algumas características da imagem para delas extrair atributos. No presente caso os atributos são posição e orientação do robô celular e posição dos obstáculos, todos extraídos a partir das características de cor da imagem. Por outro lado o sistema proposto é robusto e de baixo custo computacional, duas característica importantes em sistemas de visão artificial.

METODOLOGIA:
A execução do projeto pode ser dividida em três etapas. A primeira diz respeito à revisão bibliográfica, efetuada de forma intensa durante todo o período de execução do projeto. A segunda está relacionada com a caracterização do problema, determinação das características do sistema de visão e implementação offline de técnicas de segmentação selecionadas a partir da revisão bibliográfica. A terceira foi a implementação do sistema de visão e obtenção dos resultados experimentais. A etapa de revisão bibliográfica foi durante toda a execução do projeto e se deu inicialmente na Internet e logo após foi concentrada em artigos científicos e livros da área de processamento de imagem. Esta revisão serviu como base para a caracterização do problema e seleção das técnicas de processamento de imagens que são atualmente aplicáveis em visão computacional. A segunda etapa foi iniciada com a criação de um banco de dados contendo imagens de aplicações típicas visão artificial para robôs celulares. A partir da análise destas imagens os problemas relacionados com estas foram observados e as características do sistema de visão foram decididas com base nestes problemas. As técnicas de processamento de imagens foram então selecionadas de forma a atender as expectativas tanto do ponto de vista do problema quanto dos pré-requisitos custo e robustez. As técnicas selecionadas foram então testadas através de uma implementação offline . Com isso, diversas fotos foram obtidas, englobando grande parte dos tipos de dificuldades pelo qual o sistema de visão a ser constituído deve passar. O processamento desta forma é feito com o auxílio de um sistema algébrico computacional de acesso livre (open source): o SciLab em sua versão 4.1, rodando um toolbox para processamento de imagens chamado SIP. No fim desta segunda etapa, o tempo que restou para o término do primeiro semestre foi dedicado a três atividades. A primeira foi a redação do relatório parcial. A seguinte foi a preparação do primeiro seminário de iniciação científica, que foi apresentado à comunidade no dia 26 de janeiro de 2007 no laboratório de informática do núcleo de engenharia elétrica da UFS, o NEL, com o título “Introdução ao Processamento de Imagem Digital”. A última foi a redação de um artigo científico sobre os primeiros resultados com relação à segmentação baseada em cores (relacionado com o sistema de visão para robôs celulares com controle baseado em realimentação visual). Este artigo foi submetido para publicação nos anais do SBAI 2007 (Simpósio Brasileiro de Automação Inteligente) e aceito. O segundo semestre foi iniciado com a preparação e apresentação o segundo seminário, intitulado “modelo de visão artificial para sistemas de controle baseados em realimentação visual” apresentado no dia 13 de abril de 2007, também no laboratório de Informática do NEL. O restante do tempo foi dedicado à terceira etapa, ou seja, à implementação do sistema de visão propriamente dito. Tal sistema foi desenvolvido em C++ utilizando as bibliotecas de processamento de imagens gratuitas da Intel (OpenCV) . O sistema é capaz de efetuar a detecção automática, sem manipulação da cena e em tempo real, das posições do robô e do obstáculo bem como determinar a orientação do robô através das características de cor das imagens. O sistema de visão artificial proposto é computacionalmente leve e robusto na extração de características das imagens através da cor. O método consiste na combinação de técnicas de processamento de imagens, que são agrupadas em visão artificial de níveis baixo e médio. O baixo custo computacional do sistema é dado pela utilização de técnicas de processamento de imagens com baixo custo computacional, como limiarização e operações lógicas e aritméticas. Já a robustez é obtida pela imunidade ao ruído e à iluminação não uniforme, dadas respectivamente pela metodologia utilizada e pela representação de cores no modelo HSI. O sistema implementado segue a seguinte metodologia. Primeiramente há a conversão do modelo de cores RGB para o HSI. Em seguida os canais S, I são limiarizados com o intuito de eliminar o ruído luminoso e o proveniente da instabilidade do canal do canal H. O canal H por sua vez é submetido a três limiarizações multiníveis, onde cada uma delas seleciona um grupo de pixels com valores pertencentes a um intervalo correspondente a uma determinada cor. Em seguida as imagens resultantes do processo de segmentação são utilizadas para compor as imagens resultantes através de operações lógicas e aritméticas. Por fim, a partir destas últimas são determinados os parâmetros a serem passados ao controlador. Os algoritmos desenvolvidos foram testados em imagens de ambientes que reproduzem os principais problemas encontrados, como imagem com ruído e iluminação não uniforme. Não houve manipulação da cena a fim de garantir a robustez do sistema. Os hardwares utilizados foram câmeras webcam e um computador de baixo custo. Diversas marcas de câmera foram experimentadas. São elas: Vcom PD 612, a Logitech QuickCam Express , a Eazonics ez-307, clone 11123 e a Sony cybershot s40. Para ilustrar a aplicabilidade do sistema em controle servo visual de robôs celulares, um dos objetos das imagens apresentadas nos teste do sistema é um robô celular que segue os padrões da FIRA na categoria MiroSot. O robô possui duas listras coloridas, uma vermelha e a outra verde, na parte superior (para indicação da orientação). O outro objeto é o obstáculo, representado pela cor azul.

RESULTADOS:
Após certa etapa da revisão bibliográfica, foi percebido que apenas técnicas de segmentação não forneceriam a robustez desejada no sistema a ser implementado. Foi decidido então utilizar o grande número de possibilidades que o processamento de imagens como um todo poderia oferecer. O primeiro fruto desta revisão foi o primeiro seminário, que apresentou diversos conceitos relativos ao processamento de imagens. Em um segundo momento, diversas imagens do robô foram capturadas com o intuito de entender a problemática e da posterior escolha de métodos de processamento que pudessem ser adaptáveis ao sistema de visão em robótica. Nestas imagens o robô é constituído pelas cores primárias verde e vermelho, para facilitar a identificação e determinação de sua orientação. Embora o obstáculo seja representado no momento por azul, ele pode possuir qualquer cor que não as do robô e do fundo. Através de uma análise destas imagens, foi possível compor a problemática. As imagens apresentam fundo heterogêneo, ruídos e iluminação não uniforme. Com isso, foi possível perceber que o sistema deve ser insensível ao ruído, à iluminação não uniforme e capaz de descartar fundos heterogêneos, identificando objetos por cor e ao mesmo tempo ser rápido o suficiente para aplicações de tempo real. Com isso diversas técnicas de processamento de imagens podem ser utilizadas para sobrepujar estas dificuldades. A primeira técnica diz respeito ao modelo de cores utilizado. Os sistemas de cores mais adequados para segmentação são aqueles em que suas componentes estão tão descorrelacionadas quanto possível. Estudos comparativos de diversos sistemas de cores aplicados à segmentação por cor, mostram que o modelo HSI apresenta as informações de cor mais descorrelacionadas que no modelo RGB. O problema com a iluminação não uniforme pode ser resolvido simplesmente eliminando as informações de luminosidade do canal I. Por outro lado algumas desvantagens foram apontadas na utilização do HSI, como tempo necessário para aplicar as transformações do RGB para o HSI e a instabilidade do canal de cores em regiões de baixa saturação ou intensidade. Contudo, recursos recentes como os atuais processadores e bibliotecas específicas para processamento de imagens, permitem fazer estas transformações em tempo real, além de que, o método de segmentação utilizado no sistema proposto é capaz de suplantar as dificuldades referentes à descontinuidade do canal H. A segunda técnica é a de segmentação. Como o tempo de processamento é imperativo, só é possível a utilização de técnicas de segmentação com custo computacional baixo. Para tanto, no sistema de visão proposto é utilizada uma das ferramentas mais básicas: a limiarização ou binarização. Existem diversos tipos de limiarização, mas a mais adequada para tratar imagens com características não uniformes é a adaptativa, pois leva em consideração não só o atributo do pixel , mas também alguma propriedade local. Contudo este tipo de binarização possui um custo maior além do problema com a iluminação não uniforme ter sido solucionado com a utilização do modelo HSI. Como se deseja fazer a segmentação por cores e as características de cor estão contidas no canal H, para separar uma determinada cor basta uma limiarização global dupla (utilizando dois limiares). Dupla porque na prática para selecionar uma cor é preciso pegar um intervalo de valores e global porque dependem somente do atributo do pixel neste canal. É levada em conta ainda, a instabilidade do canal H, de forma que se procura selecionar uma determinada cor de acordo outras características do pixel como a pureza da sua cor e o brilho da cor. Para tanto também é preciso segmentar os canais S e I que respectivamente carregam esta informação. Tal segmentação também é global, embora simples, pois não é necessário neste caso selecionar intervalos entre o limite superior e o inferior dos mesmos. O resultado do processo de segmentação está dividido em quatro imagens binárias: duas provenientes da segmentação do canal de cor, uma do canal de saturação e uma do canal de intensidade. Então é necessária a composição destas informações para formar uma única imagem. Esta composição é feita utilizando a premissa de que o método busca extrair características do pixel pela escolha da cor como propriedade dominante, baseado no valor da saturação e intensidade do mesmo. Como o processo de limiarização resulta em imagens binárias, é possível a utilização de operações lógicas e aritméticas. Estas são ferramentas simples, eficazes e de computacional baixo para o processamento deste tipo de imagens. As operações lógicas neste trabalho são utilizadas em duas etapas. Primeiro, para compor a imagem da segmentação do canal de cor, uma vez que para separar uma determinada cor é efetuada uma dupla limiarização. E depois, para selecionar a cor de acordo com o nível de saturação da mesma. As operações aritméticas são utilizadas para eliminar as regiões escuras da imagem. Embora as regiões escuras apresentem baixa saturação, grande parte do ruído é proveniente destas regiões, devido à instabilidade do canal H em baixas saturações ou intensidades extremas. Assim, a imagem resultante da limiarização do canal I é subtraída da imagem resultante do procedimento com operações lógicas. Este último procedimento com operações aritméticas não é teoricamente necessário, mas na prática ele é capaz de eliminar grande parte do ruído residual, proveniente da instabilidade do canal de cor. Teoricamente, com o esquema de processamento utilizado, não é necessária a utilização de filtragem de suavização na imagem. Contudo, alguns esquemas de filtragem foram experimentados. Por fim o sistema de visão determina os parâmetros a serem passados ao controlador: posição e orientação do robô e posição dos obstáculos. Para tanto, são determinados os centros de massa de cada uma das regiões segmentadas. É importante, neste caso, a convenção de cores utilizada. Pode-se ter, por exemplo, a cor azul para os obstáculos e duas faixas de cores, vermelho e verde para o robô. O centro de massa da região azul fornece a posição do obstáculo. Para o robô há duas posições: o centro de massa da região vermelha e o da região verde. A partir do segmento de reta que os une é possível determinar a orientação, (pela inclinação deste segmento) e a posição do robô (pelo seu ponto central). O desempenho do sistema pode ser verificado através de uma observação dos desvios padrões das coordenadas cartesianas do robô e do obstáculo, da orientação do robô, bem como do tempo de execução do laço principal que implementa o sistema em C++ . Sem filtragem, os desvios foram 0.55 pix, 0.27 pix, 4.55 pix, 1.09 pix e 0.89 pix, para as coordenadas x, y e a orientação do robô e as coordenadas x e y do obstáculo respectivamente. Neste caso o tempo de execução foi de 19ms. Com filtragem de média de máscara 3x3 os resultados foram (na mesma ordem) 0.44 pix, 0.07 pix, 2.42 pix, 0.43 pix e 0.07 pix com um tempo de 20ms. Com uma filtragem de média 5x5, os resultados foram 0.47 pix, 0.04 pix, 2.17 pix, 0.45 pix e 0.27 pix e um tempo de 22ms. Com filtragem de mediana 3x3 os resultados foram 0.44 pix, 0.00 pix, 3.12 pix, 1.63 pix e 1.25 pix e um tempo de 21ms. Com filtragem de mediana 5x5 os desvios foram 0.41 pix, 0.04 pix, 2.42 pix, 0.99 pix e 0.78 pix e um tempo de 95ms. È importante ressaltar que o erro absoluto não foi determinado porque neste caso seria necessária a calibração da câmera. A resolução das imagens utilizadas neste experimento é de 352x288 pixels de resolução. Observando os dados apresentados na Tabela 1, é possível observar que a filtragem reduz o desvio padrão das características extraídas, melhorando a precisão, mas tornando o processo mais lento. Para aplicações em tempo real este ganho de precisão pode não compensar o tempo de processamento perdido, principalmente por que o ganho de precisão na determinação das posições é muito pequeno e insignificante no caso da orientação.

CONCLUSÕES:
Na etapa de revisão bibliográfica foram estudadas não apenas técnicas de segmentação de imagens mas também de processamento de imagens como um todo. O objetivo de expansão dos estudos foi a possibilidade de construção de um sistema de visão robusto e de baixo custo. A extensa e intensa revisão bibliográfica, resultou também na apresentação de um seminário de iniciação cientifica à comunidade acadêmica. Após observação da problemática, diversas técnicas de processamento de imagens foram selecionadas para verificação de sua utilidade em relação a um sistema de visão artificial aplicado à robótica. Em um primeiro momento estas técnicas foram implementas offline com o auxílio do sistema algébrico computacional, o SciLab , e seu toolbox para processamento de imagem, o SIP e testadas com um banco de imagens montado para esta finalidade. Após a apresentação de dois seminários de iniciação cientifica, um sistema de visão foi implementado da forma como descrito nas seções anteriores. O desempenho do sistema pôde ser verificado através dos experimentos realizados, onde foi comprovada a imunidade ao ruído e à iluminação não uniforme, além da velocidade e precisão. Isto se deve ao sistema de cores e ao pós-processamento com operações lógicas e aritméticas que foram utilizados. Este sistema pode ser facilmente implementado, sendo executado em tempo real, graças à sua simplicidade. Os resultados obtidos são bastante satisfatórios, pois o sistema é capaz de separar os objetos desejados e determinar as características necessárias para o controlador. Os resultados preliminares motivaram a redação do artigo que foi aceito para publicação no VIII SBAI, bem como a apresentação do segundo seminário de iniciação científica, onde foram apresentados os resultados finais. Apesar do sistema de visão artificial ter sido inicialmente proposto para aplicações em sistemas de controle de robôs celulares baseado em realimentação visual, as técnicas propostas são genéricas e podem ser usadas em qualquer sistema de visão baseado em detecção por cores. O sistema de controle e os robôs celulares para os quais o sistema foi originalmente proposto não são aqui detalhados por questões de espaço, e será objeto de estudos futuros. Existem três vertentes para trabalhos futuros. Uma delas diz respeito a um estudo comparativo do sistema proposto com implementações clássicas e outros tipos de segmentação e filtragens. Uma segunda diz respeito ao estudo de técnicas para identificação de múltiplos robôs na mesma cena. Tal estudo é de vital importância em aplicações com múltiplos robôs, como é o caso do futebol de robôs. Outra perspectiva é utilização de múltiplas câmeras em visão estereoscópica. A fusão de dados provenientes de estereoscopia pode aumentar o número de aplicações deste sistema.

Instituição de fomento: CNPq

Trabalho de Iniciação Científica

Palavras-chave:  Robótica, Visão computacional, Segmentação por cores

E-mail para contato: gmatos1983@gmail.com