Computer-implemented method for detecting fingertip in image, apparatus for detecting fingertip in image, and computer program product
By detecting the contours and convex hull defects of the hand in the image, and using candidate finger search technology, the problem of inaccurate fingertip detection in the prior art is solved, achieving a more natural and intuitive human-computer interaction.
Patent Information
- Application Number
- CN202380011004.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-09-28
- Publication Date
- 2025-06-06
AI Technical Summary
The prior art is difficult to accurately and effectively detect fingertips in images, affecting the naturalness and intuitiveness of human-computer interaction.
By obtaining the contour of the hand in the image, performing convex hull detection and convex hull defect detection, candidate finger search is performed based on the distal points and the second points in the convex hull defect, and finger position information is obtained.
Accurate detection of fingertips in the image is achieved, improving the naturalness and intuitiveness of human-computer interaction.
Smart Images

Figure CN120112876A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to image recognition technology, and more particularly, to a computer-implemented method for detecting fingertips in an image, an apparatus for detecting fingertips in an image, and a computer program product. Background Art
[0002] In the field of human-computer interaction, accurate and effective fingertip detection plays a vital role in achieving natural and intuitive interactions between users and computer systems. Fingertip detection is a fundamental step in various applications including gesture recognition, touch-based interfaces, virtual reality, and augmented reality. Summary of the invention
[0003] On the one hand, the present disclosure provides a computer-implemented method for detecting fingertips in an image, comprising: obtaining an outline of a hand in the image; and performing finger detection on the outline to obtain finger position information; wherein performing finger detection comprises: performing convex hull detection; performing convex hull defect detection to obtain at least one convex hull defect, wherein each convex hull defect in the at least one convex hull defect comprises a far point and a second point, the far point and the second point being points on the outline; and performing a candidate finger search based on at least the far point and the second point to obtain the finger position information.
[0004] Optionally, a candidate finger search is performed based on at least the far point and the second point to obtain candidate finger information, including: designating the far point as a first root point; designating the second point as a vertex; and searching for a second root point; wherein searching for the second root point includes: selecting a point on the contour as an updated candidate second root point.
[0005] Optionally, performing a candidate finger search based on at least the far point and the second point to obtain candidate finger information also includes: determining a first vector between the vertex and the first root point; and determining a second vector between the vertex and the updated candidate second root point.
[0006] Optionally, performing a candidate finger search based on at least the far point and the second point to obtain candidate finger information also includes: determining a magnitude of the second vector; and determining whether the magnitude of the second vector exceeds a minimum finger length.
[0007] Optionally, performing a candidate finger search based on at least the far point and the second point to obtain candidate finger information also includes: determining the cosine similarity between the first vector and the second vector; and determining whether the cosine similarity between the first vector and the second vector is greater than the maximum cosine similarity minus a second threshold.
[0008] Optionally, performing a candidate finger search based on at least the far point and the second point to obtain candidate finger information further includes: traversing multiple points on the contour to determine whether the condition that each of the multiple points is the second root point is satisfied.
[0009] Optionally, performing a candidate finger search based on at least the far point and the second point to obtain candidate finger information also includes: determining the magnitude of the second vector; determining whether the magnitude of the second vector is greater than the maximum finger length; and stopping traversing the multiple points on the contour when it is determined that the magnitude of the second vector is greater than the maximum finger length.
[0010] Optionally, performing a candidate finger search based on at least the distant point and the second point to obtain candidate finger information also includes: determining the cosine similarity between the first vector and the second vector; determining whether a finger has been detected; and stopping traversing the multiple points on the contour when it is determined that a finger has been detected and the cosine similarity between the first vector and the second vector is less than the maximum cosine similarity minus a first threshold.
[0011] Optionally, performing a candidate finger search based on at least the distant point and the second point to obtain candidate finger information also includes: determining whether a finger has been detected; determining the magnitude of the second vector; determining whether the magnitude of the second vector exceeds the maximum finger width; and stopping traversing the multiple points on the contour when it is determined that no finger has been detected and the magnitude of the second vector exceeds the maximum finger width.
[0012] Optionally, performing a candidate finger search based on at least the far point and the second point to obtain candidate finger information also includes: determining the magnitude of the second vector; determining whether the magnitude of the second vector exceeds the minimum finger length; determining the cosine similarity between the first vector and the second vector; determining whether the cosine similarity between the first vector and the second vector is greater than the maximum cosine similarity minus a second threshold; and upon determining that the magnitude of the second vector is greater than the minimum finger length and the cosine similarity between the first vector and the second vector is greater than the maximum cosine similarity minus the second threshold, updating the updated candidate second root point, and updating the maximum cosine similarity based on the cosine similarity between the first vector and the second vector.
[0013] Optionally, performing a candidate finger search based on at least the distant point and the second point to obtain candidate finger information also includes: determining the magnitude of the second vector; determining whether the magnitude of the second vector is greater than the maximum finger length; determining whether the magnitude of the second vector exceeds the maximum finger width; determining the cosine similarity between the first vector and the second vector; determining whether a finger has been detected; and determining whether any one of the following three conditions is met: the magnitude of the second vector is greater than the maximum finger length; or a finger has been detected and the cosine similarity between the first vector and the second vector is less than the maximum cosine similarity minus a first threshold; or a finger has not been detected and the magnitude of the second vector exceeds the maximum finger width; wherein , performing a candidate finger search based on at least the far point and the second point to obtain candidate finger information, also includes, when it is determined that none of the three conditions are met: determining whether the magnitude of the second vector exceeds the minimum finger length; determining whether the cosine similarity between the first vector and the second vector is greater than the maximum cosine similarity minus a second threshold; and when it is determined that the magnitude of the second vector is greater than the minimum finger length and the cosine similarity between the first vector and the second vector is greater than the maximum cosine similarity minus the second threshold, updating the updated candidate second root point to obtain a second updated candidate second root point, and updating the maximum cosine similarity based on the cosine similarity between the first vector and the second vector.
[0014] Optionally, performing a candidate finger search based on at least the distant point and the second point to obtain candidate finger information also includes: determining the magnitude of the second vector; determining whether the magnitude of the second vector is greater than the maximum finger length; determining whether the magnitude of the second vector exceeds the maximum finger width; determining the cosine similarity between the first vector and the second vector; determining whether a finger has been detected; and determining whether any one of the following three conditions is met: the magnitude of the second vector is greater than the maximum finger length; or a finger has been detected and the cosine similarity between the first vector and the second vector is less than the maximum cosine similarity minus a first threshold; or a finger has not been detected and the magnitude of the second vector exceeds the maximum finger width; wherein , performing a candidate finger search based on at least the far point and the second point to obtain candidate finger information, also includes, when it is determined that none of the three conditions are met: determining whether the magnitude of the second vector exceeds the minimum finger length; determining whether the cosine similarity between the first vector and the second vector is greater than the maximum cosine similarity minus a second threshold; and when it is determined that the magnitude of the second vector is greater than the minimum finger length and the cosine similarity between the first vector and the second vector is greater than the maximum cosine similarity minus the second threshold, updating the updated candidate second root point to obtain a second updated candidate second root point, and updating the maximum cosine similarity based on the cosine similarity between the first vector and the second vector.
[0015] Optionally, performing a candidate finger search based on at least the distant point and the second point to obtain candidate finger information also includes: updating the coordinates of the finger root point; wherein updating the coordinates of the finger root point includes: determining the distance between the first root point and the vertex of the candidate finger; determining the distance between the second root point and the vertex of the candidate finger; and adjusting the coordinates of at least one of the first root point and the second root point until the distance between the first root point and the vertex is substantially the same as the distance between the second root point and the vertex.
[0016] Optionally, performing a candidate finger search based on at least the far point and the second point to obtain candidate finger information further includes: fitting a midline of the candidate finger.
[0017] Optionally, fitting the midline of the candidate finger includes: determining a line intersecting a first root point and a second root point of the candidate finger; determining a finger area using the line intersecting the first root point and the second root point of the candidate finger and a contour of the candidate finger; and fitting the midline of the finger area using an optimization algorithm.
[0018] Optionally, the computer-implemented method also includes: performing finger deduplication on the detected candidate fingers; wherein, performing finger deduplication on the detected candidate fingers includes: calculating the intersection-and-union ratio of the contours of two detected candidate fingers; and when it is determined that the intersection-and-union ratio of the contours of the two detected candidate fingers is greater than a threshold, determining that the two detected candidate fingers are repetitions of the same candidate finger.
[0019] Optionally, calculating the intersection-and-union ratio of the contours of two detected candidate fingers includes: determining a first contour of a first detected candidate finger of the two detected candidate fingers, which includes a first candidate root point, a second candidate root point, and a first candidate vertex; determining a second contour of a second detected candidate finger of the two detected candidate fingers, which includes a third candidate root point, a fourth candidate root point, and a second candidate vertex; determining a first length of the first contour; determining a second length of the second contour; determining a third length of the intersection between the first contour and the second contour; and calculating the intersection-and-union ratio of the contours of the two detected candidate fingers by the following formula:
[0020]
[0021] Optionally, the computer-implemented method further includes: performing a filtering process to remove false detections in detected fingers; wherein performing a filtering process to remove false detections in detected fingers includes at least one of the following: determining the candidate finger length by determining the distance between a candidate vertex and a candidate root point; determining the candidate finger width by determining the distance between two candidate root points; or determining the aspect ratio of the candidate finger by dividing the candidate finger length by the candidate finger width.
[0022] Optionally, performing a filtering process to remove false detections in detected fingers also includes at least one of the following: when it is determined that the length of the candidate finger is less than the minimum finger length, designating the candidate finger as a falsely detected finger; when it is determined that the width of the candidate finger is greater than the maximum finger width, designating the candidate finger as a falsely detected finger; or when it is determined that the aspect ratio of the candidate finger is less than the minimum aspect ratio, designating the candidate finger as a falsely detected finger.
[0023] On the other hand, the present disclosure provides a device for detecting fingertips in an image, comprising: a memory; and one or more processors; wherein the memory and the one or more processors are connected to each other; and the memory stores computer-executable instructions for controlling the one or more processors to: obtain the outline of a hand in the image; and perform finger detection on the outline to obtain finger position information; wherein, in order to perform finger detection, the memory stores computer-executable instructions for controlling the one or more processors to: perform convex hull detection; perform convex hull defect detection to obtain at least one convex hull defect, wherein each convex hull defect in the at least one convex hull defect includes a far point and a second point, and the far point and the second point are points on the outline; and perform a candidate finger search based on at least the far point and the second point to obtain the finger position information.
[0024] On the other hand, the present disclosure provides a computer program product, including a non-temporary tangible computer-readable medium having computer-readable instructions thereon, wherein the computer-readable instructions can be executed by a processor to cause the processor to perform: obtaining the outline of a hand in the image; and performing finger detection on the outline to obtain finger position information; wherein performing finger detection includes: performing convex hull detection; performing convex hull defect detection to obtain at least one convex hull defect, wherein each convex hull defect in the at least one convex hull defect includes a far point and a second point, and the far point and the second point are points on the outline; and performing a candidate finger search based on at least the far point and the second point to obtain the finger position information.
[0025] On the other hand, the present disclosure provides a computer-implemented method for searching for fingers in an image, comprising: obtaining an outline of a hand in the image; and performing finger detection on the outline to obtain finger position information; wherein performing finger detection comprises: performing convex hull detection; performing convex hull defect detection to obtain at least one convex hull defect, wherein each convex hull defect in the at least one convex hull defect comprises a far point and a second point, the far point and the second point being points on the outline; and performing finger search based on at least the far point and the second point.
[0026] On the other hand, the present disclosure provides a computer-implemented method for detecting fingertips in an image, comprising: obtaining an outline of a hand in the image; and performing finger detection on the outline to obtain finger position information; wherein performing finger detection comprises: performing convex hull detection; performing convex hull defect detection to obtain at least one convex hull defect, wherein each convex hull defect in the at least one convex hull defect comprises a far point and a second point, the far point and the second point being points on the outline; and obtaining the finger position information based on at least the far point and the second point. BRIEF DESCRIPTION OF THE DRAWINGS
[0027] According to various disclosed embodiments, the following drawings are examples only for illustration purposes and are not intended to limit the scope of the present invention.
[0028] Figure 1A is a flow chart illustrating a computer-implemented method of detecting fingertips in an image in accordance with some embodiments of the present disclosure.
[0029] Figure 1B is a flow chart illustrating a computer-implemented method of detecting fingertips in an image in accordance with some embodiments of the present disclosure.
[0030] Figure 2 A binary image after image segmentation according to some embodiments of the present disclosure is shown.
[0031] Figure 3 An outline of a hand determined in an image is shown according to some embodiments of the present disclosure.
[0032] Figure 4 The convex hull determined in the process of identifying candidate regions according to some embodiments of the present disclosure is shown, wherein the candidate regions represent fingers in the outline of a hand.
[0033] Figure 5 Convex hull defects detected in the convex hull in accordance with some embodiments of the present disclosure are shown.
[0034] Figure 6 The process of detecting fingertips in an image according to some embodiments of the present disclosure is shown.
[0035] Fig. 7A is a flow chart illustrating a computer-implemented method of detecting fingertips in an image in accordance with some embodiments of the present disclosure.
[0036] Figure 7B is a flow chart illustrating a computer-implemented method of detecting fingertips in an image in accordance with some embodiments of the present disclosure.
[0037] Figure 8 Candidate fingers considered in the fingertip detection process according to some embodiments of the present disclosure are shown.
[0038] Fig. 9 Candidate fingers considered in the fingertip detection process with updated candidate second root points according to some embodiments of the present disclosure are shown.
[0039] Fig.10 An updated second root point considered in the fingertip detection process according to some embodiments of the present disclosure is shown.
[0040] Fig.11The centerline fitting during fingertip detection in some embodiments according to the present disclosure is shown.
[0041] Fig.12 is a schematic diagram showing an apparatus for detecting a fingertip according to some embodiments of the present disclosure. DETAILED DESCRIPTION
[0042] The present disclosure will now be described in more detail with reference to the following examples. It should be noted that the following description of some of the embodiments presented herein is for illustration and description purposes only. It is not intended to be exhaustive or limited to the precise form disclosed.
[0043] Therefore, the present disclosure provides, among other things, a computer-implemented method for detecting fingertips in an image, an apparatus for detecting fingertips in an image, and a computer program product, which substantially eliminate one or more problems caused by limitations and disadvantages of the prior art. On the one hand, the present disclosure provides a computer-implemented method for detecting fingertips in an image. In some embodiments, the computer-implemented method includes: obtaining an outline of a hand in an image; performing finger detection on the outline to obtain finger position information. Optionally, performing finger detection includes: performing convex hull detection; performing convex hull defect detection to obtain at least one convex hull defect, wherein each convex hull defect in the at least one convex hull defect includes a far point, a first point, and a second point, and the far point, the first point, and the second point are points on the outline; performing a candidate finger search based on at least the far point and the second point to obtain finger position information.
[0044] Figure 1A is a flow chart illustrating a computer-implemented method for detecting fingertips in an image according to some embodiments of the present disclosure. Figure 1A In some embodiments, a computer-implemented method includes: obtaining an outline of a hand in an image; performing finger detection on the outline to obtain finger position information. Optionally, performing finger detection includes: performing convex hull detection; performing convex hull defect detection to obtain at least one convex hull defect, wherein each convex hull defect in the at least one convex hull defect includes a far point, a first point, and a second point, and the far point, the first point, and the second point are points on the outline; performing a candidate finger search based on at least the far point and the second point to obtain finger position information. Examples of finger position information include fingertip position information, finger base position information, finger direction information, finger extension information, and finger curl information. The fingertip position information may include coordinates of the fingertips. The finger base position information may include coordinates of one or more points in an area where each finger connects to the palm. The finger direction information may include an angle of each finger relative to a reference direction. The finger extension information may include information about the separation or distance between the fingertips. The finger curl information may include information about the degree to which the finger is bent or curled.
[0045] In some embodiments, the far point, the first point, and the second point are points on the edge of each convex hull defect. In some embodiments, the first point and the second point are also points on the convex hull detected according to the present disclosure; however, the far point is not a point on the convex hull. The far point, the first point, and the second point are vertices of the polygonal shape of the convex hull defect. In some embodiments, the far point, the first point, and the second point are arranged in sequence along the edge of the convex hull defect. In one example, the far point, the first point, and the second point are arranged in sequence along the edge of the convex hull defect in a clockwise direction. In another example, the far point, the first point, and the second point are arranged in sequence along the edge of the convex hull defect in a counterclockwise direction.
[0046] Figure 1B is a flow chart illustrating a computer-implemented method for detecting fingertips in an image according to some embodiments of the present disclosure. Figure 1B In some embodiments, a computer-implemented method of detecting fingertips in an image includes: acquiring an image ("image acquisition"); segmenting the image ("image segmentation"); determining an outline of a hand in the image ("hand outline detection"); performing finger detection on the outline of the hand ("finger detection"); and performing a filtering process to remove false detections of detected fingers ("false detection filtering"). Optionally, acquiring the image includes capturing the image using an image acquisition device such as a camera (e.g., a depth camera).
[0047] In some embodiments, segmenting the image includes dividing the image into a plurality of non-overlapping regions (e.g., at the pixel level). Various suitable image segmentation techniques can be used to segment the image. Examples of suitable image segmentation techniques include thresholding, region growing, or deep learning-based segmentation models such as U-Net and Mask R-CNN. Figure 2 FIG. 4 shows a binary image after image segmentation according to some embodiments of the present disclosure. Figure 2 , the image is divided into a plurality of non-overlapping regions including a hand region HR and a background region BR. In one example, the grayscale value of the pixel representing the hand region HR is 255, while the grayscale value of the pixel representing the background region BR is 0.
[0048] In some embodiments, determining the outline of a hand in an image includes: determining an area including the hand in one or more non-overlapping areas of a plurality of non-overlapping areas. Various appropriate outline detection algorithms can be used to determine the outline of the hand in the image. Examples of appropriate outline detection algorithms include edge detection and edge tracking. Optionally, determining the outline of the hand in the image also includes: performing a preliminary selection based on features such as hand shape, relative position, etc. In one example, the preliminary selection is performed based on a heuristic rule. Figure 3 FIG. 4 shows the contour of a hand determined in an image according to some embodiments of the present disclosure. Figure 2 and Figure 3, a contour C of the hand is determined in the image. The contour C surrounds the area including the hand in the hand region HR. Optionally, the contour C includes a plurality of contour points. Optionally, the contour C also includes one or more contour lines.
[0049] In some embodiments, finger detection is performed on the outline of the hand based on morphological features of the fingers or other shape descriptors. Examples of morphological features of the fingers include the length of the finger and the width of the finger.
[0050] In some embodiments, a filtering process is performed to remove false detections in detected fingers based on heuristic rules and context information such as finger relationships and finger-palm relationships. The heuristic rules are developed based on an understanding of typical finger and hand configurations, taking into account the natural constraints and anatomical features of the human hand. By utilizing these heuristic rules, the filtering process aims to improve the accuracy and reliability of the detected fingers. Context information including finger relationships and finger-palm relationships is considered during the filtering process. For example, the relative position and orientation of adjacent fingers can be considered to identify and remove false detections that do not match the expected finger configuration. Similarly, the relationship between the finger and the palm can be analyzed to distinguish between real fingers and potential false detections caused by the palm or other hand regions. The inventors of the present disclosure have found that by combining heuristic rules and context information such as finger relationships and finger-palm relationships, the filtering process improves the accuracy of the finger detection results. It helps to improve the detected finger positions, remove false detections, and ensure that the final output accurately represents the actual fingers present in the hand region.
[0051] In some embodiments, Figure 1B As shown in , performing finger detection on the outline of the hand includes: identifying candidate areas representing fingers in the outline of the hand ("candidate finger detection"); performing finger deduplication on the detected candidate fingers ("finger deduplication"); updating the coordinates of the fingertip points based on the shape and position information of the detected candidate fingers ("update fingertip points"); updating the coordinates of the finger base points based on the shape and position information of the detected candidate fingers ("update finger base points"); and fitting the midline of the candidate fingers ("finger midline fitting").
[0052] In some embodiments, candidate regions representing fingers in the outline of the hand are identified based on heuristic rules or a feature extraction process. In one example, a feature extraction process is performed to extract features such as finger shape, finger length, and finger width.
[0053] In some embodiments, performing finger deduplication on the detected candidate fingers includes comparing distances and overlaps between the detected candidate fingers to merge or remove duplicate detections to ensure that each finger is detected only once.
[0054] In some embodiments, the coordinates of the fingertip point are updated based on the shape and position information of the detected candidate finger. The position of the fingertip point can be determined using heuristic rules or feature analysis (e.g., the fingertip or the point of the finger with the maximum curvature).
[0055] In some embodiments, the coordinates of the finger root point are updated based on the shape and position information of the detected candidate finger. The position of the finger root point can be determined using heuristic rules or feature analysis (e.g., the bottom of the finger or a point with lower curvature).
[0056] In some embodiments, fitting the midline of the finger includes: connecting the fingertip point and the finger base point. Various suitable fitting algorithms can be used to fit the midline of the finger. Examples of suitable fitting algorithms include least squares method and curve fitting.
[0057] Various suitable algorithms can be used to identify candidate regions representing fingers in the outline of the hand. In some embodiments, identifying candidate regions representing fingers in the outline of the hand is performed using a convex hull algorithm, such as the convex hull algorithm in OpenCV. The convex hull algorithm is an algorithm for identifying the convex hull of a region, which represents the outer boundary surrounding a given set of points. In one example, the convex hull algorithm is used to identify the outer boundary of the hand. Figure 4 FIG. 4 shows a convex hull determined in the process of identifying a candidate region according to some embodiments of the present disclosure, wherein the candidate region represents a finger in a contour of a hand. Figure 4 , showing the convex hull CH. As used herein, the term "convex hull" refers to the smallest convex polygon that includes a set of points in Euclidean space. In one example, the convex hull is a shape obtained when an elastic band is wrapped around a set of points, and the elastic band is stretched to form a minimum convex boundary that encloses all points in the set of points.
[0058] In some embodiments, identifying candidate regions representing fingers in an outline of a hand further comprises: performing convex hull defect detection. Various suitable convex hull defect detection algorithms may be used in the present disclosure to detect one or more convex hull defects in a convex hull. As used herein, the term "convex hull defect" refers to an irregularity or anomaly in the shape of a convex hull. A convex hull is a polygon that encloses a set of points while maintaining a convex (outwardly curved) shape. When defect detection is performed in this context, areas are sought where the actual shape deviates from its expected smooth, convex shape. These deviations or irregularities may be an indication of defects or anomalies within the data set or object being analyzed. Figure 5 FIG. 4 shows a convex hull defect detected in a convex hull according to some embodiments of the present disclosure. Figure 5, a convex hull defect is represented by a triangle having three vertices, including a far point FP, a first point P1, and a second point P2. The far point FP is the farthest point in the concave region of the convex hull. The far point FP indicates the depth of the depression, or the degree to which the depression deviates from the convex hull. The far point FP is necessary for detecting and describing the shape and characteristics of the convex hull defect. The first point P1 and the second point P2 specify the starting point and the end point of the convex hull defect. The first point P1 and the second point P2 are generally used to locate and describe the position and boundary of the convex hull defect.
[0059] In some embodiments, a computer-implemented method includes: obtaining an outline of a hand in an image; performing finger detection on the outline to obtain finger position information. In some embodiments, performing finger detection includes: performing convex hull detection; performing convex hull defect detection to obtain at least one convex hull defect, wherein each convex hull defect in the at least one convex hull defect includes a far point, a first point, and a second point, and the far point, the first point, and the second point are points on the outline; performing a candidate finger search based on at least the far point and the second point to obtain the finger position information.
[0060] Figure 6 The process of detecting fingertips in an image according to some embodiments of the present disclosure is shown. Fig. 7A is a flow chart illustrating a computer-implemented method of detecting fingertips in an image in accordance with some embodiments of the present disclosure. Figure 7B is a flow chart illustrating a computer-implemented method for detecting fingertips in an image according to some embodiments of the present disclosure. Figure 6 , Fig. 7A and Figure 7B , in some embodiments, a computer-implemented method includes: receiving coordinates of a first root point ("Root1") and a vertex ("Top"). A root point refers to a specific point on a hand where a finger begins or originates. The root point is typically located at the base of the finger, closest to the hand or palm. The root point is used as a reference for tracking and analyzing the movement and shape of the finger. The vertex refers to the highest or topmost point of the finger. The vertex represents the fingertip or endpoint of the finger. The vertex is critical to determining the length, curvature, and direction of the finger. One or more endpoints refer to one or more points around the fingertip area.
[0061] In some embodiments, the first root point may be a far point detected during the convex hull defect detection process, and the vertex may be a second point detected during the convex hull defect detection process. In some embodiments, performing a candidate finger search based on at least the far point and the second point to obtain candidate finger information includes: designating the far point as a first root point; designating the second point as a vertex; and searching for the second root point. In some embodiments, searching for the second root point includes: selecting a point on the contour as an updated candidate second root point.
[0062] In some embodiments, the computer-implemented method further includes: determining whether a finger has been detected ("IsFinger=False"); and when it is determined that a finger has not been detected, the computer-implemented method further includes: performing finger detection on the contour to obtain finger position information.
[0063] In some embodiments, performing finger detection on the contour to obtain finger position information includes: designating a far point as a first root point; designating a second point as a vertex; and searching for a second root point. In some embodiments, searching for a second root point includes: selecting a point on the contour as an updated candidate second root point.
[0064] Reference Figure 6 , Fig. 7A and Figure 7B In some embodiments, performing finger detection on the contour to obtain finger position information further includes: determining a first vector between the vertex and the first root point ("D1 = Root1 - Top"). Optionally, the first vector is determined by subtracting the coordinates of the vertex from the coordinates of the first root point, or by subtracting the coordinates of the first root point from the coordinates of the vertex.
[0065] Reference Figure 6 , Fig. 7A and Figure 7B In some embodiments, performing finger detection on the contour to obtain finger position information further includes: determining a second vector between the vertex and the updated candidate second root point. Optionally, the second vector is determined by subtracting the coordinates of the vertex from the coordinates of the candidate second root point, or by subtracting the coordinates of the candidate second root point from the coordinates of the vertex.
[0066] In some embodiments, performing finger detection on a contour to obtain finger position information also includes: setting the maximum cosine similarity to an initial value (e.g., Cos(Max_θ)). As the finger detection algorithm proceeds and analyzes different points around the fingertip, the cosine similarity between the first vector and the second vector is calculated for each point. The calculated cosine similarity is compared with the current value of the maximum cosine similarity. The maximum cosine similarity represents the closest match or similarity between the direction of the first vector and the direction of the second vector for each endpoint around the fingertip detected during the process. The purpose of storing the maximum cosine similarity is to track the direction that is most similar to the direction of the first vector (e.g., the direction of the finger) among the analyzed endpoints. It can be used as a criterion for determining whether a particular point is a candidate for being part of a finger (e.g., whether a candidate second root point is indeed a second root point).
[0067] Various suitable initial values can be used as the initial value of the maximum cosine similarity. In a specific example, Max_θ is 45 degrees, and the initial value of the maximum cosine similarity is
[0068] In some embodiments, performing finger detection on the contour to obtain finger position information further includes: extracting coordinates of a first root point and a vertex. In some embodiments, the computer-implemented method includes: performing a preprocessing process on the image to extract coordinates of one or more fingertips, palms, and / or other hand features; and determining the coordinates of the first root point and the vertex based on the coordinates of the one or more fingertips, palms, and / or other hand features. Figure 8 FIG. 4 shows candidate fingers considered in the fingertip detection process according to some embodiments of the present disclosure. Figure 8 , the vertex TP and the first root point RP1 are identified among the candidate fingers.
[0069] Reference Figure 6 , Fig. 7A and Figure 7B In some embodiments, performing finger detection on the contour to obtain finger position information further includes: updating the candidate second root point to obtain an updated candidate second root point. Fig. 9 FIG. 4 shows a candidate finger with an updated candidate second root point considered in the fingertip detection process according to some embodiments of the present disclosure. Fig. 9 , the updated candidate second root point UCRP2 is identified among the candidate fingers.
[0070] In some embodiments, performing finger detection on the contour to obtain finger position information further includes: determining the magnitude of the second vector. Optionally, the magnitude of the second vector is expressed as Dis=||D2||, where the double vertical bar (||||) represents the Euclidean norm of the second vector, which represents the distance between the vertex and the updated candidate second root point.
[0071] In some embodiments, performing finger detection on the contour to obtain finger position information further includes: determining a cosine similarity between the first vector and the second vector. The cosine similarity between the first vector and the second vector measures the cosine of the angle between the first vector and the second vector, providing an indication of their similarity. Optionally, the cosine similarity between the first vector and the second vector is equal to the dot product of the first vector and the second vector divided by the product of the magnitude of the first vector and the magnitude of the second vector. In some embodiments, the cosine similarity between the first vector and the second vector is
[0072]
[0073] Wherein, D1 represents the first vector, and D2 represents the second vector.
[0074] Reference Figure 6 , Fig. 7A and Figure 7BIn some embodiments, performing finger detection on the contour to obtain finger position information further includes: traversing multiple points on the contour to determine whether the condition that each of the multiple points is a second root point is satisfied.
[0075] In some embodiments, traversing the plurality of points comprises traversing the plurality of points on the outline of the hand in the image in a clockwise manner. In some embodiments, when the far point, the first point, and the second point are sequentially arranged in a clockwise direction along an edge of the convex hull defect, the plurality of points on the outline of the hand in the image are traversed in a clockwise manner.
[0076] In an alternative embodiment, traversing the plurality of points comprises traversing the plurality of points on the outline of the hand in the image in a counterclockwise manner. In some embodiments, when the far point, the first point, and the second point are arranged in sequence along the edge of the convex hull defect in a counterclockwise direction, the plurality of points on the outline of the hand in the image are traversed in a counterclockwise manner.
[0077] In some embodiments, adjacent points of the plurality of points on the outline of the hand in the image are separated by at least one point on the outline of the hand in the image. In one example, adjacent points of the plurality of points on the outline of the hand in the image are separated by X points, for example, by 50 points, by 75 points, by 100 points, or by 125 points.
[0078] Reference Figure 6 , Fig. 7A and Figure 7BIn some embodiments, performing finger detection on the contour to obtain finger position information further includes: determining the magnitude of the second vector; determining whether the magnitude of the second vector is greater than the maximum finger length ("Dis>MaxFingerLeng?"); and stopping traversing multiple points on the contour when it is determined that the magnitude of the second vector is greater than the maximum finger length. The purpose of this condition is to determine whether the magnitude of the second vector (representing the distance between the vertex and the updated candidate second root point) exceeds the maximum allowable finger length. If the magnitude of the second vector is greater than the maximum finger length, it means that the distance between the vertex and the updated candidate second root point exceeds the maximum limit. In this case, it may not match the expected characteristics of the finger, and therefore, it will be considered as a non-finger. This situation helps to filter out the updated candidate second root points that are too far away, so that the finger is more accurately identified and detected. In one example, the maximum finger length is the length of 70mm corresponding to the actual finger in the image. In another example, the maximum finger length is the length of 75mm corresponding to the actual finger in the image. In another example, the maximum finger length is the length of 80mm corresponding to the actual finger in the image. In another example, the maximum finger length is a length of 85 mm in the image corresponding to the actual finger. In another example, the maximum finger length is a length of 90 mm in the image corresponding to the actual finger. In another example, the maximum finger length is a length of 95 mm in the image corresponding to the actual finger. In another example, the maximum finger length is a length of 100 mm in the image corresponding to the actual finger.
[0079] Reference Figure 6 , Fig. 7A and Figure 7B, in some embodiments, performing finger detection on a contour to obtain finger position information further includes: determining a cosine similarity between a first vector and a second vector; determining whether a finger has been detected ("IsFinger == True?"); and stopping traversing a plurality of points on the contour when it is determined that a finger has been detected and the cosine similarity between the first vector and the second vector is less than the maximum cosine similarity minus a first threshold ("Cos < MaxCosine - Th1"). If a finger has been detected and the cosine similarity between the first vector and the second vector is less than the maximum cosine similarity minus the first threshold, it means that the similarity between the direction of the first vector and the direction of the second vector is not as good as the highest cosine similarity value (maximum cosine similarity). The situation where a finger has been detected and the cosine similarity between the first vector and the second vector is less than the maximum cosine similarity minus the first threshold means that the updated candidate second root point is not the best candidate for the second root point. Optionally, the first threshold is in the range of 0.05 to 0.35, such as 0.05 to 0.1, 0.1 to 0.15, 0.15 to 0.2, 0.2 to 0.25, 0.25 to 0.3, or 0.3 to 0.35. The first threshold provides a margin when comparing the cosine similarity between the first vector and the second vector with the maximum cosine similarity.
[0080] Referring to Figure 6 , Fig. 7A and Figure 7B , in some embodiments, performing finger detection on a contour to obtain finger position information further includes: determining whether a finger has been detected; determining a magnitude of the second vector; determining whether the magnitude of the second vector exceeds a maximum finger width; and stopping traversing a plurality of points on the contour when it is determined that a finger has not been detected ("Isfinger == False") and the magnitude of the second vector exceeds the maximum finger width ("Dis > MaxFingerwidth"). If a finger has not been detected so far during the finger detection process and the magnitude of the second vector exceeds the maximum finger width, it means that it is not possible to use the points (e.g., vertices, first root points, and updated candidate second root points) identified so far to detect a finger. This situation helps to filter out false detections or points that do not match the typical shape or features of a finger. The method can continue to search for candidate fingers based on different convex hull defects.
[0081] Referring to Figure 6 , Fig. 7A and Figure 7BIn some embodiments, performing finger detection on the contour to obtain finger position information also includes: determining the magnitude of the second vector; determining whether the magnitude of the second vector exceeds the minimum finger length; determining the cosine similarity between the first vector and the second vector; determining whether the cosine similarity between the first vector and the second vector is greater than the maximum cosine similarity minus a second threshold; and when it is determined that the magnitude of the second vector is greater than the minimum finger length ("Dis>MinFingerLeng") and the cosine similarity between the first vector and the second vector is greater than the maximum cosine similarity minus the second threshold ("Cos>MaxCosine-Th2"), updating the updated candidate second root point to obtain a second updated candidate second root point, and updating the maximum cosine similarity based on the cosine similarity between the first vector and the second vector (for example, specifying the cosine similarity between the first vector and the second vector as the maximum cosine similarity). Optionally, the second threshold is in the range of 0.05 to 0.35, for example, 0.05 to 0.1, 0.1 to 0.15, 0.15 to 0.2, 0.2 to 0.25, 0.25 to 0.3, or 0.3 to 0.35.
[0082] If the first condition is met (whether the magnitude of the second vector exceeds the minimum finger length), it indicates that the distance between the vertex and the updated candidate second root point meets the minimum finger length requirement. In one example, the minimum finger length is the length of 65mm in the image corresponding to the actual finger. In another example, the minimum finger length is the length of 60mm in the image corresponding to the actual finger. In another example, the minimum finger length is the length of 55mm in the image corresponding to the actual finger. In another example, the minimum finger length is the length of 50mm in the image corresponding to the actual finger. In another example, the minimum finger length is the length of 45mm in the image corresponding to the actual finger. In another example, the minimum finger length is the length of 40mm in the image corresponding to the actual finger. In another example, the minimum finger length is the length of 35mm in the image corresponding to the actual finger.
[0083] The second condition (whether the cosine similarity between the first vector and the second vector is greater than the maximum cosine similarity minus the second threshold) checks whether the similarity between the first vector and the second vector is significant enough to exceed the second threshold.
[0084] When both the first condition and the second condition are satisfied, it indicates that the updated candidate second root point may be the best candidate for the second root point of the finger. These conditions help filter out points that do not meet the length or direction criteria, which are used to confirm the best candidate for the second root point of the finger.
[0085] In some embodiments, when it is determined that the magnitude of the second vector is not greater than the minimum finger length, or the cosine similarity between the first vector and the second vector is not greater than the maximum cosine similarity minus the second threshold, performing finger detection on the contour to obtain finger position information further includes: updating the updated candidate second root point to obtain a second updated candidate second root point. Figure 6 , Fig. 7A and Figure 7B The subsequent related processes described in .
[0086] In some embodiments, when it is determined that the magnitude of the second vector exceeds the minimum finger length and the cosine similarity between the first vector and the second vector is greater than the maximum cosine similarity minus the second threshold, performing finger detection on the contour to obtain finger position information also includes: determining whether the finger has been detected. When it is determined that the finger has been detected, performing finger detection on the contour to obtain finger position information also includes: designating the updated candidate second root point as the updated second root point. Subsequently, the computer-implemented method also includes: updating the updated candidate second root point to obtain a third updated candidate second root point. Repeat Figure 6 , Fig. 7A and Figure 7B The subsequent related processes described in . Fig.10 FIG. 4 shows an updated second root point considered in the fingertip detection process according to some embodiments of the present disclosure. Fig.10 , the updated second root point URP2 is specified in the candidate finger.
[0087] Reference Figure 6 , Fig. 7A and Figure 7BIn some embodiments, performing finger detection on the contour to obtain finger position information also includes: determining the magnitude of the second vector; determining whether the magnitude of the second vector is greater than the maximum finger length; determining whether the magnitude of the second vector exceeds the maximum finger width; determining the cosine similarity between the first vector and the second vector; determining whether a finger has been detected; and determining whether any one of the following three conditions is met: the magnitude of the second vector is greater than the maximum finger length; or the finger has been detected and the cosine similarity between the first vector and the second vector is less than the maximum cosine similarity minus a first threshold; or the finger has not been detected and the magnitude of the second vector exceeds the maximum finger width. In some embodiments, performing a candidate finger search based on at least a far point and a second point to obtain candidate finger information also includes: when it is determined that none of the three conditions are met, determining whether the magnitude of the second vector exceeds the minimum finger length; determining whether the cosine similarity between the first vector and the second vector is greater than the maximum cosine similarity minus a second threshold; and when it is determined that the magnitude of the second vector is greater than the minimum finger length and the cosine similarity between the first vector and the second vector is greater than the maximum cosine similarity minus the second threshold, updating the updated candidate second root point to obtain a second updated candidate second root point, and updating the maximum cosine similarity based on the cosine similarity between the first vector and the second vector (for example, designating the cosine similarity between the first vector and the second vector as the maximum cosine similarity).
[0088] Fig.11 FIG. 4 shows the midline fitting in the fingertip detection process according to some embodiments of the present disclosure. Fig.11 , determining the centerline ML of the finger during the fingertip detection process. Centerline fitting is a process during the fingertip detection process in which the best centerline of the finger is identified. Optionally, the computer-implemented method further includes: optimizing the centerline, for example by adjusting parameters of the centerline, so as to minimize the distance between the centerline and the contour of the finger and ensure that the centerline accurately represents the central axis of the finger.
[0089] In some embodiments, finger deduplication is performed to detect duplicate candidate fingers. For example, convex hull detection according to the present disclosure may result in the detection of multiple convex hull defects. Candidate finger search may be performed for each of the multiple convex hull defects, thereby detecting multiple detected candidate fingers. In one example, two of the multiple detected candidate fingers are duplicated.
[0090] In some embodiments, performing finger deduplication on the detected candidate fingers includes: calculating the intersection-over-union (IOU) of the contours of the two detected candidate fingers; and when determining that the IOU of the contours of the two detected candidate fingers is greater than a threshold, determining that the two detected candidate fingers are duplicates of the same candidate finger. Optionally, the computer-implemented method further includes: determining the finger lengths of the two detected candidate fingers, and deleting the one with the smaller finger length of the two detected candidate fingers.
[0091] In some embodiments, the first contour of the first detected candidate finger of the two detected candidate fingers includes a first candidate root point, a second candidate root point, and a first candidate vertex; the second contour of the second detected candidate finger of the two detected candidate fingers includes a third candidate root point, a fourth candidate root point, and a second candidate vertex. Optionally, the first contour has a first length and the second contour has a second length. Optionally, the intersection between the first contour and the second contour has a third length. Optionally, the intersection ratio of the first contour and the second contour is
[0092] In some embodiments, updating the coordinates of the fingertip point based on the shape and position information of the detected candidate finger includes: determining a line intersecting a first root point and a second root point of the candidate finger; determining a point on the contour of the candidate finger that is the longest distance from the line intersecting the first root point and the second root point; and designating the point on the contour of the candidate finger that is the longest distance from the line intersecting the first root point and the second root point as the updated finger vertex. As used herein, in the step of updating the coordinates of the fingertip point, the "first root point" may be a distant point detected during convex hull defect detection, or may be an updated first root point updated during the candidate finger search. As used herein, in the step of updating the coordinates of the fingertip point, the "second root point" may be a second root point determined according to the steps in the present method, or an updated second root point updated during the candidate finger search.
[0093] In some embodiments, updating the coordinates of the finger root point based on the shape and position information of the detected candidate finger includes: determining the distance between the first root point and the vertex of the candidate finger; determining the distance between the second root point and the vertex of the candidate finger; and adjusting the coordinates of at least one of the first root point and the second root point until the distance between the first root point and the vertex is substantially the same as the distance between the second root point and the vertex. As used herein, in the step of updating the coordinates of the finger root point, the "vertex" may be the second point detected during convex hull defect detection, or may be the updated finger vertex described above. As used herein, the term "substantially the same" means that the difference between two values does not exceed 10% of the base value (e.g., one of the two values), for example, not more than 8%, not more than 6%, not more than 4%, not more than 2%, not more than 1%, not more than 0.5%, not more than 0.1%, not more than 0.05%, and not more than 0.01% of the base value.
[0094] In some embodiments, fitting the midline of a candidate finger includes: determining a line intersecting a first root point and a second root point of the candidate finger; determining a finger region using the line intersecting the first root point and the second root point of the candidate finger and the contour of the candidate finger; and fitting the midline of the finger region using an optimization algorithm. As used herein, in the step of updating the coordinates of the fingertip point, the "first root point" may be a distant point detected during convex hull defect detection, or may be an updated first root point updated during the candidate finger search. As used herein, in the step of updating the coordinates of the fingertip point, the "second root point" may be a second root point determined according to the steps in the present method, or may be an updated second root point updated during the candidate finger search. Examples of optimization algorithms include a least squares algorithm and a gradient descent algorithm. In some embodiments, the midline of the candidate finger is represented as:
[0095]
[0096] Wherein, distance((x, y), line) represents the distance between point (x, y) and the midline; N(finger area) represents the number of points in the finger area. Optionally, the midline intersects the contour of the candidate finger at the fingertip point and the finger base point.
[0097] In some embodiments, a filtering process is performed to remove false detections from detected fingers, including at least one of: determining a candidate finger length by determining a distance between a candidate vertex and a candidate root point; determining a candidate finger width by determining a distance between two candidate root points; or determining an aspect ratio of a candidate finger by dividing the candidate finger length by the candidate finger width. Optionally, the computer-implemented method further includes: upon determining that the candidate finger length is less than a minimum finger length, designating the candidate finger as a falsely detected finger. Optionally, the computer-implemented method further includes: upon determining that the candidate finger width is greater than a maximum finger width, designating the candidate finger as a falsely detected finger. Optionally, the computer-implemented method further includes: upon determining that the candidate finger width is greater than a maximum finger width, designating the candidate finger as a falsely detected finger. Optionally, the computer-implemented method further includes: upon determining that the aspect ratio of the candidate finger is less than a minimum aspect ratio, designating the candidate finger as a falsely detected finger.
[0098] In another aspect, the present disclosure provides an apparatus for detecting a fingertip in an image. Fig.12 is a schematic diagram showing a device for detecting a fingertip in some embodiments of the present disclosure. Fig.12 , in some embodiments, the device includes a processor 1002, a storage medium 1004, a display 1006, a communication module 1008, a database 1010, a peripheral device 1012, and a camera 1014. Certain devices may be omitted, and other devices may be included to better describe the relevant embodiments. The device may include any appropriate type of display panel, such as a plasma display panel, a liquid crystal display (LCD) panel, a touch screen display panel, a projection display panel, a non-intelligent display panel, an intelligent display panel, etc. The device may also include other computing systems, such as a personal computer (PC), a tablet or a portable computer, or a smart phone, etc. The device may be any appropriate content presentation device capable of presenting any appropriate content. The user may interact with the device to perform other activities of interest.
[0099] The processor 1002 may include any appropriate one or more processors. In addition, the processor 1002 may include multiple cores for multi-threading or parallel processing. The processor 1002 may execute a sequence of computer program instructions to perform various processes. The storage medium 1004 may include a memory module, such as a ROM, a RAM, a flash memory module, and a large-capacity memory, such as a CD-ROM and a hard disk. The storage medium 1004 may store a computer program for implementing various processes when the computer program is executed by the processor 1002. For example, the storage medium 1004 may store a computer program for implementing various algorithms when the processor 1002 executes the computer program.
[0100] In addition, the communication module 1008 may include certain network interface devices for establishing a connection through a communication network (e.g., a TV cable network, a wireless network, the Internet, etc.) The database 1010 may include one or more databases for storing certain data and for performing certain operations on the stored data, such as database searches.
[0101] Display 1006 can provide information to a user. Display 1006 can include any suitable type of computer display device or electronic device display, such as an LCD or OLED based device. Peripheral devices 1012 can include various sensors and other I / O devices, such as a keyboard and mouse.
[0102] Examples of suitable devices for detecting fingertips include, but are not limited to, electronic paper, mobile phones, tablet computers, televisions, monitors, notebook computers, digital photo albums, GPS, etc. Optionally, the device is an organic light emitting diode device. Optionally, the device is a micro light emitting diode device. Optionally, the device is a mini light emitting diode device. In one example, the device for detecting fingertips is an interactive learning device (e.g., a so-called point-and-read device) that is configured to detect a reader's fingertip and is configured to perform one or more functions when the reader's fingertip is detected, for example, reading out the text pointed to by the fingertip.
[0103] In some embodiments, the device includes: a memory; and one or more processors. Optionally, the memory is interconnected with the one or more processors. Optionally, the memory stores computer executable instructions for controlling the one or more processors to: obtain the outline of the hand in the image; perform finger detection on the outline to obtain finger position information. Optionally, in order to perform finger detection, the memory stores computer executable instructions for controlling the one or more processors to: perform convex hull detection; perform convex hull defect detection to obtain at least one convex hull defect, wherein each convex hull defect in the at least one convex hull defect includes a far point, a first point, and a second point, and the far point, the first point, and the second point are points on the outline; perform a candidate finger search based on at least the far point and the second point to obtain finger position information.
[0104] In some embodiments, in order to perform a candidate finger search based on at least a far point and a second point to obtain candidate finger information, the memory further stores computer executable instructions for controlling one or more processors to: designate the far point as a first root point; designate the second point as a vertex; and search for the second root point. Optionally, in order to search for the second root point, the memory further stores computer executable instructions for controlling one or more processors to: select a point on the contour as an updated candidate second root point.
[0105] In some embodiments, in order to perform a candidate finger search based on at least a far point and a second point to obtain candidate finger information, the memory also stores computer executable instructions for controlling one or more processors to: determine a first vector between a vertex and a first root point; and determine a second vector between the vertex and an updated candidate second root point.
[0106] In some embodiments, in order to perform a candidate finger search based on at least a far point and a second point to obtain candidate finger information, the memory also stores computer executable instructions for controlling one or more processors to: determine the magnitude of the second vector; and determine whether the magnitude of the second vector exceeds the minimum finger length.
[0107] In some embodiments, in order to perform a candidate finger search based on at least a far point and a second point to obtain candidate finger information, the memory also stores computer executable instructions for controlling one or more processors to: determine the cosine similarity between the first vector and the second vector; and determine whether the cosine similarity between the first vector and the second vector is greater than the maximum cosine similarity minus a second threshold.
[0108] In some embodiments, in order to perform a candidate finger search based on at least a far point and a second point to obtain candidate finger information, the memory also stores computer executable instructions for controlling one or more processors to: traverse multiple points on the contour to determine whether the condition that each of the multiple points is a second root point is met.
[0109] In some embodiments, in order to perform a candidate finger search based on at least a far point and a second point to obtain candidate finger information, the memory also stores computer executable instructions for controlling one or more processors to: determine the magnitude of the second vector; determine whether the magnitude of the second vector is greater than the maximum finger length; and stop traversing multiple points on the contour when it is determined that the magnitude of the second vector is greater than the maximum finger length.
[0110] In some embodiments, in order to perform a candidate finger search based on at least a far point and a second point to obtain candidate finger information, the memory also stores computer executable instructions for controlling one or more processors to: determine the cosine similarity between the first vector and the second vector; determine whether a finger has been detected; and stop traversing multiple points on the contour when it is determined that the finger has been detected and the cosine similarity between the first vector and the second vector is less than the maximum cosine similarity minus a first threshold.
[0111] In some embodiments, in order to perform a candidate finger search based on at least a far point and a second point to obtain candidate finger information, the memory also stores computer executable instructions for controlling one or more processors to: determine whether a finger has been detected; determine the magnitude of a second vector; determine whether the magnitude of the second vector exceeds the maximum finger width; and stop traversing multiple points on the contour when it is determined that a finger has not been detected and the magnitude of the second vector exceeds the maximum finger width.
[0112] In some embodiments, in order to perform a candidate finger search based on at least a far point and a second point to obtain candidate finger information, the memory also stores computer executable instructions for controlling one or more processors to: determine the magnitude of the second vector; determine whether the magnitude of the second vector exceeds the minimum finger length; determine the cosine similarity between the first vector and the second vector; determine whether the cosine similarity between the first vector and the second vector is greater than the maximum cosine similarity minus a second threshold; and when it is determined that the magnitude of the second vector is greater than the minimum finger length and the cosine similarity between the first vector and the second vector is greater than the maximum cosine similarity minus the second threshold, update the updated candidate second root point to obtain a second updated candidate second root point, and update the maximum cosine similarity based on the cosine similarity between the first vector and the second vector (for example, designate the cosine similarity between the first vector and the second vector as the maximum cosine similarity).
[0113] In some embodiments, in order to perform a candidate finger search based on at least a far point and a second point to obtain candidate finger information, the memory also stores computer executable instructions for controlling one or more processors to: determine the magnitude of the second vector; determine whether the magnitude of the second vector is greater than the maximum finger length; determine whether the magnitude of the second vector exceeds the maximum finger width; determine the cosine similarity between the first vector and the second vector; determine whether a finger has been detected; and determine whether any one of the following three conditions is met: the magnitude of the second vector is greater than the maximum finger length; or the finger has been detected and the cosine similarity between the first vector and the second vector is less than the maximum cosine similarity minus a first threshold; or the finger has not been detected and the magnitude of the second vector exceeds the maximum finger width.
[0114] In some embodiments, in order to perform a candidate finger search based on at least a far point and a second point to obtain candidate finger information, the memory also stores computer executable instructions for controlling one or more processors to: determine whether the magnitude of the second vector exceeds the minimum finger length; determine whether the cosine similarity between the first vector and the second vector is greater than the maximum cosine similarity minus a second threshold; and when it is determined that the magnitude of the second vector is greater than the minimum finger length and the cosine similarity between the first vector and the second vector is greater than the maximum cosine similarity minus the second threshold, update the updated candidate second root point to obtain a second updated candidate second root point, and update the maximum cosine similarity based on the cosine similarity between the first vector and the second vector (for example, designate the cosine similarity between the first vector and the second vector as the maximum cosine similarity).
[0115] In some embodiments, in order to perform a candidate finger search based on at least the far point and the second point to obtain candidate finger information, the memory further stores computer executable instructions for controlling one or more processors to: update the coordinates of the fingertip point. In some embodiments, in order to update the coordinates of the fingertip point, the memory further stores computer executable instructions for controlling one or more processors to: determine a line intersecting with a first root point and a second root point of the candidate finger; determine a point on the contour of the candidate finger that has the largest distance from the line intersecting with the first root point and the second root point; and designate the point on the contour of the candidate finger that has the largest distance from the line intersecting with the first root point and the second root point as the updated finger vertex.
[0116] In some embodiments, in order to perform a candidate finger search based on at least a distant point and a second point to obtain candidate finger information, the memory also stores computer executable instructions for controlling one or more processors to: update the coordinates of the finger root point. In some embodiments, in order to update the coordinates of the finger root point, the memory also stores computer executable instructions for controlling one or more processors to: determine the distance between the first root point and the vertex of the candidate finger; determine the distance between the second root point and the vertex of the candidate finger; and adjust the coordinates of at least one of the first root point and the second root point until the distance between the first root point and the vertex is substantially the same as the distance between the second root point and the vertex. As used herein, in the step of updating the coordinates of the finger root point, the "vertex" may be the second point detected during the convex hull defect detection, or may be the updated finger vertex described above.
[0117] In some embodiments, in order to perform a candidate finger search based on at least the far point and the second point to obtain candidate finger information, the memory further stores computer executable instructions for controlling one or more processors to: fit a midline of the candidate finger.
[0118] In some embodiments, in order to fit the midline of the candidate finger, the memory also stores computer executable instructions for controlling one or more processors to: determine a line intersecting the first root point and the second root point of the candidate finger; determine the finger area using the line intersecting the first root point and the second root point of the candidate finger and the contour of the candidate finger; and fit the midline of the finger area using an optimization algorithm.
[0119] In some embodiments, the memory further stores computer executable instructions for controlling one or more processors to: perform finger deduplication on the detected candidate fingers. Optionally, in order to perform finger deduplication on the detected candidate fingers, the memory further stores computer executable instructions for controlling one or more processors to: calculate the intersection-and-union ratio of the contours of the two detected candidate fingers; and when it is determined that the intersection-and-union ratio of the contours of the two detected candidate fingers is greater than a threshold, determine that the two detected candidate fingers are duplicates of the same candidate finger.
[0120] In some embodiments, in order to calculate the intersection-and-union ratio of the contours of two detected candidate fingers, the memory also stores computer executable instructions for controlling one or more processors to: determine a first contour of a first detected candidate finger of the two detected candidate fingers, which includes a first candidate root point, a second candidate root point, and a first candidate vertex; determine a second contour of a second detected candidate finger of the two detected candidate fingers, which includes a third candidate root point, a fourth candidate root point, and a second candidate vertex; determine a first length of the first contour; determine a second length of the second contour; determine a third length of the intersection between the first contour and the second contour; and calculate the intersection-and-union ratio of the contours of the two detected candidate fingers by the following formula:
[0121] In some embodiments, the memory further stores computer executable instructions for controlling one or more processors to: perform a filtering process to remove false detections of detected fingers. Optionally, in order to perform a filtering process to remove false detections of detected fingers, the memory further stores computer executable instructions for controlling one or more processors to determine at least one of: a candidate finger length determined by determining a distance between a candidate vertex and a candidate root point; a candidate finger width determined by determining a distance between two candidate root points; or an aspect ratio of a candidate finger determined by dividing the candidate finger length by the candidate finger width.
[0122] In some embodiments, the memory also stores computer executable instructions for controlling one or more processors to: designate the candidate finger as a falsely detected finger when it is determined that the length of the candidate finger is less than the minimum finger length; designate the candidate finger as a falsely detected finger when it is determined that the width of the candidate finger is greater than the maximum finger width; or designate the candidate finger as a falsely detected finger when it is determined that the aspect ratio of the candidate finger is less than the minimum aspect ratio.
[0123] On the other hand, the present disclosure provides a computer program product comprising a non-transitory tangible computer-readable medium having computer-readable instructions thereon. In some embodiments, the computer-readable instructions are executable by one or more processors to cause the one or more processors to perform: obtaining an outline of a hand in an image; performing finger detection on the outline to obtain finger position information. Optionally, performing finger detection includes: performing convex hull detection; performing convex hull defect detection to obtain at least one convex hull defect, wherein each convex hull defect in the at least one convex hull defect includes a far point, a first point, and a second point, and the far point, the first point, and the second point are points on the outline; performing a candidate finger search based on at least the far point and the second point to obtain finger position information.
[0124] In some embodiments, in order to perform a candidate finger search based on at least a far point and a second point to obtain candidate finger information, the computer readable instructions can be executed by one or more processors to further cause the one or more processors to perform: designating the far point as a first root point; designating the second point as a vertex; and searching for the second root point. In some embodiments, in order to search for the second root point, the computer readable instructions can be executed by one or more processors to further cause the one or more processors to perform: selecting a point on the contour as an updated candidate second root point.
[0125] In some embodiments, in order to perform a candidate finger search based on at least a far point and a second point to obtain candidate finger information, computer readable instructions may be executed by one or more processors to further cause one or more processors to perform: determining a first vector between a vertex and a first root point; and determining a second vector between the vertex and an updated candidate second root point.
[0126] In some embodiments, in order to perform a candidate finger search based on at least a far point and a second point to obtain candidate finger information, computer readable instructions may be executed by one or more processors to further cause one or more processors to perform: determining the magnitude of the second vector; and determining whether the magnitude of the second vector exceeds the minimum finger length.
[0127] In some embodiments, in order to perform a candidate finger search based on at least a far point and a second point to obtain candidate finger information, computer readable instructions may be executed by one or more processors to further cause the one or more processors to perform: determining a cosine similarity between a first vector and a second vector; and determining whether the cosine similarity between the first vector and the second vector is greater than a maximum cosine similarity minus a second threshold.
[0128] In some embodiments, in order to perform a candidate finger search based on at least a far point and a second point to obtain candidate finger information, computer-readable instructions may be executed by one or more processors to further cause one or more processors to perform: traversing multiple points on the contour to determine whether the condition that each of the multiple points is a second root point is satisfied.
[0129] In some embodiments, in order to perform a candidate finger search based on at least a far point and a second point to obtain candidate finger information, computer-readable instructions may be executed by one or more processors to further cause the one or more processors to perform: determining the magnitude of the second vector; determining whether the magnitude of the second vector is greater than the maximum finger length; and when it is determined that the magnitude of the second vector is greater than the maximum finger length, stop traversing multiple points on the contour.
[0130] In some embodiments, in order to perform a candidate finger search based on at least a distant point and a second point to obtain candidate finger information, computer-readable instructions may be executed by one or more processors to further cause the one or more processors to perform: determining a cosine similarity between a first vector and a second vector; determining whether a finger has been detected; and stopping traversing multiple points on the contour when it is determined that a finger has been detected and the cosine similarity between the first vector and the second vector is less than a maximum cosine similarity minus a first threshold.
[0131] In some embodiments, in order to perform a candidate finger search based on at least a far point and a second point to obtain candidate finger information, computer readable instructions may be executed by one or more processors to further cause the one or more processors to perform: determining whether a finger has been detected; determining the magnitude of a second vector; determining whether the magnitude of the second vector exceeds the maximum finger width; and when it is determined that a finger has not been detected and the magnitude of the second vector exceeds the maximum finger width, stop traversing multiple points on the contour.
[0132] In some embodiments, in order to perform a candidate finger search based on at least a far point and a second point to obtain candidate finger information, computer-readable instructions may be executed by one or more processors to further cause the one or more processors to perform: determining the magnitude of the second vector; determining whether the magnitude of the second vector exceeds the minimum finger length; determining the cosine similarity between the first vector and the second vector; determining whether the cosine similarity between the first vector and the second vector is greater than the maximum cosine similarity minus a second threshold; and when it is determined that the magnitude of the second vector is greater than the minimum finger length and the cosine similarity between the first vector and the second vector is greater than the maximum cosine similarity minus the second threshold, updating the updated candidate second root point to obtain a second updated candidate second root point, and updating the maximum cosine similarity based on the cosine similarity between the first vector and the second vector (for example, designating the cosine similarity between the first vector and the second vector as the maximum cosine similarity).
[0133] In some embodiments, in order to perform a candidate finger search based on at least a far point and a second point to obtain candidate finger information, computer-readable instructions may be executed by one or more processors to further cause one or more processors to perform: determining the magnitude of the second vector; determining whether the magnitude of the second vector is greater than the maximum finger length; determining whether the magnitude of the second vector exceeds the maximum finger width; determining the cosine similarity between the first vector and the second vector; determining whether a finger has been detected; and determining whether any one of the following three conditions is met: the magnitude of the second vector is greater than the maximum finger length; or the finger has been detected and the cosine similarity between the first vector and the second vector is less than the maximum cosine similarity minus a first threshold; or the finger has not been detected and the magnitude of the second vector exceeds the maximum finger width.
[0134] In some embodiments, in order to perform a candidate finger search based on at least a far point and a second point to obtain candidate finger information, computer-readable instructions may be executed by one or more processors to further cause the one or more processors to perform: when it is determined that none of the three conditions are met, determining whether the magnitude of the second vector exceeds the minimum finger length; determining whether the cosine similarity between the first vector and the second vector is greater than the maximum cosine similarity minus a second threshold; and when it is determined that the magnitude of the second vector is greater than the minimum finger length and the cosine similarity between the first vector and the second vector is greater than the maximum cosine similarity minus the second threshold, updating the updated candidate second root point to obtain a second updated candidate second root point, and updating the maximum cosine similarity based on the cosine similarity between the first vector and the second vector (for example, designating the cosine similarity between the first vector and the second vector as the maximum cosine similarity).
[0135] In some embodiments, in order to perform a candidate finger search based on at least a far point and a second point to obtain candidate finger information, the computer-readable instructions may be executed by one or more processors to further cause the one or more processors to perform: updating the coordinates of the fingertip point. In some embodiments, in order to update the coordinates of the fingertip point, the computer-readable instructions may be executed by one or more processors to further cause the one or more processors to perform: determining a line intersecting with a first root point and a second root point of the candidate finger; determining a point on the contour of the candidate finger that has the largest distance from the line intersecting with the first root point and the second root point; and designating the point on the contour of the candidate finger that has the largest distance from the line intersecting with the first root point and the second point as the updated finger vertex.
[0136] In some embodiments, in order to perform a candidate finger search based on at least a distant point and a second point to obtain candidate finger information, the computer-readable instructions may be executed by one or more processors to further cause the one or more processors to perform: updating the coordinates of the finger root point. In some embodiments, in order to update the coordinates of the finger root point, the computer-readable instructions may be executed by one or more processors to further cause the one or more processors to perform: determining the distance between the first root point and the vertex of the candidate finger; determining the distance between the second root point and the vertex of the candidate finger; and adjusting the coordinates of at least one of the first root point and the second root point until the distance between the first root point and the vertex is substantially the same as the distance between the second root point and the vertex. As used herein, in the step of updating the coordinates of the finger root point, the "vertex" may be the second point detected during the convex hull defect detection, or may be the updated finger vertex described above.
[0137] In some embodiments, to perform a candidate finger search based on at least the far point and the second point to obtain candidate finger information, the computer readable instructions may be executed by one or more processors to further cause the one or more processors to perform: fitting a midline of the candidate finger.
[0138] In some embodiments, in order to fit the midline of the candidate finger, the computer-readable instructions may be executed by one or more processors to further cause the one or more processors to perform: determining a line intersecting the first root point and the second root point of the candidate finger; determining the finger area using the line intersecting the first root point and the second root point of the candidate finger and the contour of the candidate finger; and fitting the midline of the finger area using an optimization algorithm. As used herein, in the step of updating the coordinates of the fingertip point, the "first root point" may be a distant point detected during convex hull defect detection, or may be an updated first root point updated during the candidate finger search. As used herein, in the step of updating the coordinates of the fingertip point, the "second root point" may be a second root point determined according to the steps in the present method, or an updated second root point updated during the candidate finger search.
[0139] In some embodiments, the computer readable instructions may be executed by one or more processors to further cause the one or more processors to perform finger deduplication on the detected candidate fingers. Optionally, performing finger deduplication on the detected candidate fingers includes: calculating an intersection-and-union ratio of the contours of the two detected candidate fingers; and when determining that the intersection-and-union ratio of the contours of the two detected candidate fingers is greater than a threshold, determining that the two detected candidate fingers are duplicates of the same candidate finger.
[0140] In some embodiments, the computer-readable instructions may be executed by one or more processors to further cause the one or more processors to perform: determining a first contour of a first detected candidate finger of two detected candidate fingers, which includes a first candidate root point, a second candidate root point, and a first candidate vertex; determining a second contour of a second detected candidate finger of the two detected candidate fingers, which includes a third candidate root point, a fourth candidate root point, and a second candidate vertex; determining a first length of the first contour; determining a second length of the second contour; determining a third length of the intersection between the first contour and the second contour; and calculating the intersection-over-union ratio of the contours of the two detected candidate fingers by the following formula:
[0141] In some embodiments, the computer readable instructions may be executed by one or more processors to further cause the one or more processors to perform a filtering process to remove false detections in the detected fingers. Optionally, performing the filtering process to remove false detections in the detected fingers includes at least one of the following: determining a candidate finger length by determining a distance between a candidate vertex and a candidate root point; determining a candidate finger width by determining a distance between two candidate root points; or determining an aspect ratio of the candidate finger by dividing the candidate finger length by the candidate finger width.
[0142] Optionally, performing a filtering process to remove false detections from detected fingers includes at least one of the following: when it is determined that the candidate finger length is less than the minimum finger length, designating the candidate finger as a falsely detected finger; when it is determined that the candidate finger width is greater than the maximum finger width, designating the candidate finger as a falsely detected finger; or when it is determined that the aspect ratio of the candidate finger is less than the minimum aspect ratio, designating the candidate finger as a falsely detected finger.
[0143] For the purpose of illustration and description, the above description of the embodiments of the present invention has been given. It is not exhaustive, nor is it intended to limit the present invention to the precise form or exemplary embodiments disclosed. Therefore, the foregoing description should be considered illustrative rather than restrictive. Obviously, many modifications and variations will be apparent to those skilled in the art. The embodiments are selected and described to explain the principles of the present invention and its best mode practical application, so that those skilled in the art can understand the various embodiments of the present invention and the various modifications suitable for the specific use or implementation under consideration. The scope of the present invention is intended to be defined by the appended claims and their equivalents, wherein all terms are meant to have the broadest reasonable meaning unless otherwise stated. Therefore, the term "the present invention" and the like do not necessarily limit the scope of the claims to a specific embodiment, and the reference to the exemplary embodiments of the present invention does not mean a limitation of the present invention, and such limitation should not be inferred. The present invention is limited only by the spirit and scope of the appended claims. In addition, these claims may involve the use of "first", "second", etc., followed by a noun or element. These terms should be understood as nomenclature, and should not be interpreted as limiting the number of elements modified by these nomenclatures, unless a specific number has been given. Any advantages and benefits described may not apply to all embodiments of the present invention. It should be understood that those skilled in the art may make changes to the described embodiments without departing from the scope of the present invention as defined by the appended claims. In addition, the elements and assemblies in this disclosure are not intended to be contributed to the public, regardless of whether the elements or assemblies are clearly described in the appended claims.
Claims
1. A computer-implemented method for detecting fingertips in an image, include: Obtaining a contour of a hand in the image; as well as performing finger detection on the contour to obtain finger position information; Among them, performing finger detection includes: Perform convex hull detection; performing convex hull defect detection to obtain at least one convex hull defect, wherein each convex hull defect in the at least one convex hull defect comprises a far point and a second point, the far point and the second point being points on the contour; and A candidate finger search is performed based on at least the far point and the second point to obtain the finger position information.
2. The computer-implemented method of claim 1, in, Performing a candidate finger search based on at least the far point and the second point to obtain candidate finger information includes: designating the far point as a first root point; designating the second point as a vertex; and Search for the second root point; Wherein, searching for the second root point includes: selecting a point on the contour as an updated candidate second root point.
3. The computer-implemented method of claim 2, in, Performing a candidate finger search based on at least the far point and the second point to obtain candidate finger information further includes: determining a first vector between the vertex and the first root point; and A second vector between the vertex and the updated candidate second root point is determined.
4. The computer-implemented method of claim 3, in, Performing a candidate finger search based on at least the far point and the second point to obtain candidate finger information further includes: determining a magnitude of the second vector; and A determination is made as to whether the magnitude of the second vector exceeds a minimum finger length.
5. The computer-implemented method of claim 3, in, Performing a candidate finger search based on at least the far point and the second point to obtain candidate finger information further includes: determining a cosine similarity between the first vector and the second vector; and It is determined whether the cosine similarity between the first vector and the second vector is greater than a maximum cosine similarity minus a second threshold.
6. The computer-implemented method of claim 3, in, Performing a candidate finger search based on at least the far point and the second point to obtain candidate finger information also includes: traversing multiple points on the contour to determine whether each of the multiple points satisfies the condition that it is the second root point.
7. The computer-implemented method of claim 6, in, Performing a candidate finger search based on at least the far point and the second point to obtain candidate finger information further includes: determining a magnitude of the second vector; determining whether the magnitude of the second vector is greater than a maximum finger length; and Upon determining that the magnitude of the second vector is greater than the maximum finger length, traversing the plurality of points on the contour is stopped.
8. The computer-implemented method of claim 6, in, Performing a candidate finger search based on at least the far point and the second point to obtain candidate finger information further includes: determining a cosine similarity between the first vector and the second vector; determining whether a finger has been detected; and When it is determined that a finger has been detected and the cosine similarity between the first vector and the second vector is less than the maximum cosine similarity minus a first threshold, traversing the plurality of points on the contour is stopped.
9. The computer-implemented method of claim 6, in, Performing a candidate finger search based on at least the far point and the second point to obtain candidate finger information further includes: Determine whether a finger has been detected; determining a magnitude of the second vector; determining whether the magnitude of the second vector exceeds a maximum finger width; and When it is determined that no finger is detected and the magnitude of the second vector exceeds the maximum finger width, traversing the plurality of points on the contour is stopped.
10. The computer-implemented method of claim 6, in, Performing a candidate finger search based on at least the far point and the second point to obtain candidate finger information further includes: determining a magnitude of the second vector; determining whether the magnitude of the second vector exceeds a minimum finger length; determining a cosine similarity between the first vector and the second vector; determining whether the cosine similarity between the first vector and the second vector is greater than a maximum cosine similarity minus a second threshold; and When it is determined that the magnitude of the second vector is greater than the minimum finger length and the cosine similarity between the first vector and the second vector is greater than the maximum cosine similarity minus the second threshold, the updated candidate second root point is updated, and based on the cosine similarity between the first vector and the second vector, the maximum cosine similarity is updated.
11. The computer-implemented method of claim 6, in, Performing a candidate finger search based on at least the far point and the second point to obtain candidate finger information further includes: determining a magnitude of the second vector; determining whether the magnitude of the second vector is greater than a maximum finger length; determining whether the magnitude of the second vector exceeds a maximum finger width; determining a cosine similarity between the first vector and the second vector; determining whether a finger has been detected; and Determine whether any of the following three conditions are met: The magnitude of the second vector is greater than the maximum finger length; or A finger has been detected and the cosine similarity between the first vector and the second vector is less than the maximum cosine similarity minus a first threshold; or No finger is detected and the magnitude of the second vector exceeds the maximum finger width; The method further comprises, when it is determined that none of the three conditions are satisfied, performing a candidate finger search based on at least the far point and the second point to obtain candidate finger information: determining whether the magnitude of the second vector exceeds a minimum finger length; determining whether the cosine similarity between the first vector and the second vector is greater than the maximum cosine similarity minus a second threshold; and When it is determined that the magnitude of the second vector is greater than the minimum finger length and the cosine similarity between the first vector and the second vector is greater than the maximum cosine similarity minus the second threshold, the updated candidate second root point is updated to obtain a second updated candidate second root point, and the maximum cosine similarity is updated based on the cosine similarity between the first vector and the second vector.
12. A computer-implemented method according to any one of claims 1 to 11, in, Performing a candidate finger search based on at least the far point and the second point to obtain candidate finger information also includes: updating the coordinates of the fingertip point; Wherein, updating the coordinates of the fingertip point includes: Determine a line that intersects the first and second root points of the candidate finger; determining a point on the contour of the candidate finger that is the most distant from the line intersecting the first root point and the second root point; and The point on the contour of the candidate finger that is the longest in distance from the line intersecting the first root point and the second root point is designated as an updated finger vertex.
13. A computer-implemented method according to any one of claims 1 to 12, in, Performing a candidate finger search based on at least the far point and the second point to obtain candidate finger information also includes: updating the coordinates of the finger root point; Wherein, updating the coordinates of the root point includes: Determine the distance between the first root point and the vertex of the candidate finger; determining a distance between the second root point and the vertex of the candidate finger; and The coordinates of at least one of the first root point and the second root point are adjusted until a distance between the first root point and the vertex is substantially the same as a distance between the second root point and the vertex.
14. A computer-implemented method according to any one of claims 1 to 13, in, Performing a candidate finger search based on at least the far point and the second point to obtain candidate finger information also includes: fitting a center line of the candidate finger.
15. The computer-implemented method of claim 14, in, Fitting the midline of the candidate finger comprises: Determine a line that intersects a first root point and a second root point of the candidate finger; determining a finger area using the line intersecting the first root point and the second root point of the candidate finger and the outline of the candidate finger; and The midline of the finger region is fitted using an optimization algorithm.
16. The computer-implemented method of any one of claims 1 to 15, further comprising: include: Perform finger deduplication on the detected candidate fingers; The finger deduplication process for the detected candidate fingers includes: Calculating the intersection-over-union ratio of the contours of two detected candidate fingers; and When it is determined that the intersection-over-unit ratio of the contours of the two detected candidate fingers is greater than a threshold, it is determined that the two detected candidate fingers are repetitions of the same candidate finger.
17. The computer-implemented method of claim 16, in, Calculating the intersection-over-union of two detected candidate finger contours includes: determining a first profile of a first detected candidate finger of the two detected candidate fingers, comprising a first candidate root point, a second candidate root point, and a first candidate vertex; determining a second profile of a second detected candidate finger of the two detected candidate fingers, the profile comprising a third candidate root point, a fourth candidate root point, and a second candidate vertex; determining a first length of the first contour; determining a second length of the second contour; determining a third length of an intersection between the first contour and the second contour; and The intersection-over-union ratio of the contours of two detected candidate fingers is calculated by the following formula:
18. The computer-implemented method of any one of claims 1 to 17, further comprising: include: performing a filtering process to remove false detections among the detected fingers; Wherein, performing a filtering process to remove false detections in the detected fingers comprises at least one of the following: Determine the candidate finger length by determining the distance between the candidate vertex and the candidate root point; Determine a candidate finger width by determining the distance between two candidate root points; or The aspect ratio of the candidate finger is determined by dividing the candidate finger length by the candidate finger width.
19. The computer-implemented method of claim 18, in, Performing a filtering process to remove false detections in detected fingers also includes at least one of: When it is determined that the length of the candidate finger is less than the minimum finger length, designating the candidate finger as a falsely detected finger; When it is determined that the candidate finger width is greater than the maximum finger width, designating the candidate finger as a falsely detected finger; or When it is determined that the aspect ratio of the candidate finger is less than a minimum aspect ratio, the candidate finger is designated as a falsely detected finger.
20. A device for detecting fingertips in an image, include: Memory; as well as one or more processors; wherein the memory and the one or more processors are connected to each other; and The memory stores computer executable instructions for controlling the one or more processors to: Obtaining a contour of a hand in the image; and performing finger detection on the contour to obtain finger position information; Wherein, in order to perform finger detection, the memory stores computer executable instructions for controlling the one or more processors to: Perform convex hull detection; performing convex hull defect detection to obtain at least one convex hull defect, wherein each convex hull defect in the at least one convex hull defect comprises a far point and a second point, the far point and the second point being points on the contour; and A candidate finger search is performed based on at least the far point and the second point to obtain the finger position information.
21. A computer program product comprising a non-transitory tangible computer readable medium having computer readable instructions thereon, the computer readable instructions executable by a processor to cause the processor to perform: Get the outline of the hand in the image ; as well as performing finger detection on the contour to obtain finger position information; in, Performing finger detection involves: Perform convex hull detection; performing convex hull defect detection to obtain at least one convex hull defect, wherein each convex hull defect in the at least one convex hull defect comprises a far point and a second point, the far point and the second point being points on the contour; and A candidate finger search is performed based on at least the far point and the second point to obtain the finger position information.
22. A computer-implemented method for searching for fingers in an image, include: Obtaining a contour of a hand in the image; as well as performing finger detection on the contour to obtain finger position information; Among them, performing finger detection includes: Perform convex hull detection; performing convex hull defect detection to obtain at least one convex hull defect, wherein each convex hull defect in the at least one convex hull defect comprises a far point and a second point, the far point and the second point being points on the contour; and A finger search is performed based on at least the far point and the second point.
23. A computer-implemented method for detecting fingertips in an image, include: Obtaining a contour of a hand in the image; as well as performing finger detection on the contour to obtain finger position information; Among them, performing finger detection includes: Perform convex hull detection; performing convex hull defect detection to obtain at least one convex hull defect, wherein each convex hull defect in the at least one convex hull defect comprises a far point and a second point, the far point and the second point being points on the contour; and The finger position information is obtained based on at least the far point and the second point.