scieee Science in your language
[sp] (orig)

Algoritmos de detección y localización de puntos de referencia faciales en tiempo real para guiado en cirugía

Abstract

La tasa de éxito de las cirugías endoscópicas se ha visto incrementada en gran medida tras la implementación de sistemas de guiado por ordenador. Estos permiten localizar con precisión la punta del endoscopio en la anatomía del paciente. evitando dañar tejido contiguo y la búsqueda de estructuras no visibles por el endoscopio. Es habitual encontrar, en el mercado de guiado en cirugía endoscópica, dispositivos centrados en sus características técnicas, dejando de lado la usabilidad, accesibilidad y comodidad del facultativo. Suelen ocupar grandes cantidades de espacio, tener precios elevados y requerir un campo de visión muy amplio, entorpeciendo la labor del personal. En este trabajo se desarrolla un sistema de guiado para cirugía endoscópica nasosinusal capaz de localizar la orientación del endoscopio en el interor de las fosas nasales del paciente. Usando técnicas de visión por computador, el sistema detecta caras y puntos faciales característicos, generando un modelo completamente personalizado para cada paciente, sobre el cual se estiman las orientaciones del endoscopio a tiempo real. Al ubicar el dispositivo de grabación en el mismo endoscopio, se minimiza el espacio ocupado, las limitaciones para el personal, el aprendizaje previo y el contacto directo con el paciente.

Read accessible full text

Algoritmos de detección y localización de puntos de referencia faciales en tiempo real para guiado en cirugía

Author: Axelrad Tinoco, Martín
Year: 2018
Source: https://riuma.uma.es/xmlui/bitstream/10630/16927/1/MartinAxelradTinocoMemoria.pdf
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
1e 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 ✓1e
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(x1,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(k1) ✓ ✓(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,1dx
ij
x◆(4.16)
wy
ij(x, y) = m´ax ✓0,1dy
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)22PAPB 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)22·PB ·PC ·cos(↵ ,w)(BC)2=0
(PA)2+(PC)22·PA·PC ·cos(↵u,w)(AC)2=0
(PA)2+(PB)22·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 (ucui)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=x0x(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)
mdm 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