ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA
Ingenie ía de la Salud
Algo i mos de de ección y localización de pun os de e e encia
aciales en iempo eal pa a guiado en ci ugía
De ec ion and localiza ion algo i hms o acial landma ks in eal
ime o guided su ge y
Realizado po
Ma ín Axel ad Tinoco
Tu o izado po
En ique Na a Ba o
Ma io Padilla Delange
Depa amen o
Ingenie ía de Comunicaciones
UNIVERSIDAD DE MÁLAGA
MÁLAGA, Junio, 2018
Fecha de ensa:
El Sec e a io del T ibunal
Resumen: La asa de éxi o de las ci ugías endoscópicas se ha is o inc emen ada en g an
medida as la implemen ación de sis emas de guiado po o denado . Es os pe mi en
localiza con p ecisión la pun a del endoscopio en la ana omía del pacien e. e i ando
daña ejido con iguo y la búsqueda de es uc u as no isibles po el endoscopio. Es
habi ual encon a , en el me cado de guiado en ci ugía endoscópica, disposi i os
cen ados en sus ca ac e ís icas écnicas, dejando de lado la usabilidad, accesibilidad y
comodidad del acul a i o. Suelen ocupa g andes can idades de espacio, ene p ecios
ele ados y eque i un campo de isión muy amplio, en o peciendo la labo del
pe sonal.
En es e abajo se desa olla un sis ema de guiado pa a ci ugía endoscópica nasosinusal
capaz de localiza la o ien ación del endoscopio en el in e o de las osas nasales del
pacien e. Usando écnicas de isión po compu ado , el sis ema de ec a ca as y pun os
aciales ca ac e ís icos, gene ando un modelo comple amen e pe sonalizado pa a cada
pacien e, sob e el cual se es iman las o ien aciones del endoscopio a iempo eal. Al
ubica el disposi i o de g abación en el mismo endoscopio, se minimiza el espacio
ocupado, las limi aciones pa a el pe sonal, el ap endizaje p e io y el con ac o di ec o
con el pacien e.
Palab as cla es: ci ugía guiada po o denado , isión po compu ado , endoscopia nasal,
es imación de la pose, econs ucción acial idimensional
Abs ac : The success o endoscopic su ge y depends hea ily on he implemen a ion o
compu e -guided sys ems. Thanks o hese, he physician can isualize he o ien a ion o
he endoscope in he pa ien 's ana omy. This makes i possible o pe o m he ope a ions
wi h g ea e p ecision, a oiding damage o con iguous issue and he sea ching o
s uc u es no isible h ough he endoscope. I is usual o ind in he ma ke o
compu e assis ed su ge y de ices ocused on hei echnical cha ac e is ics, lea ing
aside he usabili y, accessibili y and com o o he physician. These sys ems usually
occupy a la ge amoun o space in he ope a ing oom and equi e a e y wide ield o
ision, obs uc ing he wo k o he physician.
In his wo k a guidance sys em is de eloped o endoscopic nasal su ge y capable o
loca ing he o ien a ion o he igid endoscope inside he pa ien 's nos ils. Using
compu e ision echniques, he sys em de ec s he ace and cha ac e is ic acial ea u es
using a came a loca ed in he endoscope. A comple ely cus omized model is gene a ed
on which he endoscope o ien a ions a e es ima ed in eal ime. This wo k ocuses on
minimizing he usual p ocedu e, a oiding he need o aining, elimina ing any
limi a ion o mo emen o he physician and di ec con ac wi h he pa ien .
Keywo ds: compu e assis ed su ge y, compu e ision, endoscopic nasal su ge y, pose
es ima ion, h ee-dimensional acial econs uc ion
´
Indice gene al
1. In oducci´on 1
1.1. In oducci´on................................... 1
1.2. An eceden es .................................. 2
1.2.1. His o ia de la ci ug´ıa endosc´opica (1900 - 1975) . . . . . . . . . . . 2
1.2.2. His o ia de la ci ug´ıa endosc´opica asis ida (1975 - 2000) . . . . . . . 4
1.2.3. Es ado ac ual de la ci ug´ıa asis ida po compu ado y la ealidad
aumen ada (2000 - 2017) . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3. Ana om´ıa y isiolog´ıa de las osas nasales . . . . . . . . . . . . . . . . . . . 8
1.4. Endoscopio ................................... 10
1.4.1. Ci ug´ıa endosc´opica endonasal . . . . . . . . . . . . . . . . . . . . . 12
1.4.2. Pun os de e e encia aciales . . . . . . . . . . . . . . . . . . . . . . 14
1.5. Obje i os .................................... 15
1.6. Plande abajo................................. 17
1.7. Es uc u a del documen o . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2. An´alisis 19
2.1. In oducci´on................................... 19
2.2. De ecci´on acial................................. 20
2.2.1. M´e odos basados en el conocimien o . . . . . . . . . . . . . . . . . 20
2.2.2. Ca ac e ´ıs icas in a ian es . . . . . . . . . . . . . . . . . . . . . . . 21
2.2.3. Templa e ma ching . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.2.4. M´e odos basados en la apa iencia . . . . . . . . . . . . . . . . . . . 21
2.3. Recons ucci´on acial idimensional . . . . . . . . . . . . . . . . . . . . . . 22
´
INDICE GENERAL
2.3.1. Es uc u a po somb as . . . . . . . . . . . . . . . . . . . . . . . . 22
2.3.2. Mapas de p o undidad . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.3.3. Es uc u a po mo imien o . . . . . . . . . . . . . . . . . . . . . . . 23
3. Dise˜no de la soluci´on 25
3.1. In oducci´on................................... 25
3.2. An´alisis de las he amien as . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.2.1. He amien as ha dwa e . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.2.2. He amien as so wa e . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.3. A qui ec u aso wa e.............................. 30
3.3.1. Es uc u aci´on ............................. 30
4. Algo i mos 35
4.1. In oducci´on................................... 35
4.2. De ecci´ondeca as ............................... 35
4.2.1. Ca ac e ´ıs icas de Haa . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.2.2. Imagenin eg al............................. 37
4.2.3. Clasi icado es .............................. 38
4.2.4. Cascada de clasi icado es . . . . . . . . . . . . . . . . . . . . . . . . 41
4.3. Pun os de e e encia aciales . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.3.1. HOG................................... 42
4.4. S uc u e ommo ion ............................. 46
4.4.1. Co espondencia de pun os . . . . . . . . . . . . . . . . . . . . . . . 47
4.4.2. Recons ucci´on inicial . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.4.3. T iangulaci´on .............................. 50
4.4.4. A˜nadi nue as is as . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.4.5. Bundle adjus men . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.5. Es imaci´ondelapose.............................. 52
4.5.1. P3P ................................... 53
4.5.2. EPnP .................................. 54
´
INDICE GENERAL
5. Implemen aci´on 57
5.1. In oducci´on................................... 57
5.2. De ecci´ondeca as ............................... 57
5.3. Pun os de e e encia aciales . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.4. Recons ucci´on ................................. 60
5.5. Es imaci´ondelapose.............................. 61
6. P ocedimien o 69
6.1. In oducci´on................................... 69
6.2. P eope a o io .................................. 69
6.2.1. Calib ado de la c´ama a . . . . . . . . . . . . . . . . . . . . . . . . . 70
6.2.2. Modelado acial idimensional . . . . . . . . . . . . . . . . . . . . . 71
6.2.3. Imagen de e e encia . . . . . . . . . . . . . . . . . . . . . . . . . . 71
6.3. Ci ug´ıa...................................... 73
7. Expe imen os 75
7.1. In oducci´on................................... 75
7.2. De ec o deca as................................ 75
7.2.1. E aluaci´on del de ec o . . . . . . . . . . . . . . . . . . . . . . . . . 76
7.2.2. L´ımi es de mo imien o . . . . . . . . . . . . . . . . . . . . . . . . . 76
7.2.3. Tama˜no ´op imo de la ca a . . . . . . . . . . . . . . . . . . . . . . . 77
7.3. Es imaci´ondelapose.............................. 78
7.3.1. Composici´on de ca a ´op ima . . . . . . . . . . . . . . . . . . . . . . 78
7.3.2. Tama˜nodelaca a ........................... 81
7.3.3. Velocidad de la es imaci´on . . . . . . . . . . . . . . . . . . . . . . . 83
7.3.4. P ecisi´on de la es imaci´on . . . . . . . . . . . . . . . . . . . . . . . 86
7.3.5. Velocidad de ecupe aci´on . . . . . . . . . . . . . . . . . . . . . . . 88
8. Conclusiones y T abajo u u o 95
8.1. Conclusiones................................... 95
8.2. T abajo u u o ................................. 98
CAP´
ITULO 1. INTRODUCCI ´
ON
45o espec o al pacien e. Cada uno de los es senso es en´ıa capacidad pa a obse a un
angulo de 30ode la zona qui ´u gica. Las emisiones que llegaban al senso gene ando una
ca ga el´ec ica, que una ez medida pe mi ´ıa localiza la posici´on del ins umen o.
Po ´ul imo, el Ins aT ak Sys em es un disposi i o que consis e en unos au icula es
con una banda que con iene un ansmiso elec omagn´e ico si uado jus o delan e de
la en e del pacien e. Es e sis ema no se e a ec ado po el uido ex e no causado po
ins umen os de me al, p ´o esis den ales u o os ac o es ambien ales. Los au icula es, que
son desechables, con ienen seis bolas me ´alicas que si en como e e encia pa a la uen e
elec omagn´e ica. El sis ema e a capaz de econoce el ins umen al median e o as bolas
me ´alicas si uadas en es e. Es e sis ema e i aba la colocaci´on de ma cas iduciales en el
os o del pacien e al ene los pun os de e e encia incluidos en los au icula es.
1.2.3. Es ado ac ual de la ci ug´ıa asis ida po compu ado y la
ealidad aumen ada (2000 - 2017)
Muchos de los disposi i os ac uales, son modi icaciones y mejo as de los an e io es.
En es e apa ado se e´unen algunas al e na i as que se ace can a la p opues a de es e
abajo, o alguno de los sis emas m´as a anzados.
En 2003 Sebas ian Vog e Al desa olla on un sis ema de ealidad aumen ada des i-
nada a ci ug´ıas medicas. El disposi i o con aba con dos c´ama as con isi´on es e eosc´opica
y una c´ama a in a oja enca gada de de ec a unos ma cado es que pod´ıan i an o en
una es uc u a solida o a la ins umen aci´on necesa ia en la ci ug´ıa. Todo es o se mon-
aba en la cabeza del acul a i o, consiguiendo el mismo pun o de is a que es e, que se
colocaba unas ga as de ealidad i ual. En es as ga as de ealidad i ual, el usua io ob-
se aba las im´agenes ob enidas po las dos c´ama as con isi´on es e eosc´opica y, median e
la localizaci´on de pun os de e e encia po la c´ama a in a oja, un modelo idimensional
sob epues o a las im´agenes eales, que c eaban la sensaci´on de anspa encia del pacien e,
pudiendo e su in e io [42].
6
1.2. ANTECEDENTES
Tambi´en en 2003, un sis ema pa ecido al an e io ue desa ollado po Wol gang Bi k-
ellne e Al [14]. Un sis ema de dos c´ama as localizaba dis in os pun os de e e encia, es a
ez si uados sob e la cabeza del pacien e. El sis ema inclu´ıa un algo i mo de de ecci´on
de colisiones, po el cual la ins umen aci´on usada en la ci ug´ıa pod´ıa se localizada y se
mos aban a isos de p oximidad a es uc u as de la cabeza o los pun os iduciales.
En 2005, Kozo Konishi e al desa olla on un sis ema de lapa oscopia con ealidad
i ual [29]. Es e sis ema es imaba el es ado ac ual de los ´o ganos in e nos al se es os
elemen os no ´ıgidos. La soluci´on ue localiza la pun a del endoscopio median e senso es
elec omagn´e icos a la ez que se ealizaba una ´ecnica de isualizaci´on del in e io del
cue po humano median e ul asonidos, a modo de ecog a ´ıa que de ec a a los mo imien os
y a iaciones de es os. Con es o consegu´ıan sob epone im´agenes de la posici´on de los ins-
umen os y los ´o ganos del pacien e, p oyec ando im´agenes de un modelo idimensional
de los ´o ganos encima de la piel a modo de pan alla. Es e disposi i o pe mi e isualiza
el in e io del o ganismo a plena is a del acul a i o.
En 2007, Jan Fische e Al desa olla on un sis ema h´ıb ido que pe mi ´ıa localiza
pun os iduciales del pacien e adem´as de localiza la p opia c´ama a que los de ec aba [20].
El sis ema es ´a compues o po un de ec o de in a ojos, pa ecido al FlashPoin , que
de ec a la pose de una c´ama a que lle a unos ejes de e e encia e lec o es de in a ojos.
Con es o, la c´ama a localizaba los pun os de e e encia al oca con el ins umen al la zona
de la imagen que se que ´ıa localiza . Con es o y median e empla e ma ching el sis ema
e a capaz de econoce los pun os po pa e de la c´ama a, y la pose de la c´ama a espec o
al sis ema in a ojo.
En 2007, un disposi i o pa ecido al an e io ue desa ollado po Chen Jing e Al [26].
Es e con aba con ma cado es iduciales e lec an es de in a ojos, que e an localizados
po una c´ama a in a oja, con un eje de coo denadas asignado in a ojo, que a su ez
e a de ec ado po es c´ama as si uadas en el echo del qui ´o ano. Con es o se ob en´ıa un
sis ema pa ecido al an e io , pe o sin la necesidad del empla e ma ching, eniendo como
e e encia los pun os iduciales de la ca a.
7
CAP´
ITULO 1. INTRODUCCI ´
ON
En 2010, un sis ema ideado po Hongen Liao e al se enca gaba de la localizaci´on de
pun os iduciales del pacien e, a la ez que se le ealizaba una MRI [34]. Es e disposi i o
consis e en una compleja es uc u a de espejos si uados en e la ca a del pacien e y el
ci ujano, que e leja al pacien e con im´agenes de ealidad i ual supe pues as. Adem´as,
un sis ema de c´ama as in a ojas se enca gaba de localiza an o la cabeza del pacien e,
como la del ci ujano y la ins umen aci´on usada.
Un caso a des aca se desa ollo en 2016 po Simon Leona d e Al pa a la ci ug´ıa
endoscopica endosinusal [32]. El sis ema se enca gaba de usa una ´ecnica de isi´on po
compu ado llamada S uc u e om Mo ion,que econs uyeescenasen esdimensiones
median e a ias im´agenes consecu i as que sean ep esen a i as de la es uc u a idi-
mensional del obje o que se quie e econs ui . Median e las im´agenes ob enidas po el
endoscopio, se hacia una econs ucci´on de las ´ıas a´e eas, c eando una nube de pun os
en la que pos e io men e se localizaba la imagen ac ual del endoscopio.
1.3. Ana om´ıa y isiolog´ıa de las osas nasales
Es uc u almen e el esquele o de la na iz es an o ´oseo como ca ilaginoso. Adem´as
p esen a mucosa, un disposi i o musculo acial y unas cubie as cu ´aneas. Los elemen os
´oseos que con o man la na iz se encuen an en la pa e supe io de la na iz y en la se-
pa aci´on de las osas nasales y es ´an compues os po las ap´o isis on ales del maxila , la
esco adu a nasal del maxila y los huesos nasales.
La composici´on ca ilaginosa de la na iz, que le apo a sopo e es uc u al y lexibili-
dad, es ´a ubicada en su mayo ´ıa en la base de la na iz y se compone de ca ´ılago hialino.
Los ca ´ılagos que la componen son: el ca ´ılago del abique, los ca ´ılagos nasales la e a-
les, los ca ´ılagos ala es mayo es y o os ca ´ılagos nasales acceso ios[23, pp. 422 - 424].
La na iz da paso a las osas nasales, uni´endose y empezando a desa olla las pa edes
de es a. Su composici´on in e na es de mucosa y piel. En la na iz se di e encian dos zonas
8
1.3. ANATOM´
IA Y FISIOLOG´
IA DE LAS FOSAS NASALES
sepa adas po un pliegue de ansici´on llamado limbo nasal, que sepa a el es ´ıbulo nasal,
ecubie o de piel, de la pa e supe io de la na iz, ecubie o de mucosa.
Las osas nasales cubie as de mucosa con in´uan la na iz, y en su ex emo m´as opues o
se ab e a la naso a inge po medio de las coanas, unas ape u as con o ma de embudo.
Las osas nasales es ´an sepa adas po el abique nasal. En las pa edes m´as dis ales se
encuen an es p o ube ancias de hueso esponjoso llamadas co ne es. En e es os co -
ne es se encuen an los mea os, odos ellos localizados en la zona u binal de las osas
nasales[23, p. 994]. Es as es uc u as ana ´omicas se obse an en la igu a 1.1.
Figu a 1.1: Ana om´ıa de las osas nasales.
Seg´un el ipo de mucosa se localizan dos zonas en las osas nasales: la zona espi a-
o ia y la zona ol a o ia. La egi´on espi a o ia es la enca gada de calen a , humidi ica ,
di igi el ai e a la egi´on ol a o ia y il a pa ´ıculas indeseadas en suspensi´on. La egi´on
espi a o ia es la que m´as in e ´es iene en es e abajo ya que es la zona m´as ex ensa y
eco ida du an e las ope aciones endosc´opicas nasales, ya que equie en accede a o as
9
CAP´
ITULO 1. INTRODUCCI ´
ON
es uc u as, como los senos, a a ´es de los o i icios de la na iz[23, p. 427].
Los senos pa anasales son es uc u as huecas odeadas de mucosa localizada en los
huesos colindan es a las osas nasales, es ando ecubie os de la misma mucosa que es as.
Es as es uc u as se c ean po in aginaci´on de las osas nasales, desa olladas a pa i
del nacimien o. C ecen desde el nacimien o has a alcanza su ama˜no m´aximo en la ado-
lescencia, ob eniendo una es uc u a acial de e minada. Dependiendo de cada indi iduo
a ´ıan conside ablemen e en ama˜no y po an o en olumen po lo que la ob enci´on
de im´agenes medicas pe sonalizadas del pacien e es impo an e en caso de eque i una
mayo p ecisi´on en la ope aci´on[23, pp. 998-999]. Los senos pa anasales son el maxila ,
on al, e moidal y es enoidal, si uados como se obse a en la igu a 1.2[28].
Figu a 1.2: Ubicaci´on de los senos pa anasales.
1.4. Endoscopio
El endoscopio es un ins umen o u ilizado pa a isualiza el in e io del cue po humano
en zonas sin isi´on di ec a. Su uncionamien o gene al es la ansmisi´on de las im´agenes
cap u adas del in e io del cue po hacia el ex e io , iluminado po una uen e de luz en el
10
1.4. ENDOSCOPIO
ex emo in oducido [31, pp. 1-8].
Ac ualmen e el endoscopio se p esen a en dis in os ipos e implemen aciones. El en-
doscopio ´ıgido, que es el usado en es e p oyec o, es aquel compues o po un ubo ´ıgido
no malmen e me ´alico que se in oduce en el cue po. Se obse a un endoscopio ´ıgido en
la igu a 1.3.
Figu a 1.3: Endoscopio ´ıgido.
En el ex emo m´as dis al al acul a i o se encuen an los disposi i os de iluminaci´on y
los de cap aci´on de im´agenes. La zona es iluminada median e ib a ´op ica que in oduce la
luz desde el ex e io , aunque ambi´en hay implemen aciones con ledes que es ´an ganando
e eno po el g an a ance de es as ecnolog´ıas, adem´as de su mejo endimien o y meno
cos e.
Con la minia u izaci´on de las c´ama as p oducidas po la g an solici ud po pa e del
me cado de los el´e onos m´o iles, los endoscopios se han bene iciado al pode in oduci -
11
CAP´
ITULO 1. INTRODUCCI ´
ON
las di ec amen e en el in e io de los disposi i os, incluso si u´andolos en el ex emo de
es e, e i ando el uso de len es y mejo ando la cap aci´on de im´agenes. Ac ualmen e se han
c eado endoscopios con capacidad de cap a im´agenes en es dimensiones del in e io
humano g acias a la mejo a de las ecnolog´ıas de es as c´ama as.
En el ex emo opues o del endoscopio se encuen a el conec o de iluminaci´on, que
ansmi e la luz de su uen e al ins umen o. Despu´es de es a se encuen a el acople con la
c´ama a, o el disposi i o de con ol si las c´ama as son in e nas. Tambi´en puede encon a se
len es pa a la isualizaci´on di ec a de las im´agenes po pa e del acul a i o.
Ac ualmen e el endoscopio se p esen a en dis in os ipos e implemen aciones. Se di e-
encian dos ipos p incipales de endoscopios: ´ıgidos y lexibles. En es e caso es in e esan e
es udia el ´ıgido ya que no se pod ´a localiza la pun a de uno lexible sin ene un modelo
de es e, ´unicamen e bas´andose en ca ac e ´ıs icas ex e nas del pacien e. Ac ualmen e cual-
quie endoscopio puede se ans o mado en lexible al localiza las c´ama as en la pun a,
no eniendo necesidad de ansmi i la luz po len es.
El endoscopio ´ıgido, que es el usado en es e p oyec o, es aquel compues o po un ubo
´ıgido no malmen e me ´alico que se in oduce en el cue po. Los endoscopios ´ıgidos apo -
an i meza al mo imien o de las ope aciones, pe mi iendo el acceso de o o ins umen al.
No malmen e inco po an un p isma en ´angulo en su ex emo in oducido pa a a ia el
angulo de isualizaci´on de es e, pudiendo a ia en e 30oy70
o.Pa aelp op´osi odees e
abajo, se usa un endoscopio ´ıgido con una longi ud de a illa de 30 cm, que pod ´a se
in oducido un m´aximo de 16 cm en el in e io del pacien e.
1.4.1. Ci ug´ıa endosc´opica endonasal
La ci ug´ıa endonasal ha e olucionado mucho con los a˜nos. An iguamen e se eque ´ıa
c ea incisiones, po ejemplo, pa a accede a a ´es de la osa canina[18, p. 18], o incluso
abe u as mayo es en el os o pa a accede a las es uc u as deseadas. Es os p ocedimien-
os al e aban mucho las es uc u as ci cundan es al ´a ea de in e ´es de la ope aci´on, po lo
12
1.4. ENDOSCOPIO
que se aumen aban los da˜nos, las moles ias del pacien e y el iempo de ecupe aci´on. En
casos como la ope aci´on ce cana al seno es enoidal es as ope aciones pod´ıas se pelig osas
po la ce can´ıa al ne io ´op ico y la a e ia ca ´o ida[18, p. 10].
La ci ug´ıa endosc´opica endonasal e i a las incisiones necesa ias pa a ene una isi´on
in e na di ec a del pacien e. El acul a i o in oduce po los o i icios nasales un endosco-
pio de mane a que se pueda isualiza el in e io del pacien e, accediendo di ec amen e
a las zonas de in e ´es qui ´u gico. Con la ci ug´ıa endosc´opica endonasal el iempo de p e-
pa aci´on pa a la ci ug´ıa se educe, los iesgos a ibuidos al acceso de la zona de in e ´es
se educen al m´ınimo, las moles ias po pa e del pacien e se educen y el iempo de e-
cupe aci´on mejo a signi ica i amen e. En la igu a 1.4 [35] se obse a un ejemplo de es e
p ocedimien o.
Figu a 1.4: Ci ug´ıa endosc´opica nasosinusal guiada
El p incipal caso de ci ug´ıa endosc´opica endonasal en pacien es es la inosinusi is
c onol´ogica, m´as conocida como sinusi is c onol´ogica, que consis e en alg´un ipo de in-
13
CAP´
ITULO 1. INTRODUCCI ´
ON
Ca ego ´ıa Ejemplo de pa olog´ıa
En e medades in lama o ias Sinusi is c ´onica
Deso denes neu o inol´ogicos Neu algia
En e medades neoplasicas Tumo es en la base del c ´aneo
Neu opa ´ıa ´op ica Comp esi´on del ne io ´o pico
En e medades cong´eni as Es enosis de las coanas
Tabla 1.1: Ejemplos de pa olog´ıas indicadas pa a su a amien o median e ci ug´ıa en-
dosc´opica.
lamaci´on de las ´ıas a´e eas o los senos ci cundan es. Es e ipo de in ecciones se a an
cuando los a amien os an ibi´o icos u o os medicamen os no su gen e ec o y se man iene
c ´onico, en endiendo po es o la p e alencia de la in lamaci´on po mas de es meses. En
la abla 1.1 se indica los casos pa a lo que se indica la ci ug´ıa endosc´opica nasal[2].
La endoscopia endonasal puede ealiza se median e anes esia local o gene al. En algu-
nos casos se puede implan a un disposi i o m´edico con o ma de balones que pe mi en
expandi el canal de los senos pa anasales en un p oceso llamado sinuplas ia.
El p oceso de ecupe aci´on depende de cada ope aci´on y cada pacien e. No malmen e
con la inclusi´on del endoscopio en las ci ug´ıas nasales no es necesa io la in oducci´on de un
ap´on nasal. Dependiendo de la complejidad de la ope aci´on la incomodidad, el sang ado
ylaconges i´ondesapa ecenenpocosd´ıas.
1.4.2. Pun os de e e encia aciales
Los pun os de e e encia aciales han sido ampliamen e es udiados y usados en ecno-
log´ıas de isi´on po compu ado . Aba can desde campos como la iden i icaci´on de pe so-
nas, el alineamien o acial, de ec a dis in os ipos de ca ac e ´ıs icas dependiendo de la
mo olog´ıa acial, de ecci´on de en e medades [10], en an opolog´ıa o ense pa a elaciona
un c ´aneo con im´agenes de la pe sona y mucho m´as [15].
14
1.5. OBJETIVOS
Los pun os de e e encia aciales son aquellos pun os que sean ´acilmen e econocibles
en la mayo ´ıa de las condiciones. Se especi ica que ienen que se de ec ables indepen-
dien emen e de la exp esi´on acial, la o ien aci´on de la iluminaci´on, que ep esen en zonas
ep esen a i as del modelo idimensional acial, como salien es o alles di e enciables en
dis in as posiciones de la cabeza.
Alguno de los mejo es pun os aciales son los ojos, los aguje os de la na iz y las
comisu as de los labios al se zonas con muchos con as es. Hay una g an can idad de
modelos dis in os con dis in a can idad en n´ume o de pun os de e e encia aciales. En el
caso de es e p oyec o, se usa un modelo cons i uido po 68 pun os aciales: 10 pa a las
cejas, 12 pa a los ojos, 9 pa a la na iz, 20 pa a la boca y 17 pa el con o no de la ca a
como se puede mos a en igu a 1.5 [37].
1.5. Obje i os
Los obje i os de es e abajo ma ca ´an la u a o plan de abajo que se conside a a
con inuaci´on de es a secci´on. El obje i o p incipal es el desa ollo de un conjun o de he-
amien as so wa e des inadas a o ece un sopo e al acul a i o en la ci ug´ıa endonasal.
Se conside a que es e disposi i o o ece en ajas sob e el me cado ac ual como un bajo
cos e, una con igu aci´on sencilla, e i a el con ac o con el pacien e y educi el espacio
necesa io, man eniendo una elocidad de ejecuci´on a iempo eal.
Pa a log a es o se disminuye la p ecisi´on que o ece la compe encia, lo que ,den o de
unos l´ımi es, es p escindible ya que el obje i o es localiza la c´ama a de isualizaci´on po
lo que no equie e una p ecisi´on milim´e ica.
Los obje i os de es e abajo son los siguien es:
Desa ollo de un p og ama pa a el guiado en ci ug´ıa endosc´opica nasosinusal
Es ima la o ien aci´on de la c´ama a espec o a la ca a del pacien e
15
CAP´
ITULO 2. AN ´
ALISIS
silue a de un obje o en conc e o desde sus pun os de is a m´as comunes, se ealiza una
b´usqueda de coincidencias den o de o a imagen.
2.3. Recons ucci´on acial idimensional
La econs ucci´on acial en el ´ambi o de la isi´on po compu ado consis e en la com-
posici´on de un modelo idimensional de una ca a a pa i de im´agenes bidimensionales.
Es e modelo es necesa io pa a o ien a un sis ema de coo denadas idimensional sob e
la ca a del pacien e. La econs ucci´on se ´a pe sonalizada pa a cada pacien e, e i ando
gene alizaciones y alcanzando la m´axima idelidad en el modelo.
El obje i o de es a econs ucci´on es la ecupe aci´on de la p o undidad del obje o de
im´agenes planas que solo pueden ubica el obje o en un espacio bidimensional. Pa a es o
se usan a ias im´agenes, a ias c´ama as o dis in os ipos de im´agenes. En es a secci´on se
p esen an las p incipales ´ecnicas pa a la econs ucci´on acial.
2.3.1. Es uc u a po somb as
La es uc u a po somb as o en ingl´es “shape- om-shading” se basa en la somb a que
gene an las dis in as es uc u as de la ca a [11]. Modelando la iluminaci´on que a ec a
al os o en cada imagen ob ienen la p o undidad de la ca a seg´un la somb a o b illos
gene ados en la ca a. Es ´an basados en ´ecnicas es ad´ıs icas de mane a que as un en e-
namien o p e io, po ejemplo con edes neu onales, o con un modelo gen´e ico del os o
humano, pe mi en ob ene una econs ucci´on acial de una imagen. Son muy sensibles al
posicionamien o e in ensidad de la iluminaci´on.
2.3.2. Mapas de p o undidad
Los mapas de p o undidad o en ingl´es “dep h maps” usan dos o m´as c´ama as posicio-
nadas de mane a que un mapa de sus di e encias pe mi a una isi´on idimensional [16].
Es e m´e odo busca una uncionalidad simila a los ojos humanos. Con es as di e encias
en e im´agenes se pueden es ima las dis in as p o undidades de la ca a en unos pocos
22
2.3. RECONSTRUCCI ´
ON FACIAL TRIDIMENSIONAL
segundos.
2.3.3. Es uc u a po mo imien o
La es uc u a po mo imien o o en ingl´es “s uc u e om mo ion” pe mi e ob ene
un modelo idimensional a pa i de im´agenes bidimensionales omadas desde dis in os
´angulos y posiciones [39]. Po cada imagen se c ea una nube de pun os que se elacio-
na con sus im´agenes pos e io es consecu i amen e, c eando un mapa de a iaci´on en e
pun os. A pa i de la e ce a imagen, es a ´ecnica p ueba dis in as o ien aciones de las
im´agenes has a que la es uc u a de la nube de pun os de odas las im´agenes p e ias se
uel e consis en e.
Es a ´ecnica pe mi e ob ene la p o undidad a pa i de una sola c´ama a. La ´ecnica
no es inge la o ien aci´on con la que oma las im´agenes, ni siquie a el o den. Aunque no
es inja, es a ´ecnica es muy sensible a la o ien aci´on ya que, dependiendo desde donde
se ome, da ´a unos esul ados po encialmen e dis in os a o os.
La nube de pun os p esen a p oblem´a ica, ya que las dis in as ´ecnicas pa a de ec a
es os pun os pueden de ol e pun os muy dis in os incluso en im´agenes consecu i as o
oma pa e del ondo. Pa a es o se localizan los pun os de e e encia aciales m´as signi i-
ca i os de la ca a, pas´andole la localizaci´on de es os po cada imagen de ec ada. De es a
o ma nos asegu a emos que solo se omen pun os signi ica i os pa a el p oceso y es ables
espec o a la o ien aci´on.
23
CAP´
ITULO 2. AN ´
ALISIS
24
Cap´ı ulo 3
Dise˜no de la soluci´on
3.1. In oducci´on
En es e cap´ı ulo se exponen las decisiones omadas pa a desa olla el sis ema p o-
pues o. Pa a es o en una p ime a secci´on se analiza ´an las he amien as usadas pa a la
c eaci´on del disposi i o, an o ha dwa e como so wa e. En la segunda secci´on se p esen a
la es uc u aci´on del so wa e desa ollado y sus elaciones.
3.2. An´alisis de las he amien as
En es a secci´on se p esen an las p incipales he amien as que se encuen an ac ual-
men e pa a el desa ollo del abajo. T as el an´alisis de sus p es aciones se p ocede ´a a la
selecci´on de aquellas que se adap en mas a las necesidades del p oyec o. Dependiendo del
ipo de he amien a a usa , es a secci´on se di ide en he amien as ha dwa e y so wa e.
3.2.1. He amien as ha dwa e
El conjun o de he amien as ha dwa e es a compues o po odos aquellos elemen os
´ısicos sob e el que se sus en a el so wa e. No malmen e se elaciona con la pa e angible
de una compu ado a o un sis ema in o m´a ico, comp endiendo sus elemen os el´ec icos,
elec ´onicos, elec omec´anicos y mec´anicos. Pa a es e abajo, las he amien as ha dwa e
a analiza son la c´ama a con la que se ob end an las im´agenes del pacien e, y el sis ema
25
CAP´
ITULO 3. DISE ˜
NO DE LA SOLUCI ´
ON
Pi Module 2 SJCAM M10+ Logi ech C160
Resoluci´on senso (MP) 812 0.3
Resoluci´on max ´ıdeo (px) 1920 x 1080 2560 x 1440 640 x 480
FOV (o)49 - 62 170 ( egulable) 50
FPS max. 90 120 15
Ba e ´ıa No 900 mAh No
Conexi´on Cable cin a Wi i, cable Cable, USB 2.0
Dimensiones (cm) 2.5 x 2.4 5x4x4 9x6x4
P ecio ac ual (e)20 65 10
Tabla 3.1: Especi icaciones ´ecnicas de las c´ama as.
pa a el p ocesado de la in o maci´on.
C´ama a
Cuando se habla de c´ama a, gene almen e se e ie e a las c´ama as ipo pinhole que
mapean el mundo idimensional a pa i de los ayos de luz que in ie en en su senso ,
conocido como el cen o de la c´ama a. Es e p oyec o es a en ocado en c ea un disposi i o
de bajo cos e, po lo an o las c´ama as analizadas cumpli an con el equisi o de se ba a as
y accesibles a odo ipo de publico. Las c´ama as que se analiza ´an son las siguien es:
Raspbe y pi Came a Module 2. La segunda e si´on del m´odulo de la amosa placa
compu ado a Raspbe y Pi.
SJCAM M10+. C´ama a de acci´on de la compa˜nia SJCAM, de dise˜no c´ubico y con
g abaci´on has a esoluci´on 2K.
Webcam Logi ech C160.
Las especi icaciones ´ecnicas de es os disposi i os se pueden obse a en la abla 3.1.
26
3.2. AN ´
ALISIS DE LAS HERRAMIENTAS
Una ez obse adas sus ca ac e ´ıs icas se ha op ado po la c´ama a SJCAM M10+ pa a
el desa ollo del abajo po las siguien es conclusiones:
Pude se usada an o inalamb icamen e y con unci´on c´ama a web al conec a la al
o denado .
La capacidad de egula el ´angulo de isi´on pe mi e selecciona aquel en el que se
isualice la ca a del pacien e, independien emen e del ama˜no del endoscopio.
Aun siendo m´as ca a que las o as opciones, sigue eniendo un p ecio muy compe-
i i o pa a sus especi icaciones.
Su ama˜no es ela i amen e peque˜no pa a ene au onom´ıa.
Su esoluci´on y su elocidad de im´agenes po segundo es supe io a las al e na i as.
Sis ema de p ocesamien o
El so wa e debe ejecu a se en alguna pla a o ma que pe mi a el an´alisis de los da os
in oducidos y ob ene unos esul ados que sean aco des a los espe ados. Es e sis ema
debe cumpli los equisi os de po encia compu acional y compa ibilidad con las lib e ´ıas
so wa e eque idas. Pa a es e abajo se conside a an los siguien es sis emas:
Leno o ideapad Z510. Po a il de gama media-al a de la ma ca Leno o de mediados
de 2014.
Raspbe y Pi 3 Model B. Compu ado de placa educida amosa po su ama˜no
compac o y su educido p ecio.
Las especi icaciones ´ecnicas de es os disposi i os se pueden obse a en la abla 3.2.
Viendo sus ca ac e ´ıs icas se obse a que aunque la Raspbe y Pi iene una mejo
elaci´on calidad/p ecio, es a lejos de ene la po encia de p ocesado del po a il, adem´as
de o ece es e ´ul imo un sis ema comple o sin ene que a˜nadi ning´un pe i ´e ico adicional.
Po lo an o el sis ema usado pa a desa olla es e abajo se ´a el po ´a il Leno o, mien as
que en abajos u u os se p opond ´a op imiza el sis ema pa a la placa Raspbe y.
27
CAP´
ITULO 3. DISE ˜
NO DE LA SOLUCI ´
ON
Leno o ideapad Z510 Raspbe y Pi 3 mod B
Vel. P ocesado (GHz) 2.2 1.2
RAM (GB) 8 1
Memo ia (TB) 1 No in eg ada (SD)
Pan alla 15.6” No in eg ada (DSI)
Pe i e icos en ada Teclado y ouchpad No in eg ada (USB)
C´ama a y mic ´o ono Si No in eg ados (CSI, USB)
Pue os en ada USB 3.0, Lec o a je as USB 3.0, 40 GPIO pins
Conec i idad Wi i, LAN, Blue oo h Wi i, LAN, Blue oo h
Dimensiones (cm) 38 x 26 x 2.5 8.7 x 5.8 x 0.5
P ecio ac ual (e)750 30
Tabla 3.2: Ca ac e ´ıs icas ´ecnicas de los sis emas de p ocesamien o.
3.2.2. He amien as so wa e
En es e cap´ı ulo se mues an las p incipales he amien as so wa e usadas en es e
p oyec o. Algunas lib e ´ıas equie en de o as en las que se basan, es as ´ul imas no se
menciona an, apo ando las e e encias pa a que el lec o pueda amplia la in o maci´on
aqu´ı ecogida.
Ubun u 16.04
Ubun u es una dis ibuci´on o dis o del sis ema ope a i o GNU/Linux. Se dis ibuye
como so wa e lib e y abie o siendo una de las dis os mas usadas de con un 49 % de
cuo a en el me cado de sis emas ope a i os. Aunque o ece so wa e pa a se ido es y
pa a sis emas en la nube, es econocido po su sis ema pa a el usua io medio o eciendo
una g an acilidad de uso y dise˜no ag adable[9].
Py hon 3.6
Py hon es un lenguaje de p og amaci´on in e p e ado, cen ado en una sin axis simple
y una g an elocidad de desa ollo. Aunque no malmen e es usado como un lenguaje de
p og amaci´on o ien ado a obje os, sopo a m´ul iples pa adigmas. Posee una licencia de
28
3.2. AN ´
ALISIS DE LAS HERRAMIENTAS
c´odigo abie o compa ible con GNU. Ac ualmen e se encuen an dos e siones incompa-
ibles en e si, la 2.x y la 3.x. Py hon es mul ipla a o ma, pudiendo ejecu a se en Linux,
Mac OS o Windows[8].
OpenCV
OpenCV es una amosa lib e ´ıa de isi´on po compu ado desa ollada en sus inicios
po in el. Su licencia BSD que le pe mi e el lib e uso pa a come cializaci´on y desa ollo
la han con e ido en una de las lib e ´ıas mas usadas desde su libe aci´on en 1999. Es ´a
es uc u ada po m´odulos, de mane a que se pueden usa las ca ac e ´ıs icas b´asicas o i
a˜nadiendo uncionalidades seg´un se equie a. Es a desa ollada en C/C++, pe o pe mi e
el desa ollo en algunos lenguajes como Ja a o Py hon. OpenCV es mul ipla a o ma[7].
Dlib
Dlib es una lib e ´ıa compues a po un conjun o de he amien as des inadas la c ea-
ci´on de so wa e de machine lea ning y o os sec o es. Es una lib e ´ıa de c´odigo abie o
ype mi esuusoa a ´esdeunalicenciade ipoBoos So wa e License.Susdi e sos
componen es cub en ´a eas como el ´algeb a, hilos, in e aces g ´a icas, es uc u a de da os,
machine lea ning, p ocesado de im´agenes, minado de da os, a amien o de XML, op i-
mizaci´on num´e ica, edes bayesianas y muchos m´as. En e sus p incipales ca ac e ´ıs icas
des aca la g an can idad de documen aci´on que p esen an sus m´odulos y la g an po abi-
lidad de su c´odigo[4].
NumPy
NumPy es una lib e ´ıa de Py hon que inco po a la capacidad de abajo con a ays
y ma ices de da os muy op imizado. NumPy es de c´odigo abie o y apo a unciones
ma em´a icas de al o ni el[6].
Ma plo lib
Ma plo lib es una lib e ´ıa de Py hon que pe mi e la ep esen aci´on de da os en a ays
de NumPy en g ´a icas 2D o 3D con g an acilidad. En palab as de su c eado John Hun e
29
CAP´
ITULO 3. DISE ˜
NO DE LA SOLUCI ´
ON
”ma plo lib ies o make easy hings easy and ha d hings possible”. Es de c´odigo abie o
y mul ipla a o ma[5].
3.3. A qui ec u a so wa e
En es a secci´on se mues a la es uc u a que sigue la implemen aci´on, di e enciada en
m´odulos uncionales. Cada uno de es os m´odulos es ´an compues os po una o m´as clases
con unciones elacionadas.
3.3.1. Es uc u aci´on
El p og ama se di ide en nue e m´odulos. De es os, se desa olla an aquellos que sean
conside ados p incipales, ya que el es o son m´odulos de sopo e que pe mi en ealiza
unciones secunda ias o si en como in e az de las lib e ´ıas usadas. Los m´odulos suple-
men a ios son los siguien es:
Classi ie . Es e m´odulo unciona como una in e az en e los m´e odos de clasi icaci´on
de OpenCV y los dem´as m´odulos.
U ils. M´odulo compues o po m´e odos usados ampliamen e po odos los m´odulos,
con p op´osi o gene al.
Plo . M´odulo que hace uso de la lib e ´ıa Ma plo lib pa a ep esen a los g ´a icos y
esul ados.
Video. Es e m´odulo con iene clases pa a la manipulaci´on de ´ıdeos. Con iene a la
clase Came a que ecupe a el lujo de im´agenes cap u ado po la c´ama a.
M´odulo de imagen
Es e m´odulo con iene las clases enca gadas de ecupe a , almacena y manipula
im´agenes. Es dependien e de las lib e ´ıas p opias de Py hon y de OpenCV, adem´as del
m´odulo U ils. Sus clases se enca gan de la ca ga, modi icaci´on, il ado y almacenado de
las im´agenes.
30
3.3. ARQUITECTURA SOFTWARE
Las dos clases que componen el m´odulo son las siguien es:
F ame. Clase enca gada de con ene la in o maci´on de la imagen y o ece m´e odos
pa a la ecupe aci´on y manipulaci´on de ca ac e ´ıs icas p opias de es a. Pe mi e la
ca ga y gua dado de m´ul iples im´agenes, su ep esen aci´on, el il ado y la ex acci´on
de ca ac e ´ıs icas.
D awe . Es a clase se enca ga de pin a dis in os ipos de o mas en una imagen.
Pe mi e ep esen a pun os y ec ´angulos de una o ma ´apida y ´acil al es o de
m´odulos.
M´odulo de de ecci´on
Es e m´odulo con iene clases enca gadas de de ec a los elemen os ca ac e ´ıs icos de la
ca a. O ece el m´aximo ni el de abs acci´on espec o a la de ecci´on de AOI en el os o
del pacien e. Es deci , adap a los pa ´ame os de b´usqueda pa a cada ipo de elemen o a
de ec a , eliminando la necesidad de de e mina los a iempo eal minimizando la supe -
isi´on en el p oceso de de ecci´on.
Es e m´odulo es ´unicamen e dependien e del m´odulo Classi ie , del que ob end ´a la
uncionalidad de clasi icaci´on, p opo cionando una se ie de pa ´ame os p ede inidos pa a
cada ocasi´on.
Las clases que componen es e m´odulo son las siguien es:
De ec o . Es la enca gada de de ec a un obje o en pa icula en una imagen de
la clase F ame dado un conjun o de da os en enados pa a ese obje o. Po de ec o
de ec a ca as, y al pode de ol e a ios esul ados, de ol e ´a el mejo esul ado
localizado.
EyesDe ec o , NoseDe ec o y Mou hDe ec o . Ex ienden a la clase De ec o . Es as
clases compa en uncionalidad implemen ando de ec o es espec´ı icos pa a las dis-
in as pa es de la ca a. Hacen uso de secciones de la ca a pa a es ingi la zona de
b´usqueda de cada pa e.
31
CAP´
ITULO 4. ALGORITMOS
Figu a 4.2: Imagen in eg al. Imagen in eg al aplicada a una secci´on de un ca ac e ´ıs ica
de Haa .
de echa, in e io izquie da e in e io de echa espec i amen e, al como se mues a en la
igu a 4.2 (de echa). La ´o mula pa a ob ene la imagen in eg al del ec ´angulo se ´a la
siguien e:
II(e1,e
2,e
3,e
4)=II(e4)II(e3)II(e2)II(e1) (4.4)
4.2.3. Clasi icado es
Pa a esol e el p oblema de la can idad de ca ac e ´ıs icas dis in as de Haa , se p o-
pone el uso de Adaboos [41]. El uncionamien o p incipal de Adaboos es la b´usqueda de
muchos clasi icado es que uncionen lige amen e mejo que uno alea o io, llamados clasi-
icado es d´ebiles. Una ez encon ados es os clasi icado es, se uni ican en un clasi icado
ue e, ponde ando a cada uno de los d´ebiles seg´un su desempe˜no. Es a comp obado c´omo
es e m´e odo con e ge en clasi icado es obus os.
38
4.2. DETECCI ´
ON DE CARAS
Clasi icado d´ebil
Pa a ob ene los clasi icado es simples se ob iene un n´ume o de mues as ejemplo,
que con engan elemen os que se deban econoce como posi i os y o os como nega i os.
Conside emos la aplicaci´on de una ca ac e ´ıs ica de Haa x a una escala y en una posici´on
ija en cada una de las im´agenes de ejemplo. La aplicaci´on de la ca ac e ´ıs ica se mode-
la como una unci´on (x) que iden i ica el alo del con as e esul ado de ese il o de Haa .
Seg´un el esul ado de la unci´on (x) aplicada a cada una de las mues as, se in odu-
ce el umb al ⇥que las sepa a en posi i as y nega i as. Es e umb al es el enca gado de
clasi ica las im´agenes, po lo an o el clasi icado d´ebil debe asegu a que su esul ado
es mejo que una clasi icaci´on alea o ia. El p oceso simpli icado es el que apa ece en la
igu a 4.3.
Figu a 4.3: P oceso simpli icado pa a la ob enci´on de un clasi icado d´ebil.
Siendo las mues as azules las posi i as (ca as) y las ojas nega i as (no ca as), el
umb al ⇥se si ´ua de mane a alea o ia en su es ado inicial (1). El esul ado de es e p ime
paso es la clasi icaci´on co ec a e inco ec a de mane a alea o ia de las ca ac e ´ıs icas. Las
mues as mal clasi icadas aumen a ´an su ponde aci´on, de mane a que el umb al in en a ´a
minimiza el e o en la clasi icaci´on ajus ´andose en mayo medida a es as (2). El p oceso
se epi e (3) has a ob ene una se ie de clasi icado es que jun os compond ´an el clasi ica-
do d´ebil (4). Las on e as de decisi´on de cada clasi icado sepa an el conjun o en a ias
secciones, y cada secci´on end ´a un alo posi i o o nega i o seg´un la mayo can idad de
mues as que se hayan conseguido en cada umb al.
39
CAP´
ITULO 4. ALGORITMOS
Al c ea un clasi icado a pa i de un umb al, es e do a ´a de alo es posi i os o
nega i os seg´un el ipo de mues a. Po lo an o, puede da se el caso de que nues o
clasi icado sea un buen de ec o de no ca as de las mues as ejemplo. Es o no ep esen a
ning´un p oblema si se quisie a clasi ica elemen os den o de las mues as ejemplo. Pe o
en la p ´ac ica hay muchos obje os no ca a que no se han enido en cuen a, pudiendo
ob ene un esul ado no con olado. Po lo an o se in oduce una a iable bina ia ↵que
con ola ´a que los umb ales asignen co ec amen e los elemen os de ca a como posi i os
yloselemen osnoca acomonega i os,comoseobse aenlaecuaci´on4.5
h(x)=8
>
<
>
:
↵ (x)<✓
↵ (x)✓
con ↵2{1,+1}(4.5)
Pa a ob ene el pa ´ame o del umb al ⇥, se an p obando dis in os alo es de es e,
ob eniendo elemen os co ec amen e clasi icados y o os inco ec amen e. Inicialmen e o-
dos los elemen os ienen una ponde aci´on id´en ica, pe o al i p obando dis in os alo es
del umb al, aquellos elemen os que sean inco ec amen e clasi icados e ´an aumen ada
es a ponde aci´on, y aquellos que sean bien clasi icados, disminuida. Con es o se consigue
aumen a la necesidad de una buena clasi icaci´on en aquellos elemen os que hayan sido
clasi icados inco ec amen e en mayo medida.
En cada i e aci´on en la b´usqueda de un clasi icado d´ebil, se o denan los elemen os
en o den descenden e seg´un el alo que les han asignado la unci´on (x) y se localiza el
umb al que minimice el e o , es deci , que la suma de las ponde aciones que es ´an mal
clasi icadas sea m´ınimo. Una ez ob enido un clasi icado d´ebil pa a cada ca ac e ´ıs ica
de Haa se selecciona aquella clasi icaci´on con un e o m´as peque˜no, eliminando el es o
de ca ac e ´ıs icas pa a ese caso.
Clasi icado ue e
La ac ualizaci´on de los pesos pa a la siguien e i e aci´on w( +1) dependen del peso
de la i e aci´on an e io w( ) y de un ac o de ac ualizaci´on u(e )comoseap eciaen
40
4.2. DETECCI ´
ON DE CARAS
la ecuaci´on 4.6. Es e ac o depende ´a del e o del clasi icado , que al se al menos un
poco mejo que uno alea o io, se deduce que e <0.5. Po lo an o, siendo yiel esul-
ado espe ado, el ac o de ac ualizaci´on se ´a mayo que 1 si las mues as han es ado
mal clasi icadas, aumen ando su ponde aci´on, y un n´ume o meno que 1 a aquellas bien
clasi icadas, disminuyendo su ponde aci´on como se ap ecia en la ecuaci´on 4.7.
wi( +1)= 1
2u(e )wi( ) (4.6)
u(e )=8
>
<
>
:
1
e h(xi)6=yi
1
1e h(xi)=yi
(4.7)
El pa ´ame o de i e aciones es ijado p e iamen e T. El clasi icado ue e es esul ado
de la suma del clasi icado d´ebil ob enido en cada i e aci´on mul iplicado po un ac o de
ponde aci´on ide ecuaci´on 4.9, que depende ´a del e o de es e clasi icado . Es e ac o
ende ´a a in ini o cuando el e o ienda a 0, y ende ´a a 0 cuando el e o ienda a 0.5,
que se ´ıa equi alen e a un clasi icado alea o io. Seg´un el signo de es a suma, el esul ado
se ´a clasi icado como un ejemplo posi i o o nega i o, como se ap ecia en la ecuaci´on 4.8
H(x)=sign T
X
i=1
ihi(x)!(4.8)
i=1
2log ✓1e
e ◆(4.9)
4.2.4. Cascada de clasi icado es
La cascada de clasi icado es conca ena una se ie de clasi icado es que, en un o den
de e minado, iden i ican una ca a en cada sub en ana de la imagen. No malmen e los
clasi icado es con un al o cos e compu acional solo se ejecu an al inal de la cascada si
aquellos con bajo cos e iden i ican una ca a. Po lo an o ´unicamen e hab ´a una ca a si
el ´ul imo clasi icado da un esul ado posi i o, en caso de que alguno die a un esul ado
nega i o, esa zona se ´a desca ada como se puede obse a en la igu a 4.4
41
CAP´
ITULO 4. ALGORITMOS
Figu a 4.4: Cascada de clasi icado es aplicada sob e una sub en ana
4.3. Pun os de e e encia aciales
El algo i mo de de ecci´on de pun os de e e encia aciales es ´a basado en el desc ip-
o de ca ac e ´ıs icas HOG (His og am O ien ed G adien ), un clasi icado lineal y una
en ana deslizan e que eco e la imagen. En es e cap´ı ulo se cen a ´a especial a enci´on
en el desc ip o , a˜nadiendo algunos de alles b´asicos del clasi icado lineal y la en ana
deslizan e.
4.3.1. HOG
El desc ip o de ca ac e ´ıs icas HOG es a basado en la a iaci´on de con as es que
odean a un p´ıxel en pa icula (x, y) en una imagen I [17]. Es e desc ip o puede usa se
an o en im´agenes en escalas de g ises o RGB, pe o ´unicamen e se a a desa olla en
im´agenes de escala de g is en es e p oyec o. El c´alculo de la a iaci´on de con as e se
ealiza an o en e ical como en ho izon al seg´un la ecuaci´on 4.10. Se ob iene como
esul ado el esal ado de los bo des de la imagen.
gx=I(x+1,y)I(x1,y)
gy=I(x, y +1)I(x, y 1)
(4.10)
Una ez ob enido los g adien es en ambas di ecciones pa a cada p´ıxel, gxpa a el
g adien e e ical y gypa a el ho izon al, se ob iene el ´angulo ⇥en la ecuaci´on 4.11, y
magni ud en la ecuaci´on 4.12.
42
4.3. PUNTOS DE REFERENCIA FACIALES
✓= a c an ✓gy
gx◆(4.11)
=qg2
x+g2
y(4.12)
Ob enidos los alo es de ´angulo y magni ud pa a cada p´ıxel se c ean dos ma ices con
el mismo ama˜no de la imagen o iginal con es os dos alo es. Es a ep esen aci´on a ni el
de p´ıxel iene que se adap ada pa a el uso en un clasi icado , ya que es e equie e una
en ada con dimensi´on ija que ep esen e globalmen e al elemen o. Adem´as, es a ep e-
sen aci´on de p´ıxel es muy sensible a a iaciones en la o ma como en la localizaci´on del
obje o en la imagen. Se usa ´a un ec o de ca ac e ´ıs icas pa a ep esen a la imagen que
cap u e la o ma global del obje o de in e ´es.
Pa a esol e el p oblema de la adap aci´on a un ec o de ca ac e ´ıs icas, HOG di ide
la imagen en celdas de un ama˜no ijo, calculando en cada una de ellas el his og ama, e-
ag upando inalmen e es os pa a c ea el ec o de ca ac e ´ıs icas. Con es os his og amas
se ob iene la in o maci´on de las o ien aciones dominan es en la imagen y la dis ibuci´on
espacial de es os. Es e p oceso se esume en la igu a 4.5.
Figu a 4.5: Vec o de ca ac e ´ıs icas a pa i de los his og amas de cada celda
El p ime paso es la c eaci´on de las celdas. No malmen e se usan celdas cuad adas, con
un ama˜no de lado de 6 a 8 p´ıxeles. En el his og ama, cada uno de los dis in os alo es
ienen dados po un ango del ´angulo p opio de cada p´ıxel, pudiendo es os i de 0oa
43
CAP´
ITULO 4. ALGORITMOS
360ocon ando con el signo, o de 0oa180
osi se elimina el signo, siendo es a ´ul ima la
m´as com´un. Cada alo del his og ama comp ende un ango de ´angulos. Po ejemplo, sin
con a el signo, los 180ose di iden en e 9 angos que end ´a el his og ama, po lo ango
le co esponden 20o, al p ime o de 0
oa20
o,alsegundode20
oa40
o, has a el no eno
160oa180
o. Al elimina el signo, g adien es con misma di ecci´on y sen ido in e sos se
conside an equi alen es, si u´andose en el mismo ango del his og ama. Es e p oceso se
puede obse a en la igu a 4.6
Figu a 4.6: C eaci´on del his og ama a pa i de los ´angulos ⇥de las di ecciones de con-
as e en cada p´ıxel.
La ep esen aci´on ma em´a ica de es e ´ul imo p oceso, conside a C la celda ac ual, k
como cada uno de los angos en los que se di ide el his og ama, ⇥el n´ume o de ´angulos
que le co esponde a cada alo del his og ama, g el g adien e de cada p´ıxel y h a la
magni ud asociada a cada alo , de la ecuaci´on 4.13. Adem´as, un ac o wkcon ola que
el g adien e ac ual co esponda al alo del his og ama que se es ´a calculando, como se
puede obse a en la ecuaci´on 4.14
h(k)= X
(x, y)2C
wk(x, y)g(x, y) (4.13)
wk(x, y)=8
>
<
>
:
1(k1) ✓ ✓(x, y)k✓
b en caso con a io
(4.14)
Un p oblema que se da al clasi ica de es a mane a los g adien es, es que dos de ellos
con ´angulos muy simila es pueden acaba en dis in os angos del his og ama si es ´an
44
4.3. PUNTOS DE REFERENCIA FACIALES
sepa ados jus amen e po la on e a de es os. En es e caso se asignan ambos g adien es
a los dos angos aplicando un ac o a cada uno que depende de la dis ancia de cada
g adien e al cen o del ango del his og ama. El ac o ga an iza que si la dis ancia del
ango al cen o es mayo que ⇥, el ac o sea ce o. El ac o wkse ac ualiza seg´un la
ecuaci´on 4.15.
wk=m´ax✓0,1✓(x, y)✓k
✓ ◆(4.15)
Un p oblema simila se p oduce en las celdas, ya que dos pun os muy ce canos en e
si pueden queda sepa ados en dis in as celdas, siendo el esul ado sensible a peque˜nas
a iaciones de la o ma del obje o. Se esuel e usando la misma es a egia, cada p´ıxel
se asigna a las cua o celdas m´as ce canas, asign´andole una ponde aci´on pa a cada una
seg´un su dis ancia con su cen o.
En o mulaci´on ma em´a ica wij
x(x, y), seg´un la ecuaci´on 4.16, y wij
y(x, y), seg´un la
ecuaci´on 4.17, co esponden al ac o en la di ecci´on x e y, dij
xyd
ij
y ep esen an la dis ancia
en ambas di ecciones y an o x como y ep esen an la dis ancia en e cen os de celdas en
las dos di ecciones. El his og ama esul ado se ac ualiza seg´un la ecuaci´on 4.18
wx
ij(x, y) = m´ax ✓0,1dx
ij
x◆(4.16)
wy
ij(x, y) = m´ax ✓0,1dy
ij
y◆(4.17)
hij(x, y)=X
(x, y)
wx
ij(x, y)wy
ij(x, y)wk(x, y)g(x, y) (4.18)
Finalmen e, pa a p esen a in a ianza a dis in os ipos de iluminaci´on que a ec en al
obje o, el desc ip o HOG no maliza los his og amas localmen e. Pa a es o las celdas se
o ganizan en bloques cuad ados, siendo el his og ama de cada bloque la conca enaci´on
de cada his og ama co espondien e a las celdas. Cada bloque se di e encia del siguien e
po una celda, po lo an o cada celda apo a ´a su his og ama a an os bloques como
celdas en en en cada bloque, pe o en cada uno o ece ´a un his og ama dis in o al se
no malizado independien emen e po cada bloque, es o o ece una mejo in a ianza a la
iluminaci´on. El his og ama de cada bloque se ep esen a median e un ec o , y pa a
45
CAP´
ITULO 4. ALGORITMOS
no maliza usa un alo ✏muy p ´oximo a ce o que asegu a la no di isi´on en e ce o en
ecuaci´on 4.19 de no malizaci´on.
0=
pk k2+✏siendo =(h1,h
2,...,h
n) (4.19)
Es e esul ado se ´a el ec o de ca ac e ´ıs icas que se le pasa ´a al clasi icado lineal,
enca gado de localiza si un elemen o dado co esponde o no al obje o que se in en a lo-
caliza . Pa a es o, se u ilizan dis in as ´ecnicas de en enamien o que c ea un hipe plano
capaz de sepa a los elemen os de en enamien o posi i os y nega i os de la o ma mas
e ec i a.
El m´e odo de en ana deslizan e, consis e en aplica HOG a la imagen sob e un
ec ´angulo de ama˜no de e minado, de mane a que no se aplique a la ez en oda la
imagen, es e ec ´angulo i ´a desplaz´andose po la imagen buscando los obje os de in e ´es
a di e en es escalas.
4.4. S uc u e om mo ion
La es uc u a po mo imien o, como se ha comen ado p e iamen e, es una ´ecnica de
econs ucci´on idimensional de supe icies median e la compa aci´on de dos im´agenes e-
p esen a i as del obje o a econs ui . Pa a es o se ealiza una de ecci´on de pun os a cada
imagen. No malmen e se c ea una nube de pun os de ca ac e ´ıs icas in a ian es, pe o en
es e caso los pun os que se an a de ec a es ´an espec´ı icamen e de inidos como los pun os
de e e encia aciales.
Los mo imien os de cada pun o en dos im´agenes pe mi e iden i ica la o ien aci´on de
la c´ama a en los ins an es de iempo en los que se oma cada o og a ´ıa. Una ez ob e-
nidas las o ien aciones, se le asigna a cada pun o una posici´on idimensional median e
un p oceso de iangulaci´on. Finalmen e, un ajus e llamado “bundle adjus men ” pe mi e
minimiza el e o acumulado de la econs ucci´on [21].
46
4.4. STRUCTURE FROM MOTION
Median e esa ´ecnica se consigue un posicionamien o de los pun os de e e encia acial
del pacien e en el espacio idimensional, pe o es e posicionamien o no es absolu o, sino
ela i o en e cada uno de los pun os, po lo an o el ac o de escalado se pie de en la
econs ucci´on. Es deci , el ama˜no de la ca a econs uida segu amen e di e i ´a con las
medidas en el mundo eal, pe o ´unicamen e po un ac o de escala que se puede ob ene
elacionando una de es as medidas con una del mundo eal p e iamen e conocida. Pa a
conoce es e ac o de escala se ubica ´a el endoscopio en la pun a de la na iz del pacien e,
al se es a uno de los pun os de e e encia acial. Con es o, ob end emos la pose de la
c´ama a y haciendo una egla de es con la longi ud del endoscopio, se ob end ´a el ac o
de escala necesa io pa a ep esen a la ca a del pacien e co ec amen e.
4.4.1. Co espondencia de pun os
No malmen e en si uaciones en las que se p esen e una nube de pun os, hay que ealiza
una co espondencia en e desc ip o es, es deci , dado un pun o en una imagen cual es
el pun o de la imagen siguien e m´as simila . En es e caso, al ene un n´ume o ini o de
pun os y es a o denados, el algo i mo solo debe elaciona las coo denadas de un pun o
con las del pun o en la misma posici´on de la siguien e imagen.
4.4.2. Recons ucci´on inicial
Ob ene el mo imien o consis e en conoce la o aci´on y aslaci´on que han ocu ido
de un ins an e al consecu i o de la c´ama a. En es a si uaci´on inicial, se oma ´unicamen e
el p ime pa de im´agenes ob enidas. Con la co espondencia en e las coo denadas de los
pun os de cada imagen se ob end ´an la ma iz undamen al y la esencial, que ep esen an
los mo imien os ela i os en e c´ama as [36].
Con las dos p ime as im´agenes omadas se nos p esen a el escena io de la igu a 4.7.
Se pueden conside a las dos o og a ´ıas como omadas de dis in as c´ama as con pa ´ame-
os in ´ınsecos id´en icos. La geome ´ıa epipola nos pe mi e ob ene la ep esen aci´on del
pun o idimensional X en la segunda imagen, ´unicamen e conociendo la posici´on en la
p ime a. Es a elaci´on iene dada po la ma iz undamen al.
47
CAP´
ITULO 4. ALGORITMOS
Figu a 4.8: Relaciones en e pun os en P3P.
en la ecuaci´on 4.28.
(PA)2+(PB)22PAPB cos(↵)=(AB)2(4.28)
Aplicando en el espacio idimensional se llega al sis ema de la ecuaci´on 4.29. Resol-
iendo es e sis ema en combinaci´on con RANSAC y aplicando el pun o D se ob iene la
o ien aci´on de la c´ama a.
8
>
>
>
>
>
<
>
>
>
>
>
:
(PB)2+(PC)22·PB ·PC ·cos(↵ ,w)(BC)2=0
(PA)2+(PC)22·PA·PC ·cos(↵u,w)(AC)2=0
(PA)2+(PB)22·PA·PB·cos(↵u, )(AB)2=0
(4.29)
4.5.2. EPnP
Pa a esol e la ´ecnica PNP se di e encian los m´e odos i e a i os y no i e a i os. En
es e caso el EPnP (E icien Pe spe c i e-n-Poin s)esunm´e odonoi e a i opa ala
esoluci´on de sis emas con una n>3 sin p´e dida de p ecisi´on que o ece una mejo a en
e iciencia espec o a o as al e na i as [33].
Se hace uso de cua o pun os de con ol seleccionados a bi a iamen e median e los
cuales se ep esen a ´an los pun os del obje o. El pun o de con ol j en el espacio idimen-
sional es cj
wmien as que su ep esen aci´on en la imagen es cj
c.Delamismamane ase
ep esen an los pun os en el espacio idimensional pj
w,conecuaci´on4.30,yenlaimagen
54
4.5. ESTIMACI ´
ON DE LA POSE
pj
c,conecuaci´on4.31.Siendo↵una ponde aci´on aplicada a las coo denadas de con ol,
con ecuaci´on 4.32.
pw
i=
4
X
j=1
↵ij ·cw
j(4.30)
pc
i=
4
X
j=1
↵ij ·cc
j(4.31)
4
X
j=1
↵ij = 1 (4.32)
Po lo an o la ecuaci´on 4.33 ep esen a el sis ema ac ualizado a esol e pa a EPnP.
wi·2
6
6
6
4
ui
i
1
3
7
7
7
5
=2
6
6
6
4
u0uc
0 c
001
3
7
7
7
5
4
X
j=1
↵ij 2
6
6
6
4
xc
j
yc
j
zc
j
3
7
7
7
5
(4.33)
Donde las inc´ogni as son las 12 coo denadas de los pun os de con ol y los pa ´ame os
p oyec i os wi. Se obse a de la ´ul ima ila que wi=P4
j=1 ↵ij =zc
jpo lo an o se ob iene
el sis ema de la ecuaci´on 4.34.
4
X
j=1
↵ij uxc
j+↵ij (ucui)zc
j=0
4
X
j=1
↵ij yc
j+↵ij ( c i)zc
j=0
(4.34)
Es e sis ema ya no depende del ac o wiy conca enando pa a odos los pun os ob e-
nemos un sis ema linea con o ma:
M·x= 0 (4.35)
Donde x es un ec o que con iene a los cua o pun os de con ol con sus 12 coo denadas
y M es una ma iz 2n x 12 ob enida de los pa ´ame os de las dos ecuaciones an e io es.
Con es o el conjun o de esul ados se ´a el Ke nel o conjun o ac´ıo de la ma iz M. Con
es o se puede ob ene los pa ´ame os in ´ınsecos R y po m´e odos lineales de mane a
que se minimice el e o .
55
CAP´
ITULO 4. ALGORITMOS
56
Cap´ı ulo 5
Implemen aci´on
5.1. In oducci´on
En es e cap´ı ulo se desa ollan las decisiones omadas du an e el desa ollo de los
m´odulos p esen ados en la a qui ec u a so wa e. Po cada mayo uncionalidad se mues-
a con pseudoc´odigo su uncionalidad, los p oblemas encon ados y la soluciones omadas.
5.2. De ecci´on de ca as
Es e p oceso se implemen a p incipalmen e en el m´odulo de de ecci´on, haciendo es e
uso de los de imagen y clasi icaci´on. G acias a es e ´ul imo se ob ienen odas las ´a eas en
las que se ha econocido una ca a median e los algo i mos de OpenCV.
Un ´a ea de in e es o AOI (A ea O In e es ) de una imagen se de ine como una egi´on
de es a que con iene in o maci´on ´u il. En el con ex o de es e abajo, la p incipal egi´on
es la ca a del pacien e.
Se usa un ec ´angulo pa a ep esen a las dis in as ´a eas de in e ´es. Es e ec ´angulo
puede se ep esen ado de dis in as o mas, a iando seg´un lib e ´ıas, pe o en es e casos se
man iene la ep esen aci´on de OpenCV.
57
CAP´
ITULO 5. IMPLEMENTACI ´
ON
La decisi´on de usa los ec ´angulos de OpenCV eside en su sencillez. El ec ´angulo
de OpenCV, en Py hon, es ´a o mado po una lis a de cua o alo es: los dos p ime os
co esponden a las coo denadas del pun o supe io izquie do del ec ´angulo, los ´ul imos
dos a la anchu a y la al u a del ec ´angulo. Un ejemplo se obse a en la igu a 5.1.
Figu a 5.1: Rep esen aci´on de un ec ´angulo de OpenCV
Al comp oba la de ecci´on de ca as de es e m´odulo a iempo eal, se obse a como
a ias im´agenes se de ec an inco ec amen e. No malmen e son causadas po el uido de
la c´ama a y la iluminaci´on, que con unden al algo i mo pudiendo de ec a ca as en el
ondo o en la na iz.
Po lo an o se hace necesa io implemen a una me odolog´ıa po la cual el de ec o
discie na en e lo que es o no una ca a. Teniendo en cuen a que el endoscopio siemp e
pasa po las na inas, se de ine la mejo ca a como aquella en la que cuyo cen o sea mas
ce cano al cen o de la imagen. Es o elimina la mayo ´ıa de de ecciones causadas po uido.
Lo que no elimina es e ´ul imo paso es la de ecci´on de ca as en la na iz y o as egiones
con undidas den o de la ca a, que es ´an m´as ce canas del cen o. Pa a es o se pasa a
de ini una ca a como un conjun o de egiones o denadas.
58
5.2. DETECCI ´
ON DE CARAS
Regi´on Ca a Ojo Na iz Boca
Po cen aje 1x 18 % 32 % 32 %
Tabla 5.1: Po cen aje po cada componen e de la ca a.
El m´odulo de de ecci´on es ´a con o mado po clases basadas en la clase De ec o que
de ec an secciones de la ca a como ojos, na iz, boca y con o no. Po lo an o una ca a es
conside ada la mejo a mayo sea su composici´on.
Pa a es o se ealiza la de ecci´on usando la clase F on alFaceDe ec o , que uni ica la
de ecci´on de la ca a con la de ecci´on de sus subsecciones. Seg´un el n´ume o de componen-
es de ec ados se le asigna un po cen aje de con ianza, en la que cada elemen o de la ca a
apo a los po cen ajes que se obse an en la abla 5.1.
El signi icado del po cen aje de la ca a eside en que si no es de ec ada po el algo i -
mo, el po cen aje es inmedia amen e 0 %. Cabe des aca que el 18 % de la abla es pa a
cada ojo, po lo que ambos conlle an un 36 % de de ecci´on, alcanzando un 100 % al suma
el es o de elemen os.
Po ´ul imo, se obse a como al localiza componen es en la egi´on de la ca a, el algo-
i mo no coo dina la posici´on de los elemen os. Es o es, la na iz debe i en e los ojos, y
la boca debajo de es a. Po ejemplo, el algo i mo suele de ec a a ias bocas den o de la
egi´on de la ca a.
Pa a es o se sepa a en zonas la ca a de ec ada en las cuales deben localiza se los
componen es pa a ene cohe encia en e s´ı. Son lo su icien emen e g andes como pa a
con ene los elemen os en caso de una o aci´on de la cabeza. Las egiones y los di e en es
po cen ajes posibles de una ca a se mues an en la igu a 5.2.
59
CAP´
ITULO 5. IMPLEMENTACI ´
ON
Figu a 5.2: Regiones de b´usqueda de la ca a y po cen ajes seg´un de ecci´on la de compo-
nen es.
5.3. Pun os de e e encia aciales
Es a uncionalidad se implemen a en el m´odulo de localizaci´on. La lib e ´ıa DLib usa
una ep esen aci´on de los AOI dis in a a los de OpenCV, po lo que es necesa ia una
con e si´on ealizada en el m´odulo u il.
La implemen aci´on pe mi e el paso o no de una egi´on que localice la ca a. De es a
o ma busca ´a en es a egi´on en el caso de pasa se o se busca ´a en oda la imagen. La
p ime a opci´on de uel e esul ados m´as p ecisos de mane a m´as e icien e. La segunda
opci´on pe mi e la localizaci´on de los pun os aciales en si uaciones complicadas pa a el
de ec o de ca as, como que la c´ama a es ´e demasiado ce ca de la ca a.
5.4. Recons ucci´on
Es a uncionalidad se implemen a en el m´odulo hom´onimo. El m´e odo de econs uc-
ci´on de OpenCV no es compa ible con Py hon, po lo que se gene a c´odigo en C++ pa a
cub i es a uncionalidad, que se ´a ejecu ado desde el m´odulo de Py hon.
Pa a comunica ambos c´odigos, se gua dan los pun os de en ada bidimensionales en
una ca pe a espec´ı ica po cada econs ucci´on. Es os pun os deben i o ma eados co-
60
5.5. ESTIMACI ´
ON DE LA POSE
ec amen e pa a sa is ace la es uc u a que equie e el m´e odo.
La p ime a l´ınea debe con ene es alo es con los pa ´ame os in ´ınsecos de la c´ama-
a: la dis ancia ocal y las dos coo denadas del cen o de la imagen. Cada l´ınea siguien e
ep esen a una imagen, en la que sus p ime os 68 pun os co esponden con la coo denada
X del pun o, y los ´ul imos con la coo denada Y.
Una ez econs uidos los pun os, el c´odigo C++ gua da el iche o de salida de o ma
simila , con los pa ´ame os ins insecos ac ualizados y un pun o idimensional po cada
l´ınea.
El p oceso de oma de im´agenes pa a la econs ucci´on y la econs ucci´on en si se
obse a en el algo i mo 1.
5.5. Es imaci´on de la pose
Es a uncionalidad se implemen a en el m´odulo de posicionamien o. Con o ma el p o-
ceso p incipal de la ci ug´ıa, equi iendo poca con igu aci´on as la econs ucci´on an e io .
La econs ucci´on de la ca a nos o ece un conjun o de pun os idimensionales, pe o
su localizaci´on en el espacio es a e ec os p ´ac icos es a bi a ia. Es necesa io ubica los
pun os de mane as que puedan se ´u iles pa a la es imaci´on de la pose.
Se op a po coloca los pun os de la ca a en el eje de coo denadas, pasando a se la
es uc u a de e e encia sob e la que el endoscopio se posiciona. Se oma el pun o medio
en e las na inas como el o igen de coo denadas, que se ´a el pun o ap oximado de in o-
ducci´on del endoscopio.
Una ez asladados los pun os es necesa ia su o aci´on de una mane a ´u il pa a el
p oceso, po lo que se in oduce el concep o de plano ca a. Es e plano se c ea pa a que
el acul a i o enga una e e encia ´acil de ubica en cualquie momen o de la ci ug´ıa
61
CAP´
ITULO 5. IMPLEMENTACI ´
ON
Algo i mo 1 Modelado acial idimensional de la ca a del pacien e
Salida: Pun os idimensionales P3como modelo del pacien e
1: FIN also
2: mien as no FIN hace
3: Ob ene conjun o de im´agenes I
4: po cada i2Ihace
5: c mejo ca a de ec ada en i
6: P2 pun os aciales localizados de la ca a c
7: L {?}
8: si la localizaci´on es co ec a 8p2P2en onces
9: L L+P2
10: in si
11: in po
12: Gua da L en iche o de en ada Fi
13: s uc u eF omMo ion(Fi)
14: P3 pun os idimensionales en iche o de salida Fo
15: si P3es un modelo co ec o en onces
16: FIN cie o
17: in si
18: in mien as
19: de ol e P3
62
5.5. ESTIMACI ´
ON DE LA POSE
median e el posicionamien o del endoscopio no mal a es e plano.
Pa a con o ma el plano ca a hacen al a es pun os de la ca a. Se oman los pun os
de la base de la na iz y el pun o supe io a es a pa a o ma el plano, y a con inuaci´on se
desplaza de mane a que con enga al pun o medio de las na inas. Es e p ocedimien o se
obse a en la igu a 5.3.
Figu a 5.3: Posicionamien o del plano ca a.
La o ien aci´on de los pun os se implemen a en la clase Aligne , cuyas conside aciones
pa a la colocaci´on de los ejes son las siguien es:
1. El eje ’z’ ep esen a la p o undidad del endoscopio. Po lo an o, se ´a no mal al
plano ca a en di ecci´on de la in oducci´on del ins umen al, con alo es posi i os a
mayo sea es a.
2. El eje ’x’ se coloca con enido en el plano ca a, apun ando hacia el ojo de echo desde
la pun a de la na iz. De es a mane a, al ace ca el endoscopio a la en e se ealiza ´a
una in ui i a o aci´on posi i a.
3. El eje ’y’ se coloca pe pendicula a los dos an e io es.
La ob enci´on de la pose pa a una imagen dada se implemen a en la clase Posi ione .
Se usa el m´e odo de es imaci´on de la pose de OpenCV ’sol ePnP’ pa a ob ene los e-
sul ados a pa i de un obje o de la clase F ame. Es a clase es muy sencilla pe o de g an
impo ancia ya que en ella se ha es udiado uno de los g andes e os encon ados du an e
el desa ollo.
63
CAP´
ITULO 6. PROCEDIMIENTO
o ayuno. En es a secci´on se desa olla el p eope a o io desde el momen o en el que el
pacien e y los acul a i os en an en el qui ´o ano has a el ins an e p e io del inicio de la
ci ug´ıa.
6.2.1. Calib ado de la c´ama a
Pa a inicia el p ocedimien o la c´ama a usada debe es a calib ada, es deci , es nece-
sa io conoce los pa ´ame os in ´ınsecos de es a. Es e p oceso puede ealiza se ue a del
en o no qui ´u gico, siendo p e e ible que sea de es a mane a. Pa a la ealizaci´on de es e
abajo se ha usado la calib aci´on po pa ones de able o de ajed ez.
La p ime a pan alla de la in e az es ´a elacionada con el disposi i o a usa pa a cap a
las im´agenes. Se solici a el canal al que es ´a conec ada la c´ama a, po si hay m´as de una, y
el nomb e del disposi i o calib ado. Es e nomb e se asocia ´a con los da os de la ma iz de
la c´ama a (m x) y los ec o es de o aci´on (dis ). T as in oduci los da os debe obse a se
una pan alla como la igu a 6.1.
Figu a 6.1: In e az pa a la con igu aci´on del disposi i o de g abaci´on.
70
6.2. PREOPERATORIO
6.2.2. Modelado acial idimensional
Es e p oceso se inicia cuando el pacien e es a bajo los e ec os de la anes esia, colocado
en la mesa de ope aci´on y con la iluminaci´on adap ada pa a el p ocedimien o qui ´u gico.
Una ez acoplada la c´ama a al endoscopio, el acul a i o lo coloca en la pun a de la na iz
del pacien e, y ealiza un mo imien o ec o de lado a lado pa a cap u a las im´agenes
como se ap ecia en la igu a 6.2.
Figu a 6.2: Toma de im´agenes pa a la econs ucci´on
La in e az de usua io pe mi e la ca ga de una econs ucci´on ya ealizada o c ea una
nue a. Pa a ambos casos solici a un nomb e que iden i ique la econs ucci´on. En el caso
de c ea una nue a econs ucci´on se mues a po pan alla la isi´on de la c´ama a, y las
ins ucciones pa a ob ene las im´agenes que gene en el modelo idimensional.
Una ez inalizado el p oceso debe obse a se una en ana en la in e az simila a la
de la igu a igu a 6.3. Se obse a un ejemplo de las en anas de oma de im´agenes y la
econs ucci´on ob enida en la igu a 6.4
6.2.3. Imagen de e e encia
Una ez ob enida la econs ucci´on, la in e az solici a la oma de una imagen de
e e encia de la ca a del pacien e, mos ando la isi´on de la c´ama a y las ins ucciones
pa a oma dicha imagen. Con es a imagen se elimina cualquie e o inicial que enga la
es imaci´on de la pose.
71
CAP´
ITULO 6. PROCEDIMIENTO
Figu a 6.3: In e az de la oma de im´agenes pa a la econs ucci´on.
Figu a 6.4: Ven anas de oma de im´agenes y econs ucci´on ob enida.
Tambi´en se ob iene el ac o de escala que pe mi a calcula la elaci´on en e las uni-
dades a bi a ias del modelo y la ealidad al solici a la dis ancia a la que se ha omado
72
6.3. CIRUG´
IA
la o o, que debe coincidi con la dis ancia de la c´ama a a la pun a del endoscopio.
Al e mina el p oceso la in e az mues a un aspec o como el que se ap ecia en la
igu a 6.5.
Figu a 6.5: In e az as la oma de la imagen de calib aci´on y longi ud del endoscopio.
6.3. Ci ug´ıa
La ci ug´ıa, en el sen ido de es e p oyec o, consis e en odo el p oceso comp endido
en e el p ime ace camien o del ins umen al al pacien e has a el momen o de la e i ada
de la anes esia. Du an e odo es e p oceso el sis ema se enca ga ´a de ob ene la o ien a-
ci´on de la c´ama a a iempo eal.
Una ez comple ados odos los pasos de con igu aci´on, se mues a en pan alla dos
en anas adicionales a la del e minal. La p ime a mues a la isi´on ac ual de la c´ama a
con la ca a y los pun os aciales de ec ados. La segunda, m´as g ande que la an e io y a
73
CAP´
ITULO 6. PROCEDIMIENTO
la de echa, mues a la o ien aci´on de la c´ama a a iempo eal sob e el modelo del pacien e.
La o ien aci´on de la c´ama a se ep esen a con un eje de coo denadas. Su eje Z iene la
longi ud del endoscopio, po lo que el inal de la lecha ep esen a la ubicaci´on de la pun a
de es e. En la en ana del e minal se mues an los da os a iempo eal de la localizaci´on
de la pun a del endoscopio y la o aci´on del ins umen o.
Un ejemplo de lo que mues a la in e az se obse a en la igu a 6.6.
Figu a 6.6: In e az de la ejecuci´on del p og ama du an e el p ocedimien o qui ´u gico.
74
Cap´ı ulo 7
Expe imen os
7.1. In oducci´on
En es a secci´on se ealiza an los expe imen os necesa ios pa a ob ene da os sob e los
que basa las conclusiones y sabe si se han alcanzado los obje i os de es e abajo.
El dilema que p esen an los expe imen os es la necesidad de un ma co de e e encia
que pe mi a ob ene da os comple amen e con olados del en o no de la ci ug´ıa. Es deci ,
se necesi an unos da os eales pa a compa a con los ob enidos po el p og ama, pe o
es os son muy di iciles de consegui al no pode con ola odas las a iables necesa ias
en el mundo eal.
Po es o se ha hecho uso de un en o no i ual en que se puedan con ola odas las
a iables necesa ias. Pa a es o se ha colocado el modelo idimensional de una cabeza
en el p og ama Uni y3D. T as localiza la cabeza como dispone el alineado, se localiza la
c´ama a en las posiciones deseadas pa a ob ene los esul ados a los dis in os expe imen os.
7.2. De ec o de ca as
La de ecci´on de ca as es un apa ado undamen al del p oceso. Es e es el que decide
si se es a obse ando o no una ca a du an e la ci ug´ıa, po lo que debe se ´apido pe o
75
CAP´
ITULO 7. EXPERIMENTOS
Clasi icaci´on
Ca a No ca a To al
Realidad Ca a 831 (71 %) 339 (29 %) 1070
No ca a 6(2%) 343 (98 %) 349
Tabla 7.1: Ma iz de con usi´on del de ec o de ca as
e ec i o. En es e apa ado se es udian dis in as ´ecnicas pa a agiliza o mejo a la de ec-
ci´on de ca as.
7.2.1. E aluaci´on del de ec o
Pa a ealiza es a e aluaci´on, se han usado dos suje os de la base de da os Yale Face
Da abase B[43][22], en conc e o los suje os B15 y B18. Como im´agenes nega i as (que no
con engan ca as) se han omado im´agenes de o ma alea o ia de la base de da os Cal ech
Image Da ase [19]. T as ealiza la de ecci´on de ca as sob e odas las im´agenes se ob iene
la ma iz de con usi´on de la abla 7.1
Es os esul ados se ob ienen sob e im´agenes con di e encias de iluminaci´on, llegando
a si uaciones casi de oscu idad. Realizando p uebas sob e un en o no bien iluminado la
de ecci´on de ca as es casi comple a, pe o man eniendo los e o es en alsos posi i os.
7.2.2. L´ımi es de mo imien o
La limi aci´on en mo imien o de o aci´on iene dada po la capacidad del de ec o de
ca as en econoce ca as desde dis in os ´angulos. Pa a es o se ha o ado la c´ama a en cada
uno de los ejes, apun ando a la pun a de la na iz, man eniendo una dis ancia cons an e
de 30 cm y omando una o o cada cinco g ados.
Todas las im´agenes se han omado con un FOV de 50 y en una esoluci´on de 1920 x
1080 p´ıxeles. Es as im´agenes se pasan al de ec o de ca as, obse ando cual es la p ime a
en la que se encuen e una ca a. Po ´ul imo, pa a a ina el p oceso se han omados o os
76
7.2. DETECTOR DE CARAS
Ro aci´on min. Ro aci´on max. Rango
Eje x -45o62o107o
Eje y1-45o44o89o
Eje z -17o19o36o
Tabla 7.2: Rango de o aciones sob e cada eje que limi a la de ecci´on de ca as
cada un g ado en los l´ımi es de ec ados, pa a pode a ina m´as el esul ado. Con es o se
ob ienen los esul ados de la abla 7.2.
7.2.3. Tama˜no ´op imo de la ca a
Dependiendo del senso , cada c´ama a nos o ece dis in as esoluciones de imagen. Es-
a esoluci´on a ec a en g an medida a la e iciencia de los algo i mos, ya que aumen an el
´a ea en n´ume o de p´ıxeles en el que se iene que ejecu a . Es e de alle es pa icula men e
cos oso pa a el algo i mo de de ecci´on de ca a, que necesi a eco e oda la imagen con
muchas ca ac e ´ıs icas de Haa a dis in as escalas.
Se conside a el ama˜no ´op imo de la ca a a aquel en el que se ob enga una can idad de
de ecciones su icien es como pa a conside a se e ec i o. Pa a es o se escala el conjun o de
im´agenes de ca as omados en la e aluaci´on sin modi icaciones y se les aplica la de ecci´on
de ca as, ob eniendo el po cen aje de acie os y el iempo eque ido en el PC Leno o Z510
como se ap ecia en la igu a 7.1.
Obse ando los esul ados se oma el ama˜no ´op imo de la ca a como un ec ´angulo
de 40 p´ıxeles po lado, llegando a p ocesa 133 im´agenes po segundo. T as ob ene el
ama˜no de la ca a con una c´ama a a la dis ancia m´axima (30 cm), se pod ´a escala la
imagen de mane a que el ama˜no de la ca a sea de 40 p´ıxeles po lado o mayo .
1Da os ob enidos con una o aci´on ija en el eje x de 90o
77
CAP´
ITULO 7. EXPERIMENTOS
Figu a 7.1: Capacidad de de ecci´on de ca as seg´un el ama˜no de es as.
7.3. Es imaci´on de la pose
La es imaci´on de la pose es el obje i o p incipal de es e abajo. La es imaci´on se
ejecu a du an e el p ocedimien o qui ´u gico y equie e un p ocesado de la in o maci´on a
iempo eal. En es a secci´on se es udia la idelidad de la es imaci´on y la capacidad de
p ocesamien o de in o maci´on del p og ama du an e el p ocedimien o qui ´u gico. En caso
de desapa ece la isi´on di ec a con la ca a, el p og ama debe segui buscando ca as y
adap a se lo an es posible en caso de de ec a se.
7.3.1. Composici´on de ca a ´op ima
Como se comen a en el cap´ı ulo de implemen aci´on, la composici´on de la ca a a ec a
en g an medida el p oceso de es imaci´on de la pose. Los elemen os de la ca a se di iden en
ocho zonas, cada una o mada po un conjun o de pun os que pod ´an apa ece o no en la
soluci´on inal. En un p incipio, la in uici´on indica que a m´as elemen os, mejo es imaci´on,
78
7.3. ESTIMACI ´
ON DE LA POSE
pe o es o no se cumple en la ealidad.
Pa a ep esen a cada una de las ca as, se le asigna un n´ume o en e 1 y 255. Es e,
pasado a bina io, ep esen a po cada posici´on que elemen o se incluye. En caso de con-
ene un 1 en la posici´on del elemen o se incluye en el conjun o, y con un 0 se excluye.
Es a elaci´on se obse a en la igu a 7.2.
Figu a 7.2: Relaci´on en e el n´ume o de la ca a y su composici´on.
Pa a encon a la mejo ca a, se le asigna una alo aci´on a cada una dependiendo de
su e o en las es imaciones. Se es iman las im´agenes del en o no i ual an o las o adas
sob e el eje X como el eje Y. Compa ando los esul ados con los alo es eales se ob ienen
79
CAP´
ITULO 7. EXPERIMENTOS
Elemen os 11, 2 1, 2, 3 1, 4 1, 5
FPS 52,3 35,65 29,03 4,5 42,08
Tabla 7.4: Velocidad de ejecuci´on seg´un in o maci´on ep esen ada
7.3.4. P ecisi´on de la es imaci´on
Una ez ob enidos odos los alo es necesa ios pa a una co ec a es imaci´on de la
pose, se cap u an los esul ados pa a el pos e io an´alisis de su p ecisi´on. Pa a es o es
undamen al el uso de las o os ob enidas de la ca a idimensional en Uni y3D.
Se oman las o ien aciones de la c´ama a en cada imagen como el esul ado de los ex-
pe imen os, y su combinaci´on con la longi ud del endoscopio pa a de ini la posici´on de
la pun a.
Como se ha expues o an e io men e, los da os de o aci´on sob e el eje Z no se conside-
an al no se ´u il su in o maci´on. Po lo an o, los alo es a ene en cuen a pa a conoce
la p ecisi´on de la es imaci´on son la o aci´on sob e el eje X, la o aci´on sob e el eje Y, y la
dis ancia euclidiana en e la posici´on de la c´ama a y el o igen de coo denadas.
Pa a calcula an o el e o de o aci´on como de aslaci´on, se usa el e o absolu o
como indicado de la calidad de la es imaci´on. El alo absolu o 4xes el esul ado de la
elaci´on en e el alo medido x0yel alo ealx, como apa ece en la ecuaci´on 7.1.
4x=x0x(7.1)
Como se obse a, el e o absolu o puede se an o posi i o como nega i o. Una ez
enemos el e o absolu o, se calcula la des iaci´on media a pa i de es e. La des iaci´on
media o o ga un ango de p ecisi´on pa a cada medici´on omada, y se ep esen a po Dm,
de inida en la ecuaci´on 7.2. En es a ecuaci´on, la N ep esen a el n´ume o de mediciones
o ales, una po ´angulo.
86
7.3. ESTIMACI ´
ON DE LA POSE
Dm=PN
i=0 |4xi|
N(7.2)
Se calcula una des iaci´on media po cada eje de o aci´on y la dis ancia calculada.
Tomando una medici´on m y una des iaci´on absolu a dm,se ep esen asu alo como
apa ece en la ecuaci´on 7.3. Es deci , el alo se encuen a con enido en el ango de la
inecuaci´on 7.4.
=m±dm(7.3)
mdm m+dm(7.4)
Tomando im´agenes o adas sob e el eje X, se ob ienen los esul ados de la es imaci´on
de las o aciones de la abla 7.5. De es as mismas im´agenes se ob ienen los esul ados de
las dis ancias a la que se encuen a la c´ama a de la abla 7.6. Los mismos casos aplicados a
las im´agenes o adas sob e el eje Y se ap ecian espec i amen e en la abla 7.7 y abla 7.8.
Con es os da os, se ob ienen los esul ados espec o a la o ien aci´on de la c´ama a. El
obje i o eal de es e abajo es la o ien aci´on de la pun a del endoscopio, que se de i a
di ec amen e de la de la c´ama a. En es a caso, compa en las mismas o aciones, con sus
espec i os e o es, pe o las aslaciones a ´ıan al ubica se a una dis ancia ija (la longi ud
del endoscopio) a a ´es del eje Z.
En las ablas de o aciones, se obse an ilas colo eadas de ojo y na anja. En la abla
de o aciones sob e el eje X, se obse a como pa a ´angulos meno es a -30ola es imaci´on
llega a su l´ımi e de ango al de ec a es os con alo es ce canos a -30a.Po lo an o,es os
alo es no se han enido en cuen a pa a el c´alculo de e o es, pe o si se oma ´an en cuen a
en los angos de mo imien o del ins umen o.
En el caso de la ila oja, se ha ealizado una de ecci´on inco ec a, po lo an o es os
da os ambi´en se desca an. En es a si uaci´on, se conside a que la es imaci´on debe ´ıa se
pa ecida a la de su ´angulo posi i o al se la ca a sim´e ica. Po es o pa a el c´alculo de
87
CAP´
ITULO 7. EXPERIMENTOS
e o es se ha omado en cuen a el alo del ´angulo posi i o po pa ida doble.
A pa i de es as cua o ablas calcula la des iaci´on media inal pa a cada eje de o-
aci´on y la dis ancia haciendo la media en e sus alo es. Po lo an o se ob iene una
des iaci´on media sob e el eje X de 2,38o,sob eelejeYde0,78oyendis anciade0,78
cm.
Los e o es de o aci´on de la c´ama a, unido al e o en la dis ancia, pueden p o oca
una acumulaci´on de e o es al es ablece la pose de la pun a del endoscopio. Los e o es en
o aci´on p o ocan un mayo desplazamien o de la pun a con un aumen o de la dis ancia
en e es a y la c´ama a. Po lo an o es necesa io calcula los e o es de la ubicaci´on de la
pun a.
Se calculan las aslaciones de la pun a eniendo en cuen a el eje Z, no incluyendo los
da os de las columnas colo eadas y eniendo en cuen a que el e o absolu o en es e caso
coincide con la dis ancia espe ada al es a apun ando al o igen. Los da os ob enidos de
las im´agenes o adas sob e el eje X se ap ecian en la abla 7.9, y los o ados sob e el eje
Y en la abla 7.10.
Se obse a como la des iaci´on media de aslaci´on sob e el eje X es de 0,141 cm,el
del eje Y de 0,124 cm,yeldelejeZde0,711 cm.
7.3.5. Velocidad de ecupe aci´on
La elocidad de ecupe aci´on del sis ema as la p´e dida de isi´on de la ca a es in-
media a. Al no habe ning´un ipo de seguimien o acial, el p og ama comp ueba en cada
i e aci´on si se ha localizado una ca a, ol iendo al lujo no mal en caso posi i o.
88
7.3. ESTIMACI ´
ON DE LA POSE
´
Angulos
espe ados (o)
´
Angulos
ob enidos (o)
E o
absolu o (o)
|E o absolu o|(o)
Eje x Eje y Eje x Eje y Eje x Eje y Eje x Eje y
-45,00 0,00 -29,15 -1,25 15,85 -1,25 15,85 1,25
-40,00 0,00 -29,26 -0,39 10,74 -0,39 10,74 0,39
-35,00 0,00 -29,47 -0,43 5,53 -0,43 5,53 0,43
-30,00 0,00 -27,64 0,92 2,36 0,92 2,36 0,92
-25,00 0,00 -21,61 0,01 3,39 0,01 3,39 0,01
-20,00 0,00 -15,04 0,61 4,96 0,61 4,96 0,61
-15,00 0,00 -12,17 -0,98 2,83 -0,98 2,83 0,98
-10,00 0,00 -7,14 -0,42 2,86 -0,42 2,86 0,42
-5,00 0,00 -4,77 0,01 0,23 0,01 0,23 0,01
0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
5,00 0,00 4,45 -0,65 -0,55 -0,65 0,55 0,65
10,00 0,00 8,44 1,37 -1,56 1,37 1,56 1,37
15,00 0,00 11,44 -0,56 -3,56 -0,56 3,56 0,56
Des iaci´on
media (o)
2,23 0,55
Tabla 7.5: E o es de o aci´on en las o ien aciones ob enidas al o a sob e el eje X
89
CAP´
ITULO 7. EXPERIMENTOS
´
Angulo (o)Dis ancia
espe ada (cm)
Dis ancia
ob enida (cm)
E o
absolu o (cm)
|E o absolu o|(cm)
-45,00 30 29,81 -0,19 0,19
-40,00 30 29,11 -0,89 0,89
-35,00 30 29,05 -0,95 0,95
-30,00 30 28,45 -1,55 1,55
-25,00 30 28,39 -1,61 1,61
-20,00 30 29,07 -0,93 0,93
-15,00 30 29,14 -0,86 0,86
-10,00 30 29,00 -1,00 1,00
-5,00 30 29,51 -0,49 0,49
0,00 30 30,00 0,00 0,00
5,00 30 30,05 0,05 0,05
10,00 30 30,38 0,38 0,38
15,00 30 30,81 0,81 0,81
Des iaci´on
media (cm)
0,75
Tabla 7.6: E o es en dis ancia de las o ien aciones ob enidas al o a sob e el eje X
90
7.3. ESTIMACI ´
ON DE LA POSE
´
Angulos
espe ados (o)
´
Angulos
ob enidos (o)
E o
absolu o (o)
|E o absolu o|(o)
Eje x Eje y Eje x Eje y Eje x Eje y Eje x Eje y
0,00 30,00 5,36 29,69 5,36 -0,31 5,36 0,31
0,00 25,00 4,04 25,23 4,04 0,23 4,04 0,23
0,00 20,00 5,37 21,26 5,37 1,26 5,37 1,26
0,00 15,00 2,22 17,39 2,22 2,39 2,22 2,39
0,00 10,00 1,76 11,10 1,76 1,10 1,76 1,10
0,00 5,00 -0,97 5,59 -0,97 0,59 0,97 0,59
0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
0,00 -5,00 -1,56 -5,64 -1,56 -0,64 1,56 0,64
0,00 -10,00 0,48 -11,00 0,48 -1,00 0,48 1,00
0,00 -15,00 -0,21 -16,65 -0,21 -1,65 0,21 1,65
0,00 -20,00 1,89 -21,81 1,89 -1,81 1,89 1,81
0,00 -25,00 3,60 -26,71 3,60 -1,71 3,60 1,71
0,00 -30,00 -30,81 5,37 -30,81 35,37 30,81 35,37
Des iaci´on
media (o)
2,52 1,00
Tabla 7.7: E o es de o aci´on en las o ien aciones ob enidas al o a sob e el eje Y
91
CAP´
ITULO 7. EXPERIMENTOS
´
Angulo (o)Dis ancia
espe ada (cm)
Dis ancia
ob enida (cm)
E o
absolu o (cm)
|E o absolu o|(cm)
30,00 30 28,82 -1,18 1,18
25,00 30 29,02 -0,98 0,98
20,00 30 28,95 -1,05 1,05
15,00 30 28,90 -1,10 1,10
10,00 30 29,49 -0,51 0,51
5,00 30 29,96 -0,04 0,04
0,00 30 30,00 0,00 0,00
-5,00 30 29,89 -0,11 0,11
-10,00 30 29,60 -0,40 0,40
-15,00 30 29,18 -0,82 0,82
-20,00 30 28,86 -1,14 1,14
-25,00 30 28,36 -1,64 1,64
-30,00 30 31,52 1,52 1,52
Des iaci´on
media (cm)
0,81
Tabla 7.8: E o es en dis ancia de las o ien aciones ob enidas al o a sob e el eje Y
92
7.3. ESTIMACI ´
ON DE LA POSE
Posici´on
espe ada (cm)
Posici´on
ob enida (cm)
|E o absolu o |(cm)
´
Angulo (o)Eje x Eje y Eje z Eje x Eje y Eje z Eje x Eje y Eje z
-45,00 0,000 0,000 0,000 -0,005 0,090 0,162 0,005 0,090 0,162
-40,00 0,000 0,000 0,000 -0,008 0,435 0,776 0,008 0,435 0,776
-35,00 0,000 0,000 0,000 -0,005 0,467 0,826 0,005 0,467 0,826
-30,00 0,000 0,000 0,000 0,024 0,719 1,373 0,024 0,719 1,373
-25,00 0,000 0,000 0,000 -0,003 0,594 1,500 0,003 0,594 1,500
-20,00 0,000 0,000 0,000 0,010 0,242 0,901 0,010 0,242 0,901
-15,00 0,000 0,000 0,000 -0,016 0,181 0,842 0,016 0,181 0,842
-10,00 0,000 0,000 0,000 -0,008 0,124 0,992 0,008 0,124 0,992
-5,00 0,000 0,000 0,000 0,000 0,041 0,489 0,000 0,041 0,489
0,00 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000
5,00 0,000 0,000 0,000 0,000 0,004 -0,054 0,000 0,004 0,054
10,00 0,000 0,000 0,000 -0,009 0,056 -0,375 0,009 0,056 0,375
15,00 0,000 0,000 0,000 0,008 0,161 -0,796 0,008 0,161 0,796
Des iaci´on
media (cm)
0,008 0,212 0,732
Tabla 7.9: E o es en las aslaciones de la pun a ob enidas al o a sob e el eje X
93
CAP´
ITULO 7. EXPERIMENTOS
Posici´on
espe ada (cm)
Posici´on
ob enida (cm)
|E o absolu o |(cm)
´
Angulo (o)Eje x Eje y Eje z Eje x Eje y Eje z Eje x Eje y Eje z
30,00 0,000 0,000 0,000 0,585 -0,094 1,020 0,585 0,094 1,020
25,00 0,000 0,000 0,000 0,419 -0,061 0,885 0,419 0,061 0,885
20,00 0,000 0,000 0,000 0,382 -0,087 0,973 0,382 0,087 0,973
15,00 0,000 0,000 0,000 0,327 -0,040 1,045 0,327 0,040 1,045
10,00 0,000 0,000 0,000 0,098 -0,015 0,499 0,098 0,015 0,499
5,00 0,000 0,000 0,000 0,004 0,001 0,042 0,004 0,001 0,042
0,00 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000
-5,00 0,000 0,000 0,000 -0,011 0,003 0,112 0,011 0,003 0,112
-10,00 0,000 0,000 0,000 -0,076 -0,003 0,392 0,076 0,003 0,392
-15,00 0,000 0,000 0,000 -0,235 0,004 0,788 0,235 0,004 0,788
-20,00 0,000 0,000 0,000 -0,423 -0,033 1,055 0,423 0,033 1,055
-25,00 0,000 0,000 0,000 -0,738 -0,093 1,463 0,738 0,093 1,463
-30,00 0,000 0,000 0,000 0,519 -0,107 -1,423 0,519 0,107 1,423
Des iaci´on
media (cm)
0,275 0,036 0,689
Tabla 7.10: E o es en las aslaciones de la pun a ob enidas al o a sob e el eje Y
94
Cap´ı ulo 8
Conclusiones y T abajo u u o
T as inaliza el desa ollo del p og ama y el es udio de los esul ados, en es e cap´ı ulo
se analiza el p oceso de c eaci´on y analisis del abajo. Se exponen las conclusiones y los
posibles abajos u u os que p esen a es e abajo.
8.1. Conclusiones
El obje i o p incipal de es e abajo es la c eaci´on de un sis ema capaz de ubica la
pun a del endoscopio en el in e io de las ca idades nasales del pacien e. G acias a es o,
el acul a i o iene una e e encia espacial, adem´as de la isual que o ece la imagen del
endoscopio.
Compa ado con sus al e na i as, es e p o o ipo libe a mucho espacio en el qui ´o ano,
del que o as m´aquinas ocupan una can idad conside able. Adem´as del espacio, es as
m´aquinas equie en isi´on di ec a, y el acul a i o suele apa es a isi´on, haciendo el a-
bajo de es e m´as es esan e y di icul oso. O a g an en aja es la eliminaci´on de cualquie
ipo de con ac o di ec o con el pacien e, eliminando ma cas iducia ias o elemen os que
equie an un aumen o del iempo del p eope a o io.
Al es a si uada la c´ama a en el endoscopio, el acul a i o no pie de ninguna de sus
cualidades y no equie e ning´un ipo de ap endizaje al ealiza una modi icaci´on m´ınima
sob e la ins umen aci´on pa a la que es ´a o mado.
95
AP´
ENDICE A. CODIGOS DE PROGRAMACION
de po ada():
sepa a o ()
line()
middle("SISTEMA DE GUIADO PARA
CIRUGIA NASAL ENDOSCOPICA")
line()
semi_sepa a o ()
line()
middle("Ma in Axel ad Tinoco")
middle("Uni e sidad de Malaga")
middle("2018")
line()
de p og ess():
global eady, ac ual, emaining
es = ""
o i eady in eady:
es += "[OK]" + i eady + " "
ini = len( es)
es += ac ual
num = len( es) - ini
es += " "
o i emaining in emaining:
es += i emaining + " "
end = len( es) - num - ini
middle( es)
middle(spaces(ini) + dash(num)
+ spaces(end))
de sc een(con en =[]):
new_lines(30)
po ada()
line()
p og ess()
lines(2)
o icon en in con en :
middle(icon en )
nlines = len(con en )
lines(heig h - 13 - nlines - 1)
sepa a o ()
de in alid_ alue():
p in ("------------------------------------------------------------------------------")
p in ("| ERROR: El alo
in oducido no es co ec o.
Po a o , uel a a
in en a lo |")
p in ("------------------------------------------------------------------------------")
de new_lines(num):
o iin ange(0, num):
p in (" n")
# P esen acion
sc een()
# Conexion con disposi i o
con en = []
alid = False
while no alid:
channel = inpu ("Seleccione el
canal del disposi i o de
g abacion (de ec o = 0): ")
y:
channel = in (channel) i
channel is no None and
channel is no "" else 0
came a =
Imp o edCame a(channel)
excep :
sc een(con en + ["Canal:
[ERROR] No disponible"])
con inue
alid = T ue
102
A.1. INTERFAZ GR ´
AFICA
con en .append("Canal: " +
s (channel))
sc een(con en )
# Disposi i o de calib acion
alid = False
while no alid:
de ice = inpu ("Indique el
nomb e del disposi i o
calib ado: ")
y:
m x, dis =
loadPa ams(de ice)
excep :
sc een(con en +
["Calib acion: [ERROR]
Pa ame os no
econ ados"])
con inue
alid = T ue
con en .append("Calib acion: " +
de ice)
sc een(con en )
inpu ("Comp uebe los pa ame os y
pulse ENTER pa a con inua .")
eady.append(ac ual)
ac ual = emaining.pop(0)
# Con igu acion y oma de imagenes
# pa a la econs uccion
alid = False
ec_helpe = Recons uc ionHelpe ()
while no alid:
con en = []
sc een()
y:
ec_name =
inpu ("In oduzca el
nomb e de la
econs uccion o deje
acio pa a ealiza una
nue a: ")
i ec_name is "":
sc een()
ec_name =
inpu ("In oduzca un
nomb e pa a la
econs uccion: ")
con en .append("Nomb e
de econs uccion: "
+ ec_name)
sc een(con en + ["Toma
de imagenes: En
espe a..."])
p in ("Pulse ENTER pa a
comenza la oma de
imagenes...")
ames = []
key = None
s a ed = False
inished = False
window =
c 2.namedWindow(’main’,
c 2.WINDOW_NORMAL)
c 2.mo eWindow(’main’,
800, 0)
c 2. esizeWindow(’main’,
1120, 1080)
103
AP´
ENDICE A. CODIGOS DE PROGRAMACION
while no inished:
ame = came a. ead()
i s a ed:
ames.append( ame)
ame_do =
D awe .poin ( ame,
ec Cen e ( ec F ame( ame)),
colo =D awe .RED)
else:
ame_do =
D awe .poin ( ame,
ec Cen e ( ec F ame( ame)))
ame_do .show(winname=’main’)
key = c 2.wai Key(10)
i key is 13:
i no s a ed:
sc een(con en
+["Toma
de
imagenes:
En
p oceso..."])
p in ("Pulse
ENTER
pa a
inaliza
la oma
de
imagenes...")
s a ed = T ue
else:
c 2.des oyWindow(’main’)
inished =
T ue
con en .append("Toma de
imagenes: " +
s (len( ames)) + "
imagenes cap u adas")
sc een(con en )
sc een(con en +
["Recons uccion:
P ocesando..."])
econs uc ion =
ec_helpe . econs uc _ om_ ames(de ice,
ec_name, ames)
poin s3d =
econs uc ion[0]
poin s3d =
Aligne (poin s3d).align()
plo e =
plo e _ ace(poin s3d)
con en .append("Recons uccion:
Finalizada")
sc een(con en )
p in ("Comp uebe la
econs uccion y
cie e la en ana
pa a con inua .")
while no
plo e .is_closed():
plo e .d aw()
plo e .close()
sc een(con en +
["Comp obacion:
Espe ando
espues a..."])
epe i =
inpu ("Recons uccion
co ec a? (s/n): ")
104
A.1. INTERFAZ GR ´
AFICA
i epe i is ’n’:
con inue
econs uc ion =
ec_helpe .load_ esul s( ec_name)
alid = T ue
excep :
sc een(["[ERROR]
Recons uccion allida.
Comp uebe los da os de
en ada."])
inpu ("Pulse ENTER pa a
ein en a .")
poin s3d = econs uc ion[0]
poin s3d =
Aligne (poin s3d).align()
# Toma de la imagen de e e encia
# la calib acion
eady.append(ac ual)
ac ual = emaining.pop(0)
alid = False
while no alid:
con en = []
sc een(con en + ["Imagen de
e e encia: Cap u ando..."])
p in ("Si ue la cama a en la
posicion inicial deseada y
pulse ENTER.")
c 2.namedWindow(’main’,
c 2.WINDOW_NORMAL)
c 2.mo eWindow(’main’, 800, 0)
c 2. esizeWindow(’main’, 1120,
1080)
key = None
e _ ame = None
while e _ ame is None:
ame = came a. ead()
ame_do =
D awe .poin ( ame,
ec Cen e ( ec F ame( ame)))
ame_do .show(winname=’main’)
key = c 2.wai Key(1)
i key is 13:
e _ ame = ame
con en .append("Imagen de
e e encia: Cap u ada")
sc een(con en +
["Con i macion:
Espe ando..."])
p in ("Comp uebe la imagen y
pulse ENTER.")
e _ ame.show(wai =False,
winname=’main’)
c 2.des oyWindow(’main’)
es = inpu ("Imagen co ec a?
(s/n): ")
i es is ’n’:con inue
alid = T ue
con en .append("Con i macion:
Con i mada")
sc een(con en )
# Se solici a la longi ud del
endoscopio
alid = False
while no alid:
y:
eal_dis =
in (inpu ("Dis ancia
del endoscopio en
cen ime os: "))
105
AP´
ENDICE A. CODIGOS DE PROGRAMACION
alid = T ue
excep :
sc een(con en + ["[ERROR]
El alo in oducido no
es co ec o"])
inpu ("Pulse ENTER pa a
ein en a .")
con en .append("Longi ud
endoscopio: " +s ( eal_dis )
+" cm")
sc een(con en )
inpu ("Comp uebe los da os y pulse
ENTER")
con en = ["HA FINALIZADO LA
CONFIGURACION"]
sc een(con en )
# Comienza el p oceso de es imacion
# Se c ea el pose con los da os
in oducidos
# y un amanio de ca a de 105
pixeles
pose = Pose(poin s3d, m x, dis ,
e _ ame= e _ ame,
eal_dis = eal_dis ,
ace_side=105)
eady.append(ac ual)
ac ual = emaining.pop(0)
# Funciones que ep esen an la
es imacion
de ep _posi ion(o igin):
global eal_dis
ec o =
T ans o me .no m(o igin)
ec o = [ eal_dis * elem o
elem in ec o ]
poin =
[s ("{0:.1 }". o ma (o igin[i]
- ec o [i])) + " cm" o i
in ange(0, len(o igin))]
e u n "Posicion - Eje X: " +
poin [0] + " Eje Y: " +
poin [1] + " Eje Z: " +
poin [2]
de ep _ o a ion( ec):
es =
[s ("{0:.1 }". o ma ( 2g(elem)))
+"" o elem in ec]
e u n "Ro acion - Eje X: " +
es[0] + " Eje Y: " +
es[1] + " Eje Z: " + es[2]
# Ca ga de los elemen os g a icos
plo e = plo e _ ace(poin s3d,
scale=15)
plo e .geome y(wid h=1120,
heigh =900, posx=800, posy=0)
c 2.namedWindow("main",
c 2.WINDOW_NORMAL)
c 2.mo eWindow(’main’, 0, 479)
c 2. esizeWindow(’main’, 725, 460)
scale = [in ( eal_dis /5),
in ( eal_dis /5), eal_dis ]
elem = None
ps = 0
ps = 0
# Es imacion de la pose
while T ue:
0 = ime()
ame = came a. ead()
i elem is no None:
plo e . emo e(elem)
106
A.1. INTERFAZ GR ´
AFICA
e al, o igin, axis, ec,
ace_ ec , landma ks =
pose . un( ame)
i e al:
elem = plo e .axis(axis,
o igin, scale=scale)
ame = D awe . ec ( ame,
ace_ ec )
ame =
D awe .poin s( ame,
landma ks)
con en =
[ ep _posi ion(o igin),
ep _ o a ion( ec),
"FPS: " +s ( ps)]
sc een(con en )
ps += ps
ame.show(winname="main")
plo e .d aw()
c 2.wai Key(1)
ps = 1 / ( ime() - 0)
107
AP´
ENDICE A. CODIGOS DE PROGRAMACION
108
A.2. CLASIFICADOR
A.2. Clasi icado
om collec ions impo de aul dic
om enum impo Enum
om g.image impo *
class Classi ie Type(Enum):
"""Tipos de clasi icado es"""
HAAR_FRONTAL_FACE_ALT = 1
HAAR_EYE = 2
HAAR_MCS_MOUTH = 3
HAAR_MCS_NOSE = 4
LBP_FRONTAL_FACE = 5
LBP_PROFILE_FACE = 6
class Classi ie TypeDic (objec ):
"""Enlaza el ipo de
clasi icado con su iche o
en enado."""
de __ini __(sel ):
sel ._dic iona y = {
Classi ie Type.HAAR_FRONTAL_FACE_ALT:
’classi ie s/haa cascade_ on al ace_al .xml’,
Classi ie Type.HAAR_EYE:
’classi ie s/haa cascade_eye.xml’,
Classi ie Type.HAAR_MCS_MOUTH:
’classi ie s/haa cascade_mcs_mou h.xml’,
Classi ie Type.HAAR_MCS_NOSE:
’classi ie s/haa cascade_mcs_nose.xml’,
Classi ie Type.LBP_FRONTAL_FACE:
’classi ie s/lbpcascade_ on al ace.xml’,
Classi ie Type.LBP_PROFILE_FACE:
’classi ie s/lbpcascade_p o ile ace.xml’
}
sel ._dic iona y =
de aul dic (lambda:
’classi ie s/haa cascade_ on al ace_al .xml’,
sel ._dic iona y)
de ge Pa h(sel , ype):
es =
sel ._dic iona y.ge ( ype)
e u n es
de ge Classi ie (sel , ype):
es =
c 2.CascadeClassi ie (sel .ge Pa h( ype))
e u n es
class Classi ie (objec ):
"""De ec a obje os especi icos
en una imagen."""
de __ini __(sel , ype =
Classi ie Type.HAAR_FRONTAL_FACE_ALT,
scaleFac o = 1.1,
minNeighbo s =
5,
minSize = (0,0),
maxSize = None):
sel ._classi ie =
Classi ie TypeDic ().ge Classi ie ( ype)
sel ._scaleFac o =
scaleFac o
sel ._minNeighbo s =
minNeighbo s
sel ._minSize = minSize
sel ._maxSize = maxSize
sel ._ ame = None
109
AP´
ENDICE A. CODIGOS DE PROGRAMACION
de ge Pa ams(sel ):
"""De uel e a ame os
ac uales pa a la
clasi icacion."""
e u n (sel ._scaleFac o ,
sel ._minNeighbo s,
sel ._ lags,
sel ._minSize,
sel ._maxSize)
de se Pa ams(sel ,
scaleFac o , minNeighbo s,
lags, minSize, maxSize):
"""Con igu a los pa ame os
de clasi icacion."""
sel ._scaleFac o =
scaleFac o
sel ._minNeighbo s =
minNeighbo s
sel ._ lags = lags
sel ._minSize = minSize
sel ._maxSize = maxSize
de se ScaleFac o (sel ,
scaleFac o ):
"""Es ablece el ac o de
escala"""
sel ._scaleFac o =
scaleFac o
de se MinNeighbo s(sel ,
minNeighbo s):
"""Es ablece el ecinda io
minimo."""
sel ._minNeighbo s =
minNeighbo s
de se MinSize(sel , minSize):
"""Es ablece el amanio
minimo."""
sel ._minSize = minSize
de se MaxSize(sel , maxSize):
"""Es ablece el amanio
maximo"""
sel ._maxSize = maxSize
de se F ame(sel , ame):
"""Fija la imagen en la
cual clasi ica """
sel ._ ame = ame
de isEmp y(sel ):
"""Comp ueba si el
clasi icado ha sido
ca gado."""
e u n
sel ._classi ie .emp y()
de de ec (sel , ame = None):
"""De uel e los ec angulos
encon ados en la
imagen."""
i ame is None:
ame = sel ._ ame
es =
sel ._classi ie .de ec Mul iScale(
ame.ma ,
sel ._scaleFac o ,
sel ._minNeighbo s,
0,
sel ._minSize,
sel ._maxSize
)
e u n es
110
A.3. DETECTOR
A.3. De ec o
om g.classi ie impo *
class De ec o (objec ):
"""Supe clase enca gada de la
de eccion de elemen os
aciales."""
de __ini __(sel , ype =
Classi ie Type.HAAR_FRONTAL_FACE_ALT):
sel ._classi ie =
Classi ie ( ype)
sel ._ esul = []
de num(sel ):
"""De uel e el nume o de
ca as de ec adas."""
e u n len(sel ._objec s)
de ge (sel ):
"""De uel e los ul imos
obje os de ec ados."""
e u n sel ._ esul
de de ec (sel , ame, ec =
None):
"""De ec a un elemen o en
la imagen.
Busca den o de un
ec angulo si se
incluye."""
i ec is no None:
ame =
ame. ec angle( ec )
es =
sel ._classi ie .de ec ( ame)
i ec is no None:
x, y, _, _ = ec
emp = []
o sub in es:
emp.append(addToRec (sub,
dx = x, dy = y))
es = emp
else: es =
a ays2 ec s( es)
e u n es
de bes (sel , ec s, ec ):
"""De uel e el mejo obje o
localizadp"""
cen e = ec Cen e ( ec )
bes = None
dis = None
i len( ec s) > 0:
o ec in ec s:
ncen e =
ec Cen e ( ec )
ndis =
dis Poin s(ncen e ,
cen e )
i dis is None o
ndis < dis :
dis = ndis
bes = ec
es = bes
e u n es
111
AP´
ENDICE A. CODIGOS DE PROGRAMACION
118
A.4. IMAGEN
A.4. Imagen
om glob impo glob
impo c 2
om g.u ils impo *
class F ame(objec ):
"""Rep esen a una imagen."""
de __ini __(sel , ma = None):
sel ._ma = ma
@p ope y
de ma (sel ):
"""De uel e una copia del
a ay."""
e u n sel ._ma .copy()
@p ope y
de shape(sel ):
"""De uel e las dimensiones
del a ay."""
e u n sel ._ma .shape
@p ope y
de h(sel ):
"""De uel e la al u a de la
imagen."""
e u n sel .shape[0]
@p ope y
de w(sel ):
"""De uel e la anchu a de
la imagen."""
e u n sel .shape[1]
@p ope y
de size(sel ):
"""De uel e una upla con
la anchu a y al u a de
la imagen."""
e u n (sel .w, sel .h)
de load(sel , ilename, lags
= 1):
"""Ca ga una imagen de un
iche o."""
asse sel .isEmp y(), "The
F ame is al eady
loaded."
sel ._ma =
c 2.im ead( ilename,
lags)
es = sel
e u n es
@s a icme hod
de loads(pa h, egex="*.jpg",
lags = 1):
"""Ca ga un conjun o de
imagenes de una
ca pe a"""
ilenames = glob(pa h + "/"
+ egex)
ilenames.so ()
es = []
o ilename in ilenames:
es.append(F ame().load( ilename,
lags))
e u n es
de sa e(sel , ilename):
"""Gua da la imagen en un
iche o."""
c 2.imw i e( ilename,
sel ._ma )
119
AP´
ENDICE A. CODIGOS DE PROGRAMACION
de show(sel , wai = 1,
winname = "F ame"):
"""Mues a la imagen po
pan alla"""
c 2.imshow(winname,
sel ._ma )
e u n c 2.wai Key(wai )
de esize(sel , ac o = 1):
"""Escala la imagen po un
ac o ."""
es =
F ame(c 2. esize(sel ._ma ,
(0,0), x = ac o , y
= ac o ))
e u n es
de ec angle(sel , ec ):
"""De uel e el ec angulo
de la imagen"""
x, y, w, h = ec
es =
F ame(sel ._ma [y:y+h,
x:x+w])
e u n es
de sec ion(sel , sh = 0, eh =
1, sw = 0, ew = 1):
"""De uel e una seccion de
la imagen"""
asse eh > sh and sh <= 1
and eh <= 1, "In alid
heig h"
asse ew > sw and sw <= 1
and ew <= 1, "In alid
wid h"
sh = 2i(sel .h * sh)
eh = 2i(sel .h * eh)
sw = 2i(sel .w * sw)
ew = 2i(sel .w * ew)
es =
F ame(sel ._ma [sh:eh,
sw:ew])
e u n es
de g ay(sel ):
"""De uel e la imagen en
escala de g is"""
es =
F ame(c 2.c Colo (sel ._ma ,
c 2.COLOR_BGR2GRAY))
e u n es
de copy(sel ):
"""Copia la imagen."""
e u n
F ame(sel ._ma .copy())
de d aw(sel , ype, obj, colo
= (255, 255, 255)):
"""Pin a da os sob e la
imagen."""
es = D awe .d aw(sel ,
ype, obj, colo )
e u n es
de isG ay(sel ):
"""Comp ueba si la imagen
es a en escala de
g ises."""
e u n len(sel .shape) is 2
de isEmp y(sel ):
"""Comp ueba si el a ay ha
sido ca gado."""
e u n sel ._ma is None
120
A.4. IMAGEN
class D awe (objec ):
"""Dibuja o mas geome icas en
imagenes."""
WHITE = (255, 255, 255)
GREEN = (0, 255, 0)
BLUE = (255, 0, 0)
RED = (0, 0, 255)
BLACK = (0, 0, 0)
@s a icme hod
de d aw( ame, ype, obj,
colo = WHITE):
"""Dibuja los elemen os
especi icados."""
es = ame.copy()
i ype == " ":
es =
D awe . ec ( ame,
obj, colo )
eli ype == " ":
es =
D awe . ec s( ame,
obj, colo )
eli ype == "p":
es =
D awe .poin ( ame,
obj, colo )
eli ype == "pp":
es =
D awe .poin s( ame,
obj, colo )
e u n es
@s a icme hod
de ec ( ame, ec , colo =
WHITE):
"""Dibuja ec angulos en la
imagen"""
x, y, w, h = ec
p 1 = (x, y)
p 2=(x+w,y+h)
es =
F ame(c 2. ec angle( ame.ma ,
p 1, p 2, colo ))
e u n es
@s a icme hod
de ec s( ame, ec s, colo =
WHITE):
"""Dibuja un conjun o de
ec angulos."""
es = ame.copy()
o ec in ec s:
es = D awe . ec ( es,
ec , colo )
e u n es
@s a icme hod
de poin ( ame, poin , colo =
WHITE):
"""Dibuja un pun o en la
imagen"""
es =
F ame(c 2.ci cle( ame.ma ,
poin , 3, colo , -1))
e u n es
121
AP´
ENDICE A. CODIGOS DE PROGRAMACION
@s a icme hod
de poin s( ame, poin s, colo
= WHITE):
"""Dibuja un conjun o de
pun os en la ca a."""
es = ame.copy()
o poin in poin s:
es = D awe .poin ( es,
uple(poin ), colo )
e u n es
@s a icme hod
de line( ame, p 1, p 2, colo
= WHITE):
"""Dibuja una linea en la
imagen"""
es =
F ame(c 2.line( ame.ma ,
p 1, p 2, colo ))
e u n es
122
A.4. IMAGEN
123
AP´
ENDICE A. CODIGOS DE PROGRAMACION
A.5. C´ama a
om h eading impo Th ead, Lock
om g.image impo *
class Video(objec ):
"""Rep esen a un ideo."""
de __ini __(sel ):
sel ._cap u e = None
sel ._ ps = None
de load(sel , pa h):
"""Ca ga un ideo desde un
iche o"""
sel ._cap u e =
c 2.VideoCap u e(pa h)
e u n sel
de ead(sel ):
"""Cap u a la siguien e
imagen de un ideo."""
success, ma =
sel ._cap u e. ead()
es = F ame(ma )
e u n success, es
de ge Fps(sel ):
"""De uel e los o og amas
po segundo."""
e u n
sel ._cap u e.ge (c 2.CAP_PROP_FPS)
de ge Size(sel ):
"""De uel e el amanio de
las imagenes."""
size =
(in (sel ._cap u e.ge (
c 2.CAP_PROP_FRAME_WIDTH)),
in (sel ._cap u e.ge (
c 2.CAP_PROP_FRAME_HEIGHT)))
e u n size
de isLoaded(sel ):
"""Comp ueba si el ideo se
ha ca gado."""
e u n sel ._cap u e is no
None
de elease(sel ):
"""Libe a la ca ga del
ideo."""
sel ._cap u e. elease()
class Came a(Video):
"""Rep esen a imagenes de una
cama a"""
de __ini __(sel , channel = 0):
supe ().__ini __()
sel .load(channel)
de load(sel , channel = 0):
"""Comienza la cap u a."""
sel ._cap u e =
c 2.VideoCap u e(channel)
class Imp o edCame a(Video):
"""De ec a imagenes usando
dis in os hilos."""
de __ini __(sel , channel = 0):
supe (Imp o edCame a,
sel ).__ini __()
sel .came a =
Came a(channel)
sel .success, sel . ame =
sel .came a. ead()
sel .lock = Lock()
sel . h ead =
Th ead( a ge =sel .upda e,
a gs=())
sel . h ead.s a ()
124
A.5. C ´
AMARA
de upda e(sel ):
"""Ca ga imagenes de la
cama a segun es en
disponibles."""
while T ue:
success, ame =
sel .came a. ead()
sel .lock.acqui e()
sel .success,
sel . ame =
success, ame
sel .lock. elease()
de ead(sel ):
"""De uel e la ul ima
imagen cap u ada"""
sel .lock.acqui e()
ame = sel . ame.copy()
sel .lock. elease()
e u n ame
de __exi __(sel , exc_ ype,
exc_ alue, aceback):
"""Libe a los hilos en
ejecucion"""
sel . h ead.join()
sel .came a. elease()
125
AP´
ENDICE A. CODIGOS DE PROGRAMACION
126
A.6. RECONSTRUCCI ´
ON
A.6. Recons ucci´on
A.6.1. Py hon
om g.de ec o impo
F on alFaceDe ec o
om g.image impo *
om g.landma k impo Landma ke
om g.u ils impo *
class Recons uc ionHelpe (objec ):
"""Facili a la con igu acion de
la econs uccion"""
de
econs uc _ om_poin s(sel ,
de ice, name, poin s):
pa ams =
econs Pa ams(de ice)
e u n Recons uc o (name,
poin s,
pa ams). econs uc ()
de
econs uc _ om_ ames(sel ,
de ice, name, ames):
poin s =
sel ._ ames2poin s( ames)
e u n
sel . econs uc _ om_poin s(de ice,
name, poin s)
de econs uc _ om_pa h(sel ,
de ice, name, pa h, egex):
ames =
sel ._ ames_in_pa h(pa h,
egex)
e u n
sel . econs uc _ om_ ames(de ice,
name, ames)
de
econs uc _ om_images(sel ,
de ice, name, egex):
pa h =
’ econs uc ion/images/’
+ de ice
e u n
sel . econs uc _ om_pa h(de ice,
name, pa h, egex)
de load_ esul s(sel , name):
e u n
Recons uc o . esul s(name)
de _ ames2poin s(sel ,
ames):
de ec o =
F on alFaceDe ec o ()
landma ke = Landma ke ()
poin s = []
o ame in ames:
de ec o .de ec ( ame)
i de ec o .de ec ed():
ec = de ec o .ge ()
landma ks =
landma ke .loca e( ame,
ec )
poin s.append(landma ks)
e u n poin s
de _ ames_in_pa h(sel , pa h,
egex):
e u n F ame.loads(pa h,
egex)
127
AP´
ENDICE A. CODIGOS DE PROGRAMACION
A.7. Pun os aciales
impo dlib
om g.u ils impo *
class Landma ke (objec ):
"""De ec a los pun os de
e e encia aciales."""
de __ini __(sel ,
p edic o _pa h =
"landma ks/shape_p edic o _68_ ace_landma ks.da "):
sel ._p edic o =
dlib.dlib.shape_p edic o (p edic o _pa h)
de loca e(sel , ame, ec =
None):
"""De ec a los pun os pa a
una ca a."""
i ec is None:
ec = ec F ame( ame)
shape =
sel ._p edic o ( ame.ma ,
ec 2dlib( ec ))
es = shape2poin s(shape)
e u n es
de mul i(sel , ame, ec s):
"""De ec a los pun os pa a
a ias ca as."""
es = []
o ec in ec s:
de =
sel .loca e( ame,
ec )
es.append(de )
e u n es
134
A.7. PUNTOS FACIALES
135
AP´
ENDICE A. CODIGOS DE PROGRAMACION
A.8. Pose
impo c 2
om sympy impo Plane
impo ma h
om g.de ec o impo
F on alFaceDe ec o
om g.in e ace impo *
om g.landma k impo Landma ke
om g.plo impo Plo e 3D
om g.u ils impo *
class Pose(objec ):
"""O ien acion de una cama a
median e su ision de la
ca a"""
de __ini __(sel , poin s3d,
m x, dis , e _ ame=None,
eal_dis =None, ace_side =
None):
sel ._ de ec o =
F on alFaceDe ec o ()
sel ._landma ke =
Landma ke ()
sel ._posi ione =
Posi ione (poin s3d,
m x, dis )
sel ._ e ec = None
sel ._ ac o = None
sel ._ a io = None
sel .load_ e e ence( e _ ame,
eal_dis , ace_side)
de load_ e e ence(sel ,
e _ ame, eal_dis =None,
ace_side = None):
"""Ca ga de los alo es de
e e encia"""
i e _ ame is no None:
sel ._ de ec o .de ec ( e _ ame)
i ace_side is no
None:
ace_ ec =
sel ._ de ec o .ge ()
bo de = ace_ ec [2]
sel ._ a io =
ace_side /
bo de
e al, o igin, axis,
ec, ace_ ec ,
landma ks =
sel . un( e _ ame)
i e al:
sel ._ e ec = ec
i eal_dis is no
None:
sel ._ ac o =
eal_dis /
T ans o me .dis 3poin s(o igin)
de un(sel , ame):
"""Ejecucion del p oceso"""
ame =
sel .p ep ocess( ame)
e al, o a ion,
ansla ion, ace_ ec ,
landma ks =
sel .ge _posi ion( ame)
i e al:
axis =
Pose.o ien ( o a ion)
136
A.8. POSE
ansla ion =
Pose.aim( ansla ion,
axis)
o a ion, ansla ion,
axis =
sel .co ec o ( o a ion,
ansla ion, axis)
ansla ion =
Pose.aim( ansla ion,
axis)
ansla ion =
sel . o_ eal( ansla ion)
e u n T ue,
ansla ion, axis,
o a ion, ace_ ec ,
landma ks
else:
e u n False, None,
None, None, None,
None
@s a icme hod
de aim(o igin, axis):
"""Apun a el sis ema sob e
las na inas"""
d=
T ans o me .dis 3poin s(o igin)
z_axis =
T ans o me .no m(axis[2])
o igin = [-d * zi o zi in
z_axis]
e u n o igin
@s a icme hod
de o ien ( ec):
"""Ob iene la ma iz de
o acion a pa i del
ec o """
e u n
T ans o me . o a e_ ec( ec,
Plo e 3D.CARTESIAN)
de co ec o (sel , ec, ec,
axis=None):
"""Co eccion de la
o ien acion"""
i axis is None: axis =
Pose.o ien ( ec)
i ec[2] > 0:
x, _, z = ec
angle = 2 *
ma h.a an(z/abs(x))
i x < 0:
angle *= -1
ec_mi o = [0,
angle, 0]
ec[2] *= -1
axis =
T ans o me . o a e_ ec( ec_mi o ,
axis)
ec =
T ans o me .m x_ ec(axis)
ec = [ eci % (2 * pi)
o eci in ec]
ec = [angle - 2 * pi i
angle > pi else angle
o angle in ec]
i sel ._ e ec is no
None:
ec = [ ec[i] -
sel ._ e ec[i] o i
in ange(0, 3)]
137
AP´
ENDICE A. CODIGOS DE PROGRAMACION
ec = [ eci % (2 *
pi) o eci in
ec]
ec = [angle - 2 * pi
i angle > pi else
angle o angle in
ec]
axis = Pose.o ien ( ec)
e u n ec, ec, axis
de ge _posi ion(sel , ame):
"""Posicionamien o de la
imagen"""
ame_op =
sel .op imize( ame)
sel ._ de ec o .de ec ( ame_op )
ace_ ec =
sel ._ de ec o .ge ()
i ace_ ec is no None:
landma ks =
sel ._landma ke .loca e( ame_op ,
ace_ ec )
i sel ._ a io is no
None:
landma ks =
[[in (comp /
sel ._ a io) o
comp in
landma k] o
landma k in
landma ks]
ace_ ec =
[in (comp /
sel ._ a io) o
comp in
ace_ ec ]
e al, ec, ec =
sel ._posi ione .posi ion(landma ks)
e u n e al, ec,
ec, ace_ ec ,
landma ks
else: e u n False, None,
None, None, None
de o_ eal(sel , ec):
"""Con e sion a unidades
eales"""
i sel ._ ac o is no None:
ec = [sel ._ ac o *
eci o eci in
ec]
e u n ec
de p ep ocess(sel , ame):
"""P ep ocesado de la
imagen"""
i no ame.isG ay():
ame = ame.g ay()
e u n ame
de op imize(sel , ame):
"""Escalado de la imagen"""
i sel ._ a io is no None:
ame =
ame. esize(sel ._ a io)
e u n ame
class Posi ione (objec ):
"""O ien acion de pun os
espec o a un modelo
idimensional"""
ace_numbe = 196
de __ini __(sel , poin s3d,
m x, dis ):
sel ._poin s3d = poin s3d
138
A.8. POSE
sel ._m x = m x
sel ._dis = dis
sel ._las _ ec = None
sel ._las _ ec = None
@s a icme hod
de ace_ om_sec ion(pos, p2d,
p3d=None):
"""Componen es de una ca a
segun su nume o"""
p2d = p2d.copy()
sec ions2 = [p2d[0:17],
p2d[17:22], p2d[22:27],
p2d[27:36], p2d[36:42],
p2d[42:48], p2d[48:60],
p2d[60:]]
p2d.clea ()
i p3d is no None:
p3d = p3d.copy()
sec ions3 = [p3d[0:17],
p3d[17:22],
p3d[22:27],
p3d[27:36],
p3d[36:42],
p3d[42:48],
p3d[48:60], p3d[60:]]
p3d.clea ()
nb = bin(pos)[2:].z ill(8)
al = [in (nbi) == 1 o
nbi in nb]
o iin ange(0, 8):
i al[i]:
p2d += sec ions2[i]
i p3d is no None:
p3d +=
sec ions3[i]
i p3d is no None:
e u n p2d, p3d
else:
e u n p2d
de posi ion(sel , poin s2d):
"""O ien acion de pun os
bidimensionales"""
poin s3d = sel ._poin s3d
poin s2d = poin s2d
p2d, p3d =
Posi ione . ace_ om_sec ion(Posi ione . ace_numbe ,
poin s2d, poin s3d)
e al, ec, ec =
c 2.sol ePnP(sel .poin s3numpy(p3d),
lis s2numpy(p2d),
sel ._m x, sel ._dis )
ec, ec =
simpli y( ec. olis ()),
simpli y( ec. olis ())
e u n e al, ec, ec
de poin s3numpy(sel ,
poin s3d):
"""Con e sion de pun os a
a ay numpy"""
a ay =
np.ze os((len(poin s3d),
3))
i=0
o poin in poin s3d:
x, y, z = poin
suba ay = np.a ay([x,
y, z])
a ay[i] = suba ay
i += 1
e u n a ay
139
AP´
ENDICE A. CODIGOS DE PROGRAMACION
class Aligne (objec ):
"""Alineacion de pun os de la
ca a"""
MOUTH_R = 49 - 1
MOUTH_L = 55 - 1
EYE_R = 37 - 1
EYE_L = 46 - 1
NOSE_B = 34 - 1
NOSE_U = 28 - 1
NOSE_R = 32 - 1
NOSE_L = 36 - 1
de __ini __(sel , poin s):
sel ._poin s = poin s.copy()
sel .load()
de load(sel ):
"""Ca ga de pun os"""
sel ._mou hR =
sel ._poin s[sel .MOUTH_R]
sel ._mou hL =
sel ._poin s[sel .MOUTH_L]
sel ._eyeR =
sel ._poin s[sel .EYE_R]
sel ._eyeL =
sel ._poin s[sel .EYE_L]
sel ._noseB =
sel ._poin s[sel .NOSE_B]
sel ._noseU =
sel ._poin s[sel .NOSE_U]
sel ._noseR =
sel ._poin s[sel .NOSE_R]
sel ._noseL =
sel ._poin s[sel .NOSE_L]
sel ._noseM =
T ans o me .midpoin (sel ._noseR,
sel ._noseL)
de align(sel ):
"""P oceso de alineado"""
o igin = sel ._noseB
sel ._poin s =
T ans o me . ansla e(o igin,
sel ._poin s)
x, y, z = sel .axis()
m x =
T ans o me .m x_new_axis(x,
y, z)
sel ._poin s =
T ans o me . o a e(m x,
sel ._poin s)
e u n sel ._poin s
de axis(sel ):
y=[x-y o x, y in
zip(sel ._noseU,
sel ._noseM)]
z = [- zi o zi in
T ans o me .no mal_ ec o (sel ._noseR,
sel ._noseL,
sel ._noseU)]
x = T ans o me .c oss(z, y)
e u n T ans o me .no ms(x,
y, z)
class T ans o me (objec ):
"""Realiza ans o maciones
geome icas"""
@s a icme hod
de c oss( ec1, ec2):
ec1np, ec2np =
lis s2numpy(( ec1,
ec2))
140
A.8. POSE
ecnp = np.c oss( ec1np,
ec2np)
e u n numpy2lis ( ecnp)
@s a icme hod
de o a e(m x, poin s):
poin s = [np.do (m x,
lis 2numpy(poin )) o
poin in poin s]
e u n numpys2lis (poin s)
@s a icme hod
de o a e_ ec( ec, poin s):
e u n T ans o me . o a e(
T ans o me . ec_m x( ec),
poin s)
@s a icme hod
de ansla e(o igin, poin s):
= [-i o iin o igin]
poin s = [p3d. ansla e(* )
o p3d in
[Poin 3D(*poin ) o
poin in poin s]]
e u n s3 s(*poin s)
@s a icme hod
de ec_m x( ec):
m x = c 2.Rod igues(
np.asa ay( ec))[0]. olis ()
e u n m x
@s a icme hod
de m x_ ec(m x):
es = np.ze os((3, 3))
m x = np.asa ay(m x)
ec = c 2.Rod igues(m x)[0]
e u n lis (map( loa ,
ec))
@s a icme hod
de m x_new_axis(x, y, z):
m x = np.ze os((3, 3))
m x[0, :], m x[1, :],
m x[2, :] =
lis s2numpy((x, y, z))
e u n m x
@s a icme hod
de no m( ec o ):
x, y, z = ec o
m = sq (pow(x, 2) + pow(y,
2) + pow(z, 2))
e u n [x/m,y/m,z/m]
@s a icme hod
de no ms(* ec o s):
es = []
o ec o in lis ( ec o s):
es.append(T ans o me .no m( ec o ))
e u n es
@s a icme hod
de midpoin (p 1, p 2):
p s1 = 3s(p 1)
p s2 = 3s(p 2)
e u n
s3 (p s1.midpoin (p s2))
@s a icme hod
de no mal_ ec o (p 1, p 2,
p 3):
plane = Plane( 3s(p 1),
3s(p 2), 3s(p 3))
no mal =
s3 (plane.no mal_ ec o )
e u n
T ans o me .no m(no mal )
141
AP´
ENDICE A. CODIGOS DE PROGRAMACION
@s a icme hod
de in e se( ec o ):
e u n [-i o iin ec o ]
@s a icme hod
de dis 3poin s(p 1, p 2=(0, 0,
0)):
x1, y1, z1 = p 1
x2, y2, z2 = p 2
e u n sq (pow(x1 - x2, 2)
+pow(y1 - y2, 2) +
pow(z1 - z2, 2))
142
A.8. POSE
143