• Nenhum resultado encontrado

Registo de nuvens de pontos

No documento Scanner a 3D (páginas 81-84)

3. Fundamentos teóricos

3.8 Registo de nuvens de pontos

O problema de alinhamento de várias nuvens de pontos 3D num modelo completo consistente é conhecido como registo (registration). O objetivo do registo de nuvens de pontos consiste na determinação das posições relativas e das orientações de um conjunto de nuvens

3D, e na obtenção de um modelo global consistente, através da correta sobreposição das

diversas áreas que se intersectam. Para um determinado conjunto de nuvens de pontos, adquiridas separadamente a partir de diferentes pontos de vista, é necessário encontrar um sistema que seja capaz de alinhar as diversas nuvens num único modelo. A ideia-chave passa por identificar os pontos correspondentes entre o conjunto de nuvens de pontos e encontrar uma transformação que minimiza a distância (erro de alinhamento) entre os pontos correspondentes. Este processo é repetido, uma vez que a pesquisa das correspondências é influenciada pela posição e orientação relativa dos conjuntos de dados. A partir do momento que o erro de

alinhamento é inferior a um determinado valor (threshold), o registo de nuvens de pontos está completo [84], [107], [121].

Um dos métodos mais populares para registo de nuvens de pontos é o algoritmo Iterative

Closest Point (ICP). Infelizmente, este algoritmo tem algumas desvantagens, sendo a mais

evidente a necessidade de um elevado número de etapas de iteração até que a convergência possa ser alcançada. Embora tenham sido apresentadas várias soluções, não existe uma única abordagem que possa resolver o problema na sua totalidade. Uma das possíveis soluções passa por determinar uma boa transformação inicial e retornar um conjunto de correspondências que podem ser utilizadas para transformar diretamente a nuvem de pontos de origem na área de convergência do alvo. No sentido mais geral, o objetivo pode ser formulado por:

1. Alinhamento Inicial: efetuar uma transformação à nuvem de ponto de origem, a partir

de uma posição inicial arbitrária em relação ao modelo, de modo a alcançarmos um modelo suficientemente próximo do ideal;

2. Alinhamento Refinado: efetuar o refinamento da solução encontrada pelo algoritmo

de alinhamento inicial, de modo a obtermos um resultado globalmente ideal.

Com base na qualidade das correspondências encontradas, as áreas de sobreposição das duas nuvens de pontos podem ser quase coincidentes após o alinhamento inicial. Esta solução representa um bom ponto de partida para algoritmos utilizados no refinamento, tais como o

ICP, que outrora teriam sido questionados devido ao seu elevado custo computacional

associado ao processo de registo [107].

3.8.1 Alinhamento Inicial

Segundo David G. Lowe [119] é descrito um método de alinhamento inicial baseado na formulação SAmple Consensus, denominado SAC-IA (Sample Consensus Initial Alignment). Este método tem como objetivo manter as mesmas relações geométricas das correspondências sem ter que tentar todas as combinações possíveis de um conjunto de correspondências. Para isso, é analisado um grande número de candidatos a correspondências, sendo cada uma delas rapidamente classificada utilizando a seguinte formulação:

1. Selecionar s amostras de pontos de P, enquanto a distância entre pares for maior do que a distância mínima definida pelo utilizador;

2. Para cada uma das amostras de pontos, é necessário encontrar uma lista de pontos em

Q cujos histogramas são semelhantes aos histogramas dos pontos amostrados. A partir

dessa lista, um ponto é selecionado ao acaso e considerado como a correspondência do ponto amostrado;

3. Calcular a transformação rígida definida pelas amostras de pontos e pelas suas correspondências. Para além disso, é necessário encontrar o erro métrico para a nuvem de pontos que calcula a qualidade da transformação.

Durante este processo, estas três etapas são repetidas várias vezes. A transformação que obteve melhor erro métrico é armazenada e utilizada para alinhar aproximadamente os pontos de vista parciais. Por último, uma otimização não linear local é aplicada recorrendo ao algoritmo de Levenberg-Marquardt [119].

Na biblioteca PCL, este algoritmo de alinhamento inicial não é o único implementado [84]. No módulo de registo é possível ainda encontrar outros métodos capazes de realizar a estimação da transformação 3D de nuvens de pontos, tais como o método

TransformationEstimationSVD [122] e TransformationEstimationPointToPlaneLLS [123]. No

primeiro caso, a estimativa da transformação é baseada no algoritmo SVD (Singular Value

Decomposition), sendo o alinhamento realizado através dos valores das correspondências

obtidas por outros processos. No segundo caso, o algoritmo é desenvolvido com recurso a uma aproximação linear, denominada LLS (Linear Least Squares), para minimizar a distância entre um ponto e um plano dos pontos correspondentes de duas nuvens de pontos recorrendo à utilização das normais da superfície.

3.8.2 Alinhamento Refinado

Quando o alinhamento inicial é concluído, o próximo processo envolve o refinamento do resultado obtido, que é realizado pelo algoritmo ICP (Iterative Closest Point). O ICP é um algoritmo iterativo utilizado para encontrar a transformação ideal de duas nuvens de pontos através minimização da diferença da distância entre as áreas que se sobrepõem [107]. Este algoritmo pode ser generalizado através das seguintes etapas:

1. Associar os diversos pares de pontos (correspondências) entre as duas nuvens de pontos; 2. Estimar a transformação (rotação R e translação t) utilizando uma função de mínimos

min ∑ 𝑑𝑖𝑠𝑡(𝑅 ∗ 𝑞𝑖 𝑛

𝑖=1

+ 𝑡, 𝑝𝑖)

3. Aplicar a transformação estimada à nuvem de pontos que está a ser registada;

4. Repetir o processo até que um dos critérios de terminação seja atingido [107], [124].

Contudo, a implementação do método linear ICP na biblioteca PCL utiliza o algoritmo

SVD (Singular Value Decomposition) para encontrar a solução de mínimos quadrados para a

matriz de rotação e para o vetor de translação entre o conjunto de pontos correspondentes [125]. Para além desta formulação, existem ainda outras duas que derivam do ICP linear: o ICP não linear [126], baseado no método de otimização Levenberg-Marquardt e uma variação do ICP que se baseia na informação das normais da superfície de um plano para estimar a transformação [127]. Uma característica comum a estas três implementações é o facto de todas possuírem vários critérios de terminação. Estes critérios são descritos de seguida:

 O número de iterações atingiu o máximo pré-estabelecido (critério 1);

 A diferença entre a transformação anterior e a atual estimada é menor que um valor pré-determinado (critério 2);

 A soma do erro Euclideano dos quadrados é menor que um valor pré-determinado (critério 3) [125].

No documento Scanner a 3D (páginas 81-84)