The present disclosure relates generally to systems and methods to detect a scratch.
Convolutional neural networks are often utilized for image processing and scratch detection. Convolutional neural networks are often supervised learning algorithms which require labels and large numbers of labeled images, which may be difficult and financially costly to obtain. In that regard, convolutional neural networks and other deep-learning methods are not only financially costly and require significant computational time, but are also resource intensive.
Illustrative embodiments of the present invention are described in detail below with reference to the attached drawing figures, which are incorporated by reference herein, and wherein:
The illustrated figures are only exemplary and are not intended to assert or imply any limitation with regard to the environment, architecture, design, or process in which different embodiments may be implemented.
In the following detailed description of the illustrative embodiments, reference is made to the accompanying drawings that form a part hereof. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention, and it is understood that other embodiments may be utilized and that logical structural, mechanical, electrical, and chemical changes may be made without departing from the spirit or scope of the invention. To avoid detail not necessary to enable those skilled in the art to practice the embodiments described herein, the description may omit certain information known to those skilled in the art. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the illustrative embodiments is defined only by the appended claims.
The present disclosure relates to systems and methods to detect a scratch. A scratch detection system analyzes images for the presence of scratches on the images. As referred to herein, a scratch is a pattern present on an image. In some embodiments, a scratch is represented by a cluster of points (“cluster”) that have values (e.g., 1) that are different from values of points (e.g., 0) of other sections of the image where the scratch is not present. The scratch detection system identifies via one or more techniques, such as an Ordering Points to Identify the Clustering Structure (“OPTICS”) technique, one or more clusters of points on an image. In some embodiments, the scratch detection system obtains or generates an OPTICS reachability plot and analyzes the plot to identify one or more clusters on the image. In some embodiments, the scratch detection system identifies one or more overlapping clusters of points, wherein each cluster of points of the one or more overlapping clusters of points is within a threshold distance of one or more other clusters of points of the overlapping clusters of points, thereby creating one or more connected dense regions of the image. In some embodiments, the scratch detection system also extracts the cluster of points from the image to perform additional analysis of the extracted cluster.
The scratch detection system utilizes a principal curves technique to identify a curve that approximates one or more points of the cluster with a smooth curve. Further, the scratch detection system determines characteristics of the curve and the cluster. Characteristics of the curve include, but are not limited to, the length of the curve, the curvature of the curve, the position of the curve relative to the cluster, the position of the curve relative to other curves and clusters, as well as other characteristics associated with the curve. Characteristics of the cluster include, but are not limited to, the width of the cluster, the root mean square width of the cluster, the length of the cluster, the ratio between the length of the cluster and the width of the cluster, the ratio between the length of the curve and the width of the cluster, the distances from the curve to one or more points of the cluster, the distance between the cluster and other clusters and curves of the image, and other characteristics associated with the cluster. The scratch detection system identifies the scratch as well as characteristics of the scratch based on one or more characteristics of the curve and/or the cluster. In some embodiments, the scratch detection system identifies one or more patterns of the scratch (e.g., the length of the scratch, the width of the scratch, the curvature of the scratch, as well as other patterns of the scratch) based on the characteristics of the cluster and/or the curve.
The scratch detection system is configured to sequentially and/or simultaneously analyze an image for the presence of multiple scratches and perform the operations described herein to determine characteristics of curves and clusters associated with different scratches, as well as patterns associated with different scratches. More particularly, utilizing the described techniques herein, including identifying clusters with an OPTICS technique and utilizing a principal curves technique to identify curves associated with the clusters reduce the computational cost of identifying scratches, thereby allowing multiple scratches to be sequentially or simultaneously identified and analyzed.
The scratch detection system is also configured to sequentially and/or simultaneously analyze multiple images for the presence of one or more scratches, and perform the operations described herein to determine characteristics of curves and clusters associated with different scratches, as well as patterns associated with different scratches on multiple images. More particularly, utilizing the described techniques herein, including identifying clusters with an OPTICS technique and utilizing a principal curves technique to identify curves associated with the clusters reduce the computational cost of identifying scratches, thereby allowing multiple images to be sequentially or simultaneously analyzed to identify and analyze scratches on the images. In some embodiments, the scratch detection system includes or is communicatively connected to multiple processing systems or processors, and the scratch detection system is further configured to balance the workload of the processing systems and processors to evenly distribute the workload to sequentially or simultaneously analyze different scratches on an image, or sequentially or simultaneously analyze different images. Additional descriptions of the scratch detection system and operations performed by the scratch detection system are provided in the paragraphs below and are illustrated in at least
Scratch detection system 102 may be formed from one or more work management stations, server systems, desktop computers, laptop computers, tablet computers, smartphones, smart watches, virtual reality systems, augmented reality systems, as well as similar electronic devices having one or more processors operable to identify, via an OPTICS technique, a cluster of points on an image, utilize a principal curves technique to identify a curve that approximates one or more points of the cluster of points as a smooth curve, determine one or more characteristics of the curve, determine one or more characteristics of the cluster, and identify a scratch based on at least one of the one or more characteristics of the curve and the one or more characteristics of the cluster. Additional descriptions of operations performed by scratch detection system 102 are provided herein and are illustrated in at least
Scratch detection system 102 identifies a cluster of points on an image, such as image 200 of
Electronic device 110 includes any devices that are operable to provide the scratch and data indicative of the scratch for display. In some embodiments, electronic device 110 is also operable to receive instructions from a user of electronic device 110, to analyze the scratch and to input additional characteristics and parameters to refine and modify existing operations performed by scratch detection system 102, and provide additional instructions to scratch detection system 102 to run operations to identify additional scratches on the image or other images. In the embodiment of
Scratch detection system 102 is also communicatively connected to systems 122 and 132. In some embodiments, some of the operations described herein are performed by systems 122 and/or 132 to balance the workload. For example, scratch detection system 102, in response to receiving instructions to detect scratches on an image, splits the image into three regions, where scratch detection system 102, system 122, and system 132 is each assigned to detect scratches on a different region of the image. Similarly, where scratch detection system 102 is instructed to analyze multiple images, scratch detection system 102 is configured to distribute the images among scratch detection system 102, system 122, and system 132 to balance the workload of each individual system. The foregoing operations reduce the workload of a single system, thereby reducing not only the duration of the operation, but also the stress on a single system.
Network 106 can include, for example, any one or more of a cellular network, a satellite network, a personal area network (PAN), a local area network (LAN), a wide area network (WAN), a broadband network (BBN), an RFID network, a Bluetooth network, a device-to-device network, the Internet, and the like. Further, network 106 can include, but is not limited to, any one or more of the following network topologies, including a bus network, a star network, a ring network, a mesh network, a star-bus network, a tree or hierarchical network, or similar network architecture. Network 106 may be implemented using different protocols of the internet protocol suite such as TCP/IP. Network 106 includes one or more interfaces for data transfer. In some embodiments, network 106 includes a wired or wireless networking device (not shown) operable to facilitate one or more types of wired and wireless communication between scratch detection system 102, electronic device 110, systems 122 and 132, as well as other electronic devices (not shown) and systems (not shown) communicatively connected to network 106. Examples of the networking device include, but are not limited to, wired and wireless routers, wired and wireless modems, access points, as well as other types of suitable networking devices described herein. Examples of wired and wireless communication include Ethernet, WiFi, Cellular, LTE, GPS, Bluetooth, and RFID, as well as other types of communication modes described herein.
Although
In the embodiment of
Although
In the embodiment of
In the embodiment of
At block 502, a scratch detection system, such as scratch detection system 102 of
At block 506, the scratch detection system determines one or more characteristics of the curve. In the embodiments of
At block 508, the scratch detection system determines one or more characteristics of the cluster. In the embodiment of
At block 510, the scratch detection system identifies a scratch based on at least one of the one or more characteristics of the curve and the one or more characteristics of the cluster. For example, scratch detection system 102 identifies one or more properties and patterns of a scratch based on characteristics of a corresponding curve identified at block 506 and based on characteristics of a corresponding cluster identified at block 508.
At block 512 a determination of whether to detect another scratch is made. In response to a determination to detect another scratch, process 500 returns to 502, and the operations described herein are repeated. Alternatively, process 500 ends in response to a determination not to detect another scratch. In some embodiments, process 500 is simultaneously performed to detect multiple scratches on a single image. In some embodiments, process 500 is simultaneously performed to detect multiple scratches on multiple different images. In that regard, in some embodiments, process 500 is performed on multiple computing devices of scratch detection system 102 to balance the load of each computing device, improve the overall computing speed of scratch detection system 102, and to reduce the burden on each individual computing device.
The above-disclosed embodiments have been presented for purposes of illustration and to enable one of ordinary skill in the art to practice the disclosure, but the disclosure is not intended to be exhaustive or limited to the forms disclosed. Many insubstantial modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the disclosure. For instance, although the flowcharts depict a serial process, some of the steps/processes may be performed in parallel or out of sequence, or combined into a single step/process. The scope of the claims is intended to broadly cover the disclosed embodiments and any such modification. Further, the following clauses represent additional embodiments of the disclosure and should be considered within the scope of the disclosure.
Clause 1, a computer-implemented method to detect a scratch, comprising: identifying, via an OPTICS technique, a cluster of points on an image; utilizing a principal curves technique to identify a curve that approximates one or more points of the cluster of points as a smooth curve; determining one or more characteristics of the curve; determining one or more characteristics of the cluster; and identifying a scratch based on at least one of the one or more characteristics of the curve and the one or more characteristics of the cluster.
Clause 2, the computer-implemented method of clause 1, wherein identifying, via the OPTICS technique, the cluster of points comprises identifying, via the OPTICS technique, one or more overlapping clusters of points, wherein each cluster of points of the one or more overlapping clusters of points is within a threshold distance of one or more other clusters of points of the overlapping clusters of points.
Clause 3, the computer-implemented method of clauses 1 or 2, further comprising extracting the cluster of points from the image before the curve is identified.
Clause 4, the computer-implemented method of any of clauses 1-3, further comprising determining a distance from the curve to a point of the cluster, wherein determining the one or more characteristics of the cluster comprises determining the one or more characteristics of the cluster based on the distance from the curve to the point.
Clause 5, the computer-implemented method of any of clauses 1-4, further comprising determining a width of the cluster, wherein one of the one or more characteristics of the cluster is the width of the cluster.
Clause 6, the computer-implemented method of any of clauses 1-5, further comprising determining a ratio of a length of the curve to a width of the cluster, wherein one of the one or more characteristics of the cluster is the ratio of the length of the curve to the width of the cluster.
Clause 7, the computer-implemented method of any of clauses 1-6, further comprising determining a length of the curve, wherein one of the one or more characteristics of the curve is the length of the curve.
Clause 8, the computer-implemented method of any of clauses 1-7, further comprising determining a curvature of the curve, wherein one of the one or more characteristics of the curve is the curvature of the curve.
Clause 9, the computer-implemented method of any of clauses 1-8, further comprising identifying a pattern associated with the scratch based on the one or more characteristics of the curve.
Clause 10, the computer-implemented method of any of clauses 1-9, further comprising: identifying, via the OPTICS technique, a second cluster of points on the image; utilizing the principal curves technique to identify a second curve that approximates one or more points of the second cluster of points as a second smooth curve; determining one or more characteristics of the second curve; determining one or more characteristics of the second cluster; and identifying a second scratch based on at least one of the one or more characteristics of the second curve and the one or more characteristics of the second cluster.
Clause 11, the computer-implemented method of any of clauses 1-10, further comprising: identifying, via the OPTICS technique, a second cluster of points on second image; utilizing the principal curves technique to identify a second curve that approximates one or more points of the second cluster of points as a second smooth curve; determining one or more characteristics of the second curve; determining one or more characteristics of the second cluster; and identifying a second scratch based on at least one of the one or more characteristics of the second curve and the one or more characteristics of the second cluster.
Clause 12, a scratch detection system, comprising: a storage medium; and one or more processors configured to: identify, via an OPTICS technique, a cluster of points on an image; utilize a principal curves technique to identify a curve that approximates one or more points of the cluster of points as a smooth curve; determine one or more characteristics of the curve; determine one or more characteristics of the cluster; and identify a scratch based on at least one of the one or more characteristics of the curve and the one or more characteristics of the cluster.
Clause 13, the scratch detection system of clause 12, wherein the one or more processors are further configured to extract the cluster of points from the image before the curve is identified.
Clause 14, the scratch detection system of clauses 12 or 13, wherein the one or more processors are further configured to determine a distance from the curve to a point of the cluster, wherein from the curve to a point of the cluster is one of the one or more characteristics of the cluster.
Clause 15, the scratch detection system of any of clauses 12-14, wherein the one or more processors are further configured to determine a width of the cluster, wherein the width of the cluster is one of the one or more characteristics of the cluster.
Clause 16, the scratch detection system of any of clauses 12-15, wherein the one or more processors are further configured to determine a ratio of a length of the curve to a width of the cluster, wherein the ratio of the length of the curve to the width of the cluster is one of the one or more characteristics of the cluster.
Clause 17, the scratch detection system of any of clauses 12-16, wherein the one or more processors are further configured to: identify, via the OPTICS technique, a second cluster of points on the image; utilize the principal curves technique to identify a second curve that approximates one or more points of the second cluster of points as a second smooth curve; determine one or more characteristics of the second curve; determine one or more characteristics of the second cluster; and identify a second scratch based on at least one of the one or more characteristics of the second curve and the one or more characteristics of the second cluster.
Clause 18, the scratch detection system of any of clauses 12-17, wherein the one or more processors are further configured to: identify, via the OPTICS technique, a second cluster of points on second image; utilize the principal curves technique to identify a second curve that approximates one or more points of the second cluster of points as a second smooth curve; determine one or more characteristics of the second curve; determine one or more characteristics of the second cluster; and identify a second scratch based on at least one of the one or more characteristics of the second curve and the one or more characteristics of the second cluster.
Clause 19, a non-transitory computer-readable medium comprising instructions, which when executed by a processor, causes the processor to perform operations comprising: identifying, via an OPTICS technique, a cluster of points on an image; utilizing a principal curves technique to identify a curve that approximates one or more points of the cluster of points as a smooth curve; determining one or more characteristics of the curve; determining one or more characteristics of the cluster; and identifying a scratch based on at least one of the one or more characteristics of the curve and the one or more characteristics of the cluster.
Clause 20, the non-transitory computer-readable medium of clause 19, wherein the instruction, when executed by the processor, cause the processor to perform operations comprising: identifying, via an OPTICS technique, a second cluster of points on second image; utilizing the principal curves technique to identify a second curve that approximates one or more points of the second cluster of points as a second smooth curve; determining one or more characteristics of the second curve; determining one or more characteristics of the second cluster; and identifying a second scratch based on at least one of the one or more characteristics of the second curve and the one or more characteristics of the second cluster.
As used herein, the singular forms “a,” “an,” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprise” and/or “comprising,” when used in this specification and/or in the claims, specify the presence of stated features, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, steps, operations, elements, components, and/or groups thereof. In addition, the steps and components described in the above embodiments and figures are merely illustrative and do not imply that any particular step or component is a requirement of a claimed embodiment.