ES2958257T3 - Sistemas y métodos de visualización de productos mediante el uso de una aplicación de una sola página - Google Patents
Sistemas y métodos de visualización de productos mediante el uso de una aplicación de una sola página Download PDFInfo
- Publication number
- ES2958257T3 ES2958257T3 ES21154648T ES21154648T ES2958257T3 ES 2958257 T3 ES2958257 T3 ES 2958257T3 ES 21154648 T ES21154648 T ES 21154648T ES 21154648 T ES21154648 T ES 21154648T ES 2958257 T3 ES2958257 T3 ES 2958257T3
- Authority
- ES
- Spain
- Prior art keywords
- image
- product
- application
- display
- web page
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 68
- 238000013515 script Methods 0.000 claims abstract description 105
- 230000004044 response Effects 0.000 claims abstract description 31
- 238000010801 machine learning Methods 0.000 claims abstract description 24
- 238000009877 rendering Methods 0.000 claims abstract description 9
- 230000011218 segmentation Effects 0.000 claims description 26
- 230000002452 interceptive effect Effects 0.000 claims description 23
- 235000014510 cooky Nutrition 0.000 claims description 18
- 238000013527 convolutional neural network Methods 0.000 claims description 5
- 238000010422 painting Methods 0.000 claims description 5
- 230000003993 interaction Effects 0.000 description 24
- 238000012800 visualization Methods 0.000 description 17
- 230000004048 modification Effects 0.000 description 12
- 238000012986 modification Methods 0.000 description 12
- 238000009408 flooring Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 239000000463 material Substances 0.000 description 5
- 230000003190 augmentative effect Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000003709 image segmentation Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 239000003086 colorant Substances 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000000465 moulding Methods 0.000 description 2
- 239000002689 soil Substances 0.000 description 2
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005034 decoration Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 239000003973 paint Substances 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 239000002023 wood Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/14—Display of multiple viewports
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9538—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9577—Optimising the visualization of content, e.g. distillation of HTML documents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0641—Shopping interfaces
- G06Q30/0643—Graphical representation of items or shoppers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/60—Editing figures and text; Combining figures or text
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/37—Details of the operation on graphic patterns
- G09G5/377—Details of the operation on graphic patterns for mixing or overlaying two or more graphic patterns
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Business, Economics & Management (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Human Computer Interaction (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Information Transfer Between Computers (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
Se divulgan sistemas y métodos para visualizar productos en una aplicación de una sola página. De acuerdo con las realizaciones descritas, un sistema de aplicación puede recibir desde un sistema cliente, durante la representación de una página web recibida por el sistema cliente desde un sistema anfitrión, una solicitud de un script asociado con el sistema anfitrión. El script puede ser ejecutable por el sistema cliente para realizar operaciones que incluyen la modificación de la página web para incluir una aplicación de visualización en respuesta a una selección de un control de visualización en la página web por parte de un usuario del sistema cliente. De acuerdo con las realizaciones descritas, el sistema de aplicación puede recibir, desde la aplicación de visualización, una solicitud para mostrar un producto en una primera imagen. Se puede identificar una ubicación en la primera imagen utilizando un modelo de aprendizaje automático. Se pueden proporcionar instrucciones a la aplicación de visualización para mostrar el producto en la ubicación. (Traducción automática con Google Translate, sin valor legal)
Description
DESCRIPCIÓN
Sistemas y métodos de visualización de productos mediante el uso de una aplicación de una sola página Antecedentes de la invención
Una página web puede visualizar una imagen de un producto. Pero es posible que un usuario de la página web desee ver cómo aparecería el producto en una ubicación particular, como su casa. Agregar dicha funcionalidad de visualización a la página web puede ser una tarea difícil. Depender de una aplicación de visualización externa (por ejemplo, proporcionando un enlace parametrizado en la página web a la aplicación de visualización externa) puede resultar problemático tanto para el usuario como para el operador del sitio web. Al utilizar un enlace parametrizado de este tipo, los robots y los rastreadores pueden acceder a la aplicación de visualización externa a través del enlace, corrompiendo los datos de uso de interés para el operador del sitio web. Además, el operador debe diseñar el sitio web para gestionar correctamente la comunicación con la aplicación de visualización externa. La comunicación incorrecta puede provocar errores que afecten la experiencia del usuario, como visualizaciones de productos incorrectos o interfaces localizadas incorrectamente. Además, es posible que el operador no pueda rastrear las interacciones del usuario con la aplicación de visualización externa, como lo que vieron los usuarios, con qué frecuencia lo vieron y durante cuánto tiempo lo vieron. Esta información puede ser de considerable importancia para el operador del sitio web.
El documento US 2012/231424 A1 describe un sistema en el que un servidor de imágenes en tiempo real proporciona datos de visualización a un dispositivo móvil. La funcionalidad de visualización se proporciona en el servidor de imágenes en tiempo real.
Resumen
Los sistemas y métodos divulgados pueden permitir que una página web proporcione visualización interactiva de productos en imágenes seleccionadas o proporcionadas por los usuarios. Más específicamente, los sistemas y métodos divulgados pueden permitir que una página web proporcione visualización interactiva de una imagen de un producto en imágenes seleccionadas o proporcionadas por un usuario. En algunas modalidades, la página web puede proporcionar (o modificarse para proporcionar) funcionalidad de aplicación de una sola página, permitiendo al usuario seleccionar productos para los cuales hay visualizaciones disponibles e interactuar con las visualizaciones en las imágenes seleccionadas o proporcionadas, sin actualizar la página web, abrir una nueva página web o salir de la página web.
La invención se define por las características de la reivindicación independiente. Otras modalidades son el tema de las reivindicaciones dependientes.
Deberá entenderse que tanto la descripción general anterior como la siguiente descripción detallada son solamente ilustrativas y aclaratorias y no son restrictivas de las modalidades descritas o del alcance de la invención como se reivindicó. Los conceptos de esta solicitud se pueden emplear en otras modalidades sin apartarse del alcance de las invenciones.
Breve descripción de las figuras
Las figuras no están necesariamente a escala ni son exhaustivas. En cambio, generalmente se pone énfasis en ilustrar los principios de las invenciones descritas en la presente descripción. Las figuras acompañantes, las cuales se incorporan en y constituyen una parte de esta descripción, ilustran las diversas modalidades consistentes con la descripción y, junto con la descripción, sirven para explicar los principios de la descripción. En las figuras:
La Figura 1 representa un sistema ilustrativo para proporcionar visualizaciones interactivas mediante el uso de una aplicación de una sola página, de acuerdo con modalidades descritas.
La Figura 2 representa un método para inicializar una aplicación de visualización, de acuerdo con modalidades descritas.
La Figura 3 representa un método para interactuar con una aplicación de visualización, de acuerdo con modalidades descritas.
Las Figuras 4A-L representan una vista ilustrativa de interacciones con una aplicación de visualización, de acuerdo con modalidades descritas.
La Figura 5 representa un esquema de un sistema informático ilustrativo para realizar los sistemas y métodos previstos, de acuerdo con las modalidades descritas.
La Figura 6 representa un método ilustrativo de visualización de productos en una interfaz de visualización, de acuerdo con modalidades descritas.
La Figura 7 representa un método para interactuar con una aplicación de visualización, de acuerdo con modalidades descritas.
La Figura 8 representa una vista ilustrativa de interacciones con una aplicación de visualización, de acuerdo con modalidades descritas.
Descripción detallada de la invención
Se hará referencia ahora en detalle a las modalidades ilustrativas, descritas con respecto a las figuras acompañantes. En algunos casos, los mismos números de referencia se usarán a lo largo de todas las figuras y de la descripción siguiente para referirse a las mismas partes o a partes similares. A menos que se definan de cualquier otra manera, los términos técnicos y científicos tienen el mismo significado que se entiende comúnmente por un experto en la técnica. Las modalidades se describen en detalle suficiente para permitir que los expertos en la técnica lleven a la práctica las modalidades descritas. Debe entenderse que se pueden utilizar otras modalidades y que se pueden hacer cambios sin apartarse del alcance de las modalidades descritas. Por lo tanto, los materiales, métodos, y ejemplos son sólo ilustrativos y no pretende ser necesariamente limitantes. Debe entenderse en la descripción siguiente que la referencia a proporcionar visualización de un producto se refiere a proporcionar visualización de una imagen del producto. La imagen puede ser una imagen bidimensional o tridimensional.
Las modalidades descritas pueden permitir que una página web proporcione visualización interactiva de productos en imágenes seleccionadas o proporcionadas por los usuarios. Los productos pueden incluir bienes físicos. Por ejemplo, los productos pueden incluir muebles (por ejemplo, una mesa, silla o similares), objetos decorativos o adornos (por ejemplo, un jarrón, un cuadro o similares), objetos funcionales (por ejemplo, una lámpara, un dispositivo electrónico de consumo, o similares), materiales de construcción o acabado (por ejemplo, pisos, paneles o molduras, material para encimeras, pintura, papel tapiz o similares), o bienes físicos similares. Las visualizaciones interactivas pueden beneficiar a los usuarios al brindarles la oportunidad de ver un producto en una ubicación particular antes de obtenerlo. Las modalidades descritas pueden estructurarse como aplicaciones de una sola página, con la página web modificada según sea necesario para soportar la visualización interactiva, sin volver a cargar la página web ni navegar a una nueva página web. Un marco de aplicación de una sola página de este tipo puede mejorar la experiencia del usuario, ya que volver a cargar la página web o navegar a una nueva página web puede alterar la experiencia del usuario y también puede reducir el ancho de banda.
Se puede integrar una aplicación de visualización en la página web para proporcionar visualizaciones interactivas. La integración de la aplicación de visualización en la página web se puede gestionar mediante el uso de un script, que se puede personalizar para la página web. El script puede configurar el navegador web que muestra la página web para realizar una variedad de funciones útiles. Dichas funciones pueden incluir determinar si el navegador puede soportar la aplicación de visualización; determinar si los productos descritos o a los que se hace referencia en la página del producto están disponibles para su visualización; determinar un lenguaje apropiado para proporcionar la visualización; filtrar bots y rastreadores que de cualquier otra manera podrían contaminar las estadísticas de uso; colocar cookies de origen que puedan usarse para rastrear las sesiones de los usuarios, así como también las conversiones (por ejemplo, compras o similares); e integrar la aplicación de visualización con una aplicación de pedidos, de modo que los usuarios puedan iniciar pedidos desde dentro de la aplicación de visualización. El script se puede incrustar en la página web mediante el uso de una etiqueta. Por lo tanto, la funcionalidad proporcionada por las modalidades descritas se puede agregar a una página web sin requerir modificaciones extensas en la página web. Además, la aplicación de visualización puede ejecutarse independientemente de la página web, de manera que la manipulación por parte del usuario de una imagen mostrada en la aplicación de visualización puede ocurrir sin necesidad de volver a cargar la página web.
La Figura 1 representa un sistema ilustrativo 100 para proporcionar visualizaciones interactivas mediante el uso de una aplicación de una sola página, de acuerdo con las modalidades descritas. Como se muestra en la Figura 1, el sistema 100 puede incluir el sistema cliente 110, el sistema anfitrión 120 y el sistema de aplicación 130. El sistema cliente 110, el sistema anfitrión 120 y el sistema de aplicación 130 pueden configurarse para comunicarse mediante el uso de la red 140. El sistema cliente 110 se puede configurar para recuperar la página web del sistema anfitrión 120 y recuperar el script y la aplicación de visualización del sistema de aplicación 130. El script puede usarse para integrar la página web y la aplicación de visualización, eliminando al desarrollador de la página web la carga de integrar la página web y la aplicación de visualización. La aplicación de visualización puede permitir al usuario modificar una imagen para mostrar productos, y más específicamente imágenes de productos, representados o referenciados en la página web.
El sistema de cliente 110 se puede configurar, de acuerdo con un script, para mostrar una página web que incluye una visualización de un producto en una imagen. El sistema cliente 110 puede ser o incluir un dispositivo informático interactivo con una pantalla. Por ejemplo, el sistema cliente 110 puede ser o incluir una computadora de escritorio, una computadora portátil, un teléfono inteligente, una tableta o un dispositivo portátil. El sistema cliente 110 se puede configurar para obtener la página web del sistema anfitrión 120. Por ejemplo, el sistema cliente 110 puede configurarse con un navegador web y un usuario del sistema cliente 110 puede interactuar con el navegador web (por ejemplo, introduciendo una URL en una barra de direcciones o seleccionando una referencia a la página web en otra página web, o las similares) para hacer que el sistema cliente 110 solicite una página web desde el sistema anfitrión 120. El sistema cliente 110 puede usar la página web para implementar una aplicación de una sola página, en la que la página web se modifica repetidamente (por ejemplo, en respuesta a interacciones del usuario o datos o instrucciones recibidas desde el sistema anfitrión 120 o el sistema de aplicación 130). La página web puede incluir instrucciones que, cuando las procesa el sistema cliente 110, hacen que el sistema cliente 110 obtenga un script del sistema de aplicación 130. El sistema cliente 110 se puede configurar para ejecutar el script.
El sistema cliente 110 puede configurarse, de acuerdo con el script, para determinar si la página web puede modificarse para visualizar una imagen modificada para representar un producto. En algunas modalidades, el sistema cliente 110 puede determinar los productos mostrados o a los que se hace referencia en la página web. En diversas modalidades, el sistema cliente 110 puede determinar si el sistema de aplicación 130 puede obtener información de visualización que permita la modificación de una imagen para mostrar un producto representado o al que se hace referencia en la página web. Cuando dicha información de visualización está disponible, el sistema cliente 110 puede configurarse para modificar la página web para mostrar un control.
El sistema cliente 110 se puede configurar, según el script y en respuesta a la selección del control, para modificar la página web para mostrar una aplicación de visualización. El sistema cliente 110 puede usar la aplicación de visualización, de acuerdo con el script, para visualizar la imagen modificada. La aplicación de visualización puede permitir que un usuario del sistema cliente 110 seleccione la imagen (por ejemplo, cargando la imagen o seleccionando una imagen guardada o predeterminada). El sistema cliente 110 puede transmitir una solicitud para visualizar la imagen modificada al sistema de aplicación 130. El sistema cliente 110 puede recibir instrucciones para mostrar el producto en la imagen desde el sistema de aplicación 130. En algunas modalidades, las instrucciones pueden incluir una versión de la imagen, modificada para mostrar el producto en la imagen. En diversas modalidades, las instrucciones pueden incluir un modelo del producto e instrucciones o datos que permiten a la aplicación de visualización mostrar el modelo del producto en la imagen. Por ejemplo, las instrucciones y los datos pueden especificar al menos uno de entre escala, perspectiva o iluminación del producto en la imagen. El sistema cliente 110 puede entonces visualizar la imagen de acuerdo con las instrucciones recibidas del sistema de aplicación 130. Por ejemplo, cuando las instrucciones incluyen un modelo del producto e información que describe la escala y perspectiva del objeto en una ubicación de la imagen, el sistema cliente 110 puede configurarse para colocar una imagen del producto, en base al modelo, escala, e información de perspectiva, en la ubicación de la imagen. En algunas modalidades, el sistema cliente 110 se puede configurar para actualizar subsecuentemente la imagen en base a la interacción del usuario. Por ejemplo, un usuario puede interactuar con la aplicación de visualización para cambiar la posición u orientación del producto dentro de la imagen. El cliente puede entonces volver a calcular cómo se muestra el modelo del producto, basándose en la información de posición u orientación cambiada y las instrucciones recibidas previamente del sistema de aplicación 130.
En algunas modalidades, el script se puede configurar para gestionar interacciones o controlar comunicaciones entre la aplicación de visualización y la página web. Por ejemplo, la aplicación de visualización puede crear eventos en respuesta a las interacciones del usuario. Estos eventos pueden ser manejados por el script. Por ejemplo, el usuario puede interactuar con la aplicación de visualización para indicar su intención de comprar un producto. En respuesta, la aplicación de visualización puede generar un evento, que puede ser manejado por el script. El script puede configurar el sistema cliente 110, en respuesta al evento, para iniciar una compra o agregar el producto a un carrito de compras a través de la página web. De manera similar, el script puede configurar el sistema cliente 110 para establecer cookies en respuesta a eventos generados por la aplicación de visualización. Estas cookies pueden luego ser leídas por el sistema anfitrión 120.
El sistema anfitrión 120 puede configurarse para proporcionar la página web al sistema cliente 110. El sistema anfitrión 120 puede ser o incluir un sistema informático, tal como un escritorio, una estación de trabajo, un servidor, un clúster de servidores, un entorno informático en la nube (por ejemplo, Amazon Web Services™ (AWS), Microsoft Azure™, nube de IBM™, Plataforma en la nube de Google™, Cisco Metapod™, Joyent™, vmWare™, o similares), u otro sistema informático adecuado. El sistema anfitrión 120 se puede configurar como un servidor web. Por ejemplo, el sistema anfitrión 120 puede proporcionar una o más páginas web a navegadores web en respuesta a solicitudes (por ejemplo, solicitudes HTTP o similares). Las páginas web se pueden configurar para proporcionar funcionalidad de aplicación de una sola página. Por ejemplo, la página web puede incluir datos e instrucciones que permiten a un navegador web de un cliente modificar la página web sin volver a cargar una nueva página web desde el sistema anfitrión 120. En algunas modalidades, el sistema anfitrión 120 puede asociarse con un proveedor de los productos mostrados o a los que se hace referencia en la página web. Por ejemplo, el sistema anfitrión puede proporcionar un catálogo de los productos disponibles para su compra del proveedor (por ejemplo, el sistema anfitrión 120 puede proporcionar páginas web para una tienda de bienes de consumo tal como Home Depot, Walmart o similares).
El sistema de aplicación 130 se puede configurar para permitir que el sistema cliente 110 modifique una imagen para incluir un producto. El sistema de aplicación 130 puede ser o incluir un sistema informático, tal como un escritorio, una estación de trabajo, un servidor, un clúster de servidores, un entorno informático en la nube (por ejemplo, Amazon Web Services™ (AWS), Microsoft Azure™, nube de IBM™, Plataforma en la nube de Google™, Cisco Metapod™, Joyent™, vmWare™, o similares), u otro sistema informático adecuado.
El sistema de aplicación 130 se puede configurar para proporcionar un script al sistema cliente 110. El sistema de aplicación 130 puede proporcionar el script en respuesta a una solicitud transmitida por el sistema cliente 110. Como se muestra en el siguiente ejemplo, la página web puede incluir un elemento que haga que el sistema cliente 110 solicite el script desde el sistema de aplicación 130:
<script type="text/javascript" src="https://host address/scriptname" async></script>
En este ejemplo, la etiqueta script se puede incluir dentro de la página web (por ejemplo, dentro de una etiqueta <head> o <body> de la página web). Ladirección del servidorpuede ser una URL que apunta a una ubicación alojada por el sistema de aplicación 130 (por ejemplo, un directorio), mientras queel nombre de scriptpuede ser un nombre del script almacenado por el sistema de aplicación 130 en esa ubicación. En este ejemplo, elnombre de scriptpuede ser o incluir un nombre en clave asociado con el sistema principal 120 o un proveedor de productos asociado con el sistema principal 120. En este ejemplo, la ubicación alojada por el sistema de aplicación 130 puede incluir múltiples scripts diferentes que tienen diferentes nombres de script. Cuando el sistema cliente 110 procesa la página web, la etiqueta de secuencia de comandos puede hacer que el sistema cliente 110 solicite elnombre de scriptsituado en ladirección del servidordesde el sistema de aplicación 130. El sistema cliente 110 puede entonces ejecutar el script para proporcionar la funcionalidad como se describe en la presente descripción.
El sistema de aplicación 130 se puede configurar para comunicarse con el sistema cliente 110 después de proporcionar el script. En algunas modalidades, el sistema de aplicación 130 puede recibir, desde el sistema de cliente 110, una indicación de uno o más productos mostrados o a los que se hace referencia en la página web. El sistema de aplicación 130 puede determinar si está disponible información que permita la visualización de cada uno de uno o más productos. Cuando dicha información está disponible para un producto, el sistema de aplicación 130 puede proporcionar una indicación de dicha disponibilidad al sistema cliente 110.
En diversas modalidades, el sistema de aplicación 130 puede configurarse para generar instrucciones con respecto a la visualización de una imagen modificada que incluye el producto. Estas instrucciones se pueden generar en respuesta a una solicitud para visualizar la imagen modificada, incluido el producto. La solicitud puede incluir la imagen en la que se va a mostrar el producto o una selección de una imagen (por ejemplo, una imagen previamente almacenada o predeterminada). Cuando se recibe una imagen (por ejemplo, una imagen cargada por el usuario), el sistema de aplicación 130 puede configurarse para procesar la imagen para determinar características de la imagen tales como una perspectiva de la imagen, para identificar superficies en la imagen (por ejemplo, pisos, paredes, encimeras, mesas o similares), para determinar distancias a superficies en la imagen u obtener información similar. Como se describe en la presente descripción, dicho procesamiento se puede realizar utilizando un modelo de aprendizaje automático (por ejemplo, un modelo de red neuronal o similar). Cuando se selecciona una imagen previamente almacenada o predeterminada, el sistema de aplicación 130 puede configurarse para obtener la imagen (por ejemplo, recibir la imagen de otro sistema, recuperar la imagen de una base de datos, memoria de computadora o similar, accesible al sistema de aplicación 130, o similar).
En algunas modalidades, el sistema de aplicación 130 puede configurarse para proporcionar, al sistema cliente 110, las instrucciones generadas. En algunas modalidades, las instrucciones pueden incluir la imagen o una versión modificada de la imagen. Por ejemplo, las instrucciones pueden incluir la imagen modificada para mostrar el producto. Adicional o alternativamente, las instrucciones pueden incluir un modelo del producto (por ejemplo, un modelo tridimensional o similar). Cuando el sistema cliente 110 no tiene la imagen, por ejemplo cuando la solicitud incluye una selección de una imagen almacenada o predeterminada, el sistema de aplicación 130 puede configurarse para proporcionar la imagen, además del modelo del producto.
En algunas modalidades, el sistema de aplicación 130 puede configurarse para proporcionar, al sistema cliente 110, instrucciones actualizadas en respuesta a las interacciones del usuario con el producto. Por ejemplo, un usuario puede interactuar con el sistema cliente 110 para solicitar el reposicionamiento o la reorientación del producto en la imagen. El sistema de cliente 110 puede configurarse para proporcionar la solicitud al sistema de aplicación 130, que puede generar instrucciones para reposicionar o reorientar el producto en la imagen. Por ejemplo, las instrucciones pueden incluir una versión actualizada de la imagen con el producto reposicionado o reorientado de acuerdo con la solicitud proporcionada por el sistema del cliente 110.
La red 140 puede facilitar la comunicación y el intercambio de información entre el sistema cliente 110, el sistema anfitrión 120 y el sistema de aplicación 130. La red 140 puede ser cualquier tipo de red que proporcione comunicaciones, intercambie información y/o facilite el intercambio de información. Por ejemplo, la red 140 puede ser Internet, una red de área local, una red celular, una red telefónica pública conmutada ("PSTN") u otras conexiones adecuadas que permitan la transmisión de información entre los componentes del sistema 100. La red 140 puede soportar una variedad de formatos de mensajería electrónica y puede soportar además una variedad de servicios y aplicaciones para comunicarse entre el sistema cliente 110 y el sistema anfitrión 120, o el sistema cliente 110 y el sistema de aplicación 130.
La Figura 2 representa un método 200 para inicializar una aplicación de visualización, de acuerdo con modalidades descritas. Una página web recibida del sistema anfitrión 120 y mostrada por el sistema cliente 110 se puede modificar usando datos e instrucciones recibidas del sistema de aplicación 130 para mostrar la aplicación de visualización. De esta manera, la aplicación de visualización se puede integrar en una página web proporcionada por un sitio web anfitrión, permitiendo al usuario visualizar productos sin tener que salir o volver a cargar el sitio web. De esta manera, la aplicación de visualización puede modificar una página web (que originalmente no necesita soportar la funcionalidad de aplicación de una sola página) para proporcionar una funcionalidad de aplicación de una sola página. Además, el método 200 puede usar un script para automatizar la integración de la aplicación de visualización en la página web. Al utilizar dicho script, el mantenimiento y desarrollo de la funcionalidad de visualización se pueden separar del mantenimiento y desarrollo de la página web. En algunas modalidades, la integración de la funcionalidad de visualización en la página web puede requerir una modificación mínima de la página web (por ejemplo, agregar una etiqueta de secuencia de comandos, como se describe en la presente descripción).
En la etapa 210, el sistema cliente 110 puede obtener una página web del sistema anfitrión 120. El sistema cliente 110 puede obtener la página web a través de una conexión de red establecida con el sistema anfitrión 120 de acuerdo con el protocolo de red (por ejemplo, mediante el uso de una solicitud HTTP o similar). El sistema anfitrión 120 puede proporcionar la página web en respuesta a una solicitud recibida del sistema cliente 110. Las modalidades descritas no se limitan a un método particular para obtener la página web del sistema anfitrión 120. La página web puede incluir código e instrucciones (por ejemplo, lenguaje de marcado de hipertexto o similar) para mostrar contenido en un navegador del sistema cliente 110. En algunas modalidades, la página web puede incluir información de producto para al menos un producto. Por ejemplo, la página web puede ser una página de producto que proporciona información detallada sobre un solo producto, o una página de catálogo que incluye información sobre cada uno de varios productos. Como ejemplo no limitativo, la información del producto puede incluir nombre del producto, marca del producto, categoría del producto, números de modelo, números de serie, unidades de mantenimiento de existencias (SKU), opciones de color del producto, información de precios, dimensiones del producto, disponibilidad del producto e información de inventario, información de instalación del producto o información similar sobre el producto
La página web puede incluir información del código de producto del proveedor que se puede utilizar para asociar un producto con información de visualización del producto. En algunas modalidades, la información del código de producto del proveedor se puede eliminar de la página web. En diversas modalidades, la información de visualización puede asociarse con un identificador del producto. El identificador puede ser único para una combinación de producto y sistema principal 120 (o proveedor de producto asociado con el sistema principal 120), o único para una combinación de producto, tipo de producto y sistema principal 120 (o proveedor de producto asociado con el sistema principal 120).
La información del código de producto del proveedor incluida en la página web puede usarse para determinar, crear o recuperar el identificador, lo que permite la recuperación de la información de visualización. Por ejemplo, un número de unidad de mantenimiento de existencias (SKU) o un código universal de producto (UPC) para un producto puede servir como identificador, asociando el producto con información de visualización. La página web puede incluir el número SKU del producto. Como ejemplo adicional, se puede crear un identificador (por ejemplo, mediante el uso de una o más operaciones de cadena) a partir de dos o más elementos de información de producto para un producto (por ejemplo, concatenando el nombre del producto, la marca del producto y el color del producto; o similares). La página web puede incluir dos o más elementos de información de producto para un producto, lo que permite recrear el identificador eliminando los dos o más elementos de información de producto de la página web. En la etapa 220, el sistema cliente 110 puede obtener un script del sistema de aplicación 130. El sistema cliente 110 puede obtener el script a través de una conexión de red establecida con el sistema de aplicación 130 de acuerdo con el protocolo de red (por ejemplo, mediante el uso una solicitud HTTP o similar). Las modalidades descritas no se limitan a un método particular para obtener la página web del sistema de aplicación 130.
En algunas modalidades, el sistema de aplicación 130 puede proporcionar el script en respuesta a una solicitud recibida del sistema cliente 110. El sistema cliente 110 puede generar la solicitud mientras procesa la página web. Por ejemplo, la página web puede incluir instrucciones (por ejemplo, una etiqueta HTML <script>) que, cuando se analizan o ejecutan por el sistema cliente 110, hacen que el sistema cliente 110 solicite el script desde el sistema de aplicación 130. En algunas modalidades, además de la ubicación del script, las instrucciones pueden indicar un tipo, idioma o versión del script (por ejemplo, JavaScript u otro lenguaje de script adecuado), u otra información utilizada al analizar o ejecutar el script por parte del sistema cliente 110. Las modalidades descritas no se limitan a un lenguaje de escritura o formato de escritura particular.
En algunas modalidades, el script puede ser específico de al menos una de la página web, el sistema anfitrión 120, un proveedor de productos asociado con el sistema anfitrión 120 o un tipo o categoría de producto. En diversas modalidades, el sistema de aplicación 130 puede proporcionar un script generado previamente. En algunas modalidades, el sistema de aplicación 130 puede proporcionar un script generado en respuesta a la solicitud. Un script generado en respuesta a la solicitud puede adaptarse específicamente a cada solicitud por parte del sistema cliente 110.
Aunque se representan en la Figura 2 como dos etapas separadas, en algunas modalidades, las etapas 210 y 220 se pueden realizar como una sola etapa. Por ejemplo, el sistema anfitrión 120 puede almacenar una copia en caché del script, reflejando el script almacenado en el sistema de aplicación 130, y transmitir la copia del script al sistema cliente 110 con la página web o después de que se transmita el sitio web.
En la etapa 230, de acuerdo con el script obtenido en el paso 220, el sistema cliente 110 puede obtener identificadores para cada uno de los productos descritos o referenciados en la página web. En algunas modalidades, el script puede configurar el sistema cliente 110 para extraer o analizar la página web en busca de información del código de producto del proveedor. Por ejemplo, el sistema cliente 110 se puede configurar para extraer información del código de producto del proveedor, como se describe en la presente descripción, de un modelo de objetos de documento (DOM) de la página web. En algunas modalidades, la información del código de producto del proveedor se puede almacenar en una ubicación predeterminada en la página web (por ejemplo, en una ubicación conocida dentro de un elemento de documento particular, dentro de un elemento de formulario oculto o mostrado, dentro de un elemento con un nombre o identificación conocido, o similar). En algunas modalidades, la información del código de producto del proveedor se puede extraer de la URL de la página web. El script, que puede ser específico de la página web, puede hacer que el sistema cliente 110 extraiga la información del código de producto del proveedor de la ubicación predeterminada en la página web. En diversas modalidades, el script puede extraer la información del producto buscando en el código fuente de la página web texto con características predeterminadas (por ejemplo, nombres de productos, descripciones, colores, números de serie, números de modelo o similares). En algunas modalidades, dicha búsqueda se puede realizar mediante el uso de expresiones regulares o similares. Las modalidades descritas no se limitan a modalidades en las que el sistema cliente 110 obtiene todos los identificadores de todos los productos descritos o a los que se hace referencia en la página web. Como apreciarán los expertos en la técnica, el sistema cliente 110 sólo puede intentar o ser capaz de obtener identificadores para cada uno de un subconjunto de los productos descritos o a los que se hace referencia en la página web.
En algunas modalidades, el sistema cliente 110 puede configurarse mediante el script para generar el identificador a partir de la información del código de producto del proveedor. Por ejemplo, el identificador se puede generar aplicando una o más operaciones de cadena a elementos de la información del código de producto del proveedor (por ejemplo, concatenando el nombre del producto, la marca, el número de modelo y el color para generar un identificador para el producto).
En algunas modalidades, la información del producto se puede incluir en la URL que solicita el script como parámetro o parte de la dirección. En estos casos, la información del producto puede haber sido transmitida al sistema de aplicación 130 antes de que el sistema cliente 110 reciba el script. El sistema de aplicación 130 puede entonces transmitir un script que ha sido diseñado para que coincida con el producto.
En algunas modalidades, el sistema cliente 110 puede configurarse mediante el script para gestionar la identidad del usuario o la información de la sesión. Por ejemplo, en algunas modalidades, el sistema cliente 110 puede configurarse mediante el script para colocar o verificar cookies que identifiquen al usuario o que establezcan una sesión. Para continuar con este ejemplo, cuando el sistema cliente 110 carece de una cookie de sesión de usuario actual, el sistema cliente 110 puede configurarse mediante el script para generar dicha cookie (por ejemplo, solicitando una sesión o identificador de usuario del sistema de aplicación 130 y almacenando la información obtenida en la cookie). Esta cookie puede ser, o puede ser tratada como, una cookie propia por el sistema cliente 110. Por ejemplo, la cookie puede asociarse con un dominio del sistema anfitrión 120. En consecuencia, esta cookie no puede ser bloqueada por bloqueadores de publicidad ni bloqueadores de cookies de terceros. Si existe una cookie de sesión de usuario actual en el sistema de cliente 110, pero el sistema de aplicación 130 no reconoce una sesión correspondiente, el sistema de cliente 110 puede configurarse mediante el script para solicitar al sistema de aplicación 130 que cree una nueva sesión de usuario asociada con el usuario o con el sistema cliente 110.
En la etapa 240, de acuerdo con el script obtenido en la etapa 220, el sistema cliente 110 puede consultar al sistema de aplicación 130 para obtener información de visualización correspondiente a los identificadores obtenidos en la etapa 230. Es posible que la consulta y la respuesta a la consulta no hagan que el sistema cliente 110 recargue la página web. Por ejemplo, la consulta se puede transmitir al sistema de aplicación 130 mediante el uso de técnicas de JavaScript asíncrono XML (AJAX), o similares, y los datos transmitidos con la consulta se pueden organizar en forma de notación de objetos JavaScript (JSON), o similares. Como ejemplo adicional, la consulta puede ser tan simple como una URL que apunte a una ubicación predeterminada en el sistema de aplicación 130. La información de visualización puede estar presente en esa ubicación.
En respuesta a la consulta, el sistema de aplicación 130 puede determinar si la información de visualización correspondiente al identificador está disponible. En algunas modalidades, el sistema de aplicación 130 puede comparar los identificadores con una lista o base de datos de productos que tienen información de visualización. El sistema de aplicación 130 puede transmitir al sistema cliente 110 una indicación de si la información de visualización correspondiente al identificador está disponible.
En la etapa 250, cuando la información de visualización está disponible para un producto y de acuerdo con el script obtenido en la etapa 220, el sistema cliente 110 puede modificar la página web para mostrar un control. El control puede ser un elemento interactivo en la página web, por ejemplo, un botón, un interruptor o similar. En algunas modalidades, el control puede haberse incluido en la página web recibida desde el sistema anfitrión 120, pero puede estar inactivo (por ejemplo, deshabilitado, oculto o similar). Cuando la consulta indica que hay información de visualización disponible para el producto, el sistema cliente 110 puede modificar la página web para activar el control (por ejemplo, permitiendo que un usuario interactúe con el control). En algunas modalidades, es posible que el control no se haya incluido en la página web recibida desde el sistema anfitrión 120. Luego, el control se puede agregar a la página web. Por ejemplo, el sistema cliente 110 puede configurarse mediante el script para modificar la página web para incluir un botón seleccionable en una ubicación asociada con el producto. Como el script puede ser específico de la página web o del sistema anfitrión 120, la modificación puede preservar la apariencia de la página web. Por lo tanto, el control se puede mostrar de una manera que parezca natural para el usuario y sin interrumpir la experiencia del usuario.
En la etapa 260, cuando la información de visualización está disponible para un producto y de acuerdo con el script obtenido en la etapa 220, el sistema cliente 110 puede recuperar una aplicación de visualización del sistema de aplicación 130. En algunas modalidades, el sistema cliente 110 puede recuperar una aplicación de visualización en respuesta a la selección del control (por ejemplo, mediante una interacción del usuario) en la página web modificada. Por ejemplo, la selección del control puede desencadenar un evento. El script puede manejar el evento, haciendo que el sistema cliente 110 recupere la aplicación de visualización del sistema de aplicación 130. Por ejemplo, cuando la página web se modifica para mostrar un control de botón, una selección del botón por parte de un usuario puede hacer que el sistema cliente 110 recupere la aplicación de visualización.
En la etapa 270, cuando la información de visualización está disponible para un producto y de acuerdo con el script obtenido en la etapa 220, el sistema cliente 110 puede modificar la página web para mostrar la aplicación de visualización. La aplicación de visualización puede permitir al usuario seleccionar una imagen y modificar la imagen para mostrar el producto, como se describe en la presente descripción. En algunas modalidades, el sistema cliente 110 puede configurarse mediante el script para modificar la página web para incluir un contenedor, tal como un iframe, o similar. El sistema cliente 110 puede entonces cargar la aplicación de visualización recuperada en el contenedor. Las modalidades descritas no se limitan al uso de un contenedor. También se prevén otras modificaciones que resulten en la visualización de la aplicación de visualización, incluida la adición de una capa sobre la página web existente, la abertura de una nueva pestaña o una nueva ventana para mostrar la aplicación de visualización, o la eliminación o reorganización de uno o más elementos de la página web para crear espacio para mostrar la aplicación de visualización.
Las operaciones del método 200 se han etiquetado y descrito secuencialmente, para una descripción conveniente. Como apreciarán los expertos en la técnica, la secuencia indicada no pretende ser limitante. Las etapas se pueden reorganizar o combinar, o se pueden agregar pasos adicionales. Por ejemplo, en algunas modalidades, una única operación puede incluir consultar la disponibilidad del producto (etapa 240) y obtener el script (etapa 220). Por ejemplo, la página web obtenida en la etapa 210 puede contener una URL que apunte a la ubicación del script y al menos un parámetro puede combinarse con la URL, consultando de hecho la disponibilidad de información de visualización para el producto. De manera similar, la aplicación de visualización se puede recuperar antes de seleccionar el control en la página web modificada. La aplicación de visualización puede no estar integrada en la página web o puede estar integrada en la página web pero configurada como "invisible" o "inactiva" hasta que se seleccione el control.
La Figura 3 representa un método 300 para interactuar con una aplicación de visualización, de acuerdo con modalidades descritas. Estas interacciones pueden ocurrir después de la modificación de la página web para mostrar la aplicación de visualización. En algunas modalidades, un usuario puede interactuar con la aplicación de visualización (por ejemplo, a través de una interfaz gráfica de usuario del sistema cliente 110) para proporcionar una imagen. Luego, la imagen se puede modificar para incluir un producto. Luego, el usuario puede interactuar adicionalmente con la aplicación de visualización para modificar la visualización del producto en la imagen (por ejemplo, modificando la ubicación del objeto, orientación o similares).
En la etapa 310, un usuario puede interactuar con el sistema cliente 110 para seleccionar una imagen. La imagen puede ser de una ubicación (interior o exterior) donde se puede colocar el producto. Como ejemplo no limitativo, la imagen puede ser de una habitación. El usuario puede interactuar con una interfaz gráfica de usuario proporcionada por la aplicación de visualización para seleccionar la imagen. En algunas modalidades, la interfaz gráfica de usuario puede proporcionar opciones para cargar una imagen. Por ejemplo, la aplicación de visualización puede proporcionar la opción de cargar imágenes desde una memoria accesible al sistema cliente 110. Como ejemplo adicional, la aplicación de visualización puede proporcionar la opción de adquirir una imagen y cargar la imagen adquirida (por ejemplo, la aplicación de visualización puede proporcionar una opción para acceder a una cámara del sistema cliente 110 o conectada comunicativamente al sistema cliente 110, para capturar una imagen para cargar). Para continuar con este ejemplo, cuando el sistema cliente 110 es un teléfono inteligente, la aplicación de visualización se puede usar para obtener una imagen mediante el uso de la cámara del teléfono inteligente. En diversas modalidades, la interfaz gráfica de usuario de la aplicación de visualización puede proporcionar opciones para seleccionar una imagen existente (por ejemplo, una imagen previamente guardada o cargada por el usuario, o una imagen predeterminada). En algunas modalidades, el sistema cliente 110 puede configurarse para comunicarse con el sistema de aplicación 130 para obtener las opciones de imagen para su selección. Por ejemplo, el sistema de aplicación 130 puede recuperar las opciones de imagen y proporcionárselas al sistema cliente 110 para su visualización. Como ejemplo adicional, el sistema de aplicación 130 puede proporcionar información que permita al sistema cliente 110 recuperar opciones de imágenes desde otra ubicación. La imagen puede ser JPG, GIF, mapa de bits, PNG u otro formato adecuado. Las modalidades descritas no se limitan a ningún estándar o formato particular de la imagen. En la presente descripción se describe una interfaz gráfica de usuario ilustrativa con respecto a las Figuras 4A a 4L.
Como se describió anteriormente, en algunas modalidades el usuario puede hacer que el sistema cliente 110 muestre la aplicación de visualización seleccionando un control asociado con un producto. La aplicación de visualización se puede configurar para mostrar este producto en la imagen. Sin embargo, en algunas modalidades, el usuario puede interactuar con la aplicación de visualización para seleccionar un producto para colocarlo en la imagen además de seleccionar la imagen. Por ejemplo, la aplicación de visualización puede mostrar productos disponibles para visualización al usuario y el usuario puede interactuar con la aplicación de visualización para seleccionar un producto. En tales modalidades, la aplicación de visualización puede mostrar una miniatura de cada producto y otra información que puede ayudar al usuario a determinar qué producto seleccionar (por ejemplo, precio, material, tarifa, etc.).
En la etapa 320, el sistema cliente 110 puede proporcionar una solicitud para mostrar el producto seleccionado en la imagen seleccionada al sistema de aplicación 130. La solicitud se puede proporcionar mediante el uso de la red 140. Las modalidades descritas no se limitan a ningún método o protocolo particular para proporcionar la solicitud. En algunas modalidades, cuando el sistema cliente 110 carga la imagen, la solicitud puede incluir la imagen. En diversas modalidades, cuando se selecciona una opción de imagen, la solicitud puede incluir la imagen o una indicación de la imagen. En algunas modalidades, el sistema cliente 110 puede convertir la imagen seleccionada a un formato predeterminado antes de transmitirla al sistema de aplicación 130, mientras que en algunas otras modalidades, el sistema cliente 110 puede transmitir la imagen seleccionada al sistema de aplicación 130 sin convertir la imagen. Las modalidades descritas no se limitan a un formato particular para transferir la imagen. En algunas modalidades, la solicitud puede indicar el producto seleccionado. En diversas modalidades, la solicitud puede incluir metadatos relacionados con la imagen. Por ejemplo, se puede asociar información de profundidad con la imagen. En algunas modalidades, el sistema cliente 110 puede capturar la información de profundidad mediante el uso de una o más imágenes de múltiples cámaras o múltiples imágenes de la misma cámara. Las modalidades descritas no se limitan a un método particular para adquirir dicha información de profundidad.
En la etapa 330, el sistema de aplicación 130 puede generar instrucciones para modificar la imagen seleccionada para mostrar el producto seleccionado. En algunas modalidades, el sistema de aplicación 130 puede generar instrucciones que permitan al sistema cliente 110 actualizar la visualización del producto en la imagen seleccionada en respuesta a la entrada del usuario. En tales modalidades, las instrucciones pueden incluir un modelo de producto e información que permita la visualización del producto en la imagen seleccionada. Por ejemplo, cuando el producto es una lámpara, las instrucciones pueden incluir un modelo tridimensional (3D) de la lámpara e información que especifica la perspectiva de la imagen y la distancia desde un punto de vista de la imagen a una o más superficies representadas en la imagen. Dicha información podría permitir al sistema cliente 110 escalar y rotar el modelo 3D de la lámpara para su colocación correcta en una o más superficies representadas en la imagen. Esto puede ayudar a garantizar que la perspectiva y/o la escala del producto mostrado en la imagen seleccionada sean consistentes con la perspectiva y la escala de la imagen seleccionada.
En diversas modalidades, las instrucciones recibidas desde el sistema de aplicación 130 pueden no permitir que el sistema cliente 110 actualice la visualización del producto en la imagen seleccionada en respuesta a la entrada del usuario. En cambio, el sistema cliente 110 puede solicitar actualizaciones de la imagen modificada desde el sistema de aplicación 130. En algunas modalidades, dichas instrucciones pueden incluir una versión de la imagen seleccionada modificada para mostrar el producto en una posición y orientación particulares.
En algunas modalidades, generar las instrucciones puede incluir la creación de un modelo 3D a partir de la imagen. El modelo 3D proporciona un modelo de la escena capturada en la imagen, incluidos los objetos presentes en la imagen. Esta información permite variar la perspectiva y la escala de la imagen y de todos los objetos que contiene. El sistema de aplicación 130 se puede configurar para generar el modelo 3D usando un modelo de aprendizaje automático, tal como una red neuronal convolucional. El modelo de aprendizaje automático se puede configurar para estimar la información de profundidad y perspectiva de la imagen. Por ejemplo, el modelo de aprendizaje automático se puede configurar para estimar un punto de vista para la imagen y una distancia desde el punto de vista hasta una superficie representada en la imagen o un píxel en la imagen. En diversas modalidades, cuando la imagen representa una habitación, el modelo de aprendizaje automático se puede configurar para determinar una forma de la habitación (por ejemplo, la ubicación de las paredes, el suelo o el techo en la imagen, con respecto al punto de vista o entre sí, o similares). En algunas modalidades, cuando la solicitud recibida del sistema cliente 110 incluye información de profundidad, el sistema de aplicación 130 puede configurarse para utilizar dicha información de profundidad al crear el modelo 3D.
En algunas modalidades, el sistema de aplicación 130 puede configurarse para realizar una segmentación semántica de la imagen. Dicha segmentación semántica puede identificar partes de la imagen relevantes para la ubicación de un producto en la imagen. La segmentación semántica se puede utilizar para identificar píxeles de imagen asociados con un objeto compartido representado en la imagen, permitiendo de esta manera identificar los objetos representados en la imagen. Como ejemplo no limitante, se puede utilizar la segmentación semántica para identificar suelos, paredes, encimeras, muebles (por ejemplo, mesas, libreros, estanterías) o similares en la imagen.
Sobre la base de los objetos identificados representados en la imagen, se pueden designar partes de la imagen para la colocación del producto en la imagen. En algunas modalidades, la segmentación semántica se puede realizar utilizando, además de la imagen, el tipo de producto o el modelo 3D generado a partir de la imagen. Por ejemplo, cuando el producto es un tipo de piso, este tipo de producto puede informar la segmentación semántica (por ejemplo, mediante la selección de un modelo de aprendizaje automático para realizar la segmentación o como entrada al modelo de aprendizaje automático que realiza la segmentación). De manera similar, el modelo 3D puede informar la segmentación semántica (por ejemplo, el modelo 3D puede indicar superficies que potencialmente pueden ser parte de un piso). Esto puede ayudar a reducir la sobrecarga de procesamiento, permitiendo llevar a cabo una segmentación semántica específica de la imagen, en la que la imagen se analiza para detectar la presencia de objetos específicos. El tipo de producto seleccionado para visualización puede usarse para identificar uno o más objetos presentes en la imagen requeridos por el producto para cumplir su función. Por ejemplo, cuando el producto seleccionado para visualización se relaciona con un tipo de piso, la segmentación semántica puede restringirse a identificar objetos de imagen correspondientes a un piso en la imagen. El suelo es esencial para la función del suelo.
El sistema de aplicación 130 puede usar uno o más modelos de aprendizaje automático para realizar la segmentación semántica de la imagen. Por ejemplo, el sistema de aplicación 130 puede realizar segmentación semántica usando una red neuronal convolucional construida sobre AlexNet, VGG-16, GoogLeNet, ResNet u otra arquitectura adecuada. La red neuronal convolucional se puede entrenar para realizar segmentación semántica basada en regiones, segmentación semántica basada en redes totalmente convolucionales o para realizar otro método adecuado de segmentación semántica.
En algunas modalidades, el sistema de aplicación 130 se puede configurar para usar múltiples modelos de aprendizaje automático para realizar la segmentación semántica de la imagen. Los múltiples modelos de aprendizaje automático se pueden entrenar para identificar diferentes partes de la imagen. Por ejemplo, se puede entrenar un modelo de aprendizaje automático para identificar pisos en la imagen, mientras que se puede entrenar otro modelo de aprendizaje automático para identificar paredes en la imagen. El sistema de aplicación 130 se puede configurar para determinar cuál de los múltiples modelos de aprendizaje automático usar en base a un tipo de producto. Por ejemplo, cuando el producto es un reloj de pared, el sistema de aplicación 130 puede realizar una segmentación semántica en la imagen usando un modelo de aprendizaje automático entrenado para identificar paredes en la imagen. Como ejemplo adicional, cuando el producto es un piso, el sistema de aplicación 130 puede realizar una segmentación semántica en la imagen usando un modelo de aprendizaje automático entrenado para identificar pisos en la imagen.
Las modalidades descritas no se limitan a modalidades que utilizan modelos de aprendizaje automático entrenados para identificar una única clase semántica. Por ejemplo, las modalidades descritas se pueden configurar para utilizar un modelo de aprendizaje automático entrenado para identificar paredes, pisos y mostradores en la imagen o, de manera más general, identificar superficies en la imagen.
En algunas modalidades, el sistema de aplicación 130 se puede configurar para almacenar la imagen y el modelo 3D de la imagen. Si más tarde el usuario desea colocar otro producto en la imagen almacenada, la imagen y el modelo almacenados se pueden recuperar y reutilizar.
El sistema de aplicación 130 puede configurarse para mantener un subsistema de almacenamiento de datos (por ejemplo, una base de datos) que almacena modelos de productos. En respuesta a una solicitud del sistema cliente 110 que indica un producto seleccionado, el sistema de aplicación 130 puede configurarse para recuperar un modelo para el producto seleccionado. El modelo del producto seleccionado puede incluir información espacial e información de detalle de superficie. La información espacial puede especificar las dimensiones del producto. En algunas modalidades, dicha información espacial puede incluir una representación matemática de una o más superficies de un producto. En diversas modalidades, la información espacial puede comprender un modelo 2D o 3D del producto. Por ejemplo, un modelo 3D de una lámpara puede especificar la ubicación de puntos en la superficie de la lámpara en un espacio tridimensional. Como ejemplo adicional, un modelo 2D de un cartel puede especificar la altura y el ancho del cartel. La información detallada de la superficie puede incluir texturas, colores, patrones o similares. Por ejemplo, un producto se puede asociar con un mapeo de textura, que se puede aplicar a un modelo 2D o 3D del producto, o a una superficie en el modelo 3D de la imagen. En diversas modalidades, es posible que algunos productos no estén asociados con un modelo espacial. Por ejemplo, en algunas modalidades, los productos que carecen de dimensiones predeterminadas, tales como pisos, molduras, paneles, papel tapiz, encimeras o similares, pueden asociarse con información detallada de la superficie pero no con información espacial.
El sistema de aplicación 130 puede, en algunas modalidades, configurarse para recuperar un modelo de producto para el producto seleccionado e incluir el modelo de producto en las instrucciones. El sistema de aplicación 130 puede modificar alternativamente o adicionalmente la imagen seleccionada usando el modelo del producto y luego incluir la imagen modificada en las instrucciones.
El sistema de aplicación 130 puede modificar la imagen seleccionada representando el modelo del producto en una ubicación particular en la imagen seleccionada. El sistema solicitante 130 puede configurarse para utilizar un método de representación adecuado, tal como representación basada en polígonos, representación de líneas de exploración, trazado de rayos, rasterización o similares. Dicha representación puede incluir determinar los píxeles en la imagen seleccionada oscurecidos por el modelo de producto representado y reemplazar estos píxeles con los píxeles correspondientes del modelo de producto representado. Por ejemplo, el sistema de aplicación 130 puede determinar que un reloj de pared puede cubrir un área de la pared y reemplazar los píxeles en la imagen seleccionada con los píxeles correspondientes en una representación del reloj de pared. En diversas modalidades, la ubicación particular se puede determinar basándose en la información incluida en la solicitud. Por ejemplo, el usuario puede especificar una ubicación para un producto (por ejemplo, una lámpara) en la imagen (por ejemplo, en una mesa representada en la imagen). En algunas modalidades, la ubicación particular puede determinarse mediante el sistema de aplicación 130. Por ejemplo, el sistema de aplicación 130 puede determinar ubicaciones adecuadas en la imagen basándose en la segmentación semántica, como se describe en la presente descripción, y un tipo de producto. En este ejemplo, el sistema de aplicación 130 puede determinar que el producto es una lámpara y que la imagen incluye una superficie adecuada para colocar una lámpara (por ejemplo, una mesa, encimera, estante o similar). El sistema de aplicación 130 puede entonces colocar la lámpara sobre la superficie adecuada.
El sistema de aplicación 130 puede modificar la imagen seleccionada pintando una imagen del producto en porciones adecuadas de la imagen seleccionada, usando información detallada de la superficie para el producto y un modelo 3D de la imagen. Como se describió anteriormente, el sistema de aplicación 130 puede realizar una segmentación semántica en la imagen para asociar clases con píxeles en la imagen. En el presente contexto, clase puede usarse para designar el tipo de objeto presente en la imagen. En algunos casos, cuando un tipo de producto coincide con una de las clases, se puede pintar una imagen del producto generada utilizando la información detallada de la superficie sobre los píxeles asociados con esa clase. Por ejemplo, cuando el producto es un tipo de piso, el sistema de aplicación 130 puede reemplazar partes de la imagen seleccionada asociada con la clase "piso" con partes correspondientes del piso con la textura asignada.
En la etapa 340, el sistema de aplicación 130 proporciona las instrucciones generadas en la etapa 330 al sistema cliente 110. Las instrucciones se pueden proporcionar mediante el uso de la red 140. Las modalidades descritas no se limitan a ningún método o protocolo particular para proporcionar las instrucciones. En algunas modalidades, las instrucciones pueden incluir una imagen modificada que muestra el producto seleccionado. En diversas modalidades, las instrucciones pueden incluir la imagen seleccionada (por ejemplo, cuando la solicitud en la etapa 320 indicó una opción de imagen pero no incluía una imagen cargada) y una versión renderizada de un modelo de producto (por ejemplo, una versión renderizada del modelo de producto, adecuadamente escalado y orientado de manera que pueda combinarse con la imagen, junto con información que permita al sistema cliente combinar las imágenes). En algunas modalidades, las instrucciones pueden incluir un modelo de producto para el producto seleccionado, junto con instrucciones para renderizar el modelo de producto y mostrar el modelo de producto renderizado en la imagen seleccionada. Por ejemplo, las instrucciones pueden incluir un modelo 3D de la imagen seleccionada y resultados de la segmentación semántica de la imagen seleccionada (por ejemplo, asociaciones entre píxeles en la imagen seleccionada).
En la etapa 350, el sistema cliente 110 puede configurarse para visualizar la imagen seleccionada, modificada para incluir el producto seleccionado, mediante el uso de las instrucciones recibidas. Cuando las instrucciones incluyen una imagen modificada que muestra el producto seleccionado, el sistema cliente 110 puede configurarse para visualizar la imagen modificada. Cuando las instrucciones incluyen un modelo de producto renderizado y la imagen seleccionada, el sistema cliente 110 se puede configurar para combinar el modelo de producto renderizado y la imagen seleccionada para generar la imagen modificada. El sistema cliente 110 puede entonces visualizar la imagen modificada. Cuando las instrucciones incluyen el modelo de producto e instrucciones para renderizar el modelo de producto y mostrar el modelo de producto renderizado en la imagen seleccionada, el sistema cliente 110 puede realizar dicha renderización y visualizar la imagen modificada resultante. Por ejemplo, las instrucciones incluyen un modelo espacial 3D del producto, información detallada de la superficie del producto y un modelo 3D de la imagen. El modelo 3D de la imagen puede incluir información de perspectiva e información de profundidad para las superficies de la imagen. El sistema cliente 110 se puede configurar para usar la perspectiva y el modelo 3D de la imagen para representar el producto en la imagen en las ubicaciones indicadas por el usuario.
Opcionalmente, en la etapa 360, el sistema cliente 110 se puede configurar para actualizar la imagen modificada en base a las interacciones del usuario con la aplicación de visualización. Preferentemente, el usuario puede interactuar con la imagen modificada para ajustar la ubicación y orientación del producto mostrado en la imagen, sin que dicha interacción requiera cargar la página web. Por ejemplo, el usuario puede rotar el producto y moverlo para colocarlo en una ubicación diferente. Preferentemente, el sistema de cliente 110 puede limitar el intervalo dentro del cual se puede colocar el producto en dependencia del tipo de producto y la clasificación de píxeles en la imagen seleccionada. El método puede comprender identificar píxeles en la imagen seleccionada que tienen una clasificación asociada con el tipo de producto y restringir la ubicación del producto dentro de la imagen a ubicaciones correspondientes con los píxeles identificados que tienen la clasificación asociada con el tipo de producto. Por ejemplo, el usuario puede mover una alfombra dentro del rango de píxeles identificados como representativos de pisos. En algunas modalidades, el sistema cliente 110 puede volver a renderizar la imagen del producto y/o volver a combinar la imagen del producto con la imagen seleccionada como se describió anteriormente. En algunas modalidades, el sistema de cliente 110 puede transmitir la interacción del usuario al sistema de aplicación 130 y solicitar la visualización del producto en la imagen de la habitación con instrucciones actualizadas. En estos casos, el sistema puede repetir las etapas 330 a 350.
Las Figuras 4A-L representan un sistema cliente 110 ilustrativo que implementa una modalidad de la presente invención. La Figura 4A ilustra la interfaz del sistema cliente 110 cuando visita el sistema anfitrión 120. A efectos de la ilustración, el sistema anfitrión 120 es un sitio web para una tienda de artículos para el hogar. El sistema cliente 110, como se describió anteriormente, puede ser cualquier dispositivo informático con una pantalla. Con fines ilustrativos, el sistema cliente 110 en este ejemplo es un teléfono inteligente con una cámara. El sistema cliente 110 solicita una página web desde el sistema anfitrión 120 (por ejemplo, un sitio web de la tienda de artículos para el hogar) y muestra la página web al usuario. La página web puede enumerar un grupo de categorías de productos (por ejemplo, pisos, papeles pintados, muebles, etc.). Cada una de las categorías enumeradas está asociada con un botón etiquetado con el nombre de la categoría, que, si se hace clic, hace que el sistema cliente 110 solicite la página web representada en la Figura 4B.
La Figura 4B representa una página web ilustrativa recuperada del sistema anfitrión 120. Esta página web muestra una lista de productos. Similar a la Figura 4B, la Figura 4C representa una página web ilustrativa recuperada del sistema anfitrión 120. A diferencia de la Figura 4B, la Figura 4C representa información de producto para un solo producto. Durante la carga de las páginas web representadas en las Figuras 4B y 4C, el sistema cliente 110 solicitó un script del sistema de aplicación 130. Como se describió anteriormente con respecto a la Figura 2, el script se ha ejecutado, provocando que el sistema cliente 110 identifique los productos enumerados en cada una de las páginas web. El sistema de cliente 110 se ha comunicado con el sistema de aplicación 130 para determinar que la información de visualización de los productos está disponible. En consecuencia, cada página web se ha modificado para incluir botones "Ver en ml habitación" debajo de cada producto. Para cada página web, el usuario puede hacer clic en el botón para iniciar la aplicación de visualización.
Las Figura 4D y 4E representan interacciones con una aplicación de visualización después de seleccionar el botón "Ver en ml habitación" debajo de un producto. En la Figura 4D, la página web ha sido modificada para incluir la aplicación de visualización. La aplicación de visualización proporciona una interfaz para seleccionar una imagen predeterminada (por ejemplo, "espacio acogedor") o elegir cargar una imagen (por ejemplo, "Tomar foto de mi habitación"). Cuando el usuario selecciona cargar una imagen, el sistema cliente 110 puede operar la cámara del sistema cliente 110 para permitir al usuario tomar una fotografía de la habitación. En algunas modalidades, aunque no se representan en la Figura 4D y 4E, el usuario puede seleccionar una imagen previamente almacenada por el sistema de aplicación 130 o una imagen obtenida previamente por el sistema cliente 110. Después de seleccionar o confirmar la foto, el sistema cliente 110 puede transmitir la foto o una indicación de una foto seleccionada al sistema de aplicación 130, que, a cambio, genera instrucciones y las transmite al sistema cliente 110 como se describió anteriormente con respecto a la Figura 3.
La Figura 4F representa la visualización, mediante la aplicación de visualización, de una imagen modificada que muestra un producto. En este ejemplo no limitativo, el piso en la imagen seleccionada (representado en la Figura 4e ) ha sido reemplazado por una imagen de un producto de piso (el piso de madera representado en la Figura 4C). Como se describe en la presente descripción, los píxeles del "piso" en la imagen seleccionada se han identificado mediante segmentación semántica. La información detallada de la superficie (por ejemplo, el patrón, el color y la textura del producto para pisos) del producto se ha asignado en textura a los píxeles identificados.
Las Figuras 4G-4I representan una interfaz para actualizar la imagen modificada. En la Figura 4G, en la interfaz del usuario se muestra una lista de miniaturas de productos sugeridos. En algunas modalidades, el sistema cliente 110 puede configurarse para almacenar una lista de dichos productos. Alternativamente, el sistema cliente 110 puede consultar el sistema de aplicación 130 para completar la lista de productos. A pesar de que la Figura 4G representa las miniaturas en la parte inferior de la pantalla, las miniaturas se pueden colocar en cualquier parte de la pantalla. Como se muestra en la Figura 4H, el usuario puede buscar un producto ingresando texto en el sistema del cliente 110. Como se muestra en la Figura 4I, el usuario puede aplicar uno o más filtros para limitar la cantidad de productos que se muestran. En algunas modalidades, el sistema cliente 110 puede buscar o filtrar el producto localmente. En algunas modalidades, el sistema de cliente 110 puede transmitir la solicitud de búsqueda o la solicitud de filtrado al sistema de aplicación 130 y recibir del sistema de aplicación 130 una lista de productos actualizada. Después de seleccionar un nuevo producto, la imagen modificada se puede actualizar para mostrar el nuevo producto. Dicha actualización puede incluir proporcionar, por parte del sistema cliente 110 al sistema de aplicación 130, una solicitud para mostrar el nuevo producto en la imagen seleccionada. El sistema cliente 110 puede recibir en respuesta instrucciones para mostrar el nuevo producto en la imagen seleccionada.
Las Figuras 4J-4L representan la modificación interactiva de la visualización de un producto en una imagen. En este ejemplo no limitativo, el producto es una alfombra. En la Figura 4J, la alfombra se muestra en una primera posición en el suelo de la habitación. La vista de la alfombra se ajusta para que coincida con la perspectiva y el punto de vista de la imagen. Además, la otomana existente se muestra encima de la alfombra. En la Figura 4K, la aplicación de visualización proporciona instrucciones sobre cómo cambiar la posición y orientación de la alfombra en la imagen mediante un conjunto de gestos predefinidos en la pantalla táctil (por ejemplo, presione y arrastre para mover el objeto por la habitación y presione y gire con dos dedos para rotar el objeto). En algunas modalidades, el usuario puede interactuar con el objeto usando un mouse, un teclado o cualquier otro dispositivo de entrada disponible. Como se muestra en la Figura 4L, en respuesta a la interacción del usuario, la posición mostrada y la orientación del objeto se pueden actualizar. Como se describió anteriormente con respecto a la Figura 3, dicha actualización puede realizarse localmente mediante el sistema cliente 110, mediante el uso de un modelo 3D de la imagen y un modelo de producto, realizarse de forma remota en el sistema de aplicación 130, o realizarse en parte localmente y en parte de forma remota. Por ejemplo, el sistema cliente 110 puede transmitir las interacciones del usuario al sistema de aplicación 130, que puede modificar las imágenes y transmitir la imagen modificada de nuevo al sistema cliente 110. Alternativamente, el sistema cliente 110 puede transmitir la selección de producto al sistema de aplicación 130 y recibir un modelo de producto e instrucciones para colocar el producto en la imagen seleccionada. El sistema cliente 110 puede entonces renderizar el modelo de producto, combinar el modelo de producto renderizado con la imagen seleccionada y visualizar la imagen modificada resultante al usuario sin comunicarse con el sistema de aplicación 130.
La Figura 5 representa un esquema del sistema informático ilustrativo 500 para realizar los sistemas y métodos previstos, de acuerdo con las modalidades reveladas. En algunas modalidades, el sistema informático 500 puede incluir un procesador 510, una memoria 515, una pantalla 520, una(s) interfaz(es) de E/S 525 y un adaptador de red 530. Estas unidades podrán comunicarse entre sí a través del bus 535 o de forma inalámbrica. Los componentes mostrados en la Figura 5 puede residir en un solo dispositivo o en varios dispositivos.
De acuerdo con las modalidades descritas, el procesador 510 puede comprender una unidad central de procesamiento (CPU), una unidad de procesamiento gráfico (GPU) o un microprocesador similar que tenga uno o más núcleos de procesamiento. El sistema informático 500 puede incluir uno o más procesadores 510 y puede funcionar además con uno o más procesadores que son remotos con respecto a los procesadores 510. La memoria 515 puede incluir memoria no transitoria que contiene instrucciones no transitorias, tal como un disco duro de computadora, memoria de acceso aleatorio (RAM), almacenamiento extraíble o almacenamiento de computadora remota. En algunos aspectos, la memoria 515 puede configurarse para almacenar datos e instrucciones, tales como programas de software. Por ejemplo, la memoria 515 puede configurarse para almacenar datos e instrucciones. En algunos aspectos, el procesador 510 puede configurarse para ejecutar instrucciones y/o programas no transitorios almacenados en la memoria 515 para configurar el sistema informático 500 para realizar operaciones de los sistemas y métodos divulgados. En diversos aspectos, como reconocerá un experto en la técnica, el procesador 510 puede configurarse para ejecutar instrucciones y/o programas no transitorios almacenados en una memoria remota para realizar operaciones de los sistemas y métodos divulgados.
La pantalla 520 puede ser cualquier dispositivo que proporcione una salida visual, por ejemplo, un monitor de computadora, una pantalla LCD, etc. Las interfaces de e/s 525 pueden incluir hardware y/o una combinación de hardware y software para comunicar información al sistema informático 500 desde un usuario del sistema informático 500, tal como un teclado, ratón, trackball, dispositivo de entrada de audio, pantalla táctil, entrada de infrarrojos interfaz o dispositivo similar. El adaptador de red 530 puede incluir hardware y/o una combinación de hardware y software para permitir que el sistema informático 500 intercambie información mediante el uso de redes externas, tales como la red 140. Por ejemplo, el adaptador de red 530 puede incluir un adaptador de red de área amplia inalámbrica (WWAN), un módulo Bluetooth, un módulo de comunicación de campo cercano o un adaptador de red de área local (LAN).
La Figura 6 representa un método ilustrativo 600 para la visualización de productos en una interfaz de visualización, de acuerdo con modalidades descritas. Como se muestra en la Figura 6 y se analizan en la presente descripción, las modalidades descritas no se limitan a mostrar productos en una imagen mediante el uso de una aplicación de visualización. En algunas modalidades, el sistema de aplicación 130 puede proporcionar recursos gráficos, como se describe en la presente descripción, al sistema cliente 110 para que los use la herramienta nativa 601 al mostrar el producto en los datos de imagen. Luego, un usuario puede interactuar con el sistema cliente 110 para modificar la visualización del producto en la imagen (por ejemplo, modificando la ubicación, orientación o similares del producto). En tales modalidades, el sistema cliente 110 no necesita obtener la aplicación de visualización. Además, el sistema cliente 110 no necesita proporcionar una imagen al sistema de aplicación 130, una simplificación que puede mejorar la experiencia del usuario. El sistema cliente 110 puede ser capaz de mostrar el producto en los datos de imagen a medida que se adquieren los datos de imagen, mejorando aún más la experiencia del usuario. En algunos casos, por ejemplo, un usuario del sistema cliente 110 puede estar autorizado a moverse por un entorno y ver una imagen virtual del producto desde diferentes ángulos o perspectivas en el entorno. Además, se puede proporcionar una representación más precisa, ya que los datos de la imagen pueden proporcionar más información sobre el medio ambiente que una sola imagen. Además, la herramienta nativa 601 puede tener acceso a fuentes de datos adicionales (por ejemplo, acelerómetros en el dispositivo cliente 110, o similares) para determinar el diseño del entorno, o puede ser más potente que una aplicación de visualización prácticamente descargable.
De acuerdo con las modalidades descritas, los datos de imagen pueden incluir imágenes, datos de vídeo, una transmisión en vivo o similares. Los datos de imagen pueden ser obtenidos por el sistema cliente 110 desde un dispositivo de imágenes (por ejemplo, una cámara digital capaz de capturar fotografías, grabar vídeo, proporcionar la transmisión en vivo de imágenes, o similares). En algunas modalidades, los datos de la imagen pueden recuperarse de una memoria accesible para el sistema cliente 110 o recibirse desde otro sistema o dispositivo (por ejemplo, una cámara de seguridad, videocámara, cámara web o similar). En algunas modalidades, el método 600 puede permitir una visualización en tiempo real del producto en los datos de la imagen.
La herramienta nativa 601 puede incluir una programación o motor de representación gráfica. La herramienta nativa 601 puede ser o incluir una o más herramientas de realidad aumentada (por ejemplo, ARKit, ARCore o similares). La herramienta nativa 601 se puede incorporar a un navegador web móvil (por ejemplo, Safari, Chrome o similar) o una aplicación móvil (por ejemplo, una aplicación) del sistema cliente 110. La herramienta nativa 601 puede usar los recursos gráficos recibidos por el sistema cliente 110 desde el sistema de aplicación 130 para generar medios de realidad aumentada (AR) o realidad virtual (VR) que muestran el producto en datos de imagen adquiridos por el sistema cliente 110. En algunas modalidades, la herramienta nativa 601 se puede configurar para mostrar los medios de realidad aumentada (AR) o realidad virtual (VR) en una aplicación integrada en una página web (por ejemplo, la página web que contiene el control seleccionado por el usuario para iniciar la visualización). En algunas modalidades, la herramienta nativa 601 se puede configurar para mostrar los medios de realidad aumentada (AR) o realidad virtual (VR) en una aplicación separada (por ejemplo, separada de la página web que contiene el control seleccionado por el usuario para iniciar la visualización).
En algunas de estas modalidades, el sistema cliente 110 puede ser o incluir un dispositivo informático tal como un terminal o una máquina de quiosco interactiva. El terminal o la máquina de quiosco interactiva se pueden configurar para soportar la herramienta nativa 601.
En algunas modalidades, el método 600 puede incluir etapas para obtener una página web (por ejemplo, desde el sistema anfitrión 120), obtener un script (por ejemplo, desde el sistema de aplicación 130), obtener identificadores para cada uno de al menos algunos de los productos descritos o referenciados en la página web y consultar la disponibilidad del producto. Dichos etapas se pueden realizar como se analiza en la presente descripción con respecto a las etapas 210 a 240 de la Figura 2. En algunas modalidades, cuando la información de visualización está disponible para un producto y de acuerdo con el script obtenido, el sistema cliente 110 puede modificar la página web para mostrar un control para el producto. Como se describió anteriormente con respecto a la etapa 250 del método 200, el control puede ser un elemento interactivo. Mostrar el control puede incluir activar el control. En la etapa 610 del método 600, un usuario puede interactuar con la página web modificada para seleccionar un producto (por ejemplo, seleccionando el control correspondiente al producto). Las modalidades descritas no se limitan a ningún tipo de interacción. En algunas modalidades, el usuario puede interactuar con la página web modificada como se describió anteriormente con respecto a la etapa 260 del método 200.
En la etapa 620, en respuesta a la interacción en la etapa 610, el sistema cliente 110 puede obtener recursos gráficos del sistema de aplicación 130. En algunas modalidades, el sistema cliente 110 puede proporcionar una solicitud al sistema de aplicación 130. En algunas modalidades, la solicitud se puede proporcionar utilizando la red 140. Las modalidades descritas no se limitan a ningún método o protocolo particular para proporcionar la solicitud. La solicitud puede indicar el producto para el cual se requieren los recursos gráficos (por ejemplo, puede incluir un valor u otro indicador del producto; estar dirigida a una URL o similar específico del producto; o similar). En algunas modalidades, la solicitud puede proporcionar información que indique un tipo, modelo, versión o similar de la herramienta nativa 601. En diversas modalidades, la solicitud puede especificar un tipo particular de recurso gráfico. En respuesta a la solicitud, el sistema de aplicación 130 puede proporcionar los recursos gráficos al sistema cliente 110. En algunas modalidades, el sistema de aplicación 130 puede recuperar los recursos gráficos de una memoria accesible al sistema de aplicación 130. En diversas modalidades, el sistema de aplicación 130 puede recibir los recursos gráficos de otro sistema (por ejemplo, un sistema asociado con un fabricante, proveedor o distribuidor del producto, o similar). En algunas modalidades, el sistema de aplicación 130 puede crear los recursos gráficos en respuesta a la solicitud. En algunas modalidades, el sistema de aplicación 130 puede proporcionar recursos gráficos seleccionados en base a al menos uno del producto seleccionado o la información que indica la herramienta nativa del sistema cliente 110. En algunas modalidades, el sistema de aplicación 130 puede generar los recursos gráficos en base a la solicitud recibida. En algunos casos, por ejemplo, basándose en la información relativa a la herramienta nativa del sistema cliente 110, el sistema de aplicación 130 puede personalizar los recursos gráficos para que sean compatibles con las herramientas nativas del sistema cliente 110 (por ejemplo, un formato de archivo USDZ cuando la herramienta nativa 601 es ARKit o similar; o un formato de archivo OBJ/MTL cuando la herramienta nativa 601 es ARToolkit o similar).
En la etapa 630, un navegador del sistema cliente 110 puede llamar o invocar la herramienta nativa 601. En algunas modalidades, el script recibido del sistema de aplicación 130 puede hacer que el navegador proporcione comandos a la herramienta nativa 601 (por ejemplo, mediante el uso de una API expuesta por la herramienta nativa 601). Los comandos pueden, en algunas modalidades, incluir comandos para adquirir datos de imagen. Los comandos pueden, en diversas modalidades, incluir comandos para mostrar el producto en una ubicación en un entorno representado en los datos de la imagen. Los comandos pueden incluir comandos para iniciar una aplicación para mostrar el producto en el entorno. En algunas modalidades, la aplicación puede integrarse en el navegador. En diversas modalidades, la aplicación puede estar separada del navegador.
En la etapa 640, el sistema cliente 110 puede mostrar el producto en los datos de imagen obtenidos. La pantalla puede ser o incluir una representación AR/VR del producto seleccionado. En algunas modalidades, la herramienta nativa del sistema cliente 110 puede generar la visualización imponiendo, combinando o provocando de cualquier otra manera que los recursos gráficos recibidos aparezcan en o en una ubicación del entorno. Por ejemplo, una representación 3D de un modelo espacial del producto puede aparecer en una transmisión de cámara en tiempo real, visible en la pantalla del sistema cliente 110. El sistema cliente 110 se puede configurar para actualizar la representación AR/VR del producto en base a las interacciones del usuario con el sistema cliente 110. Por ejemplo, el usuario puede interactuar con la representación AR/VR de un producto mostrado para ajustar la ubicación y orientación del producto mostrado en el entorno. Por ejemplo, el usuario puede girar el producto y moverlo para colocarlo en una ubicación diferente del entorno. En algunas modalidades, la parte mostrada del entorno puede cambiar cuando la cámara del sistema cliente 110 cambia, se mueve, gira o altera de otro de cualquier otra manera su campo de visión. En tales casos, la herramienta nativa del sistema cliente 110 puede fijar el producto mostrado en una ubicación del entorno independientemente de los cambios en el campo de visión.
En algunas modalidades, el sistema cliente 110 puede mostrar una interfaz AR/VR en el entorno para permitir al usuario actualizar la pantalla en el entorno capturado. En algunas modalidades, la interfaz AR/VR puede permitir al usuario seleccionar o actualizar una selección de un producto para mostrarlo en el entorno capturado. En diversas modalidades, la interfaz AR/VR puede permitir al usuario modificar características del producto mostrado en el entorno capturado (por ejemplo, modificando al menos uno de un color, forma, tamaño, composición o material, o similares). La interfaz AR/VR se puede generar para visualizarse junto con el entorno capturado en la etapa 650. Por ejemplo, la herramienta nativa del sistema cliente 110 puede generar una interfaz de control en la vista de cámara en vivo mostrada, permitiendo al usuario interactuar con la interfaz de control mientras ve la transmisión de la cámara en tiempo real. En algunas modalidades, la interfaz AR/VR puede indicar una lista de productos disponibles para su visualización en el entorno. En algunos casos, los productos disponibles pueden representarse mediante gráficos o símbolos, como iconos, símbolos alfanuméricos o pequeñas imágenes representativas (como una imagen en miniatura). La lista de productos disponibles se puede presentar en una interfaz similar a un menú (como un menú desplegable, un menú de desplazamiento u otras interfaces similares).
Las modalidades descritas no se limitan al uso de un identificador de un producto generado a partir de información extraída de la página web. En algunas modalidades, el producto a exhibir puede seleccionarse aleatoriamente mediante el sistema de aplicación 130 en base a la información de disponibilidad del producto. Por ejemplo, cuando un usuario selecciona (por ejemplo, hace clic en) un control de visualización de la aplicación de visualización, la aplicación de visualización puede comenzar con un producto predeterminado o aleatorio antes de recibir la selección del producto por parte del usuario (por ejemplo, etapa 320). Como ejemplo no limitativo, un banner en un sitio web del sistema anfitrión 120 puede mostrar la etiqueta "Visualizador". Cuando un usuario selecciona el banner, una instancia del visualizador puede comenzar con un producto predeterminado o aleatorio. El producto predeterminado puede ser un producto predeterminado elegido entre los productos disponibles. El producto aleatorio puede ser un producto elegido entre los productos disponibles mediante un algoritmo aleatorio o pseudoaleatorio. En algunas modalidades, el banner puede ser un anuncio seleccionable para el producto.
Las modalidades descritas no se limitan a solicitar scripts asociados con el sistema anfitrión 120. En algunas modalidades, el script puede no estar asociado específicamente con el sistema anfitrión 120, sino que puede ser un script genérico. El sistema de aplicación 130 puede adaptar el script genérico al sistema anfitrión 120. Por ejemplo, cuando un usuario interactúa con la aplicación de visualización, el script genérico se puede personalizar para el sistema anfitrión 120 basándose en un contexto asociado con el sistema anfitrión 120, tal como el dominio de la página web (por ejemplo, obtenido de la URL actual), o los contenidos de la página web. Como ejemplo no limitante, se puede proporcionar un script genérico al sistema cliente 110. En algunas modalidades, el script genérico puede configurarse mediante el sistema de aplicación 130 en base a un contexto de la página web a la que accede el dispositivo cliente 110. Cuando se ejecuta, el script configurado puede modificar la página web del sistema cliente 110 para incluir un indicador gráfico interactivo. El indicador gráfico se puede seleccionar para iniciar una instancia de la aplicación de visualización. La instancia de la aplicación de visualización puede proporcionar contenido apropiado para la página web, basándose en la configuración del script realizado por el sistema de aplicación 130. En diversas modalidades, el script genérico se puede enviar al sistema cliente 110. Cuando se inicia la aplicación de visualización, puede proporcionar la información contextual al sistema de aplicación 130, que puede proporcionar información de personalización adecuada. Por ejemplo, si el sistema anfitrión 120 está asociado con un sitio web para un minorista de muebles, el sistema de aplicación 130 puede determinar que el contexto del sistema anfitrión 120 es un minorista de muebles (o es ese minorista de muebles en particular), y un script genérico configurado para minoristas de muebles (o para ese minorista de muebles en particular) se puede proporcionar al sistema cliente 110. Si el sistema anfitrión 120 está asociado con un sitio web para un minorista de alfombras, el sistema de aplicación 130 puede determinar que el contexto del sistema anfitrión 120 es un minorista de alfombras (o es ese minorista de alfombras en particular), y el script genérico, configurado para minoristas de alfombras (o ese minorista de alfombras en particular) se puede proporcionar al sistema cliente 110. En algunas modalidades, el script genérico es una plantilla para el script proporcionado al sistema cliente 110, y el sistema de aplicación 130 genera el script basándose en un script genérico basado en el contexto del sistema anfitrión 120.
Las modalidades descritas no se limitan al seguimiento de los usuarios con cookies propias. En algunas modalidades, se puede utilizar el almacenamiento local en lugar de cookies de origen para rastrear a los usuarios. Como se describe en este documento, el seguimiento (por ejemplo, mediante el uso de almacenamiento local o cookies de origen) puede permitir que la aplicación de visualización proporcione las imágenes cargadas por el usuario o proporcione de cualquier otra manera una experiencia personalizada para el usuario (o para una sesión), incluso cuando el usuario abre la aplicación de visualización desde diferentes páginas web o navegadores.
En algunas modalidades, el sistema de aplicación 130 puede obtener información de sesión para un usuario desde un almacenamiento local asociado con un navegador del sistema cliente 110. En algunas modalidades, la información de la sesión puede permitir que el sistema de aplicación 130 asocie una instancia de la aplicación de visualización con al menos uno de los usuarios o una sesión. En algunos casos, dicha asociación se puede establecer sin utilizar cookies para rastrear al usuario. La información de la sesión puede permitir que el sistema de aplicación 130 haga que los recursos (por ejemplo, imágenes cargadas, productos o selecciones de productos u otros recursos) asociados con al menos uno del usuario o la sesión anterior estén disponibles para la aplicación de visualización. En consecuencia, el usuario puede acceder a los recursos, incluso cuando interactúa con la aplicación de visualización en diferentes páginas web. Por ejemplo, un usuario podría iniciar una instancia de la aplicación de visualización a través de una primera página web de un primer proveedor de servicios y cargar imágenes de habitaciones al sistema de aplicación 130. Luego, el usuario podría salir de la aplicación de visualización y acceder a una segunda página web de un segundo proveedor de servicios. El usuario podría iniciar otra instancia de la aplicación de visualización a través de la segunda página web. La segunda instancia puede tener acceso a la información de la sesión en el almacenamiento local. La segunda instancia puede comunicar la información de la sesión al sistema de aplicación 130, permitiendo al usuario visualizar productos en las imágenes de las salas previamente cargadas, sin tener que volver a cargar las salas.
En algunas modalidades, la aplicación de visualización puede reenviar una notificación a otro sistema en respuesta a la detección de un evento. La notificación puede ser una solicitud de red o una llamada de JavaScript. El otro sistema puede ser un sistema de análisis, que puede conectarse a uno o más del sistema cliente 110, el sistema anfitrión 120 o el sistema de aplicación 130. Un sistema de análisis de este tipo puede configurarse para recopilar, recolectar, procesar o analizar información o datos relacionados con las operaciones de una computadora o sistema de red. En algunos casos, el sistema de análisis se puede configurar para rastrear indicios de participación del usuario, como visitas a páginas, clics, interacciones con la aplicación de visualización (por ejemplo, carga de imágenes, posicionamiento de productos en una imagen, manipulación de la posición u orientación de dichos productos), duraciones de las interacciones, o similares. El sistema de análisis se puede configurar para rastrear dichos indicios para un solo usuario, agregar dichos indicios entre múltiples usuarios o realizar análisis estadísticos o de aprendizaje automático de dichos indicios agregados.
En algunas modalidades, una imagen cargada por un usuario se puede ajustar para su visualización. Dichos ajustes pueden incluir cambiar la resolución, el tamaño, la forma, el brillo u otras características de la imagen. Los ajustes pueden depender del dispositivo que mostrará la imagen. Los ajustes pueden depender de los valores actuales de resolución, tamaño, forma, brillo u otras características de la imagen. La imagen ajustada puede sobrescribir la imagen cargada o se puede conservar la imagen original. En algunos casos, cuando el sistema cliente 110 incluye múltiples dispositivos, la imagen cargada se puede ajustar para que aparezca de manera diferente en diferentes dispositivos del sistema cliente 110. Por ejemplo, cuando el sistema cliente 110 incluye una PC de escritorio y un dispositivo móvil, la imagen cargada se puede ajustar dependiendo del dispositivo en el que se mostrará. Dichos ajustes pueden incluir la reducción del tamaño/resolución de la imagen cuando se muestra en el dispositivo móvil para reducir el tiempo de carga/descarga. En otro ejemplo, los ajustes pueden incluir mejorar los detalles de la imagen utilizando una red neuronal para verla en un monitor más grande de una PC de escritorio. En algunas modalidades, el sistema de aplicación 130 puede detectar un parámetro de dispositivo del sistema cliente 110 (por ejemplo, tamaño de pantalla de visualización, resolución, velocidad de red, velocidad de procesamiento, disponibilidad de memoria, etc.). En función del parámetro detectado, el sistema de aplicación 130 puede generar una versión modificada de la imagen cargada para mostrarla en el sistema cliente 110.
En algunas modalidades, la aplicación de visualización se puede configurar para mostrar un catálogo de productos asociado con el sistema anfitrión 120. El contenido del catálogo puede ser seleccionado por un proveedor asociado con el sistema anfitrión 120 entre las opciones proporcionadas por un proveedor de servicios asociado con el sistema de aplicación 130. Por ejemplo, un sistema proveedor de servicios (que puede ser el sistema de aplicación 130 u otro sistema) puede proporcionar un conjunto de productos potenciales (o categorías de productos) a un sistema proveedor (que puede ser el sistema anfitrión 120 u otro sistema). Los productos potenciales se pueden proporcionar como una página web, catálogo, menú o similar. Por ejemplo, el sistema del proveedor de servicios puede alojar una página web accesible para el proveedor utilizando el sistema del proveedor. En algunas modalidades, el proveedor de servicios puede haber recibido información para visualizar estos productos potenciales (por ejemplo, un modelo tridimensional u otra información similar a la descrita en la presente descripción) de un fabricante (o distribuidor, o similar) del producto. En otras modalidades, el proveedor de servicios puede haber generado dicha información de visualización (por ejemplo, escaneando instancias de los productos, o similares).
De acuerdo con las modalidades descritas, el sistema proveedor de servicios puede recibir una selección de un subconjunto de productos potenciales del sistema proveedor (por ejemplo, como datos de formulario enviados por el sistema proveedor, o similares). Las modalidades descritas no se limitan a ningún método particular para proporcionar selecciones al sistema proveedor de servicios.
De acuerdo con las modalidades descritas, cuando un usuario selecciona un control para iniciar la aplicación de visualización en una página web alojada por el sistema anfitrión 120, el sistema de aplicación 130 puede configurarse para hacer que la aplicación de visualización muestre uno o más de los productos potenciales seleccionados. En algunas modalidades, la página web se puede modificar para mostrar los productos potenciales en la aplicación de visualización como un catálogo. De esta manera, se puede proporcionar a un proveedor un catálogo que incluye las funciones de visualización descritas en la presente descripción sin requerir una gran participación o conocimiento técnico por parte del proveedor. Por ejemplo, el propietario de una tienda de muebles local podría interactuar con un distribuidor para seleccionar productos para almacenar en la tienda de muebles. El distribuidor podría proporcionar un script que permita a una página web de la tienda de muebles mostrar un control que inicie una aplicación de visualización. La aplicación de visualización podría mostrar un catálogo que muestre los productos seleccionados y permitir a los usuarios de la página web mostrar estos productos en imágenes como se describe en la presente descripción. De cualquier otra manera, dicha funcionalidad podría estar mucho más allá de las capacidades de dicha tienda.
En algunas modalidades, el sistema anfitrión 120 puede incluir una máquina de quiosco interactiva. El quiosco interactivo puede permitir escanear un código QR para cargar una imagen. En algunos casos, dicha máquina de quiosco interactiva puede estar ubicada en una tienda, un centro comercial, un edificio de oficinas u otro espacio público. En algunas modalidades, la ubicación o la máquina pueden estar asociadas con un minorista o una tienda. En algunas modalidades, las superficies representadas en la imagen cargada o en la imagen modificada pueden incluir paisajismo, exterior de la casa, techo, puerta, puerta de garaje, ventana, paneles laterales o similares.
La Figura 7 representa un método para interactuar con una aplicación de visualización, de acuerdo con modalidades descritas. Tales interacciones pueden ocurrir después de la modificación de la página web para mostrar la aplicación de visualización, tal como la etapa 270 como se describió anteriormente con referencia a la Figura 2. En algunas modalidades, la experiencia de visualización descrita en la presente descripción se puede generalizar para admitir múltiples tipos de productos. Por ejemplo, el script puede determinar los tipos de productos (tales como pisos, muebles o similares) en base al contenido del sitio web del sistema anfitrión 120, y cargar la experiencia de visualización correspondiente al tipo de producto determinado. Además, la aplicación de visualización puede determinar el tipo de producto deseado en base al contenido de una imagen cargada. Por ejemplo, si solo se ve una pared en la imagen cargada, entonces solo se puede determinar como conveniente el producto o tipo de producto que se puede aplicar a la pared, pero no al piso.
En la etapa 710, un usuario puede interactuar con el sistema cliente 110 para seleccionar una imagen. La imagen puede ser de una ubicación (interior o exterior) donde se puede colocar el producto. Como ejemplo no limitativo, la imagen puede ser de una habitación. En algunas modalidades, la interfaz gráfica de usuario puede proporcionar opciones para cargar una imagen como se describió anteriormente.
En la etapa 720, el sistema cliente 110 puede proporcionar una solicitud para mostrar el producto seleccionado en la imagen seleccionada al sistema de aplicación 130. La solicitud se puede proporcionar mediante el uso de la red 140. Las modalidades descritas no se limitan a ningún método o protocolo particular para proporcionar la solicitud. En algunas modalidades, cuando el sistema cliente 110 carga la imagen, la solicitud puede incluir la imagen. La solicitud puede enviarse al sistema de aplicación 130 como se describió anteriormente.
En la etapa 730, el sistema de aplicación 130 puede identificar una o más ubicaciones en las imágenes cargadas recibidas en la solicitud de la etapa 720. En algunas modalidades, el sistema de aplicación 130 puede configurarse para identificar una o más ubicaciones realizando una segmentación semántica de la imagen. Como se describió anteriormente, la segmentación semántica se puede utilizar para identificar píxeles de imagen asociados con un objeto compartido representado en la imagen, permitiendo así identificar los objetos representados en la imagen. Como ejemplo no limitante, se puede utilizar la segmentación semántica para identificar suelos, paredes, encimeras, muebles (por ejemplo, mesas, libreros, estanterías) o similares en la imagen. Cada una de estas partes identificadas de la imagen puede ser una ubicación. Como se describió anteriormente, el sistema de aplicación 130 puede usar uno o más modelos de aprendizaje automático para realizar la segmentación semántica de la imagen, tal como usar una red neuronal convolucional construida sobre AlexNet, VGG-16, GoogLeNet, ResNet u otra arquitectura adecuada. Como se describió anteriormente, el sistema de aplicación 130 se puede configurar para usar múltiples modelos de aprendizaje automático para realizar la segmentación semántica de la imagen. Los múltiples modelos de aprendizaje automático se pueden entrenar para identificar diferentes partes de la imagen.
En la etapa 740, el sistema cliente 110 puede recibir las ubicaciones identificadas en la etapa 730. El sistema cliente 110 se puede configurar para visualizar la imagen cargada con indicadores gráficos que identifican las ubicaciones en la imagen. A manera de ejemplo, la Figura 8 ilustra una imagen ilustrativa con ubicaciones identificadas para partes de la imagen indicadas por indicadores gráficos, de acuerdo con modalidades descritas. La imagen 800 puede ser una imagen cargada por el sistema cliente 110, que representa una habitación que incluye diversos muebles y decoraciones. La imagen 800 se puede mostrar al usuario en el sistema cliente 110, incluyendo indicadores gráficos que indican ubicaciones en la imagen 800. Como se representa, el indicador gráfico 802 indica una ubicación que es "Encimeras", el indicador gráfico 804 indica una ubicación que es "Paredes", el indicador gráfico 806 indica una ubicación que es "Gabinetes", y el indicador gráfico 808 indica una ubicación que es "Pisos." De acuerdo con las modalidades descritas, las ubicaciones pueden haberse identificado en la etapa 730.
En la etapa 750, el sistema cliente 110 puede recibir la selección de ubicaciones del usuario. En algunas modalidades, las selecciones del usuario se pueden recibir a través de interacciones del usuario con la imagen mostrada. En algunos casos, el usuario puede interactuar con los indicadores gráficos mostrados. En tales casos, cada indicador gráfico puede ser (o activar la visualización de) una interfaz interactiva capaz de recibir una selección del usuario. Por ejemplo, si el sistema cliente 110 es un dispositivo móvil que tiene una pantalla táctil, un usuario puede tocar uno o más indicadores gráficos para seleccionar una ubicación en la pantalla táctil. Las modalidades descritas no se limitan a ningún tipo particular de interfaz interactiva. Las interfaces ilustrativas podrían incluir botones de opción, casillas de verificación, un menú desplegable asociado con la imagen general (los indicadores gráficos son entradas de menú dentro del menú desplegable), o similares.
En la etapa 760, el sistema de aplicación 130 puede recibir selecciones de ubicación del sistema cliente 110. Por ejemplo, cuando el usuario selecciona el indicador gráfico 808 en el sistema cliente 110, esta selección puede ser comunicada por el sistema cliente 110 al sistema de aplicación 130.
En la etapa 770, el sistema de aplicación 130 genera instrucciones. En algunas modalidades, el sistema de aplicaciones 130 genera instrucciones para mostrar el producto en la imagen cargada (por ejemplo, la imagen 800) en la ubicación seleccionada. La imagen del producto puede representarse de la manera descrita anteriormente con referencia a la Figura 3.
En algunas modalidades, el sistema de aplicación 130 puede identificar un tipo de producto correspondiente a la ubicación seleccionada. Por ejemplo, cuando el usuario selecciona el indicador gráfico 808, el sistema de aplicación 130 genera instrucciones para mostrar productos que son relevantes para "Pisos", tales como baldosas, alfombras, etc. en la ubicación correspondiente al indicador gráfico 808. En algunas modalidades, el producto particular que se va a mostrar puede ser un producto considerado relevante para el usuario del sistema cliente 110. Por ejemplo, si el usuario ha navegado por el sitio web del sistema anfitrión 120, el último artículo explorado que tenga un tipo de producto correspondiente a la ubicación seleccionada (por ejemplo, alfombra cuando se selecciona piso) puede ser el producto mostrado. En otro ejemplo, si el usuario ha guardado, etiquetado o indicado de cualquier otra manera un interés en un producto en particular, ese producto en particular puede seleccionarse para mostrarse en la ubicación seleccionada si el tipo de producto coincide con la ubicación seleccionada.
Opcionalmente, en algunas modalidades, el sistema de aplicación 130 puede, después de identificar ubicaciones en el paso 730, generar instrucciones para mostrar productos en las ubicaciones identificadas. Los productos mostrados pueden ser productos que coincidan con el tipo de producto de las ubicaciones identificadas. Por ejemplo, un producto que tiene el tipo "piso" se puede mostrar sobre el segmento de piso de la imagen, mientras que un producto que tiene el tipo "mostrador" se puede mostrar sobre el segmento de mostrador de la imagen.
Opcionalmente, en algunas modalidades, después de recibir selecciones de ubicación en la etapa 760, el sistema de aplicación 130 puede proporcionar instrucciones al sistema de cliente 110 para indicar productos disponibles para exhibición en una o más ubicaciones seleccionadas. Por ejemplo, el usuario puede seleccionar "piso" y recibir instrucciones para mostrar un menú de opciones de suelo. Las modalidades descritas no se limitan a ninguna forma particular de exhibir dichos productos disponibles. Pueden mostrarse dentro de la aplicación interactiva, en otra ventana o similar. El usuario puede interactuar con el sistema cliente 110 para especificar un producto particular para exhibir en una de más ubicaciones seleccionadas. El sistema de aplicación 130 puede recibir una indicación de dichas interacciones del usuario y generar instrucciones para mostrar el producto indicado en una o más ubicaciones seleccionadas.
En la etapa 780, el sistema cliente 110 recibe instrucciones para mostrar productos en las ubicaciones de selección. En la etapa 790, la aplicación de visualización muestra los productos en las ubicaciones seleccionadas de acuerdo con las instrucciones recibidas en el sistema cliente 110.
La anterior descripción se ha presentado con fines de ilustración. No es exhaustivo y no se limita a las formas precisas o modalidades descritas. Las modificaciones y adaptaciones de las modalidades serán evidentes a partir de la consideración de la especificación y la práctica de las modalidades descritas. Por ejemplo, las implementaciones descritas incluyen hardware, pero los sistemas y métodos consistentes con la presente descripción se pueden implementar con hardware y software. Además, aunque se ha descrito que ciertos componentes están acoplados entre sí, dichos componentes pueden integrarse entre sí o distribuirse de cualquier forma adecuada.
Además, aunque en la presente descripción se han descrito modalidades ilustrativas, el alcance incluye todas y cada una de las modalidades que tienen elementos, modificaciones, omisiones, combinaciones (por ejemplo, de aspectos entre varias modalidades), adaptaciones o alteraciones equivalentes basadas en la presente descripción. Los elementos en las reivindicaciones deben interpretarse ampliamente en base al lenguaje empleado en las reivindicaciones y no se limitan a los ejemplos descritos en la presente descripción o durante la tramitación de la solicitud, cuyos ejemplos deben interpretarse como no exclusivos. Además, las etapas de los métodos descritos pueden ser modificados de cualquier manera, que incluye reordenar las etapas o insertar o eliminar etapas.
Las características y ventajas de la descripción son evidentes a partir de la especificación detallada y, por lo tanto, se pretende que las reivindicaciones adjuntas cubran todos los sistemas y métodos que caen dentro del verdadero espíritu y alcance de la descripción. Tal como se usa en la presente, los artículos indefinidos "un" y "una" significan "uno o más." De manera similar, el uso de un término plural no denota necesariamente una pluralidad a menos que sea inequívoco en el contexto dado. Palabras como "y" o "o" significan "y/o" a menos que se indique específicamente lo contrario. Además, dado que se producirán fácilmente numerosas modificaciones y variaciones al estudiar la presente descripción, no se desea limitar la descripción a la construcción y operación exactas ilustradas y descritas y, en consecuencia, se puede recurrir a todas las modificaciones adecuadas, que caigan dentro del alcance de la descripción.
Tal como se usa en la presente descripción, a menos que se indique específicamente lo contrario, el término "o" abarca todas las combinaciones posibles, excepto cuando no sea factible. Por ejemplo, si se indica que un componente puede incluir A o B, entonces, a menos que se indique específicamente lo contrario o no sea factible, el componente puede incluir A, o B, o A y B. Como segundo ejemplo, si se indica que un componente puede incluir A, B o C, entonces, a menos que se indique específicamente lo contrario o no sea factible, el componente puede incluir A, B, C, A y B, A y C, B y C, o A y B y C.
Claims (17)
1. Un método para visualizar productos en una aplicación de una sola página, que comprende:
recibir, por parte de un sistema de aplicación (130) desde un sistema cliente (110) durante la representación de una página web recibida por el sistema cliente desde un sistema anfitrión (120), una solicitud de un script asociado con el sistema anfitrión, el script ejecutable por el sistema cliente para realizar operaciones que comprende:
modificar la página web para incluir una aplicación de visualización en respuesta a una selección de un control de visualización en la página web por parte de un usuario del sistema cliente;
recibir, por parte del sistema de aplicación desde la aplicación de visualización, una solicitud para visualizar una imagen de un producto en una primera imagen;
identificar una ubicación en la primera imagen; y
proporcionar instrucciones a la aplicación de visualización para visualizar la imagen del producto en la ubicación.
2. El método de la reivindicación 1, en donde la aplicación de visualización se ejecuta independientemente de la página web, lo que permite visualizar la imagen del producto sin necesidad de volver a cargar la página web; y/o en donde la aplicación de visualización está alojada en el sistema de aplicación, y modificar la página web para incluir la aplicación de visualización comprende:
integrar la aplicación de visualización alojada en el sistema de aplicación, en la página web recibida por el sistema cliente desde el sistema anfitrión.
3. El método de cualquier reivindicación anterior, en donde el script es ejecutable por el sistema cliente para realizar operaciones adicionales que comprenden:
generar un identificador a partir de información extraída de la página web;
consultar el sistema de aplicación para obtener información sobre la disponibilidad del producto mediante el uso del identificador; y
modificar la página web para incluir el control de visualización en respuesta a recibir la información de disponibilidad del producto desde el sistema de aplicación.
4. El método de cualquier reivindicación anterior, en donde el método comprende además:
recibir, por parte del sistema de aplicación después de la presentación de la página web, una consulta sobre la información de disponibilidad del producto; y
proporcionar, por parte del sistema de aplicación en respuesta a la consulta, la información de disponibilidad del producto.
5. El método de cualquier reivindicación anterior, en donde la identificación de la ubicación en la primera imagen comprende:
realizar una segmentación semántica de la primera imagen para identificar características en la primera imagen; y
seleccionar la ubicación entre al menos una de las características identificadas.
6. El método de cualquier reivindicación anterior, en donde la identificación de la ubicación en la primera imagen comprende:
usar un modelo de aprendizaje automático para identificar la ubicación en la primera imagen; y opcionalmente, en donde identificar la ubicación en la primera imagen utilizando el modelo de aprendizaje automático comprende uno o más de:
proporcionar la primera imagen a una red neuronal convolucional seleccionada en base a al menos uno de un tipo de producto, página web o sistema anfitrión; o
determinar una perspectiva y escala de la primera imagen.
7. El método de cualquier reivindicación anterior, en donde la identificación de la ubicación en la primera imagen comprende además:
clasificar los píxeles en la primera imagen como correspondientes a una superficie representada en la primera imagen.
8. El método de la reivindicación 7, en donde proporcionar las instrucciones a la aplicación de visualización comprende además:
proporcionar instrucciones para visualizar la imagen del producto en la superficie representada en la primera imagen; y opcionalmente la superficie es cualquiera de: una pared, mostrador, piso de una habitación representada en la primera imagen, paisajismo, exterior de la casa, techo, puerta, puerta de garaje, ventana o paneles laterales.
9. El método de cualquier reivindicación anterior, en donde las instrucciones proporcionadas a la aplicación de visualización comprenden instrucciones para generar una segunda imagen pintando la imagen del producto en la ubicación en la primera imagen; o en donde el método comprende además:
generar una segunda imagen pintando la imagen del producto en la ubicación de la primera imagen; y las instrucciones proporcionadas a la aplicación de visualización comprenden la segunda imagen.
10. El método de la reivindicación 9, en donde pintar la imagen del producto comprende:
clasificar píxeles en la primera imagen como correspondientes a una superficie representada en la primera imagen; y
reemplazar los píxeles clasificados en la primera imagen con los píxeles correspondientes de la imagen del producto.
11. El método de cualquier reivindicación anterior, en donde el método comprende además:
recibir la primera imagen del sistema cliente.
12. El método de cualquier reivindicación anterior, en donde el método comprende además:
enviar, en respuesta a la recepción de la solicitud del script asociado con el sistema anfitrión, el script al sistema cliente; y opcionalmente el método comprende además:
ejecutar el script, por parte del sistema cliente, para establecer una sesión para el usuario utilizando una cookie propia; y
obtener, por parte del sistema de aplicación, la primera imagen utilizando información asociada a la sesión.
13. El método de cualquier reivindicación anterior, que comprende además:
obtener, por parte del sistema de aplicación desde el almacenamiento local asociado con un navegador del sistema cliente, información de sesión para un usuario; y
obtenier, por parte del sistema de aplicación, la primera imagen utilizando la información de la sesión.
14. El método de cualquier reivindicación anterior, en donde las instrucciones incluyen una imagen de modelo tridimensional del producto y metadatos que especifican la escala y la colocación de la imagen de modelo tridimensional en la primera imagen.
15. El método de cualquier reivindicación anterior, que comprende además:
identificar, en base a la solicitud, un contexto de la página web; generar el script en base al contexto proporcionado en la solicitud; y opcionalmente
en donde el script se genera a partir de una plantilla asociada con el contexto proporcionado en la solicitud.
16. El método de cualquier reivindicación anterior, en donde:
el método comprende además:
detectar un parámetro de dispositivo del sistema cliente; y
generar una primera imagen modificada en base al parámetro del dispositivo detectado; y
las instrucciones comprenden instrucciones para visualizar la imagen del producto en la ubicación en la primera imagen modificada.
17. El método de cualquier reivindicación anterior, que comprende además:
proporcionar un conjunto de productos potenciales a un sistema del proveedor que incluye el producto; y recibir una selección de un subconjunto de productos potenciales del sistema del proveedor para mostrarlos en la página web mediante la aplicación de visualización; y/o
en donde el sistema anfitrión es una máquina de quiosco interactiva, y se puede escanear un código QR para cargar imágenes en la máquina de quiosco interactiva.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/777,697 US10817648B1 (en) | 2020-01-30 | 2020-01-30 | Systems and methods for product visualization using a single-page application |
US16/947,817 US11200365B2 (en) | 2020-01-30 | 2020-08-19 | Systems and methods for product visualization using a single-page application |
US202063199096P | 2020-12-07 | 2020-12-07 |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2958257T3 true ES2958257T3 (es) | 2024-02-06 |
Family
ID=77078271
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES21154648T Active ES2958257T3 (es) | 2020-01-30 | 2021-02-01 | Sistemas y métodos de visualización de productos mediante el uso de una aplicación de una sola página |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP4318272A1 (es) |
CA (2) | CA3166296C (es) |
ES (1) | ES2958257T3 (es) |
WO (1) | WO2021152394A1 (es) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11948244B2 (en) * | 2022-02-11 | 2024-04-02 | Shopify Inc. | Augmented reality enabled dynamic product presentation |
CN114896531B (zh) * | 2022-04-27 | 2023-03-24 | 北京聚通达科技股份有限公司 | 图像处理的方法、装置、电子设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8668498B2 (en) * | 2011-03-08 | 2014-03-11 | Bank Of America Corporation | Real-time video image analysis for providing virtual interior design |
KR102555443B1 (ko) * | 2017-05-01 | 2023-07-12 | 매직 립, 인코포레이티드 | 콘텐츠를 공간 3d 환경에 매칭 |
KR101985703B1 (ko) * | 2018-08-24 | 2019-06-04 | 주식회사 버넥트 | 증강현실 서비스형 소프트웨어 기반의 증강현실운영시스템 |
-
2021
- 2021-01-29 CA CA3166296A patent/CA3166296C/en active Active
- 2021-01-29 WO PCT/IB2021/000039 patent/WO2021152394A1/en active Application Filing
- 2021-01-29 CA CA3190194A patent/CA3190194A1/en active Pending
- 2021-02-01 ES ES21154648T patent/ES2958257T3/es active Active
- 2021-02-01 EP EP23196691.2A patent/EP4318272A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4318272A1 (en) | 2024-02-07 |
WO2021152394A1 (en) | 2021-08-05 |
CA3190194A1 (en) | 2021-08-05 |
CA3166296A1 (en) | 2021-08-05 |
CA3166296C (en) | 2023-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11194952B2 (en) | Systems and methods for product visualization using a single-page application | |
US10755485B2 (en) | Augmented reality product preview | |
US11367250B2 (en) | Virtual interaction with three-dimensional indoor room imagery | |
US10579134B2 (en) | Improving advertisement relevance | |
KR101859856B1 (ko) | 맥락적 환경에 아이템 이미지를 디스플레이하는 증강 현실 시스템, 방법 및 장치 | |
US10026229B1 (en) | Auxiliary device as augmented reality platform | |
JP5951759B2 (ja) | ライブビューの拡張 | |
US7755643B2 (en) | System for delivering and enabling interactivity with images | |
US11875464B2 (en) | Systems and methods for scene-independent augmented reality interfaces | |
US9965800B1 (en) | Display of an electronic representation of a physical object in a virtual environment | |
JP2014524062A5 (es) | ||
JP2020502662A (ja) | 画像のインテリジェント自動クロッピング | |
ES2958257T3 (es) | Sistemas y métodos de visualización de productos mediante el uso de una aplicación de una sola página | |
US11776211B2 (en) | Rendering three-dimensional models on mobile devices | |
US20150185992A1 (en) | Providing geolocated imagery related to a user-selected image | |
US11200365B2 (en) | Systems and methods for product visualization using a single-page application | |
US10762702B1 (en) | Rendering three-dimensional models on mobile devices | |
JP6510116B2 (ja) | 仮想オブジェクトの表示システムを用いた顧客把握システム、顧客把握システムプログラム及び顧客把握方法 | |
US9349139B1 (en) | Fine art samples | |
JP6314649B2 (ja) | コンテンツ関連付け及び表示方法、プログラム及び計算処理システム | |
EP3859566B1 (en) | Systems and methods for product visualization using a single-page application |