ES2769546T3 - Sistemas y procedimientos para la caricaturización de imágenes interactiva mediante un dispositivo electrónico. - Google Patents

Sistemas y procedimientos para la caricaturización de imágenes interactiva mediante un dispositivo electrónico. Download PDF

Info

Publication number
ES2769546T3
ES2769546T3 ES13875827T ES13875827T ES2769546T3 ES 2769546 T3 ES2769546 T3 ES 2769546T3 ES 13875827 T ES13875827 T ES 13875827T ES 13875827 T ES13875827 T ES 13875827T ES 2769546 T3 ES2769546 T3 ES 2769546T3
Authority
ES
Spain
Prior art keywords
image
cartoon
vertex
mesh
gesture input
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
ES13875827T
Other languages
English (en)
Inventor
Xuan Zou
Fan Ling
Ning Bi
Lei Zhang
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Application granted granted Critical
Publication of ES2769546T3 publication Critical patent/ES2769546T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04845Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/00Two-dimensional [2D] image generation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/00Two-dimensional [2D] image generation
    • G06T11/60Creating or editing images; Combining images with text
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three-dimensional [3D] modelling for computer graphics
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04808Several contacts: gestures triggering a specific function, e.g. scrolling, zooming, right-click, when the user establishes several contacts with the surface simultaneously; e.g. using several fingers or a combination of fingers and pen

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)
  • Image Processing (AREA)

Abstract

Un procedimiento para la caricaturización de imágenes interactiva mediante un dispositivo electrónico, que comprende: detectar (602) múltiples ubicaciones de rasgos faciales de una imagen facial; generar (606), en base a las ubicaciones de rasgos faciales, una malla de la imagen (1012a) que comprende una cuadrícula de al menos una línea horizontal y al menos una línea vertical, de manera que los vértices de la malla de la imagen correspondan a las ubicaciones de rasgos faciales; obtener (608) al menos una entrada de gesto; determinar (612) al menos una acción de caricatura en base a al menos una entrada de gesto, en el que la acción de caricatura proporciona información de desplazamiento para al menos un vértice de la malla de la imagen y proporciona un mapa de píxeles que mapea un píxel de vértice de imagen, en un vértice de la malla de la imagen, desde una primera ubicación en la imagen facial, hasta una segunda ubicación en una imagen de caricatura en base a la información de desplazamiento; y generar (616) la imagen de caricatura en base a la malla de la imagen, la al menos una acción de caricatura y la imagen.

Description

DESCRIPCIÓN
Sistemas y procedimientos para la caricaturización de imágenes interactiva mediante un dispositivo electrónico. CAMPO TÉCNICO
[0001] La presente divulgación se refiere en general a dispositivos electrónicos. Más concretamente, la presente divulgación se refiere a sistemas y procedimientos para la caricaturización de imágenes interactiva mediante un dispositivo electrónico.
ANTECEDENTES
[0002] En las últimas décadas, el uso de dispositivos electrónicos se ha vuelto común. En particular, los avances en la tecnología electrónica han reducido el coste de dispositivos electrónicos que cada vez son más complejos y útiles. La reducción del coste y la demanda de consumo han hecho proliferar el uso de dispositivos electrónicos, de manera que están prácticamente omnipresentes en la sociedad moderna. A medida que se ha ido expandiendo el uso de los dispositivos electrónicos, la demanda de características nuevas y mejoradas de los dispositivos electrónicos ha hecho lo propio. Más concretamente, los dispositivos electrónicos que realizan nuevas funciones y/o que realizan funciones con más rapidez, más eficacia o más calidad son a menudo los más codiciados.
[0003] Algunos dispositivos electrónicos (por ejemplo, teléfonos celulares, teléfonos inteligentes, cámaras digitales, videocámaras, ordenadores, etc.) capturan y editan fotos o imágenes. Por ejemplo, un teléfono inteligente puede capturar una imagen con un dispositivo de detección de imagen integrado.
[0004] Si bien capturar y editar fotos o imágenes puede ser favorable, estos procesos a menudo requieren mucho tiempo y son laboriosos. Como puede observarse a partir de este análisis, los sistemas y procedimientos que añaden nuevas y/o características mejoradas de edición de imágenes pueden ser favorables.
[0005] El documento US2012176401 divulga un mapeo de gestos para los parámetros de entrada de un filtro de imagen.
[0006] TAKEO IGARASHI ET AL., “As-rigid-as-possible shape manipulation”, ACM TRANSACTIONS ON GRAPHICS, (20050701), vol. 24, n.23, doi:10.1145/1073204.1073323, ISSN 0730-0301, página 1134 divulga un sistema interactivo que permite al usuario moverse y deformar una forma bidimensional.
[0007] El documento US2010095206 divulga un procedimiento para realizar modificaciones en las imágenes que se muestran en un dispositivo de visualización, de acuerdo con el movimiento de una unidad de entrada, tal como un dedo o un lápiz óptico.
[0008] El documento US20110249961 divulga un algoritmo de detección de rostros para una cámara.
[0009] El documento US2006082579 divulga un sistema y procedimiento de generación de caricaturas.
[0010] La presente invención se define en las reivindicaciones independientes.
[0011] Las características opcionales de la invención se definen en las reivindicaciones dependientes.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
[0012]
La Figura 1 es un diagrama de bloques que ilustra una configuración de un dispositivo electrónico en el que pueden implementarse sistemas y procedimientos para la caricaturización de imágenes interactiva;
la Figura 2 es un diagrama de flujo que ilustra una configuración de un procedimiento para la caricaturización de imágenes interactiva mediante un dispositivo electrónico;
la Figura 3 ilustra una imagen facial y ejemplos de imágenes de caricaturas que pueden generarse usando los sistemas y procedimientos divulgados en el presente documento;
la Figura 4 ilustra un ejemplo de un modelo basado en malla que puede generarse usando los sistemas y procedimientos divulgados en el presente documento;
la Figura 5 es un diagrama de bloques que ilustra una configuración más específica de un dispositivo electrónico en el que pueden implementarse sistemas y procedimientos para la caricaturización de imágenes interactiva; la Figura 6 es un diagrama de flujo que ilustra una configuración más específica de un procedimiento para la caricaturización de imágenes interactiva mediante un dispositivo electrónico;
la Figura 7 es un diagrama de flujo que ilustra una configuración de un procedimiento para validar una entrada de gesto mediante un dispositivo electrónico;
La Figura 8 ilustra un ejemplo de una entrada de gesto vertical de abrir los dedos;
La Figura 9 ilustra un ejemplo de una entrada de gesto vertical de cerrar los dedos;
La Figura 10 ilustra un ejemplo de una entrada de gesto horizontal de abrir los dedos;
La Figura 11 ilustra un ejemplo de una entrada de gesto horizontal de cerrar los dedos;
La Figura 12 ilustra otro ejemplo de una imagen facial y ejemplos de imágenes de caricaturas que pueden generarse usando los sistemas y procedimientos divulgados en el presente documento;
la Figura 13 es un diagrama de bloques que ilustra una configuración más específica de un dispositivo electrónico en el que pueden implementarse sistemas y procedimientos para la caricaturización de imágenes interactiva; y
la Figura 14 ilustra diversos componentes que se pueden utilizar en un dispositivo electrónico.
DESCRIPCIÓN DETALLADA
[0013] Algunas configuraciones de los sistemas y procedimientos divulgados en el presente documento proporcionan una caricaturización interactiva de un imagen (por ejemplo, rostro). La caricaturización facial puede denotar uno o más procedimientos para generar una imagen facial con componentes faciales exagerados a partir de una imagen facial normal. Previamente, esto era realizado manualmente por artistas, mientras que hoy en día está disponible la caricaturización facial automática basada en ordenador.
[0014] Un procedimiento de caricaturización facial basada en ordenador puede contener las etapas siguientes. En primer lugar, detectar ubicaciones de rasgos faciales en la imagen de entrada. Estas rasgos pueden incluir esquinas de los ojos, fosas nasales, esquinas de la boca, mentón y otros puntos de contorno facial. En segundo lugar, para cada ubicación de rasgo, calcular la nueva ubicación para el rostro caricaturizado ampliando o reduciendo la distancia entre esta ubicación de rasgo en la imagen de entrada y la correspondiente en un rostro promedio. En tercer lugar, aplicar una técnica de deformación de textura para deformar la textura del rostro en la imagen de entrada al rostro caricaturizado. La deformación de la textura puede basarse en una transformación que mapea cada ubicación de rasgo facial en la imagen de entrada a la ubicación de rasgo facial correspondiente en el rostro caricaturizado.
[0015] Sin embargo, la interacción de usuario se puede añadir a la caricaturización facial con ordenador para lograr un estilo de caricaturización deseado por el usuario (por ejemplo, un estilo particular con ojos ampliados y una nariz encogida). Los sistemas y procedimientos divulgados en el presente documento logran una caricaturización facial interactiva y pueden aplicarse a dispositivos móviles con una pantalla táctil. Los diferentes gestos de los dedos en la pantalla táctil pueden interpretarse como diferentes acciones de caricaturas en un modelo de caricaturización facial basado en malla, de modo que el usuario pueda generar fácilmente caricaturas interesantes mediante el uso de movimientos sencillos de los dedos en la pantalla táctil. La Figura 3 proporciona ejemplos de caricaturas basadas en los sistemas y procedimientos divulgados en el presente documento. En particular, la Figura 3 ilustra una imagen facial original a la izquierda y tres efectos de caricaturización en las imágenes restantes.
[0016] En un escenario de aplicación de caricaturización facial interactiva de acuerdo con los sistemas y procedimientos divulgados en el presente documento, se puede mostrar una imagen facial en una pantalla táctil y el usuario puede usar los dedos en la pantalla táctil para añadir la(s) acción(es) de caricaturización deseada(s) a la imagen facial. Después de cada acción, la imagen facial caricaturizada visualizada puede ser el resultado de acciones de caricaturas anteriores aplicadas secuencialmente a la imagen facial original.
[0017] A continuación, se describen diversas configuraciones con referencia a las figuras, donde unos números de referencia parecidos pueden indicar elementos funcionalmente similares. Los sistemas y procedimientos, como se describen en general e ilustran en las figuras en el presente documento, se pueden disponer y diseñar en una amplia diversidad de configuraciones diferentes. Por tanto, la siguiente descripción más detallada de varias configuraciones, como se representa en las figuras, no pretende limitar el alcance, según se reivindica, sino que es meramente representativa de los sistemas y procedimientos.
[0018] La Figura 1 es un diagrama de bloques que ilustra una configuración de un dispositivo electrónico 102 para la caricaturización de imágenes interactiva. Como se usa en el presente documento, el término "caricaturización" puede referirse a una manipulación de una imagen 104. La caricaturización de imágenes puede manipular uno o más píxeles de la imagen. Por ejemplo, la caricaturización de imágenes puede incluir cambiar la ubicación general de un píxel. Por ejemplo, la caricaturización de imágenes puede incluir cambiar la ubicación de un píxel en relación con otros píxeles en la imagen 104. La caricaturización también puede incluir la interpolación de nuevos píxeles.
[0019] Los ejemplos del dispositivo electrónico 102 incluyen teléfonos inteligentes, teléfonos celulares, cámaras digitales, ordenadores de mesa, ordenadores portátiles, tabletas electrónicas, asistentes personales digitales (PDA), dispositivos móviles, etc. El dispositivo electrónico 102 puede incluir uno o más de un bloque/módulo de detección de ubicación de rasgos 106, un bloque/módulo de generación de malla de la imagen 110, un bloque/módulo de determinación de acción de caricatura 116 y un bloque/módulo de generación de imágenes de caricaturas 120. Como se usa en el presente documento, el término "bloque/módulo" puede usarse para indicar que un elemento particular puede implementarse en hardware (por ejemplo, circuitería), software o una combinación de ambos. Por ejemplo, el bloque/módulo de determinación de acción de caricatura 116 puede implementarse en hardware (por ejemplo, circuitería), software o una combinación de ambos.
[0020] El dispositivo electrónico 102 puede obtener una imagen 104. En algunas implementaciones, la imagen 104 puede ser una imagen facial 104. De forma adicional o alternativa, la imagen 104 puede ser una imagen de caricatura 122 generada previamente. El dispositivo electrónico 102 puede incluir (o estar acoplado a) un dispositivo de detección de imagen (no se representa) que captura la imagen 104. El dispositivo de detección de imagen puede incluir un sensor de imagen. Los ejemplos del dispositivo de detección de imagen pueden incluir una cámara y un escáner. Por ejemplo, un teléfono inteligente (por ejemplo, el dispositivo electrónico 102) puede incluir una cámara (por ejemplo, el dispositivo de detección de imagen) que captura una imagen facial 104.
[0021] En otro ejemplo, el dispositivo electrónico 102 puede recibir la imagen 104 de otro dispositivo. Por ejemplo, el dispositivo electrónico 102 puede recibir la imagen 104 de otro dispositivo a través de una red (por ejemplo, una red de área local (LAN), Internet, una red celular, etc.) o mediante un enlace directo (por ejemplo, un cable de bus serie universal (USB), un enlace inalámbrico Bluetooth, etc.).
[0022] La imagen 104 (por ejemplo, la imagen facial) puede proporcionarse al módulo/bloque de detección de ubicación de rasgos 106 y al bloque/módulo de generación de imágenes de caricaturas 120. A través del módulo/bloque de detección de ubicación de rasgos 106, el dispositivo electrónico 102 puede detectar al menos una ubicación de rasgo 108 de la imagen 104. Una ubicación de rasgo 108 puede referirse a la ubicación de un rasgo distinto de la imagen 104. Por ejemplo, una imagen facial 104 puede incluir rasgos tales como los contornos del rostro, las esquinas de los ojos, la punta de la nariz, las esquinas de la nariz, las fosas nasales, las esquinas de la boca, la frente, el mentón, las orejas, las mejillas, etc. La ubicación de rasgo 108 puede referirse a la ubicación de los píxeles que constituyen el rasgo. Como se usa en el presente documento, la ubicación de los píxeles puede referirse a las coordenadas (en un sistema de coordenadas x, y, por ejemplo) de los píxeles que constituyen la imagen. El bloque/módulo de determinación de ubicación de rasgos 106 puede determinar la ubicación de rasgo 108 en base a uno o más algoritmos. Por ejemplo, el bloque/módulo de determinación de ubicación de rasgos 106 puede analizar uno o más píxeles (por ejemplo, coloración de píxeles) para determinar dónde está ubicado un rasgo de la imagen 104.
[0023] Las ubicaciones de rasgos 108 (por ejemplo, ubicaciones de rasgos faciales) pueden proporcionarse al bloque/módulo de generación de malla de la imagen 110. El bloque/módulo de generación de malla de la imagen 110 puede generar una malla de la imagen 112. La malla de la imagen 112 puede incluir una cuadrícula de al menos una línea horizontal y al menos una línea vertical. Las líneas pueden intersecar en uno o más vértices. En otras palabras, la malla de la imagen 112 puede incluir una cuadrícula de vértices que indican cada uno una intersección de una línea horizontal y una línea vertical.
[0024] En algunas implementaciones, la malla de la imagen 112 puede basarse en al menos una ubicación de rasgo 108. Por ejemplo, algunos de los vértices de la malla de la imagen 112 pueden corresponder a diferentes ubicaciones de rasgos 108. Por ejemplo, para una imagen facial 104, la malla de la imagen 112 puede incluir múltiples vértices que corresponden a múltiples ubicaciones de rasgos faciales 108 (por ejemplo, las esquinas de los ojos, las esquinas de la nariz, las esquinas de la boca, etc.). En otras palabras, los vértices pueden corresponder a los píxeles de la imagen 104 que constituyen los rasgos faciales. Además, en este ejemplo, uno o más de los rasgos pueden corresponder a la misma línea de la malla de la imagen 112. Por ejemplo, como se describirá a continuación en conexión con al menos la Figura 4, las esquinas de los ojos pueden corresponder a la misma línea horizontal de la malla de la imagen 112. Cabe destacar que en algunas implementaciones, no todos los vértices pueden alinearse con ubicaciones de rasgos.
[0025] Como se describirá a continuación, a medida que los vértices se mueven en base a la entrada de gestos 114, los rasgos correspondientes (por ejemplo, los píxeles que constituyen los rasgos) se pueden mover de manera similar. Por ejemplo, si una línea horizontal de la malla de la imagen 112 se mueve hacia arriba, los rasgos (por ejemplo, las esquinas de los ojos) que corresponden a los vértices de esta línea horizontal también pueden moverse hacia arriba.
[0026] El dispositivo electrónico 102 puede obtener una entrada de gesto 114. Como se usa en el presente documento, una entrada de gesto 114 puede referirse a un movimiento que es recibido como entrada por el dispositivo electrónico 102. Por ejemplo, un objeto (por ejemplo, un dedo o un lápiz) puede moverse en dirección vertical desde un punto de inicio. Esto puede ser recibido por el dispositivo electrónico 102 como una entrada de gesto 114. En algunas implementaciones, la entrada de gesto 114 puede ser una entrada táctil. Por ejemplo, un teléfono inteligente (por ejemplo, el dispositivo electrónico 102) puede incluir (o estar acoplado a) una pantalla táctil. En este ejemplo, un usuario puede tocar un objeto (por ejemplo, un dedo o un lápiz) en la pantalla táctil en un punto de inicio y puede mover el objeto en dirección vertical mientras mantiene el contacto con la pantalla táctil. De manera similar, la pantalla táctil puede detectar una entrada de gesto horizontal 114.
[0027] En algunas implementaciones, la entrada de gesto 114 puede no ser una entrada táctil. Por ejemplo, el dispositivo electrónico 102 puede incluir un dispositivo de detección de movimiento (una cámara, por ejemplo) que detecta movimiento. En este ejemplo, el dispositivo de detección de movimiento puede detectar el movimiento de un objeto (por ejemplo, el dedo o el lápiz) que no está en contacto con el dispositivo electrónico 102. Por ejemplo, un objeto que no está en contacto con el dispositivo electrónico 102 puede moverse en dirección vertical. El dispositivo electrónico 102, a través de la cámara (por ejemplo, el dispositivo de detección de movimiento), puede detectar la entrada de gestos 114.
[0028] En algunas implementaciones, la entrada de gesto 114 puede incluir múltiples entradas de gestos 114. Por ejemplo, el dispositivo electrónico 102 (mediante una pantalla táctil, por ejemplo) puede detectar dos entradas de gestos 114 (mediante dos dedos de un usuario). Por ejemplo, el dispositivo electrónico 102 puede detectar una entrada de gesto vertical de cerrar los dedos 114. Una entrada de gesto vertical de cerrar los dedos 114 puede incluir dos entradas de gestos verticales 114 que se acercan entre sí. En comparación, el dispositivo electrónico 102 puede detectar una entrada de gesto vertical de abrir los dedos 114 que puede incluir dos entradas de gestos verticales 114 que se alejan entre sí. Den manera similar, el dispositivo electrónico 102 puede detectar una entrada de gesto horizontal de abrir los dedos 114 (por ejemplo, dos entradas de gestos horizontales 114 que se alejan entre sí) o una entrada de gesto horizontal de cerrar los dedos 114 (por ejemplo, dos entradas de gestos horizontales 114 que se acercan entre sí).
[0029] La(s) entrada(s) de gesto(s) 114 puede(n) proporcionarse a un bloque/módulo de determinación de acción de caricatura 116 que puede determinar una acción de caricatura 118. La acción de caricatura 118 puede incluir información sobre cómo se puede manipular la imagen 104 para generar una imagen de caricatura 122. Por ejemplo, la acción de caricatura 118 puede incluir información que indica cómo se pueden mover los vértices de la malla de la imagen 112 para generar una imagen de caricatura 122. En algunas implementaciones, la información puede incluir un mapeo que muestra cómo un vértice de una malla de la imagen 112 se mueve entre la imagen 104 y la imagen de caricatura 122.
[0030] En algunas implementaciones, la acción de caricatura 118 puede basarse en la(s) entrada(s) de gesto(s) 114. Por ejemplo, si el dispositivo electrónico 102 obtiene una entrada de gesto vertical de abrir los dedos 114, la acción de caricatura 118 puede incluir información que indica que uno o más vértices pueden separarse más entre sí. Se proporciona más detalle con respecto al movimiento de vértices en base a la(s) entrada(s) de gesto(s) 114 en conexión con al menos una de las Figuras 8-11. Como se describirá en conexión con al menos una de las Figuras 8-11, qué vértices se mueven y cuánto se mueven los vértices puede basarse en la ubicación de los vértices y la distancia de los vértices desde el punto de inicio de la entrada de gesto 114.
[0031] La acción de caricatura 118 puede proporcionar un mapeo entre un vértice antes de la(s) entrada(s) de gesto(s) 114 (por ejemplo, de la imagen original 104) y el mismo vértice después de la(s) entrada(s) de gesto(s) 114 (por ejemplo, de la imagen de caricatura 122). Por ejemplo, la acción de caricatura 118 puede proporcionar un mapeo entre la ubicación de un primer vértice en la imagen original 104, y la ubicación del mismo primer vértice en la imagen de caricatura 122. Cabe destacar que la ubicación (por ejemplo, las coordenadas x, y) del primer vértice puede cambiar entre la imagen 104 y la imagen de caricatura 122.
[0032] En algunas implementaciones, la acción de caricatura 118 puede proporcionar una interpolación de los píxeles no vértices de una imagen 104 (por ejemplo, los píxeles que no corresponden a un vértice de la malla de la imagen 112). Por ejemplo, en base al mapeo de los vértices de la malla de la imagen 112, el dispositivo electrónico 102 puede interpolar el movimiento de los otros píxeles en la imagen 104. En base a esta interpolación, el dispositivo electrónico 102 puede aplicar una deformación de textura a los píxeles en la imagen, en base al mapeo.
[0033] La malla de la imagen 112, la acción de caricatura 118 y la imagen 104 pueden proporcionarse al bloque/módulo de generación de imágenes de caricaturas 120. El bloque/módulo de generación de imágenes de caricaturas 120 puede generar una imagen de caricatura 122 en base a la malla de la imagen 112, la acción de caricatura 118 y la imagen 104. Una imagen de caricatura 122 puede referirse a una versión de la imagen 104 que ha sido manipulada. Por ejemplo, uno o más de los píxeles de la imagen 104 pueden colocarse de manera diferente para generar una imagen de caricatura 122. El módulo/bloque de generación de imágenes de caricaturas 120 puede generar la imagen de caricatura 122 aplicando la acción de caricatura 118 a la malla de la imagen 112 y la imagen 104. Por ejemplo, como se describirá con más detalle en las Figuras 8-11, si la acción de caricatura 118 contiene información que indica que un primer vértice se debe alejar de un segundo vértice, el bloque/módulo de generación de imágenes de caricaturas 120 puede mover el primer vértice de la malla de la imagen 112 y un rasgo de la imagen 104 correspondiente al primer vértice lejos de un rasgo de la imagen 104 correspondiente al segundo vértice de la malla de la imagen 112. De manera similar, el bloque/módulo de generación de imágenes de caricaturas 120 puede manipular los píxeles no vértices de la imagen 104 de acuerdo con un mapeo de píxeles no vértices indicado en la acción de caricatura 118. Como se describe anteriormente, el mapeo de píxeles no vértices puede generarse mediante una interpolación del mapeo de los vértices de la malla de la imagen 112 y puede aplicarse una deformación de textura a los píxeles.
[0034] la Figura 2 es un diagrama de flujo que ilustra una configuración de un procedimiento 200 para la caricaturización de imágenes interactiva mediante un dispositivo electrónico 102. El dispositivo electrónico 102 puede detectar 202 al menos una ubicación de rasgo 108 de una imagen 104. Por ejemplo, el dispositivo electrónico 102 puede detectar 202 al menos una ubicación de rasgo facial 108 de una imagen facial 104. Ejemplos de rasgos faciales incluyen las esquinas de los ojos, la punta de la nariz, las esquinas de la nariz, las esquinas de la boca, la frente, el mentón, las orejas, las mejillas, etc. El dispositivo electrónico 102 puede utilizar uno o más enfoques para determinar ubicaciones de rasgos 108 en la imagen 104. Por ejemplo, el dispositivo electrónico 102 puede determinar ubicaciones de píxeles de los contornos o bordes del rostro (por ejemplo, superior, lateral, inferior o mentón, etc.), ojos, nariz (por ejemplo, fosas nasales), boca, frente, etc. de una imagen facial 104.
[0035] En algunas implementaciones, la imagen 104 puede ser una que fue detectada por un dispositivo de detección de imagen (por ejemplo, una cámara o un escáner) que está acoplado al dispositivo electrónico 102. En otras implementaciones, la imagen 104 puede ser una que fue recibida por otro dispositivo (por ejemplo, un servidor de Internet, otro dispositivo electrónico, etc.)
[0036] En algunas implementaciones, la imagen 104 puede ser una imagen de caricatura que se ha generado previamente. Por ejemplo, en un ciclo anterior del procedimiento 200, puede haberse generado una imagen de caricatura en base a acciones de caricaturas anteriores (o existentes) y una imagen anterior. En este ejemplo, el procedimiento 200 puede incluir realizar una caricaturización de imágenes en la imagen de caricatura generada previamente.
[0037] El dispositivo electrónico 102 puede generar 204 una malla de la imagen 112 que incluye una cuadrícula de al menos una línea horizontal y al menos una línea vertical. En algunas implementaciones, cada línea puede corresponder a un índice. Por ejemplo, una primera línea horizontal puede tener un primer índice horizontal (H0, por ejemplo) y una segunda línea horizontal puede tener un segundo índice horizontal (H1, por ejemplo). De manera similar, una primera línea vertical puede tener un primer índice vertical (V0, por ejemplo) y una segunda línea vertical puede tener un segundo índice vertical (V1, por ejemplo). La intersección de una línea horizontal y una línea vertical puede dar como resultado un vértice de la malla de la imagen 112. Cada vértice de la malla de la imagen 112 puede especificarse con su índice de línea horizontal (por ejemplo, H0, H1,..., H6) y su índice de línea vertical (por ejemplo, V0, V1,..., V7) en forma de coordenadas. Por ejemplo, las coordenadas (H0, V0) pueden especificar un primer vértice en la intersección de la primera línea horizontal (por ejemplo, H0) y la primera línea vertical (por ejemplo, V0). Cabe destacar que la ubicación real de cada vértice en la malla de la imagen 112, como se indica con las coordenadas de vértice en el sistema de coordenadas de la imagen X-O-Y (por ejemplo, un sistema de coordenadas x, y), puede cambiar después de una acción de caricatura 118.
[0038] En algunas implementaciones, el dispositivo electrónico 102 puede generar 204 una malla de la imagen 112 en base a al menos una ubicación de rasgo 108. Por ejemplo, el dispositivo electrónico 102 puede generar 204 una malla de la imagen 112 en la que al menos un vértice (por ejemplo, la intersección de una línea horizontal y una línea vertical) corresponde a una ubicación de rasgo 108. Por ejemplo, el dispositivo electrónico 102 puede generar 204 una malla de la imagen 112 en la que los vértices pueden corresponder a una o más esquinas de los ojos, las esquinas de la boca, las esquinas de la nariz, etc. Cabe destacar que, en algunos casos, una o más rasgos (y los vértices correspondientes) pueden caer en la misma línea horizontal. Por ejemplo, las esquinas de los ojos pueden corresponder a los vértices de la malla de la imagen 112 que corresponden a la misma línea horizontal.
[0039] El dispositivo electrónico 102 puede obtener 206 al menos una entrada de gesto 114. Como se describe anteriormente, en algunas implementaciones, la(s) entrada(s) de gesto(s) 114 puede(n) ser una entrada táctil. En estas implementaciones, el dispositivo electrónico 102 puede incluir (o estar acoplado a) una pantalla táctil que detecta una entrada táctil. En otras implementaciones, el dispositivo electrónico puede obtener 206 la(s) entrada(s) de gesto(s) 114 a través de un dispositivo de detección de movimiento que está acoplado al dispositivo electrónico 102. En este ejemplo, el dispositivo electrónico 102 puede obtener 206 la(s) entrada(s) de gesto(s) 114 sin contacto físico con el dispositivo electrónico 102. En algunas implementaciones, obtener 206 al menos una entrada de gesto 114 puede incluir determinar una dirección de la(s) entrada(s) de gesto(s) 114. Por ejemplo, una pantalla táctil puede detectar una entrada de gesto vertical 114. De manera similar, la pantalla táctil puede detectar una entrada de gesto horizontal 114.
[0040] En algunas implementaciones, el dispositivo electrónico 102 puede obtener 206 múltiples entradas de gestos 114. Por ejemplo, una pantalla táctil acoplada al dispositivo electrónico 102 puede recibir entradas táctiles de múltiples objetos (por ejemplo, dos dedos) simultáneamente. En este ejemplo, la pantalla táctil también puede detectar el movimiento relativo de las entradas de gestos 114. Por ejemplo, la pantalla táctil puede detectar si las entradas de gestos 114 se están acercando o separando.
[0041] La pantalla táctil puede detectar si las entradas de gestos 114 están alineadas. Por ejemplo, la pantalla táctil puede detectar si los puntos de inicio de las entradas de gestos 114 están alineados horizontalmente o alineados verticalmente. En algunas implementaciones, estar alineado puede indicar que los puntos de inicio de las entradas de gestos 114 caen sustancialmente en la misma línea (por ejemplo, la misma línea horizontal para las entradas de gestos alineadas horizontalmente 114 y la misma línea vertical para las entradas de gestos alineadas verticalmente 114). En otras implementaciones, determinar si las entradas de gestos 114 están alineadas puede incluir determinar si las entradas de gestos 114 están dentro de un ángulo umbral entre sí. En otras implementaciones más, estar alineado puede significar que los puntos de inicio de las entradas de gestos 114 están a menos de una distancia umbral de una línea de la malla de la imagen 112.
[0042] El dispositivo electrónico 102 puede determinar 208 al menos una acción de caricatura 118 en base a al menos una entrada de gesto 114. La acción de caricatura 118 puede proporcionar información de desplazamiento para al menos un vértice de la malla de la imagen 112. La información de desplazamiento puede indicar cómo se pueden manipular las ubicaciones de rasgos 108 de una imagen 104 (y los vértices de la malla de la imagen 112) para generar una imagen de caricatura 122. Por ejemplo, si el dispositivo electrónico 102 obtiene 206 dos entradas de gestos 114 que se alejan entre sí en una dirección vertical (por ejemplo, una entrada de gesto vertical de abrir los dedos 114), la acción de caricatura 118 puede incluir información que indica que uno o más vértices también se pueden alejar entre sí. Cabe destacar que en algunas implementaciones, la distancia que se mueven los vértices puede ser igual o diferente al movimiento de las entradas de gestos 114. Se proporciona más detalle con respecto al movimiento de vértices en base a la entrada de gesto 114 en conexión con las Figuras 8-11 a continuación. En este ejemplo, la acción de caricatura 118 puede proporcionar un mapa de píxeles de vértices que mapea un píxel de vértice de imagen a su píxel de vértice de imagen de caricatura correspondiente en base a la información de desplazamiento. El mapa de píxeles puede indicar cómo se puede mover un píxel en particular en base a la entrada de gesto 114.
[0043] El dispositivo electrónico 102 puede generar 210 una imagen de caricatura 122 en base a la malla de la imagen 112, la al menos una acción de caricatura 118 y la imagen 104 (o una imagen de caricatura generada previamente). En algunas implementaciones, generar 210 una imagen de caricatura 122 puede incluir aplicar la al menos una acción de caricatura 118 a la imagen 104 (o imagen de caricatura generada previamente). Por ejemplo, como se describe anteriormente, la al menos una acción de caricatura 118 puede incluir un mapeo de al menos un vértice en la imagen 104 (o imagen de caricatura generada previamente) antes de la entrada de gesto 114 con un vértice correspondiente en la imagen de caricatura 122 después de la entrada de gesto 114. En este ejemplo, el dispositivo electrónico 102 puede aplicar el mapeo y mover las ubicaciones de rasgos correspondientes 108 de la imagen 104 (o imagen de caricatura generada previamente) y/o los vértices de la malla de la imagen 112.
[0044] Generar 210 una imagen de caricatura 112 también puede incluir la manipulación de uno o más píxeles que no están asociados con un vértice de la malla de la imagen 112. Por ejemplo, la acción de caricatura 118 puede incluir una interpolación de la ubicación de otros píxeles (por ejemplo, píxeles que no corresponden a un vértice) en la imagen de caricatura 122. En este ejemplo, el dispositivo electrónico 102 puede interpolar la ubicación de otros píxeles en base al mapa de píxeles y realizar una deformación de textura en los píxeles.
[0045] la Figura 3 ilustra una imagen facial 304 y ejemplos de imágenes de caricaturas 322a-c que pueden generarse usando los sistemas y procedimientos divulgados en el presente documento. Como se describe anteriormente, el dispositivo electrónico 102 puede recibir la imagen facial 304 a través de un dispositivo de detección de imagen (por ejemplo, cámara o escáner) que está acoplado al dispositivo electrónico 102. En algunas implementaciones, se pueden generar múltiples imágenes de caricaturas 322a-c. Por ejemplo, se puede generar una primera imagen de caricatura 322a en base a un primer conjunto de acciones de caricaturas 118 y la imagen facial 304. En este ejemplo, un primer conjunto de entradas de gestos 114 puede indicar el primer conjunto de acciones de caricaturas 118 como se describe en el presente documento. En este ejemplo, el dispositivo electrónico 102 puede mantener una lista de acciones de caricaturas que incluye las acciones de caricaturas que se han aplicado a la imagen facial 304. Por ejemplo, la lista de acciones de caricaturas puede incluir el primer conjunto de acciones de caricaturas 118.
[0046] En algunos ejemplos, se puede generar una segunda imagen de caricatura 322b en base a un segundo conjunto de acciones de caricaturas 118 y la primera imagen de caricatura 322a. En este ejemplo, un segundo conjunto de entradas de gestos 114 puede indicar el segundo conjunto de acciones de caricaturas 118. El segundo conjunto de acciones de caricaturas 118 puede agregarse a la lista de acciones de caricaturas (por ejemplo, que incluye el primer conjunto de acciones de caricaturas 118).
[0047] En algunos ejemplos, se puede generar una tercera imagen de caricatura 322c en base a un tercer conjunto de acciones de caricaturas 118 y la segunda imagen de caricatura 322b. En este ejemplo, un tercer conjunto de entradas de gestos 114 puede indicar el tercer conjunto de acciones de caricaturas 118. El tercer conjunto de acciones de caricaturas 118 puede agregarse a la lista de acciones de caricaturas (por ejemplo, que incluye el primer conjunto de acciones de caricaturas 118 y el segundo conjunto de acciones de caricaturas 118). Cabe destacar que cada imagen de caricatura 322a-b puede ser el resultado de las acciones de caricaturas anteriores 118. Por ejemplo, la tercera imagen de caricatura 322c puede ser el resultado del primer, segundo y tercer conjunto de acciones de caricaturas 118 que se aplican a la imagen facial 304.
[0048] La Figura 4 ilustra un ejemplo de un modelo basado en malla en el que se pueden implementar sistemas y procedimientos para la caricaturización de imágenes interactiva. En algunas implementaciones, el modelo basado en malla puede incluir una malla de la imagen 412 superpuesta sobre una imagen 404. La malla de la imagen 412 y la imagen 404 pueden ser ejemplos de los elementos correspondientes descritos en conexión con la Figura 1. Como se describe anteriormente, la malla de la imagen 412 puede incluir vértices 428 que corresponden a ubicaciones de rasgos 108. Por ejemplo, los vértices A, B, C y D 428a-d pueden corresponder a ubicaciones de rasgos de la esquina del ojo 108. Los vértices E y F 428e-f pueden corresponder a las ubicaciones de los rasgos de la esquina de la nariz 108. Los vértices G y H 428g-h pueden corresponder a las ubicaciones de los rasgos de la esquina de la boca 108.
[0049] Como se describe anteriormente, la malla de la imagen 412 puede incluir al menos una línea horizontal 424 y al menos una línea vertical 426. Cada línea horizontal 424 y línea vertical 426 pueden identificarse mediante un índice de línea. Por ejemplo, la primera línea horizontal 424a puede tener un índice de línea horizontal de H0. De manera similar, las otras líneas horizontales 424b-g pueden tener índices de línea horizontal correspondientes H1-H6. Cada línea horizontal 424 también puede incluir una o más ubicaciones de rasgos 108. Por ejemplo, de arriba a abajo, la primera línea horizontal (por ejemplo, H0) 424a puede ser el borde superior de la imagen, la segunda línea horizontal (por ejemplo, H1) 424b puede definirse por la frente, la tercera línea horizontal (por ejemplo, H2) 424c puede cruzar los dos ojos, la cuarta línea horizontal (por ejemplo, H3) 424d puede cruzar las fosas nasales, la quinta línea horizontal (por ejemplo, H4) 424e puede definirse por la boca, la sexta línea horizontal (por ejemplo, H5) 424f puede definirse por el mentón, y la última línea horizontal (por ejemplo, H6) 424g puede ser el borde inferior de la imagen.
[0050] De manera similar, cada línea vertical 426a-h puede tener un índice de línea vertical V0-V7 y también puede incluir una o más ubicaciones de rasgos. Por ejemplo, de izquierda a derecha, la primera línea vertical (por ejemplo, V0) 426a puede ser el borde izquierdo de la imagen, la segunda línea vertical (por ejemplo, V1) 426b puede definirse por el punto de contorno del rostro más a la izquierda, la tercera línea vertical (por ejemplo, V2) 426c puede definirse por la esquina exterior izquierda del ojo, la cuarta línea vertical (por ejemplo, V3) 426d puede definirse por la esquina interior izquierda del ojo, la quinta línea vertical (por ejemplo, V4) 426e puede definirse por la esquina interior derecha del ojo, la sexta línea vertical (por ejemplo, V5) 426f puede definirse por la esquina exterior derecha del ojo, la séptima línea vertical (por ejemplo, V6) 426f puede definirse por el punto de contorno del rostro más a la derecha y la última línea vertical (por ejemplo, V7) 426h puede definirse por el borde derecho de la imagen.
[0051] Cada vértice en la malla de la imagen 412 puede especificarse con su índice de línea horizontal (por ejemplo, H0, H1,..., H6) y su índice de línea vertical (por ejemplo, V0, V1,..., V7). Por ejemplo, el vértice A 428a (por ejemplo, correspondiente a la ubicación de la característica de la esquina exterior del ojo izquierdo 108) puede ser Vert (H2, V2). Cabe destacar que la ubicación de cada vértice en la imagen 404, como se indica con las coordenadas de vértice en el sistema de coordenadas de la imagen X-O-Y (por ejemplo, un sistema de coordenadas x, y), puede cambiar después de una acción de caricatura 118.
[0052] la Figura 5 es un diagrama de bloques que ilustra una configuración más específica de un dispositivo electrónico 502 en el que pueden implementarse sistemas y procedimientos para la caricaturización de imágenes interactiva. El dispositivo electrónico 502 puede ser un ejemplo del dispositivo electrónico 102 descrito en conexión con la Figura 1. El dispositivo electrónico 502 puede incluir uno o más de un bloque/módulo de detección de ubicación de rasgos 506, un bloque/módulo de generación de malla de la imagen 510, un bloque/módulo de determinación de acción de caricatura 516 y un bloque/módulo de generación de imágenes de caricaturas 520 que pueden ser ejemplos de los elementos correspondientes descritos en conexión con la Figura 1. En algunas implementaciones, el dispositivo electrónico 502 puede pasar una imagen 504, una o más ubicaciones de rasgos 508, una malla de la imagen 512, una entrada de gesto 514, una acción de caricatura 518 y una imagen de caricatura 522 que pueden ser ejemplos de los elementos correspondientes descritos en conexión con la Figura 1.
[0053] En algunas implementaciones, el dispositivo electrónico 502 puede incluir (o estar acoplado a) una pantalla 536 que muestra al menos uno de entre la imagen 504, la imagen de caricatura 522 y la malla de la imagen 512. En otro ejemplo, el dispositivo electrónico 502 puede estar acoplado a un proyector y puede proyectar la imagen 504, la malla de la imagen 512 y/o la imagen de caricatura 522. En algunas implementaciones, la pantalla 536 puede presentar la malla de la imagen 512 que se puede visualizar, además de una imagen facial 504 como un modelo basado en malla como se representa en la Figura 4. Como se describirá en conexión con la Figura 13, la malla de la imagen 512 también puede visualizarse, además de la imagen de caricatura 522, como una malla de la imagen distorsionada.
[0054] El dispositivo electrónico 502 también puede incluir un bloque/módulo de validación de entrada de gesto 530 que determina si la(s) entrada(s) de gesto(s) 514 es(son) válidas. Por ejemplo, los gestos con los dedos en una pantalla táctil pueden detectarse y verificarse para determinar si son entradas de gestos 514 válidas. Una entrada de gesto 514 válida puede ser una entrada de gesto 514 que es reconocida por el dispositivo electrónico 502. Por ejemplo, una entrada de gesto 514 válida puede ser una a partir de la cual se puede determinar una acción de caricatura 518. Los ejemplos de entradas de gestos 514 válidas incluyen, pero no se limitan a, entradas de gestos de abrir los dedos y cerrar los dedos en direcciones horizontales o verticales.
[0055] En algunas implementaciones, el bloque/módulo de validación de entrada de gesto 530 puede determinar que una entrada de gesto 514 es válida cuando el movimiento de las entradas de gestos 514 entre sí es mayor que un umbral de movimiento. Por ejemplo, cuando dos dedos se mueven horizontal o verticalmente acercándose o alejándose el uno del otro para una distancia mayor que un umbral de movimiento (30 píxeles, por ejemplo), el dispositivo electrónico 502 puede determinar que una entrada de gesto 514 es válida.
[0056] La validación de la entrada de gesto 514 también puede incluir determinar si las entradas de gestos 514 están alineadas. Las entradas de gestos horizontales 514 pueden alinearse horizontalmente si los puntos de inicio de las entradas de gestos 514 caen sustancialmente en la misma línea horizontal de la malla de la imagen 512. De manera similar, las entradas de gestos verticales 514 pueden alinearse verticalmente si los puntos de inicio de las entradas de gestos 514 caen sustancialmente en la misma línea vertical de la malla de la imagen 512. En algunas implementaciones, el dispositivo electrónico 502 puede determinar que las entradas de gestos 514 que no están alineadas no son entradas de gestos 514 válidas. En comparación, el dispositivo electrónico 502 puede determinar que las entradas de gestos 514 que están alineadas son entradas de gestos 514 válidas. Una vez que se ha validado una entrada de gesto 514, se puede proporcionar una entrada de gesto validada 532 al módulo/bloque de determinación de acción de caricatura 516, que puede determinar una acción de caricatura 518 como se describe en conexión con la Figura 2.
[0057] En algunas implementaciones, el dispositivo electrónico 502 puede mantener una lista de acciones de caricaturas 534 que contiene una lista de todas las acciones de caricaturas 518 que se han determinado. En algunas implementaciones, la lista de acciones de caricaturas 534 puede incluir acciones de caricaturas 518 que se han aplicado previamente a la imagen 504, por ejemplo en instancias anteriores del procedimiento 200. En este ejemplo, la acción de caricatura 518 que se está aplicando actualmente se puede agregar a la lista de acciones de caricaturas 534. Por ejemplo, dado que una acción de caricatura 518 se identifica con la entrada de gesto 514, el dispositivo electrónico 502 puede almacenar la acción de caricatura 518 en la lista de acciones de caricaturas 534 (por ejemplo, que puede incluir o no acciones de caricaturas anteriores 518 que se han aplicado a la imagen 504).
[0058] la Figura 6 es un diagrama de flujo que ilustra una configuración más específica de un procedimiento 600 para la caricaturización de imágenes interactiva mediante un dispositivo electrónico 502. El dispositivo electrónico 502 puede detectar 602 al menos una ubicación de rasgo 508 de la imagen 504. En algunas implementaciones, esto puede hacerse como se describe en conexión con la Figura 2.
[0059] En algunas implementaciones, el dispositivo electrónico 502 puede visualizar 604 la imagen 504. Por ejemplo, el dispositivo electrónico 502 puede estar acoplado a una pantalla 536 que presenta la imagen 504. Los ejemplos de la pantalla 536 pueden incluir una pantalla de visualización del dispositivo electrónico 502, un televisor, un proyector, etc. Como se describe anteriormente, la imagen 504 puede ser una imagen de caricatura generada previamente (por ejemplo, generada en base a acciones de caricaturas anteriores o existentes). En este ejemplo, el dispositivo electrónico 502 puede visualizar 604 la imagen de caricatura generada previamente.
[0060] El dispositivo electrónico 502 puede generar 606, en base a al menos una ubicación de rasgo 508, una malla de la imagen 512 que comprende una cuadrícula de al menos una línea horizontal 424 y al menos una línea vertical 426. En algunas implementaciones, esto puede hacerse como se describe en conexión con la Figura 2. En algunas implementaciones, el dispositivo electrónico 502 también puede visualizar la malla de la imagen 512. Por ejemplo, la pantalla 536 puede superponer las líneas horizontales 424 y las líneas verticales 426 de la malla de la imagen 512 en la parte superior de la imagen 504 (o imagen de caricatura generada previamente) como se representa en la Figura 4.
[0061] El dispositivo electrónico 502 puede obtener 608 al menos una entrada de gesto 514. En algunas implementaciones, esto puede hacerse como se describe en conexión con la Figura 2.
[0062] El dispositivo electrónico 502 puede validar 610 la(s) entrada(s) de gesto(s) 514. Validar 610 la(s) entrada(s) de gesto(s) 514 puede incluir determinar si la(s) entrada(s) de gesto(s) 514 son reconocidas por el dispositivo electrónico 502. Validar 610 la(s) entrada(s) de gesto(s) 514 puede incluir determinar si la(s) entrada(s) de gesto(s) 514 pueden determinar una acción de caricatura 518. Por ejemplo, el dispositivo electrónico 502 puede determinar si la entrada de gesto 514 es una entrada de gesto vertical de cerrar los dedos, entrada de gesto vertical de abrir los dedos, entrada de gesto horizontal de cerrar los dedos o entrada de gesto horizontal de abrir los dedos.
[0063] En algunas implementaciones validar 610 la(s) entrada(s) de gesto(s) 514 puede incluir determinar si el movimiento de la(s) entrada(s) de gesto(s) 514 entre sí es mayor que un umbral de movimiento. Por ejemplo, cuando dos dedos se mueven horizontal o verticalmente acercándose o alejándose el uno del otro en una cantidad mayor que un cierto número de píxeles (por ejemplo, 30 píxeles, por ejemplo), la entrada de gesto 514 puede determinarse como válida. En comparación, si los dedos no se han acercado o alejado el uno del otro en una cantidad mayor que el cierto número de píxeles, el dispositivo electrónico 502 puede determinar 610 que la entrada de gesto 514 no es válida.
[0064] La validación 610 de la entrada de gesto 514 también puede incluir determinar si las entradas de gestos 514 están alineadas. Por ejemplo, las entradas de gestos 514 que están alineadas pueden determinarse como válidas. En comparación, las entradas de gestos 514 que no están alineadas se pueden determinar como no válidas. Las entradas de gestos 514 pueden estar alineadas vertical u horizontalmente. Las entradas de gestos 514 pueden alinearse si los puntos de inicio de las entradas de gestos 514 caen sustancialmente en la misma línea (por ejemplo, la misma línea horizontal para las entradas de gestos alineadas horizontalmente 514 y la misma línea vertical para las entradas de gestos alineadas verticalmente 514) de la malla de la imagen 512. En otra implementación, las entradas de gestos alineadas verticalmente 514 pueden estar dentro de un cierto umbral de ángulo entre sí. En otra implementación, las entradas de gestos alineadas 514 pueden estar dentro de un cierto umbral de ángulo entre sí.
[0065] El dispositivo electrónico 502 puede determinar 612 al menos una acción de caricatura 518 en base a al menos una entrada de gesto 514. En algunas implementaciones, esto puede hacerse como se describe en conexión con la Figura 2.
[0066] El dispositivo electrónico 502 puede mantener 614 una lista de acciones de caricaturas 534. En algunas implementaciones, la lista de acciones de caricaturas 534 puede contener una lista de todas las acciones de caricaturas 518 que se han aplicado previamente a la imagen 504 (o imagen de caricatura generada previamente). En algunas implementaciones, mantener 614 una lista de acciones de caricaturas 534 puede incluir agregar una acción de caricatura usada actualmente 518 a la lista de acciones de caricaturas 534. Por ejemplo, en base a un primer conjunto de entradas de gestos 514, se puede determinar una primera acción de caricatura 518. En este ejemplo, el dispositivo electrónico 502 puede almacenar la acción de caricatura 518 en la lista de acciones de caricaturas 534. De manera similar, si un segundo conjunto de entradas de gestos 514 provoca una segunda acción de caricatura 518, el dispositivo electrónico 502 puede agregar la segunda acción de caricatura 518 a la lista de acciones de caricaturas 534, que en este punto puede incluir la primera acción de caricatura 518 (y cualesquiera acciones de caricaturas aplicadas previamente 518).
[0067] El dispositivo electrónico 502 puede generar 616 una imagen de caricatura 522 en base a la malla de la imagen 512, la al menos una acción de caricatura 518 y la imagen 504 (o la imagen de caricatura generada previamente). En algunas implementaciones, esto puede hacerse como se describe en conexión con la Figura 2. Como se describirá a continuación, en algunas configuraciones, se pueden aplicar múltiples acciones de caricaturas 518 (por ejemplo, el primer conjunto y el segundo conjunto) a la imagen 504 (o imagen de caricatura generada previamente) simultáneamente. Por ejemplo, las nuevas ubicaciones de todos los vértices (por ejemplo, en la imagen de caricatura 522) como consecuencia de todas las acciones de caricaturas 518 se pueden calcular y luego se puede aplicar una vez una única deformación de textura a la imagen 504 (o imagen de caricatura generada previamente) para generar la imagen de caricatura 522.
[0068] En algunas implementaciones, el dispositivo electrónico 502 puede visualizar 618 la imagen de caricatura 522. Por ejemplo, el dispositivo electrónico 502 puede incluir (o estar acoplado a) una pantalla 536 que presenta la imagen de caricatura 522. Los ejemplos de la pantalla 536 incluyen una pantalla de visualización del dispositivo electrónico 502, un televisor, un proyector, etc. En algunas implementaciones, el dispositivo electrónico 502 también puede visualizar la malla de la imagen 512. Por ejemplo, la pantalla 536 puede superponer una malla de la imagen distorsionada (por ejemplo, en base a las acciones de caricaturas 518) en la imagen de caricatura 522 como se describirá en conexión con la Figura 13. Cabe destacar que la malla de la imagen distorsionada como se visualiza con la imagen de caricatura 522 puede ser diferente de la malla de la imagen 512 como se visualiza con la imagen 504. Por ejemplo, en la malla de la imagen distorsionada visualizada con la imagen de caricatura 522, el espacio entre uno o más vértices (o una o más líneas) puede ser mayor o menor que el espacio en la malla de la imagen 512 visualizada con la imagen 504.
[0069] La Figura 7 es un diagrama de flujo que ilustra una configuración de un procedimiento 700 para validar la(s) entrada(s) de gesto(s) 514 mediante un dispositivo electrónico 502. El dispositivo electrónico 502 puede obtener 702 múltiples entradas de gestos 514 (por ejemplo, dos dedos moviéndose en una pantalla táctil). En algunas implementaciones, esto puede hacerse como se describe en conexión con la Figura 2.
[0070] El dispositivo electrónico 502 puede determinar 704 si las entradas de gestos 514 están alineadas verticalmente. En algunas implementaciones, las entradas de gestos 514 pueden estar alineadas verticalmente si las entradas de gestos 514 (los puntos de inicio de entrada de gesto, por ejemplo) caen sustancialmente en la misma línea vertical 426. En comparación, las entradas de gestos 514 pueden no estar alineadas verticalmente si las entradas de gestos 514 no caen sustancialmente en la misma línea vertical 426. En otro ejemplo, el dispositivo electrónico 502 puede determinar 704 que las entradas de gestos 514 están alineadas verticalmente si las entradas de gestos 514 están dentro de un cierto ángulo umbral entre sí. En comparación, el dispositivo electrónico 502 puede determinar 704 que las entradas de gestos 514 no están alineadas verticalmente si las entradas de gestos 514 no están dentro de un cierto ángulo umbral entre sí. En otra implementación más, el dispositivo electrónico 502 puede determinar 704 que las entradas de gestos 514 están alineadas verticalmente si las entradas de gestos 514 están a menos de una distancia umbral lejos de la misma línea vertical. A la inversa, el dispositivo electrónico 502 puede determinar 704 que las entradas de gestos 514 no están alineadas verticalmente si son mayores que una distancia umbral lejos de la misma línea vertical.
[0071] Si el dispositivo electrónico 502 determina 704 que las entradas de gestos 514 están alineadas verticalmente, el dispositivo electrónico 502 puede determinar 706 si el movimiento vertical de las entradas de gestos 514 es mayor que un umbral de movimiento. Por ejemplo, el dispositivo electrónico 502 puede determinar 706 si las dos entradas de gestos 514 (por ejemplo, los dos dedos que se mueven en la pantalla táctil) se mueven entre sí (ya sea alejándose o acercándose) en una cantidad que es al menos igual a un número determinado de píxeles (por ejemplo, treinta). Si el dispositivo electrónico 502 determina 706 que el movimiento vertical de las entradas de gestos 514 no es mayor que un umbral de movimiento, el dispositivo electrónico 502 puede determinar 708 que las entradas de gestos 514 no son válidas.
[0072] Sin embargo, si el dispositivo electrónico 502 determina 706 que el movimiento vertical de las entradas de gestos 514 es mayor que el umbral de movimiento, el dispositivo electrónico 502 puede determinar 710 si las entradas de gestos 514 se están acercando verticalmente. Por ejemplo, el dispositivo electrónico 502 puede determinar 710 que las entradas de gestos 514 se están acercando si el número de píxeles entre las entradas de gestos 514 en los puntos de inicio es mayor que el número de píxeles entre las entradas de gestos 514 al final del movimiento. En otras palabras, el dispositivo electrónico 502 puede determinar 710 que las entradas de gestos 514 se están acercando si el número de píxeles entre las entradas de gestos 514 se está reduciendo. En comparación, el dispositivo electrónico 502 puede determinar 710 que las entradas de gestos 514 se están separando si el número de píxeles entre las entradas de gestos 514 en los puntos de inicio es menor que el número de píxeles entre las entradas de gestos 514 al final del movimiento. En otras palabras, el dispositivo electrónico 502 puede determinar 710 que las entradas de gestos 514 se están separando si el número de píxeles entre las entradas de gestos 514 está aumentando.
[0073] Si el dispositivo electrónico 502 determina 710 que las entradas de gestos 514 se están acercando verticalmente, el dispositivo electrónico 502 puede determinar 712 que la entrada de gesto 514 es una entrada de gesto vertical de cerrar los dedos 514. En comparación, si el dispositivo electrónico 502 determina 710 que las entradas de gestos 514 no se están acercando verticalmente (por ejemplo, se están separando más verticalmente), el dispositivo electrónico 502 puede determinar 714 que la entrada de gesto 514 es una entrada de gesto vertical de abrir los dedos 514.
[0074] Si el dispositivo electrónico 502 determina 704 que las entradas de gestos 514 no están alineadas verticalmente, el dispositivo electrónico 502 puede determinar 716 si el movimiento horizontal de las entradas de gestos 514 es mayor que un umbral de movimiento. Por ejemplo, el dispositivo electrónico 502 puede determinar 716 si las dos entradas de gestos 514 (por ejemplo, los dos dedos que se mueven en la pantalla táctil) se mueven entre sí (ya sea alejándose o acercándose) en una cantidad que es al menos igual a un número determinado de píxeles (por ejemplo, treinta). Si el dispositivo electrónico 502 determina 716 que el movimiento horizontal de la(s) entrada(s) de gesto(s) 514 no es mayor que un umbral de movimiento, el dispositivo electrónico 502 puede determinar 708 que la(s) entrada(s) de gesto(s) 514 no son válidas.
[0075] Sin embargo, si el dispositivo electrónico 502 determina 716 que el movimiento horizontal de las entradas de gestos 514 es mayor que el umbral de movimiento, el dispositivo electrónico 502 puede determinar 718 si las entradas de gestos 514 se están acercando horizontalmente. Por ejemplo, el dispositivo electrónico 502 puede determinar 718 que las entradas de gestos 514 se están acercando horizontalmente si el número de píxeles entre las entradas de gestos 514 en los puntos de inicio es mayor que el número de píxeles entre las entradas de gestos 514 al final del movimiento. En otras palabras, el dispositivo electrónico 502 puede determinar 718 que las entradas de gestos 514 se están acercando horizontalmente si el número de píxeles entre las entradas de gestos 514 se está reduciendo. En comparación, el dispositivo electrónico 502 puede determinar 718 que las entradas de gestos 514 se están separando si el número de píxeles entre las entradas de gestos 514 en los puntos de inicio es menor que el número de píxeles entre las entradas de gestos 514 al final del movimiento. En otras palabras, el dispositivo electrónico 502 puede determinar 718 que las entradas de gestos 514 se están separando si el número de píxeles entre las entradas de gestos 514 está aumentando.
[0076] Si el dispositivo electrónico 502 determina 718 que las entradas de gestos 514 se están acercando horizontalmente, el dispositivo electrónico 502 puede determinar 720 que la entrada de gesto 514 es una entrada de gesto horizontal de cerrar los dedos 514. En comparación, si el dispositivo electrónico 502 determina 718 que las entradas de gestos 514 no se están acercando horizontalmente (por ejemplo, se están separando más horizontalmente), el dispositivo electrónico 502 puede determinar 722 que la entrada de gesto 514 es una entrada de gesto horizontal de abrir los dedos 514. Cabe destacar que uno o más de las etapas en el procedimiento 700 pueden realizarse mediante una pantalla táctil del dispositivo electrónico 502. Por ejemplo, la pantalla táctil puede detectar la alineación vertical, horizontal y/o si el movimiento es mayor que un umbral de movimiento.
[0077] La Figura 8 ilustra un ejemplo de una entrada de gesto vertical de abrir los dedos. Más concretamente, la Figura 8 ilustra una entrada de gesto vertical de abrir los dedos (imagen izquierda) y una malla de la imagen distorsionada 812b resultante de la acción de caricatura 118 correspondiente (imagen derecha). Como se describe anteriormente, en algunas implementaciones, una pantalla táctil 838 puede estar acoplada al dispositivo electrónico 102. En este ejemplo, una entrada de gesto vertical de abrir los dedos puede incluir múltiples entradas de gestos 814a-b para generar una imagen de caricatura 122.
[0078] En este ejemplo, un primer punto de inicio de entrada de gesto 840a (por ejemplo, una posición de inicio de la punta del dedo en la pantalla táctil 838) puede mapearse a un primer vértice 828a con coordenadas (X1 inicio, Y1 inicio) y un segundo punto de inicio de entrada de gesto 840b puede mapearse a un segundo vértice 828b con coordenadas (X2inicio, Y2inicio) en el sistema de coordenadas de la imagen para la interpretación de una acción de caricatura 118. El primer vértice 828a y el segundo vértice 828b pueden corresponder a ubicaciones de rasgos 108 de la imagen 804. Por ejemplo, el primer vértice 828a puede corresponder a la esquina interior del ojo derecho y el segundo vértice 828b puede corresponder a la esquina derecha de la boca. Como se describe anteriormente, una acción de caricatura 118 contiene información sobre qué vértices de la malla de la imagen 812a pueden cambiar de ubicación. Cabe destacar que, como se representa en la Figura 8, los puntos de inicio de entrada de gestos 840a-b pueden no alinearse exactamente con los vértices 828a-b. En este ejemplo, los puntos de inicio de entrada de gestos 840a-b pueden mapearse a los vértices 828a-b que están más cercanos a los puntos de inicio de entrada de gestos 840a-b. En otro ejemplo, los puntos de inicio de entrada de gestos 840a-b pueden mapearse a la línea vertical más cercana a los puntos de inicio de entrada de gestos 840a-b.
[0079] Una acción de caricatura vertical 118 puede incluir cuatro elementos, una dirección de caricaturización (por ejemplo, Cd), un índice (por ejemplo, Ch1) de la primera línea horizontal afectada (desde arriba) 824a en la malla de la imagen 812a, un índice (por ejemplo, Ch2) de la última línea horizontal afectada (desde arriba) 824b (por ejemplo, Ch2) y un nivel de caricaturización vertical predefinido con un valor entre 0 y 1. Para simplificar, en la Figura 8, las líneas horizontales pueden ser referidas por sus índices.
[0080] Para una acción de caricatura vertical 118, suponiendo que Y1 inicio es mayor que Y2inicio, entonces la línea Ch1 824a puede ser la línea horizontal más cercana a Y1 inicio y la línea Ch2824b puede ser la línea horizontal más cercana a Y2inicio. En este ejemplo, los vértices en la línea Ch1 824a (que puede incluir el primer vértice 828a) y los vértices en la línea Ch2824b (que puede incluir el segundo vértice 828b) y los vértices en la línea horizontal entre la línea Ch1 824a y la línea Ch2824b pueden cambiar de posición.
[0081] Si el gesto del dedo es una entrada de gesto vertical de abrir los dedos 814 como se representa en la Figura 8, entonces todos los vértices de la malla de la imagen 812a en la línea Ch1 824a pueden escalar hacia la línea Ch1-1 824c en un valor igual al nivel de la acción de caricatura vertical (por ejemplo, CLv) multiplicado por la distancia actual entre la línea Ch1 824a y la línea Ch1-1 824c como se representa en la malla de la imagen distorsionada 812b. De manera similar, todos los vértices en la línea Ch2824b pueden bajar hacia la línea Ch2+1 824d por un valor igual al nivel de la acción de caricatura vertical (por ejemplo, CLv) multiplicado por la distancia actual entre la línea Ch2 824b y la línea Ch2+1 824d como se representa en la malla de la imagen distorsionada 812b. Mientras tanto, las nuevas ubicaciones de los vértices en las líneas horizontales entre la línea Ch1 824a y la línea Ch2 824b pueden determinarse por interpolación lineal desde las nuevas ubicaciones de los vértices en la línea Ch1 824a y las de la línea Ch2 824b.
[0082] La Figura 9 ilustra un ejemplo de una entrada de gesto vertical de cerrar los dedos. Más concretamente, la Figura 9 ilustra una entrada de gesto vertical de cerrar los dedos (imagen izquierda) y una malla de la imagen distorsionada 912b que resulta de la acción de caricatura 118 correspondiente (imagen derecha). Como se describe anteriormente, en algunas implementaciones, una pantalla táctil 938 puede estar acoplada al dispositivo electrónico 102. En este ejemplo, una entrada de gesto vertical de cerrar los dedos puede incluir múltiples entradas de gestos 914a-b para generar una imagen de caricatura 122.
[0083] En este ejemplo, un primer punto de inicio de entrada de gesto 940a (por ejemplo, una posición de inicio de la punta del dedo en la pantalla táctil 938) puede mapearse a un primer vértice 928a con coordenadas (X1 inicio, Y1 inicio) y un segundo punto de inicio de entrada de gesto 940b puede mapearse a un segundo vértice 928b con coordenadas (X2inicio, Y2inicio) en el sistema de coordenadas de la imagen para la interpretación de una acción de caricatura 118. El primer vértice 928a y el segundo vértice 928b pueden corresponder a ubicaciones de rasgos 108 de la imagen 904. Por ejemplo, el primer vértice 928a puede corresponder a la esquina interior del ojo derecho y el segundo vértice 928b puede corresponder a la esquina derecha de la boca. Como se describe anteriormente, una acción de caricatura 118 contiene información sobre qué vértices de la malla de la imagen 912a pueden cambiar de ubicación. Cabe destacar que, como se representa en la Figura 9, los puntos de inicio de entrada de gestos 940a-b pueden no alinearse exactamente con los vértices 928a-b. En este ejemplo, los puntos de inicio de entrada de gestos 940a-b pueden mapearse a los vértices 928a-b que están más cercanos a los puntos de inicio de entrada de gestos 940a-b. En otro ejemplo, los puntos de inicio de entrada de gestos 940a-b pueden mapearse a la línea vertical más cercana a los puntos de inicio de entrada de gestos 940a-b.
[0084] Una acción de caricatura vertical 118 puede incluir cuatro elementos, una dirección de caricaturización (por ejemplo, Cd), un índice (por ejemplo, Ch1) de la primera línea horizontal afectada (desde arriba) 924a en la malla de la imagen 912a, un índice (por ejemplo, Ch2) de la última línea horizontal afectada (desde arriba) 924b (por ejemplo, Ch2) y un nivel de caricaturización vertical predefinido con un valor entre 0 y 1. Para simplificar, en la Figura 9, las líneas horizontales pueden ser referidas por sus índices.
[0085] Para una acción de caricatura vertical 118, suponiendo que Y1 inicio es mayor que Y2inicio, entonces la línea Ch1 924a puede ser la línea horizontal más cercana a Y1 inicio y la línea Ch2924b puede ser la línea horizontal más cercana a Y2inicio. En este ejemplo, los vértices en la línea Ch1 924a (que puede incluir el primer vértice 928a) y los vértices en la línea Ch2924b (que puede incluir el segundo vértice 928b) y los vértices en la línea horizontal entre la línea Ch1 924a y la línea Ch2924 pueden cambiar de posición.
[0086] Si el gesto del dedo es una entrada de gesto vertical de cerrar los dedos 914 como se representa en la Figura 9, entonces todos los vértices de la malla de la imagen 912a en la línea Ch1 924a pueden bajar hacia la línea Ch1+1 924c en un valor igual al nivel de la acción de caricatura vertical (por ejemplo, CLv) multiplicado por la distancia actual entre la línea Ch1 924a y la línea Ch1+1 924c como se representa en la malla de la imagen distorsionada 912b. De manera similar, todos los vértices en la línea Ch2924b pueden escalar hacia la línea Ch2-1 en un valor igual al nivel de la acción de caricatura vertical (por ejemplo, CLv) multiplicado por la distancia actual entre la línea Ch2 924b y la línea Ch2-1 como se representa en la malla de la imagen distorsionada 912b. Como se muestra en la Figura 9, la línea Ch2-1 puede ser la misma que la línea Ch1+1 924c. En otras palabras, todos los vértices en la línea Ch2924b pueden escalar hacia la línea Ch1+1 924c por un valor igual al nivel de la acción de caricatura vertical (por ejemplo, CLv) multiplicado por la distancia actual entre la línea Ch2924b y la línea Ch1+1 924c como se representa en la malla de la imagen distorsionada 912b. Mientras tanto, las nuevas ubicaciones de los vértices en las líneas horizontales entre la línea Ch1 924a y la línea Ch2924b pueden determinarse por interpolación lineal desde las nuevas ubicaciones de los vértices en la línea Ch1 924a y las de la línea Ch2924b.
[0087] La Figura 10 ilustra un ejemplo de una entrada de gesto horizontal de abrir los dedos. Más concretamente, la Figura 10 ilustra una entrada de gesto horizontal de abrir los dedos (imagen izquierda) y una malla de la imagen distorsionada 1012b resultante de la acción de caricatura 118 correspondiente (imagen derecha). Como se describe anteriormente, en algunas implementaciones, una pantalla táctil 1038 puede estar acoplada al dispositivo electrónico 102. En este ejemplo, una entrada de gesto horizontal de abrir los dedos puede incluir múltiples entradas de gestos 1014a-b para generar una imagen de caricatura 122.
[0088] En este ejemplo, un primer punto de inicio de entrada de gesto 1040a (por ejemplo, una posición de inicio de la punta del dedo en la pantalla táctil 1038) puede mapearse a un primer vértice 1028a y un segundo punto de inicio de entrada de gesto 1040b puede mapearse a un segundo vértice 1028b en el sistema de coordenadas de la imagen para la interpretación de una acción de caricatura 118. El primer vértice 1028a y el segundo vértice 1028b pueden corresponder a ubicaciones de rasgos 108 de la imagen 1004. Por ejemplo, el primer vértice 1028a puede corresponder a la esquina exterior del ojo izquierdo y el segundo vértice 1028b puede corresponder a la esquina interior del ojo derecho. Como se describe anteriormente, una acción de caricatura 118 contiene información sobre qué vértices de la malla de la imagen 1012a pueden cambiar de ubicación. Cabe destacar que, como se representa en la Figura 10, los puntos de inicio de entrada de gestos 1040a-b pueden no alinearse exactamente con los vértices 1028a-b. En este ejemplo, los puntos de inicio de entrada de gesto 1040a-b pueden mapearse a los vértices 1028a-b que están más cercanos a los puntos de inicio de entrada de gesto 1040a-b.
[0089] Una acción de caricatura horizontal 118 puede incluir cinco elementos: una dirección de caricaturización (por ejemplo, Cd), un índice (por ejemplo, Ch) de la línea de control horizontal afectada 1024, un índice (por ejemplo, Cv1) del primer vértice afectado 1028a en la línea de control horizontal 1024, un índice (por ejemplo, Cv2) del último vértice afectado 1028b en la línea de control horizontal 1024 y un nivel de caricaturización horizontal predefinido (por ejemplo, CLh). En este ejemplo, la dirección de caricatura puede ser horizontal y la línea de control horizontal afectada 1024 puede ser la línea horizontal más cercana al punto medio (por ejemplo, en la dirección vertical) de los puntos de inicio 1040a-b de las entradas de gestos. Para simplificar, en la Figura 10, se puede hacer referencia a las líneas con su índice correspondiente.
[0090] En algunas implementaciones, el vértice Cv1 1028a y el vértice Cv2 1028b pueden definirse como los dos vértices que están más cerca del primer punto de inicio de entrada de gesto 1040a (por ejemplo, X1 inicio, Y1 inicio) y el segundo punto de inicio de entrada de gesto 1040b (por ejemplo, X2inicio, Y2inicio). El vértice Cv1 1028a y el vértice Cv2 1028b también se pueden definir como dos vértices específicos, independientemente de las ubicaciones de los puntos de inicio de entrada de gestos 1040a-b. Por ejemplo, si la línea Ch 1024 es la línea H2 que conecta dos ojos, el vértice Cv1 1028a puede definirse como Vert (H2, V2) y el vértice Cv2 1028b puede definirse como Vert (H2, V5), que corresponden a la esquina exterior del ojo izquierdo y la esquina interior del ojo derecho. Para simplificar, en la Figura 10, se puede hacer referencia a los vértices con su índice correspondiente. Por ejemplo, el primer vértice 1028a y el segundo vértice 1028b pueden denominarse vértice Vert (Ch, Cv1) 1028a y el segundo vértice 1028b puede denominarse vértice Vert (Ch, Cv2) 1028b, respectivamente. Las referencias a otros vértices pueden basarse de manera similar en el índice de vértices. En algunas implementaciones, para la caricaturización horizontal, solo los vértices en la línea de control horizontal 1024 pueden cambiar de posición. En otras palabras, solo los vértices definidos como Vert (Ch, Cv1), Vert (Ch, Cv1+1),..., Vert (Ch, Cv2) pueden cambiar sus ubicaciones.
[0091] Si el gesto del dedo es una entrada de gesto horizontal de abrir los dedos 1014 como se representa en la Figura 10, entonces el vértice Vert (Ch, Cv1) 1028a puede moverse hacia la izquierda en un valor igual al nivel de la acción de caricatura horizontal (por ejemplo, CLh) multiplicado por la distancia actual entre el vértice Vert (Ch, Cv1) 1028a y el vértice Vert (Ch, Cv1-1) 1028c como se representa en la malla de la imagen distorsionada 1012b. Del mismo modo, el vértice Vert (Ch, Cv2) 1028b puede moverse hacia la derecha en una cantidad igual al nivel de la acción de caricatura horizontal (por ejemplo, CLh) multiplicado por la distancia actual entre el vértice Vert (Ch, Cv2) 1028b y el vértice Vert (Ch, Cv2+1) 1028d como se representa en la malla de la imagen distorsionada 1012b. Mientras tanto, las nuevas ubicaciones de vértices Vert (Ch, Cv1+1), ... , Vert (Ch, Cv2-1), pueden determinarse por interpolación lineal desde las nuevas ubicaciones del vértice Vert (Ch, Cv1) 1028a y el vértice Vert (Ch, Cv2) 1028b. Como se muestra en la Figura 10, los vértices en las líneas horizontales que no sean la línea de control horizontal 1024 pueden no mover la ubicación. La ubicación de estos vértices puede seguir siendo los puntos de intersección entre las líneas horizontales y las líneas verticales que son perpendiculares a las líneas horizontales.
[0092] La Figura 11 ilustra un ejemplo de una entrada de gesto horizontal de cerrar los dedos. Más concretamente, la Figura 11 ilustra una entrada de gesto horizontal de cerrar los dedos (imagen izquierda) y una malla de la imagen distorsionada 1112b resultante de la acción de caricatura 118 correspondiente (imagen derecha). Como se describe anteriormente, en algunas implementaciones, una pantalla táctil 1138 puede estar acoplada al dispositivo electrónico 102. En este ejemplo, una entrada de gesto horizontal de abrir los dedos puede incluir múltiples entradas de gestos 1114a-b para generar una imagen de caricatura 122.
[0093] En este ejemplo, un primer punto de inicio de entrada de gesto 1140a (por ejemplo, una posición de inicio de la punta del dedo en la pantalla táctil 1138) puede mapearse a un primer vértice 1128a y un segundo punto de inicio de entrada de gesto 1140b puede mapearse a un segundo vértice 1128b en el sistema de coordenadas de la imagen para la interpretación de una acción de caricatura 118. El primer vértice 1128a y el segundo vértice 1128b pueden corresponder a ubicaciones de rasgos 118 de la imagen 1104. Por ejemplo, el primer vértice 1128a puede corresponder a la esquina exterior del ojo izquierdo y el segundo vértice 1128b puede corresponder a la esquina interior del ojo derecho. Como se describe anteriormente, una acción de caricatura 118 contiene información sobre qué vértices de la malla de la imagen 1112a pueden cambiar de ubicación. Cabe destacar que, como se representa en la Figura 11, los puntos de inicio de entrada de gestos 1140a-b pueden no alinearse exactamente con los vértices 1128a-b. En este ejemplo, los puntos de inicio de entrada de gesto 1140a-b pueden mapearse a los vértices 1128a-b que están más cercanos a los puntos de inicio de entrada de gesto 1140a-b.
[0094] Una acción de caricatura horizontal 118 puede incluir cinco elementos: una dirección de caricaturización (por ejemplo, Cd), un índice (por ejemplo, Ch) de la línea de control horizontal afectada 1124, un índice (por ejemplo, Cv1) del primer vértice afectado 1128a en la línea de control horizontal 1124, un índice (por ejemplo, Cv2) del último vértice afectado 1128b en la línea de control horizontal 1124 y un nivel de caricaturización horizontal predefinido (por ejemplo, CLh). En este ejemplo, la dirección de caricatura puede ser horizontal y la línea de control horizontal afectada 1124 puede ser la línea horizontal más cercana al punto medio (por ejemplo, en la dirección vertical) de los puntos de inicio 1140a-b de las entradas de gestos. Para simplificar, en la Figura 11, se puede hacer referencia a las líneas con su índice correspondiente.
[0095] En algunas implementaciones, el vértice Cv1 1128a y el vértice Cv2 1128b pueden definirse como los dos vértices que están más cerca del primer punto de inicio de entrada de gesto 1140a (por ejemplo, X1 inicio, Y1 inicio) y el segundo punto de inicio de entrada de gesto 1140b (por ejemplo, X2inicio, Y2inicio), Vértice Cv1 1128a y vértice Cv2 1128b también se pueden definir como dos vértices específicos independientemente de las ubicaciones de los puntos de inicio de entrada de gesto 1140a-b. Por ejemplo, si la línea Ch 1124 es la línea H2 que conecta dos ojos, el vértice Cv1 1128a puede definirse como Vert (H2, V2) y el vértice Cv2 1128b puede definirse como Vert (H2, V5), que corresponden a la esquina exterior del ojo izquierdo y la esquina interior del ojo derecho. Para simplificar, en la Figura 11, se puede hacer referencia a los vértices con su índice correspondiente. Por ejemplo, el primer vértice 1128a puede denominarse vértice Vert (Ch, Cv1) 1128a y el segundo vértice 1128b puede denominarse vértice Vert (Ch, Cv2) 1128b, respectivamente. Las referencias a otros vértices pueden basarse de manera similar en el índice de vértices. En algunas implementaciones, para la caricaturización horizontal, solo los vértices en la línea de control horizontal 1124 pueden cambiar de posición. En otras palabras, solo los vértices definidos como Vert (Ch, Cv1), Vert (Ch, Cv1+1),..., Vert (Ch, Cv2) pueden cambiar sus ubicaciones.
[0096] Si el gesto del dedo es una entrada de gesto horizontal de cerrar los dedos 1114 como se representa en la Figura 11, entonces el vértice Vert (Ch, Cv1) 1128a puede moverse hacia la derecha en un valor igual al nivel de la acción de caricatura horizontal (por ejemplo, CLh) multiplicado por la distancia actual entre el vértice Vert (Ch, Cv1) 1128a y el vértice Vert (Ch, Cv1+1) 1128c como se representa en la malla de la imagen distorsionada 1112b. Del mismo modo, el vértice Vert (Ch, Cv2) 1128b puede moverse hacia la izquierda en una cantidad igual al nivel de la acción de caricatura (por ejemplo, CLh) multiplicado por la distancia actual entre el vértice Vert (Ch, Cv2) 1128b y el vértice Vert (Ch, Cv2-1) 1128d como se representa en la malla de la imagen distorsionada 1112b. Mientras tanto, las nuevas ubicaciones de vértices Vert (Ch, Cv1+1), ... , Vert (Ch, Cv2-1), pueden determinarse por interpolación lineal desde las nuevas ubicaciones del vértice Vert (Ch, Cv1) 1128a y el vértice Vert (Ch, Cv2) 1128b. Como se muestra en la Figura 11, los vértices en las líneas horizontales que no sean la línea de control horizontal 1124 pueden no mover la ubicación. La ubicación de estos vértices puede seguir siendo los puntos de intersección entre las líneas horizontales y las líneas verticales que son perpendiculares a las líneas horizontales.
[0097] La Figura 12 ilustra otro ejemplo de una imagen facial 1204 y ejemplos de imágenes de caricaturas 1222a-b que pueden generarse usando los sistemas y procedimientos divulgados en el presente documento. Como se describe anteriormente, en algunas implementaciones, una pantalla 536 acoplada al dispositivo electrónico 102 puede presentar la imagen facial 1204 y una malla de la imagen 1212a en un modelo basado en malla.
[0098] Se puede generar una primera imagen de caricatura 1222a en base a un primer conjunto de acciones de caricaturas 118 y la imagen facial 1204. En este ejemplo, un primer conjunto de entradas de gestos 114 puede indicar el primer conjunto de acciones de caricaturas 118 como se describe en el presente documento. La Figura 12 también representa una primera malla de la imagen 1212b distorsionada. La primera malla de la imagen 1212b distorsionada puede indicar el cambio en la posición de uno o más vértices después de una serie de acciones de abrir y cerrar los dedos horizontales en la frente, los ojos, la nariz, la boca, etc. de la imagen facial 1204, como se ilustra en el imagen del medio. Como se describe anteriormente, el primer conjunto de acciones de caricaturas 118 puede agregarse a la lista de acciones de caricaturas 534. La lista de acciones de caricaturas 534 puede determinar los mapeos entre la ubicación de cada vértice de la malla de la imagen 1212a en la imagen facial 1204 y su nueva ubicación en la primera imagen de caricatura 1222a. En base a este mapeo de vértices, se puede calcular un mapeo para cada uno de los píxeles no vértices en la primera imagen de caricatura 1222a y sus ubicaciones originales en la imagen facial 1204. Luego se puede obtener el color de estos píxeles.
[0099] Se puede generar una segunda imagen de caricatura 1222b en base a un segundo conjunto de acciones de caricaturas 118 y la primera imagen de caricatura 1222a. En este ejemplo, un segundo conjunto de entradas de gestos 114 puede indicar el segundo conjunto de acciones de caricaturas 118 como se describe en el presente documento. La Figura 12 también representa una segunda malla de la imagen distorsionada 1212c. La segunda malla de la imagen distorsionada 1212c puede indicar el cambio en la posición de uno o más vértices después de una serie de acciones de abrir y cerrar los dedos verticales aplicadas adicionalmente en la frente, el mentón, etc. de la primera imagen de caricatura 1222a, como se ilustra en la imagen de la derecha. Como se describe anteriormente, el segundo conjunto de acciones de caricaturas 118 puede agregarse a la lista de acciones de caricaturas 534 (por ejemplo, que puede contener el primer conjunto de acciones de caricaturas 118). Cabe destacar que cada imagen de caricatura 1222a-b puede ser el resultado de las acciones de caricaturas anteriores 118. Por ejemplo, la segunda imagen de caricatura 1222b puede ser el resultado del primer y segundo conjunto de acciones de caricaturas 118 que se aplican a la imagen facial 1204.
[0100] En algunas implementaciones, para aplicar las acciones de caricaturas 118 (por ejemplo, el primer conjunto de acciones de caricaturas 118 y el segundo conjunto de acciones de caricaturas 118), se pueden calcular las nuevas ubicaciones de todos los vértices como consecuencia de las acciones de caricaturas combinadas 118. Entonces se puede aplicar una vez una única deformación de textura (tanto en base a el primer conjunto de acciones de caricaturas 118 como el segundo conjunto de acciones de caricaturas 118) en la imagen facial 1204.
[0101] La Figura 13 es un diagrama de bloques que ilustra una configuración más específica de un dispositivo electrónico 1302 en el que pueden implementarse sistemas y procedimientos para la caricaturización de imágenes interactiva. El dispositivo electrónico 1302 puede ser un ejemplo del dispositivo electrónico 102 descrito en conexión con la Figura 1. El dispositivo electrónico 1302 puede recibir una imagen facial 1304 que puede ser un ejemplo de la imagen 104 descrita en conexión con la Figura 1. Por ejemplo, la imagen facial 1304 puede ser una imagen facial caricaturizada previamente. En una implementación, la imagen facial 1304 se puede proporcionar a un bloque/módulo de detección de rostros 1342 que puede incluir toda o parte de la funcionalidad del bloque/módulo de detección de ubicación de rasgos 106 descrito en conexión con la Figura 1. Por ejemplo, el bloque/módulo de detección de rostros 1342 puede detectar ubicaciones de rasgos faciales 1308 que pueden ser ejemplos de las ubicaciones de rasgos 108 descritas en conexión con la Figura 1. Las ubicaciones de rasgos faciales 1308 pueden proporcionarse a un bloque/módulo de generación de malla de la imagen 1310 que puede ser un ejemplo del módulo/bloque de generación de malla de la imagen 110 descrito en conexión con la Figura 1. En esta implementación, el bloque/módulo de generación de malla de la imagen 1310 puede generar coordenadas de vértices de la imagen 1344 que indican las ubicaciones de los vértices de la malla de la imagen que corresponden a las ubicaciones de rasgos faciales 1308. Las coordenadas de vértices de la imagen 1344 pueden definirse en base a los índices de la línea horizontal y la línea vertical que intersecan en el vértice (por ejemplo, H1, V2).
[0102] El dispositivo electrónico 1302 puede recibir una entrada de gesto con los dedos 1314 que puede ser un ejemplo de la entrada de gesto 114 descrita en conexión con la Figura 1. La entrada de gesto con los dedos 1314 puede proporcionarse a un bloque/módulo de interpretación de acción de caricatura interactiva 1346 que puede incluir toda o parte de la funcionalidad del bloque/módulo de determinación de acción de caricatura 116 descrito en conexión con la Figura 1. Por ejemplo, el bloque/módulo de interpretación de acción de caricatura interactiva 1346 puede determinar una nueva acción de caricatura 1318 en base a la entrada de gesto con los dedos 1314.
[0103] La nueva acción de caricatura 1318 puede proporcionarse a un bloque/módulo de actualización de acción de caricatura 1348 que puede actualizar la lista de acciones de caricaturas. Como se describe anteriormente, el dispositivo electrónico 1302 puede mantener una lista de acciones de caricaturas que contiene una lista de todas las acciones de caricaturas que se han determinado. Una lista de acciones de caricaturas anteriores 1350a que contiene una lista de todas las acciones de caricaturas anteriores que pueden haberse aplicado a la imagen facial 1304 (o imagen de caricatura generada previamente), puede proporcionarse al bloque/módulo de remapeo de vértices 1352 que se usará para generar las coordenadas de vértices de la imagen de caricatura. En algunas implementaciones, la lista de acciones de caricaturas anteriores 1350a puede no incluir la nueva acción de caricatura 1318 (por ejemplo, la acción de caricatura que se está determinando actualmente).
[0104] El bloque/módulo de remapeo de vértices 1352 puede determinar las coordenadas de vértices de la imagen de caricatura anterior 1354a en base a la lista de acciones de caricaturas anteriores 1350a y las coordenadas de vértices de la imagen 1344. La lista de acciones de caricaturas anteriores 1350a y los vértices de imagen de caricatura anterior 1354a pueden pertenecer a una acción de caricatura anterior que fue determinada (en una instancia anterior del procedimiento 200, por ejemplo). En algunas implementaciones, las coordenadas de vértices de la imagen de caricatura anterior 1354a pueden proporcionarse al bloque/módulo de interpretación de acción de caricatura interactiva 1346 para ayudar a determinar una nueva acción de caricatura 1318.
[0105] En algunas implementaciones, el bloque/módulo de actualización de acción de caricatura 1348 puede añadir la nueva acción de caricatura 1318 a la lista de acciones de caricaturas (que incluye cualquier acción de caricatura que se haya determinado previamente) para generar una nueva lista de acciones de caricaturas 1350b. La nueva lista de acciones de caricaturas 1350b puede proporcionarse al bloque/módulo de remapeo de vértices 1352. Las coordenadas de vértices de la imagen 1344 también se pueden pasar al bloque/módulo de remapeo de vértices 1352.
[0106] En algunas implementaciones, el bloque/módulo de remapeo de vértices 1352 puede determinar nuevas coordenadas de vértices de la imagen de caricatura 1354b en base a la nueva lista de acciones de caricaturas 1350b y las coordenadas de vértices de la imagen 1344. Por ejemplo, el bloque/módulo de remapeo de vértices 1352 puede determinar la ubicación (en la imagen de caricatura 1322) de los vértices de la imagen facial 1304 en base a la nueva lista de acciones de caricaturas 1350b (que puede incluir acciones de caricaturas determinadas previamente y la nueva acción de caricatura 1318).
[0107] Las nuevas coordenadas de vértices de la imagen de caricatura 1354b pueden pasarse a un bloque/módulo de generación de remapeo 1356. El bloque/módulo de generación de remapeo 1356 también puede recibir las coordenadas de vértices de la imagen 1344. El bloque/módulo de generación de remapeo 1356 puede generar un mapeo entre las coordenadas de vértices de la imagen 1344 y las nuevas coordenadas de vértices de la imagen de caricatura 1354b. La salida del bloque/módulo de generación de remapeo 1356 puede ser una o más matrices de mapeo 1358 que reflejan la relación entre el cambio en la posición de los vértices de la imagen y los vértices de la imagen de caricatura (por ejemplo, en base a sus coordenadas).
[0108] Las matrices de mapeo 1358 y la imagen facial 1304 pueden proporcionarse a un bloque/módulo de deformación de textura 1360 que realiza una deformación de la textura de la imagen facial 1304. Por ejemplo, el bloque/módulo de deformación de textura 1360 puede cambiar la posición de uno o más píxeles en la imagen facial 1304 para generar una imagen de caricatura 1322.
[0109] La Figura 14 ilustra diversos componentes que se pueden utilizar en un dispositivo electrónico 1402. Los componentes ilustrados pueden estar ubicados en la misma estructura física o en alojamientos o estructuras separadas. El dispositivo electrónico 1402 descrito en conexión con la Figura 14 se puede implementar de acuerdo con uno o más de los dispositivos electrónicos descritos en el presente documento. El dispositivo electrónico 1402 incluye un procesador 1462. El procesador 1462 puede ser un microprocesador monochip o multichip de propósito general (por ejemplo, un ARM), un microprocesador de propósito especial (por ejemplo, un procesador de señales digitales (DSP)), un microcontrolador, una matriz de puertas programables, etc. El procesador 1462 se puede denominar unidad central de procesamiento (CPU). Aunque solo se muestra un único procesador 1462 en el dispositivo electrónico 1402 de la Figura 14, en una configuración alternativa, se podría usar una combinación de procesadores (por ejemplo, un ARM y un DSP).
[0110] El dispositivo electrónico 1402 también incluye una memoria 1464 en comunicación electrónica con el procesador 1462. Es decir, el procesador 1462 puede leer información de, y/o escribir información en, la memoria 1464. La memoria 1464 puede ser cualquier componente electrónico que pueda almacenar información electrónica. La memoria 1464 puede ser una memoria de acceso aleatorio (RAM), una memoria de solo lectura (ROM), medios de almacenamiento en disco magnético, medios de almacenamiento ópticos, dispositivos de memoria flash en RAM, una memoria integrada incluida con el procesador, memoria de solo lectura programable (PROM), memoria de solo lectura programable y borrable (EPROM), PROM borrable eléctricamente (EEPROM), registros, etc., incluyendo combinaciones de los mismos.
[0111] En la memoria 1464 se pueden almacenar datos 1466a e instrucciones 1468a. Las instrucciones 1468a pueden incluir uno o más programas, rutinas, subrutinas, funciones, procedimientos, etc. Las instrucciones 1468a pueden incluir una única sentencia legible por ordenador o muchas sentencias legibles por ordenador. Las instrucciones 1468a pueden ser ejecutables por el procesador 1462 para implementar uno o más de los procedimientos, funciones y procedimientos descritos anteriormente. La ejecución de las instrucciones 1468a puede implicar el uso de los datos 1466a que están almacenados en la memoria 1464. La Figura 14 muestra algunas instrucciones 1468b y datos 1466b que se cargan en el procesador 1462 (que pueden proceder de las instrucciones 1468a y los datos 1466a).
[0112] El dispositivo electrónico 1402 también puede incluir una o más interfaces de comunicación 1470 para comunicarse con otros dispositivos electrónicos. Las interfaces de comunicación 1470 pueden estar basadas en tecnología de comunicación alámbrica, tecnología de comunicación inalámbrica o ambas. Los ejemplos de diferentes tipos de interfaces de comunicación 1470 incluyen un puerto serie, un puerto paralelo, un bus serie universal (USB), un adaptador de Ethernet, una interfaz de bus IEEE 1394, una interfaz de bus de la interfaz de sistemas informáticos pequeños (SCSI), un puerto de comunicación de infrarrojos (IR), un adaptador de comunicación inalámbrica Bluetooth, etc.
[0113] El dispositivo electrónico 1402 también puede incluir uno o más dispositivos de entrada 1472 y uno o más dispositivos de salida 1474. Los ejemplos de diferentes tipos de dispositivos de entrada 1472 incluyen un teclado, un ratón, un micrófono, un dispositivo de control remoto, un botón, una palanca de mando, una bola de seguimiento, una almohadilla táctil, un lápiz óptico, etc. Por ejemplo, el dispositivo electrónico 1402 puede incluir uno o más micrófonos 1476 para captar señales acústicas. En una configuración, un micrófono 1476 puede ser un transductor que convierte señales acústicas (por ejemplo, telefónicas, de voz) en señales eléctricas o electrónicas. Los ejemplos de diferentes tipos de dispositivos de salida 1474 incluyen un altavoz, una impresora, etc. Por ejemplo, el dispositivo electrónico 1402 puede incluir uno o más altavoces 1478. En una configuración, un altavoz 1478 puede ser un transductor que convierte señales eléctricas o electrónicas en señales acústicas. Un tipo específico de dispositivo de salida que se puede incluir típicamente en un dispositivo electrónico 1402 es un dispositivo de visualización 1434. Los dispositivos de visualización 1434 usados con las configuraciones divulgadas en el presente documento pueden utilizar cualquier tecnología adecuada de proyección de imágenes, tal como una pantalla de cristal líquido (LCD), un diodo emisor de luz (LED), plasma de gas, electroluminiscencia, tubo de rayos catódicos (CRT) o similares. También se puede proporcionar un controlador de visualización 1480, para convertir los datos almacenados en la memoria 1464 en texto, gráficos y/o imágenes en movimiento (según corresponda) mostrados en el dispositivo de visualización 1434.
[0114] Los diversos componentes del dispositivo electrónico 1402 pueden estar acoplados entre sí mediante uno o más buses, que pueden incluir un bus de alimentación, un bus de señales de control, un bus de señales de estado, un bus de datos, etc. Para simplificar, los diversos buses se ilustran en la Figura 14 como un sistema de bus 1482. Cabe destacar que la Figura 14 ilustra únicamente una configuración posible de un dispositivo electrónico 1402. Se pueden utilizar otras arquitecturas y componentes diversos.
[0115] En la descripción anterior, a veces se han usado números de referencia en conexión con diversos términos. Cuando se usa un término en conexión con un número de referencia, lo que se puede pretender con ello es referirse a un elemento específico que se muestra en una o más de las figuras. Cuando se usa un término sin número de referencia, lo que se puede pretender con ello es referirse en general al término sin limitación a ninguna Figura en particular.
[0116] El término "determinación" engloba una amplia variedad de acciones y, por lo tanto, "determinación" puede incluir el cálculo, la computación, el procesamiento, la obtención, la investigación, la consulta (por ejemplo, la consulta en una tabla, en una base de datos o en otra estructura de datos), la constatación y similares. Además, "determinación" puede incluir la recepción (por ejemplo, la recepción de información), el acceso, (por ejemplo, el acceso a datos de una memoria) y similares. Así mismo, "determinación" puede incluir la resolución, la selección, la elección, el establecimiento y similares.
[0117] La expresión "en base a" no significa "únicamente en base a", a menos que se especifique expresamente lo contrario. En otras palabras, la frase "en base a" describe tanto "únicamente en base a" y "al menos en base a".
[0118] Cabe destacar que uno o más de las características, funciones, procedimientos, componentes, elementos, estructuras, etc., descritos en conexión con una cualquiera de las configuraciones descritas en el presente documento, se pueden combinar con uno o más de las funciones, procedimientos, componentes, elementos, estructuras, etc., descritos en conexión con cualquiera de las demás configuraciones descritas en el presente documento, en los casos en que sean compatibles. En otras palabras, se puede implementar cualquier combinación compatible de las funciones, procedimientos, componentes, elementos, etc., divulgados en el presente documento, de acuerdo con los sistemas y procedimientos divulgados en el presente documento. En algunas configuraciones, uno o más subconjuntos o porciones de las funciones o procedimientos divulgados en el presente documento pueden aplicarse independientemente de otras funciones o procedimientos divulgados en el presente documento.
[0119] Las funciones descritas en el presente documento se pueden almacenar como una o más instrucciones en un medio legible por procesador o legible por ordenador. La expresión "medio legible por ordenador" se refiere a cualquier medio disponible al que se pueda acceder mediante un ordenador o un procesador. A modo de ejemplo, y no de limitación, dicho medio puede comprender RAM, ROM, EEPROM, memoria flash, CD-ROM u otro almacenamiento en disco óptico, almacenamiento en disco magnético u otros dispositivos de almacenamiento magnético, o cualquier otro medio que se pueda usar para almacenar un código de programa deseado en forma de instrucciones o estructuras de datos y al que se pueda acceder mediante un ordenador. Los discos, como se usan en el presente documento, incluyen el disco compacto (CD), el disco láser, el disco óptico, el disco versátil digital (DVD), el disco flexible y el disco Blu-ray®, donde algunos discos reproducen normalmente los datos de forma magnética, mientras que otros discos reproducen los datos de forma óptica con láseres. Cabe destacar que un medio legible por ordenador puede ser tangible y no transitorio. La expresión "producto de programa informático" se refiere a un dispositivo o procesador de computación junto con un código o instrucciones (por ejemplo, un "programa") que puede ejecutarse, procesarse o computarse mediante el dispositivo o procesador de computación. Como se usa en el presente documento, el término "código" puede referirse a software, instrucciones, código o datos que son ejecutables por un dispositivo o procesador de computación.
[0120] El software o las instrucciones se pueden transmitir también por un medio de transmisión. Por ejemplo, si el software se transmite desde un sitio web, un servidor u otra fuente remota usando un cable coaxial, un cable de fibra óptica, un par trenzado, una línea de abonado digital (DSL) o unas tecnologías inalámbricas tales como infrarrojos, radio y microondas, entonces el cable coaxial, el cable de fibra óptica, el par trenzado, la DSL o las tecnologías inalámbricas tales como infrarrojos, radio y microondas están incluidos en la definición de medio de transmisión.
[0121] Los procedimientos divulgados en el presente documento comprenden una o más etapas o acciones para lograr el procedimiento descrito. Las etapas y/o acciones de procedimiento se pueden intercambiar entre sí sin apartarse del alcance de las reivindicaciones. En otras palabras, a menos que se requiera un orden específico de etapas o acciones para un funcionamiento apropiado del procedimiento que se describe, el orden y/o el uso de las etapas y/o acciones específicas se puede modificar sin apartarse del alcance de las reivindicaciones.
[0122] Se ha de entender que las reivindicaciones no están limitadas a la configuración y a los componentes exactos ilustrados anteriormente. Pueden realizarse diversas modificaciones, cambios y variantes en la disposición, el funcionamiento y los detalles de los sistemas, procedimientos y aparatos descritos en el presente documento sin apartarse del alcance de las reivindicaciones.

Claims (14)

REIVINDICACIONES
1. Un procedimiento para la caricaturización de imágenes interactiva mediante un dispositivo electrónico, que comprende:
detectar (602) múltiples ubicaciones de rasgos faciales de una imagen facial;
generar (606), en base a las ubicaciones de rasgos faciales, una malla de la imagen (1012a) que comprende una cuadrícula de al menos una línea horizontal y al menos una línea vertical, de manera que los vértices de la malla de la imagen correspondan a las ubicaciones de rasgos faciales;
obtener (608) al menos una entrada de gesto;
determinar (612) al menos una acción de caricatura en base a al menos una entrada de gesto, en el que la acción de caricatura proporciona información de desplazamiento para al menos un vértice de la malla de la imagen y proporciona un mapa de píxeles que mapea un píxel de vértice de imagen, en un vértice de la malla de la imagen, desde una primera ubicación en la imagen facial, hasta una segunda ubicación en una imagen de caricatura en base a la información de desplazamiento; y
generar (616) la imagen de caricatura en base a la malla de la imagen, la al menos una acción de caricatura y la imagen.
2. El procedimiento de la reivindicación 1, en el que la al menos una entrada de gesto comprende una entrada táctil.
3. El procedimiento de la reivindicación 1, que comprende además visualizar al menos una de entre la imagen y la imagen de caricatura.
4. El procedimiento de la reivindicación 1, en el que generar una imagen de caricatura comprende aplicar al menos una acción de caricatura a la imagen, y en el que generar una imagen de caricatura comprende interpolar una ubicación de otros píxeles en la imagen de caricatura en base al mapa de píxeles.
5. El procedimiento de la reivindicación 1, que comprende además validar al menos una entrada de gesto, en el que validar la al menos una entrada de gesto comprende preferentemente determinar si un movimiento de la entrada de gesto es mayor que un umbral de movimiento.
6. El procedimiento de la reivindicación 1, en el que la al menos una entrada de gesto comprende múltiples entradas de gestos.
7. El procedimiento de la reivindicación 6, que comprende además determinar un movimiento de las entradas de gestos entre sí.
8. El procedimiento de la reivindicación 6, que comprende además determinar que las entradas de gestos están alineadas horizontalmente; y/o que comprende además determinar que las entradas de gestos están alineadas verticalmente.
9. El procedimiento de la reivindicación 1, que comprende además mantener una lista de acciones de caricaturas, y preferentemente comprende además añadir la al menos una acción de caricatura a la lista de acciones de caricaturas.
10. Aparato para la caricaturización de imágenes interactiva, que comprende:
medios para detectar múltiples ubicaciones de rasgos faciales de una imagen facial;
medios para generar, en base a la ubicación de rasgo facial, una malla de la imagen (1012a) que comprende una cuadrícula de al menos una línea horizontal y al menos una línea vertical, de manera que los vértices de la malla de la imagen correspondan a las ubicaciones de rasgos faciales;
medios para obtener al menos una entrada de gesto;
medios para determinar al menos una acción de caricatura en base a al menos una entrada de gesto, en el que la acción de caricatura proporciona información de desplazamiento para al menos un vértice de la malla de la imagen y proporciona un mapa de píxeles que mapea un píxel de vértice de imagen, en un vértice de la malla de la imagen, desde una primera ubicación en la imagen facial, hasta una segunda ubicación en una imagen de caricatura en base a la información de desplazamiento; y
medios para generar la imagen de caricatura en base a la malla de la imagen, la al menos una acción de caricatura y la imagen.
11. El aparato de la reivindicación 10,
en el que los medios para la detección comprenden circuitería de detección de ubicación de rasgos,
en el que los medios para la generación de una malla de la imagen comprenden circuitería de generación de malla de la imagen acoplada a la circuitería de detección de ubicación de rasgos,
en el que los medios para la obtención comprenden circuitería de detección que obtiene al menos una entrada de gesto,
en el que los medios para la determinación comprenden circuitería de determinación de acción de caricatura acoplada a la circuitería de detección, y
en el que los medios para la generación de una imagen de caricatura comprenden circuitería de generación de imágenes de caricaturas acoplada a la circuitería de generación de malla de la imagen y la circuitería de determinación de acción de caricatura.
12. El aparato de la reivindicación 11, que comprende además una pantalla que está acoplada a la circuitería de generación de imágenes de caricaturas y que visualiza al menos una de entre la imagen y la imagen de caricatura.
13. El aparato de la reivindicación 11, que comprende además circuitería de validación de entrada de gesto acoplada a la circuitería de detección, en el que la circuitería de validación de entrada de gesto valida al menos una entrada de gesto.
14. Un producto de programa informático para la caricaturización de imágenes interactiva, que comprende un medio legible por ordenador tangible no transitorio que tiene instrucciones en el mismo, las instrucciones que comprenden un código para hacer que un dispositivo electrónico realice el procedimiento de acuerdo con cualquiera de las reivindicaciones 1-9.
ES13875827T 2013-02-23 2013-02-23 Sistemas y procedimientos para la caricaturización de imágenes interactiva mediante un dispositivo electrónico. Active ES2769546T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/000179 WO2014127494A1 (en) 2013-02-23 2013-02-23 Systems and methods for interactive image caricaturing by an electronic device

Publications (1)

Publication Number Publication Date
ES2769546T3 true ES2769546T3 (es) 2020-06-26

Family

ID=51390460

Family Applications (1)

Application Number Title Priority Date Filing Date
ES13875827T Active ES2769546T3 (es) 2013-02-23 2013-02-23 Sistemas y procedimientos para la caricaturización de imágenes interactiva mediante un dispositivo electrónico.

Country Status (8)

Country Link
US (3) US10379734B2 (es)
EP (2) EP2959458B1 (es)
JP (1) JP6328669B2 (es)
KR (1) KR20150121069A (es)
CN (2) CN105074780B (es)
ES (1) ES2769546T3 (es)
HU (1) HUE046808T2 (es)
WO (1) WO2014127494A1 (es)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8788968B1 (en) * 2012-06-04 2014-07-22 Google Inc. Transitioning an interface to a neighboring image
WO2014127494A1 (en) 2013-02-23 2014-08-28 Qualcomm Incorporated Systems and methods for interactive image caricaturing by an electronic device
USD987653S1 (en) * 2016-04-26 2023-05-30 Facetec, Inc. Display screen or portion thereof with graphical user interface
GB201706300D0 (en) * 2017-04-20 2017-06-07 Microsoft Technology Licensing Llc Debugging tool
US10559116B2 (en) * 2018-03-05 2020-02-11 Adobe Inc. Interactive caricature generation from a digital image
CN111145084B (zh) * 2019-12-25 2023-06-16 北京市商汤科技开发有限公司 图像处理方法及装置、图像处理设备及存储介质
US11328385B2 (en) * 2020-04-14 2022-05-10 Adobe Inc. Automatic image warping for warped image generation
EP4002010A1 (en) 2020-11-18 2022-05-25 ASML Netherlands B.V. Electrostatic clamp
CN113808007B (zh) * 2021-09-16 2022-07-19 北京百度网讯科技有限公司 调整虚拟脸部模型的方法、装置、电子设备及存储介质
US12154189B2 (en) * 2022-02-10 2024-11-26 Qualcomm Incorporated Systems and methods for facial attribute manipulation

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6069622A (en) * 1996-03-08 2000-05-30 Microsoft Corporation Method and system for generating comic panels
JPH09305780A (ja) * 1996-05-10 1997-11-28 Dainippon Printing Co Ltd レイアウト装置
JPH1010970A (ja) 1996-06-18 1998-01-16 Matsushita Electric Ind Co Ltd 地図データ更新システム
EP1039417B1 (en) 1999-03-19 2006-12-20 Max-Planck-Gesellschaft zur Förderung der Wissenschaften e.V. Method and device for the processing of images based on morphable models
KR20020030226A (ko) * 2000-10-16 2002-04-24 김란숙 영상기반 캐리커츄어 제작 방법
CN1174346C (zh) 2001-04-25 2004-11-03 中国科学技术大学 一种三维人脸动画的制作方法
KR100450210B1 (ko) * 2002-10-25 2004-09-24 (주)엔룩스 3차원 스캔 얼굴모델의 합성 시스템과 그 방법 및 3차원스캔 얼굴모델의 합성기능을 갖춘 프로그램이 수록된기록매체
GB0400894D0 (en) 2004-01-15 2004-02-18 British Telecomm Adaptive closed group caricaturing
TW200614094A (en) * 2004-10-18 2006-05-01 Reallusion Inc System and method for processing comic character
GB0813685D0 (en) 2008-07-25 2008-09-03 Omniperception Ltd A system & method for facial recognition
US8798374B2 (en) * 2008-08-26 2014-08-05 The Regents Of The University Of California Automated facial action coding system
KR20100041006A (ko) 2008-10-13 2010-04-22 엘지전자 주식회사 3차원 멀티 터치를 이용한 사용자 인터페이스 제어방법
CN101887593A (zh) * 2009-05-15 2010-11-17 中山大学 一种聪明图形驱动的网格图像变形方法
US20100302138A1 (en) * 2009-05-29 2010-12-02 Microsoft Corporation Methods and systems for defining or modifying a visual representation
CN101923726B (zh) 2009-06-09 2012-04-04 华为技术有限公司 一种语音动画生成方法及系统
US8405659B2 (en) * 2009-06-24 2013-03-26 International Business Machines Corporation System and method for establishing correspondence, matching and repairing three dimensional surfaces of arbitrary genus and arbitrary topology in two dimensions using global parameterization
CN101692681A (zh) * 2009-09-17 2010-04-07 杭州聚贝软件科技有限公司 一种在话机终端上实现虚拟形象互动界面的方法和系统
US20120306874A1 (en) * 2009-12-14 2012-12-06 Agency For Science, Technology And Research Method and system for single view image 3 d face synthesis
US8786559B2 (en) * 2010-01-06 2014-07-22 Apple Inc. Device, method, and graphical user interface for manipulating tables using multi-contact gestures
JP5565671B2 (ja) * 2010-02-17 2014-08-06 学校法人立命館 画像変形方法、画像処理装置、及びコンピュータプログラム
US8233789B2 (en) 2010-04-07 2012-07-31 Apple Inc. Dynamic exposure metering based on face detection
JP5240795B2 (ja) * 2010-04-30 2013-07-17 オムロン株式会社 画像変形装置、電子機器、画像変形方法、および画像変形プログラム
KR101514327B1 (ko) 2010-11-04 2015-04-22 한국전자통신연구원 얼굴 아바타 생성 장치 및 방법
US8717381B2 (en) * 2011-01-11 2014-05-06 Apple Inc. Gesture mapping for image filter input parameters
CN102737362B (zh) * 2011-04-01 2015-07-08 国基电子(上海)有限公司 具漫画图像分割功能的电子装置及方法
US8687023B2 (en) * 2011-08-02 2014-04-01 Microsoft Corporation Cross-slide gesture to select and rearrange
CN102306389B (zh) * 2011-08-03 2013-05-08 湖南互动传媒有限公司 一种手机动漫人物及背景的浮雕效果实现方法
CN102521867B (zh) * 2011-12-16 2014-09-17 拓维信息系统股份有限公司 一种手机动漫人物及背景创作方法
US20140092015A1 (en) * 2012-09-29 2014-04-03 Zhaohui Xing Method and apparatus for manipulating a graphical user interface using camera
US8584049B1 (en) * 2012-10-16 2013-11-12 Google Inc. Visual feedback deletion
WO2014127494A1 (en) 2013-02-23 2014-08-28 Qualcomm Incorporated Systems and methods for interactive image caricaturing by an electronic device
US9129152B2 (en) * 2013-11-14 2015-09-08 Adobe Systems Incorporated Exemplar-based feature weighting

Also Published As

Publication number Publication date
WO2014127494A1 (en) 2014-08-28
CN112215914A (zh) 2021-01-12
US10761721B2 (en) 2020-09-01
EP3575947B1 (en) 2022-06-22
US20160011769A1 (en) 2016-01-14
JP2016515236A (ja) 2016-05-26
JP6328669B2 (ja) 2018-05-23
KR20150121069A (ko) 2015-10-28
US10379734B2 (en) 2019-08-13
US20190278474A1 (en) 2019-09-12
EP3575947A3 (en) 2019-12-11
EP2959458B1 (en) 2019-10-30
EP2959458A1 (en) 2015-12-30
HUE046808T2 (hu) 2020-03-30
CN112215914B (zh) 2024-04-26
CN105074780A (zh) 2015-11-18
US11526272B2 (en) 2022-12-13
CN105074780B (zh) 2020-11-10
EP2959458A4 (en) 2016-12-28
EP3575947A2 (en) 2019-12-04
US20200363946A1 (en) 2020-11-19

Similar Documents

Publication Publication Date Title
ES2769546T3 (es) Sistemas y procedimientos para la caricaturización de imágenes interactiva mediante un dispositivo electrónico.
US9710971B2 (en) Information processing device, position designation method and storage medium
JP6225538B2 (ja) 情報処理装置、システム、情報提供方法および情報提供プログラム
JP6008397B2 (ja) 光学式シースルー型hmdを用いたarシステム
US20150077435A1 (en) Setting method and information processing device
WO2020019962A1 (zh) 一种增强现实设备的坐标系校准方法及装置
KR102797975B1 (ko) 3d 기하구조를 구성하는 방법 및 장치
CN111383308A (zh) 生成动画表情的方法和电子设备
WO2025015834A1 (zh) 基于人脸三维重建的纹理贴图方法、装置、设备和存储介质
JP2017182302A (ja) 画像処理プログラム、画像処理装置、及び画像処理方法
US9116599B2 (en) Systems and methods for visualizing a 3D scene using a flexible display
BR112013007715B1 (pt) Aparelho de processamento de informação
WO2020027818A1 (en) Determining location of touch on touch sensitive surfaces
CN103955316A (zh) 一种指尖触碰检测系统及方法
WO2019227958A1 (zh) 图像处理方法、设备以及虚拟现实显示装置
WO2020223940A1 (zh) 姿势预测方法、计算机设备和存储介质
JP2014029656A (ja) 画像処理装置および画像処理方法
CN113129362B (zh) 一种三维坐标数据的获取方法及装置
WO2020124562A1 (zh) 图像处理方法、显示设备及计算机可读存储介质
TW201500968A (zh) 三維互動系統及其互動感測方法
CN111179174B (zh) 一种基于人脸识别点的图像拉伸方法和装置
US20160163090A1 (en) Computing device and method for simulating process of scanning drawing of object
CN114998508A (zh) 一种基于Dlib和OpenGL的视频人脸表情生成方法
CN106022269A (zh) 一种人脸配准方法及装置
CA3255678A1 (en) Flexible 3d landmark detection