scieee Science in your language
[es] (orig)

Tracking de objetos utilizando información de distractores

Author: Bendaña Gómez, Manuel
Year: 2022
Source: https://minerva.usc.es/bitstreams/33f2584e-32e3-44ef-af45-20590fa1fddd/download
UNIVERSIDADE DE SANTIAGO DE
COMPOSTELA
ESCOLA T´
ECNICA SUPERIOR DE ENXE ˜
NAR´
IA
T acking de obje os u ilizando
in o maci´on de dis ac o es
Au o :
Manuel Benda˜na G´omez
Tu o es:
Manuel Mucien es Molina
Lo enzo Vaque o O al
G ao en Enxe˜na ´ıa In o m´a ica
Junio 2022
T abajo de Fin de G ado p esen ado en la Escola T´ecnica Supe io de
Enxe˜na ´ıa de la Uni e sidade de San iago de Compos ela pa a la ob enci´on del
G ado en Ingenie ´ıa In o m´a ica
D. Manuel Mucien es Molina, P o eso del Depa amen o de Elec ´onica
y Compu aci´on de la Uni e sidade de San iago de Compos ela, y D. Lo enzo
Vaque o O al, In es igado p edoc o al en el Cen o Singula de In es igaci´on
en Tecnolox´ıas In elixen es (CiTIUS),
INFORMAN:
Que la p esen e memo ia, i ulada T acking de obje os u ilizando in o maci´on
de dis ac o es, p esen ada po D. Manuel Benda˜na G´omez pa a supe a los
c ´edi os co espondien es al T abajo de Fin de G ado de la i ulaci´on de G ado
en Ingenie ´ıa In o m´a ica, se ealiz´o bajo nues a di ecci´on en el Depa amen o
de Elec ´onica y Compu aci´on de la Uni e sidade de San iago de Compos ela.
Y pa a que as´ı cons e a los e ec os opo unos, expiden el p esen e in o me en
San iago de Compos ela, a 15 de junio de 2022:
Tu o , Co u o , Alumno,
Manuel Mucien es Molina Lo enzo Vaque o O al Manuel Benda˜na G´omez
i
ii
Ag adecimien os
Pa a empeza , me gus a ´ıa da le las g acias a mi amilia, que ha es ado siemp e
a mi lado apoy´andome en odo lo que he hecho, y aguan ´andome, que s´e que a
eces no es ´acil. C´omo no, a los que es ´an m´as ce ca: mi mad e Lou des, mi
pad e Manuel y mi he mana Sonia. Me gus a ´ıa ambi´en eco da aqu´ı a los que
po desg acia, du an e es os a˜nos de ca e a, nos han dejado: muy especialmen e
a mis ´ıos Azu yTi o, a los que les engo un ca i˜no eno me y siemp e los lle a ´e
conmigo.
Po supues o, quie o ag adece le al CiTIUS las acilidades p opo cionadas
pa a ealiza el TFG, como el acceso a los se ido es de compu aci´on, y a mis
u o es del TFG oda la ayuda p es ada du an e odos es os meses: a Manuel
Mucien es, al que debo ag adece le ambi´en la opo unidad que me dio, y a
Lo enzo Vaque o, que ha enido que aguan a me muchas eces pa a in en a
esol e los p oblemas que apa ec´ıan. Menciona adem´as a Daniel Co es, que me
es u o ayudando en los ´ul imos d´ıas con p oblemas que u e en los se ido es.
¡Muchas g acias a odos!
Pa a e mina , dedica ambi´en unas palab as a mis compa˜ne os y amigos,
an o a los que engo desde an es de comenza la ca e a, como a odos los que
conoc´ı du an e es os cua o a˜nos. Menciona de mane a especial, a And ´e, con el
que lle o coincidiendo ya much´ısimos a˜nos (y espe o que muchos m´as), a Ainhoa,
que siemp e me ha es ado apoyando y ayudando en muchos momen os di ´ıciles,
a Ma ´ın, a Miguel, a Pablo, a los monkos, y a mis amigos de siemp e, g acias
po es a ah´ı y po hace es os a˜nos m´as amenos y di e idos.
iii

i
Resumen
El p oblema del seguimien o de m´ul iples obje os en ´ıdeo supone un desa ´ıo
hoy en d´ıa pa a el cual no dejan de apa ece nume osas p opues as de soluciones.
Es os sis emas no malmen e es ´an o mados po es elemen os: un de ec o , un
acke y un algo i mo de asociaci´on de da os que combina la in o maci´on de
los dos p ime os. En es e abajo, se es udia la iabilidad de emplea , como
acke den o de un sis ema MOT, el sis ema de seguimien o de un obje o en
´ıdeo SiamRPN++, pa a el cual se analiza c´omo in luye la p esencia de obje os
ce canos al de in e ´es que puedan ac ua de dis ac o es y con undi al sis ema.
Se ha obse ado que, en la mayo pa e de casos, cuando hay un dis ac o muy
ce cano, el sis ema iende a p oduci p edicciones e ´oneas.
As´ı, en es e abajo se p oponen di e sas mejo as pa a ayuda a esol e ese
p oblema. Dichas mejo as pasan po in eg a la in o maci´on de dichos dis ac o es
en el algo i mo de seguimien o a ando de combina los en iempo de in e encia o
modi icando la a qui ec u a de la ed, lo que equie e de en ena las pa es mo-
di icadas. Los expe imen os nos mues an que es a ´ul ima al e na i a nos pe mi e
mejo a en gene al los esul ados con di e en es p opues as.
i
´
Indice gene al
1. In oducci´on 1
1.1. Desc ipci´on del p oblema . . . . . . . . . . . . . . . . . . . . . . 1
1.2. Hip´o esis a p oba . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3. Obje i os ............................... 3
1.4. O ganizaci´on de la memo ia . . . . . . . . . . . . . . . . . . . . . 4
2. Es ado del conocimien o del p oblema 5
2.1. Elp oblemadelMOT ........................ 5
2.1.1. Desc ipci´on .......................... 5
2.1.2. Sis emas MOT des acados . . . . . . . . . . . . . . . . . . 6
2.2. Elp oblemadelSOT......................... 7
2.2.1. Desc ipci´on .......................... 7
2.2.2. Sis emas SOT des acados . . . . . . . . . . . . . . . . . . 8
3. Ma e iales 11
3.1. pySOT................................. 11
3.2. CUDA................................. 11
3.3. Se ido es de compu aci´on GPGPU . . . . . . . . . . . . . . . . . 12
3.4. Lenguaje de p og amaci´on . . . . . . . . . . . . . . . . . . . . . . 12
3.5. Docke ................................. 13
3.6. Conda ................................. 13
3.7. He amien as adicionales . . . . . . . . . . . . . . . . . . . . . . . 14
4. Me odolog´ıa 15
4.1. SiamRPN++ ............................. 15
4.1.1. Visi´on gene al de la a qui ec u a . . . . . . . . . . . . . . 15
4.1.2. Ex ac o de ca ac e ´ıs icas . . . . . . . . . . . . . . . . . 16
4.1.3. RPNsiamesa ......................... 17
4.2. Mejo as p opues as sob e SiamRPN++ . . . . . . . . . . . . . . . 20
4.2.1. P ime a ap oximaci´on: combina mapas de calo de clasi i-
caci´on du an e las p uebas . . . . . . . . . . . . . . . . . 21
4.2.2. Segunda ap oximaci´on: o ´aculo a pa i de las ano aciones 24
4.2.3. Te ce a ap oximaci´on: modi icaci´on de la a qui ec u a . . 26
ii
2CAP´
ITULO 1. INTRODUCCI ´
ON
desa ´ıos, des acando los del MOTChallenge, siendo el ´ul imo el p opues o en
2020 [6]. Dichos desa ´ıos suelen p esen a ele ada complejidad, dado que la iden-
i icaci´on del obje o en una escena puede e se limi ada po la p esencia de dis-
ac o es que con undan al sis ema. Po ejemplo, una escena de in e ´es puede
se la de la igu a 1.1, donde hay g andes g upos de pe sonas (cada una con sus
ca ac e ´ıs icas), desplaz´andose en di ecciones di e en es.
Figu a 1.1: Fo og ama de uno de los ´ıdeos del MOTChallenge de 2020. Cada
ec ´angulo ep esen a a uno de los obje os que se deben de ec a , acompa˜nado
de una e ique a iden i ica i a.
Son muchas las p opues as ealizadas pa a la esoluci´on del p oblema del
MOT, in en ando mejo a las p es aciones del es o en elaci´on a una se ie de
m´e icas, aunque siemp e exis en limi aciones y posibles mejo as a aplica , ya
sea a ni el de endimien o o de esul ados. Es os sis emas suelen p esen a una
es uc u a b´asica simila a la de la igu a 1.2.
Figu a 1.2: Es uc u a b´asica de un sis ema dise˜nado pa a esol e el p oblema
del MOT.

1.2. HIP ´
OTESIS A PROBAR 3
En dicha igu a se puede obse a que a la en ada se iene la in o maci´on
de un o og ama Fpa a el ins an e + 1 y la p edicci´on ealizada en el ins an e
an e io P . Con ello, po un lado, se ejecu a un de ec o y po o o un sis ema de
seguimien o o acke , cuyos esul ados de y se combinan median e ´ecnicas
de asociaci´on de da os, que lle an a ob ene unas p edicciones en o ma de
obje os y ayec o ias asociadas a los mismos.
Es e abajo se a a cen a en la pa e del acke , donde una opci´on muy
habi ual es oma como e e encia un sis ema dise˜nado pa a esol e el p oblema
del seguimien o de un ´unico obje o o SOT (que iene del ingl´es Single Objec
T acking), e ins ancia lo m´ul iples eces, una po cada obje o de in e ´es.
As´ı, se pa i ´a del sis ema SOT SiamRPN++ [7], a ando de analiza lo
y mejo a lo pa a un buen uncionamien o in eg ado en un sis ema MOT, pa a
lo que se usa ´an como e e encia desa ´ıos de es e ´ul imo p oblema.
1.2. Hip´o esis a p oba
Se plan ean las siguien es hip´o esis que son las que se quie en p oba con la
ealizaci´on de es e abajo:
H1: La ejecuci´on del sis ema SiamRPN++ sob e conjun os de da os p e-
pa ados pa a desa ´ıos MOT o ece esul ados mejo ables debido a la p e-
sencia de dis ac o es ce canos a los obje os que se desean segui .
H2: Al inclui la in o maci´on de o os obje os en SiamRPN++, se con i-
buye a ealiza un mejo seguimien o del obje o, e i ando pe de p ecisi´on
o educiendo el n´ume o de p´e didas.
1.3. Obje i os
De o ma gen´e ica, se plan e´o desde el comienzo de es e T abajo de Fin de
G ado como obje i o undamen al el es udio de sis emas pa a a a de e-
sol e el p oblema del seguimien o de m´ul iples obje os en un ´ıdeo,
plan e´andose pa a ello una e aluaci´on inicial de di e en es al e na i as pa a se-
lecciona el sis ema a usa como e e encia, un an´alisis del sis ema seleccionado
pa a iden i ica p oblemas y ´a eas de mejo a y la in oducci´on de esas mejo as
median e la modi icaci´on del c´odigo.
Adicionalmen e, se han p opues o los siguien es subobje i os u obje i os
espec´ı icos:
Obj. 1: Es udio de los desa ´ıos MOT y SOT, y los sis emas m´as des acados.
Obj. 2: An´alisis de allado de SiamRPN++ y sus an eceso es pa a com-
p ende su es uc u a y uncionamien o.
4CAP´
ITULO 1. INTRODUCCI ´
ON
Obj. 3: Dise˜no de posibles mejo as pa a SiamRPN++, p es ando a en-
ci´on a la in luencia de los dis ac o es.
Obj. 4: Implemen aci´on de las mejo as sob e SiamRPN++.
Obj. 5: An´alisis compa a i o de los esul ados ob enidos an es y despu´es
de las mejo as, y ex acci´on de conclusiones.
1.4. O ganizaci´on de la memo ia
Es e T abajo de Fin de G ado se puede ubica den o del Tipo A seg´un el
Regulamen o do T aballo de Fin de G ao del G ado en Ingenie ´ıa In o m´a ica po
la USC, en su ´ul ima modi icaci´on ap obada po la Xun a de Escola de la ETSE
en Feb e o de 2022. Es deci , se desa olla una idea de un sis ema in o m´a ico
buscando con ibui a las ´ecnicas de la in o m´a ica exis en es, en es e caso en el
campo del seguimien o de obje os.
De es e modo, la es uc u a de cap´ı ulos que se pod ´a encon a a pa i de
es a in oducci´on que supone el Cap´ı ulo 1 es la siguien e:
El Cap´ı ulo 2 se cen a en mos a el es ado del conocimien o del
p oblema, es deci , se p esen an con mayo de alle los p oblemas abo dados
y las soluciones exis en es a d´ıa de hoy.
En el Cap´ı ulo 3 se p esen an los ma e iales empleados pa a desa olla
es e abajo.
En el Cap´ı ulo 4 se da ´an m´as de alles ace ca del sis ema SiamRPN++
y de las di e en es mejo as p opues as.
El Cap´ı ulo 5 incluye las p uebas ealizadas: en p ime luga se p esen a
c´omo se ealizan (m´e icas y conjun os de da os usados), y en segundo luga
se incluyen los esul ados ob enidos.
El Cap´ı ulo 6 e leja una discusi´on ace ca de los esul ados que se han
ob enido en las p uebas.
El Cap´ı ulo 7 si e pa a esumi lo que se ha conseguido en es e abajo
y p opone ´ıas de mejo a o posibles ampliaciones a pa i del mismo.
Anexo a es a memo ia, se en egan dos ap´endices: el Ap´endice A con el
manual ´ecnico, y el Ap´endice B con el manual de usua io. Es os inclui ´an la
in o maci´on necesa ia pa a eplica los expe imen os.
Cap´ı ulo 2
Es ado del conocimien o del
p oblema
2.1. El p oblema del MOT
2.1.1. Desc ipci´on
Uno de los p oblemas en los que se es ´an ealizando g andes es ue zos den o
de la isi´on po compu ado es el seguimien o de m´ul iples obje os. La idea
del p oblema es, dado un ´ıdeo con o mado po una secuencia de o og amas,
iden i ica a odos los obje os que se encuen an en dicho ´ıdeo y conse a su
iden idad a lo la go del iempo, de mane a que se de inen ayec o ias asociadas
a cada uno de ellos [6].
E iden emen e, es e p oblema iene acompa˜nado de una g an can idad de
di icul ades que, al mismo iempo, lo con ie en en a ac i o de esol e :
Hay a ios ac o es que pueden di icul a la me a iden i icaci´on de un obje o:
desde el pun o de is a desde el cual se mues a, posibles de o macio-
nes,oclusiones pa ciales o o ales, has a la poca di e encia en e el
obje o y el ondo de la imagen. Tambi´en cabe se˜nala la in luencia de la
iluminaci´on de las escenas en la de inici´on de los obje os [8].
Tambi´en puede p oduci se un cambio de iden idad, es o es, que se asocie
un obje o a una ayec o ia co ec amen e has a un o og ama y que a pa i
de dicho o og ama se empiece a asocia el mismo obje o a una ayec o ia
di e en e [6]. Es e cambio de iden idad puede da se cuando dos obje os
simila es se encuen an demasiado ce ca, o si ambos se c uzan [9].
Los cambios de di ecci´on ab up os que se pueden p oduci en un obje o
en mo imien o (po ejemplo, que se d´e la uel a) [9].
A lo la go de los ´ul imos a˜nos se han p opues o di e en es desa ´ıos pa a a a
de esol e lo. No malmen e, dichos desa ´ıos o ecen un conjun o de da os, el cual
5
6CAP´
ITULO 2. ESTADO DEL CONOCIMIENTO DEL PROBLEMA
suele compone se de escenas especialmen e complejas, y una se ie de m´e icas
con las cuales medi las p es aciones de los sis emas p esen ados pa a esol e el
p oblema.
Uno de los desa ´ıos m´as conocidos, que es el que se oma como e e encia,
es el MOTChallenge, que se cen a adem´as en el seguimien o de m´ul iples
pe sonas. El ´ul imo desa ´ıo que se p opuso ue el MOTChallenge de 2020, con
un conjun o de da os cuya ca ac e ´ıs ica esencial es la p esencia de escenas muy
concu idas de gen e [6].
2.1.2. Sis emas MOT des acados
Hay una g an can idad de p opues as ealizadas en lo que espec a a sis e-
mas MOT que se p ueban en los conjun os de da os de los di e en es desa ´ıos
disponibles. Po ejemplo, desde el si io o icial del MOTChallenge, es posible con-
sul a ablas con los nomb es de los sis emas que mejo es esul ados ob ienen en
las di e en es m´e icas pa a el desa ´ıo de 2020 [10], as´ı como de a˜nos an e io es.
SiamMOT
SiamMOT [11] es un sis ema MOT ca ac e izado po ene una ed siamesa
basada en egiones, inspi ada en sis emas de seguimien o de un ´unico obje o. Las
edes siamesas se ca ac e izan po ene a ias edes id´en icas en su in e io ,
de mane a que se colocan di e en es en adas en cada una de esas sub edes (en
es e caso, eco es de un o og ama del ´ıdeo), se compu an los esul ados pa a
cada en ada, y luego se combinan median e alguna ope aci´on [12].
Es e sis ema incluye un de ec o de obje os Fas e -RCNN [13], ca ac e-
izado po dispone de dos m´odulos:
Una ed de p opues as de egiones (conocida habi ualmen e po RPN,
po el ingl´es Region P oposal Ne wo k), cuyo p op´osi o es, a pa i de una
imagen de en ada, de ol e una se ie de p opues as pa a los obje os en
o ma de ec ´angulos delimi ado es, cada uno con una pun uaci´on asociada.
Una ed de de ecci´on basada en egiones, que usa las p opues as de la
RPN as´ı como las im´agenes de en ada pa a de ol e un ´unico ec ´angulo
delimi ado y una ca ego ´ıa asociada a cada obje o.
Adem´as del de ec o , en SiamMOT se p opo ciona un modelo de mo i-
mien o consis en e en la asociaci´on de una ins ancia del obje o iden i icada en
el o og ama del ins an e , con la ins ancia en el o og ama del ins an e +δ,
u ilizando como e e encia una egi´on al ededo de su ubicaci´on en el o og ama
del ins an e . Se p oponen dos modelos [11]:
Uno impl´ıci o, ca ac e izado po es ima el mo imien o median e un pe -
cep ´on mul icapa.
2.2. EL PROBLEMA DEL SOT 7
Uno expl´ıci o, basado en los sis emas SOT, debido al uso de un ope ado
de co elaci´on c uzada en e el mapa de b´usqueda en el ins an e +δy
el mapa de ca ac e ´ıs icas del ins an e . Aqu´ı es donde se emplea la ed
siamesa.
Los esul ados mos ados en el a ´ıculo de SiamMOT indican que esul a
mejo el modelo expl´ıci o en e al impl´ıci o. As´ı mismo, se e leja que es e
sis ema MOT p opo ciona esul ados del es ado del a e.
By eT ack
O o sis ema MOT del cual se consul ´o in o maci´on ue By eT ack [14], el
cual iene como p incipal ca ac e ´ıs ica el uso de un mecanismo de asociaci´on,
que ecibe el nomb e de BYTE, y que iene en cuen a no solo las de ecciones que
o ecen mejo es pun uaciones de con ianza, sino ambi´en aquellas cuya con-
ianza esul a baja.
Adem´as de lo an e io , cabe des aca que el sis ema emplea YOLOX [15],
un de ec o de la amilia YOLO que posee un g an endimien o. En la pu-
blicaci´on de By eT ack se mues a c´omo log a buenos esul ados en los desa ´ıos
del MOTChallenge an o de 2017 como de 2020.
2.2. El p oblema del SOT
2.2.1. Desc ipci´on
Un p oblema di e en e al que ambi´en se le hace en e den o del seguimien o
de obje os es al SOT. Es e consis e en el seguimien o de un ´unico obje o
de in e ´es a lo la go de los di e en es o og amas de un ´ıdeo [11]. Pa a ello, es
habi ual especi ica su posici´on en el p ime o og ama como pun o de pa ida.
Muchas de las di icul ades mencionadas an es pa a el p oblema del MOT se
pueden ex ende a es e caso. En pa icula , es posible pe de la ayec o ia
del obje o de in e ´es, pa a lo que puede ocu i un cambio de iden idad al es ilo
del caso mencionado en MOT, solo que en es a si uaci´on simplemen e se empieza
a segui un obje o di e en e que no in e esaba segui . Tambi´en puede sucede que
simplemen e el sis ema se con unda con el ondo del o og ama. As´ı mismo,
los cambios de di ecci´on y p oblemas como las de o maciones, las oclusiones y la
iluminaci´on, pueden ol e a a ec a en es e caso, incluso la inicializaci´on del
obje o (es deci , la posici´on indicada en el p ime o og ama) que puede no se
la ap opiada.
En elaci´on a es e p oblema se han p opues o nume osos desa ´ıos. Una de las
inicia i as a des aca es la del VOTChallenge (del ingl´es Visual Objec T acking
Challenge), con la cual se es ablecen conjun os de da os y una se ie de m´e icas
pa a esol e di e en es desa ´ıos [16]. As´ı mismo, se o ece una pla a o ma en

8CAP´
ITULO 2. ESTADO DEL CONOCIMIENTO DEL PROBLEMA
la cual se dispone de documen aci´on ela i a a los desa ´ıos y los esul ados de
aquellos algo i mos que han pa icipado en las compe iciones [17].
2.2.2. Sis emas SOT des acados
Se han p opues o nume osos sis emas que in en an ob ene los mejo es esul-
ados posibles en los di e en es desa ´ıos exis en es. Se p esen an a con inuaci´on
algunos que ienen alguna elaci´on con el sis ema SiamRPN++ (la e e encia
de es e abajo), al aplica se algunas de sus ideas.
SiamFC
SiamFC [18] es un sis ema SOT ca ac e izado po el uso de una a qui ec-
u a con olucional siamesa, cuya idea p incipal se e leja en la igu a 2.1.
Figu a 2.1: A qui ec u a de SiamFC [18]. El ejempla y el candida o, as´ı como el
es o de mapas que apa ecen en la igu a, ienen acompa˜nados de la esoluci´on
que poseen, exp esada en la o ma ancho ×al o ×num canales.
Dicha a qui ec u a se ca ac e iza po el uso de dos im´agenes: un ejempla
zy un candida o xque, as la aplicaci´on de una se ie de ope aciones (id´en icas
pa a ambos, de ah´ı que la ed se de ina como siamesa) pa a ealiza la ex acci´on
de ca ac e ´ıs icas, se combinan median e una capa de co elaci´on. El esul ado
ob enido es un mapa de calo , que pe mi e de e mina la p obabilidad de que el
ejempla se encuen e en cada una de las posiciones posibles den o de la imagen
candida a.
La idea de la co elaci´on p opues a pa a es e sis ema es en la que se inspi a
SiamMOT (ya p esen ado p e iamen e) [11].
2.2. EL PROBLEMA DEL SOT 9
SiamRPN
SiamRPN [19] se puede conside a un pun o in e medio en e SiamFC y
SiamRPN++. Toma e e encias del p ime o y si i´o de base pa a el segundo.
Se mues a ambi´en pa a es e caso la idea de a qui ec u a en la igu a 2.2.
Figu a 2.2: A qui ec u a de SiamRPN [19].
Se a a de un sis ema que, pa iendo de la a qui ec u a p opues a po SiamFC
(al es ilo de la igu a 2.1), eemplaza la ope aci´on de co elaci´on pa a la
compa aci´on en e la imagen ejempla y la candida a po una RPN con dos
amas:
La p ime a con o ma la ama de clasi icaci´on: se oman a la en ada el
ejempla y el candida o, y se ob iene a la salida un mapa de calo que cla-
si ica la p obabilidad de que cada egi´on de la imagen pe enezca
al obje o o al ondo. La salida de es a p ime a ama end ´a po an o
2·kcanales, siendo kel n´ume o de plan illas (del ingl´es ancho , un hipe -
pa ´ame o que de ine di e en es elaciones de aspec o y ama˜nos pa a las
egiones en las que se di idi ´a la imagen).
La segunda con o ma la ama de eg esi´on: ambi´en oma ´a a la en a-
da el ejempla y el candida o, pa a ob ene a la salida un mapa de calo
que pe mi a ajus a el ec ´angulo delimi ado al obje o a segui (x, y, an-
cho, al o). De es e modo, la salida end ´a 4 ·kcanales pa a ajus a cada
dimensi´on.
SiamRPN++
Finalmen e, se comen an algunos de alles sob e el sis ema que se oma como
e e encia pa a es e abajo, SiamRPN++ [7], y que es ´a basado en ideas de
los an e io es, SiamFC ySiamRPN. P incipalmen e, se hace e e encia a las
di e encias espec o a los o os sis emas p esen ados, si bien pos e io men e se
10 CAP´
ITULO 2. ESTADO DEL CONOCIMIENTO DEL PROBLEMA
en a ´a en de alles m´as conc e os. Las di e encias se encuen an en los siguien es
pun os:
La capa con olucional pa a ex acci´on de ca ac e ´ıs icas se modi ica es-
pec o a los sis emas an e io es. Es os usaban una a qui ec u a simila a la
conocida como AlexNe [20], sin emba go, en es e sis ema se apues a po
el uso de una a qui ec u a ResNe [21], m´as ecien e y a anzada.
De dicha capa se ex aen no uno, sino es mapas de ca ac e ´ıs icas sali-
dos de di e en es pun os de la ed con olucional, que se usan como en adas
pos e io men e en la RPN.
Adem´as, se p opone el uso de con oluciones en p o undidad (dep h-
wise) pa a mejo a la ope aci´on de co elaci´on ealizada en e el ejempla
y el candida o den o de las amas de la RPN.
Es a se ´a la e e encia que se ome pa a la ealizaci´on de los di e en es expe-
imen os en los que se cen a es e abajo.
Cap´ı ulo 3
Ma e iales
Pa a la ealizaci´on de es e abajo se ha ecu ido a m´ul iples u ilidades que
se i ´an de allando a lo la go de es e cap´ı ulo.
3.1. pySOT
El sis ema SiamRPN++ p esen ado an e io men e se encuen a implemen-
ado en el so wa e pySOT, disponible en Gi Hub [22]. Ha sido desa ollado
po el Sense Time Video In elligence Resea ch Team con el p op´osi o de da ca-
bida a di e en es sis emas. As´ı, pySOT unciona como una base pa a pode
in es iga sob e seguimien o de obje os [22], esul ando de g an u ilidad.
El c´odigo disponible en ese eposi o io de Gi Hub es el que se ha usado de
base pa a pode implemen a las modi icaciones dise˜nadas, cambiando el
c´odigo p esen e en algunos iche os, as´ı como a˜nadiendo o os nue os cuando
uese necesa io. Adem´as, de la documen aci´on de ese eposi o io se ob iene oda
la in o maci´on necesa ia pa a la ins alaci´on del sis ema, as´ı como de su
con igu aci´on y las ejecuciones m´as b´asicas.
3.2. CUDA
Como la ealizaci´on de p uebas sob e pySOT puede supone la ejecuci´on
de e aluaciones y en enamien os especialmen e cos osos, se ecu e a CUDA
[23], una pla a o ma de compu aci´on pa alela desa ollada po la compa˜n´ıa
NVIDIA, con el p op´osi o de ealiza ope aciones de p op´osi o gene al en GPUs.
De es a mane a, g acias al uso de CUDA, las po ciones de c´odigo que e-
quie an de una compu aci´on in ensi a (como puede se el en enamien o de
SiamRPN++), se pueden ejecu a en GPUs de o ma pa alela [23].
11
18 CAP´
ITULO 4. METODOLOG´
IA
Figu a 4.3: A qui ec u a de la ama de clasi icaci´on de la RPN de SiamRPN++
[7].
Capas con ke nel ycon sea ch
El p ime paso den o de la ama de clasi icaci´on consis e en aplica un con-
jun o de ope aciones di e en es pa a el ejempla y el ´a ea de b´usqueda,
bajo el nomb e de con ke nel ycon sea ch, espec i amen e. La es uc-
u a de ambas es simila , y es ´a o mada po es ope aciones:
Una con oluci´on bidimensional. El obje i o que ienen las con oluciones
es ex ae ca ac e ´ıs icas de las im´agenes, median e la aplicaci´on de
il os de una de e minada dimensi´on y con unos pesos asociados que se
an mul iplicando po los alo es de la imagen de en ada. En es e caso, se
aplica un il o de ama˜no 3 ×3 y paso 1×1 a la en ada, sin cambia la
p o undidad de canales (es deci , siguen siendo 256).
Una no malizaci´on po lo es, que consis e en una o ma de egula izaci´on
muy usada en las edes con olucionales al pe mi i mejo a el p oceso de
ap endizaje [49].
Una unci´on de ac i aci´on, habi ual a la salida de una capa pa a ans o -
ma los esul ados. En es e caso, se emplea la unidad lineal ec i icada,
ab e iada como ReLU po el ingl´es Rec i ied Linea Uni , y que de uel e
el alo de en ada como salida siemp e y cuando es e sea posi i o, en o o
caso, di ec amen e de ol e ´a un 0 [50].
Se ponen como capas sepa adas pa a ejempla y b´usqueda dado que los pesos
asociados a las mismas pueden a ia , al ene se en adas di e en es. Adem´as, las
esoluciones de salida cambian en cada caso:
El ejempla , a la salida de con ke nel, iene una esoluci´on de 5×5×256.
Po su pa e, la imagen de b´usqueda a la salida de con sea ch, iene
una esoluci´on de 29 ×29 ×256.

4.1. SIAMRPN++ 19
Es o iene causado po el il o aplicado en la con oluci´on, que iene esoluci´on
3×3 (ancho x al o), y se a aplicando sob e la en ada en odas las posiciones
posibles. Es o, unido al hecho de que el sal o es de una unidad siemp e, lle a
a que el esul ado enga dos unidades menos en ancho y en al o. La o ma de
aplicaci´on del il o se puede obse a en la igu a 4.4, donde se pueden e dos
pasos pa a una en ada 7 ×7, il o 3 ×3 y paso de 1.
Figu a 4.4: P oceso de aplicaci´on de un il o 3 ×3 (en ama illo), con paso de 1,
sob e un mapa de ca ac e ´ıs icas (en azul) de 7 ×7 en ancho y al o. Se ob iene
(en ojo) un mapa esul an e de dimensiones 5 ×5.
Co elaci´on en p o undidad
Lo siguien e que se hace es una ope aci´on de co elaci´on c uzada, pa a
combina la in o maci´on de los dos mapas de ca ac e ´ıs icas salidos de las capas
an e io es. La ope aci´on que se p opone en es e sis ema MOT pa a es a co ela-
ci´on se llama Dep hWise C oss Co ela ion, lo que se pod ´ıa aduci como una
co elaci´on c uzada en p o undidad [7].
En ella se aplica la ope aci´on de co elaci´on canal a canal. La idea es que los
obje os de la misma ca ego ´ıa pueden esponde de la misma o ma en
los mismos canales, de o ma que as´ı se consigue una asociaci´on de in o maci´on
m´as e icien e que pe mi e educi la memo ia y el cos e a ni el de compu aci´on
necesa io [7]. Se puede consul a una desc ipci´on g ´a ica de lo que se ha comen ado
en la igu a 4.5.
Figu a 4.5: P oceso de co elaci´on c uzada en p o undidad. Imagen ob enida de
la igu a 4c de [7]
20 CAP´
ITULO 4. METODOLOG´
IA
Capa head
Pa a e mina con la RPN, se ejecu a la llamada capa head, que se pod ´ıa
aduci como la cabece a de la ed. Es ´a con o mada po a ias ope aciones
di e en es:
Una con oluci´on bidimensional, que no educe el n´ume o de canales
(lo man iene en 256), y aplica un il o 1 ×1 con paso 1 ×1. Es o quie e
deci que la salida sigue eniendo la misma esoluci´on, pe o se combina la
in o maci´on de los canales.
Una no malizaci´on po lo es.
Una unci´on de ac i aci´on, una ez m´as, la unci´on ReLU.
Finalmen e, una nue a con oluci´on, pe o que cambia el n´ume o de
canales de 256 a 2·k, aplic´andose un il o 1 ×1 con paso 1 ×1.
Conociendo las ope aciones, se puede comp oba que en es e caso la esolu-
ci´on en lo que espec a a ancho y al o no a ´ıa (sigue siendo 25 ×25, que ue lo
que sali´o de la capa de co elaci´on c uzada en p o undidad), sin emba go, cam-
bia el n´ume o de canales que, as mezcla la in o maci´on en una p ime a
con oluci´on, pasa a 2 ·k.
Di e encias en e la ama de clasi icaci´on y la de eg esi´on
La ama de clasi icaci´on y la de eg esi´on de la RPN esul an ealmen e id´en i-
cas en su es uc u a. Sin emba go, hay alguna di e encia que pe mi e gene a
los esul ados deseados en cada una de ellas. Esa di e encia se encuen a p ecisa-
men e en la capa head, conc e amen e en la ´ul ima ope aci´on que se acaba de
comen a : esa con oluci´on que pasa de 256 canales a 2 ·kpa a clasi icaci´on, pe o
que en la eg esi´on se sus i uye po una con oluci´on di e en e que pasa
de 256 a 4 ·k. E iden emen e, a la ho a de en ena la ed, los pesos que se i ´an
asociando a cada ama pod ´an se di e en es.
En la igu a 4.6 se mues a la es uc u a comple a de la RPN, ya con las
dos amas, y con las di e encias en el ama˜no del esul ado.
4.2. Mejo as p opues as sob e SiamRPN++
A con inuaci´on, se de allan las mejo as sob e SiamRPN++, que se ue on
dise˜nando e implemen ando usando una me odolog´ıa Sc um, la m´as ap opiada al
es a muchas eces condicionados po los esul ados que se iban ob eniendo.
Lo que se quie e esol e en es e abajo es algo iden i icado como p oblem´a i-
co al segui obje os: la p esencia de dis ac o es que hacen que el sis ema se
4.2. MEJORAS PROPUESTAS SOBRE SIAMRPN++ 21
Figu a 4.6: Es uc u a comple a de la RPN usada en SiamRPN++ [7], con la
ama de clasi icaci´on y eg esi´on.
con unda. Es o puede ocu i , po ejemplo, cuando una pe sona se c uza con o a,
y el sis ema comienza a segui a la o a. T a ando de ayuda en esos casos, se
busca mejo a las p es aciones de la ed.
4.2.1. P ime a ap oximaci´on: combina mapas de calo de
clasi icaci´on du an e las p uebas
En el plan eamien o de di e en es soluciones, la idea a p io i m´as sencilla
y di ec a, e i ando ealiza un en enamien o di e en e o una modi icaci´on de
la a qui ec u a, es modi ica el c´odigo de in e encia (en el que se hace el
seguimien o de obje os di e en es a los que se usa on en en enamien o), a ando
de inclui in o maci´on ela i a a los dis ac o es.
Como ya se indic´o, la ed de uel e dos elemen os: una clasi icaci´on de los
componen es de la imagen seg´un sean el obje o de in e ´es o no, y una eg esi´on
pa a ajus a el ec ´angulo delimi ado del obje o a iden i ica . La clasi icaci´on se
puede conside a que de uel e un mapa de calo con la p obabilidad de que
el obje o se encuen e en una posici´on de e minada. La p ime a p opues a de
mejo a se cen a en ac ua sob e esa pa e, y se e leja en la igu a 4.7.
Esencialmen e:
22 CAP´
ITULO 4. METODOLOG´
IA
Figu a 4.7: P opues a de mejo a sob e SiamRPN++ conside ando la clasi icaci´on
o o gada a ejemplos nega i os. El + hace e e encia al ejemplo posi i o, y −i, al
ejemplo nega i o i-´esimo.
Se conside a la clasi icaci´on ealizada pa a el obje o en seguimien o como el
ejemplo posi i o. Ese ejemplo posi i o pod ´ıa es a condicionado po la
p esencia de o os obje os, de mane a que el mapa de calo co espondien e
d´e al a p obabilidad en las posiciones de ´es os (los dis ac o es). El obje i o
es penaliza esas posiciones pa a cen a se en el posi i o.
Pa a ello, se iene en cuen a ambi´en la clasi icaci´on sob e los N dis-
ac o es m´as ce canos al obje o a segui , de mane a que se ag eguen
esos mapas de calo pa a in en a penaliza el mapa del ejemplo posi i o en
las posiciones que no co esponden con las del obje o de in e ´es: se denomi-
na ´an ejemplos nega i os. En la igu a 4.8 se e leja la idea de conside a
un ejemplo posi i o y el es o nega i os.
4.2. MEJORAS PROPUESTAS SOBRE SIAMRPN++ 23
Figu a 4.8: Ejemplos de obje os ma cados: en e de, se odea el obje o de in e ´es
(ejemplo posi i o), y en ojo, los dis ac o es (ejemplos nega i os).
A la ho a de ag ega los mapas de calo , como se indica en la igu a 4.7,
hay un p oceso al cual se ha llegado a pa i de un an´alisis de allado del c´odigo
disponible en [22], y den o del cual hay al e na i as que se pueden oma en
a ios pun os:
La p ime a pa e aplicada a cada ejemplo (la ejecuci´on de SiamRPN++,
e ique ada en la igu a 4.7 como (1)) ya se ha comen ado, conociendo po
an o el o ma o de las salidas. Adem´as, en el caso de las p uebas, se ejecu-
an una se ie de ope aciones adicionales: pa a cls, se aplica una unci´on
con e sco e que, po un lado, con ie e la p o undidad de la esolu-
ci´on de 2kak, y aplica un aplanamien o, de mane a que nos queda un
enso de una ´unica dimensi´on con 25 ·25 ·kelemen os.
La ealizaci´on de ese aplanamien o impide comp ende co ec amen e los
mapas de calo pa a cada una de las plan illas, de mane a que es necesa io
ans o ma el esul ado ob enido de con e sco e pa a que sea de
nue o mul idimensional.
Los ejemplos nega i os pueden es a si uados en di e en es posiciones del
o og ama, que no ienen que co esponde se con las egiones asociadas
al ejemplo posi i o. Pa a in e p e a los co ec amen e, lo que se p opone
es coloca los mapas de calo co espondien es al eco e de cada ejemplo
(sea posi i o o nega i o) sob e un mapa de calo que cub e la esoluci´on
comple a del o og ama (W×H). De ese modo, cada ejemplo nega i o
es a ´a en la posici´on que ealmen e le co esponde den o de la escena. As´ı
es como se llega a ene un mapa de calo de ama˜no W×H×kpa a cada
ejemplo, que se e ique a en la igu a 4.7 como (2).
Hecho odo lo an e io , p ime o se jun a la in o maci´on de los ejem-
plos nega i os. Ello se puede hace conside ando el m´aximo o la media,
po ejemplo. Con ello, se consigue un ejempla ´unico nega i o al que se le
denomina cls−((3) en la igu a 4.7).

24 CAP´
ITULO 4. METODOLOG´
IA
Luego, se une la in o maci´on del ejemplo posi i o con la combinada
de los nega i os. Como la idea es penaliza los dis ac o es del mapa
posi i o, la soluci´on m´as inmedia a puede se una es a, sin emba go, se
puede ponde a po un alo el ejemplo posi i o y po o o el
nega i o combinado, de mane a que uno pese m´as que el o o. As´ı se
llega al ejempla iden i icado como (4).
Pa a e mina , es necesa io ecupe a el o ma o ap opiado del mapa
de calo pa a pode con inua con las ope aciones desde es e pun o. Pa a
ello, hay que ene en cuen a que en con e sco e el esul ado se hab´ıa
aplanado a una dimensi´on, de mane a que se aplica una ans o maci´on
equi alen e, llegando al ejempla (5) de la igu a 4.7.
Despu´es de las ope aciones mos adas, se aplican una se ie de penalizaciones
seg´un la escala o la elaci´on de aspec o. Esas penalizaciones ambi´en se
pod ´ıan aplica a los mapas de calo de ejemplos nega i os an es de combina los.
4.2.2. Segunda ap oximaci´on: o ´aculo a pa i de las ano-
aciones
Se p opone, a a´ız de la p ueba an e io , una al e na i a ´u il pa a conoce
la e icacia de es e ipo de ap oximaciones. Se a a de di ec amen e c ea los
mapas de calo de los ejemplos nega i os, o ayuda en su de inici´on, u ilizando
las ano aciones del conjun o de da os usado en in e encia (el o ´aculo iene del
ingl´es o acle y hace e e encia al uso de esa in o maci´on, que ealmen e no se
debe ´ıa conoce du an e el es ). Si con ello no se mejo ase conside ablemen e,
es a ap oximaci´on no esul a ´ıa de ayuda pa a el obje i o pe seguido. Hay a ias
al e na i as pa a c ea el o ´aculo, que se comen an seguidamen e.
Al e na i a 1: c eaci´on de mapas nega i os
Se puede conside a la posici´on de cada uno de los ejemplos nega i os en
cada uno de los o og amas y c ea un mapa de calo que enga su pun o m´as
calien e al ededo del pun o cen al del obje o (a endiendo a su ec ´angulo).
Tambi´en se pueden plan ea dis in as opciones:
Coloca un ec ´angulo que sea p opo cional al ec ´angulo delimi-
ado , aunque en un ´a ea m´as peque˜na cen ada en el pun o medio del
delimi ado . Todo el ec ´angulo end ´ıa asociados los alo es m´as al os po-
sibles, dando al a p obabilidad al obje o de si ua se en esas posiciones.
Coloca en odo el ec ´angulo alo es que sigan una unci´on gaussiana
en dos dimensiones, siguiendo la ´o mula 4.1, omada de [51]:
(x, y) = A·exp −(x−x0)2
2·σx
+(y−y0)2
2·σy (4.1)
4.2. MEJORAS PROPUESTAS SOBRE SIAMRPN++ 25
En dicha unci´on, se oma como en ada el pun o del ec ´angulo (x, y)
eniendo como o igen la esquina supe io izquie da. A pa i de ah´ı:
•Se de ine un alo Acomo la ampli ud de la gaussiana.
•(x0, y0) son las coo denadas del pun o cen al, que es la e e encia
en la cual se es ablece ´an los alo es m´as al os del mapa de calo .
•(σx, σy) son la mi ad del ancho y al o del ec ´angulo, espec i a-
men e.
En ambos casos, la idea iene a se la que se mues a en la igu a 4.9, en la
cual se eemplaza la ejecuci´on de SiamRPN++ pa a odos los nega i os po
un bloque de c eaci´on de ese mapa de calo , el cual ya de ol e ´a di ec amen e un
mapa con el mismo o ma o ob enido en (2) a a ´es del ejemplo posi i o (es o es,
posicionado den o de la imagen comple a con ancho Wy al o H. Cabe se˜nala
ambi´en que las ope aciones se epi en pa a comple a las kplan illas de inidas.
Figu a 4.9: Aplicaci´on del o ´aculo gene ando di ec amen e los mapas de calo
nega i os.
Al e na i a 2: eco e de los mapas nega i os eales
La o a opci´on plan eada es ap o echa di ec amen e los ec ´angulos delimi-
ado es de los ejemplos nega i os y, una ez ob enido el mapa de calo nega i o
26 CAP´
ITULO 4. METODOLOG´
IA
como en la ap oximaci´on del apa ado 4.2.1, aplica un eco e sob e el mis-
mo, dejando ´unicamen e alo es no nulos en la pa e encuad ada den o del
ec ´angulo delimi ado del obje o. As´ı, se in en a cen a el mapa de calo
en el ejemplo nega i o.
La idea en cues i´on a aplica pa e de la base de la igu a 4.7, solo que aho a el
mapa de calo que se ob iene en (2) se uel e a modi ica aplicando es a ope aci´on
de eco e que se ejempli ica en la igu a 4.10, en la cual:
En (1) se iene un mapa de calo de un ejemplo nega i o en una imagen
alea o ia. En neg o, se ma ca el ec ´angulo delimi ado de dicho ejemplo.
La ans o maci´on a aplica pe mi e llega a (2), donde la ´unica pa e del
mapa de calo que se man iene igual es la si uada den o del ec ´angulo.
Figu a 4.10: Ejemplo de aplicaci´on de la ans o maci´on del mapa de calo e-
niendo en cuen a el ec ´angulo delimi ado de un obje o. Los alo es m´as al os
se co esponden con los colo es m´as c´alidos ( ojo), mien as que los m´as bajos se
asocian a los colo es ´ıos (azul).
4.2.3. Te ce a ap oximaci´on: modi icaci´on de la a qui ec-
u a
La p opues a m´as p ome edo a equie e modi ica la a qui ec u a de
SiamRPN++, y su idea de pa ida se e leja en la igu a 4.11.
Se busca que la p opia ed sea capaz de ap ende las elaciones en e los dis-
in os obje os en la escena. As´ı, los ejemplos nega i os se ´an p ocesados en
pa alelo e in lui ´an en la p edicci´on del posi i o. Los nega i os solamen e
se end ´an en cuen a a ni el de ejempla es (es deci , el ´a ea de b´usqueda se
ex ae ´a solamen e pa a el ejemplo posi i o, y el ejempla pa a odos).
Siguiendo el p oceso de la igu a 4.11, se ienen seleccionados Bejempla es y
´a eas de b´usqueda posi i os (B po el ama˜no de lo e, ya desc i o en el apa ado
4.1.1). Esos Belemen os se combinan en un ´unico enso con cua o dimensiones.
4.2. MEJORAS PROPUESTAS SOBRE SIAMRPN++ 27
Figu a 4.11: Idea b´asica de la e ce a ap oximaci´on.
Adem´as, se seleccionan alea o iamen e1N ejempla es nega i os po cada
posi i o. Los ejemplos nega i os se combinan jun o al posi i o po la dimensi´on
del ama˜no del lo e, de mane a que la dimensi´on esul a en (N+1)B×7×7×256.
Pa a odo ello ya se hab ´a aplicado el ex ac o de ca ac e ´ıs icas.
En la RPN seg´un la igu a 4.11, pa a cada ama, se ienen odas las capas
ya comen adas (lo que se denomina ´a la pa e base). La ´unica di e encia a
p io i es ´a en la capa head, de la cual se qui a la ´ul ima ope aci´on (de ah´ı
que se denomine head 1). Una ez comple adas esas capas, se a˜naden las
modi icaciones de la a qui ec u a (la pa e nue a), donde se combina ´an
los ejempla es. As´ı, se dejan las modi icaciones pa a el inal de la ed, lo que
pe mi e deja congelada la pa e base du an e el en enamien o (es deci , no se
modi ica ´an sus pesos, usando unos alo es p een enados). Es o pe mi e acele a
los en enamien os y consegui an es esul ados pa a i ex ayendo conclusiones.
Un apun e sob e la co elaci´on en p o undidad en e el ejempla y el ´a ea
de b´usqueda: al habe conca enado odos los ejemplos nega i os con el posi i o,
la p ime a dimensi´on es di e en e ((N+ 1)B×5×5×256 en el ejempla y
B×29 ×29 ×256 en el ´a ea de b´usqueda) y es necesa io que sea igual. Pa a ello,
se conca ena consigo mismo el ´a ea de b´usqueda N+1 eces.
1S´olo al en ena . En el es no se ha ´a as´ı: se oma ´an los m´as ce canos como en las o as
ap oximaciones.
34 CAP´
ITULO 5. PRUEBAS
usa el conjun o de en enamien o como conjun o de es . Los ´ıdeos
p esen es en es e conjun o se mues an en la abla 5.1.
Nomb e Resoluci´on N´ume o de o og amas Densidad
MOT17-02 1920x1080 600 31.0
MOT17-04 1920x1080 1050 45.3
MOT17-05 640x480 837 8.3
MOT17-09 1920x1080 525 10.1
MOT17-10 1920x1080 654 19.6
MOT17-11 1920x1080 900 10.5
MOT17-13 1920x1080 750 15.5
Tabla 5.1: Desc ipci´on de los ´ıdeos disponibles en el conjun o de en enamien o
de MOT17 [55]. Se mues a la esoluci´on del ´ıdeo, la longi ud en cuan o al
n´ume o de o og amas y la densidad media de pe sonas po o og ama.
MOT2020
El conjun o de da os o ecido como pa e del desa ´ıo MOTChallenge del a˜no
2020 iene ocho secuencias de ´ıdeo, a pa i de es escenas en las cuales
hay una g an can idad de pe sonas (has a 256 pe sonas po o og ama).
Tal y como ocu e en el conjun o de da os del MOTChallenge de 2017, se
dispone de dos pa iciones, aunque no se usan odas las escenas en ambos:
Un conjun o de en enamien o, o mado po cua o ´ıdeos de dos de
las es escenas u ilizadas en es e desa ´ıo.
Un conjun o de es , el cual iene un ´ıdeo po cada una de las dos
p ime as escenas (que ambi´en o man pa e del en enamien o), y o os
dos que se si ´uan en una escena comple amen e di e en e, lo que se hace
pa a e alua la posibilidad de gene alizaci´on de los sis emas.
De nue o, se uel e a abaja exclusi amen e con el conjun o de en enamien-
o po el mismo mo i o que en MOT17. Pe o adem´as, con MOT20 ambi´en se
quie en hace en enamien os, po lo que se hace algo habi ual cuando se quie en
hace p uebas sin el conjun o de es , que es di idi el de en enamien o en
dos: una mi ad de en enamien o y o a de es . Se mues an de alles del conjun o
comple o que se emple´o en la abla 5.2.
Se puede obse a el aumen o en la densidad de pe sonas comen ado p e ia-
men e: el ´ıdeo de MOT17 que m´as densidad p esen a po o og ama es MOT17-
04 con 45.3, que es supe ado po odos los ´ıdeos usados en MOT20. Es e

5.1. DISE ˜
NO DE LOS EXPERIMENTOS 35
Nomb e Resoluci´on N´ume o de o og amas Densidad
MOT20-01 1920x1080 429 46.32
MOT20-01 1920x1080 2782 55.62
MOT20-02 1173x880 2405 130.42
MOT20-03 1654x1080 3315 194.98
Tabla 5.2: Desc ipci´on de los cua o ´ıdeos disponibles en el conjun o de en e-
namien o de MOT20.
ipo de di e encias hacen que es e ´ul imo conjun o esul e especialmen e a ac i o
pa a e alua en ´el los esul ados.
Pa a hace la pa ici´on del conjun o, se di ide cada ´ıdeo en dos, al y
como se hace en la g an mayo ´ıa de publicaciones que abajan sob e el MOT20:
La p ime a mi ad de o og amas se usa ´ın eg amen e pa a el conjun o
de en enamien o.
La segunda, se emplea pa a gene a el conjun o de es .
5.1.2. Adap aci´on de MOT a SOT
Hay que ene en cuen a que los sis emas SOT como los incluidos en py-
SOT es ´an p epa ados pa a se p obados en conjun os de da os comple amen e
di e en es, admi iendo un o ma o de da os espec´ı ico.
En el caso de los conjun os de MOT, se dispone de dos iche os de ex o: un
iche o de de ecci´on con in o maci´on que se e ie e exclusi amen e a los obje os
p esen es en cada o og ama del ´ıdeo, y un iche o de ano aciones (llamado
ambi´en g ound u h en ingl´es), en el cual ya se in o ma, adem´as de la posici´on
de cada uno de los obje os en cada o og ama, de la ayec o ia a la que pe enece
(con un iden i icado ´unico) [6].
A la en ada de pySOT, se necesi an o ma os di e en es que adem´as a ´ıan
pa a en enamien o y es . A con inuaci´on se p opo cionan algunos de alles.
Adap aci´on de los conjun os de da os pa a es
En el caso de las in e encias se equie e un iche o que enga un o ma o
JSON, y que con enga la siguien e in o maci´on pa a cada ´ıdeo del conjun o
(se en iende que cada ´ıdeo incluye un ´unico obje o a segui ):
ideo di : es el nomb e que ca ac e iza a cada ´ıdeo.
ini ec : son las coo denadas del ec ´angulo delimi ado en el que
se encuen a el obje o du an e el p ime o og ama. En p incipio, hay dos
36 CAP´
ITULO 5. PRUEBAS
o ma os ´alidos: con 8 coo denadas (indicando odas las esquinas) y con 4
(indicando la esquina supe io izquie da y el ancho y al o).
img names: una lis a de nomb es de los iche os de imagen del ´ıdeo.
g ec : es una lis a con odos los ec ´angulos delimi ado es del
obje o que se desea segui du an e odos los o og amas del ´ıdeo.
came a mo ion,illum change,mo ion change,size change y
occlusion: son a iables usadas a ni el es ad´ıs ico, elacionadas con
mo imien os de la c´ama a, iluminaci´on, cambios de ama˜no u oclusiones.
No son ele an es pa a las p uebas po lo que se pueden deja a ce o.
Adem´as, se asocia una e ique a que iden i ica al ejemplo (puede coincidi
con ideo di o no) como una secuencia espec´ı ica de o og amas en las que se
sigue un obje o. En MOT, hay a ios obje os po o og ama simul ´aneamen e,
po lo que se siguen es os pasos:
1. Selecciona , de cada uno de los ´ıdeos del conjun o co espondien e, una
se ie de obje os p esen es en ellos.
2. Elabo a un sc ip que gene e, a pa i de los da os de cada conjun o de
en enamien o, el iche o JSON con la in o maci´on comen ada p e iamen e
pa a cada uno de los ´ıdeos. Cada ejemplo se e ique ´o como exA, donde Aes
un n´ume o que inicia en 1 y acaba en el n´ume o de ejemplos seleccionados.
3. Cada en ada del iche o JSON iene asociada un ideo di que es el
nomb e del ´ıdeo, po lo que se ´a necesa io c ea la es uc u a de ca -
pe as pa a que se pueda hace e e encia a ellos co ec amen e.
Du an e los p ime os expe imen os, esul ´o in e esan e ecu i a MOT17 y
aMOT20, de mane a que se hizo una adap aci´on de algunas ayec o ias de los
´ıdeos de cada conjun o pa a hace p uebas a iadas con ellos. En la abla 5.3 se
indica a pa i de qu´e ´ıdeos y ayec o ias se han o mado los conjun os.
Adap aci´on de los conjun os de da os pa a en enamien o
En el caso del en enamien o el o ma o de da os seguido es algo di e-
en e. Tambi´en se iene un iche o JSON pe o aho a s´ı es posible coloca den o
de cada ´ıdeo a ias ayec o ias dis in as. El o ma o a segui se ´ıa el siguien e:
Una en ada po cada uno de los ´ıdeos, que end ´ıa e ique ada po
el nomb e asociado al ´ıdeo. Ej: MOT20-02.
Den o del an e io , una en ada po cada ayec o ia conside ada den-
o del ´ıdeo, que i ´a e ique ada po un iden i icado .
5.1. DISE ˜
NO DE LOS EXPERIMENTOS 37
MOT17 MOT20
ideo di Nomb e ´ıdeo ID T ayec o ia Nomb e ´ıdeo ID T ayec o ia
ex1 MOT17-02-FRCNN 31 MOT20-01 49
ex2 MOT17-02-FRCNN 72 MOT20-01 64
ex3 MOT17-04-FRCNN 68 MOT20-02 187
ex4 MOT17-04-FRCNN 83 MOT20-02 100
ex5 MOT17-04-FRCNN 89 MOT20-02 68
ex6 MOT17-04-FRCNN 92 MOT20-03 586
ex7 MOT17-09-FRCNN 21 MOT20-03 617
ex8 MOT17-10-FRCNN 26 MOT20-03 143
ex9 MOT17-10-FRCNN 18 MOT20-05 469
ex10 MOT17-10-FRCNN 12 MOT20-05 514
Tabla 5.3: Selecci´on de ´ıdeos y ayec o ias pa a los ejemplos que se emplean
como es a pa i de los conjun os de en enamien o de MOT17 y MOT20.
Finalmen e, den o de cada ayec o ia, una en ada po cada o og a-
ma, e ique ada con el n´ume o de o og ama en el que es ´a p esen e y con
el alo de las coo denadas del ec ´angulo delimi ado que las con o ma.
Po ejemplo: {"MOT20-02": {"1": {"000722": [546.0, 251.0,
614.0, 396.0]}implica que el ´ıdeo bajo el nomb e de MOT20-02 iene una
ayec o ia con iden i icado 1 que inicia en el o og ama 722 en la posici´on da-
da po el ec ´angulo [546.0, 251.0, 614.0, 396.0]. Las coo denadas del ec ´angulo
ienen dadas po dos pun os, el de la esquina supe io izquie da y el de
la in e io de echa (as´ı se p ocesan en en enamien o).
A la ho a de en ena , las im´agenes de los conjun os de da os son eco adas
a ama˜no 511x511, de mane a que en el cen o de las mismas se si ´ue el
obje o a segui du an e el en enamien o.
5.1.3. M´e icas usadas
Dado que SiamRPN++ es un sis ema SOT, en nues o caso in eg ado en
un sis ema MOT, las m´e icas a u iliza es a ´an elacionadas con SOT, pudiendo
calcula se adem´as a a ´es de pySOT.
P ecisi´on de seguimien o (accu acy)
Es la medida en la que las posiciones del obje o p opo cionadas po el sis ema
se co esponden con las posiciones eales en las que el obje o se si ´ua. Pa a ello, se
mide el solape en e los ec ´angulos delimi ado es de las ano aciones (es o es,
los que se debe ´ıan de ec a idealmen e) y los que se p edicen [56], emple´andose
una medida llamada la in e secci´on sob e la uni´on (ab e iada como IoU).
38 CAP´
ITULO 5. PRUEBAS
Conside emos dos ec ´angulos delimi ado es pa a el ins an e , el ideal RIy
el p edicho RP. La IoU en e es os dos ec ´angulos Φ(RI, RP) se calcula como:
Φ(RI, RP) = (ARI
∩ARP
ARI
∪ARP
)N
=1
(5.1)
Siendo ARI
el ´a ea del ec ´angulo eal del obje o de in e ´es en el ins an e y
ARP
el ´a ea del ec ´angulo p edicho en el ins an e [56].
En la igu a 5.1 se mues a cada uno de los elemen os in e esan es de la ´o mula
an e io : el ´a ea de cada ec ´angulo, la in e secci´on y la uni´on. Φ pod ´a oma
un alo en e 0 y 1, de mane a que si Φ = 0, el solape se ´a inexis en e en e los
dos ec ´angulos, mien as que si Φ = 1 dicho solape se ´a pe ec o, de mane a que
los dos ec ´angulos coincidi ´an (es deci , la p edicci´on se ajus a pe ec amen e al
caso ideal). Po lo an o, in e esa alcanza un alo lo m´as al o posible.
Figu a 5.1: Desc ipci´on de la in e secci´on sob e la uni´on de dos ec ´angulos deli-
mi ado es sob e un obje o de ejemplo. De izquie da a de echa: ´a eas de cada uno
de los ec ´angulos po sepa ado, ´a ea de la in e secci´on y ´a ea de la uni´on.
Robus ez ( obus ness)
Es una medida de lo bien que se sigue el obje o, con ando el n´ume o de
eces que el sis ema all´o y u o que se einicializado [56]. Un allo hace
e e encia a una si uaci´on en la cual el sis ema deja de segui co ec amen e al
obje o. Pa a ello, se u iliza la ´o mula de la in e secci´on sob e la uni´on y un
umb al ϵ, de mane a que, si se cumple que Φ(RI, RP)< ϵ, se iden i ica un allo.
Al ocu i , el sis ema se einicializa con las ano aciones del o og ama ac ual.
En es e caso, la m´e ica se hace mayo cuan as m´as eces se pie de la
ayec o ia, po lo que lo que in e esa en es e caso es que es e alo sea lo m´as
bajo posible.
5.1.4. Plan de p uebas
Dado que enemos es p opues as de mejo as di e en es y un modelo de pa -
ida, se han p epa ado cua o g andes expe imen os o p uebas, cada uno
5.1. DISE ˜
NO DE LOS EXPERIMENTOS 39
de los cuales a su ez se compone de a ios casos de p ueba que se desc iben en
los apa ados pos e io es. Los esul ados se analiza on de a ias o mas:
A ni el de las m´e icas comen adas, pa a comp oba la calidad ob enida
po el modelo, y la compa a i a, si p ocede, con o os esul ados ob enidos.
T as un an´alisis g ´a ico: pa a las p uebas m´as in e esan es, se gene a on
im´agenes incluyendo in o maci´on ´u il como la de la igu a 5.2.
(a) (b) (c)
(d) (e) ( )
Figu a 5.2: Ejemplos de isualizaciones. (a), (b) y (c) son mapas de calo del ejem-
plo posi i o, nega i os y la di e encia, espec i amen e, sob e la imagen comple a.
(d), (e) y ( ) ep esen an lo mismo, eco ado al ´a ea ce cana al posi i o.
Compa ando los esul ados en una l´ınea empo al: ob enidos los esul a-
dos de dos p uebas di e en es, se hizo un sc ip que pe mi e gene a l´ıneas
empo ales pa a compa a los. Se p opo ciona un ejemplo en la igu a 5.3.
Figu a 5.3: Ejemplo de l´ınea empo al. Las dos p ime as ilas ep esen an la p eci-
si´on de dos p uebas, usando colo es pa a ep esen a la p ecisi´on de mejo a peo :
e de cla o, e de oscu o, ojo, neg o y blanco (p´e dida). La e ce a ila mues a
la di e encia de la p ime a p ueba espec o de la segunda, usando los mismos
colo es pe o asociando los e des a mejo as, el ojo y el neg o a empeo amien o
y el blanco a igualdad.

40 CAP´
ITULO 5. PRUEBAS
5.2. Expe imen o 1: P ueba base y an´alisis de
p oblemas
En p ime luga , se ealiza on unas p uebas sin hace ninguna modi icaci´on.
As´ı se analiza on los esul ados que son la e e encia pa a el es o de expe imen os
y se isualiza on posibles p oblemas. Es e expe imen o se ha compues o de dos
casos de p ueba: uno omando como e e encia la adap aci´on de MOT17 y
o o con la adap aci´on de MOT20 (ambas desc i as en la abla 5.3). En la
abla 5.4 se mues an los esul ados.
P ecisi´on ↑Robus ez ↓
MOT2017 0.743 0.586
MOT2020 0.611 0.971
Tabla 5.4: Resul ados base pa a SiamRPN++ sin ninguna modi icaci´on, usando
las adap aciones de conjun os de da os de MOT2017 y MOT2020 a SOT.
Se obse a la di e encia de complejidad en e los dos desa ´ıos. Hay m´as de
una d´ecima de di e encia en la p ecisi´on en e el conjun o seleccionado a pa i
de MOT2017 y a pa i de MOT2020. En es e ´ul imo, adem´as, se pie de m´as eces
el obje o. Es o, e iden emen e, pe mi e comp oba que se hace m´as in e esan e
oma como e e encia el segundo desa ´ıo. Pa a el caso de MOT17 ya se llega a
0.74 de p ecisi´on, habiendo mayo ma gen de mejo a pa a MOT20.
Una ez consul adas las m´e icas, se quiso p o undiza p ocediendo a la i-
sualizaci´on de los ejemplos, o og ama a o og ama, compa ando el ec ´angulo
delimi ado p edicho con el que se debe ´ıa de ob ene .
Con ello, se encuen a uno de los p oblemas que es en el que se en oca es e
abajo en mejo a : la p´e dida de la ayec o ia de las pe sonas al c uza se con
o as. Po ejemplo, en la igu a 5.4 se mues a un o og ama en el cual el obje o
de in e ´es se a siguiendo mal po que hay o o ce cano con el que el sis ema
se con unde. Es e hecho en o og amas pos e io es acaba conduciendo a que se
pie da la ayec o ia del obje o, lo que se epi e en muchas ocasiones.
5.3. Expe imen o 2: mapas de calo nega i os
Es e segundo expe imen o aplica la p ime a mejo a p opues a, es deci , pe-
naliza du an e el seguimien o del obje o su mapa de calo con los mapas de los
dis ac o es. Pa a ello, se han de inido a ios casos de p ueba, haciendo peque˜nas
a iaciones sob e lo desc i o en el apa ado 4.2.1. Conc e amen e:
La a iaci´on b´asica: combina los mapas nega i os usando el m´aximo de
e e encia y penaliz´andolos sob e el posi i o median e una es a no mal.
5.3. EXPERIMENTO 2: MAPAS DE CALOR NEGATIVOS 41
Figu a 5.4: Ejemplo de mal seguimien o de la ayec o ia de un obje o en el
ejemplo ex10 pa a la adap aci´on de MOT2020 seg´un la abla 5.3. En e de
apa ece el ec ´angulo que debe ´ıa p edeci el sis ema, mien as que en ama illo
apa ece el que ealmen e es ´a p ediciendo.
Igual que el caso an e io , pe o no malizando el esul ado. Se p e ende
comp oba si ayuda que se ealice una no malizaci´on min-max lle ando
el alo m´ınimo a un 0 y el m´aximo a un 1, dado que se comp ob´o que el
mapa de calo posi i o base ambi´en se mue e en e esos alo es (y al hace
una es a puede ocu i que no sea as´ı).
Aplica penalizaci´on sob e nega i os: as ecupe a la clasi icaci´on y
la eg esi´on, no malmen e se aplica una penalizaci´on sob e ambas. En el ca-
so del mapa de calo nega i o (s´olo pa a la clasi icaci´on), dicha penalizaci´on
no se con emplaba, pe o se p ueba ambi´en a inclui la.
Penalizaci´on y no malizaci´on: de o ma simila al caso an e io , pe o
in oduciendo ambi´en una no malizaci´on en e 0 y 1 as la es a.
En es e expe imen o, se ecu i´o al conjun o adap ado de MOT17. Po lo
dem´as, se u o que decidi cu´an os ejemplos nega i os conside a pa a la uni´on
con el posi i o: se escogi´o un o al de 10, pues supone un buen equilib io en e
p ecisi´on y cos e compu acional.
La abla 5.5 mues a los esul ados ob enidos, compa ´andolos con la p ueba
base ex a´ıda en el p ime expe imen o.
Se pueden ex ae di e en es conclusiones de es os esul ados. Pa a empeza ,
en lo que espec a a la p ecisi´on, ning´un modelo consigue mejo a . Todos
quedan po debajo del alo ob enido en la p ueba base, habiendo eso s´ı algunas
42 CAP´
ITULO 5. PRUEBAS
P ueba P ecisi´on ↑Robus ez ↓
Base 0.743 0.586
Va iaci´on b´asica 0.672 0.603
No malizaci´on 0-1 0.683 0.519
Penalizaci´on sob e nega i os 0.635 0.636
Penalizaci´on nega i os
y no malizaci´on 0.718 0.569
Tabla 5.5: Resul ados de los casos de p ueba del expe imen o 2.
di e encias en e ellos: la no malizaci´on ayuda a mejo a la p ecisi´on las dos oca-
siones en las que se aplica, eniendo el mejo esul ado sin con a la p ueba base
en 0.718 cuando se penalizan los ejemplos nega i os.
En cuan o a la obus ez, s´ı hay alguna mejo a. El mejo esul ado ob enido
es en la p ueba de la no malizaci´on 0-1 a pa i de la a iaci´on b´asica, bajando
a 0.519 en e al 0.586 de la p ueba base. Tambi´en en la o a p ueba en la que
se no maliza (en es e caso con la penalizaci´on sob e los mapas nega i os), se
consigue baja , algo menos, has a 0.569.
Con es as a ian es no se ha log ado una mejo a cla a en la p ecisi´on y
la obus ez es a iable, educi´endose en alg´un caso pe o ambi´en aumen ando.
5.4. Expe imen o 3: o ´aculos
En el expe imen o an e io se conside a on e incluso se llega on a implemen a
m´as a ian es, pe o an es de p oba las, se concluy´o que lo mejo es usa el o ´aculo,
dado que si con ´el no se consiguiese mejo a , se ´ıa indicado de que es a
ap oximaci´on no es su icien e. Se elabo an dos casos de p ueba po cada
opci´on plan eada en el apa ado 4.2.2:
C eando mapas nega i os con un ec ´angulo p opo cional al delimi ado .
C eando mapas nega i os siguiendo una gaussiana bidimensional.
Reco ando los mapas nega i os po el delimi ado de cada ejemplo.
Pa a cada opci´on de las an e io es, se p ob´o a a ia o o pa ´ame o que es ´a
elacionado con la o ma de uni´on con el ejemplo posi i o y el nega i o. Se
p ob´o an o una es a di ec a como a penaliza los nega i os la mi ad, de mane a
que mapa inal =mapa posi i o −0,5∗suma nega i os, y se man u o el uso
de 10 ejemplos nega i os. La abla 5.1 ecoge los esul ados pa a MOT17.
Los esul ados de dicha abla no e lejan demasiadas mejo as en p e-
cisi´on. Solamen e se consigue mejo a a la p ueba base del p ime expe imen o
5.4. EXPERIMENTO 3: OR ´
ACULOS 43
P ueba P ecisi´on ↑Robus ez ↓
Base 0.743 0.586
C eando mapas nega i os
como ec ´angulos
P - N 0.715 0.619
P - N/2 0.719 0.619
C eando mapas nega i os
siguiendo gaussiana
P - N 0.722 0.586
P - N/2 0.750 0.619
Reco ando nega i os
po ec ´angulo delimi ado
P - N 0.721 0.870
P - N/2 0.736 0.552
Tabla 5.6: Resul ados de los casos de p ueba del expe imen o 3 sob e el conjun o
de da os adap ado de MOT2017. P - N hace e e encia a la p ueba haciendo la
es a di ec a del ejemplo posi i o y la uni´on de nega i os, mien as que P - N/2
hace e e encia a la p ueba haciendo que la uni´on de nega i os penalice la mi ad.
en un caso: 0.750 pa a la p ueba c eando mapas nega i os siguiendo una gaus-
siana y haciendo que penalicen los nega i os la mi ad. Pasa lo mismo con la
obus ez: solo mejo a en una p ueba, eco ando nega i os po el delimi ado y
penalizando la mi ad.
Tambi´en se han hecho las p uebas sob e el conjun o adap ado de MOT20.
En la abla 5.7 se ecogen es os nue os esul ados.
P ueba P ecisi´on ↑Robus ez ↓
Base 0.611 0.971
C eando mapas nega i os
como ec ´angulos
P - N 0.642 0.949
P - N/2 0.643 0.993
C eando mapas nega i os
siguiendo gaussiana
P - N 0.633 0.949
P - N/2 0.582 0.927
Reco ando nega i os
po ec ´angulo delimi ado
P - N 0.622 1.545
P - N/2 0.635 1.015
Tabla 5.7: Resul ados de los casos de p ueba del expe imen o 3 sob e el conjun o
de da os adap ado de MOT2020.
En es e caso, hay alguna mejo a m´as espec o a la p ueba base, an o
en p ecisi´on como a ni el de p´e didas. Sin emba go, la mejo a es peque˜na y se
debe a que se es ´a usando la mejo in o maci´on posible, la de las ano aciones, que
debe ´ıan se usadas solamen e pa a e i ica los esul ados, no como en ada: en
un caso ealis a, hab ´ıa que ecu i a es a egias como las del expe imen o 2 y
que, como ya se indic´o, no daban esul ados del odo buenos.
Adem´as, se p ob´o a hace compa a i as con los modelos base usando l´ıneas
empo ales y isualizando los mapas de calo , pa a a a de en ende po qu´e se
50 CAP´
ITULO 7. CONCLUSIONES Y POSIBLES AMPLIACIONES
conjun os de da os del p oblema del MOT. Adem´as, dichos en enamien os solo
usaban como e e encia 3 ejempla es nega i os, pe o se pod ´ıa p oba a aumen a
ese n´ume o. Finalmen e, ambi´en se han iden i icado ´a eas de mejo a adicionales,
como la inicializaci´on del obje o a segui y si uaciones en las que es ´a en ando
o saliendo de la escena, que pod ´ıan mejo a a´un m´as los esul ados.
Un abajo u u o pod ´ıa es a encaminado p ecisamen e a p o undiza m´as
en alguna de las cues iones que se acaban de comen a . Adicionalmen e, y al y
como se p opuso en el apa ado 1.1, es e sis ema SOT pod ´ıa o ma pa e de
un sis ema MOT m´as comple o, po lo que o a ampliaci´on pod ´ıa consis i en
a a de log a esa in eg aci´on que, con las posibles mejo as es udiadas en es e
TFG, es p ome edo a.

Ap´endice A
Manual T´ecnico
Es e manual ´ecnico se elabo a con el p op´osi o de p esen a pa e del c´odigo
uen e usado y algunas modi icaciones hechas, de modo que si a de ayuda pa a
comp ende su es uc u a y acili a a o a pe sona que quie a modi ica el c´odigo
su labo .
A.1. C´odigo uen e
Como ya se ha comen ado en ocasiones an e io es, se ha pa ido del c´odigo
disponible en el Gi Hub del so wa e pySOT [22], ealizando modi icaciones pa a
inclui la implemen aci´on de odas las mejo as necesa ias.
Pe o no s´olo se ha dedicado la implemen aci´on a esa pa e. Se han enido que
i elabo ando algunos sc ip s m´as, con el p op´osi o de hace algunas ope aciones
adicionales que, como se ha ido desa ollando a lo la go de es a memo ia, se
ue on haciendo necesa ias.
Como complemen o a es a memo ia, se en ega odo el c´odigo desa o-
llado en una ca pe a compa ida de la he amien a Mic oso OneD i e. Si
se accede, se pod ´an obse a una se ie de ca pe as de in e ´es, que ambi´en se
mues an en o ma de ´a bol de di ec o ios en la igu a A.1:
Con e so MOT17 MOT20 VOT: en ella se incluyen sc ip s de Py hon
c eados manualmen e en los cuales se hacen di e sas ope aciones de con-
e si´on de los conjun os de da os MOT a o ma os ´alidos en SOT pa a
en enamien o y es , al es ilo de lo comen ado en la memo ia. Se han ido
c eando a ios sc ip s:
•d awGT.py: se c e´o con el p op´osi o de, omando como e e encia un
´ıdeo o un conjun o de da os comple o (lo que se cambia po pa ´ame-
os o ajus ando la a iable da ase olde den o del c´odigo), di-
buja sob e ´el odos los ec ´angulos delimi ado es acompa˜nados
de los iden i icado es de ayec o ias. De es e modo, esul ´o ´u il pa a
51
52 AP´
ENDICE A. MANUAL T ´
ECNICO
Figu a A.1: Es uc u a con las ca pe as p incipales empleadas du an e el desa-
ollo de es e TFG.
selecciona las ayec o ias que se iban a u iliza en el conjun o de
p uebas.
•con e MOT17 oVOT JSON.py y el con e MOT20 oVOT
JSON.py: ue on los p ime os sc ip s desa ollados pa a, a pa i de
MOT17 o MOT20, selecciona una se ie de ayec o ias de cada ´ıdeo,
y con ellas c ea un iche o JSON adap ado pa a se usado en
pySOT. Es a ap oximaci´on se man u o pa a MOT17, dado que so-
lamen e se emple´o el conjun o de en enamien o en p uebas, pe o en
MOT20, dado que se dej´o una pa e pa a en ena y o a pa a p oba ,
esul ´o insu icien e.
•con e MOT20 oFullVOT json.py: es un sc ip que hace una
adap aci´on del conjun o comple o de MOT20 a un o ma o JSON
pa a se usado en un en enamien o de pySOT. Adem´as, se ap o-
ech´o pa a pa i los ´ıdeos en dos mi ades, c e´andose po an o dos
iche os: uno con los da os de en enamien o (MOT20 ain.json),
y o o con los que se pueden usa pa a es (MOT20 es .json)
con o me a lo comen ado en el apa ado 5.1.2.
•MOT20 i ems picke .py: es e ´ul imo sc ip pe mi e, a pa i del i-
che o que gene a el sc ip an e io llamado MOT20 es .json,c ea
un JSON pa a las p uebas del es ilo de los gene ados po el sc ip
con e MOT17 oVOT JSON.py, pe o usando como e e encia ´uni-
camen e la mi ad del conjun o de en enamien o de MOT20 que de-
A.1. C ´
ODIGO FUENTE 53
dicamos a es . De aqu´ı s´ı salen las ayec o ias de ini i amen e
seleccionadas pa a in e encias con MOT20.
Compa ado : den o de es a ca pe a se iene un sc ip compa a.py que
pe mi e, pasando dos ca pe as de esul ados de dos p uebas di e en es sob e
el mismo conjun o, c ea una compa a i a isual en o ma de l´ıneas
empo ales. Se ob iene como esul ado una imagen po cada ´ıdeo, o mada
po es componen es:
•Una l´ınea empo al ep esen ando la p ecisi´on ob enida du an e el se-
guimien o en la p ime a p ueba.
•Una l´ınea empo al ep esen ando la p ecisi´on ob enida du an e el se-
guimien o en la segunda p ueba.
•Una l´ınea empo al en la que se mues a d´onde la p ime a p ueba
mejo a o empeo a espec o de la segunda.
De es e modo, lo habi ual es que en la p ime a p ueba se coloque un modelo
en el que se p opone alguna mejo a, mien as que en la segunda se coloque
el modelo base con ese conjun o de da os, as´ı se puede e a qu´e ayudan
las mejo as. Se han usado c´odigos de colo es que sean simples de en ende ,
asociando el e de a algo posi i o (ya sea buen seguimien o o mejo a
espec o del modelo base), y colo es ojos o m´as oscu os a algo nega i o
(mal seguimien o o empeo amien o espec o del modelo base).
En la igu a A.2, se puede comp oba el ipo de esul ados que se ob ienen:
ese ejemplo conc e o mejo a jus o al inal los esul ados espec o del modelo
base, po que aguan a sin deja de segui al obje o y con una mejo p ecisi´on.
Figu a A.2: Ejemplo de salida del sc ip de compa aci´on pa a uno de los ejemplos
de p uebas de MOT20 (en es e caso, el ex6, pa a la p ueba del o ´aculo con la
gaussiana espec o del modelo base).
pyso -mas e : es el di ec o io que con iene odo el c´odigo de pySOT,
pe o con las modi icaciones que se han ido aplicando a lo la go de es e
54 AP´
ENDICE A. MANUAL T ´
ECNICO
TFG. Se puede comp oba que hay iche os que ienen c´odigo di e en e, as´ı
como o os comple amen e nue os. Adem´as, en la igu a A.1, se obse an
una g an can idad de di ec o ios den o de ´es e. Hay algunos que con iene
esal a , dado que se ´a impo an e conoce su con enido de ca a a posibles
modi icaciones:
•demo: iene un ejemplo de ´ıdeo pa a el cual se p ob´o a hace un
seguimien o.
•Docke : se c e´o pa a con ene el Docke ile que se us´o en los se -
ido es de compu aci´on pa a c ea una imagen y, a pa i de ella,
con enedo es Docke .
•expe imen s: en ella se end ´an an as subca pe as como se deseen
(en la e si´on compa ida se p opo cionan dos ca pe as que esul an
su icien es pa a, a pa i de ellas, eplica las p uebas). Cada una,
se co esponde ´a con un expe imen o. Den o de cada expe imen o,
esul a undamen al dispone de:
◦con ig.yaml: es un iche o de con igu aci´on p opio del ex-
pe imen o. En ´el se pueden es ablece di e en es pa ´ame os de
con igu aci´on pa a ese expe imen o conc e o.
◦Cuando se quie an hace p uebas, adem´as, se ´a necesa io dispone
de odos los ´ıdeos cuyas e ique as apa ecen p esen es en odos
los campos ideo di incluidos en el iche o JSON co espon-
dien e al conjun o de da os que se aya a usa .
◦Adicionalmen e, cuando se quie an usa unos pesos ya en ena-
dos, con iene almacena en es e di ec o io ambi´en el iche o con
o ma o .p h que con enga dichos pesos.
•p e ained models: con iene iche os con pesos de modelos que se
hayan p een enado. En es e caso, se incluye el modelo de ResNe
que se usa en SiamRPN++.
•pyso : den o de ´el, hay a ias subca pe as con a ios ipos de iche os.
◦co e: con iene, en e o os iche os, con ig.py, que es muy im-
po an e al es a de inidos en ´el odos los pa ´ame os que se
pueden modi ica a pos e io i en los con ig.yaml den o de ca-
da expe imen o.
◦da ase s: con iene iche os de c´odigo uen e pa a la con igu aci´on
de los conjun os de da os al ca ga los.
◦models: es un di ec o io impo an e, en el que hay subdi ec o ios
con iche os de c´odigo uen e en los que se de ine la a qui ec u a
que usa la ed po de ´as.
A.2. MODIFICACI ´
ON SOBRE PYSOT 55
◦ acke : con iene los iche os de los di e en es sis emas de segui-
mien o implemen ados en pySOT (y a iaciones a˜nadidas pa a
las implemen aciones hechas en es e abajo).
• es ing da ase : en es e di ec o io an los conjun os de da os usados
pa a p uebas. Realmen e, dado que, como se comen ´o, es en la ca pe a
del expe imen o donde ienen que i los ´ıdeos, en es e di ec o io bas a
con ene una subca pe a po cada conjun o de da os, con eniendo el
iche o JSON que los desc ibe.
• oolki : incluye el c´odigo uen e de di e en es u ilidades usadas en
o as clases.
• ools: en su in e io se encuen an es iche os muy impo an es que
nos pe mi i ´an ealiza ejecuciones di e en es:
◦ es .py: pe mi e ejecu a el seguimien o sob e un conjun o de
es .
◦e al.py: a pa i de la ejecuci´on de es .py, pe mi e ob ene
las m´e icas pa a el seguimien o ealizado.
◦ ain.py: pe mi e la ejecuci´on de en enamien os.
• aining da ase : es donde se gua dan odos los da os de los con-
jun os de en enamien o. Pa a cada uno, se almacenan odos los ´ıdeos
que lo con o man, as´ı como el iche o JSON que desc ibe odas las
ayec o ias de odos los ´ıdeos, lo que se ´a ´u il ca ga al empeza el
en enamien o.
• o i e : con iene c´odigo uen e ela i o a la in eg aci´on VOT en
Py hon.
Resul ados: es un di ec o io que se ha dedicado a inclui algunos esul ados
in e esan es en o ma de iche os excel o im´agenes gene adas con los sc ip s
o du an e el seguimien o de algunos obje os.
Da ase s: es un di ec o io que con iene los conjun os de da os de MOT17
y MOT20. En el caso de MOT17, se hizo una adap aci´on de los ideos pa a
co esponde se con el JSON gene ado, mien as que pa a MOT20, no ue
necesa io (solamen e es ´an las ca pe as pa a los ´ıdeos o iginales). Adem´as,
en cada di ec o io hay una ca pe a anns con las ano aciones, necesa ia a
la ho a de ejecu a los es s.
A.2. Modi icaci´on sob e pySOT
Como ya se ha comen ado, a la ho a de in oduci las mejo as, se han:
Modi icado algunos iche os, pa a a˜nadi la uncionalidad necesa ia.

56 AP´
ENDICE A. MANUAL T ´
ECNICO
A˜nadido iche os nue os, con uncionalidad nue a.
A la ho a de a˜nadi los iche os, pod´ıa se necesa io pa a pode los emplea
desde o a pa e del so wa e impo a los de alguna mane a. Po lo dem´as,
muchas de las modi icaciones a˜nadidas no se que ´ıa que uncionasen siemp e,
sino cuando se le indicase. Po ejemplo, cuando se a˜naden di e en es a ian es,
se quie e ejecu a espec´ı icamen e alguna de ellas, y eso se le quie e indica de
alguna mane a al sis ema.
Es e p oblema ambi´en su gi´o con los desa ollado es de pySOT, que como
soluci´on o ecie on dos al e na i as:
La inclusi´on de pa ´ame os po l´ınea de comandos. Sin emba go, es o
se usa pa a indica u as de de e minados iche os, como los pesos o el
conjun o de da os con los que hace una p ueba, po lo que no pa ec´ıa lo
m´as ap opiado hace ah´ı las con igu aciones.
El uso de pa ´ame os de con igu aci´on. Median e el uso de la clase
C gNode de la lib e ´ıa yacs.con ig se a˜nade el manejo de pa ´ame os.
Hay dos iche os impo an es a ene en cuen a, ya in oducidos p e iamen-
e:
•El iche o con ig.py, que es ´a en pyso -mas e /pyso /co e.
En ´el, se de inen odos los pa ´ame os que se an a pode ajus-
a , d´andoles un alo po de ec o. Aqu´ı se han a˜nadido pa ´ame os
p opios pa a ejecu a ozos de c´odigo con nues as modi icaciones.
•El iche o con ig.yaml, que es p opio de cada ejecuci´on, y que de he-
cho se puede acili a como pa ´ame o po l´ınea de comandos. En ´el, se
pueden modi ica los alo es po de ec o es ablecidos en con ig.py.
As´ı, a la ho a de aplica las modi icaciones, cuando dependiesen de una con i-
gu aci´on conc e a, se ap o echa on pa ´ame os ya exis en es y se c ea on algunos
nue os. En el Manual de Usua io (Ap´endice B) se da ´an de alles sob e ellos,
a la ho a de desc ibi las ejecuciones de las p uebas.
A.3. Implemen aci´on de a qui ec u as con me-
jo as
Un ejemplo de modi icaci´on muy ele an e, y sob e el que puede ene cie o
in e ´es hace p opues as di e en es a las ealizadas en es e abajo, se encuen a
en la a qui ec u a de SiamRPN++.
A la ho a de implemen a las a qui ec u as al e na i as que se usa on en el
cua o expe imen o, hubo que ecu i a unciones de la lib e ´ıa PyTo ch. Po
A.3. IMPLEMENTACI ´
ON DE ARQUITECTURAS CON MEJORAS 57
de ec o, la a qui ec u a b´asica de la RPN, sin dis ingui la ama de clasi icaci´on y
la de eg esi´on, ni los es mapas de ca ac e ´ıs icas que puede ene a la en ada,
es ´a de inida en la clase Dep hwiseXCo :
1class Dep hwiseXCo (nn.Module):
2de __ini __(sel , in_channels, hidden, ou _channels,
3ke nel_size=3, hidden_ke nel_size=5):
4supe (Dep hwiseXCo , sel ).__ini __()
5sel .con _ke nel = nn.Sequen ial(
6nn.Con 2d(in_channels, hidden,
7ke nel_size=ke nel_size, bias=False),
8nn.Ba chNo m2d(hidden),
9nn.ReLU(inplace=T ue),
10 )
11 sel .con _sea ch = nn.Sequen ial(
12 nn.Con 2d(in_channels, hidden,
13 ke nel_size=ke nel_size, bias=False),
14 nn.Ba chNo m2d(hidden),
15 nn.ReLU(inplace=T ue),
16 )
17 sel .head = nn.Sequen ial(
18 nn.Con 2d(hidden, hidden,
19 ke nel_size=1, bias=False),
20 nn.Ba chNo m2d(hidden),
21 nn.ReLU(inplace=T ue),
22 nn.Con 2d(hidden, ou _channels, ke nel_size=1)
23 )
24
25
26 de o wa d(sel , ke nel, sea ch):
27 ke nel = sel .con _ke nel(ke nel)
28 sea ch = sel .con _sea ch(sea ch)
29 ea u e = xco _dep hwise(sea ch, ke nel)
30 ou = sel .head( ea u e)
31 e u n ou
Como se puede comp oba , po un lado, se iene la unci´on de inicializaci´on en
la que se de inen las capas y ope aciones asociadas, mien as que po o o apa ece
una unci´on o wa d que es en la cual se an llamando a las capas c eadas. Es a
es uc u a se eplica a la ho a de c ea las clases con las a qui ec u as mejo adas,
que se mues an a con inuaci´on.
A pa i de es a clase, modi icando los pa ´ame os de en ada de la unci´on
de inicializaci´on, se c ean las amas de clasi icaci´on y de eg esi´on de la RPN.
Dicha ope aci´on de c eaci´on ambi´en se debe e isa con las clases nue as que se
c ean con las modi icaciones de a qui ec u a.
58 AP´
ENDICE A. MANUAL T ´
ECNICO
A.3.1. A qui ec u a SiamRPN++ conside ando nega i-
os
La p ime a de las a ian es jun a di ec amen e odos los nega i os (al e na i a
1 del apa ado 4.2.3). En el ozo de c´odigo siguien e, se pueden comp oba las
capas y, en el o wa d, c´omo se hace pa a sepa a los ejemplos y combina los
po la dimensi´on de p o undidad.
1class Dep hwiseXCo _Neg(nn.Module):
2de __ini __(sel , in_channels, hidden, ou _channels,
3ke nel_size=3, hidden_ke nel_size=5):
4supe (Dep hwiseXCo _Neg, sel ).__ini __()
5sel .con _ke nel = nn.Sequen ial(
6nn.Con 2d(in_channels, hidden,
7ke nel_size=ke nel_size, bias=False),
8nn.Ba chNo m2d(hidden),
9nn.ReLU(inplace=T ue),
10 )
11 sel .con _sea ch = nn.Sequen ial(
12 nn.Con 2d(in_channels, hidden,
13 ke nel_size=ke nel_size, bias=False),
14 nn.Ba chNo m2d(hidden),
15 nn.ReLU(inplace=T ue),
16 )
17 sel .head_1 = nn.Sequen ial(
18 nn.Con 2d(hidden, hidden,
19 ke nel_size=1, bias=False),
20 nn.Ba chNo m2d(hidden),
21 nn.ReLU(inplace=T ue),
22 )
23 i c g.TRAIN.NEG_MODE == "1x1Con ":
24 sel .head_2 = nn.Sequen ial(
25 # Me emos aqui la con oluci´
on usionando
26 # odos los ejempla es
27 nn.Con 2d(hidden*(c g.TRAIN.NUM_NEGATIVES+1),
28 hidden, ke nel_size=1, bias=False),
29 # Aplicamos ambi´
en una ba ch no maliza ion
30 # y una elu como unci´
on de ac i aci´
on
31 nn.Ba chNo m2d(hidden),
32 nn.ReLU(inplace=T ue),
33 nn.Con 2d(hidden, ou _channels, ke nel_size=1)
34 )
35 eli c g.TRAIN.NEG_MODE == "g oups":
36 sel .head_2 = nn.Sequen ial(
37 # Me emos aqui la con oluci´
on usionando odos
38 # los ejempla es (posi i o y nega i os)
39 # En es e caso, el pa ´
ame o g oups=hidden nos
40 # pe mi e jun a solamen e po cada canal los
41 # ejemplos y no odo jun o.
42 nn.Con 2d(hidden*(c g.TRAIN.NUM_NEGATIVES+1),
43 hidden, g oups=hidden, ke nel_size=1,
A.3. IMPLEMENTACI ´
ON DE ARQUITECTURAS CON MEJORAS 59
44 bias=False),
45 # Aplicamos ambi´
en una ba ch no maliza ion
46 # y una elu
47 nn.Ba chNo m2d(hidden),
48 nn.ReLU(inplace=T ue),
49 nn.Con 2d(hidden, ou _channels, ke nel_size=1)
50 )
51 else:
52 p in ("No se de ini´
o un modo de jun a los mapas
posi i o y nega i os ´
alido")
53 # Si se pide, congelamos solo la pa e del modelo no
54 # nue a espec o la Dep hWiseXCo o iginal.
55 i c g.TRAIN.FREEZE_IN_NEG:
56 o (i, j, k) in zip(sel .con _ke nel.pa ame e s(),
57 sel .con _sea ch.pa ame e s(),
58 sel .head_1.pa ame e s()):
59 i. equi es_g ad = False
60 j. equi es_g ad = False
61 k. equi es_g ad = False
62 p in (sel )
63
64 # A˜
nadimos al o wa d el ama˜
no de la p ime a dimensi´
on
65 # pa a cambia lo seg´
un en enamien o y es :
66 de o wa d(sel , ke nel_comb, sea ch, dim0size):
67 # Aplicamos con oluci´
on de ke nel a la combinaci´
on
68 # de posi i o+nega i os po el ba ch:
69 ke nel_comb = sel .con _ke nel(ke nel_comb)
70 # Aplicamos las con oluciones del sea ch a ea:
71 sea ch = sel .con _sea ch(sea ch)
72 s_sh = sea ch.shape
73 # Combinamos a ios sea ch a eas al es ilo del ke nel
74 # pa a aplica la co elaci´
on:
75 sea ch_cc = o ch.s ack([sea ch]*
76 (c g.TRAIN.NUM_NEGATIVES+1), dim = 1)
77 . iew((c g.TRAIN.NUM_NEGATIVES+1)*dim0size,
78 s_sh[1], s_sh[2], s_sh[3])
79 # Co elaci´
on dep hwise:
80 ea u e = xco _dep hwise(sea ch_cc, ke nel_comb)
81 # P ime a pa e de la cabece a:
82 ou = sel .head_1( ea u e)
83 o_sh = ou .shape
84 # Sepa amos aho a los enso es de nue o, y los
85 # jun amos po la p o undidad
86 samples = ou . iew(dim0size, c g.TRAIN.NUM_NEGATIVES+1,
87 o_sh[1], o_sh[2], o_sh[3]).unbind(dim = 1)
88 ou = o ch.s ack(samples, dim = 2)
89 . iew(dim0size, 256*(c g.TRAIN.NUM_NEGATIVES+1),
90 o_sh[2], o_sh[3])
91 # Ejecu amos la segunda pa e de la cabece a:
92 ou = sel .head_2(ou )
93 # De ol emos el esul ado:
66 AP´
ENDICE B. MANUAL DE USUARIO
9# Zona ho a ia
10 ENV TZ=Eu ope/Mad id
11
12 # Es ablecimien o zona ho a ia
13 RUN ln -sn /us /sha e/zonein o/$TZ /e c/local ime && echo $TZ
> /e c/ imezone
14 RUN ap -ge upda e
15 # Ins alaci´
on py hon, wge , gi y he amien as compilaci´
on
16 RUN ap -ge ins all -y py hon3
17 RUN ap -ge ins all -y wge
18 RUN ap -ge ins all -y gi -all
19 RUN ap -ge ins all -y build-essen ial
20
21 # Desca ga de Conda (Miniconda) e ins alaci´
on
22 RUN wge
23 h ps:// epo.anaconda.com/miniconda/Miniconda3-la es -Linux
-x86_64.sh
24 && mkdi / oo /.conda
25 && bash Miniconda3-la es -Linux-x86_64.sh -b
26 && m - Miniconda3-la es -Linux-x86_64.sh
27
28 # Se c ea en o no llamado pyso
29 RUN conda c ea e --name pyso py hon=3.7
30 RUN ap -ge upda e && ap -ge ins all -y gi -all && ap -ge
ins all -y gcc
31
32 # Se en a en el en o no:
33 SHELL ["conda"," un","-n","pyso ","/bin/bash","-c"]
34
35 # Se ins ala den o de conda numpy, o ch, cuda 9.0 y o as
lib e ´
ıas
36 RUN conda ins all numpy
37 RUN conda ins all py o ch=0.4.1 o ch ision cuda90 -c py o ch
38 RUN pip ins all pyyaml yacs qdm colo ama ma plo lib cy hon
enso boa dX
39 RUN pip ins all openc -py hon
40 RUN pip ins all mo me ics
41
42 # Ac ualizamos PYTHONPATH con ubicaci´
on de pyso
43 ENV PYTHONPATH=/wo kspace/TFG/pyso -mas e :$PYTHONPATH
44
45 # Se es ablece el di ec o io de abajo:
46 WORKDIR ${WORKDIR}
47
48 # Lo p ime o que se ejecu a es un sc ip :
49 ENTRYPOINT ["pyso -mas e /en ypoin .sh"]
Con ENTRYPOINT ["pyso -mas e /en ypoin .sh"] lo que se hace
es es ablece que lo p ime o que se a a hace nada m´as en a es ejecu a el sc ip
en ypoin .sh si uado den o de la ca pe a pyso -mas e . Dicho sc ip , lo
´unico que hace es inicia Conda y un nue o e minal de bash desde el cual ya se

B.1. INSTALACI ´
ON DEL SOFTWARE 67
pod ´a comenza a abaja con esa he amien a:
#!/bin/bash
conda ini
exec bash
Teniendo conocimien o ya del Docke ile, lo p ime o que se a a hace es
c ea la imagen. Pa a ello es necesa io si ua se en el di ec o io de dicho iche o y
ejecu a el comando:
docke build - nomb e_imagen
Donde nomb e imagen es el nomb e que se le quie e o o ga a la imagen
c eada, pa a una iden i icaci´on m´as sencilla.
Hecho es o, lo siguien e que hay que hace es c ea un con enedo . El comando
usado no malmen e pa a ello se p esen a a con inuaci´on, suponiendo que se
es ´a en el di ec o io a´ız de la es uc u a de ca pe as desca gada:
n idia-docke un --name nomb e-con enedo --use oo -e
NB_UID=$(id -u) -e NB_GID=$(id -g) -e CHOWN_HOME=yes -e
CHOWN_HOME_OPTS=’-R’ -i -- m - $PWD:/wo kspace/TFG -
/ mp/.X11-unix/:/ mp/.X11-unix: w - /mn /n s/:/mn /n s/
--de ice /de / ideo0:/de / ideo0:mw --ne =hos --ipc=hos
-e XDG_RUNTIME_DIR=$XDG_RUNTIME_DIR -e DISPLAY=$DISPLAY
-e "CUDA_VISIBLE_DEVICES=0,1" -e "CUDA_DEVICE_ORDER=PCI_BUS_ID"
--p i ileged nomb e-imagen
Es e comando se compone de a ias opciones. Algunas de ellas es nece-
sa io comen a las con algo m´as de de alle pa a en ende lo que se es ´a haciendo,
de hecho, se pod ´ıan incluso a ia si se desea:
n idia-docke se usa pa a pode hace ejecuciones den o del con ene-
do en las g ´a icas. Dependiendo de la e si´on de CUDA, puede se necesa io
eemplaza lo po docke un --gpus all.
--name es una opci´on que pe mi e o o ga le un nomb e al con enedo .
--use oo pe mi e es ablece la ejecuci´on como supe usua io.
- $PWD:/wo kspace/TFG pe mi e compa i el di ec o io ac ual, que
es la a´ız de la ca pe a que con iene odo el c´odigo en egado. As´ı, se pod ´a
accede a su con enido desde den o del con enedo (po de ec o no se ´ıa
posible).
-e ’CUDA VISIBLE DEVICES=0,1’ pe mi e es ablece las gpus isibles
desde den o del con enedo . Aqu´ı, po ejemplo, se es ´an haciendo isibles
dos: la n´ume o 0 y la n´ume o 1.
68 AP´
ENDICE B. MANUAL DE USUARIO
nomb e-imagen se co esponde con el nomb e de la imagen a usa pa a
lanza el con enedo . En es e caso, hab ´ıa que usa la que se c e´o con el
Docke ile an e io .
Pe o la ins alaci´on no e mina en es e pun o. Pa a pode comenza a ealiza
ejecuciones hace al a segui unos pasos m´as. Cuando se inicia el con enedo , lo
no mal es que apa ezca una secuencia como la de la igu a B.1.
Figu a B.1: Salida po e minal al a anca un con enedo Docke sob e la imagen
p opues a.
Como se puede comp oba , se iene Conda ac i ado (obs´e ese que apa ece
el en o no (base) en el p omp de la pa e in e io ). Lo que al a aho a es, pa a
empeza , cambia al en o no c eado g acias al Docke ile. Pa a ello, ecu imos al
comando siguien e (si se ha usado el Docke ile p esen ado an es, el en o no que
hay que usa end ´a el nomb e de pyso ):
conda ac i a e pyso
Como ´ul ima con igu aci´on an es de pode comenza a ejecu a expe imen os
lib emen e, es necesa io ejecu a el sc ip se up.py, que se encuen a den o
del di ec o io pyso -mas e .
py hon se up.py build_ex --inplace
Con es o se puede da po inalizada la ins alaci´on. A con inuaci´on se expli-
ca ´a, en p ime luga , c´omo hace en enamien os y, pos e io men e, c´omo hace
las p uebas. Tambi´en se ha ´a e e encia a la ejecuci´on de compa a i as en e dos
esul ados ob enidos y alguna u ilidad adicional que no es indispensable.
B.2. EJECUCI ´
ON DE ENTRENAMIENTOS 69
B.2. Ejecuci´on de en enamien os
Lo p ime o que se equie e pa a en ena co ec amen e es ene den o de ex-
pe imen s una ca pe a den o de la cual es a ´a la in o maci´on necesa ia (y pos-
e io men e los esul ados ob enidos) del en enamien o. Como se ha comen ado
p e iamen e, den o de es a ca pe a es necesa io ene de inido el con ig.yaml
con los pa ´ame os p opios de es e expe imen o, que se pueden pe sonaliza .
Po de ec o, se p opo ciona en la ca pe a compa ida po OneD i e el di ec o io
siam pn 50 l234 dwxcco TRAINMOT20.
En la documen aci´on de pySOT, se p opo ciona un iche o de con igu aci´on
po de ec o que pe mi e ejecu a un en enamien o sob e cua o conjun os
de da os p opios del SOT: ILSVRC2017 [57], You ube Bounding Boxes [58] y
COCO [59]. Dicho iche o iene la siguien e o ma:
1META_ARC: "siam pn_ 50_l234_dwxco "
2
3BACKBONE:
4TYPE: " esne 50"
5KWARGS:
6used_laye s: [2, 3, 4]
7PRETRAINED: ’p e ained_models/ esne 50.model’
8TRAIN_LAYERS: [’laye 2’,’laye 3’,’laye 4’]
9TRAIN_EPOCH: 10
10 LAYERS_LR: 0.1
11
12 ADJUST:
13 ADJUST: ue
14 TYPE: "Adjus AllLaye "
15 KWARGS:
16 in_channels: [512, 1024, 2048]
17 ou _channels: [256, 256, 256]
18
19 RPN:
20 TYPE: ’Mul iRPN’
21 KWARGS:
22 ancho _num: 5
23 in_channels: [256, 256, 256]
24 weigh ed: ue
25
26 MASK:
27 MASK: alse
28
29 ANCHOR:
30 STRIDE: 8
31 RATIOS: [0.33, 0.5, 1, 2, 3]
32 SCALES: [8]
33 ANCHOR_NUM: 5
34
35 TRACK:
70 AP´
ENDICE B. MANUAL DE USUARIO
36 TYPE: ’SiamRPNT acke ’
37 PENALTY_K: 0.04
38 WINDOW_INFLUENCE: 0.44
39 LR: 0.33
40 EXEMPLAR_SIZE: 127
41 INSTANCE_SIZE: 255
42 BASE_SIZE: 8
43 CONTEXT_AMOUNT: 0.5
44
45 TRAIN:
46 EPOCH: 20
47 START_EPOCH: 0
48 BATCH_SIZE: 28
49 BASE_LR: 0.005
50 CLS_WEIGHT: 1.0
51 LOC_WEIGHT: 1.2
52 RESUME: ’’
53
54 LR:
55 TYPE: ’log’
56 KWARGS:
57 s a _l : 0.005
58 end_l : 0.0005
59 LR_WARMUP:
60 TYPE: ’s ep’
61 EPOCH: 5
62 KWARGS:
63 s a _l : 0.001
64 end_l : 0.005
65 s ep: 1
66
67 DATASET:
68 NAMES:
69 -’VID’
70 -’YOUTUBEBB’
71 -’COCO’
72 -’DET’
73
74 TEMPLATE:
75 SHIFT: 4
76 SCALE: 0.05
77 BLUR: 0.0
78 FLIP: 0.0
79 COLOR: 1.0
80
81 SEARCH:
82 SHIFT: 64
83 SCALE: 0.18
84 BLUR: 0.2
85 FLIP: 0.0
86 COLOR: 1.0
B.2. EJECUCI ´
ON DE ENTRENAMIENTOS 71
87
88 NEG: 0.2
89 GRAY: 0.0
Si se quisiese hace la p ueba con esos conjun os de da os, se end ´ıan que
desca ga y ejecu a una se ie de sc ip s disponibles en el gi hub de
pySOT que pe mi en da le el o ma o ap opiado a cada uno de los ejempla es
de los ´ıdeos (lo que en es e abajo se hace en el p opio c´odigo pa a MOT,
en es os conjun os se hace de o ma sepa ada, po que son algo m´as lige os y
as´ı se aho a iempo en la ejecuci´on del en enamien o). Es e ap´endice se cen a
en eplica los expe imen os que se han hecho como pa e del TFG, as´ı que el
en enamien o con o os conjun os de da os se escapa del alcance del mismo.
Cen ´andose ya en el en enamien o en MOT20, hay que ene en cuen a
que en la ca pe a compa ida p opo cionada ya se han gene ado odos los
iche os JSON necesa ios, po lo que no es necesa io ejecu a nue amen e
los sc ip s de con e si´on. Los pasos a segui son:
Tene den o del di ec o io pyso -mas e / aining da ase odos los da-
os del conjun o de MOT20, as´ı como el iche o JSON MOT20 T ain.json
(que ue gene ado con el sc ip con e MOT20 oFullVOT json.py).
En la ca pe a compa ida ´ıa OneD i e, es necesa io copia el con enido de
da ase s/MOT20 en pyso -mas e / aining da ase /MOT20VOT
(sal o el di ec o io anns).
Como se ha comen ado en el desa ollo de la memo ia, pa e de la ed
neu onal se man iene congelada du an e el en enamien o: es o quie e
deci que se man ienen unos pesos ijos, pe o no cualquie ipo de pesos.
Se ca gan los pesos de inidos en el iche o model.p h (que son los que se
usan en las e aluaciones de los es p ime os expe imen os, adem´as).
Luego, hay que modi ica la con igu aci´on de inida en el con ig.yaml.
Respec o del iche o que se mos ´o p e iamen e en es e apa ado, cambia
lo siguien e:
•En el apa ado RPN.TYPE, en luga de Mul iRPN, se iene que indica
Mul iRPNMod.
•En el apa ado TRAIN, se a˜nade:
1PRETRAINED: ’model.p h’
2CONSIDER_NEG: T ue
3FREEZE_IN_NEG: T ue
4NEG_MODE: ’1x1Con ’
5NUM_NEGATIVES: 3
Donde NEG MODE puede oma di e en es alo es seg´un la modalidad
de uni´on que se aplique a los ejempla es:

72 AP´
ENDICE B. MANUAL DE USUARIO
◦’1x1Con ’: si se ag egan di ec amen e odos los ejempla es sin
ene en cuen a el canal (al e na i a 1 del apa ado 4.2.3).
◦’g oups’: si se usa una con oluci´on po g upos pa a a gupa di-
ec amen e odos los ejempla es (al e na i a 2 del apa ado 4.2.3).
◦’NegOnlyJoin’: si se combinan p ime o los nega i os y luego
con el posi i o (al e na i a 3 del apa ado 4.2.3).
◦’NegOnlyJoin 2Pos’: si se combinan p ime o los nega i os y
luego con el posi i o en dos ocasiones (al e na i a 4 del apa ado
4.2.3).
Adem´as, NUM NEGATIVES ald ´a 3 po de ec o, si bien se puede a ia
es e alo indic´andolo.
•Finalmen e, en DATASET, se cambia el a ibu o NAMES:
1NAMES:
2-’MOT20VOT’
Con odo es o, se puede p ocede a la ejecuci´on de los en enamien os.
No malmen e, en los se ido es se ha ap o echado la capacidad disponible
en las GPUs, y se han c eado en pa alelo m´ul iples p ocesos pa a
acele a la ejecuci´on (es o nos ha e i ado espe as mucho m´as la gas en
muchos en enamien os). De es a mane a, el comando que se suele usa
es el siguien e (suponiendo que es amos si uados en el di ec o io de un
expe imen o conc e o):
py hon3 -m o ch.dis ibu ed.launch --np oc_pe _node=N
--mas e _po =2333 ../../ ools/ ain.py --c g con ig.yaml
Donde Nes el n´ume o de p ocesos que se quie en lanza . No malmen e se
han usado 8, que se dis ibu´ıan en e las GPUs disponibles. E iden emen e,
odo depende de la capacidad que se enga disponible en el momen o de las
p uebas y la memo ia eque ida po cada p oceso.
Al i se ejecu ando el en enamien o, se c ean dos di ec o ios:
logs: con end ´a las salidas que apa ecen po e minal, pa a que as´ı se pueda
deja el en enamien o en segundo plano e i consul ando el p og eso o
posibles incidencias ocu idas.
snapsho : con end ´a los di e en es pun os de con ol que apa ecen as
cada ´epoca de ejecuci´on de las p uebas. Es o se ´a ´u il si se quie en i ali-
dando los di e en es pesos ob enidos.
B.3. EJECUCI ´
ON DE PRUEBAS Y EVALUACIONES 73
B.3. Ejecuci´on de p uebas y e aluaciones
Sabiendo c´omo en ena , lo ´unico que es a po explica es c´omo hace las
p uebas y, a pa i de los esul ados ob enidos, calcula las m´e icas de p ecisi´on
y obus ez.
B.3.1. Ejecuci´on de p uebas
Pa a ello, lo p ime o es dispone den o de expe imen s de una ca pe a en
la que almacena odo lo necesa io. Se ecomienda enca ecidamen e c ea una
ca pe a sepa ada a la que se use pa a el en enamien o, pa a sepa a mejo cada
pa e, de hecho, en la ca pe a compa ida en OneD i e se p opo ciona el di ec o io
siam pn 50 l234 dwxcco MOT. Como siemp e, hay que ene el iche o
con ig.yaml, pa a el cual un pun o de pa ida o ecido en el p opio Gi Hub
de pySOT se ´ıa el siguien e:
1META_ARC: "siam pn_ 50_l234_dwxco "
2
3BACKBONE:
4TYPE: " esne 50"
5KWARGS:
6used_laye s: [2, 3, 4]
7
8ADJUST:
9ADJUST: ue
10 TYPE: "Adjus AllLaye "
11 KWARGS:
12 in_channels: [512, 1024, 2048]
13 ou _channels: [256, 256, 256]
14
15 RPN:
16 TYPE: ’Mul iRPN’
17 KWARGS:
18 ancho _num: 5
19 in_channels: [256, 256, 256]
20 weigh ed: ue
21
22 MASK:
23 MASK: alse
24
25 ANCHOR:
26 STRIDE: 8
27 RATIOS: [0.33, 0.5, 1, 2, 3]
28 SCALES: [8]
29 ANCHOR_NUM: 5
30
31 TRACK:
32 TYPE: ’SiamRPNT acke ’
33 PENALTY_K: 0.05
74 AP´
ENDICE B. MANUAL DE USUARIO
34 WINDOW_INFLUENCE: 0.42
35 LR: 0.38
36 EXEMPLAR_SIZE: 127
37 INSTANCE_SIZE: 255
38 BASE_SIZE: 8
39 CONTEXT_AMOUNT: 0.5
A pa i de aqu´ı, se ´ıa con enien e dis ingui las modi icaciones a ealiza pa a
los expe imen os que no pa en de un cambio de la a qui ec u a y los que s´ı.
Conside aciones p opias de p uebas que no modi ican la a qui ec u a
Lo p ime o de odo es dispone en ese caso de unos pesos p een enados. Pa a
ello, se dispone del iche o model.p h ya mencionado en o as ocasiones. Con
ese modelo es con el que se consiguen los esul ados de las llamadas p uebas
base.
A pa i de ah´ı, el con enido mos ado p e iamen e se co esponde con el
o ma o que debe ene el con ig.yaml pa a hace las p uebas base. Las mo-
di icaciones que se indican a con inuaci´on pe mi en ejecu a las dem´as a ian es
que no equie en cambios de a qui ec u a:
Pa a empeza , es necesa io modi ica el pa ´ame o TRACK.TYPE, pa a que
pase a ene el alo ’SiamRPNMOTT acke ’. Es o se hace po que se ha
de inido una clase di e en e pa a hace el seguimien o conside an-
do los mapas de calo nega i os (con o ´aculos o sin ellos).
Con es e cambio, seg´un la p ueba a aplica , hay que es ablece de e minadas
combinaciones de o os pa ´ame os, odos ellos den o de TRACK:
•Pa a la a iaci´on b´asica, hace al a man ene el pa ´ame o cuyo
nomb e es TRACK.NEGATIVES PENALIZATION con el alo False.
Todo lo dem´as puede man ene se.
•Si se desea aplica una no malizaci´on en e 0 y 1 de los mapas de ca-
lo adap ados, se puede da al pa ´ame o TRACK.NORMALIZATION
SCORES el alo ze o one.
•Si se desea hace la penalizaci´on sob e los nega i os, simplemen e
hay que da le al pa ´ame o TRACK.NEGATIVES PENALIZATION el
alo T ue.
•En los o ´aculos, hay que ajus a el pa ´ame o TRACK.MODE:
◦Pa a el o ´aculo colocando ec ´angulos p opo cionales al de-
limi ado , da le el alo ’o acle sq c op’.
◦Pa a el o ´aculo colocando gaussiana seg´un el ec ´angulo de-
limi ado , da le el alo ’o acle gauss’.
B.3. EJECUCI ´
ON DE PRUEBAS Y EVALUACIONES 75
◦Pa a el o ´aculo aplicando eco e al mapa de calo seg´un el
delimi ado , da le el alo ’o acle bbox sco e’.
•En caso de que e que los nega i os penalicen la mi ad (como se hi-
zo en las p uebas del o ´aculo), pone el pa ´ame o TRACK.NEGATIVES
PX con alo 0.5.
Conside aciones p opias de p uebas que s´ı modi ican la a qui ec u a
En es e caso se iene no que pasa los pesos p een enados, sino acili a
los pesos salien es del en enamien o que se deseen. En la ca pe a snapsho
den o de la del expe imen o en el que se ealiz´o dicho en enamien o, se incluyen
los pesos o o gados a la ed as cada ´epoca, que segui ´an la con enci´on
checkpoin eX.p h (con X un n´ume o ep esen ando la ´epoca). Se deben
mo e o copia desde esa ca pe a los iche os deseados a aquella en la que se
ayan a ejecu a es as p uebas de seguimien o.
A pa i de ello, se debe modi ica el iche o con ig.yaml (pa iendo de la
base mos ada p e iamen e), eniendo en cuen a las siguien es conside aciones:
Como suced´ıa en el en enamien o, hay que cambia el pa ´ame o RPN.TYPE
po el alo ’Mul iRPNMod’.
Adem´as, es necesa io modi ica TRACK.TYPE. En es e caso, se le da ´a el
alo ’SiamRPNT acke RPNMod’, que es el nomb e que ecibe la clase
que se usa en es e ipo de p uebas.
Finalmen e, hay que modi ica ambi´en algunos pa ´ame os que se hab´ıan
con igu ado pa a en enamien o, pe o que aqu´ı ienen epe cusi´on en la
a qui ec u a del sis ema:
•TRAIN.CONSIDER NEG: iene que pone se a T ue.
•TRAIN.NEG MODE: iene que oma el alo que u iese en el en e-
namien o co espondien e.
•TRAIN.NUM NEGATIVES: en caso de a ia lo de 3 en el en enamien o
(que es el alo po de ec o), ambi´en se debe modi ica en es e pun o.
Comando pa a ejecu a p uebas de seguimien o
Conociendo odos es os supues os, lo siguien e que se debe hace es ejecu a
las p uebas de seguimien o. En la ca pe a del expe imen o co espondien e, se
debe copia el con enido del conjun o de da os de la ca pe a da ase s que se
desee, y luego ejecu a el comando siguien e:
py hon3 ../../ ools/ es .py --snapsho nomb e_modelo.p h
--da ase nomb e_conjun o --con ig con ig.yaml
82 BIBLIOGRAF´
IA
[34] Py hon. (21 de mayo de 2022). Wikipedia, La enciclope-
dia lib e. Fecha de consul a: 22 de Mayo de 2022, desde
h ps://es.wikipedia.o g/w/index.php? i le=Py hon
[35] NumPy documen a ion (Ve si´on 1.22, 2022). Fecha de consul a: 22 de Mayo
de 2022, desde: h ps://numpy.o g/doc/s able/.
[36] PyTo ch documen a ion (Ve si´on 1.11.0, 2019). Fecha de consul a: 22 de
Mayo de 2022, desde h ps://py o ch.o g/docs/s able/index.h ml.
[37] Pandas documen a ion (Ve si´on 1.4.2, 6 de ab il de 2022). Fecha de consul a:
24 de Mayo de 2022, desde: h ps://pandas.pyda a.o g/docs/.
[38] OpenCV documen a ion (Ve si´on 4.5.5-de , 2022). Fecha de consul a: 24 de
Mayo de 2022, desde: h ps://docs.openc .o g/4.x/index.h ml.
[39] Ma plo lib documen a ion (Ve si´on 3.5.2, 2022). Fecha de consul a: 24 de
Mayo de 2022, desde: h ps://ma plo lib.o g/s able/index.h ml.
[40] C. Heindl: py-mo me ics. Gi Hub (24 de ab il de 2022). Fecha de con-
sul a: 24 de Mayo de 2022, desde: h ps://gi hub.com/cheind/py-
mo me ics.
[41] Docke documen a ion (2022). Fecha de consul a: 26 de Mayo de 2022, desde:
h ps://docs.docke .com/.
[42] Conda documen a ion (Re isi´on 5812c98c, 2017). Fecha de consul a: 26 de
Mayo de 2022, desde: h ps://docs.conda.io/en/la es /.
[43] Documen a ion o Visual S udio Code (2022). Fecha de consul a: 27 de
Mayo de 2022, desde: h ps://code. isuals udio.com/docs.
[44] Documen a ion. O e lea , Online La ex Edi o . Fecha de consul a: 27 de
Mayo de 2022, desde h ps://www.o e lea .com/lea n.
[45] D aw. Lib eO ice en espa˜nol. Fecha de consul a, 27 de Mayo de 2022: desde
h ps://es.lib eo ice.o g/descub e/d aw/.
[46] Almacenamien o pe sonal en la nube: Mic oso OneD i e. Mic oso . Fecha
de consul a: 27 de Mayo de 2022, desde h ps://www.mic oso .com/es-
es/mic oso -365/oned i e/online-cloud-s o age.
[47] Gi Hub Documen a ion. Fecha de consul a: 27 de Mayo de 2022, desde
h ps://docs.gi hub.com/es.

BIBLIOGRAF´
IA 83
[48] J. B ownlee: Di e ence Be ween a Ba ch and an Epoch in
a Neu al Ne wo k. Machine Lea ning Mas e y (20 de Ju-
lio de 2018). Fecha de consul a: 19 de Mayo de 2022, desde
h ps://machinelea ningmas e y.com/di e ence-be ween-a-ba ch-
and-an-epoch/.
[49] Ba ch no maliza ion (23 de Feb e o de 2022). Wikipedia, The
F ee Encyclopedia. Fecha de consul a: 19 de Mayo de 2022, desde
h ps://en.wikipedia.o g/w/index.php? i le=Ba ch no maliza ion.
[50] J. B ownlee: A Gen le In oduc ion o he Rec i ied Linea Uni (ReLU).
Machine Lea ning Mas e y (20 de Agos o de 2020). Fecha de consul a: 19 de
Mayo de 2022, desde: h ps://machinelea ningmas e y.com/ ec i ied-
linea -ac i a ion- unc ion- o -deep-lea ning-neu al-ne wo ks/.
[51] Funci´on gaussiana (29 de ma zo de 2022). Wikipedia, La enci-
clopedia lib e. Fecha de consul a: 30 de mayo de 2022, desde:
h ps://es.wikipedia.o g/w/index.php? i le=Funci%C3%B3n
gaussiana.
[52] S. Sun, N. Akh a , H. Song, A. Mian, M. Shah: Deep A ini y Ne wo k o
Mul iple Objec T acking. En IEEE T ansac ions on Pa e n Analysis and
Machine In elligence, ol. 43: 104-119 (2021).
[53] F. Yang, W. Choi, Y. Lin: Exploi All he Laye s: Fas and Accu a e CNN
Objec De ec o wi h Scale Dependen Pooling and Cascaded Rejec ion Clas-
si ie s. En IEEE Con e ence on Compu e Vision and Pa e n Recogni ion:
2129-2137 (2016).
[54] P. F. Felzenszwalb, R. B. Gi shick, D. A. McAlles e , D. Ramanan: Ob-
jec De ec ion wi h Disc imina i ely T ained Pa -Based Models. En IEEE
T ansac ions on Pa e n Analysis and Machine In elligence, ol. 32: 1627-
1645 (2010).
[55] MOT17 Challenge da a. MOT Challenge. Fecha de consul a: 13 de junio de
2022, desde: h ps://mo challenge.ne /da a/MOT17/.
[56] M. K is an e . al: The Visual Objec T acking VOT2014:
Challenge and esul s. VOTChallenge (6 de Sep iemb e
de 2014). Fecha de consul a: 3 de junio de 2022, desde:
h ps://www. o challenge.ne / o 2014/download/ o 2014
p esen a ion.pd
[57] ImageNe La ge Scale Visual Recogni ion Challenge 2017 (ILSVRC2017).
ImageNe . Fecha de consul a: 7 de junio de 2022, desde: h ps://image-
ne .o g/challenges/LSVRC/2017/.
84 BIBLIOGRAF´
IA
[58] YouTube-BoundingBoxes Da ase . Google Resea ch. Fecha de consul a: 7 de
junio de 2022, desde: h ps:// esea ch.google.com/you ube-bb/.
[59] COCO - Common Objec s in Con ex . Fecha de consul a: 7 de junio de 2022,
desde: h ps://cocoda ase .o g/#home.