Patent Description:
Embodiments of the present disclosure generally relate to multi-modal sensing of three-dimensional position information of a surface of an object.

<CIT>discloses a depth camera system uses a structured light illuminator and multiple sensors such as infrared light detectors, such as in a system which tracks the Motion of a user in a field of view. One sensor can be optimized for shorter range detection while another sensor is optimized for longer range detection. The sensors can have a different baseline distance from the illuminator, as well as a different spatial resolution, exposure time and sensitivity. In one approach, depth values are obtained from each sensor by matching to the structured light pattern, and the depth values are merged to obtain a final depth map which is provided as an input to an application. The merging can involve unweighted averaging, weighted averaging, accuracy measures and/or confidence measures. In another approach, additional depth values which are included in the merging are obtained using stereoscopic matching among pixel data of the sensors.

<CIT> discloses a method of merging a plurality of disparity maps. The method comprises calculating a plurality of disparity maps each from images captured by another of a plurality of pairs of image sensors having stereoscopic fields of view (SFOVs) with at least one overlapping portion, the SFOVs covering a scene with a plurality of objects, identifying at least one of the plurality of objects in the at least one overlapping portion, the at least one object being mapped in each the disparity map, calculating accuracy of disparity values depicting the object in each the disparity map, merging depth data from the plurality of disparity maps according to the accuracy so as to provide a combined depth map wherein disparity values of the object are calculated according to one of the plurality of disparity maps, and outputting the depth data.

<CIT> discloses a method and a system including at least three image capturing devices for generating depth information are proposed. Multiple depth maps associated with a specific scene are obtained, where each of the depth maps corresponds to a different group of the image capturing devices and a different estimated region of the specific scene. For each pixel corresponding to the specific scene, whether the pixel is within a joint overlapping region of its estimated region is determined. If no, the depth information of the pixel is set according to its depth value in the depth map corresponding to a non-joint overlapping region of its estimated region. If yes, the depth information of the pixel is set according to its depth values in the depth maps corresponding to the joint overlapping region within its estimated region. An integrated depth map is generated by using the depth information of all the pixels.

According to embodiments of the present disclosure, systems for, methods for, and computer program products for determining a three-dimensional coordinate on an object are provided. In the method, an image is recorded. The image includes an object, a first plurality of markers disposed on the object, a second plurality of markers disposed on the object, and a third plurality of markers disposed on the object. A first depth is computed using the image and the first plurality of markers. A second depth is computed using the image and the second plurality of markers. A third depth is computed using the image and the third plurality of markers. A first weight is assigned to the first depth, a second weight is assigned to the second depth, and a third weight is assigned to the third depth. A weighted average depth is computed based on the first depth, second depth, third depth, first weight, second weight, and third weight.

In various embodiments, a system is provided for determining a three-dimensional coordinate on an object. The system includes an imaging device and a computing node including a computer readable storage medium having program instructions embodied therewith. The program instructions are executable by a processor of the computing node to cause the processor to perform a method where an image is recorded by the imaging device. The image includes an object, a first plurality of markers disposed on the object, a second plurality of markers disposed on the object, and a third plurality of markers disposed on the object. A first depth is computed using the image and the first plurality of markers. A second depth is computed using the image and the second plurality of markers. A third depth is computed using the image and the third plurality of markers. A first weight is assigned to the first depth, a second weight is assigned to the second depth, and a third weight is assigned to the third depth. A weighted average depth is computed based on the first depth, second depth, third depth, first weight, second weight, and third weight.

In various embodiments, a computer program product is provided for determining a three-dimensional coordinate on an object. The computer program product includes a computer readable storage medium having program instructions embodied therewith. The program instructions are executable by a processor to cause the processor to perform a method where an image is recorded. The image includes an object, a first plurality of markers disposed on the object, a second plurality of markers disposed on the object, and a third plurality of markers disposed on the object. A first depth is computed using the image and the first plurality of markers. A second depth is computed using the image and the second plurality of markers. A third depth is computed using the image and the third plurality of markers. A first weight is assigned to the first depth, a second weight is assigned to the second depth, and a third weight is assigned to the third depth. A weighted average depth is computed based on the first depth, second depth, third depth, first weight, second weight, and third weight.

In various embodiments, systems for, methods for, and computer program products for determining a three-dimensional coordinate on an object are provided. In the method, an image is recorded. The image includes an object, a first plurality of markers disposed on the object, and a second plurality of markers disposed on the object. A first depth is computed using the image and the first plurality of markers. A second depth is computed using the image and the second plurality of markers. A first weight is assigned to the first depth and a second weight is assigned to the second depth. A weighted average depth is computed based on the first depth, second depth, first weight, and second weight.

In various embodiments, an integrated surgical device is provided including an endoscope having a proximal end and a distal end, an imaging device optically coupled to the distal end of the endoscope, and a computing node comprising a computer readable storage medium having program instructions embodied therewith. The program instructions are executable by a processor of the computing node to cause the processor to perform a method where an image is recorded. The image includes an object, a first plurality of markers disposed on the object, a second plurality of markers disposed on the object, and a third plurality of markers disposed on the object. A first depth is computed using the image and the first plurality of markers. A second depth is computed using the image and the second plurality of markers. A third depth is computed using the image and the third plurality of markers. A first weight is assigned to the first depth, a second weight is assigned to the second depth, and a third weight is assigned to the third depth. A weighted average depth is computed based on the first depth, second depth, third depth, first weight, second weight, and third weight.

The scope of the present invention is disclosed by the appended claims.

The ability to accurately discern three-dimensional position information (X, Y, Z) of target objects (e.g., biological tissue) is a necessary and critical requirement of an automated surgical robotic system. One approach is to use fiducial markers of a known size and shape directly attached to a surface of an object to determine positional information about the surface; however, spatial resolution of any method using fiducial markers is limited to the number of fiducials applied to the tissue. Fiducial markers must be large enough for computer vision systems to detect, but also small enough to maximize spatial resolution of the surface to which they are attached. Because of these conflicting requirements, there is an upper bound to the spatial resolution provided by fiducial markers, especially in surgical settings where automated surgical robot systems may be operating in small, confined spaces.

Many surgical maneuvers (e.g., suturing) require highly dexterous and highly accurate motion of surgical tools to achieve a satisfactory surgical outcome. In fully automated robotic surgical procedures having no active human control, the accuracy of the surgical tools controlled by the robot is highly dependent on the spatial resolution of the computer vision system. Because surgical outcomes are heavily dependent on the positional accuracy of the computer vision systems guiding the robotic tools, spatial resolution of the surgical sites is even more important in fully automated robotic surgical procedures. Solely using fiducial markers to guide fully automate surgical robots does not provide adequate spatial resolution of surgical sites to ensure satisfactory outcomes.

Accordingly, a need exists for a system and method to accurately and reliably sense positional information with a high resolution which enables accurate surgical planning and execution to improve enable robotic-assisted surgery.

Embodiments of the present disclosure generally relate to multi-modal sensing of three-dimensional position information of a surface of an object. In particular, the present disclosure describes multiple visualization modalities used to collect distinctive positional information of the surface of the object that is then combined using weighting factors to compute a final three-dimensional position. While the present disclosure generally focuses on sensing three-dimensional position with respect to automated surgical robots, the systems, methods, and computer program products are suitable for use in other fields that employ computer vision techniques to identify three-dimensional position, such as virtual reality or augmented reality applications.

A system for determining a three-dimensional coordinate on a surface of an object (e.g., a biological tissue) generally includes a first imaging system used to establish a baseline image of the object. The baseline image may be established using, e.g., a series of fiducial markers affixed to the surface of the object, to generate positional information for the surface of the object. For example, fiducial markers may be placed on the surface of a tissue via a spray applicator (e.g., spray catheter) In general, fiducial markers are special markers that may be recognized by a computer vision system to determine specific position information about the surface to which they are affixed. Non-limiting examples of fiducial markers may include symbols (e.g., alphanumeric), patterns (e.g., QR codes), liquid (e.g., infrared ink), or physical shapes (2D or 3D). This position information may be used to map the surface of the object and create a computer simulation of that surface in three-dimensions. The fiducial markers may be affixed to the object in a particular pattern (e.g., a grid pattern) or no particular pattern (e.g., randomized placement).

In various embodiments, the fiducial marker is applied to target tissue in a liquid state through a syringe needle. Applying a liquid marker to target tissue has a number of advantages. First, the marker can be mixed onsite which improves the stability of the marker. Second, a liquid marker allows the precise control over location and application to target tissue. Third, the marker can be applied as any irregular shape. By applying a liquid marker with syringe, the irrigated surgical field causes an exothermic reaction to solidify the marker in a circular shape to target tissue. A circular marker may be beneficial for tracking single points of interest on target tissue during a surgical procedure.

In various embodiments, a marking tip such as a syringe needle or felt nib may be used to dispense the fiducial marker in a linear pattern. By applying the fiducial marker as a continuous line, one can use the marker to define boundaries on target tissue. Defining boundaries may be useful to identify regions of diseased tissue or regions where a surgical procedure should not be performed. In yet another embodiment, the liquid marker may be sprayed onto the target tissue to create a speckled pattern when polymerized. A speckled pattern may be of interest to define large regions of tissue from each other. In one example, background tissue may be speckled to distinguish it from foreground tissue. Other components in robotic or semi-autonomous workflow may use background and foreground information to plan or control their motions or suggestions.

In other embodiments, the liquid marker may be applied though a predefined mask to apply the marker in any arbitrary and predefined shape on target tissue.

To acquire the position information of the surface of the object using fiducial markers, the first imaging system may include one or more cameras (e.g., one, two, three, four, or five). In various embodiments, the one or more cameras may include a stereoscopic camera. In various embodiments, the stereoscopic camera may be implemented by two separate cameras. In various embodiments, the two separate cameras may be disposed at a predetermined distance from one another. In various embodiments, the stereoscopic camera may be located at a distalmost end of a surgical instrument (e.g., laparoscope, endoscope, etc.). The camera(s) may cross-reference detected positions for each of the fiducial markers against a known reference (e.g., the known size and shape of the fiducial) to determine a positional information (e.g., depth) for each of the fiducial markers. Positional information, as used herein, may generally be defined as (X, Y, Z) in a three-dimensional coordinate system.

The one or more cameras may be, for example, infrared cameras, that emit infrared radiation and detect the reflection of the emitted infrared radiation. In other embodiments, the one or more cameras may be digital cameras as are known in the art. In other embodiments, the one or more cameras may be plenoptic cameras. The one or more cameras may be connected to a computing node as described in more detail below.

The present disclosure improves on the single mode approaches employing solely fiducial markers by also incorporating other visualization modalities in addition to fiducial marker tracking to improve the accuracy of the resulting positional information. A second imaging system is used to generate position information for the surface of the object either individually or in combination with the other imaging systems described herein (e.g., after a baseline image is recorded using the first imaging system and positional information is acquired for each of the fiducial markers). The structured pattern projected from the structured light source may change shape, size, and/or spacing of pattern features when projected on a surface. The second imaging system may detect these changes and determine positional information based on the changes to the structured light pattern given a known pattern stored by the second imaging system. For example, the second imaging system may include a structured light source (e.g., a projector) that projects a specific structured pattern of lines (e.g., a matrix of dots or a series of stripes) onto the surface of the object. The pattern of lines produces a line of illumination that appears distorted from other perspectives than that of the source and these lines can be used for geometric reconstruction of the surface shape, thus providing positional information about the surface of the object.

The second imaging system may include one or more cameras (e.g., one, two, three, four, or five) capable of detecting the projected pattern from the source of structured light. The one or more cameras may be digital camera(s) as are known in the art and may be the same or different camera(s) as used with the first imaging system. The one or more cameras may be connected to a computing node as described in more detail below. Using the images from the one or more cameras, the computing node may compute positional information (X, Y, Z) for any suitable number of points along the surface of the object to thereby generate a depth map of the surface.

A third imaging system is used to generate additional position information for the surface of the object. The third imaging system may include one or more cameras, such as a light-field camera (e.g., a plenoptic camera), and may be the same or different camera(s) as the camera(s) used for the first imaging system and the second imaging system. The plenoptic camera may be used to generate accurate positional information for the surface of the object by having appropriate zoom and focus depth settings.

One type of light-field (e.g., plenoptic) camera that may be used according to the present disclosure uses an array of micro-lenses placed in front of an otherwise conventional image sensor to sense intensity, color, and directional information. Multi-camera arrays are another type of light-field camera. The "standard plenoptic camera" is a standardized mathematical model used by researchers to compare different types of plenoptic (or light-field) cameras. By definition the "standard plenoptic camera" has microlenses placed one focal length away from the image plane of a sensor. Research has shown that its maximum baseline is confined to the main lens entrance pupil size which proves to be small compared to stereoscopic setups. This implies that the "standard plenoptic camera" may be intended for close range applications as it exhibits increased depth resolution at very close distances that can be metrically predicted based on the camera's parameters. Other types/orientations of plenoptic cameras may be used, such as focused plenoptic cameras, coded aperture cameras, and/or stereo with plenoptic cameras.

Once positional information is generated using the first imaging system, the second imaging system and the third imaging system, a combined position may be calculated by computing a weighted average of the three imaging systems. As shown below in Equation <NUM>, a combined pixel depth may be calculated by a weighted average of the depth generated from each of the three imaging systems. <MAT> In Equation <NUM>, CM represents the weight assigned to the first imaging system (e.g., the markerbased system), CSL represents the weight assigned to the second imaging system (e.g., the structured light-based system), CP represents the weight assigned to the third imaging system (e.g., the structured light-based system), DepthM represents the depth of the pixel generated from the first imaging system, DepthSL represents the depth of the pixel generated from the second imaging system, and DepthP represents the depth of the pixel generated from the third imaging system. In various embodiments, each of the weights may be a value between zero (<NUM>) and one (<NUM>), and the sum of all weight values may add up to unity (<NUM>).

In various embodiments, the weight CM assigned to the first imaging system may be equal to the weight CSL assigned to the second imaging system and the weight CP assigned to the third imaging system. In other embodiments, the weight CSL assigned to the second imaging system is greater than the weight CM assigned to the first imaging system and/or the weight CP assigned to the third imaging system. In yet another embodiment, the weight CP assigned to the third imaging system is greater than the weight CM assigned to the first imaging system and/or the weight CSL assigned to the second imaging system.

In various embodiments, weight for each variable in Equation <NUM> may be determined based on one or more factors selected based on the type of imaging system(s) used. For example, if light field imaging is used, factors may include: (<NUM>) amount of contrast in the image, (<NUM>) number of saturated pixels (which may be used to measure light intensity), and (<NUM>) localized change in depth of a specific area of the image. A high weight value may correspond to an image having high contrast within a scene, little to no saturated pixels, and low local change in depth.

In another example, if structured light imaging is used, factors may include: (<NUM>) amount of pattern recognized and (<NUM>) number of saturated pixels. A high weight value may correspond to an image having most or all of a pattern recognized and little to no saturated pixels.

In yet another example, if fiducial markers are used, factors may include (<NUM>) number of saturated pixels, (<NUM>) ability to recognize the shape/size of fiducial marker(s), and (<NUM>) ability to discern the fiducial marker(s) from the surrounding environment. A high weight value may correspond to an image having little to no saturated pixels, ability to recognize most or all of the fiducial markers, and the ability to discern the fiducials from the surrounding environment.

In various embodiments, any combination of two imaging modalities described herein may be used to compute first and second depths of a surface of an object. In this embodiment, each of the two imaging modalities may have a respective weighting factor that is applied to the depth determined by that particular modality. In various embodiments, the two weighting factors may add up to unity. In various embodiments, the pixel depth function is computed in a similar manner to that described above in Equation <NUM>, but in contrast, the pixel depth for two modalities is dependent on only two weighted depth computations (instead of three).

In various embodiments, the weights associated with each imaging system may be dependent on the overall quality of the particular imaging system. For example, one particular imaging system may provide more accurate data overall than another imaging system. In this example, the data received the imaging system with the higher accuracy would be given a higher weight than the data received from the imaging system with the lower accuracy. In various embodiments, the accuracy and/or precision of various imaging systems may be dependent on the distance away from the object to be imaged, the material being imaged, and/or the lighting of the operating environment. In various embodiments, the accuracy and/or precision of various imaging systems may be dependent on a location in the field of view of the imaging system - for example a first imaging system may have high accuracy at the center of the field of view with a rapid decline towards the edges, while another imaging system may have a consistent accuracy across the field of view.

A discussion of how various sensors perform in different situations can be found in "<NPL>et al. <FIG> shows a table of analyzed sensors in the Halmetschlager-Funek paper. <FIG> illustrate various graphs from the Halmetschlager-Funek paper regarding the bias, precision, lateral noise, effects of materials/lighting/distance, and effects of additional sensors. In particular, regarding bias (shown in <FIG>), the paper describes that while the Kinectv2 offers low bias over the whole range, a significant increase of the bias for sensors using structured light was observed starting from d><NUM>. While all three structured light sensors and the two active stereo cameras (ZR300 and D435) offer a lower bias than the Kinectv2 for distances d<<NUM>, three sensors (ZR300, Orbbec, and Structure IO) offer an even lower bias for depth values d<<NUM>. A quadratic increase of the bias was observed for all sensors [full range: d = <NUM>-<NUM>, <FIG>; zoom in: d = <NUM>-<NUM>, <FIG>]. The near-range sensors, F200 and SR300 [<FIG>], show a slightly higher bias than their far-range counterparts, while the Ensenso N35 provides a low bias over the whole measurement range.

As for precision (as shown in <FIG>), a quadratic decrease of precision was found in all far-range sensors [full range: d = <NUM>-<NUM>, <FIG>; zoom in: d = <NUM>-<NUM>, m, <FIG>], but the structured light sensors differ in scale compared to the Kinectv2. Overall, the R200 and ZR300 sensors have the worst performance, while the Structure IO and Orbbec sensors perform very similarly. At distances d<<NUM>, all structured light sensors were observed to generate less noisy measurements than the Kinec-tv2. Moreover, the D435 was able to gather more precise results than the Kinectv2 at distances d<<NUM>. The precision results for the D435 were observed to be more scattered than for the other sensors. The near-range sensors [<FIG>] experience noise levels up to <NUM>. In the ranges specified by the manufacturers, precision values under <NUM> were able to be obtained.

As for lateral noise (<FIG>), the analysis of lateral noise shows similar results for the three far-range structured light sensors and distances. For d<<NUM>, the noise level was independent of the distance, with three pixels for the structured light sensors and one for the Kinectv2 (<FIG>). Two active stereo sensors (D435 and ZR300) offer a low lateral noise level similar to that of the Kinectv2. The R200 achieves a lower lateral noise of two pixels for distances closer than <NUM>. In the near-range sensor, the Ensenso N35 achieves the highest lateral noise value.

As for materials/lighting/distance (<FIG>), a total of <NUM> data points were gathered to determine how the sensors' precision was influenced by the reflection and absorption properties of six different materials in combination with four different lighting conditions from <NUM> to <NUM> lux (<FIG>). The tests reveal that the Structure IO sensor best handles the varying object reflectances and lighting conditions. Although it has a lower precision compared to the other sensors for distances of d><NUM>, it was able to gather information for high-reflective surfaces, such as aluminum, and under bright lighting conditions. While the Structure IO sensor gives a dense depth estimation, the Xtion was not able to determine a depth value. The Orbbec may fail to gather depth information for four of the six surfaces under bright lighting conditions. The Kinectv2 may fails to gather reliable depth data for aluminum at distances of d = <NUM> and d = <NUM> and under bright lighting conditions. The F200 and SR300 sensors may have a significantly lower precision for bright lighting conditions. During the setup of the experiments, the active stereo cameras (Ensenso and R200) were expected to be able to handle different lighting conditions better than the structured light sensors due to the nature of their technology. In <FIG>, a precision of zero indicates that the sensor is not able to gather any depth information.

As for noise induced by additional sensors (<FIG>, <FIG>, and <FIG>-14C), the results (<FIG>) reveal that the far-range structured light sensors can handle noise induced by one and two additional sensors. An exception occurs when the distance to the target is d = <NUM> and two additional sensors are introduced to the scene. A similar effect was not observed for the Kinectv2. The sensor may give stable results for precision independent of one or two additional sensors. The near-range sensors F200 and SR300 may be less precise with an additional sensor, and the Ensenso N35 is only slightly affected by a third observing sensor. At this point, we note that the high nan ratio for the close-range devices can be partially derived from our setup. Half of the scene is out of the sensor's range (<FIG>). To summarize, the first experiment with one sensor provides a baseline for the measurements with two and three sensors observing the scene. The first differences may be visible if only one sensor is added. In particular, the SR300 and F200 sensors may have a significant increase in the nan ratio if another Realsense device is added to the scene. For a closer analysis, the corresponding depth images are shown. In <FIG>, it is clear that the depth extraction is heavily influenced by an additional sensor. The Ensenso and Kinectv2 sensors may be unaffected by the additional sensors.

In various embodiments, as described above, depth data received from one or more cameras may be higher quality (e.g., more reliable) than depth data from other cameras in the imaging system. In various embodiments, the quality of the depth data may be dependent on supporting features that are external to the imaging system. For example, depth data may be higher quality and therefore given a higher weight when a camera (e.g., infrared camera) can clearly read a predetermined number of fiducial markers on a tissue. In various embodiments, if the camera cannot read the predetermined number of markers, the depth data may be of a lower quality and therefore depth data from the camera may be given a lower weight. In a similar example, when a camera can clearly read a structured light pattern from a structured light projector, the depth data resulting from the structured light may be a higher quality and therefore given a higher weight.

In various embodiments, the weights associated with each imaging system may be dependent on the confidence of the depth and/or the quality of each pixel. In various embodiments, because some imaging systems have one or more "sweet-spot" in an image with higher quality image data and one or more "dead-zone" with lower quality image data, each of the weights associated with the imaging system(s) may be parameterized at the pixel-level of an image. In various embodiments, one or more (e.g., all) of the weights may be a function of <NUM>-dimensional points (x, y) representing pixels in an image. In various embodiments, pixels in an image may be assigned coordinate points in any suitable way as is known in the art. For example, the bottom left corner of an image may be assigned a coordinate of (<NUM>, <NUM>) and the top right corner of the image may be assigned the maximum number of pixels in each respective axis (max x pixels, max y pixels). In an example, one imaging system (e.g., stereoscopic camera) may have high-quality image data in the center of an image and low-quality image data on the periphery. In this particular example, a higher weight may be assigned to pixels in the center of the image and the weight may decrease as the pixels move radially away from the center of the image. In various embodiments, the parametric function may be a continuous function. In various embodiments, the parametric function may be a discontinuous function (e.g., piece-wise function). In various embodiments, the parametric function may include a linear function. In various embodiments, the parametric function may include an exponential function.

In various embodiments, when an imaging system cannot compute a depth at a particular pixel, that particular pixel may be assigned a weight of zero for the particular imaging system (i.e., the particular imaging system will not contribute to the determination of depth at that particular pixel).

In various embodiments, the imaging system may include stereoscopic depth sensing. In various embodiments, stereoscopic depth sensing may work best when there are one or more uniquely identifiable features in an image (or video frame). In various embodiments, stereoscopic depth sensing may be performed using two cameras (e.g., digital cameras). In various embodiments, the cameras may be calibrated with one another. For example, the imaging system may be calibrated based on latency, frame rate, three-dimensional distance between the two cameras, various distances away from the imaging system, various lighting levels, marker types/shapes/colors, etc. In various embodiments, software known in the art may be used to control the two cameras and implement stereoscopic depth sensing. In various embodiments, a first image (or frame of a video) is captured at a first camera and a second image (or frame of a video) is captured at a second camera that is located at a predetermined distance away from the first camera. In various embodiments, a pixel disparity is computed between the first image (or frame of a video) and the second image (or frame of a video). In various embodiments, a depth may be determined from the pixel disparity value. In various embodiments, closer objects have a higher pixel disparity value and further objects have a lower pixel disparity value. In various embodiments, three-dimensional coordinates (x, y, z) may be computed from the determined depth and the camera calibration parameters. In various embodiments, stereoscopic depth sensing may be used with fiducial markers to determine depth.

In various embodiments, the imaging system may include active stereoscopic depth sensing. In various embodiments, a projector may project a pattern that is unique on a local scale. In various embodiments, any suitable pattern may be used and the pattern does not have to be known to the imaging system in advance. In various embodiments, the pattern may change over time. In various embodiments, active stereoscopic depth sensing with a projector may provide depth information for featureless images in unstructured environments.

In various embodiments, a static mask may be projected onto a surface of an object (e.g., a tissue) in a scene. For example, a physical pattern (e.g., wire mesh) may be positioned in front of a source of light and lenses may be used to focus the light pattern onto the surface.

In various embodiments, a digital micromirror (DMD) projector may be used to project a pattern on the surface of the object. In this embodiment, light shines onto an array of micromirrors (e.g., <NUM>,<NUM>,<NUM> mirrors arranged in a rectangle). The mirrors may be controlled to either allow or prevent the light from entering and illuminating the scene. Lenses may be used to focus the light pattern onto the scene. In various embodiments, the DMD projector may allow for programmable patterns (e.g., QR code, letter, circle, square, etc.). It will be appreciated that a similar effect may be obtained using optical metasurfaces in place of a DMD.

In various embodiments, a scanned laser projector may be used to project a pattern on the surface of the object. In this embodiments, one or more laser sources are used to project a single pixel on the surface. A high definition image may be created by shining one pixel at a time at a high frequency. In various embodiments, focusing of a pattern may not be required with a scanned laser projector. In various embodiments, the scanned laser projector may allow for programmable patterns (e.g., QR code, letter, circle, square, etc.).

In various embodiments, custom algorithms may be developed for the stereoscopic camera to detect the known programmable pattern and to determine depth data from a surface onto which the pattern is projected. In various embodiments, the depth data is computed by determining a disparity value between a first image (or video frame) from the first camera and a second image (or video frame) from the second camera.

In various embodiments, a predetermined wavelength of light may be projected onto a surface of an object depending on the material of the surface. Different materials may have different absorption and/or reflectance properties across a continuum of wavelengths of light. In various embodiments, a wavelength is selected such that light reflects off of the outermost surface of the object. In various embodiments, if a wavelength of light is selected that penetrates the surface of the object, the resulting image may have a washed out appearance resulting in inaccurate depth data (e.g., lower accuracy, high spatiotemporal noise).

In various embodiments, the imaging system may include an interferometer. In various embodiments, a light source may illuminate a scene with an object and a sensor may measure the phase difference between the emitted and reflected light. In various embodiments, depth may be computed directly from the sensor measurement. In various embodiments, this approach may have low computational resource requirements, faster processing, work on featureless scenes, and/or work at various illumination levels.

In various embodiments, the resulting depth map including the computed depths at each pixel may be post-processed. Depth map post-processing refers to processing of the depth map such that it is useable for a specific application. In various embodiments, depth map post-processing may include accuracy improvement. In various embodiments, depth map post-processing may be used to speed up performance and/or for aesthetic reasons. Many specialized post-processing techniques exist that are suitable for use with the systems and methods of the present disclosure. For example, if the imaging device/sensor is run at a higher resolution than is technically necessary for the application, sub-sampling of the depth map may decrease the size of the depth map, leading to throughput improvement and shorter processing times. In various embodiments, subsampling may be biased. For example, subsampling may be biased to remove the depth pixels that lack a depth value (e.g., not capable of being calculated and/or having a value of zero). In various embodiments, spatial filtering (e.g., smoothing) can be used to decrease the noise in a single depth frame, which may include simple spatial averaging as well as non-linear edge-preserving techniques. In various embodiments, temporal filtering may be performed to decrease temporal depth noise using data from multiple frames. In various embodiments, a simple or time-biased average may be employed. In various embodiments, holes in the depth map can be filled in, for example, when the pixel shows a depth value inconsistently. In various embodiments, temporal variations in the signal (e.g., motion in the scene) may lead to blur and may require processing to decrease and/or remove the blur. In various embodiments, some applications may require a depth value present at every pixel. For such situations, when accuracy is not highly valued, post processing techniques may be used to extrapolate the depth map to every pixel. In various embodiments, the extrapolation may be performed with any suitable form of extrapolation (e.g., linear, exponential, logarithmic, etc.).

In various embodiments, the first imaging system, the second imaging system, and the third imaging system use the same one or more cameras (e.g., plenoptic cameras) connected to a computing node. The computing node may process a single recorded image to extract the fiducial markers, the structure light pattern, and the light-field data as separate components. Each of the separate components may be used to compute positional information (e.g., a depth map) of a surface of the object. Weighting factors may be applied to each of the computed positional information to compute a weighted average depth.

In various embodiments, systems can use any combination of the above-mentioned imaging modalities/systems to determine positional information about the surface of a tissue. In various embodiments, the systems may determine that a weight value in Equation <NUM> is zero (<NUM>). In this case, a system uses multiple imaging modalities/systems to acquire positional data, but determines at least one of those imaging modalities/systems does not provide reliable positional data and thus disregards the particular imaging modality/system(s) that does not provide reliable data when applying Equation <NUM>.

In some embodiments, a stereoscopic camera may be used as an imaging system either by itself or in combination with any of the above-mentioned imaging systems.

The object from which positional information is obtained may be any suitable biological tissue. For example, the object may be an internal bodily tissue, such as esophageal tissue, stomach tissue, small/large intestinal tissue, and/or muscular tissue. In other embodiments, the object may be external tissue, such as dermal tissue on the abdomen, back, arm, leg, or any other external body part. Moreover, the object may be a bone, internal organ, or other internal bodily structure. The systems and method of the present disclosure would similarly work for animals in veterinary applications.

In various embodiments, the systems and methods described herein may be used in any suitable application, such as, for example, diagnostic applications and/or surgical applications. As an example of a diagnostic application, the systems and methods described herein may be used in colonoscopy to image a polyp in the gastrointestinal tract and determine dimensions of the polyp. Information such as the dimensions of the polyp may be used by healthcare professionals to determine a treatment plan for a patient (e.g., surgery, chemotherapy, further testing, etc.). In another example, the systems and methods described herein may be used to measure the size of an incision or hole when extracting a part of or whole internal organ. As an example of a surgical application, the systems and methods described herein may be used in handheld surgical applications, such as, for example, handheld laparoscopic surgery, handheld endoscopic procedures, and/or any other suitable surgical applications where imaging and depth sensing may be necessary. In various embodiments, the systems and methods described herein may be used to compute the depth of a surgical field, including tissue, organs, thread, and/or any instruments. In various embodiments, the systems and methods described herein may be capable of making measurements in absolute units (e.g., millimeters).

Various embodiments may be adapted for use in gastrointestinal (GI) catheters, such as an endoscope. In particular, the endoscope may include an atomized sprayer, an IR source, a camera system and optics, a robotic arm, and an image processor.

In various embodiments, a contrast agent may be applied to the surface of the object, such as the surface of a biological tissue, to provide contrast to the surface of which three-dimensional positional information is to be generated by a computer vision system. When using some visualization modalities where precision is directly proportional to contrast and texture (e.g., light-field imaging), the contrast agent may be utilized to provide contrast to the surface. In various embodiments, where soft tissue is being imaged, the surface may be substantially uniform in color and have very little texture. In this case, a contrast agent, such as an atomized dye that adheres to the tissue (e.g., the serous membrane), may be applied to the tissue. The dye may be fluoresced and provide an artificial contrast to greatly improve the level of precision in the light-field imaging system.

When contrast is used on the surface of the tissue, a calibration may be obtained prior to the application of the contrast agent to determine depth information.

<FIG> illustrates an exemplary image <NUM> of a surface <NUM> having fiducial markers <NUM> in which the image may be used as a baseline image. In <FIG>, fiducial markers <NUM> are provided on the surface <NUM> in the form of liquid markers. The fiducial markers <NUM> are painted in a matrix format such that a computer vision system running on a computing node can recognize the fiducial markers <NUM> and compute a three dimensional surface from the image. The computer vision system may include one or more cameras that record images of the object and provide the images to the computing node running computer vision software.

In various embodiments, the computer vision system generates three-dimensional position information (X, Y, Z) for each of the fiducial markers <NUM>. The computer vision system may further interpolate positional information between the fiducial markers <NUM> or may extrapolate to generate a three-dimensional model of the surface <NUM> of the object.

<FIG> illustrates an exemplary image <NUM> of a surface <NUM> having a matrix of structured light markers <NUM> overlaying the baseline image <NUM> of <FIG>. The matrix of structured light markers <NUM> are in the form of a grid of dots. The structured light markers <NUM> are projected onto the surface <NUM> of the object from a source of structured light (e.g., a laser) such that a computer vision system running on a computing node can recognize the structured light markers <NUM> and compute a three dimensional surface from the image. The computer vision system may include one or more cameras that record images of the structured light markers <NUM> projected onto the object and provide the images to the computing node running computer vision software. The computer vision software may analyze the structured light markers <NUM> from images taken at different visual angles and perform geometric reconstruction to generate positional information of the surface <NUM>. As shown in <FIG>, the matrix of structured light markers <NUM> has more markers projected onto the surface <NUM> than the fiducial markers <NUM> shown in <FIG>. Thus, three-dimensional positional information will be more accurate using the structured light markers <NUM> as there are more data points from which the computer vision software can generate the three-dimensional model of the surface <NUM>.

<FIG> illustrates an exemplary image of simulated biological tissue <NUM> while <FIG> illustrates an exemplary image of a depth map <NUM> of the same simulated biological tissue <NUM>. As shown in <FIG>, the simulated biological tissue <NUM> (e.g., a serous membrane) is substantially uniform in color, is not textured, and has no artificial markers. The depth map <NUM> shown in <FIG> represents a depth map produced by light-field imaging of the simulated tissue <NUM>. As shown in <FIG>, the depth map <NUM> has very little to no depth data in areas of little contrast - namely, the areas of the tissue <NUM> away from the edges. Depth data exists at the edges because of the contrast between the simulated tissue <NUM> and the background.

<FIG> illustrates an exemplary image of simulated biological tissue <NUM> having a contrast agent applied to the surface while <FIG> illustrates an exemplary image of a depth map <NUM> of the same simulated biological tissue <NUM> having the contrast agent. As shown in <FIG>, a contrast agent (e.g., an atomized blue dye) is applied to the simulated biological tissue <NUM> (e.g., a serous membrane). The depth map <NUM> shown in <FIG> represents a depth map produced by light-field imaging of the simulated tissue <NUM> having the contrast agent. As shown in <FIG>, the depth map <NUM> has much more data than the depth map <NUM> shown in <FIG> because of the contrast agent applied to the surface of the tissue. Based on the depth map <NUM>, a computer vision system would recognize that the tissue <NUM> has a curved surface.

<FIG> illustrates a 3D surface imaging system <NUM> imaging a tissue according to embodiments of the present disclosure. The imaging system <NUM> includes an endoscope <NUM> having cameras 521a, 521b that, when used together, generate stereoscopic images of a tissue <NUM> (e.g., stomach). In various embodiments, the endoscope <NUM> may optionally, or additionally, include an infrared camera. The tissue <NUM> has fiducial markers <NUM> disposed thereon such that a camera (e.g., infrared camera) can detect the markers <NUM> against the background of the tissue <NUM>. In various embodiments, the imaging system <NUM> further includes a projector <NUM>. In various embodiments, the projector <NUM> may be configured to project structured light <NUM> (e.g., a dot pattern) onto the tissue <NUM>. In various embodiments, the projector is configured to project infrared light. The imaging system <NUM> further includes a light-field (e.g., plenoptic) camera <NUM>. In various embodiments, the tissue <NUM> may be sprayed with a contrast liquid as described above to allow the imaging system <NUM> to determine depth of the tissue <NUM>.

<FIG> shows a diagram illustrating a 3D surface imaging system. The system combines three visualization modalities to improve the 3D imaging resolution. The system includes a camera system that can be moved by a robotic arm. For each of the visualization modalities, the camera system captures images of target tissue through a light guide in an endoscope and an optics mechanism. The images are processed by an image processor to determine a virtually constructed 3D surface.

In one visualization modality, the camera system includes a light-field (e. g, plenoptic) camera for capturing a plenoptic image of the target tissue. The image processor uses standard techniques to determine 3D surface variation and shape from the plenoptic image.

In a second visualization modality, the system uses an IR (infrared) source/projector for generating an IR spot pattern, which is projected on the target tissue via the optics mechanism and a light guide in the endoscope. The spot pattern can be predefined or random. The camera system includes an IR sensor that captures an image of the IR spots on the target tissue. The image is transmitted to the image processor, which detects distortions in the spot pattern projected on the target tissue to determine 3D surface variation and shape.

In a third visualization modality, the system uses an atomizer/sprayer in the endoscope to apply an atomized liquid dye to selected areas of the target tissue to increase the number of fiducial spots. The atomized dye adheres to the target tissue in a random spot pattern with a higher spot concentration than the IR spot pattern. The dye can be fluoresced to provide an augmented contrast with the tissue to improve precision of the imaging system.

The image processor determines which visualization modality data is most appropriate in a given situation, and combines the data where appropriate to further improve the 3D imaging resolution. The data can be combined using a weighting algorithm. The system thereby accurately and reliably senses depth with a high resolution, which is needed for accurate robotic surgical planning and execution.

<FIG> shows a flowchart <NUM> of a method for determining a three-dimensional coordinate on an object. At <NUM>, the method includes recording an image, the image comprising an object, a first plurality of markers disposed on the object, a second plurality of markers disposed on the object, and a third plurality of markers disposed on the object. At <NUM>, the method includes computing a first depth using the image and the first plurality of markers. At <NUM>, the method includes computing a second depth using the image and the second plurality of markers. At <NUM>, the method includes computing a third depth using the image and the third plurality of markers. At <NUM>, the method includes assigning a first weight to the first depth, a second weight to the second depth, and a third weight to the third depth. At <NUM>, the method includes computing a weighted average depth based on the first depth, second depth, third depth, first weight, second weight, and third weight.

Referring now to <FIG>, a schematic of an exemplary computing node is shown that may be used with the computer vision systems described herein. Computing node <NUM> is only one example of a suitable computing node and is not intended to suggest any limitation as to the scope of use or functionality of embodiments described herein. Regardless, computing node <NUM> is capable of being implemented and/or performing any of the functionality set forth hereinabove.

In computing node <NUM> there is a computer system/server <NUM>, which is operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well-known computing systems, environments, and/or configurations that may be suitable for use with computer system/server <NUM> include, but are not limited to, personal computer systems, server computer systems, thin clients, thick clients, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputer systems, mainframe computer systems, and distributed cloud computing environments that include any of the above systems or devices, and the like.

Computer system/server <NUM> may be described in the general context of computer system-executable instructions, such as program modules, being executed by a computer system. Generally, program modules may include routines, programs, objects, components, logic, data structures, and so on that perform particular tasks or implement particular abstract data types. Computer system/server <NUM> may be practiced in distributed cloud computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed cloud computing environment, program modules may be located in both local and remote computer system storage media including memory storage devices.

As shown in <FIG>, computer system/server <NUM> in computing node <NUM> is shown in the form of a general-purpose computing device. The components of computer system/server <NUM> may include, but are not limited to, one or more processors or processing units <NUM>, a system memory <NUM>, and a bus <NUM> coupling various system components including system memory <NUM> to processor <NUM>.

Bus <NUM> represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. By way of example, and not limitation, such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus.

Computer system/server <NUM> typically includes a variety of computer system readable media. Such media may be any available media that is accessible by computer system/server <NUM>, and it includes both volatile and non-volatile media, removable and non-removable media.

System memory <NUM> can include computer system readable media in the form of volatile memory, such as random access memory (RAM). <NUM> and/or cache memory <NUM>. Computer system/server <NUM> may further include other removable/non-removable, volatile/non-volatile computer system storage media. By way of example only, storage system <NUM> can be provided for reading from and writing to a non-removable, non-volatile magnetic media (not shown and typically called a "hard drive"). Although not shown, a magnetic disk drive for reading from and writing to a removable, non-volatile magnetic disk (e.g., a "floppy disk"), and an optical disk drive for reading from or writing to a removable, non-volatile optical disk such as a CD-ROM, DVD-ROM or other optical media can be provided. In such instances, each can be connected to bus <NUM> by one or more data media interfaces. As will be further depicted and described below, memory <NUM> may include at least one program product having a set (e.g., at least one) of program modules that are configured to carry out the functions of embodiments of the disclosure.

Program/utility <NUM>, having a set (at least one) of program modules <NUM>, may be stored in memory <NUM> by way of example, and not limitation, as well as an operating system, one or more application programs, other program modules, and program data. Each of the operating system, one or more application programs, other program modules, and program data or some combination thereof, may include an implementation of a networking environment. Program modules <NUM> generally carry out the functions and/or methodologies of embodiments described herein.

Computer system/server <NUM> may also communicate with one or more external devices <NUM> such as a keyboard, a pointing device, a display <NUM>, etc.; one or more devices that enable a user to interact with computer system/server <NUM>; and/or any devices (e.g., network card, modem, etc.) that enable computer system/server <NUM> to communicate with one or more other computing devices. Such communication can occur via Input/Output (I/O) interfaces <NUM>. Still yet, computer system/server <NUM> can communicate with one or more networks such as a local area network (LAN), a general wide area network (WAN), and/or a public network (e.g., the Internet) via network adapter <NUM>. As depicted, network adapter <NUM> communicates with the other components of computer system/server <NUM> via bus <NUM>. It should be understood that although not shown, other hardware and/or software components could be used in conjunction with computer system/server <NUM>. Examples, include, but are not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data archival storage systems, etc..

In other embodiments, the computer system/server may be connected to one or more cameras (e.g., digital cameras, light-field cameras) or other imaging/sensing devices (e.g., infrared cameras or sensors).

The present disclosure includes a system, a method, and/or a computer program product.

Computer readable program instructions for carrying out operations of the present disclosure may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like, and conventional procedural programming languages, such as the "C" programming language or similar programming languages. In various embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present disclosure.

The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present disclosure. In various alternative implementations, the functions noted in the block may occur out of the order noted in the figures.

Claim 1:
A computer-implemented method of depth sensing, comprising:
(a) recording a plurality of images of an object in a surgical scene, wherein the plurality of images comprise a plurality of markers on the object <NUM>, wherein the plurality of images is captured using a plurality of imaging devices having different types of imaging modalities;
(b) computing (i) a first depth using one or more images of the plurality of images and a first set of markers of the plurality of markers <NUM>, (ii) a second depth using the one or more images and a second set of markers of the plurality of markers <NUM>, and (iii) a third depth using the one or more images and a third set of markers of the plurality of markers <NUM>;
(c) assigning (i) a first weight to the first depth, (ii) a second weight to the second depth, and (iii) a third weight to the third depth <NUM>; and
(d) computing a weighted average depth of one or more portions of the object based at least in part on the first depth, the first weight, the second depth, the second weight, the third depth, and the third weight <NUM>.