The subject matter disclosed herein relates to a method and device for displaying a two-dimensional image of a viewed object simultaneously with an image depicting a three-dimensional geometry of the viewed object using a video inspection device.
Video inspection devices, such as video endoscopes or borescopes, can be used to inspect a surface of an object to identify and analyze anomalies (e.g., pits or dents) on the object that may have resulted from, e.g., damage, wear, corrosion, or improper installation. In many instances, the surface of the object is inaccessible and cannot be viewed without the use of the video inspection device. For example, a video inspection device can be used to inspect the surface of a blade of a turbine engine on an aircraft or power generation unit to identify any anomalies that may have formed on the surface to determine if any repair or further maintenance is required. In order to make that assessment, it is often necessary to obtain highly accurate-dimensional measurements of the surface and the anomaly to verify that the anomaly does not exceed or fall outside an operational limit or required specification for that object.
A video inspection device can be used to obtain and display a two-dimensional image of the surface of a viewed object showing the anomaly to determine the dimensions of an anomaly on the surface. This two-dimensional image of the surface can be used to generate three-dimensional data of the surface that provides the three-dimensional coordinates (e.g., (x, y, z)) of a plurality of points on the surface, including proximate to an anomaly. In some video inspection devices, the user can operate the video inspection device in a measurement mode to enter a measurement screen in which the user places cursors on the two-dimensional image to determine geometric dimensions of the anomaly. In many instances, the contour of a viewed feature is difficult to assess from the two-dimensional image, making highly accurate placement of the cursors proximate to the anomaly difficult as it is difficult for the user to visualize the measurement being performed in three-dimensional space. This process may not always result in the desired geometric dimension or measurement of the anomaly being correctly determined and can be time consuming.
The discussion above is merely provided for general background information and is not intended to be used as an aid in determining the scope of the claimed subject matter.
A method and device for displaying a two-dimensional image of a viewed object simultaneously with an image depicting a three-dimensional geometry of the viewed object using a video inspection device is disclosed. The video inspection device displays a two-dimensional image of the object surface of a viewed object, and determines the three-dimensional coordinates of a plurality of surface points. At least one rendered image of the three-dimensional geometry of the viewed object is displayed simultaneously with the two-dimensional image. As measurement cursors are placed and moved on the two-dimensional image, the rendered image of the three-dimensional geometry of the viewed object is automatically updated.
An advantage that may be realized in the practice of some disclosed embodiments of the method and device for displaying a two-dimensional image of a viewed object simultaneously with an image depicting a three-dimensional geometry of the viewed object is that the accuracy of the measurement is improved since the user is provided with an additional and better perspective of the anomaly, and the time to perform the measurement of an anomaly is reduced.
In one embodiment, a method for inspecting an object surface of a viewed object is disclosed. The method includes the steps of displaying a two-dimensional image of the object surface on a display, determining the three-dimensional coordinates of a plurality of points on the object surface using a central processor unit, determining a rendered image of the three-dimensional geometry of at least a portion of the object surface using the central processor unit, simultaneously displaying the two-dimensional image and the rendered image on the display, placing a plurality of measurement cursors on the two-dimensional image using a pointing device and displaying the plurality of measurement cursors on the two-dimensional image on the display, displaying on the rendered image a plurality of measurement identifiers corresponding to the measurement cursors on the two-dimensional image, and determining a measurement dimension of the object surface based on the locations of the plurality of measurement cursors on the two-dimensional image using the central processor unit.
In another embodiment, the method includes the steps of placing a plurality of measurement cursors on the rendered image using a pointing device and displaying the plurality of measurement cursors on the rendered image on the display displaying on the two-dimensional image a plurality of measurement identifiers corresponding to the measurement cursors on the rendered image, and determining a measurement dimension of the object surface based on the locations of the plurality of measurement cursors on the rendered image using the central processor unit.
In yet another embodiment, the method includes the steps of displaying a two-dimensional stereo image of the object surface on a display, determining the three-dimensional coordinates of a plurality of points on the object surface using a central processor unit using stereo techniques, determining a rendered image of the three-dimensional geometry of at least a portion of the object surface using the central processor unit, and simultaneously displaying the two-dimensional stereo image and the rendered image on the display.
In still another embodiment, a device for inspecting an object surface of a viewed object is disclosed. The device includes an elongated probe comprising an insertion tube, an imager located at a distal end of the insertion tube for obtaining a two-dimensional stereo image of the object surface, a central processor unit for determining the three-dimensional coordinates of a plurality of points on the object surface, and determining a rendered image of the three-dimensional geometry of at least a portion of the object surface, and a display for simultaneously displaying the two-dimensional stereo image and the rendered image.
This brief description of the invention is intended only to provide a brief overview of subject matter disclosed herein according to one or more illustrative embodiments, and does not serve as a guide to interpreting the claims or to define or limit the scope of the invention, which is defined only by the appended claims. This brief description is provided to introduce an illustrative selection of concepts in a simplified form that are further described below in the detailed description. This brief description is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter. The claimed subject matter is not limited to implementations that solve any or all disadvantages noted in the background.
So that the manner in which the features of the invention can be understood, a detailed description of the invention may be had by reference to certain embodiments, some of which are illustrated in the accompanying drawings. It is to be noted, however, that the drawings illustrate only certain embodiments of this invention and are therefore not to be considered limiting of its scope, for the scope of the invention encompasses other equally effective embodiments. The drawings are not necessarily to scale, emphasis generally being placed upon illustrating the features of certain embodiments of the invention. In the drawings, like numerals are used to indicate like parts throughout the various views. Thus, for further understanding of the invention, reference can be made to the following detailed description, read in connection with the drawings in which:
Video inspection device 100 can include an elongated probe 102 comprising an insertion tube 110 and a head assembly 120 disposed at the distal end of the insertion tube 110. Insertion tube 110 can be a flexible, tubular section through which all interconnects between the head assembly 120 and probe electronics 140 are passed. Head assembly 120 can include probe optics 122 for guiding and focusing light from the viewed object 202 onto an imager 124. The probe optics 122 can comprise, e.g., a lens singlet or a lens having multiple components. The imager 124 can be a solid state CCD or CMOS image sensor for obtaining an image of the viewed object 202.
A detachable tip or adaptor 130 can be placed on the distal end of the head assembly 120. The detachable tip 130 can include tip viewing optics 132 (e.g., lenses, windows, or apertures) that work in conjunction with the probe optics 122 to guide and focus light from the viewed object 202 onto an imager 124. The detachable tip 130 can also include illumination LEDs (not shown) if the source of light for the video inspection device 100 emanates from the tip 130 or a light passing element (not shown) for passing light from the probe 102 to the viewed object 202. The tip 130 can also provide the ability for side viewing by including a waveguide (e.g., a prism) to turn the camera view and light output to the side. The tip 130 may also provide stereoscopic optics or structured-light projecting elements for use in determining three-dimensional data of the viewed surface. The elements that can be included in the tip 130 can also be included in the probe 102 itself.
The imager 124 can include a plurality of pixels formed in a plurality of rows and columns and can generate image signals in the form of analog voltages representative of light incident on each pixel of the imager 124. The image signals can be propagated through imager hybrid 126, which provides electronics for signal buffering and conditioning, to an imager harness 112, which provides wires for control and video signals between the imager hybrid 126 and the imager interface electronics 142. The imager interface electronics 142 can include power supplies, a timing generator for generating imager clock signals, an analog front end for digitizing the imager video output signal, and a digital signal processor for processing the digitized imager video data into a more useful video format.
The imager interface electronics 142 are part of the probe electronics 140, which provide a collection of functions for operating the video inspection device 10. The probe electronics 140 can also include a calibration memory 144, which stores the calibration data for the probe 102 and/or tip 130. A microcontroller 146 can also be included in the probe electronics 140 for communicating with the imager interface electronics 142 to determine and set gain and exposure settings, storing and reading calibration data from the calibration memory 144, controlling the light delivered to the viewed object 202, and communicating with a central processor unit (CPU) 150 of the video inspection device 100.
In addition to communicating with the microcontroller 146, the imager interface electronics 142 can also communicate with one or more video processors 160. The video processor 160 can receive a video signal from the imager interface electronics 142 and output signals to various monitors 170, 172, including an integral display 170 or an external monitor 172. The integral display 170 can be an LCD screen built into the video inspection device 100 for displaying various images or data (e.g., the image of the viewed object 202, menus, cursors, measurement results) to an inspector. The external monitor 172 can be a video monitor or computer-type monitor connected to the video inspection device 100 for displaying various images or data.
The video processor 160 can provide/receive commands, status information, streaming video, still video images, and graphical overlays to/from the CPU 150 and may be comprised of FPGAs, DSPs, or other processing elements which provide functions such as image capture, image enhancement, graphical overlay merging, distortion correction, frame averaging, scaling, digital zooming, overlaying, merging, flipping, motion detection, and video format conversion and compression.
The CPU 150 can be used to manage the user interface by receiving input via a joystick 180, buttons 182, keypad 184, and/or microphone 186, in addition to providing a host of other functions, including image, video, and audio storage and recall functions, system control, and measurement processing. The joystick 180 can be manipulated by the user to perform such operations as menu selection, cursor movement, slider adjustment, and articulation control of the probe 102, and may include a push-button function. The buttons 182 and/or keypad 184 also can be used for menu selection and providing user commands to the CPU 150 (e.g., freezing or saving a still image). The microphone 186 can be used by the inspector to provide voice instructions to freeze or save a still image.
The video processor 160 can also communicate with video memory 162, which is used by the video processor 160 for frame buffering and temporary holding of data during processing. The CPU 150 can also communicate with CPU program memory 152 for storage of programs executed by the CPU 150. In addition, the CPU 150 can be in communication with volatile memory 154 (e.g., RAM), and non-volatile memory 156 (e.g., flash memory device, a hard drive, a DVD, or an EPROM memory device). The non-volatile memory 156 is the primary storage for streaming video and still images.
The CPU 150 can also be in communication with a computer I/O interface 158, which provides various interfaces to peripheral devices and networks, such as USB, Firewire, Ethernet, audio I/O, and wireless transceivers. This computer I/O interface 158 can be used to save, recall, transmit, and/or receive still images, streaming video, or audio. For example, a USB “thumb drive” or CompactFlash memory card can be plugged into computer I/O interface 158. In addition, the video inspection device 100 can be configured to send frames of image data or streaming video data to an external computer or server. The video inspection device 100 can incorporate a TCP/IP communication protocol suite and can be incorporated in a wide area network including a plurality of local and remote computers, each of the computers also incorporating a TCP/IP communication protocol suite. With incorporation of TCP/IP protocol suite, the video inspection device 100 incorporates several transport layer protocols including TCP and UDP and several different layer protocols including HTTP and FTP.
It will be understood that, while certain components have been shown as a single component (e.g., CPU 150) in
At step 310 of the exemplary method 300 (
At step 320 of the exemplary method 300 (
Most such techniques comprise the use of calibration data, which, among other things, includes optical characteristic data that is used to reduce errors in the three-dimensional coordinates that would otherwise be induced by optical distortions. With some techniques, the three-dimensional coordinates may be determined using one or more images captured in close time proximity that may include projected patterns and the like. It is to be understood that references to three-dimensional coordinates determined using image 200 may also comprise three-dimensional coordinates determined using one or a plurality of images 200 of the object surface 210 captured in close time proximity, and that the image 200 displayed to the user during the described operations may or may not actually be used in the determination of the three-dimensional coordinates.
At step 330 of the exemplary method 300 (
In one embodiment and as shown in
The three-dimensional coordinates of three or more surface points proximate to one or more of the three reference surface points 221, 222, 223 selected on the object surface 210 proximate to the anomaly 204 can be used to determine a reference surface 250 (e.g., a plane). In one embodiment, the video inspection device 100 (e.g., the CPU 150) can perform a curve fitting of the three-dimensional coordinates of the three reference surface points 221, 222, 223 to determine an equation for the reference surface 250 (e.g., for a plane) having the following form:
k0RS+k1RS1·xiRS+k2RS·yiRS1=ziRS (1)
where (xiRS, yiRS, ziRS) are coordinates of any three-dimensional point on the defined reference surface 250 and k0RS, k1RS, and k2RS are coefficients obtained by a curve fitting of the three-dimensional coordinates.
It should be noted that a plurality of reference surface points (i.e., at least as many points as the number of k coefficients) are used to perform the curve fitting. The curve fitting finds the k coefficients that give the best fit to the points used (e.g., least squares approach). The k coefficients then define the plane or other reference surface 250 that approximates the three-dimensional points used. However, if more points are used in the curve fitting than the number of k coefficients, when you insert the x and y coordinates of the points used into the plane equation (1), the z results will generally not exactly match the z coordinates of the points due to noise and any deviation from a plane that may actually exist. Thus, the xiRS1 and yiRS1 can be any arbitrary values, and the resulting ziRS tells you the z of the defined plane at xiRS, yiRS. Accordingly, coordinates shown in these equations can be for arbitrary points exactly on the defined surface, not necessarily the points used in the fitting to determine the k coefficients.
In other embodiments, there are only one or two reference surface points selected, prohibiting the use of curve fitting based only on the three-dimensional coordinates of those reference surface points since three points are needed to determine k0RS, k1RS, and k2RS. In that case, the video inspection device 100 (e.g., the CPU 150) can identify a plurality of pixels proximate to each of the pixels of the image corresponding to a plurality of points on the object surface 210 proximate to the reference surface point(s), and determine the three-dimensional coordinates of the proximate point(s), enabling curve fitting to determine a reference surface 250.
While the exemplary reference surface 250 has been described as being determined based on reference surface points 221, 222, 223 selected by reference surface cursors 231, 232, 233, in other embodiments, the reference surface 250 can be formed by using a pointing device to place a reference surface shape 260 (e.g., circle, square, rectangle, triangle, etc.) proximate to anomaly 204 and using the reference surface points 261, 262, 263, 264 of the shape 260 to determine the reference surface 250. It will be understood that the reference surface points 261, 262, 263, 264 of the shape 260 can be points selected by the pointing device or be other points on or proximate to the perimeter of the shape that can be sized to enclose the anomaly 204.
At step 340 of the exemplary method 300 (
Although the exemplary region of interest shape 271 in
After the region of interest 270, 280 is determined, at step 350 of the exemplary method 300 (
At step 360 of the exemplary method 300 (
Once the cursor 234 has been displayed at the deepest surface point 224 in the region of interest 270, 280, the user can select that point to take and save a depth measurement. The user can also move the cursor 234 within the region of interest 270, 280 to determine the depth of other surface points in the region of interest 270, 280. In one embodiment, the video inspection device 100 (e.g., CPU 150) can monitor the movement of the cursor 234 and detect when the cursor 234 has stopped moving. When the cursor 234 stops moving for a predetermined amount of time (e.g., 1 second), the video inspection device 100 (e.g., the CPU 150) can determine the deepest surface point proximate to the cursor 234 (e.g., a predetermined circle centered around the cursor 234) and automatically move the cursor 234 to that position.
At step 610, and as shown in
At step 620, the CPU 150 of the video inspection device 100 can determine the three-dimensional coordinates (xiS1, yiS1, ziS1) in a first coordinate system of a plurality of surface points on the object surface 510 of the viewed object 502, including the anomaly 504. In one embodiment, the video inspection device can generate three-dimensional data from the image 500 in order to determine the three-dimensional coordinates. As discussed above, several different existing techniques can be used to provide the three-dimensional coordinates of the points on the image 500 of the object surface 510 (e.g., stereo, scanning systems, structured light methods such as phase shifting, phase shift moiré, laser dot projection, etc.).
At step 630, and as shown in
At step 640, and as shown in
k0RS1+k1RS1·xiRS1+k2RS1·yiRS1=ziRS1 (2)
where (xiRS1, yiRS1, ziRS1) are coordinates of any three-dimensional point in the first coordinate system on the defined reference surface 550 and k0RS1, k1RS1, and k2RS1 are coefficients obtained by a curve fitting of the three-dimensional coordinates in the first coordinate system.
It should be noted that a plurality of measurement points (i.e., at least as many points as the number of k coefficients) are used to perform the curve fitting. The curve fitting finds the k coefficients that give the best fit to the points used (e.g., least squares approach). The k coefficients then define the plane or other reference surface 550 that approximates the three-dimensional points used. However, if more points are used in the curve fitting than the number of k coefficients, when you insert the x and y coordinates of the points used into the plane equation (2), the z results will generally not exactly match the z coordinates of the points due to noise and any deviation from a plane that may actually exist. Thus, the xiRS1 and yiRS1 can be any arbitrary values, and the resulting ziRS1 tells you the z of the defined plane at xiRS1, yiRS1. Accordingly, coordinates shown in these equations can be for arbitrary points exactly on the defined surface, not necessarily the points used in the fitting to determine the k coefficients.
In another embodiment, there are only two measurement points selected for a particular measurement (e.g., length, profile), prohibiting the use of curve fitting based only on the three-dimensional coordinates of those two measurement points since three points are needed to determine k0RS1, k1RS1, and k2RS1. In that case, the video inspection device 100 can identify a plurality of pixels proximate each of the pixels of the image corresponding to a plurality of points on the object surface 510 proximate each of the measurement points, and determine the three-dimensional coordinates of those points, enabling curve fitting to determine a reference surface 550.
In one embodiment and as shown in
Once the reference surface 550 is determined, in the exemplary embodiment shown in
At step 650, the CPU 150 of the video inspection device 100 can establish a second coordinate system different from the first coordinate system. In one embodiment, the second coordinate system can be based on the reference surface 550 and the plurality of measurement points 521, 522, 523, and 524. The video inspection device 100 can assign the origin of the second coordinate system (xO2, yO2, zO2)=(0, 0, 0) to be located proximate the average position 525 of the three-dimensional coordinates of points on the reference surface 550 corresponding to two or more of the plurality of measurement points 521, 522, 523, 524 on the object surface 510 (e.g., by projecting the measurement points 521, 522, 523, and 524 onto the reference surface 550 and determining an average position 525 on the reference surface 550). In some cases, the three-dimensional coordinates of the points on the reference surface 550 corresponding to the measurement points 521, 522, 523 can be the same. However, in some circumstances, due to noise and/or small variations in the object surface 510, the measurement points 521, 522, 523 do not fall exactly on the reference surface 550, and therefore have different coordinates.
When determining points on the reference surface 550 that correspond to measurement points 521, 522, 523, 524 on the object surface 510, it is convenient to apply the concept of line directions, which convey the relative slopes of lines in the x, y, and z planes, and can be used to establish perpendicular or parallel lines. For a given line passing through two three-dimensional coordinates (x1, y1, z1) and (x2,y2,z2), the line directions (dx, dy, dz) may be defined as:
dx=x2−x1 (3)
dy=y2−y1 (4)
dz=z2−z1 (5)
Given a point on a line (x1, y1, z1) and the line's directions (dx, dy, dz), the line can be defined by:
Thus, given any one of an x, y, or z coordinate, the remaining two can be computed. Parallel lines have the same or linearly scaled line directions. Two lines having directions (dx1, dy1, dz1) and (dx2, dy2, dz2) are perpendicular if:
dx1·dx2+dy1·dy2+dz1·dz2=0 (7)
The directions for all lines normal to a reference plane defined using equation (2) are given by:
dxRSN=−k1RS (8)
dyRSN=−k2RS (9)
dzRSN=1 (10)
Based on equations (6) and (8) through (10), a line that is perpendicular to the reference surface 550 and passing through a surface point (xS, yS, zS) can be defined as:
In one embodiment, the coordinates of a point on the reference surface 550 (xiRS1, yiRS1, ziRS1) corresponding to a point on the object surface 510 (xiS1, yiS1, ziS1) (e.g. three-dimensional coordinates in a first coordinate system of points on the reference surface 550 corresponding to the measurement points 521, 522, 523, 524), can be determined by defining a line normal to the reference surface 550 having directions given in equations (8)-(10) and passing through (xiS1, yiS1, ziS1), and determining the coordinates of the intersection of that line with the reference surface 550. Thus, from equations (2) and (11):
In one embodiment, these steps (equations (3) through (14)) can be used to determine the three-dimensional coordinates of points on the reference surface 550 corresponding to the measurement points 521, 522, 523, 524. Then the average position 525 of these projected points of the measurement points on the reference surface 550 (xM1avg, yM1avg, zM1avg) can be determined. The origin of the second coordinate system (xO2, yO2, zO2)=(0, 0, 0) can then be assigned and located proximate the average position 525 (xM1avg, yM1avg, zM1avg).
Locating the origin of the second coordinate system proximate the average position 525 in the area of the anomaly 504 with the z values being the perpendicular distance from each surface point to the reference surface 550 allows a point cloud view rotation to be about the center of the area of the anomaly 504 and permits any depth map color scale to indicate the height or depth of a surface point from the reference surface 550.
In order to take advantage of this second coordinate system, at step 660, the CPU 150 of the video inspection device 100 transforms the three-dimensional coordinates in the first coordinate system (xi1, yi1, zi1) determined for various points (e.g., the plurality of surface points, the plurality of measurement points 521, 522, 523, 524, the points on the reference surface 550 including the frame points 560, etc.) to three-dimensional coordinates in the second coordinate system (xi2, yi2, zi2).
In one embodiment, a coordinate transformation matrix ([T]) can be used to transform the coordinates according to the following:
([xi1yi1zi1]−[xM1avgyM1avgzM1avg])*[T]=[xi2yi2zi2] (15)
where [T] is a transformation matrix.
In non-matrix form, the three-dimensional coordinates in the second coordinate system can be determined by the following:
xi2=(xi1−xM1avg)*T00+(yi1−yM1avg)*T10+(zi1−zM1avg)*T20 (16)
yi2=(xi1−xM1avg)*T01+(yi1−yM1avg)*T11+(zi1−zM1avg)*T21 (17)
zi2=(xi1−xM1avg)*T02+(yi1−yM1avg)*T12+(zi1−zM1avg)*T22 (18)
where the transformation matrix values are the line direction values of the new x, y, and z axes in the first coordinate system.
At step 670, the CPU 150 of the video inspection device 100 determines a subset of the plurality of surface points that are within a region of interest on the object surface 510 of the viewed object 502. In one embodiment, the region of interest can be a limited area on the object surface 510 of the viewed object 502 surrounding the plurality of selected measurement points 521, 522, 523, 524 to minimize the amount of three-dimensional data to be used in a point cloud view. It will be understood that the step of determining of the subset 660 can take place before or after the transformation step 660. For example, if the determination of the subset at step 670 takes place after the transformation step 660, the video inspection device 100 may transform the coordinates for all surface points, including points that are outside the region of interest, before determining which of those points are in the region of interest. Alternatively, if the determination of the subset at step 670 takes place before the transformation step 660, the video inspection device 100 may only need to transform the coordinates for those surface points that are within the region of interest.
In one embodiment, the region of interest can be defined by determining the maximum distance (dMAX) between each of the points on the reference surface 550 corresponding to the measurement points 521, 522, 523, 524 and the average position 525 of those points on the reference surface 550 (the origin of the second coordinate system (xO2, yO2, zO2)=(0, 0, 0) if done after the transformation, or (xM1avg, yM1avg, zM1avg) in the first coordinate system if done before the transformation). In one embodiment, the region of interest can include all surface points that have corresponding points on the reference surface 550 (i.e., when projected onto the reference surface) that are within a certain threshold distance (dROI) of the average position 525 of the measurement points 521, 522, 523, 524 on the reference surface 550 (e.g., less than the maximum distance (dROI=dMAX) or less than a distance slightly greater (e.g. twenty percent greater) than the maximum distance (dROI=1.2*dMAX)). For example, if the average position 525 in the second coordinate system is at (xO2, yO2, zO2)=(0, 0, 0), the distance (d) from that position to a point on the reference surface 550 corresponding to a surface point (xiRS2, yiRS2, ziRS2) is given by:
diRS2=√{square root over ((xiRS2−xO2)2+(yiRS2−yO2)2)} (19)
Similarly, if the average position 525 in the first coordinate system is at (xM1avg, yM1avg, zM1avg), the distance (d) from that position to a point on the reference surface 550 corresponding to a surface point (xiRS1, yiRS1, ziRS1) is given by:
diRS1=√{square root over ((xiRS1−xM1avg)2+(yiRS1−yM1avg)2)} (20)
If a surface point has a distance value (diRS1 or diRS2) less than the region of interest threshold distance (dROI) and therefore in the region of interest, the video inspection device 100 can write the three-dimensional coordinates of that surface point and the pixel color corresponding to the depth of that surface point to a point cloud view file. In this exemplary embodiment, the region of interest is in the form of a cylinder that includes surface points falling within the radius of the cylinder. It will be understood that other shapes and methods for determining the region of interest can be used.
The region of interest can also be defined based upon the depth of the anomaly 504 on the object surface 510 of the viewed object 502 determined by the video inspection device 100 in the first coordinate system. For example, if the depth of the anomaly 504 was measured to be 0.005 inches (0.127 mm), the region of interest can be defined to include only those points having distances from the reference surface 550 (or z dimensions) within a certain range (±0.015 inches (0.381 mm)) based on the distance of one or more of the measurement points 521, 522, 523, 524 to the reference surface 550. If a surface point has a depth value inside the region of interest, the video inspection device 100 can write the three-dimensional coordinates of that surface point and the pixel color corresponding to the depth of that surface point to a point cloud view file. If a surface point has a depth value outside of the region of interest, the video inspection device 100 may not include that surface point in a point cloud view file.
At step 680, and as shown in
The displayed point cloud view 700 can also include a plurality of frame points 760 forming a frame 762 on the reference surface 750 in the second coordinate system to indicate the location of the reference surface 750. In another embodiment, the displayed point cloud view 700 can also include a scale indicating the perpendicular distance from the reference surface 750.
As shown in
In another embodiment, the monitor 170, 172 of the video inspection device 100 can display a rendered three-dimensional view 700 of the subset of the plurality of surface points in the three-dimensional coordinates of the first coordinate system without ever conducting a transformation of coordinates. In this embodiment, the point cloud view 700 based on the original coordinates can also include the various features described above to assist the operator, including displaying a color map, the location of the plurality of measurement points, three-dimensional line points, depth lines, frames, or scales.
At step 810 of the exemplary method (
At step 820 of the exemplary method 800 (
Several different existing techniques can be used to provide the three-dimensional coordinates of the surface points 913, 914 in the two-dimensional image 903 (
At step 830 of the exemplary method 800 (
In an exemplary embodiment shown in
In one embodiment and as shown in
Once the three-dimensional coordinates have been determined for a plurality of surface points 913, 914 on the object surface 911 of the viewed object 910, the user can conduct measurements on the two-dimensional image 903.
In one embodiment, the video inspection device 100 saves as an image the split view of the two-dimensional image 903 and the rendered image 905. The video inspection device 100 can also save as metadata the original, full stereo image of the first (left) stereo image 903 and the second (right) stereo image 904 (e.g., grayscale only) as shown in
At step 840 of the exemplary method 800 (
In the exemplary display 900, the first measurement cursor 931 is placed on the first measurement point 921 on the object surface 911 of the viewed object 910 and the second measurement cursor 932 is placed on the second measurement point 922 on the object surface 911 of the viewed object 910. Since the three-dimensional coordinates of the measurement points 921, 922 on the object surface 911 of the viewed object 910 are known, a geometric measurement (e.g., depth or length measurement) of the object surface 911 can be performed by the user and the video inspection device 100 (e.g., the CPU 150) can determine the measurement dimension 950 as shown in
The rendered image 905 of the three-dimensional geometry of the object surface 911 of the viewed object 910 is displayed on the second side 902 of the display 900 in order to assist in the placement of the measurement cursors 931, 932 on the two-dimensional image 903 to conduct the geometric measurement. In a conventional system involving stereo or non-stereo two-dimensional images, these measurement cursors 931, 932 (as shown in
At step 850 of the exemplary method 800 (
In one embodiment, as the user changes the location of the measurement cursors 931, 932 in the two-dimensional image 903, the video inspection device 100 (e.g., the CPU 150) automatically updates the location of the measurement identifiers 941, 942 corresponding to the measurement cursors 931, 932 and the rendered image 905 (e.g., region of interest or depth colors of the point cloud view 907 in
In yet another embodiment, where the measurement cursors are placed (using a pointing device) on the rendered image 905 and measurement identifiers corresponding to the measurement cursors are displayed on the two-dimensional image 903, as the user changes the location of the measurement cursors in the rendered image 905, the video inspection device 100 (e.g., the CPU 150) automatically updates the location of the measurement identifiers corresponding to the measurement cursors and the two-dimensional image also changes to allow the user to visualize the new measurement virtually in real time. In another embodiment, after the measurement cursors are placed on the rendered image 905. the measurement identifiers can be repositioned in the two-dimensional image 903.
At step 860 of the exemplary method 800 (
As shown in
In view of the foregoing, embodiments of the invention automatically determine the depth or height of a point on an anomaly on a surface. A technical effect is to reduce the time required to perform the measurement and to improve the accuracy of the measurement.
As will be appreciated by one skilled in the art, aspects of the present invention may be embodied as a system, method, or computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.), or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “service,” “circuit,” “circuitry,” “module,” and/or “system.” Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
Program code and/or executable instructions embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer (device), partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
This written description uses examples to disclose the invention, including the best mode, and also to enable any person skilled in the art to practice the invention, including making and using any devices or systems and performing any incorporated methods. The patentable scope of the invention is defined by the claims, and may include other examples that occur to those skilled in the art. Such other examples are intended to be within the scope of the claims if they have structural elements that do not differ from the literal language of the claims, or if they include equivalent structural elements with insubstantial differences from the literal language of the claims.
This application is a divisional of, and claims priority to, U.S. application Ser. No. 14/660,464, filed Mar. 17, 2015, entitled “METHOD AND DEVICE FOR DISPLAYING A TWO-DIMENSIONAL IMAGE OF A VIEWED OBJECT SIMULTANEOUSLY WITH AN IMAGE DEPICTING THE THREE-DIMENSIONAL GEOMETRY OF THE VIEWED OBJECT,” which is a continuation-in-part, and claims priority to, of U.S. application Ser. No. 14/108,976 (now U.S. Pat. No. 9,875,574), filed Dec. 17, 2013, entitled “METHOD AND DEVICE FOR AUTOMATICALLY IDENTIFYING THE DEEPEST POINT ON THE SURFACE OF AN ANOMALY,” which is a continuation-in-part of, and claims priority to, U.S. patent application Ser. No. 13/040,678 (now U.S. Pat. No. 9,013,469), filed Mar. 4, 2011, and entitled “METHOD AND DEVICE FOR DISPLAYING A THREE-DIMENSIONAL VIEW OF THE SURFACE OF A VIEWED OBJECT,” which are hereby incorporated by reference in their entireties.
Number | Name | Date | Kind |
---|---|---|---|
4375320 | Smirmaul | Mar 1983 | A |
4493105 | Beall et al. | Jan 1985 | A |
4508452 | DiMatteo et al. | Apr 1985 | A |
4980763 | Lia | Dec 1990 | A |
4988886 | Palum et al. | Jan 1991 | A |
5066119 | Bertrand | Nov 1991 | A |
5175601 | Fitts | Dec 1992 | A |
5302999 | Oshida et al. | Apr 1994 | A |
5307152 | Boehnlein et al. | Apr 1994 | A |
5434669 | Tabata et al. | Jul 1995 | A |
5510833 | Webb et al. | Apr 1996 | A |
5581352 | Zeien | Dec 1996 | A |
5633675 | Danna et al. | May 1997 | A |
5810719 | Toida | Sep 1998 | A |
5822066 | Jeong et al. | Oct 1998 | A |
6011624 | de Groot | Jan 2000 | A |
6064759 | Buckley et al. | May 2000 | A |
6291991 | Schnell | Sep 2001 | B1 |
6323952 | Yomoto et al. | Nov 2001 | B1 |
6359434 | Winslow et al. | Mar 2002 | B1 |
6438272 | Huang et al. | Aug 2002 | B1 |
6945931 | Ogawa | Sep 2005 | B2 |
6990228 | Wiles et al. | Jan 2006 | B1 |
7003136 | Harville | Feb 2006 | B1 |
7170677 | Bendall et al. | Jan 2007 | B1 |
7286246 | Yoshida | Oct 2007 | B2 |
7372558 | Kaufman et al. | May 2008 | B2 |
7388679 | Yoshino et al. | Jun 2008 | B2 |
7486805 | Krattiger | Feb 2009 | B2 |
7518632 | Konomura | Apr 2009 | B2 |
7551293 | Yelin et al. | Jun 2009 | B2 |
7570370 | Steinbichler et al. | Aug 2009 | B2 |
7782453 | Bendall et al. | Aug 2010 | B2 |
7804295 | Brandstrom | Sep 2010 | B2 |
8013983 | Lin et al. | Sep 2011 | B2 |
8165351 | Bendall | Apr 2012 | B2 |
8422030 | Bendall et al. | Apr 2013 | B2 |
8810636 | Bendall | Aug 2014 | B2 |
8872851 | El Choubassi et al. | Oct 2014 | B2 |
8960012 | Dunford et al. | Feb 2015 | B2 |
9292922 | Facchin | Mar 2016 | B2 |
20010018644 | Schwalb et al. | Aug 2001 | A1 |
20020163573 | Bieman et al. | Nov 2002 | A1 |
20030218607 | Baumberg | Nov 2003 | A1 |
20040189799 | Spencer | Sep 2004 | A1 |
20050052452 | Baumberg | Mar 2005 | A1 |
20060282009 | Oberg et al. | Dec 2006 | A1 |
20070171220 | Kriveshko | Jul 2007 | A1 |
20070206204 | Jia et al. | Sep 2007 | A1 |
20090059242 | Fujieda et al. | Mar 2009 | A1 |
20090158315 | Bendall et al. | Jun 2009 | A1 |
20100284607 | Van Den Hengel et al. | Nov 2010 | A1 |
20110210961 | Bendall et al. | Sep 2011 | A1 |
20120069012 | Facchin et al. | Mar 2012 | A1 |
20120126803 | Goldfine et al. | May 2012 | A1 |
20120223937 | Bendall | Sep 2012 | A1 |
20120314058 | Bendall et al. | Dec 2012 | A1 |
20130009948 | Berger et al. | Jan 2013 | A1 |
20140333778 | Bendall et al. | Nov 2014 | A1 |
20150170352 | Bendall | Jun 2015 | A1 |
20150170412 | Bendall et al. | Jun 2015 | A1 |
20150302652 | Miller et al. | Oct 2015 | A1 |
20150317816 | Bendall et al. | Nov 2015 | A1 |
20160155015 | Bendall | Jun 2016 | A1 |
20160171705 | Bendall | Jun 2016 | A1 |
20160196643 | Bendall | Jul 2016 | A1 |
Number | Date | Country |
---|---|---|
1158684 | Sep 1997 | CN |
00549182 | Jun 1993 | EP |
00888522 | Jan 1999 | EP |
2328280 | Feb 1999 | GB |
2505926 | Mar 2014 | GB |
11213177 | Aug 1999 | JP |
2001149319 | Jun 2001 | JP |
2005331488 | Dec 2005 | JP |
2007029460 | Feb 2007 | JP |
3898945 | Mar 2007 | JP |
2009053147 | Mar 2009 | JP |
2006056614 | Jun 2006 | WO |
2010107434 | Sep 2010 | WO |
Entry |
---|
Yerex et al., “Predictive Display Models for Tele-Manipulation from Uncalibrated Camera Capture of Scene Geometry and Appearance,” IEEE 2003. |
Cobzas et al., “A Panoramic Model from Remote Robot Environment Mapping and Predictive Display,” Published 2005. |
Search Report and Written Opinion from EP Application No. 12157924.7 dated Jun. 22, 2012. |
Minaturized three-dimensional endoscopic imaging system based on active sterovision, Authors Manhong Chan; Wumei Lin; Changehe Zhou; Qu Jianan Y, Applied Optics ISSN 003-6935 Coden Apopai, 2003, vol. 42, n10, pp. 1888-1898 (11 page article). |
Wucher et al., 2009, “Three-dimensional depth profiling of molecular structures” (pp. 1835-1842). |
Chu et al., 1982, “Secondary Ion Mass Spectrometric image depth profile analysis of thin layers” (pp. 2208-2210). |
International Search Report and Written Opinion issued in connection with related Application No. PCT/US2016/022312 dated Jul. 5, 2016. |
Unofficial English translation of Office Action issued in connection with related CN Application No. 201210063764.6 dated Sep. 2, 2015. |
Unofficial English translation of Office Action issued in connection with related JP Application No. 2012-044901 dated Feb. 2, 2016. |
Unofficial English translation of Office Action issued in connection with related CN Application No. 201210063764.6 dated Apr. 18, 2016. |
Number | Date | Country | |
---|---|---|---|
20190130636 A1 | May 2019 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 14660464 | Mar 2015 | US |
Child | 16157988 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 14108976 | Dec 2013 | US |
Child | 14660464 | US | |
Parent | 13040678 | Mar 2011 | US |
Child | 14108976 | US |