SlideShare uma empresa Scribd logo
1 de 12
Baixar para ler offline
51
Semina: Ciências Exatas e Tecnológicas, Londrina, v. 30, n. 1, p. 51-62, jan./jun. 2009
Uma implementação do algoritmo Levenberg-Marquardt dividido
para aplicações em visão computacional
An implementation of the partitioned Levenberg-Marquardt
algorithm for applications in computer vision
José Alexandre de França1
; Maria Bernadete de Morais França2
;
Marcela Hitomi Koyama3
; Tiago Polizer da Silva4
Resumo
Em diversas aplicações da visão computacional, é necessário estimar-se, em um modelo, os parâmetros
quemelhorseajustamaumconjuntodedadosexperimentais.Nessescasos,umalgoritmodeminimização
pode ser utilizado. Dentre estes, um dos mais conhecidos é o Levenberg-Marquardt. Apesar de diversas
implementações de tal algoritmo estarem disponíveis livremente, nenhuma delas leva em consideração
quando a solução do problema conduz a uma matriz jacobiana esparsa. Nesses casos, é possível reduzir
significativamente a complexidade do algoritmo. Neste trabalho, apresenta-se uma implementação
do algoritmo Levenberg-Marquardt para os casos em que a matriz jacobiana do problema é esparsa.
Além disso, para ilustrar a aplicação do algoritmo, ele é aplicado a solução do problema de calibração
monocular com gabaritos de uma única dimensão. Resultados empíricos mostram que o método converge
satisfatoriamente em apenas algumas poucas iterações, mesmo na presença de ruído.
Palavras-chave: Algoritmo Levenberg-Marquardt. Calibração Monocular. Algoritmo de Newton.
Abstract
At several applications of computer vision is necessary to estimate parameters for a specific model
which best fits an experimental data set. For these cases, a minimization algorithm might be used and
one of the most popular is the Levenberg-Marquardt algorithm. Although several free applies from this
algorithm are available, any of them has great features when the resolution of problem has a sparse
Jacobian matrix . In this case, it is possible to have a great reduce in the algorithm’s complexity. This
work presents a Levenberg-Marquardt algorithm implemented in cases which has a sparse Jacobian
matrix. To illustrate this algorithm application, the camera calibration with 1D pattern is applied to
solve the problem. Empirical results show that this method is able to figure out satisfactorily with few
iterations, even with noise presence.
Key words: Levenberg-Marquardt algorithm. Monocular Calibration. Newton-type algorithm.
1
	 Departamento de Engenharia Elétrica, Universidade Estadual de Londrina; E-mail: josealexandre@eeol.org
2
	 Departamento de Engenharia Elétrica, Universidade Estadual de Londrina; E-mail: bernadete@eeol.org
3
	 Departamento de Engenharia Elétrica, Universidade Estadual de Londrina; E-mail: markoyama@yahoo.com.br
4
	 Departamento de Engenharia Elétrica, Universidade Estadual de Londrina; E-mail: tiagopolizer@gmail.com.
52
Semina: Ciências Exatas e Tecnológicas, Londrina, v. 30, n. 1, p. 51-62, jan./jun. 2009
França, J. A. de et al.
Introdução
Em diversas aplicações da visão computacional,
comoocálculodamatrizfundamental(ARMANGUE´;
SALVI, 2003), a calibração de câmeras (SALVI;
ARMANGUE´; BATLLE, 2002; ZHANG, 2000),
a retificação de imagens (LOOP; ZHANG, 1999)
e a estimação da transformação entre pontos
(HORAUD; CSURKA; DEMIRDIJIAN, 2000), é
necessário estimar os parâmetros de um determinado
modelo que melhor se ajustam a um conjunto de
dados experimentais. Normalmente, para uma
melhor exatidão, um algoritmo de minimização
não-linear deve ser utilizado. A maioria dos
algoritmos utilizados são baseados no método de
Newton (PRESS et al., 1992). Entre eles, salienta-
se o método Levenberg-Marquardt (LEVENBERG,
1944; MARQUARDT, 1963), bastante utilizado na
visão computacional sempre que deseja-se ajustar
um modelo a um conjunto de dados experimentais.
Como exemplo, pode-se citar os trabalhos de
(KONEN; TOMBROCK; SCHOLZ, 2007), (SUN
et al., 2006) e (LERASLE; RIVES; DHOME,
1999). Este método é uma derivação do método de
Newton que é de convergência mais rápida.
Um dos motivos da popularidade do algoritmo
Levenberg-Marquardt é a existência de diversas
implementações disponíveis (LOURAKIS, 2004;
MORÉet al., 1984; PRESS et al., 1992; SHEARER;
WOLFE, 1985). Contudo, apenas uma dessas
(LOURAKIS;ARGYROS, 2004) toma vantagem de
uma estrutura, muito comum em problemas da visão
computacional, que faz com que a minimização não-
linear produza uma matriz Jacobiana esparsa. Se isso
for levado em consideração, para a estimação de N
parâmetros, a complexidade do algoritmo reduz-se
de N 3 para apenas N.
Neste trabalho, apresenta-se uma implementação
do Levenberg-Marquardt, chamada Levenberg-
Marquardt Dividido, que pode ser aplicada em
problemas que apresentam a matriz Jacobiana
esparsa. Nesse caso, o laço de iteração é dividido em
vários problemas menores que possuem apenas uma
fração da complexidade e são resolvidos muito mais
rapidamente. Essa implementação foi codificada em
linguagem do MATLAB®
e pode ser executado sem
modificações tanto no MATLAB®
quanto no Scilab®
e no Octave®
.
Para exemplificar o uso do algoritmo Levenberg-
Marquardt Dividido, aplicou-se a implementação
proposta ao problema de calibração de câmeras com
auxílio de um gabarito 1D (ZHANG, 2004). Nesse
caso, o método é utilizado para, dado um conjunto
de projeções do gabarito em diversas imagens,
estimar-se os parâmetros intrínsecos da câmera e
a localização da cada ponto do gabarito no espaço
tridimensional. Resultados experimentais mostram
que o método é capaz de realizar a estimação de
forma satisfatória e em poucas iterações, mesmo na
presença de ruído.
Notação
No decorrer do texto, matrizes e vetores são
representados por letras, números ou símbolos em
negrito. As constantes são expressas por letras,
números ou símbolos em itálico. Além disso,
adotou-se a prática notação A-T
= (A-1
)T
= (A-T
)1
para
toda matriz quadrada e inversível.
Considerando o modelo de câmera pinhole
(FAUGERAS; LUONG, 2001), as coordenadas
de um ponto 3D no sistema de coordenadas
do ambiente de uma câmera são apresentadas
como M = [x,y,z] T
e a projeção correspondente
no plano de imagem I, como m = [u,v]T
. Além
disso, as coordenadas homogêneas de um ponto
m = [u,v,...]T
são representadas por
DE FRANC¸A, J.; FRANC¸A, M.; KOYAMA, M. & DA SILVA, T.
SCHOLZ, 2007), (SUN et al., 2006) e (LERASLE; RI-
VES; DHOME, 1999). Este m´etodo ´e uma derivac¸˜ao do
m´etodo de Newton que ´e de convergˆencia mais r´apida.
Um dos motivos da popularidade do algo-
ritmo Levenberg-Marquardt ´e a existˆencia de diversas
implementac¸˜oes dispon´ıveis (LOURAKIS, Jul. 2004;
MOR´e et al., 1984; PRESS et al., 1992; SHEARER;
WOLFE, 1985). Contudo, apenas uma dessas (LOU-
RAKIS; ARGYROS, 2004) toma vantagem de uma es-
trutura, muito comum em problemas da vis˜ao computa-
cional, que faz com que a minimizac¸˜ao n˜ao-linear pro-
duza uma matriz Jacobiana esparsa. Se isso for levado
em considerac¸˜ao, para a estimac¸˜ao de N parˆametros, a
complexidade do algoritmo reduz-se de N3 para apenas
N.
Neste trabalho, apresenta-se uma implementac¸˜ao
do Levenberg-Marquardt, chamada Levenberg-
Marquardt Dividido, que pode ser aplicada em
problemas que apresentam a matriz Jacobiana esparsa.
Neste caso, o lac¸o de iterac¸˜ao ´e dividido em v´arios
problemas menores que possuem apenas uma frac¸˜ao da
Considerando o modelo de
GERAS; LUONG, 2001), as coo
3D no sistema de coordenadas
cˆamera s˜ao apresentadas como
projec¸˜ao correspondente no plan
m = [u, v]T . Al´em disso, as coo
de um ponto m = [u, v, ...]T s˜ao
isto ´e, �m = [u, v, ..., 1]T . De
ponto qualquer em coordenadas
sentado por �m = [u, v, ..., t]T .
indica a posic¸˜ao do ponto em um
Com a notac¸˜ao adotada, a r
3D, M, e sua projec¸˜ao, m, em
dada por
�m � A
�
I3 03
com
A =


α 0 u
0 β
0 0
onde “�” indica que os dois lados
ferir por uma constante, α e β d˜a
, isto
é,
DE FRANC¸A, J.; FRANC¸A, M.; KOYAMA, M. & DA SILVA, T.
SCHOLZ, 2007), (SUN et al., 2006) e (LERASLE; RI-
VES; DHOME, 1999). Este m´etodo ´e uma derivac¸˜ao do
m´etodo de Newton que ´e de convergˆencia mais r´apida.
Um dos motivos da popularidade do algo-
ritmo Levenberg-Marquardt ´e a existˆencia de diversas
implementac¸˜oes dispon´ıveis (LOURAKIS, Jul. 2004;
MOR´e et al., 1984; PRESS et al., 1992; SHEARER;
WOLFE, 1985). Contudo, apenas uma dessas (LOU-
RAKIS; ARGYROS, 2004) toma vantagem de uma es-
trutura, muito comum em problemas da vis˜ao computa-
cional, que faz com que a minimizac¸˜ao n˜ao-linear pro-
duza uma matriz Jacobiana esparsa. Se isso for levado
em considerac¸˜ao, para a estimac¸˜ao de N parˆametros, a
complexidade do algoritmo reduz-se de N3 para apenas
N.
Neste trabalho, apresenta-se uma implementac¸˜ao
do Levenberg-Marquardt, chamada Levenberg-
Marquardt Dividido, que pode ser aplicada em
problemas que apresentam a matriz Jacobiana esparsa.
Neste caso, o lac¸o de iterac¸˜ao ´e dividido em v´arios
Considerando o modelo de cˆamera pinhole (FAU-
GERAS; LUONG, 2001), as coordenadas de um ponto
3D no sistema de coordenadas do ambiente de uma
cˆamera s˜ao apresentadas como M = [x, y, z]T e a
projec¸˜ao correspondente no plano de imagem I, como
m = [u, v]T . Al´em disso, as coordenadas homogˆeneas
de um ponto m = [u, v, ...]T s˜ao representadas por �m,
isto ´e, �m = [u, v, ..., 1]T . De forma mais geral, um
ponto qualquer em coordenadas homogˆeneas ´e repre-
sentado por �m = [u, v, ..., t]T . Um ´ındice, se houver,
indica a posic¸˜ao do ponto em um conjunto de pontos.
Com a notac¸˜ao adotada, a relac¸˜ao entre um ponto
3D, M, e sua projec¸˜ao, m, em uma cˆamera pinhole ´e
dada por
�m � A
�
I3 03
�
�M, (1)
com
A =


α 0 u0
0 β v0
0 0 1

 , (2)
onde “�” indica que os dois lados da equac¸˜ao podem di-
=[u,v,..., 1]T
. De forma mais geral, um
ponto qualquer em coordenadas homogêneas é
representado por
DE FRANC¸A, J.; FRANC¸A, M.; KOYAMA, M. & DA SILVA, T.
SCHOLZ, 2007), (SUN et al., 2006) e (LERASLE; RI-
VES; DHOME, 1999). Este m´etodo ´e uma derivac¸˜ao do
m´etodo de Newton que ´e de convergˆencia mais r´apida.
Um dos motivos da popularidade do algo-
ritmo Levenberg-Marquardt ´e a existˆencia de diversas
implementac¸˜oes dispon´ıveis (LOURAKIS, Jul. 2004;
MOR´e et al., 1984; PRESS et al., 1992; SHEARER;
WOLFE, 1985). Contudo, apenas uma dessas (LOU-
RAKIS; ARGYROS, 2004) toma vantagem de uma es-
trutura, muito comum em problemas da vis˜ao computa-
cional, que faz com que a minimizac¸˜ao n˜ao-linear pro-
duza uma matriz Jacobiana esparsa. Se isso for levado
em considerac¸˜ao, para a estimac¸˜ao de N parˆametros, a
complexidade do algoritmo reduz-se de N3 para apenas
N.
Neste trabalho, apresenta-se uma implementac¸˜ao
do Levenberg-Marquardt, chamada Levenberg-
Considerando o modelo de cˆamera pinhole (FAU-
GERAS; LUONG, 2001), as coordenadas de um ponto
3D no sistema de coordenadas do ambiente de uma
cˆamera s˜ao apresentadas como M = [x, y, z]T e a
projec¸˜ao correspondente no plano de imagem I, como
m = [u, v]T . Al´em disso, as coordenadas homogˆeneas
de um ponto m = [u, v, ...]T s˜ao representadas por �m,
isto ´e, �m = [u, v, ..., 1]T . De forma mais geral, um
ponto qualquer em coordenadas homogˆeneas ´e repre-
sentado por �m = [u, v, ..., t]T . Um ´ındice, se houver,
indica a posic¸˜ao do ponto em um conjunto de pontos.
Com a notac¸˜ao adotada, a relac¸˜ao entre um ponto
3D, M, e sua projec¸˜ao, m, em uma cˆamera pinhole ´e
dada por
�m � A
�
I3 03
�
�M, (1)
com
A =


α 0 u0
0 β v0

 , (2)
= [u,v,...,t]T
. Um índice,
se houver, indica a posição do ponto em um
conjunto de pontos.
Com a notação adotada, a relação entre um ponto
3D, M, e sua projeção, m, em uma câmera pinhole
é dada por
53
Semina: Ciências Exatas e Tecnológicas, Londrina, v. 30, n. 1, p. 51-62, jan./jun. 2009
Uma implementação do algoritmo Levenberg-Marquardt dividido para aplicações em visão computacional
˜ao computa-
o-linear pro-
o for levado
arˆametros, a
para apenas
plementac¸˜ao
Levenberg-
plicada em
ana esparsa.
o em v´arios
ma frac¸˜ao da
apidamente.
nguagem do
modificac¸˜oes
no Octave R�.
Levenberg-
entac¸˜ao pro-
ˆameras com
04). Neste
conjunto de
s, estimar-se
calizac¸˜ao da
onal. Resul-
o ´e capaz de
e em poucas
ores s˜ao re-
olos em ne-
n´umeros ou
-se a pr´atica
toda matriz
indica a posic¸˜ao do ponto em um conjunto de pontos.
Com a notac¸˜ao adotada, a relac¸˜ao entre um ponto
3D, M, e sua projec¸˜ao, m, em uma cˆamera pinhole ´e
dada por
�m � A
�
I3 03
�
�M, (1)
com
A =


α 0 u0
0 β v0
0 0 1

 , (2)
onde “�” indica que os dois lados da equac¸˜ao podem di-
ferir por uma constante, α e β d˜ao a relac¸˜ao entre pixels
da imagem e distˆancias no ambiente da cˆamera, respec-
tivamente, nas direc¸˜oes horizontal e vertical. J´a o ponto
m0 = [u0, v0]T s˜ao as coordenadas do ponto central
da cˆamera. Sendo assim, h´a apenas quatro parˆametros
intr´ınsecos a serem estimados durante a calibrac¸˜ao, ou
seja, α, β, u0 e v0.
3 Algoritmo Levenberg-Marquardt
Considerando a seguinte func¸˜ao n˜ao-linear
F(Y) = X, (3)
onde X ∈ IRM
e Y ∈ IRN
s˜ao vetores e M ≥ N.
Freq¨uentemente, ´e necess´ario estimar o vetor �Y que me-
lhor ajusta-se a um vetor �X medido. Esse problema
pode ser reformulado como, dado o vetor �X, encontrar
�Y que minimiza ���, sujeito a �X = F( �Y) + �.
Dada uma estimac¸˜ao inicial �Y, o m´etodo de New-
ton (PRESS et al., 1992) a refina assumindo que F( �Y+
∆) = F( �Y) + J∆, onde J ´e a matriz jacobiana, ou
seja, J = ∂X/∂Y, e ∆ ´e um que indica um “pequeno”
incremento de �Y. Dessa forma, minimizar ��� equivale
a minimizar
�� − J∆�, (4)
cnol´ogicas, Londrina, v. 26, n. 2, p. 195-203, jul./dez. 2005
(1)
com
0
0
0
0
0 0 1
u
A v
α
β
 
 =  
  
, (2)
onde “
-
o
-
s
;
;
-
-
-
-
o
a
s
o
-
m
.
s
a
.
o
s
.
-
-
m
e
e
e
a
-
e
s
-
-
u
a
z
Considerando o modelo de cˆamera pinhole (FAU-
GERAS; LUONG, 2001), as coordenadas de um ponto
3D no sistema de coordenadas do ambiente de uma
cˆamera s˜ao apresentadas como M = [x, y, z]T e a
projec¸˜ao correspondente no plano de imagem I, como
m = [u, v]T . Al´em disso, as coordenadas homogˆeneas
de um ponto m = [u, v, ...]T s˜ao representadas por �m,
isto ´e, �m = [u, v, ..., 1]T . De forma mais geral, um
ponto qualquer em coordenadas homogˆeneas ´e repre-
sentado por �m = [u, v, ..., t]T . Um ´ındice, se houver,
indica a posic¸˜ao do ponto em um conjunto de pontos.
Com a notac¸˜ao adotada, a relac¸˜ao entre um ponto
3D, M, e sua projec¸˜ao, m, em uma cˆamera pinhole ´e
dada por
�m � A
�
I3 03
�
�M, (1)
com
A =


α 0 u0
0 β v0
0 0 1

 , (2)
onde “�” indica que os dois lados da equac¸˜ao podem di-
ferir por uma constante, α e β d˜ao a relac¸˜ao entre pixels
da imagem e distˆancias no ambiente da cˆamera, respec-
tivamente, nas direc¸˜oes horizontal e vertical. J´a o ponto
m0 = [u0, v0]T s˜ao as coordenadas do ponto central
da cˆamera. Sendo assim, h´a apenas quatro parˆametros
intr´ınsecos a serem estimados durante a calibrac¸˜ao, ou
seja, α, β, u0 e v0.
3 Algoritmo Levenberg-Marquardt
Considerando a seguinte func¸˜ao n˜ao-linear
F(Y) = X, (3)
onde X ∈ IRM
e Y ∈ IRN
s˜ao vetores e M ≥ N.
Freq¨uentemente, ´e necess´ario estimar o vetor �Y que me-
lhor ajusta-se a um vetor �X medido. Esse problema
pode ser reformulado como, dado o vetor �X, encontrar
�Y que minimiza ���, sujeito a �X = F( �Y) + �.
Dada uma estimac¸˜ao inicial �Y, o m´etodo de New-
ton (PRESS et al., 1992) a refina assumindo que F( �Y+
∆) = F( �Y) + J∆, onde J ´e a matriz jacobiana, ou
seja, J = ∂X/∂Y, e ∆ ´e um que indica um “pequeno”
incremento de �Y. Dessa forma, minimizar ��� equivale
a minimizar
�� − J∆�, (4)
ondrina, v. 26, n. 2, p. 195-203, jul./dez. 2005
” indica que os dois lados da equação
podem diferir por uma constante, α e β dão a relação
entre pixels da imagem e distâncias no ambiente da
câmera, respectivamente, nas direções horizontal
e vertical. Já o ponto
es dispon´ıveis (LOURAKIS, Jul. 2004;
1984; PRESS et al., 1992; SHEARER;
5). Contudo, apenas uma dessas (LOU-
YROS, 2004) toma vantagem de uma es-
comum em problemas da vis˜ao computa-
z com que a minimizac¸˜ao n˜ao-linear pro-
triz Jacobiana esparsa. Se isso for levado
c¸˜ao, para a estimac¸˜ao de N parˆametros, a
do algoritmo reduz-se de N3 para apenas
balho, apresenta-se uma implementac¸˜ao
rg-Marquardt, chamada Levenberg-
Dividido, que pode ser aplicada em
e apresentam a matriz Jacobiana esparsa.
o lac¸o de iterac¸˜ao ´e dividido em v´arios
nores que possuem apenas uma frac¸˜ao da
e s˜ao resolvidos muito mais rapidamente.
ntac¸˜ao foi codificada em linguagem do
e pode ser executada sem modificac¸˜oes
LAB R� quanto no Scilab R� e no Octave R�.
mplificar o uso do algoritmo Levenberg-
vidido, aplicou-se a implementac¸˜ao pro-
blema de calibrac¸˜ao de cˆameras com
m gabarito 1D (ZHANG, 2004). Neste
do ´e utilizado para, dado um conjunto de
gabarito em diversas imagens, estimar-se
intr´ınsecos da cˆamera e a localizac¸˜ao da
gabarito no espac¸o tridimensional. Resul-
entais mostram que o m´etodo ´e capaz de
mac¸˜ao de forma satisfat´oria e em poucas
mo na presenc¸a de ru´ıdo.
˜ao
rer do texto, matrizes e vetores s˜ao re-
or letras, n´umeros ou s´ımbolos em ne-
ntes s˜ao expressas por letras, n´umeros ou
it´alico. Al´em disso, adotou-se a pr´atica
= (A−1)T = (AT )−1 para toda matriz
vers´ıvel.
m = [u, v]T . Al´em disso, as coordenadas homogˆeneas
de um ponto m = [u, v, ...]T s˜ao representadas por �m,
isto ´e, �m = [u, v, ..., 1]T . De forma mais geral, um
ponto qualquer em coordenadas homogˆeneas ´e repre-
sentado por �m = [u, v, ..., t]T . Um ´ındice, se houver,
indica a posic¸˜ao do ponto em um conjunto de pontos.
Com a notac¸˜ao adotada, a relac¸˜ao entre um ponto
3D, M, e sua projec¸˜ao, m, em uma cˆamera pinhole ´e
dada por
�m � A
�
I3 03
�
�M, (1)
com
A =


α 0 u0
0 β v0
0 0 1

 , (2)
onde “�” indica que os dois lados da equac¸˜ao podem di-
ferir por uma constante, α e β d˜ao a relac¸˜ao entre pixels
da imagem e distˆancias no ambiente da cˆamera, respec-
tivamente, nas direc¸˜oes horizontal e vertical. J´a o ponto
m0 = [u0, v0]T s˜ao as coordenadas do ponto central
da cˆamera. Sendo assim, h´a apenas quatro parˆametros
intr´ınsecos a serem estimados durante a calibrac¸˜ao, ou
seja, α, β, u0 e v0.
3 Algoritmo Levenberg-Marquardt
Considerando a seguinte func¸˜ao n˜ao-linear
F(Y) = X, (3)
onde X ∈ IRM
e Y ∈ IRN
s˜ao vetores e M ≥ N.
Freq¨uentemente, ´e necess´ario estimar o vetor �Y que me-
lhor ajusta-se a um vetor �X medido. Esse problema
pode ser reformulado como, dado o vetor �X, encontrar
�Y que minimiza ���, sujeito a �X = F( �Y) + �.
Dada uma estimac¸˜ao inicial �Y, o m´etodo de New-
ton (PRESS et al., 1992) a refina assumindo que F( �Y+
∆) = F( �Y) + J∆, onde J ´e a matriz jacobiana, ou
seja, J = ∂X/∂Y, e ∆ ´e um que indica um “pequeno”
incremento de �Y. Dessa forma, minimizar ��� equivale
a minimizar
�� − J∆�, (4)
Semina: Ciˆencias Exatas e Tecnol´ogicas, Londrina, v. 26, n. 2, p. 195-203, jul./dez. 2005
são as
coordenadas do ponto central da câmera. Sendo
assim, há apenas quatro parâmetros intrínsecos a
serem estimados durante a calibração, ou seja, α, β,
0u e 0v .
Algoritmo Levenberg-Marquardt
Considerando a seguinte função não-linear
do algo-
de diversas
Jul. 2004;
HEARER;
sas (LOU-
de uma es-
o computa-
linear pro-
for levado
rˆametros, a
para apenas
ementac¸˜ao
Levenberg-
licada em
na esparsa.
em v´arios
a frac¸˜ao da
pidamente.
guagem do
odificac¸˜oes
o Octave R�.
Levenberg-
ntac¸˜ao pro-
meras com
4). Neste
onjunto de
estimar-se
alizac¸˜ao da
nal. Resul-
´e capaz de
em poucas
res s˜ao re-
os em ne-
´umeros ou
e a pr´atica
oda matriz
projec¸˜ao correspondente no plano de imagem I, como
m = [u, v]T . Al´em disso, as coordenadas homogˆeneas
de um ponto m = [u, v, ...]T s˜ao representadas por �m,
isto ´e, �m = [u, v, ..., 1]T . De forma mais geral, um
ponto qualquer em coordenadas homogˆeneas ´e repre-
sentado por �m = [u, v, ..., t]T . Um ´ındice, se houver,
indica a posic¸˜ao do ponto em um conjunto de pontos.
Com a notac¸˜ao adotada, a relac¸˜ao entre um ponto
3D, M, e sua projec¸˜ao, m, em uma cˆamera pinhole ´e
dada por
�m � A
�
I3 03
�
�M, (1)
com
A =


α 0 u0
0 β v0
0 0 1

 , (2)
onde “�” indica que os dois lados da equac¸˜ao podem di-
ferir por uma constante, α e β d˜ao a relac¸˜ao entre pixels
da imagem e distˆancias no ambiente da cˆamera, respec-
tivamente, nas direc¸˜oes horizontal e vertical. J´a o ponto
m0 = [u0, v0]T s˜ao as coordenadas do ponto central
da cˆamera. Sendo assim, h´a apenas quatro parˆametros
intr´ınsecos a serem estimados durante a calibrac¸˜ao, ou
seja, α, β, u0 e v0.
3 Algoritmo Levenberg-Marquardt
Considerando a seguinte func¸˜ao n˜ao-linear
F(Y) = X, (3)
onde X ∈ IRM
e Y ∈ IRN
s˜ao vetores e M ≥ N.
Freq¨uentemente, ´e necess´ario estimar o vetor �Y que me-
lhor ajusta-se a um vetor �X medido. Esse problema
pode ser reformulado como, dado o vetor �X, encontrar
�Y que minimiza ���, sujeito a �X = F( �Y) + �.
Dada uma estimac¸˜ao inicial �Y, o m´etodo de New-
ton (PRESS et al., 1992) a refina assumindo que F( �Y+
∆) = F( �Y) + J∆, onde J ´e a matriz jacobiana, ou
seja, J = ∂X/∂Y, e ∆ ´e um que indica um “pequeno”
incremento de �Y. Dessa forma, minimizar ��� equivale
a minimizar
�� − J∆�, (4)
nol´ogicas, Londrina, v. 26, n. 2, p. 195-203, jul./dez. 2005
(3)
onde X∈
3D no sistema de coordenadas do ambiente de uma
cˆamera s˜ao apresentadas como M = [x, y, z]T e a
projec¸˜ao correspondente no plano de imagem I, como
m = [u, v]T . Al´em disso, as coordenadas homogˆeneas
de um ponto m = [u, v, ...]T s˜ao representadas por �m,
isto ´e, �m = [u, v, ..., 1]T . De forma mais geral, um
ponto qualquer em coordenadas homogˆeneas ´e repre-
sentado por �m = [u, v, ..., t]T . Um ´ındice, se houver,
indica a posic¸˜ao do ponto em um conjunto de pontos.
Com a notac¸˜ao adotada, a relac¸˜ao entre um ponto
3D, M, e sua projec¸˜ao, m, em uma cˆamera pinhole ´e
dada por
�m � A
�
I3 03
�
�M, (1)
com
A =


α 0 u0
0 β v0
0 0 1

 , (2)
onde “�” indica que os dois lados da equac¸˜ao podem di-
ferir por uma constante, α e β d˜ao a relac¸˜ao entre pixels
da imagem e distˆancias no ambiente da cˆamera, respec-
tivamente, nas direc¸˜oes horizontal e vertical. J´a o ponto
m0 = [u0, v0]T s˜ao as coordenadas do ponto central
da cˆamera. Sendo assim, h´a apenas quatro parˆametros
intr´ınsecos a serem estimados durante a calibrac¸˜ao, ou
seja, α, β, u0 e v0.
3 Algoritmo Levenberg-Marquardt
Considerando a seguinte func¸˜ao n˜ao-linear
F(Y) = X, (3)
onde X ∈ IRM
e Y ∈ IRN
s˜ao vetores e M ≥ N.
Freq¨uentemente, ´e necess´ario estimar o vetor �Y que me-
lhor ajusta-se a um vetor �X medido. Esse problema
pode ser reformulado como, dado o vetor �X, encontrar
�Y que minimiza ���, sujeito a �X = F( �Y) + �.
Dada uma estimac¸˜ao inicial �Y, o m´etodo de New-
ton (PRESS et al., 1992) a refina assumindo que F( �Y+
∆) = F( �Y) + J∆, onde J ´e a matriz jacobiana, ou
seja, J = ∂X/∂Y, e ∆ ´e um que indica um “pequeno”
incremento de �Y. Dessa forma, minimizar ��� equivale
a minimizar
�� − J∆�, (4)
ndrina, v. 26, n. 2, p. 195-203, jul./dez. 2005
M
e Y∈
is r´apida.
do algo-
e diversas
ul. 2004;
HEARER;
sas (LOU-
de uma es-
computa-
linear pro-
for levado
ˆametros, a
ara apenas
ementac¸˜ao
Levenberg-
icada em
na esparsa.
em v´arios
a frac¸˜ao da
pidamente.
uagem do
odificac¸˜oes
Octave R�.
Levenberg-
tac¸˜ao pro-
meras com
4). Neste
onjunto de
estimar-se
lizac¸˜ao da
nal. Resul-
´e capaz de
em poucas
es s˜ao re-
os em ne-
´umeros ou
e a pr´atica
oda matriz
3D no sistema de coordenadas do ambiente de uma
cˆamera s˜ao apresentadas como M = [x, y, z]T e a
projec¸˜ao correspondente no plano de imagem I, como
m = [u, v]T . Al´em disso, as coordenadas homogˆeneas
de um ponto m = [u, v, ...]T s˜ao representadas por �m,
isto ´e, �m = [u, v, ..., 1]T . De forma mais geral, um
ponto qualquer em coordenadas homogˆeneas ´e repre-
sentado por �m = [u, v, ..., t]T . Um ´ındice, se houver,
indica a posic¸˜ao do ponto em um conjunto de pontos.
Com a notac¸˜ao adotada, a relac¸˜ao entre um ponto
3D, M, e sua projec¸˜ao, m, em uma cˆamera pinhole ´e
dada por
�m � A
�
I3 03
�
�M, (1)
com
A =


α 0 u0
0 β v0
0 0 1

 , (2)
onde “�” indica que os dois lados da equac¸˜ao podem di-
ferir por uma constante, α e β d˜ao a relac¸˜ao entre pixels
da imagem e distˆancias no ambiente da cˆamera, respec-
tivamente, nas direc¸˜oes horizontal e vertical. J´a o ponto
m0 = [u0, v0]T s˜ao as coordenadas do ponto central
da cˆamera. Sendo assim, h´a apenas quatro parˆametros
intr´ınsecos a serem estimados durante a calibrac¸˜ao, ou
seja, α, β, u0 e v0.
3 Algoritmo Levenberg-Marquardt
Considerando a seguinte func¸˜ao n˜ao-linear
F(Y) = X, (3)
onde X ∈ IRM
e Y ∈ IRN
s˜ao vetores e M ≥ N.
Freq¨uentemente, ´e necess´ario estimar o vetor �Y que me-
lhor ajusta-se a um vetor �X medido. Esse problema
pode ser reformulado como, dado o vetor �X, encontrar
�Y que minimiza ���, sujeito a �X = F( �Y) + �.
Dada uma estimac¸˜ao inicial �Y, o m´etodo de New-
ton (PRESS et al., 1992) a refina assumindo que F( �Y+
∆) = F( �Y) + J∆, onde J ´e a matriz jacobiana, ou
seja, J = ∂X/∂Y, e ∆ ´e um que indica um “pequeno”
incremento de �Y. Dessa forma, minimizar ��� equivale
a minimizar
�� − J∆�, (4)
ol´ogicas, Londrina, v. 26, n. 2, p. 195-203, jul./dez. 2005
N
são vetores e M≥N .
Freqüentemente, é necessário estimar o vetor
ESS et al., 1992; SHEARER;
do, apenas uma dessas (LOU-
04) toma vantagem de uma es-
m problemas da vis˜ao computa-
a minimizac¸˜ao n˜ao-linear pro-
na esparsa. Se isso for levado
estimac¸˜ao de N parˆametros, a
mo reduz-se de N3 para apenas
esenta-se uma implementac¸˜ao
rdt, chamada Levenberg-
que pode ser aplicada em
m a matriz Jacobiana esparsa.
terac¸˜ao ´e dividido em v´arios
possuem apenas uma frac¸˜ao da
vidos muito mais rapidamente.
codificada em linguagem do
executada sem modificac¸˜oes
anto no Scilab R� e no Octave R�.
uso do algoritmo Levenberg-
icou-se a implementac¸˜ao pro-
calibrac¸˜ao de cˆameras com
1D (ZHANG, 2004). Neste
do para, dado um conjunto de
m diversas imagens, estimar-se
s da cˆamera e a localizac¸˜ao da
o espac¸o tridimensional. Resul-
tram que o m´etodo ´e capaz de
orma satisfat´oria e em poucas
enc¸a de ru´ıdo.
to, matrizes e vetores s˜ao re-
n´umeros ou s´ımbolos em ne-
pressas por letras, n´umeros ou
l´em disso, adotou-se a pr´atica
T = (AT )−1 para toda matriz
de um ponto m = [u, v, ...] s˜ao representadas por �m,
isto ´e, �m = [u, v, ..., 1]T . De forma mais geral, um
ponto qualquer em coordenadas homogˆeneas ´e repre-
sentado por �m = [u, v, ..., t]T . Um ´ındice, se houver,
indica a posic¸˜ao do ponto em um conjunto de pontos.
Com a notac¸˜ao adotada, a relac¸˜ao entre um ponto
3D, M, e sua projec¸˜ao, m, em uma cˆamera pinhole ´e
dada por
�m � A
�
I3 03
�
�M, (1)
com
A =


α 0 u0
0 β v0
0 0 1

 , (2)
onde “�” indica que os dois lados da equac¸˜ao podem di-
ferir por uma constante, α e β d˜ao a relac¸˜ao entre pixels
da imagem e distˆancias no ambiente da cˆamera, respec-
tivamente, nas direc¸˜oes horizontal e vertical. J´a o ponto
m0 = [u0, v0]T s˜ao as coordenadas do ponto central
da cˆamera. Sendo assim, h´a apenas quatro parˆametros
intr´ınsecos a serem estimados durante a calibrac¸˜ao, ou
seja, α, β, u0 e v0.
3 Algoritmo Levenberg-Marquardt
Considerando a seguinte func¸˜ao n˜ao-linear
F(Y) = X, (3)
onde X ∈ IRM
e Y ∈ IRN
s˜ao vetores e M ≥ N.
Freq¨uentemente, ´e necess´ario estimar o vetor �Y que me-
lhor ajusta-se a um vetor �X medido. Esse problema
pode ser reformulado como, dado o vetor �X, encontrar
�Y que minimiza ���, sujeito a �X = F( �Y) + �.
Dada uma estimac¸˜ao inicial �Y, o m´etodo de New-
ton (PRESS et al., 1992) a refina assumindo que F( �Y+
∆) = F( �Y) + J∆, onde J ´e a matriz jacobiana, ou
seja, J = ∂X/∂Y, e ∆ ´e um que indica um “pequeno”
incremento de �Y. Dessa forma, minimizar ��� equivale
a minimizar
�� − J∆�, (4)
Ciˆencias Exatas e Tecnol´ogicas, Londrina, v. 26, n. 2, p. 195-203, jul./dez. 2005
que melhor se ajusta a um vetor
rgˆencia mais r´apida.
ularidade do algo-
existˆencia de diversas
URAKIS, Jul. 2004;
., 1992; SHEARER;
s uma dessas (LOU-
vantagem de uma es-
mas da vis˜ao computa-
zac¸˜ao n˜ao-linear pro-
sa. Se isso for levado
o de N parˆametros, a
se de N3 para apenas
uma implementac¸˜ao
hamada Levenberg-
e ser aplicada em
iz Jacobiana esparsa.
´e dividido em v´arios
apenas uma frac¸˜ao da
ito mais rapidamente.
a em linguagem do
da sem modificac¸˜oes
cilab R� e no Octave R�.
algoritmo Levenberg-
implementac¸˜ao pro-
˜ao de cˆameras com
ANG, 2004). Neste
dado um conjunto de
s imagens, estimar-se
era e a localizac¸˜ao da
ridimensional. Resul-
o m´etodo ´e capaz de
isfat´oria e em poucas
u´ıdo.
zes e vetores s˜ao re-
ou s´ımbolos em ne-
or letras, n´umeros ou
, adotou-se a pr´atica
)−1 para toda matriz
3D no sistema de coordenadas do ambiente de uma
cˆamera s˜ao apresentadas como M = [x, y, z]T e a
projec¸˜ao correspondente no plano de imagem I, como
m = [u, v]T . Al´em disso, as coordenadas homogˆeneas
de um ponto m = [u, v, ...]T s˜ao representadas por �m,
isto ´e, �m = [u, v, ..., 1]T . De forma mais geral, um
ponto qualquer em coordenadas homogˆeneas ´e repre-
sentado por �m = [u, v, ..., t]T . Um ´ındice, se houver,
indica a posic¸˜ao do ponto em um conjunto de pontos.
Com a notac¸˜ao adotada, a relac¸˜ao entre um ponto
3D, M, e sua projec¸˜ao, m, em uma cˆamera pinhole ´e
dada por
�m � A
�
I3 03
�
�M, (1)
com
A =


α 0 u0
0 β v0
0 0 1

 , (2)
onde “�” indica que os dois lados da equac¸˜ao podem di-
ferir por uma constante, α e β d˜ao a relac¸˜ao entre pixels
da imagem e distˆancias no ambiente da cˆamera, respec-
tivamente, nas direc¸˜oes horizontal e vertical. J´a o ponto
m0 = [u0, v0]T s˜ao as coordenadas do ponto central
da cˆamera. Sendo assim, h´a apenas quatro parˆametros
intr´ınsecos a serem estimados durante a calibrac¸˜ao, ou
seja, α, β, u0 e v0.
3 Algoritmo Levenberg-Marquardt
Considerando a seguinte func¸˜ao n˜ao-linear
F(Y) = X, (3)
onde X ∈ IRM
e Y ∈ IRN
s˜ao vetores e M ≥ N.
Freq¨uentemente, ´e necess´ario estimar o vetor �Y que me-
lhor ajusta-se a um vetor �X medido. Esse problema
pode ser reformulado como, dado o vetor �X, encontrar
�Y que minimiza ���, sujeito a �X = F( �Y) + �.
Dada uma estimac¸˜ao inicial �Y, o m´etodo de New-
ton (PRESS et al., 1992) a refina assumindo que F( �Y+
∆) = F( �Y) + J∆, onde J ´e a matriz jacobiana, ou
seja, J = ∂X/∂Y, e ∆ ´e um que indica um “pequeno”
incremento de �Y. Dessa forma, minimizar ��� equivale
a minimizar
�� − J∆�, (4)
xatas e Tecnol´ogicas, Londrina, v. 26, n. 2, p. 195-203, jul./dez. 2005
medido. Esse
problema pode ser reformulado como, dado o vetor
derando o modelo de cˆamera pinhole (FAU-
LUONG, 2001), as coordenadas de um ponto
tema de coordenadas do ambiente de uma
o apresentadas como M = [x, y, z]T e a
orrespondente no plano de imagem I, como
]T . Al´em disso, as coordenadas homogˆeneas
nto m = [u, v, ...]T s˜ao representadas por �m,
= [u, v, ..., 1]T . De forma mais geral, um
lquer em coordenadas homogˆeneas ´e repre-
or �m = [u, v, ..., t]T . Um ´ındice, se houver,
osic¸˜ao do ponto em um conjunto de pontos.
a notac¸˜ao adotada, a relac¸˜ao entre um ponto
sua projec¸˜ao, m, em uma cˆamera pinhole ´e
�m � A
�
I3 03
�
�M, (1)
A =


α 0 u0
0 β v0
0 0 1

 , (2)
indica que os dois lados da equac¸˜ao podem di-
ma constante, α e β d˜ao a relac¸˜ao entre pixels
m e distˆancias no ambiente da cˆamera, respec-
nas direc¸˜oes horizontal e vertical. J´a o ponto
0, v0]T s˜ao as coordenadas do ponto central
. Sendo assim, h´a apenas quatro parˆametros
s a serem estimados durante a calibrac¸˜ao, ou
u0 e v0.
oritmo Levenberg-Marquardt
derando a seguinte func¸˜ao n˜ao-linear
F(Y) = X, (3)
∈ IRM
e Y ∈ IRN
s˜ao vetores e M ≥ N.
mente, ´e necess´ario estimar o vetor �Y que me-
a-se a um vetor �X medido. Esse problema
eformulado como, dado o vetor �X, encontrar
nimiza ���, sujeito a �X = F( �Y) + �.
uma estimac¸˜ao inicial �Y, o m´etodo de New-
S et al., 1992) a refina assumindo que F( �Y+
( �Y) + J∆, onde J ´e a matriz jacobiana, ou
∂X/∂Y, e ∆ ´e um que indica um “pequeno”
o de �Y. Dessa forma, minimizar ��� equivale
ar
�� − J∆�, (4)
, n. 2, p. 195-203, jul./dez. 2005
, encontrar
cˆamera s˜ao apresentadas como M = [x, y, z]T e a
projec¸˜ao correspondente no plano de imagem I, como
m = [u, v]T . Al´em disso, as coordenadas homogˆeneas
de um ponto m = [u, v, ...]T s˜ao representadas por �m,
isto ´e, �m = [u, v, ..., 1]T . De forma mais geral, um
ponto qualquer em coordenadas homogˆeneas ´e repre-
sentado por �m = [u, v, ..., t]T . Um ´ındice, se houver,
indica a posic¸˜ao do ponto em um conjunto de pontos.
Com a notac¸˜ao adotada, a relac¸˜ao entre um ponto
3D, M, e sua projec¸˜ao, m, em uma cˆamera pinhole ´e
dada por
�m � A
�
I3 03
�
�M, (1)
com
A =


α 0 u0
0 β v0
0 0 1

 , (2)
onde “�” indica que os dois lados da equac¸˜ao podem di-
ferir por uma constante, α e β d˜ao a relac¸˜ao entre pixels
da imagem e distˆancias no ambiente da cˆamera, respec-
tivamente, nas direc¸˜oes horizontal e vertical. J´a o ponto
m0 = [u0, v0]T s˜ao as coordenadas do ponto central
da cˆamera. Sendo assim, h´a apenas quatro parˆametros
intr´ınsecos a serem estimados durante a calibrac¸˜ao, ou
seja, α, β, u0 e v0.
3 Algoritmo Levenberg-Marquardt
Considerando a seguinte func¸˜ao n˜ao-linear
F(Y) = X, (3)
onde X ∈ IRM
e Y ∈ IRN
s˜ao vetores e M ≥ N.
Freq¨uentemente, ´e necess´ario estimar o vetor �Y que me-
lhor ajusta-se a um vetor �X medido. Esse problema
pode ser reformulado como, dado o vetor �X, encontrar
�Y que minimiza ���, sujeito a �X = F( �Y) + �.
Dada uma estimac¸˜ao inicial �Y, o m´etodo de New-
ton (PRESS et al., 1992) a refina assumindo que F( �Y+
∆) = F( �Y) + J∆, onde J ´e a matriz jacobiana, ou
seja, J = ∂X/∂Y, e ∆ ´e um que indica um “pequeno”
incremento de �Y. Dessa forma, minimizar ��� equivale
a minimizar
�� − J∆�, (4)
drina, v. 26, n. 2, p. 195-203, jul./dez. 2005
que minimiza ||
apida.
algo-
iversas
2004;
ARER;
(LOU-
ma es-
mputa-
ar pro-
levado
tros, a
apenas
ntac¸˜ao
nberg-
a em
sparsa.
v´arios
c¸˜ao da
mente.
em do
cac¸˜oes
tave R�.
nberg-
o pro-
s com
Neste
nto de
mar-se
c¸˜ao da
Resul-
paz de
poucas
˜ao re-
m ne-
ros ou
pr´atica
matriz
3D no sistema de coordenadas do ambiente de uma
cˆamera s˜ao apresentadas como M = [x, y, z]T e a
projec¸˜ao correspondente no plano de imagem I, como
m = [u, v]T . Al´em disso, as coordenadas homogˆeneas
de um ponto m = [u, v, ...]T s˜ao representadas por �m,
isto ´e, �m = [u, v, ..., 1]T . De forma mais geral, um
ponto qualquer em coordenadas homogˆeneas ´e repre-
sentado por �m = [u, v, ..., t]T . Um ´ındice, se houver,
indica a posic¸˜ao do ponto em um conjunto de pontos.
Com a notac¸˜ao adotada, a relac¸˜ao entre um ponto
3D, M, e sua projec¸˜ao, m, em uma cˆamera pinhole ´e
dada por
�m � A
�
I3 03
�
�M, (1)
com
A =


α 0 u0
0 β v0
0 0 1

 , (2)
onde “�” indica que os dois lados da equac¸˜ao podem di-
ferir por uma constante, α e β d˜ao a relac¸˜ao entre pixels
da imagem e distˆancias no ambiente da cˆamera, respec-
tivamente, nas direc¸˜oes horizontal e vertical. J´a o ponto
m0 = [u0, v0]T s˜ao as coordenadas do ponto central
da cˆamera. Sendo assim, h´a apenas quatro parˆametros
intr´ınsecos a serem estimados durante a calibrac¸˜ao, ou
seja, α, β, u0 e v0.
3 Algoritmo Levenberg-Marquardt
Considerando a seguinte func¸˜ao n˜ao-linear
F(Y) = X, (3)
onde X ∈ IRM
e Y ∈ IRN
s˜ao vetores e M ≥ N.
Freq¨uentemente, ´e necess´ario estimar o vetor �Y que me-
lhor ajusta-se a um vetor �X medido. Esse problema
pode ser reformulado como, dado o vetor �X, encontrar
�Y que minimiza ���, sujeito a �X = F( �Y) + �.
Dada uma estimac¸˜ao inicial �Y, o m´etodo de New-
ton (PRESS et al., 1992) a refina assumindo que F( �Y+
∆) = F( �Y) + J∆, onde J ´e a matriz jacobiana, ou
seja, J = ∂X/∂Y, e ∆ ´e um que indica um “pequeno”
incremento de �Y. Dessa forma, minimizar ��� equivale
a minimizar
�� − J∆�, (4)
icas, Londrina, v. 26, n. 2, p. 195-203, jul./dez. 2005
||, sujeito a
ando o modelo de camera pinhole (FAU-
ONG, 2001), as coordenadas de um ponto
a de coordenadas do ambiente de uma
presentadas como M = [x, y, z]T e a
spondente no plano de imagem I, como
Al´em disso, as coordenadas homogˆeneas
m = [u, v, ...]T s˜ao representadas por �m,
[u, v, ..., 1]T . De forma mais geral, um
er em coordenadas homogˆeneas ´e repre-
m = [u, v, ..., t]T . Um ´ındice, se houver,
˜ao do ponto em um conjunto de pontos.
otac¸˜ao adotada, a relac¸˜ao entre um ponto
projec¸˜ao, m, em uma cˆamera pinhole ´e
�m � A
�
I3 03
�
�M, (1)
A =


α 0 u0
0 β v0
0 0 1

 , (2)
ca que os dois lados da equac¸˜ao podem di-
constante, α e β d˜ao a relac¸˜ao entre pixels
distˆancias no ambiente da cˆamera, respec-
direc¸˜oes horizontal e vertical. J´a o ponto
0]T s˜ao as coordenadas do ponto central
endo assim, h´a apenas quatro parˆametros
erem estimados durante a calibrac¸˜ao, ou
e v0.
tmo Levenberg-Marquardt
ando a seguinte func¸˜ao n˜ao-linear
F(Y) = X, (3)
M
e Y ∈ IRN
s˜ao vetores e M ≥ N.
te, ´e necess´ario estimar o vetor �Y que me-
a um vetor �X medido. Esse problema
mulado como, dado o vetor �X, encontrar
za ���, sujeito a �X = F( �Y) + �.
a estimac¸˜ao inicial �Y, o m´etodo de New-
al., 1992) a refina assumindo que F( �Y+
+ J∆, onde J ´e a matriz jacobiana, ou
/∂Y, e ∆ ´e um que indica um “pequeno”
�Y. Dessa forma, minimizar ��� equivale
�� − J∆�, (4)
2, p. 195-203, jul./dez. 2005
Dada uma estimação inicial
LERASLE; RI-
ma derivac¸˜ao do
a mais r´apida.
ade do algo-
cia de diversas
KIS, Jul. 2004;
2; SHEARER;
a dessas (LOU-
gem de uma es-
vis˜ao computa-
n˜ao-linear pro-
isso for levado
N parˆametros, a
N3 para apenas
implementac¸˜ao
a Levenberg-
aplicada em
obiana esparsa.
dido em v´arios
s uma frac¸˜ao da
is rapidamente.
linguagem do
m modificac¸˜oes
e no Octave R�.
mo Levenberg-
ementac¸˜ao pro-
cˆameras com
2004). Neste
um conjunto de
gens, estimar-se
localizac¸˜ao da
nsional. Resul-
odo ´e capaz de
ia e em poucas
vetores s˜ao re-
mbolos em ne-
as, n´umeros ou
ou-se a pr´atica
ara toda matriz
Considerando o modelo de cˆamera pinhole (FAU-
GERAS; LUONG, 2001), as coordenadas de um ponto
3D no sistema de coordenadas do ambiente de uma
cˆamera s˜ao apresentadas como M = [x, y, z]T e a
projec¸˜ao correspondente no plano de imagem I, como
m = [u, v]T . Al´em disso, as coordenadas homogˆeneas
de um ponto m = [u, v, ...]T s˜ao representadas por �m,
isto ´e, �m = [u, v, ..., 1]T . De forma mais geral, um
ponto qualquer em coordenadas homogˆeneas ´e repre-
sentado por �m = [u, v, ..., t]T . Um ´ındice, se houver,
indica a posic¸˜ao do ponto em um conjunto de pontos.
Com a notac¸˜ao adotada, a relac¸˜ao entre um ponto
3D, M, e sua projec¸˜ao, m, em uma cˆamera pinhole ´e
dada por
�m � A
�
I3 03
�
�M, (1)
com
A =


α 0 u0
0 β v0
0 0 1

 , (2)
onde “�” indica que os dois lados da equac¸˜ao podem di-
ferir por uma constante, α e β d˜ao a relac¸˜ao entre pixels
da imagem e distˆancias no ambiente da cˆamera, respec-
tivamente, nas direc¸˜oes horizontal e vertical. J´a o ponto
m0 = [u0, v0]T s˜ao as coordenadas do ponto central
da cˆamera. Sendo assim, h´a apenas quatro parˆametros
intr´ınsecos a serem estimados durante a calibrac¸˜ao, ou
seja, α, β, u0 e v0.
3 Algoritmo Levenberg-Marquardt
Considerando a seguinte func¸˜ao n˜ao-linear
F(Y) = X, (3)
onde X ∈ IRM
e Y ∈ IRN
s˜ao vetores e M ≥ N.
Freq¨uentemente, ´e necess´ario estimar o vetor �Y que me-
lhor ajusta-se a um vetor �X medido. Esse problema
pode ser reformulado como, dado o vetor �X, encontrar
�Y que minimiza ���, sujeito a �X = F( �Y) + �.
Dada uma estimac¸˜ao inicial �Y, o m´etodo de New-
ton (PRESS et al., 1992) a refina assumindo que F( �Y+
∆) = F( �Y) + J∆, onde J ´e a matriz jacobiana, ou
seja, J = ∂X/∂Y, e ∆ ´e um que indica um “pequeno”
incremento de �Y. Dessa forma, minimizar ��� equivale
a minimizar
�� − J∆�, (4)
Tecnol´ogicas, Londrina, v. 26, n. 2, p. 195-203, jul./dez. 2005
, o método de
Newton (PRESS et al., 1992) a refina assumindo
que
al., 2006) e (LERASLE; RI-
e m´etodo ´e uma derivac¸˜ao do
e convergˆencia mais r´apida.
da popularidade do algo-
dt ´e a existˆencia de diversas
is (LOURAKIS, Jul. 2004;
SS et al., 1992; SHEARER;
, apenas uma dessas (LOU-
) toma vantagem de uma es-
problemas da vis˜ao computa-
minimizac¸˜ao n˜ao-linear pro-
a esparsa. Se isso for levado
timac¸˜ao de N parˆametros, a
o reduz-se de N3 para apenas
enta-se uma implementac¸˜ao
t, chamada Levenberg-
e pode ser aplicada em
a matriz Jacobiana esparsa.
rac¸˜ao ´e dividido em v´arios
ssuem apenas uma frac¸˜ao da
dos muito mais rapidamente.
odificada em linguagem do
xecutada sem modificac¸˜oes
o no Scilab R� e no Octave R�.
so do algoritmo Levenberg-
ou-se a implementac¸˜ao pro-
alibrac¸˜ao de cˆameras com
D (ZHANG, 2004). Neste
para, dado um conjunto de
diversas imagens, estimar-se
da cˆamera e a localizac¸˜ao da
spac¸o tridimensional. Resul-
am que o m´etodo ´e capaz de
ma satisfat´oria e em poucas
nc¸a de ru´ıdo.
matrizes e vetores s˜ao re-
meros ou s´ımbolos em ne-
essas por letras, n´umeros ou
m disso, adotou-se a pr´atica
= (AT )−1 para toda matriz
Considerando o modelo de cˆamera pinhole (FAU-
GERAS; LUONG, 2001), as coordenadas de um ponto
3D no sistema de coordenadas do ambiente de uma
cˆamera s˜ao apresentadas como M = [x, y, z]T e a
projec¸˜ao correspondente no plano de imagem I, como
m = [u, v]T . Al´em disso, as coordenadas homogˆeneas
de um ponto m = [u, v, ...]T s˜ao representadas por �m,
isto ´e, �m = [u, v, ..., 1]T . De forma mais geral, um
ponto qualquer em coordenadas homogˆeneas ´e repre-
sentado por �m = [u, v, ..., t]T . Um ´ındice, se houver,
indica a posic¸˜ao do ponto em um conjunto de pontos.
Com a notac¸˜ao adotada, a relac¸˜ao entre um ponto
3D, M, e sua projec¸˜ao, m, em uma cˆamera pinhole ´e
dada por
�m � A
�
I3 03
�
�M, (1)
com
A =


α 0 u0
0 β v0
0 0 1

 , (2)
onde “�” indica que os dois lados da equac¸˜ao podem di-
ferir por uma constante, α e β d˜ao a relac¸˜ao entre pixels
da imagem e distˆancias no ambiente da cˆamera, respec-
tivamente, nas direc¸˜oes horizontal e vertical. J´a o ponto
m0 = [u0, v0]T s˜ao as coordenadas do ponto central
da cˆamera. Sendo assim, h´a apenas quatro parˆametros
intr´ınsecos a serem estimados durante a calibrac¸˜ao, ou
seja, α, β, u0 e v0.
3 Algoritmo Levenberg-Marquardt
Considerando a seguinte func¸˜ao n˜ao-linear
F(Y) = X, (3)
onde X ∈ IRM
e Y ∈ IRN
s˜ao vetores e M ≥ N.
Freq¨uentemente, ´e necess´ario estimar o vetor �Y que me-
lhor ajusta-se a um vetor �X medido. Esse problema
pode ser reformulado como, dado o vetor �X, encontrar
�Y que minimiza ���, sujeito a �X = F( �Y) + �.
Dada uma estimac¸˜ao inicial �Y, o m´etodo de New-
ton (PRESS et al., 1992) a refina assumindo que F( �Y+
∆) = F( �Y) + J∆, onde J ´e a matriz jacobiana, ou
seja, J = ∂X/∂Y, e ∆ ´e um que indica um “pequeno”
incremento de �Y. Dessa forma, minimizar ��� equivale
a minimizar
�� − J∆�, (4)
ˆencias Exatas e Tecnol´ogicas, Londrina, v. 26, n. 2, p. 195-203, jul./dez. 2005
elo de cˆamera pinhole (FAU-
, as coordenadas de um ponto
enadas do ambiente de uma
como M = [x, y, z]T e a
no plano de imagem I, como
, as coordenadas homogˆeneas
..]T s˜ao representadas por �m,
T . De forma mais geral, um
denadas homogˆeneas ´e repre-
.., t]T . Um ´ındice, se houver,
em um conjunto de pontos.
ada, a relac¸˜ao entre um ponto
m, em uma cˆamera pinhole ´e
A
�
I3 03
�
�M, (1)
α 0 u0
0 β v0
0 0 1

 , (2)
is lados da equac¸˜ao podem di-
e β d˜ao a relac¸˜ao entre pixels
o ambiente da cˆamera, respec-
orizontal e vertical. J´a o ponto
coordenadas do ponto central
h´a apenas quatro parˆametros
ados durante a calibrac¸˜ao, ou
enberg-Marquardt
nte func¸˜ao n˜ao-linear
Y) = X, (3)
IRN
s˜ao vetores e M ≥ N.
´ario estimar o vetor �Y que me-
r �X medido. Esse problema
mo, dado o vetor �X, encontrar
eito a �X = F( �Y) + �.
inicial �Y, o m´etodo de New-
refina assumindo que F( �Y+
de J ´e a matriz jacobiana, ou
um que indica um “pequeno”
orma, minimizar ��� equivale
− J∆�, (4)
, jul./dez. 2005
, onde J é a
matriz jacobiana, ou seja,
SUN et al., 2006) e (LERASLE; RI-
99). Este m´etodo ´e uma derivac¸˜ao do
que ´e de convergˆencia mais r´apida.
tivos da popularidade do algo-
Marquardt ´e a existˆencia de diversas
spon´ıveis (LOURAKIS, Jul. 2004;
4; PRESS et al., 1992; SHEARER;
Contudo, apenas uma dessas (LOU-
S, 2004) toma vantagem de uma es-
um em problemas da vis˜ao computa-
m que a minimizac¸˜ao n˜ao-linear pro-
acobiana esparsa. Se isso for levado
ara a estimac¸˜ao de N parˆametros, a
goritmo reduz-se de N3 para apenas
, apresenta-se uma implementac¸˜ao
arquardt, chamada Levenberg-
do, que pode ser aplicada em
esentam a matriz Jacobiana esparsa.
o de iterac¸˜ao ´e dividido em v´arios
que possuem apenas uma frac¸˜ao da
resolvidos muito mais rapidamente.
o foi codificada em linguagem do
e ser executada sem modificac¸˜oes
R� quanto no Scilab R� e no Octave R�.
car o uso do algoritmo Levenberg-
o, aplicou-se a implementac¸˜ao pro-
a de calibrac¸˜ao de cˆameras com
barito 1D (ZHANG, 2004). Neste
utilizado para, dado um conjunto de
ito em diversas imagens, estimar-se
nsecos da cˆamera e a localizac¸˜ao da
rito no espac¸o tridimensional. Resul-
s mostram que o m´etodo ´e capaz de
o de forma satisfat´oria e em poucas
a presenc¸a de ru´ıdo.
o texto, matrizes e vetores s˜ao re-
tras, n´umeros ou s´ımbolos em ne-
˜ao expressas por letras, n´umeros ou
o. Al´em disso, adotou-se a pr´atica
A−1)T = (AT )−1 para toda matriz
el.
Considerando o modelo de cˆamera pinhole (FAU-
GERAS; LUONG, 2001), as coordenadas de um ponto
3D no sistema de coordenadas do ambiente de uma
cˆamera s˜ao apresentadas como M = [x, y, z]T e a
projec¸˜ao correspondente no plano de imagem I, como
m = [u, v]T . Al´em disso, as coordenadas homogˆeneas
de um ponto m = [u, v, ...]T s˜ao representadas por �m,
isto ´e, �m = [u, v, ..., 1]T . De forma mais geral, um
ponto qualquer em coordenadas homogˆeneas ´e repre-
sentado por �m = [u, v, ..., t]T . Um ´ındice, se houver,
indica a posic¸˜ao do ponto em um conjunto de pontos.
Com a notac¸˜ao adotada, a relac¸˜ao entre um ponto
3D, M, e sua projec¸˜ao, m, em uma cˆamera pinhole ´e
dada por
�m � A
�
I3 03
�
�M, (1)
com
A =


α 0 u0
0 β v0
0 0 1

 , (2)
onde “�” indica que os dois lados da equac¸˜ao podem di-
ferir por uma constante, α e β d˜ao a relac¸˜ao entre pixels
da imagem e distˆancias no ambiente da cˆamera, respec-
tivamente, nas direc¸˜oes horizontal e vertical. J´a o ponto
m0 = [u0, v0]T s˜ao as coordenadas do ponto central
da cˆamera. Sendo assim, h´a apenas quatro parˆametros
intr´ınsecos a serem estimados durante a calibrac¸˜ao, ou
seja, α, β, u0 e v0.
3 Algoritmo Levenberg-Marquardt
Considerando a seguinte func¸˜ao n˜ao-linear
F(Y) = X, (3)
onde X ∈ IRM
e Y ∈ IRN
s˜ao vetores e M ≥ N.
Freq¨uentemente, ´e necess´ario estimar o vetor �Y que me-
lhor ajusta-se a um vetor �X medido. Esse problema
pode ser reformulado como, dado o vetor �X, encontrar
�Y que minimiza ���, sujeito a �X = F( �Y) + �.
Dada uma estimac¸˜ao inicial �Y, o m´etodo de New-
ton (PRESS et al., 1992) a refina assumindo que F( �Y+
∆) = F( �Y) + J∆, onde J ´e a matriz jacobiana, ou
seja, J = ∂X/∂Y, e ∆ ´e um que indica um “pequeno”
incremento de �Y. Dessa forma, minimizar ��� equivale
a minimizar
�� − J∆�, (4)
mina: Ciˆencias Exatas e Tecnol´ogicas, Londrina, v. 26, n. 2, p. 195-203, jul./dez. 2005
, e ∆ é um
que indica um “pequeno” incremento de
E FRANC¸A, J.; FRANC¸A, M.; KOYAMA, M. & DA SILVA, T.
006) e (LERASLE; RI-
odo ´e uma derivac¸˜ao do
vergˆencia mais r´apida.
opularidade do algo-
existˆencia de diversas
OURAKIS, Jul. 2004;
al., 1992; SHEARER;
nas uma dessas (LOU-
a vantagem de uma es-
emas da vis˜ao computa-
mizac¸˜ao n˜ao-linear pro-
arsa. Se isso for levado
c¸˜ao de N parˆametros, a
z-se de N3 para apenas
se uma implementac¸˜ao
chamada Levenberg-
ode ser aplicada em
atriz Jacobiana esparsa.
´e dividido em v´arios
m apenas uma frac¸˜ao da
muito mais rapidamente.
ada em linguagem do
ada sem modificac¸˜oes
Scilab R� e no Octave R�.
algoritmo Levenberg-
a implementac¸˜ao pro-
c¸˜ao de cˆameras com
HANG, 2004). Neste
, dado um conjunto de
sas imagens, estimar-se
mera e a localizac¸˜ao da
o tridimensional. Resul-
ue o m´etodo ´e capaz de
atisfat´oria e em poucas
e ru´ıdo.
rizes e vetores s˜ao re-
s ou s´ımbolos em ne-
por letras, n´umeros ou
so, adotou-se a pr´atica
AT )−1 para toda matriz
Considerando o modelo de cˆamera pinhole (FAU-
GERAS; LUONG, 2001), as coordenadas de um ponto
3D no sistema de coordenadas do ambiente de uma
cˆamera s˜ao apresentadas como M = [x, y, z]T e a
projec¸˜ao correspondente no plano de imagem I, como
m = [u, v]T . Al´em disso, as coordenadas homogˆeneas
de um ponto m = [u, v, ...]T s˜ao representadas por �m,
isto ´e, �m = [u, v, ..., 1]T . De forma mais geral, um
ponto qualquer em coordenadas homogˆeneas ´e repre-
sentado por �m = [u, v, ..., t]T . Um ´ındice, se houver,
indica a posic¸˜ao do ponto em um conjunto de pontos.
Com a notac¸˜ao adotada, a relac¸˜ao entre um ponto
3D, M, e sua projec¸˜ao, m, em uma cˆamera pinhole ´e
dada por
�m � A
�
I3 03
�
�M, (1)
com
A =


α 0 u0
0 β v0
0 0 1

 , (2)
onde “�” indica que os dois lados da equac¸˜ao podem di-
ferir por uma constante, α e β d˜ao a relac¸˜ao entre pixels
da imagem e distˆancias no ambiente da cˆamera, respec-
tivamente, nas direc¸˜oes horizontal e vertical. J´a o ponto
m0 = [u0, v0]T s˜ao as coordenadas do ponto central
da cˆamera. Sendo assim, h´a apenas quatro parˆametros
intr´ınsecos a serem estimados durante a calibrac¸˜ao, ou
seja, α, β, u0 e v0.
3 Algoritmo Levenberg-Marquardt
Considerando a seguinte func¸˜ao n˜ao-linear
F(Y) = X, (3)
onde X ∈ IRM
e Y ∈ IRN
s˜ao vetores e M ≥ N.
Freq¨uentemente, ´e necess´ario estimar o vetor �Y que me-
lhor ajusta-se a um vetor �X medido. Esse problema
pode ser reformulado como, dado o vetor �X, encontrar
�Y que minimiza ���, sujeito a �X = F( �Y) + �.
Dada uma estimac¸˜ao inicial �Y, o m´etodo de New-
ton (PRESS et al., 1992) a refina assumindo que F( �Y+
∆) = F( �Y) + J∆, onde J ´e a matriz jacobiana, ou
seja, J = ∂X/∂Y, e ∆ ´e um que indica um “pequeno”
incremento de �Y. Dessa forma, minimizar ��� equivale
a minimizar
�� − J∆�, (4)
Exatas e Tecnol´ogicas, Londrina, v. 26, n. 2, p. 195-203, jul./dez. 2005
. Dessa
forma, minimizar ||
M. & DA SILVA, T.
iderando o modelo de cˆamera pinhole (FAU-
LUONG, 2001), as coordenadas de um ponto
stema de coordenadas do ambiente de uma
˜ao apresentadas como M = [x, y, z]T e a
correspondente no plano de imagem I, como
v]T . Al´em disso, as coordenadas homogˆeneas
nto m = [u, v, ...]T s˜ao representadas por �m,
= [u, v, ..., 1]T . De forma mais geral, um
alquer em coordenadas homogˆeneas ´e repre-
or �m = [u, v, ..., t]T . Um ´ındice, se houver,
osic¸˜ao do ponto em um conjunto de pontos.
a notac¸˜ao adotada, a relac¸˜ao entre um ponto
e sua projec¸˜ao, m, em uma cˆamera pinhole ´e
�m � A
�
I3 03
�
�M, (1)
A =


α 0 u0
0 β v0
0 0 1

 , (2)
indica que os dois lados da equac¸˜ao podem di-
uma constante, α e β d˜ao a relac¸˜ao entre pixels
m e distˆancias no ambiente da cˆamera, respec-
, nas direc¸˜oes horizontal e vertical. J´a o ponto
u0, v0]T s˜ao as coordenadas do ponto central
a. Sendo assim, h´a apenas quatro parˆametros
os a serem estimados durante a calibrac¸˜ao, ou
, u0 e v0.
goritmo Levenberg-Marquardt
iderando a seguinte func¸˜ao n˜ao-linear
F(Y) = X, (3)
∈ IRM
e Y ∈ IRN
s˜ao vetores e M ≥ N.
emente, ´e necess´ario estimar o vetor �Y que me-
a-se a um vetor �X medido. Esse problema
reformulado como, dado o vetor �X, encontrar
nimiza ���, sujeito a �X = F( �Y) + �.
uma estimac¸˜ao inicial �Y, o m´etodo de New-
SS et al., 1992) a refina assumindo que F( �Y+
( �Y) + J∆, onde J ´e a matriz jacobiana, ou
∂X/∂Y, e ∆ ´e um que indica um “pequeno”
to de �Y. Dessa forma, minimizar ��� equivale
zar
�� − J∆�, (4)
|| equivale a minimizar
FRANC¸A, M.; KOYAMA, M. & DA SILVA, T.
ASLE; RI-
rivac¸˜ao do
is r´apida.
do algo-
e diversas
ul. 2004;
HEARER;
sas (LOU-
de uma es-
computa-
linear pro-
for levado
ˆametros, a
ara apenas
ementac¸˜ao
Levenberg-
icada em
na esparsa.
em v´arios
a frac¸˜ao da
pidamente.
uagem do
odificac¸˜oes
Octave R�.
Levenberg-
tac¸˜ao pro-
meras com
4). Neste
onjunto de
estimar-se
lizac¸˜ao da
nal. Resul-
´e capaz de
em poucas
es s˜ao re-
os em ne-
´umeros ou
e a pr´atica
oda matriz
Considerando o modelo de cˆamera pinhole (FAU-
GERAS; LUONG, 2001), as coordenadas de um ponto
3D no sistema de coordenadas do ambiente de uma
cˆamera s˜ao apresentadas como M = [x, y, z]T e a
projec¸˜ao correspondente no plano de imagem I, como
m = [u, v]T . Al´em disso, as coordenadas homogˆeneas
de um ponto m = [u, v, ...]T s˜ao representadas por �m,
isto ´e, �m = [u, v, ..., 1]T . De forma mais geral, um
ponto qualquer em coordenadas homogˆeneas ´e repre-
sentado por �m = [u, v, ..., t]T . Um ´ındice, se houver,
indica a posic¸˜ao do ponto em um conjunto de pontos.
Com a notac¸˜ao adotada, a relac¸˜ao entre um ponto
3D, M, e sua projec¸˜ao, m, em uma cˆamera pinhole ´e
dada por
�m � A
�
I3 03
�
�M, (1)
com
A =


α 0 u0
0 β v0
0 0 1

 , (2)
onde “�” indica que os dois lados da equac¸˜ao podem di-
ferir por uma constante, α e β d˜ao a relac¸˜ao entre pixels
da imagem e distˆancias no ambiente da cˆamera, respec-
tivamente, nas direc¸˜oes horizontal e vertical. J´a o ponto
m0 = [u0, v0]T s˜ao as coordenadas do ponto central
da cˆamera. Sendo assim, h´a apenas quatro parˆametros
intr´ınsecos a serem estimados durante a calibrac¸˜ao, ou
seja, α, β, u0 e v0.
3 Algoritmo Levenberg-Marquardt
Considerando a seguinte func¸˜ao n˜ao-linear
F(Y) = X, (3)
onde X ∈ IRM
e Y ∈ IRN
s˜ao vetores e M ≥ N.
Freq¨uentemente, ´e necess´ario estimar o vetor �Y que me-
lhor ajusta-se a um vetor �X medido. Esse problema
pode ser reformulado como, dado o vetor �X, encontrar
�Y que minimiza ���, sujeito a �X = F( �Y) + �.
Dada uma estimac¸˜ao inicial �Y, o m´etodo de New-
ton (PRESS et al., 1992) a refina assumindo que F( �Y+
∆) = F( �Y) + J∆, onde J ´e a matriz jacobiana, ou
seja, J = ∂X/∂Y, e ∆ ´e um que indica um “pequeno”
incremento de �Y. Dessa forma, minimizar ��� equivale
a minimizar
�� − J∆�, (4)
ol´ogicas, Londrina, v. 26, n. 2, p. 195-203, jul./dez. 2005
(4)
que é o mesmo que resolver
UMA IMPLEMENTAC¸ ˜AO DO ALGORITMO LEVENBERG-MARQUARDT D
que ´e o mesmo que resolver
JT
J∆ = JT
�. (5)
Al´em disso, a soluc¸˜ao refinada, �Yr, ´e dada por
�Yr = �Y + ∆ (6)
e pode ser melhorada iterativamente.
Levenberg (LEVENBERG, 1944) propˆos uma
alterac¸˜ao no algoritmo de Newton para acelerar sua con-
vergˆencia, ou seja, a equac¸˜ao (5) ´e substitu´ıda por
�
JT
J + Iλ
�
∆ = JT
�. (7)
Tipicamente, λ ´e feito igual a 10−4 inicialmente.
Contudo, a cada iterac¸˜ao o valor de λ ´e alterado. Se
a soluc¸˜ao da equac¸˜ao (5) conduzir a uma reduc¸˜ao do
res´ıduo, λ ´e dividido por 10. Caso contr´ario, este ´e mul-
tiplicado por 10.
O m´etodo de Levenberg possui instabilidades
num´ericas quando λ cresce. Em vista disso, al-
gum tempo depois, Marquardt (MARQUARDT, 1963)
propˆos uma pequena alterac¸˜ao no algoritmo de Leven-
berg, ou seja, cada componente do gradiente ´e pon-
derada de acordo com sua curvatura. Assim, h´a uma
grande tendˆencia de convergˆencia na direc¸˜ao na qual o
gradiente ´e menor. Na pr´atica, tal alterac¸˜ao ´e implemen-
tada substituindo a equac¸˜ao (7) por
�
JT
J + diag(JT
J)λ
�
∆ = JT
�. (8)
Assim, nos dias de hoje, o algoritmo resultante ´e conhe-
cido como Levenberg-Marquardt.
A complexidade do algoritmo Levenberg-
Marquardt aumenta com o n´umero de vari´aveis.
Contudo, como se discute a seguir, algumas carac-
ter´ısticas de muitos dos problemas encontrados na
vis˜ao computacional podem ser utilizadas para reduzir
a complexidade do m´etodo significativamente. Isso ´e
obtido como segue.
Considerando que Y na equac¸˜ao (3) pode ser divi-
dido, ou seja,
Y = [cT
, dT
]T
, (9)
a matriz jacobiana, J, da equac¸˜ao (4) pode ser divi-
dida em dois blocos, ou seja, J = [C|D], onde C =
[∂X/∂c] e
se
onde ∆ =
Ap´os a
terior pode
�
U − G
GT
onde U =
e �D = DT
A solu
em duas e
resolvendo
(U −
e, em segu
Agora
equac¸˜ao (9
n partes m
X = [XT
1
que, cada
c, na equa
caso, ∂Xi/
suposic¸˜ao
com que a
estrutura es
�
�
�
�
�
�
�
�
�





�1
�2
...
�n





−
onde Ci =
F(�c, �d) =
Uma i
passo do a
complexid
quanto o n
Uma v
ana com a
solvido co
Semina: Ciˆencias Exatas e Tecnol´ogicas, Londrina, v. 26,
(5)
Além disso, a solução refinada,
UMA IMPLEMENTAC¸ ˜AO DO ALGORITMO LEVENBERG-MARQ
que ´e o mesmo que resolver
JT
J∆ = JT
�. (5)
Al´em disso, a soluc¸˜ao refinada, �Yr, ´e dada por
�Yr = �Y + ∆ (6)
e pode ser melhorada iterativamente.
Levenberg (LEVENBERG, 1944) propˆos uma
alterac¸˜ao no algoritmo de Newton para acelerar sua con-
vergˆencia, ou seja, a equac¸˜ao (5) ´e substitu´ıda por
�
JT
J + Iλ
�
∆ = JT
�. (7)
Tipicamente, λ ´e feito igual a 10−4 inicialmente.
Contudo, a cada iterac¸˜ao o valor de λ ´e alterado. Se
a soluc¸˜ao da equac¸˜ao (5) conduzir a uma reduc¸˜ao do
res´ıduo, λ ´e dividido por 10. Caso contr´ario, este ´e mul-
tiplicado por 10.
O m´etodo de Levenberg possui instabilidades
num´ericas quando λ cresce. Em vista disso, al-
gum tempo depois, Marquardt (MARQUARDT, 1963)
propˆos uma pequena alterac¸˜ao no algoritmo de Leven-
berg, ou seja, cada componente do gradiente ´e pon-
derada de acordo com sua curvatura. Assim, h´a uma
grande tendˆencia de convergˆencia na direc¸˜ao na qual o
gradiente ´e menor. Na pr´atica, tal alterac¸˜ao ´e implemen-
tada substituindo a equac¸˜ao (7) por
�
JT
J + diag(JT
J)λ
�
∆ = JT
�. (8)
Assim, nos dias de hoje, o algoritmo resultante ´e conhe-
cido como Levenberg-Marquardt.
A complexidade do algoritmo Levenberg-
Marquardt aumenta com o n´umero de vari´aveis.
Contudo, como se discute a seguir, algumas carac-
ter´ısticas de muitos dos problemas encontrados na
vis˜ao computacional podem ser utilizadas para reduzir
a complexidade do m´etodo significativamente. Isso ´e
obtido como segue.
Considerando que Y na equac¸˜ao (3) pode ser divi-
dido, ou seja,
Y = [cT
, dT
]T
, (9)
a matriz jacobiana, J, da equac¸˜ao (4) pode ser divi-
dida em dois blocos, ou seja, J = [C|D], onde C =
[∂X
se
ond
teri
�
ond
e �D
em
reso
e, e
equ
n p
X
que
c, n
cas
sup
com
estr
�
�
�
�
�
�
�
�
�





ond
F(�c
pas
com
qua
ana
solv
, é dada por
UMA IMPLEMENTAC¸ ˜AO DO ALGORITMO LEVENBERG-MARQUARDT D
que ´e o mesmo que resolver
JT
J∆ = JT
�. (5)
Al´em disso, a soluc¸˜ao refinada, �Yr, ´e dada por
�Yr = �Y + ∆ (6)
e pode ser melhorada iterativamente.
Levenberg (LEVENBERG, 1944) propˆos uma
alterac¸˜ao no algoritmo de Newton para acelerar sua con-
vergˆencia, ou seja, a equac¸˜ao (5) ´e substitu´ıda por
�
JT
J + Iλ
�
∆ = JT
�. (7)
Tipicamente, λ ´e feito igual a 10−4 inicialmente.
Contudo, a cada iterac¸˜ao o valor de λ ´e alterado. Se
a soluc¸˜ao da equac¸˜ao (5) conduzir a uma reduc¸˜ao do
res´ıduo, λ ´e dividido por 10. Caso contr´ario, este ´e mul-
tiplicado por 10.
O m´etodo de Levenberg possui instabilidades
num´ericas quando λ cresce. Em vista disso, al-
gum tempo depois, Marquardt (MARQUARDT, 1963)
propˆos uma pequena alterac¸˜ao no algoritmo de Leven-
berg, ou seja, cada componente do gradiente ´e pon-
derada de acordo com sua curvatura. Assim, h´a uma
grande tendˆencia de convergˆencia na direc¸˜ao na qual o
gradiente ´e menor. Na pr´atica, tal alterac¸˜ao ´e implemen-
tada substituindo a equac¸˜ao (7) por
�
JT
J + diag(JT
J)λ
�
∆ = JT
�. (8)
Assim, nos dias de hoje, o algoritmo resultante ´e conhe-
cido como Levenberg-Marquardt.
A complexidade do algoritmo Levenberg-
Marquardt aumenta com o n´umero de vari´aveis.
Contudo, como se discute a seguir, algumas carac-
ter´ısticas de muitos dos problemas encontrados na
vis˜ao computacional podem ser utilizadas para reduzir
a complexidade do m´etodo significativamente. Isso ´e
obtido como segue.
Considerando que Y na equac¸˜ao (3) pode ser divi-
dido, ou seja,
Y = [cT
, dT
]T
, (9)
a matriz jacobiana, J, da equac¸˜ao (4) pode ser divi-
dida em dois blocos, ou seja, J = [C|D], onde C =
[∂X/∂c] e
se �
onde ∆ = [
Ap´os a
terior pode
�
U − GV
GT
onde U = C
e �D = DT
A soluc
em duas eta
resolvendo
(U −
e, em seguid
Agora,
equac¸˜ao (9
n partes me
X = [XT
1 ,
que, cada o
c, na equac¸
caso, ∂Xi/∂
suposic¸˜ao p
com que a m
estrutura esp
�
�
�
�
�
�
�
�
�





�1
�2
...
�n





−
onde Ci =
F(�c, �d) = [
Uma im
passo do alg
complexida
quanto o n˜a
Uma ve
ana com a e
solvido com
(6)
e pode ser melhorada iterativamente.
Levenberg (1944) propôs uma alteração no
algoritmodeNewtonparaacelerarsuaconvergência,
ou seja, a equação (5) é substituída por
UMA IMPLEMENTAC¸ ˜AO DO ALGORITMO LEVENBERG-MARQUARDT D
que ´e o mesmo que resolver
JT
J∆ = JT
�. (5)
Al´em disso, a soluc¸˜ao refinada, �Yr, ´e dada por
�Yr = �Y + ∆ (6)
e pode ser melhorada iterativamente.
Levenberg (LEVENBERG, 1944) propˆos uma
alterac¸˜ao no algoritmo de Newton para acelerar sua con-
vergˆencia, ou seja, a equac¸˜ao (5) ´e substitu´ıda por
�
JT
J + Iλ
�
∆ = JT
�. (7)
Tipicamente, λ ´e feito igual a 10−4 inicialmente.
Contudo, a cada iterac¸˜ao o valor de λ ´e alterado. Se
a soluc¸˜ao da equac¸˜ao (5) conduzir a uma reduc¸˜ao do
res´ıduo, λ ´e dividido por 10. Caso contr´ario, este ´e mul-
tiplicado por 10.
O m´etodo de Levenberg possui instabilidades
num´ericas quando λ cresce. Em vista disso, al-
gum tempo depois, Marquardt (MARQUARDT, 1963)
propˆos uma pequena alterac¸˜ao no algoritmo de Leven-
berg, ou seja, cada componente do gradiente ´e pon-
derada de acordo com sua curvatura. Assim, h´a uma
grande tendˆencia de convergˆencia na direc¸˜ao na qual o
gradiente ´e menor. Na pr´atica, tal alterac¸˜ao ´e implemen-
tada substituindo a equac¸˜ao (7) por
�
JT
J + diag(JT
J)λ
�
∆ = JT
�. (8)
Assim, nos dias de hoje, o algoritmo resultante ´e conhe-
cido como Levenberg-Marquardt.
A complexidade do algoritmo Levenberg-
Marquardt aumenta com o n´umero de vari´aveis.
Contudo, como se discute a seguir, algumas carac-
ter´ısticas de muitos dos problemas encontrados na
vis˜ao computacional podem ser utilizadas para reduzir
a complexidade do m´etodo significativamente. Isso ´e
obtido como segue.
Considerando que Y na equac¸˜ao (3) pode ser divi-
dido, ou seja,
Y = [cT
, dT
]T
, (9)
[∂X/∂c] e D
se �
onde ∆ = [
Ap´os al
terior pode s
�
U − GV
GT
onde U = C
e �D = DT
A soluc¸
em duas eta
resolvendo
(U −
e, em seguid
Agora,
equac¸˜ao (9)
n partes me
X = [XT
1 ,
que, cada o
c, na equac¸
caso, ∂Xi/∂
suposic¸˜ao p
com que a m
estrutura esp
�
�
�
�
�
�
�
�
�





�1
�2
...
�n





−
onde Ci =
F(�c, �d) = [
Uma im
passo do alg
complexidad
quanto o n˜a
Uma ve
(7)
Tipicamente, λ é feito igual a 10-4
inicialmente.
Contudo, a cada iteração o valor de λ é alterado.
Se a solução da equação (5) conduzir a uma redução
do resíduo, λ é dividido por 10. Em caso contrário,
este é multiplicado por 10.
O método de Levenberg possui instabilidades
numéricas quando λ cresce. Em vista disso, algum
tempo depois, Marquardt (MARQUARDT, 1963)
propôs uma pequena alteração no algoritmo de
Levenberg, ou seja, cada componente do gradiente é
ponderada de acordo com sua curvatura. Assim, há
uma grande tendência de convergência na direção
na qual o gradiente é menor. Na prática, tal alteração
é implementada substituindo a equação (7) por
UMA IMPLEMENTAC¸ ˜AO DO ALGORITMO LEVENBERG-MARQUARDT
que ´e o mesmo que resolver
JT
J∆ = JT
�. (5)
Al´em disso, a soluc¸˜ao refinada, �Yr, ´e dada por
�Yr = �Y + ∆ (6)
e pode ser melhorada iterativamente.
Levenberg (LEVENBERG, 1944) propˆos uma
alterac¸˜ao no algoritmo de Newton para acelerar sua con-
vergˆencia, ou seja, a equac¸˜ao (5) ´e substitu´ıda por
�
JT
J + Iλ
�
∆ = JT
�. (7)
Tipicamente, λ ´e feito igual a 10−4 inicialmente.
Contudo, a cada iterac¸˜ao o valor de λ ´e alterado. Se
a soluc¸˜ao da equac¸˜ao (5) conduzir a uma reduc¸˜ao do
res´ıduo, λ ´e dividido por 10. Caso contr´ario, este ´e mul-
tiplicado por 10.
O m´etodo de Levenberg possui instabilidades
num´ericas quando λ cresce. Em vista disso, al-
gum tempo depois, Marquardt (MARQUARDT, 1963)
propˆos uma pequena alterac¸˜ao no algoritmo de Leven-
berg, ou seja, cada componente do gradiente ´e pon-
derada de acordo com sua curvatura. Assim, h´a uma
grande tendˆencia de convergˆencia na direc¸˜ao na qual o
gradiente ´e menor. Na pr´atica, tal alterac¸˜ao ´e implemen-
tada substituindo a equac¸˜ao (7) por
�
JT
J + diag(JT
J)λ
�
∆ = JT
�. (8)
Assim, nos dias de hoje, o algoritmo resultante ´e conhe-
cido como Levenberg-Marquardt.
A complexidade do algoritmo Levenberg-
Marquardt aumenta com o n´umero de vari´aveis.
Contudo, como se discute a seguir, algumas carac-
ter´ısticas de muitos dos problemas encontrados na
vis˜ao computacional podem ser utilizadas para reduzir
a complexidade do m´etodo significativamente. Isso ´e
obtido como segue.
[∂X/∂c] e
se
onde ∆ =
Ap´os
terior pode
�
U − G
GT
onde U =
e �D = D
A solu
em duas e
resolvendo
(U −
e, em segu
Agora
equac¸˜ao (
n partes m
X = [XT
1
que, cada
c, na equa
caso, ∂Xi/
suposic¸˜ao
com que a
estrutura e
�
�
�
�
�
�
�
�
�





�1
�2
...
�n





−
onde Ci =
F(�c, �d) =
Uma
passo do a
(8)
Assim, nos dias de hoje, o algoritmo resultante é
conhecido como Levenberg-Marquardt.
A complexidade do algoritmo Levenberg-
Marquardt aumenta com o número de variáveis.
54
Semina: Ciências Exatas e Tecnológicas, Londrina, v. 30, n. 1, p. 51-62, jan./jun. 2009
França, J. A. de et al.
Contudo, como se discute a seguir, algumas
características de muitos dos problemas
encontrados na visão computacional podem ser
utilizadas para reduzir a complexidade do método
significativamente. Isso é obtido como segue.
Considerando que Y na equação (3) pode ser
dividido, ou seja,
�
JT
J + diag(JT
J)λ
�
∆ = JT
�. (8)
Assim, nos dias de hoje, o algoritmo resultante ´e conhe-
cido como Levenberg-Marquardt.
A complexidade do algoritmo Levenberg-
Marquardt aumenta com o n´umero de vari´aveis.
Contudo, como se discute a seguir, algumas carac-
ter´ısticas de muitos dos problemas encontrados na
vis˜ao computacional podem ser utilizadas para reduzir
a complexidade do m´etodo significativamente. Isso ´e
obtido como segue.
Considerando que Y na equac¸˜ao (3) pode ser divi-
dido, ou seja,
Y = [cT
, dT
]T
, (9)
a matriz jacobiana, J, da equac¸˜ao (4) pode ser divi-
dida em dois blocos, ou seja, J = [C|D], onde C =
com que a matriz jacobiana, J = ∂X/∂Y, tenha uma
estrutura esparsa. Assim, a equac¸˜ao (4) torna-se
�
�
�
�
�
�
�
�
�





�1
�2
...
�n





−





C1 D1
C2 D2
...
...
Cn Dn










δc
δd1
...
δdn





�
�
�
�
�
�
�
�
�
, (14)
onde Ci = [∂Xi/∂c] e Di = [∂Xi/∂di] e � = �X −
F(�c, �d) = [�T
1 , �T
2 , . . . , �T
n ]T .
Uma importante observac¸˜ao a ser feita ´e que cada
passo do algoritmo Levenberg-Marguardt Dividido tem
complexidade linear em N (n´umero de inc´ognitas), en-
quanto o n˜ao-dividido tem complexidade N3.
Uma vez que o problema gera uma matriz Jacobi-
ana com a estrutura da equac¸˜ao (14), este pode ser re-
solvido com o lac¸o de iterac¸˜ao resumido no algoritmo
Semina: Ciˆencias Exatas e Tecnol´ogicas, Londrina, v. 26, n. 2, p. 195-203, jul./dez. 2005
197
(9)
a matriz jacobiana, J, da equação (4) pode ser
dividida em dois blocos, ou seja, J = [C | D], onde
C = [∂X / ∂c] e D = [∂X / ∂d]. Logo, a equação (5)
torna-se
ENBERG-MARQUARDT DIVIDIDO PARA APLICAC¸ ˜OES EM ...
(5)
(6)
ˆos uma
sua con-
or
(7)
lmente.
do. Se
uc¸˜ao do
e ´e mul-
ilidades
sso, al-
T, 1963)
Leven-
´e pon-
h´a uma
a qual o
plemen-
(8)
conhe-
[∂X/∂c] e D = [∂X/∂d]. Logo, a equac¸˜ao (5) torna-
se �
CT C CT D
DT C DT D
� �
δc
δd
�
=
�
CT �
DT �
�
, (10)
onde ∆ = [δT
c , δT
d ]T .
Ap´os alguma manipulac¸˜ao alg´ebrica, a equac¸˜ao an-
terior pode ser reescrita como sendo
�
U − GV−1
0
GT V
� �
δc
δd
�
=
�
�C − GV−1
�D
�D
�
, (11)
onde U = CT C, G = CT D, V = DT D, �C = CT �
e �D = DT �.
A soluc¸˜ao do problema anterior pode ser dividida
em duas etapas. A primeira consiste em encontrar δc
resolvendo
(U − GV−1
GT
)δc = �C − GV−1
�D (12)
e, em seguida, δd pode ser encontrado resolvendo
Vδd = �D − GT
δc. (13)
Agora, considera-se ainda que os vetores d, na
equac¸˜ao (9), e X tamb´em possam ser divididos em
n partes menores, ou seja, d = [dT
1 , dT
2 , . . . , dT
n ]T e
X = [XT
1 , XT
1 , . . . , XT
n ]T . Al´em disso, cabe ressaltar
que, cada observac¸˜ao Xi depende apenas dos vetores
c, na equac¸˜ao (9), di e de nenhum outro dk. Neste
caso, ∂Xi/∂dk = 0 para i �= k, enquanto que nenhuma
suposic¸˜ao pode ser feita a respeito de ∂Xi/∂c. Isso faz
com que a matriz jacobiana, J = ∂X/∂Y, tenha uma
estrutura esparsa. Assim, a equac¸˜ao (4) torna-se
�
�
�
�


�1
�




C1 D1
C D




δc
δ


�
�
�
�
(10)
onde
LEVENBERG-MARQUARDT DIVIDIDO PARA APLICAC¸ ˜OES EM ...
(5)
or
(6)
ropˆos uma
rar sua con-
a por
(7)
icialmente.
terado. Se
reduc¸˜ao do
este ´e mul-
stabilidades
disso, al-
RDT, 1963)
de Leven-
nte ´e pon-
m, h´a uma
o na qual o
implemen-
(8)
nte ´e conhe-
[∂X/∂c] e D = [∂X/∂d]. Logo, a equac¸˜ao (5) torna-
se �
CT C CT D
DT C DT D
� �
δc
δd
�
=
�
CT �
DT �
�
, (10)
onde ∆ = [δT
c , δT
d ]T .
Ap´os alguma manipulac¸˜ao alg´ebrica, a equac¸˜ao an-
terior pode ser reescrita como sendo
�
U − GV−1
0
GT V
� �
δc
δd
�
=
�
�C − GV−1
�D
�D
�
, (11)
onde U = CT C, G = CT D, V = DT D, �C = CT �
e �D = DT �.
A soluc¸˜ao do problema anterior pode ser dividida
em duas etapas. A primeira consiste em encontrar δc
resolvendo
(U − GV−1
GT
)δc = �C − GV−1
�D (12)
e, em seguida, δd pode ser encontrado resolvendo
Vδd = �D − GT
δc. (13)
Agora, considera-se ainda que os vetores d, na
equac¸˜ao (9), e X tamb´em possam ser divididos em
n partes menores, ou seja, d = [dT
1 , dT
2 , . . . , dT
n ]T e
X = [XT
1 , XT
1 , . . . , XT
n ]T . Al´em disso, cabe ressaltar
que, cada observac¸˜ao Xi depende apenas dos vetores
c, na equac¸˜ao (9), di e de nenhum outro dk. Neste
caso, ∂Xi/∂dk = 0 para i �= k, enquanto que nenhuma
suposic¸˜ao pode ser feita a respeito de ∂Xi/∂c. Isso faz
com que a matriz jacobiana, J = ∂X/∂Y, tenha uma
estrutura esparsa. Assim, a equac¸˜ao (4) torna-se
�
�

�
 
C D
 
δ
�
�
Após alguma manipulação algébrica, a equação
anterior pode ser reescrita como sendo
EVENBERG-MARQUARDT DIVIDIDO PARA APLICAC¸ ˜OES EM ...
(5)
or
(6)
opˆos uma
ar sua con-
a por
(7)
cialmente.
erado. Se
educ¸˜ao do
este ´e mul-
abilidades
disso, al-
DT, 1963)
de Leven-
nte ´e pon-
m, h´a uma
na qual o
mplemen-
(8)
[∂X/∂c] e D = [∂X/∂d]. Logo, a equac¸˜ao (5) torna-
se �
CT C CT D
DT C DT D
� �
δc
δd
�
=
�
CT �
DT �
�
, (10)
onde ∆ = [δT
c , δT
d ]T .
Ap´os alguma manipulac¸˜ao alg´ebrica, a equac¸˜ao an-
terior pode ser reescrita como sendo
�
U − GV−1
0
GT V
� �
δc
δd
�
=
�
�C − GV−1
�D
�D
�
, (11)
onde U = CT C, G = CT D, V = DT D, �C = CT �
e �D = DT �.
A soluc¸˜ao do problema anterior pode ser dividida
em duas etapas. A primeira consiste em encontrar δc
resolvendo
(U − GV−1
GT
)δc = �C − GV−1
�D (12)
e, em seguida, δd pode ser encontrado resolvendo
Vδd = �D − GT
δc. (13)
Agora, considera-se ainda que os vetores d, na
equac¸˜ao (9), e X tamb´em possam ser divididos em
n partes menores, ou seja, d = [dT
1 , dT
2 , . . . , dT
n ]T e
X = [XT
1 , XT
1 , . . . , XT
n ]T . Al´em disso, cabe ressaltar
que, cada observac¸˜ao Xi depende apenas dos vetores
c, na equac¸˜ao (9), di e de nenhum outro dk. Neste
caso, ∂Xi/∂dk = 0 para i �= k, enquanto que nenhuma
suposic¸˜ao pode ser feita a respeito de ∂Xi/∂c. Isso faz
com que a matriz jacobiana, J = ∂X/∂Y, tenha uma
estrutura esparsa. Assim, a equac¸˜ao (4) torna-se
(11)
onde U = CT
C, G = CT
D, V = DT
D,
NBERG-MARQUARDT DIVIDIDO PARA APLICAC¸ ˜OES EM ...
(5)
(6)
uma
a con-
(7)
mente.
o. Se
c˜ao do
´e mul-
idades
o, al-
1963)
Leven-
´e pon-
´a uma
qual o
emen-
[∂X/∂c] e D = [∂X/∂d]. Logo, a equac¸˜ao (5) torna-
se �
CT C CT D
DT C DT D
� �
δc
δd
�
=
�
CT �
DT �
�
, (10)
onde ∆ = [δT
c , δT
d ]T .
Ap´os alguma manipulac¸˜ao alg´ebrica, a equac¸˜ao an-
terior pode ser reescrita como sendo
�
U − GV−1
0
GT V
� �
δc
δd
�
=
�
�C − GV−1
�D
�D
�
, (11)
onde U = CT C, G = CT D, V = DT D, �C = CT �
e �D = DT �.
A soluc¸˜ao do problema anterior pode ser dividida
em duas etapas. A primeira consiste em encontrar δc
resolvendo
(U − GV−1
GT
)δc = �C − GV−1
�D (12)
e, em seguida, δd pode ser encontrado resolvendo
Vδd = �D − GT
δc. (13)
Agora, considera-se ainda que os vetores d, na
equac¸˜ao (9), e X tamb´em possam ser divididos em
n partes menores, ou seja, d = [dT
1 , dT
2 , . . . , dT
n ]T e
X = [XT
1 , XT
1 , . . . , XT
n ]T . Al´em disso, cabe ressaltar
que, cada observac¸˜ao Xi depende apenas dos vetores
c, na equac¸˜ao (9), di e de nenhum outro dk. Neste
caso, ∂Xi/∂dk = 0 para i �= k, enquanto que nenhuma
suposic¸˜ao pode ser feita a respeito de ∂Xi/∂c. Isso faz
e
LEVENBERG-MARQUARDT DIVIDIDO PARA APLICAC¸ ˜OES EM ...
(5)
por
(6)
ropˆos uma
rar sua con-
da por
(7)
nicialmente.
terado. Se
reduc¸˜ao do
este ´e mul-
stabilidades
disso, al-
RDT, 1963)
o de Leven-
ente ´e pon-
m, h´a uma
o na qual o
implemen-
[∂X/∂c] e D = [∂X/∂d]. Logo, a equac¸˜ao (5) torna-
se �
CT C CT D
DT C DT D
� �
δc
δd
�
=
�
CT �
DT �
�
, (10)
onde ∆ = [δT
c , δT
d ]T .
Ap´os alguma manipulac¸˜ao alg´ebrica, a equac¸˜ao an-
terior pode ser reescrita como sendo
�
U − GV−1
0
GT V
� �
δc
δd
�
=
�
�C − GV−1
�D
�D
�
, (11)
onde U = CT C, G = CT D, V = DT D, �C = CT �
e �D = DT �.
A soluc¸˜ao do problema anterior pode ser dividida
em duas etapas. A primeira consiste em encontrar δc
resolvendo
(U − GV−1
GT
)δc = �C − GV−1
�D (12)
e, em seguida, δd pode ser encontrado resolvendo
Vδd = �D − GT
δc. (13)
Agora, considera-se ainda que os vetores d, na
equac¸˜ao (9), e X tamb´em possam ser divididos em
n partes menores, ou seja, d = [dT
1 , dT
2 , . . . , dT
n ]T e
X = [XT
1 , XT
1 , . . . , XT
n ]T . Al´em disso, cabe ressaltar
que, cada observac¸˜ao Xi depende apenas dos vetores
c, na equac¸˜ao (9), di e de nenhum outro dk. Neste
caso, ∂Xi/∂dk = 0 para i �= k, enquanto que nenhuma
suposic¸˜ao pode ser feita a respeito de ∂X /∂c. Isso faz
Asolução do problema anterior pode ser dividida
em duas etapas. A primeira consiste em encontrar
Cδ resolvendo
VENBERG-MARQUARDT DIVIDIDO PARA APLICAC¸ ˜OES EM ...
(5)
(6)
pˆos uma
sua con-
por
(7)
ialmente.
rado. Se
duc¸˜ao do
te ´e mul-
bilidades
isso, al-
DT, 1963)
e Leven-
e ´e pon-
h´a uma
[∂X/∂c] e D = [∂X/∂d]. Logo, a equac¸˜ao (5) torna-
se �
CT C CT D
DT C DT D
� �
δc
δd
�
=
�
CT �
DT �
�
, (10)
onde ∆ = [δT
c , δT
d ]T .
Ap´os alguma manipulac¸˜ao alg´ebrica, a equac¸˜ao an-
terior pode ser reescrita como sendo
�
U − GV−1
0
GT V
� �
δc
δd
�
=
�
�C − GV−1
�D
�D
�
, (11)
onde U = CT C, G = CT D, V = DT D, �C = CT �
e �D = DT �.
A soluc¸˜ao do problema anterior pode ser dividida
em duas etapas. A primeira consiste em encontrar δc
resolvendo
(U − GV−1
GT
)δc = �C − GV−1
�D (12)
e, em seguida, δd pode ser encontrado resolvendo
Vδd = �D − GT
δc. (13)
Agora, considera-se ainda que os vetores d, na
equac¸˜ao (9), e X tamb´em possam ser divididos em
n partes menores, ou seja, d = [dT
1 , dT
2 , . . . , dT
n ]T e
X = [XT
1 , XT
1 , . . . , XT
n ]T . Al´em disso, cabe ressaltar
que, cada observac¸˜ao X depende apenas dos vetores
(12)
e, em seguida, dδ pode ser encontrado resolvendo
NBERG-MARQUARDT DIVIDIDO PARA APLICAC¸ ˜OES EM ...
(5)
(6)
uma
a con-
(7)
mente.
o. Se
c˜ao do
´e mul-
idades
o, al-
1963)
Leven-
´e pon-
[∂X/∂c] e D = [∂X/∂d]. Logo, a equac¸˜ao (5) torna-
se �
CT C CT D
DT C DT D
� �
δc
δd
�
=
�
CT �
DT �
�
, (10)
onde ∆ = [δT
c , δT
d ]T .
Ap´os alguma manipulac¸˜ao alg´ebrica, a equac¸˜ao an-
terior pode ser reescrita como sendo
�
U − GV−1
0
GT V
� �
δc
δd
�
=
�
�C − GV−1
�D
�D
�
, (11)
onde U = CT C, G = CT D, V = DT D, �C = CT �
e �D = DT �.
A soluc¸˜ao do problema anterior pode ser dividida
em duas etapas. A primeira consiste em encontrar δc
resolvendo
(U − GV−1
GT
)δc = �C − GV−1
�D (12)
e, em seguida, δd pode ser encontrado resolvendo
Vδd = �D − GT
δc. (13)
Agora, considera-se ainda que os vetores d, na
equac¸˜ao (9), e X tamb´em possam ser divididos em
n partes menores, ou seja, d = [dT
1 , dT
2 , . . . , dT
n ]T e
T T T T
(13)
Agora, considera-se ainda que os vetores d, na
equação (9), e X também possam ser divididos em
n partes menores, ou seja,
res´ıduo, λ ´e dividido por 10. Caso contr´ario, este ´e mul-
tiplicado por 10.
O m´etodo de Levenberg possui instabilidades
num´ericas quando λ cresce. Em vista disso, al-
gum tempo depois, Marquardt (MARQUARDT, 1963)
propˆos uma pequena alterac¸˜ao no algoritmo de Leven-
berg, ou seja, cada componente do gradiente ´e pon-
derada de acordo com sua curvatura. Assim, h´a uma
grande tendˆencia de convergˆencia na direc¸˜ao na qual o
gradiente ´e menor. Na pr´atica, tal alterac¸˜ao ´e implemen-
tada substituindo a equac¸˜ao (7) por
�
JT
J + diag(JT
J)λ
�
∆ = JT
�. (8)
Assim, nos dias de hoje, o algoritmo resultante ´e conhe-
cido como Levenberg-Marquardt.
A complexidade do algoritmo Levenberg-
Marquardt aumenta com o n´umero de vari´aveis.
Contudo, como se discute a seguir, algumas carac-
ter´ısticas de muitos dos problemas encontrados na
vis˜ao computacional podem ser utilizadas para reduzir
a complexidade do m´etodo significativamente. Isso ´e
obtido como segue.
Considerando que Y na equac¸˜ao (3) pode ser divi-
dido, ou seja,
Y = [cT
, dT
]T
, (9)
a matriz jacobiana, J, da equac¸˜ao (4) pode ser divi-
dida em dois blocos, ou seja, J = [C|D], onde C =
e, em seguida, δd pode ser encontrado resolvendo
Vδd = �D − GT
δc. (13)
Agora, considera-se ainda que os vetores d, na
equac¸˜ao (9), e X tamb´em possam ser divididos em
n partes menores, ou seja, d = [dT
1 , dT
2 , . . . , dT
n ]T e
X = [XT
1 , XT
1 , . . . , XT
n ]T . Al´em disso, cabe ressaltar
que, cada observac¸˜ao Xi depende apenas dos vetores
c, na equac¸˜ao (9), di e de nenhum outro dk. Neste
caso, ∂Xi/∂dk = 0 para i �= k, enquanto que nenhuma
suposic¸˜ao pode ser feita a respeito de ∂Xi/∂c. Isso faz
com que a matriz jacobiana, J = ∂X/∂Y, tenha uma
estrutura esparsa. Assim, a equac¸˜ao (4) torna-se
�
�
�
�
�
�
�
�
�





�1
�2
...
�n





−





C1 D1
C2 D2
...
...
Cn Dn










δc
δd1
...
δdn





�
�
�
�
�
�
�
�
�
, (14)
onde Ci = [∂Xi/∂c] e Di = [∂Xi/∂di] e � = �X −
F(�c, �d) = [�T
1 , �T
2 , . . . , �T
n ]T .
Uma importante observac¸˜ao a ser feita ´e que cada
passo do algoritmo Levenberg-Marguardt Dividido tem
complexidade linear em N (n´umero de inc´ognitas), en-
quanto o n˜ao-dividido tem complexidade N3.
Uma vez que o problema gera uma matriz Jacobi-
ana com a estrutura da equac¸˜ao (14), este pode ser re-
solvido com o lac¸o de iterac¸˜ao resumido no algoritmo
Semina: Ciˆencias Exatas e Tecnol´ogicas, Londrina, v. 26, n. 2, p. 195-203, jul./dez. 2005
197
e
res´ıduo, λ ´e dividido por 10. Caso contr´ario, este ´e mul-
tiplicado por 10.
O m´etodo de Levenberg possui instabilidades
num´ericas quando λ cresce. Em vista disso, al-
gum tempo depois, Marquardt (MARQUARDT, 1963)
propˆos uma pequena alterac¸˜ao no algoritmo de Leven-
berg, ou seja, cada componente do gradiente ´e pon-
derada de acordo com sua curvatura. Assim, h´a uma
grande tendˆencia de convergˆencia na direc¸˜ao na qual o
gradiente ´e menor. Na pr´atica, tal alterac¸˜ao ´e implemen-
tada substituindo a equac¸˜ao (7) por
�
JT
J + diag(JT
J)λ
�
∆ = JT
�. (8)
Assim, nos dias de hoje, o algoritmo resultante ´e conhe-
cido como Levenberg-Marquardt.
A complexidade do algoritmo Levenberg-
Marquardt aumenta com o n´umero de vari´aveis.
Contudo, como se discute a seguir, algumas carac-
ter´ısticas de muitos dos problemas encontrados na
vis˜ao computacional podem ser utilizadas para reduzir
a complexidade do m´etodo significativamente. Isso ´e
obtido como segue.
Considerando que Y na equac¸˜ao (3) pode ser divi-
dido, ou seja,
Y = [cT
, dT
]T
, (9)
a matriz jacobiana, J, da equac¸˜ao (4) pode ser divi-
dida em dois blocos, ou seja, J = [C|D], onde C =
e, em seguida, δd pode ser encontrado resolvendo
Vδd = �D − GT
δc. (13)
Agora, considera-se ainda que os vetores d, na
equac¸˜ao (9), e X tamb´em possam ser divididos em
n partes menores, ou seja, d = [dT
1 , dT
2 , . . . , dT
n ]T e
X = [XT
1 , XT
1 , . . . , XT
n ]T . Al´em disso, cabe ressaltar
que, cada observac¸˜ao Xi depende apenas dos vetores
c, na equac¸˜ao (9), di e de nenhum outro dk. Neste
caso, ∂Xi/∂dk = 0 para i �= k, enquanto que nenhuma
suposic¸˜ao pode ser feita a respeito de ∂Xi/∂c. Isso faz
com que a matriz jacobiana, J = ∂X/∂Y, tenha uma
estrutura esparsa. Assim, a equac¸˜ao (4) torna-se
�
�
�
�
�
�
�
�
�





�1
�2
...
�n





−





C1 D1
C2 D2
...
...
Cn Dn










δc
δd1
...
δdn





�
�
�
�
�
�
�
�
�
, (14)
onde Ci = [∂Xi/∂c] e Di = [∂Xi/∂di] e � = �X −
F(�c, �d) = [�T
1 , �T
2 , . . . , �T
n ]T .
Uma importante observac¸˜ao a ser feita ´e que cada
passo do algoritmo Levenberg-Marguardt Dividido tem
complexidade linear em N (n´umero de inc´ognitas), en-
quanto o n˜ao-dividido tem complexidade N3.
Uma vez que o problema gera uma matriz Jacobi-
ana com a estrutura da equac¸˜ao (14), este pode ser re-
solvido com o lac¸o de iterac¸˜ao resumido no algoritmo
Semina: Ciˆencias Exatas e Tecnol´ogicas, Londrina, v. 26, n. 2, p. 195-203, jul./dez. 2005
197
. Além disso, cabe
ressaltar que, cada observação Xi depende apenas
dos vetores c, na equação (9), di e de nenhum outro
dk. Neste caso,
a soluc¸˜ao da equac¸˜ao (5) conduzir a uma reduc¸˜ao do
res´ıduo, λ ´e dividido por 10. Caso contr´ario, este ´e mul-
tiplicado por 10.
O m´etodo de Levenberg possui instabilidades
num´ericas quando λ cresce. Em vista disso, al-
gum tempo depois, Marquardt (MARQUARDT, 1963)
propˆos uma pequena alterac¸˜ao no algoritmo de Leven-
berg, ou seja, cada componente do gradiente ´e pon-
derada de acordo com sua curvatura. Assim, h´a uma
grande tendˆencia de convergˆencia na direc¸˜ao na qual o
gradiente ´e menor. Na pr´atica, tal alterac¸˜ao ´e implemen-
tada substituindo a equac¸˜ao (7) por
�
JT
J + diag(JT
J)λ
�
∆ = JT
�. (8)
Assim, nos dias de hoje, o algoritmo resultante ´e conhe-
cido como Levenberg-Marquardt.
A complexidade do algoritmo Levenberg-
Marquardt aumenta com o n´umero de vari´aveis.
Contudo, como se discute a seguir, algumas carac-
ter´ısticas de muitos dos problemas encontrados na
vis˜ao computacional podem ser utilizadas para reduzir
a complexidade do m´etodo significativamente. Isso ´e
obtido como segue.
Considerando que Y na equac¸˜ao (3) pode ser divi-
dido, ou seja,
Y = [cT
, dT
]T
, (9)
a matriz jacobiana, J, da equac¸˜ao (4) pode ser divi-
dida em dois blocos, ou seja, J = [C|D], onde C =
c C D
e, em seguida, δd pode ser encontrado resolvendo
Vδd = �D − GT
δc. (13)
Agora, considera-se ainda que os vetores d, na
equac¸˜ao (9), e X tamb´em possam ser divididos em
n partes menores, ou seja, d = [dT
1 , dT
2 , . . . , dT
n ]T e
X = [XT
1 , XT
1 , . . . , XT
n ]T . Al´em disso, cabe ressaltar
que, cada observac¸˜ao Xi depende apenas dos vetores
c, na equac¸˜ao (9), di e de nenhum outro dk. Neste
caso, ∂Xi/∂dk = 0 para i �= k, enquanto que nenhuma
suposic¸˜ao pode ser feita a respeito de ∂Xi/∂c. Isso faz
com que a matriz jacobiana, J = ∂X/∂Y, tenha uma
estrutura esparsa. Assim, a equac¸˜ao (4) torna-se
�
�
�
�
�
�
�
�
�





�1
�2
...
�n





−





C1 D1
C2 D2
...
...
Cn Dn










δc
δd1
...
δdn





�
�
�
�
�
�
�
�
�
, (14)
onde Ci = [∂Xi/∂c] e Di = [∂Xi/∂di] e � = �X −
F(�c, �d) = [�T
1 , �T
2 , . . . , �T
n ]T .
Uma importante observac¸˜ao a ser feita ´e que cada
passo do algoritmo Levenberg-Marguardt Dividido tem
complexidade linear em N (n´umero de inc´ognitas), en-
quanto o n˜ao-dividido tem complexidade N3.
Uma vez que o problema gera uma matriz Jacobi-
ana com a estrutura da equac¸˜ao (14), este pode ser re-
solvido com o lac¸o de iterac¸˜ao resumido no algoritmo
Semina: Ciˆencias Exatas e Tecnol´ogicas, Londrina, v. 26, n. 2, p. 195-203, jul./dez. 2005
197
para i ≠ k, enquanto
que nenhuma suposição pode ser feita a respeito
de
˜ao o valor de λ ´e alterado. Se
(5) conduzir a uma reduc¸˜ao do
r 10. Caso contr´ario, este ´e mul-
evenberg possui instabilidades
cresce. Em vista disso, al-
arquardt (MARQUARDT, 1963)
terac¸˜ao no algoritmo de Leven-
omponente do gradiente ´e pon-
sua curvatura. Assim, h´a uma
nvergˆencia na direc¸˜ao na qual o
pr´atica, tal alterac¸˜ao ´e implemen-
ac¸˜ao (7) por
g(JT
J)λ
�
∆ = JT
�. (8)
, o algoritmo resultante ´e conhe-
Marquardt.
do algoritmo Levenberg-
com o n´umero de vari´aveis.
scute a seguir, algumas carac-
dos problemas encontrados na
odem ser utilizadas para reduzir
todo significativamente. Isso ´e
Y na equac¸˜ao (3) pode ser divi-
= [cT
, dT
]T
, (9)
da equac¸˜ao (4) pode ser divi-
u seja, J = [C|D], onde C =
(U − GV−1
GT
)δc = �C − GV−1
�D (12)
e, em seguida, δd pode ser encontrado resolvendo
Vδd = �D − GT
δc. (13)
Agora, considera-se ainda que os vetores d, na
equac¸˜ao (9), e X tamb´em possam ser divididos em
n partes menores, ou seja, d = [dT
1 , dT
2 , . . . , dT
n ]T e
X = [XT
1 , XT
1 , . . . , XT
n ]T . Al´em disso, cabe ressaltar
que, cada observac¸˜ao Xi depende apenas dos vetores
c, na equac¸˜ao (9), di e de nenhum outro dk. Neste
caso, ∂Xi/∂dk = 0 para i �= k, enquanto que nenhuma
suposic¸˜ao pode ser feita a respeito de ∂Xi/∂c. Isso faz
com que a matriz jacobiana, J = ∂X/∂Y, tenha uma
estrutura esparsa. Assim, a equac¸˜ao (4) torna-se
�
�
�
�
�
�
�
�
�





�1
�2
...
�n





−





C1 D1
C2 D2
...
...
Cn Dn










δc
δd1
...
δdn





�
�
�
�
�
�
�
�
�
, (14)
onde Ci = [∂Xi/∂c] e Di = [∂Xi/∂di] e � = �X −
F(�c, �d) = [�T
1 , �T
2 , . . . , �T
n ]T .
Uma importante observac¸˜ao a ser feita ´e que cada
passo do algoritmo Levenberg-Marguardt Dividido tem
complexidade linear em N (n´umero de inc´ognitas), en-
quanto o n˜ao-dividido tem complexidade N3.
Uma vez que o problema gera uma matriz Jacobi-
ana com a estrutura da equac¸˜ao (14), este pode ser re-
solvido com o lac¸o de iterac¸˜ao resumido no algoritmo
Ciˆencias Exatas e Tecnol´ogicas, Londrina, v. 26, n. 2, p. 195-203, jul./dez. 2005
197
. Isso faz com que a matriz jacobiana,
terac¸˜ao o valor de λ ´e alterado. Se
c¸˜ao (5) conduzir a uma reduc¸˜ao do
do por 10. Caso contr´ario, este ´e mul-
e Levenberg possui instabilidades
o λ cresce. Em vista disso, al-
, Marquardt (MARQUARDT, 1963)
na alterac¸˜ao no algoritmo de Leven-
da componente do gradiente ´e pon-
com sua curvatura. Assim, h´a uma
de convergˆencia na direc¸˜ao na qual o
Na pr´atica, tal alterac¸˜ao ´e implemen-
equac¸˜ao (7) por
+ diag(JT
J)λ
�
∆ = JT
�. (8)
hoje, o algoritmo resultante ´e conhe-
erg-Marquardt.
dade do algoritmo Levenberg-
ta com o n´umero de vari´aveis.
e discute a seguir, algumas carac-
os dos problemas encontrados na
al podem ser utilizadas para reduzir
o m´etodo significativamente. Isso ´e
.
que Y na equac¸˜ao (3) pode ser divi-
Y = [cT
, dT
]T
, (9)
a, J, da equac¸˜ao (4) pode ser divi-
os, ou seja, J = [C|D], onde C =
(U − GV−1
GT
)δc = �C − GV−1
�D (12)
e, em seguida, δd pode ser encontrado resolvendo
Vδd = �D − GT
δc. (13)
Agora, considera-se ainda que os vetores d, na
equac¸˜ao (9), e X tamb´em possam ser divididos em
n partes menores, ou seja, d = [dT
1 , dT
2 , . . . , dT
n ]T e
X = [XT
1 , XT
1 , . . . , XT
n ]T . Al´em disso, cabe ressaltar
que, cada observac¸˜ao Xi depende apenas dos vetores
c, na equac¸˜ao (9), di e de nenhum outro dk. Neste
caso, ∂Xi/∂dk = 0 para i �= k, enquanto que nenhuma
suposic¸˜ao pode ser feita a respeito de ∂Xi/∂c. Isso faz
com que a matriz jacobiana, J = ∂X/∂Y, tenha uma
estrutura esparsa. Assim, a equac¸˜ao (4) torna-se
�
�
�
�
�
�
�
�
�





�1
�2
...
�n





−





C1 D1
C2 D2
...
...
Cn Dn










δc
δd1
...
δdn





�
�
�
�
�
�
�
�
�
, (14)
onde Ci = [∂Xi/∂c] e Di = [∂Xi/∂di] e � = �X −
F(�c, �d) = [�T
1 , �T
2 , . . . , �T
n ]T .
Uma importante observac¸˜ao a ser feita ´e que cada
passo do algoritmo Levenberg-Marguardt Dividido tem
complexidade linear em N (n´umero de inc´ognitas), en-
quanto o n˜ao-dividido tem complexidade N3.
Uma vez que o problema gera uma matriz Jacobi-
ana com a estrutura da equac¸˜ao (14), este pode ser re-
solvido com o lac¸o de iterac¸˜ao resumido no algoritmo
mina: Ciˆencias Exatas e Tecnol´ogicas, Londrina, v. 26, n. 2, p. 195-203, jul./dez. 2005
197
, tenha uma estrutura esparsa. Assim,
a equação (4) torna-se
Tipicamente, λ ´e feito igual a 10−4 inicialmente.
Contudo, a cada iterac¸˜ao o valor de λ ´e alterado. Se
a soluc¸˜ao da equac¸˜ao (5) conduzir a uma reduc¸˜ao do
res´ıduo, λ ´e dividido por 10. Caso contr´ario, este ´e mul-
tiplicado por 10.
O m´etodo de Levenberg possui instabilidades
num´ericas quando λ cresce. Em vista disso, al-
gum tempo depois, Marquardt (MARQUARDT, 1963)
propˆos uma pequena alterac¸˜ao no algoritmo de Leven-
berg, ou seja, cada componente do gradiente ´e pon-
derada de acordo com sua curvatura. Assim, h´a uma
grande tendˆencia de convergˆencia na direc¸˜ao na qual o
gradiente ´e menor. Na pr´atica, tal alterac¸˜ao ´e implemen-
tada substituindo a equac¸˜ao (7) por
�
JT
J + diag(JT
J)λ
�
∆ = JT
�. (8)
Assim, nos dias de hoje, o algoritmo resultante ´e conhe-
cido como Levenberg-Marquardt.
A complexidade do algoritmo Levenberg-
Marquardt aumenta com o n´umero de vari´aveis.
Contudo, como se discute a seguir, algumas carac-
ter´ısticas de muitos dos problemas encontrados na
vis˜ao computacional podem ser utilizadas para reduzir
a complexidade do m´etodo significativamente. Isso ´e
obtido como segue.
Considerando que Y na equac¸˜ao (3) pode ser divi-
dido, ou seja,
Y = [cT
, dT
]T
, (9)
a matriz jacobiana, J, da equac¸˜ao (4) pode ser divi-
dida em dois blocos, ou seja, J = [C|D], onde C =
em duas etapas. A primeira consiste em encontrar δc
resolvendo
(U − GV−1
GT
)δc = �C − GV−1
�D (12)
e, em seguida, δd pode ser encontrado resolvendo
Vδd = �D − GT
δc. (13)
Agora, considera-se ainda que os vetores d, na
equac¸˜ao (9), e X tamb´em possam ser divididos em
n partes menores, ou seja, d = [dT
1 , dT
2 , . . . , dT
n ]T e
X = [XT
1 , XT
1 , . . . , XT
n ]T . Al´em disso, cabe ressaltar
que, cada observac¸˜ao Xi depende apenas dos vetores
c, na equac¸˜ao (9), di e de nenhum outro dk. Neste
caso, ∂Xi/∂dk = 0 para i �= k, enquanto que nenhuma
suposic¸˜ao pode ser feita a respeito de ∂Xi/∂c. Isso faz
com que a matriz jacobiana, J = ∂X/∂Y, tenha uma
estrutura esparsa. Assim, a equac¸˜ao (4) torna-se
�
�
�
�
�
�
�
�
�





�1
�2
...
�n





−





C1 D1
C2 D2
...
...
Cn Dn










δc
δd1
...
δdn





�
�
�
�
�
�
�
�
�
, (14)
onde Ci = [∂Xi/∂c] e Di = [∂Xi/∂di] e � = �X −
F(�c, �d) = [�T
1 , �T
2 , . . . , �T
n ]T .
Uma importante observac¸˜ao a ser feita ´e que cada
passo do algoritmo Levenberg-Marguardt Dividido tem
complexidade linear em N (n´umero de inc´ognitas), en-
quanto o n˜ao-dividido tem complexidade N3.
Uma vez que o problema gera uma matriz Jacobi-
ana com a estrutura da equac¸˜ao (14), este pode ser re-
solvido com o lac¸o de iterac¸˜ao resumido no algoritmo
Semina: Ciˆencias Exatas e Tecnol´ogicas, Londrina, v. 26, n. 2, p. 195-203, jul./dez. 2005
197
(14)
J J + Iλ ∆ = J �. (7)
Tipicamente, λ ´e feito igual a 10−4 inicialmente.
Contudo, a cada iterac¸˜ao o valor de λ ´e alterado. Se
a soluc¸˜ao da equac¸˜ao (5) conduzir a uma reduc¸˜ao do
res´ıduo, λ ´e dividido por 10. Caso contr´ario, este ´e mul-
tiplicado por 10.
O m´etodo de Levenberg possui instabilidades
num´ericas quando λ cresce. Em vista disso, al-
gum tempo depois, Marquardt (MARQUARDT, 1963)
propˆos uma pequena alterac¸˜ao no algoritmo de Leven-
berg, ou seja, cada componente do gradiente ´e pon-
derada de acordo com sua curvatura. Assim, h´a uma
grande tendˆencia de convergˆencia na direc¸˜ao na qual o
gradiente ´e menor. Na pr´atica, tal alterac¸˜ao ´e implemen-
tada substituindo a equac¸˜ao (7) por
�
JT
J + diag(JT
J)λ
�
∆ = JT
�. (8)
Assim, nos dias de hoje, o algoritmo resultante ´e conhe-
cido como Levenberg-Marquardt.
A complexidade do algoritmo Levenberg-
Marquardt aumenta com o n´umero de vari´aveis.
Contudo, como se discute a seguir, algumas carac-
ter´ısticas de muitos dos problemas encontrados na
vis˜ao computacional podem ser utilizadas para reduzir
a complexidade do m´etodo significativamente. Isso ´e
obtido como segue.
Considerando que Y na equac¸˜ao (3) pode ser divi-
dido, ou seja,
Y = [cT
, dT
]T
, (9)
a matriz jacobiana, J, da equac¸˜ao (4) pode ser divi-
dida em dois blocos, ou seja, J = [C|D], onde C =
A soluc¸˜ao do problema anterior pode ser dividida
em duas etapas. A primeira consiste em encontrar δc
resolvendo
(U − GV−1
GT
)δc = �C − GV−1
�D (12)
e, em seguida, δd pode ser encontrado resolvendo
Vδd = �D − GT
δc. (13)
Agora, considera-se ainda que os vetores d, na
equac¸˜ao (9), e X tamb´em possam ser divididos em
n partes menores, ou seja, d = [dT
1 , dT
2 , . . . , dT
n ]T e
X = [XT
1 , XT
1 , . . . , XT
n ]T . Al´em disso, cabe ressaltar
que, cada observac¸˜ao Xi depende apenas dos vetores
c, na equac¸˜ao (9), di e de nenhum outro dk. Neste
caso, ∂Xi/∂dk = 0 para i �= k, enquanto que nenhuma
suposic¸˜ao pode ser feita a respeito de ∂Xi/∂c. Isso faz
com que a matriz jacobiana, J = ∂X/∂Y, tenha uma
estrutura esparsa. Assim, a equac¸˜ao (4) torna-se
�
�
�
�
�
�
�
�
�





�1
�2
...
�n





−





C1 D1
C2 D2
...
...
Cn Dn










δc
δd1
...
δdn





�
�
�
�
�
�
�
�
�
, (14)
onde Ci = [∂Xi/∂c] e Di = [∂Xi/∂di] e � = �X −
F(�c, �d) = [�T
1 , �T
2 , . . . , �T
n ]T .
Uma importante observac¸˜ao a ser feita ´e que cada
passo do algoritmo Levenberg-Marguardt Dividido tem
complexidade linear em N (n´umero de inc´ognitas), en-
quanto o n˜ao-dividido tem complexidade N3.
Uma vez que o problema gera uma matriz Jacobi-
ana com a estrutura da equac¸˜ao (14), este pode ser re-
solvido com o lac¸o de iterac¸˜ao resumido no algoritmo
Semina: Ciˆencias Exatas e Tecnol´ogicas, Londrina, v. 26, n. 2, p. 195-203, jul./dez. 2005
197
Uma importante observação a ser feita é que
cada passo do algoritmo Levenberg-Marguardt
Dividido tem complexidade linear em N (número
de incógnitas), enquanto o não-dividido tem
complexidade N3
.
Uma vez que o problema gera uma matriz
Jacobiana com a estrutura da equação (14) este
pode ser resolvido com o laço de iteração resumido
no algoritmo 1. Tal algoritmo descreve em
pormenores a solução do problema e torna possível
a sua codificação em linguagem computacional. No
apêndice A, apresenta-se a codificação utilizada
neste trabalho.
Diversos problemas de otimização encontrados
na visão computacional, por exemplo, os que
envolvem as coordenadas de pontos no espaço
projetivo 2D ou 3D (ARMANGUÉ; SALVI, 2003;
HORAUD; CSURKA; DEMIRDIJIAN, 2000;
LOOP; ZHANG, 1999; SALVI; ARMANGUÉ;
BATLLE, 2002; ZHANG, 2000), podem ser
formulados como um problema com a estrutura
da equação (14). Na próxima seção, é dado um
exemplo de aplicação que se encaixa perfeitamente
nesta categoria de problemas.
4734 16435-1-pb
4734 16435-1-pb
4734 16435-1-pb
4734 16435-1-pb
4734 16435-1-pb
4734 16435-1-pb
4734 16435-1-pb
4734 16435-1-pb

Mais conteúdo relacionado

Mais procurados

Aula inaugural - Curso de Dinâmica dos Fluidos Computacional (Pós-graduação: ...
Aula inaugural - Curso de Dinâmica dos Fluidos Computacional (Pós-graduação: ...Aula inaugural - Curso de Dinâmica dos Fluidos Computacional (Pós-graduação: ...
Aula inaugural - Curso de Dinâmica dos Fluidos Computacional (Pós-graduação: ...Luciano Araki
 
Análise de sinais e sistemas
Análise de sinais e sistemasAnálise de sinais e sistemas
Análise de sinais e sistemasReggae Strong
 
Apresentação Método de Monte Carlo
Apresentação Método de Monte CarloApresentação Método de Monte Carlo
Apresentação Método de Monte CarloAngelo Polotto
 
Decomposições de matrizes utilizando conceitos de Auto Vetores e Auto Valores
Decomposições de matrizes utilizando conceitos de Auto Vetores e Auto ValoresDecomposições de matrizes utilizando conceitos de Auto Vetores e Auto Valores
Decomposições de matrizes utilizando conceitos de Auto Vetores e Auto ValoresFelipe Schimith Batista
 

Mais procurados (6)

Aula inaugural - Curso de Dinâmica dos Fluidos Computacional (Pós-graduação: ...
Aula inaugural - Curso de Dinâmica dos Fluidos Computacional (Pós-graduação: ...Aula inaugural - Curso de Dinâmica dos Fluidos Computacional (Pós-graduação: ...
Aula inaugural - Curso de Dinâmica dos Fluidos Computacional (Pós-graduação: ...
 
Análise de sinais e sistemas
Análise de sinais e sistemasAnálise de sinais e sistemas
Análise de sinais e sistemas
 
Apresentação Método de Monte Carlo
Apresentação Método de Monte CarloApresentação Método de Monte Carlo
Apresentação Método de Monte Carlo
 
Algebra linear operações com matrizes
Algebra linear   operações com matrizesAlgebra linear   operações com matrizes
Algebra linear operações com matrizes
 
Algebra linear operações com matrizes
Algebra linear operações com matrizesAlgebra linear operações com matrizes
Algebra linear operações com matrizes
 
Decomposições de matrizes utilizando conceitos de Auto Vetores e Auto Valores
Decomposições de matrizes utilizando conceitos de Auto Vetores e Auto ValoresDecomposições de matrizes utilizando conceitos de Auto Vetores e Auto Valores
Decomposições de matrizes utilizando conceitos de Auto Vetores e Auto Valores
 

Destaque

รายงานผลการปฏิบัติราชการสำคัญของกระทรวงเกษตรและสหกรณ์ ประจำเดือนตุลาคม 2559
รายงานผลการปฏิบัติราชการสำคัญของกระทรวงเกษตรและสหกรณ์ ประจำเดือนตุลาคม 2559รายงานผลการปฏิบัติราชการสำคัญของกระทรวงเกษตรและสหกรณ์ ประจำเดือนตุลาคม 2559
รายงานผลการปฏิบัติราชการสำคัญของกระทรวงเกษตรและสหกรณ์ ประจำเดือนตุลาคม 2559Ministry of Agriculture and Cooperatives
 
ความรับผิดเพื่อละเมิด(ของตนเอง)
ความรับผิดเพื่อละเมิด(ของตนเอง)ความรับผิดเพื่อละเมิด(ของตนเอง)
ความรับผิดเพื่อละเมิด(ของตนเอง)Chacrit Sitdhiwej
 
3Com 300LSE-3
3Com 300LSE-33Com 300LSE-3
3Com 300LSE-3savomir
 
27775220 ofimatica-1 er-libro
27775220 ofimatica-1 er-libro27775220 ofimatica-1 er-libro
27775220 ofimatica-1 er-libroJuan Castillo
 
Evolving role of Software
Evolving role of SoftwareEvolving role of Software
Evolving role of SoftwareShankar Dahal
 
조루치료제『 http://w9.ana.kr 』 톡 B2015 ♡ 라인 nx2015 〃 조루치료제판매 ,조루치료제가격 ,조루치료제효과, 조...
조루치료제『 http://w9.ana.kr  』 톡 B2015 ♡ 라인 nx2015 〃 조루치료제판매 ,조루치료제가격 ,조루치료제효과, 조...조루치료제『 http://w9.ana.kr  』 톡 B2015 ♡ 라인 nx2015 〃 조루치료제판매 ,조루치료제가격 ,조루치료제효과, 조...
조루치료제『 http://w9.ana.kr 』 톡 B2015 ♡ 라인 nx2015 〃 조루치료제판매 ,조루치료제가격 ,조루치료제효과, 조...민주 전
 
조루치료제『 http://w9.ana.kr 』 톡 B2015 ♡ 라인 nx2015 〃 조루치료제판매,조루치료제약효,조루치료제구입처,조루치...
조루치료제『 http://w9.ana.kr  』 톡 B2015 ♡ 라인 nx2015 〃 조루치료제판매,조루치료제약효,조루치료제구입처,조루치...조루치료제『 http://w9.ana.kr  』 톡 B2015 ♡ 라인 nx2015 〃 조루치료제판매,조루치료제약효,조루치료제구입처,조루치...
조루치료제『 http://w9.ana.kr 』 톡 B2015 ♡ 라인 nx2015 〃 조루치료제판매,조루치료제약효,조루치료제구입처,조루치...민주 전
 
조루치료제『 http://w9.ana.kr 』 톡 B2015 ♡ 라인 nx2015 〃조루치료제판매,조루치료제효능,조루치료제성분,조루치료...
조루치료제『 http://w9.ana.kr  』 톡 B2015 ♡  라인 nx2015 〃조루치료제판매,조루치료제효능,조루치료제성분,조루치료...조루치료제『 http://w9.ana.kr  』 톡 B2015 ♡  라인 nx2015 〃조루치료제판매,조루치료제효능,조루치료제성분,조루치료...
조루치료제『 http://w9.ana.kr 』 톡 B2015 ♡ 라인 nx2015 〃조루치료제판매,조루치료제효능,조루치료제성분,조루치료...민주 전
 
조루치료제『 http://w9.ana.kr 』 톡 B2015 ♡ 라인 nx2015 〃조루치료제판매,조루치료제정품구입,조루치료제판매처,조...
조루치료제『 http://w9.ana.kr  』 톡 B2015 ♡  라인 nx2015 〃조루치료제판매,조루치료제정품구입,조루치료제판매처,조...조루치료제『 http://w9.ana.kr  』 톡 B2015 ♡  라인 nx2015 〃조루치료제판매,조루치료제정품구입,조루치료제판매처,조...
조루치료제『 http://w9.ana.kr 』 톡 B2015 ♡ 라인 nx2015 〃조루치료제판매,조루치료제정품구입,조루치료제판매처,조...민주 전
 

Destaque (10)

รายงานผลการปฏิบัติราชการสำคัญของกระทรวงเกษตรและสหกรณ์ ประจำเดือนตุลาคม 2559
รายงานผลการปฏิบัติราชการสำคัญของกระทรวงเกษตรและสหกรณ์ ประจำเดือนตุลาคม 2559รายงานผลการปฏิบัติราชการสำคัญของกระทรวงเกษตรและสหกรณ์ ประจำเดือนตุลาคม 2559
รายงานผลการปฏิบัติราชการสำคัญของกระทรวงเกษตรและสหกรณ์ ประจำเดือนตุลาคม 2559
 
ความรับผิดเพื่อละเมิด(ของตนเอง)
ความรับผิดเพื่อละเมิด(ของตนเอง)ความรับผิดเพื่อละเมิด(ของตนเอง)
ความรับผิดเพื่อละเมิด(ของตนเอง)
 
Cromatografia líquida
Cromatografia líquidaCromatografia líquida
Cromatografia líquida
 
3Com 300LSE-3
3Com 300LSE-33Com 300LSE-3
3Com 300LSE-3
 
27775220 ofimatica-1 er-libro
27775220 ofimatica-1 er-libro27775220 ofimatica-1 er-libro
27775220 ofimatica-1 er-libro
 
Evolving role of Software
Evolving role of SoftwareEvolving role of Software
Evolving role of Software
 
조루치료제『 http://w9.ana.kr 』 톡 B2015 ♡ 라인 nx2015 〃 조루치료제판매 ,조루치료제가격 ,조루치료제효과, 조...
조루치료제『 http://w9.ana.kr  』 톡 B2015 ♡ 라인 nx2015 〃 조루치료제판매 ,조루치료제가격 ,조루치료제효과, 조...조루치료제『 http://w9.ana.kr  』 톡 B2015 ♡ 라인 nx2015 〃 조루치료제판매 ,조루치료제가격 ,조루치료제효과, 조...
조루치료제『 http://w9.ana.kr 』 톡 B2015 ♡ 라인 nx2015 〃 조루치료제판매 ,조루치료제가격 ,조루치료제효과, 조...
 
조루치료제『 http://w9.ana.kr 』 톡 B2015 ♡ 라인 nx2015 〃 조루치료제판매,조루치료제약효,조루치료제구입처,조루치...
조루치료제『 http://w9.ana.kr  』 톡 B2015 ♡ 라인 nx2015 〃 조루치료제판매,조루치료제약효,조루치료제구입처,조루치...조루치료제『 http://w9.ana.kr  』 톡 B2015 ♡ 라인 nx2015 〃 조루치료제판매,조루치료제약효,조루치료제구입처,조루치...
조루치료제『 http://w9.ana.kr 』 톡 B2015 ♡ 라인 nx2015 〃 조루치료제판매,조루치료제약효,조루치료제구입처,조루치...
 
조루치료제『 http://w9.ana.kr 』 톡 B2015 ♡ 라인 nx2015 〃조루치료제판매,조루치료제효능,조루치료제성분,조루치료...
조루치료제『 http://w9.ana.kr  』 톡 B2015 ♡  라인 nx2015 〃조루치료제판매,조루치료제효능,조루치료제성분,조루치료...조루치료제『 http://w9.ana.kr  』 톡 B2015 ♡  라인 nx2015 〃조루치료제판매,조루치료제효능,조루치료제성분,조루치료...
조루치료제『 http://w9.ana.kr 』 톡 B2015 ♡ 라인 nx2015 〃조루치료제판매,조루치료제효능,조루치료제성분,조루치료...
 
조루치료제『 http://w9.ana.kr 』 톡 B2015 ♡ 라인 nx2015 〃조루치료제판매,조루치료제정품구입,조루치료제판매처,조...
조루치료제『 http://w9.ana.kr  』 톡 B2015 ♡  라인 nx2015 〃조루치료제판매,조루치료제정품구입,조루치료제판매처,조...조루치료제『 http://w9.ana.kr  』 톡 B2015 ♡  라인 nx2015 〃조루치료제판매,조루치료제정품구입,조루치료제판매처,조...
조루치료제『 http://w9.ana.kr 』 톡 B2015 ♡ 라인 nx2015 〃조루치료제판매,조루치료제정품구입,조루치료제판매처,조...
 

Semelhante a 4734 16435-1-pb

Numerov schrodinger
Numerov schrodingerNumerov schrodinger
Numerov schrodingerAdonai Cruz
 
2008 santiago marchi_cilamce_2008
2008 santiago marchi_cilamce_20082008 santiago marchi_cilamce_2008
2008 santiago marchi_cilamce_2008CosmoSantiago
 
Livro Métodos Numéricos: Exercícios Resolvidos
Livro Métodos Numéricos: Exercícios ResolvidosLivro Métodos Numéricos: Exercícios Resolvidos
Livro Métodos Numéricos: Exercícios ResolvidosFlavio Gomes Lima
 
Numerical Methods for Solving Linear Ordinary Differential Equations
Numerical Methods for Solving Linear Ordinary Differential EquationsNumerical Methods for Solving Linear Ordinary Differential Equations
Numerical Methods for Solving Linear Ordinary Differential EquationsMichel Alves
 
Sistemas de comunicação, digital, di.pdf
Sistemas de comunicação, digital, di.pdfSistemas de comunicação, digital, di.pdf
Sistemas de comunicação, digital, di.pdfBNBN31
 
Relatório do projecto computacional grupo 72
Relatório do projecto computacional   grupo 72Relatório do projecto computacional   grupo 72
Relatório do projecto computacional grupo 72Rafael Lucas
 
Método de Euler Progressivo
Método de Euler Progressivo Método de Euler Progressivo
Método de Euler Progressivo Rafael Lucas
 
Cinemática inversa de um manipulado robótico de quatro graus de liberdade uti...
Cinemática inversa de um manipulado robótico de quatro graus de liberdade uti...Cinemática inversa de um manipulado robótico de quatro graus de liberdade uti...
Cinemática inversa de um manipulado robótico de quatro graus de liberdade uti...Breno
 
Artigo de tc hmm-final..alinefontes
Artigo de tc hmm-final..alinefontesArtigo de tc hmm-final..alinefontes
Artigo de tc hmm-final..alinefontesAline Fontes
 
Conemat 2010 - Aplicação de alguns métodos de Runge Kutta
Conemat 2010 - Aplicação de alguns métodos de Runge KuttaConemat 2010 - Aplicação de alguns métodos de Runge Kutta
Conemat 2010 - Aplicação de alguns métodos de Runge KuttaRodrigo Romais
 
Métodos Para Resolver Sistemas de Equações Lineares
Métodos Para Resolver Sistemas de Equações LinearesMétodos Para Resolver Sistemas de Equações Lineares
Métodos Para Resolver Sistemas de Equações LinearesMayara Mônica
 
Analise comparativa de métodos diretos e iterativos para a solução de sistema...
Analise comparativa de métodos diretos e iterativos para a solução de sistema...Analise comparativa de métodos diretos e iterativos para a solução de sistema...
Analise comparativa de métodos diretos e iterativos para a solução de sistema...Fabricio Magalhães
 

Semelhante a 4734 16435-1-pb (20)

Artigo revisado
Artigo revisadoArtigo revisado
Artigo revisado
 
Numerov schrodinger
Numerov schrodingerNumerov schrodinger
Numerov schrodinger
 
2008 santiago marchi_cilamce_2008
2008 santiago marchi_cilamce_20082008 santiago marchi_cilamce_2008
2008 santiago marchi_cilamce_2008
 
Curs omatlab52
Curs omatlab52Curs omatlab52
Curs omatlab52
 
Livro Métodos Numéricos: Exercícios Resolvidos
Livro Métodos Numéricos: Exercícios ResolvidosLivro Métodos Numéricos: Exercícios Resolvidos
Livro Métodos Numéricos: Exercícios Resolvidos
 
Numerical Methods for Solving Linear Ordinary Differential Equations
Numerical Methods for Solving Linear Ordinary Differential EquationsNumerical Methods for Solving Linear Ordinary Differential Equations
Numerical Methods for Solving Linear Ordinary Differential Equations
 
A Utilização da Operação Módulo
A Utilização da Operação MóduloA Utilização da Operação Módulo
A Utilização da Operação Módulo
 
SeComp2003
SeComp2003SeComp2003
SeComp2003
 
Sistemas de comunicação, digital, di.pdf
Sistemas de comunicação, digital, di.pdfSistemas de comunicação, digital, di.pdf
Sistemas de comunicação, digital, di.pdf
 
Relatório do projecto computacional grupo 72
Relatório do projecto computacional   grupo 72Relatório do projecto computacional   grupo 72
Relatório do projecto computacional grupo 72
 
Método de Euler Progressivo
Método de Euler Progressivo Método de Euler Progressivo
Método de Euler Progressivo
 
Cinemática inversa de um manipulado robótico de quatro graus de liberdade uti...
Cinemática inversa de um manipulado robótico de quatro graus de liberdade uti...Cinemática inversa de um manipulado robótico de quatro graus de liberdade uti...
Cinemática inversa de um manipulado robótico de quatro graus de liberdade uti...
 
Gustavo relatorio
Gustavo relatorioGustavo relatorio
Gustavo relatorio
 
Artigo de tc hmm-final..alinefontes
Artigo de tc hmm-final..alinefontesArtigo de tc hmm-final..alinefontes
Artigo de tc hmm-final..alinefontes
 
Conemat 2010 - Aplicação de alguns métodos de Runge Kutta
Conemat 2010 - Aplicação de alguns métodos de Runge KuttaConemat 2010 - Aplicação de alguns métodos de Runge Kutta
Conemat 2010 - Aplicação de alguns métodos de Runge Kutta
 
Métodos Para Resolver Sistemas de Equações Lineares
Métodos Para Resolver Sistemas de Equações LinearesMétodos Para Resolver Sistemas de Equações Lineares
Métodos Para Resolver Sistemas de Equações Lineares
 
Analise comparativa de métodos diretos e iterativos para a solução de sistema...
Analise comparativa de métodos diretos e iterativos para a solução de sistema...Analise comparativa de métodos diretos e iterativos para a solução de sistema...
Analise comparativa de métodos diretos e iterativos para a solução de sistema...
 
mech-course.pdf
mech-course.pdfmech-course.pdf
mech-course.pdf
 
Estudo utm
Estudo utmEstudo utm
Estudo utm
 
Estudo utm
Estudo utmEstudo utm
Estudo utm
 

Último

10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptxVagner Soares da Costa
 
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxTRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxFlvioDadinhoNNhamizi
 
apresentação de Bancos de Capacitores aula
apresentação de Bancos de Capacitores aulaapresentação de Bancos de Capacitores aula
apresentação de Bancos de Capacitores aulaWilliamCruz402522
 
Apresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMApresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMdiminutcasamentos
 
Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06AndressaTenreiro
 
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptxVagner Soares da Costa
 
NR10 - Treinamento LOTO - 2023.pp tx
NR10 - Treinamento LOTO - 2023.pp     txNR10 - Treinamento LOTO - 2023.pp     tx
NR10 - Treinamento LOTO - 2023.pp txrafaelacushman21
 

Último (7)

10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
 
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxTRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
 
apresentação de Bancos de Capacitores aula
apresentação de Bancos de Capacitores aulaapresentação de Bancos de Capacitores aula
apresentação de Bancos de Capacitores aula
 
Apresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMApresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPM
 
Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06
 
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
 
NR10 - Treinamento LOTO - 2023.pp tx
NR10 - Treinamento LOTO - 2023.pp     txNR10 - Treinamento LOTO - 2023.pp     tx
NR10 - Treinamento LOTO - 2023.pp tx
 

4734 16435-1-pb

  • 1. 51 Semina: Ciências Exatas e Tecnológicas, Londrina, v. 30, n. 1, p. 51-62, jan./jun. 2009 Uma implementação do algoritmo Levenberg-Marquardt dividido para aplicações em visão computacional An implementation of the partitioned Levenberg-Marquardt algorithm for applications in computer vision José Alexandre de França1 ; Maria Bernadete de Morais França2 ; Marcela Hitomi Koyama3 ; Tiago Polizer da Silva4 Resumo Em diversas aplicações da visão computacional, é necessário estimar-se, em um modelo, os parâmetros quemelhorseajustamaumconjuntodedadosexperimentais.Nessescasos,umalgoritmodeminimização pode ser utilizado. Dentre estes, um dos mais conhecidos é o Levenberg-Marquardt. Apesar de diversas implementações de tal algoritmo estarem disponíveis livremente, nenhuma delas leva em consideração quando a solução do problema conduz a uma matriz jacobiana esparsa. Nesses casos, é possível reduzir significativamente a complexidade do algoritmo. Neste trabalho, apresenta-se uma implementação do algoritmo Levenberg-Marquardt para os casos em que a matriz jacobiana do problema é esparsa. Além disso, para ilustrar a aplicação do algoritmo, ele é aplicado a solução do problema de calibração monocular com gabaritos de uma única dimensão. Resultados empíricos mostram que o método converge satisfatoriamente em apenas algumas poucas iterações, mesmo na presença de ruído. Palavras-chave: Algoritmo Levenberg-Marquardt. Calibração Monocular. Algoritmo de Newton. Abstract At several applications of computer vision is necessary to estimate parameters for a specific model which best fits an experimental data set. For these cases, a minimization algorithm might be used and one of the most popular is the Levenberg-Marquardt algorithm. Although several free applies from this algorithm are available, any of them has great features when the resolution of problem has a sparse Jacobian matrix . In this case, it is possible to have a great reduce in the algorithm’s complexity. This work presents a Levenberg-Marquardt algorithm implemented in cases which has a sparse Jacobian matrix. To illustrate this algorithm application, the camera calibration with 1D pattern is applied to solve the problem. Empirical results show that this method is able to figure out satisfactorily with few iterations, even with noise presence. Key words: Levenberg-Marquardt algorithm. Monocular Calibration. Newton-type algorithm. 1 Departamento de Engenharia Elétrica, Universidade Estadual de Londrina; E-mail: josealexandre@eeol.org 2 Departamento de Engenharia Elétrica, Universidade Estadual de Londrina; E-mail: bernadete@eeol.org 3 Departamento de Engenharia Elétrica, Universidade Estadual de Londrina; E-mail: markoyama@yahoo.com.br 4 Departamento de Engenharia Elétrica, Universidade Estadual de Londrina; E-mail: tiagopolizer@gmail.com.
  • 2. 52 Semina: Ciências Exatas e Tecnológicas, Londrina, v. 30, n. 1, p. 51-62, jan./jun. 2009 França, J. A. de et al. Introdução Em diversas aplicações da visão computacional, comoocálculodamatrizfundamental(ARMANGUE´; SALVI, 2003), a calibração de câmeras (SALVI; ARMANGUE´; BATLLE, 2002; ZHANG, 2000), a retificação de imagens (LOOP; ZHANG, 1999) e a estimação da transformação entre pontos (HORAUD; CSURKA; DEMIRDIJIAN, 2000), é necessário estimar os parâmetros de um determinado modelo que melhor se ajustam a um conjunto de dados experimentais. Normalmente, para uma melhor exatidão, um algoritmo de minimização não-linear deve ser utilizado. A maioria dos algoritmos utilizados são baseados no método de Newton (PRESS et al., 1992). Entre eles, salienta- se o método Levenberg-Marquardt (LEVENBERG, 1944; MARQUARDT, 1963), bastante utilizado na visão computacional sempre que deseja-se ajustar um modelo a um conjunto de dados experimentais. Como exemplo, pode-se citar os trabalhos de (KONEN; TOMBROCK; SCHOLZ, 2007), (SUN et al., 2006) e (LERASLE; RIVES; DHOME, 1999). Este método é uma derivação do método de Newton que é de convergência mais rápida. Um dos motivos da popularidade do algoritmo Levenberg-Marquardt é a existência de diversas implementações disponíveis (LOURAKIS, 2004; MORÉet al., 1984; PRESS et al., 1992; SHEARER; WOLFE, 1985). Contudo, apenas uma dessas (LOURAKIS;ARGYROS, 2004) toma vantagem de uma estrutura, muito comum em problemas da visão computacional, que faz com que a minimização não- linear produza uma matriz Jacobiana esparsa. Se isso for levado em consideração, para a estimação de N parâmetros, a complexidade do algoritmo reduz-se de N 3 para apenas N. Neste trabalho, apresenta-se uma implementação do Levenberg-Marquardt, chamada Levenberg- Marquardt Dividido, que pode ser aplicada em problemas que apresentam a matriz Jacobiana esparsa. Nesse caso, o laço de iteração é dividido em vários problemas menores que possuem apenas uma fração da complexidade e são resolvidos muito mais rapidamente. Essa implementação foi codificada em linguagem do MATLAB® e pode ser executado sem modificações tanto no MATLAB® quanto no Scilab® e no Octave® . Para exemplificar o uso do algoritmo Levenberg- Marquardt Dividido, aplicou-se a implementação proposta ao problema de calibração de câmeras com auxílio de um gabarito 1D (ZHANG, 2004). Nesse caso, o método é utilizado para, dado um conjunto de projeções do gabarito em diversas imagens, estimar-se os parâmetros intrínsecos da câmera e a localização da cada ponto do gabarito no espaço tridimensional. Resultados experimentais mostram que o método é capaz de realizar a estimação de forma satisfatória e em poucas iterações, mesmo na presença de ruído. Notação No decorrer do texto, matrizes e vetores são representados por letras, números ou símbolos em negrito. As constantes são expressas por letras, números ou símbolos em itálico. Além disso, adotou-se a prática notação A-T = (A-1 )T = (A-T )1 para toda matriz quadrada e inversível. Considerando o modelo de câmera pinhole (FAUGERAS; LUONG, 2001), as coordenadas de um ponto 3D no sistema de coordenadas do ambiente de uma câmera são apresentadas como M = [x,y,z] T e a projeção correspondente no plano de imagem I, como m = [u,v]T . Além disso, as coordenadas homogêneas de um ponto m = [u,v,...]T são representadas por DE FRANC¸A, J.; FRANC¸A, M.; KOYAMA, M. & DA SILVA, T. SCHOLZ, 2007), (SUN et al., 2006) e (LERASLE; RI- VES; DHOME, 1999). Este m´etodo ´e uma derivac¸˜ao do m´etodo de Newton que ´e de convergˆencia mais r´apida. Um dos motivos da popularidade do algo- ritmo Levenberg-Marquardt ´e a existˆencia de diversas implementac¸˜oes dispon´ıveis (LOURAKIS, Jul. 2004; MOR´e et al., 1984; PRESS et al., 1992; SHEARER; WOLFE, 1985). Contudo, apenas uma dessas (LOU- RAKIS; ARGYROS, 2004) toma vantagem de uma es- trutura, muito comum em problemas da vis˜ao computa- cional, que faz com que a minimizac¸˜ao n˜ao-linear pro- duza uma matriz Jacobiana esparsa. Se isso for levado em considerac¸˜ao, para a estimac¸˜ao de N parˆametros, a complexidade do algoritmo reduz-se de N3 para apenas N. Neste trabalho, apresenta-se uma implementac¸˜ao do Levenberg-Marquardt, chamada Levenberg- Marquardt Dividido, que pode ser aplicada em problemas que apresentam a matriz Jacobiana esparsa. Neste caso, o lac¸o de iterac¸˜ao ´e dividido em v´arios problemas menores que possuem apenas uma frac¸˜ao da Considerando o modelo de GERAS; LUONG, 2001), as coo 3D no sistema de coordenadas cˆamera s˜ao apresentadas como projec¸˜ao correspondente no plan m = [u, v]T . Al´em disso, as coo de um ponto m = [u, v, ...]T s˜ao isto ´e, �m = [u, v, ..., 1]T . De ponto qualquer em coordenadas sentado por �m = [u, v, ..., t]T . indica a posic¸˜ao do ponto em um Com a notac¸˜ao adotada, a r 3D, M, e sua projec¸˜ao, m, em dada por �m � A � I3 03 com A =   α 0 u 0 β 0 0 onde “�” indica que os dois lados ferir por uma constante, α e β d˜a , isto é, DE FRANC¸A, J.; FRANC¸A, M.; KOYAMA, M. & DA SILVA, T. SCHOLZ, 2007), (SUN et al., 2006) e (LERASLE; RI- VES; DHOME, 1999). Este m´etodo ´e uma derivac¸˜ao do m´etodo de Newton que ´e de convergˆencia mais r´apida. Um dos motivos da popularidade do algo- ritmo Levenberg-Marquardt ´e a existˆencia de diversas implementac¸˜oes dispon´ıveis (LOURAKIS, Jul. 2004; MOR´e et al., 1984; PRESS et al., 1992; SHEARER; WOLFE, 1985). Contudo, apenas uma dessas (LOU- RAKIS; ARGYROS, 2004) toma vantagem de uma es- trutura, muito comum em problemas da vis˜ao computa- cional, que faz com que a minimizac¸˜ao n˜ao-linear pro- duza uma matriz Jacobiana esparsa. Se isso for levado em considerac¸˜ao, para a estimac¸˜ao de N parˆametros, a complexidade do algoritmo reduz-se de N3 para apenas N. Neste trabalho, apresenta-se uma implementac¸˜ao do Levenberg-Marquardt, chamada Levenberg- Marquardt Dividido, que pode ser aplicada em problemas que apresentam a matriz Jacobiana esparsa. Neste caso, o lac¸o de iterac¸˜ao ´e dividido em v´arios Considerando o modelo de cˆamera pinhole (FAU- GERAS; LUONG, 2001), as coordenadas de um ponto 3D no sistema de coordenadas do ambiente de uma cˆamera s˜ao apresentadas como M = [x, y, z]T e a projec¸˜ao correspondente no plano de imagem I, como m = [u, v]T . Al´em disso, as coordenadas homogˆeneas de um ponto m = [u, v, ...]T s˜ao representadas por �m, isto ´e, �m = [u, v, ..., 1]T . De forma mais geral, um ponto qualquer em coordenadas homogˆeneas ´e repre- sentado por �m = [u, v, ..., t]T . Um ´ındice, se houver, indica a posic¸˜ao do ponto em um conjunto de pontos. Com a notac¸˜ao adotada, a relac¸˜ao entre um ponto 3D, M, e sua projec¸˜ao, m, em uma cˆamera pinhole ´e dada por �m � A � I3 03 � �M, (1) com A =   α 0 u0 0 β v0 0 0 1   , (2) onde “�” indica que os dois lados da equac¸˜ao podem di- =[u,v,..., 1]T . De forma mais geral, um ponto qualquer em coordenadas homogêneas é representado por DE FRANC¸A, J.; FRANC¸A, M.; KOYAMA, M. & DA SILVA, T. SCHOLZ, 2007), (SUN et al., 2006) e (LERASLE; RI- VES; DHOME, 1999). Este m´etodo ´e uma derivac¸˜ao do m´etodo de Newton que ´e de convergˆencia mais r´apida. Um dos motivos da popularidade do algo- ritmo Levenberg-Marquardt ´e a existˆencia de diversas implementac¸˜oes dispon´ıveis (LOURAKIS, Jul. 2004; MOR´e et al., 1984; PRESS et al., 1992; SHEARER; WOLFE, 1985). Contudo, apenas uma dessas (LOU- RAKIS; ARGYROS, 2004) toma vantagem de uma es- trutura, muito comum em problemas da vis˜ao computa- cional, que faz com que a minimizac¸˜ao n˜ao-linear pro- duza uma matriz Jacobiana esparsa. Se isso for levado em considerac¸˜ao, para a estimac¸˜ao de N parˆametros, a complexidade do algoritmo reduz-se de N3 para apenas N. Neste trabalho, apresenta-se uma implementac¸˜ao do Levenberg-Marquardt, chamada Levenberg- Considerando o modelo de cˆamera pinhole (FAU- GERAS; LUONG, 2001), as coordenadas de um ponto 3D no sistema de coordenadas do ambiente de uma cˆamera s˜ao apresentadas como M = [x, y, z]T e a projec¸˜ao correspondente no plano de imagem I, como m = [u, v]T . Al´em disso, as coordenadas homogˆeneas de um ponto m = [u, v, ...]T s˜ao representadas por �m, isto ´e, �m = [u, v, ..., 1]T . De forma mais geral, um ponto qualquer em coordenadas homogˆeneas ´e repre- sentado por �m = [u, v, ..., t]T . Um ´ındice, se houver, indica a posic¸˜ao do ponto em um conjunto de pontos. Com a notac¸˜ao adotada, a relac¸˜ao entre um ponto 3D, M, e sua projec¸˜ao, m, em uma cˆamera pinhole ´e dada por �m � A � I3 03 � �M, (1) com A =   α 0 u0 0 β v0   , (2) = [u,v,...,t]T . Um índice, se houver, indica a posição do ponto em um conjunto de pontos. Com a notação adotada, a relação entre um ponto 3D, M, e sua projeção, m, em uma câmera pinhole é dada por
  • 3. 53 Semina: Ciências Exatas e Tecnológicas, Londrina, v. 30, n. 1, p. 51-62, jan./jun. 2009 Uma implementação do algoritmo Levenberg-Marquardt dividido para aplicações em visão computacional ˜ao computa- o-linear pro- o for levado arˆametros, a para apenas plementac¸˜ao Levenberg- plicada em ana esparsa. o em v´arios ma frac¸˜ao da apidamente. nguagem do modificac¸˜oes no Octave R�. Levenberg- entac¸˜ao pro- ˆameras com 04). Neste conjunto de s, estimar-se calizac¸˜ao da onal. Resul- o ´e capaz de e em poucas ores s˜ao re- olos em ne- n´umeros ou -se a pr´atica toda matriz indica a posic¸˜ao do ponto em um conjunto de pontos. Com a notac¸˜ao adotada, a relac¸˜ao entre um ponto 3D, M, e sua projec¸˜ao, m, em uma cˆamera pinhole ´e dada por �m � A � I3 03 � �M, (1) com A =   α 0 u0 0 β v0 0 0 1   , (2) onde “�” indica que os dois lados da equac¸˜ao podem di- ferir por uma constante, α e β d˜ao a relac¸˜ao entre pixels da imagem e distˆancias no ambiente da cˆamera, respec- tivamente, nas direc¸˜oes horizontal e vertical. J´a o ponto m0 = [u0, v0]T s˜ao as coordenadas do ponto central da cˆamera. Sendo assim, h´a apenas quatro parˆametros intr´ınsecos a serem estimados durante a calibrac¸˜ao, ou seja, α, β, u0 e v0. 3 Algoritmo Levenberg-Marquardt Considerando a seguinte func¸˜ao n˜ao-linear F(Y) = X, (3) onde X ∈ IRM e Y ∈ IRN s˜ao vetores e M ≥ N. Freq¨uentemente, ´e necess´ario estimar o vetor �Y que me- lhor ajusta-se a um vetor �X medido. Esse problema pode ser reformulado como, dado o vetor �X, encontrar �Y que minimiza ���, sujeito a �X = F( �Y) + �. Dada uma estimac¸˜ao inicial �Y, o m´etodo de New- ton (PRESS et al., 1992) a refina assumindo que F( �Y+ ∆) = F( �Y) + J∆, onde J ´e a matriz jacobiana, ou seja, J = ∂X/∂Y, e ∆ ´e um que indica um “pequeno” incremento de �Y. Dessa forma, minimizar ��� equivale a minimizar �� − J∆�, (4) cnol´ogicas, Londrina, v. 26, n. 2, p. 195-203, jul./dez. 2005 (1) com 0 0 0 0 0 0 1 u A v α β    =      , (2) onde “ - o - s ; ; - - - - o a s o - m . s a . o s . - - m e e e a - e s - - u a z Considerando o modelo de cˆamera pinhole (FAU- GERAS; LUONG, 2001), as coordenadas de um ponto 3D no sistema de coordenadas do ambiente de uma cˆamera s˜ao apresentadas como M = [x, y, z]T e a projec¸˜ao correspondente no plano de imagem I, como m = [u, v]T . Al´em disso, as coordenadas homogˆeneas de um ponto m = [u, v, ...]T s˜ao representadas por �m, isto ´e, �m = [u, v, ..., 1]T . De forma mais geral, um ponto qualquer em coordenadas homogˆeneas ´e repre- sentado por �m = [u, v, ..., t]T . Um ´ındice, se houver, indica a posic¸˜ao do ponto em um conjunto de pontos. Com a notac¸˜ao adotada, a relac¸˜ao entre um ponto 3D, M, e sua projec¸˜ao, m, em uma cˆamera pinhole ´e dada por �m � A � I3 03 � �M, (1) com A =   α 0 u0 0 β v0 0 0 1   , (2) onde “�” indica que os dois lados da equac¸˜ao podem di- ferir por uma constante, α e β d˜ao a relac¸˜ao entre pixels da imagem e distˆancias no ambiente da cˆamera, respec- tivamente, nas direc¸˜oes horizontal e vertical. J´a o ponto m0 = [u0, v0]T s˜ao as coordenadas do ponto central da cˆamera. Sendo assim, h´a apenas quatro parˆametros intr´ınsecos a serem estimados durante a calibrac¸˜ao, ou seja, α, β, u0 e v0. 3 Algoritmo Levenberg-Marquardt Considerando a seguinte func¸˜ao n˜ao-linear F(Y) = X, (3) onde X ∈ IRM e Y ∈ IRN s˜ao vetores e M ≥ N. Freq¨uentemente, ´e necess´ario estimar o vetor �Y que me- lhor ajusta-se a um vetor �X medido. Esse problema pode ser reformulado como, dado o vetor �X, encontrar �Y que minimiza ���, sujeito a �X = F( �Y) + �. Dada uma estimac¸˜ao inicial �Y, o m´etodo de New- ton (PRESS et al., 1992) a refina assumindo que F( �Y+ ∆) = F( �Y) + J∆, onde J ´e a matriz jacobiana, ou seja, J = ∂X/∂Y, e ∆ ´e um que indica um “pequeno” incremento de �Y. Dessa forma, minimizar ��� equivale a minimizar �� − J∆�, (4) ondrina, v. 26, n. 2, p. 195-203, jul./dez. 2005 ” indica que os dois lados da equação podem diferir por uma constante, α e β dão a relação entre pixels da imagem e distâncias no ambiente da câmera, respectivamente, nas direções horizontal e vertical. Já o ponto es dispon´ıveis (LOURAKIS, Jul. 2004; 1984; PRESS et al., 1992; SHEARER; 5). Contudo, apenas uma dessas (LOU- YROS, 2004) toma vantagem de uma es- comum em problemas da vis˜ao computa- z com que a minimizac¸˜ao n˜ao-linear pro- triz Jacobiana esparsa. Se isso for levado c¸˜ao, para a estimac¸˜ao de N parˆametros, a do algoritmo reduz-se de N3 para apenas balho, apresenta-se uma implementac¸˜ao rg-Marquardt, chamada Levenberg- Dividido, que pode ser aplicada em e apresentam a matriz Jacobiana esparsa. o lac¸o de iterac¸˜ao ´e dividido em v´arios nores que possuem apenas uma frac¸˜ao da e s˜ao resolvidos muito mais rapidamente. ntac¸˜ao foi codificada em linguagem do e pode ser executada sem modificac¸˜oes LAB R� quanto no Scilab R� e no Octave R�. mplificar o uso do algoritmo Levenberg- vidido, aplicou-se a implementac¸˜ao pro- blema de calibrac¸˜ao de cˆameras com m gabarito 1D (ZHANG, 2004). Neste do ´e utilizado para, dado um conjunto de gabarito em diversas imagens, estimar-se intr´ınsecos da cˆamera e a localizac¸˜ao da gabarito no espac¸o tridimensional. Resul- entais mostram que o m´etodo ´e capaz de mac¸˜ao de forma satisfat´oria e em poucas mo na presenc¸a de ru´ıdo. ˜ao rer do texto, matrizes e vetores s˜ao re- or letras, n´umeros ou s´ımbolos em ne- ntes s˜ao expressas por letras, n´umeros ou it´alico. Al´em disso, adotou-se a pr´atica = (A−1)T = (AT )−1 para toda matriz vers´ıvel. m = [u, v]T . Al´em disso, as coordenadas homogˆeneas de um ponto m = [u, v, ...]T s˜ao representadas por �m, isto ´e, �m = [u, v, ..., 1]T . De forma mais geral, um ponto qualquer em coordenadas homogˆeneas ´e repre- sentado por �m = [u, v, ..., t]T . Um ´ındice, se houver, indica a posic¸˜ao do ponto em um conjunto de pontos. Com a notac¸˜ao adotada, a relac¸˜ao entre um ponto 3D, M, e sua projec¸˜ao, m, em uma cˆamera pinhole ´e dada por �m � A � I3 03 � �M, (1) com A =   α 0 u0 0 β v0 0 0 1   , (2) onde “�” indica que os dois lados da equac¸˜ao podem di- ferir por uma constante, α e β d˜ao a relac¸˜ao entre pixels da imagem e distˆancias no ambiente da cˆamera, respec- tivamente, nas direc¸˜oes horizontal e vertical. J´a o ponto m0 = [u0, v0]T s˜ao as coordenadas do ponto central da cˆamera. Sendo assim, h´a apenas quatro parˆametros intr´ınsecos a serem estimados durante a calibrac¸˜ao, ou seja, α, β, u0 e v0. 3 Algoritmo Levenberg-Marquardt Considerando a seguinte func¸˜ao n˜ao-linear F(Y) = X, (3) onde X ∈ IRM e Y ∈ IRN s˜ao vetores e M ≥ N. Freq¨uentemente, ´e necess´ario estimar o vetor �Y que me- lhor ajusta-se a um vetor �X medido. Esse problema pode ser reformulado como, dado o vetor �X, encontrar �Y que minimiza ���, sujeito a �X = F( �Y) + �. Dada uma estimac¸˜ao inicial �Y, o m´etodo de New- ton (PRESS et al., 1992) a refina assumindo que F( �Y+ ∆) = F( �Y) + J∆, onde J ´e a matriz jacobiana, ou seja, J = ∂X/∂Y, e ∆ ´e um que indica um “pequeno” incremento de �Y. Dessa forma, minimizar ��� equivale a minimizar �� − J∆�, (4) Semina: Ciˆencias Exatas e Tecnol´ogicas, Londrina, v. 26, n. 2, p. 195-203, jul./dez. 2005 são as coordenadas do ponto central da câmera. Sendo assim, há apenas quatro parâmetros intrínsecos a serem estimados durante a calibração, ou seja, α, β, 0u e 0v . Algoritmo Levenberg-Marquardt Considerando a seguinte função não-linear do algo- de diversas Jul. 2004; HEARER; sas (LOU- de uma es- o computa- linear pro- for levado rˆametros, a para apenas ementac¸˜ao Levenberg- licada em na esparsa. em v´arios a frac¸˜ao da pidamente. guagem do odificac¸˜oes o Octave R�. Levenberg- ntac¸˜ao pro- meras com 4). Neste onjunto de estimar-se alizac¸˜ao da nal. Resul- ´e capaz de em poucas res s˜ao re- os em ne- ´umeros ou e a pr´atica oda matriz projec¸˜ao correspondente no plano de imagem I, como m = [u, v]T . Al´em disso, as coordenadas homogˆeneas de um ponto m = [u, v, ...]T s˜ao representadas por �m, isto ´e, �m = [u, v, ..., 1]T . De forma mais geral, um ponto qualquer em coordenadas homogˆeneas ´e repre- sentado por �m = [u, v, ..., t]T . Um ´ındice, se houver, indica a posic¸˜ao do ponto em um conjunto de pontos. Com a notac¸˜ao adotada, a relac¸˜ao entre um ponto 3D, M, e sua projec¸˜ao, m, em uma cˆamera pinhole ´e dada por �m � A � I3 03 � �M, (1) com A =   α 0 u0 0 β v0 0 0 1   , (2) onde “�” indica que os dois lados da equac¸˜ao podem di- ferir por uma constante, α e β d˜ao a relac¸˜ao entre pixels da imagem e distˆancias no ambiente da cˆamera, respec- tivamente, nas direc¸˜oes horizontal e vertical. J´a o ponto m0 = [u0, v0]T s˜ao as coordenadas do ponto central da cˆamera. Sendo assim, h´a apenas quatro parˆametros intr´ınsecos a serem estimados durante a calibrac¸˜ao, ou seja, α, β, u0 e v0. 3 Algoritmo Levenberg-Marquardt Considerando a seguinte func¸˜ao n˜ao-linear F(Y) = X, (3) onde X ∈ IRM e Y ∈ IRN s˜ao vetores e M ≥ N. Freq¨uentemente, ´e necess´ario estimar o vetor �Y que me- lhor ajusta-se a um vetor �X medido. Esse problema pode ser reformulado como, dado o vetor �X, encontrar �Y que minimiza ���, sujeito a �X = F( �Y) + �. Dada uma estimac¸˜ao inicial �Y, o m´etodo de New- ton (PRESS et al., 1992) a refina assumindo que F( �Y+ ∆) = F( �Y) + J∆, onde J ´e a matriz jacobiana, ou seja, J = ∂X/∂Y, e ∆ ´e um que indica um “pequeno” incremento de �Y. Dessa forma, minimizar ��� equivale a minimizar �� − J∆�, (4) nol´ogicas, Londrina, v. 26, n. 2, p. 195-203, jul./dez. 2005 (3) onde X∈ 3D no sistema de coordenadas do ambiente de uma cˆamera s˜ao apresentadas como M = [x, y, z]T e a projec¸˜ao correspondente no plano de imagem I, como m = [u, v]T . Al´em disso, as coordenadas homogˆeneas de um ponto m = [u, v, ...]T s˜ao representadas por �m, isto ´e, �m = [u, v, ..., 1]T . De forma mais geral, um ponto qualquer em coordenadas homogˆeneas ´e repre- sentado por �m = [u, v, ..., t]T . Um ´ındice, se houver, indica a posic¸˜ao do ponto em um conjunto de pontos. Com a notac¸˜ao adotada, a relac¸˜ao entre um ponto 3D, M, e sua projec¸˜ao, m, em uma cˆamera pinhole ´e dada por �m � A � I3 03 � �M, (1) com A =   α 0 u0 0 β v0 0 0 1   , (2) onde “�” indica que os dois lados da equac¸˜ao podem di- ferir por uma constante, α e β d˜ao a relac¸˜ao entre pixels da imagem e distˆancias no ambiente da cˆamera, respec- tivamente, nas direc¸˜oes horizontal e vertical. J´a o ponto m0 = [u0, v0]T s˜ao as coordenadas do ponto central da cˆamera. Sendo assim, h´a apenas quatro parˆametros intr´ınsecos a serem estimados durante a calibrac¸˜ao, ou seja, α, β, u0 e v0. 3 Algoritmo Levenberg-Marquardt Considerando a seguinte func¸˜ao n˜ao-linear F(Y) = X, (3) onde X ∈ IRM e Y ∈ IRN s˜ao vetores e M ≥ N. Freq¨uentemente, ´e necess´ario estimar o vetor �Y que me- lhor ajusta-se a um vetor �X medido. Esse problema pode ser reformulado como, dado o vetor �X, encontrar �Y que minimiza ���, sujeito a �X = F( �Y) + �. Dada uma estimac¸˜ao inicial �Y, o m´etodo de New- ton (PRESS et al., 1992) a refina assumindo que F( �Y+ ∆) = F( �Y) + J∆, onde J ´e a matriz jacobiana, ou seja, J = ∂X/∂Y, e ∆ ´e um que indica um “pequeno” incremento de �Y. Dessa forma, minimizar ��� equivale a minimizar �� − J∆�, (4) ndrina, v. 26, n. 2, p. 195-203, jul./dez. 2005 M e Y∈ is r´apida. do algo- e diversas ul. 2004; HEARER; sas (LOU- de uma es- computa- linear pro- for levado ˆametros, a ara apenas ementac¸˜ao Levenberg- icada em na esparsa. em v´arios a frac¸˜ao da pidamente. uagem do odificac¸˜oes Octave R�. Levenberg- tac¸˜ao pro- meras com 4). Neste onjunto de estimar-se lizac¸˜ao da nal. Resul- ´e capaz de em poucas es s˜ao re- os em ne- ´umeros ou e a pr´atica oda matriz 3D no sistema de coordenadas do ambiente de uma cˆamera s˜ao apresentadas como M = [x, y, z]T e a projec¸˜ao correspondente no plano de imagem I, como m = [u, v]T . Al´em disso, as coordenadas homogˆeneas de um ponto m = [u, v, ...]T s˜ao representadas por �m, isto ´e, �m = [u, v, ..., 1]T . De forma mais geral, um ponto qualquer em coordenadas homogˆeneas ´e repre- sentado por �m = [u, v, ..., t]T . Um ´ındice, se houver, indica a posic¸˜ao do ponto em um conjunto de pontos. Com a notac¸˜ao adotada, a relac¸˜ao entre um ponto 3D, M, e sua projec¸˜ao, m, em uma cˆamera pinhole ´e dada por �m � A � I3 03 � �M, (1) com A =   α 0 u0 0 β v0 0 0 1   , (2) onde “�” indica que os dois lados da equac¸˜ao podem di- ferir por uma constante, α e β d˜ao a relac¸˜ao entre pixels da imagem e distˆancias no ambiente da cˆamera, respec- tivamente, nas direc¸˜oes horizontal e vertical. J´a o ponto m0 = [u0, v0]T s˜ao as coordenadas do ponto central da cˆamera. Sendo assim, h´a apenas quatro parˆametros intr´ınsecos a serem estimados durante a calibrac¸˜ao, ou seja, α, β, u0 e v0. 3 Algoritmo Levenberg-Marquardt Considerando a seguinte func¸˜ao n˜ao-linear F(Y) = X, (3) onde X ∈ IRM e Y ∈ IRN s˜ao vetores e M ≥ N. Freq¨uentemente, ´e necess´ario estimar o vetor �Y que me- lhor ajusta-se a um vetor �X medido. Esse problema pode ser reformulado como, dado o vetor �X, encontrar �Y que minimiza ���, sujeito a �X = F( �Y) + �. Dada uma estimac¸˜ao inicial �Y, o m´etodo de New- ton (PRESS et al., 1992) a refina assumindo que F( �Y+ ∆) = F( �Y) + J∆, onde J ´e a matriz jacobiana, ou seja, J = ∂X/∂Y, e ∆ ´e um que indica um “pequeno” incremento de �Y. Dessa forma, minimizar ��� equivale a minimizar �� − J∆�, (4) ol´ogicas, Londrina, v. 26, n. 2, p. 195-203, jul./dez. 2005 N são vetores e M≥N . Freqüentemente, é necessário estimar o vetor ESS et al., 1992; SHEARER; do, apenas uma dessas (LOU- 04) toma vantagem de uma es- m problemas da vis˜ao computa- a minimizac¸˜ao n˜ao-linear pro- na esparsa. Se isso for levado estimac¸˜ao de N parˆametros, a mo reduz-se de N3 para apenas esenta-se uma implementac¸˜ao rdt, chamada Levenberg- que pode ser aplicada em m a matriz Jacobiana esparsa. terac¸˜ao ´e dividido em v´arios possuem apenas uma frac¸˜ao da vidos muito mais rapidamente. codificada em linguagem do executada sem modificac¸˜oes anto no Scilab R� e no Octave R�. uso do algoritmo Levenberg- icou-se a implementac¸˜ao pro- calibrac¸˜ao de cˆameras com 1D (ZHANG, 2004). Neste do para, dado um conjunto de m diversas imagens, estimar-se s da cˆamera e a localizac¸˜ao da o espac¸o tridimensional. Resul- tram que o m´etodo ´e capaz de orma satisfat´oria e em poucas enc¸a de ru´ıdo. to, matrizes e vetores s˜ao re- n´umeros ou s´ımbolos em ne- pressas por letras, n´umeros ou l´em disso, adotou-se a pr´atica T = (AT )−1 para toda matriz de um ponto m = [u, v, ...] s˜ao representadas por �m, isto ´e, �m = [u, v, ..., 1]T . De forma mais geral, um ponto qualquer em coordenadas homogˆeneas ´e repre- sentado por �m = [u, v, ..., t]T . Um ´ındice, se houver, indica a posic¸˜ao do ponto em um conjunto de pontos. Com a notac¸˜ao adotada, a relac¸˜ao entre um ponto 3D, M, e sua projec¸˜ao, m, em uma cˆamera pinhole ´e dada por �m � A � I3 03 � �M, (1) com A =   α 0 u0 0 β v0 0 0 1   , (2) onde “�” indica que os dois lados da equac¸˜ao podem di- ferir por uma constante, α e β d˜ao a relac¸˜ao entre pixels da imagem e distˆancias no ambiente da cˆamera, respec- tivamente, nas direc¸˜oes horizontal e vertical. J´a o ponto m0 = [u0, v0]T s˜ao as coordenadas do ponto central da cˆamera. Sendo assim, h´a apenas quatro parˆametros intr´ınsecos a serem estimados durante a calibrac¸˜ao, ou seja, α, β, u0 e v0. 3 Algoritmo Levenberg-Marquardt Considerando a seguinte func¸˜ao n˜ao-linear F(Y) = X, (3) onde X ∈ IRM e Y ∈ IRN s˜ao vetores e M ≥ N. Freq¨uentemente, ´e necess´ario estimar o vetor �Y que me- lhor ajusta-se a um vetor �X medido. Esse problema pode ser reformulado como, dado o vetor �X, encontrar �Y que minimiza ���, sujeito a �X = F( �Y) + �. Dada uma estimac¸˜ao inicial �Y, o m´etodo de New- ton (PRESS et al., 1992) a refina assumindo que F( �Y+ ∆) = F( �Y) + J∆, onde J ´e a matriz jacobiana, ou seja, J = ∂X/∂Y, e ∆ ´e um que indica um “pequeno” incremento de �Y. Dessa forma, minimizar ��� equivale a minimizar �� − J∆�, (4) Ciˆencias Exatas e Tecnol´ogicas, Londrina, v. 26, n. 2, p. 195-203, jul./dez. 2005 que melhor se ajusta a um vetor rgˆencia mais r´apida. ularidade do algo- existˆencia de diversas URAKIS, Jul. 2004; ., 1992; SHEARER; s uma dessas (LOU- vantagem de uma es- mas da vis˜ao computa- zac¸˜ao n˜ao-linear pro- sa. Se isso for levado o de N parˆametros, a se de N3 para apenas uma implementac¸˜ao hamada Levenberg- e ser aplicada em iz Jacobiana esparsa. ´e dividido em v´arios apenas uma frac¸˜ao da ito mais rapidamente. a em linguagem do da sem modificac¸˜oes cilab R� e no Octave R�. algoritmo Levenberg- implementac¸˜ao pro- ˜ao de cˆameras com ANG, 2004). Neste dado um conjunto de s imagens, estimar-se era e a localizac¸˜ao da ridimensional. Resul- o m´etodo ´e capaz de isfat´oria e em poucas u´ıdo. zes e vetores s˜ao re- ou s´ımbolos em ne- or letras, n´umeros ou , adotou-se a pr´atica )−1 para toda matriz 3D no sistema de coordenadas do ambiente de uma cˆamera s˜ao apresentadas como M = [x, y, z]T e a projec¸˜ao correspondente no plano de imagem I, como m = [u, v]T . Al´em disso, as coordenadas homogˆeneas de um ponto m = [u, v, ...]T s˜ao representadas por �m, isto ´e, �m = [u, v, ..., 1]T . De forma mais geral, um ponto qualquer em coordenadas homogˆeneas ´e repre- sentado por �m = [u, v, ..., t]T . Um ´ındice, se houver, indica a posic¸˜ao do ponto em um conjunto de pontos. Com a notac¸˜ao adotada, a relac¸˜ao entre um ponto 3D, M, e sua projec¸˜ao, m, em uma cˆamera pinhole ´e dada por �m � A � I3 03 � �M, (1) com A =   α 0 u0 0 β v0 0 0 1   , (2) onde “�” indica que os dois lados da equac¸˜ao podem di- ferir por uma constante, α e β d˜ao a relac¸˜ao entre pixels da imagem e distˆancias no ambiente da cˆamera, respec- tivamente, nas direc¸˜oes horizontal e vertical. J´a o ponto m0 = [u0, v0]T s˜ao as coordenadas do ponto central da cˆamera. Sendo assim, h´a apenas quatro parˆametros intr´ınsecos a serem estimados durante a calibrac¸˜ao, ou seja, α, β, u0 e v0. 3 Algoritmo Levenberg-Marquardt Considerando a seguinte func¸˜ao n˜ao-linear F(Y) = X, (3) onde X ∈ IRM e Y ∈ IRN s˜ao vetores e M ≥ N. Freq¨uentemente, ´e necess´ario estimar o vetor �Y que me- lhor ajusta-se a um vetor �X medido. Esse problema pode ser reformulado como, dado o vetor �X, encontrar �Y que minimiza ���, sujeito a �X = F( �Y) + �. Dada uma estimac¸˜ao inicial �Y, o m´etodo de New- ton (PRESS et al., 1992) a refina assumindo que F( �Y+ ∆) = F( �Y) + J∆, onde J ´e a matriz jacobiana, ou seja, J = ∂X/∂Y, e ∆ ´e um que indica um “pequeno” incremento de �Y. Dessa forma, minimizar ��� equivale a minimizar �� − J∆�, (4) xatas e Tecnol´ogicas, Londrina, v. 26, n. 2, p. 195-203, jul./dez. 2005 medido. Esse problema pode ser reformulado como, dado o vetor derando o modelo de cˆamera pinhole (FAU- LUONG, 2001), as coordenadas de um ponto tema de coordenadas do ambiente de uma o apresentadas como M = [x, y, z]T e a orrespondente no plano de imagem I, como ]T . Al´em disso, as coordenadas homogˆeneas nto m = [u, v, ...]T s˜ao representadas por �m, = [u, v, ..., 1]T . De forma mais geral, um lquer em coordenadas homogˆeneas ´e repre- or �m = [u, v, ..., t]T . Um ´ındice, se houver, osic¸˜ao do ponto em um conjunto de pontos. a notac¸˜ao adotada, a relac¸˜ao entre um ponto sua projec¸˜ao, m, em uma cˆamera pinhole ´e �m � A � I3 03 � �M, (1) A =   α 0 u0 0 β v0 0 0 1   , (2) indica que os dois lados da equac¸˜ao podem di- ma constante, α e β d˜ao a relac¸˜ao entre pixels m e distˆancias no ambiente da cˆamera, respec- nas direc¸˜oes horizontal e vertical. J´a o ponto 0, v0]T s˜ao as coordenadas do ponto central . Sendo assim, h´a apenas quatro parˆametros s a serem estimados durante a calibrac¸˜ao, ou u0 e v0. oritmo Levenberg-Marquardt derando a seguinte func¸˜ao n˜ao-linear F(Y) = X, (3) ∈ IRM e Y ∈ IRN s˜ao vetores e M ≥ N. mente, ´e necess´ario estimar o vetor �Y que me- a-se a um vetor �X medido. Esse problema eformulado como, dado o vetor �X, encontrar nimiza ���, sujeito a �X = F( �Y) + �. uma estimac¸˜ao inicial �Y, o m´etodo de New- S et al., 1992) a refina assumindo que F( �Y+ ( �Y) + J∆, onde J ´e a matriz jacobiana, ou ∂X/∂Y, e ∆ ´e um que indica um “pequeno” o de �Y. Dessa forma, minimizar ��� equivale ar �� − J∆�, (4) , n. 2, p. 195-203, jul./dez. 2005 , encontrar cˆamera s˜ao apresentadas como M = [x, y, z]T e a projec¸˜ao correspondente no plano de imagem I, como m = [u, v]T . Al´em disso, as coordenadas homogˆeneas de um ponto m = [u, v, ...]T s˜ao representadas por �m, isto ´e, �m = [u, v, ..., 1]T . De forma mais geral, um ponto qualquer em coordenadas homogˆeneas ´e repre- sentado por �m = [u, v, ..., t]T . Um ´ındice, se houver, indica a posic¸˜ao do ponto em um conjunto de pontos. Com a notac¸˜ao adotada, a relac¸˜ao entre um ponto 3D, M, e sua projec¸˜ao, m, em uma cˆamera pinhole ´e dada por �m � A � I3 03 � �M, (1) com A =   α 0 u0 0 β v0 0 0 1   , (2) onde “�” indica que os dois lados da equac¸˜ao podem di- ferir por uma constante, α e β d˜ao a relac¸˜ao entre pixels da imagem e distˆancias no ambiente da cˆamera, respec- tivamente, nas direc¸˜oes horizontal e vertical. J´a o ponto m0 = [u0, v0]T s˜ao as coordenadas do ponto central da cˆamera. Sendo assim, h´a apenas quatro parˆametros intr´ınsecos a serem estimados durante a calibrac¸˜ao, ou seja, α, β, u0 e v0. 3 Algoritmo Levenberg-Marquardt Considerando a seguinte func¸˜ao n˜ao-linear F(Y) = X, (3) onde X ∈ IRM e Y ∈ IRN s˜ao vetores e M ≥ N. Freq¨uentemente, ´e necess´ario estimar o vetor �Y que me- lhor ajusta-se a um vetor �X medido. Esse problema pode ser reformulado como, dado o vetor �X, encontrar �Y que minimiza ���, sujeito a �X = F( �Y) + �. Dada uma estimac¸˜ao inicial �Y, o m´etodo de New- ton (PRESS et al., 1992) a refina assumindo que F( �Y+ ∆) = F( �Y) + J∆, onde J ´e a matriz jacobiana, ou seja, J = ∂X/∂Y, e ∆ ´e um que indica um “pequeno” incremento de �Y. Dessa forma, minimizar ��� equivale a minimizar �� − J∆�, (4) drina, v. 26, n. 2, p. 195-203, jul./dez. 2005 que minimiza || apida. algo- iversas 2004; ARER; (LOU- ma es- mputa- ar pro- levado tros, a apenas ntac¸˜ao nberg- a em sparsa. v´arios c¸˜ao da mente. em do cac¸˜oes tave R�. nberg- o pro- s com Neste nto de mar-se c¸˜ao da Resul- paz de poucas ˜ao re- m ne- ros ou pr´atica matriz 3D no sistema de coordenadas do ambiente de uma cˆamera s˜ao apresentadas como M = [x, y, z]T e a projec¸˜ao correspondente no plano de imagem I, como m = [u, v]T . Al´em disso, as coordenadas homogˆeneas de um ponto m = [u, v, ...]T s˜ao representadas por �m, isto ´e, �m = [u, v, ..., 1]T . De forma mais geral, um ponto qualquer em coordenadas homogˆeneas ´e repre- sentado por �m = [u, v, ..., t]T . Um ´ındice, se houver, indica a posic¸˜ao do ponto em um conjunto de pontos. Com a notac¸˜ao adotada, a relac¸˜ao entre um ponto 3D, M, e sua projec¸˜ao, m, em uma cˆamera pinhole ´e dada por �m � A � I3 03 � �M, (1) com A =   α 0 u0 0 β v0 0 0 1   , (2) onde “�” indica que os dois lados da equac¸˜ao podem di- ferir por uma constante, α e β d˜ao a relac¸˜ao entre pixels da imagem e distˆancias no ambiente da cˆamera, respec- tivamente, nas direc¸˜oes horizontal e vertical. J´a o ponto m0 = [u0, v0]T s˜ao as coordenadas do ponto central da cˆamera. Sendo assim, h´a apenas quatro parˆametros intr´ınsecos a serem estimados durante a calibrac¸˜ao, ou seja, α, β, u0 e v0. 3 Algoritmo Levenberg-Marquardt Considerando a seguinte func¸˜ao n˜ao-linear F(Y) = X, (3) onde X ∈ IRM e Y ∈ IRN s˜ao vetores e M ≥ N. Freq¨uentemente, ´e necess´ario estimar o vetor �Y que me- lhor ajusta-se a um vetor �X medido. Esse problema pode ser reformulado como, dado o vetor �X, encontrar �Y que minimiza ���, sujeito a �X = F( �Y) + �. Dada uma estimac¸˜ao inicial �Y, o m´etodo de New- ton (PRESS et al., 1992) a refina assumindo que F( �Y+ ∆) = F( �Y) + J∆, onde J ´e a matriz jacobiana, ou seja, J = ∂X/∂Y, e ∆ ´e um que indica um “pequeno” incremento de �Y. Dessa forma, minimizar ��� equivale a minimizar �� − J∆�, (4) icas, Londrina, v. 26, n. 2, p. 195-203, jul./dez. 2005 ||, sujeito a ando o modelo de camera pinhole (FAU- ONG, 2001), as coordenadas de um ponto a de coordenadas do ambiente de uma presentadas como M = [x, y, z]T e a spondente no plano de imagem I, como Al´em disso, as coordenadas homogˆeneas m = [u, v, ...]T s˜ao representadas por �m, [u, v, ..., 1]T . De forma mais geral, um er em coordenadas homogˆeneas ´e repre- m = [u, v, ..., t]T . Um ´ındice, se houver, ˜ao do ponto em um conjunto de pontos. otac¸˜ao adotada, a relac¸˜ao entre um ponto projec¸˜ao, m, em uma cˆamera pinhole ´e �m � A � I3 03 � �M, (1) A =   α 0 u0 0 β v0 0 0 1   , (2) ca que os dois lados da equac¸˜ao podem di- constante, α e β d˜ao a relac¸˜ao entre pixels distˆancias no ambiente da cˆamera, respec- direc¸˜oes horizontal e vertical. J´a o ponto 0]T s˜ao as coordenadas do ponto central endo assim, h´a apenas quatro parˆametros erem estimados durante a calibrac¸˜ao, ou e v0. tmo Levenberg-Marquardt ando a seguinte func¸˜ao n˜ao-linear F(Y) = X, (3) M e Y ∈ IRN s˜ao vetores e M ≥ N. te, ´e necess´ario estimar o vetor �Y que me- a um vetor �X medido. Esse problema mulado como, dado o vetor �X, encontrar za ���, sujeito a �X = F( �Y) + �. a estimac¸˜ao inicial �Y, o m´etodo de New- al., 1992) a refina assumindo que F( �Y+ + J∆, onde J ´e a matriz jacobiana, ou /∂Y, e ∆ ´e um que indica um “pequeno” �Y. Dessa forma, minimizar ��� equivale �� − J∆�, (4) 2, p. 195-203, jul./dez. 2005 Dada uma estimação inicial LERASLE; RI- ma derivac¸˜ao do a mais r´apida. ade do algo- cia de diversas KIS, Jul. 2004; 2; SHEARER; a dessas (LOU- gem de uma es- vis˜ao computa- n˜ao-linear pro- isso for levado N parˆametros, a N3 para apenas implementac¸˜ao a Levenberg- aplicada em obiana esparsa. dido em v´arios s uma frac¸˜ao da is rapidamente. linguagem do m modificac¸˜oes e no Octave R�. mo Levenberg- ementac¸˜ao pro- cˆameras com 2004). Neste um conjunto de gens, estimar-se localizac¸˜ao da nsional. Resul- odo ´e capaz de ia e em poucas vetores s˜ao re- mbolos em ne- as, n´umeros ou ou-se a pr´atica ara toda matriz Considerando o modelo de cˆamera pinhole (FAU- GERAS; LUONG, 2001), as coordenadas de um ponto 3D no sistema de coordenadas do ambiente de uma cˆamera s˜ao apresentadas como M = [x, y, z]T e a projec¸˜ao correspondente no plano de imagem I, como m = [u, v]T . Al´em disso, as coordenadas homogˆeneas de um ponto m = [u, v, ...]T s˜ao representadas por �m, isto ´e, �m = [u, v, ..., 1]T . De forma mais geral, um ponto qualquer em coordenadas homogˆeneas ´e repre- sentado por �m = [u, v, ..., t]T . Um ´ındice, se houver, indica a posic¸˜ao do ponto em um conjunto de pontos. Com a notac¸˜ao adotada, a relac¸˜ao entre um ponto 3D, M, e sua projec¸˜ao, m, em uma cˆamera pinhole ´e dada por �m � A � I3 03 � �M, (1) com A =   α 0 u0 0 β v0 0 0 1   , (2) onde “�” indica que os dois lados da equac¸˜ao podem di- ferir por uma constante, α e β d˜ao a relac¸˜ao entre pixels da imagem e distˆancias no ambiente da cˆamera, respec- tivamente, nas direc¸˜oes horizontal e vertical. J´a o ponto m0 = [u0, v0]T s˜ao as coordenadas do ponto central da cˆamera. Sendo assim, h´a apenas quatro parˆametros intr´ınsecos a serem estimados durante a calibrac¸˜ao, ou seja, α, β, u0 e v0. 3 Algoritmo Levenberg-Marquardt Considerando a seguinte func¸˜ao n˜ao-linear F(Y) = X, (3) onde X ∈ IRM e Y ∈ IRN s˜ao vetores e M ≥ N. Freq¨uentemente, ´e necess´ario estimar o vetor �Y que me- lhor ajusta-se a um vetor �X medido. Esse problema pode ser reformulado como, dado o vetor �X, encontrar �Y que minimiza ���, sujeito a �X = F( �Y) + �. Dada uma estimac¸˜ao inicial �Y, o m´etodo de New- ton (PRESS et al., 1992) a refina assumindo que F( �Y+ ∆) = F( �Y) + J∆, onde J ´e a matriz jacobiana, ou seja, J = ∂X/∂Y, e ∆ ´e um que indica um “pequeno” incremento de �Y. Dessa forma, minimizar ��� equivale a minimizar �� − J∆�, (4) Tecnol´ogicas, Londrina, v. 26, n. 2, p. 195-203, jul./dez. 2005 , o método de Newton (PRESS et al., 1992) a refina assumindo que al., 2006) e (LERASLE; RI- e m´etodo ´e uma derivac¸˜ao do e convergˆencia mais r´apida. da popularidade do algo- dt ´e a existˆencia de diversas is (LOURAKIS, Jul. 2004; SS et al., 1992; SHEARER; , apenas uma dessas (LOU- ) toma vantagem de uma es- problemas da vis˜ao computa- minimizac¸˜ao n˜ao-linear pro- a esparsa. Se isso for levado timac¸˜ao de N parˆametros, a o reduz-se de N3 para apenas enta-se uma implementac¸˜ao t, chamada Levenberg- e pode ser aplicada em a matriz Jacobiana esparsa. rac¸˜ao ´e dividido em v´arios ssuem apenas uma frac¸˜ao da dos muito mais rapidamente. odificada em linguagem do xecutada sem modificac¸˜oes o no Scilab R� e no Octave R�. so do algoritmo Levenberg- ou-se a implementac¸˜ao pro- alibrac¸˜ao de cˆameras com D (ZHANG, 2004). Neste para, dado um conjunto de diversas imagens, estimar-se da cˆamera e a localizac¸˜ao da spac¸o tridimensional. Resul- am que o m´etodo ´e capaz de ma satisfat´oria e em poucas nc¸a de ru´ıdo. matrizes e vetores s˜ao re- meros ou s´ımbolos em ne- essas por letras, n´umeros ou m disso, adotou-se a pr´atica = (AT )−1 para toda matriz Considerando o modelo de cˆamera pinhole (FAU- GERAS; LUONG, 2001), as coordenadas de um ponto 3D no sistema de coordenadas do ambiente de uma cˆamera s˜ao apresentadas como M = [x, y, z]T e a projec¸˜ao correspondente no plano de imagem I, como m = [u, v]T . Al´em disso, as coordenadas homogˆeneas de um ponto m = [u, v, ...]T s˜ao representadas por �m, isto ´e, �m = [u, v, ..., 1]T . De forma mais geral, um ponto qualquer em coordenadas homogˆeneas ´e repre- sentado por �m = [u, v, ..., t]T . Um ´ındice, se houver, indica a posic¸˜ao do ponto em um conjunto de pontos. Com a notac¸˜ao adotada, a relac¸˜ao entre um ponto 3D, M, e sua projec¸˜ao, m, em uma cˆamera pinhole ´e dada por �m � A � I3 03 � �M, (1) com A =   α 0 u0 0 β v0 0 0 1   , (2) onde “�” indica que os dois lados da equac¸˜ao podem di- ferir por uma constante, α e β d˜ao a relac¸˜ao entre pixels da imagem e distˆancias no ambiente da cˆamera, respec- tivamente, nas direc¸˜oes horizontal e vertical. J´a o ponto m0 = [u0, v0]T s˜ao as coordenadas do ponto central da cˆamera. Sendo assim, h´a apenas quatro parˆametros intr´ınsecos a serem estimados durante a calibrac¸˜ao, ou seja, α, β, u0 e v0. 3 Algoritmo Levenberg-Marquardt Considerando a seguinte func¸˜ao n˜ao-linear F(Y) = X, (3) onde X ∈ IRM e Y ∈ IRN s˜ao vetores e M ≥ N. Freq¨uentemente, ´e necess´ario estimar o vetor �Y que me- lhor ajusta-se a um vetor �X medido. Esse problema pode ser reformulado como, dado o vetor �X, encontrar �Y que minimiza ���, sujeito a �X = F( �Y) + �. Dada uma estimac¸˜ao inicial �Y, o m´etodo de New- ton (PRESS et al., 1992) a refina assumindo que F( �Y+ ∆) = F( �Y) + J∆, onde J ´e a matriz jacobiana, ou seja, J = ∂X/∂Y, e ∆ ´e um que indica um “pequeno” incremento de �Y. Dessa forma, minimizar ��� equivale a minimizar �� − J∆�, (4) ˆencias Exatas e Tecnol´ogicas, Londrina, v. 26, n. 2, p. 195-203, jul./dez. 2005 elo de cˆamera pinhole (FAU- , as coordenadas de um ponto enadas do ambiente de uma como M = [x, y, z]T e a no plano de imagem I, como , as coordenadas homogˆeneas ..]T s˜ao representadas por �m, T . De forma mais geral, um denadas homogˆeneas ´e repre- .., t]T . Um ´ındice, se houver, em um conjunto de pontos. ada, a relac¸˜ao entre um ponto m, em uma cˆamera pinhole ´e A � I3 03 � �M, (1) α 0 u0 0 β v0 0 0 1   , (2) is lados da equac¸˜ao podem di- e β d˜ao a relac¸˜ao entre pixels o ambiente da cˆamera, respec- orizontal e vertical. J´a o ponto coordenadas do ponto central h´a apenas quatro parˆametros ados durante a calibrac¸˜ao, ou enberg-Marquardt nte func¸˜ao n˜ao-linear Y) = X, (3) IRN s˜ao vetores e M ≥ N. ´ario estimar o vetor �Y que me- r �X medido. Esse problema mo, dado o vetor �X, encontrar eito a �X = F( �Y) + �. inicial �Y, o m´etodo de New- refina assumindo que F( �Y+ de J ´e a matriz jacobiana, ou um que indica um “pequeno” orma, minimizar ��� equivale − J∆�, (4) , jul./dez. 2005 , onde J é a matriz jacobiana, ou seja, SUN et al., 2006) e (LERASLE; RI- 99). Este m´etodo ´e uma derivac¸˜ao do que ´e de convergˆencia mais r´apida. tivos da popularidade do algo- Marquardt ´e a existˆencia de diversas spon´ıveis (LOURAKIS, Jul. 2004; 4; PRESS et al., 1992; SHEARER; Contudo, apenas uma dessas (LOU- S, 2004) toma vantagem de uma es- um em problemas da vis˜ao computa- m que a minimizac¸˜ao n˜ao-linear pro- acobiana esparsa. Se isso for levado ara a estimac¸˜ao de N parˆametros, a goritmo reduz-se de N3 para apenas , apresenta-se uma implementac¸˜ao arquardt, chamada Levenberg- do, que pode ser aplicada em esentam a matriz Jacobiana esparsa. o de iterac¸˜ao ´e dividido em v´arios que possuem apenas uma frac¸˜ao da resolvidos muito mais rapidamente. o foi codificada em linguagem do e ser executada sem modificac¸˜oes R� quanto no Scilab R� e no Octave R�. car o uso do algoritmo Levenberg- o, aplicou-se a implementac¸˜ao pro- a de calibrac¸˜ao de cˆameras com barito 1D (ZHANG, 2004). Neste utilizado para, dado um conjunto de ito em diversas imagens, estimar-se nsecos da cˆamera e a localizac¸˜ao da rito no espac¸o tridimensional. Resul- s mostram que o m´etodo ´e capaz de o de forma satisfat´oria e em poucas a presenc¸a de ru´ıdo. o texto, matrizes e vetores s˜ao re- tras, n´umeros ou s´ımbolos em ne- ˜ao expressas por letras, n´umeros ou o. Al´em disso, adotou-se a pr´atica A−1)T = (AT )−1 para toda matriz el. Considerando o modelo de cˆamera pinhole (FAU- GERAS; LUONG, 2001), as coordenadas de um ponto 3D no sistema de coordenadas do ambiente de uma cˆamera s˜ao apresentadas como M = [x, y, z]T e a projec¸˜ao correspondente no plano de imagem I, como m = [u, v]T . Al´em disso, as coordenadas homogˆeneas de um ponto m = [u, v, ...]T s˜ao representadas por �m, isto ´e, �m = [u, v, ..., 1]T . De forma mais geral, um ponto qualquer em coordenadas homogˆeneas ´e repre- sentado por �m = [u, v, ..., t]T . Um ´ındice, se houver, indica a posic¸˜ao do ponto em um conjunto de pontos. Com a notac¸˜ao adotada, a relac¸˜ao entre um ponto 3D, M, e sua projec¸˜ao, m, em uma cˆamera pinhole ´e dada por �m � A � I3 03 � �M, (1) com A =   α 0 u0 0 β v0 0 0 1   , (2) onde “�” indica que os dois lados da equac¸˜ao podem di- ferir por uma constante, α e β d˜ao a relac¸˜ao entre pixels da imagem e distˆancias no ambiente da cˆamera, respec- tivamente, nas direc¸˜oes horizontal e vertical. J´a o ponto m0 = [u0, v0]T s˜ao as coordenadas do ponto central da cˆamera. Sendo assim, h´a apenas quatro parˆametros intr´ınsecos a serem estimados durante a calibrac¸˜ao, ou seja, α, β, u0 e v0. 3 Algoritmo Levenberg-Marquardt Considerando a seguinte func¸˜ao n˜ao-linear F(Y) = X, (3) onde X ∈ IRM e Y ∈ IRN s˜ao vetores e M ≥ N. Freq¨uentemente, ´e necess´ario estimar o vetor �Y que me- lhor ajusta-se a um vetor �X medido. Esse problema pode ser reformulado como, dado o vetor �X, encontrar �Y que minimiza ���, sujeito a �X = F( �Y) + �. Dada uma estimac¸˜ao inicial �Y, o m´etodo de New- ton (PRESS et al., 1992) a refina assumindo que F( �Y+ ∆) = F( �Y) + J∆, onde J ´e a matriz jacobiana, ou seja, J = ∂X/∂Y, e ∆ ´e um que indica um “pequeno” incremento de �Y. Dessa forma, minimizar ��� equivale a minimizar �� − J∆�, (4) mina: Ciˆencias Exatas e Tecnol´ogicas, Londrina, v. 26, n. 2, p. 195-203, jul./dez. 2005 , e ∆ é um que indica um “pequeno” incremento de E FRANC¸A, J.; FRANC¸A, M.; KOYAMA, M. & DA SILVA, T. 006) e (LERASLE; RI- odo ´e uma derivac¸˜ao do vergˆencia mais r´apida. opularidade do algo- existˆencia de diversas OURAKIS, Jul. 2004; al., 1992; SHEARER; nas uma dessas (LOU- a vantagem de uma es- emas da vis˜ao computa- mizac¸˜ao n˜ao-linear pro- arsa. Se isso for levado c¸˜ao de N parˆametros, a z-se de N3 para apenas se uma implementac¸˜ao chamada Levenberg- ode ser aplicada em atriz Jacobiana esparsa. ´e dividido em v´arios m apenas uma frac¸˜ao da muito mais rapidamente. ada em linguagem do ada sem modificac¸˜oes Scilab R� e no Octave R�. algoritmo Levenberg- a implementac¸˜ao pro- c¸˜ao de cˆameras com HANG, 2004). Neste , dado um conjunto de sas imagens, estimar-se mera e a localizac¸˜ao da o tridimensional. Resul- ue o m´etodo ´e capaz de atisfat´oria e em poucas e ru´ıdo. rizes e vetores s˜ao re- s ou s´ımbolos em ne- por letras, n´umeros ou so, adotou-se a pr´atica AT )−1 para toda matriz Considerando o modelo de cˆamera pinhole (FAU- GERAS; LUONG, 2001), as coordenadas de um ponto 3D no sistema de coordenadas do ambiente de uma cˆamera s˜ao apresentadas como M = [x, y, z]T e a projec¸˜ao correspondente no plano de imagem I, como m = [u, v]T . Al´em disso, as coordenadas homogˆeneas de um ponto m = [u, v, ...]T s˜ao representadas por �m, isto ´e, �m = [u, v, ..., 1]T . De forma mais geral, um ponto qualquer em coordenadas homogˆeneas ´e repre- sentado por �m = [u, v, ..., t]T . Um ´ındice, se houver, indica a posic¸˜ao do ponto em um conjunto de pontos. Com a notac¸˜ao adotada, a relac¸˜ao entre um ponto 3D, M, e sua projec¸˜ao, m, em uma cˆamera pinhole ´e dada por �m � A � I3 03 � �M, (1) com A =   α 0 u0 0 β v0 0 0 1   , (2) onde “�” indica que os dois lados da equac¸˜ao podem di- ferir por uma constante, α e β d˜ao a relac¸˜ao entre pixels da imagem e distˆancias no ambiente da cˆamera, respec- tivamente, nas direc¸˜oes horizontal e vertical. J´a o ponto m0 = [u0, v0]T s˜ao as coordenadas do ponto central da cˆamera. Sendo assim, h´a apenas quatro parˆametros intr´ınsecos a serem estimados durante a calibrac¸˜ao, ou seja, α, β, u0 e v0. 3 Algoritmo Levenberg-Marquardt Considerando a seguinte func¸˜ao n˜ao-linear F(Y) = X, (3) onde X ∈ IRM e Y ∈ IRN s˜ao vetores e M ≥ N. Freq¨uentemente, ´e necess´ario estimar o vetor �Y que me- lhor ajusta-se a um vetor �X medido. Esse problema pode ser reformulado como, dado o vetor �X, encontrar �Y que minimiza ���, sujeito a �X = F( �Y) + �. Dada uma estimac¸˜ao inicial �Y, o m´etodo de New- ton (PRESS et al., 1992) a refina assumindo que F( �Y+ ∆) = F( �Y) + J∆, onde J ´e a matriz jacobiana, ou seja, J = ∂X/∂Y, e ∆ ´e um que indica um “pequeno” incremento de �Y. Dessa forma, minimizar ��� equivale a minimizar �� − J∆�, (4) Exatas e Tecnol´ogicas, Londrina, v. 26, n. 2, p. 195-203, jul./dez. 2005 . Dessa forma, minimizar || M. & DA SILVA, T. iderando o modelo de cˆamera pinhole (FAU- LUONG, 2001), as coordenadas de um ponto stema de coordenadas do ambiente de uma ˜ao apresentadas como M = [x, y, z]T e a correspondente no plano de imagem I, como v]T . Al´em disso, as coordenadas homogˆeneas nto m = [u, v, ...]T s˜ao representadas por �m, = [u, v, ..., 1]T . De forma mais geral, um alquer em coordenadas homogˆeneas ´e repre- or �m = [u, v, ..., t]T . Um ´ındice, se houver, osic¸˜ao do ponto em um conjunto de pontos. a notac¸˜ao adotada, a relac¸˜ao entre um ponto e sua projec¸˜ao, m, em uma cˆamera pinhole ´e �m � A � I3 03 � �M, (1) A =   α 0 u0 0 β v0 0 0 1   , (2) indica que os dois lados da equac¸˜ao podem di- uma constante, α e β d˜ao a relac¸˜ao entre pixels m e distˆancias no ambiente da cˆamera, respec- , nas direc¸˜oes horizontal e vertical. J´a o ponto u0, v0]T s˜ao as coordenadas do ponto central a. Sendo assim, h´a apenas quatro parˆametros os a serem estimados durante a calibrac¸˜ao, ou , u0 e v0. goritmo Levenberg-Marquardt iderando a seguinte func¸˜ao n˜ao-linear F(Y) = X, (3) ∈ IRM e Y ∈ IRN s˜ao vetores e M ≥ N. emente, ´e necess´ario estimar o vetor �Y que me- a-se a um vetor �X medido. Esse problema reformulado como, dado o vetor �X, encontrar nimiza ���, sujeito a �X = F( �Y) + �. uma estimac¸˜ao inicial �Y, o m´etodo de New- SS et al., 1992) a refina assumindo que F( �Y+ ( �Y) + J∆, onde J ´e a matriz jacobiana, ou ∂X/∂Y, e ∆ ´e um que indica um “pequeno” to de �Y. Dessa forma, minimizar ��� equivale zar �� − J∆�, (4) || equivale a minimizar FRANC¸A, M.; KOYAMA, M. & DA SILVA, T. ASLE; RI- rivac¸˜ao do is r´apida. do algo- e diversas ul. 2004; HEARER; sas (LOU- de uma es- computa- linear pro- for levado ˆametros, a ara apenas ementac¸˜ao Levenberg- icada em na esparsa. em v´arios a frac¸˜ao da pidamente. uagem do odificac¸˜oes Octave R�. Levenberg- tac¸˜ao pro- meras com 4). Neste onjunto de estimar-se lizac¸˜ao da nal. Resul- ´e capaz de em poucas es s˜ao re- os em ne- ´umeros ou e a pr´atica oda matriz Considerando o modelo de cˆamera pinhole (FAU- GERAS; LUONG, 2001), as coordenadas de um ponto 3D no sistema de coordenadas do ambiente de uma cˆamera s˜ao apresentadas como M = [x, y, z]T e a projec¸˜ao correspondente no plano de imagem I, como m = [u, v]T . Al´em disso, as coordenadas homogˆeneas de um ponto m = [u, v, ...]T s˜ao representadas por �m, isto ´e, �m = [u, v, ..., 1]T . De forma mais geral, um ponto qualquer em coordenadas homogˆeneas ´e repre- sentado por �m = [u, v, ..., t]T . Um ´ındice, se houver, indica a posic¸˜ao do ponto em um conjunto de pontos. Com a notac¸˜ao adotada, a relac¸˜ao entre um ponto 3D, M, e sua projec¸˜ao, m, em uma cˆamera pinhole ´e dada por �m � A � I3 03 � �M, (1) com A =   α 0 u0 0 β v0 0 0 1   , (2) onde “�” indica que os dois lados da equac¸˜ao podem di- ferir por uma constante, α e β d˜ao a relac¸˜ao entre pixels da imagem e distˆancias no ambiente da cˆamera, respec- tivamente, nas direc¸˜oes horizontal e vertical. J´a o ponto m0 = [u0, v0]T s˜ao as coordenadas do ponto central da cˆamera. Sendo assim, h´a apenas quatro parˆametros intr´ınsecos a serem estimados durante a calibrac¸˜ao, ou seja, α, β, u0 e v0. 3 Algoritmo Levenberg-Marquardt Considerando a seguinte func¸˜ao n˜ao-linear F(Y) = X, (3) onde X ∈ IRM e Y ∈ IRN s˜ao vetores e M ≥ N. Freq¨uentemente, ´e necess´ario estimar o vetor �Y que me- lhor ajusta-se a um vetor �X medido. Esse problema pode ser reformulado como, dado o vetor �X, encontrar �Y que minimiza ���, sujeito a �X = F( �Y) + �. Dada uma estimac¸˜ao inicial �Y, o m´etodo de New- ton (PRESS et al., 1992) a refina assumindo que F( �Y+ ∆) = F( �Y) + J∆, onde J ´e a matriz jacobiana, ou seja, J = ∂X/∂Y, e ∆ ´e um que indica um “pequeno” incremento de �Y. Dessa forma, minimizar ��� equivale a minimizar �� − J∆�, (4) ol´ogicas, Londrina, v. 26, n. 2, p. 195-203, jul./dez. 2005 (4) que é o mesmo que resolver UMA IMPLEMENTAC¸ ˜AO DO ALGORITMO LEVENBERG-MARQUARDT D que ´e o mesmo que resolver JT J∆ = JT �. (5) Al´em disso, a soluc¸˜ao refinada, �Yr, ´e dada por �Yr = �Y + ∆ (6) e pode ser melhorada iterativamente. Levenberg (LEVENBERG, 1944) propˆos uma alterac¸˜ao no algoritmo de Newton para acelerar sua con- vergˆencia, ou seja, a equac¸˜ao (5) ´e substitu´ıda por � JT J + Iλ � ∆ = JT �. (7) Tipicamente, λ ´e feito igual a 10−4 inicialmente. Contudo, a cada iterac¸˜ao o valor de λ ´e alterado. Se a soluc¸˜ao da equac¸˜ao (5) conduzir a uma reduc¸˜ao do res´ıduo, λ ´e dividido por 10. Caso contr´ario, este ´e mul- tiplicado por 10. O m´etodo de Levenberg possui instabilidades num´ericas quando λ cresce. Em vista disso, al- gum tempo depois, Marquardt (MARQUARDT, 1963) propˆos uma pequena alterac¸˜ao no algoritmo de Leven- berg, ou seja, cada componente do gradiente ´e pon- derada de acordo com sua curvatura. Assim, h´a uma grande tendˆencia de convergˆencia na direc¸˜ao na qual o gradiente ´e menor. Na pr´atica, tal alterac¸˜ao ´e implemen- tada substituindo a equac¸˜ao (7) por � JT J + diag(JT J)λ � ∆ = JT �. (8) Assim, nos dias de hoje, o algoritmo resultante ´e conhe- cido como Levenberg-Marquardt. A complexidade do algoritmo Levenberg- Marquardt aumenta com o n´umero de vari´aveis. Contudo, como se discute a seguir, algumas carac- ter´ısticas de muitos dos problemas encontrados na vis˜ao computacional podem ser utilizadas para reduzir a complexidade do m´etodo significativamente. Isso ´e obtido como segue. Considerando que Y na equac¸˜ao (3) pode ser divi- dido, ou seja, Y = [cT , dT ]T , (9) a matriz jacobiana, J, da equac¸˜ao (4) pode ser divi- dida em dois blocos, ou seja, J = [C|D], onde C = [∂X/∂c] e se onde ∆ = Ap´os a terior pode � U − G GT onde U = e �D = DT A solu em duas e resolvendo (U − e, em segu Agora equac¸˜ao (9 n partes m X = [XT 1 que, cada c, na equa caso, ∂Xi/ suposic¸˜ao com que a estrutura es � � � � � � � � �      �1 �2 ... �n      − onde Ci = F(�c, �d) = Uma i passo do a complexid quanto o n Uma v ana com a solvido co Semina: Ciˆencias Exatas e Tecnol´ogicas, Londrina, v. 26, (5) Além disso, a solução refinada, UMA IMPLEMENTAC¸ ˜AO DO ALGORITMO LEVENBERG-MARQ que ´e o mesmo que resolver JT J∆ = JT �. (5) Al´em disso, a soluc¸˜ao refinada, �Yr, ´e dada por �Yr = �Y + ∆ (6) e pode ser melhorada iterativamente. Levenberg (LEVENBERG, 1944) propˆos uma alterac¸˜ao no algoritmo de Newton para acelerar sua con- vergˆencia, ou seja, a equac¸˜ao (5) ´e substitu´ıda por � JT J + Iλ � ∆ = JT �. (7) Tipicamente, λ ´e feito igual a 10−4 inicialmente. Contudo, a cada iterac¸˜ao o valor de λ ´e alterado. Se a soluc¸˜ao da equac¸˜ao (5) conduzir a uma reduc¸˜ao do res´ıduo, λ ´e dividido por 10. Caso contr´ario, este ´e mul- tiplicado por 10. O m´etodo de Levenberg possui instabilidades num´ericas quando λ cresce. Em vista disso, al- gum tempo depois, Marquardt (MARQUARDT, 1963) propˆos uma pequena alterac¸˜ao no algoritmo de Leven- berg, ou seja, cada componente do gradiente ´e pon- derada de acordo com sua curvatura. Assim, h´a uma grande tendˆencia de convergˆencia na direc¸˜ao na qual o gradiente ´e menor. Na pr´atica, tal alterac¸˜ao ´e implemen- tada substituindo a equac¸˜ao (7) por � JT J + diag(JT J)λ � ∆ = JT �. (8) Assim, nos dias de hoje, o algoritmo resultante ´e conhe- cido como Levenberg-Marquardt. A complexidade do algoritmo Levenberg- Marquardt aumenta com o n´umero de vari´aveis. Contudo, como se discute a seguir, algumas carac- ter´ısticas de muitos dos problemas encontrados na vis˜ao computacional podem ser utilizadas para reduzir a complexidade do m´etodo significativamente. Isso ´e obtido como segue. Considerando que Y na equac¸˜ao (3) pode ser divi- dido, ou seja, Y = [cT , dT ]T , (9) a matriz jacobiana, J, da equac¸˜ao (4) pode ser divi- dida em dois blocos, ou seja, J = [C|D], onde C = [∂X se ond teri � ond e �D em reso e, e equ n p X que c, n cas sup com estr � � � � � � � � �      ond F(�c pas com qua ana solv , é dada por UMA IMPLEMENTAC¸ ˜AO DO ALGORITMO LEVENBERG-MARQUARDT D que ´e o mesmo que resolver JT J∆ = JT �. (5) Al´em disso, a soluc¸˜ao refinada, �Yr, ´e dada por �Yr = �Y + ∆ (6) e pode ser melhorada iterativamente. Levenberg (LEVENBERG, 1944) propˆos uma alterac¸˜ao no algoritmo de Newton para acelerar sua con- vergˆencia, ou seja, a equac¸˜ao (5) ´e substitu´ıda por � JT J + Iλ � ∆ = JT �. (7) Tipicamente, λ ´e feito igual a 10−4 inicialmente. Contudo, a cada iterac¸˜ao o valor de λ ´e alterado. Se a soluc¸˜ao da equac¸˜ao (5) conduzir a uma reduc¸˜ao do res´ıduo, λ ´e dividido por 10. Caso contr´ario, este ´e mul- tiplicado por 10. O m´etodo de Levenberg possui instabilidades num´ericas quando λ cresce. Em vista disso, al- gum tempo depois, Marquardt (MARQUARDT, 1963) propˆos uma pequena alterac¸˜ao no algoritmo de Leven- berg, ou seja, cada componente do gradiente ´e pon- derada de acordo com sua curvatura. Assim, h´a uma grande tendˆencia de convergˆencia na direc¸˜ao na qual o gradiente ´e menor. Na pr´atica, tal alterac¸˜ao ´e implemen- tada substituindo a equac¸˜ao (7) por � JT J + diag(JT J)λ � ∆ = JT �. (8) Assim, nos dias de hoje, o algoritmo resultante ´e conhe- cido como Levenberg-Marquardt. A complexidade do algoritmo Levenberg- Marquardt aumenta com o n´umero de vari´aveis. Contudo, como se discute a seguir, algumas carac- ter´ısticas de muitos dos problemas encontrados na vis˜ao computacional podem ser utilizadas para reduzir a complexidade do m´etodo significativamente. Isso ´e obtido como segue. Considerando que Y na equac¸˜ao (3) pode ser divi- dido, ou seja, Y = [cT , dT ]T , (9) a matriz jacobiana, J, da equac¸˜ao (4) pode ser divi- dida em dois blocos, ou seja, J = [C|D], onde C = [∂X/∂c] e se � onde ∆ = [ Ap´os a terior pode � U − GV GT onde U = C e �D = DT A soluc em duas eta resolvendo (U − e, em seguid Agora, equac¸˜ao (9 n partes me X = [XT 1 , que, cada o c, na equac¸ caso, ∂Xi/∂ suposic¸˜ao p com que a m estrutura esp � � � � � � � � �      �1 �2 ... �n      − onde Ci = F(�c, �d) = [ Uma im passo do alg complexida quanto o n˜a Uma ve ana com a e solvido com (6) e pode ser melhorada iterativamente. Levenberg (1944) propôs uma alteração no algoritmodeNewtonparaacelerarsuaconvergência, ou seja, a equação (5) é substituída por UMA IMPLEMENTAC¸ ˜AO DO ALGORITMO LEVENBERG-MARQUARDT D que ´e o mesmo que resolver JT J∆ = JT �. (5) Al´em disso, a soluc¸˜ao refinada, �Yr, ´e dada por �Yr = �Y + ∆ (6) e pode ser melhorada iterativamente. Levenberg (LEVENBERG, 1944) propˆos uma alterac¸˜ao no algoritmo de Newton para acelerar sua con- vergˆencia, ou seja, a equac¸˜ao (5) ´e substitu´ıda por � JT J + Iλ � ∆ = JT �. (7) Tipicamente, λ ´e feito igual a 10−4 inicialmente. Contudo, a cada iterac¸˜ao o valor de λ ´e alterado. Se a soluc¸˜ao da equac¸˜ao (5) conduzir a uma reduc¸˜ao do res´ıduo, λ ´e dividido por 10. Caso contr´ario, este ´e mul- tiplicado por 10. O m´etodo de Levenberg possui instabilidades num´ericas quando λ cresce. Em vista disso, al- gum tempo depois, Marquardt (MARQUARDT, 1963) propˆos uma pequena alterac¸˜ao no algoritmo de Leven- berg, ou seja, cada componente do gradiente ´e pon- derada de acordo com sua curvatura. Assim, h´a uma grande tendˆencia de convergˆencia na direc¸˜ao na qual o gradiente ´e menor. Na pr´atica, tal alterac¸˜ao ´e implemen- tada substituindo a equac¸˜ao (7) por � JT J + diag(JT J)λ � ∆ = JT �. (8) Assim, nos dias de hoje, o algoritmo resultante ´e conhe- cido como Levenberg-Marquardt. A complexidade do algoritmo Levenberg- Marquardt aumenta com o n´umero de vari´aveis. Contudo, como se discute a seguir, algumas carac- ter´ısticas de muitos dos problemas encontrados na vis˜ao computacional podem ser utilizadas para reduzir a complexidade do m´etodo significativamente. Isso ´e obtido como segue. Considerando que Y na equac¸˜ao (3) pode ser divi- dido, ou seja, Y = [cT , dT ]T , (9) [∂X/∂c] e D se � onde ∆ = [ Ap´os al terior pode s � U − GV GT onde U = C e �D = DT A soluc¸ em duas eta resolvendo (U − e, em seguid Agora, equac¸˜ao (9) n partes me X = [XT 1 , que, cada o c, na equac¸ caso, ∂Xi/∂ suposic¸˜ao p com que a m estrutura esp � � � � � � � � �      �1 �2 ... �n      − onde Ci = F(�c, �d) = [ Uma im passo do alg complexidad quanto o n˜a Uma ve (7) Tipicamente, λ é feito igual a 10-4 inicialmente. Contudo, a cada iteração o valor de λ é alterado. Se a solução da equação (5) conduzir a uma redução do resíduo, λ é dividido por 10. Em caso contrário, este é multiplicado por 10. O método de Levenberg possui instabilidades numéricas quando λ cresce. Em vista disso, algum tempo depois, Marquardt (MARQUARDT, 1963) propôs uma pequena alteração no algoritmo de Levenberg, ou seja, cada componente do gradiente é ponderada de acordo com sua curvatura. Assim, há uma grande tendência de convergência na direção na qual o gradiente é menor. Na prática, tal alteração é implementada substituindo a equação (7) por UMA IMPLEMENTAC¸ ˜AO DO ALGORITMO LEVENBERG-MARQUARDT que ´e o mesmo que resolver JT J∆ = JT �. (5) Al´em disso, a soluc¸˜ao refinada, �Yr, ´e dada por �Yr = �Y + ∆ (6) e pode ser melhorada iterativamente. Levenberg (LEVENBERG, 1944) propˆos uma alterac¸˜ao no algoritmo de Newton para acelerar sua con- vergˆencia, ou seja, a equac¸˜ao (5) ´e substitu´ıda por � JT J + Iλ � ∆ = JT �. (7) Tipicamente, λ ´e feito igual a 10−4 inicialmente. Contudo, a cada iterac¸˜ao o valor de λ ´e alterado. Se a soluc¸˜ao da equac¸˜ao (5) conduzir a uma reduc¸˜ao do res´ıduo, λ ´e dividido por 10. Caso contr´ario, este ´e mul- tiplicado por 10. O m´etodo de Levenberg possui instabilidades num´ericas quando λ cresce. Em vista disso, al- gum tempo depois, Marquardt (MARQUARDT, 1963) propˆos uma pequena alterac¸˜ao no algoritmo de Leven- berg, ou seja, cada componente do gradiente ´e pon- derada de acordo com sua curvatura. Assim, h´a uma grande tendˆencia de convergˆencia na direc¸˜ao na qual o gradiente ´e menor. Na pr´atica, tal alterac¸˜ao ´e implemen- tada substituindo a equac¸˜ao (7) por � JT J + diag(JT J)λ � ∆ = JT �. (8) Assim, nos dias de hoje, o algoritmo resultante ´e conhe- cido como Levenberg-Marquardt. A complexidade do algoritmo Levenberg- Marquardt aumenta com o n´umero de vari´aveis. Contudo, como se discute a seguir, algumas carac- ter´ısticas de muitos dos problemas encontrados na vis˜ao computacional podem ser utilizadas para reduzir a complexidade do m´etodo significativamente. Isso ´e obtido como segue. [∂X/∂c] e se onde ∆ = Ap´os terior pode � U − G GT onde U = e �D = D A solu em duas e resolvendo (U − e, em segu Agora equac¸˜ao ( n partes m X = [XT 1 que, cada c, na equa caso, ∂Xi/ suposic¸˜ao com que a estrutura e � � � � � � � � �      �1 �2 ... �n      − onde Ci = F(�c, �d) = Uma passo do a (8) Assim, nos dias de hoje, o algoritmo resultante é conhecido como Levenberg-Marquardt. A complexidade do algoritmo Levenberg- Marquardt aumenta com o número de variáveis.
  • 4. 54 Semina: Ciências Exatas e Tecnológicas, Londrina, v. 30, n. 1, p. 51-62, jan./jun. 2009 França, J. A. de et al. Contudo, como se discute a seguir, algumas características de muitos dos problemas encontrados na visão computacional podem ser utilizadas para reduzir a complexidade do método significativamente. Isso é obtido como segue. Considerando que Y na equação (3) pode ser dividido, ou seja, � JT J + diag(JT J)λ � ∆ = JT �. (8) Assim, nos dias de hoje, o algoritmo resultante ´e conhe- cido como Levenberg-Marquardt. A complexidade do algoritmo Levenberg- Marquardt aumenta com o n´umero de vari´aveis. Contudo, como se discute a seguir, algumas carac- ter´ısticas de muitos dos problemas encontrados na vis˜ao computacional podem ser utilizadas para reduzir a complexidade do m´etodo significativamente. Isso ´e obtido como segue. Considerando que Y na equac¸˜ao (3) pode ser divi- dido, ou seja, Y = [cT , dT ]T , (9) a matriz jacobiana, J, da equac¸˜ao (4) pode ser divi- dida em dois blocos, ou seja, J = [C|D], onde C = com que a matriz jacobiana, J = ∂X/∂Y, tenha uma estrutura esparsa. Assim, a equac¸˜ao (4) torna-se � � � � � � � � �      �1 �2 ... �n      −      C1 D1 C2 D2 ... ... Cn Dn           δc δd1 ... δdn      � � � � � � � � � , (14) onde Ci = [∂Xi/∂c] e Di = [∂Xi/∂di] e � = �X − F(�c, �d) = [�T 1 , �T 2 , . . . , �T n ]T . Uma importante observac¸˜ao a ser feita ´e que cada passo do algoritmo Levenberg-Marguardt Dividido tem complexidade linear em N (n´umero de inc´ognitas), en- quanto o n˜ao-dividido tem complexidade N3. Uma vez que o problema gera uma matriz Jacobi- ana com a estrutura da equac¸˜ao (14), este pode ser re- solvido com o lac¸o de iterac¸˜ao resumido no algoritmo Semina: Ciˆencias Exatas e Tecnol´ogicas, Londrina, v. 26, n. 2, p. 195-203, jul./dez. 2005 197 (9) a matriz jacobiana, J, da equação (4) pode ser dividida em dois blocos, ou seja, J = [C | D], onde C = [∂X / ∂c] e D = [∂X / ∂d]. Logo, a equação (5) torna-se ENBERG-MARQUARDT DIVIDIDO PARA APLICAC¸ ˜OES EM ... (5) (6) ˆos uma sua con- or (7) lmente. do. Se uc¸˜ao do e ´e mul- ilidades sso, al- T, 1963) Leven- ´e pon- h´a uma a qual o plemen- (8) conhe- [∂X/∂c] e D = [∂X/∂d]. Logo, a equac¸˜ao (5) torna- se � CT C CT D DT C DT D � � δc δd � = � CT � DT � � , (10) onde ∆ = [δT c , δT d ]T . Ap´os alguma manipulac¸˜ao alg´ebrica, a equac¸˜ao an- terior pode ser reescrita como sendo � U − GV−1 0 GT V � � δc δd � = � �C − GV−1 �D �D � , (11) onde U = CT C, G = CT D, V = DT D, �C = CT � e �D = DT �. A soluc¸˜ao do problema anterior pode ser dividida em duas etapas. A primeira consiste em encontrar δc resolvendo (U − GV−1 GT )δc = �C − GV−1 �D (12) e, em seguida, δd pode ser encontrado resolvendo Vδd = �D − GT δc. (13) Agora, considera-se ainda que os vetores d, na equac¸˜ao (9), e X tamb´em possam ser divididos em n partes menores, ou seja, d = [dT 1 , dT 2 , . . . , dT n ]T e X = [XT 1 , XT 1 , . . . , XT n ]T . Al´em disso, cabe ressaltar que, cada observac¸˜ao Xi depende apenas dos vetores c, na equac¸˜ao (9), di e de nenhum outro dk. Neste caso, ∂Xi/∂dk = 0 para i �= k, enquanto que nenhuma suposic¸˜ao pode ser feita a respeito de ∂Xi/∂c. Isso faz com que a matriz jacobiana, J = ∂X/∂Y, tenha uma estrutura esparsa. Assim, a equac¸˜ao (4) torna-se � � � �   �1 �     C1 D1 C D     δc δ   � � � � (10) onde LEVENBERG-MARQUARDT DIVIDIDO PARA APLICAC¸ ˜OES EM ... (5) or (6) ropˆos uma rar sua con- a por (7) icialmente. terado. Se reduc¸˜ao do este ´e mul- stabilidades disso, al- RDT, 1963) de Leven- nte ´e pon- m, h´a uma o na qual o implemen- (8) nte ´e conhe- [∂X/∂c] e D = [∂X/∂d]. Logo, a equac¸˜ao (5) torna- se � CT C CT D DT C DT D � � δc δd � = � CT � DT � � , (10) onde ∆ = [δT c , δT d ]T . Ap´os alguma manipulac¸˜ao alg´ebrica, a equac¸˜ao an- terior pode ser reescrita como sendo � U − GV−1 0 GT V � � δc δd � = � �C − GV−1 �D �D � , (11) onde U = CT C, G = CT D, V = DT D, �C = CT � e �D = DT �. A soluc¸˜ao do problema anterior pode ser dividida em duas etapas. A primeira consiste em encontrar δc resolvendo (U − GV−1 GT )δc = �C − GV−1 �D (12) e, em seguida, δd pode ser encontrado resolvendo Vδd = �D − GT δc. (13) Agora, considera-se ainda que os vetores d, na equac¸˜ao (9), e X tamb´em possam ser divididos em n partes menores, ou seja, d = [dT 1 , dT 2 , . . . , dT n ]T e X = [XT 1 , XT 1 , . . . , XT n ]T . Al´em disso, cabe ressaltar que, cada observac¸˜ao Xi depende apenas dos vetores c, na equac¸˜ao (9), di e de nenhum outro dk. Neste caso, ∂Xi/∂dk = 0 para i �= k, enquanto que nenhuma suposic¸˜ao pode ser feita a respeito de ∂Xi/∂c. Isso faz com que a matriz jacobiana, J = ∂X/∂Y, tenha uma estrutura esparsa. Assim, a equac¸˜ao (4) torna-se � �  �   C D   δ � � Após alguma manipulação algébrica, a equação anterior pode ser reescrita como sendo EVENBERG-MARQUARDT DIVIDIDO PARA APLICAC¸ ˜OES EM ... (5) or (6) opˆos uma ar sua con- a por (7) cialmente. erado. Se educ¸˜ao do este ´e mul- abilidades disso, al- DT, 1963) de Leven- nte ´e pon- m, h´a uma na qual o mplemen- (8) [∂X/∂c] e D = [∂X/∂d]. Logo, a equac¸˜ao (5) torna- se � CT C CT D DT C DT D � � δc δd � = � CT � DT � � , (10) onde ∆ = [δT c , δT d ]T . Ap´os alguma manipulac¸˜ao alg´ebrica, a equac¸˜ao an- terior pode ser reescrita como sendo � U − GV−1 0 GT V � � δc δd � = � �C − GV−1 �D �D � , (11) onde U = CT C, G = CT D, V = DT D, �C = CT � e �D = DT �. A soluc¸˜ao do problema anterior pode ser dividida em duas etapas. A primeira consiste em encontrar δc resolvendo (U − GV−1 GT )δc = �C − GV−1 �D (12) e, em seguida, δd pode ser encontrado resolvendo Vδd = �D − GT δc. (13) Agora, considera-se ainda que os vetores d, na equac¸˜ao (9), e X tamb´em possam ser divididos em n partes menores, ou seja, d = [dT 1 , dT 2 , . . . , dT n ]T e X = [XT 1 , XT 1 , . . . , XT n ]T . Al´em disso, cabe ressaltar que, cada observac¸˜ao Xi depende apenas dos vetores c, na equac¸˜ao (9), di e de nenhum outro dk. Neste caso, ∂Xi/∂dk = 0 para i �= k, enquanto que nenhuma suposic¸˜ao pode ser feita a respeito de ∂Xi/∂c. Isso faz com que a matriz jacobiana, J = ∂X/∂Y, tenha uma estrutura esparsa. Assim, a equac¸˜ao (4) torna-se (11) onde U = CT C, G = CT D, V = DT D, NBERG-MARQUARDT DIVIDIDO PARA APLICAC¸ ˜OES EM ... (5) (6) uma a con- (7) mente. o. Se c˜ao do ´e mul- idades o, al- 1963) Leven- ´e pon- ´a uma qual o emen- [∂X/∂c] e D = [∂X/∂d]. Logo, a equac¸˜ao (5) torna- se � CT C CT D DT C DT D � � δc δd � = � CT � DT � � , (10) onde ∆ = [δT c , δT d ]T . Ap´os alguma manipulac¸˜ao alg´ebrica, a equac¸˜ao an- terior pode ser reescrita como sendo � U − GV−1 0 GT V � � δc δd � = � �C − GV−1 �D �D � , (11) onde U = CT C, G = CT D, V = DT D, �C = CT � e �D = DT �. A soluc¸˜ao do problema anterior pode ser dividida em duas etapas. A primeira consiste em encontrar δc resolvendo (U − GV−1 GT )δc = �C − GV−1 �D (12) e, em seguida, δd pode ser encontrado resolvendo Vδd = �D − GT δc. (13) Agora, considera-se ainda que os vetores d, na equac¸˜ao (9), e X tamb´em possam ser divididos em n partes menores, ou seja, d = [dT 1 , dT 2 , . . . , dT n ]T e X = [XT 1 , XT 1 , . . . , XT n ]T . Al´em disso, cabe ressaltar que, cada observac¸˜ao Xi depende apenas dos vetores c, na equac¸˜ao (9), di e de nenhum outro dk. Neste caso, ∂Xi/∂dk = 0 para i �= k, enquanto que nenhuma suposic¸˜ao pode ser feita a respeito de ∂Xi/∂c. Isso faz e LEVENBERG-MARQUARDT DIVIDIDO PARA APLICAC¸ ˜OES EM ... (5) por (6) ropˆos uma rar sua con- da por (7) nicialmente. terado. Se reduc¸˜ao do este ´e mul- stabilidades disso, al- RDT, 1963) o de Leven- ente ´e pon- m, h´a uma o na qual o implemen- [∂X/∂c] e D = [∂X/∂d]. Logo, a equac¸˜ao (5) torna- se � CT C CT D DT C DT D � � δc δd � = � CT � DT � � , (10) onde ∆ = [δT c , δT d ]T . Ap´os alguma manipulac¸˜ao alg´ebrica, a equac¸˜ao an- terior pode ser reescrita como sendo � U − GV−1 0 GT V � � δc δd � = � �C − GV−1 �D �D � , (11) onde U = CT C, G = CT D, V = DT D, �C = CT � e �D = DT �. A soluc¸˜ao do problema anterior pode ser dividida em duas etapas. A primeira consiste em encontrar δc resolvendo (U − GV−1 GT )δc = �C − GV−1 �D (12) e, em seguida, δd pode ser encontrado resolvendo Vδd = �D − GT δc. (13) Agora, considera-se ainda que os vetores d, na equac¸˜ao (9), e X tamb´em possam ser divididos em n partes menores, ou seja, d = [dT 1 , dT 2 , . . . , dT n ]T e X = [XT 1 , XT 1 , . . . , XT n ]T . Al´em disso, cabe ressaltar que, cada observac¸˜ao Xi depende apenas dos vetores c, na equac¸˜ao (9), di e de nenhum outro dk. Neste caso, ∂Xi/∂dk = 0 para i �= k, enquanto que nenhuma suposic¸˜ao pode ser feita a respeito de ∂X /∂c. Isso faz Asolução do problema anterior pode ser dividida em duas etapas. A primeira consiste em encontrar Cδ resolvendo VENBERG-MARQUARDT DIVIDIDO PARA APLICAC¸ ˜OES EM ... (5) (6) pˆos uma sua con- por (7) ialmente. rado. Se duc¸˜ao do te ´e mul- bilidades isso, al- DT, 1963) e Leven- e ´e pon- h´a uma [∂X/∂c] e D = [∂X/∂d]. Logo, a equac¸˜ao (5) torna- se � CT C CT D DT C DT D � � δc δd � = � CT � DT � � , (10) onde ∆ = [δT c , δT d ]T . Ap´os alguma manipulac¸˜ao alg´ebrica, a equac¸˜ao an- terior pode ser reescrita como sendo � U − GV−1 0 GT V � � δc δd � = � �C − GV−1 �D �D � , (11) onde U = CT C, G = CT D, V = DT D, �C = CT � e �D = DT �. A soluc¸˜ao do problema anterior pode ser dividida em duas etapas. A primeira consiste em encontrar δc resolvendo (U − GV−1 GT )δc = �C − GV−1 �D (12) e, em seguida, δd pode ser encontrado resolvendo Vδd = �D − GT δc. (13) Agora, considera-se ainda que os vetores d, na equac¸˜ao (9), e X tamb´em possam ser divididos em n partes menores, ou seja, d = [dT 1 , dT 2 , . . . , dT n ]T e X = [XT 1 , XT 1 , . . . , XT n ]T . Al´em disso, cabe ressaltar que, cada observac¸˜ao X depende apenas dos vetores (12) e, em seguida, dδ pode ser encontrado resolvendo NBERG-MARQUARDT DIVIDIDO PARA APLICAC¸ ˜OES EM ... (5) (6) uma a con- (7) mente. o. Se c˜ao do ´e mul- idades o, al- 1963) Leven- ´e pon- [∂X/∂c] e D = [∂X/∂d]. Logo, a equac¸˜ao (5) torna- se � CT C CT D DT C DT D � � δc δd � = � CT � DT � � , (10) onde ∆ = [δT c , δT d ]T . Ap´os alguma manipulac¸˜ao alg´ebrica, a equac¸˜ao an- terior pode ser reescrita como sendo � U − GV−1 0 GT V � � δc δd � = � �C − GV−1 �D �D � , (11) onde U = CT C, G = CT D, V = DT D, �C = CT � e �D = DT �. A soluc¸˜ao do problema anterior pode ser dividida em duas etapas. A primeira consiste em encontrar δc resolvendo (U − GV−1 GT )δc = �C − GV−1 �D (12) e, em seguida, δd pode ser encontrado resolvendo Vδd = �D − GT δc. (13) Agora, considera-se ainda que os vetores d, na equac¸˜ao (9), e X tamb´em possam ser divididos em n partes menores, ou seja, d = [dT 1 , dT 2 , . . . , dT n ]T e T T T T (13) Agora, considera-se ainda que os vetores d, na equação (9), e X também possam ser divididos em n partes menores, ou seja, res´ıduo, λ ´e dividido por 10. Caso contr´ario, este ´e mul- tiplicado por 10. O m´etodo de Levenberg possui instabilidades num´ericas quando λ cresce. Em vista disso, al- gum tempo depois, Marquardt (MARQUARDT, 1963) propˆos uma pequena alterac¸˜ao no algoritmo de Leven- berg, ou seja, cada componente do gradiente ´e pon- derada de acordo com sua curvatura. Assim, h´a uma grande tendˆencia de convergˆencia na direc¸˜ao na qual o gradiente ´e menor. Na pr´atica, tal alterac¸˜ao ´e implemen- tada substituindo a equac¸˜ao (7) por � JT J + diag(JT J)λ � ∆ = JT �. (8) Assim, nos dias de hoje, o algoritmo resultante ´e conhe- cido como Levenberg-Marquardt. A complexidade do algoritmo Levenberg- Marquardt aumenta com o n´umero de vari´aveis. Contudo, como se discute a seguir, algumas carac- ter´ısticas de muitos dos problemas encontrados na vis˜ao computacional podem ser utilizadas para reduzir a complexidade do m´etodo significativamente. Isso ´e obtido como segue. Considerando que Y na equac¸˜ao (3) pode ser divi- dido, ou seja, Y = [cT , dT ]T , (9) a matriz jacobiana, J, da equac¸˜ao (4) pode ser divi- dida em dois blocos, ou seja, J = [C|D], onde C = e, em seguida, δd pode ser encontrado resolvendo Vδd = �D − GT δc. (13) Agora, considera-se ainda que os vetores d, na equac¸˜ao (9), e X tamb´em possam ser divididos em n partes menores, ou seja, d = [dT 1 , dT 2 , . . . , dT n ]T e X = [XT 1 , XT 1 , . . . , XT n ]T . Al´em disso, cabe ressaltar que, cada observac¸˜ao Xi depende apenas dos vetores c, na equac¸˜ao (9), di e de nenhum outro dk. Neste caso, ∂Xi/∂dk = 0 para i �= k, enquanto que nenhuma suposic¸˜ao pode ser feita a respeito de ∂Xi/∂c. Isso faz com que a matriz jacobiana, J = ∂X/∂Y, tenha uma estrutura esparsa. Assim, a equac¸˜ao (4) torna-se � � � � � � � � �      �1 �2 ... �n      −      C1 D1 C2 D2 ... ... Cn Dn           δc δd1 ... δdn      � � � � � � � � � , (14) onde Ci = [∂Xi/∂c] e Di = [∂Xi/∂di] e � = �X − F(�c, �d) = [�T 1 , �T 2 , . . . , �T n ]T . Uma importante observac¸˜ao a ser feita ´e que cada passo do algoritmo Levenberg-Marguardt Dividido tem complexidade linear em N (n´umero de inc´ognitas), en- quanto o n˜ao-dividido tem complexidade N3. Uma vez que o problema gera uma matriz Jacobi- ana com a estrutura da equac¸˜ao (14), este pode ser re- solvido com o lac¸o de iterac¸˜ao resumido no algoritmo Semina: Ciˆencias Exatas e Tecnol´ogicas, Londrina, v. 26, n. 2, p. 195-203, jul./dez. 2005 197 e res´ıduo, λ ´e dividido por 10. Caso contr´ario, este ´e mul- tiplicado por 10. O m´etodo de Levenberg possui instabilidades num´ericas quando λ cresce. Em vista disso, al- gum tempo depois, Marquardt (MARQUARDT, 1963) propˆos uma pequena alterac¸˜ao no algoritmo de Leven- berg, ou seja, cada componente do gradiente ´e pon- derada de acordo com sua curvatura. Assim, h´a uma grande tendˆencia de convergˆencia na direc¸˜ao na qual o gradiente ´e menor. Na pr´atica, tal alterac¸˜ao ´e implemen- tada substituindo a equac¸˜ao (7) por � JT J + diag(JT J)λ � ∆ = JT �. (8) Assim, nos dias de hoje, o algoritmo resultante ´e conhe- cido como Levenberg-Marquardt. A complexidade do algoritmo Levenberg- Marquardt aumenta com o n´umero de vari´aveis. Contudo, como se discute a seguir, algumas carac- ter´ısticas de muitos dos problemas encontrados na vis˜ao computacional podem ser utilizadas para reduzir a complexidade do m´etodo significativamente. Isso ´e obtido como segue. Considerando que Y na equac¸˜ao (3) pode ser divi- dido, ou seja, Y = [cT , dT ]T , (9) a matriz jacobiana, J, da equac¸˜ao (4) pode ser divi- dida em dois blocos, ou seja, J = [C|D], onde C = e, em seguida, δd pode ser encontrado resolvendo Vδd = �D − GT δc. (13) Agora, considera-se ainda que os vetores d, na equac¸˜ao (9), e X tamb´em possam ser divididos em n partes menores, ou seja, d = [dT 1 , dT 2 , . . . , dT n ]T e X = [XT 1 , XT 1 , . . . , XT n ]T . Al´em disso, cabe ressaltar que, cada observac¸˜ao Xi depende apenas dos vetores c, na equac¸˜ao (9), di e de nenhum outro dk. Neste caso, ∂Xi/∂dk = 0 para i �= k, enquanto que nenhuma suposic¸˜ao pode ser feita a respeito de ∂Xi/∂c. Isso faz com que a matriz jacobiana, J = ∂X/∂Y, tenha uma estrutura esparsa. Assim, a equac¸˜ao (4) torna-se � � � � � � � � �      �1 �2 ... �n      −      C1 D1 C2 D2 ... ... Cn Dn           δc δd1 ... δdn      � � � � � � � � � , (14) onde Ci = [∂Xi/∂c] e Di = [∂Xi/∂di] e � = �X − F(�c, �d) = [�T 1 , �T 2 , . . . , �T n ]T . Uma importante observac¸˜ao a ser feita ´e que cada passo do algoritmo Levenberg-Marguardt Dividido tem complexidade linear em N (n´umero de inc´ognitas), en- quanto o n˜ao-dividido tem complexidade N3. Uma vez que o problema gera uma matriz Jacobi- ana com a estrutura da equac¸˜ao (14), este pode ser re- solvido com o lac¸o de iterac¸˜ao resumido no algoritmo Semina: Ciˆencias Exatas e Tecnol´ogicas, Londrina, v. 26, n. 2, p. 195-203, jul./dez. 2005 197 . Além disso, cabe ressaltar que, cada observação Xi depende apenas dos vetores c, na equação (9), di e de nenhum outro dk. Neste caso, a soluc¸˜ao da equac¸˜ao (5) conduzir a uma reduc¸˜ao do res´ıduo, λ ´e dividido por 10. Caso contr´ario, este ´e mul- tiplicado por 10. O m´etodo de Levenberg possui instabilidades num´ericas quando λ cresce. Em vista disso, al- gum tempo depois, Marquardt (MARQUARDT, 1963) propˆos uma pequena alterac¸˜ao no algoritmo de Leven- berg, ou seja, cada componente do gradiente ´e pon- derada de acordo com sua curvatura. Assim, h´a uma grande tendˆencia de convergˆencia na direc¸˜ao na qual o gradiente ´e menor. Na pr´atica, tal alterac¸˜ao ´e implemen- tada substituindo a equac¸˜ao (7) por � JT J + diag(JT J)λ � ∆ = JT �. (8) Assim, nos dias de hoje, o algoritmo resultante ´e conhe- cido como Levenberg-Marquardt. A complexidade do algoritmo Levenberg- Marquardt aumenta com o n´umero de vari´aveis. Contudo, como se discute a seguir, algumas carac- ter´ısticas de muitos dos problemas encontrados na vis˜ao computacional podem ser utilizadas para reduzir a complexidade do m´etodo significativamente. Isso ´e obtido como segue. Considerando que Y na equac¸˜ao (3) pode ser divi- dido, ou seja, Y = [cT , dT ]T , (9) a matriz jacobiana, J, da equac¸˜ao (4) pode ser divi- dida em dois blocos, ou seja, J = [C|D], onde C = c C D e, em seguida, δd pode ser encontrado resolvendo Vδd = �D − GT δc. (13) Agora, considera-se ainda que os vetores d, na equac¸˜ao (9), e X tamb´em possam ser divididos em n partes menores, ou seja, d = [dT 1 , dT 2 , . . . , dT n ]T e X = [XT 1 , XT 1 , . . . , XT n ]T . Al´em disso, cabe ressaltar que, cada observac¸˜ao Xi depende apenas dos vetores c, na equac¸˜ao (9), di e de nenhum outro dk. Neste caso, ∂Xi/∂dk = 0 para i �= k, enquanto que nenhuma suposic¸˜ao pode ser feita a respeito de ∂Xi/∂c. Isso faz com que a matriz jacobiana, J = ∂X/∂Y, tenha uma estrutura esparsa. Assim, a equac¸˜ao (4) torna-se � � � � � � � � �      �1 �2 ... �n      −      C1 D1 C2 D2 ... ... Cn Dn           δc δd1 ... δdn      � � � � � � � � � , (14) onde Ci = [∂Xi/∂c] e Di = [∂Xi/∂di] e � = �X − F(�c, �d) = [�T 1 , �T 2 , . . . , �T n ]T . Uma importante observac¸˜ao a ser feita ´e que cada passo do algoritmo Levenberg-Marguardt Dividido tem complexidade linear em N (n´umero de inc´ognitas), en- quanto o n˜ao-dividido tem complexidade N3. Uma vez que o problema gera uma matriz Jacobi- ana com a estrutura da equac¸˜ao (14), este pode ser re- solvido com o lac¸o de iterac¸˜ao resumido no algoritmo Semina: Ciˆencias Exatas e Tecnol´ogicas, Londrina, v. 26, n. 2, p. 195-203, jul./dez. 2005 197 para i ≠ k, enquanto que nenhuma suposição pode ser feita a respeito de ˜ao o valor de λ ´e alterado. Se (5) conduzir a uma reduc¸˜ao do r 10. Caso contr´ario, este ´e mul- evenberg possui instabilidades cresce. Em vista disso, al- arquardt (MARQUARDT, 1963) terac¸˜ao no algoritmo de Leven- omponente do gradiente ´e pon- sua curvatura. Assim, h´a uma nvergˆencia na direc¸˜ao na qual o pr´atica, tal alterac¸˜ao ´e implemen- ac¸˜ao (7) por g(JT J)λ � ∆ = JT �. (8) , o algoritmo resultante ´e conhe- Marquardt. do algoritmo Levenberg- com o n´umero de vari´aveis. scute a seguir, algumas carac- dos problemas encontrados na odem ser utilizadas para reduzir todo significativamente. Isso ´e Y na equac¸˜ao (3) pode ser divi- = [cT , dT ]T , (9) da equac¸˜ao (4) pode ser divi- u seja, J = [C|D], onde C = (U − GV−1 GT )δc = �C − GV−1 �D (12) e, em seguida, δd pode ser encontrado resolvendo Vδd = �D − GT δc. (13) Agora, considera-se ainda que os vetores d, na equac¸˜ao (9), e X tamb´em possam ser divididos em n partes menores, ou seja, d = [dT 1 , dT 2 , . . . , dT n ]T e X = [XT 1 , XT 1 , . . . , XT n ]T . Al´em disso, cabe ressaltar que, cada observac¸˜ao Xi depende apenas dos vetores c, na equac¸˜ao (9), di e de nenhum outro dk. Neste caso, ∂Xi/∂dk = 0 para i �= k, enquanto que nenhuma suposic¸˜ao pode ser feita a respeito de ∂Xi/∂c. Isso faz com que a matriz jacobiana, J = ∂X/∂Y, tenha uma estrutura esparsa. Assim, a equac¸˜ao (4) torna-se � � � � � � � � �      �1 �2 ... �n      −      C1 D1 C2 D2 ... ... Cn Dn           δc δd1 ... δdn      � � � � � � � � � , (14) onde Ci = [∂Xi/∂c] e Di = [∂Xi/∂di] e � = �X − F(�c, �d) = [�T 1 , �T 2 , . . . , �T n ]T . Uma importante observac¸˜ao a ser feita ´e que cada passo do algoritmo Levenberg-Marguardt Dividido tem complexidade linear em N (n´umero de inc´ognitas), en- quanto o n˜ao-dividido tem complexidade N3. Uma vez que o problema gera uma matriz Jacobi- ana com a estrutura da equac¸˜ao (14), este pode ser re- solvido com o lac¸o de iterac¸˜ao resumido no algoritmo Ciˆencias Exatas e Tecnol´ogicas, Londrina, v. 26, n. 2, p. 195-203, jul./dez. 2005 197 . Isso faz com que a matriz jacobiana, terac¸˜ao o valor de λ ´e alterado. Se c¸˜ao (5) conduzir a uma reduc¸˜ao do do por 10. Caso contr´ario, este ´e mul- e Levenberg possui instabilidades o λ cresce. Em vista disso, al- , Marquardt (MARQUARDT, 1963) na alterac¸˜ao no algoritmo de Leven- da componente do gradiente ´e pon- com sua curvatura. Assim, h´a uma de convergˆencia na direc¸˜ao na qual o Na pr´atica, tal alterac¸˜ao ´e implemen- equac¸˜ao (7) por + diag(JT J)λ � ∆ = JT �. (8) hoje, o algoritmo resultante ´e conhe- erg-Marquardt. dade do algoritmo Levenberg- ta com o n´umero de vari´aveis. e discute a seguir, algumas carac- os dos problemas encontrados na al podem ser utilizadas para reduzir o m´etodo significativamente. Isso ´e . que Y na equac¸˜ao (3) pode ser divi- Y = [cT , dT ]T , (9) a, J, da equac¸˜ao (4) pode ser divi- os, ou seja, J = [C|D], onde C = (U − GV−1 GT )δc = �C − GV−1 �D (12) e, em seguida, δd pode ser encontrado resolvendo Vδd = �D − GT δc. (13) Agora, considera-se ainda que os vetores d, na equac¸˜ao (9), e X tamb´em possam ser divididos em n partes menores, ou seja, d = [dT 1 , dT 2 , . . . , dT n ]T e X = [XT 1 , XT 1 , . . . , XT n ]T . Al´em disso, cabe ressaltar que, cada observac¸˜ao Xi depende apenas dos vetores c, na equac¸˜ao (9), di e de nenhum outro dk. Neste caso, ∂Xi/∂dk = 0 para i �= k, enquanto que nenhuma suposic¸˜ao pode ser feita a respeito de ∂Xi/∂c. Isso faz com que a matriz jacobiana, J = ∂X/∂Y, tenha uma estrutura esparsa. Assim, a equac¸˜ao (4) torna-se � � � � � � � � �      �1 �2 ... �n      −      C1 D1 C2 D2 ... ... Cn Dn           δc δd1 ... δdn      � � � � � � � � � , (14) onde Ci = [∂Xi/∂c] e Di = [∂Xi/∂di] e � = �X − F(�c, �d) = [�T 1 , �T 2 , . . . , �T n ]T . Uma importante observac¸˜ao a ser feita ´e que cada passo do algoritmo Levenberg-Marguardt Dividido tem complexidade linear em N (n´umero de inc´ognitas), en- quanto o n˜ao-dividido tem complexidade N3. Uma vez que o problema gera uma matriz Jacobi- ana com a estrutura da equac¸˜ao (14), este pode ser re- solvido com o lac¸o de iterac¸˜ao resumido no algoritmo mina: Ciˆencias Exatas e Tecnol´ogicas, Londrina, v. 26, n. 2, p. 195-203, jul./dez. 2005 197 , tenha uma estrutura esparsa. Assim, a equação (4) torna-se Tipicamente, λ ´e feito igual a 10−4 inicialmente. Contudo, a cada iterac¸˜ao o valor de λ ´e alterado. Se a soluc¸˜ao da equac¸˜ao (5) conduzir a uma reduc¸˜ao do res´ıduo, λ ´e dividido por 10. Caso contr´ario, este ´e mul- tiplicado por 10. O m´etodo de Levenberg possui instabilidades num´ericas quando λ cresce. Em vista disso, al- gum tempo depois, Marquardt (MARQUARDT, 1963) propˆos uma pequena alterac¸˜ao no algoritmo de Leven- berg, ou seja, cada componente do gradiente ´e pon- derada de acordo com sua curvatura. Assim, h´a uma grande tendˆencia de convergˆencia na direc¸˜ao na qual o gradiente ´e menor. Na pr´atica, tal alterac¸˜ao ´e implemen- tada substituindo a equac¸˜ao (7) por � JT J + diag(JT J)λ � ∆ = JT �. (8) Assim, nos dias de hoje, o algoritmo resultante ´e conhe- cido como Levenberg-Marquardt. A complexidade do algoritmo Levenberg- Marquardt aumenta com o n´umero de vari´aveis. Contudo, como se discute a seguir, algumas carac- ter´ısticas de muitos dos problemas encontrados na vis˜ao computacional podem ser utilizadas para reduzir a complexidade do m´etodo significativamente. Isso ´e obtido como segue. Considerando que Y na equac¸˜ao (3) pode ser divi- dido, ou seja, Y = [cT , dT ]T , (9) a matriz jacobiana, J, da equac¸˜ao (4) pode ser divi- dida em dois blocos, ou seja, J = [C|D], onde C = em duas etapas. A primeira consiste em encontrar δc resolvendo (U − GV−1 GT )δc = �C − GV−1 �D (12) e, em seguida, δd pode ser encontrado resolvendo Vδd = �D − GT δc. (13) Agora, considera-se ainda que os vetores d, na equac¸˜ao (9), e X tamb´em possam ser divididos em n partes menores, ou seja, d = [dT 1 , dT 2 , . . . , dT n ]T e X = [XT 1 , XT 1 , . . . , XT n ]T . Al´em disso, cabe ressaltar que, cada observac¸˜ao Xi depende apenas dos vetores c, na equac¸˜ao (9), di e de nenhum outro dk. Neste caso, ∂Xi/∂dk = 0 para i �= k, enquanto que nenhuma suposic¸˜ao pode ser feita a respeito de ∂Xi/∂c. Isso faz com que a matriz jacobiana, J = ∂X/∂Y, tenha uma estrutura esparsa. Assim, a equac¸˜ao (4) torna-se � � � � � � � � �      �1 �2 ... �n      −      C1 D1 C2 D2 ... ... Cn Dn           δc δd1 ... δdn      � � � � � � � � � , (14) onde Ci = [∂Xi/∂c] e Di = [∂Xi/∂di] e � = �X − F(�c, �d) = [�T 1 , �T 2 , . . . , �T n ]T . Uma importante observac¸˜ao a ser feita ´e que cada passo do algoritmo Levenberg-Marguardt Dividido tem complexidade linear em N (n´umero de inc´ognitas), en- quanto o n˜ao-dividido tem complexidade N3. Uma vez que o problema gera uma matriz Jacobi- ana com a estrutura da equac¸˜ao (14), este pode ser re- solvido com o lac¸o de iterac¸˜ao resumido no algoritmo Semina: Ciˆencias Exatas e Tecnol´ogicas, Londrina, v. 26, n. 2, p. 195-203, jul./dez. 2005 197 (14) J J + Iλ ∆ = J �. (7) Tipicamente, λ ´e feito igual a 10−4 inicialmente. Contudo, a cada iterac¸˜ao o valor de λ ´e alterado. Se a soluc¸˜ao da equac¸˜ao (5) conduzir a uma reduc¸˜ao do res´ıduo, λ ´e dividido por 10. Caso contr´ario, este ´e mul- tiplicado por 10. O m´etodo de Levenberg possui instabilidades num´ericas quando λ cresce. Em vista disso, al- gum tempo depois, Marquardt (MARQUARDT, 1963) propˆos uma pequena alterac¸˜ao no algoritmo de Leven- berg, ou seja, cada componente do gradiente ´e pon- derada de acordo com sua curvatura. Assim, h´a uma grande tendˆencia de convergˆencia na direc¸˜ao na qual o gradiente ´e menor. Na pr´atica, tal alterac¸˜ao ´e implemen- tada substituindo a equac¸˜ao (7) por � JT J + diag(JT J)λ � ∆ = JT �. (8) Assim, nos dias de hoje, o algoritmo resultante ´e conhe- cido como Levenberg-Marquardt. A complexidade do algoritmo Levenberg- Marquardt aumenta com o n´umero de vari´aveis. Contudo, como se discute a seguir, algumas carac- ter´ısticas de muitos dos problemas encontrados na vis˜ao computacional podem ser utilizadas para reduzir a complexidade do m´etodo significativamente. Isso ´e obtido como segue. Considerando que Y na equac¸˜ao (3) pode ser divi- dido, ou seja, Y = [cT , dT ]T , (9) a matriz jacobiana, J, da equac¸˜ao (4) pode ser divi- dida em dois blocos, ou seja, J = [C|D], onde C = A soluc¸˜ao do problema anterior pode ser dividida em duas etapas. A primeira consiste em encontrar δc resolvendo (U − GV−1 GT )δc = �C − GV−1 �D (12) e, em seguida, δd pode ser encontrado resolvendo Vδd = �D − GT δc. (13) Agora, considera-se ainda que os vetores d, na equac¸˜ao (9), e X tamb´em possam ser divididos em n partes menores, ou seja, d = [dT 1 , dT 2 , . . . , dT n ]T e X = [XT 1 , XT 1 , . . . , XT n ]T . Al´em disso, cabe ressaltar que, cada observac¸˜ao Xi depende apenas dos vetores c, na equac¸˜ao (9), di e de nenhum outro dk. Neste caso, ∂Xi/∂dk = 0 para i �= k, enquanto que nenhuma suposic¸˜ao pode ser feita a respeito de ∂Xi/∂c. Isso faz com que a matriz jacobiana, J = ∂X/∂Y, tenha uma estrutura esparsa. Assim, a equac¸˜ao (4) torna-se � � � � � � � � �      �1 �2 ... �n      −      C1 D1 C2 D2 ... ... Cn Dn           δc δd1 ... δdn      � � � � � � � � � , (14) onde Ci = [∂Xi/∂c] e Di = [∂Xi/∂di] e � = �X − F(�c, �d) = [�T 1 , �T 2 , . . . , �T n ]T . Uma importante observac¸˜ao a ser feita ´e que cada passo do algoritmo Levenberg-Marguardt Dividido tem complexidade linear em N (n´umero de inc´ognitas), en- quanto o n˜ao-dividido tem complexidade N3. Uma vez que o problema gera uma matriz Jacobi- ana com a estrutura da equac¸˜ao (14), este pode ser re- solvido com o lac¸o de iterac¸˜ao resumido no algoritmo Semina: Ciˆencias Exatas e Tecnol´ogicas, Londrina, v. 26, n. 2, p. 195-203, jul./dez. 2005 197 Uma importante observação a ser feita é que cada passo do algoritmo Levenberg-Marguardt Dividido tem complexidade linear em N (número de incógnitas), enquanto o não-dividido tem complexidade N3 . Uma vez que o problema gera uma matriz Jacobiana com a estrutura da equação (14) este pode ser resolvido com o laço de iteração resumido no algoritmo 1. Tal algoritmo descreve em pormenores a solução do problema e torna possível a sua codificação em linguagem computacional. No apêndice A, apresenta-se a codificação utilizada neste trabalho. Diversos problemas de otimização encontrados na visão computacional, por exemplo, os que envolvem as coordenadas de pontos no espaço projetivo 2D ou 3D (ARMANGUÉ; SALVI, 2003; HORAUD; CSURKA; DEMIRDIJIAN, 2000; LOOP; ZHANG, 1999; SALVI; ARMANGUÉ; BATLLE, 2002; ZHANG, 2000), podem ser formulados como um problema com a estrutura da equação (14). Na próxima seção, é dado um exemplo de aplicação que se encaixa perfeitamente nesta categoria de problemas.