ES2887926T3 - Procedimiento, dispositivo y programa informático para la adaptación virtual de una montura de gafas - Google Patents

Procedimiento, dispositivo y programa informático para la adaptación virtual de una montura de gafas Download PDF

Info

Publication number
ES2887926T3
ES2887926T3 ES19215572T ES19215572T ES2887926T3 ES 2887926 T3 ES2887926 T3 ES 2887926T3 ES 19215572 T ES19215572 T ES 19215572T ES 19215572 T ES19215572 T ES 19215572T ES 2887926 T3 ES2887926 T3 ES 2887926T3
Authority
ES
Spain
Prior art keywords
head
frame
metadata
model
points
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES19215572T
Other languages
English (en)
Inventor
Oliver Schwarz
Ivo Ihrke
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Carl Zeiss Vision International GmbH
Original Assignee
Carl Zeiss Vision International GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Carl Zeiss Vision International GmbH filed Critical Carl Zeiss Vision International GmbH
Application granted granted Critical
Publication of ES2887926T3 publication Critical patent/ES2887926T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G02OPTICS
    • G02CSPECTACLES; SUNGLASSES OR GOGGLES INSOFAR AS THEY HAVE THE SAME FEATURES AS SPECTACLES; CONTACT LENSES
    • G02C13/00Assembling; Repairing; Cleaning
    • G02C13/003Measuring during assembly or fitting of spectacles
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/103Detecting, measuring or recording devices for testing the shape, pattern, colour, size or movement of the body or parts thereof, for diagnostic purposes
    • A61B5/107Measuring physical dimensions, e.g. size of the entire body or parts thereof
    • A61B5/1079Measuring physical dimensions, e.g. size of the entire body or parts thereof using optical or photographic means
    • GPHYSICS
    • G02OPTICS
    • G02CSPECTACLES; SUNGLASSES OR GOGGLES INSOFAR AS THEY HAVE THE SAME FEATURES AS SPECTACLES; CONTACT LENSES
    • G02C7/00Optical parts
    • G02C7/02Lenses; Lens systems ; Methods of designing lenses
    • G02C7/024Methods of designing ophthalmic lenses
    • G02C7/027Methods of designing ophthalmic lenses considering wearer's parameters
    • GPHYSICS
    • G02OPTICS
    • G02CSPECTACLES; SUNGLASSES OR GOGGLES INSOFAR AS THEY HAVE THE SAME FEATURES AS SPECTACLES; CONTACT LENSES
    • G02C7/00Optical parts
    • G02C7/02Lenses; Lens systems ; Methods of designing lenses
    • G02C7/024Methods of designing ophthalmic lenses
    • G02C7/028Special mathematical design techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/17Mechanical parametric or variational design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/27Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0621Item configuration or customization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • G06T7/33Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H20/00ICT specially adapted for therapies or health-improving plans, e.g. for handling prescriptions, for steering therapy or for monitoring patient compliance
    • G16H20/40ICT specially adapted for therapies or health-improving plans, e.g. for handling prescriptions, for steering therapy or for monitoring patient compliance relating to mechanical, radiation or invasive therapies, e.g. surgery, laser therapy, dialysis or acupuncture
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H30/00ICT specially adapted for the handling or processing of medical images
    • G16H30/40ICT specially adapted for the handling or processing of medical images for processing medical images, e.g. editing
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H40/00ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices
    • G16H40/60ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices for the operation of medical equipment or devices
    • G16H40/63ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices for the operation of medical equipment or devices for local operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/16Cloth
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2004Aligning objects, relative positioning of parts

Landscapes

  • Health & Medical Sciences (AREA)
  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Theoretical Computer Science (AREA)
  • Ophthalmology & Optometry (AREA)
  • Business, Economics & Management (AREA)
  • Public Health (AREA)
  • Primary Health Care (AREA)
  • Epidemiology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Optics & Photonics (AREA)
  • Nuclear Medicine, Radiotherapy & Molecular Imaging (AREA)
  • General Business, Economics & Management (AREA)
  • Surgery (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Geometry (AREA)
  • Development Economics (AREA)
  • Animal Behavior & Ethology (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Dentistry (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • Architecture (AREA)
  • Biophysics (AREA)
  • Pathology (AREA)
  • Heart & Thoracic Surgery (AREA)
  • Molecular Biology (AREA)
  • Radiology & Medical Imaging (AREA)
  • Computer Graphics (AREA)
  • Veterinary Medicine (AREA)

Abstract

Procedimiento implementado por ordenador para la adaptación virtual de gafas, que comprende: posicionamiento virtual de una montura de gafas en una cabeza sobre la base de los metadatos de la cabeza para un modelo 3D (30, 31) de la cabeza y sobre la base de los metadatos de la montura para un modelo 3D de la montura de gafas, comprendiendo los metadatos de la montura una primera información de apoyo que define uno o varios puntos de la montura de gafas en los que la montura de gafas se apoya en la cabeza, y comprendiendo los metadatos de la cabeza una segunda información de apoyo que define uno o varios puntos de la cabeza en los que la montura de gafas se apoya en la cabeza, y comprendiendo la segunda información de apoyo un punto de posicionamiento asignado a un puente de nariz del modelo 3D de la cabeza, caracterizado por que una zona de puente de nariz se pone a disposición como una curva 3D, determinándose el punto de posicionamiento sobre la base de la curva 3D.

Description

DESCRIPCIÓN
Procedimiento, dispositivo y programa informático para la adaptación virtual de una montura de gafas
La presente solicitud se refiere a procedimientos, dispositivos y programas informáticos para la adaptación virtual de monturas de gafas. En este caso, por una montura de gafas se entiende, de acuerdo con las normas DIN EN ISO 7998:2006-01 y DIN EN ISO 8624:2015-12, un marco o un soporte mediante los cuales se pueden llevar lentes de gafas en la cabeza. El término tal como se utiliza aquí también incluye especialmente monturas de gafas sin borde. Las monturas de gafas de este tipo también se conocen coloquialmente como marcos de gafas. En el marco de la presente solicitud, una colocación virtual de una montura de gafas se refiere a una adaptación de un modelo de una montura de gafas a un modelo de una cabeza en un dispositivo de computación normalmente asociado con una representación gráfica en una pantalla, por ejemplo, en una pantalla de ordenador, de la adaptación de la montura de gafas a una cabeza de una persona.
Por los documentos US 2003/0123026 A1 o US 2002/105530 A1, por ejemplo, se conoce una colocación virtual de una montura de gafas. En estas memorias impresas, la colocación virtual de la montura de gafas sirve principalmente para facilitar a un usuario la elección entre diferentes monturas de gafas, mostrándose una representación gráfica de la cabeza del usuario junto con la montura de gafas.
El documento WO 2015/101738 A2 correspondiente al documento US 2016/0327811 A1 revela un procedimiento para la adaptación virtual de una montura de gafas a un usuario. Aquí se utiliza un modelo de la cabeza del usuario, especialmente un modelo de la nariz y un modelo de las dos orejas del usuario. En este caso, sobre la base de una superposición de un modelo de la montura de gafas con el modelo de la cabeza, se determina una deformación necesaria de la montura de gafas, minimizándose una zona superpuesta, de manera que la montura de gafas se ajuste a la cabeza del usuario. A continuación, esta deformación puede aplicarse a la correspondiente montura de gafas real mediante una máquina o también manualmente. Adicionalmente, en esta memoria impresa puede optimizarse de forma automática una posición de la montura de las gafas con respecto a la nariz. Esta optimización conlleva un proceso de cálculo relativamente complejo y, dependiendo de los valores iniciales de la optimización, no garantiza realmente una adaptación óptima.
El documento US 9,286,715 B2 revela un procedimiento de prueba virtual de unas gafas. En este procedimiento se definen varios puntos tanto en una montura de gafas, como también en una cabeza. Se lleva a cabo un posicionamiento de la montura de gafas en la cabeza haciéndose coincidir puntos seleccionados en la montura de gafas con puntos seleccionados en la cabeza. El cambio de posición se realiza modificando los puntos seleccionados. De este modo es posible un posicionamiento con una precisión suficiente para el propósito del documento US 9,286,715 B2 de obtener una prueba virtual, a fin de conseguir una impresión visual. Aquí no se alcanza una adaptación precisa sobre la que un óptico pueda llevar a cabo una adaptación real de una montura de gafas.
La empresa Volumental dispone de un vídeo de demostración del software "Vacker" en "https://www.volumental.com/face-scanning/", estado del 5 de marzo de 2017, en el que se reproduce una cabeza con unas gafas puestas, pudiéndose modificar los parámetros de las gafas mediante controles deslizantes, por ejemplo, el ajuste de las gafas en el puente de la nariz o también otros parámetros como el ángulo de las lentes de la montura y la inclinación hacia adelante (compárese DIN EN ISO). También se puede elegir un color de la montura de gafas o un color de las bisagras de la montura de gafas.
En el portal web de Alain Afflelou/Ditto, compárese, por ejemplo, "https://www.youtube.com/watch?v=awNs2cEoZ7Y" o "https://www.youtube.com/watch?v=ZsBV4FkcU8U", estado del 5 de marzo de 2017, están disponibles vídeos que muestran un flujo de trabajo de una adaptación virtual de gafas. En este caso se utiliza un ordenador con una cámara integrada como sistema de grabación, siendo posible seleccionar monturas. En este procedimiento, la adaptación de las gafas se realiza en cierto modo sobre un vídeo en directo del usuario que se graba por medio de la cámara.
El estado de la técnica antes explicado permite una colocación virtual de unas gafas y, por ejemplo, en el documento WO 2015/101738 A2, hasta cierto punto también una adaptación de las gafas al usuario, para a continuación transferir esta adaptación a una montura de gafas real, de manera que posteriormente se pueda proporcionar directamente al usuario unas gafas con la montura de gafas con el menor número posible de adaptaciones adicionales. Sin embargo, como ya se ha explicado, el procedimiento del documento WO 2015/101738 A2 requiere comparativamente un complejo proceso de cálculo, dado que la optimización se realiza mediante la superposición de modelos 3D. Además, con el procedimiento de optimización de esta memoria impresa no se sabe con certeza si realmente se encuentra un óptimo o si el procedimiento de optimización se "atasca", por ejemplo, en un mínimo local de un tamaño a optimizar.
El documento US 2016/360970 A1 revela dispositivos portátiles para la realización de mediciones térmicas que comprenden especialmente cámaras de imagen térmica montadas en una montura de gafas.
Hossein-Nejad Zahra et al: "RKEM: Redundant Keypoint Elimination Method in Image Registration", IET Image Processing, IET, UK, volumen 11, número 5, 1 de mayo de 2017 (2017-05-01), páginas 273-284, XP006061590, ISSN: 1751-9659, DOI: 10.1049/IET-IPR.2016.0440 se refiere a la identificación de características de imagen mediante el uso de puntos clave (Keypoints) y algoritmos para determinar dichos puntos clave.
El documento US 2016/0246078 A1 revela la generación de una imagen de aspecto realista de unas gafas posicionadas sobre una imagen de una persona. Con esta finalidad, se analiza el rostro para obtener una matriz de rotación, un vector de traslación y parámetros morfológicos del rostro del usuario.
El documento US 2010/0022304 A1 revela un panel táctil para aplicaciones de juego, tratándose en este caso de mover un personaje del juego.
El documento US 2015/0055085 A1 revela una pluralidad de procedimientos y posibilidades para adaptar una montura de gafas virtual a un modelo de cabeza.
El documento WO 2013/177456 A1 revela un procedimiento para la adaptación virtual de unas gafas que utiliza puntos en un puente de nariz y puntos en las orejas de una cabeza.
El documento DE 102 16 824 A1 se refiere a procedimientos y dispositivos para la construcción de un par de gafas personalizadas utilizando un dispositivo informático.
Por los documentos FR 3065 295 A1, US 2013/088490 A1 y EP 0177638 A2 se conocen otros procedimientos para la personalización de monturas de gafas.
El documento ES 2604806 A2 revela procedimientos para la determinación de parámetros de las lentes de monturas de gafas y para el pedido de las lentes así determinadas. Los procedimientos descritos comprenden: la obtención de datos morfológicos de la cabeza del usuario, la determinación de la posición óptima de las lentes, la determinación de las monturas de gafas posibles a partir de las monturas de gafas de una base de datos de monturas de gafas y la exclusión de las monturas de gafas no posibles, el cálculo de un par de lentes posible para cada montura de gafas posible y la exclusión de las monturas de gafas sin lentes utilizables, la selección de al menos una montura de gafas factible de una base de datos de lentes factibles por parte de un usuario, la confirmación de una selección y la realización de un pedido.
El documento WO 01/88654 A2 revela un sistema de adaptación de gafas con un sistema de imágenes que proporciona una vista del rostro de un cliente, con un procesador de imágenes 3D para la generación de una primera información 3D que describe las características físicas del cliente, con una unidad de prueba virtual para la recepción de la representación digital 3D del rostro del cliente y de una representación digital 3D de una montura de gafas, a fin de ajustar virtualmente la montura de gafas en la cara del cliente y de generar una segunda información 3D que describe el ajuste de la montura/rostro, y con un adaptador de lente diseñado para recibir la primera información 3D y la segunda información 3D y para generar a partir de las mismas al menos un parámetro para la creación personalizada del rostro y de la montura y para el biselado de las lentes. A este respecto, el documento WO 01/88654 A2 revela una asignación automática de los rasgos faciales mediante un "extractor de rostros en 3D", así como la determinación manual de los metadatos de la cabeza por medio de una medición manual.
El documento WO 2016 164859 A1 revela sistemas y procedimientos para la generación de una geometría de montura de gafas y de lentes adaptada a la anatomía de un usuario y optimizada para el índice de refracción del usuario. Un procedimiento comprende: la recepción de un modelo paramétrico configurable de un producto de gafas específico para el usuario que presenta una pieza de montura y una pieza de lente, basándose los parámetros geométricos del modelo paramétrico configurable en las características geométricas de la anatomía de un usuario; la recepción de datos de medios de un usuario, incluyendo los datos de medios la reacción del usuario a las señales visuales; la detección de la posición de los ojos del usuario a partir de los datos de medios recibidos; la determinación de la información óptica del usuario sobre la base de la posición detectada de los ojos del usuario; y la generación de un modelo paramétrico configurable actualizado mediante la modificación del modelo paramétrico configurable recibido sobre la base de la información óptica determinada. En este sentido, el documento WO 2016 164859 A1 revela el uso del aprendizaje automático para la detección de los rasgos faciales y el cálculo de información relativa a la iluminación de las imágenes de una cabeza, así como la representación virtual de las monturas de gafas con una iluminación virtual adecuadamente adaptada.
Mediante un procedimiento descrito en el documento FR 301 6051 A1 es posible probarse virtualmente una montura de gafas, llevándose a cabo el posicionamiento de la montura de gafas en la cabeza del usuario por medio de un posicionamiento aproximado y de un posicionamiento preciso.
Partiendo del documento FR 301 6051 A1, una tarea de la presente solicitud consiste en mejorar la información que caracteriza el puente de nariz de la cabeza, a fin de mejorar la precisión del procedimiento de adaptación de gafas y, al mismo tiempo, de reducir los requisitos de memoria del procedimiento. Para ello, se proporciona un procedimiento según la reivindicación 1.
Las reivindicaciones dependientes definen otros ejemplos de realización.
También se pone a disposición un programa informático según la reivindicación 9 y un dispositivo según la reivindicación 10.
La invención se describe a continuación brevemente. Los términos utilizados se definen después de esta breve descripción.
Según la invención, se proporciona un procedimiento implementado por ordenador para la adaptación virtual de unas gafas, que comprende:
el posicionamiento virtual de una montura de gafas en una cabeza sobre la base de los metadatos de la cabeza para un modelo 3D (30, 31) de la cabeza y sobre la base de los metadatos de la montura para un modelo 3D de la montura de gafas,
comprendiendo los metadatos de la montura una primera información de apoyo que define uno o varios puntos de la montura de gafas en los que la montura de gafas se apoya en la cabeza, y comprendiendo los metadatos de la cabeza una segunda información de apoyo que define uno o varios puntos de la cabeza en los que la montura de gafas se apoya en la cabeza, y comprendiendo la segunda información de apoyo un punto de apoyo asignado a un puente de nariz del modelo 3D de la cabeza.
El procedimiento se caracteriza por que una zona de puente de nariz se pone a disposición como una curva 3D.
En comparación con el procedimiento del documento FR 301 6051 A1, éste tiene la ventaja de que se reduce el proceso de cálculo necesario para la realización del procedimiento, dado que no se requiere ningún cálculo de puntos de colisión con una malla tridimensional, es decir, un modelo 3D completo, sino que es posible determinar un posicionamiento aproximado mediante la determinación de un punto sólo con una curva. Al mismo tiempo, se mejora la precisión del procedimiento de adaptación de gafas, dado que una curva 3D resulta adecuada para describir el contorno de la nariz con una mayor precisión utilizando una cantidad de datos menor que una malla.
Por posicionamiento aproximado se entiende que se determina una posición inicial sobre la base de información. Por posicionamiento preciso se entiende que, partiendo de un posicionamiento aproximado, se lleva a cabo una determinación de la posición más precisa sobre la base de otros datos. Por ejemplo, sería posible que en el marco del posicionamiento aproximado se realice un posicionamiento a lo largo de la dirección z; y, a continuación, en el marco del posicionamiento preciso se realice un posicionamiento fundamentalmente perpendicular a la dirección z.
El posicionamiento aproximado puede realizarse sobre la base de una información sobre el puente de la nariz: en este caso, un punto 3D en el sistema de coordenadas de la montura, también denominado punto de anclaje, puede hacerse coincidir con un punto del puente de la nariz.
En algunos ejemplos de realización, el posicionamiento preciso puede mover la montura de gafas menos de 20 mm, en algunos ejemplos de realización menos de 10 mm, en relación con la posición inicial, es decir, la posición de la montura de gafas determinada por el posicionamiento aproximado.
En este contexto, los términos "posicionamiento aproximado" y "posicionamiento preciso" deben entenderse de forma relativa, es decir, el posicionamiento preciso hace más precisa la posición determinada en primer lugar mediante el posicionamiento aproximado.
Estos posicionamientos son posibles gracias a que el posicionamiento aproximado determina un punto de partida o una posición inicial para un posicionamiento preciso posterior y gracias a que el posicionamiento preciso especifica una posición determinada en primer lugar mediante el posicionamiento aproximado.
Por consiguiente, el posicionamiento aproximado representa un primer posicionamiento y el posicionamiento preciso representa un posicionamiento posterior.
Por lo tanto, el posicionamiento aproximado significa que, en primer lugar, la montura de gafas se coloca en una posición que se aproxima a una posición final alcanzada después del posicionamiento preciso, por ejemplo, del orden de 20 mm, 10 mm o menos, en relación con las dimensiones de la cabeza. El posicionamiento preciso modifica a continuación esta posición a la posición final. El posicionamiento aproximado se basa en los metadatos, mientras que el posicionamiento preciso se basa en los propios modelos.
Al utilizar los metadatos de la cabeza y los metadatos de la montura para el posicionamiento aproximado, el posicionamiento aproximado puede realizarse rápidamente y con un esfuerzo computacional comparativamente pequeño. Además, el posicionamiento aproximado da lugar a un punto de partida o una posición inicial para el siguiente posicionamiento preciso, lo que puede acelerar el posicionamiento preciso, dado que el posicionamiento preciso ya se inicia desde una posición aproximadamente correcta de la montura de gafas. Así se reduce el riesgo de encontrar durante el posicionamiento preciso una posición que no corresponde al óptimo deseado. Mediante el uso de los modelos 3D de la cabeza y de la propia montura para el posicionamiento preciso, se puede conseguir una gran precisión para el posicionamiento preciso, siendo el posicionamiento preciso en general menos complejo desde un punto de vista computacional gracias al posicionamiento aproximado anterior.
En este caso, por un modelo 3D debe entenderse una representación tridimensional de objetos reales que están disponibles como un conjunto de datos en un dispositivo de almacenamiento, por ejemplo, una memoria de un ordenador o un soporte de datos. Una representación tridimensional como ésta puede comprender, por ejemplo, una malla 3D (en inglés “3D mesh”), compuesta por un conjunto de puntos 3D, también denominados vértices, y conexiones entre los puntos, también denominadas aristas. En el caso más sencillo, esta unión forma una malla triangular (en inglés triangle mesh). En caso de una representación de este tipo como una malla 3D, sólo se describe la superficie de un objeto, no el volumen. La malla no tiene que estar necesariamente cerrada. Por ejemplo, si la cabeza se describe en forma de una malla, ésta aparece como una máscara. Se puede encontrar información más detallada sobre los modelos 3D de este tipo en Rau J-Y, Yeh P-C. "A Semi-Automatic Image-Based Close Range 3D Modeling Pipeline Using a Multi-Camera Configuration.” Sensors (Basilea, Suiza). 2012;12(8):11271-11293. doi:10.3390/s120811271; especialmente página 11289, dibujo "Figura16").
Otra posibilidad de representar un modelo 3D es una cuadrícula de vóxeles (en inglés “voxel grid”) que muestra una representación volumétrica. En este caso, el espacio se divide en pequeños cubos o paralelepípedos que se denominan vóxeles. En el caso más sencillo, la presencia o la ausencia del objeto a representar se almacena para cada vóxel en forma de un valor binario (1 o 0). Con una longitud de canto de los vóxeles de 1 mm y con un volumen de 300 mm x 300 mm x 300 mm, que representa un volumen normal de una cabeza, se obtiene un total de 27 millones de vóxeles de este tipo. Las cuadrículas de vóxeles como éstas se describen, por ejemplo, en M. NieBner, M. Zollhofer, S. Izadi and M. Stamminger. "Real-time 3D reconstruction at scale using voxel hashing". ACM Trans. Gráfico. 32, 6, artículo 169 (noviembre de 2013). DOI: https://doi.org/10.1145/2508363.2508374.
Otras formas de representación posibles de un modelo 3D son las nubes de puntos, por ejemplo, sin información sobre las conexiones entre los puntos (aristas, por ejemplo, la malla triangular, véase arriba), la nube de puntos con vector normal en cada punto, la representación en forma de superficies spline y superficies parciales de cuerpos básicos geométricos, por ejemplo, una esfera, un cilindro, un plano. Los procedimientos aquí descritos pueden ser independientes de la forma de representación elegida del modelo 3D.
Por una superficie spline se entiende una superficie descrita por una o más curvas, como se describe en https://en.wikipedia.org/w/index.php?title=B-spline&oldid=840787047.
Por cuerpos básicos geométricos se entienden figuras tridimensionales descritas por sus superficies, como se describe en https://de.wikipedia.org/w/index.php?title=K%C3%B6rper (Geometrie)&oldid=177672595.
Una nube de puntos con N puntos representa un número de N puntos, estando cada uno de los N puntos descrito por tres coordenadas.
Un vector normal es un vector que es ortogonal (perpendicular) a una línea recta, una curva, un plano o una superficie (curva) de un objeto como éste, o una combinación de unos objetos como éstos.
El modelo 3D de la cabeza y/o el modelo 3D de la montura de gafas pueden ser especialmente un modelo 3D con textura. Por un modelo 3D con textura se entiende un modelo 3D que incluye adicionalmente información de color de los puntos de superficie del objeto real. Gracias al uso de un modelo 3D con textura es posible una representación realista de la cabeza y de la montura de las gafas en cuanto al color.
En este caso, la información de color puede incluirse directamente en los vértices como un atributo, por ejemplo, como un valor de color RGB (rojo verde azul), o a cada vértice se le puede adjuntar un par de coordenadas de textura como atributo. Estas coordenadas deben entenderse como coordenadas de imagen (posiciones de píxeles) en una imagen de textura adicional. En tal caso, la textura de, por ejemplo, los triángulos de la malla triangular antes mencionados se genera mediante interpolación a partir de los píxeles de la imagen de textura.
En caso de almacenamiento como una cuadrícula de vóxeles, la información de color puede almacenarse en los propios vóxeles. Aquí, la resolución de la textura corresponde al tamaño de los vóxeles en la representación de vóxeles. Para las texturas de alta resolución es necesaria la conversión de la cuadrícula de vóxeles en una malla que describa la superficie, lo que se denomina reconstrucción de superficie (en inglés surface reconstruction). (Véase, por ejemplo, Cignoni, Paolo, et al. "Meshlab: an open-source mesh processing tool". Eurographics Italian Chapter Conference. Vol. 2008. 2008).
Por metadatos se entienden los datos que contienen información sobre las características del modelo, pero no el modelo en sí. Especialmente, los metadatos pueden proporcionar información adicional sobre los modelos y/o incluir puntos o curvas destacadas basadas en el modelo respectivo. Los metadatos también se explican en general en el artículo de Wikipedia "Metadaten", estado del 5 de marzo de 2017. Siempre que no se indique lo contrario, las referencias a Wikipedia se refieren a la Wikipedia en lengua alemana (de.wikipedia.org).
Mediante el uso de metadatos de este tipo, que pueden crearse de antemano, son posibles, como se ha mencionado anteriormente, un rápido posicionamiento y también una modificación de la posición de la montura de gafas en la cabeza de un modo sencillo en comparación con el uso de los modelos 3D completos que normalmente son mucho más extensos.
El posicionamiento es "virtual" debido a que el proceso tiene lugar en una unidad de computación como un ordenador y a que la montura de gafas real no se coloca en la cabeza real.
Con preferencia, especialmente en el quinto aspecto de la invención, pero sin limitarse a este aspecto de la invención, los metadatos de la montura comprenden aquí una primera información de apoyo que define uno o varios puntos de la montura de gafas en los que la montura de gafas se apoya en la cabeza y/o los metadatos de la cabeza comprenden aquí una segunda información de apoyo que define uno o varios puntos de la cabeza en los que la montura de gafas se apoya en la cabeza. Los puntos pueden ser puntos, conjuntos de puntos, curvas o superficies. Mediante esta primera y/o segunda información de apoyo, la adaptación virtual de la montura de gafas puede acelerarse, dado que no es necesario utilizar todo el modelo 3D de la montura de gafas para todos los cálculos y pasos durante la adaptación.
En los casos en los que los puntos se definen como superficies pueden aplicarse de forma correspondiente los procedimientos descritos a continuación y anteriormente para puntos, conjuntos de puntos y curvas. Los componentes, por ejemplo, las varillas en la zona de la superficie de contacto, pueden aproximarse por una superficie de distancia a una curva en el espacio. En tal caso se puede utilizar el mismo procedimiento que para la curva de apoyo, aunque además se puede exigir o se puede imponer en el procedimiento una distancia fija con respecto a la curva en el espacio mediante procedimientos matemáticos.
Con preferencia, especialmente en los aspectos cuarto y quinto de la invención, pero sin limitarse a estos aspectos de la invención, la primera información de apoyo comprende en este caso un punto de apoyo que identifica un punto en la zona de un puente de nariz de la montura de gafas, en particular en un centro del puente de nariz de la montura de gafas, y una zona de apoyo que identifica una zona de las varillas de la montura de gafas.
Aquí, los términos puente de nariz y varillas se utilizan como en la norma DIN EN ISO 8624:2015-12, publicada en diciembre de 2015, y en la norma DIN EN ISO 7998:2006-01, publicada en enero de 2006.
Por un punto de apoyo se entiende un punto en la cabeza que define un punto de contacto de la montura de las gafas con la cabeza.
Por una zona de apoyo se entiende una zona que define una superficie de contacto de la montura de gafas con la cabeza. Para una oreja, por ejemplo, se puede utilizar una zona de apoyo de oreja o zonas de apoyo para las orejas de la cabeza.
Por una zona de apoyo potencial, por ejemplo, una zona de apoyo potencial de oreja, se entiende una zona que, en principio, resulta adecuada como zona de apoyo, por ejemplo, una zona de una montura de gafas prevista como zona de apoyo para varias formas de cabeza.
Los puntos de apoyo y la zona de apoyo pueden almacenarse como metadatos. Por medio de un punto de apoyo de este tipo se puede realizar el posicionamiento aproximado de la montura de gafas en la cabeza. Mediante la zona de apoyo también se puede apoyar el posicionamiento aproximado, especialmente también si se requieren cambios en la forma de la montura de gafas, como se describe más adelante, mediante flexión y/o cambios en la posición de las varillas de las gafas. En este caso, el puente de nariz y las varillas son partes de la montura de gafas en las que la montura de gafas suele apoyarse en la cabeza, pudiéndose con esta elección de metadatos realizar fácilmente un posicionamiento correspondiente a las condiciones reales.
Los metadatos de montura pueden determinarse de antemano junto con el modelo 3D de la montura de gafas para un gran número de monturas de gafas diferentes y almacenarse en un dispositivo de almacenamiento, y a continuación recuperarse para llevar a cabo el procedimiento. De este modo, los datos están disponibles rápidamente.
Por ejemplo, el modelo 3D de la cabeza puede crearse usando imágenes estereoscópicas. En caso de capturas de imágenes estereoscópicas de este tipo, un objeto, en este caso la cabeza, se fotografía desde varias direcciones, conociéndose las posiciones de captura. Esta operación puede llevarse a cabo mediante varias cámaras dispuestas rígidamente unas respecto a otras. Mediante la identificación de las características correspondientes de las imágenes tomadas se puede crear el modelo teniendo en cuenta las posiciones de captura conocidas. Se pueden encontrar más detalles sobre una determinación de modelos 3D de este tipo, por ejemplo, en H. Hirschmüller, "Stereo Processing by Semiglobal Matching and Mutual Information", en IEEE Transactions on Pattern Analysis and Machine Intelligence, volumen 30, número 2, páginas 328-341, febrero 2008.doi: 10.1109/TPAMI.2007.1166).
El fabricante, por ejemplo, puede poner a disposición el modelo 3D de la montura de gafas.
Existen distintas posibilidades para la determinación de los metadatos de montura, siendo también posible combinar entre sí las diferentes opciones. Por ejemplo, se pueden determinar diferentes metadatos de los metadatos de la montura utilizando diferentes posibilidades. A continuación se explican estas posibilidades.
En algunas formas de realización, los metadatos de la montura se determinan manualmente. Una determinación manual de este tipo permite una determinación de los metadatos de montura sin un esfuerzo computacional significativo y proporciona al usuario un control completo sobre los metadatos de la montura. Con esta finalidad se puede proporcionar una interfaz de usuario en la que la montura de gafas se representa gráficamente en una pantalla sobre la base del modelo. Los puntos y/o los contornos de la montura de gafas pueden seleccionarse manualmente, por ejemplo, haciendo clic sobre ellos con un ratón y con el correspondiente puntero del ratón o seleccionándolos directamente en una pantalla táctil. En este caso, especialmente el punto de apoyo antes mencionado puede seleccionarse como un solo punto y la zona de apoyo puede seleccionarse como una línea de contorno o como un polinomio de contorno. Además, los ejes de giro en las bisagras de la montura de gafas pueden marcarse manualmente como metadatos.
En otra forma de realización, la zona de apoyo se determina automáticamente, por ejemplo, como una línea de contorno en un lado inferior de cada varilla de gafas, por ejemplo, mediante un algoritmo de reconocimiento de imágenes. En este caso, no es necesario que el usuario realice ninguna entrada.
Finalmente, en otros ejemplos de realización se pone a disposición una determinación totalmente automática de los metadatos de la montura. Para ello se utilizan preferiblemente procedimientos de aprendizaje automático como los que se describen en el artículo de Wikipedia "Maschinelles Lernen", estado del 8 de marzo de 2017. En este caso, como datos de entrenamiento para este aprendizaje automático pueden utilizarse, como se ha descrito con anterioridad, metadatos creados manualmente o en parte manualmente para una serie de monturas de gafas.
En un ejemplo de realización preferido, la determinación de los metadatos de la montura comprende una determinación, especialmente una determinación automática, de puntos destacados en el modelo 3D de la montura. En este caso, los puntos destacados son puntos que tienen ciertas propiedades predeterminadas y que pueden definirse en los así llamados descriptores de características 3D (3D Feature-Deskriptoren). Los descriptores de características 3D identifican vectores en Rn que describen las propiedades de un punto destacado de un modelo 3D, de manera que este punto pueda encontrarse de nuevo en un modelo 3D similar por medio de este vector de propiedades. Se pueden utilizar conjuntos de puntos en las proximidades del punto destacado. Por ejemplo, se puede formar una esfera con un radio predeterminado, por ejemplo, 10 mm, con el punto como centro y examinar las propiedades de los puntos que se encuentran dentro de esta esfera, es decir, de este subconjunto de la nube de puntos. Por ejemplo, se puede realizar un análisis de valores propios en el sentido de análisis de componentes principales. En este caso, los valores propios extremos k1 y k2 pueden incluirse en los metadatos como elementos, por ejemplo, en forma de vector de propiedades. Aquí, por un vector de propiedades se entiende una forma de representación de valores de metadatos. Adicional o alternativamente también es posible determinar las curvaturas principales de la superficie en las proximidades del punto. Por curvaturas principales se entiende la información descrita en el artículo https://de.wikipedia.org/w/index.php?title=Hauptkr%C3%BCmmung&oldid=172452500. Las curvaturas principales también pueden incluirse en el vector de propiedades. Alternativamente se puede formar un histograma sobre todos los puntos y/o se pueden determinar vectores normales de la esfera. Para ello, la esfera puede dividirse en zonas (volúmenes), pudiéndose determinar para cada zona la frecuencia de los puntos (o de los vectores normales) que se encuentran en esta zona. Alternativamente se puede determinar la frecuencia relativa. La información de esta frecuencia, por ejemplo, en forma de histograma, también puede incluirse en el vector de propiedades.
Un ejemplo de procedimientos como éstos por medio de los así llamados descriptores de histograma de puntos rápidos (FPFH) se describe en http://pointclouds.org/documentation/tutorials/fpfh estimation.php, recuperado el 25-05-2018.
Estos vectores de características pueden determinarse especialmente con la ayuda del aprendizaje automático: por ejemplo, una persona experta puede especificar puntos destacados en el modelo 3D, por ejemplo, haciendo clic en los mismos. Estas zonas pueden ser, por ejemplo, puntos en la zona de las bisagras de la montura de un modelo 3D de una montura de gafas que pueden determinarse inequívocamente en todas las monturas de gafas; el software extrae el conjunto de puntos dentro de una esfera alrededor de los puntos seleccionados; el conjunto de puntos y el tipo de punto indicado por el usuario, también denominado etiqueta numérica, se introducen respectivamente como datos de entrenamiento en un procedimiento de aprendizaje automático, por ejemplo, en una red neuronal. La red final entrenada es a continuación capaz de determinar las etiquetas respectivas para los puntos respectivos en una nube de puntos establecida y así identificar los puntos destacados y/o clasificar los puntos. Por ejemplo, los puntos no destacados pueden clasificarse como no relevantes.
Los puntos destacados como éstos representan un volumen de datos comparativamente pequeño, pudiéndose utilizar algoritmos establecidos para la determinación de los puntos destacados. Para más detalles sobre una determinación de este tipo de puntos destacados por medio de descriptores de características 3D, véase, por ejemplo, Samuele Salti, Federico Tombari, Riccardo Spezialetti, and Luigi Di Stefano. 2015. Learning a Descriptor-Specific 3D Keypoint Detector. Proceedings of the 2015 IEEE International Conference on Computer Vision (ICCV) (ICCV '15). IEEE Computer Society, Washington, DC, USA, 2318-2326, DOI=http://dx.doi.org/10.1109/ICCV.2015.267. Las propiedades predeterminadas de este tipo pueden incluir, por ejemplo, una curvatura del modelo en las proximidades de los puntos. Ejemplos de descriptores de características 3D son los así llamados "Fast Point Feature Histograms" (FPFH), como se describe en R.B. Ruso "Semantic 3D Object Maps for Everyday Manipulation in Human Living Environments", tesis doctoral en TU Múnich 2009, página 57 y siguientes.
Por consiguiente, también pueden definirse curvas destacadas. Las curvas destacadas pueden definirse como curvas 3D. La curva 3D es una representación de una curva en un espacio tridimensional. Las curvas 3D pueden almacenarse mediante una lista de puntos 3D; alternativamente, las curvas 3D también pueden representarse como una curva polinómica, en algunos ejemplos de realización con una base ortogonal, por ejemplo, una base polinómica de Legendre. En otros ejemplos de realización, las curvas pueden representarse como curvas spline representadas con la ayuda de funciones de base spline B, como se describe en https://de.wikipedia.org/w/index.php?title=Legendre-Polynom&oldid=172427311 y https://en.wikipedia.org/w/index.php?title=B-spline&oldid=840787047.
Con la ayuda de unas curvas destacadas como éstas puede describirse, por ejemplo, la zona de apoyo de las varillas; en este caso, un punto de la curva puede alinearse con el punto de apoyo en la oreja. En estos ejemplos de realización, la curva forma parte de los metadatos de la montura y recorre, por ejemplo, el lado inferior de las varillas, describiendo toda la zona de apoyo posible.
Por lo tanto, los puntos destacados así determinados pueden a continuación clasificarse en puntos relevantes y no relevantes. Por puntos relevantes se entienden puntos que se utilizan para representar metadatos. Especialmente, los puntos relevantes pueden representar los metadatos necesarios sin redundancia o con la menor redundancia posible.
Por puntos no relevantes se entienden puntos que bien no representan metadatos o bien tienen una relevancia menor, por ejemplo, porque la metainformación representada por el punto no relevante está igualmente representada por otros puntos, es decir, existe una redundancia de información.
En los procedimientos manuales, el usuario puede determinar los puntos relevantes y en los procedimientos automáticos, el número de puntos relevantes puede establecerse como un objetivo; los procedimientos mecanizados no basados en el aprendizaje también pueden determinar una medida de la "particularidad" de cada punto saliente (en inglés “Saliency). Por ejemplo, en caso de uso de curvaturas principales como propiedad de las superficies, el producto de las dos curvaturas principales se puede utilizar como medida. Los procedimientos mecanizados basados en el aprendizaje pueden imitar la selección manual, pudiendo preestablecerse los puntos relevantes mediante la fase de entrenamiento.
De este modo, los pasos siguientes pueden restringirse a los puntos relevantes, de manera que se reduzca la cantidad de datos a procesar. Esta operación puede llevarse a cabo especialmente por medio de procedimientos de aprendizaje supervisado (Supervised Learning), tal y como se describe en el artículo de Wikipedia "Überwachtes Lernen", estado del 8 de marzo de 2017. Aquí, los puntos identificados durante la determinación de los puntos destacados se muestran en una pantalla, por ejemplo, junto con una representación de la montura, y las clases de puntos pueden asignarse manualmente a los puntos respectivos. Estas clases de puntos pueden a continuación vincularse al descriptor de características 3D para el punto respectivo.
Este enlace puede almacenarse como un conjunto de datos para cada montura, por ejemplo, como un archivo XML. Las clases de puntos indican qué elemento de la montura de gafas especifica el punto respectivo o dónde se encuentra el punto respectivo en la montura de gafas. Los ejemplos de clases de puntos incluyen, por ejemplo, "bisagra exterior superior izquierda" para un punto situado en una bisagra de gafas izquierda en el exterior y en la parte superior, "bisagra exterior inferior izquierda" para un punto correspondiente situado en la parte inferior, clases correspondientes para la bisagra derecha, "centro-puente-parte delantera" para un punto central del puente de nariz en el lado delantero, "centro-puente-parte trasera" para un punto en el puente de nariz en el lado trasero, etc. En este caso, el lado delantero es el lado de la montura de gafas que, al colocar la montura de gafas, se separa de la cabeza de la persona que se pone la montura de gafas, y el lado trasero es el lado de la montura de gafas orientado hacia la cabeza de la persona.
En el aprendizaje asistido hay distintos algoritmos posibles para transformar las clases de puntos aprendidas para los puntos destacados en un modelo y para aplicar este modelo, a fin de determinar automáticamente, después de la fase de aprendizaje, la clase de punto respectiva para un punto encontrado con un descriptor de características 3D. A este respecto, véase también "Machine Learning Overview" de Open Source Computer Vision, Docs.opencv.org//3.1.0/dc/dd6/ml_intro.html, estado del 8 de marzo de 2017. Algunos ejemplos de algoritmos son el algoritmo de bosque aleatorio (véase Breiman, Leo. "Random forests". Machine learning 45.1 (2001): 5-32.), por ejemplo, como se implementa mediante la clase "cv::ml::RTrees" de la biblioteca de software "Open CV", que puede utilizarse para el entrenamiento y la clasificación, véase "http://docs.opencv.org/3.1.0/d0/d65/classcv_1_1ml_1_1RTrees.html". Este es un ejemplo del procedimiento de bosque aleatorio. Otro procedimiento de bosque aleatorio se puede introducir en el software Matlab por medio de la clase TreeBagger.
Otro posible algoritmo es el uso de una así llamada "Máquina de Vectores de Apoyo (SVM)", como la que también se proporciona en la biblioteca de software Open CV antes mencionada.
Por medio de algoritmos de este tipo es posible identificar automáticamente los puntos destacados, lo que facilita el procesamiento del modelo 3D de la montura de gafas, dado que después de la fase de entrenamiento ya no es necesaria ninguna entrada del usuario para identificar los puntos destacados.
Preferiblemente, después de identificar y clasificar los puntos destacados, se realiza una transformación de coordenadas. Una transformación de coordenadas de este tipo permite transformar los metadatos de la montura y/o los modelos 3D de la montura para diferentes monturas en un sistema de coordenadas común. De este modo se facilita el procesamiento posterior, dado que se puede partir del mismo sistema de coordenadas para cada montura de gafas.
En algunos ejemplos de realización, una transformación de coordenadas de este tipo se lleva a cabo por medio de un análisis de componentes principales en el conjunto de puntos destacados clasificados como relevantes. El análisis de componentes principales (en inglés “principal component analysis”, PCA) se describe, por ejemplo, en el artículo de Wikipedia https://de.wikipedia.org/wiki/Hauptkomponentenanalyse y https://en.wikipedia.org/wiki/Principal_component_analysis. En caso de un conjunto de puntos X de n puntos en el espacio se puede formar, por ejemplo, una matriz X con n filas y 3 columnas (para las coordenadas x, y y z de los respectivos n puntos). A continuación, se puede examinar la matriz de 3x3 Xt*X y determinar los componentes principales como los mayores vectores propios de esta matriz.
Como una transformación del eje principal se entiende una transformación de coordenadas en el sistema de coordenadas formado por los componentes principales.
Otra posibilidad de transformación de coordenadas consiste en una transformación de coordenadas basada en reglas mediante la asignación fija de un origen de coordenadas y direcciones de ejes de coordenadas sobre la base de los puntos destacados. Por transformación de coordenadas basada en reglas se entiende una combinación lineal de puntos destacados para la definición de los vectores base del sistema de coordenadas objetivo, es decir, el sistema de coordenadas en el que se transforma. Por ejemplo, un punto destacado de la clase "centro-puente-parte delantera" antes mencionada puede servir como origen de coordenadas, y los vectores de diferencia entre los puntos preestablecidos o las combinaciones lineales de los vectores de diferencia de este tipo pueden servir como ejes de coordenadas. Así, como eje de coordenadas se puede utilizar la diferencia de un punto de la clase antes mencionada "bisagra exterior superior derecha" con respecto a un punto de la clase "bisagra exterior superior izquierda". En este caso, puede resultar ventajoso que los puntos destacados se determinen de forma inequívoca y/o que estén en un orden fijo. Este puede ser el caso, por ejemplo, de los puntos determinados manualmente que se determinan, por ejemplo, mediante la selección por parte de un usuario.
En un sistema de coordenadas como éste con un centro del puente de nariz como origen, un plano de simetría de la montura de gafas se desarrolla por este origen. En adelante, se puede suponer en relación con las explicaciones que las varillas de la montura de gafas están orientadas fundamentalmente en la dirección z, que una línea de unión de las bisagras de la montura de gafas es paralela al eje x, y que una dirección y es perpendicular a la misma. En otras palabras, cuando la cabeza se mantiene en una postura erguida, una dirección horizontal correspondiente a una línea de unión de los ojos de la cabeza, especialmente de los centros de las pupilas de los ojos de la cabeza en una dirección de visión cero, se define como una dirección x, una dirección vertical se define como una dirección y, y una dirección perpendicular a las direcciones x e y se define como una dirección z.
En los ejemplos de realización en los que no se conoce la posición de los centros de las pupilas de los ojos de la cabeza en la dirección de visión cero, la línea de unión de los ojos de la cabeza también puede definirse de forma diferente, por ejemplo, por medio de las posiciones de los ojos del modelo 3D.
Por postura erguida de la cabeza se entiende una postura de la cabeza en la que la línea de unión de los ojos está situada en un plano paralelamente al plano frontal de la cabeza y en la que la dirección vertical es paralela a la línea recta de intersección del plano frontal y del plano sagital. El modelo 3D de la cabeza puede disponerse de manera que el modelo 3D de la cabeza se encuentre en una postura erguida.
En https://de.wikipedia.org/w/index.php?title=Frontalebene&oldid=177246560 y https://de.wikipedia.org/w/index.php?title=Transversalebene&oldid=177246519 se definen el planto frontal y el plano sagital.
En algunos ejemplos puede ser posible que el sistema de coordenadas esté unido de forma fija a la cabeza, de manera que, por ejemplo, si la cabeza se inclina, la relación posicional entre el sistema de coordenadas y la cabeza permanezca inalterada, es decir, la dirección x, por ejemplo, se sigue desarrollando de acuerdo con la línea de unión de los ojos de la cabeza. Con otras palabras, la cabeza puede disponerse de forma fija en el sistema de coordenadas.
Aquí, la referencia a la postura erguida de la cabeza sirve para definir el sistema de coordenadas de la dirección x, de la dirección y y de la dirección z. En este caso, el eje z se desarrolla por regla general paralelamente a la dirección de visión cero.
En tal caso, el plano de simetría antes mencionado es el plano y-z. Sin embargo, este sistema de coordenadas sirve sólo como ejemplo, siendo posibles otras disposiciones de los ejes o también un uso de coordenadas esféricas en lugar de coordenadas cartesianas.
En un ejemplo de realización se localizan los componentes predeterminados de la montura de gafas. Especialmente se puede determinar la posición de los puentes de la nariz y de las bisagras de la montura de gafas. Esto puede llevarse a cabo sobre la base de los puntos destacados clasificados que pueden seleccionarse manualmente como ya se ha explicado anteriormente o que también pueden determinarse automáticamente como se ha descrito. Por ejemplo, la posición de las bisagras de las gafas puede determinarse sobre la base de puntos destacados determinados exterior o interiormente en las bisagras, en especial mediante puntos de clases como "bisagra exterior superior izquierda" y "bisagra exterior inferior izquierda", como se ha descrito antes. En un ejemplo de realización, el cálculo de un punto de eje de bisagra se realiza como un valor medio de puntos destacados de este tipo. Especialmente puede calcularse un punto de eje de bisagra a la izquierda según
bisagra-punto de eje-izquierda = / * (bisagra-exterior-superior-izquierda bisagra-exterior-inferior-izquierda bisagra-interior-superior-izquierda bisagra-interior-inferior-izquierda),
indicando bisagra-punto de eje-izquierda la posición de un punto de eje de bisagra en un lado izquierdo de la montura de gafas, e indicando bisagra-exterior-superior-izquierda, bisagra-exterior-inferior-izquierda, bisagra-interior-superiorizquierda y bisagra-interior-inferior-izquierda los puntos destacados de las clases de puntos correspondientes, es decir, los puntos situados en el exterior en la bisagra izquierda de las gafas, arriba a la izquierda, abajo a la izquierda y respectivamente en el interior y en el exterior (en un lado interior de la montura de gafas, es decir, hacia el puente de nariz, y en un lado exterior de la montura de gafas, es decir, separado del puente de nariz). Para el punto de eje de bisagra derecha se puede utilizar una fórmula correspondiente, sustituyéndose los puntos del lado izquierdo por puntos del lado derecho. De este modo es posible la determinación de un punto de eje de bisagra que se encuentra en el eje de bisagra en el interior de la montura de gafas sobre la base de los puntos visibles desde el exterior.
El puente de la nariz puede definirse de manera similar como un promedio de puntos de las clases "centro-puenteparte delantera" y "centro-puente-parte trasera", como ya se ha explicado con anterioridad.
En algunos ejemplos de realización, para la determinación de los metadatos de la montura se lleva a cabo una segmentación del modelo 3D de la montura en componentes, pudiendo comprender los componentes especialmente componentes para las varillas de las gafas y componentes que describen la montura de gafas sin tener en cuenta las varillas. Por segmentación de un modelo 3D se entiende una división de la información en subconjuntos, por ejemplo, de nubes de puntos 3D en subconjuntos de nubes de puntos 3D.
Gracias a una segmentación de este tipo es posible analizar los distintos componentes por separado para determinar los metadatos de la montura, lo que reduce la cantidad de datos a procesar. En este caso, la segmentación puede realizarse especialmente sobre la base de los puntos destacados y/o sobre la base de la localización del puente de la nariz y/o de las bisagras, como se ha explicado antes.
Con esta finalidad se pueden definir planos de sección en el espacio que dividan los puntos (vértices) o vóxeles del modelo 3D.
En este caso, los planos de sección pueden definirse mediante un punto de apoyo respectivo p y un vector normal n perpendicular al plano. Aquí, el punto de apoyo p se refiere a un punto de apoyo para un plano que caracteriza de forma inequívoca la posición del plano con respecto al origen del sistema de coordenadas junto con el vector normal n. El punto de apoyo puede ser un vector. Igualmente, las coordenadas pueden representarse como vectores desde el origen del sistema de coordenadas hasta las coordenadas del punto. En tal caso, a un vértice o vóxel del modelo 3D, cuya posición está definida por las coordenadas v (de acuerdo con la representación de coordenadas cartesiana del punto), se les aplica <v, n> < <p, n> o <v, n> > <p, n>. En este caso, <,> se refiere al producto escalar euclidiano. Por producto escalar se entiende el producto escalar euclidiano, aunque también pueden aplicarse productos escalares definidos de forma diferente. El vector normal n se normaliza aquí a una longitud de 1, es decir, <n, n> = 1.
Dependiendo de cuál de las dos relaciones se aplica, el punto v se encuentra en un lado u otro del plano de sección. De este modo es posible una segmentación sencilla en los componentes según el tercer aspecto de la invención, pero sin limitarse al mismo.
En este procedimiento, para la segmentación de la montura de gafas puede utilizarse como punto de apoyo el plano de sección del respectivo punto de eje de bisagra que puede determinarse como se ha descrito antes. Como vector normal para el plano de sección puede servir el eje z del sistema de coordenadas en la transformación de coordenadas anterior, es decir, la dirección en la que se desarrollan las varillas de las gafas. Los vértices o vóxeles, a los que se les aplica <v, n> < <p, n> definen la respectiva varilla de las gafas.
A continuación se pueden calcular otros metadatos sobre la base de los componentes así segmentados a partir del modelo 3D de la montura de gafas. Por ejemplo, la zona de apoyo antes citada de la información de apoyo se puede calcular sobre la base de las varillas segmentadas a partir del modelo 3D de la montura de gafas. Al utilizar los componentes segmentados es necesario utilizar menos datos para determinar los metadatos que si se utilizara el modelo 3D completo, con lo que es posible acelerar el cálculo.
Para la determinación de la zona de apoyo se puede utilizar el siguiente procedimiento para cada una de las varillas segmentadas a partir del modelo 3D de la montura de gafas:
En primer lugar se determinan un punto inicial a y un punto final b de la respectiva varilla a partir de la respectiva varilla segmentada del modelo 3D de la montura de gafas. En este caso, el punto inicial a y el punto final b de la varilla significan el punto inicial y el punto final de la zona prevista como zona de apoyo de la oreja. En el sistema de coordenadas antes citado, el punto de la varilla segmentada, que presenta un valor mínimo del componente z, puede ser el punto inicial a y un punto, que presenta un valor máximo del componente z, puede ser el punto final b. La determinación puede llevarse a cabo de forma manual, por ejemplo, mediante la selección por parte del usuario a partir del modelo 3D, o basada en reglas, por ejemplo, requiriéndose una distancia fija con respecto al punto de apoyo en ambas direcciones o como una distancia relativa requerida con respecto a los extremos de las varillas.
A continuación se determina una zona de apoyo potencial de la oreja. Los componentes Z de los planos que limitan esta zona de apoyo potencial de la oreja pueden utilizarse como una relación predeterminada a y p con respecto a la longitud de la varilla en la dirección z, de manera que se aplique:
Figure imgf000010_0001
siendo aquí a y p valores predeterminados que pueden preestablecerse, por ejemplo, por parte del fabricante para una montura de gafas respectiva o que también pueden determinarse como valores empíricos a partir de muchas monturas de gafas. a puede ser de entre 0,3 y 0,6, por ejemplo, a = 0,47, y p puede ser de entre 0,6 y 0,9, por ejemplo, p = 0,76.
az es el componente z del punto a, e Iz es la longitud de la varilla en la dirección z correspondiente a bz - az . vz es el componente z de un vértice o de un vóxel del modelo 3D. Los vértices o vóxeles, a los que para su componente z Vz se les aplica la relación anterior, pertenecen a la zona de apoyo potencial de la oreja, es decir, en relación con estos vértices o vóxeles se aplica:
vz > a x Iz az y
vz < (3 x Iz az _
La zona de apoyo puede aquí determinarse como un conjunto de puntos de apoyo o como una curva de apoyo por medio de un cálculo de ventana gradualmente deslizante (sliding window). Por un conjunto de puntos de apoyo se entiende el conjunto de puntos que forman la zona de apoyo o un subconjunto de los mismos.
Una curva de apoyo es una representación de los puntos de apoyo como una curva 3D. Por ventana se entiende una zona tridimensional determinada en la que se consideran los puntos. Para ello, una ventana de anchura fija (por ejemplo, una anchura de entre 0,5 mm y 3 mm, por ejemplo, 1 mm en la dirección z) se desplaza en la dirección z y una anchura de paso fija (por ejemplo, también de entre 0,5 mm y 3 mm, por ejemplo, aproximadamente de 1 mm) se desplaza sobre la zona de apoyo potencial de la oreja. Para cada posición de la ventana se determina en primer lugar el conjunto de vértices o vóxeles de la zona de apoyo potencial que se encuentran en la ventana. A continuación, para cada uno de estos vértices o vóxeles se forma el producto escalar s con un vector de dirección d, s = <v, d>, indicando v de nuevo las coordenadas del vértice o del vóxel.
Por regla general, un máximo s de estos productos escalares s se asigna de forma inequívoca a un vértice o a un vóxel asignados con las coordenadas v . Si en una ventana están presentes varios productos escalares máximos, se toma como vértice o vóxel v para esta ventana un vértice o vóxel predeterminado, por ejemplo, el que se calcula en primer lugar con el valor máximo. El conjunto de las coordenadas v así encontradas para todas las ventanas, ordenadas, por ejemplo, según el valor z ascendente, da lugar a una disposición de puntos que caracteriza la zona de apoyo según el quinto aspecto de la invención, pero sin limitarse al mismo, como una curva de apoyo. Esta curva puede, en los ejemplos de realización, suavizarse mediante filtros, por ejemplo, por medio de un filtro de Gauss, o una curva se puede adaptar a los puntos, por ejemplo, puede realizarse una aproximación spline mediante splines B, como se describe en el artículo de Wikipedia "Spline", estado del 9 de marzo de 2017.
En este caso se supone que el vector de dirección d es un vector normalizado, es decir, <d, d> = 1. Éste puede elegirse de forma fija para la varilla izquierda y la varilla derecha respectivamente. Un ejemplo para un vector de dirección elegido de forma fija sería el vector (0, -1, 0) en el sistema de coordenadas antes definido. En este caso, el punto de apoyo sería siempre el punto más bajo de la varilla. La posición de la varilla es más precisa si la curva de apoyo se dirige hacia el interior, por ejemplo,
d=(cos(o), sin(o), 0) para o = 30° para la varilla derecha y
d=(-cos(o), sin(o), 0) para o = 30° para la varilla izquierda.
En algunos ejemplos de realización, los metadatos de la cabeza incluyen un punto de apoyo para la oreja que se elige, por ejemplo, mediante una selección manual de un punto en una representación de las orejas del modelo. En este caso, para la determinación del vector de dirección d se puede elegir en el modelo 3D de la cabeza una ventana alrededor de este punto de apoyo de oreja, por ejemplo, todos los vértices o vóxeles que presenten un valor z que esté como máximo a una distancia predeterminada, por ejemplo, como máximo entre 0,25 mm y 1 mm, por ejemplo, como máximo a 0,5 mm, de este punto de apoyo de oreja. A continuación se determina el valor medio de este vértice de todos los vértices de la ventana, definiéndose como vector de dirección d el vector diferencial normalizado del punto de apoyo de la oreja menos el valor medio.
De este modo es posible determinar automáticamente una curva de apoyo como zona de apoyo de una manera relativamente sencilla y a continuación utilizarla en otros pasos del procedimiento para posicionar la montura de gafas en la cabeza, como se explicará con mayor detalle más adelante.
Para acelerar la adaptación, los metadatos de montura pueden comprender además los puntos de apoyo de oreja previstos en las varillas que pueden seleccionarse manualmente. Estos puntos de apoyo de oreja previstos pueden servir como punto de partida al posicionar virtualmente las gafas, es decir, las gafas se colocan en primer lugar con estos puntos en las orejas. Esta operación puede acelerar el posicionamiento virtual.
Además, en el caso de las monturas de gafas que presentan almohadillas de nariz, los metadatos pueden incluir puntos que señalan la posición de unas almohadillas de nariz de este tipo. Estos puntos también pueden seleccionarse manualmente o determinarse mediante aprendizaje automático.
Por ejemplo, se puede suponer que un punto seleccionado por el usuario es el centro de la almohadilla de nariz. Alrededor del mismo se puede trazar una esfera con un radio predeterminado, por ejemplo, con un radio de 6 mm. A continuación, los puntos situados dentro de esta esfera pueden, como se ha descrito antes, analizarse por medio de un análisis de componentes principales.
Especialmente, para analizar estas nubes de puntos, el centro de la esfera puede restarse de las coordenadas de la nube de puntos antes del análisis, a fin de obtener un conjunto de puntos centrado en un origen. De este modo se puede simplificar el análisis posterior.
Los metadatos de la montura pueden comprender además información de flexión sobre la capacidad de flexión de la montura, especialmente de las varillas de las gafas. Con una información como ésta, las gafas se pueden adaptar virtualmente a la cabeza mediante flexión durante el posicionamiento virtual, pudiendo aplicarse estos ajustes a una montura de gafas real correspondiente. Ejemplos de una información de este tipo son, por ejemplo, una información sobre si es posible, y en qué medida, una rotación sobre los ejes de bisagra (por ejemplo, en caso de monturas de plástico con bisagras amortiguadas). Las bisagras de las gafas tienen un tope (por ejemplo, en la apertura máxima de 180 grados). Este tope puede realizarse con algunas bisagras por medio de un resorte, de manera que sea posible una apertura más allá de los 180 grados. Si el tope se fija sin resorte, la varilla se deforma al abrirse. En la información se codifica como, por ejemplo, un tipo de bisagra (es decir, fija o amortiguada). Adicionalmente se codifica la flexibilidad de la varilla; en caso de bisagras amortiguadas se utiliza un modelo rígido de la varilla. Otro ejemplo es una información sobre un posible ajuste de la inclinación en la varilla de las gafas, es decir, una rotación de las varillas alrededor del eje x relativamente con respecto al resto de la montura de gafas. Esto es posible en muchas monturas metálicas doblando las varillas en las bisagras hacia arriba o hacia abajo.
Esta información también puede indicar que no es posible ningún ajuste de la inclinación. La información puede ser, por ejemplo, información de sí/no (ajuste de la inclinación posible o no) o también un rango angular dentro del cual se puede modificar la inclinación.
Además puede definirse un doblado hacia arriba de las propias varillas, por ejemplo, mediante una función de flexión. Por ejemplo, una función de doblado como ésta puede describir un polinomio multivariado sobre el eje z y un desplazamiento en las direcciones x y xy. Además, la deformación del borde de montura de la montura de gafas causada por un doblado hacia arriba de las varillas también puede modelarse, por ejemplo, mediante un polinomio multivariado o una función spline multivariada (por ejemplo, producto tensorial de una base B-spline, véase De Boor, Carl, et al. "A practical guide to splines". Vol. 27. Nueva York: Editorial Springer, 1978, capítulo XVII).
Este tipo de doblado hacia arriba es especialmente posible con varillas finas o varillas muy elásticas.
La información anterior puede proporcionarse para doblar y adaptar las varillas de las gafas en diferentes direcciones, por ejemplo, en las direcciones x e y según el sistema de coordenadas anterior.
A continuación se tratan variaciones y posibilidades de determinación para los metadatos de la cabeza de acuerdo con las distintas formas de realización.
Preferiblemente, los metadatos de la cabeza comprenden una posición de los ojos que puede utilizarse para una orientación horizontal de la montura de gafas. Estos metadatos indican, por ejemplo, la posición de los ojos, por ejemplo, de las pupilas, especialmente los centros de las pupilas, en la dirección de visión cero (véase norma DIN EN ISO 13666:2013-10, 5.33), como coordenadas de puntos. Como ya se ha mencionado, los metadatos de la cabeza pueden incluir además puntos de apoyo para la oreja que indican un punto de apoyo de las varillas de las gafas en las orejas. También son posibles otros puntos de posicionamiento que indican un punto de apoyo de la montura de gafas en la cabeza, por ejemplo, un punto de posicionamiento en la nariz de la cabeza. Gracias a estos metadatos es posible un posicionamiento sencillo de las varillas en las orejas.
Además, los metadatos de la cabeza pueden comprender un punto de posicionamiento y/o una descripción del puente de la nariz, por ejemplo, en forma de una curva 3D que describe una zona del puente de nariz, también denominada zona de puente de nariz. Estos metadatos pueden servir para el posicionamiento aproximado de la montura de gafas en la cabeza. En este caso, el punto de posicionamiento es un punto situado junto a o en la nariz en el modelo 3D de la cabeza que puede alinearse con el mencionado punto de apoyo de los metadatos de montura, especialmente con un posicionamiento aproximado.
Como ya se ha comentado anteriormente, los metadatos de cabeza de este tipo pueden determinarse manualmente para los metadatos de montura, por ejemplo, mediante la selección de los puntos o de las curvas correspondientes en una representación de la cabeza sobre la base del modelo 3D. No obstante, éstos también pueden determinarse total o parcialmente de forma automática, por ejemplo, con el aprendizaje automático, como ya se ha comentado.
En otras formas de realización, además del modelo 3D de la cabeza, se utilizan datos de imágenes bidimensionales de la cabeza para la determinación automática de los metadatos de la cabeza. Las imágenes 2D de este tipo están disponibles de todos modos si el modelo 3D se crea mediante imágenes de cámara de la cabeza desde varias posiciones calibradas. Posiciones calibradas significa que se conocen las posiciones de las capturas de imágenes, de manera que el modelo 3D pueda calcularse sobre la base de las imágenes tomadas y de las posiciones. Alternativamente se pueden generar imágenes 2D a partir del modelo 3D con textura mediante la síntesis de imágenes (también llamada renderización). Se puede encontrar información al respecto, por ejemplo, en el artículo "Bildsynthese" de Wikipedia, estado del 10 de marzo de 2017.
En las imágenes 2D como éstas, los rasgos faciales de la persona, como los párpados, las cejas, el puente de la nariz, los ojos y similares, pueden identificarse por medio de procedimientos de reconocimiento de imágenes (también denominados detectores de objetos). Los procedimientos adecuados para este fin se ponen a disposición, por ejemplo, en la biblioteca de software "dlib", "http://blog.dlib.net/2014/08/real-time-face-pose-estimation.html", estado del 10 de marzo de 2017, o se describen en V. Kazemi et al, "One Millisecond Face Alignment with an Ensemble of Regression Trees", X. Zhu et al, "Face detection, pose estimation and landmark localization in the wild", CVPR 2012, también expuesto en la página principal del primer autor "https://www.ics.uci.edu/~xzhu/face/", estado del 10 de marzo de 2017. Estos puntos o zonas en la imagen bidimensional así identificados se proyectan a continuación en el modelo 3D (por ejemplo, la malla 3D) de la cabeza, estando así disponibles como puntos 3D como metadatos de la cabeza. En una forma de realización preferida, para la proyección se utiliza una matriz de proyección inversa. En este caso, la matriz de proyección se compone de una transformación de cuerpo sólido del sistema de coordenadas del modelo, por ejemplo, de la malla 3D, en el sistema de coordenadas de cámara de la cámara utilizada y de la matriz de cámara. Si, como se ha descrito antes, se utiliza un dispositivo de cámara con posiciones calibradas para la toma de imágenes para la captura del modelo 3D, así como de la imagen 2D, estas matrices se proporcionan o determinan a partir de las imágenes tomadas en el marco de la determinación del modelo 3D. (Véase Richard Hartley and Andrew Zisserman.
2000. Multiple View Geometry in Computer Vision. Cambridge University Press, Nueva York, NY, Estados Unidos). La proyección puede así realizarse rápidamente, dado que las matrices necesarias ya se conocen a partir de la determinación del modelo 3D. En una forma de realización alternativa, los rasgos faciales en las imágenes 2D también pueden marcarse a mano, para lo cual la imagen 2D puede representarse en una pantalla. También son posibles formas mixtas, en las que los rasgos faciales, como ya se ha explicado, se determinan automáticamente y en las que aún se puede llevar a cabo a continuación una corrección manual.
Según la invención, la zona del puente de nariz antes mencionada se pone a disposición como una curva 3D. Como ya se ha descrito antes, con esta finalidad puede utilizarse un procedimiento correspondiente al procedimiento para la determinación de la zona de apoyo de las varillas de las gafas. Especialmente puede utilizarse el procedimiento antes descrito con una ventana deslizante, pudiendo ser el vector de dirección d de las fórmulas anteriores una dirección de la cabeza (que puede ser, por ejemplo, un eje de coordenadas como el eje z del modelo 3D) orientada hacia atrás en la dirección de la cabeza. Esta dirección puede incluirse también en la determinación de la cabeza. El vector de dirección d corresponde aquí a la dirección del giro de la cabeza o a la dirección de la mirada, tal como se describe en la solicitud de patente europea 17153559.4, que pueden determinarse mediante un dispositivo de centrado revelado en la solicitud de patente europea 17153556. 0; la dirección de desplazamiento de la ventana es aquí el eje y del modelo 3D de la cabeza (es decir, el eje vertical); se utilizan todo el modelo de la cabeza o una sección mediante la coordenada y del valor medio de la posición de la pupila y mediante la coordenada y de la punta de la nariz (determinada como v_max) para la que el producto escalar s = (v, d) se maximiza (al igual que antes).
Como también sucede en relación con la zona de apoyo, aquí también es posible llevar a cabo un filtrado, por ejemplo, mediante filtros de Gauss, y/o una aproximación spline.
Aquí, como parametrización de la curva del puente de nariz se utiliza el intervalo en el eje y. Así se obtiene una función que proporciona para cada valor y el punto 3D correspondiente en el puente de la nariz.
En tal caso, el punto de posicionamiento antes mencionado puede determinarse especialmente según el quinto aspecto de la invención, pero sin limitarse a este aspecto de la invención, sobre la base de esta curva 3D para la zona del puente de nariz. Para ello, en una forma de realización, un plano, en el que se encuentra una línea de unión de las posiciones de los ojos del modelo 3D y en el que se encuentra la dirección de visión, se cruza con la curva 3D, también denominada curva del puente de nariz, que sirve de punto de partida s para la determinación del punto de apoyo. En las proximidades de este punto s, por ejemplo, dentro de una zona predeterminada (de una distancia predeterminada, por ejemplo ± 3 mm, ± 2 mm, etc.), se determina el punto de la curva del puente de nariz que tiene el valor más pequeño en la dirección de visión, es decir, que se encuentra más atrás (dirección de la parte trasera de la cabeza del modelo 3D). Al valor y de este punto se le puede añadir además un desplazamiento fijo en la dirección y, a fin de determinar el valor y, y para, mediante la parametrización anterior de la curva, determinar el punto de posicionamiento. De este modo es posible determinar un punto de posicionamiento que, junto con el punto de apoyo de los metadatos de montura, se puede utilizar para un posicionamiento inicial de la montura de gafas que se encuentre relativamente cerca de una posición final, lo que puede acelerar una optimización posterior.
En tal caso, los metadatos de la cabeza pueden almacenarse junto con el modelo 3D de la cabeza, por lo que se pueden utilizar para diferentes monturas. Así no son necesarios nuevos cálculos de los metadatos de la cabeza para diferentes monturas.
El posicionamiento virtual sobre la base de los metadatos puede comprender preferiblemente un posicionamiento aproximado sobre la base de los metadatos para proporcionar un punto inicial para la posterior adaptación. Aquí, especialmente el mencionado punto de posicionamiento en el puente de la nariz puede alinearse con el punto de apoyo de la montura de gafas. En este caso, el eje z de la montura (es decir, la dirección de las varillas de las gafas) puede hacerse coincidir con un eje correspondiente del modelo 3D de la cabeza que indica la dirección de visión.
Después de esta parte del posicionamiento aproximado, en una forma de realización, la montura puede girarse alrededor del eje x, es decir, la inclinación hacia adelante de la montura puede modificarse, de manera que la zona de apoyo de las varillas se apoye en los puntos de apoyo de las orejas. Esta operación se lleva a cabo en primer lugar por separado para cada varilla. Para ello, en una forma de realización se calcula una sección de la zona de apoyo con una superficie cilíndrica, coincidiendo el eje de cilindro con el eje de rotación de la montura (el eje x en el sistema de coordenadas anterior). En este caso, el eje de rotación se desarrolla por el punto de apoyo. El radio del cilindro es la distancia desde el respectivo punto de apoyo de la oreja hasta el eje de rotación. El punto de intersección en el cilindro determina directamente el ángulo para inclinar la montura hacia adelante o hacia atrás. En este caso, la sección de cilindro puede calcularse mediante la sección iterativa de los cilindros lineales. Aquí, la zona de apoyo (por ejemplo, la curva de apoyo antes determinada) puede utilizarse en primer lugar en una representación de segmento más gruesa, es decir, con menor resolución, a fin de acelerar el cálculo. En el caso más sencillo, por ejemplo, la línea de unión entre el punto inicial a y el punto final b antes mencionados puede utilizarse como representación de segmento aproximada.
Esta determinación por medio de una sección iterativa de cilindros lineales puede realizarse como sigue: se supone que el punto de intersección de esta línea de unión con el cilindro se identifica con una S. En tal caso, en un refinamiento iterativo, la coordenada z zs de S se utiliza para determinar un punto de curva real correspondiente. Éste ya no se encuentra en la superficie del cilindro, pero aún se puede utilizar como una aproximación para determinar el ángulo. Adicionalmente, ahora es posible realizar otro paso de iteración. Aquí se utilizan los puntos k(zS - e) y k(zS + e) en la curva con una distancia e alrededor de zs que en una próxima iteración actúan como nuevos puntos iniciales y finales en lugar de a y b.
Después de este posicionamiento tiene lugar un doblado de la montura, para lo cual se utiliza la información de flexión antes mencionada de los metadatos de montura que describen una capacidad de flexión de la montura.
Con esta finalidad puede utilizarse de nuevo el procedimiento antes descrito con secciones de cilindro. Si la información de flexión, como se ha comentado antes, es una función de flexión multivariada, se puede realizar una optimización en la que como función de coste se utiliza una distancia del punto de apoyo de la oreja desde la zona de apoyo de la varilla. En este caso, una función de coste es generalmente una función que varía en dependencia de uno o varios parámetros a optimizar y que se lleva a un máximo o a un mínimo para su optimización. Aquí, el parámetro de la función de flexión responsable de la fuerza de flexión se elige como parámetro a optimizar. En caso de una función de flexión polinómica simple para el doblado hacia arriba en la dirección x, también es posible una aproximación de la función inversa matemática mediante un polinomio. Para ello, la función de flexión Dz (x) se modela aditivamente como un polinomio para una flexión en la dirección x en el punto z; su función inversa Dz-1(d) también se aproxima mediante un polinomio, por ejemplo, explorándose la función en los distintos puntos discretos [x1,x2,. . .,xn] y realizándose una nueva aproximación polinómica en [Dz (x1), Dz (x2),. . . , Dz (xn)] con los valores [Dz-1(Dz (x1)), Dz-1(Dz(z2)) ,. . . , Dz-1(Dz(xn))]. En este caso, el doblado hacia arriba de la curva de apoyo en el valor x del punto de fijación de la oreja puede determinarse directamente aplicándose la función inversa para z=posición de apoyo y x=diferencia de la fijación de la oreja con respecto al punto de apoyo.
La flexión de la montura también puede llevarse a cabo adaptándose la inclinación en la varilla mediante rotación en la dirección z (es decir, una flexión de la varilla alrededor del eje x). Aquí también puede utilizarse de nuevo el método de corte del cilindro antes descrito, utilizándose el punto de fijación de la oreja para la construcción del cilindro y cortándose con la curva de apoyo.
En una forma de realización según el primer aspecto de la invención, pero sin limitarse a este aspecto de la invención, el posicionamiento preciso de la montura se limita al menos fundamentalmente a un plano x-y. En este caso, por un plano x-y se entiende un plano que se extiende paralelamente a la dirección x, así como a la dirección y, y que, por consiguiente, está formado por dos vectores, uno en la dirección x y otro en la dirección y, y siendo, por lo tanto, perpendicular a la dirección z. Un vector en la dirección z es en tal caso un vector normal del plano x-y. Un desplazamiento en el plano x-y también puede denominarse desplazamiento en la dirección x-y. En especial, el plano x-y puede comprender el punto de anclaje de la montura de gafas después del posicionamiento aproximado.
En este caso, la limitación del posicionamiento preciso, al menos fundamentalmente, al plano x-y significa que un cambio de posición en la dirección z no es al menos más del 10% o no más del 5% de un cambio de posición en el plano x-y, pudiendo ser especialmente también 0. Aquí, la montura se desplaza en la dirección x-y hasta que no se produzca ninguna colisión entre el modelo 3D de la montura de gafas y el modelo 3D de la cabeza.
Una modificación de la posición de la montura de gafas puede realizarse mediante el desplazamiento de la montura de gafas.
Por un desplazamiento de la montura de gafas se entiende un movimiento de traslación de la montura de gafas que puede caracterizarse por un vector de desplazamiento. El vector de desplazamiento puede describir el desplazamiento entre la posición inicial de la montura de gafas obtenida mediante el posicionamiento aproximado y la posición de la montura de gafas al final del paso de posicionamiento preciso.
La longitud del vector de desplazamiento puede denominarse distancia de desplazamiento. Aquí, en algunas formas de realización, un desplazamiento de la montura de gafas puede desarrollarse por una primera distancia en el plano x-y y un desplazamiento de la montura de gafas puede desarrollarse por una segunda distancia a lo largo de la dirección z. Como se ha descrito antes, el desplazamiento puede limitarse al menos fundamentalmente al plano x-y. Por ejemplo, esto puede significar que, en algunos ejemplos de realización, la segunda distancia no es mayor que el 10% de la primera distancia. En algunos ejemplos de realización, la segunda distancia no es superior al 5% de la primera distancia. En algunos ejemplos de realización, la segunda distancia es el 0% de la primera distancia.
Para este posicionamiento preciso, la superficie del modelo 3D de la cabeza puede reducirse ligeramente (por ejemplo, entre 0,3 mm y 1 mm), a fin de tener en cuenta una deformación de la piel en las superficies de apoyo de la montura de gafas. De este modo, se puede proporcionar una adaptación más realista. En este caso, la ausencia de una colisión significa que el modelo 3D de la montura y el modelo 3D de la cabeza no presentan ninguna zona común en el espacio. Después del posicionamiento preciso se puede volver a realizar el proceso de doblado citado para mejorar aún más la adaptación.
En una forma de realización preferida, después de este paso se puede determinar una idoneidad principal de la montura de gafas para la cabeza respectiva, comprobando si un borde inferior de la montura de gafas choca en los modelos respectivos con una zona de la mejilla de la cabeza.
En caso de monturas con almohadillas de nariz, como ocurre a menudo en las monturas de metal, el posicionamiento virtual puede comprender además un posicionamiento de las almohadillas de nariz. En un ejemplo de realización, esta adaptación se modela como una rotación de las almohadillas de la nariz alrededor de un centro de rotación. Para ello, las almohadillas de la nariz pueden segmentarse de la parte restante de la montura de gafas, lo que puede llevarse a cabo como se ha mencionado antes. Esta adaptación se puede mostrar después del doblado antes citado. El posicionamiento preciso puede realizarse de nuevo cada vez que se cambien las almohadillas de la nariz.
Como ejes de rotación pueden elegirse ejes principales de las almohadillas de la nariz que pueden determinarse, por ejemplo, utilizando el análisis de componentes principales antes citado. La rotación puede limitarse a dos ángulos en torno a los dos ejes principales resultantes del análisis de componentes principales con respecto a los valores propios más altos. Como función de coste para una optimización de la posición de las almohadillas de la nariz, puede utilizarse un valor recíproco de la superficie en la que las almohadillas de la nariz entran en contacto con la nariz para conseguir un apoyo lo más amplio posible. De este modo, también se puede adaptar virtualmente la posición de las almohadillas de la nariz que, a continuación, se puede aplicar a la montura real. De este modo, la adaptación de las almohadillas de la nariz a la montura real en la cabeza real apenas es necesaria o sólo es necesaria en una muy pequeña medida.
En algunas formas de realización, al llevar a cabo esta variación de la inclinación se puede preestablecer una inclinación hacia adelante determinada (por ejemplo, 9°). En tal caso, esta inclinación hacia adelante fija se mantiene mediante la modificación de la inclinación, incluso si las gafas se desplazan posteriormente, como se tratará más adelante con mayor detalle.
La visualización de la cabeza con la montura de gafas colocada sobre la misma puede realizarse mediante técnicas convencionales de síntesis de imágenes, véase el artículo de Wikipedia sobre síntesis de imágenes mencionado anteriormente. Con esta finalidad se pueden utilizar como textura las imágenes de la cámara que también sirvieron para la creación del modelo 3D, dado que esto proporciona una impresión de imagen natural. Para la síntesis de imágenes se puede ajustar o preestablecer una iluminación, pudiéndose llevar a cabo la síntesis de imágenes, por ejemplo, mediante el así llamado Raytracing (trazado de rayos), véase el artículo de Wikipedia "Ray Tracing", estado del 10 de marzo de 2017.
Para ello, al tomar las imágenes de la cabeza se pueden utilizar fuentes de luz virtuales correspondientes a una iluminación ambiental. Preferiblemente, esta iluminación ambiental se determina al capturar las imágenes. Para determinar esta iluminación ambiental, en el sistema de cámaras que se utiliza para la toma de imágenes para la creación del modelo 3D de la cabeza se puede utilizar especialmente una cámara panorámica (es decir, una cámara panorámica con un gran ángulo de imagen) que registra el entorno, a fin de identificar las fuentes de luz. En otras formas de realización, los sistemas de este tipo de toma de imágenes para la creación del modelo 3D pueden presentar un dispositivo de iluminación en una posición conocida que a continuación también se utiliza como la posición de una iluminación para la síntesis de imágenes. En esta síntesis de imágenes se pueden tener en cuenta lentes de gafas en la montura para proporcionar al observador una impresión de imagen lo más natural posible. En este caso, se pueden tener en cuenta especialmente los reflejos que resultan al usar capas reflectantes. En una forma de realización preferida están disponibles modelos para diferentes tipos de capas antirreflectantes, así como modelos para diferentes tipos de cristal, a fin de proporcionar al usuario una impresión sobre las diferentes capas. En la síntesis de imágenes, el efecto de las capas antirreflectantes aparece, especialmente, en forma de reflejos en la vista lateral.
El procedimiento puede comprender además una modificación de la posición de la montura de gafas sobre la base de entradas del usuario. Así, el usuario puede adaptar el ajuste de unas gafas conforme a sus preferencias, o bien un óptico puede realizar modificaciones. Con esta finalidad se puede proporcionar al usuario una superficie de usuario adecuada; por ejemplo, la navegación puede realizarse mediante movimientos de ratón o tocando una pantalla sensible al tacto (touchpad).
El procedimiento puede combinarse con otros procedimientos para la adaptación de gafas, por ejemplo, procedimientos de centrado como los descritos, por ejemplo, en la solicitud de patente europea número 17153560.2. En este caso es posible realizar un centrado virtual de acuerdo con los procedimientos aquí descritos después de la adaptación antes descrita de la montura, lo que mejora la precisión del centrado.
Si, en esta interacción, el usuario elige un punto de colocación de la montura de gafas en la nariz que difiere del punto de colocación de los metadatos, el punto de colocación de los metadatos puede modificarse al punto de colocación seleccionado por el usuario. En caso de una adaptación virtual de otras monturas se puede utilizar este punto de colocación modificado preferido por el usuario.
Durante la interacción, el usuario puede girar el modelo y verlo desde un lado. Durante esta operación, el giro puede limitarse de manera que, por ejemplo, no se puedan ver las zonas sin textura, como una parte posterior de la cabeza del usuario. Para ello, en caso de un movimiento en dirección a la parte posterior de la cabeza, por ejemplo, una posición de visualización virtual puede aproximarse al modelo 3D de la cabeza, y/o la sensibilidad del movimiento con respecto a la entrada del usuario (puntero del ratón, touchpad y similares) puede disminuir cuando se gira en dirección a la parte posterior de la cabeza. El usuario puede además girar la montura alrededor del eje x-y para tener en cuenta las asimetrías de la cara.
El procedimiento antes citado puede realizarse por medio de un dispositivo para la adaptación virtual de unas gafas que presenta un procesador y una pantalla, ejecutándose en el procesador un programa informático correspondiente con un código de programa para la realización del procedimiento. El programa informático puede almacenarse en una memoria del dispositivo o también puede ponerse a disposición a través de una nube. En este caso hay que tener en cuenta que el dispositivo informático también puede implementarse mediante un sistema distribuido que presenta varios componentes separados distintos. Por ejemplo, el cálculo de los metadatos o el cálculo del modelo de la cabeza a partir de los datos de imagen registrados puede realizarse en un ordenador comparativamente potente, por ejemplo, un servidor externo, que también puede presentar coprocesadores como procesadores gráficos. Mediante el uso de los metadatos, el posicionamiento de las gafas en la cabeza y la posterior representación son menos intensivos desde un punto de vista computacional, de manera que ambas operaciones también puedan llevarse a cabo en unidades menos potentes como, por ejemplo, terminales móviles como tabletas o teléfonos inteligentes, en los correspondientes programas de aplicación o también a través de internet por medio de un navegador.
La invención se explica a continuación más detalladamente por medio de ejemplos de realización preferidos con referencia a los dibujos adjuntos. Se muestra en la:
Figura 1A un dispositivo para la adaptación virtual de unas gafas según un ejemplo de realización,
Figura 1B un ejemplo de una implementación de un dispositivo de cámara de la figura 1 A,
Figura 2 un diagrama de flujo de un procedimiento según un ejemplo de realización,
Figuras 3A a 3D vistas para la ilustración de modelos 3D de una cabeza,
Figura 4 un diagrama para la ilustración de un modelo 3D de una montura de gafas,
Figura 5 un diagrama de flujo de un procedimiento para la determinación de los metadatos de montura según un ejemplo de realización,
Figuras 6A y 6B representaciones para la ilustración de la determinación manual de metadatos,
Figuras 7A y 7B representaciones de monturas de gafas,
Figura 8 un diagrama de flujo de un procedimiento para la determinación de una curva de apoyo,
Figura 9 un diagrama de flujo de un procedimiento para la adaptación de gafas,
Figuras 10A y 10B representaciones para la ilustración de pasos del procedimiento de la figura 9, y
Figura 11 una representación para la ilustración de una rotación de la montura de gafas.
La figura 1A muestra un ejemplo de realización de un dispositivo para la adaptación virtual de unas gafas según un ejemplo de realización. El dispositivo de la figura 1A comprende un dispositivo informático 11, un procesador 12, así como una memoria 13. La memoria 13 sirve para el almacenamiento de datos y, en el ejemplo de realización de la figura 1 A, comprende una memoria de acceso aleatorio (Random Access Memory, RAM), una memoria de sólo lectura (Read Only Memory, ROM), así como uno o varios dispositivos de almacenamiento masivo (disco duro, disco de estado sólido, unidad óptica, etc.). En la memoria 13 se almacena un programa, mediante el cual, al ejecutarlo en el procesador 12, se realiza una adaptación virtual de las gafas como se ha descrito antes.
El dispositivo de la figura 1A dispone además de una pantalla 16 en la que, al ejecutar el programa informático en el procesador 12, se muestra una cabeza de una persona junto con una montura de gafas. Las entradas del usuario pueden llevarse a cabo a través de uno o varios dispositivos de entrada 17, por ejemplo, un teclado y un ratón. Adicional o alternativamente, la pantalla 16 puede ser una pantalla sensible al tacto (touchscreen) con la que se llevan a cabo las entradas de datos.
El dispositivo de la figura 1A comprende además una interfaz 14 a una red 18 a través de la cual se pueden recibir datos. Aquí se pueden recibir especialmente modelos 3D de monturas de gafas con textura. En algunos ejemplos de realización, la interfaz 14 también se utiliza para enviar datos a otro dispositivo informático, a fin de realizar cálculos, como los cálculos de metadatos mencionados.
Para la creación de un modelo 3D de una cabeza de una persona, a la que se le van a adaptar las gafas, el dispositivo de la figura 1A comprende opcionalmente un dispositivo de cámara 15 a través del cual se pueden tomar varias imágenes de la persona desde diferentes direcciones y a partir de las cuales se puede determinar el modelo 3D como ya se ha descrito.
La figura 1B muestra una forma de realización del dispositivo de cámara 15 de la figura 1 A. En el ejemplo de realización de la figura 1B, un conjunto semicircular 110 de cámaras se fija en una columna 19. A continuación, una persona puede colocarse de manera que una cabeza 111 de la persona se sitúe en el conjunto semicircular 110, como se muestra en la figura 1B, pudiendo ser fotografiada desde diferentes direcciones. A partir de estas imágenes se puede crear, como ya se ha explicado antes, un modelo 3D de la cabeza 111, resultando también de las capturas de imágenes la textura del modelo. El dispositivo de cámara de la figura 1B presenta además una cámara panorámica 112 para, al tomar la imagen, poder determinar una iluminación que, como se ha descrito antes, puede utilizarse posteriormente para la síntesis de imágenes.
La figura 2 muestra un procedimiento según un ejemplo de realización. En el paso 20 de la figura 2 se pone a disposición un modelo 3D de una cabeza de un usuario, por ejemplo, sobre la base de las imágenes de la cámara como se ha descrito anteriormente, en especial con las imágenes del dispositivo de cámara 15 de la figura 1A. En el paso 21 se proporciona un modelo 3D de montura para una montura de gafas a adaptar, por ejemplo, por un fabricante.
En el paso 22, los metadatos de la cabeza se ponen a disposición sobre la base del modelo 3D de la cabeza, como se ha descrito antes, y en el paso 23, los metadatos de montura se ponen a disposición sobre la base del modelo 3D de la montura, como también se ha descrito anteriormente. Los pasos 20 a 23 también pueden realizarse en un orden diferente. Por ejemplo, el paso 22 puede cambiarse por el paso 21. La puesta a disposición de los metadatos en los pasos 22 y 23 puede realizarse mediante un nuevo cálculo de los metadatos o mediante una lectura de los metadatos de una memoria previamente calculados.
En este caso, los metadatos pueden calcularse y ponerse a disposición como se ha comentado anteriormente.
En el paso 24, la montura de gafas se posiciona virtualmente, es decir, se adapta a la cabeza utilizando los metadatos de la cabeza y los metadatos de la montura. Para ello se utilizan los procedimientos ya indicados. Por consiguiente, el posicionamiento virtual comprende un posicionamiento aproximado, sobre la base de los metadatos de la cabeza y de los metadatos de la montura, y un posicionamiento preciso sobre la base de los modelos 3D de la cabeza y de la montura de gafas.
En el paso 25, la cabeza con la montura de gafas se representa en una pantalla, en el caso del dispositivo de la figura 1 A, en la pantalla 16. Esto permite al usuario evaluar el aspecto de la montura de gafas en la cabeza.
En el paso 26, la posición de la montura de gafas en la cabeza puede, si es necesario, desplazarse como se ha descrito, por ejemplo, desplazarse en la nariz. Este desplazamiento de la posición pueden llevarla a cabo el usuario o un óptico.
Opcionalmente, los datos de adaptación que describen la adaptación de las gafas a la cabeza pueden utilizarse para la adaptación de unas gafas reales. Por ejemplo, las varillas de la montura real de las gafas pueden doblarse como en la adaptación virtual del modelo.
El procedimiento de la figura 2 puede repetirse para varias monturas de gafas, a fin de proporcionar al usuario una impresión de la apariencia de diferentes monturas de gafas. A partir de las representaciones, el usuario puede decidirse por una montura de gafas.
A continuación se explican más detalladamente distintos pasos del procedimiento de la figura 2 con referencia a las figuras 3-10.
Las figuras 3A y 3C muestran una representación para la explicación de un modelo 3D de una cabeza. Con la referencia 31a se identifica un ejemplo de un sistema de coordenadas que se puede utilizar, estando el sistema de coordenadas unido de forma fija (como se ha explicado antes) a la cabeza, por ejemplo, sin cambiar su posición relativamente con respecto a la cabeza en caso de un giro de la cabeza. En este caso, en la figura 3A se representa un modelo 3D 30 en forma de una malla triangular con una pluralidad de nudos conectados por líneas. En la figura 3B se representa una combinación 31 de la malla triangular y de una textura. La figura 3C muestra una representación 32 como la que se puede realizar sobre la base del modelo en una pantalla, en la que sólo es visible la textura, pero no los distintos vértices que se representan explícitamente en las figuras 3A y 3B para una mayor claridad. La figura 4 muestra una representación de una montura de gafas sobre la base del modelo junto con un sistema de coordenadas 41. La montura de gafas 40 de la figura 4 presenta una varilla derecha 42A, una varilla izquierda 42B, una bisagra derecha 43A, una bisagra izquierda 43B, un borde de montura derecho 44A, un borde de montura izquierdo 44B, así como un puente de nariz 45.
La figura 5 muestra un diagrama de flujo de un procedimiento para la determinación de los metadatos de montura, es decir, un ejemplo de una implementación del paso 23 de la figura 2. En el paso 50 se determinan los puntos destacados en el modelo 3D de la montura por medio de descriptores de características 3D. En el paso 51, estos puntos destacados se clasifican y filtran. Alternativamente a la determinación mediante descriptores de características 3D, los puntos también pueden marcarse manualmente, como se ilustra en las figuras 6A y 6B. Con esta finalidad, la montura de gafas 40, que ya se ha descrito con referencia a la figura 4, se representa en una pantalla y se marcan los puntos relevantes. A este respecto, las figuras 6A y 6B muestran a modo de ejemplo los puntos de apoyo de las orejas 61, los puntos de bisagra 62, las posiciones de las almohadillas de la nariz 63, así como un punto central 64 del puente de la nariz que puede servir como punto de apoyo. Cabe señalar que el punto de apoyo no tiene que estar situado directamente en las gafas, sino que también puede estar separado de la montura real, especialmente en el caso de las almohadillas de la nariz.
En el paso 52 de la figura 5 tiene lugar una transformación de coordenadas en el sistema de coordenadas del eje principal de los puntos destacados clasificados en el paso 51 mediante un análisis de componentes principales (PCA, Principle Component Analysis), localizándose en el paso 53 el puente de la nariz y las bisagras con la ayuda de los puntos destacados clasificados. Las técnicas para ello también se han descrito anteriormente.
A continuación, en el paso 54 se determina como punto de apoyo un punto del apoyo del puente de la nariz para el posicionamiento aproximado, como se ha descrito antes. En el paso 55, el modelo 3D de la montura de gafas se segmenta en componentes (varilla izquierda, varilla derecha y el resto de la montura), y en el paso 56 se determina una zona de apoyo en el lado inferior de la varilla en forma de una curva de apoyo, como ya se ha descrito.
El lado inferior de la varilla en la que se determina la curva de apoyo se muestra en la figura 7A como una representación de un solo punto para una montura de gafas 70 y en una vista ampliada correspondiente de la figura 7B para las varillas 71 y 72. Gracias al uso de la zona de apoyo, no es necesario realizar los cálculos con la ayuda de una pluralidad de puntos de este tipo, sino que se puede utilizar la curva de apoyo.
La figura 8 muestra un diagrama de flujo de un procedimiento para la determinación de la curva de apoyo, es decir, una implementación más detallada del paso 56 de la figura 5. En el paso 80 se describen el punto inicial y el punto final de la parte respectiva de la varilla (varilla izquierda o varilla derecha). En este caso, el procedimiento de la figura 8 se realiza por separado para la varilla izquierda y para la varilla derecha. En el paso 81 se determina una zona de apoyo potencial de la oreja, y en el paso 82 se determina la curva de apoyo por medio de la técnica de "Sliding Window" descrita. Aquí, los pasos 80-82 se llevan a cabo como ya se ha descrito antes más detalladamente.
La figura 9 muestra un diagrama de flujo de un procedimiento para la adaptación virtual y el posicionamiento de una montura de gafas en una cabeza, utilizándose los modelos y metadatos explicados anteriormente. La figura 9 representa un ejemplo de implementación para los pasos 24-26 de la figura 2.
En el paso 90 de la figura 9 se realiza un posicionamiento aproximado, alineándose el punto de apoyo de los metadatos de la montura de gafas y el punto de posicionamiento de los metadatos de la cabeza. A continuación, en el paso 91, se lleva a cabo un doblado de la montura, utilizándose aquí los procedimientos de corte de cilindros ya explicados. En caso de monturas en las que se puede cambiar una inclinación, es decir, la inclinación se puede modificar mediante la rotación de la varilla alrededor del eje x (se utiliza el sistema de coordenadas 41 de la figura 4), esta operación se realiza en el paso 92. En caso de monturas de gafas en las que los metadatos de la montura indican que una rotación de este tipo no es posible, se puede omitir el paso 92.
En el paso 93 se lleva a cabo un posicionamiento preciso de la montura en el plano x-y perpendicularmente a la dirección z, utilizándose aquí las técnicas ya descritas anteriormente en relación con el posicionamiento preciso. En el paso 94 se realiza una síntesis de imágenes de la montura y de la cabeza de acuerdo con el posicionamiento en los pasos 90-93, pudiéndose tener en cuenta, como se ha explicado, las fuentes de luz. En el paso 95 tiene lugar una interacción del usuario con el modelo representado, es decir, la visualización de la montura y de la cabeza, mediante uno o varios dispositivos de entrada (por ejemplo, los dispositivos de entrada 17 de la figura 1A). De este modo es posible, por ejemplo, realizar una navegación como la indicada en el paso 96, es decir, el modelo mostrado se puede girar, ampliar o reducir. Sobre la base de estas entradas se lleva a cabo de nuevo el paso 94, es decir, se vuelve a mostrar la imagen de acuerdo con la navegación. También se puede realizar una entrada, también denominada gesto, para el giro de la montura, entre otros, para, como se ha descrito, compensar las asimetrías de la cara. En este caso, el cálculo del posicionamiento se lleva a cabo de nuevo a partir del paso 92. Finalmente, las gafas pueden moverse hacia arriba y hacia abajo en el puente de la nariz. Esto corresponde a una modificación del posicionamiento aproximado inicial, por lo que en este caso el procedimiento se realiza de nuevo a partir del paso 90, utilizándose la nueva posición determinada en el puente de nariz como el posicionamiento aproximado del paso 90.
Las figuras 10A y 10B muestran representaciones de una cabeza 100 junto con una montura de gafas 102 para ilustrar los pasos del procedimiento de la figura 9. La figura 10A ilustra cómo la montura de gafas 102 puede desplazarse hacia arriba y hacia abajo en un puente de nariz 101 de la cabeza 100 según las flechas 103. Este es un ejemplo del movimiento en el puente de la nariz según el paso 96. La figura 10B ilustra un doblado hacia arriba de las varillas de la montura de gafas 102 según las flechas 104, como el que se realiza en el paso 91 de la figura 9.
La figura 11 muestra una representación para explicar la rotación, ya explicada anteriormente, de la montura alrededor del eje x por medio de una sección cilíndrica. La figura 11 muestra un modelo 3D de una cabeza 110 y un modelo 3D de una montura 111 respectivamente como una malla 3D. Durante el posicionamiento aproximado, la montura se posicionó en primer lugar por medio de un punto de apoyo 116. Un eje 115 se desarrolla en la dirección x por el punto de apoyo 116. Un cilindro indicado por los círculos 112, 113 presenta un radio hasta un punto de apoyo de la oreja del modelo 3D de la cabeza 110. El punto de intersección del cilindro con una zona de apoyo de la montura de gafas, representada por el modelo 3D de la montura de gafas 111, con el cilindro proporciona una dirección para las varillas de la montura de gafas y, por lo tanto, un ángulo a través del cual la montura de gafas debe hacerse girar alrededor del eje 115. En el presente caso, partiendo de una posición en la que las varillas se desarrollan en la dirección de las líneas 119A, 119B, se realiza una rotación, de manera que ahora las varillas sólo se desarrollen en la dirección de las líneas 1110A, 1110B.
Por consiguiente, con los procedimientos y dispositivos descritos puede llevarse a cabo virtualmente una adaptación precisa de una montura de gafas a una cabeza que puede utilizarse opcionalmente para la adaptación de una montura de gafas real según el paso 27 de la figura 2.

Claims (10)

REIVINDICACIONES
1. Procedimiento implementado por ordenador para la adaptación virtual de gafas, que comprende: posicionamiento virtual de una montura de gafas en una cabeza sobre la base de los metadatos de la cabeza para un modelo 3D (30, 31) de la cabeza y sobre la base de los metadatos de la montura para un modelo 3D de la montura de gafas,
comprendiendo los metadatos de la montura una primera información de apoyo que define uno o varios puntos de la montura de gafas en los que la montura de gafas se apoya en la cabeza, y comprendiendo los metadatos de la cabeza una segunda información de apoyo que define uno o varios puntos de la cabeza en los que la montura de gafas se apoya en la cabeza, y
comprendiendo la segunda información de apoyo un punto de posicionamiento asignado a un puente de nariz del modelo 3D de la cabeza,
caracterizado por que
una zona de puente de nariz se pone a disposición como una curva 3D, determinándose el punto de posicionamiento sobre la base de la curva 3D.
2. Procedimiento según la reivindicación 1, comprendiendo la primera información de apoyo un punto de apoyo asignado a un puente de nariz de la montura de gafas.
3. Procedimiento según la reivindicación 2, comprendiendo el posicionamiento virtual un posicionamiento preciso virtual y un posicionamiento aproximado virtual previo al posicionamiento preciso virtual, basándose el posicionamiento preciso virtual en el modelo 3D de la cabeza y en el modelo 3D de la montura de gafas, y comprendiendo el posicionamiento aproximado virtual un posicionamiento en el que el punto de apoyo de los metadatos de la montura se alinea con el punto de posicionamiento de los metadatos de cabeza.
4. Procedimiento según la reivindicación 3, determinándose el punto de posicionamiento sobre la base de la curva 3D, definiéndose, cuando la cabeza se mantiene en posición erguida, como una dirección x una dirección horizontal correspondiente a una línea de unión de los centros de las pupilas de los ojos de la cabeza en una dirección de visión cero de la cabeza y definiéndose la dirección y como una dirección vertical estando la cabeza en una postura erguida y definiéndose como la dirección z una dirección perpendicular a la dirección x y a la dirección y, presentando la curva 3D una parametrización, definiéndose la parametrización como una función de una coordenada de la dirección y.
5. Procedimiento según la reivindicación 4, caracterizado por que durante el posicionamiento preciso virtual se produce un primer desplazamiento de la montura de gafas en una primera distancia perpendicular a la dirección z, y por que se produce un segundo desplazamiento de la montura de gafas en una segunda distancia a lo largo de la dirección z, no siendo la segunda distancia superior al 10% de la primera distancia.
6. Procedimiento según una de las reivindicaciones 1 a 5, caracterizado por que el procedimiento para la puesta a disposición de los metadatos de la montura comprende una identificación de puntos destacados en el modelo 3D de la montura de gafas y/o una clasificación de puntos destacados en el modelo 3D de la montura de gafas, siendo los puntos destacados puntos que tienen determinadas propiedades preestablecidas definidas en los así llamados descriptores de características 3D, y siendo los puntos relevantes puntos utilizados para representar metadatos, y siendo los puntos no relevantes puntos que no representan metadatos o que son redundantes en la representación de metadatos.
7. Procedimiento según la reivindicación 6, caracterizado por que el procedimiento comprende además una aplicación de una transformación de coordenadas sobre la base de los puntos destacados identificados en al menos uno del grupo
- modelo 3D de la montura de gafas,
- puntos destacados identificados,
- metadatos de la montura.
8. Procedimiento según una de las reivindicaciones 1-7, caracterizado por que una puesta a disposición de los metadatos de la montura comprende una segmentación del modelo 3D de la montura de gafas en componentes de la montura de gafas, comprendiendo los componentes preferiblemente al menos un componente del grupo
- piezas de varilla,
- una parte restante de la montura de gafas distinta de las partes de varilla, y/o
comprendiendo los metadatos de la cabeza zonas de apoyo para las orejas de la cabeza calculadas sobre la base de las piezas de varilla.
9. Programa informático con un código de programa que, al ejecutarse en un procesador, realiza el procedimiento según una de las reivindicaciones 1-8.
10. Dispositivo para la adaptación virtual de unas gafas que comprende:
un procesador, y
una pantalla,
caracterizado por un programa informático según la reivindicación 9 para su ejecución en el procesador.
ES19215572T 2017-06-01 2018-06-01 Procedimiento, dispositivo y programa informático para la adaptación virtual de una montura de gafas Active ES2887926T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP17173929.5A EP3410178A1 (de) 2017-06-01 2017-06-01 Verfahren, vorrichtung und computerprogramm zum virtuellen anpassen einer brillenfassung

Publications (1)

Publication Number Publication Date
ES2887926T3 true ES2887926T3 (es) 2021-12-29

Family

ID=59021319

Family Applications (1)

Application Number Title Priority Date Filing Date
ES19215572T Active ES2887926T3 (es) 2017-06-01 2018-06-01 Procedimiento, dispositivo y programa informático para la adaptación virtual de una montura de gafas

Country Status (9)

Country Link
US (2) US11215845B2 (es)
EP (4) EP3410178A1 (es)
JP (1) JP6808855B2 (es)
KR (1) KR102204810B1 (es)
CN (3) CN112462533B (es)
BR (1) BR122022022446B1 (es)
CA (3) CA3082637C (es)
ES (1) ES2887926T3 (es)
WO (1) WO2018220203A2 (es)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3413122B1 (de) 2017-06-08 2020-03-04 Carl Zeiss Vision International GmbH Verfahren, vorrichtung und computerprogramm zum bestimmen eines nah-durchblickpunktes
EP3425446B1 (de) 2017-07-06 2019-10-30 Carl Zeiss Vision International GmbH Verfahren, vorrichtung und computerprogramm zum virtuellen anpassen einer brillenfassung
ES2753645T3 (es) * 2017-07-06 2020-04-13 Zeiss Carl Vision Int Gmbh Procedimiento, dispositivo y programa informático para la adaptación virtual de una montura de gafas
DE102018121742B4 (de) * 2018-09-06 2023-05-11 Fielmann Ventures GmbH Verfahren und System zur virtuellen anatomischen Anpassung einer Brille
US10685457B2 (en) 2018-11-15 2020-06-16 Vision Service Plan Systems and methods for visualizing eyewear on a user
DE102018009811A1 (de) * 2018-12-13 2020-06-18 YOU MAWO GmbH Verfahren zum Generieren von Herstellungsdaten zur Herstellung einer Brille für eine Person
US10825260B2 (en) 2019-01-04 2020-11-03 Jand, Inc. Virtual try-on systems and methods for spectacles
DE102019108678A1 (de) 2019-04-03 2020-10-08 Carl Zeiss Ag Vorrichtung zur Energieversorgung eines aktiven Augenimplantats
US11488239B2 (en) * 2019-08-26 2022-11-01 Warby Parker Inc. Virtual fitting systems and methods for spectacles
CN114730101B (zh) 2019-09-24 2024-05-31 贝斯普客有限公司D/B/A拓扑眼镜 使用面部特征的3d扫描来调整库存眼镜框架的系统和方法
EP3809304A1 (de) * 2019-10-18 2021-04-21 Carl Zeiss Vision International GmbH Computerimplementiertes verfahren zur ermittlung eines parametrischen ersatzmodells eines brillenfassungselements sowie vorrichtung und systeme, die ein solches verfahren benutzen
EP4078279A1 (en) * 2019-12-19 2022-10-26 Essilor International Method for determining a value of at least one geometrico-morphological parameter of a subject wearing an eyewear
DE102020104536A1 (de) 2020-02-20 2021-08-26 Carl Zeiss Vision International Gmbh Verfahren und Vorrichtungen zur dreidimensionalen Augenrekonstruktion
WO2021211374A1 (en) 2020-04-15 2021-10-21 Jand, Inc. Virtual try-on systems for spectacles using reference frames
CN111467131B (zh) * 2020-04-30 2022-05-27 浙江大学 一种3d打印定制护目镜框的自动设计方法
AU2021285994A1 (en) * 2020-06-05 2023-03-09 Maria Tashjian Technologies for virtually trying-on items
DE112021003994A5 (de) * 2020-07-31 2023-05-11 Tribe Gmbh Verfahren und vorrichtung zum automatischen bestimmen von herstellungsparametern für eine brille
CN112328084B (zh) * 2020-11-12 2024-06-28 北京态璞信息科技有限公司 一种三维虚拟眼镜的定位方法、装置及电子设备
EP4006628A1 (de) * 2020-11-27 2022-06-01 Fielmann Ventures GmbH Computerimplementiertes verfahren zum bereitstellen und platzieren einer brille sowie zur zentrierung von gläsern der brille
GB202100314D0 (en) * 2021-01-11 2021-02-24 Cubitts Kx Ltd Frame adjustment systems
CN113034220A (zh) * 2021-03-02 2021-06-25 张世贤 基于逆向工程制备眼镜框的方法、系统、设备及存储介质
DE102021109381A1 (de) * 2021-04-14 2022-10-20 YOU MAWO GmbH Individualisierte brillenfassung und verfahren zum erzeugen von deren geometriedaten
JP2022186156A (ja) * 2021-06-04 2022-12-15 富士通株式会社 特徴量算出プログラム、特徴量算出方法および情報処理装置
US20220390771A1 (en) * 2021-06-07 2022-12-08 Blink Technologies Inc. System and method for fitting eye wear
FR3124069A1 (fr) * 2021-06-18 2022-12-23 Acep France Procédé d’essayage de lunettes virtuelles
US11971246B2 (en) 2021-07-15 2024-04-30 Google Llc Image-based fitting of a wearable computing device
US20230046950A1 (en) * 2021-08-12 2023-02-16 Google Llc Image based detection of fit for a head mounted wearable computing device
DE102021129171B3 (de) 2021-11-09 2023-04-06 YOU MAWO GmbH Verfahren, system und computerprogramm zur virtuellen voraussage eines realen sitzes eines realen brillengestells am kopf einer person mit individueller kopfgeometrie
IT202100030014A1 (it) * 2021-11-26 2023-05-26 Luxottica Group S P A Procedimento interamente virtuale per misurazioni di grandezze optometriche.
EP4227732A1 (en) 2022-02-14 2023-08-16 Carl Zeiss Vision International GmbH Method for head image recording and corresponding mobile device
EP4249994A1 (en) * 2022-03-23 2023-09-27 Essilor International Improved detection of an outline of a spectacle frame
CN115937964B (zh) * 2022-06-27 2023-12-15 北京字跳网络技术有限公司 姿态估计的方法、装置、设备和存储介质
CN116309759B (zh) * 2023-05-25 2023-08-15 南京信息工程大学 一种基于快速三角特征直方图的点云粗配准方法

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3436133A1 (de) 1984-10-02 1986-04-10 Wilhelm St. Moritz Anger Verfahren zur herstellung einer brille
KR100365664B1 (ko) * 1998-02-03 2003-01-24 츄요시 사이고 안경 착용 시뮬레이션 시스템
AU6056301A (en) 2000-05-18 2001-11-26 Visionix Ltd. Spectacles fitting system and fitting methods useful therein
US7016824B2 (en) 2001-02-06 2006-03-21 Geometrix, Inc. Interactive try-on platform for eyeglasses
KR100523742B1 (ko) * 2002-03-26 2005-10-26 김소운 3차원 안경 시뮬레이션 시스템 및 방법
DE10216824B4 (de) 2002-04-16 2006-03-02 Thomas Doro Verfahren und Vorrichtung zum Konstruieren einer Maßbrille
US7071936B2 (en) * 2002-05-01 2006-07-04 Microsoft Corporation Systems and methods for providing signal-specialized parametrization
GB2465298B (en) 2004-09-24 2010-06-30 Vision Rt Ltd Image processing system for use with a patient positioning device
JP3770499B1 (ja) 2004-11-02 2006-04-26 任天堂株式会社 ゲーム装置及びゲームプログラム
EP2161611A1 (en) * 2008-09-04 2010-03-10 Essilor International (Compagnie Générale D'Optique) Method for optimizing the settings of an ophtalmic system
US20130088490A1 (en) * 2011-04-04 2013-04-11 Aaron Rasmussen Method for eyewear fitting, recommendation, and customization using collision detection
US9286715B2 (en) 2012-05-23 2016-03-15 Glasses.Com Inc. Systems and methods for adjusting a virtual try-on
JP6099232B2 (ja) * 2013-08-22 2017-03-22 ビスポーク, インコーポレイテッド カスタム製品を創作するための方法及びシステム
CN103456008A (zh) * 2013-08-26 2013-12-18 刘晓英 一种面部与眼镜匹配方法
FR3016050B1 (fr) * 2014-01-02 2017-12-08 Essilor Int Procede d’ajustage d’une monture de lunettes predeterminee pour son utilisation par un porteur donne
FR3016051B1 (fr) * 2014-01-02 2017-06-16 Essilor Int Procede de determination d'au moins un parametre geometrique d'une monture personnalisee de lunettes et procede de determination de la monture personnalisee associe
CN104408764B (zh) * 2014-11-07 2017-05-24 成都好视界眼镜有限公司 眼镜虚拟试戴方法、装置及系统
WO2016135078A1 (en) 2015-02-23 2016-09-01 Fittingbox Process and method for real-time physically accurate and realistic-looking glasses try-on
US10284816B2 (en) 2015-03-23 2019-05-07 Intel Corporation Facilitating true three-dimensional virtual representation of real objects using dynamic three-dimensional shapes
US10330958B2 (en) * 2015-04-10 2019-06-25 Bespoke, Inc. Systems and methods for creating eyewear with multi-focal lenses
CN104898832B (zh) * 2015-05-13 2020-06-09 深圳彼爱其视觉科技有限公司 一种基于智能终端的3d实时眼镜试戴方法
CN104881114B (zh) * 2015-05-13 2019-09-03 深圳彼爱其视觉科技有限公司 一种基于3d眼镜试戴的角度转动实时匹配方法
NL2014891B1 (nl) * 2015-05-29 2017-01-31 Maydo B V Werkwijze voor het vervaardigen van een brilmontuur dat is aangepast aan een brildrager.
US10165949B2 (en) * 2015-06-14 2019-01-01 Facense Ltd. Estimating posture using head-mounted cameras
ES2604806B1 (es) * 2016-03-03 2018-07-25 Horizons Optical S.L.U. Procedimiento de pedido de gafas y procedimientos de fabricación y suministro y dispositivo correspondientes
CN105842875B (zh) * 2016-06-07 2018-07-24 杭州美戴科技有限公司 一种基于人脸三维测量的眼镜架设计方法
US9990780B2 (en) * 2016-10-03 2018-06-05 Ditto Technologies, Inc. Using computed facial feature points to position a product model relative to a model of a face
EP3355102A1 (de) 2017-01-27 2018-08-01 Carl Zeiss Vision International GmbH Computerimplementiertes verfahren zur bestimmung von zentrierparametern
EP3355103A1 (de) 2017-01-27 2018-08-01 Carl Zeiss AG Computerimplementiertes verfahren zur bestimmung von zentrierparametern
EP3355100A1 (de) 2017-01-27 2018-08-01 Carl Zeiss Vision International GmbH Vorrichtung zur bestimmung von zentrierparametern für die brillenanpassung
FR3065295A1 (fr) * 2017-04-12 2018-10-19 Frederic Clodion Dispositif de prises de mesures et de vues 3d pour determiner les parametres morphologiques du visage et fabriquer des lunettes sur mesure
US10292286B2 (en) 2017-07-31 2019-05-14 Apple Inc. Patterned glass layers in electronic devices

Also Published As

Publication number Publication date
EP3671324A1 (de) 2020-06-24
WO2018220203A3 (de) 2019-01-24
CN110892315A (zh) 2020-03-17
CA3082642A1 (en) 2018-12-06
CN112462533B (zh) 2022-09-09
EP3410178A1 (de) 2018-12-05
CA3065878A1 (en) 2018-12-06
BR112019025221A2 (pt) 2020-06-16
US20210165245A1 (en) 2021-06-03
WO2018220203A2 (de) 2018-12-06
BR122022022446B1 (pt) 2023-10-24
EP3631570A2 (de) 2020-04-08
CA3082642C (en) 2022-09-13
EP3631570B1 (de) 2020-10-21
EP3671324B1 (de) 2021-05-12
CA3082637C (en) 2022-10-25
KR20200005671A (ko) 2020-01-15
US11262597B2 (en) 2022-03-01
US20200103675A1 (en) 2020-04-02
CA3065878C (en) 2021-04-06
CN110892315B (zh) 2021-03-12
EP3657236B1 (de) 2020-12-16
JP2020522076A (ja) 2020-07-27
CA3082637A1 (en) 2018-12-06
JP6808855B2 (ja) 2021-01-06
US11215845B2 (en) 2022-01-04
EP3657236A1 (de) 2020-05-27
CN112505950A (zh) 2021-03-16
CN112462533A (zh) 2021-03-09
KR102204810B1 (ko) 2021-01-20

Similar Documents

Publication Publication Date Title
ES2887926T3 (es) Procedimiento, dispositivo y programa informático para la adaptación virtual de una montura de gafas
CN114730101B (zh) 使用面部特征的3d扫描来调整库存眼镜框架的系统和方法
EP3339943A1 (en) Method and system for obtaining optometric parameters for fitting eyeglasses
ES2841827T3 (es) Procedimiento, dispositivo y programa informático para la adaptación virtual de una montura de gafas
CA3072117C (en) Method, device and computer program for virtually adjusting a spectacle frame
ES2353099B1 (es) Método y sistema de identificación forense por superposición craneofacial basado en soft computing.
US10859859B2 (en) Method, computing device, and computer program for providing a mounting edge model
PT106430B (pt) Sistema para medição da distância interpupilar usando um dispositivo equipado com um ecrã e uma câmara
CN110998417B (zh) 确定视近点的方法、装置和计算机可读的存储介质
BR112019025221B1 (pt) Processo, dispositivo e programa de computador para o ajuste virtual de uma armação de óculos
BR122022022441B1 (pt) Processo e dispositivo para o ajuste virtual de uma armação de óculos
CN116830152A (zh) 用于检测和跟踪视频流中戴着一副眼镜的个体的面部的方法
Thukral et al. A Standard for a Next Generation Over-head Display as an Application Platform: Optimizing Bionic Vision