Este artigo apresenta uma implementação do algoritmo Levenberg-Marquardt para problemas em visão computacional onde a matriz jacobiana é esparsa. Isso reduz a complexidade do algoritmo de N3 para N. O algoritmo é dividido em subproblemas menores e é aplicado à calibração de câmeras usando um padrão 1D. Resultados experimentais mostram que o método converge rapidamente mesmo na presença de ruído.
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.