This application relates to artificial intelligence, computer vision, and machine learning and, more specifically, the use of an inference engine and a knowledge base to programmatically generate an image of a customized product, as if assisted by the decision-making ability of a human expert. The customized product may include a customized virtual frame programmatically generated based on a desired subject of the frame that includes, for instance, a programmatically determined frame, moulding, matboard, glazing, fillet, liner, or other property of a frame.
In artificial intelligence, an expert system is a computer system that emulates the decision-making ability of a human expert. Traditional expert systems may include, for example, an inference engine and a knowledge base. Using a knowledge base that includes predetermined facts, an inference engine may evaluate information stored in the knowledge base, apply relevant rules, and assert new knowledge into the knowledge base.
Custom framing is the process of placing an item, such as a piece of artwork, a mirror, a diploma, etc., in a frame with or without decorative additions. Decorative additions may include items commonly used in custom framing such as mouldings, matboards, glazings, fillets, liners, etc. It is challenging for consumers to understand how to customize a frame with the myriad of options available, what materials and colors best suit specific art styles and how to confidently create the best design. It is not practical nor cost effective to have an expert designer assist consumers in every configuration of a frame. Existing systems categorize particular options for use in generating a recommendation, for example, by categorizing mouldings, matboards, glazings, etc., as “modern” or “bright colors” and making recommendations accordingly. However, existing systems still generate recommended products that are visually unpleasant, unappealing, or are aesthetically inconsistent with a subject of the frame, such as a piece of artwork, a mirror, or a diploma. Accordingly, generating aesthetically pleasing product configurations during virtual product configuration remains problematic.
Many aspects of the present disclosure can be better understood with reference to the following drawings. The components in the drawings are not necessarily to scale, with emphasis instead being placed upon clearly illustrating the principles of the disclosure. Moreover, in the drawings, like reference numerals designate corresponding parts throughout the several views.
The present disclosure relates to employing artificial intelligence in virtualized framing using image metadata to programmatically generate virtual frames. Custom framing is the process of placing an item, such as a piece of artwork, a mirror, a diploma, etc., in a frame with or without decorative additions. Decorative additions may include items commonly used in custom framing such as mouldings, matboards, glazings, fillets, liners, etc. Many systems exist that allow consumers to configure a product. These systems may account for compatibilities (or incompatibilities) of one component with another. However, those systems generally only account for physical capabilities (e.g., whether a particular doorknob is compatible on a particular type of door) or whether the items are in stock. Selection of a frame and its subcomponents, however, is traditionally guided by aesthetics and visual appeal, which are subjective in nature. To date, no systems account for aesthetic compatibilities while leveraging information provided by design experts through use of an inference engine and a knowledge base. Moreover, no systems account for a consumer's subjective and personal design preferences.
Consequently, embodiments described herein are directed towards improvements in aesthetic recommendation technology, namely leveraging artificial intelligence to generate virtual frames using compatibilities (or incompatibilities) specified by expert designer's through a knowledge base, while also accounting for a consumer's subjective and personal design preferences. According to various embodiments, a computing device, such as a server, may implement an expert design system using an inference engine and a knowledge base. The computing device may access a digital image having metadata, where the metadata is leveraged to generate a virtual frame recommendation that is aesthetically pleasing in light of the characteristics of the digital image. For instance, if a user uploads a modern and abstract photograph while customizing a frame, the computing device may leverage artificial intelligence to generate a virtual frame that is aesthetically functional with the modern and abstract photograph.
To this end, the metadata of the digital image may be leveraged by the computing device to determine various characteristics of the digital image, such as a time the digital image was created, whether the digital image is a photograph captured by a particular type of camera, a location where the digital image, or photograph, was taken, etc. Additionally, a color detection algorithm may be employed to identify colors used in the image where colors meeting a usage threshold may be identified. In other words, the most dominant colors or most focal colors in an image may be determined and used in programmatically suggesting components for a virtual frame. Information programmatically identified from the digital image, such as the dominant colors, may be added to the metadata for use in a current or future programmatic recommendation.
In some embodiments, the inference engine may have a margin of error indicative of the inference engine being uncertain of a characteristics of a digital image. In this regard, additional information pertaining to the digital image may be requested after an upload of the digital image. For instance, a verification of the dominant colors of or a style of a photograph may be obtained. The metadata pertaining to the digital image may be updated to include the additional information for use in a current or future programmatic recommendation.
Various components of a virtual frame may be identified by the inference engine, for example, to display in association with the digital image in a user interface. To this end, the inference engine may leverage a knowledge base having expert design data stored therein, subjective data pertaining to a user performing the configuration of the virtual frame, characteristics of the digital image, as well as other information described herein.
Accordingly, a virtual framing system may provide for a customization of a virtual frame by making suggestions that are aesthetically pleasing based on the subject of the frame, the subjective preferences of a consumer, and expert design recommendations. The virtual framing system provides a network-based computer expert system for custom framing that guides a consumer through an interactive design process of evaluation, collaboration, and selection. In addition, it allows the consumer to browse suggested design templates and educates the consumer with best design tips, best classes of products, best prices, or other product information.
In the following discussion, a general description of a virtual framing system that employs artificial intelligence in a virtualized framing process and its components is provided, followed by a discussion of the operation of the same.
With reference to
The virtual framing system may leverage artificial intelligence to generate or recommend a virtual frame that is aesthetically consistent with the specified digital image while using expert designer recommendations stored in the form of a knowledge base, also while accounting for a consumer's subjective and personal design preferences. For instance, when a digital image is uploaded (or imported) into the virtual framing system, a computing device, or server, may access the digital image for analysis. Various characteristics of the digital image may be identified from metadata embedded in the digital image. Additionally, a style detection mechanism as well as a color detection mechanism may be employed to identify one or more styles or colors of the digital image. For instance, colors identified in the digital image may be ranked to identify which of the plurality of colors meet a usage threshold indicating which colors are the most relevant, focal, or dominant.
The virtual framing system may ultimately generate a virtual frame that is aesthetically pleasing based on the characteristics of the digital image, expert design recommendations, or personal design preferences. Generating a virtual frame, as shown in
With reference to
The computing environment 203 may comprise, for example, a server computer or any other system providing computing capability. Alternatively, the computing environment 203 may employ a plurality of computing devices that may be arranged, for example, in one or more server banks or computer banks or other arrangements. Such computing devices may be located in a single installation or may be distributed among many different geographical locations. For example, the computing environment 203 may include a plurality of computing devices that together may comprise a hosted computing resource, a grid computing resource and/or any other distributed computing arrangement. In some cases, the computing environment 203 may correspond to an elastic computing resource where the allotted capacity of processing, network, storage, or other computing-related resources may vary over time.
Various applications or other functionality may be executed in the computing environment 203 according to various embodiments. Also, various data is stored in a data store 212 that is accessible to the computing environment 203. The data store 212 may be representative of a plurality of data stores 212 as can be appreciated. The data stored in the data store 212, for example, is associated with the operation of the various applications and/or functional entities described below.
The components executed on the computing environment 203, for example, include a virtual framing system 215, which may include an inference engine 218, an export application 222, as well as other applications, services, processes, systems, engines, or functionality not discussed in detail herein. In various embodiments, the inference engine 218 may further include an image analysis engine 221, a color detection engine 224, a style detection engine 227, as well as other applications, services, processes, systems, engines, or functionality not discussed in detail herein.
Generally, the virtual framing system 215 is executed to leverage artificial intelligence to programmatically generate a virtual frame that is aesthetically consistent with a digital image while using expert designer recommendations stored in the form of a knowledge base 230, also while accounting for a consumer's subjective and personal design preferences. In addition, the virtual framing system 215 may be executed in order to facilitate the online purchase of a customized frame over the network 209 via an electronic marketplace. The virtual framing system 215 also performs various backend functions associated with the online presence of a merchant in order to facilitate the online purchase of customized frames, as will be described. For example, the virtual framing system 215 generates network pages 233, such as web pages or other network content, accessible through a network site 235 or domain for the purposes of customizing a frame.
The inference engine 218 may include logic that applies logical rules to the knowledge base 230 and realizes “new knowledge” given a set of circumstances, for example, not previously analyzed by the inference engine 218. In some embodiments, the inference engine 218 may implement forward chaining while, in other embodiments, the inference engine 218 implement backward chaining, either of which may be employed through a series of IF-THEN statements. For example, if a digital image 239 is analyzed as having a tree, the progressions of IF-THEN statements may be described as:
If the digital image includes a tree, the digital image is a landscape; If the digital image is a landscape, classical or natural styles should apply;
If classical or natural styles should apply, bright colors should not be used, and so forth.
The image analysis engine 221 is executed to access digital images 239a . . . 239b (collectively “digital images 239”) to determine various characteristics of the digital images 239. In one embodiment, the image analysis engine 221 analyzes metadata 242 included in a header, footer, or other portion of a digital image 239. Such information may include, for example, a file format (e.g., JPEG, PNG, TIFF), an image resolution (e.g., 3000×2000 for a 6 megapixel image), image encoding (e.g., RGB), contrast data, saturation data, lighting data, whether a camera flash was on or off during a photograph, a distance from the camera to the subject, a shutter speed, an aperture, and location information (e.g., a longitude and latitude obtained from a global positioning system (GPS) available in some cameras). Traditionally, the metadata 242 is included in a header or at the beginning of a file. Additionally, the image analysis engine 221 may utilize information stored in an exchangeable image file (EXIF), international color consortium (ICC) profile, international press telecommunication council (IPTC), print image matching (PIM), PIM II, or other appropriate format.
The color detection engine 224 is executed to examine a digital image 239 and its metadata 242 to identify colors located within the digital image 239. The colors identified in the digital image 239 may be ranked by the virtual framing system 215 to identify which of the plurality of colors meet a threshold indicating which colors are the most used, relevant, dominant, or focal. According to one embodiment, colors detected in the digital image 239 may be categorized as focal, accent, or neutral (FAN) colors, although it is understood additional categories may be used.
The style detection engine 227 is configured to examine a digital image 239 and its metadata 242 to identify styles associated with the digital image 239, where styles may include, for example, urban, contemporary, traditional, transitional, classic, modern, gallery, surreal, photorealism, or other category. In some embodiments, the style detection engine 227 identifies artifacts, regions, or potential objects based on hexadecimal value variations to compare to a catalogue of images 245 in the knowledge base 230, where each of the images in the catalogue has known style categories. For instance, if a digital image 239 includes a tree, the style detection engine 227 may recognize that the digital image 239 is a painting or a photograph of a landscape, as determined based on a comparison with landscapes stored in the catalogue of images 245.
Based on an analysis of a digital image 239 by the components of the inference engine 218, the inference engine 218 may programmatically generate a virtual frame in the form of a recommendation. The virtual frame may include, for example, a particular combination of a frame border, moulding, matboard, glazing, fillet, liner, etc. determined according to rules specified in the knowledge base 230.
The export application 222 is executed to export data from the virtual framing system 215 according to one or more predefined formats. In addition, the export application 222 is configured to generate one or more purchase orders respective of a fulfillment party automatically determined for a user or selected by the user. The purchase orders may comprise, for example, data corresponding to a finalized frame customization process, such as item numbers, colors, sizes, specifications, etc. for particular choices or combinations of mouldings, matboards, glazings, fillets, liners, etc., defined by the user during a customization process. The purchase orders may be generated purchase order documents that may be sent to fulfillment parties for fulfillment of construction of the customized frame. In addition, the purchase orders may be generated according to electronic data interchange (EDI) standards provided by or otherwise stored in association with a respective fulfillment party. The export application 222 may also operate or provide one or more application programming interfaces (APIs) that enables the virtual framing system 215 to interact with external services 207.
Fulfillment parties may comprise, for example, virtual partners associated with the virtual framing system 215 that may fulfill purchases generated by the users of the virtual framing system 215. Thus, according to various embodiments, after completion of a customized framing process, a user may be prompted to select a fulfillment party based on a proximity of the fulfillment party to the user or an estimated cost of the fulfillment. For example, the user may be prompted to provide a zip code in which the user resides. The virtual framing system 215 may determine the frame shops located with a certain distance of the zip code and may present a list of the frame shops to the user along with an estimate of the fulfillment for each of the frame shops. A purchase order may be generated according a selected on the frame shops within the list. The purchase order may be generated according to a predefined format identified by the selected frame shop and stored in data store 212.
The data stored in the data store 212 includes, for example, a knowledge base 230, and potentially other data. The knowledge base 230 may comprise, for example, digital images 239, the catalogue of images 245, user profile data 248, expert design data 252, as well as other data. User profile data 248 may include “subjective data” (subjective data 255) which includes personal or subjective preferences associated with a user or user account. The subjective data 255 may include historical data determined based on previous frame configurations, digital images 239 imported, weighted selections made in a design style quiz, or other information. The subjective data 255 may be described as a design profile for a user account, as can be appreciated. The subjective data 255 may be used by the virtual frame system 215 to determine a relevant portion of the expert design data 252 to use when programmatically identifying components of a virtual frame.
Digital images 229 may include, for example, digital images uploaded or shared with the virtual framing system 215 or public artwork made available by the virtual framing system 215. Each digital image 239 has metadata 242 associated therewith that may be used in generating a virtual frame.
Expert design data 252 may include, for example, rules employed by the inference engine 218 that are consistent with design recommendations made by design experts. To this end, expert design data 252 may specify color, style, and category compatibilities (and incompatibles) which ultimately causes the inference engine 218 to follow best design practices. For example, particular FAN colors may be identified in a digital image provided by a user during a frame customization process. According to the FAN colors, certain colors, sizes, or textures of frames, mats, or fillets may be used in programmatically generating a virtual frame. As styles tend to change, the expert design data 252 may be updated with up-to-date style recommendations without affecting the functionality of the virtual framing system 215.
The client device 206 is representative of a plurality of client devices that may be coupled to the network 209. The client device 206 may comprise, for example, a processor-based system such as a computer system. Such a computer system may be embodied in the form of a desktop computer, a laptop computer, personal digital assistants, cellular telephones, smartphones, set-top boxes, music players, web pads, tablet computer systems, game consoles, electronic book readers, “smart” devices such as “Smart TVs,” kiosk computing devices, scrolling marquee devices, or other devices with like capability. According to various embodiments in which the client device 206 comprises a marquee device, such as a scrolling marquee device, the marquee device may be configured to display, utilizing audio or video in association with a user interface, an advertising for a plurality of predefined custom frame combinations, a tutorial for a plurality of best design concepts, and advertising for a plurality of new product designs, each of which may be accessed from the data store 212. The client device 206 may include a display 266. The display 266 may comprise, for example, one or more devices such as liquid crystal display (LCD) displays, gas plasma-based flat panel displays, organic light emitting diode (OLED) displays, electrophoretic ink (E ink) displays, LCD projectors, touch screen displays, or other types of display devices, etc.
The client device 206 may be configured to execute various applications such as a client application 269 or other applications. The client application 269 may be executed in a client device 206, for example, to access network content served up by the computing environment 203 and/or other servers, thereby rendering a user interface 272 on the display 266. To this end, the client application 269 may comprise, for example, a browser, a dedicated application, etc., and the user interface 272 may comprise a network page 233, an application screen, etc. According to various embodiments, a dedicated application may comprise, for example, an application configured to be executed on the Android® operating system (Android), the iPhone® operating system (iOS), the Windows® operating system, or similar operating systems. The client device 206 may be configured to execute applications beyond the client application 269 such as, for example, email applications, social networking applications, word processors, spreadsheets, and/or other applications.
Next, a general description of the operation of the various components of the networked environment 200 is provided. To begin, the virtual framing system 215 may access a digital image 239 provided by or otherwise selected by a user of the virtual framing system 215. The colors of the digital image may be examined on a pixel-by-pixel basis to identify unique colors located within the digital image. The colors identified in the digital image may be ranked to identify which of the plurality of colors meet a predefined threshold indicating which colors are the most relevant or dominant colors in the digital image. By utilizing the most dominant colors of the digital image, the virtual framing system may subsequently generate recommendations, such as expert design recommendations, to be presented to the user by comparing the most dominant colors to one or more predefined design templates that may be stored in a data store or like memory.
Further, the recommendations may be based at least in part on user input provided during the customization process, such as a treatment of art (e.g., watercolor, charcoal, photography), the style of the art (e.g., traditional, contemporary, transitional), a medium on which the art is printed (e.g., canvas), user preferences determined utilizing a style quiz (e.g., user preferences towards monochromatic, achromatic, and/or complimentary designs), a size of the art, a condition of the art, and/or other information. The recommendations may include, for example, particular choices or combinations of mouldings, matboards, glazings, fillets, liners, etc., and/or colors and textures thereof, for presentation to the user as will be discussed in greater detail below.
The recommendations generated by the virtual framing system 215 may be encoded in one or more user interfaces 272 such as a network page 233 or a client application 269. The user interface 272, or data used in generating the user interface 272, may be sent to the client device 206, such as a computer or mobile device, for rendering.
Referring next to
Turning now to
Alternatively, the user may engage a component 406 to initiate a rendering of one or more user interfaces 272 that are configured to assist the user in making a selection of a predefined piece of art accessed from the data store 212, as will be discussed in greater detail below. In certain scenarios, the user may desire to purchase a frame for a mirror as opposed to a frame for a piece of artwork. By engaging component 409, a rendering of one or more user interfaces 272 that are configured to assist the user in making a selection of a mirror may be initiated.
Moving on to
In the event the user has successfully provided the digital image via the capture device (or via an upload if the digital image was preexisting), the digital image may be dynamically rendered in the visualization region 506 utilizing asynchronous JavaScript and extensible markup language (AJAX) or similar technology.
The successful provision of the digital image by the user may enable further features in the user interface 272 of
A condition field 515 may prompt a user to provide a condition of the digital image that may be used in generating recommendations for particular frames, mouldings, matboards, glazings, fillets, liners, etc. For example, a user may provide via the condition field 515 whether the art subject of the digital image comprises a tear, a fade, a water coloring, etc. A condition notes field 518 may grant the ability to provide customized notes that may be saved in association with the digital image and/or the framing process. The condition notes provided by the user via the condition notes field 518 may be used, for example, in accessing a saved framing process in future framing sessions.
Further, the user may be prompted to provide a material and an art style of the art subject to the digital image via a materials component 521 and an art style component 524, respectively. A size component 527 may prompt the user to provide an existing or desired size of the art subject of the digital image. For example, the size component 527 may be configured to permit the user the ability to define a width and/or a height according to a respective metric. According to various embodiments, the size component 527 may be configured to maintain scale ratios according to the digital image provided to the virtual framing system 215. Accordingly, a custom frame component 530 may be engaged by the user to initiate the rendering of one or more additional user interfaces to provide custom frame dimensions.
Referring next to
As discussed above, the colors of the digital image may be examined on a pixel-by-pixel basis to identify unique colors located within the digital image. The colors identified in the digital image may be ranked to identify which of the plurality of colors meet a predefined threshold indicating which colors are the most relevant and/or most dominant colors in the digital image. By utilizing the most relevant colors of the digital image, the virtual framing system 215 may generate recommendations to be presented to the user by comparing the most relevant and/or most dominant colors to one or more predefined best design templates that may be stored in a data store. The recommendations may include, for example, particular choices or combinations of mouldings, matboards, glazings, fillets, liners, etc. In the non-limiting example of
In the event a user desires to purchase one of the recommendations, such as a best design recommendation, the user may engage a purchase component 615 that may initiate the rendering of one or more additional user interfaces 272 that conduct a checkout process, as will be discussed in greater detail below. Alternatively, the user may desire to further customize a respective recommendation by engaging the customize component 618 that may generate one or more additional user interfaces 272 that facilitate the customization of the respective recommendation, as will be discussed in greater detail with respect to
Turning now to
A search field 709 provides the user the ability to search for particular items, such as frames, mouldings, matboards, glazings, fillets, liners, etc. utilizing, all with immediate visibility and configuration, for example, an item name or item number. An item details region 712 is configured to provide information about a selected item 715 in the selection region 706. For example, a user may engage a particular item in the selection region 706 utilizing, for example, a cursor 718. The item details region 712 may dynamically update to provide the user information about the selected item 715. In addition, a dialog 721 may be generated to provide the user with a name, color, and/or item number corresponding to the selected item 715.
A status component 724 of the user interface 272 may be configured to provide the user the ability to save or print the current framing process, as may be appreciated. In addition, the status component 724 may be configured to provide the user the ability to proceed to a checkout process that may facilitate the purchase of the customized frame as shown in the visualization region 506. A navigation region 727 may facilitate user-controlled navigation between respective phases in the customization process. For example, by engaging a respective portion of the navigation region 727, the user may be redirected to a user interface 272 corresponding to the engaged portion, such as the user interface 272 of
Referring next to
Moving on to
Turning now to
A search field 912 provides the user the ability to search for particular items, such as frames, mouldings, matboards, glazings, fillets, liners, etc. utilizing, for example, an item name or item number. An item details region 915 is configured to provide information about a selected item, such as a frame, in the selection region 909. A status component 918 of the user interface 272 may be configured to provide the user the ability to save or print the current framing process, as may be appreciated. In addition, the status component 918 may be configured to provide the user the ability to proceed to a checkout process that may facilitate the purchase of the customized frame as shown in the visualization region 506. A navigation region 921 may facilitate user-controlled navigation between respective phases in the customization process. For example, by engaging a respective portion of the navigation region 921, the user may be redirected to a user interface 272 corresponding to the engaged portion, such as the user interface 272 of
Referring next to
Turning now to
A selection region 706 may be generated providing a plurality of recommended fillets. By engaging a respective fillet in the selection region 706, the corresponding fillet in the companion fillet region 703 may be updated dynamically, as well as the corresponding mat or fillet in the visualization region 506, utilizing AJAX or similar technology. The recommended fillets within the selection region 706 may be generated, for example, utilizing at least the most relevant and/or most dominant colors identified in the digital image provided by or otherwise selected by the user, as will be discussed below with respect to
A search field 709 provides the user the ability to search for particular items, such as frames, mouldings, matboards, glazings, fillets, liners, etc. utilizing, for example, an item name or item number. An item details region 712 is configured to provide information about a selected item (not shown) in the selection region 706. The item details region 712 may dynamically update upon a selection to provide the user information about the selected item 715.
A status component 724 of the user interface 272 may be configured to provide the user the ability to save or print the current framing process, as may be appreciated. In addition, the status component 724 may be configured to provide the user the ability to proceed to a checkout process that may facilitate the purchase of the customized frame as shown in the visualization region 506. A navigation region 727 may assist with user-controlled navigation between respective phases in the customization process. For example, by engaging a respective portion of the navigation region 727, the user may be redirected to a user interface 272 corresponding to the engaged portion, such as the user interface 272 of
Moving on to
Referring next to
Turning now to
A frame details region 1409 is configured to provide information about the features selected for the frame during the customization process. The information provided in the frame details region 1409 may include, for example features, such as the artwork selected or provided by the user, a unique order number, a material of the artwork, a size of the frame, a type of mat, a type of fillet, a type of frame, and a type of glass. A status component 1412 of the user interface 272 may be configured to provide the user the ability to save or print the current framing process, as may be appreciated. In addition, the status component 1412 may be configured to provide the user the ability to proceed to a checkout process that may facilitate the purchase of the customized frame as shown in the visualization region 506.
A navigation region 1415 may facilitate user-controlled navigation between respective phases in the customization process. For example, by engaging a respective portion of the navigation region 1415, the user may be redirected to a user interface 272 corresponding to the engaged portion, such as the user interface 272 of
Moving on to
Turning now to
The view in room component 1603 may comprise, for example, a plurality of types of rooms 1606a, 1606b, 1606c, 1606d, and 1606e in which a customized frame may be rendered. Types of rooms may comprise, for example, a transitional room, a contemporary room, a traditional room, an eclectic room, a sports room, etc. When engaged by the user, a dialog or one or more additional user interfaces 272 may be rendered to generate the customized frame within a type of room corresponding to the engaged type of room, as will be discussed below with respect to
Moving on to
According to various embodiments, the virtual framing system 215 may facilitate an upload of a picture of a room provided by the user. Accordingly, the frame customized by the user may be generated within the room with an appropriate aspect ratio and at a proper angle aligned with the wall. This may be accomplished by employing known computer vision algorithms employed to determine three-dimensional information from a two-dimensional image, such as those that determine sizes and angles of walls.
Referring next to
Utilizing a text field 1806, a user may enter text to be displayed or a URL to be accessed in response to a reading of the visual identifier utilizing a visual identifier reading device. A generate code component 1809 may be engaged to initiate a rendering of the visual identifier in a preview region 1812 within the add-on component and/or the visualization region 506 as depicted by the visual identifier 1815 within the customized frame. According to various embodiments, the generated visual identifier may encode a link to a web service operated or in communication with the virtual framing system 215. The web service may be configured to display the predefined text, play a personalized audio recording, or initiate the predefined action, as set forth by the user during the customization process. The placement of the visual identifier 1815 on a respective frame may be facilitated using a configure placement component 1818 that may initiate one or more user interfaces 272 to facilitates a selection and placement of the visual identifier 1815 on a respective portion of the customized frame.
Turning now to
According to various embodiments, a lighting device, such as an LED-based device, may communicate with a client device 206 via Bluetooth®, wireless fidelity (Wi-Fi), ZigBee®, Infrared, Near Field Communication (NFC), and/or any other communication technology to sync a color of the light to a specified color defined in the client device 206 using, for example, a client application 269. In various embodiments, a color of a multi-color LED device located, for example, on the back side of a frame may be controlled by a web service, wherein one or more users may specify a particular color to the web service that may initiate a change of the color of the LED device. As a non-limiting example, a mobile application running on a first mobile device may interface with the web service, wherein a user of the mobile first mobile device may communicate a particular color to the web service via the mobile application, for example, based on an emotion the user is feeling or for a variety of other reasons. For example, a person having somber emotions may select a blue color which, in effect, may communicate his or her emotion to be displayed via the LED device. A second mobile device (e.g., a local device) may download instructions from the web service to change the color of the LED device, for example, when the second mobile device is within a communication range of the LED device located on or near a custom frame. The second mobile device may initiate a changing of the LED device via Wi-Fi, ZigBee®, Infrared, Near Field Communication (NFC), and/or any other communication technology, when the second mobile device is within a communication range of the LED device on the custom frame. As may be appreciated, when a user selects various features of the LED device via the user interface, the selections provided by the user may be used in the generation of a purchase order document so that a customized frame may have the features customized via the user interface 272.
Accordingly, the add-on component may be configured to provide the user with the ability to customize settings of a LED-based device by either defining a custom color utilizing the additional light component 1903 or by adding a dynamic light color utilizing the add dynamic light component 1906. When a user engaged a preview in room component 1909, a dialog 1912 may be rendered providing a preview of the customized frame within a particular room. An illuminated region 1915 shown within the dialog 1912 may correspond to either a light color predefined by the user or may dynamically change if a user has indicated the use of a dynamic light device.
Moving on to
Moving on to
As discussed above with respect to
Referring next to
Beginning with 2202, the virtual framing system 215 may access a digital image provided by or otherwise selected by a user of the virtual framing system 215. According to one embodiment, the user may be provided with the ability to upload an image locally accessible by the client device 206. Upon a completion of the upload, the image provided by the user may be stored, for example, in the data store 212 for access by the virtual framing system 215. In various embodiments, the user may be provided with predefined digital images (e.g., artwork offered for purchase by the virtual framing system 215) which are stored in the data store 212 for selection by the user. The user may select one or more the predefined digital images. Accordingly, the virtual framing system 215 may access or otherwise obtain the digital image selected by or provided by the user.
In 2204, a plurality of preferences may be accessed in association with the digital image accessed in 2202. For example, the preferences may comprise a material or surface on which the digital image may be placed (e.g., canvas, linen, laminate). In one embodiment, a component of a user interface 272 may be generated prompting the user to provide the material or surface from, for example, a predefined list of materials. Similarly, the preferences may comprise a size of the surface or material on which the digital image may be placed (e.g., 16″×20″, 18″×24″, 36″×48″). In one embodiment, a component of a user interface 272 may be generated prompting the user to provide the size of the material or surface from, for example, a predefined list of sizes.
Moving on to 2206, one or more art styles may be accessed in association with the digital image accessed in 2202. For example, a style of art of the digital image may be beneficial in generating recommendations, such as expert design recommendations, for particular mouldings, matboards, glazings, fillets, liners, etc. that may be aesthetically pleasing in association with the digital image. According to various embodiments, a component of a user interface 272 may be generated prompting the user to provide the art style of the digital image from, for example, a predefined list of art styles. According to various embodiments, the art style may be determined from metadata extracted from the digital image and/or other characteristics of the digital image.
In 2208, the colors of the digital image may be automatically detected by the virtual framing system 215. For example, the colors of the digital image may be examined on a pixel-by-pixel basis to identify unique colors located within the digital image. The colors identified in the digital image may be ranked to identify which of the plurality of colors meet a predefined threshold indicating which colors are the most relevant or dominant colors in the digital image. By utilizing the most relevant or dominant colors of the digital image, the virtual framing system 215 may generate recommendations, such as expert design recommendations, to be presented to the user, as will be discussed in greater detail below. The most relevant or dominant colors may be categorized by a type of the colors. According to one embodiment, the type of colors may be categorized as focal, accent, and/or neutral (FAN) although it is understood that additional categorizations may be employed.
In 2210, the focal colors may be identified. Similarly, the accent colors and the neutral colors may be identified in 2212 and 2214, respectively. According to one embodiment, the focal colors, the accent colors, and the neutral colors may be identified, for example, by comparing the colors identified in the digital image to predefined expert templates of typical focal colors, accent colors, and neutral colors, wherein the predefined expert templates are stored in the data store 212 and accessible by the virtual framing system 215. The focal colors, the accent colors, and the neutral colors identified in the digital image may be ranked according to a respective category to identify which of the plurality of colors meet a predefined threshold indicating which colors are the most relevant or dominant colors in each category. For example, all or a portion of the focal colors may be ranked to identify the most relevant focal colors in the digital image.
In 2216, one or more custom designs may be identified according to the colors identified in, for example, 2208, 2210, 2212, and 2214. For example, based on the FAN colors identified in the digital image, a plurality of model designs predefined in the data store 212 may be accessed. As a non-limiting example, if a focal color of the image is a dark red color, a model design may be accessed for the dark red color or a color similar to the dark red color. A model design, for example, may comprise an arrangement, spatial placement, color, and/or size of a frame, a moulding, a matboard, a glazing, a fillet, a liner, and/or other components. Similarly, the accent colors and the neutral colors may be used in determining respective parts of the model design such as the arrangement, spatial placement, material colors, and/or size of the frame, the moulding, the matboard, the glazing, the fillet, the liner, and/or other components.
According to the one or more custom designs identified in 2216, a plurality of mats may be identified in 2218, 2220, 2222, 2224, for each of a plurality of design styles such a monochromatic design shown in 2226, an achromatic design shown in 2228, a complimentary design shown in 2230, and/or a gallery design shown in 2232. For each of the design styles, a corresponding frame style may be selected in 2234, 2236, 2238, and/or 2240.
In 2242, a recommended expert design style may be generated utilizing at least the material or size identified in 2204, the art style identified in 2206, the colors identified in 2208, 2210, 2212, and 2214, and/or the custom designs identified in 2216. The recommendation design style generated by the virtual framing system 215 in 2242 may be displayed in 2244, for example, by encoding the recommended design style in one or more user interfaces 272, such as a network page 233 or a mobile application. The user interface 272, or data used in generating the user interface, may be sent to the client device 206, such as a computer or mobile device, for rendering.
In 2246, a design style selected by the user via the user interface 272, may be obtained or otherwise accessed. In 2248, a visualization region may be generated comprising, for example, the arrangement, spatial placement, material colors, and/or size of the frame, the moulding, the matboard, the glazing, the fillet, the liner, and/or other components, determined (if applicable) according to the selected design style obtained in 2246. Subsequently, the visualization region may be encoded in a user interface 272 and sent to the client device 206 for display.
As may be appreciated, the user of the virtual framing system 215 may desire to make additional modifications to all or portions of the components used in generating the visualization region. Accordingly, in 2250, it may be determined whether the user has indicated to change a quantity of matboards. If so, a matboard quantity may be selected by the user in 2252 and accessed by the virtual framing system 215. The visualization region may be regenerated to reflect the change in matboard quantity, if applicable. In 2254, it may be determined whether the user has indicated that the user desires to proceed to a checkout process whereby a user may initiate a purchase of the item, as will be discussed in greater detail. If so, the virtual framing system 215 may end and proceed to a checkout process, as will be discussed in greater detail below.
Moving on to 2256, it may be determined whether the user has indicated to change a color of the one or more matboards. If so, a matboard color may be selected by the user in 2258 for each of the one or more matboards and may be accessed by the virtual framing system 215. The visualization region may be regenerated to reflect the change in matboard color, if applicable. In 2260, it may be determined whether the user has indicated that the user desires to proceed to a checkout process whereby a user may initiate a purchase of the item, as will be discussed in greater detail. If so, the virtual framing system 215 may end and proceed to a checkout process, as will be discussed in greater detail below.
Referring next to 2262, it may be determined whether the user has indicated to change one or more of the recommended frames. If so, a different frame may be selected by the user in 2264 and may be accessed by the virtual framing system 215. The visualization region may be regenerated to reflect the change in the frame, if applicable. In 2266, it may be determined whether the user has indicated that the user desires to proceed to a checkout process whereby a user may initiate a purchase of the item, as will be discussed in greater detail. If so, the virtual framing system 215 may end and proceed to a checkout process, as will be discussed in greater detail below.
Turning now to 2268, it may be determined whether the user has indicated to change a glazing of glass used in the frame and represented in the visualization region. If so, a different glazing may be selected by the user in 2270 and may be accessed by the virtual framing system 215. The visualization region may be regenerated to reflect the change in the glazing, if applicable. In 2272, it may be determined whether the user has indicated that the user desires to proceed to a checkout process whereby a user may initiate a purchase of the item, as will be discussed in greater detail. If so, the virtual framing system 215 may end and proceed to a checkout process, as will be discussed in greater detail below.
According to various embodiments, the frame, the art, and the decorative additions shown in the visualization region may be depicted relative to a room or other space, such as a living room or a dining room. In 2274, it may be determined whether the user has indicated to change a wall color surrounding the frame used in the visualization of the frame represented in the visualization region. If so, a custom wall color may be selected by the user in 2276 and may be accessed by the virtual framing system 215. The visualization region may be regenerated to reflect the change in the wall color, if applicable. In 2278, it may be determined whether the user has indicated that the user desires to proceed to a checkout process whereby a user may initiate a purchase of the item, as will be discussed in greater detail. If so, the virtual framing system 215 may end and proceed to a checkout process, as will be discussed in greater detail below.
Next, in 2280, it may be determined whether the user has indicated to a desire to view the frame, the art, and the decorative additions in a visualized image of a room. If so, a room style may be selected by the user in 2282 and may be accessed by the virtual framing system 215. The room style may be selected by the user, for example, by engaging a visual identifier representing a respective style of room. For example, a visual identifier (e.g., a picture) of a living room may be engaged by the user to generate a visualization region comprising the frame in the visualized living room, in 2284. According to various embodiments, a user may be provided with an option to upload a personal room setting to view the custom frame artwork(s) in the user's own environment. The virtual framing system 215 may generate a visualization of the room using, for example, one or more digital images provided by the user and allow the user to position the custom framed artwork(s) anywhere on the wall of the room. In addition, the room may be scaled appropriately automatically or at the direction of the user, so the custom frame size would be correct. The virtual framing system 215 may end and proceed to a checkout process, as will be discussed in greater detail below.
Turning now to
In 2303, the colors of the digital image may be detected by the virtual framing system 215. For example, the colors of the digital image may be examined on a pixel-by-pixel basis to identify unique colors located within the digital image. Next, in 2306, the colors identified in the digital image may be ranked to identify which of the plurality of colors meet a predefined threshold indicating which colors are the most relevant or dominant colors in the digital image. As a non-limiting example, the predefined threshold may be employed, for example, to identify the top-10 most predominant colors in the image determined by calculating a ratio of the top-10 colors relative to other colors in the image. As discussed above with respect to
In 2309, for each of the colors meeting the predefined threshold, the virtual framing system 215 may be operable to compare a hexadecimal code (hex code) of a respective color to a hex code for each of a plurality of predefined colors, for example, accessed from the data store 212. As a non-limiting example, the predefined colors may be a plurality of mat colors stored in the data store 212. Although the above-described comparison of the colors meeting the predefined threshold with the plurality of predefined colors utilizes hex codes, it is not so limited. For example, hue-saturation-light (HSL) codes and red-green-blue (RGB) codes may be implemented to determine a similarity between two colors, as shown in 2312.
As a non-limiting example, a first hex code of a dominant color of the digital image may be compared to a second hex code corresponding to a color of a mat accessed from the data store 212. The first hex code and the second hex code may each be converted into an RGB code and then into a HSL code to obtain a distance between the HSL codes by employing HSL color space distance calculation and/or International Commission on Illumination (CIE) color comparison. One or more weights may be used in the determination of the distance. For example, Table 1 depicts example weights that may be used in the determination of a distance between two colors:
However, the definition of the weights may vary, as may be appreciated. In 2315, it is determined whether the similarity (e.g., the distance) between two colors has a similarity greater than a predefined threshold (e.g., 90% as shown in
Turning now to
In box 2403, the frame, the art (or item enclosed via the frame), and any decorative additions (e.g., mouldings, matboards, glazings, fillets, liners, or other items) selected by the user via the user interfaces 272 described herein may be identified for use in generating a purchase order. As may be appreciated, various frame shops, or affiliate partners, may be capable of fulfilling the selections specified by the user. Thus, according to various embodiments, the user may be prompted to select a fulfillment party based on a proximity of the fulfillment party to the user and/or an estimated cost of the fulfillment. For example, the user may be prompted to provide a zip code in which the user resides. The virtual framing system 215 may determine the frame shops located with a certain distance of the zip code and may present a list of the frame shops to the user along with an estimate of the fulfillment for each of the frame shops. The user may be free to make his or her own selection and the selection may be received or otherwise accessed by the virtual framing system 2406.
In 2409, it may be determined whether the selected fulfillment party has any requirements used in generating a purchase order. For example, the fulfillment party may request purchase orders be formatted according to certain requirements or constraints. Accordingly, the order requirements and constraints identified may be satisfied in generating the purchase order in 2412. In 2415, the purchase order may be transmitted to the fulfillment party along with any assets required, such as the digital image provided by the user. The purchase order may comprise, for example, the frame, the art, and/or the decorative additions as identified in 2403.
In 2418, a financial transaction may be conducted utilizing a payment gateway on behalf of the fulfillment party, if desired. Alternatively, the virtual framing system 215 may redirect the user to a payment gateway independent of the virtual framing system 215, such as, for example, the payment gateway operated by the fulfillment party.
Moving on to
As a user selects particular design choices in the design quiz, more information may be determined about the user, such as a “sense of style” of the user as well as design preferences. Accordingly, based on the information provided by the user during the design quiz, the information may be weighted to determine recommendations for the user. As shown in
Referring next to
As a user selects particular design choices utilizing the user interfaces 272, more information may be determined about the user, such as a “sense of style” of the user as well as design preferences for the user. Accordingly, based on the information provided by the user during the progression of the user interfaces 272, the information may be weighted to determine recommendations for the user. As shown in
Turning now to
Embodiments are described herein being directed towards improvements in aesthetic recommendation technology, namely leveraging artificial intelligence to generate virtual frames for display using characteristics of a digital image 239, a knowledge base 230 that includes design rules specified by expert designer's, and a consumer's subjective and personal design preferences (stored as subjective data 255). According to various embodiments, at least one computing device, such as a collection of one or more servers, may employ artificial intelligence using the inference engine 218 and the knowledge base 230. The virtual framing system 215 permits the customization of a frame while enabling a user to upload his or her own digital image (or import one or more through a social network) which may be included and shown as a subject of the frame in a user interface 272.
Beginning with 3003, a digital image 239 may be accessed, where the digital image 239 is selected, uploaded, imported, or otherwise provided to the virtual framing system 215. The digital image may include a photograph, a painting, a collage, a diploma, or other image as may be appreciated. Next, in 3006, metadata 249 associated with the digital image 239 may be accessed, for example, to generate a virtual frame recommendation that is aesthetically pleasing in light of the characteristics of the digital image 239. Hence, in 3009, the characteristics of the digital image 239 may be identified, for example, by analyzing the metadata 249 associated with the digital image 239, hexadecimals values, or other mechanism described herein. The various characteristics of the digital image 239 may include a time the digital image 239 was created, whether the digital image is a photograph captured by a particular type of camera, a location where the digital image 239 was taken, etc.
Additionally, identifying the characteristics can include, for example, applying an image or object recognition mechanism, as shown in 3012, such as those known and being applied in computer vision. An image recognition mechanism may include, for example, an algorithm that identifies artifacts, regions, or potential objects based on hexadecimal value variations in the digital image 239. In one example, the detected artifacts are compared to the catalogue of images 245 stored in the knowledge base 230, where each of the images in the catalogue has a known characteristic (e.g., a style, image type, or other characteristic). For instance, if a digital image 239 includes a tree, the digital image 239 may be recognized as being a painting or a photograph of a landscape, as determined based on a comparison with landscapes stored in the catalogue of images 245.
In 3015, a style detection mechanism may be applied to identify styles associated with the digital image 239, where styles may include, for example, classic, modern, surreal, photorealism, or other quantifiable style. In some embodiments, the image recognition described in 3012 may be used, where the style detection engine 227 identifies artifacts, regions, or potential objects based on hexadecimal value variations to compare to a catalogue of images 245 in the knowledge base 230. For instance, if a digital image 239 includes a building in black and white, the style detection engine 227 may recognize that the digital image 239 is a photograph of a cityscape, as determined based on a comparison with images stored in the catalogue of images 245.
Next, in 3018, a color detection mechanism may be applied to identify colors used in the image where colors meeting a usage threshold may be identified. In other words, the most dominant colors or most focal colors in the digital image 239 may be determined. In some embodiments, FAN colors are identified from the digital image 239.
In some embodiments, the inference engine may have a margin of error indicative of the inference engine being uncertain of a characteristics of a digital image. Accordingly, in 3021, a determination may be made whether additional information is required based on the margin of error. If additional information is required, the process may proceed to 3024 where additional information may be obtained by prompting a user of the client device 206 to provide the additional information, or information necessary to verify the applied image recognition, style detection, color detection, or other characteristics of the digital image 239. For example, a verification of the dominant colors of or a style of a photograph may be obtained.
Thereafter, or if additional information is not required in 3021, the process may proceed to 3027. In 3027, the metadata pertaining to the digital image 239 may be updated to include the characteristics of the digital image 239 identified programmatically as well as any additional information obtained from the user. The characteristics of the digital image 239 identified may include the results of 3009, 3012, 3015, and 3018, as may be appreciated. The metadata 242 (as updated) may be used in a current or future recommendation, as can be appreciated.
In 3030, the inference engine 218 and the knowledge base 230 may be employed to programmatically identify components of a virtual frame that are aesthetically consistent with the digital image 239. The components may be assembled for display in a user interface 272, as may be appreciated. The components may include, for example, a frame border, a moulding, a matboard, a glazing, a fillet, a liner, or other component of a frame.
To this end, the inference engine 218 may use expert designer recommendations, or rules, stored in the knowledge base 230 as expert design data 252. Additionally, the inference engine 218 may account for a consumer's subjective and personal design preferences using subjective data 255. In some embodiments, the subjective data 255 may be obtained as a result of a design style quiz. For instance, a user may be provided with particular images of artwork, furniture, rooms, or frames and allow the user to specify or select aesthetically pleasing images.
Moreover, using subjective data 255, a user preference for materials, colors, styles, or other categories may be used in generating a recommended frame configuration based on subjective data 255 collected from previous designs or configuration sessions with the virtual framing system 215. In further embodiments, a user may be “traced” (or, in other words, the design configuration may be followed) and the user identified based at least in part on a photo upload, a saved design, a design portfolio with previously configured frames, metadata, or other information. Indicators in the form of a user interface component may be generated to show more recommendations, such as “You may also like . . . ” This may be driven from various categories, such as “Artist,” “Style,” “Frame Profile/Design.”
The components of the virtual frame identified in 3030, or the virtually assembled frame, may be stored association with a user account, or an account of a user customizing the virtual frame. To this end, later access to the virtual frame may be provided or the virtual frame may be shared or made public such that it is searchable by other users of the network site 235. Additionally, machine learning may be employed by updating the knowledge base 230 in response to a completion of a further configuration of the virtual frame by the user to continue improving identification in and operation of the virtual framing system 215. Thereafter, the process proceeds to completion. Accordingly, a virtual framing system may be provided that allows for a customization of a virtual frame by making suggestions that are aesthetically pleasing based on the subject of the frame, the subjective preferences of a consumer, and expert design recommendations.
With reference to
Stored in the memory 3109 are both data and several components that are executable by the processor 3106. In particular, stored in the memory 3109 and executable by the processor 3106 are the virtual framing system 215, the color detection engine 224, the export application 222, and potentially other applications. Also stored in the memory 3109 may be a data store 212 and other data. In addition, an operating system may be stored in the memory 3109 and executable by the processor 3106.
It is understood that there may be other applications that are stored in the memory 3109 and are executable by the processor 3106 as can be appreciated. Where any component discussed herein is implemented in the form of software, any one of a number of programming languages may be employed such as, for example, C, C++, C#, Objective C, Java®, JavaScript®, Perl, PHP, Visual Basic®, Python®, Ruby, Flash®, or other programming languages.
A number of software components are stored in the memory 3109 and are executable by the processor 3106. In this respect, the term “executable” means a program file that is in a form that can ultimately be run by the processor 3106. Examples of executable programs may be, for example, a compiled program that can be translated into machine code in a format that can be loaded into a random access portion of the memory 3109 and run by the processor 3106, source code that may be expressed in proper format such as object code that is capable of being loaded into a random access portion of the memory 3109 and executed by the processor 3106, or source code that may be interpreted by another executable program to generate instructions in a random access portion of the memory 3109 to be executed by the processor 3106, etc. An executable program may be stored in any portion or component of the memory 3109 including, for example, random access memory (RAM), read-only memory (ROM), hard drive, solid-state drive, USB flash drive, memory card, optical disc such as compact disc (CD) or digital versatile disc (DVD), floppy disk, magnetic tape, or other memory components.
The memory 3109 is defined herein as including both volatile and nonvolatile memory and data storage components. Volatile components are those that do not retain data values upon loss of power. Nonvolatile components are those that retain data upon a loss of power. Thus, the memory 3109 may comprise, for example, random access memory (RAM), read-only memory (ROM), hard disk drives, solid-state drives, USB flash drives, memory cards accessed via a memory card reader, floppy disks accessed via an associated floppy disk drive, optical discs accessed via an optical disc drive, magnetic tapes accessed via an appropriate tape drive, and/or other memory components, or a combination of any two or more of these memory components. In addition, the RAM may comprise, for example, static random access memory (SRAM), dynamic random access memory (DRAM), or magnetic random access memory (MRAM) and other such devices. The ROM may comprise, for example, a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or other like memory device.
Also, the processor 3106 may represent multiple processors 3106 and/or multiple processor cores and the memory 3109 may represent multiple memories 3109 that operate in parallel processing circuits, respectively. In such a case, the local interface 3112 may be an appropriate network that facilitates communication between any two of the multiple processors 3106, between any processor 3106 and any of the memories 3109, or between any two of the memories 3109, etc. The local interface 3112 may comprise additional systems designed to coordinate this communication, including, for example, performing load balancing. The processor 3106 may be of electrical or of some other available construction.
Although the virtual framing system 215, the color detection engine 224, the export application 222, and other various systems described herein may be embodied in software or code executed by general purpose hardware as discussed above, as an alternative the same may also be embodied in dedicated hardware or a combination of software/general purpose hardware and dedicated hardware. If embodied in dedicated hardware, each can be implemented as a circuit or state machine that employs any one of or a combination of a number of technologies. These technologies may include, but are not limited to, discrete logic circuits having logic gates for implementing various logic functions upon an application of one or more data signals, application specific integrated circuits (ASICs) having appropriate logic gates, field-programmable gate arrays (FPGAs), or other components, etc. Such technologies are generally well known by those skilled in the art and, consequently, are not described in detail herein.
The flowcharts of
Although the flowcharts of
Also, any logic or application described herein, including the virtual framing system 215, the color detection engine 224, the export application 222, that comprises software or code can be embodied in any non-transitory computer-readable medium for use by or in connection with an instruction execution system such as, for example, a processor 3106 in a computer system or other system. In this sense, the logic may comprise, for example, statements including instructions and declarations that can be fetched from the computer-readable medium and executed by the instruction execution system. In the context of the present disclosure, a “computer-readable medium” can be any medium that can contain, store, or maintain the logic or application described herein for use by or in connection with the instruction execution system.
The computer-readable medium can comprise any one of many physical media such as, for example, magnetic, optical, or semiconductor media. More specific examples of a suitable computer-readable medium would include, but are not limited to, magnetic tapes, magnetic floppy diskettes, magnetic hard drives, memory cards, solid-state drives, USB flash drives, or optical discs. Also, the computer-readable medium may be a random access memory (RAM) including, for example, static random access memory (SRAM) and dynamic random access memory (DRAM), or magnetic random access memory (MRAM). In addition, the computer-readable medium may be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or other type of memory device.
Further, any logic or application described herein, including the virtual framing system 215, the color detection engine 224, the export application 222, may be implemented and structured in a variety of ways. For example, one or more applications described may be implemented as modules or components of a single application. Further, one or more applications described herein may be executed in shared or separate computing devices or a combination thereof. For example, a plurality of the applications described herein may execute in the same computing device 3103, or in multiple computing devices in the same computing environment 203. Additionally, it is understood that terms such as “application,” “service,” “system,” “engine,” “module,” and so on may be interchangeable and are not intended to be limiting.
Disjunctive language such as the phrase “at least one of X, Y, or Z,” unless specifically stated otherwise, is otherwise understood with the context as used in general to present that an item, term, etc., may be either X, Y, or Z, or any combination thereof (e.g., X, Y, and/or Z). Thus, such disjunctive language is not generally intended to, and should not, imply that certain embodiments require at least one of X, at least one of Y, or at least one of Z to each be present.
It should be emphasized that the above-described embodiments of the present disclosure are merely possible examples of implementations set forth for a clear understanding of the principles of the disclosure. Many variations and modifications may be made to the above-described embodiment(s) without departing substantially from the spirit and principles of the disclosure. All such modifications and variations are intended to be included herein within the scope of this disclosure and protected by the following claims.
This application is a continuation-in-part of U.S. patent application Ser. No. 14/138,225 entitled “Virtual Custom Framing Expert System,” filed Dec. 23, 2013, to be issued as U.S. Pat. No. 9,542,703, which claims the benefit of and priority to U.S. Provisional Application No. 61/909,627 entitled “Electronic Custom Framing System,” filed Nov. 27, 2013, the contents of both being incorporated by reference in their entirety herein.
Number | Date | Country | |
---|---|---|---|
61909627 | Nov 2013 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 14138225 | Dec 2013 | US |
Child | 15401376 | US |