Target-related image detection based on color space transformation technology and ultraviolet light
By creating a device that combines processing circuits and memory, it can receive and process image and video data, identify the color characteristics of the target, and generate a matrix containing ultraviolet or infrared layers. This solves the problems of insufficient image processing detection accuracy and efficiency in existing technologies, and achieves more efficient and safer detection effects.
Patent Information
- Application Number
- CN202310003366.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-03-18
- Filing Date
- 2020-03-16
- Publication Date
- 2025-09-19
- Estimated Expiration
- 2040-03-16
AI Technical Summary
Existing technologies have difficulty in effectively detecting targets in an environment in image processing, especially in edge detection, which suffers from problems of insufficient detection accuracy and efficiency.
By creating a device that includes memory and processing circuitry for receiving image and video data, processing the data to create a histogram of an object, identifying the most prevalent colors associated with the object, determining missing and least prevalent colors, and creating a matrix based on those colors. The matrix can include an ultraviolet or infrared layer, increasing information storage and security.
It improves the accuracy and efficiency of image detection, enhances the effect of edge detection, and improves the reliability and safety of detection by increasing information storage and security levels.
Smart Images

Figure CN116011476B_ABST
Abstract
Description
[0001] This application is a divisional application of the application with application number 202080036956.0, application date March 16, 2020, and invention name “Target-related image detection based on color space transformation technology and using ultraviolet rays”.
[0002] Related applications
[0003] This application is a continuation of U.S. patent application Ser. No. 16 / 357,211, filed on Mar. 18, 2019, entitled “DETECTION OF IMAGES IN RELATION TO TARGETS BASED ON COLORSPACE TRANSFORMATION TECHNIQUES AND UTILIZING ULTRAVIOLET LIGHT.” The contents of the above application are incorporated herein by reference in their entirety. Background Art
[0004] Since ancient times, certain materials (e.g., paints, inks, and / or similar materials) have been used to memorize scenes and / or objects as semi-permanent to permanent media. This memorization includes taking photos to produce photographs. Computer technology allows these photos to be digitized and detected, and has been introduced into image processing as a technical field. Edge detection constitutes at least one aspect of image processing and has applications in many situations.
[0005] Considering these and other factors, the current improvements are necessary. Summary of the Invention
[0006] The following is a simplified summary to provide a basic understanding of some of the novel embodiments described herein. This summary is not an extensive overview and is not intended to identify key / critical elements or delineate the scope. Its sole purpose is to present some concepts in a simplified form as a prelude to the more detailed description that is presented later.
[0007] One aspect of the present disclosure includes an apparatus for creating a matrix optimized for detection in a particular environment. The apparatus includes a memory for storing instructions, and processing circuitry coupled to the memory, the processing circuitry being operable to execute the instructions, the instructions, when executed, causing the processing circuitry to: receive a representative dataset comprising at least one of i) one or more images of a target and ii) one or more videos of the target, the target comprising at least one of i) an environment, ii) an active entity, and iii) an object; process the representative dataset to create a histogram of the target; identify a plurality of most prevalent colors associated with the target based on the histogram; determine a plurality of relevant colors based on the histogram, wherein the relevant plurality of colors comprises at least one of i) a missing color associated with the target and ii) a least prevalent color associated with the target; and create a matrix using the relevant plurality of colors, wherein the matrix is associated with the target.
[0008] Another aspect of the present disclosure includes a method for detecting a matrix optimized for detection in a particular environment. The method includes detecting a matrix displayed via a physical medium and associated with the environment, wherein the matrix includes a plurality of non-black and non-white colors, wherein each of the plurality of non-black and non-white colors is at least one of: i) a missing color associated with the environment and ii) a least popular color associated with the environment.
[0009] Yet another aspect of the present disclosure includes an article of manufacture displaying a matrix barcode optimized for detection in a specific environment. The article of manufacture includes: a matrix barcode displayed via a physical medium and associated with the environment, wherein the matrix barcode includes a plurality of non-black and non-white colors, wherein the matrix barcode has computer data embedded therein, wherein the computer data is represented by a plurality of pixels associated with the non-black and non-white colors, and wherein the plurality of pixels are associated with at least three color channels forming the matrix barcode.
[0010] Yet another aspect of the present disclosure includes an apparatus for creating a matrix optimized for detection in a specific environment, wherein the matrix is part of a layered image including an ultraviolet layer. The apparatus includes: receiving a representative dataset comprising at least one of i) one or more images of a target and ii) one or more videos of the target, the target comprising at least one of i) an environment, ii) an active entity, and iii) an object; processing the representative dataset to create a histogram of the target; identifying a plurality of most prevalent colors associated with the target based on the histogram; determining a plurality of relevant colors based on the histogram, wherein the relevant plurality of colors comprises at least one of i) a missing color associated with the target and ii) a least prevalent color associated with the target; and creating a matrix using the relevant plurality of colors and the at least one ultraviolet layer, wherein the matrix is associated with the target.
[0011] Yet another aspect of the present disclosure includes a method for detecting a matrix optimized for detection in a specific environment, wherein the matrix is part of an image including at least one ultraviolet layer. The method includes detecting a matrix barcode displayed through a physical medium and associated with the environment, wherein the matrix barcode includes a plurality of non-black and non-white colors and at least one ultraviolet layer, wherein the at least one ultraviolet layer reflects ultraviolet light, and wherein the matrix barcode includes four or more information bits.
[0012] Yet another aspect of the present disclosure includes an article of manufacture displaying a matrix barcode optimized for detection in a specific environment, wherein the matrix barcode is part of an image having an ultraviolet layer. The article of manufacture includes: a matrix barcode displayed by a suitable surface for at least one of projecting, absorbing, reflecting, or illuminating ultraviolet light, wherein the matrix barcode includes a combination of four or more component matrix barcodes, each component matrix barcode being associated with a different color channel, including an ultraviolet color channel associated with at least one layer of at least one of the four component matrix barcodes.
[0013] Yet another aspect of the present disclosure includes an apparatus for creating a matrix optimized for detection in a particular environment, wherein the matrix is part of a layered image including an infrared layer. The apparatus includes: receiving a representative dataset comprising at least one of i) one or more images of a target and ii) one or more videos of the target, the target comprising at least one of i) an environment, ii) an active entity, and iii) an object; processing the representative dataset to create a histogram of the target; identifying a plurality of most prevalent colors associated with the target based on the histogram; determining a plurality of relevant colors based on the histogram, wherein the relevant plurality of colors comprises at least one of i) a missing color associated with the target and ii) a least prevalent color associated with the target; and creating a matrix using the relevant plurality of colors and at least one infrared layer, wherein the matrix is associated with the target.
[0014] Yet another aspect of the present disclosure includes a method for detecting a matrix optimized for detection in a specific environment, wherein the matrix is part of an image including at least one infrared layer. The method includes detecting a matrix barcode displayed through a physical medium and associated with the environment, wherein the matrix barcode includes a plurality of non-black and non-white colors and at least one infrared layer, wherein the at least one infrared layer reflects infrared light, and wherein the matrix barcode includes four or more information bits.
[0015] Yet another aspect of the present disclosure includes an article of manufacture displaying a matrix barcode optimized for detection in a specific environment, wherein the matrix barcode is part of an image having an infrared layer. The article of manufacture includes: a matrix barcode displayed by a suitable surface for at least one of projecting, absorbing, reflecting, or illuminating infrared light, wherein the matrix barcode includes a combination of four or more component matrix barcodes, each component matrix barcode being associated with a different color channel, including an infrared color channel associated with at least one layer of at least one of the four component matrix barcodes.
[0016] Yet another aspect of the present disclosure includes an apparatus for creating a matrix barcode comprising both an ultraviolet layer and an infrared layer. The apparatus includes a memory for storing instructions, and processing circuitry coupled to the memory, the processing circuitry being operable to execute the instructions, which, when executed, cause the processing circuitry to create a matrix barcode using at least one infrared layer and at least one ultraviolet layer.
[0017] Yet another aspect of the present disclosure includes an apparatus for creating a matrix optimized for detection in a particular environment, wherein the matrix is part of a layered image including an infrared layer and an ultraviolet layer. The apparatus includes a memory for storing instructions, and processing circuitry coupled to the memory, the processing circuitry being operable to execute the instructions, the instructions, when executed, causing the processing circuitry to: create a matrix barcode using one or more color layers, at least one infrared layer, and at least one ultraviolet layer; receive a representative dataset comprising at least one of i) one or more images of a target and ii) one or more videos of the target, the target comprising at least one of i) an environment, ii) an active entity, and iii) an object; process the representative dataset to create a histogram of the target; identify a plurality of most prevalent colors associated with the target based on the histogram; and determine a plurality of relevant colors based on the histogram, wherein the relevant plurality of colors comprises at least one of i) a missing color associated with the target and ii) a least prevalent color associated with the target, wherein the relevant plurality of colors is included in each of the one or more color layers.
[0018] Yet another aspect of the present disclosure includes a method for detecting a matrix barcode optimized for detection in a specific environment, wherein the matrix barcode includes an ultraviolet layer and an infrared layer. The method includes detecting the matrix barcode displayed through a physical medium and associated with the environment, wherein the matrix barcode includes a plurality of non-black and non-white colors, at least one infrared layer, and at least one ultraviolet layer, wherein the at least one ultraviolet layer reflects ultraviolet light, and wherein the at least one infrared layer reflects infrared light.
[0019] Yet another aspect of the present disclosure includes an article of manufacture for displaying a matrix barcode having both ultraviolet and infrared layers. The article of manufacture includes: a matrix barcode displayed by a suitable surface for projecting, absorbing, reflecting, or illuminating at least one of infrared and ultraviolet light, the matrix barcode including at least one infrared layer and at least one ultraviolet layer.
[0020] Yet another aspect of the present disclosure includes an article of manufacture for displaying a matrix barcode having both ultraviolet and infrared layers, as well as one or more color layers optimized for detection in a specific environment. The article of manufacture includes: a matrix barcode displayed by a suitable surface that reflects both infrared and ultraviolet light, the matrix barcode including at least one infrared layer, at least one ultraviolet layer, and a plurality of non-black and non-white colors, wherein the plurality of non-black and non-white colors are associated with at least three non-white and non-black color channels.
[0021] To accomplish the foregoing and related purposes, certain illustrative aspects are described herein in conjunction with the following description and accompanying drawings. These aspects are indicative of various ways in which the principles disclosed herein may be implemented, and all aspects and equivalents thereof are intended to be within the scope of the claimed subject matter. Additional advantages and novel features may become apparent from the following detailed description when considered in conjunction with the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS
[0022] Figure 1 An embodiment of a system for improving edge detection in an image in accordance with at least one embodiment of the present disclosure is shown.
[0023] Figure 2A A method for performing a multi-processor system according to at least one embodiment of the present disclosure is shown. Figure 1 An embodiment of a clustering process of a system.
[0024] Figure 2B A method for performing a multi-processor system according to at least one embodiment of the present disclosure is shown. Figure 1 An embodiment of a color space conversion technique for a system.
[0025] Figure 3 A method for performing a multi-processor system according to at least one embodiment of the present disclosure is shown. Figure 1 An embodiment of a centralized system of systems.
[0026] Figure 4 A method for performing a multi-processor system according to at least one embodiment of the present disclosure is shown. Figure 1 Embodiment of the operating environment of the system.
[0027] Figure 5A A method for performing a multi-processor system according to at least one embodiment of the present disclosure is shown. Figure 1 An embodiment of a first logic flow of a system.
[0028] Figure 5B A method for performing a multi-processor system according to at least one embodiment of the present disclosure is shown. Figure 1 An embodiment of a second logic flow of the system.
[0029] Figure 5C A method for performing a multi-processor system according to at least one embodiment of the present disclosure is shown. Figure 1 An embodiment of a third logic flow of the system.
[0030] Figure 5D A method for performing a multi-processor system according to at least one embodiment of the present disclosure is shown. Figure 1 Embodiment of a fourth logic flow of the system.
[0031] Figure 6A The formation of a scannable image in accordance with at least one embodiment of the present disclosure is shown.
[0032] Figure 6B The formation of a scannable image in accordance with at least one embodiment of the present disclosure is shown.
[0033] Figure 6C The formation of a scannable image in accordance with at least one embodiment of the present disclosure is shown.
[0034] Figure 7 A computer device for generating and scanning a scannable image in accordance with at least one embodiment of the present disclosure is shown.
[0035] Figure 8 Shown for Figure 1 An embodiment of a graphical user interface (GUI) for a system.
[0036] Figure 9 An embodiment of a computing architecture is shown.
[0037] Figure 10 An embodiment of a communication architecture is shown. DETAILED DESCRIPTION
[0038] Various embodiments are directed to improving image processing by identifying which color space model is best suited for detection in a particular environment, for example, converting between color spaces to improve detection in a particular environment or associated with a particular target. In various embodiments, converting between color spaces provides a matrix positioned on an object or displayed by an electronic device, wherein the matrix is optimized for detection in the environment by performing one or more color space conversions when generating the matrix. In one or more embodiments, the matrix is a matrix barcode, and in one or more embodiments, the matrix barcode is a fiducial marker.
[0039] In various embodiments, a color space transform encodes information about the matrix barcode, which allows for correct scanning of objects associated with the matrix barcode while preventing tampering and false authentication, e.g., a color channel containing information is associated with the transform, and without a scanning device having access to information associated with the transform, the scan cannot authenticate the object and / or access any information associated with the object.
[0040] In various embodiments, color space conversion is used to increase the amount of information stored on a matrix, for example, a matrix barcode, because the color channels associated with the conversion (derivation) to the color space can be increased as needed without any restrictions (provided that the scanning device is appropriately configured to detect them when scanning the matrix).
[0041] In various embodiments, to further increase the information associated with the matrix, add an additional layer of security, and / or optimize the use of ink associated with printing the matrix, an ultraviolet layer and / or an infrared layer may be applied to the matrix.
[0042] Thus, various embodiments of the present disclosure provide at least one of the following advantages: i) enhanced detection of images (e.g., a matrix) on objects in an environment (because the matrix colors are selected and optimized based on the colors of the environment in mind), ii) providing more secure authentication, and iii) storing more information on the matrix because there is no upfront limit on how many color channels can be used, and the amount of information can be further increased by adding infrared or ultraviolet features, making the authentication scan more secure.
[0043] In various embodiments, color space conversion improves edge detection. Edge detection is a well-known technical field in image processing, and edge detection techniques provide different results for different color space models. It is not uncommon for one color space model to provide better results in edge detection than another color space model because image data that conforms to the color space model has a higher probability of success in edge detection than another color space model.
[0044] Color space models are configured to represent color data, but most models differ in how they represent that color data. For example, the CIELAB or LAB color space models represent color as three values: L represents lightness / luminance, and Alpha (A) and Beta (B) represent the green-red and blue-yellow color components, respectively. The LAB color space model is typically used when converting from a red-green-blue (RGB) color space model to cyan-magenta-yellow-black (CMYK). For some images, representing their color data in the LAB color space model provides better edge detection results than other color space models (including the RGB model). As a result, embodiments may improve the affordability, scalability, modularity, extensibility, or interoperability (and thereby, minimize redundant consumption of computer resources) of operators, devices, or networks that utilize image detection as a means of verifying transactions by providing a more efficient and accurate way of scanning images associated with verification.
[0045] The following detailed description is presented in terms of program processes executed on a computer or computer network with general reference to the symbols and terms used herein. These process descriptions and representations are used by those skilled in the art to most effectively convey the substance of their work to those skilled in the art.
[0046] A process is generally conceived of as a self-consistent sequence of operations leading to a desired result. These operations require physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical, magnetic, or optical signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It proves convenient at times to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like, principally for reasons of common usage. It should be noted, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities.
[0047] Furthermore, the operations performed are often referred to in terms such as addition or comparison, which are commonly associated with mental operations performed by a human operator. In any of the operations described herein that form part of one or more embodiments, the ability of a human operator is not required, or in most cases desirable. Instead, these operations are machine operations. Useful machines for performing the operations of various embodiments include general-purpose digital computers or similar devices.
[0048] Various embodiments also relate to apparatus or systems for performing these operations. The apparatus may be specially constructed for the desired purpose, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer. The processes presented herein are not inherently related to a particular computer or other apparatus. Various general-purpose machines may be used with programs written in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the required method steps. The required structure for a variety of such machines will appear from the description given.
[0049] Reference is now made to the accompanying drawings, in which similar reference numerals are used throughout to denote similar elements. In the following description, for the purpose of explanation, numerous specific details are set forth to provide a thorough understanding thereof. However, it will be apparent that novel embodiments may be implemented without these specific details. In other instances, well-known structures and devices are shown in block diagram form to facilitate their description. It is intended to cover all modifications, equivalents, and alternatives consistent with the claimed subject matter.
[0050] Figure 1 A block diagram of the system 100 is shown. Figure 1 The system 100 is shown with a limited number of elements in a particular topology; however, it will be appreciated that the system 100 may include more or fewer elements in alternative topologies as desired for a given implementation. The system 100 may implement some or all of the structure and / or operations of the system 100 in a single computing entity (e.g., entirely within a single device).
[0051] System 100 may include apparatus 120. Apparatus 120 may generally be configured to process input 110 using various components and generate output 130, wherein (some) output 130 is displayed on a display device or printed on a suitable material surface. Apparatus 120 may include a processor 140 (e.g., processing circuitry) and computer memory 150. Processing circuitry 140 may be any type of logic circuitry, and computer memory 150 may be a configuration of one or more memory units.
[0052] The device 120 also includes logic 160 stored in the computer memory 150 and executed on the processing circuit 140. The logic 160 is operable to cause the processing circuit 140 to process the image data of the image data set 170 into stitched image data, wherein the image data is configured according to a color space model. The color space model as described herein refers to any suitable color space model, such as red-green-blue (RGB), cyan-magenta-yellow-black (CMYK), brightness-alpha-beta (LAB), etc. For example, the alpha and beta channels of the LAB color space model refer to green-red and blue-yellow color components, respectively. The green-red component can represent the variance between red and green, where green is in the negative direction along the axis and red is in the positive direction along the axis, and the blue-yellow component can represent the variance between blue and yellow, where blue is in the negative direction along the axis and yellow is in the positive direction along the axis. In various embodiments, an edge can be defined (mathematically) as each pixel position where the alpha channel has a value of zero (0) or close to zero.
[0053] In various embodiments, the stitched image data includes a plurality of patches, where each patch includes color data (e.g., pixel data where each pixel is represented as a tuple of red-green-blue (RGB) color intensities). As described herein, one color space model (e.g., RGB) may correspond to a higher likelihood of successful edge detection than another color space model. Some images provide the best or near-best edge detection results when arranged in RGB, while other images provide the best or near-best edge detection results when arranged in LAB or XYZ color space, and vice versa.
[0054] In various embodiments, the logic 160 may further operate to cause the processing circuitry 140 to apply the color space transformation mechanism 180 to the image data to generate transformed image data according to other color space models. The logic 160 may then operate to cause the processing circuitry 140 to apply the edge detection technique 190 to the transformed image data. The edge detection technique 190 refers to an image processing technique that is any one of a number of algorithms for identifying edges or boundaries of objects within an image. Generally, the edge detection technique 190 provides information (e.g., pixel data) indicating the location of edges in the image data of the image dataset 170. Some embodiments of the edge detection technique 190 operate by detecting discontinuities in brightness, and for those embodiments, having the image data in the LAB color space or the XYZ color space over RGB provides more accurate edge detection results. Some embodiments of the edge detection technique 190 provide accurate edge detection results when the image data is modeled according to HCL (hue-chrominance-luminance) rather than RGB.
[0055] In various embodiments, the logic 160 may be further operative to cause the processing circuitry 140 to identify an image group corresponding to the stitched image data. The image data set 170 also includes image group model data that associates the images with a color space model that is most likely to provide appropriate edge detection results. In various embodiments, the image group model data indicates which color space model to use to transform a given image prior to edge detection to obtain near-optimal edge detection results. The logic 160 is further configured to cause the processing circuitry 140 to select a color space transformation mechanism 180 based on the image group. The color space transformation mechanism 180 operates to transform the image data into transformed image data according to another color space model that has a higher probability than the color space model for edge detection of the image group. It should be understood that the another color space model can be any color space model, including a color space model having a different number of channels than the color space model.
[0056] In various embodiments, the logic 160 may further be operable to cause the processing circuitry 140 to determine an optimal detection color space associated with a particular object, entity, or environment, wherein a color space or histogram representation of the particular object, entity, or environment may be part of the image dataset 170. The logic 160 may further be operable to cause the processing circuitry 140 to determine the optimal color space based on one or more color space conversion operations, wherein the color space conversion operations may provide a mechanism for encoding information in any suitable medium, including, but not limited to, a matrix, such as a matrix barcode, a fiducial marker, any other suitable barcode, or any other suitable image. The logic 160 may further be operable to cause the processing circuitry 140 to generate a scheme for the matrix (e.g., a matrix barcode, a fiducial marker, etc.) and a scheme for detecting the particular object, entity, or environment based on the color space determination. The logic 160 may also be operable to cause the processing circuitry 140 to provide a scheme for adding at least one ultraviolet layer and an infrared layer to an image (e.g., a matrix or a matrix barcode), which may be useful for detecting the particular object, entity, or environment, wherein the ultraviolet layer and / or the infrared layer add additional data carrying capacity and / or security to the detectable image.
[0057] The one or more color space models described herein, as described and implied elsewhere herein, refer to any suitable color space model, such as a color space employing a tristimulus system or scheme, red-green-blue (RGB), luminance-alpha-beta (LAB), an XYZ color space, and / or the like and / or variations thereof. Similarly, although various embodiments may relate to specific conversions from one particular color space to another, conversions between other color spaces are contemplated and consistent with the teachings of this disclosure.
[0058] In various embodiments, as described herein, one color space model (e.g., RGB or XYZ) may correspond to a higher likelihood of successful edge detection than another color space model in detecting displayed or printed images (e.g., barcodes) associated with an object, entity, or environment having a particular color distribution. Additionally, particular colors and color channels associated with a color space may provide superior edge detection with respect to an object, entity, or environment. Certain images provide the best or near-best edge detection results when arranged in RGB, while other images provide the best or near-best edge detection results when arranged in XYZ or LAB, and vice versa. For example, an image depicting a red balloon on a green area in RGB will be very different than in LAB; thus, with respect to edge detection, LAB will provide a higher likelihood than RGB in successfully identifying and locating the edge (e.g., boundary) of a red balloon or a matrix having red color in a green environment (e.g., a barcode or fiducial marker).
[0059] In various embodiments, a color channel is a color distribution having a first color and a second color with first and second highest prevalences, respectively, where the first color becomes minimum and the second color becomes maximum in the color channel, such that a boundary can be a transition between these colors. The boundary can be at least one pixel where the color changes from the first color to the second color or vice versa. If the first color is set to zero (0) and the second color is set to two hundred and fifty-five (255), then mathematically, the boundary may be located at one or more pixels that jump between the minimum and maximum values; for example, there may be a sharp split (i.e., a thin boundary) where at least two adjacent pixels immediately transition between 0 and 255. In various embodiments, the color channels (e.g., "R," "G," and "B") define a color space such as RGB (e.g., a first color space based on a tristimulus system), and in various embodiments, a custom color channel can be created using a (second) tristimulus system that is associated with and defines (and / or converts to) an XYZ color space. In various embodiments, the color channels can be greater than three.
[0060] In various embodiments, as discussed herein, one or more color channel ranges are selected such that a maximum color value of the one or more color channels corresponds to a unique color value, a most prevalent color value, and / or a highest color value of a target object, entity, and / or environment associated with the scan, and a minimum color value of the color channel corresponds to a most unique color, a most prevalent color value, and / or a highest color value of a scannable image (e.g., a matrix, a matrix barcode, and / or a fiducial marker), wherein additionally, the most prevalent color value and / or the highest color value of the scannable image is also the least prevalent (lowest color value) and / or not present in the target object, entity, and / or environment associated with the scan, or vice versa (e.g., with respect to maximum or minimum values).
[0061] In various embodiments, as described herein, in addition to increasing the storage and encryption capacity of information, certain objects, entities, or environments may have color distributions that create more complex and diverse color spaces and associated colors and color channels (including colors that are imperceptible to the human eye), making them more attractive for detection. Therefore, in various embodiments, logic 160 is further operable to cause processing circuitry 140 to identify an image group corresponding to the stitched image data. Image dataset 170 also includes image group model data that associates the images with a color space transformation model that is most likely to provide appropriate edge detection results. In some embodiments, the image group model data indicates which color space transformation model to use when transforming a given image prior to edge detection in order to obtain near-optimal edge detection results. Logic 160 is further configured to cause processing circuitry 140 to select an image group-based color space transformation mechanism 180. Color space transformation mechanism 180 is operable to transform the image data into transformed image data according to another color space model that has a higher probability of being used for edge detection than the color space model in the image group.
[0062] In various embodiments, system 100 may include one or more of camera or video device 195 and / or scanning device 197, where both device 195 and device 197 may be any suitable device for acquiring, capturing, editing, and / or scanning images of objects, entities, and / or environments (including, but not limited to, videos or camera pictures). Logic 160 may be configured to capture or scan images of particular objects, entities, or environments using device 195 and / or device 197, where the captured images may become part of image dataset 170 and be used to determine an appropriate color space, perform color space conversion, and / or scan images determined from the color space conversion, possibly consistent with the teachings provided herein.
[0063] In various embodiments, the system 100 may include a printing device 199 (e.g., a printer) or an application thereof, wherein image portions of the image dataset 170 and / or images generated by one or more components of the system 100 (e.g., a scannable matrix, a matrix barcode, or a fiducial marker) may be printed by the printing device 199 by applying a color space transformation technique or mechanism and / or the printing device 199 may provide a scheme for another device to print or generate an image associated with the scannable matrix, the matrix barcode, or the fiducial marker.
[0064] Figure 2A An embodiment of a clustering process 200A for use with the system 100 is shown. The clustering process 200A performs clustering on an image dataset (e.g., Figure 1 The image dataset 170) is operated on.
[0065] In some embodiments of clustering process 200A, color data 202 of an image undergoes a stitching operation in which the image is processed into a plurality of patches 204 of stitched image data 206. Each patch 204 of stitched image data 206 includes color data according to a color space model, such as pixel data having RGB tuples. Clustering process 200A further processes stitched image data 206 through a transform operation 208 by applying a color space transform mechanism to the color data of stitched image 206 to transform the stitched image data into transformed image data of a transformed image 210. The color data of stitched image 206 is configured according to the color space model, and new color data for transformed image 210 is generated according to another color space model.
[0066] In some embodiments, clustering process 200A performs a minimum color space transform on at least one patch of stitched image 206, potentially leaving one or more patches untransformed. Minimum color space transform modifies color data in at least one patch to transform stitched image data into transformed image data of transformed image 210, via transform operation 208. Clustering process 200A can perform stitching between patches to make stitched image 206 uniform without creating artificial edges.
[0067] Figure 2B An example of a color space conversion scheme 200B according to various embodiments of the present disclosure is shown. A histogram 218 representation of a particular object, entity, or environment 215 is provided (where the numbers 100, 90, 80, and 70 are intended to represent a simplified version of the color distribution values representing one or more colors of the particular object, entity, or environment 215). The histogram 218 can be generated by causing one or more components of the system 100 to perform a scan of the particular object, entity, or environment 215 and generate a histogram 218 of the most prevalent colors, the least prevalent colors, or the missing colors of the object, entity, or environment 215. In one or more embodiments, the histogram 218 can be four or more colors of the most prevalent colors of the object, entity, or environment. Because various embodiments of the present disclosure explicitly contemplate the use of colors that are not perceptible to the human eye, there is no limit to the number of colors that can be used in the histogram 218, and any image generated from the color space conversion discussed herein, including but not limited to matrices, matrix barcodes, fiducial markers, etc., can have more than four colors and four color channels, where the four colors and / or four color channels are distinct and different from each other.
[0068] In various embodiments, one or more components of the system 100 can determine the most popular colors associated with the object, entity, or environment 215, and the resulting histogram 218 can be based on this determination. The histogram 218 can be used to map the most popular colors to a distribution 222 associated with an appropriate color space 224 (including, but not limited to, an RGB color space 224). In various embodiments, the colors of the histogram 218 are mapped according to the tristimulus values (e.g., "R," "G," and "B") of the RGB color space. Any suitable mathematical transformation (e.g., linear algebra, etc.) can be used to map the colors to the RGB color space, such as converting the mapped RGB color space to another color space.
[0069] In various embodiments, once the distribution 222 is mapped according to the RGB color space 224, one or more components of the system 100 can convert the RGB distribution 222 to a new color space 226 having a distribution 228 according to the new color space 226. Any suitable color space conversion can be used, including conversion to an XYZ color space, where the conversion can be based on any suitable mathematical conversion and equations governing the XYZ color space, including suitable tristimulus conversions between RGB and XYZ. In various embodiments, "Y" represents a luminance value in the XYZ space, and at least one (or both) of "X" and "Z" represents a chromaticity value and associated distribution in the color space, for example, as plotted 226 according to the XYZ color space.
[0070] In various embodiments, filtering out the luminance channel "Y" to produce color space 228' and distribution 226' can help determine only the actual chromaticity values associated with entity, object, or environment 215, without considering luminance (which is at least helpful because colors that the human eye cannot perceive can be used). In various embodiments, four (or more) lines can be defined by points (a1, b1), (a2, b2), (a3, b3), and (a4, b4) and selected to have the maximum distance relative to distribution 226'. In various embodiments, points a1, a2, a3, and a4 are selected to correspond to the most prevalent colors associated with entity, object, or environment 215, while b1, b2, b3, and b4, as an extension, can represent the least prevalent colors or missing colors associated with the entity, object, or environment, as opposed to these colors. These lines can define vectors for a new color space transformation in XYZ or other suitable color space 245 and can form the basis for new XYZ tristimulus values. An image, such as a matrix or matrix barcode, can be created using the colors associated with the new color space 250 and the color distribution 245 defined by the color channel vectors (i, -i), (j, -j), (k, -k) associated therewith, the additional color channels, and all other color channels (omitted from the display due to limitations of the three-dimensional space). In various embodiments, edge detection is enhanced because the colors may correspond to less popular colors or missing colors relative to where a potential scan may occur (or what is being scanned) (e.g., a matrix barcode on an entity or object and / or a matrix barcode in an environment with colors having the greatest difference associated therewith).
[0071] Alternatively, although not explicitly shown, the maximum distance from the most popular color to the least popular color (e.g., a1 to b1, a2 to b2, etc.) can be determined, and then lines can be drawn from b1, b2, b3, and b4 in directions tangential to, parallel to, or opposite to the vectors or directions associated with a1, a2, a3, and a4. The color channel vectors (i, -i), (j, -j), (k, -k), additional color channels, and all other color channels associated with the color space 250 (omitted from the display due to the limitations of the three-dimensional space) can be completely absent and / or slightly popular colors relative to the entity, object, or environment 215, which can further enhance edge detection.
[0072] In various embodiments, when performing color space conversion between 228' and 250, in addition to performing algebraic or other appropriate conversions associated with the XYZ color space, the color channel vectors, e.g., (i, -i), (j, -j), (k, -k), can be made orthogonal to one another by performing any suitable mathematical and / or orientation operations on the vectors and / or by selecting appropriate points in color space 226' and distribution 228' when performing the conversion. In various embodiments, in addition to the orientation operation to center distribution 245 along the axis of the newly defined color channel vectors (e.g., (i, -i), (j, -j), (k, -k)), a second maximum difference between one or more points in space 250 can be obtained so that the color channel vectors are orthogonal and have a maximum distance from one another. In various embodiments, performing at least one of an orthogonality operation, a maximum determination, and / or an orientation operation can further enhance edge detection of an image generated for scanning (e.g., a matrix barcode) relative to the entity, object, or environment 215 to be scanned.
[0073] In various embodiments, the various color channels described above (including each vector, such as (-i, i)) define a first color that is the minimum in the color channel and a second color that is the maximum. The boundary can be at least one pixel where the color changes from the first color to the second color, or vice versa. If the first color is set to zero (0) and the second color is set to two hundred and fifty-five (255), then mathematically, the boundary may be located at one or more pixels that jump between the minimum and maximum values; for example, there may be a sharp split (i.e., a thin boundary) where at least two adjacent pixels immediately transition between 0 and 255. In various embodiments, the boundaries can be transitions between these colors, where, as described above, one or more color channel ranges are selected such that the maximum color value of one or more color channels corresponds to a unique color value, a most prevalent color value, and / or a highest color value of a target object, entity, and / or environment associated with the scan, and the minimum color value of the color channel corresponds to the most unique color value, the most prevalent color value, and / or the highest color value of a scannable image (e.g., a matrix, a matrix barcode, and / or a fiducial marker), where, additionally, the most prevalent value and / or the highest color value of the scannable image is also the least prevalent (lowest color value) and / or not present in the target object, entity, and / or environment associated with the scan, or vice versa (e.g., with respect to the maximum or minimum values).
[0074] The length of the color channel can be adjusted accordingly based on the scanning and image acquisition capabilities of the various components (e.g., camera or video device 195, scanning device 197, and / or recognition component 422-4) (see below). Figure 4 Discussion), where the length increases the number of different colors between the minimum and maximum points of a color channel.
[0075] In various embodiments, conversions between an RGB color space to an XYZ color space and / or a first conversion to a (derivative) XYZ space to another XYZ color space can be governed by tristimulus equations (Equation 1) defining the converted color space and color space distribution, where the value of x+y=z can be normalized to 1.
[0076] x=X / (X+Y+Z),
[0077] y=Y / (X+Y+Z),
[0078] z=Z / (X+Y+Z).
[0079] Equation 1
[0080] In various embodiments, the values of "X," "Y," and "Z" depend on the input color from the RGB color space (or, in the case of a second conversion, from a converted color space). Although tristimulus values are defined in triplicate, as described above, the conversion can involve more than three color channels, including color channels that define colors that are not perceptible to the human eye. In various embodiments, the conversion governed by Equation 1 can form a key for a scanning device to scan an image defined by the conversion, such as a matrix, such as a matrix barcode or fiducial marker. In various embodiments, this means that in addition to providing a means for increasing the number of color channels and colors of an image to be scanned (which in turn increases the number of information bits that can be encoded therein), another advantage of various embodiments is that it provides a way to securely encode information. For example, without knowing the one or more equations governing the color space and the input values (which are based on the first color space associated with the entity, object, or environment 215), a successful scan cannot be performed. Therefore, in various embodiments, the logic 160 of system 100 can cause processor 140 (or an application programmed to perform the operations of 100) to provide the key governed by Equation 1 to scanning device 197 in order to scan an image encoded according to one or more color space conversions associated with Equation 1.
[0081] In various embodiments, the logic 160 of the system 100 can cause the processor 140 to provide a scheme for adding one or both of an ultraviolet layer and / or an infrared layer to an image (e.g., a matrix, a matrix barcode, or a fiducial marker), wherein the image contains a plurality of non-black or non-white colors controlled by any suitable color space. In various embodiments, the scheme can include an ultraviolet layer and an infrared layer, wherein the ultraviolet layer can form the first layer of the image to utilize its characteristics. In various embodiments, the non-black and non-white colors of the scannable image can be determined by one or more color space conversion techniques outlined herein. In various embodiments, non-black and non-white colors refer to colors that are not black or white. In various embodiments, non-black and non-white colors refer to colors that are not black, not white, or based on a grayscale distribution.
[0082] Figure 3 A block diagram of a distributed system 300 is shown. Distributed system 300 can distribute portions of the structure and / or operation of system 100 across multiple computing entities. Examples of distributed system 300 can include, but are not limited to, client-server architectures, 3-tier architectures, N-tier architectures, tightly coupled or clustered architectures, peer-to-peer architectures, master-slave architectures, shared database architectures, and other types of distributed systems. In this context, embodiments are not limited thereto.
[0083] The distributed system 300 may include a client device 310 and a server device 320. In general, the client device 310 and / or the server device 320 may be connected to a reference Figure 1 For example, the client device 310 and the server device 320 may each include a processing component 330 that is the same as or similar to the apparatus 120 described in reference to FIG. Figure 1 The processing circuit 140 described above is the same or similar. In another example, the devices 310 , 320 can communicate via the communication component 340 using communication signals 314 over the communication medium 312 .
[0084] Server device 320 can communicate with other devices over communication medium 312 using communication signals 314 via communication component 340. The other devices can be internal or external to device 320 as desired for a given implementation.
[0085] The client device 310 may include or use one or more client programs that operate according to the described embodiments to perform various methods. In one embodiment, for example, the client device 310 may implement a system including Figure 1 100 of the logic 160, wherein in various embodiments, the client device 310 may implement one or more operations to form an image based on one or more color space conversions, as described above and herein.
[0086] The server device 320 may include or use one or more server programs that are run to perform various methods according to the described embodiments. In one embodiment, for example, the server device 320 may implement Figure 2A The image group model data 350 is generated by performing one or more color space conversion operations of the scheme 200B and performing the clustering process 200A. The image group model data 350 may include a printing scheme or color distribution of an image to be scanned (e.g., a matrix, a matrix barcode, or a fiducial marker) in the entity, object, or environment 215.
[0087] Devices 310, 320 may include any electronic device capable of receiving, processing, and sending information for system 100. Examples of electronic devices may include, but are not limited to, ultra-mobile devices, mobile devices, personal digital assistants (PDAs), mobile computing devices, smartphones, phones, digital phones, cellular phones, e-book readers, handheld devices, one-way pagers, two-way pagers, messaging devices, computers, personal computers (PCs), desktop computers, laptop computers, notebook computers, netbook computers, handheld computers, tablet computers, servers, server arrays or server farms, web servers, network servers, Internet servers, workstations, microcomputers, mainframe computers, supercomputers, network devices, web devices, distributed computing systems, multi-processor systems, processor-based systems, consumer electronics, programmable consumer electronics, gaming devices, televisions, digital televisions, set-top boxes, wireless access points, base stations, subscriber stations, mobile subscriber centers, radio network controllers, routers, hubs, gateways, bridges, switches, machines, or combinations thereof. In this context, embodiments are not limited thereto.
[0088] Devices 310, 320 may use processing component 330 to execute instructions, processing operations, or logic for system 100. Processing component 330 may include various hardware elements, software elements, or a combination of both. Examples of hardware elements may include devices, logic devices, components, processors, microprocessors, circuits, processing circuits, circuit elements (e.g., transistors, resistors, capacitors, inductors, etc.), integrated circuits, application specific integrated circuits (ASICs), programmable logic devices (PLDs), digital signal processors (DSPs), field programmable gate arrays (FPGAs), application specific standard products (ASSPs), systems on chips (SOCs), complex programmable logic devices (CPLDs), memory cells, logic gates, registers, semiconductor devices, chips, microchips, chipsets, etc. Examples of software elements may include software components, programs, applications, computer programs, applications, system programs, software development programs, machine programs, operating system software, middleware, firmware, software modules, routines, subroutines, functions, methods, procedures, software interfaces, application programming interfaces (APIs), instruction sets, computing code, computer code, code segments, computer code segments, words, values, symbols, or any combination thereof. Determining whether to implement an embodiment using hardware elements and / or software elements can vary depending on any number of factors, such as desired computational rate, power levels, thermal tolerances, processing cycle budget, input data rate, output data rate, memory resources, data bus speed, and other design or performance constraints, as required for a given implementation.
[0089] Devices 310 and 320 may use a communication component 340 to perform communication operations or logic for system 100. Communication component 340 may implement any known communication technology and protocol, such as technology suitable for use with a packet-switched network (e.g., a public network such as the Internet, a private network such as a corporate intranet, etc.), a circuit-switched network (e.g., the public switched telephone network), or a combination of packet-switched and circuit-switched networks (with appropriate gateways and switches). Communication component 340 may include various types of standard communication components, such as one or more communication interfaces, network interfaces, network interface cards (NICs), radios, wireless transmitters / receivers (transceivers), wired and / or wireless communication media, physical connectors, etc. By way of example and not limitation, communication media 312 includes wired communication media and wireless communication media. Examples of wired communication media may include wires, cables, metal leads, printed circuit boards (PCBs), backplanes, switch fabrics, semiconductor materials, twisted pair wiring, coaxial cables, optical fibers, propagated signals, etc. Examples of wireless communication media may include acoustic, radio frequency (RF) spectrum, infrared, and other wireless media.
[0090] Figure 4 An embodiment of an operating environment 400 for the system 100 is shown. Figure 4As shown, operating environment 400 includes an application 420 , such as an enterprise software application, for processing input 410 and generating output 430 .
[0091] Application 420 includes one or more components 422-a, where a represents any integer. In one embodiment, application 420 may include an interface component 422-1, a cluster component 422-2, a transformation mechanism library 422-3, and an identification component 422-4. Interface component 422-1 may generally be configured to manage the user interface of application 420, for example, by generating graphical data for representation as a graphical user interface (GUI). Interface component 422-1 may generate a GUI to describe various elements, such as dialog boxes, HTML forms with rich text, and the like.
[0092] Cluster component 422-2 may generally be configured to organize images into image groups or clusters. Some embodiments of cluster component 422-2 perform Figure 2A Cluster process 200A and / or Figure 2B The scheme 200B performs one or more color space conversion operations and generates Figure 3 In various embodiments, cluster component 422-2 identifies, for each image group, a particular color space transform that has a higher probability of successful edge detection for that group than the current color space transform, as described herein or in another suitable manner. In various embodiments, cluster component 422-2 can perform the above clustering process for various edge detection techniques, thereby generating a set of image groups, where each set of image groups corresponds to a particular technique. Edge detection techniques differ in how they identify boundaries in an image; some techniques detect color differences, while other techniques measure another attribute. Some techniques even differ in how they measure color differences. A technique may vary certain steps and create multiple techniques.
[0093] The color space transformation library 422-3 includes multiple color space transformation mechanisms and can generally be configured to provide a color space transformation mechanism to be applied to an image, transforming the image into a transformed image according to a color space model that is different from the original color space model of the image. As described herein, a color space model refers to a technique for modeling the color data of an image (e.g., in RGB or in LAB, or RGB to XYZ, or RGB to XYZ to another XYZ). Generally speaking, as outlined in one or more embodiments herein, the color space transformation mechanism performs mathematical operations to map data points within the original / current color space model of the image to corresponding data points according to different color space models. This may involve converting one or more values of the data point (which are in a domain) to corresponding one or more values of the corresponding data point. As an example, the color space transformation can convert an RGB pixel having an RGB value tuple into a LAB pixel having a LAB value tuple, convert an RGB pixel having an RGB value tuple into an XYZ pixel having an XYZ value tuple, and / or convert an RGB pixel having an RGB value tuple into an XYZ pixel having an XYZ value tuple, and then convert it again into another XYZ pixel having another XYZ value tuple. The pixels associated with the final transformation may define a color distribution of a scannable image, such as a matrix or matrix barcode for scanning associated with an entity, object, or environment.
[0094] The recognition component 422-4, such as a suitable scanner, printer and / or camera or an application thereof, may typically be configured to perform edge detection techniques on the transformed image as part of the recognition operation. An example of a well-known recognition operation is optical character recognition (OCR). The application 420 calls the recognition component 422-4 to perform various tasks, including scanning a matrix (e.g., a matrix barcode or a fiducial marker) to verify the authenticity of an item and / or obtain encoded information associated with the barcode. The recognition component 422-4 may be configured to include a key, such as a mathematical equation or an equation with specified inputs defining a color space transformation, such that it scans the relevant colors reflected by the barcode, wherein the colors are based on one or more color space transformation techniques as described herein, wherein the key defines a final transformation that defines color channels and a color space associated with the colors of the scannable image, and wherein the color channels defined by the key each represent at least one bit of encoded data.
[0095] In various embodiments, the recognition component 422-4 can print or provide a scheme for printing an image (e.g., a barcode and / or a fiducial marker) that includes one or more non-black and non-white colors and one or both of an ultraviolet layer and an infrared layer. The color channels associated with each non-black and non-white color can each constitute at least one bit of data, and each of the infrared layer and the ultraviolet layer can each constitute one bit of data. In various embodiments, each of the non-black and non-white colors is generated using a color space transformation mechanism or technique and can be scanned using a key associated with the transformation mechanism. In various embodiments, the number of color channels can be adjusted to be greater than or equal to four color channels, as the recognition component 422-4 can be adjusted to scan any number of colors, including colors that are not perceptible to the human eye.
[0096] In various embodiments, non-black and non-white color channels can be used in conjunction with one or both of an infrared layer or an ultraviolet layer on a scannable image (e.g., a matrix, a matrix barcode, and / or a fiducial mark), wherein each of the color channel, the one or more ultraviolet layers, and / or the one or more infrared layers represents a bit of data and a different way of encoding the data into the image, such that six or more bits of data can be encoded into the image. In various embodiments, the ultraviolet layer can be printed or displayed first with respect to the infrared layer and the various layers associated with the non-black and non-white color channels to take advantage of the properties of the ultraviolet layer.
[0097] In various embodiments, an image containing all or one of the layers associated with the non-black and non-white color channel layers, the ultraviolet layer, and the infrared layer can be scanned by the identification component 422-4 for verification of the component, wherein the identification component 422-4 can contain or receive a key based on an equation associated with a color space conversion (e.g., Equation 1), wherein the color space conversion reveals associated color channels having associated colors containing information, in addition to one or more verification bits indicating whether the presence or absence of the ultraviolet layer and / or the infrared layer indicates encoded information. Thus, the key and / or verification bits provide a means of decoding the information.
[0098] In various embodiments, application 420 is configured to include a key and / or verification bits and provide output 430 after locally verifying the scan of an image (e.g., a barcode). In various embodiments, identification component 422-4 may require an additional verification step by contacting a host system containing one or more functions of system 100 to confirm, for example, through one or more comparison steps, that the key and / or verification bits used by identification component 422-4 are accurate. If the key is accurate and the scan is verified by identification component 422-4, output 430 of application 420 is one or more accesses, transfers, or receipts of information (including monetary, personal, and / or financial information) from another entity.
[0099] In various embodiments, an image (e.g., a matrix, a matrix barcode, and / or a fiducial marker) can be scanned to protect a user from financial misappropriation. In some embodiments, the recognition component 422-4 can perform a text or image recognition operation to determine whether the image (e.g., a barcode) is valid and associate the validity of the scan with authentication or access to information, including any sensitive information (e.g., a password or a social security number (SSN)). The application 420 can call the recognition component 422-4 to scan the image (e.g., a barcode) before posting social network content, such that the image may not be properly scanned, for example, the component scanning the image does not properly decode the image based on a key associated with color space information and / or bits indicating that the ultraviolet layer and / or infrared layer contain information, and the identification of sensitive information in the content prevents the posting. In various other embodiments, the scanning of the image (e.g., a barcode) can provide for the initiation of a financial transaction, such as the transfer of any suitable electronic funds.
[0100] This document includes a set of flow charts that represent exemplary methods for performing novel aspects of the disclosed architecture. Although one or more methods shown herein (e.g., in the form of flow charts) are shown and described as a series of actions for simplicity of explanation, it should be understood that these methods are not limited by the order of the actions, as some actions may occur in a different order and / or concurrently with other actions shown and described herein according to these methods. For example, one skilled in the art will appreciate that a method may alternatively be represented as a series of interrelated states or events, such as in a state diagram. In addition, not all actions described in a method may be required for a new implementation.
[0101] Figure 5A One embodiment of a logic flow 500A is shown. Logic flow 500A may be representative of some or all of the operations performed by one or more embodiments described herein.
[0102] exist Figure 5A In the illustrated embodiment shown, logic flow 500A receives a representative dataset of a target (e.g., an entity, an object, or an environment) (502). For example, logic flow 500 may receive a representative dataset containing at least one of i) one or more images of the target and ii) one or more videos of the target, the target including at least one of i) an environment, ii) an active entity, and iii) an object using any suitable camera or scanning device, wherein the representative dataset is contained in image set model data 350 or is directly obtained by scanning the target using any suitable device (e.g., camera or video device 195 and / or scanning device 197). In various embodiments, the target may be an environment containing a scannable image.
[0103] Logic flow 500A may process the representative data set into an appropriate representation of the color scheme, such as a histogram (504). For example, logic flow 500 may examine image set model data 350 containing captured data of a scanned environment. Once logic flow 500 identifies the scanned data of the environment, the logic flow may process the data into a histogram of a particular color space (e.g., an RGB color space).
[0104] Logic flow 500A can identify the most prevalent colors of the environment using the histogram 506. In various embodiments, the logic flow identifies the most prevalent colors so as to apply a color space transformation mechanism to substantially maximize edge detection of a scannable image (e.g., a matrix, a matrix barcode, a fiducial marker, etc.).
[0105] Logic flow 500A may determine a plurality of colors that are related based on a histogram (508), e.g., the histogram is used to map to a first color space, wherein the least popular colors and / or missing colors are determined relative to the most popular colors of the target, and the least popular colors and / or missing colors form a basis for one or more color channels in a second color space.
[0106] In various embodiments, the related multiple colors may represent a range of colors between the most popular color and the least popular color and / or missing colors (including unique colors that do not exist relative to the target and / or the least popular colors associated with the target) of the target. In various embodiments, to determine the related multiple colors based on the, the logic flow may select a color space transformation mechanism and apply it to the image data associated with the histogram. As described herein, the image data includes color data configured according to a color space model, for example, a histogram may be used to create a color space representation of the target data. In some embodiments, the logic flow 500 applies a color space transformation mechanism by converting the image data into transformed image data including color data according to another color space model that is different from the color space associated with the histogram. Figure 1 The color space conversion mechanism 180 is configured to convert the image data associated with the target into a color space. For example, the logic flow may create a histogram of the image data associated with the target and then use the histogram to create a first color space representation of the target, such as an RGB color space representation. Thereafter, as described below, the logic flow may perform one or more additional color space conversion techniques to other color spaces, such as an XYZ color space or any other suitable color space utilizing a tristimulus system.
[0107] In various embodiments, logic flow 500A can perform a color space transformation that operates on the color data of the original image data to achieve efficient edge detection on the transformed image data. As described below, logic flow 500A can modify the color space model to quickly identify boundaries, such as when two colors are close together. Logic flow 500A examines each data point in the image and, for each location, identifies the color. In various embodiments, the color space transformation can be based on at least one set of color coordinates for each of the most prevalent colors according to another (or second) color space, and determining at least one set of color coordinates corresponding to a plurality of related colors in the (second) other color space, wherein the at least one set of coordinates for the most prevalent colors is one or both of perpendicular / orthogonal and a maximum distance to the at least one set of coordinates for the related colors relative to the other color space. In various embodiments, the second color space can be considered a derivative color space of the first color space.
[0108] In various embodiments, this ensures that the colors used for the scannable image can maximize edge detection because the maximum distance between the prevalent color channels and colors of the target in the environment and the other color channels and colors (the relevant color channels and colors) ensures that the relevant color channels and colors are not present in the target and / or are the least prevalent in the target. In addition, if the relevant colors and color channels are selected to be perpendicular or orthogonal relative to the target color channels and colors (and relative to each other), this can further enhance edge detection.
[0109] In one example utilizing one or more of the techniques described above, the logic flow 500A continues by identifying two or more colors by popularity in the target and assigning them to a channel. For example, a first color and a second color of the first and second highest popularity are taken, respectively, where the first color becomes minimum in the color channel and the second color becomes maximum, such that a boundary can be a transition between these colors. The boundary can be at least one pixel where the color changes from the first color to the second color or vice versa. If the first color is set to zero (0) and the second color is set to two hundred and fifty-five (255), then mathematically, the boundary can be located at one or more pixels that jump between the minimum and maximum values; for example, there can be a sharp split (i.e., a thin boundary) where at least two adjacent pixels immediately transition between 0 and 255.
[0110] As described above, the color channels can correspond to a first color space, such as RGB, wherein the first color space can be based on a first set of tristimulus values, and wherein the first color space can have color coordinates for representing a target color (e.g., the most popular color of the target). Logic flow 500A can then identify one or more colors that are unused or nearly unused (i.e., least popular or missing) and establish those colors opposite the popular colors identified above in another channel, wherein the new color channel (or multiple color channels) form the basis of a new color space, such as a new set of tristimulus values for an XYZ color space, and wherein the first color space is converted to a second color space.
[0111] Logic flow 500A may then perform one or more additional operations (e.g., configuring each color channel of the new color space to be perpendicular or orthogonal to one another in the new color space model), perform additional conversions to a third color space (which include intermediate operations to filter out non-chroma-related features (e.g., luminance or luma channels)), and / or perform orientation operations in the second (or third) color space before making the color channels perpendicular or orthogonal to one another (to maximize the distance between color channels, thereby enhancing edge detection).
[0112] Logic flow 500A can create one or more scannable images, such as a matrix, a matrix barcode, a fiducial marker, or any other image suitable for scanning, using the correlated colors of block 508 (510). In various embodiments, the correlated colors can be the colors of each color channel associated with the final color space conversion as described above, for example, multiple color channels and correlated colors that are not prevalent in the target and / or completely absent in the target, which, in various embodiments, can be arranged orthogonally to each other to further enhance edge detection. In other embodiments, the scannable image can be a matrix barcode formed to reflect the colors of each of the least prevalent and / or absent and / or orthogonal color channels relative to the target (e.g., the environment containing the matrix barcode).
[0113] In various embodiments, the matrix barcode is embedded with information based on a color space conversion, for example, each pixel or multiple pixels associated with the matrix barcode is associated with a color channel of a final color space, such as an XYZ color space with a color channel representing the least popular or missing color of the environment, where each color channel represents one bit of data, and where the number of color channels can be three or more, four or more, etc. (because there is no limit to human perception capabilities), and thus, the number of encoded bits can be three or more, four or more, etc.
[0114] In various embodiments, where four or more colors are used, each of the four or more colors is a different color related to one another, and based on the color space techniques discussed herein and above, the four or more colors are derived from a plurality of coordinates corresponding to each of the at least four different colors along a conversion to a (derived) color space, wherein the conversion to the (derived) color space contains a plurality of coordinate sets representing at least four popular colors of a target (e.g., an environment), and each of the four or more colors corresponds to a different set of coordinates converted to the (derived) color space.
[0115] In various embodiments, each of the four or more different colors is selected based on having a maximally opposite coordinate relationship with respect to at least one of a plurality of coordinate sets representing at least four prevalent colors in the target (eg, environment).
[0116] There are many applicable edge detection techniques, and edge detection technique 190 may be applicable to one color space model of the transformed image data, while another edge detection technique may be applicable to the original color space model.The embodiments are not limited to this example.
[0117] Figure 5B One embodiment of a logic flow 500B is shown. Logic flow 500B may be representative of some or all of the operations performed by one or more embodiments described herein.
[0118] exist Figure 5B In the illustrated embodiment shown, the logic flow can detect a matrix comprising one or more non-black and non-white colors, wherein each of the non-black and non-white colors is i) at least one of the missing colors associated with the environment and / or ii) at least one of the least popular colors associated with the environment (515). In various embodiments, the matrix is a barcode constructed using one or more color space conversion techniques outlined herein, for example, the matrix barcode is derived from an RGB color space and a derivative color space of the RGB color space (converted from the RGB color space to a (derived) color space, such as an XYZ color space). In various embodiments, the derived color space is an XYZ color space with a luminance channel filtered out.
[0119] In various embodiments, the barcode can be scanned using any suitable component (e.g., scanning device 197) having a suitable key (e.g., a tristimulus equation associated with a conversion to an XYZ color space) that reveals a color channel having an associated color associated with the scannable portion of the matrix barcode (which, in various embodiments, includes information encoded in the matrix barcode). In various embodiments, the barcode can include four or more different colors, each color associated with at least four different color channels, wherein each color is different from each other and from the most prevalent color of the environment. In various embodiments, the colors and color channels of the barcode can be calculated based on the coordinate relationship between the most prevalent color and the least prevalent color and / or missing color in the derived color space (including the maximum distance between the most prevalent color and the least prevalent color and / or missing color). As discussed herein, additional or different color space conversion techniques can be used, and this is merely one example consistent with the present disclosure.
[0120] In various embodiments, the barcode can be printed and / or embedded on a physical medium (e.g., a physical surface or material) using any suitable component (e.g., a printing device 199) that has the least popular color and / or missing color, and the barcode can be scanned along the surface of the physical surface. In other embodiments, a computer, laptop, or tablet (such as provided below) can be included. Figure 7 Any suitable computer device (as shown) can be configured to generate a scannable bar code reflecting the least popular color or missing color, where the bar code can be scanned along the surface of the computer display.
[0121] As described herein, logic flow 500B may transmit the scan results (including an indication as to whether the scan of the barcode was successful) to any suitable computer device (520), as well as obtain any encoded information associated therewith.
[0122] Figure 5C One embodiment of a logic flow 500C is shown. The logic flow may be representative of some or all of the operations performed by one or more embodiments described herein.
[0123] exist Figure 5C In the illustrated embodiment shown, logic flow 500C performs one or more operations of flow 500C, where one embodiment performs operations 502 , 504 , 506 , and 508 .
[0124] Logic flow 500C can utilize the associated colors to generate a scannable image, such as a matrix, a matrix barcode, a fiducial marker, or any other image suitable for scanning (530), wherein the scannable image can include one or both of an ultraviolet layer and an infrared layer in addition to non-black and non-white colors (e.g., the least prevalent colors and / or missing colors associated with a target (e.g., an environment). In various embodiments, the matrix, matrix barcode, fiducial marker, or any other suitable image can be printed and / or embedded on a physical surface using any suitable component (e.g., a printing device 199) that has the least prevalent colors and / or missing colors and the infrared layer and / or ultraviolet layer, and the barcode can be scanned along the surface of the physical surface. In other embodiments, a computer, laptop, or tablet (such as provided below) can be included. Figure 7 Any suitable computer device (as shown) may be configured to generate a scannable bar code reflecting the least popular color or missing color, ultraviolet layer and / or infrared layer, where the matrix, matrix bar code, fiducial marker or any other suitable image can be scanned along the surface of the computer display.
[0125] In various embodiments, the UV layer may be printed first along the physical surface and / or may form a top layer generated on a computer screen to maximize the benefits associated with the UV light. In various embodiments, the color of the scannable image need not be a color relevant to the environment and / or not be based on color space conversion techniques, and may be any color (including standard black and white), wherein the scannable image includes both the infrared layer and the UV layer for detection.
[0126] Figure 5D One embodiment of a logic flow 500D is shown. Logic flow 500D may be representative of some or all of the operations performed by one or more embodiments described herein.
[0127] exist Figure 5D In the illustrated embodiment shown, the logic flow can detect a scannable image comprising one or more non-black and non-white colors, e.g., a matrix, wherein each of the non-black and non-white colors, except for one or both of the ultraviolet layer and / or the infrared layer, is at least one of i) a missing color associated with the environment and / or ii) a least popular color associated with the environment (540). In various embodiments, the matrix is a barcode constructed using one or more color space conversion techniques outlined herein, e.g., as described with respect to Figure 5B As discussed, an ultraviolet layer and / or an infrared layer is added.
[0128] In various embodiments, a scannable image (e.g., a barcode) can be scanned using any suitable component (e.g., scanning device 197) having a suitable key (e.g., a tristimulus equation associated with a conversion to an XYZ color space) that reveals the color channels having associated colors associated with the scannable portion of the matrix barcode (which, in various embodiments, includes information encoded in the matrix barcode). In addition to the key, any suitable component (e.g., scanning device 197) can also have a verification bit that indicates whether the ultraviolet layer and / or the infrared layer are associated with information, and if so, scan and / or decode the information based on the verification bit. In various embodiments, in addition to having one or both of the ultraviolet layer and / or the infrared layer, the barcode can include four or more different colors, each color associated with at least four different color channels, wherein each color is different from each other and from the most prevalent colors of the environment, so that the scan can be a scan of six or more bits of information.
[0129] In various embodiments, the barcode can be printed and / or embedded on a physical surface using any suitable component (e.g., a printing device 199) having the least popular color and / or missing color, and the barcode can be scanned along the surface of the physical surface. In other embodiments, a computer, laptop, or tablet (such as provided below) can be used. Figure 7 Any suitable computing device (e.g., a computer display) may be configured to generate a scannable barcode reflecting the least popular or missing color, where the barcode is scannable along the surface of a computer display. In various embodiments, the scannable image (e.g., a barcode) may be printed such that the topmost layer may be the UV layer, and any associated scans may first consider the UV layer. Similarly, in various embodiments, if the scannable image is generated by a computing device and displayed by a computer display, the first layer displayed by the computing device may be the UV layer.
[0130] Logic flow 500D may transmit the scan results, including an indication as to whether the scan of the barcode was successful, to any suitable computer device (550) discussed herein, and, in addition, obtain any associated encoding information.
[0131] Figure 6AA technique 600A for forming a scannable image according to at least one embodiment of the present disclosure is shown. Scannable image layers 605a, 610a, and 615a each represent a layer of a scannable image (e.g., a barcode) associated with one or more colors. Any suitable component disclosed herein can perform one or more color space transformation techniques on each scannable image layer 605a, 610a, and 615a to produce layers 620a, 625a, and 630a, and layers 620a, 625a, and 630a can be combined into a single scannable image, such as a barcode 635a. In various embodiments, each of the scannable layers 620a, 625a, and 630a can be associated with a color channel representing one or more nonexistent and / or unpopular colors that may be associated with an object associated with the scannable image 635a. In various embodiments, the one or more color channels associated with the colors of 620a, 625a, and 630a can be orthogonal or perpendicular to each other and to the color space representing the colors. Scannable image 635a may be printed on a physical surface of a target using any suitable device and / or generated by any suitable computing device for display on a computer display.
[0132] although Figure 6A The embodiments illustrate performing transformation techniques on color schemes associated with existing scannable image layers 605a, 610a, and / or 615a, but the scannable image 635a can be generated from scratch without converting from an existing image, e.g., the target can be scanned to determine the color space associated therewith, and the final scannable image 635a can be produced by performing one or more color space transformations on the color space, as disclosed herein or in other suitable manners.
[0133] Figure 6BA technique 600B for forming a scannable image according to at least one embodiment of the present disclosure is shown. Scannable image layers 605b, 610b, and 615b each represent a layer of a scannable image (e.g., a barcode) associated with one or more colors. Any suitable component disclosed herein can perform one or more color space transformation techniques on each scannable image layer 605b, 610b, and 615b to generate layers 620b, 625b, and 630b, and layers 620b, 625b, and 630b can be combined into a single scannable image 635b, such as a barcode 635b. In various embodiments, each of scannable layers 620b, 625b, and 630b can be associated with a color channel representing one or more nonexistent and / or unpopular colors that may be associated with an object associated with scannable image 635b. In various embodiments, the one or more color channels associated with the colors of 620b, 625b, and 630b can be orthogonal or perpendicular to each other and to the color space representing those colors. In various embodiments, at least one layer (e.g., 630b) can be made using ultraviolet or infrared ink, or generated using ultraviolet or infrared light, so that it contains additional channels of information, such as an ultraviolet layer or infrared layer of information that can absorb, reflect, project, and / or illuminate ultraviolet or infrared light, wherein, in various embodiments, ultraviolet layer or infrared layer 630b can be the first layer of image 635b. In various embodiments, ultraviolet layer or infrared layer 630b can include color channel layers representing various colors (including colors that are unpopular and / or not present in the target associated with scannable image 635b), and in various embodiments, only the ultraviolet channel can be associated with ultraviolet layer 630b.
[0134] In various embodiments, the scannable image 635b may be printed on a physical surface of a target using any suitable device, and / or generated by any suitable computer device for display on a computer display.
[0135] In various embodiments, scannable image 635b is a fiducial marker that, when scanned by a suitable device capable of detecting either or both ultraviolet and / or infrared light, takes advantage of inherent directional characteristics of ultraviolet and / or infrared light. In various embodiments, when a suitable device (e.g., scanning device 197) scans ultraviolet and / or infrared reflective fiducial marker 635b, the spatial relationship of an object associated with fiducial marker 635b (e.g., an object having the fiducial marker marked thereon and / or a computer display generating the fiducial marker 635b) relative to scanning device 197 and other objects in an environment containing the device is more easily determined due to the inherent characteristics associated with the reflection and detection of ultraviolet and / or infrared light.
[0136] Figure 6CA technique 600C for forming a scannable image according to at least one embodiment of the present disclosure is shown. Scannable image layers 605c, 610c, 615c, and 620c each represent a layer of a scannable image (e.g., a barcode) associated with one or more colors. Any suitable component disclosed herein can perform one or more color space conversion techniques on each of the scannable image layers 605c, 610c, 615c, and 620c to produce layers 625c, 630c, 635c, and 640c, and the layers 625c, 630c, 635c, and 640c can be combined into a single scannable image, e.g., a barcode 645c. In various embodiments, scannable layers 625c, 630c, 635c, and 640c may each be associated with a color channel representing one or more non-existent and / or unpopular colors that may be associated with a target associated with scannable image 645c, wherein in various embodiments, the one or more color channels associated with the colors of 625c, 630c, 635c, and 640c may be orthogonal or perpendicular to each other and to a color space representing those colors.
[0137] In various embodiments, at least one layer (e.g., 635c) can be made of infrared ink or generated using infrared light to include additional channels of information, such as an ultraviolet layer of information that absorbs, reflects, projects, and / or illuminates infrared light, wherein in various embodiments, infrared layer 630c can be the first layer of image 635c. In various embodiments, infrared layer 630c can include color channel layers representing various colors (including colors that are unpopular and / or not present in the target associated with scannable image 645c), and in various embodiments, only the infrared channel can be associated with infrared layer 630d. In various embodiments, at least one layer (e.g., 640c) can be made of ultraviolet ink or generated using ultraviolet light to include additional channels of information, such as an ultraviolet layer of information that absorbs, reflects, projects, and / or illuminates ultraviolet light, wherein in various embodiments, ultraviolet layer 640c can be the first layer of image 645c. In various embodiments, ultraviolet layer 640c may include a layer of color channels representing various colors (including colors that are unpopular and / or not present in the target associated with scannable image 645c), and in various embodiments, only the ultraviolet channel may be associated with ultraviolet layer 640c.
[0138] In various embodiments, scannable image 645c is a fiducial marker that, when scanned by a suitable device capable of detecting either or both ultraviolet and / or infrared light, utilizes inherent directional characteristics of ultraviolet and / or infrared light. In various embodiments, when a suitable device (e.g., scanning device 197) scans ultraviolet and infrared-reflective fiducial marker 645c, the inherent characteristics associated with the reflection and detection of ultraviolet and / or infrared light make it easier to determine or detect the spatial relationship of an object associated with fiducial marker 645c (e.g., an object marked with the fiducial marker and / or a computer display generating the fiducial marker 645c) relative to scanning device 197 and other objects in the environment containing the device. In various embodiments, where fiducial marker 645c utilizes both ultraviolet and infrared light, the presence of both serves as a failsafe if the functionality of scanning device 197 is impaired and / or if an initial scan fails to detect either of the two.
[0139] In various embodiments, scannable image 645c can include an infrared layer 635c and an ultraviolet layer 640c, wherein layer 645c can be printed or generated such that ultraviolet layer 640c can be the first layer to utilize properties associated with ultraviolet light. Although at least one embodiment provided above indicates that one or both of layers 635c and 640c can include color channel information, such as target-related scannable colors, in various embodiments, layers 635c and 640c can be strictly associated with infrared and / or ultraviolet information, respectively. Furthermore, in various embodiments, the colors of layers 620c, 625c, and 630c need not be target-related layers, and in various embodiments, the layers can be composed of black and white colors and / or other colors that are not target-related and / or not based on color space conversion techniques.
[0140] Figure 7 A computer or tablet computer system 700 is shown for generating and scanning a scannable image 740. The tablet computer system includes a tablet computer 702 for generating a scannable image 740 (e.g., a barcode), wherein the tablet computer 702 includes applications 705A-E, application N, and application 420, wherein an embodiment of application 420 is described above with reference to Figure 4Described in more detail. Tablet computer 702 may include one or more user interface devices 720 that a user may use to interface with tablet computer 702. Tablet computer 702 may generate a scannable image 740 that includes one or both of an ultraviolet layer and an infrared layer. Tablet computer 702 may be configured to ensure that the top layer is an ultraviolet layer to utilize the inherent properties of ultraviolet light. The image may also include one or more color layers, including white and black layers. The image may also include one or more non-black and non-white color layers that are related to colors associated with the environment in which the tablet computer is located. For example, the tablet computer may be configured to have a camera with an application (e.g., 420) that can scan the environment and generate a scannable image 740 having colors associated with the environment. In various embodiments, the colors associated with the environment may be colors based on one or more color space conversion techniques discussed herein that include colors that are least prevalent and / or do not exist in the environment containing tablet computer 702 and are determined by one or more color space conversions.
[0141] The system 700 may also include a camera or scanning device c750 that can scan the scannable image 740, wherein, in various embodiments, the camera or scanning device c750 may include the application 420 (described above) and / or the color space key and / or infrared verification bits and / or ultraviolet verification bits disclosed herein, as well as for performing a valid scan of the scannable image 740 and / or obtaining any encoded information associated therewith.
[0142] Figure 8 An embodiment of a graphical user interface (GUI) 800 for an application of the system 100 is shown. In some embodiments, Figure 4 The application 420 configures the user interface 800 .
[0143] like Figure 8 As shown, the GUI 800 includes several components, such as a toolbar 802 and GUI elements. As an example tool, the toolbar 802 includes a recognize text tool 804, which, when invoked, scans an image 806, such as a barcode generated from one or more color space technologies and / or including one or both of the ultraviolet layer and / or infrared layer as outlined herein. The scan can use a key and / or verification bits for valid scanning, wherein the appropriate scan can operate as a security measure for accessing and / or identifying sensitive information 808. As described herein, the appropriate color space transformation mechanism provides the most accurate edge detection results because the underlying color space model has a higher probability of edge detection than any other applicable color space model, and the barcode can be generated with this in mind.
[0144] Figure 9An embodiment of an exemplary computing architecture 900 suitable for implementing various embodiments as previously described is shown. In one embodiment, the computing architecture 900 may include or be implemented as part of an electronic device. Examples of electronic devices may include, among others, reference Figure 3 In this context, the embodiments are not limited thereto.
[0145] As used herein, the terms "system" and "component" are intended to refer to computer-related entities, including hardware, a combination of hardware and software, software, or executing software. Exemplary computing architecture 900 provides examples of these entities. For example, a component can be, but is not limited to, a processor, a hard drive, multiple storage drives (optical and / or magnetic storage media), an object, an executable file, a thread of execution, a program, and / or a process running on a computer. For example, both an application running on a server and the server can be components. One or more components can reside within a process and / or thread of execution, and components can be localized on a single computer and / or distributed across two or more computers. Furthermore, components can be communicatively coupled to each other via various types of communication media to coordinate operations. Coordination can involve unidirectional or bidirectional information exchange. For example, components can communicate information in the form of signals transmitted via a communication medium. This information can be implemented as signals assigned to various signal lines. In this assignment, each message is a signal. However, other embodiments may alternatively employ data messages. Such data messages can be sent via various connections. Exemplary connections include parallel interfaces, serial interfaces, and bus interfaces.
[0146] The computing architecture 900 includes various general computing elements, such as one or more processors, multi-core processors, coprocessors, memory units, chipsets, controllers, peripheral devices, interfaces, oscillators, timing devices, video cards, sound cards, multimedia input / output (I / O) components, power supplies, etc. However, embodiments are not limited to implementation by the computing architecture 900.
[0147] like Figure 9 As shown, computing architecture 900 includes a processing unit 904, a system memory 906, and a system bus 908. Processing unit 904 can be any of a variety of commercially available processors, including but not limited to and processor; application, embedded, and security processors; and and Processor; IBM and processor; Core(2) and Dual microprocessors, multi-core processors, and other multi-processor architectures can also be used as the processing unit 904.
[0148] The system bus 908 provides an interface to the processing unit 904 for system components, including but not limited to the system memory 906. The system bus 908 can be any of several types of bus structures, which can be further interconnected to a memory bus (with or without a memory controller), a peripheral bus, and a local bus using any of a variety of commercially available bus architectures. Interface adapters can be connected to the system bus 908 via a slot architecture. Example slot architectures can include but are not limited to Accelerated Graphics Port (AGP), card bus, (Extended) Industry Standard Architecture ((E)ISA), Micro Channel Architecture (MCA), Network User Bus, Peripheral Component Interconnect (Extended) (PCI(X)), PCI Express, Personal Computer Memory Card International Association (PCMCIA), and the like.
[0149] The computing architecture 900 may include or implement various articles of manufacture. Articles of manufacture may include computer-readable storage media for storing logic. Examples of computer-readable storage media may include any tangible media capable of storing electronic data, including volatile or non-volatile memory, removable or non-removable memory, erasable or non-erasable memory, writable or rewritable memory, etc. Examples of logic may include executable computer program instructions implemented using any suitable type of code (e.g., source code, compiled code, interpreted code, executable code, static code, dynamic code, object-oriented code, visual code, etc.). Embodiments may also be implemented at least in part as instructions contained in or on a non-transitory computer-readable medium, which may be read and executed by one or more processors to implement the performance of the operations described herein.
[0150] The system memory 906 may include various types of computer-readable storage media in the form of one or more higher-speed memory units, such as read-only memory (ROM), random-access memory (RAM), dynamic RAM (DRAM), double-data-rate DRAM (DDRAM), synchronous DRAM (SDRAM), static RAM (SRAM), programmable ROM (PROM), erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), flash memory, polymer memory (e.g., ferroelectric polymer memory), austenitic memory, phase-change or ferroelectric memory, silicon-oxide-nitride-oxide-silicon (SONOS) memory, magnetic or optical cards, device arrays (e.g., redundant array of independent disks (RAID)) drives, solid-state memory devices (e.g., USB memory, solid-state drives (SSDs), and any other type of storage medium suitable for storing information). Figure 9In the illustrated embodiment shown, system memory 906 may include non-volatile memory 910 and / or volatile memory 912. A basic input / output system (BIOS) may be stored in non-volatile memory 910.
[0151] The computer 902 may include various types of computer-readable storage media in the form of one or more relatively low-speed memory units, including an internal (or external) hard disk drive (HDD) 914, a magnetic floppy disk drive (FDD) 916 for reading from or writing to a removable magnetic disk 918, and an optical drive 920 (e.g., a CD-ROM or DVD) for reading from or writing to a removable optical disk 922. The HDD 914, FDD 916, and optical drive 920 may be connected to the system bus 908 via an HDD interface 924, an FDD interface 926, and an optical drive interface 928, respectively. The HDD interface 924 for external drive implementations may include at least one or both of Universal Serial Bus (USB) and IEEE 1394 interface technologies.
[0152] The drives and associated computer-readable media provide volatile and / or nonvolatile storage of data, data structures, computer-executable instructions, etc. For example, a number of program modules may be stored in the drives and memory units 910, 912, including an operating system 930, one or more applications 932, other program modules 934, and program data 936. In one embodiment, the one or more applications 932, other program modules 934, and program data 936 may include, for example, various applications and / or components of the system 100.
[0153] A user may enter commands and information into the computer 902 through one or more wired / wireless input devices, such as a keyboard 938 and a pointing device such as a mouse 940. Other input devices may include a microphone, an infrared (IR) remote control, a radio frequency (RF) remote control, a game pad, a stylus, a card reader, a dongle, a fingerprint reader, a glove, a graphics tablet, a joystick, a keyboard, a retina reader, a touch screen (e.g., capacitive, resistive, etc.), a trackball, a trackpad, sensors, a stylus, and the like. These and other input devices are typically connected to the processing unit 904 through an input device interface 942 coupled to the system bus 908, but may be connected through other interfaces such as a parallel port, an IEEE 1394 serial port, a game port, a USB port, an IR port, and the like.
[0154] A monitor 944 or other type of display device is also connected to the system bus 908 via an interface, such as a video adapter 946. The monitor 944 may be internal or external to the computer 902. In addition to the monitor 944, computers typically include other peripheral output devices, such as speakers, printers, etc.
[0155] The computer 902 can operate in a network environment using logical connections to one or more remote computers (e.g., remote computer 948) via wired and / or wireless communications. The remote computer 948 can be a workstation, server computer, router, personal computer, portable computer, microprocessor-based entertainment device, peer device, or other public network node, and typically includes many or all of the elements described with respect to the computer 902, although only a memory / storage device 950 is shown for simplicity. The logical connections described include wired / wireless connections to a local area network (LAN) 952 and / or a larger network (e.g., a wide area network (WAN) 954). Such LAN and WAN networking environments are common in offices and companies and facilitate enterprise-wide computer networks, such as intranets, all of which can be connected to a global communication network, such as the Internet.
[0156] When used in a LAN networking environment, the computer 902 is connected to the LAN 952 through a wired and / or wireless communication network interface or adapter 956. The adapter 956 may facilitate wired and / or wireless communication to the LAN 952 and may also include a wireless access point disposed thereon for communicating with the wireless functionality of the adapter 956.
[0157] When used in a WAN networking environment, the computer 902 can include a modem 958, or be connected to a communications server on the WAN 954, or have other means for establishing communications over the WAN 954 (e.g., over the Internet). The modem 958, which can be internal or external and a wired and / or wireless device, is connected to the system bus 908 via the input device interface 942. In a networked environment, program modules depicted relative to the computer 902 or portions thereof can be stored in the remote memory / storage device 950. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.
[0158] The computer 902 is operable to communicate with wired and wireless devices or entities using the IEEE 802 family of standards, such as wireless devices operatively arranged in wireless communications (e.g., IEEE 802.11 over-the-air modulation techniques). This includes at least Wi-Fi (or Wireless Fidelity), WiMax, and Bluetooth. TMWireless technology, etc. Therefore, communication can be a predefined structure like traditional networks, or simply ad hoc communication between at least two devices. Wi-Fi networks use radio technologies known as IEEE 802.11x (a, b, g, n, etc.) to provide secure, reliable, and fast wireless connections. Wi-Fi networks can be used to connect computers to each other, to the Internet, and to wired networks (which use IEEE 802.3 related media and functions).
[0159] Figure 10 A block diagram of an exemplary communication architecture 1000 suitable for implementing various embodiments described above is shown. The communication architecture 1000 includes various common communication elements, such as transmitters, receivers, transceivers, radios, network interfaces, baseband processors, antennas, amplifiers, filters, power supplies, etc. However, the embodiments are not limited to implementation by the communication architecture 1000.
[0160] like Figure 10 As shown, the communication architecture 1000 includes one or more clients 1002 and servers 1004. The client 1002 may implement the client device 310. The server 1004 may implement the server device 950. The client 1002 and the server 1004 are operatively connected to one or more respective client data stores 1008 and server data stores 1010, which may be used to store local information of the respective client 1002 and server 1004, such as cached files and / or associated contextual information.
[0161] The client 1002 and the server 1004 can communicate information between each other using a communication framework 1006. The communication framework 1006 can implement any known communication technology and protocol. The communication framework 1006 can be implemented as a packet-switched network (e.g., a public network such as the Internet, a private network such as a corporate intranet, etc.), a circuit-switched network (e.g., a public switched telephone network), or a combination of packet-switched and circuit-switched networks (with appropriate gateways and translators).
[0162] The communication framework 1006 can implement various network interfaces that are arranged to receive, communicate, and connect to a communication network. A network interface can be considered a special form of an input / output interface. The network interface can use connection protocols including, but not limited to, direct connection, Ethernet (e.g., thick, thin, twisted pair 10 / 100 / 1000Base T, etc.), token ring, wireless network interface, cellular network interface, IEEE 802.11ax network interface, IEEE 802.16 network interface, IEEE 802.20 network interface, etc. In addition, multiple network interfaces can be used to connect to various communication network types. For example, multiple network interfaces can be used to allow communication over broadcast, multicast, and unicast networks. If processing requirements require greater speed and capacity, a distributed network controller architecture can be similarly used for pooling, load balancing, and otherwise increasing the communication bandwidth required by the client 1002 and server 1004. The communication network can be any one and combination of wired and / or wireless networks, including but not limited to direct interconnections, secure customized connections, private networks (e.g., corporate intranets), public networks (e.g., the Internet), personal area networks (PANs), local area networks (LANs), metropolitan area networks (MANs), operating missions as nodes in the Internet (OMNI), wide area networks (WANs), wireless networks, cellular networks, and other communication networks.
[0163] Some embodiments may be described using the expressions "one embodiment" or "an embodiment" and their derivatives. These terms mean that a particular feature, structure, or characteristic described in conjunction with the embodiment is included in at least one embodiment. The appearance of the phrase "in one embodiment" in various places in the specification does not necessarily refer to the same embodiment. In addition, some embodiments may be described using the expressions "coupled" and "connected" and their derivatives. These terms are not necessarily synonymous with each other. For example, some embodiments may be described using the terms "connected" and / or "coupled" to indicate that two or more elements are in direct physical or electrical contact with each other. However, the term "coupled" may also mean that two or more elements are not in direct contact with each other, but still cooperate or interact with each other.
[0164] It is emphasized that the Abstract of the present disclosure is provided to enable the reader to quickly ascertain the nature of the technical disclosure. It is submitted with the understanding that the Abstract of the present disclosure shall not be used to interpret or limit the scope or meaning of the claims. Furthermore, in the foregoing Detailed Description, it may be noted that various features are grouped together in a single embodiment for the purpose of streamlining the disclosure. This method of disclosure should not be interpreted as reflecting an intention that the claimed embodiments require more features than expressly recited in each claim. Rather, as reflected in the following claims, the inventive subject matter lies in less than all features of a single disclosed embodiment. Accordingly, the following claims are incorporated into the Detailed Description, with each claim standing on its own as a separate embodiment. In the appended claims, the terms "including" and "in which" are used as the plain-English equivalents of the respective terms "comprising" and "wherein," respectively. Furthermore, the terms "first," "second," "third," etc. are used merely as labels and are not intended to impose numerical requirements on their objects.
[0165] The above description includes examples of the disclosed architecture. It is, of course, not possible to describe every conceivable combination of components and / or methodologies, but one skilled in the art will recognize that many further combinations and permutations are possible. Accordingly, the novel architecture is intended to embrace all such alterations, modifications, and variations that fall within the spirit and scope of the appended claims.
Claims
1. A computer-implemented method comprising: accessing, by a processor, a histogram of the environment generated based on one or more images of the environment; determining, by the processor, a most prevalent plurality of colors associated with the environment based on the histogram by mapping the most prevalent plurality of colors according to a red-green-blue (RGB) color space, wherein the RGB color space is converted to another color space; determining, by the processor, the related plurality of colors based on the histogram by determining at least one set of color coordinates for each of the most popular plurality of colors according to the other color space and determining at least one set of color coordinates corresponding to the related plurality of colors according to the other color space; as well as A matrix barcode is generated by the processor using the correlated multiple colors and ultraviolet layers.
2. The computer-implemented method of claim 1 , wherein: The associated plurality of colors includes at least one of a non-existent color associated with the environment or a least popular color associated with the environment.
3. The computer-implemented method of claim 1 , further comprising: A histogram of the environment is generated based on the one or more images of the environment.
4. The computer-implemented method of claim 1 , wherein: The another color space including a luminance channel is generated based on a conversion of the RGB color space, and wherein the luminance channel is removed from the another color space.
5. The computer-implemented method of claim 4, wherein: Removal of the luma channel generates a set of color coordinates according to the other color space.
6. The computer-implemented method of claim 1 , wherein: The matrix barcode is embedded with computer data, wherein the computer data is represented by a plurality of pixels that are partially associated with each of the ultraviolet layer and the associated plurality of colors.
7. The computer-implemented method of claim 1 , wherein: The matrix barcode is a fiducial marker for conveying spatial information, wherein the conveyed spatial information originates at least in part from the ultraviolet layer.
8. A non-transitory computer-readable storage medium comprising instructions that, when executed by a processor, cause the processor to: accessing a histogram of the environment generated based on one or more images of the environment; determining, based on the histogram, most prevalent colors associated with the environment by mapping the most prevalent colors according to a red-green-blue (RGB) color space, wherein the RGB color space is converted to another color space; determining the related plurality of colors based on the histogram by determining at least one set of color coordinates for each of the most popular plurality of colors according to the another color space and determining at least one set of color coordinates corresponding to the related plurality of colors according to the another color space; and The associated multiple colors and UV layers are used to generate a matrix barcode.
9. The computer-readable storage medium according to claim 8, wherein: The associated plurality of colors includes at least one of a non-existent color associated with the environment or a least popular color associated with the environment.
10. The computer-readable storage medium according to claim 8, wherein: The instructions further configure the computer to: A histogram of the environment is generated based on the one or more images of the environment.
11. The computer-readable storage medium according to claim 8, wherein: The another color space including a luminance channel is generated based on a conversion of the RGB color space, and wherein the luminance channel is removed from the another color space.
12. The computer-readable storage medium of claim 11, wherein: Removal of the luma channel generates a set of color coordinates according to the other color space.
13. The computer-readable storage medium according to claim 8, wherein: The matrix barcode is embedded with computer data, wherein the computer data is represented by a plurality of pixels that are partially associated with each of the ultraviolet layer and the associated plurality of colors.
14. The computer-readable storage medium of claim 8, wherein: The matrix barcode is a fiducial marker for conveying spatial information, wherein the conveyed spatial information originates at least in part from the ultraviolet layer.
15. A computing device comprising: processor; and a memory storing instructions that, when executed by the processor, cause the processor to: accessing a histogram of the environment generated based on one or more images of the environment; determining, based on the histogram, most prevalent colors associated with the environment by mapping the most prevalent colors according to a red-green-blue (RGB) color space, wherein the RGB color space is converted to another color space; determining the related plurality of colors based on the histogram by determining at least one set of color coordinates for each of the most popular plurality of colors according to the another color space and determining at least one set of color coordinates corresponding to the related plurality of colors according to the another color space; and The associated multiple colors and UV layers are used to generate a matrix barcode.
16. The computing device of claim 15, wherein: The associated plurality of colors includes at least one of a non-existent color associated with the environment or a least popular color associated with the environment.
17. The computing device of claim 15, wherein: The instructions further configure the apparatus to: A histogram of the environment is generated based on the one or more images of the environment.
18. The computing device of claim 15, wherein: The another color space including a luminance channel is generated based on a conversion of the RGB color space, and wherein the luminance channel is removed from the another color space.
19. The computing device of claim 18, wherein: Removal of the luma channel generates a set of color coordinates according to the other color space.
20. The computing device of claim 15, wherein: The matrix barcode is a fiducial marker for conveying spatial information, wherein the conveyed spatial information originates at least in part from the ultraviolet layer.
Citation Information
Patent Citations
Color optimization method, terminal and computer readable storage medium
CN108053453A
Information card with multiple storage media and a device and method for reading and writing information in said card
US20050092844A1