REGISTRO DE DADOS RGB-D EM AMBIENTES INDOOR COM REGIÕES POUCO TEXTURIZADAS Daniel Rodrigues dos Santos1 Kourosh Khoshelham2 1 Universidade Federal do Paraná Departamento de Geomática Programa de Pós Graduação em Ciências Geodésicas CEP 81531-Curitiba/PR-Brasil [email protected] 2 University of Twente Faculty of Geo-information and Earth Observation Science Enschede-Netherlands [email protected] RESUMO Neste trabalho é apresentado um método para registro de pares de nuvem de pontos 3D derivados de câmeras RGB-D em ambientes indoor. Esta técnica pode ser empregada em regiões pouco texturizadas, onde é impossível a extração de primitivas pontuais, assim como o uso de algoritmos baseados em abordagens ponto-a-plano ou plano-a-plano para registro de pares de nuvem de pontos. A principal características do método proposto é a ponderação da informação de profundidade no problema de otimização. Os resultados encontrados mostraram que podem ser obtidas precisões melhores que 3 cm no registro dos dados usando o método proposto. Palavras chaves: câmeras RGB-D, Registro de pares de nuvem de pontos 3D, Ambientes indoor. 1. INTRODUÇÃO O problema do registro de nuvem de pontos 3D é uma tarefa importante para diversas aplicações em fotogrametria e visão computacional, tais como, localização e mapeamento 3D simultâneos, modelagem e reconstrução 3D, entre outras. O registro de nuvem de pontos consiste, basicamente, em determinar os parâmetros de rotação (R) e translação (T) entre os pares de nuvem de pontos 3D consecutivos, por intermédio de um modelo matemático rígido que estime a transformação entre o par de nuvem de pontos e uma função que minimize a distância entre as primitivas correspondentes. O método algoritmo mais difundido na comunidade científica é o ICP (Iterative Closest Point), sendo originalmente desenvolvido por Besl e McKay (1990). É importante notar que a eficiência do ICP depende da entrada de valores iniciais aproximados e a quantidade de pontos envolvidos pode onerar o tempo de processamento. Para melhorar a robustez e eficiência do ICP diversas variações baseadas em abordagens ponto-a-ponto, plano-a-plano, e ponto-a-plano (CHEN e MEDIONI, 1992; ZHANG, 1994; EGGERT et al., 1998; SEGAL et al., 2009 entre outros). Bendels et al. (2004) e May et al. (2009) integraram imagens RGB e de profundidade empregando o método SIFT (Scale Invariant Feature Transform), para produzir um descritor de características visuais que permita avaliações rápidas e altamente discriminatórias em relação à outras primitivas. Henry et al. (2012) propuseram nova variação do método ICP, conhecida como RGB-D ICP. A abordagem explora as vantagens das informações derivadas das imagens RGB e de profundidade. No entanto, para mapeamento 3D de ambientes indoor é muito comum encontrar regiões de pouca texturização, com padrões repetidos e/ou superfícies planas, tornando impossível a extração de primitivas pontuais e inviabilizando o emprego de algoritmos baseados em abordagens ponto-a-plano ou plano-a-plano para o registro de pares de nuvem de pontos, uma vez que um minimo de três planos não paralelos deve ser empregado para solucionar o problema de otimização. Neste trabalho é proposto um método para registro de pares de nuvem de pontos 3D em ambientes indoor com superfícies planas e pouco texturizadas. O método apresenta uma abordagem que divide a nuvem de pontos em células como padrão de organização para o estabelecimento automático das correspondências, uma proposta de ponderação dos 1 pontos 3D correspondentes e o registro dos pares de nuvem de pontos usando o modelo de corpo rígido 3D, juntamente com o método dos mínimos quadrados (MMQ) para estimativa dos parâmetros de rotação e translação. Vale ressaltar que os dados são adquiridos com câmeras RGB-D (dispositivo Kinect). Tal dispositivo é composto por três sensores, isto é, dois sensores CMOS (Complementary metal-oxide-semicondutor) que registram energia eletromagnética na faixa do espectro correspondente ao visível (câmera RGB) e infravermelho (câmera IR), e um emissor laser infravermelho, podendo capturar cenas com 640x480 pixels em uma taxa de 30 quadros por segundo (fps). Cada quadro (frame) capturado pode conter até 300.000 pontos, cuja precisão é da ordem de 3 cm a cada 3 m, com campo de visão de ~60 graus para sensores com distância media de aquisição inferior a 7 m. Este trabalho está organizado da seguinte forma: na seção 1 uma breve introdução é apresentada; a seção 2 descreve o método proposto; a seção 3 apresenta os experimentos e os resultados são discutidos; e na seção 4 são apontadas as conclusões e as recomendações futuras. 2. MÉTODO 1. 2. 3. O método proposto está divido em 3 etapas principais, a saber: Aquisição dos dados e geração da nuvem de pontos 3D; Estabelecimento automático das correspondências e detecção de outliers; Ponderação das coordenadas Z de cada ponto correspondente e estimativa dos parâmetros. No dispositivo Kinect, o sensor LASER emite um pulso que é espalhado na superfície de referência (plano referencial) em forma de padrão de luz estruturada. Assumindo que um objeto está no plano referencial do padrão de luz estruturada a uma distância Zo do sensor, e um ponto P do padrão de luz estruturada foi projetado na superfície física, o mesmo também é registrado no plano focal da câmera IR. Se o objeto está próximo (ou distante) do sensor, a posição do ponto P no plano focal IR será deslocada na direção do eixo X. Esta é a medida de paralaxe (d) obtida no espaço imagem correspondente ao ponto P no espaço objeto. Com as informações das medidas de paralaxe pode-se obter a nuvem de pontos 3D usando as equações propostas em Khoshelham e Ouder Elberink (2012), como segue: Zk = Z0 Z 1+ 0 d cb Zk X k = ( x ' + x o + dx) c Zk Y k = ( y ' + y o +dy) c (1) (2) (3) sendo, x', y' as fotocoordenadas do ponto imagem (observadas no plano focal da câmera IR), x o yo são as coordenadas do ponto principal e dx e dy os coeficientes de distorção das lentes, denota a distância do ponto P no espaço objeto ao sensor, b é a linha de base, c a distância focal da câmera IR, Xk, Yk e Zk são as coordenadas tridimensionais de um P no espaço-objeto. Vale ressaltar que os parâmetros Zo, b e c devem ser devidamente obtidos por um processo de calibração de câmeras (maiores detalhes ver KHOSHELHAM e OUDER ELBERINK, 2012). Neste trabalho é proposto um método para reduzir o tempo de processamento e organizar o processo de estabelecimento de correspondências. Considere um par de imagens IR obtidas com o dispositivo Kinect. A primeira imagem é regularmente dividida em células de dimensão mxm e para cada célula são calculadas as coordenadas XYZ e seu respectivo centroide (q). Como resultado tem-se um conjunto de centroides correspondente a nuvem de pontos de referencia. Para obtenção da nuvem de pontos corrente as equações (1)-(3) são empregadas sobre as fotocoordenadas de cada ponto na segunda imagem IR. Vale ressaltar que a nuvem de pontos corrente não é dividida em células e um conjunto de p pontos é então obtido. Para estabelecer as correspondências entre os centroides de cada célula na nuvem de pontos de referencia (qi) e o conjunto de pontos da nuvem de pontos corrente (p i) é calculada a distancia euclidiana e para um determinado centroide seu correspondente é o ponto mais próximo. Como resultado tem-se um conjunto de pontos correspondentes obtido de forma rápida e organizada, evitando falsos positivos. Outra fator importante é a detecção de outliers. Neste trabalho, distancias e variações angulares entre as linhas retas que ligam os pontos correspondentes inferiores a um limiar pré definido são considerados outliers e removidos do processamento. Dado um conjunto de pontos correspondentes, um modelo matemático rigoroso deve ser elaborado para determinar os parâmetros de rotação e translação entre o par de nuvem de pontos 3D. O modelo empregado neste trabalho minimiza a soma dos erros (E) como segue: 2 n E j=∑ Pi ‖ X i , j −1 − ( R X i , j +T ) ‖ (4) i=1 sendo, X i , j −1 e X i , j as coordenadas dos pontos correspondentes nas nuvens de pontos de referencia (i) e corrente (j), Pij é peso associado ao par de pontos ij, T é o vetor dos parâmetros de translação tx, ty, tz e R a matriz dos parâmetros de rotação em função dos ângulos de Euler ( ω , ϕ , κ ). Neste caso, os pesos são definidos para todo par de pontos correspondentes (inliers) baseado na precisão teórica das coordenadas de profundidade (Z). Aplicando a propagação de covariâncias nas Equações (1)-(3) e fazendo algumas manipulações matemáticas obtém-se a ponderação como proposto por Khoshelham et al. (2013). A Equação (4) não é linear e envolve 6 parâmetros a serem determinados pelo MMQ. Neste caso, deve ser aplicado o modelo paramétrico não linear (GEMAEL, 1994). Vale ressaltar que, assim como o ICP, o método proposto é iterativo. Ou seja, cada vez que os parâmetros de rotação e translação são estimados pelo MMQ uma nova nuvem de pontos 3D corrente é obtida, ou seja, para cada iteração, o algoritmo implementado trabalha da seguinte forma a saber: 1. Encontra a correspondência entre os centroides na nuvem de pontos de referencia e os pontos na nuvem de pontos corrente através do calculo da distancia euclidiana; 2. Atribui pesos aos pontos correspondentes; 3. Determina o alinhamento entre o par de nuvem de pontos; 4. Regenera a nuvem de pontos 3D corrente empregando os parâmetros estimados; 5. Os passos 1-4 são repetidos até que o erro médio quadrático da discrepância dos valores seja inferior a um limiar pré definido ou o número de iterações seja superior ao número máximo de iterações definida; 6. Finalmente, é obtido um par de nuvem de pontos 3D com minimas diferenças angulares e posicionais, de forma rápida e precisa. 3. EXPERIMENTO E ANÁLISE DOS RESULTADOS Um experimento foi conduzido para avaliar o método proposto neste trabalho. Os algoritmos foram implementados em linguagem de programação C/C++ MinGW para Linux e os resultados são visualizados através das ferramentas de visualização implementadas na biblioteca computacional open-source, conhecida como PCL (Point Cloud Library) e VTK (Visualization ToolKit). A Figura 1 mostra o par de imagens usado para validar o experimento discutido neste trabalho. Vale ressaltar que para cada imagem RGB existe uma imagem IR e a nuvem de pontos deve ser obtida usando as equações apresentadas na seção 2. Figura 1. Superfícies pouco texturizadas em ambiente indoor. Como pode ser observado na Figura 1 todas as superfícies presentes nos ambientes mapeados são pouco texturizadas, assim como em nenhum dos casos pode-se detectar três planos não colineares. Para cada par de nuvem de pontos 3D são executadas as etapas 1-6 apresentadas na seção 2. A Figura 2 mostra os resultados obtidos para o par de nuvem de pontos. 3 (a) (c) (b) (d) (e) Fig. 1 - resultados obtidos para o par de nuvem de pontos 3D. (a) Vista frontal do par de nuvem de pontos antes do registro; (b) Vista aérea do par de nuvem de pontos antes do registro; (c) Pontos correspondentes da 1a. Iteração; (d) Vista frontal do par de nuvem de pontos depois do registro; (e) Vista aérea do par de nuvem de pontos depois do registro. Neste experimento foram usados como limiares de distancia minima e variação angular entre as linhas retas que ligam os pontos correspondentes 2,5 cm e 90 graus, respectivamente. Como pode ser observado na Figuras 1a e 1b o desalinhamento do par de nuvem de pontos 3D é relativamente grande, uma vez que a aquisição dos dados foi realizada com um dispositivo Kinect cuja taxa de aquisição é inferior a 15 quadros por segundo. Na Figura 1c pode-se verificar visualmente que as correspondências estabelecidas são coerentes e a medida que os parâmetros de rotação e translação são corrigidos, o número de falsos positivos diminui e o número de inliers pode aumentar. As Figuras 1d e 1e mostram que o método proposto registra adequadamente um par de nuvem de pontos em uma região pouco texturizada. No entanto, o alinhamento não é perfeito, uma vez que os dados Kinect são bastante ruidosos em função da baixa qualidade dos sensores integrados no sistema e os próprios objetos que compõem a cena, tais como, os objetos plásticos, objetos pintados de preto e superfícies especulares. No ambiente tratado, neste experimento, pode-se encontrar objetos plásticos, objetos pintados de preto. Isto também propicia uma nuvem de pontos incompleta. O Gráfico 1 mostra o erro médio quadrático (rms) dos resíduos calculados para cada iteração. 4 Gráfico 1. Erro médio quadrático dos resíduos de cada iteração. Como esperado o rms dos resíduos diminui conforme aumenta o número de iterações (ver Gráfico 1). No entanto, na terceira iteração ocorre o oposto do esperado, seguido de uma caída abrupta do rms na quarta iteração. Isto pode ser explicado devido ao estabelecimento de falsos positivos. Como a detecção de outliers é uma tarefa complexa, erros como este podem ocorrer durante o processo de registro do par de nuvem de pontos. 4. CONCLUSÕES E RECOMENDAÇÕES Este trabalho apresentou um método de registro de pares de nuvens de pontos 3D derivados de câmeras RGBD em ambientes indoor. A principal características do método proposto é a ponderação da informação de profundidade no problema de otimização. Para investigar a potencialidade do método proposto foi realizado um experimento em ambiente indoor com regiões pouco texturizadas. O processo de correspondência ponto-a-ponto é feito de forma organizada e rápida, uma que a nuvem de pontos de referencia é dividia em células igualmente espaçadas. Duas restrições geométricas foram propostas para diminuir o número de falsos positivos, ou seja, a distancia minima e a variação angular das linhas retas que ligam os pontos correspondentes. Os resultados obtidos mostraram que a divisão da nuvem de pontos de referencia em células reduz drasticamente o tempo de processamento. A detecção e remoção de outliers é uma tarefa complexa e exige maiores investigações, uma vez que elas afetam a estimativa dos parâmetros e consequentemente o calculo do rms dos resíduos. De forma geral, o algoritmo implementado pode ser usado em qualquer tipo de ambiente indoor uma vez que não depende da correspondência entre pontos ou planos extraídos na nuvem de pontos, podendo-se afirmar que é um método robusto para fins de registro de nuvem de pontos 3D. O método também não requer aproximações iniciais. Em trabalhos futuros serão conduzidos investigações para abordagens ponto-a-plano no processo de registro dos pares de nuvem de pontos 3D, incluir novas restrições geométricas no processo de estabelecimento de correspondências e algoritmos de registro global a fim de evitar o acumulo de erros ao longo do processo. AGRADECIMENTOS Ao CNPq por concessão de bolsa de Produtividade em Pesquisa (processo no. 302644/2013-0). REFERÊNCIAS BIBLIOGRÁFICAS BENDELS, G.H., DEGENER, P., WAHL, R., K, M., e KLEIN, R., 2004, Image-based registration of 3D-range data using feature surface elements, Proceedings of the 5th International conference on Virtual Reality, Archaeology and Intelligent Cultural Heritage: Oudenaarde, Belgium, Eurographics Association, p. 115-124. BESL, P.J., e MCKAY, H.D., 1992, A method for registration of 3-D shapes: Pattern Analysis and Machine Intelligence, IEEE Transactions on, v. 14, p. 239-256. CHEN, Y., e MEDIONI, G., 1992, Object modelling by registration of multiple range images: Image Vision Comput., v. 10, p. 145-155. 5 DOLD, C., e BRENNER, C., 2006, registration of terrestrial laser scanner data using planar patches and image data, in Maas, H.-G., and Schneider, D., eds., ISPRS Comm. V Symposium “Iamge Engineering and Vision Metrology”, Volume XXXVI Part. 5, 25-27: Dresden, p. 78-83. EGGERT, D.W., FITZGIBBON, A.W., e FISHER, R.B., 1998, Simultaneous registration of multiple range views for use in reverse engineering of CAD models: Comput. Vis. Image Underst., v. 69, p. 253-272. HENRY, P., KRAININ, M., HERBST, E., REN, X., e FOX, D., 2010, RGB-D Mapping: Using Depth Cameras for Dense 3D Modeling of Indoor Environments, Symposium on Experimental Robotics (ISER). HENRY, P., KRAININ, M., HERBST, E., REN, X., e FOX, D., 2012, RGB-D mapping: Using Kinect-style depth cameras for dense 3D modeling of indoor environments: The International Journal of Robotics Research, v. 31, p. 647-663. KHOSHELHAM, K., e ELBERINK, S.O., 2012, Accuracy and Resolution of Kinect Depth Data for Indoor Mapping Applications: Sensors, v. 12, p. 1437-1454. KHOSHELHAM, K., DOS SANTOS, D.R. e VOSSELMAN, G., 2013, Generation and weighting of 3D point correspondences for improved registration of RGB-D data. In: ISPRS Annals Volume II-5/W2 : ISPRS Workshop laser scanning, 11-13 November 2013, Antalya, Turkey / ed by M. Scaioni et al. Antalya: ISPRS, 2013. ISSN: 21949050. pp. 127-13. MAY, S., DROESCHEL, D., HOLZ, D., FUCHS, S., MALIS, E., N., e HERTZBERG, J., 2009, Three-dimensional mapping with time-of-flight cameras: J. Field Robot., v. 26, p. 934-965. SEGAL, A., HAEHNEL, D., e THRUN, S., 2009, Generalized-icp, In Proc. of Robotics: Science and Systems (RSS), Volume 25, 26, 27. ZHANG, Z., 1994, Iterative point matching for registration of free-form curves and surfaces: Int. J. Comput. Vision, v. 13, p. 119-152. 6