Disclosure of Invention
The application provides a certificate image copying and identifying method and device, electronic equipment and a storage medium, and aims to solve the problems that in the prior art, when certificate image identification is carried out, the shooting process and shooting equipment are limited, the calculation process is complex, and time and space resources are consumed.
In a first aspect, an embodiment of the present application provides a method for recognizing a document image reproduction, including:
acquiring a certificate image to be identified;
transforming the certificate image to be identified to obtain a frequency spectrum image of the certificate image to be identified;
extracting the space domain characteristics of the certificate image to be identified and the frequency domain characteristics of the frequency spectrum image, judging whether the certificate image to be identified is a copied image or not according to the extracted space domain characteristics and the extracted frequency domain characteristics, obtaining a judgment result, and taking the judgment result as a certificate image copying and identifying result.
Optionally, the acquiring the certificate image to be recognized includes:
acquiring an original certificate image obtained by shooting a certificate, wherein the original certificate image comprises a background part and a certificate part to be identified;
and positioning and cutting the original certificate image to remove the background part in the original certificate image to obtain the certificate image to be identified.
Optionally, the positioning and cutting the original document image to remove the background portion in the original document image, so as to obtain the document image to be recognized, includes:
positioning the original certificate image to obtain the central point and the size of the certificate part to be identified in the original certificate image;
and cutting the original certificate image according to the central point and the size of the certificate part to be identified so as to remove the background part in the original certificate image and obtain the certificate image to be identified.
Optionally, the positioning the original document image to obtain a central point and a size of a document part to be identified in the original document image includes:
and predicting the central point and the size of the part of the certificate to be identified in the original certificate image based on a target detection network, wherein the size is obtained by the target detection network in a regression mode after the central point is obtained.
Optionally, the extracting the space domain feature of the certificate image to be recognized and the frequency domain feature of the frequency spectrum image, and determining whether the certificate image to be recognized is a copied image according to the extracted space domain feature and the extracted frequency domain feature to obtain a determination result, including:
inputting the certificate image to be identified and the frequency spectrum image into a convolutional neural network model;
through N network levels in the convolutional neural network model, extracting the spatial domain characteristics of the N network levels of the certificate image to be recognized and the frequency domain characteristics of the N network levels of the frequency spectrum image, fusing the spatial domain characteristics of the N network levels and the frequency domain characteristics of the N network levels to obtain a characteristic diagram of the certificate image to be recognized, judging whether the certificate image to be recognized is a reprinted image according to the characteristic diagram, and outputting a judgment result.
Optionally, the extracting, through N network levels in the convolutional neural network model, spatial domain features of the N network levels of the certificate image to be recognized and frequency domain features of the N network levels of the spectrum image, and fusing the spatial domain features of the N network levels and the frequency domain features of the N network levels to obtain a feature map of the certificate image to be recognized, and after determining whether the certificate image to be recognized is a copied image according to the feature map, outputting a determination result, including:
performing grouping convolution on the certificate image to be identified and the frequency spectrum image by adopting a 1 st network level to obtain a space domain characteristic of the 1 st network level of the certificate image to be identified and a frequency domain characteristic of the 1 st network level of the frequency spectrum image;
performing grouping convolution on the feature map of the (i-1) th network level by adopting the ith network level to obtain the spatial domain feature of the ith network level of the certificate image to be identified and the frequency domain feature of the ith network level of the frequency spectrum image, wherein the value of i is more than 1 and less than or equal to N;
after the spatial domain characteristic and the frequency domain characteristic of the Nth network level are obtained, the spatial domain characteristic and the frequency domain characteristic of the Nth network level are fused to obtain a characteristic diagram of the Nth network level, and the characteristic diagram is subjected to down-sampling and full-connection;
and judging whether the certificate image to be identified is a reproduction image or not through the activation function according to the result after full connection, and outputting a judgment result.
Optionally, the rendering image comprises: color-printed reproduction images and screen-reproduced images.
In a second aspect, an embodiment of the present application provides a document image duplication recognition apparatus, including:
the acquisition module is used for acquiring a certificate image to be identified;
the image transformation module is used for transforming the certificate image to be identified to obtain a frequency spectrum image of the certificate image to be identified;
and the certificate copying and judging module is used for extracting the space domain characteristics of the certificate image to be identified and the frequency domain characteristics of the frequency spectrum image, judging whether the certificate image to be identified is a copied image or not according to the extracted space domain characteristics and the extracted frequency domain characteristics, obtaining a judgment result and taking the judgment result as a certificate image copying and identifying result.
Optionally, the obtaining module specifically includes:
the acquisition sub-module is used for acquiring an original certificate image obtained by shooting a certificate, wherein the original certificate image comprises a background part and a certificate part to be identified;
and the certificate detection positioning module is used for positioning and cutting the original certificate image so as to remove the background part in the original certificate image and obtain the certificate image to be identified.
Optionally, the certificate detection positioning module includes:
the positioning module is used for positioning the original certificate image to obtain the central point and the size of the certificate part to be identified in the original certificate image;
and the cutting module is used for cutting the original certificate image according to the central point and the size of the part of the certificate to be identified so as to remove the background part in the original certificate image and obtain the certificate image to be identified.
Optionally, the positioning module includes:
the central point positioning module is used for predicting the central point of the certificate part to be identified in the original certificate image based on a target detection network;
and the size positioning module is used for obtaining the size of the part of the certificate to be identified in a regression mode.
Optionally, the certificate duplication discrimination module includes:
the input module is used for inputting the certificate image to be identified and the frequency spectrum image into a convolutional neural network model;
and the judging module is used for extracting the spatial domain characteristics of the N network levels of the certificate image to be identified and the frequency domain characteristics of the N network levels of the frequency spectrum image through the N network levels in the convolutional neural network model, fusing the spatial domain characteristics of the N network levels and the frequency domain characteristics of the N network levels to obtain a characteristic diagram of the certificate image to be identified, judging whether the certificate image to be identified is a copied image according to the characteristic diagram, and outputting a judgment result.
Optionally, the discrimination module is specifically configured to perform packet convolution on the to-be-identified certificate image and the spectrum image by using a 1 st network level to obtain a spatial domain feature of the 1 st network level of the to-be-identified certificate image and a frequency domain feature of the 1 st network level of the spectrum image;
performing grouping convolution on the feature map of the (i-1) th network level by adopting the ith network level to obtain the spatial domain feature of the ith network level of the certificate image to be identified and the frequency domain feature of the ith network level of the frequency spectrum image, wherein the value of i is more than 1 and less than or equal to N;
after the spatial domain characteristic and the frequency domain characteristic of the Nth network level are obtained, the spatial domain characteristic and the frequency domain characteristic of the Nth network level are fused to obtain a characteristic diagram of the Nth network level, and the characteristic diagram is subjected to down-sampling and full-connection;
and judging whether the certificate image to be identified is a reproduction image or not through the activation function according to the result after full connection, and outputting a judgment result.
Optionally, the rendering image comprises: color-printed reproduction images and screen-reproduced images.
In a third aspect, an embodiment of the present application provides an electronic device, including: the system comprises a processor, a communication interface, a memory and a communication bus, wherein the processor, the communication interface and the memory are communicated with each other through the communication bus;
the memory for storing a computer program;
the processor is configured to execute the program stored in the memory, and implement the certificate image duplication recognition method according to the first aspect.
In a fourth aspect, an embodiment of the present application provides a computer-readable storage medium, which stores a computer program, where the computer program is executed by a processor to implement the method for recognizing a document image reproduction according to the first aspect.
Compared with the prior art, the technical scheme provided by the embodiment of the application has the following advantages: according to the method provided by the embodiment of the application, when the certificate image to be identified is identified, additional interactive information is not needed, the shooting equipment and the shooting process are not limited, video stream processing is not needed, and the image can be identified only by acquiring the certificate image to be identified and carrying out subsequent processing, so that the algorithm flow is simplified, and space resources and time resources are saved; moreover, the user does not need to shoot the video, and only needs to input the certificate image to be identified, so that the identification can be completed, and the user experience is improved; in addition, the space domain characteristics of the certificate image are utilized, the frequency domain characteristics of the certificate image are combined for identification, and the accuracy of image identification is improved.
Detailed Description
In order to make the objects, technical solutions and advantages of the embodiments of the present application clearer, the technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the drawings in the embodiments of the present application, and it is obvious that the described embodiments are some embodiments of the present application, but not all embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present application.
An embodiment of the application provides a certificate image copying and identifying method, which can be applied to any form of electronic equipment, such as a terminal or a server. As shown in fig. 1, the method for recognizing the duplication of the certificate image comprises the following steps:
step 101, obtaining a certificate image to be identified.
In some embodiments, the certificate image to be recognized can be obtained by uploading in the corresponding input box by the user or can be obtained in the corresponding webpage. Of course, the image of the document to be recognized can also be directly acquired.
And 102, transforming the certificate image to be identified to obtain a frequency spectrum image of the certificate image to be identified.
In some embodiments, Fourier transform is performed on the image to be recognized to obtain a frequency spectrum image, and dual recognition is performed on the certificate image through the image to be recognized and the frequency spectrum image, so that the recognition result is more accurate. Fourier transform transforms signals from a time domain to a frequency domain, and further researches the frequency spectrum structure and the change rule of the signals. The Fourier Transform may be, but is not limited to, a Fast Fourier Transform (FFT), which is an efficient and Fast calculation method for calculating a Discrete Fourier Transform (DFT), to Transform the document image to be recognized. The image can be transformed from the spatial domain to the frequency domain by 2D fast fourier transform, obtaining a spectral image in the frequency domain.
103, extracting the space domain characteristics of the certificate image to be identified and the frequency domain characteristics of the frequency spectrum image, judging whether the certificate image to be identified is a reproduction image according to the extracted space domain characteristics and frequency domain characteristics, obtaining a judgment result, and taking the judgment result as a certificate image reproduction identification result.
In some embodiments, further identification of the document image and the spectral image to be identified can be achieved by a convolutional neural network model. Specifically, the certificate image and the spectrum image to be recognized may be input into the convolutional neural network model, the spatial domain features and the frequency domain features of the spectrum image are gradually extracted through the network hierarchy in the convolutional neural network model, and then whether the certificate image to be recognized is a copied image is determined based on the spatial domain features and the frequency domain features.
In the embodiment, the certificate image to be identified is acquired first, no additional interactive information is needed, the shooting equipment and the shooting process are not limited, the video stream is not needed to be processed, the image identification can be realized only by acquiring the certificate image to be identified and carrying out subsequent processing, the flow of the algorithm is simplified, the space resource and the time resource are saved, the user does not need to carry out video shooting, the identification can be completed only by inputting the certificate image to be identified, and the user experience is improved; and then, carrying out Fourier transform on the certificate image to be identified to obtain a frequency spectrum image, finally, identifying the certificate image to be identified by extracting the spatial domain characteristics of the certificate image to be identified and the frequency domain characteristics of the frequency spectrum image, and judging whether the certificate image to be identified is a reproduction image.
Another embodiment of the present application provides a method for recognizing a document image reproduction, as shown in fig. 2, the method includes:
step 201, obtaining an original certificate image obtained by shooting a certificate, wherein the original certificate image comprises a background part and a certificate part to be identified.
In some embodiments, the original document image can be obtained in a variety of ways, either by direct capture from an electronic device that performs the document image duplication recognition method, or by the electronic device from another device, such as a document image capture device.
Step 202, positioning and cutting the original certificate image to remove the background part in the original certificate image, so as to obtain the certificate image to be identified.
Note that the document image to be recognized obtained after the background portion is removed may be recorded as a focused image.
In some embodiments, the specific process of locating and cropping the original document image is illustrated in FIG. 3:
step 301, positioning the original certificate image to obtain the center point and the size of the certificate part to be identified in the original certificate image.
Specifically, when the original document image is located, the center point and the size of the document part in the document image can be predicted based on the target detection network, wherein the size is obtained in a regression manner after the target detection network obtains the center point.
The target detection network may be of various types, and may be selected according to actual conditions, for example, R-CNN algorithm, Fast R-CNN algorithm, Mask R-CNN algorithm, ssd (single shot multi boxdefender) algorithm, and yolo (young Only Look once) algorithm.
Further, the dimensions of the portion of the document to be identified can be, but are not limited to, the width and height of the portion of the document to be identified.
And step 302, cutting the original certificate image according to the central point and the size of the certificate part to be identified so as to remove the background part in the original certificate image and obtain the certificate image to be identified.
In the embodiment, the original certificate image is firstly cut, and the background part is cut to obtain the certificate image to be identified of the original certificate image, namely the focused image, so that the interference caused by the background part during identification is avoided, and the accuracy of the identification result can be improved.
Specifically, after the center point, the width and the height of the certificate part to be identified are obtained through the steps, the original certificate image can be cut by taking the center point as the center and taking the width as a transverse cutting target value, and the original certificate image can be cut by taking the height as a longitudinal cutting target value, so that the certificate part to be identified, namely the focused image, is obtained.
And 203, performing Fourier transform on the certificate image to be identified to obtain a frequency spectrum image of the certificate image to be identified.
The Fourier transform can transform the signal from a time domain to a frequency domain, so that the frequency spectrum structure and the change rule of the signal are researched.
Fig. 4 is a frequency spectrum image of different types of original document images provided by an embodiment of the present application, and referring to fig. 4, in the frequency spectrum image, a central point of the image represents a zero-frequency component, the frequency represented by the image gradually increases from the central point to four corner points, and the brightness represents the amplitude of the frequency component. It can be clearly seen that the frequency domain features of the normally photographed document image are mostly concentrated in the low frequency band (near the central point); the paper color-printed copied certificate image has the frequency spectrogram which is distributed more uniformly between low frequency and high frequency due to the irregular texture of the paper; the screen-reproduced image of the document has a very high amplitude at the individual medium/high frequency points, since the screen generates moir é patterns. Because the normally shot certificate image and the reproduction image have obvious difference on the frequency spectrum image, the identification accuracy can be improved when the identification is carried out through the frequency spectrum image.
Step 204, inputting the certificate image to be identified and the frequency spectrum image into the convolutional neural network model.
In some embodiments, the convolutional neural network model input is divided into two parts: the certificate image to be identified after certificate positioning and cutting is a focused image (RGB three channels), and a frequency spectrum image (F single channel) obtained by performing fast Fourier transform on the focused image. The focused image and the frequency spectrum image are simultaneously input into the convolutional neural network model, and the characteristics of the two images are simultaneously analyzed and identified, so that the identification accuracy is improved.
And step 205, extracting the spatial domain characteristics of the N network levels of the certificate image to be recognized and the frequency domain characteristics of the N network levels of the frequency spectrum image through the N network levels in the convolutional neural network model, fusing the spatial domain characteristics of the N network levels and the frequency domain characteristics of the N network levels to obtain a characteristic diagram of the certificate image to be recognized, judging whether the certificate image to be recognized is a copied image according to the characteristic diagram, and outputting a judgment result.
In some embodiments, the features of the document image to be recognized (the focused image) and the frequency domain image are extracted through the convolutional neural network model, and whether the document image is a copied image is recognized, which specifically includes the following steps:
firstly, performing packet convolution on a certificate image to be identified and a spectrogram image by adopting a 1 st network level to obtain a space domain characteristic of the 1 st network level of the certificate image to be identified and a frequency domain characteristic of the 1 st network level of the spectrogram image;
secondly, performing grouping convolution on the feature map of the (i-1) th network level by adopting the ith network level to obtain the spatial domain feature of the ith network level of the certificate image to be identified and the frequency domain feature of the ith network level of the frequency spectrum image, wherein the value of i is more than 1 and less than or equal to N;
thirdly, after the spatial domain feature and the frequency domain feature of the Nth network level are obtained, the spatial domain feature and the frequency domain feature of the Nth network level are fused to obtain a feature map of the Nth network level, and the feature map is subjected to down-sampling and full-connection;
and fourthly, judging whether the certificate image to be identified is a reproduction image or not through the activation function according to the result after full connection, and outputting a judgment result.
In the process, the spatial domain characteristics of the certificate image to be identified (namely the focused image) and the frequency domain characteristics of the frequency spectrum image are extracted separately, so that the independence and the effectiveness of the extraction of the spatial domain characteristics and the frequency domain characteristics are ensured, the spatial domain characteristics and the frequency domain characteristics are fused in the last layer of network level, and the spatial domain characteristics and the frequency domain characteristics are combined in the identification process, so that the identification result is more accurate.
It should be noted that, the algorithm model specifically adopted by the convolutional neural network model is not limited here. In one embodiment, the convolutional neural network model employs a block convolutional neural network model. N network levels set in the convolutional neural network model, in this embodiment, N is 4. Spatial domain features and frequency domain features of a spectrogram of a certificate image (a focused image) to be recognized are extracted in 4 network levels respectively, and each layer of features has different feature map numbers on the RGB focused image and the F spectrum image. As shown in fig. 5, 32 spatial domain features may be extracted for a focused image and 16 frequency domain features may be extracted for a spectral image in a first network level; in a second layer network level, 64 spatial domain features can be extracted from the focused image, and 32 frequency domain features can be extracted from the frequency spectrum image; 128 spatial domain features may be extracted for focused images and 64 frequency domain features may be extracted for spectral images at a third tier network level; 256 spatial domain features may be extracted for focused images and 128 frequency domain features may be extracted for spectral images in a fourth tier of the network hierarchy. And then, respectively carrying out downsampling and full connection on the feature maps in the fourth layer network level, and obtaining an identification result through an activation function in the convolutional neural network model.
Wherein, the reproduction image includes: screen-shot images and color-printed-shot images.
It can be understood that, as shown in fig. 6, the convolutional neural network model can be obtained through training by the following steps:
step 601, obtaining a sample image set, wherein the sample image set comprises M sample images and a reproduction category identifier of each sample image, the reproduction category identifier is used for indicating whether the sample image is a reproduction image, and a group of sample images is formed by S sample images;
wherein, the sample image comprises: the certificate identification method comprises the steps of obtaining a certificate image to be identified and a frequency spectrum image obtained by carrying out fast Fourier transform on the certificate image to be identified.
The following training process is performed separately for each set of sample images in the sample image set:
step 602, performing the following processing on each sample image in a group of sample images, inputting the sample images into an initial convolutional neural network model, sequentially adopting N network levels, performing feature extraction on the sample images to obtain features of the N network levels, and integrating the features of the N network levels to obtain a feature map of a certificate in the sample images;
step 603, obtaining a probability value of the certificate image in the group of sample images as a copied image according to the feature map of the certificate in each sample image in the group of sample images;
step 604, calculating a loss function according to the probability value and the reproduction category identification of the group of sample images, reversely propagating the gradient to each layer of the N network levels according to the loss function, optimizing the parameters of the initial convolutional neural network model, and then acquiring the next group of sample images from the sample image set.
And repeatedly executing the steps 602 to 604 until the loss function tends to be stable, and taking the initial convolutional neural network model as a final convolutional neural network model.
It will be appreciated that the above-described pan category identification may also be used to indicate an image pan category of the sample image, for example, the pan category identification includes: non-reproduced images, screen reproduced images and color-printed reproduced images. By indicating the image reproduction category of the sample image by the reproduction category identification, the reproduction type (namely, a screen reproduction image and a color reproduction image) of the reproduction image can be identified through the trained convolutional neural network model.
Based on the same concept, the embodiment of the present application provides a device for recognizing a document image by copying, the specific implementation of the device may refer to the description of the embodiment of the method, and repeated descriptions are omitted, as shown in fig. 7, the device mainly includes:
the acquisition module 701 is used for acquiring a certificate image to be identified;
an image transformation module 702, configured to transform the certificate image to be identified to obtain a spectrum image of the certificate image to be identified;
the certificate copying judging module 703 is configured to extract a space domain feature of the certificate image to be recognized and a frequency domain feature of the frequency spectrum image, judge whether the certificate image to be recognized is a copied image according to the extracted space domain feature and the extracted frequency domain feature, obtain a judgment result, and use the judgment result as a certificate image copying recognition result.
Optionally, the obtaining module specifically includes:
the acquisition sub-module is used for acquiring an original certificate image obtained by shooting a certificate, wherein the original certificate image comprises a background part and a certificate part to be identified;
and the certificate detection positioning module is used for positioning and cutting the original certificate image so as to remove the background part in the original certificate image and obtain the certificate image to be identified.
Optionally, the certificate detection positioning module includes:
the positioning module is used for positioning the original certificate image to obtain the central point and the size of the certificate part to be identified in the original certificate image;
and the cutting module is used for cutting the original certificate image according to the central point and the size of the part of the certificate to be identified so as to remove the background part in the original certificate image and obtain the certificate image to be identified.
Optionally, the positioning module includes:
the central point positioning module is used for predicting the central point of the certificate part to be identified in the original certificate image based on a target detection network;
and the size positioning module is used for obtaining the size of the part of the certificate to be identified in a regression mode.
Optionally, the certificate duplication discrimination module includes:
the input module is used for inputting the certificate image to be identified and the frequency spectrum image into a convolutional neural network model;
and the judging module is used for extracting the spatial domain characteristics of the N network levels of the certificate image to be identified and the frequency domain characteristics of the N network levels of the frequency spectrum image through the N network levels in the convolutional neural network model, fusing the spatial domain characteristics of the N network levels and the frequency domain characteristics of the N network levels to obtain a characteristic diagram of the certificate image to be identified, judging whether the certificate image to be identified is a copied image according to the characteristic diagram, and outputting a judgment result.
Optionally, the discrimination module is specifically configured to perform packet convolution on the to-be-identified certificate image and the spectrum image by using a 1 st network level to obtain a spatial domain feature of the 1 st network level of the to-be-identified certificate image and a frequency domain feature of the 1 st network level of the spectrum image;
performing grouping convolution on the feature map of the (i-1) th network level by adopting the ith network level to obtain the spatial domain feature of the ith network level of the certificate image to be identified and the frequency domain feature of the ith network level of the frequency spectrum image, wherein the value of i is more than 1 and less than or equal to N;
after the spatial domain characteristic and the frequency domain characteristic of the Nth network level are obtained, the spatial domain characteristic and the frequency domain characteristic of the Nth network level are fused to obtain a characteristic diagram of the Nth network level, and the characteristic diagram is subjected to down-sampling and full-connection;
and judging whether the certificate image to be identified is a reproduction image or not through the activation function according to the result after full connection, and outputting a judgment result.
Optionally, the rendering image comprises: color-printed reproduction images and screen-reproduced images.
Based on the same concept, an embodiment of the present application provides an electronic device, as shown in fig. 7, the electronic device mainly includes: a processor 801, a communication interface 802, a memory 803 and a communication bus 804, wherein the processor 801, the communication interface 802 and the memory 803 communicate with each other via the communication bus 804. Wherein, the memory 803 stores the program which can be executed by the processor 801, the processor 801 executes the program stored in the memory 803, and the following steps are realized: acquiring a certificate image to be identified; transforming the certificate image to be identified to obtain a frequency spectrum image of the certificate image to be identified; extracting the space domain characteristics of the certificate image to be identified and the frequency domain characteristics of the frequency spectrum image, judging whether the certificate image to be identified is a copied image or not according to the extracted space domain characteristics and the extracted frequency domain characteristics, obtaining a judgment result, and taking the judgment result as a certificate image copying and identifying result.
The communication bus 804 mentioned in the above electronic device may be a Peripheral Component Interconnect (PCI) bus, an Extended Industry Standard Architecture (EISA) bus, or the like. The communication bus 804 may be divided into an address bus, a data bus, a control bus, etc. For ease of illustration, only one thick line is shown in FIG. 8, but this is not intended to represent only one bus or type of bus.
The communication interface 802 is used for communication between the above-described electronic apparatus and other apparatuses.
The Memory 803 may include a Random Access Memory (RAM) or a non-volatile Memory (non-volatile Memory), such as at least one disk Memory. Alternatively, the memory may be at least one memory device located remotely from the processor 801.
The Processor 801 may be a general-purpose Processor, including a Central Processing Unit (CPU), a Network Processor (NP), etc., and may also be a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA) or other Programmable logic devices, discrete gates or transistor logic devices, and discrete hardware components.
In yet another embodiment of the present application, a computer-readable storage medium is further provided, in which a computer program is stored, and when the computer program runs on a computer, the computer program causes the computer to execute the certificate image duplication recognition method described in the above embodiment.
In the above embodiments, the implementation may be wholly or partially realized by software, hardware, firmware, or any combination thereof. When implemented in software, may be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When loaded and executed on a computer, cause the processes or functions described in accordance with the embodiments of the application to occur, in whole or in part. The computer may be a general purpose computer, a special purpose computer, a network of computers, or other programmable device. The computer instructions may be stored on a computer readable storage medium or transmitted from one computer readable storage medium to another, for example, from one website site, computer, server, or data center to another website site, computer, server, or data center via wire (e.g., coaxial cable, fiber optic, Digital Subscriber Line (DSL)) or wirelessly (e.g., infrared, microwave, etc.). The computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device, such as a server, a data center, etc., that includes one or more of the available media. The available media may be magnetic media (e.g., floppy disks, hard disks, tapes, etc.), optical media (e.g., DVDs), or semiconductor media (e.g., solid state drives), among others.
It is noted that, in this document, relational terms such as "first" and "second," and the like, may be used solely to distinguish one entity or action from another entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions. Also, the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising an … …" does not exclude the presence of other identical elements in a process, method, article, or apparatus that comprises the element.
The foregoing are merely exemplary embodiments of the present invention, which enable those skilled in the art to understand or practice the present invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the invention. Thus, the present invention is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.