INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACION y ...
Transcript of INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACION y ...
INSTITUTO POLITÉCNICO NACIONAL
CENTRO DE INNOVACION y
DESARROLLO TECNOLOGICO EN
COMPUTO
Reconstrucción Facial Tridimensional Forense
en Blender
Tesis
Que para obtener el grado de
Maestría en Tecnología de Cómputo
Presenta
Ing. Rocío García Cortés
Directores de tesis
M. en C. Jesús A. Álvarez Cedillo
Dr. José Guadalupe Trujillo Ferrara
Octubre 2012.
- 1 -
- 2 -
CARTA CESIÓN DE DERECHOS
En la Ciudad de México el día 29 del mes de Octubre del año 2012, el (la) que suscribe
García Cortés Rocío alumno (a) del Programa de Maestría en Tecnología de Cómputo con
número de registro B101967, adscrito al Centro de Innovación y Desarrollo Tecnológico,
manifiesta que es autor (a) intelectual del presente trabajo de Tesis bajo la dirección de M.
en C. Jesús A. Álvarez Cedillo y el Dr. José Guadalupe Trujillo Ferrara y cede los derechos
del trabajo intitulado “Reconstrucción Facial Tridimensional Forense en Blender”, al
Instituto Politécnico Nacional para su difusión, con fines académicos y de investigación.
Los usuarios de la información no deben reproducir el contenido textual, gráficas o datos
del trabajo sin el permiso expreso del autor y/o director del trabajo. Este puede ser
obtenido escribiendo a la siguiente dirección [email protected]. Si el permiso se
otorga, el usuario deberá dar el agradecimiento correspondiente y citar la fuente del mismo.
Rocío García Cortés
- 3 -
Resumen:
En este trabajo se desarrolló una metodología para realizar
reconstrucciones de Rostros forense tridimensional, a partir de un
modelo de cráneo 3D, por medio de la herramienta de diseño Blender.
El presente trabajo permite agregar detalles, especifcar texturas y
personalizar e incluso cambiar el origen étnico. Se basa en el trabajo
reportado por Krogman et Al, 1962.
La idea principal planteada en el trabajo de Krogman radica en el
empleo de triangulaciones construidas con los puntos paramétricos y
han sido ampliamente documentados en la literatura por la
reconstrucción forense clásica y medica. A partir de ese punto , se le dio
un tratamiento gráfco para generar una reconstrucción tridimensional
aproximada.
Los resultados obtenidos en el método propuesto produce un modelo,
que aunque no es exacto del todo, sin embargo permite evaluar un
rostro aproximado para su posterior búsqueda en bases de datos
policiales y médicas.
- 4 -
Abstract:
In this work we developed a methodology for three-dimensional
reconstructions of forensic Faces, from a 3D skull model, using the
design tool Blender.
This paper can add details, textures and personalize specify and even
change ethnicity. It is based on the work reported by Krogman et Al,
1962.
The main idea proposed in Krogman work lies in the use of triangulation
constructed parametric points and have been widely documented in the
literature for the classical and medical forensic reconstruction. From that
point, he was given a graphic treatment to generate an approximate
three-dimensional reconstruction.
The results obtained from the proposed method produces a model,
although it is not entirely accurate, however approximate evaluates a
face for further search police databases and medical.
- 5 -
A mis padres:
Alejandro y Enedina por brindarme su apoyo incondicional y por
alentarme siempre que lo necesito.
A mi hermana:
Mónica por apoyarme y también ser un gran ejemplo a seguir, por sus
consejos y ser una gran amiga para mí.
Al Instituto Politécnico Nacional:
Por ser la institución que me ha brindado tanto conocimiento que he
estado desarrollando.
A Mis directores de Tesis:
Jesús A. Cedillo por brindarme su apoyo incondicional, su tiempo, y sus
consejos y brindarme su amistad. José G. Trujillo, por darme su confanza
al realizar este trabajo y apoyarme.
A mis maestros:
Por compartirme parte de su conocimiento y su tiempo durante esta
etapa académica.
A mis amigos y compañeros:
Que siempre me han apoyado, y escuchado, así como también a todas
aquellas personas que siempre estuvieron cerca.
- 6 -
Índice GeneralResumen:.................................................................................................. 4Abstract:................................................................................................... 5Capítulo 1 Introducción........................................................................... 101.1. Planteamiento del Problema............................................................ 101.2 Justifcación.......................................................................................101.3 Objetivo General............................................................................... 111.3.1 Objetivos Particulares....................................................................111.4 Metodología de Investigación...........................................................11Capítulo 2 Técnicas de Reconstrucción Forense......................................132.1 Introducción...................................................................................... 132.2 Antecedentes....................................................................................132.3 Reconstrucción de Rostros................................................................14Capítulo 3 Modelos Gráfcos y Reconstrucción Gráfca...........................253.1 Modelos Gráfcos...............................................................................25
Importación de Objetos....................................................................... 283.2 Escena.............................................................................................. 293.3 Operaciones Gráfcas de Objeto........................................................33
Seleccionar..........................................................................................34Mover.................................................................................................. 34Rotar....................................................................................................35Escalar.................................................................................................36
3.4 Operaciones Gráfcas de Edición.......................................................363.5 Material en Blender..........................................................................393.6 Mallas...............................................................................................42Capítulo 4 Reconstrucción Forense......................................................... 454.1 Problema a Resolver......................................................................... 454.2 Metodología...................................................................................... 45
4.2.1 Reconstrucción Física.................................................................454.2.2 Creación del Modelo...................................................................474.3.1 Obtención del modelo gráfco...................................................514.3.2 Ajuste de Parámetros de Escena...............................................554.3.3 Colocación de Puntos Craneométricos.......................................574.3.4 Triangulación.............................................................................. 614.3.5 Colocación de Objetos Comunes................................................654.3.6 Acabados....................................................................................70
5. Resultados.......................................................................................... 725.1.1 Creación del molde....................................................................725.1.2 Reconstrucción Manual..............................................................735.2 Reconstrucción por Computadora................................................. 74
6. Conclusiones ......................................................................................84Trabajos a Futuro.....................................................................................85REFERENCIAS..........................................................................................86Anexos.................................................................................................... 88
- 7 -
A. Código ................................................................................................88B. Tejidos Blandos en México..................................................................95
Índice de fgurasFigura 2.3.1 Registro de datos................................................................15Figura 2.3.2 Captura de Fotografías realizadas.......................................16Figura 2.3.3 Maxilar superior ..................................................................16Figura 2.3.4 Reconstrucción de Bach...................................................... 18Figura 2.3.5 Dr. Wilton Krogman.............................................................20Figura 2.3.6 Técnica Dr. Krogman............................................................21Figura 2.3.7: Primer sistema computarizado de reconocimiento de rostros[9]................................................................................................ 22Figura 2.3.8 Reconstrucción Facial [11]...................................................23Figura 2.3.9 Software Caramex..............................................................24Figura 3.1.1 Vértice................................................................................. 26Figura 3.1.2 Quad...................................................................................27Figura 3.2.3 Vértice................................................................................ 27Figura 3.2.4 Arista...................................................................................28Figura 3.2.5 Cara ...................................................................................28Tabla 3.1. Formatos de Objetos...............................................................29Figura 3.2.1. Escena................................................................................30Figura 3.2.2. Selector de escena.............................................................30Figura 3.2.3. Nueva Escena.....................................................................31Figura. 3.2.4. Agregar cámara.................................................................32Figura 3.2.5 Iluminación..........................................................................33Figura 3.3.1 Modo Objeto........................................................................33Figura 3.3.3 Selección del Objeto............................................................34Figura 3.3.4 Mover objeto....................................................................... 35 Figura 3.3.5 Rotación en ejes, x, y, x...................................................35Figura 3.3.6 Escalamiento en el eje 'z' ...................................................36Figura 3.4.1 Modo Edición....................................................................... 36Figura 3.4.2 Objeto en Modo Edición.......................................................37Figura 3.4.3 Selección de vértices..........................................................37Figura 3.4.4 Menú de elección de edición............................................... 38Figura 3.4.5 Modo Edición-Arista.............................................................38Figura 3.4.6 Modo Edición-Caras.............................................................39Figura 3.5 Botón Material........................................................................39Figura 3.5.1 Botón Nuevo Material..........................................................40Figura 3.5.2 Lista de Materiales.............................................................. 40Figura 3.5.3 Opciones de Pre-visualización.............................................42Figura 3.6 Efectos de Suavizado............................................................. 43Figura 3.6.1 Efecto Sombreado Suave....................................................43Figura 3.6.2 Efecto Suavizado Modo de Edición......................................44Figura 3.6.3 Efecto Auto suavizado.........................................................44
- 8 -
Figura 3.6.4 opciones de Smooth en el menú de Object Tools................44Figura 4.2.1 Cráneos Humanos............................................................... 46Figura 4.2.2.2 Creación del molde de silicón...........................................48Figura 4.2.2.3 Moldes con el modelo dentro...........................................50Figura 4.2.2.4 Sacando el modelo del molde y detalles.........................50Figura 4.2.2.5 Modelo de Cráneo Final ................................................... 51Figura 4.3.1 Kinect de Microsoft utilizado para obtención de objeto.......52Figura 4.3.1.2 Calibración de la cámara del Kinect.................................53Figura 4.3.1.3 Ejemplo de obtención de puntos con el Kinect.................53Figura 4.3.1.4 Volumen .......................................................................... 54Figura 4.3.1.5 Modelo del cráneo .obj..................................................... 55b) Selección de Unidades........................................................................56Figura 4.3.2.1 Confguración de Escena. ................................................56a) Menú desplegable ..............................................................................57 b)Parámetros ajustados......................................................................... 57Figura 4.3.2.2 Verifcación Unidades de Escena......................................57Figura 4.3.3.1 Puntos Craneométricos....................................................58Figura 4.3.3.2 Puntos Craneométricos Digital.........................................59Figura 4.3.4.1 Conjunto de vértices. ......................................................63Figura 5.3.4.2 Triangulación .................................................................. 64Figura 4.3.5.1 Rasgos Craneales.............................................................65Figura 4.3.5.2 Rasgos Morfológicos.........................................................66Figura 4.3.5.3 Biblioteca de objetos comunes Nariz...............................67Figura 4.3.5.4 Biblioteca de objetos comunes Orejas.............................68 Figura 4.3.5.5 Colocación de Objetos Nariz y Orejas.............................69Figura 4.3.6.1 Ejemplo de Acabado.........................................................71 Figura 5.1.1 Modelo de Resina ............................................................ 72Figura 5.1.2.1 Primer Reconstrucción Manual de Rostros.......................73Figura 5.1.2.2 Segunda Reconstrucción Manual de Rostros....................74Figura 5.2.1 Modelo de Cráneo...............................................................75Figura 5.2.2 Triangulación en el modelo..................................................76(a) Vista Posterior (b)Vista Izquierda (c) Vista Derecha (d) Vista Anterior (e) Vista Frontal con el modelo................................................................76Figura 5.2.3 Importación de objetos........................................................77Figura 5.2.4 resultados de Colocación de Piel con diferentes Flats.........78(a) flat=0.0108228 (b) flat= -0.0012069 (c) flat= 0.0077745 .............78(d)flat=0.0084275 (e) flat= 0.0145819 (f) flat= 0.0204886..................78(g) flat=0.0108228 (h) renderizacion.....................................................78Figura 5.2.5 Comparación del resultado de la Reconstrucción Final......79Figura 5.2.6 Programa empleado en NVIDIA..........................................79Figura 5.2.7 Ejemplo Gráfco de Granja Blender.....................................82
- 9 -
Capítulo 1 Introducción
1.1. Planteamiento del Problema
En México hace algunos años, la incidencia de encontrar cabezas
sin el cuerpo es muy grande e incluso común en algunas comunidades.
Estas cabezas suelen ser encontrados sin identifcación, o es tan
avanzado el grado de descomposición que es imposible ser reconocidos
de manera visual, otros fueron devorados o carcomidos por gusanos o
animales carroñeros. Los investigadores forenses no cuentan con una
herramienta que ayude a resolver esta situación y el trabajo de
reconstrucción es manual y lleva mucho tiempo.+
1.2 Justificación
El problema de la representación y reconstrucción de formas
tridimensionales ha recibido una enorme atención en investigaciones de
visión en la última década. El interés surge debido a que la teoría de
formas podría tener aplicaciones en una amplia variedad de campos,
pero además de cualquier aplicación práctica el problema tiene mucho
interés matemático y científco.
En la antropología forense se llevan a cabo estudios para poder
identifcar rostros de personas, que por alguna causa no pueden ser
identifcadas debido a que están en completo estado de descomposición
o imposibles de identifcar por las circunstancias de su muerte.
Antropólogos forenses han usado distintas técnicas de
reconstrucción, la mayoría manual, o por posición de fotografías.
Llevando a cabo un largo proceso para lograr dicho objetivo, la
reconstrucción manual muchas veces se llevan días en realizarlas, o por
medio de otras técnicas una larga jornada de desarrollo.
- 10 -
Se pretende lograr es a través de la tecnología, desarrollar una
herramienta por la cuál se pueda hacer más sencilla y disminuir en
mucho el tiempo requerido para llevar esta tarea de la reconstrucción de
rostros, así como la unión de distintas áreas, como son la del área de
medicina u antropología forense y el área de computación.
1.3 Objetivo General
Realizar un algoritmo de reconstrucción facial 3D a través del uso
herramientas computacionales gráfcas de alto desempeño.
1.3.1 Objetivos Particulares
• Conocer las técnicas de reconstrucción forense de rostros
• Desarrollar un modelo del proceso en un cráneo de cerámica.
• Utilizar y explotar el conocimiento de los algoritmos que se utilizan
para elementos gráfcos tridimensionales.
• Utilizar y explotar el uso de programas de desarrollo de alto
paralelismo gráfco.
1.4 Metodología de Investigación
Este proyecto se divide básicamente en siete capítulos, los cuáles
se describen a continuación:
1. En primer capítulo, se describe la presentación de la
problemática contextualizada, la justifcación del problema, así
como los objetivos propuestos, la estructura de la tesis.
2. En el segundo capítulo, se muestra un panorama general de los
trabajos que se han realizado sobre técnicas de reconstrucción
- 11 -
de rostros, a través del paso de los años, métodos que han sido
utilizados hasta nuestros días.
3. En el tercer capítulo se hace una presentación acerca de la
computación gráfca, como los modelos gráfcos, escenas,
operaciones gráfcas de objeto y edición, en Blender, para
obtener un previo conocimiento de las herramientas a utilizar
posteriormente en el desarrollo de este trabajo.
4. El cuarto capítulo describe el desarrollo del proyecto, pasos que
se realizaron para el problema a resolver, la metodología, entre
otras, las características de la creación de un molde de resina,
adecuación de escena, etc.
5. El quinto capítulo muestra los resultados obtenidos, por parte
del desarrollo del trabajo, fguras donde podemos apreciarlos.
6. El sexto capítulo, describe las conclusiones del trabajo, así
como los trabajos futuros que pueden desarrollarse tomando
como base esta tesis.
- 12 -
Capítulo 2 Técnicas de Reconstrucción Forense
2.1 Introducción
La reconstrucción sirve para reconocer que una persona es la
misma que se busca, a partir de un conjunto de caracteres óseos o
genéticos. Es un proceso que puede ser comparativo o reconstructivo, y
esta tiende a ubicar a una persona desconocida dentro de un universo
social con el que comparte un territorio, un origen en común o
características morfológicas .
2.2 Antecedentes
En el siglo XIX, el Bertillonaje[1] identifcaba sujetos vivos
mediante fchas, que incluían los rasgos de la frente, nariz, orejas, dando
a cada uno de ellos una escala de 7, según la forma, dimensión o grado
de inclinación, incluyendo también el color del iris izquierdo, marcas y
estigmas particulares, señales y rasgos distintivos de la fsonomía y tras
partes del cuerpo. Se complementaba con fotografías estandarizadas,
datos personales como edad, sexo, lugar de nacimiento.
La elaboración de retratos hablados que anteriormente se
realizaban a mano alzada, se adelanta actualmente mediante versátiles
sistemas computarizados que contienen variantes de distintos
segmentos del rostro (como el cabello, frente cejas, ojos, nariz, boca,
pliegues, mentón, pómulos, aditamentos), como los sistemas Visionics,
Faces, y otros[2].
- 13 -
2.3 Reconstrucción de Rostros
El arte forense ha sido usado por décadas anteriores como una
herramienta para la investigación. Se han dado casos como en la ciudad
de Oklahoma donde el arte forense documento la información
relacionada con el crimen, estas primeras documentaciones tomaban en
cuenta narraciones o descripciones por parte de los testigos, con el
propósito de identifcar tanto como a las víctimas como a los asesinos.
Los diagramas de las escenas del crimen eran utilizados para
documentar, esclarecer y reconstruir el incidente. [3]
Con el paso de los años, se mejoró el interés debido a la
curiosidad, que se ha tenido para recolectar información para el arte
forense. Se ha puesto particular atención para resolver casos en la cual
el arte forense ha tenido un rol muy importante. La información se
presenta cronológicamente en un orden por áreas o disciplinas.
- Composición de imágenes es una de ellas, se componen de
dibujos generales sobre evidencias.
- Identifcación y modifcación de la imagen, son los métodos de
manipulación, comparación y categorización de las fotografías o dibujos.
- Demostración de la evidencia, es la información visual que se muestra
en el juicio.
- Reconstrucción y ayuda para la identifcación, son los métodos
para la identifcación física humana en sus distintas condiciones.
- 14 -
En el año 1800, un ejemplo de cómo se realizaba la reconstrucción
se daban a través de los dibujos, los cuáles eran prácticamente pósters
de caricaturas (Figura 2.3.1).
Figura 2.3.1 Registro de datos
Un gran avance por parte del antropólogo Alfonso Bertillon, fue el
registro de las características de los rostros de Andrew y Abby Borden,
los cuáles fueron asesinados en su casa.
La actividad propiamente dicha de analizar o reconstruir rostros
tiene sus orígenes a fnales del siglo XIX, muestra de ello son los
primeros documentos elaborados por Schaafhausen (1875, 1883), quien
publica: Sobre la máscara mortuoria de Shakespare y La cabeza de
Raphael.(Figura 2.3.2) [4]
- 15 -
Figura 2.3.2 Captura de Fotografías realizadas
En el año de 1884, Langer realizó una investigación en la cuál
aportó la relación entre los tejidos blandos del rostro y el cráneo, el
mencionó en su estudio que los huesos maxilares (Figura 2.3.3)
determinan la forma de la nariz, es decir que la base de la nariz depende
de su posición y anchura de órbitas.
Figura 2.3.3 Maxilar superior
- 16 -
Posteriormente, se tiene la referencia de los trabajos realizados
por Welcker(1883) y Tandler (1990) [5,6], quienes respectivamente
identifcaron a los siguientes personajes: el flósofo Immanuel Kant, el
músico Johann Sebastián Bach y el compositor Joseph Haydn.
En el trabajo de Welcker, se realizó la identifcación de Schiller con
una máscara mortuoria, y la comparación del cráneo de Raphael con un
retrato que se tenía de éste.
En este trabajo Welcker se enfocó a resolver si las proporciones y
el perfl de su cara coincidan con el perfl que se tenia del cráneo, y si el
contorno del cráneo coincidía con el contorno del rostro y linea media,
teniendo las medidas del tejido blando de ambas así como sus
observaciones pertinentes, concluyo que los contornos del perfl del
cráneo y del rostro son dependientes, esto quiere decir que gracias a
ello, se podía dibujar el contorno de la cara por medio del cráneo. Una
gran aportación que se obtuvo como un reconocimiento hacia el trabajo
de Welcker, es que fue uno de los primeros en estudiar las radiografás,
para obtener las medidas del tejido blando, en este caso de su propio
rostro.
Por otro lado en el año de 1895, His también llevo acabo una
investigación para determinar los grosores del tejido blando en distintos
puntos del rostro y la cabeza, el uso como instrumento una herramienta
que el mismo construyó, la cual trata de una agua con una pieza
deslizable (esta es parecida a la que aun se utiliza en el Servicio Médico
Forense, en México), así anotando en una tabla los datos del grosor del
tejido blando, que se realizaron en diferentes cadáveres.
Estos datos a su vez, sirvieron para trabajar en conjunto a His
junto con un escultor de nombre Zefner a reconstruir el rostro de
- 17 -
Sebastián Bach a partir de su cráneo. Ellos realizaron al mismo tiempo
dibujos del retrato de Bach, para corregir su reconstrucción, como
resultado se obtuvo un rostro muy parecido al de este. (Figura 2.3.4)
Figura 2.3.4 Reconstrucción de Bach
Para que fueran aceptados los resultados ellos mismos montaron
este rostro en la cabeza de Handel, aunque el parecido era exacto con el
- 18 -
retrato de Handel, tanto His como Zefner, lograron acercarse a este
cuando estudiaron los grosores del tejido blando.
Posteriormente se empezaron a realizar trabajos de
reconstrucciones de cráneos de tumbas antiguas, en los cuales se
empezaron a utilizar los datos obtenidos de His y a su vez, ampliando los
datos.
En el año de 1907, Czekanowski, detallo más el trabajo sobre comparar los
datos craneométricos con los datos obtenidos en este caso en personas vivas.
Czekanowski en su trabajo clasifcó a 119 cabezas de cadáveres, en grupos a
partir de su sexo, edad y realizo de igual manera con ayuda de la aguja, todos los
datos fueron registrados, de las cabezas de estos cadáveres, se calcularon los
índices y estos datos los fueron contrastando con las medidas del cráneo, para
obtener datos de maceración.
Como resultado a este trabajo, se observó que los tejidos blandos de un
hombre es mayor al tejido blando de una mujer, a excepción de los arcos
cigomáticos, con la edad el tejido blando aumenta, llegando a un valor máximo
cuando se encuentra entre los años 40 y 50.
Czekanoski también hizo otra aportación ya que determinó las diferencias
en las medidas craneales justo después de la desecación, con lo cual obtuvó
contornos claros de los cráneos y de las cabezas.
Otro trabajo interesante fue el de Virchow en el año de 1912, ya que
presentó resultados, en donde mostró hombres de diferentes razas, ya que se
realizaron disecciones del rostro, capa por capa, así como también estudió la
correlación entre los tejidos blandos y el cráneo, el se auxilió de una máscara que
- 19 -
realizaba de yeso, y las colocaba en la mitad del rostro, para obtener las medidas
del grosor del tejido blando, como establecer rasgos faciales.
En los años de 1940, en un caso se le dió la importancia al rol de la
antropología para determinar la relación entre el cráneo y el rostro.
Como parte de un proyecto secreto para un presidente, este trabajo fue
desarrollado por parte del Dr. Wilton Krogman (fgura 2.3.5), que preparo
dibujos para predecir la morfología del cráneo.
Figura 2.3.5 Dr. Wilton Krogman
En los años de la posguerra se obtuvieron mayores intereses para
mejoras las técnicas de reconstrucción de rostros, especialmente entre
los rusos, para la identifcación principalmente de las víctimas en los
campos de concentración. El Dr. Krogman realizó un experimento
tridimensional, para después llevarlo a un escultor para sacar un molde,
mientras tanto estudió datos para poder identifcar a través de éste la
raza, genero y edad. Se preparó una escultura para la reconstrucción,
teniendo esto son comparadas con las fotografías iniciales que se
- 20 -
obtuvieron del cráneo. Así es como se desarrollo una de las primeras
técnicas de reconstrucción de rostros.
Gracias al trabajo realizado por el Dr. Krogman, se popularizó y
propuso la técnica para algunos casos forenses, los futuros especialistas
decidieron atender cuidadosamente cada uno de los pasos de la técnica
hasta que ésta fuera concluida de la mejor manera posible(Figura 2.3.6)
.
Figura 2.3.6 Técnica Dr. Krogman
Krogman en su libro The human skeleton in forensic medicine
(1962), presentó detalladamente y paso a paso como reconstruir la cara
sobre un cráneo empleado diferente modalidades de la técnica.
Posteriormente, la propuesta fue corregida y aumentada en una nueva
edición de su libro, en la cuál también colaboro Mehmet Yasar(1986)[7].
La reconstrucción de rostros constituye una de las mayores
aportaciones de la Antropología Forense, por cuanto elabora, a partir de
un conjunto de huesos, un retrato disponible para divulgar y hacer
comparaciones con foto de desaparecidos.
- 21 -
El primer sistema computarizado fue desarrollado por la
Universidad del Colegio de Londres en los años '80, y fue basado en el
sistema de reconstrucción facial para cirugía. Este sistema emplea un
escáner de láser y una cámara de video para recolectar las múltiples
coordenadas de una superfcie, al mismo tiempo que fue utilizado para
crear una colección de datos sobre rasgos faciales. [8].
El mismo sistema de video y láser se utilizó para analizar las parte del
cráneo sin identifcar, el cual muestra de manera tridimensional un leve
contorno facial sin características. En referencia a este sistema, Vanezis
(fgura 2.3.7) y sus colegas declararon que “la predicción de la
morfología real de las características de los tejidos blandos tales como
las orejas, nariz, labios y ojos, se mantendrán en gran parte como
especulativas al menos para un futuro previsible”[8].
Figura 2.3.7: Primer sistema computarizado de reconocimiento de rostros[9]
- 22 -
Varios sistemas informáticos se han desarrollado a partir del
trabajo de Vanezis y sus colegas. Los datos faciales y cráneos han sido
recolectados a través de una variedad de métodos bidimensionales y
tridimensionales[10].
En la universidad de Comenius, se ha realizado una aproximación
tridimensional más popular que la bidimensional, en esta manipulan
diferentes lados de la imágen. La razón de que este método sea más
efcaz es debido a que van construyendo músculo por músculo, además
que el antropologo Gerasimov ha recolectado datos promediando así las
características de las profundidades de los puntos craneométricos,
ajustando a la reconstrucción a cada uno de ellos (fgura 2.3.8).
Figura 2.3.8 Reconstrucción Facial [11]
Otros investigadores, crearon el promedio de la cabeza con
modelos 3D de múltiples sujetos mediante la interpolación de la
volumétrica de datos. La relevancia de la plantilla media de la cara
(determinado por el sexo, edad y origen étnico del cráneo no
- 23 -
identifcados), deforma para adaptarse al nuevo cráneo mediante la
distorsión de volumen.
Los sistemas informáticos que se han realizado tienen múltiples
aproximaciones para crear cada cráneo, pero que se imponen un
conjunto de características faciales y como resultado se tiene siempre la
plantilla de la cara. Una de las desventajas es que se han tenido bases
de datos limitados de las plantillas y las características faciales y el
exceso de confanza sobré los datos de la profundidad del tejido.
En trabajos actuales se pueden mencionar el Memopix, Caramex (Figura
2.3.9)[12], este utilizado en el SEMEFO, de la Ciudad de México
desarrollado por estudiantes de investigación de la Universidad
Autónoma de México, el cual utiliza el método de superposición de
fotografías.
Figura 2.3.9 Software Caramex
- 24 -
Capítulo 3 Modelos Gráficos y Reconstrucción Gráfica
La ayuda de gráfcos tridimensionales ayudan a la contribución de
lo que llamamos realidad virtual, los cuáles se pueden realizar con
programas especializados en 3D, como pueden ser Maya, 3D Max
Studio, Blender, XSI, entre otros.
Bien, en este proyecto se recurrió a Blender, debido a que es
software libre, comparando Blender con 3D Max Studio, el software de
Blender se puede obtener desde su página ofcial (www.blender.org),
mientras que el 3D Max Studio, lo podemos obtener pagando en dólares
americanos, los scripts que se manejarán en 3D Max Studio usan un
sistema llamado MAXSCRIPT, el cuál es un poco complejo para
aprenderlo, comparado con los scripts de python, otra de las
características es que Blender es multiplataforma eso quiere decir que
puede se instalado en sistemas como MS-WINDOWS, MAC OSX, LINUX,
UNIX, Blender es una herramienta muy amigable para el manejo de
modelos tridimensionales, etc.
3.1 Modelos Gráficos
Para trabajar en Blender debemos conocer nuestro ambiente de
trabajo, y algunos conceptos básicos que nos servirán más adelante.
Blender está orientada a objetos, esto signifca que pueden moverse,
rotar o modifcar, los elementos se pueden tomar como independientes,
por que pueden trabajarse por medio de enlaces.
Los objetos se pueden defnir como escena, el mundo, objeto,
malla, curva, material, textura, fuentes de luz. Los objetos, contienen
- 25 -
información para defnirlos, como posición, rotación, tamaño y matrices
de transformación.
Los objetos pueden ser enlazados a otros objetos para formar
jerarquías o deformaciones, los objetos tienen información 3D, como
curvas, luz, mallas, animación y materiales, entre otras. Los objetos que
se tienen en Blender como básicos son cubo, cono, círculo, tubo, cilindro,
etc.
Como parte del objeto, se tiene malla, más conocido en Blender
como mesh, la cual se compone de un grupo de triángulos y cuadrados
formando una malla. Estos contienen a su vez vértices, caras y
normales, los cuales son perpendiculares a la superfcie. Esta malla
puede enlazarse a materiales.
Vértices, es un punto en el espacio tridimensional. Si se encuentra
rodeado de otros dos, los vértices pueden formar un triángulos. Un
vértice tiene como atributo las coordenadas (x,y,z), y la normal, la cual
se dirige a su superfcie (nx, ny, nz), color (r,g,b). En la fígura 3.1.1
muestra el ejemplo de un vértice en Blender.
Figura 3.1.1 Vértice
- 26 -
Figura 3.1.2 Quad
Un vértice al renderizar no se puede llegar a ver, así como
tampoco en modo objeto, para poder crear un vértice, se debe estar en
modo Edición. Mientras un quad (Figura 3.1.2), es compuesto por dos
triángulos formando un paralelogramo, esto quiere decir que tiene
cuatro vértices (fgura 3.2.3).
Figura 3.2.3 Vértice
- 27 -
Un arista (figura 3.2.4) siempre conecta dos vértices con una línea
recta, normalmente cuando se renderiza son invisibles, pero son las
encargadas de ayudar a construir una cara.
Figura 3.2.4 Arista
Por otro lado una cara, se usa para construir la superfcie del
objeto, estas caras se pueden apreciar al momento que se renderiza una
malla. Esta esta defnida entre tres o cuatro vértices, con una arista en
cada lado. (Figura 3.2.5)
Figura 3.2.5 Cara
Importación de Objetos
Uno de los elementos más importantes que ofrece Blender, puede
aceptar diversos formatos de otros programas, entre ellos VRML,
SolidWorks, Autocad, en formatos .wrl y .dxf. La siguiente lista presenta
las opciones de formatos que se pueden importar/exportar. Blender es
- 28 -
mucho más compatible con una gran variedad de programas de
modelación en 3D. (Tabla 3.1)
Formato Nativo de Utilización Especificación Publica
3DM Rhino 3D Poca (Impresión 3D)
NO
3DS-MAX AutoDesk Mucho Parcialmente (3DS)
COB Caligari TrueSpace
Muy poco SI
DXF Autocad Mucho SI
LWOB LightWave Muy poco NO
OBJ Alias Wavefront Mucho SI
VRML VR Modeling Language
Mucho SI
SOFT SoftImage Poco NOTabla 3.1. Formatos de Objetos
3.2 Escena
La escena es el la parte del mundo 3D que contiene información
específca para el render (cámara, resolución de imágenes) y las
referencias a otros objetos. Escenas diferentes pueden usar los mismos
objetos, y se pueden enlazar distintas escenas, para formar un
decorado.
La escena puede ser estática o animada, de cualquier manera la
escena es renderizada de una escena estática o animada. Las imágenes
que se pueden renderizar pueden ser imágenes del tipo JPEG o PNG,
mientras que las animaciones se presentan en videos. (Figura 3.2.1)
- 29 -
Figura 3.2.1. Escena
Nosotros podemos elegir en que escena estamos o bien crear una
nueva , esto se puede realizar con la ayuda de una herramienta dentro
de la ventana principal, en la parte alta, Selector de escena. (Figura
3.2.2.)
Figura 3.2.2. Selector de escena
A continuación se muestra como podemos agregar una nueva
escena, hay cinco opciones, Nuevo, Copia de Ajustes, Enlazar Objetos,
Enlazar Datos de Objetos, Copia Completa. (Figura 3.2.3)
- 30 -
Figura 3.2.3. Nueva Escena
* Nuevo(New): Crea una escena vacía, aquí los ajustes de render toman
los mismos valores por defecto.
* Copia de Ajustes(Copy Settings): Crea una escena nueva, pero con la
diferencia a la anterior, se copian los ajustes de Render de la escena que
es original.
* Enlazar Objetos(Link Objects): Crea una nueva escena con el mismo
contenido de la escena actual, nada se copia, esta escena lo único que
contendrá son los enlaces a los objetos de la escena actual que se
tenga.
* Enlazar datos de objetos(Link Object Data): Esta opción crea copias
duplicadas de todos los objetos de la escena actual, pero cada objeto
duplicado tendrán acceso a los mismos materiales, mallas, etc.
• Copia Total(Full Copy):Es la copia más grande que se tiene, pero en
esta creará una escena totalmente independiente con copias del
contenido de la escena actual.
En la escena principal, inicialmente contiene una cámara, la cuál
es usada principalmente, pero si se desea agregar una más, la forma
más rápida de accesar a una nueva es con las teclas rápidas Shift+A, o
bien presionar el botón de camera. A continuación se muestra en la
fgura. 3.2.4
- 31 -
Figura. 3.2.4. Agregar cámara
Por otro lado dentro de la escena principal, aparece otro elemento
llamado luz. Cuando se va a renderizar, si no se muestra o se percibe la
imagen renderizada, es debido a que no tiene luz, o necesite más de un
elemento de luz. La mayoría de las escenas se tiene un rango entre 3 – 4
lámparas. Pero también se encuentran distintas opciones de luz, entre
ellas, las que a continuación se ordenan(Figura 3.2.5):
* Point – es una de las más básicas, brilla en todas direcciones.
* Sun – Provee ciertos ángulos de luz, independiente de la localización
de los objetos.
* Spot – Brilla en un angulo directo.
* Hemi – Da una luz más amplia, al igual que las luces de zona.
* Area – Proporciona la iluminación del área grande. Este se puede
escalar.
- 32 -
Figura 3.2.5 Iluminación
3.3 Operaciones Gráficas de Objeto
Los objetos pueden tener una serie de operaciones, pero las
principales son tres: Rotación, Desplazamiento y Escalado. Para poder
realizar estos movimientos el objeto debe estar en modo objeto, valga la
redundancia (Figura 3.3.1 - 3.3.2).
Figura 3.3.1 Modo Objeto
Figura 3.3.2 Operaciones Objeto
- 33 -
Seleccionar
Primero que nada, debemos seleccionar al objeto que se requiere
modifcar, existen dos tipos de Selección, Objeto Activo: el último objeto
seleccionado es el “objeto activo” y se mantiene como activo aún luego
de seleccionar todos los objetos, el siguiente es Objetos Seleccionados:
en este puede haber cualquier cantidad de objetos seleccionados (todos
menos el activo que se resalta en naranja). (Figura 3.3.3 )
Figura 3.3.3 Selección del Objeto
Mover
Se selecciona la flecha en la cual quiere que se desplace el objeto,
y después se arrastra el ratón de la computadora hasta la posición
deseada. Existe otro método de modo de mover al objeto es
presionando la tecla “G”, esto quiere decir que de igual manera el objeto
que se encuentre seleccionado se moverá con el ratón. Así también,
presionando la letra “G” y si queremos mover o desplazar a uno de los
ejes xyz, enseguida teclear debemos teclear x, y o z, según sea el caso
(fgura 3.3.4).
- 34 -
Figura 3.3.4 Mover objeto
Rotar
Al presionar la tecla “R”, se puede activar la rotación de los objetos. Si
es presionado con un clic izquierdo o enter se defne el ángulo de
rotación, al pulsar ESC o el botón derecho del mouse, se cancela el
movimiento. Para realizar los movimientos de rotación de los ejes,
también sigue la misma estructura, eje x, es el eje horizontal, eje y para
el vertical, y por último el eje z, eje de profundidad (fgura 3.3.5).
Figura 3.3.5 Rotación en ejes, x, y, x
- 35 -
Escalar
Para escalar un objeto se puede elegir el eje que desea expandir o
contraer y se desplaza. En su defecto podemos presionar la tecla S
seguida del cualquiera de las coordenadas xyz. Si realizamos estos
movimientos teniendo presionada la tecla de Ctrl, e incremento o
decremento del tamaño se realizará de forma regular, como se aprecia
en la fgura 3.3.6.
Figura 3.3.6 Escalamiento en el eje 'z'
3.4 Operaciones Gráficas de Edición
Para realizar operaciones en el modo de edición, esta debe ser
elegida, como se indica en la figura 3.4.1.
Figura 3.4.1 Modo Edición
- 36 -
Las modifcaciones que se han realizado al objeto anteriormente,
afectan a cada componente. En este modo de edición se puede tener
acceso a los vértices del Mesh.
Figura 3.4.2 Objeto en Modo Edición
Cuando seleccionamos modo de edición, todos los vértices aparecen
seleccionados, si queremos seleccionar solo un vértice, para esto será
necesario oprimir la tecla A, y los vértices a continuación cambiarán de
color negro. Para seleccionar solo un vértice solo basta con presionar el
botón derecho sobre él y ya estará seleccionado (fgura 3.4.3). De lo
contrario si se desea corregir el vértice, puede ser seleccionado
nuevamente al presionar el vértice, el botón derecho del mouse.
Figura 3.4.3 Selección de vértices
- 37 -
Si deseamos seleccionar al mismo tiempo más de un vértice, tan
solo bastará mantener la tecla de Shift al mismo tiempo que se presione
con el mouse el botón derecho.
Sin embargo si queremos seleccionar un arista en vez de un solo
vértice, podemos seleccionar los vértices que la componen. La segunda
opción es seleccionar de la barra que se observa afuera la opción de
aristas. Ya que este seleccionada podemos hacer las modifcaciones que
deseemos, como por ejemplo, rotar, modifcar, etc. (Figura 3.4.4 y fgura
3.4.5).
Figura 3.4.4 Menú de elección de edición
Figura 3.4.5 Modo Edición-Arista
- 38 -
No solo las aristas se pueden elegir, también pueden ser elegidos
las caras para rotarlas, moverlas y escalarlas, un ejemplo se ve en la
fgura 3.4.6.
Figura 3.4.6 Modo Edición-Caras
3.5 Material en Blender
En Blender, cuando se tiene un objeto no posee ningún material
asignado. Cuando se tiene el objeto a utilizar, y necesita el uso de
material, daremos clic al recuadro mostrado en la fgura 3.5.
Figura 3.5 Botón Material
- 39 -
Para agregar un nuevo material que se da clic en la ventana que
aparece enseguida del botón ejecutado, y dará clic en New, como se
muestra en la siguiente fgura 3.5.1. Al ejecutar el botón de New, lo
enlazará con el nuevo objeto que se tenga activo, y se asignará el
nombre de Material.001, así sucesivamente.
Figura 3.5.1 Botón Nuevo Material
En caso de tener materiales existentes, se pueden seleccionar
dando clic como se muestra en la siguiente fgura 3.5.2, y como
siguiente desplegará un menú con la lista de materiales existentes.
Figura 3.5.2 Lista de Materiales
- 40 -
Una vez asignado a nuestro objeto el material, puede ser mostrado
en el panel de visualización, en este muestra los materiales en
diferentes tipos geométricos (Figura 3.5.3).
En este caso aparecen las siguientes opciones:
– Flat XY plane: para texturas y materiales sobre objetos, como
paredes, papeles, entre otros.
– Sphere: Para objetos en forma de esferas o metaballs.
– Cube: Para texturas y materiales sobre cubos, para obtener
backgrouds.
– Hair strands: Para objetos como pasto, cabello entre otros.
– Large Sphere with Sky: Para texturas sobre esferas.
– Monkey: Para ver texturas y materiales complejos distintos a las
primitivas principales.
(a) (b)
- 41 -
(c) (d)
(e) (f)
Figura 3.5.3 Opciones de Pre-visualización(a) FlatXY (b) Sphere (c) Cube (d) Hair strands (e) Large Sphere with Sky
(f) Monkey
3.6 Mallas
En Blender el uso de polígonos y vértices son un elemento muy
importante. La mayoría de los objetos que se tienen están desarrollados
por polígonos, los cuales tienen elementos curvos, y son aproximados
con mallas.
Cuando son renderizadas las imágenes, pueden ser apreciadas las
caras planas. Para evitar esto, se recurre a la aplicación de elementos
suaves (Figura 3.6).
- 42 -
Figura 3.6 Efectos de Suavizado
Una de las primeras opciones es aplicando un Sombreado Suave,
el cual se va a establecer en el objeto completo, el objeto necesitará
estar en modo objeto seguido de seleccionar el botón de Smooth, que se
encuentra en el menú de Object Tools, el cual suavizará a todas las
caras de la malla(Figura 3.6.1), solo cambiara la forma del sombreado
realizando los cálculos de las caras. Si se desea deshacer este efecto, se
debe aplicar el botón de Flat.
Figura 3.6.1 Efecto Sombreado Suave
El siguiente tipo de suavizado es aplicarlo a la malla, en modo
edición, seleccionando alguna de las caras y dando clic de nuevo en el
- 43 -
botón de Smooth, las aristas que son seleccionadas estarán marcadas
de amarillo (Figura 3.6.2).
Figura 3.6.2 Efecto Suavizado Modo de Edición
El auto suavizado se logra utilizando el botón de AutoSmooth, aquí
los modelos serán modifcados por medio de ángulos, modifcando los
modelos que sean menores al indicado, de lo contrario los valores más
altos producirán una cara más suave como vemos en la siguiente fgura
3.6.3 y 3.64.
Figura 3.6.3 Efecto Auto suavizado.
Figura 3.6.4 opciones de Smooth en el menú de Object Tools
- 44 -
Capítulo 4 Reconstrucción Forense.
4.1 Problema a Resolver
La reconstrucción de rostros es una técnica que tiene como
objetivo fundamental restablecer y posteriormente comparar rasgos
faciales de una persona a partir del análisis de su estructura craneal o
rostro, según corresponda.
Reconstruir el rostro de una persona a través de cráneo de forma
manual y tridimensional.
4.2 Metodología
La técnica para llevar a cabo la reconstrucción de rostros, es
necesario como primer paso realizar un estudio de la estructura ósea, en
este caso, del cráneo, debido a que nos brindará una mayor ventaja
para realizar la modelación de rostro de manera tridimensional.
4.2.1 Reconstrucción Física
La reconstrucción de forma manual, se realizó para obtener
mejores conocimientos de mediciones, colocación correcta de puntos
craneométricos, determinación de sexo, entre otros detalles.
- 45 -
Figura 4.2.1 Cráneos Humanos
Teniendo esto en cuenta, se procede a obtener el modelo del
cráneo, en este caso, se tuvo la colaboración de la Escuela Superior de
Medicina, la cuál proporciono ayuda para obtener modelos de cráneos
humanos, completos en su mayoría, es decir que el cráneo y la
mandíbula, se encontraban unidos (articulados). Figura 4.2.1 .
- 46 -
4.2.2 Creación del Modelo
Debido a que en el país de México, esta prohibido transportar
osamenta, de un instituto a otro, en este caso la escuela, o a cualquier
otro lugar, se recurrió a elaborar un modelo de resina, de los cráneos
proporcionados en la Escuela de Medicina, para tener un modelo lo más
real posible para ser utilizado, con este modelo obtenido pudo ser
transportado, así como también, se marcaron los puntos craneométricos
correspondientes o en su defecto se realizaron cambios pertinentes, sin
dañar a la osamenta original.
En primer lugar, se obtuvo un permiso para trabajar en el
laboratorio de Materiales en la misma escuela de Medicina del IPN. Se
realizó el trabajo con materiales como resina, silicón, elementos
químicos(catalizadores), plastilina, polvo de fbra de vidrio.
Se procedió a limpiar el cráneo, y por separado la parte de la
mandíbula, y el mismo cráneo, se les procedió a rellenarla con plastilina
para empezar a realizar el molde, como se muestra en las fgura 4.2.2.1
siguientes:
Figura 4.2.2.1 Moldeo con plastilina
- 47 -
Como siguiente paso, en un pequeño bote de plástico se preparó
una mezcla con el silicón y el catalizador, para esta mezcla la
combinación ideal es del 5%, esto quiere decir que por 500 gramos de
silicón se deben colocar 25 gotas de catalizador, para que este sea más
exacto, nos ayudamos de una jeringa, de lo contrario si llegamos a
calcular mal las proporciones puede provocar que sea mucho más lenta
o rápida la catalización. Una vez que se han colocado los elementos, se
asegura de que se mezcle homogéneamente, ya que esta lista esta
mezcla, se procedió a colocar encima del cráneo, tratando de hacerlo
lentamente para no provocar burbujas y tratando que cubriera hasta el
más pequeño detalle, para que el cráneo sea el mismo modelo exacto.
En las siguientes fguras 4.2.2.2 se puede observar como se cubrió
lentamente el cráneo, y siempre desde la base hacia arriba. Dejando el
molde a la mitad, al cabo de unos minutos se cubre totalmente.
Figura 4.2.2.2 Creación del molde de silicón
- 48 -
Terminando de cubrir toda la mezcla tanto en el cráneo, como en
la parte de la mandíbula, se espolvoreo fbra de vidrio, para que el
molde realizado fuera más resistente, y así usarlo sin peligro a
romperse de manera inmediata, esperando a que los moldes de silicón
secarán poder realizar los modelos del cráneo de resina.
Una vez secos los moldes, se procede a realizar una mezcla de
resina de poliuretano y un catalizador E55, los cuales al mezclarlos son
dos reactivos que se pueden solidifcar en cuestión de minutos, ya que la
temperatura aumenta, por lo que se procede a mezclar de una manera
rápida y envolvente.
Como era recomendable ejercer una presión para que sujetara
nuestro molde se realizaron unos orifcios, para colocar unos tornillos y
que estos sirvieran de soporte, como se muestran en las fguras 4.2.2.3
siguientes.
Una vez listo este paso, se procede de igual manera que la mezcla
anterior asegurando de combinar los componentes en la misma
proporción, auxiliándose de un pequeño utensilio de madera, teniendo
esto, se procede de manera rápida a vaciar la mezcla dentro del molde
con movimientos giratorios, asegurando que la mezcla llegara a abarcar
todos los orifcios y detalles del molde, así que se realiza de manera
rápida y precisa, para que no se secara esta mezcla antes de que
terminará de recorrer todo el molde, siempre teniendo cuidado ya que
se puede percibir el calor de estas sustancias enseguida.
- 49 -
Figura 4.2.2.3 Moldes con el modelo dentro.
Teniendo éxito en el paso anterior y habiendo pasado el tiempo, se
procede a desmoldar el cráneo con mucho cuidado, para no romper el
modelo, se pule y cortan los modelos, si es necesario, para afnarlos.
(Figura 4.2.2.4).
Figura 4.2.2.4 Sacando el modelo del molde y detalles.
- 50 -
En la fgura 4.2.2.5 se muestra la copia del modelo de resina del
cráneo humano que se nos proporciono la Escuela Superior de Medicina,
el cual servirá para realizar nuestra reconstrucción de rostros.
Figura 4.2.2.5 Modelo de Cráneo Final
4.3.1 Obtención del modelo gráfico
La mayoría de las veces, los cráneos se encuentran separados de
la mandíbula, así que para un mejor resultado deben acomodarse las
piezas anatómicamente.
El modelo gráfco digitalizado se puede obtener mediante un lector
láser, una cámara tridimensional, e inclusive el dispositivo Kinect del
XBOX de Microsoft®.
En este caso debido al alto costo de un escáner tridimensional, se
utilizó el Kinect de XBOX de Microfost®. Obteniendo como resultado un
modelo de polígonos tridimensional del cráneo completo, el cuál nos
- 51 -
ayudará para obtener la reconstrucción de rostros de forma
tridimensional ya digitalizada(fgura 4.3.1).
Figura 4.3.1 Kinect de Microsoft utilizado para obtención de objeto
Los paquetes auxiliares a utilizar para la obtención de nuestros
puntos, para obtener el modelo digital, es llamada freenect, este se
instala en el sistema operativo Linux Ubuntu, para obtener acceso a la
cámara del Kinect.
Para compilar este paquete de igual manera se utiliza Python, el
cual es compatible y se ayuda al desarrollo con Blender.
Posteriormente ya instalados los paquetes pertinentes, se procede
a la calibración de la cámara del Kinect, para obtener una mejor
información, como se muestra en la fgura 4.3.1.2.
- 52 -
Figura 4.3.1.2 Calibración de la cámara del Kinect
Como continuación al procedimiento es tomar el objeto a
escanear, en este caso el cráneo, como resultado nos dará datos de la
cara superior, costado e inferior, para formar las profundidades del
objeto. En la siguiente fgura 4.3.1.3 se muestra un ejemplo de
recabado de información, de las tres vistas que nos proporciona el
Kinect.
Figura 4.3.1.3 Ejemplo de obtención de puntos con el Kinect
- 53 -
El formato en el que se obtendrá el modelo gráfco sera en .obj, es
decir puros puntos(vértices), dado que es fácil de manejar, al importarlo
en Blender, nos generará con la interpolación cúbica que es utilizado en
esta parte, y se genera la triangulación, para darnos como resultado
nuestro objeto tridimensional, en las siguiente fgura 4.3.1.4, se muestra
un ejemplo de como obtiene el volumen.
Figura 4.3.1.4 Volumen
Como se ha mencionado en el capítulo 2, para la realización del
proyecto, se analizaron varios tipos de software, dentro de los cuales se
hizo el uso de Blender.
La fgura 4.3.1.5 muestra el modelo del cráneo obtenido, que se
utilizará para la reconstrucción de rostro.
- 54 -
Figura 4.3.1.5 Modelo del cráneo .obj
4.3.2 Ajuste de Parámetros de Escena
La escena contiene tres elementos básicos, ventana principal, la
cámara, y la luz.
Las cuales se ambientan de acuerdo a las necesidades requeridas.
Como primer parte se arregla el elemento de la cámara, se elige una
vista frontal y con perspectiva ortogonal.
Como segundo paso se ajusta la escena de acuerdo al sistema de
medición métrico, las unidades que se manejan es en metros. Esto se
debe a que así se pueda manejar de una forma más exacta y hacer las
mediciones pertinentes de los elementos que serán utilizados.
- 55 -
En el área que se encuentran los datos serán parte de la escena.
Dando clic sobre el botón escena (a) y más abajo existe la opción para
especifcar unidades como se muestra fgura 4.3.2.1 (b).
a) Opción Escena
b) Selección de Unidades
Figura 4.3.2.1 Confguración de Escena.
Si se desea asegurar que efectivamente la escena está
considerada bajo esas circunstancias, puede teclear dentro la escena la
siguiente ruta Ctrl + A, y desplegará un menú, donde se elegirá la
opción de Escala. Como siguiente paso se puede apreciar que si se
realizan los pasos se observará que la escala estará a 1 metro, la unidad
que se eligió. (Figura 4.3.2.2).
- 56 -
a) Menú desplegable
b)Parámetros ajustados.
Figura 4.3.2.2 Verifcación Unidades de Escena
4.3.3 Colocación de Puntos Craneométricos
Teniendo el modelo tridimensional del cráneo, se procede a
analizar cuales son los parámetros de las profundidades del grosor del
tejido.
- 57 -
Para esto es muy importante la localización y establecimiento de
los puntos craneométricos , es decir, para empezar la reconstrucción de
un rostro, claro esta con su profundidad de cada una de ellas, para
determinar el tejido blando. (Figura 4.3.3.1)
Figura 4.3.3.1 Puntos Craneométricos
Estos puntos craneométricos se enlistan a continuación:
1. Metopion, 2. Glabela, 3.Nasion, 4. Rhinion, 5. Subespinal, 6.
Supradental, 7. Infradental, 8. Supramental, 9. Pogonio, 10. Menton, 11.
Eminencia frontal, 12. Supraorbital, 13. Infraorbital, 14. Malar inferior,
15. Orbital lateral, 16. Arco cigomático, 17. Supraglenoideo, 18. Gonion,
19.Supramolar, 20. Linea oclusal, 21. Submolar2.
Las medidas tomadas en este trabajo, son basadas en una
investigación realizada por investigadores de posgrado de antropología
de la UNAM, estos fueron llevados a cabo a 208 personas del país. Las
tablas de medidas se muestran en el anexo.
- 58 -
La colocación de los 21 puntos craneométricos son colocadas
exactamente en la posición correspondiente para cada una de ellas.
Como se puede apreciar en la fgura 4.3.3.2, para la colocación de los
puntos se toma como referencia el punto central del modelo, partiendo
de este, se realiza la colocación de los puntos.
Figura 4.3.3.2 Puntos Craneométricos Digital
En las siguientes lineas se expresa como se colocaron los vértices
a través de Python, para la colocación de los puntos craneométricos, los
cuales son utilizados más adelante para la triangulación.
- 59 -
v1 = ((0.001404 + 0.00440), 0.13005,0.11616)
v2 = ((0.001131 + 0.00550), 0.11335,0.11563)
v3 = ( -0.001145, 0.10591, 0.1130)
v4 = (-0.003217, 0.08608, 0.11789)
v5 = ((-0.0001527 + (0.0010)), 0.03863, 0.10565)
v6 = ( 0.009467, 0.03334, 0.1061)
v7 = ( 0.011279, 0.001341, 0.09016)
v8 = ( 0.011234, -0.007358, 0.08955)
v9 = (0.01100, -0.01585, 0.08699)
v10 = ((-0.001146 + (-0.0077)), -0.01946, 0.08381)
v11 = ((-0.02312 + (-0.0050)), 0.13234, 0.11271)
v12 = ((-0.0315 + (-0.0065)), 0.1126, 0.10997)
v13 = (-0.03629, 0.06868, 0.0991)
v14 = (-0.04306, 0.05727, 0.09030)
v15 = (-0.05285, 0.05536, 0.07986)
v16 = (-0.06232, 0.05460, 0.05927)
v17 = ((-0.05450 + (-0.0093)), 0.07436, 0.02514)
v18 = ((-0.03864+(-0.0131)), -0.003777, 0.03032)
v19 = (-0.03529, 0.03044,0.08308)
v20 = (-0.04913, 0.01588, 0.05657)
v21 = (-0.03469, 0.06482, 0.07803)
v22x = (v12[0]+v15[0])/2
v22y = (v12[1]+v15[1])/2
v22z = (v12[2]+v15[2])/2
v22 = (v22x, v22y, v22z)
v22Dx = (v12[0]+v4[0])/2
v22Dy = (v12[1]+v4[1])/2
v22Dz = (v12[2]+v4[2])/2
- 60 -
v22D = (v22Dx, v22Dy, v22Dz)
4.3.4 Triangulación
El algoritmo o base que se tomo para empezar la reconstrucción
después de la colocación de los puntos craneométricos, es el algoritmo
de triangulación. Va tomando un punto como referencia para que la
triangulación tenga una manera más sencilla de realizarse.
El modelo que se usará para la reconstrucción de rostros es similar
al que se realiza de forma manual. Debido a que el primer paso es
rellenar los espacios entre cada uno de los puntos craneométricos que
se establecen.
Los puntos craneométricos serán puestos como vértices, eso
quiere decir que busca la unión de cada uno de estos para realizar el
algoritmo. Y como bien sabemos a través de este texto es que un vértice
tiene una normal(dirección que toma hacia la superfcie).
Un vértice esta defnido como un punto (a, x, y), donde las cuales
son las siguientes: a representara la base, x, la dirección de la dirección
en la forma, y y es la distancia entre el punto y la superfcie.
Para un área de vértices es necesario contar con las coordenadas
de tres vértices.
Dado un punto, en este caso 'a' y la distancia de 'x' marca la
profundidad del tejido blando en este caso.
- 61 -
Una vez determinados los puntos, se calculan las profundidades
del tejido blando a través de tres vértices principalmente, en este caso
p(x1, x2, x3). La interpolación será a través de estos vértices.
La intersección de a, y el triangulo p(x1, x2, x3) dará la
intersección del punto 'b'. Una vez que se haya calculado la profundidad,
usando el baricentro.
bi=u11+v22+w33
donde u, v, w son iguales a:
u11=area ( x⃗1, x⃗2, x⃗3)area ( x⃗1, x⃗2, x⃗3)
v22=area ( x⃗1, x⃗ 2, x⃗3)area ( x⃗1, x⃗ 2, x⃗3)
w33=area( x⃗1, x⃗2, x⃗3)area( x⃗1, x⃗2, x⃗3)
Obteniendo los datos resultantes, se va a dibujar la malla, como se
muestra en la fgura 4.3.4.1, así es como van obteniendo las
triangulaciones de dichos puntos.
- 62 -
Figura 4.3.4.1 Conjunto de vértices.
La siguientes líneas de código muestra como se realiza esta
triangulación en Python, así como la fgura 4.3.4.2 de la triangulación al
ejecutar el segmento de código.
# vertex data t1 = (v2,v1,v11) t2 = (v1,v2,v11D) t3 = (v11,v12,v2) t4 = (v11D,v2,v12D) t5 = (v12,v3,v2) t6 = (v2,v3,v12D) t7 = (v12,v4,v3) t8 = (v3,v4,v12D) #h t9 = (v11,v17,v12) t10 = (v11D,v12D,v17D)
t11 = (v12,v16,v17) t12 = (v12,v15,v4) t13 = (v12D,v4,v15D) t14 = (v12D,v16D,v17D) t15 = (v15,v14,v13) t155 = (v12, v15, v16) t16 = (v13,v14,v4) t17 = (v4,v14,v5) t18 = (v4,v5,v14D) t188 = (v13D, v14D, v16D) t19 = (v4,v14D,v13D) t20 = (v13D,v14D,v15D)
t21 = (v15D,v19D,v16D) t212= (v15D,v14D,v19D)
t22 = (v15,v16,v19) t223= (v15D,v16D,v19D) t222= (v19,v14,v15)
t23 = (v14,v19,v5) t24 = (v14D,v5,v19D) t25 = (v19,v16,v20) t26 = (v19,v20,v21) t27 = (v5,v19,v6) t28 = (v5,v6,v19D) t29 = (v19D,v20D,v16D) t30 = (v20,v17,v18) t31 = (v20,v18,v21) t32 = (v19D,v20D,v21D) t33 = (v18,v10,v21) t34 = (v7,v21,v8) t35 = (v7,v8,v21D)
t36 = (v21D,v18D,v20D) t37 = (v20D,v18D,v16D) t38 = (v21,v9,v8) t39 = (v8,v9,v21D) t40 = (v9,v10,v21) t41 = (v9,v10,v21D) t42 = (v18D,v9,v21D) t43 = (v12,v22,v22D) t44 = (v12D, v23, v23D) t45 = (v19, v20, v6) t46 = (v19, v19D, v6) t47 = (v19D, v6, v20D) t48 = (v21, v21D, v8) t488=(v15D,v13D,v14D)
- 63 -
t49 = (v24, v18, v17) t50 = (v24D, v18D, v17D) t51 = (v16D, v18D, v17D) t52 = (v12D, v23, v16D)
t53 = (v23, v15D, v13D) t54 = (v22, v15, v13) t55 = (v23, v15D, v16D)
allVerts = t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t14 + t15 + t155 + t16 + t17 + t18 + t188 + t19 + t20 + t200 + t21 + t212 + t22 + t222 + t23 + t223 + t24 + t25 + t26 + t27 + t28 + t29 + t30 + t31 + t311 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47 + t48 + t488 + t49 + t50 +t51 + t52 + t53 +t54 + t55
topAndBottomFaces = ((0,1,2), (3,4,5),(6,7,8), (9,10,11), (12,13,14), (15,16,17), (18,19,20), (21,22,23), (24,25,26), (27,28,29), (30,31,32), (33,34,35), (36,37,38), (39,40,41), (42,43, 44), (45, 46, 47), (48, 49, 50), (51, 52, 53), (54, 55, 56), (57, 58, 59), (60,61,62), (63, 64, 65), (66, 67, 68), (69, 70, 71), (72, 73, 74), (75,76,77), (78,79,80), (81,82,83), (84, 85, 86), (87,88, 89), (90, 91, 92), (93, 94, 95), (96,97,98), (99, 100, 101), (102,103,104), (105,106,107), (108,109,110), (111,112,113), (114,115,116), (117,118,119), (120,121,122), (123,124,125), (126,127,128), (129, 130, 131), (132, 133, 134), (135, 136, 137), (138, 139, 140), (141, 142, 143), (144,145,146), (147,148,149), (150, 151, 152), (153,154,155), (156, 157, 158), (159, 160, 161), (162, 163, 164), (165, 166, 167), (168,169,170), (171,172,173),(174,175,176), (177,178,179), (180,181,182)) allFaces = topAndBottomFaces #+ sideFaces + baseFace # load up the mesh data triMesh.from_pydata( allVerts, (), allFaces )
Figura 5.3.4.2 Triangulación
- 64 -
4.3.5 Colocación de Objetos Comunes
Una vez que teniendo la malla de triangulación, se procede a
conjuntarla con el cráneo, y de esta manera se hace la colocación de
objetos como son la nariz, orejas.
Nuestro cráneo se divide principalmente en dos partes, en este
caso, una de ellas es la bóveda craneal y la base del cráneo. Existen
varias formas o características para ver donde pertenece un cráneo, o
más bien dicho a que región corresponde si es Asiático, Europeo, o
Americano, por la forma del tamaño del cráneo, o que si son más largas,
puntiagudas o cortas la nariz, así como parte de sus orbitales. (Figura
4.3.5.1).
Figura 4.3.5.1 Rasgos Craneales
- 65 -
A diferencia de los adultos, los recién nacidos tienen muy poco
desarrollado la parte de la mandíbula comparado con el maxilar, en los
niños la parte del mentón es un poco más marcado pero a la vez es
puntiaguda y por lo regular en forma de “V”, en cambio en un adulto,
sus ojos se hacen más pequeños debido a que el crecimiento de la parte
de la mandíbula y la nasal van creciendo más rápido, y en los adultos
mayores se ve reflejado en que las modifcaciones morfológicas y
fsiológicas se ven aún más marcadas con respecto al paso del tiempo y
hay reducción de la parte mandibular y maxilar (Figura 4.3.5.2 ).
Figura 4.3.5.2 Rasgos Morfológicos
En el modelo desarrollado, se tiene una biblioteca de objetos
comunes, para poder seleccionar que objeto es el mejor para la
selección de acuerdo a las características de medición de cada cráneo.
En la fgura 4.3.5.3 se muestran algunas de los objetos comunes, en
este caso de la nariz, así como también del caso de las orejas (Figura
4.3.5.4).
- 66 -
Figura 4.3.5.3 Biblioteca de objetos comunes Nariz.
- 67 -
Figura 4.3.5.4 Biblioteca de objetos comunes Orejas.
- 68 -
La colocación de estos objetos se realizan mediante un botón
realizado por medio de scripts de Python, que serán colocados dentro de
un menú.
En este botón se realiza la operación para obtener la distancia del
hueco del hueso nasal (altura), y el ancho con respecto al maxilar
superior, con ayuda de una herramienta predeterminada de Blender. En
el caso de la colocación de las orejas, se necesita localizar el punto del
hueso occipital y orifcio auditivo externo, cabe mencionar que en el
caso de las orejas se hace una aproximación.
self.number == 4:
print("Boton4-Orejas")
full_path_to_fle = "//earscjo.obj"
bpy.ops.import_scene.obj(flepath=full_path_to_fle)
self.number == 5:
print("Boton5-Nariz")
full_path_to_fle = "//nariz.obj"
bpy.ops.import_scene.obj(flepath=full_path_to_fle)
matn=bpy.data.materials.new('principalnar')
Figura 4.3.5.5 Colocación de Objetos Nariz y Orejas
- 69 -
4.3.6 Acabados
Terminando la reconstrucción, el modelo del rostro, aun no esta
realmente concluido, para esto, se establecen las texturas para llevar al
modelo de una forma más real.
Una ventaja del uso de Blender y el uso de los tipos de objetos en
3D, incluyendo mallas poligonales, superfcies NURBS, bezier y las cuvas
B-Spline, metaballs, fuentes vectoriales (TrueType, PostScript,
OpenType.) es que se pueden realizar el uso de estos.
Como por ejemplo:
• Catmull-Clark realiza la rápida subdivisión de superfcies con
optimo iso-lines de visualización y edición de la nitidez.
• Todas las capacidades de esculturas con multirresolucion en 2D
bitmap/ 3D con brochas procesales (Paint, Smooth, Pinch, Inflate,
Grab) soporta para trabajar con simetría.
• Modifcador de espejo "Mirror" Con el recorte de vértices a la mitad
y la eliminación automática de caras internas.
• Boolean no destructivo en tiempo real y los modifcadores de
matriz.
• Malla de modelado basado en el vértice, borde y/o la selección de
caras.
- 70 -
• Herramientas de edición de selección de Smooth para el modelado
orgánico.
En este caso, se realiza para el acabado de la suavización o inflado
que le llamamos con la técnica de Smooth que utiliza Blender con la
ayuda de los scripts de Python una vez más. Para esto se tiene un botón
el cuál también fue desarrollado para dicho uso. A continuación se
muestran algunas líneas de código desarrollando esta parte, así como
también una fgura 4.3.6.1 donde muestra el ejemplo de un acabado en
Blender.
print("Boton 6-Piel") bpy.data.objects['Mesh'] bpy.context.active_object bpy.ops.object.editmode_toggle()
bpy.ops.transform.shrink_fatten(value=-0.00436, mirror=False, proportional='DISABLED',proportional_edit_fallof='SMOOTH', proportional_size=1, snap=False, snap_target='CLOSEST', snap_point=(0, 0, 0), snap_align=False, snap_normal=(0, 0, 0), release_confrm=False) bpy.ops.mesh.vertices_smooth(repeat=1) bpy.ops.object.mode_set(mode='OBJECT')
Figura 4.3.6.1 Ejemplo de Acabado
- 71 -
5. Resultados
5.1.1 Creación del molde
En las siguientes fgura 5.1.1, se presentan en diferentes ángulos,
el modelo que se obtuvo por medio de resina.
(a) (b)
(c) (d)
Figura 5.1.1 Modelo de Resina (a) Vista de Frente (b) Vista Trasera (c) Vista Izquierda (d) Vista Derecha
- 72 -
5.1.2 Reconstrucción Manual
Se realizaron dos diferentes reconstrucciones de rostros de forma
manual, con plastilina para adquirir los conocimientos necesarios, para
desarrollar el presente trabajo, abajo se muestran las secuencias de
fotografías para la investigación (Figura 5.1.2.1).
Figura 5.1.2.1 Primer Reconstrucción Manual de Rostros
- 73 -
Figura 5.1.2.2 Segunda Reconstrucción Manual de Rostros
5.2 Reconstrucción por Computadora
Después de aplicar la metodología de obtener un objeto por medio
de los vértices, se obtuvo el modelo en Blender y se importo. Para poder
utilizarlo, se muestran en la fgura Figura 5.2.1 las diferentes vistas del
modelo obtenido.
- 74 -
(a) (b)
(c) (d)
(e) (f) Figura 5.2.1 Modelo de Cráneo
(a) Vista posterior (b) Vista Anterior (c) Vista Izquierda (d) Vista Derecha
(e) Vista Lado Izquierda (f) Vista Lado Derecho
- 75 -
Como siguiente punto, ubicados los puntos craneométricos, se
procede con la triangulación, se muestran los resultados de esta. (Figura
5.2.2)
(a) (b)
(c) (d)
(e)
Figura 5.2.2 Triangulación en el modelo(a) Vista Posterior (b)Vista Izquierda (c) Vista Derecha (d) Vista Anterior
(e) Vista Frontal con el modelo
- 76 -
Se colocan los objetos en este caso la nariz, y las orejas, como se
muestran a continuación (Figura 5.2.3).
(a) (b)
Figura 5.2.3 Importación de objetos(a) Nariz (b) Orejas
Por otro lado se presentan los resultados con los flats distintos en
renderizacion (Figura 5.2.4).
(a) (b)
- 77 -
(c) (d)
(e) (f)
(g) (h)
Figura 5.2.4 resultados de Colocación de Piel con diferentes Flats(a) flat=0.0108228 (b) flat= -0.0012069 (c) flat= 0.0077745
(d)flat=0.0084275 (e) flat= 0.0145819 (f) flat= 0.0204886(g) flat=0.0108228 (h) renderizacion
- 78 -
En la siguiente fgura 5.2.5 muestra parte de la comparación de la
renderizacion con una imagen aproximada, a la persona que le
pertenece el cráneo.
(a) (b)Figura 5.2.5 Comparación del resultado de la Reconstrucción Final
(a) Renderizacion en 3D (b) Retrato hablado de la persona
El sistema fue probado en un servidor NVIDIA con 960 núcleos
integrados por dos GPU Fermi 480. (Figura 5.2.6)
Figura 5.2.6 Programa empleado en NVIDIA
- 79 -
El análisis de las diferentes técnicas de reconstrucción permitió
utilizar la tiangulación geométrica para generar una malla adecuada
como base para generar el rostro. De acuerdo a nuestra experiencia en
la fabricación del modelo de cerámica se detectaron las siguientes
desventajas:
1. Los materiales son tóxicos
2. Los materiales se consiguen en casas muy especializadas y son de
alto costo
3. La generación del modelo en cerámica puede tardar varios días ya
que se construye por fases y el periodo de construcción es
aproximado a un mes. (Afectado por factores de humedad y de
Calor del ambiente).
4. El molde es delicado y puede romperse
5. La maquinaria para pulir el material es pesada y de operación
complicada.
6. Contaminan el ambiente.
El conocimiento de las técnicas de triangulación permitió explotar
el campo de la computación gráfca para solucionar problemas clásicos
de la interpolación de datos. Los triángulos son fáciles de generar pero la
gran cantidad de ellos , representa un problema de cómputo paralelo
clásico.
Al contrario de una interpolación el usuario debe conocer el valor
de una función f(x) en una serie de puntos x1, x2, . . . xn, pero se
desconoce el valor de la expresión analítica de f(x) que permita calcular
para un valor que sea arbitrario. La idea de la interpolación es poder
estimar valores para poder construir una curva o superfcie, que une los
puntos donde se han realizado mediciones.
- 80 -
Las alternativas de ambiente paralelo que se desarrollaron fueron las
siguientes:
1. Clúster de computadoras (MPI)
Una computadora en paralelo es un conjunto de procesadores
capaces de cooperar en la solución de un problema. Esta defnición
incluye supercomputadoras con cientos de procesadores, máquinas con
múltiples procesadores, redes de estaciones de trabajo y redes de PCs
(clústers de Pcs).
En los clústers de Pc's se tiene un ambiente de memoria distribuida,
cada PC es dueña de su memoria local. Las computadoras se comunican
mediante el envío de mensajes y por lo general usan implementaciones
de MPI, como librerías de comunicación. La sincronización de procesos
se logra bloqueando un proceso que ejecuta la primitiva que recibe
hasta recibir un mensaje de uno o de mas procesos los cuales se desean
sincronizar. Para este medio generalmente se utilizan cables de
Ethernet.
MPI (Message Passing Interface), es uno de los programas en la
programación paralela que se han utilizado, el cálculo paralelo en un
clúster se dividen en varias partes un trabajo y distribuyéndolos en los
nodos de tal manera que en cada uno se vayan desarrollando , cualquier
información que sea requerida para elaborar los procesos o tareas, es
realizado a través de intercambio de mensajes, lo cual el objetivo
importante del MPI es lograr una potabilidad a través de diferentes
máquinas.
2. Servidor Distribuido (Granja Blender)
Las animaciones tridimensionales para ser renderizadas necesitan
de una gran cantidad de cálculo, ya que se requiere simular procesos
- 81 -
físicos, los cuales tardan demasiado tiempo para fnalizar dichas tareas.
El renderizado se refere a la etapa en la que se toman como entrada los
elementos que defnen las texturas, la iluminación, el modelado y la
animación como una imagen bidimensional. Así que para agilizar esta
tarea se recurrió a lo que es conocido como Granja de Blender , la cual
es una agrupación de varias computadoras, donde tienen procesos
subdivididos entre varias computadoras, para realizar la tarea de
renderización en un menor tiempo posible. Con la granja de Blender se
utiliza un software desarrollado en el lenguaje C, llamado DrQueue, de
código abierto, el cual es compatible con distintos sistemas operativos.
En la mayoría de los casos se utiliza para renderizar efectos visuales y
de animación para publicidad, cine entre otras. ( 5.2.7)
Figura 5.2.7 Ejemplo Gráfco de Granja Blender
3. Servidor de GPU NVIDIA.
El servidor de GPU NVIDIA que utilizamos tiene las siguientes
características:
- Sistema Operativo Linux x86_64
- NVIDIA Driver Version: 295.41
- Server Version Number: 11.0
- 82 -
- Procesador de Gráfcos: GeForce GTX 570
- CUDA cores: 480 x 2 = 960
El tercer caso tiene la ventaja de integrarse en forma natural a
Blender en ciertas versiones en nuestro caso v.2.63, lo que evita
desarrollar programas especiales.
- 83 -
6. Conclusiones
Se desarrolló un algoritmo de reconstrucción facial 3D, utilizando
Blender, en lenguaje de programación con Python.
Ya que Python es un lenguaje interpretado, interactivo y orientado
a objetos en el cual se pueden integrar módulos, de tipo dinámicos,
ademas que su sintaxis es muy clara y de fácil dominio.
Así como también Python fue diseñado para usar como un
lenguaje de extensión para distintas aplicaciones ya que no necesita una
interfaz para programarse. De igual manera se recurrió al uso de la
extensión en Blender con Python ya que es mas fácil de comprender el
uso de las secuencias que se tienen en esta.
Blender permitió un ambiente optimo de desarrollo donde se
integró de manera natural el uso herramientas computacionales
gráfcas de alto desempeño y el uso del GPU.
Python permitió integrar las soluciones de programación en
Blender , para de esa forma se explotará el uso de programas de alto
paralelismo gráfco.
Cabe resaltar otro punto interesante al trabajo, se realizó un costo
menor obteniendo el uso de la cámara del Kinect de Blender, caso
contrario al escáner tridimensional.
Comparado con sistemas anteriores, que se han realizado, en este
caso el desarrollo manual se obtuvo un mejor resultado, debido a que se
tiene una reducción de tiempo.
- 84 -
Trabajos a Futuro
Los trabajos a futuro permitirán complementar y hacer mas efciente
esta implementación
Los trabajos son:
1. Realizar el escaneo de Cráneos Incompletos y tratar de
reconstruirlos, siguiendo o mejorando esta aplicación.
2. Implementar el uso del ADN, para tener mayor certeza sobre su
raza o descendencia .
3. Implementar una Base de Datos de Rostros integrados.
4. Desarrollar un Plug-in que permita utilizar un sistema de
reconocimiento de fotografías en forma automática
5. Ampliar el uso de esta herramienta para hacer estudios de
reconstrucción de Rostros en otras áreas.
- 85 -
REFERENCIAS
[1] Taylor, Forensic art and illustration, Washintong, N.Y., 2001, CRC
Press. Boca Raton
[2] In vivo facial tissue depth measurements for white British
children.Wilkinson CM.J Forensic Sci. 2002 May;47(3):459-65.
[3] Smith, S.L. & Buschang, P. H. Midsagittal facial tissue thicknesses of children and adolescents from the Montreal growth study. J. Forensic Sci., 46(6):1294-302,2001.
[4] Tim Thompson, Sue Black, Forensic human identification An Introduction, 2007 Boca Raton : CRC Press, ©2007.
[5] Der Schädel Raphael´s und die Raphaelporträs. En: Archiv für Anthropologie, Bd. XV, Braunschweig. Welcker. 1888
[6] Bericht an den Rath der Stadt Leipzig: Jo-hann Sebastian Bach, Forschungen über dessen Gra- betätte,Gebeine und Antlitz. Leipzig.
[7] Rekonstruktion der Weichteile auf einem weiblichen Schädel aus einem Altsächs. Graber-feld zu Grone bei Göttingen.Corr. - Bl. Anthropol.Ges. 39, N 1/2. Braunschweig
[8]Tandler, J. 1909 Über den Schädel Haydns. Mitt Anthropol Ges. 39:260-279. Tandler, J. 1912
[9] W.M. Krogman and M.Y. Iscan. The Human Skeleton in Forensic Medicine. Charles C. Thomas, Springer edition, IL, 2nd edition, 1986.
[10] Clement, J. y Murray K. m. 2005 Computer-graphic facial reconstruction. Elsevier Academic Press
[11] Vanezis P, Blowes RW, Linney AD, Tan AC, Richards R, Neave RAH. Application of three-dimensional computer graphics for facial reconstruction and comparison with sculpting techniques. Forensic Sci Int 1989.
[12]Vanezis P, Vanezis M, McCombe G, Niblett T. Facial reconstruction using 3-D computer graphics. Forensic Sci Int 2000.
- 86 -
[13] Caroline Wilkinson, Computerized Forensic Facial Reconstruction, The Unit of Art in Medicine, The University of Manchester, Manchester, UK, 2005 Moss JP, Linney AD,Grinrod SR,Arridge SR, Clifton JS. Threedimensional visualisation of the face and skull using computerized tomography and laser scanning techniques. Eur J Orthod 1987
[14] SERRANO, Carlos, María VILLANUEVA, Jesús LUY y Karl F. LINK (1997) El proyecto “La cara del mexicano”. Un sistema de retrato hablado asistido por computadora para la población mexicana. Boletin de Enlaces: 26-28, Coordinación de Humanidades, UNAM, México.
[15] Arridge SR, Moss JP, Linney AD, James DR. Three-dimensional digitization of the face and skull. J Max- Fac Surg 1985.
[16] Wilkinson CM. “Virtual” sculpture as a method of computerized facial reconstruction. Proceedings of the first international Conference on Reconstruction of Soft Facial Parts (RSFP), Potsdam, Germany, 2003.
[17] Mesa Quiles, Fernando Javier; Terrero Hernández, Roger. Gestor de bibliotecas de script en Python para el desarrollo de Paseos Virtuales sobre Blender. 2010.
[18] High Performance Cluster Computing: Programming and Applications, Volume II, Prentice Hall, Upper Saddle River, New Jersey Buyya, R. 1999
[19] Parallel Programming with MPI, Morgan Kaufmann, San Francisco.Pacheco P.1997
[20] Geometria para la Informatica, Joan Trias, Alfaomega, Mexico, 2005
[21] Blender Index Release 2.59, Blender foundation, septiembre 2005
[22] Python Essential Reference, David M. Beazley, USA, 2006
- 87 -
Anexos
A. Código import bpy
scn = bpy.context.scene
# initial setup of the triangle mesh and object.
triMesh = bpy.data.meshes.new( 'triMesh' )
triOb = bpy.data.objects.new( 'triOb', triMesh )
# Layout panel
class LayoutPanel(bpy.types.Panel):
bl_label = "RECONSTRUCCION TRIDIMENSIONAL"
bl_space_type = "VIEW_3D"
bl_region_type = "TOOL_PROPS"
def draw(self, context):
layout = self.layout
layout.label("CIDETEC - IPN - ROCIO G")
row = layout.row()
split = row.split(percentage=0.30)
col = split.column()
col.operator("my.button", text="Carga Objeto").number=1
col.operator("my.button", text="Puntos").number=2
col.operator("my.button", text="Reconstruye").number=3
col.operator("my.button", text="Orejas").number=4
split = split.split(percentage=0.5)
col = split.column()
col.operator("my.button", text="Nariz").number=5
col.operator("my.button", text="Piel").number=6
col.operator("my.button", text="Textura").number=7
col.operator("my.button", text="Borrar").number=8
#split = split.split(percentage=0.5)
#col = split.column()
#col.operator("my.button", text="Inicia").number=9
- 88 -
# Button
class OBJECT_OT_Button(bpy.types.Operator):
bl_idname = "my.button"
bl_label = "Button"
number = bpy.props.IntProperty()
row = bpy.props.IntProperty()
loc = bpy.props.StringProperty()
def execute(self, context):
if self.loc:
words = self.loc.split()
self.row = int(words[0])
self.number = int(words[1])
if self.number == 1:
print("Carga objeto botoncito1")
full_path_to_file = " craneo.obj"
bpy.ops.import_scene.obj(filepath=full_path_to_file)
mate=bpy.data.materials.new('principal')
mate.diffuse_color = (.800, .489,.469)
mate.diffuse_shader = 'LAMBERT'
mate.diffuse_intensity = 0.800
mate.specular_color = (1,1,1)
mate.specular_shader = 'COOKTORR'
mate.specular_intensity = 0.0
mate.emit=0.5
bpy.data.objects['Mesh'].data.materials.append(mate)
for item in bpy.data.objects:
print(item.name, item.type)
for item in bpy.data.objects:
if item.type == "MESH":
print(item.name)
#Pone musculo
elif self.number == 2:
print("Botoncito 2")
###Aplicacion Fase1
- 89 -
# vertex data
t1 = (v2,v1,v11)
t2 = (v1,v2,v11D)
t3 = (v11,v12,v2)
t4 = (v11D,v2,v12D)
t5 = (v12,v3,v2)
t6 = (v2,v3,v12D)
t7 = (v12,v4,v3)
t8 = (v3,v4,v12D) #h
t9 = (v11,v17,v12)
t10 = (v11D,v12D,v17D)
t11 = (v12,v16,v17)
t12 = (v12,v15,v4) #huecoIzq
t13 = (v12D,v4,v15D) #huecoDer
t14 = (v12D,v16D,v17D)
t15 = (v15,v14,v13)
t16 = (v13,v14,v4)
t17 = (v4,v14,v5)
t18 = (v4,v5,v14D)
t188 = (v13D, v14D, v16D)
t19 = (v4,v14D,v13D)
t20 = (v13D,v14D,v15D)
t21 = (v15D,v19D,v16D)
t22 = (v15,v16,v19)
t23 = (v14,v19,v5)
t24 = (v14D,v5,v19D)
t25 = (v19,v16,v20)
t26 = (v19,v20,v21)
t27 = (v5,v19,v6)
t28 = (v5,v6,v19D)
t29 = (v19D,v20D,v16D)
t30 = (v20,v17,v18)
t31 = (v20,v18,v21)
t311 =(v17, v20, v16)
- 90 -
t32 = (v19D,v20D,v21D)
t33 = (v18,v10,v21)
t34 = (v7,v21,v8)
t35 = (v7,v8,v21D)
t39 = (v8,v9,v21D)
t40 = (v9,v10,v21)
t41 = (v9,v10,v21D)
t42 = (v18D,v9,v21D)
#parpados
t43 = (v12,v22,v22D)
t44 = (v12D, v23, v23D)
#labios
#labio superior
t45 = (v19, v20, v6)
t46 = (v19, v19D, v6)
t47 = (v19D, v6, v20D)
#labio inferior
t48 = (v21, v21D, v8)
t488=(v15D,v13D,v14D)
t49 = (v24, v18, v17)
t50 = (v24D, v18D, v17D)
t51 = (v16D, v18D, v17D)
#triang acompletar
t52 = (v12D, v23, v16D)
t53 = (v23, v15D, v13D)
t54 = (v22, v15, v13)
t55 = (v23, v15D, v16D)
allVerts = t1 + t2 + t3 + t4 + t5 + t6 + t7 + t8 + t9 + t10 + t11 + t14 + t15 + t155 + t16 + t17 + t18 +
t188 + t19 + t20 + t200 + t21 + t212 + t22 + t222 + t23 + t223 + t24 + t25 + t26 + t27 + t28 + t29 + t30 +
- 91 -
t31 + t311 + t32 + t33 + t34 + t35 + t36 + t37 + t38 + t39 + t40 + t41 + t42 + t43 + t44 + t45 + t46 + t47
+ t48 + t488 + t49 + t50 +t51 + t52 + t53 +t54 + t55
allFaces = topAndBottomFaces #+ sideFaces + baseFace
# load up the mesh data
triMesh.from_pydata( allVerts, (), allFaces )
scn.objects.link( triOb )
grados = bpy.data.objects['Mesh'].rotation_euler[0]=1.37
bpy.data.objects['triOb'].rotation_euler = bpy.data.objects['Mesh'].rotation_euler
bpy.data.objects['triOb'].location = bpy.data.objects['Mesh'].location
bpy.data.objects['triOb'].location.y =bpy.data.objects['Mesh'].location.y - 0.012490
bpy.data.objects['triOb'].location.z =bpy.data.objects['Mesh'].location.z + 0.0035374
bpy.data.objects['Mesh'].rotation_euler[0]=1.57
mat=bpy.data.materials.new('musculo')
mat.diffuse_color = (.800, .489,.469)
mat.diffuse_shader = 'LAMBERT'
mat.diffuse_intensity = 0.800
mat.specular_color = (1,1,1)
mat.specular_shader = 'COOKTORR'
mat.specular_intensity = 0.0
mat.emit=0.5
bpy.data.objects['triOb'].data.materials.append(mat)
elif self.number == 3:
print("Botoncito 3-Reconstruye")
bpy.data.objects['triOb']
bpy.context.active_object
bpy.ops.object.mode_set(mode='EDIT')
bpy.ops.transform.push_pull(value=0.0202, mirror=False, proportional='DISABLED',
proportional_edit_falloff='SMOOTH', proportional_size=1, release_confirm=False)
bpy.ops.object.mode_set(mode='OBJECT')
elif self.number == 4:
print("Botoncito 4-Orejas")
- 92 -
full_path_to_file = " earscjo.obj"
bpy.ops.import_scene.obj(filepath=full_path_to_file)
mato=bpy.data.materials.new('principalore')
mato.diffuse_color = (.800, .489,.469)
mato.diffuse_shader = 'LAMBERT'
mato.diffuse_intensity = 0.800
mato.specular_color = (1,1,1)
mato.specular_shader = 'COOKTORR'
mato.specular_intensity = 0.0
mato.emit=0.5
bpy.data.objects['Mesh.001'].data.materials.append(mato)
elif self.number == 5:
print("Botoncito 5-Nariz")
full_path_to_file = " nariz.obj"
bpy.ops.import_scene.obj(filepath=full_path_to_file)
matn=bpy.data.materials.new('principalnar')
matn.diffuse_color = (.800, .489,.469)
matn.diffuse_shader = 'LAMBERT'
matn.diffuse_intensity = 0.800
matn.specular_color = (1,1,1)
matn.specular_shader = 'COOKTORR'
matn.specular_intensity = 0.0
matn.emit=0.5
bpy.data.objects['Mesh.002'].data.materials.append(matn)
elif self.number == 6:
print("Botoncito 6-Piel")
bpy.data.objects['Mesh']
bpy.context.active_object
bpy.ops.object.editmode_toggle()
bpy.ops.transform.shrink_fatten(value=-0.00436, mirror=False, proportional='DISABLED',
proportional_edit_falloff='SMOOTH', proportional_size=1, snap=False, snap_target='CLOSEST',
snap_point=(0, 0, 0), snap_align=False, snap_normal=(0, 0, 0), release_confirm=False)
bpy.ops.mesh.vertices_smooth(repeat=1)
bpy.ops.object.mode_set(mode='OBJECT')
#bpy.ops.object.shade_smooth()
elif self.number == 7:
print("Botoncito 7-Textura")
- 93 -
#txtu=bpy.ops.image.open(filepath=" cara3.jpeg", filter_blender=False, filter_image=True,
filter_movie=True, filter_python=False, filter_font=False, filter_sound=False, filter_text=False,
filter_btx=False, filter_collada=False, filter_folder=True, filemode=9, relative_path=True,
display_type='FILE_DEFAULTDISPLAY')
elif self.number == 8:
print("Botoncito 8-Borra")
candidate_list = [item.name for item in bpy.data.objects if item.type == "MESH"]
for item in bpy.data.meshes:
bpy.data.meshes.remove(item)
elif self.number == 9: print("Botoncito 9-Ejecuta") bpy.ops.text.run_script()
else: print("ERROR...") return{'FINISHED'} # Registrationbpy.utils.register_module(__name__)
- 94 -
B. Tejidos Blandos en México
- 95 -
- 96 -