Hand depth rapid calculation method, system and device and storage medium
By reducing the hand area and calculating the parallax, the problem of intensive gesture recognition of binocular cameras is solved, and efficient real-time processing and cost reduction of gesture recognition is achieved.
Patent Information
- Application Number
- CN202411229770.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-09-03
- Publication Date
- 2024-12-20
AI Technical Summary
Existing binocular camera gesture recognition technology is computationally intensive and requires dedicated Asic chips or hardware, resulting in high costs and limited application.
By identifying and reducing the hand area, calculate the parallax to obtain the hand depth value, reduce the amount of search and reconstruction calculation, avoid the use of dedicated hardware, and calculate the hand depth in real time.
It reduces the computational volume and cost, realizes efficient real-time processing of gesture recognition, and is suitable for non-homologous binocular cameras, improving processing efficiency and economicality.
Smart Images

Figure CN119169662A_ABST
Abstract
Description
Background Art
[0002] In gesture recognition, depth information is very beneficial for improving the performance of gesture recognition. It can provide more spatial context, reduce the ambiguity of two-dimensional images, and improve the robustness of the algorithm under various environmental conditions.
[0003] The main functions of depth information are:
[0004] 1. Added spatial information: Depth data adds an extra dimension to gestures, helping the algorithm understand the shape and movement of gestures in space.
[0005] 2. Improve robustness: In environments with complex backgrounds or changing lighting, depth information can help the algorithm better distinguish between hands and background.
[0006] 3. Reduce ambiguity: When only two-dimensional information is available, some gestures may look similar. Depth data can help resolve this visual ambiguity and improve the accuracy of gesture recognition.
[0007] 4. Handling occlusion: Self-occlusion, which is common in gestures (e.g. one finger occluding another finger), is easier to distinguish and handle in 3D space.
[0008] Binocular cameras can obtain dense depth through binocular stereo matching. Unlike tof or monocular structured light depth cameras, binocular cameras do not require special hardware except for the two cameras, so their hardware cost is relatively low, and they have good autonomy and flexibility, so they are widely applicable. However, their disadvantages are also obvious. The binocular stereo matching algorithm is computationally intensive and requires a lot of computing resources. Therefore, in actual use, dedicated Asic chips or dedicated hardware are generally required for depth calculation, which increases the cost.
[0009] The disclosure of the above background technology content is only used to assist in understanding the inventive concept and technical solution of the present invention. It does not necessarily belong to the prior art of this patent application. In the absence of clear evidence that the above content has been disclosed on the filing date of this patent application, the above background technology should not be used to evaluate the novelty and creativity of the present application. Summary of the invention
[0010] To this end, the present invention identifies the hand area, reduces the hand area, and obtains the depth value of the hand area by calculating the parallax, which greatly reduces the amount of calculation for search and reconstruction. There is no need to use a dedicated Asic chip or dedicated hardware, and the depth of the hand is calculated in real time to provide assistance for subsequent gesture recognition.
[0011] In a first aspect, the present invention provides a method for quickly calculating hand depth, characterized by comprising:
[0012] Step S1: obtaining a first image and a second image; wherein the first image and the second image are obtained by a binocular camera;
[0013] Step S2: Detecting a first hand region on the first image;
[0014] Step S3: reducing the first hand area to a preset size at a first magnification;
[0015] Step S4: reducing the second image by the first magnification, and calculating a second hand region corresponding to the first hand region on the reduced second image;
[0016] Step S5: performing depth calculation on the first hand region and the second hand region.
[0017] Optionally, the method for quickly calculating hand depth is characterized in that step S4 comprises:
[0018] Step S41: reducing the second image by the first magnification;
[0019] Step S42: according to the position of the first hand region in the first image, obtaining a second hand region corresponding to the first hand region on the reduced second image.
[0020] Optionally, the method for quickly calculating the hand depth is characterized in that, in step S5, the depth of the hand area is estimated according to the first magnification, and the search range is determined, and then the depth calculation is performed.
[0021] Optionally, the method for quickly calculating hand depth is characterized in that step S5 comprises:
[0022] Step S51: estimating the palm depth according to the first magnification;
[0023] Step S52: estimating a search range according to the estimated palm depth, and calculating a disparity between a first palm area and a second palm area; wherein the first palm area is a palm area in the first hand area; and the second palm area is a palm area in the second hand area;
[0024] Step S53: Calculate the depth value of each pixel in the first palm area according to the parallax and the parameters of the binocular camera.
[0025] Optionally, the method for quickly calculating hand depth is characterized in that step S5 comprises:
[0026] Step S54: estimating the finger depth according to the shape of the first hand area and the first magnification;
[0027] Step S55: estimating a search range according to the estimated finger depth, and calculating a disparity between a first finger region and a second finger region; wherein the first finger region is a finger region in the first hand region; and the second finger region is a finger region in the second hand region;
[0028] Step S56: Calculate the depth value of each pixel in the first finger area according to the parallax and the parameters of the binocular camera.
[0029] Optionally, the method for quickly calculating hand depth is characterized in that, in step S55, multiple fingers are calculated in sequence, and the search range of subsequent fingers is adjusted according to the parallax of the current finger.
[0030] Optionally, the method for quickly calculating hand depth is characterized in that step S2 comprises:
[0031] Step S21: detecting a third hand region and a fourth hand region on the first image, and detecting a fifth hand region and a sixth hand region on the second image;
[0032] Step S22: Pairing the third hand region, the fourth hand region, the fifth hand region and the sixth hand region according to the epipolar constraint.
[0033] In a second aspect, the present invention provides a hand depth fast calculation system, which is used to implement any of the above-mentioned hand depth fast calculation methods, and is characterized by comprising:
[0034] An acquisition module, used to acquire a first image and a second image; wherein the first image and the second image are acquired by a binocular camera;
[0035] A detection module, configured to detect a first hand region on the first image;
[0036] A first reduction module, used to reduce the first hand area to a preset size at a first magnification;
[0037] a second reduction module, configured to reduce the second image by the first magnification, and calculate a second hand region corresponding to the first hand region on the reduced second image;
[0038] A depth module is used to calculate the depth of the first hand area and the second hand area.
[0039] In a third aspect, the present invention provides a hand depth fast calculation device, characterized in that it includes:
[0040] processor;
[0041] a memory storing executable instructions of the processor;
[0042] The processor is configured to execute any one of the steps of the aforementioned method for quickly calculating hand depth by executing the executable instructions.
[0043] In a fourth aspect, the present invention provides a computer-readable storage medium for storing a program, characterized in that when the program is executed, the steps of any one of the aforementioned methods for quickly calculating hand depth are implemented.
[0044] Compared with the prior art, the present invention has the following beneficial effects:
[0045] The present invention first identifies the hand area, and in subsequent steps only processes the hand area, thereby reducing the amount of data processing and improving processing efficiency.
[0046] The present invention reduces the image before calculation, thereby making the calculation amount constant and avoiding the problem of exceeding the calculation capacity. At the same time, data conversion is performed when calculating the depth, so that the amount of data to be calculated is greatly reduced.
[0047] The present invention optimizes the hand area and shrinks it to greatly reduce the amount of calculation. The depth value of the hand area is obtained by calculating the parallax, which greatly reduces the amount of calculation for search and reconstruction. There is no need to use a dedicated Asic chip or dedicated hardware. The depth of the hand is calculated in real time, which helps subsequent gesture recognition and is cost-effective.
[0048] The present invention only needs to detect the first hand area without detecting the second hand area, thereby reducing the amount of palm detection. While reducing the amount of calculation, it is also suitable for non-homologous binocular cameras, such as a non-homologous binocular camera composed of an RGB camera and an infrared camera. BRIEF DESCRIPTION OF THE DRAWINGS
[0049] In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the following will briefly introduce the drawings required for use in the embodiments or the prior art descriptions. Obviously, the drawings in the following descriptions are only embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on the provided drawings without creative work. By reading the detailed description of the non-limiting embodiments with reference to the following drawings, other features, purposes and advantages of the present invention will become more obvious:
[0050] Figure 1 This is a flowchart of a method for quickly calculating hand depth according to an embodiment of the present invention;
[0051] Figure 2This is a schematic diagram of a palm in an embodiment of the present invention;
[0052] Figure 3 is a flow chart of steps for calculating a second hand area in an embodiment of the present invention;
[0053] Figure 4 A flowchart of the steps of performing depth calculation in an embodiment of the present invention;
[0054] Figure 5 A schematic diagram of palm area division in an embodiment of the present invention;
[0055] Figure 6 This is another flowchart of the steps of performing depth calculation in an embodiment of the present invention;
[0056] Figure 7 This is a flowchart of the steps of detecting a hand area in an embodiment of the present invention;
[0057] Figure 8 This is a schematic diagram of the structure of a hand depth fast calculation system according to an embodiment of the present invention;
[0058] Fig. 9 is a schematic diagram of the structure of a device for quickly calculating hand depth in an embodiment of the present invention; and
[0059] Fig.10 Schematic diagram of the structure of a computer-readable storage medium in an embodiment of the present invention.
[0060] 1--Hand area;
[0061] 2--Palm area;
[0062] 3--Finger area; DETAILED DESCRIPTION
[0063] The present invention is described in detail below in conjunction with specific embodiments. The following embodiments will help those skilled in the art to further understand the present invention, but are not intended to limit the present invention in any form. It should be noted that, for those of ordinary skill in the art, several variations and improvements may be made without departing from the concept of the present invention. These all belong to the protection scope of the present invention.
[0064] The terms "first", "second", "third", "fourth", etc. (if any) in the specification and claims of the present invention and the above-mentioned drawings are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence. It should be understood that the data used in this way can be interchanged where appropriate, so that the embodiments of the present invention described herein, for example, can be implemented in an order other than those illustrated or described herein. In addition, the terms "including" and "having" and any variations thereof are intended to cover non-exclusive inclusions, for example, a process, method, system, product or device that includes a series of steps or units is not necessarily limited to those steps or units that are clearly listed, but may include other steps or units that are not clearly listed or inherent to these processes, methods, products or devices.
[0065] For a stereo camera without a palm rest, the size of the hand in the image changes as the distance between the hand and the stereo camera changes. To ensure that the hand can be effectively recognized in a larger range, the resolution of the stereo camera is usually higher. When the hand is close to the stereo camera, the hand occupies a larger proportion in the image, and even if only the depth calculation is performed on the hand area, it still requires a large amount of calculation.
[0066] A method for quickly calculating hand depth provided by an embodiment of the present invention is intended to be applicable to binocular depth calculation of the hand at different distances, reduce the amount of calculation, and lower the requirements for chip computing power when the binocular camera is used for hand detection, thereby solving the problems existing in the prior art.
[0067] The following specific embodiments are used to describe in detail the technical solutions of the present invention and how the technical solutions of the present application solve the above-mentioned technical problems. The following specific embodiments can be combined with each other, and the same or similar concepts or processes may not be repeated in some embodiments. The embodiments of the present invention will be described below in conjunction with the accompanying drawings.
[0068] The present invention identifies and reduces the hand area, and obtains the depth value of the hand area by calculating the parallax, which greatly reduces the amount of calculation for search and reconstruction. It does not need to use a dedicated Asic chip or dedicated hardware, and calculates the depth of the hand in real time, providing assistance for subsequent gesture recognition.
[0069] Figure 1 FIG. 1 is a flowchart of a method for quickly calculating hand depth in an embodiment of the present invention. Figure 1 As shown, the steps of a method for quickly calculating hand depth in an embodiment of the present invention include:
[0070] Step S1: Obtain a first image and a second image.
[0071] In this step, the first image and the second image are obtained by a binocular camera. Two images containing hand information are obtained, and the two images are captured simultaneously by two cameras installed at different positions (usually horizontally spaced a certain distance apart), namely, the first image and the second image. A binocular camera is usually composed of two cameras, which imitate the structure of the human eye and can capture two slightly different perspectives of the same scene at the same time. The image in this embodiment can be an RGB image, an infrared image, or other types of images. This embodiment does not limit the image type. In some embodiments, the first image and the second image are different types of images, such as an infrared image and an RGB image.
[0072] Step S2: Detect a first hand region on the first image.
[0073] In this step, a palm detection is required. Use image processing techniques (such as skin color detection, edge detection, shape recognition, or machine learning-based target detection algorithms) to locate the hand area in the first image. This step usually includes preprocessing (such as grayscale, filtering), feature extraction, and classification or regression to ultimately determine the boundaries of the hand. Once the hand area is detected, these areas are marked with bounding boxes or other shapes for subsequent processing. Figure 2 As shown, the hand region is often a part of the image. The subsequent processing of this embodiment is all performed on the hand region, and there is no need to process other parts, thereby reducing the amount of calculation.
[0074] Step S3: reducing the first hand area to a preset size at a first magnification.
[0075] In this step, in order to facilitate subsequent depth calculations and reduce the amount of calculation, the hand area is reduced to a uniform size. The preset size (such as a fixed width and height) is a parameter smaller than the size of the first image, such as 128*128, 180*180 or any other size. According to the preset size (such as the number of pixels or the ratio), the detected first hand area image is reduced at a specific magnification (i.e., the first magnification). The selection of the first magnification depends on the image resolution, computing resources, and required accuracy. The larger the preset size, the more depth values that can be obtained subsequently; the smaller the preset size, the smaller the amount of calculation and the faster the calculation speed. The magnification for reducing the first hand area to the preset size is the first magnification. The first magnification is a number less than 1.
[0076] Step S4: reducing the second image by the first magnification, and calculating a second hand region corresponding to the first hand region on the reduced second image.
[0077] In this step, unlike the first image where only the first hand region is reduced, the entire second image is reduced. The size of the reduced second image is larger than the preset size. However, at this time, the second hand region on the second image corresponds to the first hand region. According to the positional correspondence between the first hand region and the second hand region, the range of the second hand region can be obtained.
[0078] Step S5: performing depth calculation on the first hand region and the second hand region.
[0079] In this step, the binocular stereo vision principle is used to calculate the depth information of the hand. The depth calculation in this step is only performed on the first hand area and the second hand area, so that the reconstruction area can be very small. By comparing the position difference (parallax) of the corresponding hand areas in the first hand area and the second hand area, combined with camera parameters (such as focal length, baseline distance, etc.), triangulation can be used to calculate the distance between the hand and the camera. Commonly used algorithms include block matching, feature matching, etc. Depth information is usually expressed in the form of distance from the camera plane or depth map.
[0080] The calculation area of this embodiment is small, and the accuracy is higher than that of TOF technology. Taking the resolution of the RGB binocular camera as 1080P and the preset size as 128*128 as an example, when the image is directly reconstructed in depth, the search range is determined according to the limit length of the binocular camera and the reconstruction range. Here, it is assumed that the reconstruction range is 30mm-1m and the baseline length is 100mm. The calculation amount of the depth reconstruction is 1920*1080*384. When the solution of this embodiment is adopted, the palm is deeply reconstructed, and the calculation amount is 128*128*128*n, which is n / 380 when the image is directly reconstructed in depth, where n is the number of palms, which greatly reduces the calculation amount. If this embodiment only calculates the local area m of the palm, the calculation amount is n*128*128*128*(m / 128 / 128), where n is the number of palms and m is the total number of pixels in the specified calculation area. The calculation amount is m*n / (380*128*128) when the image is directly reconstructed. <n / 380。
[0081] In some embodiments, in step S5, the depth of the hand area is estimated according to the first magnification, and the search range is determined, and then the depth calculation is performed. Using the image information obtained by the first magnification, combined with the detection of the hand region of interest (ROI), the approximate depth information of the hand can be predicted by a deep learning model or triangulation. Based on the approximate depth information, the search range of binocular reconstruction can be estimated. After the search and matching is completed, the disparity can be calculated to obtain the depth value.
[0082] Figure 3FIG. 1 is a flow chart of steps for calculating the second hand region in an embodiment of the present invention. Figure 3 As shown, in an embodiment of the present invention, a step of calculating a second hand area includes:
[0083] Step S41: reducing the second image by the first magnification.
[0084] In this step, the second image is scaled down by the same factor as the hand region in the first image. This is to ensure that the hand region in both images is consistent in size, making subsequent depth calculations more accurate. Scaling down the second image typically involves image resampling techniques.
[0085] Step S42: according to the position of the first hand region in the first image, obtaining a second hand region corresponding to the first hand region on the reduced second image.
[0086] In this step, in the reduced second image, it is necessary to locate the second hand area according to the position of the first hand area in the first image. Since the first hand area has been detected in step S2, the position of the first hand area relative to the first image can be directly obtained. The first hand area in this embodiment is a symmetrical shape, such as a rectangle, a circle, etc. The second hand area has the same shape as the first hand area. Both the first hand area and the second hand area are a larger area range including the hand, which is a rough range used for corresponding processing rather than accurately identifying the palm. For example, the first hand area is a rectangular area, the size of the first image is 1080*1080, the first hand area is in the range of (200, 300) to (700, 600), the size of the second image is 1080*1080, and calculation shows that the position of the first hand area in the first image is (200 / 1080, 700 / 1080) in the horizontal direction and (300 / 1080, 600 / 1080) in the vertical direction. The size of the reduced second image is x*y, then the second hand area is in the range of (x*200 / 1080, y*300 / 1080) to (x*700 / 1080, y*600 / 1080).
[0087] This embodiment calculates the position of the second hand area in the reduced second image based on the position of the first hand area in the first image, without the need for hand detection, thereby greatly reducing the amount of calculation and shortening the palm detection time.
[0088] Figure 4 FIG. 1 is a flowchart of a step of performing depth calculation in an embodiment of the present invention. Figure 4 As shown, a step of performing depth calculation in an embodiment of the present invention includes:
[0089] Step S51: estimating the palm depth according to the first magnification.
[0090] In this step, the palm area is further extracted from the detected hand area. Figure 5 As shown, the palm region and the finger region constitute the hand region. The palm region can usually be identified by analyzing features such as the hand contour, skin color distribution, and the geometric relationship between the fingers and the palm. For example, image segmentation techniques such as edge detection and region growing can be used to separate the palm and finger parts. Once the palm region is extracted, these regions are marked using bounding boxes, masks, or other shapes for subsequent processing.
[0091] The depth of the palm in three-dimensional space is preliminarily estimated using the first magnification (i.e., the scaling ratio of the hand area in the image) and prior knowledge (e.g., average hand size, average distance from the camera to the hand, etc.). This estimate will serve as a starting point or reference for subsequent calculations. First, determine the approximate size of the palm in the first image (which can be inferred from the detected hand area). Then, considering the effect of image scaling on the size of the object, use the first magnification to infer the original size (i.e., the size before scaling). Combined with camera parameters (e.g., focal length, baseline distance) and prior knowledge, a simple geometric relationship or lookup table is used to estimate the preliminary depth of the palm.
[0092] Step S52: estimating a search range according to the estimated palm depth, and calculating the disparity between the first palm area and the second palm area.
[0093] In this step, the first palm area is the palm area in the first hand area; the second palm area is the palm area in the second hand area.
[0094] Based on the preliminary depth estimation of the palm, determine the reasonable range of disparity values for searching the corresponding palm area in the disparity map. Then, accurately match the palm area in the first image and the second image to calculate the disparity. According to the preliminary depth estimation of the palm and the camera parameters, calculate the possible disparity range (i.e., search range) in the disparity map. Use a binocular vision algorithm (such as block matching, SGBM, etc.) to accurately match between the first palm area and the second palm area to find the best corresponding point for each pixel in the two images. Calculate the horizontal position difference between the matching point pairs, i.e., the disparity.
[0095] Step S53: Calculate the depth value of each pixel in the first palm area according to the parallax and the parameters of the binocular camera.
[0096] In this step, the disparity value is converted into depth information using the binocular vision principle. Based on the camera's internal parameters (focal length, photosensitive element size, etc.) and external parameters (baseline distance, camera relative posture, etc.), as well as the disparity and triangulation principles, the actual depth value of each pixel relative to the camera can be calculated. In this way, we can obtain the three-dimensional position information of all pixels in the first palm area, thereby realizing the depth perception of the palm.
[0097] Figure 6 FIG. 1 is another flow chart of the steps of performing depth calculation in an embodiment of the present invention. Figure 6 As shown, another step of performing depth calculation in an embodiment of the present invention includes:
[0098] Step S54: estimating the finger depth according to the shape of the first hand region and the first magnification.
[0099] In this step, it is similar to extracting the palm region, but the goal is to identify and separate the finger parts in the hand image. This is usually more complicated because the fingers may have different lengths, degrees of curvature, and occlude each other. This can be achieved using methods based on shape analysis, contour tracking, or deep learning. Once the finger regions are identified, they are marked using appropriate methods (such as bounding boxes, masks, etc.) for subsequent processing.
[0100] The shape information of the first hand region (such as the length, width, curvature of the finger, etc.) and the first magnification of the image zoom are used to preliminarily estimate the depth of the finger in three-dimensional space. This estimated value will serve as a reference or starting point for the subsequent calculation of the finger depth. First, the position and shape of the finger region in the first hand region are identified through image processing techniques (such as edge detection, contour extraction, etc.). Then, the general anatomical structure of the hand and prior knowledge (such as the average length and width ratio of the finger, etc.) and the first magnification of the image zoom are combined to estimate the preliminary depth of the finger. This estimate is an average or a weighted average based on the shape and position of the finger.
[0101] Step S55: estimating a search range according to the estimated finger depth, and calculating a disparity between the first finger region and the second finger region.
[0102] In this step, the first finger area is a finger area in the first hand area; the second finger area is a finger area in the second hand area.
[0103] Purpose: Based on the preliminary depth estimation of the finger, determine the reasonable range of disparity values for searching the corresponding finger area in the disparity map. Then, accurately match the finger area in the first image and the second image to calculate the disparity. According to the preliminary depth estimation of the finger and the geometric parameters of the stereo camera (such as baseline distance, focal length, etc.), calculate the possible disparity range (i.e., search range) in the disparity map. Use a stereo vision algorithm (such as block matching, SGBM, etc.) to accurately match between the first finger area and the second finger area. Since the finger area may contain finer structures and higher texture changes, more complex matching strategies or algorithm parameters may be required to ensure the accuracy of the matching. Calculate the horizontal position difference between the matching point pairs, i.e., the disparity. For each pixel in the finger area, it is necessary to find its best corresponding point in the other image and calculate the disparity between them.
[0104] Step S56: Calculate the depth value of each pixel in the first finger area according to the parallax and the parameters of the binocular camera.
[0105] In this step, the disparity value is converted into depth information using the binocular vision principle. Based on the camera's internal parameters (focal length, photosensitive element size, etc.) and external parameters (baseline distance, camera relative posture, etc.), as well as the disparity and triangulation principles, the actual depth value of each pixel relative to the camera can be calculated. In this way, we can obtain the three-dimensional position information of all pixels in the first finger area, thereby realizing the depth perception of the finger.
[0106] This embodiment can calculate the depth of each finger individually, which provides more detailed three-dimensional information for gesture recognition and hand motion capture. For example, this embodiment can estimate the finger posture individually, and through detection between multiple frames, it can detect the finger movement state, meeting the needs of various application scenarios.
[0107] In some embodiments, in step S55, multiple fingers are calculated in sequence, and the search range of subsequent fingers is adjusted according to the disparity of the current finger. When processing a hand region containing multiple fingers, each finger needs to be calculated in sequence, and the search range of subsequent fingers in the disparity map can be optimized or adjusted according to the disparity result of the current finger. This strategy helps to improve the efficiency and accuracy of the depth calculation of the entire finger region. When executed, the number of fingers in the hand region and their positions in the first hand region are first determined. According to the estimation of step S54 or other prior knowledge, an initial search range (in the disparity map) is set for each finger. Each finger in the hand region is traversed. For the current finger (assuming it is the i-th finger), a binocular vision algorithm is used to calculate the disparity between its corresponding first finger region and the second finger region. Within the search range of the current finger, block matching, SGBM or other binocular vision algorithms are used to find the best matching point pair between the first finger region and the second finger region. The horizontal position difference between the matching point pairs, i.e., the disparity, is calculated. According to the disparity result of the current finger, the rationality of its depth value is evaluated (for example, whether it meets the constraints of the hand anatomical structure). If the disparity result of the current finger is reasonable, the possible disparity range of the adjacent fingers (especially the subsequent fingers) in the disparity map can be inferred based on the disparity and the geometric parameters of the binocular camera. Use this inferred disparity range to optimize or adjust the search range of the subsequent fingers in the disparity map. This helps to reduce the search space, improve matching efficiency, and may improve the accuracy of the disparity calculation of subsequent fingers. Repeat steps 2 to 4 for the next finger until all fingers in the hand area have been processed. Output the disparity map or disparity value of each finger, which will be used to calculate the depth value of each pixel in each finger area in the subsequent steps. By dynamically adjusting the search range, step S55 can more efficiently process the hand area containing multiple fingers and may improve the accuracy of the depth calculation. However, it should be noted that the adjustment of the search range should be based on reasonable assumptions and constraints to avoid introducing additional errors or uncertainties. The current finger is the finger whose disparity is currently being calculated, and the subsequent finger is the finger whose disparity has not yet been calculated.
[0108] Figure 7 FIG. 1 is a flow chart of steps for detecting a hand area in an embodiment of the present invention. Figure 7 As shown, in an embodiment of the present invention, a step of detecting a hand area includes:
[0109] Step S21: Detect the third hand region and the fourth hand region on the first image, and detect the fifth hand region and the sixth hand region on the second image.
[0110] In this step, multiple hand regions are detected by using computer vision techniques, such as edge detection, contour extraction, morphological operations, or deep learning models. This step detects at least two hand regions on the first image and at least two hand regions on the second image. Each detected hand region should be correctly labeled and identified so that pairing and disparity calculation can be performed correctly in subsequent steps.
[0111] Step S22: Pairing the third hand region, the fourth hand region, the fifth hand region and the sixth hand region according to the epipolar constraint.
[0112] In this step, the epipolar constraint means that any point in the left image must be matched on the epipolar line of the right image, and vice versa. This constraint reduces the matching search space, thereby improving matching efficiency and accuracy. Using the epipolar geometry relationship, the area paired with the third hand area is determined in the fifth hand area and the sixth hand area, and the area paired with the fourth hand area is determined in the fifth hand area and the sixth hand area. This involves calculating the projection of each area on the corresponding epipolar line and finding the most likely matching point. At the same time, further verification and optimization are required to ensure the accuracy of the pairing, such as by analyzing the size, shape and relative position of the hand area to confirm the validity of the pairing.
[0113] This embodiment processes multiple detected hand regions and pairs these regions based on epipolar constraints, which is critical for achieving accurate gesture recognition and depth perception, especially in complex scenarios that require processing multiple hands or fingers.
[0114] Figure 8 FIG. 1 is a schematic diagram of a system for quickly calculating hand depth according to an embodiment of the present invention. Figure 8 As shown, a hand depth fast calculation system in an embodiment of the present invention includes:
[0115] An acquisition module, used to acquire a first image and a second image; wherein the first image and the second image are acquired by a binocular camera;
[0116] A detection module, configured to detect a first hand region on the first image;
[0117] A first reduction module, used to reduce the first hand area to a preset size at a first magnification;
[0118] a second reduction module, configured to reduce the second image by the first magnification, and calculate a second hand region corresponding to the first hand region on the reduced second image;
[0119] A depth module is used to calculate the depth of the first hand area and the second hand area.
[0120] This embodiment recognizes and reduces the hand area, and obtains the depth value of the hand area by calculating the parallax, which greatly reduces the amount of calculation for search and reconstruction. It does not need to use a dedicated Asic chip or dedicated hardware, and calculates the depth of the hand in real time, providing assistance for subsequent gesture recognition.
[0121] The present invention also provides a device for quickly calculating the depth of a hand, comprising a processor and a memory in which executable instructions of the processor are stored, wherein the processor is configured to execute the steps of a method for quickly calculating the depth of a hand by executing the executable instructions.
[0122] As described above, this embodiment recognizes the hand area, reduces the hand area, and obtains the depth value of the hand area by calculating the parallax, which greatly reduces the amount of calculation for search and reconstruction. There is no need to use a dedicated Asic chip or dedicated hardware, and the depth of the hand is calculated in real time to provide assistance for subsequent gesture recognition.
[0123] It will be appreciated by those skilled in the art that various aspects of the present invention may be implemented as systems, methods or program products. Therefore, various aspects of the present invention may be specifically implemented in the following forms, namely: complete hardware implementation, complete software implementation (including firmware, microcode, etc.), or a combination of hardware and software implementations, which may be collectively referred to herein as "circuits", "modules" or "platforms".
[0124] Fig. 9 Schematic diagram of the structure of a hand depth fast calculation device in an embodiment of the present invention. Fig. 9 The electronic device 600 according to this embodiment of the present invention is described. Fig. 9 The electronic device 600 shown is only an example and should not bring any limitation to the functions and scope of use of the embodiments of the present invention.
[0125] like Fig. 9 As shown, the electronic device 600 is in the form of a general computing device. The components of the electronic device 600 may include, but are not limited to: at least one processing unit 610, at least one storage unit 620, a bus 630 connecting different platform components (including the storage unit 620 and the processing unit 610), a display unit 640, etc.
[0126] The storage unit stores program codes, which can be executed by the processing unit 610, so that the processing unit 610 executes the steps of various exemplary embodiments of the present invention described in the above-mentioned method for quickly calculating the hand depth. For example, the processing unit 610 can execute the following steps: Figure 1 Follow the steps shown in .
[0127] The storage unit 620 may include a readable medium in the form of a volatile storage unit, such as a random access memory unit (RAM) 6201 and / or a cache memory unit 6202 , and may further include a read-only memory unit (ROM) 6203 .
[0128] The storage unit 620 may also include a program / utility 6204 having a set (at least one) of program modules 6205, such program modules 6205 including but not limited to: an operating system, one or more application programs, other program modules, and program data, each of which or some combination may include an implementation of a grid environment.
[0129] Bus 630 may represent one or more of several types of bus structures, including a memory unit bus or memory unit controller, a peripheral bus, an accelerated graphics port, a processing unit, or a local bus using any of a variety of bus architectures.
[0130] The electronic device 600 may also communicate with one or more external devices 700 (e.g., keyboards, pointing devices, Bluetooth devices, etc.), one or more devices that enable a user to interact with the electronic device 600, and / or any device that enables the electronic device 600 to communicate with one or more other computing devices (e.g., routers, modems, etc.). Such communication may be performed through an input / output (I / O) interface 650. Furthermore, the electronic device 600 may also communicate with one or more grids (e.g., a local area network (LAN), a wide area network (WAN), and / or a public grid, such as the Internet) through a grid adapter 660. The grid adapter 660 may communicate with other modules of the electronic device 600 through the bus 630. It should be understood that although Fig. 9 Not shown, other hardware and / or software modules may be used in conjunction with electronic device 600, including but not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data backup storage platforms.
[0131] In an embodiment of the present invention, a computer-readable storage medium is also provided for storing a program, and when the program is executed, the steps of a method for quickly calculating the depth of a hand are implemented. In some possible implementations, various aspects of the present invention can also be implemented in the form of a program product, which includes a program code. When the program product is run on a terminal device, the program code is used to enable the terminal device to execute the steps of various exemplary embodiments of the present invention described in the above-mentioned method for quickly calculating the depth of a hand.
[0132] As shown above, this embodiment recognizes and reduces the hand area, and obtains the depth value of the hand area by calculating the parallax, which greatly reduces the amount of calculation for search and reconstruction. It does not need to use a dedicated Asic chip or dedicated hardware, and calculates the depth of the hand in real time, thereby providing assistance for subsequent gesture recognition.
[0133] Fig.10 Schematic diagram of the structure of a computer-readable storage medium in an embodiment of the present invention. Fig.10 As shown, a program product 800 for implementing the above method according to an embodiment of the present invention is described, which can adopt a portable compact disk read-only memory (CD-ROM) and include program code, and can be run on a terminal device, such as a personal computer. However, the program product of the present invention is not limited thereto. In this document, a readable storage medium can be any tangible medium containing or storing a program, which can be used by or in combination with an instruction execution system, an apparatus or a device.
[0134] The program product may use any combination of one or more readable media. The readable medium may be a readable signal medium or a readable storage medium. The readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device or device, or any combination of the above. More specific examples of readable storage media (a non-exhaustive list) include: an electrical connection with one or more wires, a portable disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above.
[0135] Computer readable storage media may include data signals propagated in baseband or as part of a carrier wave, wherein readable program codes are carried. Such propagated data signals may take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. The readable storage medium may also be any readable medium other than a readable storage medium, which may send, propagate, or transmit a program for use by or in conjunction with an instruction execution system, device, or device. The program codes contained on the readable storage medium may be transmitted using any suitable medium, including but not limited to wireless, wired, optical cable, RF, etc., or any suitable combination thereof.
[0136] Program code for performing the operations of the present invention may be written in any combination of one or more programming languages, including object-oriented programming languages such as Java, C++, etc., and conventional procedural programming languages such as "C" or similar programming languages. The program code may be executed entirely on the user computing device, partially on the user device, as a separate software package, partially on the user computing device and partially on a remote computing device, or entirely on a remote computing device or server. In cases involving a remote computing device, the remote computing device may be connected to the user computing device through any type of grid, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computing device (e.g., via the Internet using an Internet service provider).
[0137] This embodiment recognizes and reduces the hand area, and obtains the depth value of the hand area by calculating the parallax, which greatly reduces the amount of calculation for search and reconstruction. It does not need to use a dedicated Asic chip or dedicated hardware, and calculates the depth of the hand in real time, providing assistance for subsequent gesture recognition.
[0138] In this specification, each embodiment is described in a progressive manner, and each embodiment focuses on the differences from other embodiments, and the same and similar parts between the embodiments can be referred to each other. The above description of the disclosed embodiments enables professionals and technicians in this field to implement or use the present invention. Various modifications to these embodiments will be obvious to professionals and technicians in this field, and the general principles defined herein can be implemented in other embodiments without departing from the spirit or scope of the present invention. Therefore, the present invention will not be limited to these embodiments shown in this article, but will comply with the widest range consistent with the principles and novel features disclosed herein.
[0139] The above describes the specific embodiments of the present invention. It should be understood that the present invention is not limited to the above specific embodiments, and those skilled in the art may make various modifications or variations within the scope of the claims, which do not affect the essence of the present invention.
Claims
1. A method for quickly calculating hand depth, characterized in that: include: Step S1: obtaining a first image and a second image; wherein the first image and the second image are obtained by a binocular camera; Step S2: Detecting a first hand region on the first image; Step S3: reducing the first hand area to a preset size at a first magnification; Step S4: reducing the second image by the first magnification, and calculating a second hand region corresponding to the first hand region on the reduced second image; Step S5: performing depth calculation on the first hand region and the second hand region.
2. A method for quickly calculating hand depth according to claim 1, characterized in that: Step S4 includes: Step S41: reducing the second image by the first magnification; Step S42: according to the position of the first hand region in the first image, obtaining a second hand region corresponding to the first hand region on the reduced second image.
3. The method for quickly calculating hand depth according to claim 1, characterized in that: In step S5, the depth of the hand area is estimated according to the first magnification, and the search range is determined, and then the depth is calculated.
4. The method for quickly calculating hand depth according to claim 1, characterized in that: Step S5 includes: Step S51: estimating the palm depth according to the first magnification; Step S52: estimating a search range according to the estimated palm depth, and calculating a disparity between a first palm area and a second palm area; wherein the first palm area is a palm area in the first hand area; and the second palm area is a palm area in the second hand area; Step S53: Calculate the depth value of each pixel in the first palm area according to the parallax and the parameters of the binocular camera.
5. The method for quickly calculating hand depth according to claim 1, characterized in that: Step S5 includes: Step S54: estimating the finger depth according to the shape of the first hand area and the first magnification; Step S55: estimating a search range according to the estimated finger depth, and calculating a disparity between a first finger region and a second finger region; wherein the first finger region is a finger region in the first hand region; and the second finger region is a finger region in the second hand region; Step S56: Calculate the depth value of each pixel in the first finger area according to the parallax and the parameters of the binocular camera.
6. A method for quickly calculating hand depth according to claim 5, characterized in that: In step S55, calculations are performed on multiple fingers in sequence, and the search range of subsequent fingers is adjusted according to the parallax of the current finger.
7. A method for quickly calculating hand depth according to claim 1, characterized in that: Step S2 includes: Step S21: detecting a third hand region and a fourth hand region on the first image, and detecting a fifth hand region and a sixth hand region on the second image; Step S22: Pairing the third hand region, the fourth hand region, the fifth hand region and the sixth hand region according to the epipolar constraint.
8. A hand depth fast calculation system, used to implement the hand depth fast calculation method according to any one of claims 1 to 7, characterized in that: include: An acquisition module, used to acquire a first image and a second image; wherein the first image and the second image are acquired by a binocular camera; A detection module, configured to detect a first hand region on the first image; A first reduction module, used to reduce the first hand area to a preset size at a first magnification; a second reduction module, configured to reduce the second image by the first magnification, and calculate a second hand region corresponding to the first hand region on the reduced second image; A depth module is used to calculate the depth of the first hand area and the second hand area.
9. A hand depth fast calculation device, characterized in that: include: processor; a memory storing executable instructions of the processor; The processor is configured to execute the steps of the method for quickly calculating hand depth according to any one of claims 1 to 7 by executing the executable instructions.
10. A computer-readable storage medium for storing a program, characterized in that: When the program is executed, the steps of the method for quickly calculating the hand depth described in any one of claims 1 to 7 are implemented.
Citation Information
Patent Citations
Target depth value collection method and binocular system
CN113573039A
