There are various needs for understanding the shape and size of cavity surfaces, such as body cavities. For example, hearing aids, hearing protection, custom head phones, and wearable computing devices may require impressions of a patient's ear canal. To construct an impression of an ear canal, audiologists may inject a silicone material into a patient's ear canal, wait for the material to harden, and then provide the mold to manufacturers who use the resulting silicone impression to create a custom fitting in-ear device. As may be appreciated, the process is slow, expensive, and unpleasant for the patient as well as a medical professional performing the procedure.
Computer vision and photogrammetry generally relates to acquiring and analyzing images in order to produce data by electronically understanding an image using various algorithmic methods. For example, computer vision may be employed in event detection, object recognition, motion estimation, and various other tasks.
Many aspects of the present disclosure can be better understood with reference to the following drawings. The components in the drawings are not necessarily to scale, with emphasis instead being placed upon clearly illustrating the principles of the disclosure. Moreover, in the drawings, like reference numerals designate corresponding parts throughout the several views.
The present disclosure relates to calibration of a mobile scanning device configured to scan and generate images and reconstructions of surfaces. Advancements in computer vision permit imaging devices, such as conventional cameras, to be employed as sensors useful in determining locations, shapes, and appearances of objects in a three-dimensional space. For example, a position and an orientation of an object in a three-dimensional space may be determined relative to a certain world coordinate system utilizing digital images captured via image capturing devices. As may be appreciated, the position and orientation of the object in the three-dimensional space may be beneficial in generating additional data about the object, or about other objects, in the same three-dimensional space. Calibration of the imaging system ensures accurate modeling of the imaged space.
For example, scanning devices may be used in various industries to scan objects to generate data pertaining to the objects being scanned. A scanning device may employ an imaging device, such as a camera, to determine information about the object being scanned, such as the size, shape, or structure of the object, the distance of the object from the scanning device, etc.
As a non-limiting example, a scanning device may include an otoscanner configured to visually inspect or scan a cavity such as, e.g., the ear canal of a human or animal. An otoscanner may comprise one or more cameras that may be beneficial in generating data about the cavity subjected to the scan, such as the size, shape, or structure of the ear canal. This data may be used in generating three-dimensional reconstructions of the ear canal that may be useful in customizing in-ear devices, for example but not limited to, hearing aids or wearable computing devices.
Determining the size, shape, or structure of an object subject to a scan may require information about a position of the object relative to the scanning device conducting the scan. For example, during a scan, a distance of an otoscanner from an ear canal may be beneficial in determining the shape of the ear canal. An estimated position of the scanning device relative to the object being scanned (i.e., the pose estimate) may be generated using various methods, as will be described in greater detail below.
According to one embodiment, determining an accurate pose estimate for a scanning device (e.g., an otoscanner) may comprise employing one or more fiducial markers to be imaged via one or more imaging devices in data communication with the scanning device. By being imaged via the imaging devices, the fiducial marker may act as a point of reference or as a measure in estimating a pose (or position) of the scanning device. A fiducial marker may comprise, for example, a circle-of-dots fiducial marker comprising a plurality of machine-identifiable regions (also known as “blobs”). In other embodiments, the tracking targets may be naturally occurring features surrounding and/or within the cavity to be scanned. Fiducial markers may also be used for calibration of the scanning device.
As a scanning device is performing a scan of an object, the one or more imaging devices may generate one or more digital images. The digital images may be analyzed for the presence of at least a portion of the one or more circle-of-dots fiducial markers. Subsequently, an identified portion of the one or more circle-of-dots fiducial markers may be analyzed and used in determining a relatively accurate pose estimate for the scanning device. The pose estimate may be used in generating three-dimensional reconstructions of a cavity such as, e.g., an ear canal. In the following discussion, a general description of the system and its components is provided, followed by a discussion of the operation of the same.
With reference to
The hand grip 106 may be configured such that the length is long enough to accommodate large hands and the diameter is small enough to provide enough comfort for smaller hands. A trigger 121, located within the hand grip 106, may perform various functions such as initiating a scan of a surface, controlling a user interface rendered in the display, initiating a calibration process and/or otherwise modifying the function of the scanning device 100.
The scanning device 100 may further comprise a cord 124 that may be employed to communicate data signals to external computing devices and/or to power the scanning device 100. As may be appreciated, the cord 124 may be detachably attached to facilitate the mobility of the scanning device 100 when held in a hand via the hand grip 106. According to various embodiments of the present disclosure, the scanning device 100 may not comprise a cord 124, thus acting as a wireless and mobile device capable of wireless communication.
The probe 109 mounted onto the scanning device 100 may be configured to guide light received at a proximal end of the probe 109 to a distal end of the probe 109 and may be employed in the scanning of a surface cavity such as, e.g., an ear canal, by placing the probe 109 near or within the surface cavity. During a scan, the probe 109 may be configured to project a 360-degree ring onto the cavity surface and capture reflections from the projected ring to reconstruct the image, size, and shape of the cavity surface. In addition, the scanning device 100 may be configured to capture video images of the cavity surface by projecting video illuminating light onto the cavity surface and capturing video images of the cavity surface. The scanning device 100 may also be configured to verify calibration of the probe 109.
The fan light element 112 mounted onto the scanning device 100 may be configured to emit light in a fan line for scanning an outer surface. The fan light element 112 comprises a fan light source projecting light onto a single element lens to collimate the light and generate a fan line for scanning the outer surface. By using triangulation of the reflections captured when projected onto a surface, the imaging system within the scanning device 100 may reconstruct a three-dimensional (3D) image of the scanned surface. Calibration of the fan line emitted by the fan light element 112 may also be verified.
Referring next to
Turning now to
In the examples of
Further, the display screen 118 is coupled for data communication to the imaging devices 115 (not shown). The display screen 118 may be configured to display and/or render images of the scanned surface. The displayed images may include digital images or video of the cavity captured by the probe 109 and the fan light element 112 (not shown) as the probe 109 is moved within the cavity. The displayed images may also include real-time constructions of three-dimensional images corresponding to the scanned cavity. The display screen 118 may be configured, either separately or simultaneously, to display the video images and the three-dimensional images, as will be discussed in greater detail below.
According to various embodiments of the present disclosure, the imaging devices 115 of
Moving on to
Referring next to
In the second portion 303b, a real-time three-dimensional reconstruction of the object being scanned may be rendered, providing the operator of the scanning device 100 with an estimate regarding what portion of the surface cavity has been scanned. For example, the three-dimensional reconstruction may be non-existent as a scan of a surface cavity is initiated by the operator. As the operator progresses in conducting a scan of the surface cavity, a three-dimensional reconstruction of the surface cavity may be generated portion-by-portion, progressing into a complete reconstruction of the surface cavity at the completion of the scan. In the non-limiting example of
A three-dimensional reconstruction of an ear canal 309 may be generated via processing circuitry including, e.g., one or more processors internal to the scanning device 100, external to the scanning device 100, or a combination thereof. Generating the three-dimensional reconstruction of the object subject to the scan may require information related to the pose of the scanning device 100. The three-dimensional reconstruction of the ear canal 309 may further comprise, for example, a probe model 310 emulating a position of the probe 109 relative to the surface cavity being scanned by the scanning device. Determining the information that may be used in the three-dimensional reconstruction of the object subject to the scan and the probe model 310 will be discussed in greater detail below.
A notification area 312 may provide the operator of the scanning device with notifications, whether assisting the operator with conducting a scan or warning the operator of potential harm to the object being scanned. Measurements 315 may be rendered in the display to assist the operator in conducting scans of surface cavities at certain distances and/or depths. A bar 318 may provide the operator with an indication of which depths have been thoroughly scanned as opposed to which depths or distances remain to be scanned. One or more buttons 321 may be rendered at various locations of the user interface permitting the operator to initiate a scan of an object and/or manipulate the user interface presented on the display screen 118 or other display in data communication with the scanning device 100. According to one embodiment, the display screen 118 comprises a touch-screen display and the operator may engage button 321 to pause and/or resume an ongoing scan.
Although portion 303a and portion 303b are shown as being simultaneously displayed in a side-by-side arrangement, other embodiments may be employed without deviating from the scope of the user interface. For example, portion 303a may be rendered in the display screen 118 on the scanning device 100 and portion 303b may be located on a display external to the scanning device 100, and vice versa.
Turning now to
According to various embodiments of the present disclosure, a circle-of-dots 406 may comprise, for example, a combination of uniformly or variably distributed large dots and a small dots that, when detected, represent a binary number. For example, in the event seven dots in a circle-of-dots 406 are detected in a digital image, the sequence of seven dots may be analyzed to identify (a) the size of the dots and (b) a binary number corresponding to the arrangement of the dots. Detection of a plurality of dots in a digital image may be employed using known region- or blob-detection techniques, as may be appreciated.
As a non-limiting example, a sequence of seven dots comprising small-small-large-small-large-large-large may represent an identifier represented as a binary number of 0-0-1-0-1-1-1 (or, alternatively, 1-1-0-1-0-0-0). The detection of this arrangement of seven dots, represented by the corresponding binary number, may be indicative of a pose of the scanning device 100 relative to the fiducial marker 403. For example, a lookup table may be used to map the binary number to a pose estimate, providing at least an initial estimated pose that may be refined and/or supplemented using information inferred via one or more camera models, as will be discussed in greater detail below. Although the example described above employs a binary operation using a combination of small dots and large dots to form a circle-of-dots 406, variable size dots (having, for example, β sizes) may be employed using variable base numeral systems (for example, a base-fl numeral system).
The arrangement of dots in the second circle-of-dots 406b may be the same as the first circle-of-dots 406a, or may vary. If the second circle-of-dots 406b comprises the same arrangement of dots as the first circle-of-dots 406a, then the second circle-of-dots 406b may be used independently or collectively (with the first circle-of-dots 406a) to determine an identifier indicative of the pose of the scanning device 100. Similarly, the second circle-of-dots 406b may be used to determine an error of the pose estimate determined via the first circle-of-dots 406a, or vice versa.
Accordingly, a fiducial marker 403 may be placed relative to the object being scanned to facilitate in accurate pose estimation of the scanning device 100. In the non-limiting example of
In other embodiments, a fiducial marker may not be needed, as the tracking targets may be naturally occurring features surrounding and/or within the cavity to be scanned detectable by employing various computer vision techniques. For example, assuming that a person's ear is being scanned by the scanning device 100, the tracking targets may include, hair, folds of the ear, skin tone changes, freckles, moles, and/or any other naturally occurring feature on the person's head relative to the ear.
Moving on to
Referring next to
Initially, a scanning device 100 may be calibrated using the imaging devices 115 to capture calibration images of a calibration object whose geometric properties are known. By employing the camera model of
In the camera model of
A world coordinate system 609 with principal point O may be defined separately from the camera coordinate system as XO, YO, ZO. According to various embodiments, the world coordinate system 609 may be defined at a base location of the probe 109 of the scanning device 100, however, it is understood that various locations of the scanning device 100 may be used as the base of the world coordinate system 609. Motion between the camera coordinate system and the world coordinate system 609 is defined by a rotation R, a translation t, a tilt φ. A principal point p is defined as the origin of a normalized image coordinate system (x, y) and a pixel image coordinate system is defined as (u,v), wherein α is
in a conventional orthogonal pixel coordinate axes. The mapping of a three-dimensional point X to the digital image m is represented via:
Further, the camera model of
r(θ)=1+k2θ3+k3θ5+k4θ7+ . . . (eq. 3)
As eq. 3 shows a polynomial with four terms up to the seventh power of θ, the polynomial of eq. 3 provides enough degrees of freedom (e.g., six degrees of freedom) for a relatively accurate representation of various projection curves that may be produced by a lens of an imaging device 115. Other polynomial equations with lower or higher orders or other combinations of orders may be used.
Turning now to
The placement of two imaging devices 115 permits computations of positions using epipolar geometry. For example, when the first imaging device 115a and the second imaging device 115b view a three-dimensional scene from their respective positions (different from the other imaging device 115), there are geometric relations between the three-dimensional points and their projections on two-dimensional images that lead to constraints between the image points. These geometric relations may be modeled via the camera model of
By determining the internal parameters and external parameters for each imaging device 115 via the camera model of
In addition, the placement of the two imaging device 115 in the scanning device 100 may be beneficial in implementing computer stereo vision. For example, both imaging devices 115 can capture digital images of the same scene; however, they are separated by a distance 709. A processor in data communication with the imaging devices 115 may compare the images by shifting the two images together over the top of each other to find the portions that match to generate a disparity used to calculate a distance between the scanning device 100 and the object of the picture. However, implementing the camera model of
Moving on to
Calibration of the tracking sensors 115 can improve accuracy of the generated model of the imaged space (e.g., cavity surface). A calibration pattern is used to calibrate the tracking parameters (e.g., focal length, optical center, lens distortion, and/or pose parameters) for the tracking sensors 115. Referring to
Calibration of the tracking parameters is similar to tracking of the fiducial markers 403 of
First, some of the dots 903 in the calibration pattern 900 are used to determine an estimated pose of the scanning device 100 (and thus the tracking sensors 115) relative to the dots 903 of the calibration pattern 900. With the estimated pose and the other estimated tracking parameter values, a set of dot locations are projected out to the plane of the calibration pattern 900. The difference between the projected location and the actual location of the dots of the calibration pattern 900 are used as errors to adjust the tracking parameters. In this way, a gradient dissent algorithm may be used to calibrate the parameters to minimize the errors between the projected and actual locations. A gradient dissent algorithm such as, e.g., Powell's conjugate direction method (which may utilize Brent's method for linear search and optimization) can be used to iteratively determine the tracking parameter values. In some implementations, calibration of the tracking parameter values continues until the errors are minimized and/or nor further improvement is exhibited. For example, a total error may be examined to determine whether the errors have been minimized. In other implementations, the calibration continues until the error values fall below one or more predefined values.
Multiple images or views of the calibration pattern 900 may be obtained for calibration of the tracking sensors 115. By including depth information available through the different images, the parameter calibration may be improved. For example, during an initial calibration of the scanning device 100, a set of images may be obtained at a series of predefined locations. This may be accomplished using a robotic control that repositions the scanning device 100 as the images are captured. The captured images may then be used for calibration of the tracking parameters at different viewing distances.
In many situations, it is beneficial to verify the calibration of the scanning device 100 in the field. This may be accomplished using a cradle that holds the scanning device in a fixed position. Referring to
A support stand 1012 positions the recesses 1003 at a height that allows the hand grip 106 of the scanning device 100 (
A calibration check of the scanning device 100 may be carried out with the scanning device 100 positioned in the calibration cradle 1000. In some implementations, verification of the calibration of the scanning device 100 may be initiated with the scanning device 100 in the calibration cradle. For example, the trigger 121 may be pressed to start the calibration verification. In other embodiments, a button on the display screen 118 of the scanning device 100 or on an external computing device that is communicatively coupled with the scanning device 100. When initiated, one or more images of the calibration pattern may be obtained using the tracking sensors 115 of the scanning device 100 (
If the error does not meet a defined error threshold, then an out-of-calibration indication can be provided to the user for corrective action. The error threshold may be dependent upon the distance to the calibration pattern. The indication may be, e.g., an error code or message that is displayed on the display screen 118 of the scanning device 100 or on a display screen of the external computing device. The calibration verification may be repeated multiple times while the scanning device 100 is located in the calibration cradle 1000 to verify the error before providing the out-of calibration indication. If the scanning device 100 is out-of-calibration, then it may be recalibrated by the manufacturer or a service provider. In some implementations, the scanning device 100 may be recalibrated using the calibration cradle 1000.
Recalibration of the scanning device 100 may be carried out in the field by capturing a series of images of the calibration pattern as the scanning device 100 is being positioned within the calibration cradle 1000. The field calibration of the scanning device 100 may be initiated using the trigger 121 and/or buttons on the display screen 118 or a display screen of an external computing device in communication with the scanning device 100. For example, a calibration mode may be selected through the display screen 118. The trigger may then be pressed to begin obtaining images of the calibration pattern as the scanning device 100 is placed in the recesses 1003 of the calibration cradle 1000. In some cases, a series of images may be captured at a predefined rate while the trigger 121 is held down. In other cases, the series of images may be captured until the trigger is pressed a second time.
The captured series of images may then be used to calibrate the tracking parameters as previously discussed. The field calibration may begin with the current parameters or may begin with a predefined set of calibration parameters. The use of the current tracking parameters can improve the speed of the field calibration. As discussed above, using some of the dots in the calibration pattern and/or a portion of a fiducial marker around the calibration pattern, the pose of the scanning device 100 with respect to the calibration pattern is determined for one of the captured images. A set of dot locations may then be projected out to the plane of the calibration pattern, with the difference between the projected location and the actual location of the dots of the calibration pattern providing an error indication that is used to adjust the tracking parameters. Gradient dissent can be used to iteratively minimize the errors to determine the parameter values. The calibration of the tracking parameters can be carried out using a plurality of the captured images at different distances from the calibration pattern. After recalibration of the tracking parameters, verification of the calibration may again be carried out to confirm the accuracy. A notification may then be provided to the user indicating whether the calibration is acceptable or not.
The probe 109, with an imaging sensor, provides a third imaging device that allows for the capture of images that can be used for 3D imaging of a scanned surface. Calibration of the probe 109 can also improve the accuracy of the generated model of the imaged space (e.g., cavity surface). Turning now to
Referring to
A probe tip 1115 is disposed at the distal end of the tubular element such that the light exiting the tubular element 1112 may be radially reflected at the probe tip 1115 for scanning or may be passed though the probe tip 1115 for video illumination. The probe tip 1115 may comprise a cone mirror 1121 and a distal window 1124. The cone mirror 1121 may be configured to radially reflect the light received from the tubular element 1112 forming a ring of light. For example, the cone mirror 1121 may form an unbroken 360 degree ring of light as shown in FIG. 11C, which can be projected onto a cavity surface. In some embodiments, the cone mirror 1121 may comprise a type of dichroic coating used to radially reflect light within a predefined wavelength range to produce the ring of light. Light within a second predefined wavelength range may be passed through the cone mirror 1121 and projected out of the distal end of the probe 109 through the probe tip 1115.
As illustrated in the example of
Disposed within at least a portion of the tubular element 1112 is a lens system 1133 configured to capture reflections of the light that is radially reflected from the cone mirror 1121 or that passed through the cone mirror 1121 when the light is projected onto a cavity surface. The reflections of light may be captured by the lens system 1133 and guided through the inner channel of the probe 109 to an image sensor 1136 disposed adjacent to the lighting element 1103. The image sensor 1136 may be communicatively coupled to processing circuitry (not shown) for data communications and/or processing of the captured pixel information. The processing circuitry may be configured to construct a 3D image of the cavity surface, in dependence upon a sequence of images captured when the scanned cavity surface is illuminated by the scanning light and tracked positions of the probe 109 inferred from reflections of tracking illumination sensed by the tracking illumination sensors.
Referring next to
The term “wide angle lens” as used herein refers to any lens configured for a relatively wide field of view that will work in tortuous openings such as an auditory canal. For example, for an auditory canal, a 63 degree angle results in a lens-focal surface offset about equal to the maximum diameter of the auditory canal that can be scanned with a centered ear probe. The focal surface of a 60 degree lens (a fairly standard sized wide angle lens) is equal to the diameter, resulting in a forward focal surface of about 6 mm, which typically is short enough to survive the second bend in an auditory canal which is at about a 6 mm diameter. For scanning auditory canals, therefore, wide angle lenses typically are 60 degrees or greater. Other functional increments include 90 degrees with its 2:1 ratio allowing a forward focal surface distance of about 3 mm, allowing an ear probe to be fairly short. Lenses that are greater than 90 degrees are possible as are lenses that include complex optical elements with sideways only views and no forward field of view. According to some embodiments, light is emitted from the probe 109 in the form of a ring or in the form of a fan, and the wide angle lens provides the same sufficient depth of field to portions of a scanned ear as illuminated by all such forms of light.
The wide angle lens can view relatively proximate lateral portions of a surface with high precision due to overlap of its focal surface with a pattern of projected light. The term “focal surface” refers to a thickness within a range of focus of the wide angle lens that is capable of achieving a certain base line resolution, such as being able to discern a 50 micrometer feature or smaller. For example, lateral positioning of a pattern of projected light within the focal surface can allow one pixel to be equivalent to about 50 micrometers. Such a focal surface itself would have a bell curve distribution of resolution that would allow variations in overlap or thickness of the focal surface and the width of the lateral portion of reflected light which has its own curved distribution across its thickness.
Video images of a scanned surface (e.g., an ear canal) may be captured through the distal window 1124 of the probe tip 1115 via the lens system 1133 and image sensor 1136 using the light projected out of the distal end of the probe 109. The image sensor 1136 can be configured to capture images at a predefined frame rate, which may then be displayed to the user of the scanning device 100. For the construction of 3D images of the scanned cavity or surface, a sequence of two dimensional (2D) images of the light reflected from the scanned surface are captured via the lens system 1133 and image sensor 1136. The light may be radially reflected at the probe tip 1115 as shown in
Ridge points for a 2D image make up a set of brightest pixels for the 2D image, a set that is assembled by scanning the pixel brightness values for each 2D image and selecting as ridge points only the brightest pixels. The ridge points can then be transformed to points in scanner space. The transformation can be carried out using a lookup table of defined associations between each pixel in the image sensor 1136 and corresponding points in scanner space. Each record of the lookup table represents an association between a pixel of the image sensor 1136 and a point in scanner space. For example, the pixels of the image sensor 1136 can be identified by their x,y coordinates in the image sensor itself, a defined numbering scheme, or in other ways as will occur to those of skill in the art. The association between each identified pixel and the corresponding point in scanner space can be identified during calibration of the scanning device 100. Separate lookup tables may be determined for light that is radially reflected at the probe tip 1115 as shown in
Calibration of the lens system 1133 of the probe 109 may be carried out using a calibration target 1203 including a calibration pattern such as, e.g., the patterns illustrated in
When the calibration target 1203 is aligned with the probe 109 of the scanning device 100 as depicted in
In other embodiments, the grid pattern 912 may be coplanar with the fiducial marker 403 as illustrated in
For calibration, the scanning device 100 may be held in a fixed orientation and position by a cradle, clamp, or other appropriate apparatus and the rotation 1212, translation 1215 and/or tilting 1218 of the calibration target 1203 may be accomplished using mechanical linkages that are controlled by a controller, computing device, or other control device (not shown). For example, a robotic arm may be used to accurately position the calibration target 1203 with respect to the probe 109 during calibration. A calibration control system may be used to control the robotic arm (or other mechanical linkage) for positioning and/or orientation of the calibration target 1203. The calibration control system may also be communicative coupled to the scanning device 100 to acquire, monitor and/or process calibration data obtained by the scanning device 100. One or more external camera(s) 1221 may be used to provide feedback for positioning and orientation of the calibration target 1203. In alternative implementations, the orientation and/or position of the scanning device 100 may be adjusted by rotating, translating and/or tilting, while the calibration target is held in a fixed position.
After a calibration pattern such as the grid pattern 912 has been oriented with respect to the probe 109, calibration may be carried out by rotating 1212 and/or translating 1215 the calibration target 1203 with respect to the probe 109. Initially, the grid pattern 912 is illuminated by the light that is radially reflected by the cone mirror 1121 at the probe tip 1115 as illustrated in
The tracking position of the fiducial marker 403, and thus the grid pattern 912, can be concurrently determined using the tracking sensors 115 as previously discussed. The location in scanner space of the reflection from the grid pattern 912 can also be determined using the tracking sensors 115. In some implementations, one or more external camera(s) 1221 may be used to determine the location of the reflection from the grid pattern 912. By rotating 1212 the calibration target 1203 about the probe 109, pixel information for a 360° view can be obtained. Translation 1215 of the calibration target 1203 allows for the capture of depth information by moving the grid pattern 912 closer or further from the probe tip. The calibration target 1203 may be incrementally repositioned during acquisition of the pixel information for calibration.
The correspondence between the pixels and points in scanner space can be established using triangulation as discussed and illustrated with respect to
In addition to the 3D mapping of the pixel information, the location of the cone mirror 1121 can be established during the initial calibration of the scanning device 100. The cone mirror 1121 located at the distal end of the probe 109 shows up as a dark ring during image capture by the image sensor 1136. One or more images can be captured after calibration of the lens system 1133 of the probe 109 and the centroid of the ring determined and saved for later comparison. As the most likely cause for the probe to go out of calibration is deformation of the probe 109, comparing the centroid of a current image (or images) of the cone mirror 1121 to the centroid of the calibration image provides a quick verification of the probe condition. By comparing the centroid of the cone mirror 1121, the calibration of the probe 109 can be verified while the scanning device 100 is in the calibration cradle 1000 of
In other implementations, the calibration cradle 1000 may include a calibration target 1203 positioned adjacent to the inner surface 1006 of the calibration cradle 1000 of
With the scanning device 100 positioned in the calibration cradle 1000, calibration of the lens system 1133 of the probe 109 can be verified and/or adjusted using the calibration target 1203. Calibration may be carried out by rotating 1212 and/or translating 1215 the calibration target 1203 through a series of positions with respect to the probe 109. At each position, the calibration pattern may be illuminated by light that is radially reflected from the tip of the probe 109. Based on the position of the calibration target 1203, a portion of the radially transmitted light is reflected from the calibration pattern and captured by the image sensor 1136 via the lens system 1133. Using the lookup table, the pixel information can be transformed into a scanner space location. The tracking sensors 115 can be used to concurrently determine the orientation of the calibration target 1203 using the fiducial marker 403 and/or the location of the reflection from the calibration pattern. The two locations may then be compared to verify that the calibration of the lens system 1133 of the probe 109 is within a predefined tolerance. The calibration target 1203 may be incrementally repositioned in a plurality of positions during acquisition of the pixel information to verify the calibration. If the calibration is out of tolerance, the calibration target 1203 and tracking sensors 115 may be used to adjust the lookup table values as discussed above.
Referring next to
Calibration of the fan line 203 may be verified using the calibration cradle 1000 of
Where the calibration cradle includes a calibration target 1203, the calibration of the fan line 203 may also be verified by projecting the fan line 203 onto the calibration pattern of the calibration target 1203. The tracking sensors 115 can be used to concurrently determine the location of the reflections from the calibration pattern, which can be compared to verify that the calibration of the fan line 203. In some cases, the calibration target 1203 may be used to calibrate the fan line 203 while the scanning device 100 is seated in the calibration cradle 1000. Control circuitry associated with the calibration cradle 1000 may reposition the calibration target 1203 for calibration of the fan line 203 by rotating 1212, translating 1215, and/or tilting 1218 the calibration target 1203 to substantially align the plane 1206 of the calibration pattern with the plane of the fan line 203. For example, the calibration target 1203 may be oriented to place the plane 1206 of the calibration pattern in a predefined position that is substantially coplanar with the plane of the fan line 203 when the scanning device 100 is seated in the recesses 1003 of the calibration cradle 1000. With the calibration pattern illuminated by the fan light 1303, calibration of the fan light 1303 may be performed as discussed above.
Referring next to
At 1506, one or more images of the calibration pattern is obtained with the tracking sensors 115 (
The pose of the scanning device is estimated in 1509 based upon the images captured by the tracking sensors 115. The pose of the scanning device 100 may be estimated based upon the calibration pattern and/or a fiducial marker located adjacent to at least a portion of the calibration pattern. For example, a calibration pattern may include a central reference mark with, e.g., special markings or dots in the center of tracking sensor viewing area to assist in identification of the origin and orientation of the x-axis and y-axis of the pattern. In other implementations, the fiducial marker may be used to estimate the pose of the scanning device 100.
At 1512, an error is determined based upon the estimated pose of the scanning device 100. For example, an error between the location of an artifact of the calibration pattern based upon the image of the calibration pattern and a projected location of the artifact based upon the estimated pose of the scanning device with respect to the calibration pattern. Since the calibration pattern is known, one or more artifacts (e.g., a dot in a dot pattern) may be projected out to the place of the calibration pattern using the estimated pose. The projected location of the artifact can be compared to the actual location of the artifact in the captured image to determine the error value.
If another error is to be determined in 1515, then the flow may return to 1506 to obtain another image of the calibration pattern. If a plurality of images were initially captured in 1506, then the flow can return to 1509 to determine an estimated pose of the scanning device 100 based on the next image or set of captured images. A plurality of errors corresponding to the different images or sets of images may be determined in this way. For example, a predefined number of errors (e.g., three) may be determined for calibration verification of the tracking. If no other errors are to be determined in 1515, then the calibration is verified in 1518 based upon the determined error(s). For multiple errors, a median error may be determined from the errors and compared to a predefined threshold such as, e.g., 0.025 mm, 0.050 mm, or other appropriate calibration tolerance.
A calibration error indication may be provided to the user of the scanning device 100 in response to the error comparison. The calibration error indication (e.g., successful test of tracker, tracker calibration error or out-of-calibration, unable to perform (or complete) error test, etc.) may be displayed on the display screen 118 of the scanning device 100 and/or other displays in data communication with the scanning device 100. The calibration error indication may also indicate when the error test cannot be performed such as, e.g., when an image of the calibration pattern cannot be acquired. In other embodiments, an indicator light may provide the calibration error indication. In some implementations, an indication of a tracker calibration error may automatically initiate calibration of the tracking.
Referring now to
If another error is to be determined in 1530, then the flow may return to 1521 to obtain another image of the cone mirror 1121. A plurality of errors corresponding to the different images may be determined in this way. For example, a predefined number of errors (e.g., three) may be determined for calibration verification of the probe 109. If no other errors are to be determined in 1530, then the calibration is verified in 1533 based upon the determined error(s). For multiple errors, a median error may be determined from the errors and compared to a predefined threshold such as, e.g., 5 pixels or other appropriate calibration tolerance.
A calibration error indication may be provided to the user of the scanning device 100 in response to the error comparison. The calibration error indication (e.g., successful test of probe, probe or lens calibration error or out-of-calibration, unable to perform (or complete) error test, etc.) may be displayed on the display screen 118 of the scanning device 100 and/or other displays in data communication with the scanning device 100. In other embodiments, an indicator light may provide the calibration error indication. In some cases, a single calibration indication may be provided for both the tracker and probe calibration verifications. In some implementations, an indication of a probe calibration error may automatically initiate calibration of the lens system 1133 of the probe 109.
Referring now to
If another error is to be determined in 1545, then the flow may return to 1536 to illuminate the calibration pattern and capture another image in 1539. A plurality of errors corresponding to the different images may be determined in this way. For example, a predefined number of errors (e.g., three) may be determined for calibration verification of the fan line 203. If no other errors are to be determined in 1545, then the calibration is verified in 1548 based upon the determined error(s) and a calibration error indication may be provided in response to the error comparison. For multiple errors, a median error may be determined from the errors and compared to a predefined threshold such as, e.g., 0.025 mm, 0.050 mm or other appropriate calibration tolerance.
Moving to
Calibration of the tracking parameters may then be performed in 1612 using the estimated pose of the scanning device 100. Using the estimated pose and the current tracking parameters, the location of another set of artifacts of the calibration pattern are projected out to the plane of the calibration pattern. The difference between the projected location and the actual location of the dots of the calibration pattern (which can be determined from the captured images of the calibration pattern) are used as errors to adjust the tracking parameters. In this way, a gradient dissent algorithm may be used to calibrate the parameters to minimize the errors between the projected and actual locations. For example, an error may be considered minimized when reduced to below a predefined threshold.
At 1615, it is determined whether additional calibration is to be performed. For example, calibrating the tracking parameters with the calibration pattern located at different distances from the tracking sensors 115 can improve tracking results. If additional calibration is to be performed, then the flow returns to 1603 where position of the scanning device 100 with respect to the calibration pattern is modified. For example, a robotic control may be used to reposition the scanning device 100 and/or a calibration pattern. In some embodiments, calibration pattern may be moved through a series of predefined locations as the images are captured in 1606.
After calibration of the tracking is completed, calibration of the probe 109 may be carried out. Referring now to
At 1621, pixel information obtained with the image sensor 1136 via the lens system 1133. With the calibration pattern positioned along one side of the probe 109, the calibration pattern is illuminated by light that is radially reflected at a distal end of probe 109 by the cone mirror 1121 (
At 1627, it is determined whether additional pixel information should be obtained. If it is determined to continue obtaining additional pixel information, then the flow can return to 1618 where the calibration target can be repositioned to obtain the pixel information at 1621 and scanning device pose at 1624. For example, pixel information can be obtained with the calibration pattern in a plurality of positions. By rotating the calibration target about the probe 109, pixel information for a 360° view can be obtained. Translation of the calibration target allows for the capture of depth information by moving the calibration pattern closer or further from the probe tip.
If not, then an association between a pixel of the image sensor and a point in scanner space is determined at 1630. The 3D relationship to scanner space can be based at least in part upon the pixel information associated with the plurality of locations. A 3D-curve fit can be used to map the relationship between the pixels and the scanner space. For example, 3D interpolation can be used to produce, e.g., a fourth-order 3D curve fit from the gathered pixel information. The association between a pixel of the image sensor 1136 and a point in scanner space can be stored as a record in a lookup table for easy access and processing during image construction.
Referring now to
At 1636, pixel information is obtained for the fan line 203. With the calibration pattern substantially planar to the fan light 203, the calibration pattern is illuminated with the fan line 203. Pixel information associated with the reflections from the calibration pattern is captured by the image sensor 1136 via the lens system 1133. The location of the reflected light is determined at 1639. For example, the actual location of the reflection may be estimated based upon images of the calibration pattern during illumination that are obtained using the tracking sensors 115. Triangulation can be used to estimate the actual location of the reflection. In other implementations, images may be obtained using one or more external cameras or a combination of tracking sensor(s) and external camera(s). The pose of the scanning device 100 with respect to the calibration pattern may be determined using the tracking sensors 115 and used to estimate the location of the reflected light. For example, the pose of the scanning device 100 may be determined based upon the calibration pattern and/or a fiducial marker adjacent to (or surrounding) the calibration pattern. The known relationship between the calibration pattern and fiducial marker can be used to estimate the reflection location. The estimate of the reflection location can be concurrently determined at 1639 while pixel information is obtained in 1636.
At 1642, the 3D relationship between pixels of the image sensor 1136 and scanner space can be based at least in part upon the pixel information. A 3D-curve fit can be used to map the relationship between the pixels and the scanner space. The association between a pixel of the image sensor 1136 and a point in scanner space can be stored as a record in a lookup table for easy access and processing during image construction.
With reference to
Stored in the memory 1706 are both data and several components that are executable by the processor 1703. In particular, a calibration application 1715 is stored in the memory 1706 and executable by the processor 1703, as well as other applications. Also stored in the memory 1706 may be a data store 1712 and other data. In addition, an operating system may be stored in the memory 1706 and executable by the processor 1703.
It is understood that there may be other applications that are stored in the memory 1706 and are executable by the processor 1703 as can be appreciated. Where any component discussed herein is implemented in the form of software, any one of a number of programming languages may be employed such as, for example, C, C++, C#, Objective C, Java®, JavaScript®, Perl, PHP, Visual Basic®, Python®, Ruby, Flash®, or other programming languages.
A number of software components are stored in the memory 1706 and are executable by the processor 1703. In this respect, the term “executable” means a program file that is in a form that can ultimately be run by the processor 1703. Examples of executable programs may be, for example, a compiled program that can be translated into machine code in a format that can be loaded into a random access portion of the memory 1706 and run by the processor 1703, source code that may be expressed in proper format such as object code that is capable of being loaded into a random access portion of the memory 1706 and executed by the processor 1703, or source code that may be interpreted by another executable program to generate instructions in a random access portion of the memory 1706 to be executed by the processor 1703, etc. An executable program may be stored in any portion or component of the memory 1006 including, for example, random access memory (RAM), read-only memory (ROM), hard drive, solid-state drive, USB flash drive, memory card, optical disc such as compact disc (CD) or digital versatile disc (DVD), floppy disk, magnetic tape, or other memory components.
The memory 1706 is defined herein as including both volatile and nonvolatile memory and data storage components. Volatile components are those that do not retain data values upon loss of power. Nonvolatile components are those that retain data upon a loss of power. Thus, the memory 1706 may comprise, for example, random access memory (RAM), read-only memory (ROM), hard disk drives, solid-state drives, USB flash drives, memory cards accessed via a memory card reader, floppy disks accessed via an associated floppy disk drive, optical discs accessed via an optical disc drive, magnetic tapes accessed via an appropriate tape drive, and/or other memory components, or a combination of any two or more of these memory components. In addition, the RAM may comprise, for example, static random access memory (SRAM), dynamic random access memory (DRAM), or magnetic random access memory (MRAM) and other such devices. The ROM may comprise, for example, a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or other like memory device.
Also, the processor 1703 may represent multiple processors 1703 and/or multiple processor cores and the memory 1706 may represent multiple memories 1706 that operate in parallel processing circuits, respectively. In such a case, the local interface 1709 may be an appropriate network that facilitates communication between any two of the multiple processors 1703, between any processor 1703 and any of the memories 1706, or between any two of the memories 1706, etc. The local interface 1709 may comprise additional systems designed to coordinate this communication, including, for example, performing load balancing. The processor 1003 may be of electrical or of some other available construction.
Although the calibration application 1715, and other various systems described herein may be embodied in software or code executed by general purpose hardware as discussed above, as an alternative the same may also be embodied in dedicated hardware or a combination of software/general purpose hardware and dedicated hardware. If embodied in dedicated hardware, each can be implemented as a circuit or state machine that employs any one of or a combination of a number of technologies. These technologies may include, but are not limited to, discrete logic circuits having logic gates for implementing various logic functions upon an application of one or more data signals, application specific integrated circuits (ASICs) having appropriate logic gates, field-programmable gate arrays (FPGAs), or other components, etc. Such technologies are generally well known by those skilled in the art and, consequently, are not described in detail herein.
The flowcharts of
Although the flowchart of
Also, any logic or application described herein, including the calibration application 1715, that comprises software or code can be embodied in any non-transitory computer-readable medium for use by or in connection with an instruction execution system such as, for example, a processor 1703 in a computer system or other system. In this sense, the logic may comprise, for example, statements including instructions and declarations that can be fetched from the computer-readable medium and executed by the instruction execution system. In the context of the present disclosure, a “computer-readable medium” can be any medium that can contain, store, or maintain the logic or application described herein for use by or in connection with the instruction execution system.
The computer-readable medium can comprise any one of many physical media such as, for example, magnetic, optical, or semiconductor media. More specific examples of a suitable computer-readable medium would include, but are not limited to, magnetic tapes, magnetic floppy diskettes, magnetic hard drives, memory cards, solid-state drives, USB flash drives, or optical discs. Also, the computer-readable medium may be a random access memory (RAM) including, for example, static random access memory (SRAM) and dynamic random access memory (DRAM), or magnetic random access memory (MRAM). In addition, the computer-readable medium may be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or other type of memory device.
Further, any logic or application described herein, including the calibration application 1715, may be implemented and structured in a variety of ways. For example, one or more applications described may be implemented as modules or components of a single application. Further, one or more applications described herein may be executed in shared or separate computing devices or a combination thereof. For example, a plurality of the applications described herein may execute in the scanning device 100, the calibration control system or in multiple computing devices in a common computing environment. Additionally, it is understood that terms such as “application,” “service,” “system,” “engine,” “module,” and so on may be interchangeable and are not intended to be limiting.
Disjunctive language such as the phrase “at least one of X, Y, or Z,” unless specifically stated otherwise, is otherwise understood with the context as used in general to present that an item, term, etc., may be either X, Y, or Z, or any combination thereof (e.g., X, Y, and/or Z). Thus, such disjunctive language is not generally intended to, and should not, imply that certain embodiments require at least one of X, at least one of Y, or at least one of Z to each be present.
It should be emphasized that the above-described embodiments of the present disclosure are merely possible examples of implementations set forth for a clear understanding of the principles of the disclosure. Many variations and modifications may be made to the above-described embodiment(s) without departing substantially from the spirit and principles of the disclosure. All such modifications and variations are intended to be included herein within the scope of this disclosure and protected by the following claims.
This application is related to U.S. patent application Ser. No. ______, filed on Oct. ______, 2013 (Attorney Docket No. 52105-1010) and entitled “Tubular Light Guide,” U.S. patent application Ser. No. ______, filed on Oct. ______, 2013 (Attorney Docket No. 52105-1020) and entitled “Tapered Optical Guide,” U.S. patent application Ser. No. ______, filed on Oct. ______, 2013 (Attorney Docket No. 52105-1030) and entitled “Display for Three-Dimensional Imaging,” U.S. patent application Ser. No. ______, filed on Oct. ______, 2013 (Attorney Docket No. 52105-1040) and entitled “Fan Light Element,” U.S. patent application Ser. No. ______, filed on Oct. ______, 2013 (Attorney Docket No. 52105-1050) and entitled “Integrated Tracking with World Modeling,” U.S. patent application Ser. No. ______, filed on Oct. ______, 2013 (Attorney Docket No. 52105-1060) and entitled “Integrated Tracking with Fiducial-based Modeling,” and U.S. patent application Ser. No. ______, filed on Oct. ______, 2013 (Attorney Docket No. 52105-1070) and entitled “Integrated Calibration Cradle,” all of which are hereby incorporated by reference in their entirety.