System and method for measuring surface features on skin
By automatically generating a 3D model of skin surface features using a non-contact multi-camera system, the problem of measurement error caused by skin deformation is solved, and multiple parameters of hair can be measured quickly.
Patent Information
- Application Number
- CN202480015633.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-03-02
- Filing Date
- 2024-03-01
- Publication Date
- 2025-10-31
AI Technical Summary
Existing skin surface feature measurement systems introduce measurement errors due to the deformation caused by the contact of glass plates with the skin, making it impossible to measure multiple parameters and limiting the manual measurement of a limited number of hair lengths within a small area.
Employing a non-contact system, multiple cameras and optical elements are used to receive light from the skin surface and guide it to the cameras. The processor automatically receives and processes the image data, generating 3D bitmap images and models, and measuring multiple parameters.
It enables automatic measurement of multiple parameters of a large number of hairs in a short time, avoiding skin deformation errors, and can measure multiple parameters such as hair length, diameter and angle relative to the skin.
Smart Images

Figure CN120883243A_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates generally to 3D modeling of surface features, and more specifically to 3D modeling of skin surface features. Background Technology
[0002] Measuring shaving closeness is a key aspect of shaving performance. Traditional methods have used optical stereomicroscopes (Leica-Reflex) with attached glass plates over which subjects place their faces. This allows the operator to obtain a 3D view of the skin surface by looking down through a stereo viewfinder to identify, and then manually measure the length of any visible hairs using calibrated microscope tools.
[0003] Newer system 10 (see Figure 1A The system 10 uses a high-resolution camera to capture images of facial hair 16 at a fixed distance. The system 10 uses a glass plate 12 that is pushed against the skin surface 14 to flatten the hair 16 onto the skin surface 14. The system 10 then captures a 2D image of the flattened hair 16 to estimate hair length.
[0004] The discussion of the shortcomings and needs that existed in the art prior to this disclosure is by no means an admission that those skilled in the art were aware of such shortcomings and needs prior to this disclosure. Summary of the Invention
[0005] Various implementation schemes address the problems mentioned above and provide methods and apparatus for generating 3D models of surface features to measure one or more parameter values of the surface features.
[0006] Recognizing the various shortcomings of conventional systems and methods used to measure hair parameters. For example... Figure 1A As shown, the skin surface 14 is deformed by a distance 18 due to the glass plate 12. This deformation may introduce errors in the measurement of the hair 16 length. For example, this skin deformation may cause the hair 16 to extend a longer length from the skin surface 14 than it would in the absence of deformation. Additionally, the deformation of the skin surface 14 may cause hair 16 that was originally within the skin surface 14 to protrude, resulting in measurements of the length of hair 16 that were not previously visible. Furthermore, as... Figure 1A As shown, deformation of the skin surface 14 may cause short hairs 16 to be pushed back a distance 20 into the skin surface 14, making the hair appear shorter than when it is not pressed against the glass plate 12. To overcome these drawbacks, the system of this disclosure is developed to be non-contact and therefore does not come into contact with the skin surface 14 when measuring one or more hair parameters.
[0007] Additionally, it is recognized that conventional systems and methods for measuring hair parameters are limited in which hair parameters can be measured. For example, these conventional systems and methods can typically only measure hair length and diameter. Because these conventional systems use a glass plate 12 to press the hair 16 down along the skin surface 14, other parameters (such as one or more angles of the hair 16 relative to the skin surface 14) cannot be measured. These limitations of conventional systems are overcome by the improved non-contact system disclosed herein, which does not come into contact with the skin surface 14. By avoiding contact with the skin surface 14, the improved system and method can measure multiple hair parameters that cannot be measured using conventional systems.
[0008] Additionally, it is recognized that some conventional systems (such as the Leica-Reflex system) require manual measurement of hair length, and thus limit measurement to a very small area of the face, typically only the cheeks, and restrict the number of measurable hairs to approximately 50. To overcome this limitation of conventional systems, the improved method disclosed herein has been developed, which advantageously measures a large number of different types of parameters of a large number of hairs within a very short time period (e.g., several seconds).
[0009] In a first embodiment of this disclosure, a system is provided comprising: a plurality of cameras; and a plurality of optical elements configured to receive light from a region of a surface having one or more features, and to direct the light to the plurality of cameras. The system also includes a processor communicatively coupled to the plurality of cameras. The processor's memory includes a sequence of instructions. The memory and the instruction sequence are further configured to utilize the processor to cause the system to determine 3D calibration data for the plurality of cameras. The memory and the instruction sequence are further configured to utilize the processor to cause the system to automatically receive image data of a focused region from the plurality of cameras over multiple frames, and to automatically determine a 3D bitmap image for each of the plurality of frames based on the image data for each frame. The memory and the instruction sequence are further configured to utilize the processor to cause the system to store the 3D calibration data and the 3D bitmap images over the multiple frames in the memory.
[0010] In a second embodiment of this disclosure, a method is provided that includes using a processor to determine 3D calibration data for a camera system comprising a plurality of cameras. The method also includes the processor automatically receiving first image data of regions having one or more features from the camera system across a plurality of frames. The method further includes using the processor to automatically determine a 3D bitmap image for each of the plurality of frames based on the first image data for each frame. The method also includes using the processor to store the 3D calibration data and the 3D bitmap images across the plurality of frames.
[0011] In a third embodiment of this disclosure, a method is provided, comprising: receiving 3D calibration data and a plurality of 3D bitmap images of a surface having one or more features on respective plurality of frames at a processor. The method further comprises automatically determining, using the processor, whether a surface feature in the 3D bitmap image of each frame is in focus. The method further comprises automatically determining a 3D model of the surface feature based on the 3D calibration data and one or more 3D bitmap images in which the surface feature is in focus, using the processor. The method further comprises automatically determining values of one or more parameters of the focused surface feature based on the 3D model of the plurality of frames, using the processor. The method further comprises automatically calculating characteristic values of one or more parameters of the surface feature on the plurality of frames using the processor. The method further comprises storing, using the processor, the calculated characteristic values of one or more parameters of the surface feature and an identifier indicating the surface feature.
[0012] These and other features, aspects, and advantages of the various embodiments will be better understood with reference to the following description, drawings, and appended claims. Attached Figure Description
[0013] Many aspects of this disclosure can be better understood with reference to the following figures.
[0014] Figure 1A This is an example of a side view illustrating a conventional system used to measure hair length;
[0015] Figure 1B The following is a side view illustrating a system for collecting image data of surface features, based on examples of various implementation schemes.
[0016] Figure 2A The block diagram illustrates a system for collecting image data of surface features, based on examples of various implementation schemes.
[0017] Figure 2B Examples of various implementation schemes are provided to illustrate... Figure 2A A block diagram of the system intercepted along line 2B-2B;
[0018] Figure 2C The block diagram illustrates a system for collecting image data of surface features, based on examples of various implementation schemes.
[0019] Figure 3A The example illustrates a top perspective exploded view of a system for collecting image data of hair on the skin surface, based on various implementation schemes.
[0020] Figure 3B Examples of various implementation schemes are provided to illustrate... Figure 3A The system's camera, lenses, and skin surface;
[0021] Figure 4A Examples of various implementation schemes illustrate the process from... Figure 2A The out-of-focus area in the image captured by the system's camera;
[0022] Figure 4B Examples of various implementation schemes illustrate the process from... Figure 2A The focus area in the image captured by the system's camera;
[0023] Figure 5A Examples of various implementation schemes illustrate skin characteristics based on... Figure 2A 3D bitmap images of image data acquired by the system;
[0024] Figure 5B Examples of various implementation schemes illustrate skin characteristics based on... Figure 2A 3D bitmap images of image data acquired by the system;
[0025] Figure 5C Examples of various implementation schemes illustrate the methods for calibration. Figure 2A A front view of the calibration object of the system;
[0026] Figure 5D Examples of various implementation schemes are provided to illustrate... Figure 5C The calibration object is based on from Figure 2A 3D bitmap images of image data acquired by the system;
[0027] Figures 6A to 6C Examples of various implementation schemes illustrate the skin characteristics derived from... Figure 2A Image data acquired by the system's camera;
[0028] Figure 6D Based on examples of various implementation schemes, graphs illustrating the parameter values of hair measurements on the skin surface over multiple frames are provided.
[0029] Figure 6E Examples of various implementation schemes illustrate image data of hair on the skin surface, having one or more location identifiers for the hair and tracking stitch lines;
[0030] Figure 6F Examples of various implementation schemes illustrate image data of hair on the skin surface with traces indicating incorrect measurements of the hair;
[0031] Figures 7A to 7D Examples of various implementation schemes illustrate different parameters of hair on the skin surface;
[0032] Figure 8AExamples of various implementation schemes illustrate how to utilize Figure 2A A flowchart of a system method for capturing image data of surface features;
[0033] Figure 8B Examples of various implementation schemes illustrate how to use based on... Figure 2A A flowchart of a method for measuring the values of one or more parameters of a surface feature using image data captured by the system;
[0034] Figure 9 The block diagrams of computer systems on which embodiments of the present disclosure may be implemented are illustrated, based on examples of various implementation schemes; and
[0035] Figure 10 Examples of various implementation schemes illustrate chipsets on which embodiments of this disclosure may be implemented.
[0036] It should be understood that the various implementation schemes are not limited to the examples shown in the accompanying drawings. Detailed Implementation
[0037] Introduction and Definitions
[0038] This disclosure is written to those skilled in the art, who will understand that it is not limited to the specific examples or embodiments described. The examples and embodiments are single instances of this disclosure, which will make the broader scope apparent to those skilled in the art. Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by those skilled in the art. It should also be understood that the terminology used herein is not for the purpose of describing examples and embodiments only and is not intended to be limiting, as the scope of this disclosure will be limited only by the appended claims.
[0039] Unless otherwise expressly stated, all features disclosed in this specification (including any appended claims, abstract, and drawings) may be replaced by alternative features for the same, equivalent, or similar purposes. Therefore, unless otherwise expressly stated, each disclosed feature is merely one example of a general set of equivalent or similar features. The examples and embodiments described herein are for illustrative purposes only, and those skilled in the art will propose various modifications or changes based on these examples and embodiments, and such modifications or changes will be included within the spirit and scope of this application. Many variations and modifications may be made to embodiments of this disclosure without substantially departing from the spirit and principles of this disclosure. All such modifications and variations are intended to be included within the scope of this disclosure herein. For example, unless otherwise indicated, this disclosure is not limited to specific materials, reagents, reaction materials, manufacturing processes, etc., as these can vary. It should also be understood that the terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting. It is also possible in this disclosure that steps may be performed in logically possible different orders.
[0040] Whether explicitly stated or not, all numerical values herein are assumed to be modified by the term "about". The term "about" generally refers to a range of numerical values that a person skilled in the art would consider equivalent (e.g., having the same function or result) to the stated value. In many cases, the term "about" may include numerical values rounded to the nearest significant figure.
[0041] In everyday use, indefinite articles (such as "a") precede countable nouns, and uncountable nouns almost never use indefinite articles. Therefore, it must be noted that, as used in this specification and the following claims, the singular forms "a" and "the" include a plural indicator unless the context clearly indicates otherwise. Thus, for example, references to "carrier" include multiple carriers. In particular, when a single countable noun is listed as an element in a claim, this specification will generally use phrases such as "single." For example, "single carrier."
[0042] Unless otherwise stated, all percentages indicating the amount of a component in a composition represent percentages of the component by weight based on the total weight of the composition. The term "molar percentage" generally refers to the percentage of the number of moles of a particular component relative to the total number of moles in the mixture. The sum of the mole fractions of each component in a solution equals 1.
[0043] Where numerical ranges are provided, it should be understood that every intermediate value between the upper and lower limits of the range (to one-tenth of the lower limit unit (unless the context clearly indicates otherwise)) and any other stated or intermediate value within the stated range are included within this disclosure. The upper and lower limits of these smaller ranges may be independently included within the smaller ranges and are also included within this disclosure, subject to any expressly excluded limits within the stated ranges. Where a stated range includes one or both of the limits, the range excluding one or both of the included limits is also included within this disclosure.
[0044] Some embodiments of this disclosure are described below in the context of a system for capturing image data of surface features (e.g., hair) on a surface (e.g., a skin surface) and a method for measuring the values of one or more parameters of hair on the skin surface based on the captured image data. However, this disclosure is not limited to this context. In other embodiments, the system can be used to capture image data of any other features on a skin surface besides hair (e.g., moles, dandruff, clothing fibers) and a method for measuring the values of one or more parameters of these other features based on the captured image data. In some embodiments, the method disclosed herein tracks the location and / or orientation of multiple features (e.g., hair, moles, dandruff, clothing fibers) on a skin surface to determine the location and / or orientation of one of these features (e.g., hair) using the relative location and / or orientation between the different features. However, in other embodiments, the system is not limited to skin features and can be used to capture image data of any surface feature on any surface and a method for measuring the values of one or more parameters of these surface features.
[0045] System Overview
[0046] A system for collecting image data of surface features will now be discussed. In one embodiment, the system is used to collect image data of skin features (e.g., hair) on a skin surface. Figure 1B The image shown is a side view illustrating a system 100 for collecting image data of surface features, according to various embodiments. In one embodiment, system 100 includes a housing 112 that defines an opening 102. Figure 1B As shown, system 100 is a non-contact system that does not come into contact with the skin surface 14. The housing 112 of system 100 is positioned at a distance 104 from the skin surface 14. In one embodiment, the distance 104 is based on the focal length of one or more optical elements of system 100, such that captured image data of skin features (e.g., hair 16) on the skin surface 14 are in focus. In an example embodiment, the distance 104 is between approximately 400 μm and approximately 800 μm. Figure 1BAs shown, when the housing 112 of system 100 moves too close to the skin surface 14, system 100 stops capturing image data because such image data is out of focus with skin features (e.g., hair 16) on the skin surface 14. Figure 1B As shown, the opening 102 of the housing 112 is provided such that skin features (e.g., hair 16) extending beyond the distance 104 are not contacted by the housing 112, since these skin features extend through the opening 102. It is appreciated that this advantageously ensures that the positioning and orientation of the hair 16 are not affected by the housing 112, and thus accurate measurements of hair parameters (e.g., length, angle relative to the skin surface 14, etc.) can be obtained. Therefore, this design of the system 100 overcomes the previously discussed disadvantages of conventional systems due to contact with hair on the skin surface.
[0047] Figure 2A The block diagram illustrates a system 100 for collecting image data of surface features 124, based on examples of various implementation schemes. Figure 2B Examples of various implementation schemes are provided to illustrate... Figure 2A A block diagram of system 100, taken along line 2B-2B. In some embodiments, surface 114 is a skin surface, and surface feature 124 is a skin feature (e.g., hair 16, moles, dandruff, etc.). However, system 100 is not limited to collecting image data of skin features on a skin surface, but may also collect image data of non-skin features (e.g., clothing fibers) on a skin surface. Additionally, system 100 is not limited to capturing image data of features on a skin surface, and may be used to capture image data of any surface feature on any surface.
[0048] In one implementation scheme, such as Figure 2AAs shown, system 100 includes a radiation source 117 configured to emit a radiation signal 133 to illuminate surface features 124 in region 122 of surface 114. In one embodiment, the radiation source 117 is selected such that the illuminated surface feature 124 will be conspicuous relative to surface 114. In this embodiment, the radiation source 117 is selected to provide a strong contrast between reflected light from surface feature 124 and reflected light from surface 114, as detected by cameras 115a to 115c of system 100. It will be advantageous to select the radiation source 117 such that the contrast between reflected light from surface feature 124 (e.g., hair 16) and reflected light from surface 114 (e.g., skin surface 14) is relatively large. In one example embodiment, the wavelength of radiation source 117 is selected within a specific range because it is recognized that using light of specific wavelengths (e.g., visible and non-visible light) makes some features more conspicuous than others. In one example implementation, radiation source 117 is selected to emit green light (e.g., in the wavelength range between about 500 nm and about 560 nm) because this is a known wavelength range that provides strong contrast between most skin types and hair. In another example implementation, radiation source 117 is selected to emit blue / violet light (e.g., in the wavelength range between about 380 nm and about 480 nm) because this light is commonly used to provide contrast between dry and very moisturized skin. However, it is recognized that the wavelength of radiation source 117 should be selected based on the specific surface feature being imaged and measured (e.g., hair 16).
[0049] In some implementations, the radiation source 117 is modular and therefore can be easily removed and / or replaced from system 100 (e.g., from within housing 112). Although Figure 2A A radiation source 117 is depicted within housing 112, but in other embodiments, the radiation source 117 is external to housing 112 (e.g., mounted to the outer surface of housing 112 or in a separate housing). It is recognized that providing a modular radiation source 117 advantageously allows for easy replacement of the radiation source, enabling the switching of operating parameters (e.g., illumination wavelength, intensity, pulse characteristics, etc.) of the radiation source 117 depending on the specific surface feature being imaged and measured. In other embodiments, the radiation source 117 may be a variable wavelength source (e.g., a variable wavelength LED), such operating parameters (e.g., wavelength) of the radiation source 117 can be changed even within a single measurement, thereby enabling the identification of different types of surface features within a single measurement.
[0050] In some embodiments, the radiation source 117 is a short-wave infrared (SWIR) light source, and cameras 115a to 115c are configured to detect SWIR light. It is recognized that water strongly absorbs infrared (IR) light at these wavelengths. Because skin is water-rich while hair is not, the intensity of reflected light from the skin is low (e.g., low pixel intensity in images captured using cameras 115a to 115c), while the intensity of reflected light from the hair is high (e.g., high pixel intensity in images captured using cameras 115a to 115c). This provides excellent contrast for imaging and measuring the parameter values of hair on the skin surface. In one example embodiment, the radiation source 117 has a SWIR wavelength in the range of approximately 1400 nm to 1550 nm.
[0051] In one embodiment, system 100 includes a plurality of cameras 115a to 115c. Although Figure 2A and Figure 2B Three cameras 115a to 115c are depicted, but in other embodiments of the system, fewer or more cameras may be used. Cameras 115a to 115c are positioned and oriented to capture image data of surface feature 124 from region 122 of surface 114 at different angles. This captured image data of surface feature 124 at different angles at region 122 of surface 114 is advantageously used by the methods disclosed herein to obtain 3D bitmap images and 3D models of surface feature 124. In one embodiment, cameras 115a to 115c capture reflected light from surface feature 124 illuminated by transmitted light 133 from radiation source 117. Thus, in one embodiment, cameras 115a to 115c are configured to detect reflected light having a wavelength similar to that of radiation source 117.
[0052] System 100 also includes a plurality of optical elements 116a to 116c, which are configured to receive reflected light from surface features 124 in region 122 of surface 114. Although Figure 2A and Figure 2B The image depicts three optical elements 116a to 116c, but in other embodiments of the system, fewer or more than three optical elements may be used (e.g., the same number as the number of cameras 115a to 115c). The plurality of optical elements 116a to 116c are further configured to direct light to the plurality of cameras 115a to 115c. In one embodiment, as... Figure 2BAs shown, a plurality of optical elements 116a to 116c are configured to reduce a first angular aspect 132 of light received from surface features 124 in region 122 of surface 114 to a second angular aspect 134 of light incident on the plurality of cameras 115a to 115c. In this embodiment, the second angular aspect 134 is smaller than the first angular aspect 132. It is appreciated that the reduction in angular aspect advantageously allows the housing 112 accommodating the cameras 115a to 115c to be much smaller than it would be without the optical elements 116a to 116c. Figure 2B The design features are described in which multiple cameras 115a to 115c are spaced apart by a first distance 130, which is smaller than a second distance 131 in the absence of optical elements 116a to 116c, in order to receive light with a first angular span 132.
[0053] The housing of system 100 will now be discussed. For example... Figure 2A and Figure 2B As shown, in one embodiment, system 100 includes a housing 112 that defines an opening 102, which is consistent with previous descriptions. Figure 1B The discussion was conducted. In one embodiment, a plurality of cameras 115a to 115c are positioned within a housing 112. A plurality of optical elements 116a to 116c are also positioned within the housing 112 between the opening 102 and the plurality of cameras 115a to 115c. In this embodiment, the plurality of optical elements 116a to 116c are configured to receive light from surface features 124 in region 122 through the opening 102. Figure 2B As shown, in one embodiment, the housing 112 is configured to be positioned within a distance 104 from the region 122 of the surface 114 (e.g., between approximately 400 μm and approximately 800 μm). As in Figure 2A and Figure 2B As further shown, the opening 102 of the housing 112 is sized in a direction perpendicular to the surface 114 such that the opening 102 is configured to receive the tip of a surface feature 124 (e.g., hair 16) extending from region 122 of the surface 114. Additionally, in these embodiments, a plurality of optical elements 116a to 116c are arranged within the housing 112 to avoid contact with the tip of the surface feature 124 extending into the housing 112 through the opening 102.
[0054] The system controller, which is communicatively coupled to one or more components of system 100, will now be discussed. For example... Figure 2A and Figure 2BAs shown, in one embodiment, system 100 includes a controller 110 communicatively coupled to a radiation source 117 and a plurality of cameras 115a to 115c. In one embodiment, controller 110 is configured to send signals to the plurality of cameras 115a to 115c to cause the cameras to capture image data of surface 114 on a plurality of frames. In this embodiment, controller 110 is also configured to send signals to radiation source 117 to cause radiation source 117 to emit transmitted light 133 on a plurality of frames, such that transmitted light 133 is emitted at each of the plurality of frames. In an example embodiment, controller 110 sends synchronization signals to both radiation source 117 and cameras 115a to 115c, such that at each of the plurality of frames, light 133 is emitted by radiation source 117 and reflected light from surface feature 124 is captured by cameras 115a to 115c. As will be understood by those skilled in the art, cameras typically capture a certain number of frames per second (e.g., 30 frames per second, 100 frames per second, etc.). In these embodiments, based on the known frame capture rate, controller 110 sends a signal to cameras 115a to 115c to cause the cameras to capture image data within a specific time period (e.g., 5 seconds, 1.5 seconds, etc.) to obtain a desired number of frames (e.g., 150). However, these example values for frame capture rate, time period, and desired number of frames are merely examples of such values, and embodiments of this disclosure include any such values of these parameters. In one embodiment, controller 110 is also configured to receive from cameras 115a to 115c a signal conveying image data of each of a plurality of frames captured from region 122 of surface 114.
[0055] In one embodiment, system 100 includes more than one radiation source 117. In one example embodiment, system 100 includes multiple (e.g., three) LEDs as radiation sources, which pulse simultaneously with the frame capture rate of cameras 115a to 115c. In other embodiments, more than three LEDs may be used as radiation sources 117, such as seven LEDs. In still other embodiments, each of the multiple radiation sources (e.g., each of the seven LEDs) is individually controlled. In still other embodiments, the multiple radiation sources may be arranged in a specific arrangement (e.g., in a ring with an LED at the center). In one example embodiment, the multiple LEDs (e.g., seven LEDs) may be arranged in a ring with a single LED at the center. In still other embodiments, each of the multiple radiation sources may pulse in various modes (e.g., may pulse sequentially, such as multiple LEDs arranged in a ring). It is recognized that pulsed multiple LEDs sequentially can provide various advantages, such as better identification of the 3D shape of surface features. In one example implementation, where multiple LEDs are arranged in a ring and pulsed sequentially, the multiple LEDs can be pulsed based on a specific time period (e.g., 100 milliseconds, where the pulses make 10 times per second around the ring of LEDs) for the LEDs arranged in the circle.
[0056] In various embodiments, controller 110 includes an image data collection module 140, which includes instructions for causing controller 110 to perform... Figure 8A Method 500 includes one or more steps. In other embodiments, controller 110 includes an image data processing module 142, which includes instructions for causing controller 110 to perform... Figure 8B Method 550 includes one or more steps. In some implementations, the controller 110 is a general-purpose computer system, such as... Figure 9 What is described is one or more chipsets, such as Figure 10 The description.
[0057] We will now discuss one implementation of the system, in which the arrangement of the components advantageously produces a compact housing that accommodates the components. Figure 2C The block diagram illustrates a system 100' for collecting image data of surface features, based on examples of various implementation schemes. Figure 3A and Figure 3B Examples of various implementation schemes illustrate an embodiment for collecting image data of hair 16 on skin surface 14. Figure 2C The top perspective exploded view of System 100'. System 100' is similar to the previously discussed System 100, except for the features discussed in this paper.
[0058] like Figure 2C As shown, in one embodiment, a plurality of cameras 115a to 115c define corresponding plurality of image planes 152, and a plurality of optical elements 116a to 116c define corresponding plurality of optical planes 154. The plurality of optical elements 116a to 116c are configured such that each optical plane 154 intersects at least one of the image planes 152 within a focusing plane 150. In these embodiments, the focusing plane 150 corresponds to the plane to which the optical elements 116a to 116c are focused (e.g., the plane corresponding to surface feature 124). In an example embodiment, the optical elements 116a to 116c are lenses, and this arrangement of lenses is referred to as a hybrid-Scheimpflug arrangement. It is appreciated that this arrangement of the components of system 100' advantageously produces a more compact housing 112 than would be achieved without this arrangement. In one example implementation, the system components are arranged such that cameras 115a to 115b are spaced at a reduced distance 130 and are therefore able to receive light with a reduced angular span 134 from optical elements 116a to 116c. Figure 2B The reason is...
[0059] When image data is captured by cameras 115a to 115c, controller 110 determines whether the image data is in focus on the surface or feature 124 extending from the surface 114. This determination is made in order to decide whether to capture image data on multiple frames. This advantageously ensures that image data is not captured on multiple frames when the surface 114 or feature 124 extending from the surface 114 is out of focus. Figure 4A Examples of various implementation schemes illustrate the process from... Figure 2A The out-of-focus area 210 in the image captured by the cameras 115a to 115c of the system 100. Figure 4B Examples of various implementation schemes illustrate the process from... Figure 2A The system's cameras 115a to 115c capture images of a focus region 212. As those skilled in the art will understand, the image data captured by the camera comprises multiple pixels, each with a corresponding intensity value. In one embodiment, the out-of-focus region 210 is determined based on a pixel intensity transition between adjacent pixels 202 within and outside region 210 that is less than a threshold. Similarly, the focus region 212 is determined based on a pixel intensity transition between adjacent pixels 202 within and outside region 210 that is greater than a threshold.
[0060] The processing of image data by the controller will now be discussed. Image data captured by the camera and transmitted to the controller is processed by the controller. In one embodiment, the controller 110 combines image data from each of the multiple cameras 115a to 115c into a 3D bitmap image in each frame. Figure 5AExamples of various implementation schemes illustrate skin characteristics based on... Figure 2A The system 100 acquires 3D bitmap images 250 of image data. In one implementation, such as Figure 5A As shown, the 3D bitmap image 250 includes multiple regions 251, 253, and 255, each of which is based on image data provided by corresponding cameras 115a, 115b, and 115c within the corresponding frames of multiple frames.
[0061] Figure 5B Examples of various implementation schemes illustrate skin characteristics based on... Figure 2A The system 100 acquires a 3D bitmap image 260 of image data. In one embodiment, the 3D bitmap image 260 further includes multiple regions 261, 263, 265, each based on image data provided by corresponding cameras 115a, 115b, 115c at corresponding frames in a plurality of frames. In one embodiment, the 3D bitmap images 250, 260 are based on image data captured by cameras 115a to 115c at different frames (e.g., different times). In an example embodiment, the 3D bitmap image 260 is more focused on the skin surface 14 and surface features (e.g., hair 16) than the 3D bitmap image 250. In an example embodiment, the 3D bitmap image 260 is more focused on the skin surface 14 and surface features (e.g., hair 16) because when the image data used to generate the 3D bitmap image 260 is captured, cameras 115a to 115b are more focused on the skin surface 14 and surface features (e.g., hair 16).
[0062] Before capturing image data of a surface or features extending from a surface, the system including the camera is calibrated. This calibration is used to scale the image data captured by the camera, allowing the controller to determine values for one or more dimensions from the captured image data. To calibrate the system, an object with a known geometry is positioned in front of cameras 115a to 115c. The object is illuminated using light 133 from a radiation source 117. Image data of the object is captured using cameras 115a to 115c. Cameras 115a to 115c are then moved away from the object in one or more incremental distances (e.g., 10 μm), and image data is recaptured at each incremental distance. Image data is recaptured at a specific number (e.g., 60) of incremental distances. In some embodiments, a glass plate is used, and this glass plate is positioned between the calibration object and the camera during image data capture. Based on the captured data, the controller determines a 3D model of the object with the known geometry. Since the dimensions of the object are known, the controller can correlate the scale of the 3D model with the known dimensions of the object. This correlation is 3D calibration data, which is stored in the memory of the controller 110. Then, when capturing image data of skin features 16 on skin surface 14 and combining them into a 3D model of skin features 16, controller 110 can determine the values of one or more dimensions of the 3D model based on the stored 3D calibration data.
[0063] Figure 5C The image illustrates the calibration process based on an implementation scheme. Figure 2A An example of the front view of the calibration object 280 of system 100. (See example...) Figure 5C As shown, the calibration object 280 includes a plurality of spaced-apart points 283, wherein the spacing between adjacent points is known (e.g., 100 μm). Additionally, the calibration object 280 includes a reference triangle 281 at its center, which serves as a reference point to identify the individual points 283 of the object 280. In one embodiment, during the calibration step, cameras 115a to 115c are used to capture image data of the calibration object 280 at various incremental intervals (e.g., 10 μm) of a specific number (e.g., 60) between the cameras 115a to 115c and the object 280. In one embodiment, the controller 110 then combines this image data (at each incremental interval) into a 3D bitmap image 290, such as in... Figure 5D As illustrated in the diagram. In one embodiment, controller 110 combines multiple 3D bitmap images based on image data acquired at each incremental interval to form a 3D model of the calibration object 280. As previously discussed, since the dimensions of object 280 are known, controller 110 then determines 3D calibration data that correlates the measured dimensions of the 3D model with the known dimensions of object 280. This 3D calibration data is then stored in the memory of controller 110.
[0064] The images captured from each camera in the camera system will now be discussed. The methods disclosed in this paper are used to automatically identify one or more surface features (e.g., hair) in each image. Figures 6A to 6C Images 302, 304, and 306 of one embodiment illustrate skin features (e.g., hair 16) on skin surface 14. Figure 2A Examples of image data acquired by cameras 115a to 115c of system 100. In one embodiment, each of images 302, 304, 306 is captured using a corresponding camera 115a, 115b, 115c. Images 302, 304, 306 are output on a corresponding display of system 100 (e.g., display 614). In one embodiment, the method disclosed herein outputs one or more location identifiers 375 on each image 302, 304, 306, which indicate the common location of the same surface feature (e.g., hair 16) in each image. In one embodiment, location identifier 375 indicates the region and / or periphery of the same surface feature (e.g., the same hair 16) in each image 302, 304, 306. In another embodiment, location identifier 375 is color-coded, making it easy to locate the same identifier 375 for the same surface feature in each image 302, 304, 306. Therefore, in this example embodiment, the first surface feature (e.g., the first hair 16) may have a location identifier 375 with a first color spectrum in each image 302, 304, 306, while the second surface feature (e.g., the second hair 16) may have a location identifier 375 with a second color spectrum different from the first color spectrum in each image 302, 304, 306. It is understood that the location identifier 375 conveniently assists a user viewing the images 302, 304, 306 in easily identifying the same surface feature in different images.
[0065] The method disclosed herein is used to measure parameter values (e.g., length, diameter, angle, etc.) of the same surface feature (e.g., hair 16) on skin surface 14 across multiple frames. These measured parameter values of the same surface feature across multiple frames can be plotted in a graph. Figure 6D The graph 350, according to one embodiment, illustrates an example of measured parameter values for hair 16 on skin surface 14 across multiple frames. Horizontal axis 352 represents the multiple frames (unitless). Vertical axis 354 represents the measured parameter values (in μm). Trace 364 includes multiple measured parameter values for each of the multiple frames. For those frames where no measured parameter values were obtained, gaps 360 exist in trace 364. In some embodiments, the absence of measured parameter values is because the hair 16 is out of focus in the image data of that particular frame.
[0066] In other embodiments, no parameter value is measured because the hair 16 leaves the field of view of cameras 115a to 115c within that frame and is therefore not present in the image data. A 3D model of the skin surface 14 and features (e.g., hair 16) on or extending from the surface 14, determined by the method herein, is used to determine when any such hair 16 that has left the field of view of camera 115 returns to the field of view. This is achieved based on the 3D model identifying the positions of other features (e.g., moles, dandruff, clothing fibers, skin texture lines, etc.) around the hair 16, and thus, by using the relative position or location of the hair 16 with other features, the controller determines that the hair has returned to the field of view based on the position or location of surrounding features that have also returned to the field of view. In yet another embodiment, no parameter value is measured because the hair 16 is out of focus in a threshold number (e.g., two) of the images from images 302, 304, 306 of cameras 115a to 115c.
[0067] In another embodiment, graph 350 depicts a median parameter value 368, which is calculated based on the median of parameter values measured across multiple frames in trace 364. In yet another embodiment, graph 350 depicts outliers 362 that are not used to calculate the median parameter value because they are not within a threshold percentage (e.g., 10%, 20%, etc.) of the median parameter value 368.
[0068] As previously mentioned Figure 6A As discussed, a location identifier can be output on the display to indicate the location of the same surface feature in multiple images. In addition to this location identifier, other identifiers can also be output on multiple images to indicate the location of the same surface feature on multiple frames. Figure 6E The image, based on an embodiment, illustrates an example of image data of skin surface 14 with one or more location identifiers 374, 375 related to hair and tracking stitch lines 372, 382, 384. Location identifier 375 and... Figure 6A Similar to location identifier 375, it indicates the location of hair 16 in each of images 302, 304, and 306. (And...) Figure 6A The location identifier is the same as 375. Figure 6EThe location identifier 375 indicates regions and / or boundaries of the same surface features in each of images 302, 304, and 306. In addition to the location identifier 375, a hair center location identifier 374 is also output in image 370, indicating the center position of the same hair 16 in each image. In one example embodiment, the hair center location identifier 374 uses different symbols to indicate the center position of the hair 16 at different frames. In one example embodiment, the hair center location identifier 374 is a symbol (e.g., a "small square") indicating the position of the center of the hair 16 in the current frame displayed in image 370. In another example embodiment, the hair center location identifier is a different symbol (e.g., a "+") indicating the position of the center of the hair 16 in the first of a plurality of frames, where the hair 16 is sufficiently in focus before measurement begins. In yet another example embodiment, the hair center location identifier is a different symbol (e.g., an "x") indicating the position of the center of the hair 16 in the last of a plurality of frames, where the hair 16 is sufficiently in focus for measurement. In other embodiments, the hair center location identifier may have a specified color (e.g., white) so that users of the method can easily identify the center location of the same hair 16 in each image.
[0069] In addition to indicating the center of the location of a surface feature in each image, the method is also able to indicate a tracking stitch line that indicates the history of the center of the location of that surface type across multiple frames. In one embodiment, Figure 6EImage 370 outputs tracking lines 372, 382, and 384, which indicate the history or trajectory of the center position of different surface features (e.g., hair 16) across multiple frames. In one embodiment, tracking lines 372, 382, and 384 have different characteristics (e.g., different colors) to indicate that they represent the location history or trajectory of different hairs 16 across multiple frames. It is recognized that this advantageously conveys to the user of the method that the tracking lines are for different hairs 16 on the skin surface 14. In some embodiments, in cases where a tracking line has one or more breaks (e.g., due to the hair tending to be out of focus or out of the image field of view), the user can use an input device 612 (e.g., a mouse, touchscreen, etc.) to select the broken tracking lines and merge them to confirm that they belong to the same hair 16. By giving the tracking lines different colors, the user can easily distinguish which broken tracking lines belong to the same hair 16. In other embodiments, the method includes an option where a user can view on a display an animation of images 302, 304, 306 from the camera across multiple frames. By viewing the animation, the user can observe the movement of a center position (e.g., identifier 374) on the frame to confirm that the center position has moved along the path of the tracing stitch lines 372, 382, 384. This visual confirmation is used to verify that each tracing stitch line belongs to the same surface feature (e.g., hair 16).
[0070] In other embodiments, the tracking stitch lines are compared to determine if they show the same pattern. It is recognized that such a determination is relevant because it shows how the cameras 115a through 115c move frame by frame, and the consistency among these traces 372, 382, 384 is an indicator that hair tracking for each individual hair 16 is effective. When tracking for a hair fails, the stitch line for that particular hair shows a trace very different from the other hair traces. In some embodiments, the user may then consider this a potential reason for excluding the tracking stitch line for a particular hair. However, in other embodiments, this difference between the tracking stitch line for one hair and other tracking stitch lines for other hairs may indicate that the hair is in focus at different points in the frame. Therefore, in these embodiments, the different shapes of the tracking stitch lines for a particular hair are not always used as a basis for excluding tracking stitch lines.
[0071] In addition to indicating the location of a measurement of one or more surface features, the method is also able to output an indicator of errors when measuring the location of a surface feature. Figure 6FImage 390, according to one embodiment, illustrates an example of image data of skin surface with traces 392 indicating erroneous measurements of hair 16. In one embodiment, the erroneous trace 392 has a designated color (e.g., red) to indicate to the user that it represents a potentially erroneous location measurement of a surface feature (e.g., hair). In some embodiments, the erroneous trace 392 is output when the center location of the measurement (e.g., indicated by center identifier 374) does not overlap with the location identifier 375 of the same hair. Figure 6F As shown in some portions of image 390, some error traces in error trace 392 are provided where the center identifier 374 (e.g., the symbol “X”) does not overlap with the location identifier 375 (e.g., the color spectrum on the boundary or periphery of hair 16).
[0072] This method is used to measure one or more parameter values of surface features 124 (e.g., hair 16) on surface 114 (e.g., skin surface 14). These parameters will now be discussed. Figures 7A to 7D The image illustrates examples of different parameters of hair 16 on skin surface 14, based on one embodiment. In one embodiment, Figure 7A The text indicates hair 16 on the skin surface 14. In this embodiment, the parameters include the length 402 and diameter 404 of the hair 16. In another embodiment, the parameters include the angle of elevation 405 of the hair 16 relative to the skin surface 14. In one example embodiment, the angle of elevation 405 is measured in a first plane 450 perpendicular to the skin surface 14. In one example embodiment, the value of the angle of elevation 405 is between 0 and 90 degrees.
[0073] In another implementation scheme, such as along Figure 7A The line 7B-7B cut Figure 7B As shown, the parameters include the projection angle 408 of the root 17 of the hair 16 into a second plane 452 perpendicular to the first plane 450. In this embodiment, Figure 7B yes Figure 7A A top view depicting the hair 16. In one embodiment, the projection angle 408 is measured relative to the same reference direction 409 for each hair 16. In an example embodiment, the value of the projection angle 408 is between 0 and 360 degrees.
[0074] In another implementation scheme, such as Figure 7C As shown, the parameters include a tip cutting angle 412, which is the angle between the longitudinal axis 406 of the hair 16 and the tip surface 21 at the tip of the hair 16. In this embodiment, Figure 7C yes Figure 7AA side view depicting hair 16. In one embodiment, the tip cutting angle 412 is measured relative to the tip surface 21 and is between 0 and 90 degrees.
[0075] In another implementation scheme, such as Figure 7D As shown, the parameters include a swing angle 410, which is the angle between the tip surface 21 and the root 17 of the hair 16. More specifically, as Figure 7D As shown, the swing angle 410 is the angle between the longitudinal axis of the tip surface 21 (e.g., along the long axis of the elliptical tip) and the longitudinal axis of the hair root 17 (e.g., along the long axis of the elliptical root). In one embodiment, the swing angle 410 is between 0 and 360 degrees.
[0076] Methods for collecting image data of surface features
[0077] Methods for collecting image data of surfaces and features protruding from the surfaces will now be discussed. In one embodiment, the method is performed using the system 100 discussed earlier herein. Figure 8A It is based on an example of an implementation scheme. Figure 2A A flowchart of an example method 500 for capturing image data of a surface 114 having features 124, using system 100. Although for illustrative purposes, the steps are shown in... Figure 8A neutralization Figure 8B The subsequent flowcharts are depicted as overall steps in a specific order, but in other implementations, one or more steps or parts thereof are performed in a different order, or overlapped in time, sequentially or in parallel, or one or more steps or parts thereof are omitted, or one or more additional steps are added, or the method is changed in some combination.
[0078] Method 500 begins with step 501, in which 3D calibration data of system 100 is determined. As previously discussed, this is achieved by calibrating an object (e.g., Figure 5CThe calibration object 280 is positioned in front of cameras 115a to 115c, and image data is captured at multiple incremental intervals (e.g., 60 intervals spaced in 10 μm increments) between the object 280 and the cameras 115a to 115c to determine 3D calibration data. In one example embodiment, in step 501, image data of the calibration object 280 is captured at an initial interval of 300 μm, and then image data of the calibration object 280 is captured at intervals increasing by 10 μm until a desired number of images (e.g., 60) are captured. Based on the image data collected at each interval between the calibration object 280 and the cameras 115a to 115c, a corresponding 3D bitmap image 290 is generated for each interval. The controller 110 then combines the multiple 3D bitmap images 290 of the calibration object 280 into a 3D model of the calibration object 280. The controller 110 then determines 3D calibration data that correlates the dimensions of the 3D model of the calibration object 280 with the known dimensions of the calibration object 280. Then, controller 1100 stores the 3D calibration data in the memory of controller 110. This 3D calibration data is then used in a subsequent step of method 550 for measuring the parameter values of surface features based on the generated 3D model of the surface.
[0079] In step 503, image data of surface 114 having feature 124 is then captured using system 100. In one embodiment, in step 503, surface 114 is skin surface 14, and the feature is hair 16. In some embodiments, step 503 is repeated for multiple regions of skin surface 14 (e.g., multiple regions of the head, including cheeks, chin, jaw, neck, scalp, or legs, armpits, pubis, etc.). In one embodiment, in step 503, controller 110 sends a signal to each of radiation source 117 and cameras 115a to 115c to cause the radiation source to emit light and the cameras to capture image data of region 122 of surface 114 having feature 124. In another embodiment, in step 503, the user moves housing 112 of system 100 to a close distance (e.g., within 1 mm, such as in the range between approximately 400 μm and 800 μm) to surface 114 having feature 124. Additionally, in step 503, image data is sent from cameras 115a to 115c to controller 110.
[0080] In step 505, it is determined whether the image data captured in step 503 is in focus or at least sufficiently focused. In one embodiment, in step 505, the controller 110 processes the image data received from cameras 115a to 115c in step 503 into a 3D bitmap image 250. Figure 5AIn this embodiment, in step 505, controller 110 determines whether the 3D bitmap image 250 is in focus or at least sufficiently in focus. For the purposes of this description, “sufficiently in focus” means that surface features in the 3D bitmap image are distinguishable, but they may not be sharp enough to allow measurement of parameter values (e.g., length, diameter, etc.) of the surface features (e.g., hair 16) in regions 251, 253, 255 of the 3D bitmap image 250 are not sharp enough to allow measurement of parameter values (e.g., length, diameter, etc.), but they are distinguishable from the skin surface. In this embodiment, in step 505, upon determining that the surface features are sufficiently in focus, method 500 begins saving the captured image data frame by frame, assuming that the focus of the surface features will be sufficiently improved (e.g., as shown in regions 261, 263, 265 of the 3D bitmap image 260 based on image data captured in the next frame) to allow measurement of the parameter values of the surface features.
[0081] In one example implementation, in step 505, controller 110 determines that the 3D bitmap image 250 is sufficiently in focus based on examining regions 251, 253, 255 of the 3D bitmap image 250 corresponding to the respective cameras 115a, 115b, 115c. If controller 110 determines that a minimum number (e.g., two) of the regions 251, 253, 255 of the 3D bitmap image 250 are sufficiently in focus, then controller 110 determines that the image data captured in step 503 is sufficiently in focus. In some implementations, in step 505, controller 110 determines whether regions 251, 253, 255 are sufficiently in focus or are in focus (e.g., based on the transition of pixel intensity between adjacent pixels 202). Therefore, in step 505, in order for the controller 110 to determine that the image data is sufficiently in focus, it is not necessary for the different regions 251, 253, 255 to be in sharp focus, as long as the parameter values (e.g., length, diameter, etc.) of each surface feature (e.g., hair 16) can be measured. It is recognized that step 505 is advantageous because it indicates whether the cameras 115a to 115c are approaching the ideal focal length from the surface 114 including feature 124, and can therefore be used to determine whether to begin capturing image data of the surface 114 including feature 124 on multiple frames. If the determination in step 505 is affirmative, method 500 proceeds to step 509.
[0082] If the determination in step 505 is negative, the captured image data in that frame is discarded, and method 500 returns to step 503.
[0083] After the controller 110 determines in step 505 that the captured image data is sufficiently in focus, method 500 proceeds to step 509.
[0084] In step 509, the controller generates a 3D bitmap image based on the image data captured in step 503. In one embodiment, in step 509, the controller 110 generates a 3D bitmap image based on image data received from cameras 115a to 115c (e.g., Figure 6A Images 302, 304, and 306 are used to generate a 3D bitmap image 250.
[0085] In step 511, the 3D bitmap image generated in step 509 is stored. In one embodiment, in step 511, the 3D bitmap image is stored in the memory of controller 110. In another embodiment, in step 511, the 3D calibration data determined in step 501 is also stored in the memory of controller 110. In some embodiments, in step 511, the 3D bitmap image is stored based on one or more of the following: an identifier of the subject having skin surface 14, an identifier of the date the 3D bitmap image was generated, and an identifier of the region of the imaged skin surface 14 (e.g., left cheek, chin, etc.).
[0086] In step 513, the controller determines whether a time limit or frame limit has been reached. In one embodiment, in step 513, the controller 110 determines whether the 3D bitmap image generated in step 509 is the last frame in a plurality of frames (e.g., 150 frames). This determination is based on whether steps 509 and 511 need to be performed on more frames in the plurality of frames (if the image data for such frames is sufficient for focusing). In one embodiment, the plurality of frames is based on the frame capture rate of cameras 115a to 115c (e.g., 30 frames per second) and the time period (e.g., 5 seconds) during which cameras 115a to 115c capture images. Therefore, in some embodiments, the determination in step 513 is based on the controller 110 determining whether a specific time period (e.g., 5 seconds) has elapsed, such that multiple frames (e.g., 150) are captured using cameras 115a to 115c with that frame capture rate (e.g., 30 frames per second). In this embodiment, the determination in step 513 is affirmative until the specific time period (e.g., 5 seconds) has elapsed.
[0087] If the determination in step 513 is negative, method 500 proceeds to step 515, in which image data of the surface feature 124 in the next frame is captured using camera system 100. If the determination in step 513 is positive, method 500 ends, because there are no longer any frames on which image data needs to be captured and 3D bitmaps generated.
[0088] After determining in step 513 that the time limit or frame limit has not been reached and after capturing image data in step 515, in step 517, the controller makes a determination similar to that in step 505 regarding whether the image data captured in step 515 is sufficiently in focus. If the determination in step 517 is affirmative, method 500 returns to step 509, causing a 3D bitmap image to be generated based on the image data. Then, the generated 3D bitmap image is stored in step 511 before repeating the determination in step 513.
[0089] If the determination in step 517 is negative, then the image data captured in step 515 is not sufficiently in focus. Since nothing in the image is sufficiently in focus, data capture stops and the process ends. In one embodiment, after the controller 110 has finished saving all image frames, method 500 restarts from the beginning after a short delay (e.g., a few seconds).
[0090] Methods for determining parameter values of surface features
[0091] A method for measuring the values of one or more parameters of a surface feature based on image data collected from the surface having surface features will now be discussed. In one embodiment, the method measures the values of one or more parameters of the surface feature based on image data (e.g., 3D calibration data and 3D bitmap images of the surface on multiple frames) obtained from method 500. In some embodiments, surface 114 is skin surface 14, and surface feature 124 is skin feature (e.g., hair 16, moles, etc.).
[0092] Figure 8B This is an example of a utilization based on an implementation scheme. Figure 2A The flowchart illustrates an example method 550 for measuring the values of one or more parameters of a surface feature using image data captured by system 100. Method 550 begins at step 551, in which 3D calibration data and a 3D bitmap image of surface 114, including surface feature 124, are obtained across multiple frames. In one embodiment, the 3D calibration data and the 3D bitmap image of surface 114, including feature 124, across multiple frames are obtained from method 500. In other embodiments, the 3D calibration data and the 3D bitmap image can be obtained from another source without performing the steps of method 500.
[0093] In step 553, a 3D model of the surface feature 124 on the surface 114 is generated based on 3D calibration data and a 3D bitmap image of the feature 124 on the surface 114 within a first frame of multiple frames. The 3D model, incorporating the 3D calibration data, indicates the location of the surface feature 124 in each region of the surface 114, and thus, based on the 3D model and the 3D calibration data, the controller 110 can determine the relative location of the different features 124 in different regions of the surface 114. In one embodiment, in step 553, a 3D model of the surface feature 124 is generated based on the 3D calibration data and a 3D bitmap image 260 (5B) obtained based on image data captured at the first frame. In one embodiment, the 3D model is generated using any conventional method known in the art [1] utilizing the 3D calibration data and the 3D bitmap image.
[0094] In one implementation, in step 553, a 3D model is generated using the 3D bitmap image 260 and 3D calibration data by excluding one or more regions 261 from the 3D bitmap image 260 that indicate surface features and whose parameter values deviate from a threshold amount (e.g., 20%) from those indicated by other regions 263, 265.
[0095] In one implementation, the 3D model generated in step 553 creates and tracks the position of surface features relative to each other in 3D space frame by frame. While in some implementations, the 3D model generated in step 553 uses focused cylindrical features (e.g., hair 16) of the skin surface 14, in other implementations, the 3D model generated in step 553 also uses focused non-cylindrical features on the skin surface 14 (e.g., dander from dry skin or contaminants such as clothing fibers) to track the positioning of surface features. In these implementations, the 3D model generated in step 553 can track the positioning or orientation of each of these surface features in 3D space based on the relative positioning or orientation of these surface features in 3D space.
[0096] In one example implementation, as part of the modeling in step 553, the controller attempts to determine the orientation of cylindrical surface features (such as hair 16) based on identifying the “top” and “bottom” ends of the cylindrical surface features. In this example implementation, when generating the 3D model, the controller identifies the “top” end by determining the angle of cut and the sway angle 410. Figure 7DThe value of the value is used to identify the "top" of the cylindrical surface feature (e.g., hair 16). Additionally, in this example embodiment, when generating the 3D model, the controller identifies the "bottom" of the cylindrical feature (e.g., hair 16) by recognizing that the "bottom" should stop when the intensity of the cylindrical feature (e.g., pixel intensity in the captured image data and the generated 3D bitmap image) changes significantly (e.g., when the cylindrical feature enters the skin). As previously discussed, the radiation source 117 is selected such that the skin boundary is typically marked by a sudden change in the intensity of reflected light from the surface feature. In step 553, the controller identifies this change based on the generated 3D bitmap and the captured image data, and thus determines the location of the "bottom" of the hair 16. This advantageously prevents the controller from measuring anything below the level of the skin surface 14, which improves the accuracy of the 3D model. In some implementations, when the 3D model is generated in step 553, although the controller detects, tracks, and measures cylindrical features (e.g., hair), non-cylindrical features (e.g., dandruff) are also modeled so that they can be excluded from the measurement and will not be incorrectly identified as hair, especially when the color of the non-cylindrical feature (e.g., white) is the same as the color of some of the cylindrical features (e.g., hair).
[0097] In step 555, for those surface features in focus in the model generated in step 553, the values of one or more parameters of the surface features are measured. Therefore, in one embodiment, in step 555, the 3D model generated in step 553 is first evaluated to see if one or more surface features 124 (e.g., hair 16) are in focus. This determination of whether hair 16 is in focus in the 3D model in step 555 differs from step 505 of method 500, which evaluates whether the image data is sufficiently in focus (or is in focus). In one embodiment, the determination of whether hair 16 is in focus in the 3D model in step 555 has a higher threshold (e.g., a higher threshold for the difference in pixel intensity between adjacent pixels 202 inside and outside hair 16 in the 3D model). Figure 5B As shown, in one embodiment, a 3D bitmap image 260 depicting hair 16 on the skin surface 14 in different regions 261, 263, 265 is focused for the purpose of step 555. However, as Figure 5AAs shown, in one embodiment, the 3D bitmap image 250 with different regions 251, 253, 255 is out of focus for the purposes of step 555 because the hair 16 is indistinguishable. Therefore, the focus determination in step 555 is to assess whether the hair 16 in the 3D model is sufficiently sharp and distinct so that the parameter values (e.g., length, diameter, etc.) of the hair 16 can be measured within the calibration area. It is understood that the focus determination in step 555 is performed to avoid measuring the parameter values of the out-of-focus hair. The poorly focused feature is outside the calibration area and therefore cannot be measured correctly. If one or more surface features 124 (e.g., hair 16) are in focus, method 550 proceeds to the next part of step 555, discussed below. If one or more surface features 124 (e.g., hair 16) are out of focus, method 550 proceeds to step 557, and the next part of step 555, discussed below, is not performed.
[0098] In step 555, after determining that one or more surface features (e.g., hair 16) are in focus (and therefore within the calibration area) in the generated 3D model, the values of one or more parameters of hair 16 are measured. In one embodiment, the parameters include... Figures 7A to 7D Any parameter described. The 3D model generated in step 553 indicates the location and orientation of surface feature 124 in each region of surface 114, and can therefore be used to determine the relative location of different surface features 124 in different regions of skin surface 14, including the relative location of different portions of hair 16 on skin surface 14. Therefore, in step 555, controller 110 uses the 3D model to measure parameter values of hair 16 based on the determined relative location of different portions of hair 16. Figures 7A to 7D Different portions of the hair 16 and skin surface 14 are depicted for measuring various parameter values. If the surface feature is out of focus or cannot be otherwise evaluated to measure the parameter value, method 550 bypasses steps 555 to 557, and therefore the parameter value is not determined in step 555.
[0099] In step 557, the next frame of the 3D bitmap image is then evaluated to determine whether one or more surface features 124 (e.g., hair 16) are in focus. In one embodiment, step 557 is similar to the first part of step 555. If step 557 determines that one or more surface features are in focus in the next 3D bitmap image, method 550 proceeds to step 559. If step 557 determines that one or more surface features are out of focus in the next 3D bitmap image, method 550 moves to step 563.
[0100] In step 559, the 3D model generated in step 553 is updated based on the next 3D bitmap image evaluated in step 557 and the 3D calibration data. In one embodiment, step 559 updates the 3D model from step 553 based on another 3D bitmap image of surface 114 acquired at a different frame after the first frame. In one embodiment, the 3D model is updated in step 559 using a technique similar to that discussed with respect to step 553 when generating the 3D model. It is recognized that this update of the 3D model enhances the 3D model by supplementing it with additional surface features that may not be present in the 3D model generated in step 553 and additional surfaces of such surface features.
[0101] In one implementation, in step 559, the 3D model is updated using a 3D bitmap image 260 and 3D calibration data by excluding one or more regions 261 from one of the cameras 115a to 115c that indicate surface features and whose parameter values deviate from a threshold amount (e.g., 20%) from those indicated by other regions 263, 265.
[0102] In step 561, the values of one or more parameters of the surface feature (e.g., hair 16) in focus in the 3D model are measured. In one embodiment, this higher focus threshold ensures that any measured feature is within a specific range (e.g., from about 400 μm to about 800 μm) of the surface 114 having feature 124. For the purposes of this disclosure, this is referred to as the calibration zone. In one embodiment, step 561 is performed in a manner similar to the second part of step 555, except that step 561 is performed using an updated 3D model from step 559. If the surface feature is out of focus or the parameter value cannot be otherwise evaluated for measurement, method 550 bypasses steps 561 to 563, and therefore the parameter value is not determined in step 561.
[0103] In step 563, it is determined whether the 3D bitmap images from each of the multiple frames have been considered. In one embodiment, the determination in step 563 is based on a counter that determines whether step 557 has been performed a specific number of times (e.g., the number of the multiple frames).
[0104] In step 565, the characteristic of the surface feature's parameter values (measured in steps 555 and 561) across multiple frames is calculated. In one embodiment, this characteristic is the median. In other embodiments, any other measure of the parameter values (e.g., mean, minimum, maximum, standard deviation, etc.) may be calculated. In one embodiment, in step 565, a graph 350 is generated indicating the calculated median parameter value 368. In another embodiment, in step 565, graph 350 plots a number of frames (e.g., 101) out of the multiple frames (e.g., 150) where parameter values were measured in step 555 or 561. In this example embodiment, some frames (e.g., 49) do not have measured parameter values because the surface feature was determined to be out of focus in step 555 or 557, and therefore the step of measuring parameter values is not performed in step 555 or 561. Therefore, gap 360 is plotted in graph 350. Curve 350 is merely an example implementation of the parameter values measured by method 550 based on 3D calibration data and 3D bitmap images generated on multiple frames.
[0105] In step 567, the calculated value from step 565 is stored in memory. In one embodiment, the calculated value in step 565 is the median of the calculated parameter values measured in steps 555 and 561. In another embodiment, in step 567, the calculated value is stored in the memory of controller 110. In one example embodiment, the 3D bitmap image obtained in step 551 comes from a corresponding region of skin surface 14 (e.g., cheek, jaw, chin, neck, etc.), and therefore in step 567, the calculated value is stored along with an identifier of the region of skin surface 14. In yet another example embodiment, in step 567, the calculated value is stored along with an identifier of the subject having skin surface 14 and an identifier of the date the 3D bitmap image was generated or method 550 was performed.
[0106] Hardware Overview
[0107] Figure 9This is a block diagram illustrating a computer system 600 on which one embodiment of the present disclosure may be implemented. The computer system 600 includes communication mechanisms, such as a bus 610, for transmitting information between other internal and external components of the computer system 600. Information is represented as a physical signal of a measurable phenomenon, typically voltage, but in other embodiments, includes phenomena such as magnetic, electromagnetic, pressure, chemical, molecular, atomic, and quantum interactions. For example, a north and south magnetic field, or zero and non-zero voltage, represent two states (0, 1) of a binary digit (bit). Other phenomena may represent higher cardinality digits. A superposition of multiple simultaneous quantum states prior to measurement represents a qubit. A sequence of one or more digits constitutes digital data used to represent numbers or codes for characters. In some embodiments, information referred to as analog data is represented by a near-continuum of measurable values within a specific range. The computer system 600 or portions thereof constitute components for performing one or more steps of one or more methods described herein.
[0108] A sequence of binary digits constitutes digital data used to represent numbers or codes. Bus 610 includes a plurality of parallel information conductors, enabling rapid transfer of information between devices coupled to bus 610. One or more processors 602 are coupled to bus 610 for processing the information. Processor 602 performs a set of operations on the information. This set of operations includes introducing information from bus 610 and placing information on bus 610. This set of operations typically also includes comparing two or more information units, shifting the position of information units, and combining two or more information units, such as by addition or multiplication. The sequence of operations to be executed by processor 602 constitutes computer instructions.
[0109] Computer system 600 also includes memory 604 coupled to bus 610. Memory 604, such as random access memory (RAM) or other dynamic storage devices, stores information including computer instructions. Dynamic memory allows information stored therein to be modified by computer system 600. RAM allows information units stored at locations referred to as memory addresses to be stored and retrieved independently of information at adjacent addresses. Memory 604 is also used by processor 602 to store temporary values during the execution of computer instructions. Computer system 600 also includes read-only memory (ROM) 606 or other static storage devices coupled to bus 610 for storing static information, including instructions, that is not modified by computer system 600. Also coupled to bus 610 is a non-volatile (persistent) storage device 608, such as a disk or optical disk, for storing information including instructions that persists even when computer system 600 is turned off or otherwise powered down.
[0110] Information, including instructions, is provided from external input devices 612 (such as a keyboard containing alphanumeric keys operated by a human user, or sensors) to bus 610 for use by the processor. Sensors detect conditions in their vicinity and convert those detections into signals compatible with signals used to represent information in computer system 600. Other primary external devices coupled to bus 610 for human interaction include display devices 614 (such as cathode ray tube (CRT) or liquid crystal display (LCD)) for presenting images, and pointing devices 616 (such as a mouse, trackball, or arrow keys) for controlling the positioning of a small cursor image presented on display 614 and issuing commands associated with the graphical elements presented on display 614.
[0111] In the illustrated implementation, dedicated hardware such as an application-specific integrated circuit (IC) 620 is coupled to bus 610. The dedicated hardware is configured to perform operations that the processor 602 cannot execute quickly enough for a specific purpose. Examples of dedicated ICs include graphics accelerator cards for generating images for display 614, cryptographic pads for encrypting and decrypting messages transmitted over a network, speech recognition, and interfaces to special external devices such as robotic arms and medical scanning equipment that repeatedly perform complex sequences of operations that are more efficiently implemented in hardware.
[0112] Computer system 600 also includes one or more instances of a communication interface 670 coupled to bus 610. Communication interface 670 provides bidirectional communication to a variety of external devices that operate using their own processors, such as printers, scanners, and external disks. Typically, the coupling is made with a network link 678 connected to a local network 680, where various external devices with their own processors are connected. For example, communication interface 670 may be a parallel port, a serial port, or a Universal Serial Bus (USB) port on a personal computer. In some embodiments, communication interface 670 is an Integrated Services Digital Network (ISDN) card, a Digital Subscriber Line (DSL) card, or a telephone modem that provides information communication connectivity to a corresponding type of telephone line. In some embodiments, communication interface 670 is a cable modem that converts signals on bus 610 into signals for communication connections over coaxial cable or into optical signals for communication connections over fiber optic cable. As another example, communication interface 670 may be a Local Area Network (LAN) card to provide data communication connectivity to a compatible LAN, such as Ethernet. Wireless links may also be implemented. Carrier waves, such as sound waves and electromagnetic waves, including radio waves, light waves, and infrared waves, propagate through space without wires or cables. Signals include artificial variations in the amplitude, frequency, phase, polarization, or other physical properties of the carrier wave. For wireless links, communication interface 670 transmits and receives electrical, acoustic, or electromagnetic signals carrying information streams such as digital data, including infrared and optical signals.
[0113] The term "computer-readable medium" is used herein to refer to any medium that participates in providing information (including instructions to be executed) to processor 602. Such media can take many forms, including but not limited to non-volatile media, volatile media, and transmitting media. Non-volatile media include, for example, optical discs or magnetic disks, such as storage device 608. Volatile media include, for example, dynamic memory 604. Transmitting media include, for example, coaxial cables, copper wires, fiber optic cables, and waves that propagate through space without wires or cables, such as sound waves and electromagnetic waves, including radio waves, light waves, and infrared waves. The term "computer-readable storage medium" is used herein to refer to any medium that participates in providing information to processor 602, excluding transmitting media.
[0114] Common forms of computer-readable media include, for example, floppy disks, flexible disks, hard disks, magnetic tape or any other magnetic media, compressed disc ROM (CD-ROM), digital video disc (DVD) or any other optical media, punched cards, paper tape or any other physical media with a perforated pattern, RAM, programmable ROM (PROM), erasable PROM (EPROM), FLASH-EPROM or any other memory chip or cartridge, carrier waves or any other media from which a computer can read. The term non-transitory computer-readable storage medium is used herein to refer to any medium involved in providing information to processor 602, excluding carrier waves and other signals.
[0115] Logic encoded in one or more tangible media includes one or both of processor instructions on a computer-readable storage medium and special-purpose hardware (such as ASIC*620).
[0116] Network link 678 typically provides information communication to other devices using or processing information via one or more networks. For example, network link 678 may provide a connection to host computer 682 or to equipment 684 operated by an Internet Service Provider (ISP) via local network 680. ISP equipment 684, in turn, provides data communication services via a public global packet-switched communications network, now commonly referred to as the Internet 690. A computer connected to the Internet, referred to as server 692, provides services in response to information received via the Internet. For example, server 692 provides information representing video data for presentation at display 614.
[0117] This disclosure relates to the use of a computer system 600 for implementing the techniques described herein. According to one embodiment of this disclosure, those techniques are executed by the computer system 600 in response to processor 602 executing one or more sequences of one or more instructions contained in memory 604. Such instructions (also referred to as software and program code) may be read into memory 604 from another computer-readable medium such as storage device 608. Execution of the sequence of instructions contained in memory 604 causes processor 602 to perform the method steps described herein. In alternative embodiments, hardware such as application-specific integrated circuit 620 may be used instead of or in combination with software to implement this disclosure. Therefore, embodiments of this disclosure are not limited to any particular combination of hardware and software.
[0118] Signals transmitted via communication interface 670 on network link 678 and other networks carry information to and from computer system 600. Computer system 600 can transmit and receive information, including program code, via network link 678 and communication interface 670 through networks 680, 690, etc. In the example using Internet 690, server 692 sends program code for a specific application requested by a message transmitted from computer 600 via Internet 690, ISP equipment 684, local network 680, and communication interface 670. The received code can be executed by processor 602 upon receipt, or stored in storage device 608 or other non-volatile storage for later execution, or both. In this way, computer system 600 can obtain application code in signal form on a carrier wave.
[0119] Various forms of computer-readable media may involve carrying one or more sequences of instructions or data, or both, to processor 602 for execution. For example, instructions and data may initially be carried on a disk of a remote computer, such as host 682. The remote computer loads the instructions and data into its dynamic memory and transmits the instructions and data over a telephone line using a modem. A modem local to computer system 600 receives the instructions and data over the telephone line and uses an infrared transmitter to convert the instructions and data into signals on an infrared carrier wave used as a network link 678. An infrared detector, used as a communication interface 670, receives the instructions and data carried in the infrared signal and places information representing the instructions and data onto bus 610. Bus 610 carries the information to memory 604, from which processor 602 retrieves instructions and executes the instructions using some of the data transmitted with the instructions. The instructions and data received in memory 604 may optionally be stored on storage device 608 before or after execution by processor 602.
[0120] Figure 10 A chipset 700 is shown on which embodiments of the present disclosure may be implemented. The chipset 700 is programmed to perform one or more steps of the methods described herein and includes, for example, information incorporated in one or more physical packages (e.g., chips). Figure 9 The processor and memory components described herein. For example, a physical package includes an arrangement of one or more materials, components, and / or wires on a structural assembly (e.g., a substrate) to provide one or more properties, such as physical strength, size conservation, and / or limitation of electrical interactions. It is envisioned that, in some embodiments, the chipset may be implemented as a single chip. Chipset 700 or a portion thereof constitutes components for performing one or more steps of the methods described herein.
[0121] In one embodiment, chipset 700 includes a communication mechanism, such as bus 701, for transferring information between components of chipset 700. Processor 703 has a connection to bus 701 to execute instructions and process information stored, for example, in memory 705. Processor 703 may include one or more processing cores, each configured to execute independently. Multi-core processors enable multiple processing within a single physical package. Examples of multi-core processors include two, four, eight, or more processing cores. Alternatively or additionally, processor 703 may include one or more microprocessors configured in series via bus 701 to enable independent execution, pipelining, and multithreading of instructions. Processor 703 may also be accompanied by one or more dedicated components to perform certain processing functions and tasks, such as one or more digital signal processors (DSPs) 707 or one or more application-specific integrated circuits (ASICs) 709. DSP 707 is typically configured to process real-world signals (e.g., sound) in real time independently of processor 703. Similarly, ASIC 709 may be configured to perform dedicated functions that are not easily performed by general-purpose processors. Other dedicated components used to assist in performing the functions described herein include one or more field-programmable gate arrays (FPGAs) (not shown), one or more controllers (not shown), or one or more other dedicated computer chips.
[0122] The processor 703 and accompanying components are connected to the memory 705 via a bus 701. The memory 705 includes dynamic memory (e.g., RAM, disk, writable optical disc, etc.) and static memory (e.g., ROM, CD-ROM, etc.) for storing executable instructions that, when executed, perform one or more steps of the methods described herein. The memory 705 also stores data associated with or generated by the execution of one or more steps of the methods described herein.
[0123] Further definitions and cross-references
[0124] The dimensions and values disclosed herein should not be construed as strictly limited to the precise numerical values cited. Rather, unless otherwise specified, each such dimension is intended to represent the stated value and the range surrounding its functional equivalent. For example, a dimension disclosed as “40 mm” is intended to represent “approximately 40 mm”.
[0125] Unless expressly excluded or otherwise limited, every reference cited herein, including any cross-references or related patents or patent applications, and any patent application or patent claiming priority to or benefiting from such reference, is incorporated herein by reference in its entirety. No reference to any document is an admission that it is prior art to any disclosure disclosed herein or protected by the claims, or an admission that it independently or in any combination with any other one or more references presents, suggests, or discloses any such disclosure. Furthermore, where any meaning or definition of a term in this invention conflicts with any meaning or definition of the same term in referenced documents, the meaning or definition given to that term in this invention shall prevail.
[0126] While specific embodiments of this disclosure have been illustrated and described by way of example, it will be apparent to those skilled in the art that various other changes and modifications may be made without departing from the spirit and scope of this disclosure. Therefore, this document is intended to cover all such changes and modifications that fall within the scope of this disclosure in the appended claims.
Claims
1. A system (100) comprising: Multiple cameras (115a to 115c); A plurality of optical elements (116a to 116c) are configured to receive light from a region (122) of a surface (114) having one or more features (124), and are further configured to direct the light to the plurality of cameras (115a to 115c). At least one processor (110) is communicatively coupled to the plurality of cameras (115a to 115c); and At least one memory (140), said at least one memory comprising one or more instruction sequences, The at least one memory and the one or more instruction sequences are configured to enable the system (100) to perform at least the following operations using the at least one processor (110): Determine the 3D calibration data for the plurality of cameras (115a to 115c); Image data of the focused area (122) is automatically received from the plurality of cameras (115a to 115c) on multiple frames; The 3D bitmap image of each of the plurality of frames is automatically determined based on the image data of each of the plurality of frames; as well as The 3D calibration data and the 3D bitmap images on the plurality of frames are stored in the memory (140).
2. The system (100) according to claim 1, wherein the surface (114) is a skin surface.
3. The system (100) according to claim 1, wherein the plurality of cameras (115a to 115c) define a corresponding plurality of image planes (152); wherein the plurality of optical elements (116a to 116c) define a corresponding plurality of optical planes (154), and wherein the plurality of optical elements (116a to 116c) are configured such that each optical plane (154) intersects with at least one of the image planes (152) in the focusing plane (150).
4. The system (100) according to claim 3, wherein the focusing plane (150) is aligned with the surface (114).
5. The system (100) according to claim 1, wherein the plurality of optical elements (116a to 116c) are configured to reduce a first angular spread (132) of light received from the region (122) of the surface (114) to a second angular spread (134) of light incident on the plurality of cameras (115a to 115c), wherein the second angular spread (134) is smaller than the first angular spread (132).
6. The system (100) according to claim 1, wherein the system is a non-contact system and the non-contact system is configured to receive first image data and second image data of the region (122) of the surface (114) without contacting the surface (114).
7. The system (100) of claim 6, further comprising a housing (112) defining an opening (102), wherein the plurality of cameras (115a to 115c) are positioned within the housing (112); wherein the plurality of optical elements (116a to 116c) are positioned within the housing (112) between the opening (102) and the plurality of cameras (115a to 115c), and wherein the plurality of optical elements (116a to 116c) are configured to receive light from the region (122) through the opening (102).
8. The system (100) according to claim 1, further comprising a radiation source (117) configured to output a radiation signal (133) to irradiate the surface feature (124), wherein the absorption of the radiation signal (133) in the surface feature (124) is different from that in the surface (114).
9. A method (500), the method comprising: The processor (110) is used to determine (502) 3D calibration data of a camera system (100) including multiple cameras (115a to 115c); The processor (110) automatically receives (507) first image data (302, 304, 306) of a region (122) of a surface (114) having one or more features (124) from the camera system (100) on multiple frames; The processor (110) automatically (509) determines (250) the 3D bitmap image of each of the plurality of frames based on the first image data (302, 304, 306) of each of the plurality of frames; and The processor (110) stores (513) the 3D calibration data and the 3D bitmap images (250) on the plurality of frames.
10. The method (500) according to claim 9, further comprising: The processor (110) receives (503) second image data of the region (122) of the surface (114) from the camera system (100); The processor (110) automatically determines (505) whether the second image data is in focus with the surface (114); And the automatic reception (507) of the first image data (302, 304, 306) on the plurality of frames is focused based on the second image data.
11. The method (500) according to claim 9, wherein the 3D calibration data is determined by capturing image data of the object (280) at multiple intervals between the plurality of cameras (115a to 115c) and the object (280) having a predetermined geometry.
12. A method (550), the method comprising: The processor (110) receives (551) 3D calibration data and multiple 3D bitmap images (250) of the surface (114) on the corresponding multiple frames; The processor (110) automatically (557) determines (558) whether the surface features (124) in the 3D bitmap image (250) of each frame are in focus; The processor automatically determines (553, 559) the 3D model of the surface feature (124) based on the 3D calibration data and one or more 3D bitmap images (250) in which the surface feature (124) is focused. The processor (110) automatically determines (555, 561) the values of one or more parameters (402, 404, 405, 408, 410, 412) of the focused surface feature (124) based on the 3D model of the plurality of frames; and The processor (110) automatically calculates (565) the median of one or more parameters (402, 404, 405, 408, 410, 412) of the surface feature (124) on the plurality of frames; and The processor (110) stores (567) the calculated median of one or more parameters (402, 404, 405, 408, 410, 412) of the surface feature (124) and an identifier indicating the surface feature (124).
13. The method (500) according to claim 12: The 3D model of the surface (114) is automatically determined (553) based on the 3D calibration data and the 3D bitmap image (250) of the first frame of the plurality of frames; The method automatically determines (555) the values of one or more parameters (402, 404, 405, 408, 410, 412) of the surface feature (124) based on the 3D model for the first frame of the plurality of frames; and the method further includes: The processor (110) automatically (559) determines (559) an updated 3D model of the surface (114) based on the 3D calibration data and the 3D bitmap image (250) focused on the surface feature (124) in each subsequent frame after the first frame; and The processor (110) automatically determines (561) the values of one or more parameters (402, 404, 405, 408, 410, 412) of the surface feature (124) based on the updated 3D model in each of the next frames after the first frame.
14. The method (550) according to claim 12, wherein the surface (114) is a skin surface and the surface feature (124) is hair.
15. The method (550) of claim 113, wherein automatically determining (555) the value of the parameter of the surface feature (124) in the 3D model includes automatically identifying the position of the surface feature (124) in the 3D model of the first frame; And wherein the value of the parameter of the surface feature (124) is automatically determined (561) in the updated 3D model, including the automatic identification of the position of the surface feature (124) in the updated 3D model in each of the next frames after the first frame.