WO2012173141A1 - 画像処理装置、画像処理方法、およびプログラム - Google Patents

画像処理装置、画像処理方法、およびプログラム Download PDF

Info

Publication number
WO2012173141A1
WO2012173141A1 PCT/JP2012/065124 JP2012065124W WO2012173141A1 WO 2012173141 A1 WO2012173141 A1 WO 2012173141A1 JP 2012065124 W JP2012065124 W JP 2012065124W WO 2012173141 A1 WO2012173141 A1 WO 2012173141A1
Authority
WO
WIPO (PCT)
Prior art keywords
image
measurement
point
cpu
graphic
Prior art date
Application number
PCT/JP2012/065124
Other languages
English (en)
French (fr)
Inventor
史生 堀
Original Assignee
オリンパス株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by オリンパス株式会社 filed Critical オリンパス株式会社
Priority to EP12800391.0A priority Critical patent/EP2722638B1/en
Publication of WO2012173141A1 publication Critical patent/WO2012173141A1/ja
Priority to US14/102,455 priority patent/US9275473B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • G06T7/62Analysis of geometric attributes of area, perimeter, diameter or volume
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10068Endoscopic image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20092Interactive image processing based on input by user
    • G06T2207/20101Interactive definition of point of interest, landmark or seed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30108Industrial image inspection
    • G06T2207/30164Workpiece; Machine component

Definitions

  • the present invention relates to an image processing apparatus, an image processing method, and a program that process an image of a measurement object to measure the size of the measurement object.
  • Patent Document 1 describes a technique suitable for measuring a blade or the like.
  • a subject image obtained by imaging a subject and a CG image generated by computer graphics (CG) are displayed on a monitor.
  • the CG image is changed based on a user instruction so that the state of the object in the CG image matches the state of the subject in the subject image.
  • Patent Document 1 when measurement is performed on each subject image while switching a plurality of subject images with different appearances of the subject, the state of the object in the CG image is changed every time the subject image is switched. An operation to match the state of the subject in the subject image is required. For this reason, when measuring a plurality of blades periodically arranged in the jet engine, the above operation frequently occurs and takes time and effort.
  • Patent Document 2 automatically matches a two-dimensional image obtained by imaging a subject with a 3D object based on data obtained by using CAD (Computer Aided Design) (pattern). Matching) is described.
  • CAD Computer Aided Design
  • Patent Document 2 first, when a 3D object is observed from a plurality of virtual viewpoints, a projection view of the 3D object observed at each viewpoint is generated.
  • the projection map is generated, a plurality of projection maps are stored together as a 2D model.
  • matching is performed between the two-dimensional image and the generated 2D model.
  • the projection map having the highest similarity to the 2D model is searched, and the subject and the two-dimensional image captured in the two-dimensional image are captured based on the position of the viewpoint when the projection map is generated. Calculate the relative position with the camera.
  • the present invention has been made in view of the above-described problems, and an object thereof is to provide an image processing apparatus, an image processing method, and a program capable of reducing processing time.
  • the image processing device displays an image of the measurement object and an image of the object corresponding to the measurement object and having a three-dimensional shape calculated in advance.
  • a designation unit for designating a first point on the image of the measurement object and a second point on the image of the object based on an instruction input via an input device;
  • a calculation unit that performs a geometric calculation of a first graphic with respect to the first point and a second graphic with respect to the second point; and the measurement based on a result of the geometric calculation.
  • An adjustment unit that adjusts the posture or position of at least one of the image of the object and the image of the object, and specified based on an instruction input via the input device after the posture or the position is adjusted Calculate the space coordinates on the object corresponding to the measurement position, and calculate the space Based on the target, and a measurement unit for calculating the size of the object.
  • the image processing device displays an image of the measurement target and an image of the object corresponding to the measurement target and having a three-dimensional shape calculated in advance.
  • a calculation unit that performs a geometric calculation with a second figure based on the second point recorded in association with the image of the object, and the measurement object based on the result of the geometric calculation
  • An adjustment unit that adjusts the posture or position of at least one of the image of the object and the image of the object, and a measurement position that is designated based on an instruction that is input via the input device after the posture or the position is adjusted Calculate the spatial coordinates on the object corresponding to Based on the spatial coordinates, and a measurement unit for calculating the size of the object.
  • the first point and the second point include three or more points designated based on an instruction input via an input device.
  • the calculation unit associates the first point with the second point based on a specified order of the first point and a specified order of the second point. To perform the geometric calculation.
  • the calculation unit includes a first graphic on a plane based on the first point, and a second on the space based on a point on the object corresponding to the second point on the space. Perform geometric calculations with other figures.
  • the calculation unit performs a geometric calculation between a first graphic on the plane and a third graphic obtained by projecting the second graphic on the space onto the plane.
  • the designation unit when the first point is designated, the designation unit further has a transmittance greater than the transmittance of the object image when the second point is designated. Set to rate.
  • the display unit displays the posture and position of the measurement object image and the object image until the geometric calculation is completed. maintain. Then, after the geometric calculation is completed, the display unit re-displays the image of the measurement object and the image of the object whose posture or position is adjusted.
  • an image processing method displays an image of a measurement object and an image of the object corresponding to the measurement object and having a three-dimensional shape calculated in advance.
  • the designation unit designates the first point on the image of the measurement object and the second point on the image of the object based on the step displayed by the unit and an instruction input via the input device A step in which a calculation unit performs a geometric calculation between the step, a first graphic based on the first point, and a second graphic based on the second point; and a result of the geometric calculation
  • the adjusting unit adjusts the posture or position of at least one of the image of the measurement object and the image of the object, and after the posture or the position is adjusted, the measuring unit To the specified measurement position based on the instructions input via Calculating the spatial coordinates on the object to respond, based on the calculated spatial coordinates, and a step of calculating the size of the object.
  • the first point and the second point include three or more points designated based on an instruction input via an input device, and the calculation unit includes the first point and the second point. Based on the designated order and the designated order of the second point, the geometric calculation is performed by associating the first point with the second point.
  • the program displays an image of the measurement object and an image of the object corresponding to the measurement object and having a three-dimensional shape calculated in advance.
  • a designation unit that designates a first point on the image of the measurement object and a second point on the image of the object based on an instruction input via the input device, and the first A measurement unit that performs geometric calculation of a first graphic with the second point as a reference and a second graphic with the second point as a reference, and the measurement object based on the result of the geometric calculation
  • An adjustment unit that adjusts the posture or position of at least one of the image of the object and the image of the object, and a measurement position that is designated based on an instruction that is input via the input device after the posture or the position is adjusted
  • the geometric calculation of the first graphic and the second graphic is performed, and based on the result of the geometric calculation, the image of the measurement object and the image of the object
  • the processing time can be reduced by adjusting at least one posture or position.
  • FIG. 1 shows a configuration of a blade inspection system according to the present embodiment.
  • a plurality of turbine blades 10 (or compressor blades), which are inspection objects, are periodically arranged at predetermined intervals.
  • a turning tool 2 that rotates the turbine blade 10 in the rotation direction A at a predetermined speed is connected to the jet engine 1.
  • the turbine blade 10 is always rotated while an image of the turbine blade 10 is captured.
  • the endoscope apparatus 3 (image processing apparatus) is used to acquire an image of the turbine blade 10.
  • An endoscope insertion portion 20 of the endoscope device 3 is inserted into the jet engine 1.
  • the endoscope insertion portion 20 captures an image of the rotating turbine blade 10.
  • the endoscope device 3 stores 3D measurement software for performing three-dimensional measurement of the turbine blade 10.
  • FIG. 2 shows the configuration of the endoscope apparatus 3.
  • the endoscope apparatus 3 includes an endoscope insertion unit 20, an endoscope apparatus main body 21, a monitor 22, and a remote controller (remote controller) 23.
  • An imaging optical system 30a and an imaging element 30b are built in the distal end of the endoscope insertion unit 20.
  • the endoscope apparatus body 21 includes an image signal processing unit (CCU) 31, a light source 32, a bending control unit 33, and a control computer 34.
  • CCU image signal processing unit
  • the imaging optical system 30a collects light from the subject (subject) and forms a subject image on the imaging surface of the imaging element 30b.
  • the image sensor 30b photoelectrically converts the subject image to generate an image signal.
  • the imaging signal output from the imaging element 30 b is input to the image signal processing device 31.
  • the image signal processing device 31 converts the imaging signal from the imaging element 30b into a video signal such as an NTSC signal and supplies it to the control computer 34, and further, as an analog video output if necessary. Output to the outside.
  • the light source 32 is connected to the distal end of the endoscope insertion portion 20 through an optical fiber or the like, and can irradiate light to the outside.
  • the bending control unit 33 is connected to the distal end of the endoscope insertion unit 20 and can bend the distal end up and down and left and right. The light source 32 and the bending control unit 33 are controlled by the control computer 34.
  • the control computer 34 includes a RAM 34a, a ROM 34b, a CPU 34c, a network I / F 34d, an RS232C I / F 34e, and a card I / F 34f as external interfaces.
  • the RAM 34a is used for temporarily storing data such as image information necessary for software operation.
  • a series of software (programs) for controlling the endoscope device 3 is stored in the ROM 34b.
  • 3D measurement software described later is also stored in the ROM 34b.
  • the CPU 34c executes various control operations and the like using the data stored in the RAM 34a according to the software instruction code stored in the ROM 34b.
  • the network I / F 34d is an interface for connecting to an external PC via a LAN cable.
  • the network I / F 34d can expand the video information output from the image signal processing device 31 to an external PC.
  • the RS232C I / F 34 e is an interface for connecting to the remote controller 23.
  • Various operations of the endoscope apparatus 3 can be controlled by operating the remote controller 23 by the user.
  • the card I / F 34f is configured such that various memory cards 50 as recording media can be freely attached and detached. When the memory card 50 is attached, data such as image information stored in the memory card 50 can be taken in or recorded in the memory card 50 under the control of the CPU 34c.
  • the PC 6 image processing apparatus
  • the PC 6 is illustrated as a notebook PC in FIG. 3, but may be a desktop PC or the like.
  • the PC 6 stores 3D measurement software for performing three-dimensional measurement of the turbine blade 10.
  • the video terminal cable 4 and the video capture card 5 are used for capturing video to the PC 6, but a LAN cable 7 may be used as shown in FIG.
  • the endoscope apparatus 3 includes a network I / F 34d that can develop the captured video on the LAN network. Then, the video can be captured by the PC 6 through the LAN cable 7.
  • FIG. 5 shows the configuration of the PC 6.
  • the PC 6 includes a PC main body 24 and a monitor 25.
  • a control computer 35 is built in the PC main body 24.
  • the control computer 35 includes a RAM 35a, an HDD (hard disk drive) 35b, a CPU 35c, and a network I / F 35d and a USB I / F 35e as external interfaces.
  • the control computer 35 is connected to the monitor 25, and video information, a software screen, and the like are displayed on the monitor 25.
  • the RAM 35a is used for temporarily storing data such as image information necessary for software operation.
  • a series of software is stored in the HDD 35b to control the endoscope apparatus, and 3D measurement software is also stored in the HDD 35b.
  • the storage folder for storing the image of the turbine blade 10 is set in the HDD 35b.
  • the CPU 35c executes various control operations and the like using the data stored in the RAM 35a according to the software instruction code stored in the HDD 35b.
  • the network I / F 35d is an interface for connecting the endoscope apparatus 3 and the PC 6 by the LAN cable 7. Video information output from the endoscope apparatus 3 via the LAN can be input to the PC 6 by the network I / F 35d.
  • the USB I / F 35 e is an interface for connecting the endoscope apparatus 3 and the PC 6 by the video capture card 5. With the USB I / F 35e, the video information output from the endoscope apparatus 3 as analog video can be input to the PC 6.
  • the blade inspection system shown in FIGS. 3 and 4 can obtain the same effects as the blade inspection system shown in FIG.
  • the blade inspection system shown in FIGS. 3 and 4 is effective when the performance of the endoscope apparatus is lower than that of the PC and the operation speed of the endoscope apparatus is not sufficient.
  • FIG. 6 shows a main window of the 3D measurement software.
  • a main window 600 shown in FIG. 6 is displayed on the monitor 22 when the user starts 3D measurement software.
  • the CPU 34c performs processing based on operations of various GUIs in the main window 600 in accordance with 3D measurement software.
  • the display of the main window 600 is performed according to control by the CPU 34c.
  • the CPU 34 c generates a graphic image signal (display signal) for displaying the main window 600 and outputs it to the monitor 22.
  • a graphic image signal display signal
  • the CPU 34c converts the image data captured from the image signal processing apparatus 31 into a graphic image signal. And the processed signal (display signal) is output to the monitor 22.
  • the CPU 34c When updating the GUI display state on the main window 600, the CPU 34c generates a graphic image signal corresponding to the updated main window 600 and performs the same processing as described above. Processing related to display of windows other than the main window 600 is the same as described above.
  • the process in which the CPU 34c generates a graphic image signal for displaying (including updating) the main window 600 and the like is referred to as the process for displaying the main window 600 and the like.
  • GUI graphical user interface
  • [File selection] box 610 is arranged in the upper right part of main window 600.
  • a [Measurement Image] box 611 is arranged at the upper left of the main window 600.
  • [File selection] box 610 is a box for selecting a measurement image displayed in [Measurement image] box 611 and selecting CAD data corresponding to the 3D object displayed in [Measurement image] box 611. .
  • CAD data is data representing the three-dimensional shape of the turbine blade 10 calculated in advance using CAD.
  • an STL (Standard Triangulated Language) format or the like is used as the format of the CAD data.
  • a 3D object is a CG object constructed based on the contents of CAD data. Details of the GUI and operation in the [Select File] box 610 are omitted.
  • [Measurement image] box 611 is a box for displaying measurement image IMG obtained by imaging turbine blade 10 which is a measurement object, and displaying 3D object OB superimposed on measurement image IMG. As will be described later, the user operates the [Measurement Image] box 611 to change the camera pose, specify the reference point, specify the measurement point, and the like.
  • a [Display setting] box 620 is arranged in the lower left part of the main window 600.
  • a GUI related to the display setting of the 3D object OB displayed in the [Measurement image] box 611 is arranged in the [Display setting] box 620.
  • the function of each GUI in the [Display Settings] box 620 is as follows.
  • [Transmittance] bar 621 is a bar for setting the display transmittance of the 3D object.
  • [Transmittance] bar 621 is movable (slidable) in the horizontal direction (lateral direction). When the user moves the [Transparency] bar 621, the display transmittance of the 3D object changes.
  • the 3D object OB is displayed with a transmittance close to transparency.
  • the 3D object OB is displayed without being transmitted.
  • the [Measurement Image] box 611 when the user designates a reference point in the measurement image IMG, it is preferable to make the measurement image IMG easier to see by setting the transmittance of the 3D object OB large. Further, when the user designates a reference point for the 3D object OB, it is preferable to make the 3D object OB easier to see by setting the transmittance of the 3D object OB small.
  • Radio button 622 is a radio button for setting the display method of 3D object OB.
  • the “display method” radio button 622 has two setting items “shading” and “wire frame”.
  • shaded When “shading” is selected, the 3D object OB is displayed in a state where the wire frame and the surface are filled.
  • wire frame When “wire frame” is selected, as shown in FIG. 6, the 3D object OB is displayed with only the wire frame.
  • radio button 623 is a radio button for setting the display color of 3D object OB.
  • the “display method” radio button 623 has two setting items “light blue” and “yellow”.
  • the display color of the 3D object OB can be switched by setting the radio button 623.
  • [Moving direction] radio button 624 is a radio button for setting the moving direction of the camera pose.
  • the camera pose is a parameter indicating the orientation (pose) of the 3D object OB, that is, the direction and position from which the 3D object OB is viewed.
  • [Movement direction] radio button 624 has two setting items, “pan / tilt” and “roll / zoom”. When “pan / tilt” is selected, the user can rotate the camera pose in the pan / tilt direction by moving the cursor C up / down / left / right in the [Measurement Image] box 611. When “Roll / Zoom” is selected, the camera pose can be rotated in the roll / zoom direction by the same operation.
  • [Current position] box 630 is a box for displaying the surface coordinates of 3D object OB at the cursor position in real time.
  • the surface coordinates of the 3D object OB are indicated in mm as coordinates in the spatial coordinate system.
  • the value in the [Current Position] box 630 is also changed in real time. For example, when the cursor C is positioned on the 3D object OB, the surface coordinates of the 3D object OB are calculated and displayed in the [current position] box 630. If the cursor C is not positioned on the 3D object OB, “null” is displayed in the “current position” box 630.
  • a method for calculating the surface coordinates of the 3D object OB will be described later with reference to FIGS.
  • [Camera Pose] box 640 is arranged below [Current Position] box 630.
  • [Camera Pose] box 640 is a box for displaying a camera pose in real time. When the user changes the camera pose, the value in the [Camera Pose] box 640 is changed to real time.
  • the camera pose is indicated in mm as coordinates in the spatial coordinate system.
  • [Shift Position] box 650 is arranged on the right side of [Camera Pose] box 640.
  • [Shift position] box 650 is a box for displaying the shift position of 3D object OB in [Measurement image] box 611.
  • the shift position of the 3D object OB is indicated in pixels as coordinates in the plane coordinate system.
  • 3D object OB is displayed in the center of [Measurement Image] box 611. Even if the camera pose is changed, the display position of the 3D object OB does not change. However, the subject shown in the measurement image IMG is not necessarily located at the center of the image. Therefore, after the execution of the 3D matching process, which is a process for matching the measurement image IMG and the 3D object 3D, the 3D object OB is positioned not on the center of the [Measurement Image] box 611 but on the subject reflected in the measurement image. Should be.
  • the above shift position indicates the relative position of the 3D object OB from the center of the [Measurement Image] box 611.
  • the moving direction of the shift position in the plane coordinate system is referred to as a shift direction.
  • the user cannot manually change the shift position arbitrarily.
  • the CPU 34c calculates the shift position after executing the 3D matching process.
  • [Matching / Measurement] box 660 is arranged below [File selection] box 610.
  • GUIs related to 3D matching processing and measurement are arranged in the [matching / measurement] box 660.
  • the function of each GUI in the [matching / measurement] box 660 is as follows.
  • [Camera pause] button 661a is a button for changing the camera pause. After the [Camera Pause] button 661a is pressed, the user can move the cursor C up, down, left, and right in the [Measurement Image] box 611a to change the camera pose.
  • a [Reset] button 661b is arranged on the right side of the [Camera Pause] button 661a. When the [Reset] button 661b is pressed, the camera pose is set to an initial value.
  • [Reference point (measurement)] button 662a is a button for designating a reference point (measurement) of the measurement image IMG.
  • the reference point (measurement) is a point on the measurement image IMG serving as a reference when the CPU 34c executes the 3D matching process.
  • the “reference point (measurement)” button 662a is pressed, in the “measurement image” box 611, the user moves the cursor C and clicks or the like at the position to be designated, thereby causing the object to be reflected in the measurement image IMG.
  • a reference point (measurement) can be designated for the specimen.
  • the reference point (measurement) is indicated in pixels as coordinates in the plane coordinate system.
  • a [Clear] button 662b is arranged on the right side of the [Reference point (measurement)] button 662a.
  • the [Clear] button 662b is pressed, all the reference points (measurement) already specified are cleared. It will be in the state before specification.
  • [Reference point (3D)] button 663a is a button for designating a reference point (3D) of the 3D object OB.
  • the reference point (3D) is a point on the 3D object that serves as a reference when the CPU 34c executes the 3D matching process, similarly to the reference point (measurement).
  • the [Reference Point (3D)] button 663a is pressed, the user moves the cursor C in the [Measurement Image] box 611 and performs an operation such as clicking at a position where the reference point (3D) is desired to be specified.
  • a reference point (3D) can be designated for the 3D object OB.
  • the reference point (3D) is indicated in mm as coordinates in the spatial coordinate system.
  • a [Clear] button 663b is arranged on the right side of the [Reference point (3D)] button 663a. When the [Clear] button 663b is pressed, all the reference points (3D) that have already been specified are cleared. It will be in the state before specification.
  • [3D matching] button 664 is a button for executing 3D matching processing. After the [3D matching] button 664 is pressed, the CPU 34c executes 3D matching processing based on two sets of reference points (reference point (measurement) and reference point (3D)) designated by the user. At this time, the CPU 34c performs a 3D matching process so that the positions of the two sets of reference points coincide with each other. As a result of the 3D matching process, the subject in the measurement image IMG and the 3D object OB are displayed so as to substantially match, and the subject in the measurement image IMG and the 3D object OB are in a state suitable for measurement.
  • [Measurement] button 665a is a button for designating a measurement point.
  • a measurement point is a point used as a reference when performing measurement.
  • the [Measurement] button 665a is pressed, in the [Measurement Image] box 611, the user moves the cursor C and performs an operation such as clicking at a position where a measurement point is desired to be specified. Measurement points can be specified.
  • the CPU 34c executes measurement processing based on the designated measurement point.
  • a [Clear] button 665b is arranged on the right side of the [Measure] button 665a. When the [Clear] button 665b is pressed, all the measurement points that have already been specified are cleared and the state before specification is obtained.
  • [Measurement Result] box 670 is arranged below [Matching / Measurement] box 660.
  • [Measurement result] box 670 is a box for displaying the measurement result.
  • measurement processing is executed based on the designated measurement point, and the measurement result is displayed in the [Measurement Result] box 670.
  • [Exit] button 680 is arranged in the lower right part of main window 600.
  • [Exit] button 680 is a button for ending the 3D measurement software. When the [END] button 680 is pressed, all the software operations are ended and the main window 600 is closed (hidden).
  • the 3D object OB1 and the viewpoint 700 are in a virtual space corresponding to the real space.
  • the center of gravity of the 3D object OB1 has a line-of-sight center 701, and a straight line extending from the viewpoint 700 in the line-of-sight direction 702 always faces the line-of-sight center 701.
  • the position of the line-of-sight center 701 is fixed.
  • the screen plane 703 corresponds to a [Measurement Image] box 611.
  • the vertical and horizontal sizes of the screen plane 703 are fixed values.
  • a projection image obtained by projecting the 3D object OB1 onto the screen plane 703 is the 3D object OB displayed in the [Measurement Image] box 611.
  • the screen plane 703 is always perpendicular to the line-of-sight direction 702, and a straight line extending from the viewpoint 700 in the line-of-sight direction 702 always passes through the center 704 of the screen plane 703.
  • the distance 706 from the viewpoint 700 to the center 704 of the screen plane 703 is a fixed value, but the distance from the viewpoint 700 to the line-of-sight center 701 can be freely changed by the user.
  • the direction in which the screen plane 703 is directed is indicated by an upward vector 705.
  • the upward vector 705 is a unit vector that is parallel to the screen plane 703 and indicates which direction the upward direction of the screen plane 703 is.
  • the camera pose there are three parameters constituting the camera pose: viewpoint position, line-of-sight center position, and upward vector.
  • viewpoint position viewpoint position
  • line-of-sight center position line-of-sight center position
  • upward vector upward vector
  • FIG. 8A shows the relationship between the 3D object and the camera pose when the camera pose is changed in the pan / tilt direction.
  • the pan direction is a direction (pan direction 803) when the viewpoint 800 is moved perpendicularly to the upward vector 802 while the distance from the viewpoint 800 to the line-of-sight center 801 is fixed.
  • the tilt direction is a direction (tilt direction 804) when the viewpoint 800 is moved in parallel with the upward vector 802 while the distance from the viewpoint 800 to the line-of-sight center 801 is fixed.
  • FIG. 8A when the camera pose is changed in the pan / tilt direction, as shown in FIG. 8B, it can be seen that the 3D object OB projected on the screen plane 805 rotates in the vertical and horizontal directions.
  • FIG. 9A shows the relationship between the 3D object and the camera pose when the camera pose is changed in the roll direction.
  • the roll direction is a direction (roll direction 904) when the screen plane 903 is rotated around the axis of the viewpoint direction 902 from the viewpoint 900 toward the viewpoint center 901 while the position of the viewpoint 900 is fixed.
  • FIG. 9A when the camera pose is changed in the roll direction, it can be seen that the 3D object OB projected on the screen plane 903 rotates around the center of the screen plane 903 as shown in FIG. 9B.
  • FIG. 10A shows the relationship between the 3D object and the camera pose when the camera pose is changed in the zoom direction.
  • the zoom direction is a direction (zoom direction 1003) when the viewpoint 1001 is moved in parallel with the line-of-sight direction 1002 while the upward vector 1000 is fixed.
  • the 3D object OB projected on the screen plane 1004 is enlarged or reduced as shown in FIG. 10B.
  • the CPU 34c detects a camera pose change instruction input by the user via the remote controller 23, and performs processing for displaying the 3D object in the [Measurement Image] box 611 in accordance with the change instruction.
  • step SA the CPU 34c activates the 3D measurement software. Specifically, based on an activation instruction input by the user via the remote controller 23, the CPU 34c reads 3D measurement software stored in the ROM 34b into the RAM 34a and starts an operation according to the 3D measurement software. In step SB, the CPU 34c performs a process for displaying the main window 600.
  • step SC the CPU 34c performs an initialization process.
  • the initialization process is a process of setting initial states of various GUIs in the main window 600 and setting initial values of various data recorded in the RAM 34a. Details of the initialization process will be described later.
  • step SD the CPU 34c performs a camera pose setting process.
  • the camera pose setting process is a process for roughly matching the subject in the measurement image in the [Measurement Image] box 611 with the 3D object based on an instruction to change the camera pose input by the user. Details of the camera pose setting process will be described later.
  • step SE the CPU 34c performs a reference point (measurement) designation process.
  • the reference point (measurement) designation process is a process for designating (setting) a reference point based on an instruction for designating a position on the subject in the measurement image in the [Measurement Image] box 611 input by the user. is there. Details of the reference point (measurement) designation process will be described later.
  • step SF the CPU 34c performs a reference point (3D) designation process.
  • the reference point (3D) designation process is a process for designating (setting) a reference point based on an instruction for designating a position on the 3D object in the [Measurement Image] box 611 input by the user. Details of the reference point (3D) designation process will be described later.
  • step SG the CPU 34c performs 3D matching processing.
  • the 3D matching process the measurement image displayed in the [Measurement Image] box 611 and the 3D object are matched based on two sets of reference points (reference point (measurement) / reference point (3D)) designated by the user. It is a process to make. Details of the 3D matching process will be described later.
  • step SH the CPU 34c performs a measurement process.
  • a measurement point is designated (set) based on an instruction for designating a position on a 3D object in the [Measurement Image] box 611 input by the user, and based on the designated measurement point, the object is measured. This is a process of calculating the size. Details of the measurement process will be described later.
  • step SI the CPU 34c confirms whether or not the [Finish] button 680 has been pressed by the user. If the user presses the [Finish] button 680, the process proceeds to step SJ. If the user does not press the [Finish] button 680, the process proceeds to step SD. In step SJ, the CPU 34c hides the main window 600 and ends the operation of the 3D measurement software.
  • step SC1 the CPU 34c reads a predetermined measurement image file and CAD data recorded on the memory card 50 into the RAM 34a.
  • step SC2 the CPU 34c calculates a camera pose (initial value) based on the read CAD data.
  • the CPU 34c calculates the barycentric positions of all the spatial coordinates in the CAD data, and sets the coordinates as initial values (viewpoint center 1301). This line-of-sight center position is a unique value for each CAD data, and this value will not change even if the camera pose is changed thereafter.
  • the upward vector as shown in FIG.
  • the CPU 34 c selects the unit vector having the largest Z direction component among the unit vectors orthogonal to the straight line connecting the viewpoint 1300 and the line-of-sight center 1301 as the initial value (upper Direction vector 1302).
  • the unit vector having the largest Z-direction component is used as the initial value of the upward vector, but it is not limited to the unit vector having the largest Z-direction component.
  • step SC3 the CPU 34c records the camera pose (initial value) calculated in step SC2 in the RAM 34a as the current camera pose.
  • the current camera pose is a currently set camera pose.
  • the 3D object is displayed based on the current camera pose.
  • step SC4 the CPU 34c displays a measurement image IMG in the [Measurement Image] box 611 as shown in FIG. 14, and further executes a process for superimposing and displaying the 3D object OB at a predetermined transmittance.
  • the 3D object OB is displayed as a plan view projected on the screen plane based on the calculated camera pose (initial value).
  • step SD1 the CPU 34c confirms whether or not the [camera pause] button 661a has already been pressed (the process in step SD3 has already been performed). If the [Camera Pause] button 661a is pressed, the process proceeds to step SD4. If the [Camera Pause] button 661a is not pressed, the process proceeds to Step SD2.
  • step SD2 the CPU 34c confirms whether or not the [Camera Pause] button 661a has been pressed by the user. If the [Camera Pause] button 661a is pressed, the process proceeds to step SD3. If the [Camera Pause] button 661a is not pressed, the camera pose setting process ends.
  • step SD3 the CPU 34c performs processing for highlighting the [Camera Pause] button 661a as shown in FIG. 16A.
  • the [Camera Pause] button 661a is highlighted in order to notify the user that the camera pose can be changed at present.
  • step SD4 as shown in FIG. 16B, the CPU 34c moves the cursor C up, down, left, and right while operating the remote controller 23 and clicking the cursor C in the [Measurement Image] box 611 (drag operation). ) And the camera pose is changed based on the result of detecting the operation of the cursor C.
  • the user changes the camera pose so that the subject DUT shown in the measurement image and the 3D object OB roughly match.
  • the camera pose can be changed in the aforementioned pan, tilt, roll, and zoom directions.
  • the CPU 34c detects an operation instruction of the cursor C input via the remote controller 23, and calculates the changed camera pose based on the operation instruction.
  • step SD5 the CPU 34c overwrites and records the changed camera pose as the current camera pose in the RAM 34a.
  • step SD6 the CPU 34c performs a process for redisplaying the 3D object based on the current camera pose.
  • the 3D object OB whose camera pose has been changed is displayed in the [Measurement Image] box 611 as shown in FIG. 16C.
  • step SE1 the CPU 34c checks whether or not the [reference point (measurement)] button 662a has already been pressed (the state in which the processing in steps SE3 and SE4 has already been performed). If the [reference point (measurement)] button 662a is pressed, the process proceeds to step SE5. If the [reference point (measurement)] button 662a is not pressed, the process proceeds to step SE2.
  • step SE2 the CPU 34c confirms whether or not the [reference point (measurement)] button 662a has been pressed by the user. If the [reference point (measurement)] button 662a is pressed, the process proceeds to step SE3. If the button is not pressed, the reference point (measurement) designation process ends.
  • step SE3 the CPU 34c performs processing for highlighting the [reference point (measurement)] button 662a as shown in FIG. 18A.
  • the reason why the [reference point (measurement)] button 662a is highlighted is to notify the user that a reference point can be designated for the measurement image.
  • step SE4 as shown in FIG. 18B, the CPU 34c changes the transmittance of the 3D object OB, and performs processing for redisplaying the 3D object OB with the changed transmittance.
  • the transmittance set here is a large value, and the 3D object OB is almost transparent, and the measurement image is easy to see.
  • the 3D object OB is temporarily hidden. This is also to make the measurement image easy to see.
  • step SE5 the CPU 34c operates the remote controller 23 and clicks with the cursor C in order to specify a reference point (measurement) for the subject DUT shown in the measurement image in the [Measurement Image] box 611.
  • the operation to be performed is detected, and the coordinates of the designated reference point are calculated based on the result of detecting the operation of the cursor C.
  • the coordinates of the reference point (measurement) calculated at this time are plane coordinates (pixel units) in the measurement image.
  • step SE6 the CPU 34c records the coordinates of the designated reference point (measurement) in the RAM 34a.
  • step SE7 the CPU 34c performs processing for displaying the designated reference point (measurement) in a superimposed manner on the measurement image.
  • the reference points (measurements) R1, R2, and R3 are superimposed and displayed on the measurement image.
  • step SF1 the CPU 34c confirms whether or not the [reference point (3D)] button 663a has already been pressed (steps SF3 and SF4 have already been performed). If the [reference point (3D)] button 663a is pressed, the process proceeds to step SF5. If the [reference point (3D)] button 663a is not pressed, the process proceeds to step SF2.
  • step SF2 the CPU 34c confirms whether or not the [reference point (3D)] button 663a is pressed by the user. If the [reference point (3D)] button 663a is pressed, the process proceeds to step SF3. If the [reference point (3D)] button 663a is not pressed, the reference point (3D) designation process ends.
  • step SF3 the CPU 34c performs processing for highlighting the [reference point (3D)] button 663a.
  • the reason why the [reference point (3D)] button 663a is highlighted is to notify the user that a reference point can be currently specified for the 3D object.
  • step SF4 the CPU 34c changes the transmittance of the 3D object OB, and performs processing for redisplaying the 3D object OB with the changed transmittance.
  • the transmittance set here is a small value, and the 3D object OB is easy to see.
  • the measurement image is temporarily hidden. This is also for making the 3D object OB easy to see.
  • step SF5 the CPU 34c operates the remote controller 23 and clicks with the cursor C in order to designate a reference point (3D) for the subject DUT shown in the measurement image in the [Measurement Image] box 611.
  • the operation to be performed is detected, and the coordinates of the designated reference point are calculated based on the result of detecting the operation of the cursor C.
  • the coordinates of the reference point (3D) calculated at this time are spatial coordinates (in mm units) on the surface of the 3D object.
  • the CPU 34c first calculates the plane coordinates (pixel units) of the designated reference point, and then calculates the space coordinates (mm units) from the calculated plane coordinates.
  • the reference point (3D) specified by the user must be associated with the reference point (measurement) already specified.
  • the CPU 34c associates the reference point (3D) with the reference point (measurement) based on the order in which the user designates the reference point (measurement) and the order in which the reference point (3D) is designated. More specifically, the CPU 34c associates the point designated first among the reference points (measurement) with the point designated first among the reference points (3D), and the second among the reference points (measurement).
  • the point designated in the reference point (3D) is associated with the second designated point,..., The nth designated point of the reference point (measurement) and the reference point (3D) The nth designated point is associated.
  • the above method is an example, and the present invention is not limited to this.
  • an upper left reference point (measurement) R1, an upper right reference point (measurement) R2, and a lower right reference point (measurement) R3 of the subject DUT are designated.
  • the user designates the reference point (measurement) for the reference point (3D) on the 3D object OB corresponding to the reference point (measurement) on the subject DUT.
  • reference points (measurements) R1 ', R2', R3 ' are designated at positions on the 3D object corresponding to the reference points (measurements) R1, R2, R3 on the subject DUT.
  • step SF6 the CPU 34c records the coordinates of the designated reference point (3D) in the RAM 34a.
  • step SF7 the CPU 34c performs processing for displaying the designated reference point (3D) in a superimposed manner on the 3D object.
  • the reference points (3D) R1 ′, R2 ′, R3 ′ are superimposed and displayed on the 3D object OB.
  • the CPU 34c may record the coordinates of the designated reference point (3D) in the CAD data, or may record it in another file associated with the CAD data.
  • the reference point (3D) is not necessarily designated in step SF, and may be recorded in the CAD data by the endoscope apparatus 3 or the PC 6 in advance, or may be another data associated with the CAD data. It may be recorded in a file.
  • step SG1 the CPU 34c checks whether or not the [3D matching] button 664 has been pressed by the user. If the [3D matching] button 664 is pressed, the process proceeds to step SG2. When the [3D matching] button 664 is not pressed, the 3D matching process ends.
  • step SG2 the CPU 34c confirms whether all reference points have already been specified. Specifically, the CPU 34c checks whether or not three reference points (measurement) and three reference points (3D) have already been specified. If all reference points have been specified, the process proceeds to step SG3. If the reference point has not been specified, the 3D matching process ends. In step SG3, the CPU 34c reads the coordinates of all reference points recorded in the RAM 34a.
  • step SG4 the CPU 34c performs matching processing in the pan / tilt direction based on the coordinates of the designated reference point. Details of the matching process in the pan / tilt direction will be described later.
  • step SG5 the CPU 34c performs a roll direction matching process based on the coordinates of the designated reference point. Details of the roll direction matching processing will be described later.
  • step SG6 the CPU 34c performs zoom direction matching processing based on the coordinates of the designated reference point. Details of the matching processing in the zoom direction will be described later.
  • step SG7 the CPU 34c performs a shift direction matching process based on the coordinates of the designated reference point. Details of the matching process in the shift direction will be described later.
  • step SG8 the CPU 34c performs processing for redisplaying the 3D object in the [Measurement Image] box 611.
  • the 3D object is displayed with its posture and position adjusted based on the camera pose and shift position finally calculated in steps SG4 to SG7.
  • FIG. 22 shows the subject and the 3D object shown in the measurement image after the matching process. As shown in FIG. 22, it can be seen that the subject shown in the measurement image and the 3D object substantially match, that is, the two match well.
  • the process of step SG8 ends, the 3D matching process ends.
  • step SH1 the CPU 34c confirms whether or not the [Measurement] button 664 has already been pressed (step SH3 has already been performed). If the [Measure] button 664 is pressed, the process proceeds to step SH4. If the [Measure] button 664 is not pressed, the process proceeds to step SH2.
  • step SH2 the CPU 34c confirms whether or not the [Measurement] button 664 has been pressed by the user. If the [Measure] button 664 is pressed, the process proceeds to step SH3. If the [Measure] button 664 is not pressed, the measurement process ends.
  • step SH3 the CPU 34c performs processing for highlighting the [Measurement] button 664 as shown in FIG. 24A.
  • the [Measurement] button 664 is highlighted in order to notify the user that a measurement point can be currently specified for the 3D object.
  • step SH4 the CPU 34c detects an operation in which the user operates the remote controller 23 and clicks with the cursor C in order to specify a measurement point for the 3D object in the [Measurement Image] box 611. Based on the result of detecting the operation, the coordinates of the designated measurement point are calculated. The CPU 34c records the calculated coordinates of the measurement point in the RAM 34a. The coordinates of the measurement points recorded at this time are spatial coordinates (in mm units) on the 3D object surface.
  • step SH5 the CPU 34c calculates a measurement result based on the coordinates of the designated measurement point, and records the calculated measurement result in the RAM 34a.
  • the spatial distance (distance between two points) between two measurement points is measured.
  • the measurement result calculated in step SH5 is a spatial distance between two measurement points that have already been specified. When the designated measurement point is only one point, the measurement result is not calculated, and the process proceeds to step SH6.
  • step SH6 the CPU 34c performs processing for superimposing and displaying the designated measurement point on the 3D object.
  • FIG. 24B shows the [Measurement Image] box 611 when the first measurement point P1 is designated
  • FIG. 24C shows the [Measurement Image] box 611 when the second measurement point P2 is designated.
  • the CPU 34c performs processing for displaying the calculated measurement result in the [Measurement Result] box 670.
  • the designated measurement point is only one point, the measurement result is not displayed, and the process of step SH6 ends.
  • step SH6 When the process of step SH6 is completed, the measurement process is completed.
  • the case of measuring the distance between two points is taken as an example, but the same applies to the case of measuring an area or the like where three or more measurement points are designated.
  • FIG. 26 shows the relationship between a part of the 3D object and the viewpoint E in the three-dimensional space.
  • 3D object is composed of a plurality of triangular spatial planes.
  • the direction from the viewpoint E toward the center of gravity G of the 3D object is defined as the line-of-sight direction.
  • a screen plane SC that intersects the line-of-sight direction perpendicularly is set between the viewpoint E and the 3D object.
  • the CPU 34c sets the measurement point S on the screen plane SC as shown in FIG. A spatial straight line passing through the measurement point S and the viewpoint E is defined as a straight line L. Then, the CPU 34c searches for all the triangles that intersect with the straight line L from among a plurality of triangles constituting the 3D object.
  • the Thomas Maller intersection determination method can be used as a method for determining whether or not a straight line and a space triangle intersect. In this example, as shown in FIG. 28, the triangles T1 and T2 are determined to be triangles that intersect the straight line L.
  • CPU34c calculates the intersection of the straight line L and the triangle T1, T2, and makes each calculated intersection the intersection F1, F2.
  • the CPU 34c selects one of the intersections F1, F2 that is closer to the viewpoint E.
  • the CPU 34c calculates the spatial coordinates of the intersection point F1 as the spatial coordinates on the 3D object surface.
  • only two triangles determined to intersect the straight line L are used. However, depending on the shape of the 3D object and the line-of-sight direction, it may be determined that more triangles intersect. Also in this case, the intersection of the straight line L and the triangle is obtained, and the intersection closest to the viewpoint E is selected from the obtained intersections.
  • the spatial coordinates of the measurement point can be calculated.
  • the spatial coordinates of the reference point (3D) in step SF5 can also be calculated in the same manner as described above.
  • the purpose of the matching process in the pan / tilt direction is that a triangle formed by reference points (measurements) and a triangle formed by projected points obtained by dropping the reference points (3D) on the screen plane are closest to each other. It means finding a camera pose.
  • the pan / tilt direction of the line of sight when the subject imaged in the measurement image is imaged and the pan / tilt direction of the line of sight observing the 3D object are substantially the same. It can be said.
  • the projection points Rp1 'to Rp3' obtained by dropping the reference points (3D) R1 'to R3' on the screen plane 3100 are referred to as projection points (3D).
  • a triangle 3102 constituted by reference points (measurements) R1 to R3 is referred to as a reference graphic (measurement)
  • projection points (3D) Rp1 ′ to Rp3 A triangle 3101 constituted by 'is described as a reference graphic (3D).
  • step SG401 the CPU 34c calculates a vertex angle (measurement) and records the calculated vertex angle (measurement) in the RAM 34a.
  • the vertex angles (measurements) are the angles A1 to A3 of the three vertices R1 to R3 of the reference graphic (measurement) 3200 as shown in FIG. 32A.
  • step SG402 the CPU 34c rotates the camera pose by ⁇ 31 degrees in the pan / tilt directions, respectively.
  • the process is repeated in steps SG403 to SG407, as shown in FIG. 32B, in order to sequentially calculate the vertex angle (3D) while rotating the camera pose in the pan / tilt direction.
  • the vertex angle (3D) is the angles A1 'to A3' of the three projection points (3D) Rp1 'to Rp3' of the reference graphic (3D) 3201, as shown in FIG. 32B.
  • the reference point (measurement) and the reference point (3D) are associated with each other according to the order in which the reference points are designated, and the angles A1 to A3 and the angles A1 ′ to A3 ′ also correspond with this order. It is attached.
  • the angle A1 and the angle A1 'are associated the angle A2 and the angle A2' are associated, and the angle A3 and the angle A3 'are associated.
  • step SG403 the CPU 34c rotates the camera pose by +1 deg in the pan direction.
  • steps SG403 to SG407 the CPU 34c repeats the process until the rotation angle in the pan direction of the camera pose reaches +30 deg.
  • the CPU 34c rotates the camera pose in the pan direction by +1 deg from -30 deg to +30 deg.
  • steps SG403 to SG407 are repeated 61 times.
  • step SG404 the CPU 34c rotates the camera pose by +1 deg in the tilt direction.
  • steps SG404 to SG407 the CPU 34c repeats the process until the rotation angle in the tilt direction of the camera pose reaches +30 deg.
  • the CPU 34c rotates the camera pose in the tilt direction by +1 deg from -30 deg to +30 deg.
  • steps SG404 to SG407 are repeated 61 times.
  • the camera pose is rotated from ⁇ 30 deg to +30 deg.
  • the range in which the camera pose is rotated is not necessarily within this range.
  • the camera pose setting process of step SD when the user changes the camera pose, the camera pose is set in the repetition process of steps SG403 to SG407 depending on the degree of matching between the subject shown in the measurement image and the 3D object.
  • the range required for rotation changes. When the range is wide, the user only needs to perform rough matching, but instead, the processing time of 3D matching becomes longer. If the range is narrow, the processing time for 3D matching may be short, but instead the user needs to perform matching in some detail.
  • step SG405 the CPU 34c records the current rotation angle in the pan / tilt direction in the RAM 34a.
  • 33A to 33C show the rotation angles recorded in the RAM 34a.
  • the CPU 34c does not record the rotation angle in the RAM 34a. Instead, every time the camera pose is rotated in the pan / tilt direction, the current pan is added to the data list prepared in the RAM 34a as shown in FIG. 33A. ⁇ Record the rotation angle in the tilt direction one line at a time. As will be described later, various data such as the vertex angle (3D) can be recorded in this data list in association with the rotation angle in the pan / tilt direction.
  • 3D vertex angle
  • step SG406 the CPU 34c calculates a projection point (3D) and records the calculated projection point (3D) in the RAM 34a.
  • step SG407 the CPU 34c calculates the vertex angle (3D) and records the calculated vertex angle (3D) in the RAM 34a.
  • the CPU 34c associates the vertex angle (3D) with the rotation angle in the pan / tilt direction and additionally records the data list line by line.
  • step SG408 The data list at this point is as shown in FIG. 33C and is composed of data of 61 ⁇ 61 rows.
  • the CPU 34c rotates the camera pose by ⁇ 30 degrees in the pan / tilt directions.
  • the rotation angle in the pan / tilt direction is +30 degrees, so here, the camera pose is returned to the original state by rotating by ⁇ 30 degrees.
  • (1) D2
  • (2) D3
  • step SG410 the CPU 34c calculates an average value of the differences D1 to D3. Furthermore, as shown in FIG. 34B, the CPU 34c additionally records the average value in the data list in association with the rotation angle in the pan / tilt direction.
  • step SG411 the CPU 34c searches the data list for the minimum average value.
  • FIG. 35 shows a state where 0.5 is searched as the minimum value in the data list.
  • step SG412 the CPU 34c reads the rotation angle in the pan / tilt direction when the average value is minimum from the data list. Specifically, as shown in FIG. 35, the CPU 34c reads the rotation angle in the pan / tilt direction associated with the minimum average value from the data list.
  • step SG413 the CPU 34c rotates the camera pose in the pan / tilt direction by the rotation angle read in step SG412.
  • the vertex angle (measurement) after rotation and the vertex angle (3D) are in good agreement, and the reference figure (measurement) and reference It can be seen that the figure (3D) is similar.
  • step SG414 the CPU 34c overwrites and records the camera pose at this time in the RAM 34a as the current camera pose.
  • the 3D object is not re-displayed based on the current camera pose.
  • the purpose of the matching process in the roll direction is to find a camera pose that most closely matches the angle in the rotation direction of the reference figure (measurement) and the reference figure (3D).
  • the angle of rotation of each reference figure is close, the rotation angle of the line of sight observing the subject in the measurement image and the rotation angle of the line of sight observing the 3D object are almost the same. It can be said that
  • step SG501 the CPU 34c calculates a relative angle (measurement), and records the calculated relative angle (measurement) in the RAM 34a.
  • the relative angles (measurements) are angles Ar1 to Ar3 between a straight line 3700 extending in the vertical direction in the measurement image and the three sides of the reference graphic (measurement).
  • the relative angle (measurement) at this time is an angle in the clockwise direction from the straight line 3700 to the side.
  • step SG502 the CPU 34c calculates a projection point (3D) and records the calculated projection point (3D) in the RAM 34a.
  • step SG503 the CPU 34c calculates a relative angle (3D) and records the calculated relative angle (3D) in the RAM 34a.
  • the relative angle (3D) is an angle Ar1 'to Ar3' between a straight line 3701 extending in the vertical direction on the screen plane and the three sides of the reference graphic (3D) as shown in FIG. 37B. Since the screen plane corresponds to the [Measurement Image] box 611 in which the measurement image is displayed, the directions of the straight line 3700 and the straight line 3701 coincide.
  • the relative angle (3D) at this time is an angle in the clockwise direction from the straight line 3701 to the side.
  • step SG505 the CPU 34c calculates an average value of the differences Dr1 to Dr3, and records the calculated average value in the RAM 34a.
  • step SG506 the CPU 34c rotates the camera pose in the roll direction by the average value calculated in step SG505.
  • the relative angle (measurement) after rotation and the relative angle (3D) are in good agreement, as shown in FIGS. 37C and 37D.
  • step SG507 the CPU 34c overwrites and records the camera pose at this time in the RAM 34a as the current camera pose.
  • the 3D object is not re-displayed based on the current camera pose.
  • the purpose of the matching process in the zoom direction is to find a camera pose that most closely matches the size of the reference graphic (measurement) and the reference graphic (3D).
  • the positions in the zoom direction of the line of sight observing the subject shown in the measurement image and the position in the zoom direction of the line of sight observing the 3D object are substantially the same. it can.
  • step SG601 the CPU 34c calculates a side length (measurement) and records the calculated side length (measurement) in the RAM 34a.
  • the side length (measurement) is the lengths L1 to L3 of three sides of a triangle formed by reference points (measurements) R1 to R3.
  • step SG602 the CPU 34c calculates a projection point (3D) and records the calculated projection point (3D) in the RAM 34a.
  • step SG603 the CPU 34c calculates the side length 1 (3D), and records the calculated side length 1 (3D) in the RAM 34a.
  • the side length 1 (3D) is the lengths L1 'to L3' of the three sides of the reference graphic (3D) as shown in FIG. 39B.
  • step SG604 the CPU 34c overwrites and records the camera pose at this time as the camera pose 1 in the RAM 34a.
  • step SG605 the CPU 34c moves the camera pose by a predetermined value in the zoom direction as shown in FIG. 39B.
  • step SG606 the CPU 34c calculates a projection point (3D) and records the calculated projection point (3D) in the RAM 34a.
  • step SG607 the CPU 34c calculates the side length 2 (3D) and records the calculated side length 2 (3D) in the RAM 34a.
  • the side length 2 (3D) is the lengths Lz1 ′ to Lz3 ′ of the three sides of the reference graphic (3D) after the camera pose is moved by a predetermined value in the zoom direction, as shown in FIG. 39B. .
  • step SG608 the CPU 34c overwrites and records the camera pose at this time as the camera pose 2 in the RAM 34a.
  • step SG609 the CPU 34c calculates the zoom amount, and records the calculated zoom amount in the RAM 34a.
  • the zoom amount is the amount of movement in the zoom direction of the camera pose such that the side length (3D) and the side length (measurement) match.
  • FIG. 40 shows the relationship between the side length (3D) and the zoom direction position of the camera pose. As shown by a graph 4000 in FIG. 40, both are in a linear proportional relationship. By using the graph 4000, it is possible to calculate the movement amount when moving the camera pose in the zoom direction when the side length (3D) and the side length (measurement) are matched.
  • step SG610 the CPU 34c calculates an average value of the three zoom amounts, and records the calculated average value in the RAM 34a.
  • step SG611 the CPU 34c moves the camera pose in the zoom direction by the average value calculated in step SG611.
  • FIGS. 39C and 39D it can be seen that the side length (measurement) after movement and the side length (3D) are in good agreement.
  • step SG612 the CPU 34c overwrites and records the camera pose at this time in the RAM 34a as the current camera pose.
  • the 3D object is not re-displayed based on the current camera pose.
  • the purpose of the matching process in the shift direction is to move the 3D object in the shift direction so that the subject in the measurement image matches the 3D object in the [Measurement Image] box 611. Since this process determines the shift position of the 3D object, the camera pose is not calculated.
  • step SG701 the CPU 34c calculates a centroid point (measurement) and records the calculated centroid point (measurement) in the RAM 34a.
  • the center-of-gravity point (measurement) is a triangular center-of-gravity point G composed of reference points (measurements) R1 to R3, as shown in FIG. 42A.
  • step SG702 the CPU 34c calculates a projection point (3D) and records the calculated projection point (3D) in the RAM 34a.
  • step SG703 the CPU 34c calculates a centroid point (3D) and records the calculated centroid point (3D) in the RAM 34a.
  • the center-of-gravity point (3D) is a triangular center-of-gravity point G 'constituted by projection points (3D) Rp1' to Rp3 ', as shown in FIG. 42A.
  • step SG704 the CPU 34c calculates the shift amount, and records the calculated shift amount in the RAM 34a.
  • the shift amount is a relative position of the barycentric point (measurement) to the barycentric point (3D) (plane coordinate system, pixel unit).
  • step SG705 the CPU 34c moves the 3D object in the shift direction by the shift amount calculated in step SG704.
  • the center of gravity (measurement) and the center of gravity (3D) are in good agreement, as shown in FIG. 42B.
  • matching processing is performed based on image data of a projection image (2D model) of a two-dimensional image and a 3D object. Therefore, it is often used for redisplay of a 3D object and statistical calculation of image data having a huge amount of data. It took a long time to process.
  • 3D matching process when executing the 3D matching process, it is only necessary to execute a simple geometric calculation based on a simple reference graphic specified by the user, and the processing time can be greatly reduced.
  • the 3D object may be redisplayed only once after the 3D matching process is completed.
  • the CPU 34c executes the 3D matching process based on the three reference points. However, in the present modification, the CPU 34c executes the 3D matching process based on the four reference points. .
  • the CPU 34c calculates the rotation angle in the pan / tilt direction of the camera pose in which the reference figure (measurement) and the reference figure (3D) are closest to each other. Even if the rotation angle at which only the reference figure (triangle) is similar is calculated, the matching accuracy is not necessarily high, and an apparently incorrect rotation angle may be calculated.
  • an erroneous rotation angle / movement amount may be calculated in the same manner.
  • an object of the present modification is to improve the matching accuracy of the 3D matching process.
  • the user designates four reference points (measurements) R1 to R4 as shown in FIG. 43A.
  • the reference point (3D) designation process in step SF as shown in FIG. 43B, the user designates four reference points (3D) R1 'to R4'.
  • the CPU 34c calculates a reference graphic based on the four reference points.
  • FIG. 44 shows the reference figure (measurement) calculated in step SG.
  • Four triangles 4400, 4401, 4402, and 4403 constituted by three of the four reference points (measurements) R1 to R4 are reference figures (measurements).
  • FIG. 45 shows the reference graphic (3D) calculated in step SG.
  • Four triangles 4500, 4501, 4502, and 4503 constituted by three of the four reference points (3D) Rp1 'to Rp4' are reference figures (3D).
  • the CPU 34c executes the 3D matching process based on these four triangles.
  • the CPU 34c calculates the rotation angle of the camera pose in the pan / tilt direction.
  • the average rotation angle calculated based on each of the four triangles is calculated.
  • the value is used as the final rotation angle.
  • the CPU 34c uses the average value of the rotation angle / movement amount calculated based on each of the four triangles as the final rotation angle / movement amount.
  • the CPU 34c when the user designates four reference points, the CPU 34c performs 3D matching processing based on the four reference figures configured by the reference points. Therefore, the CPU 34c can use many parameters when executing the 3D matching process, and as a result, the matching accuracy can be improved.
  • measurement is performed by the CPU 34c performing the above-described processing in accordance with 3D measurement software that is software (program) that defines a procedure and content of a series of processing related to measurement.
  • FIG. 46 shows a functional configuration necessary for the CPU 34c. In FIG. 46, only the functional configuration related to the measurement of the present embodiment is shown, and other functional configurations are omitted.
  • the functional configuration of the CPU 34c includes an imaging control unit 340, a designation unit 341, a matching processing unit 342, a display control unit 343, and a measurement unit 344.
  • the imaging control unit 340 controls the light source 32 and the bending control unit 33 and the imaging element 30b.
  • the designation unit 341 based on an instruction input by the user via the remote controller 23, the reference point (measurement), the reference point (3D), the measurement corresponding to the designated position on the measurement image or the image of the 3D object. Specify (set) a point.
  • the matching processing unit 342 calculates a reference graphic (measurement) and a reference graphic (3D) based on the reference point (measurement) and the reference point (3D) specified by the specifying unit 341, and refers to the reference graphic (measurement) and the reference graphic (measurement).
  • the amount of camera pose change necessary for matching is calculated by geometric calculation with the figure (3D).
  • the display control unit 343 controls the content and display state of the image displayed on the monitor 22.
  • the display control unit 343 displays the measurement image and the 3D object in a matched state by adjusting the posture and position of the 3D object based on the change amount of the camera pose calculated by the matching processing unit 342. .
  • the posture and position of only the 3D object are adjusted.
  • the present invention is not limited to this, and the posture and position of only the measurement image are adjusted, or the posture and position of the measurement image and 3D object are adjusted. Also good.
  • the measurement unit 344 performs measurement processing based on the measurement points designated by the designation unit 341. It is also possible to replace part or all of the functional configuration shown in FIG. 46 with specific hardware configured by arranging analog circuits and digital circuits for realizing functions necessary for measurement.
  • geometric calculation of the reference graphic (measurement) and the reference graphic (3D) is performed, and at least one of the measurement image and the 3D object is performed based on the result of the geometric calculation.
  • the two can be associated with each other in a simple manner. And the processing time required for matching can be reduced.
  • the transparency of the 3D object is set to be large, so that the user can easily see the measurement image, and the user designates the reference point (measurement). It can be made easier.
  • the 3D object having a high processing load is not redisplayed, and the 3D object is redisplayed at the end of the 3D matching process, so that the processing time required for the matching can be reduced.
  • the geometric calculation of the first graphic and the second graphic is performed, and based on the result of the geometric calculation, the image of the measurement object and the image of the object
  • the processing time can be reduced by adjusting at least one posture or position.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • Geometry (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Architecture (AREA)
  • Length Measuring Devices By Optical Means (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)

Abstract

 モニタ(22)は、計測対象物の画像と、計測対象物に対応する物体であって予め算出された3次元形状を有する物体の画像とを表示する。CPU(34c)は、リモコン(23)を介して入力される指示に基づいて、計測対象物の画像上の第1の点と物体の画像上の第2の点とを指定する。CPU(34c)は、第1の点を基準とする第1の図形と、第2の点を基準とする第2の図形との幾何学計算を行い、幾何学計算の結果に基づいて、計測対象物の画像と物体の画像との少なくとも一方の姿勢または位置を調整する。CPU(34c)は、姿勢または位置が調整された後、リモコン(23)を介して入力される指示に基づいて指定された計測位置に対応する物体上の空間座標を算出し、算出した空間座標に基づいて、物体のサイズを算出する。

Description

画像処理装置、画像処理方法、およびプログラム
 本発明は、計測対象物の画像を処理して計測対象物のサイズを計測する画像処理装置、画像処理方法、およびプログラムに関する。
 本願は、2011年6月16日に、日本に出願された特願2011-134341号に基づき優先権を主張し、その内容をここに援用する。
 従来、内視鏡等の観察用治具を使用して、ジェットエンジン内のブレード等の計測が行われている。特許文献1には、ブレード等の計測に適した技術が記載されている。この特許文献1に記載された技術では、被写体を撮像した被写体画像と、コンピュータグラフィックス(CG)により生成したCG画像とをモニタに表示する。そして、CG画像における物体の状態と被写体画像における被写体の状態とが一致するように、ユーザの指示に基づいてCG画像を変更する。これにより、特許文献1に記載された技術では、計測を行いたい部分に対してCG画像上で計測を行うことが可能となる。
 しかし、特許文献1に記載された技術では、被写体の見え方が異なる複数の被写体画像を切り替えながら各被写体画像に対して計測を行う場合、被写体画像を切り替えるたびに、CG画像における物体の状態を被写体画像における被写体の状態に一致させる操作が必要となる。このため、ジェットエンジン内に周期的に配置された複数のブレードの計測を行う場合、上記の操作が頻繁に発生し、手間がかかる。
 これに対して、特許文献2には、被写体を撮像して得られた2次元画像と、CAD(Computer Aided Design)を利用して得られたデータに基づく3Dオブジェクトとを自動的にマッチング(パターンマッチング)させる技術が記載されている。特許文献2に記載された技術では、まず、3Dオブジェクトを仮想的な複数の視点から観察した場合に、それぞれの視点において観察される3Dオブジェクトの投影図を生成する。投影図を生成したら、複数の投影図をまとめて2Dモデルとして保存しておく。そして、2次元画像と、生成した2Dモデルとの間でマッチングを行う。そして、2Dモデルとの類似度が 最も高い投影図を検索し、その投影図が生成されたときの視点の位置をもとに、2次元画像に写っている被写体と、2次元画像を撮像したカメラとの相対位置を算出する。
特開平3-102202号公報 米国特許出願公開第2009/0096790号明細書
 特許文献2に記載された技術では、2次元画像と3Dオブジェクトの投影図(2Dモデル)とを用いて、画像から検出されるエッジをベースとした画像処理によるマッチングを行うことで、類似度を算出する。この方法によると、エッジをベースとした画像処理を行うため、マッチングに必要な処理時間が長い。また、大量の投影図のそれぞれに対して画像処理を行うことになるので、マッチングに必要な処理時間が膨大となる。
 本発明は、上述した課題に鑑みてなされたものであって、処理時間を低減することができる画像処理装置、画像処理方法、およびプログラムを提供することを目的とする。
 本発明の第1の態様によれば、画像処理装置は、計測対象物の画像と、前記計測対象物に対応する物体であって予め算出された3次元形状を有する前記物体の画像とを表示する表示部と、入力装置を介して入力される指示に基づいて、前記計測対象物の画像上の第1の点と前記物体の画像上の第2の点とを指定する指定部と、前記第1の点を基準とする第1の図形と、前記第2の点を基準とする第2の図形との幾何学計算を行う計算部と、前記幾何学計算の結果に基づいて、前記計測対象物の画像と前記物体の画像との少なくとも一方の姿勢または位置を調整する調整部と、前記姿勢または前記位置が調整された後、入力装置を介して入力される指示に基づいて指定された計測位置に対応する前記物体上の空間座標を算出し、算出した空間座標に基づいて、前記物体のサイズを算出する計測部と、を備える。
 本発明の第2の態様によれば、画像処理装置は、計測対象物の画像と、前記計測対象物に対応する物体であって予め算出された3次元形状を有する前記物体の画像とを表示する表示部と、入力装置を介して入力される指示に基づいて、前記計測対象物の画像上の第1の点を指定する指定部と、前記第1の点を基準とする第1の図形と、前記物体の画像と関連付けて記録されている第2の点を基準とする第2の図形との幾何学計算を行う計算部と、前記幾何学計算の結果に基づいて、前記計測対象物の画像と前記物体の画像との少なくとも一方の姿勢または位置を調整する調整部と、前記姿勢または前記位置が調整された後、入力装置を介して入力される指示に基づいて指定された計測位置に対応する前記物体上の空間座標を算出し、算出した空間座標に基づいて、前記物体のサイズを算出する計測部と、を備える。
 好ましくは、前記第1の点および前記第2の点は、入力装置を介して入力される指示に基づいて指定された3点以上の点を含む。
 好ましくは、前記計算部は、前記第1の点の指定された順番と、前記第2の点の指定された順番とに基づいて、前記第1の点と前記第2の点とを対応付けて前記幾何学計算を行う。
 好ましくは、前記計算部は、前記第1の点を基準とする平面上の第1の図形と、前記第2の点に対応する前記物体の空間上の点を基準とする空間上の第2の図形との幾何学計算を行う。
 好ましくは、前記計算部は、前記平面上の第1の図形と、前記空間上の第2の図形を前記平面に投影した第3の図形との幾何学計算を行う。
 好ましくは、前記指定部はさらに、前記第1の点を指定する場合に、前記物体の画像の透過率を、前記第2の点を指定する場合の前記物体の画像の透過率よりも大きな透過率に設定する。
 好ましくは、前記表示部は、前記計測対象物の画像と前記物体の画像とを表示した後、前記幾何学計算が終了するまで、前記計測対象物の画像と前記物体の画像の姿勢および位置を維持する。そして、前記表示部は、前記幾何学計算が終了した後、前記姿勢または前記位置が調整された前記計測対象物の画像と前記物体の画像を再表示する。
 本発明の第3の態様によれば、画像処理方法は、計測対象物の画像と、前記計測対象物に対応する物体であって予め算出された3次元形状を有する前記物体の画像とを表示部が表示するステップと、入力装置を介して入力される指示に基づいて、指定部が前記計測対象物の画像上の第1の点と前記物体の画像上の第2の点とを指定するステップと、前記第1の点を基準とする第1の図形と、前記第2の点を基準とする第2の図形との幾何学計算を計算部が行うステップと、前記幾何学計算の結果に基づいて、調整部が前記計測対象物の画像と前記物体の画像との少なくとも一方の姿勢または位置を調整するステップと、前記姿勢または前記位置が調整された後、計測部が、入力装置を介して入力される指示に基づいて指定された計測位置に対応する前記物体上の空間座標を算出し、算出した空間座標に基づいて、前記物体のサイズを算出するステップと、を備える。
 好ましくは、前記第1の点および前記第2の点は、入力装置を介して入力される指示に基づいて指定された3点以上の点を含み、前記計算部は、前記第1の点の指定された順番と、前記第2の点の指定された順番とに基づいて、前記第1の点と前記第2の点とを対応付けて前記幾何学計算を行う。
 本発明の第4の態様によれば、プログラムは、計測対象物の画像と、前記計測対象物に対応する物体であって予め算出された3次元形状を有する前記物体の画像とを表示する表示部と、入力装置を介して入力される指示に基づいて、前記計測対象物の画像上の第1の点と前記物体の画像上の第2の点とを指定する指定部と、前記第1の点を基準とする第1の図形と、前記第2の点を基準とする第2の図形との幾何学計算を行う計算部と、前記幾何学計算の結果に基づいて、前記計測対象物の画像と前記物体の画像との少なくとも一方の姿勢または位置を調整する調整部と、前記姿勢または前記位置が調整された後、入力装置を介して入力される指示に基づいて指定された計測位置に対応する前記物体上の空間座標を算出し、算出した空間座標に基づいて、前記物体のサイズを算出する計測部と、としてコンピュータを機能させる。
 上記した画像処理装置、画像処理方法及びプログラムによれば、第1の図形と第2の図形との幾何学計算を行い、幾何学計算の結果に基づいて、計測対象物の画像と物体の画像との少なくとも一方の姿勢または位置を調整することによって、処理時間を低減することができる。
本発明の一実施形態によるブレード検査システムの構成を示すブロック図である。 本発明の一実施形態によるブレード検査システムが備える内視鏡装置の構成を示すブロック図である。 本発明の一実施形態によるブレード検査システム(変形例)の構成を示すブロック図である。 本発明の一実施形態によるブレード検査システム(変形例)の構成を示すブロック図である。 本発明の一実施形態によるブレード検査システム(変形例)が備えるPCの構成を示すブロック図である。 本発明の一実施形態における3D計測ソフトの画面を示す参考図である。 本発明の一実施形態における3Dオブジェクトとカメラポーズの関係を示す参考図である。 本発明の一実施形態における3Dオブジェクトとカメラポーズの関係を示す参考図である。 本発明の一実施形態における3Dオブジェクトとカメラポーズの関係を示す参考図である。 本発明の一実施形態における3Dオブジェクトとカメラポーズの関係を示す参考図である。 本発明の一実施形態における3Dオブジェクトとカメラポーズの関係を示す参考図である。 本発明の一実施形態における3Dオブジェクトとカメラポーズの関係を示す参考図である。 本発明の一実施形態における3Dオブジェクトとカメラポーズの関係を示す参考図である。 本発明の一実施形態における3D計測ソフトによる動作の手順を示すフローチャートである。 本発明の一実施形態における3D計測ソフトによる動作の手順を示すフローチャートである。 本発明の一実施形態におけるカメラポーズの初期値を説明するための参考図である。 本発明の一実施形態におけるカメラポーズの初期値を説明するための参考図である。 本発明の一実施形態における3D計測ソフトによる動作の手順を示すフローチャートである。 本発明の一実施形態におけるカメラポーズ設定処理の内容を説明するための参考図である。 本発明の一実施形態におけるカメラポーズ設定処理の内容を説明するための参考図である。 本発明の一実施形態におけるカメラポーズ設定処理の内容を説明するための参考図である。 本発明の一実施形態における3D計測ソフトによる動作の手順を示すフローチャートである。 本発明の一実施形態における参照点(計測)指定処理の内容を説明するための参考図である。 本発明の一実施形態における参照点(計測)指定処理の内容を説明するための参考図である。 本発明の一実施形態における参照点(計測)指定処理の内容を説明するための参考図である。 本発明の一実施形態における3D計測ソフトによる動作の手順を示すフローチャートである。 本発明の一実施形態における参照点(3D)指定処理の内容を説明するための参考図である。 本発明の一実施形態における参照点(3D)指定処理の内容を説明するための参考図である。 本発明の一実施形態における参照点(3D)指定処理の内容を説明するための参考図である。 本発明の一実施形態における3D計測ソフトによる動作の手順を示すフローチャートである。 本発明の一実施形態におけるマッチング処理の内容を説明するための参考図である。 本発明の一実施形態における3D計測ソフトによる動作の手順を示すフローチャートである。 本発明の一実施形態における計測処理の内容を説明するための参考図である。 本発明の一実施形態における計測処理の内容を説明するための参考図である。 本発明の一実施形態における計測処理の内容を説明するための参考図である。 本発明の一実施形態における計測処理の内容を説明するための参考図である。 本発明の一実施形態における空間座標の算出方法を説明するための参考図である。 本発明の一実施形態における空間座標の算出方法を説明するための参考図である。 本発明の一実施形態における空間座標の算出方法を説明するための参考図である。 本発明の一実施形態における空間座標の算出方法を説明するための参考図である。 本発明の一実施形態における3D計測ソフトによる動作の手順を示すフローチャートである。 本発明の一実施形態における参照点と参照図形を示す参考図である。 本発明の一実施形態における参照点と参照図形を示す参考図である。 本発明の一実施形態におけるパン・チルト方向のマッチング処理の内容を説明するための参考図である。 本発明の一実施形態におけるパン・チルト方向のマッチング処理の内容を説明するための参考図である。 本発明の一実施形態におけるパン・チルト方向のマッチング処理の内容を説明するための参考図である。 本発明の一実施形態におけるパン・チルト方向のマッチング処理の内容を説明するための参考図である。 本発明の一実施形態におけるデータリストを示す参考図である。 本発明の一実施形態におけるデータリストを示す参考図である。 本発明の一実施形態におけるデータリストを示す参考図である。 本発明の一実施形態におけるデータリストを示す参考図である。 本発明の一実施形態におけるデータリストを示す参考図である。 本発明の一実施形態におけるデータリストを示す参考図である。 本発明の一実施形態における3D計測ソフトによる動作の手順を示すフローチャートである。 本発明の一実施形態におけるロール方向のマッチング処理の内容を説明するための参考図である。 本発明の一実施形態におけるロール方向のマッチング処理の内容を説明するための参考図である。 本発明の一実施形態におけるロール方向のマッチング処理の内容を説明するための参考図である。 本発明の一実施形態におけるロール方向のマッチング処理の内容を説明するための参考図である。 本発明の一実施形態における3D計測ソフトによる動作の手順を示すフローチャートである。 本発明の一実施形態におけるズーム方向のマッチング処理の内容を説明するための参考図である。 本発明の一実施形態におけるズーム方向のマッチング処理の内容を説明するための参考図である。 本発明の一実施形態におけるズーム方向のマッチング処理の内容を説明するための参考図である。 本発明の一実施形態におけるズーム方向のマッチング処理の内容を説明するための参考図である。 本発明の一実施形態における辺長(3D)とカメラポーズのズーム方向位置との関係を示すグラフである。 本発明の一実施形態における3D計測ソフトによる動作の手順を示すフローチャートである。 本発明の一実施形態におけるシフト方向のマッチング処理の内容を説明するための参考図である。 本発明の一実施形態におけるシフト方向のマッチング処理の内容を説明するための参考図である。 本発明の一実施形態の変形例を説明するための参考図である。 本発明の一実施形態の変形例を説明するための参考図である。 本発明の一実施形態の変形例を説明するための参考図である。 本発明の一実施形態の変形例を説明するための参考図である。 本発明の一実施形態によるブレード検査システムが備える制御用コンピュータのCPUの機能構成を示すブロック図である。
 以下、図面を参照し、本発明の実施形態を説明する。図1は、本実施形態によるブレード検査システムの構成を示している。ジェットエンジン1内には、検査対象物である複数のタービンブレード10(もしくはコンプレッサーブレード)が所定の間隔で周期的に配置されている。また、ジェットエンジン1には、タービンブレード10を回転方向Aに所定の速度で回転させるターニングツール2が接続されている。本実施形態では、タービンブレード10の画像を取り込んでいる間は常にタービンブレード10を回転させた状態にしている。
 本実施形態では、タービンブレード10の画像を取得するため、内視鏡装置3(画像処理装置)が用いられる。ジェットエンジン1の内部には、内視鏡装置3の内視鏡挿入部20が挿入されている。この内視鏡挿入部20により、回転しているタービンブレード10の映像が取り込まれる。内視鏡装置3には、タービンブレード10の3次元計測を行うための3D計測ソフトが記憶されている。
 図2は内視鏡装置3の構成を示している。内視鏡装置3は、内視鏡挿入部20、内視鏡装置本体21、モニタ22、およびリモコン(リモートコントローラ)23から構成されている。内視鏡挿入部20の先端には、撮像光学系30aおよび撮像素子30bが内蔵されている。また、内視鏡装置本体21には、画像信号処理装置(CCU)31、光源32、湾曲制御ユニット33、および制御用コンピュータ34が内蔵されている。
 内視鏡挿入部20において、撮像光学系30aは被写体(被検体)からの光を集光し、撮像素子30bの撮像面上に被写体像を結像する。撮像素子30bは、被写体像を光電変換して撮像信号を生成する。撮像素子30bから出力された撮像信号は画像信号処理装置31に入力される。
 内視鏡装置本体21において、画像信号処理装置31は、撮像素子30bからの撮像信号をNTSC信号等の映像信号に変換して制御用コンピュータ34に供給し、さらに必要に応じてアナログビデオ出力として、外部に出力する。
 光源32は、光ファイバ等を通じて内視鏡挿入部20の先端に接続されており、光を外部に照射することができる。湾曲制御ユニット33は内視鏡挿入部20の先端と接続されており、先端を上下左右に湾曲させることができる。光源32および湾曲制御ユニット33の制御は、制御用コンピュータ34によって行われる。
 制御用コンピュータ34は、RAM34a、ROM34b、CPU34c、外部インターフェースとしてネットワークI/F34d、RS232C I/F34e、カードI/F34fから構成されている。RAM34aは、ソフトウェア動作に必要な画像情報等のデータを一時記憶するために使用される。ROM34bには、内視鏡装置3を制御するための一連のソフトウェア(プログラム)が記憶されている。後述する3D計測ソフトもROM34b内に記憶される。CPU34cは、ROM34bに記憶されているソフトウェアの命令コードに従って、RAM34aに記憶されたデータを用いて各種制御のための演算等を実行する。
 ネットワークI/F34dは、外部PCとLANケーブルによって接続するためのインターフェースである。ネットワークI/F34dは、外部PCに対して、画像信号処理装置31から出力された映像情報を展開することができる。RS232C I/F34eは、リモコン23と接続するためのインターフェースである。このリモコン23をユーザが操作することによって、内視鏡装置3の各種動作を制御することができる。カードI/F34fは、記録媒体である各種メモリカード50を自由に着脱できるように構成されている。メモリカード50を装着することにより、CPU34cの制御によって、メモリカード50に記憶されている画像情報等のデータを取り込み、あるいは画像情報等のデータをメモリカード50に記録することができる。
 本実施形態によるブレード検査システムの構成の変形例として、図3に示す構成を用いてもよい。本変形例では、内視鏡装置3にビデオ端子ケーブル4およびビデオキャプチャカード5が接続されている。この構成によって、内視鏡装置3が取り込んだ映像をPC6(画像処理装置)にも取り込ませることが可能となっている。PC6は、図3ではノート型PCとして描かれているが、デスクトップ型のPC等でもよい。PC6には、タービンブレード10の3次元計測を行うための3D計測ソフトが記憶されている。
 さらに、図3では、PC6への映像の取り込みにビデオ端子ケーブル4およびビデオキャプチャカード5を用いているが、図4に示すようにLANケーブル7を用いてもよい。
 内視鏡装置3は、取り込まれた映像をLANネットワーク上に展開することのできるネットワークI/F34dを備えている。そして、LANケーブル7を通じて、PC6に映像を取りませることができる。
 図5はPC6の構成を示している。PC6はPC本体24およびモニタ25から構成されている。PC本体24には、制御用コンピュータ35が内蔵されている。制御用コンピュータ35は、RAM35a、HDD(ハードディスクドライブ)35b、CPU35c、外部インターフェースとして、ネットワークI/F35d、USB I/F35eから構成されている。制御用コンピュータ35はモニタ25に接続されており、映像情報およびソフトウェアの画面等がモニタ25に表示される。
 RAM35aは、ソフトウェア動作に必要な画像情報等のデータを一時記憶するために使用される。HDD35bには、内視鏡装置を制御するために一連のソフトウェアが記憶されており、3D計測ソフトもHDD35b内に記憶される。また、本実施形態では、タービンブレード10の画像を保存する保存用フォルダはHDD35b内に設定される。CPU35cは、HDD35bに記憶されているソフトウェアの命令コードに従って、RAM35aに記憶されたデータを用いて各種制御のための演算等を実行する。
 ネットワークI/F35dは、内視鏡装置3とPC6をLANケーブル7によって接続するためのインターフェースである。ネットワークI/F35dにより、内視鏡装置3からLAN出力された映像情報をPC6に入力することができる。USB I/F35eは、内視鏡装置3とPC6をビデオキャプチャカード5によって接続するためのインターフェースである。USB I/F35eにより、内視鏡装置3からアナログビデオ出力された映像情報をPC6に入力することができる。
 図3および図4に示すブレード検査システムでは、図1に示すブレード検査システムと同様の効果を得ることができる。特に、内視鏡装置の性能がPCよりも低く、内視鏡装置の動作速度等が十分でない場合等に、図3および図4に示すブレード検査システムは有効である。
 次に、3D計測ソフトの画面を説明する。図6は、3D計測ソフトのメインウィンドウを示している。図6に示すメインウィンドウ600は、ユーザが3D計測ソフトを起動した際にモニタ22に表示される。CPU34cは、3D計測ソフトに従って、メインウィンドウ600内の各種GUIの操作に基づく処理を行う。
 メインウィンドウ600の表示は、CPU34cによる制御に従って行われる。CPU34cは、メインウィンドウ600を表示するためのグラフィック画像信号(表示信号)を生成し、モニタ22へ出力する。また、内視鏡装置3に取り込まれた映像(以下、計測画像と記載)をメインウィンドウ600上に重畳表示する場合には、CPU34cは、画像信号処理装置31から取り込んだ画像データをグラフィック画像信号に重畳する処理を行い、処理後の信号(表示信号)をモニタ22へ出力する。
 また、メインウィンドウ600上のGUIの表示状態を更新する場合、CPU34cは、更新後のメインウィンドウ600に対応したグラフィック画像信号を生成し、上記と同様の処理を行う。メインウィンドウ600以外のウィンドウの表示に係る処理も上記と同様である。以下、メインウィンドウ600等を表示(更新も含む)するためにCPU34cがグラフィック画像信号を生成する処理のことを、メインウィンドウ600等を表示するための処理と記載する。
 ユーザは、GUI(グラフィカルユーザインタフェース)機能を利用して、リモコン23を介してメインウィンドウ600を操作し、メインウィンドウ600に重畳表示されるカーソルCを移動させ、クリック等の指示を入力することにより、メインウィンドウ600の各種GUIの操作を行うことができる。以下、各種GUIの機能を説明する。
 メインウィンドウ600の右上部には、[ファイル選択]ボックス610が配置されている。また、メインウィンドウ600の左上部には[計測画像]ボックス611が配置されている。[ファイル選択]ボックス610は、[計測画像]ボックス611に表示される計測画像の選択、および[計測画像]ボックス611に表示される3Dオブジェクトに対応したCADデータの選択を行うためのボックスである。
 CADデータは、CADを利用して予め算出されたタービンブレード10の3次元形状を表すデータである。CADデータの形式には、STL(Standard Triangulated Language)形式等を用いる。3Dオブジェクトは、CADデータの内容をもとに構築されたCG物体である。[ファイル選択]ボックス610内のGUIおよび操作の詳細については、説明を省略する。
 [計測画像]ボックス611は、計測対象物であるタービンブレード10を撮像して得られた計測画像IMGを表示し、計測画像IMG上に3DオブジェクトOBを重畳表示するためのボックスである。後述するように、ユーザは[計測画像]ボックス611の操作を行うことにより、カメラポーズの変更、参照点の指定、計測点の指定等を行う。
 メインウィンドウ600の左下部には、[表示設定]ボックス620が配置されている。
 [表示設定]ボックス620内には、[計測画像]ボックス611に表示された3DオブジェクトOBの表示設定に関するGUIが配置されている。[表示設定]ボックス620内の各GUIの機能は以下の通りである。
 [透過率]バー621は、3Dオブジェクトの表示透過率を設定するためのバーである。
 [透過率]バー621は水平方向(横方向)に移動(スライド)可能になっている。ユーザが[透過率]バー621を移動させることで、3Dオブジェクトの表示透過率が変化する。
 例えば、透過率が大きく設定された場合、3DオブジェクトOBは透明に近い透過率で表示される。透過率が小さく設定された場合、3DオブジェクトOBは透過されずに表示される。後述するように、[計測画像]ボックス611において、ユーザが計測画像IMGに参照点を指定する際には、3DオブジェクトOBの透過率を大きく設定することで、計測画像IMGを見やすくすると良い。また、ユーザが3DオブジェクトOBに参照点を指定する際には、3DオブジェクトOBの透過率を小さく設定することで、3DオブジェクトOBを見やすくすると良い。
 [表示方法]ラジオボタン622は、3DオブジェクトOBの表示方法を設定するためのラジオボタンである。[表示方法]ラジオボタン622には、「シェーディング」と「ワイヤーフレーム」の2つの設定項目がある。「シェーディング」が選択された場合、3DオブジェクトOBは、ワイヤーフレームおよび表面が塗りつぶされた状態で表示される。「ワイヤーフレーム」が選択された場合、図6に示すように、3DオブジェクトOBはワイヤーフレームのみの状態で表示される。
 [表示方法]ラジオボタン623は、3DオブジェクトOBの表示色を設定するためのラジオボタンである。[表示方法]ラジオボタン623には、「水色」と「黄色」の2つの設定項目がある。[表示方法]ラジオボタン623の設定によって、3DオブジェクトOBの表示色を切り替えることができる。
 [移動方向]ラジオボタン624は、カメラポーズの移動方向を設定するためのラジオボタンである。カメラポーズは、3DオブジェクトOBの姿勢(ポーズ)、すなわち3DオブジェクトOBをどの方向、どの位置から見ているかを示すパラメータである。[移動方向]ラジオボタン624には、「パン/チルト」と「ロール/ズーム」の2つの設定項目がある。「パン/チルト」が選択された場合、[計測画像]ボックス611において、ユーザがカーソルCを上下左右に移動させることで、カメラポーズをパン・チルト方向に回転させることができる。また、「ロール/ズーム」が選択された場合、同様の操作で、カメラポーズをロール・ズーム方向に回転させることができる。
 [計測画像]ボックス611の下側には、[現在位置]ボックス630が配置されている。
 [現在位置]ボックス630は、カーソル位置における3DオブジェクトOBの表面座標をリアルタイムで表示するためのボックスである。3DオブジェクトOBの表面座標は空間座標系の座標としてmm単位で示される。[計測画像]ボックス611において、ユーザがカーソルCを移動させることで、[現在位置]ボックス630の値もリアルタイムに変更される。例えば、カーソルCが3DオブジェクトOB上に位置する場合、3DオブジェクトOBの表面座標が算出され、[現在位置]ボックス630に表示される。カーソルCが3DオブジェクトOB上に位置しない場合は、[現在位置]ボックス630に「null」と表示される。3DオブジェクトOBの表面座標の算出方法については、図26~図29を用いて後述する。
 [現在位置]ボックス630の下側には、[カメラポーズ]ボックス640が配置されている。[カメラポーズ]ボックス640は、カメラポーズをリアルタイムで表示するためのボックスである。ユーザがカメラポーズを変更することで、[カメラポーズ]ボックス640の値がアルタイムに変更される。カメラポーズは、空間座標系の座標としてmm単位で示される。
 [カメラポーズ]ボックス640の右側には、[シフト位置]ボックス650が配置されている。[シフト位置]ボックス650は、[計測画像]ボックス611における3DオブジェクトOBのシフト位置を表示するためのボックスである。3DオブジェクトOBのシフト位置は、平面座標系の座標としてpixel単位で示される。
 3DオブジェクトOBは[計測画像]ボックス611の中央部に表示されている。カメラポーズが変更されても、3DオブジェクトOBの表示位置は変化しない。しかし、計測画像IMGに写った被検体は、必ずしも画像の中央部に位置しているわけではない。そのため、計測画像IMGと3Dオブジェクト3Dとをマッチングさせる処理である3Dマッチング処理の実行後、3DオブジェクトOBは[計測画像]ボックス611の中央部ではなく、計測画像に写った被検体の上に位置しているべきである。
 上記のシフト位置は、[計測画像]ボックス611の中央部からの3DオブジェクトOBの相対位置を示している。以下、平面座標系におけるシフト位置の移動方向をシフト方向と記載する。ユーザが手動で任意にシフト位置を変更することはできない。シフト位置は、3Dマッチング処理の実行後に、CPU34cが算出する。
 [ファイル選択]ボックス610の下側には、[マッチング/計測]ボックス660が配置されている。[マッチング/計測]ボックス660内には、3Dマッチング処理および計測に関するGUIが配置されている。[マッチング/計測]ボックス660内の各GUIの機能は以下の通りである。
 [カメラポーズ]ボタン661aは、カメラポーズを変更するためのボタンである。[カメラポーズ]ボタン661aが押下された後、[計測画像]ボックス611aにおいて、ユーザがカーソルCを上下左右に移動させることで、カメラポーズが変更可能となる。また、[カメラポーズ]ボタン661aの右側には、[リセット]ボタン661bが配置されており、[リセット]ボタン661bが押下されると、カメラポーズが初期値に設定される。
 [参照点(計測)]ボタン662aは、計測画像IMGの参照点(計測)を指定するためのボタンである。参照点(計測)とは、CPU34cが3Dマッチング処理を実行する際の基準となる計測画像IMG上の点のことである。[参照点(計測)]ボタン662aが押下された後、[計測画像]ボックス611において、ユーザがカーソルCを移動させて、指定したい位置でクリック等を行うことで、計測画像IMGに写った被検体に対して参照点(計測)を指定することができる。参照点(計測)は、平面座標系の座標としてpixel単位で示される。また、[参照点(計測)]ボタン662aが押下されると、3DオブジェクトOBの表示透過率が自動的に大きく設定され、計測画像IMGが見やすい状態となる。また、[参照点(計測)]ボタン662aの右側には、[クリア]ボタン662bが配置されており、[クリア]ボタン662bが押下されると、既に指定された参照点(計測)が全てクリアされ、指定前の状態となる。
 [参照点(3D)]ボタン663aは、3DオブジェクトOBの参照点(3D)を指定するためのボタンである。参照点(3D)とは、参照点(計測)と同様に、CPU34cが3Dマッチング処理を実行する際の基準となる3Dオブジェクト上の点である。[参照点(3D)]ボタン663aが押下された後、[計測画像]ボックス611において、ユーザがカーソルCを移動させて、参照点(3D)を指定したい位置でクリック等の操作を行うことで、3DオブジェクトOBに対して参照点(3D)を指定することができる。参照点(3D)は、空間座標系の座標としてmm単位で示される。また、[参照点(3D)]ボタン663aが押下された後、3DオブジェクトOBの表示透過率が自動的に小さく設定され、3DオブジェクトOBが見やすい状態となる。また、[参照点(3D)]ボタン663aの右側には、[クリア]ボタン663bが配置されており、[クリア]ボタン663bが押下されると、既に指定された参照点(3D)が全てクリアされ、指定前の状態となる。
 [3Dマッチング]ボタン664は、3Dマッチング処理を実行するためのボタンである。[3Dマッチング]ボタン664が押下された後、ユーザが指定した2組の参照点(参照点(計測)と参照点(3D))に基づいて、CPU34cは3Dマッチング処理を実行する。このとき、CPU34cは、2組の参照点の位置がそれぞれ一致するように、3Dマッチング処理を行う。3Dマッチング処理の結果、計測画像IMG内の被検体と3DオブジェクトOBとがほぼ一致するように表示され、計測画像IMG内の被検体と3DオブジェクトOBが計測に適した状態となる。
 [計測]ボタン665aは、計測点を指定するためのボタンである。計測点とは、計測を行う際の基準となる点である。[計測]ボタン665aが押下された後、[計測画像]ボックス611において、ユーザがカーソルCを移動させて、計測点を指定したい位置でクリック等の操作を行うことで、3DオブジェクトOBに対して計測点を指定することができる。CPU34cは、指定された計測点に基づいて、計測処理を実行する。また、[計測]ボタン665aの右側には、[クリア]ボタン665bが配置されている。[クリア]ボタン665bが押下されると、既に指定された計測点が全てクリアされ、指定前の状態となる。
 [マッチング/計測]ボックス660の下側には、[計測結果]ボックス670が配置されている。[計測結果]ボックス670は、計測結果を表示するためのボックスである。[計測画像]ボックス611においてユーザが計測点を指定すると、指定された計測点に基づいて計測処理が実行され、[計測結果]ボックス670に計測結果が表示される。
 メインウィンドウ600の右下部には、[終了]ボタン680が配置されている。[終了]ボタン680は、3D計測ソフトを終了するためのボタンである。[終了]ボタン680が押下されると、全てのソフト動作が終了し、メインウィンドウ600が閉じる(非表示となる)。
 次に、図7を用いて、3Dオブジェクトとカメラポーズとの関係について説明する。図7に示すように、実空間に対応する仮想的な空間上に3DオブジェクトOB1および視点700がある。3DオブジェクトOB1の位置は固定されているが、視点700の位置はユーザによって自由に変更される。3DオブジェクトOB1の重心位置には視線中心701があり、視点700から視線方向702に伸びる直線は、常にこの視線中心701を向いている。視線中心701の位置は固定されている。
 3DオブジェクトOB1と視点700との間には、矩形状のスクリーン平面703がある。スクリーン平面703は[計測画像]ボックス611に相当する。スクリーン平面703の縦方向および横方向のサイズは固定値である。3DオブジェクトOB1をスクリーン平面703に投影した投影像が、[計測画像]ボックス611に表示される3DオブジェクトOBである。
 スクリーン平面703は、視線方向702と常に垂直であり、視点700から視線方向702に伸びる直線は、常にスクリーン平面703の中心704を通る。視点700からスクリーン平面703の中心704までの距離706は固定値であるが、視点700から視線中心701までの距離は、ユーザによって自由に変更される。
 スクリーン平面703の向いている方向は、上方向ベクトル705によって示される。
 この上方向ベクトル705は、スクリーン平面703と平行であり、スクリーン平面703の上方向がどの方向かを表す単位ベクトルである。
 図7に示した項目のうち、カメラポーズを構成するパラメータは、視点位置、視線中心位置、上方向ベクトルの3つである。以下では、図8A~図10Bを用いて、カメラポーズを変更したときの3Dオブジェクトとカメラポーズとの関係について説明する。
 図8Aは、カメラポーズをパン・チルト方向に変更した場合の3Dオブジェクトとカメラポーズとの関係を示している。パン方向とは、視点800から視線中心801までの距離を固定したまま、視点800を上方向ベクトル802と垂直に移動させた場合の方向(パン方向803)である。チルト方向とは、視点800から視線中心801までの距離を固定したまま、視点800を上方向ベクトル802と平行に移動させた場合の方向(チルト方向804)である。図8Aに示すように、カメラポーズをパン・チルト方向に変更すると、図8Bに示すように、スクリーン平面805に投影される3DオブジェクトOBは、上下左右の各方向に回転することがわかる。
 図9Aは、カメラポーズをロール方向に変更した場合の3Dオブジェクトとカメラポーズとの関係を示している。ロール方向とは、視点900の位置を固定したまま、視点900から視点中心901に向かう視点方向902の軸を中心に、スクリーン平面903を回転させた場合の方向(ロール方向904)である。図9Aに示すように、カメラポーズをロール方向に変更すると、図9Bに示すように、スクリーン平面903に投影される3DオブジェクトOBは、スクリーン平面903の中心を軸として回転することがわかる。
 図10Aは、カメラポーズをズーム方向に変更した場合の3Dオブジェクトとカメラポーズとの関係を示している。ズーム方向とは、上方向ベクトル1000を固定したまま、視点1001を視線方向1002と平行に移動させた場合の方向(ズーム方向1003)である。図10Aに示すように、カメラポーズをズーム方向に変更すると、図10Bに示すように、スクリーン平面1004に投影される3DオブジェクトOBは、拡大・縮小することがわかる。
 上記の説明の通り、カメラポーズが変更されると、スクリーン平面の位置・方向が変化する。それに伴い、スクリーン平面に投影される3Dオブジェクトの表示も変化する。その結果、[計測画像]ボックス611に表示される3Dオブジェクトの表示も変化する。CPU34cは、ユーザによってリモコン23を介して入力されるカメラポーズの変更指示を検出し、その変更指示に応じて、3Dオブジェクトを[計測画像]ボックス611に表示するための処理を行う。
 次に、図11を用いて、3D計測ソフトの動作の流れを説明する。以下では、メインウィンドウ600における全てのGUIに関する動作ではなく、一部のGUIに関する動作のみ説明する。具体的には、[計測画像]ボックス611、[カメラポーズ]ボタン661a、[参照点(計測)]ボタン662a、[参照点(3D)]ボタン663a、[3Dマッチング]ボタン664、[計測]ボタン665a、[計測結果]ボックス670、[終了]ボタン680に関する動作は説明するが、その他のGUIに関する動作の説明は省略する。
 ステップSAでは、CPU34cが3D計測ソフトを起動する。具体的には、ユーザがリモコン23を介して入力した起動指示に基づいて、CPU34cは、ROM34bに格納されている3D計測ソフトをRAM34aに読み込み、3D計測ソフトに従った動作を開始する。ステップSBでは、CPU34cが、メインウィンドウ600を表示するための処理を行う。
 ステップSCでは、CPU34cが初期化処理を行う。初期化処理とは、メインウィンドウ600内の各種GUIの初期状態を設定したり、RAM34aに記録された各種データの初期値を設定したりする処理である。初期化処理の詳細については、後述する。
 ステップSDでは、CPU34cがカメラポーズ設定処理を行う。カメラポーズ設定処理とは、ユーザが入力した、カメラポーズを変更する指示に基づいて、[計測画像]ボックス611の計測画像内の被検体と3Dオブジェクトとを大まかにマッチングさせる処理である。カメラポーズ設定処理の詳細については、後述する。
 ステップSEでは、CPU34cが参照点(計測)指定処理を行う。参照点(計測)指定処理とは、ユーザが入力した、[計測画像]ボックス611の計測画像に写った被検体上の位置を指定する指示に基づいて、参照点を指定(設定)する処理である。参照点(計測)指定処理の詳細については、後述する。
 ステップSFでは、CPU34cが参照点(3D)指定処理を行う。参照点(3D)指定処理とは、ユーザが入力した、[計測画像]ボックス611の3Dオブジェクト上の位置を指定する指示に基づいて、参照点を指定(設定)する処理である。参照点(3D)指定処理の詳細については、後述する。
 ステップSGでは、CPU34cが3Dマッチング処理を行う。3Dマッチング処理とは、ユーザが指定した2組の参照点(参照点(計測)・参照点(3D))に基づいて、[計測画像]ボックス611に表示された計測画像と3Dオブジェクトとをマッチングさせる処理である。3Dマッチング処理の詳細については、後述する。
 ステップSHでは、CPU34cが計測処理を行う。計測処理とは、ユーザが入力した、[計測画像]ボックス611の3Dオブジェクト上の位置を指定する指示に基づいて、計測点を指定(設定)し、指定した計測点に基づいて、被検体のサイズを算出する処理である。計測処理の詳細については、後述する。
 ステップSIでは、CPU34cが、ユーザによって[終了]ボタン680が押下されたかどうかを確認する。ユーザが[終了]ボタン680を押下した場合、処理はステップSJに移行する。また、ユーザが[終了]ボタン680を押下しなかった場合、処理はステップSDに移行する。ステップSJでは、CPU34cがメインウィンドウ600を非表示とし、3D計測ソフトの動作を終了する。
 次に、図12を用いて、ステップSCの初期化処理の動作の流れを説明する。ステップSC1では、CPU34cが、メモリカード50に記録された所定の計測画像ファイルおよびCADデータをRAM34aに読み込む。ステップSC2では、CPU34cが、読み込まれたCADデータに基づいて、カメラポーズ(初期値)を算出する。
 カメラポーズのうち、視点位置については、図13に示すように、CPU34cは空間座標系の原点の座標(x,y,z)=(0,0,0)を初期値(視点1300)とする。カメラポーズのうち、視線中心位置については、図13に示すように、CPU34cは、CADデータにおける全ての空間座標の重心位置を算出し、その座標を初期値(視点中心1301)とする。この視線中心位置は、CADデータごとに固有の値であり、この後、カメラポーズが変更されても、この値が変化することはない。カメラポーズのうち、上方向ベクトルについては、図13に示すように、CPU34cは、視点1300と視線中心1301を結ぶ直線と直交する単位ベクトルのうち、Z方向成分の最も大きいものを初期値(上方向ベクトル1302)とする。ここでは、Z方向成分の最も大きい単位ベクトルを上方向ベクトルの初期値としているが、Z方向成分の最も大きい単位ベクトルに限るわけではない。
 ステップSC3では、CPU34cが、ステップSC2で算出したカメラポーズ(初期値)をカレントカメラポーズとしてRAM34aに記録する。カレントカメラポーズとは、現在設定されているカメラポーズのことである。3Dオブジェクトは、このカレントカメラポーズに基づいて表示される。
 ステップSC4では、CPU34cが、図14に示すように[計測画像]ボックス611に計測画像IMGを表示し、さらにその上に3DオブジェクトOBを所定の透過率で重畳表示するための処理を実行する。このとき、3DオブジェクトOBは、算出されたカメラポーズ(初期値)に基づいて、スクリーン平面に投影された平面図として表示される。ステップSC4の処理が終了すると、初期化処理が終了する。
 次に、図15を用いて、ステップSDのカメラポーズ設定処理の流れを説明する。ステップSD1では、CPU34cが、[カメラポーズ]ボタン661aが既に押下された状態(ステップSD3の処理が既に行われた状態)であるかどうかを確認する。[カメラポーズ]ボタン661aが押下された状態である場合、処理はステップSD4に移行し、[カメラポーズ]ボタン661aが押下された状態でない場合、処理はステップSD2に移行する。
 ステップSD2では、CPU34cが、[カメラポーズ]ボタン661aがユーザによって押下されたかどうかを確認する。[カメラポーズ]ボタン661aが押下された場合、処理はステップSD3に移行する。[カメラポーズ]ボタン661aが押下されていない場合、カメラポーズ設定処理が終了する。
 ステップSD3では、CPU34cが、図16Aに示すように[カメラポーズ]ボタン661aを強調表示するための処理を行う。[カメラポーズ]ボタン661aを強調表示するのは、現在、カメラポーズが変更可能であることをユーザに通知するためである。
 ステップSD4では、CPU34cが、図16Bに示すように、[計測画像]ボックス611において、ユーザがリモコン23を操作してカーソルCによりクリック等を行いながらカーソルCを上下左右に移動させる操作(ドラッグ操作)を検出し、カーソルCの操作を検出した結果に基づいてカメラポーズを変更する。このとき、ユーザは、計測画像に写った被検体DUTと3DオブジェクトOBとが大まかにマッチングするように、カメラポーズを変更する。カメラポーズは、前述したパン・チルト・ロール・ズームの方向に変更可能である。また、このとき、CPU34cは、リモコン23を介して入力されるカーソルCの操作指示を検出し、その操作指示に基づいて、変更後のカメラポーズを算出する。
 ステップSD5では、CPU34cが変更後のカメラポーズをカレントカメラポーズとしてRAM34aに上書き記録する。ステップSD6では、CPU34cが、カレントカメラポーズに基づいて、3Dオブジェクトを再表示するための処理を行う。これによって、図16Cに示すように、カメラポーズが変更された3DオブジェクトOBが[計測画像]ボックス611に表示される。ステップSD6の処理が終了すると、カメラポーズ設定処理が終了する。
 次に、図17を用いて、ステップSEの参照点(計測)指定処理の流れを説明する。ステップSE1では、CPU34cが、[参照点(計測)]ボタン662aが既に押下された状態(ステップSE3,SE4の処理が既に行われた状態)であるかどうかを確認する。
 [参照点(計測)]ボタン662aが押下された状態である場合、処理はステップSE5に移行する。[参照点(計測)]ボタン662aが押下された状態でない場合、処理はステップSE2に移行する。
 ステップSE2では、CPU34cが、[参照点(計測)]ボタン662aがユーザによって押下されたかどうかを確認する。[参照点(計測)]ボタン662aが押下された場合、処理はステップSE3に移行し、押下されていない場合、参照点(計測)指定処理が終了する。
 ステップSE3では、CPU34cが、図18Aに示すように、[参照点(計測)]ボタン662aを強調表示するための処理を行う。[参照点(計測)]ボタン662aを強調表示するのは、現在、計測画像に対して参照点が指定可能であることをユーザに通知するためである。
 ステップSE4では、CPU34cが、図18Bに示すように、3DオブジェクトOBの透過率を変更し、変更後の透過率で3DオブジェクトOBを再表示するための処理を行う。ここで設定される透過率は大きな値であり、3DオブジェクトOBは透明に近い状態となり、計測画像が見やすい状態となる。なお、特に図示していないが、既に指定した参照点(3D)が存在する場合は、3DオブジェクトOBが一旦非表示となる。これも、計測画像を見やすい状態とするためである。
 ステップSE5では、CPU34cが、[計測画像]ボックス611において、計測画像に写った被検体DUTに対して参照点(計測)を指定するためにユーザがリモコン23を操作してカーソルCによりクリック等を行う操作を検出し、カーソルCの操作を検出した結果に基づいて、指定された参照点の座標を算出する。このとき算出される参照点(計測)の座標は、計測画像における平面座標(pixel単位)である。
 ステップSE6では、CPU34cが、指定された参照点(計測)の座標をRAM34aに記録する。ステップSE7では、CPU34cが、指定された参照点(計測)を計測画像上に重畳表示するための処理を行う。これによって、図18Cに示すように、参照点(計測)R1,R2,R3が計測画像上に重畳表示される。ステップSE7の処理が終了すると、参照点(計測)指定処理が終了する。
 次に、図19を用いて、ステップSFの参照点(3D)指定処理の流れを説明する。ステップSF1では、CPU34cが、[参照点(3D)]ボタン663aが既に押下された状態(ステップSF3,SF4が既に行われた状態)であるかどうかを確認する。[参照点(3D)]ボタン663aが押下された状態である場合、処理はステップSF5に移行する。[参照点(3D)]ボタン663aが押下されていない状態でない場合、処理はステップSF2に移行する。
 ステップSF2では、CPU34cが、[参照点(3D)]ボタン663aがユーザによって押下されたかどうかを確認する。[参照点(3D)]ボタン663aが押下された場合、処理はステップSF3に移行し、[参照点(3D)]ボタン663aが押下されていない場合、参照点(3D)指定処理が終了する。
 ステップSF3では、CPU34cが、図20Aに示すように、[参照点(3D)]ボタン663aを強調表示するための処理を行う。[参照点(3D)]ボタン663aを強調表示するのは、現在、3Dオブジェクトに対して参照点が指定可能であることをユーザに通知するためである。
 ステップSF4では、CPU34cが、図20Bに示すように、3DオブジェクトOBの透過率を変更し、変更後の透過率で3DオブジェクトOBを再表示するための処理を行う。ここで設定される透過率は小さな値であり、3DオブジェクトOBが見やすい状態となる。このとき、特に図示していないが、既に指定した参照点(計測)が存在する場合は、計測画像が一旦非表示となる。これも、3DオブジェクトOBを見やすい状態とするためである。
 ステップSF5では、CPU34cが、[計測画像]ボックス611において、計測画像に写った被検体DUTに対して参照点(3D)を指定するためにユーザがリモコン23を操作してカーソルCによりクリック等を行う操作を検出し、カーソルCの操作を検出した結果に基づいて、指定された参照点の座標を算出する。このとき算出される参照点(3D)の座標は、3Dオブジェクト表面における空間座標(mm単位)である。CPU34cは、まず指定された参照点の平面座標(pixel単位)を算出し、続いて、算出した平面座標から空間座標(mm単位)を算出する。
 ユーザが指定する参照点(3D)と、既に指定された参照点(計測)とが、それぞれ対応付けられていなくてはならない。本実施形態では、CPU34cは、ユーザが参照点(計測)を指定した順番と、参照点(3D)を指定した順番とに基づいて、参照点(3D)と参照点(計測)とを対応付ける。より具体的には、CPU34cは、参照点(計測)のうち最初に指定された点と参照点(3D)のうち最初に指定された点とを対応付け、参照点(計測)のうち2番目に指定された点と参照点(3D)のうち2番目に指定された点とを対応付け、・・・、参照点(計測)のうちn番目に指定された点と参照点(3D)のうちn番目に指定された点とを対応付ける。上記の方法は一例であり、これに限るわけではない。
 図18Cに示すように、被検体DUTの左上の参照点(計測)R1、右上の参照点(計測)R2、右下の参照点(計測)R3が指定されている。参照点(計測)の指定が終了した後、ユーザは、被検体DUT上の参照点(計測)に対応する3DオブジェクトOB上の参照点(3D)を、参照点(計測)を指定したときと同じ順番で指定する。図20Cに示すように、被検体DUT上の参照点(計測)R1,R2,R3に対応する3Dオブジェクト上の位置に参照点(計測)R1’,R2’,R3’が指定されている。
 ステップSF6では、CPU34cが、指定された参照点(3D)の座標をRAM34aに記録する。ステップSF7では、CPU34cが、指定された参照点(3D)を3Dオブジェクト上に重畳表示するための処理を行う。これによって、図20Cに示すように、参照点(3D)R1’,R2’,R3’が3DオブジェクトOB上に重畳表示される。
 ステップSF7の処理が終了すると、参照点(3D)指定処理が終了する。
 なお、CPU34cが、指定された参照点(3D)の座標をCADデータに記録してもよいし、CADデータと関連付けられた別のファイルに記録してもよい。これによって、再度ステップSC1にて同じCADデータを読み出した場合、ステップSF1~ステップSF5の処理を省略することができる。また、参照点(3D)は必ずしもステップSFにおいて指定されるべきものではなく、予め内視鏡装置3またはPC6等によって、CADデータに記録されていてもよいし、CADデータと関連付けられた別のファイルに記録されていてもよい。
 次に、図21を用いて、ステップSGの3Dマッチング処理の流れを説明する。ステップSG1では、CPU34cが、[3Dマッチング]ボタン664がユーザによって押下されたかどうかを確認する。[3Dマッチング]ボタン664が押下された場合、処理はステップSG2に移行する。[3Dマッチング]ボタン664が押下されていない場合、3Dマッチング処理が終了する。
 ステップSG2では、CPU34cが、全ての参照点が既に指定済みであるどうかを確認する。具体的には、CPU34cは、参照点(計測)および参照点(3D)が、それぞれ3点ずつ、既に指定済みであるかどうかを確認する。全ての参照点が指定済みの場合、処理はステップSG3に移行する。参照点が指定済みでない場合、3Dマッチング処理が終了する。ステップSG3では、CPU34cが、RAM34aに記録された全ての参照点の座標を読み込む。
 ステップSG4では、CPU34cが、指定された参照点の座標に基づいて、パン・チルト方向のマッチング処理を行う。パン・チルト方向のマッチング処理の詳細については、後述する。ステップSG5では、CPU34cが、指定された参照点の座標に基づいて、ロール方向のマッチング処理を行う。ロール方向のマッチング処理の詳細については、後述する。
 ステップSG6では、CPU34cが、指定された参照点の座標に基づいて、ズーム方向のマッチング処理を行う。ズーム方向のマッチング処理の詳細については、後述する。
 ステップSG7では、CPU34cが、指定された参照点の座標に基づいて、シフト方向のマッチング処理を行う。シフト方向のマッチング処理の詳細については、後述する。
 ステップSG8では、CPU34cが、[計測画像]ボックス611において、3Dオブジェクトを再表示するための処理を行う。このとき、3Dオブジェクトは、ステップSG4~SG7において最終的に算出されたカメラポーズおよびシフト位置に基づいて、姿勢および位置が調整されて表示される。図22は、マッチング処理後の計測画像に写った被検体と3Dオブジェクトを示している。図22のように、計測画像に写った被検体と3Dオブジェクトとが、ほぼ一致していること、すなわち、両者がうまくマッチングしていることがわかる。ステップSG8の処理が終了すると、3Dマッチング処理が終了する。
 次に、図23を用いて、ステップSHの計測処理の流れを説明する。ステップSH1では、CPU34cが、[計測]ボタン664が既に押下された状態(ステップSH3が既に行われた状態)であるかどうかを確認する。[計測]ボタン664が押下された状態である場合、処理はステップSH4に移行する。[計測]ボタン664が押下された状態でない場合、処理はステップSH2に移行する。
 ステップSH2では、CPU34cが、[計測]ボタン664がユーザによって押下されたかどうかを確認する。[計測]ボタン664が押下された場合、処理はステップSH3に移行する。[計測]ボタン664が押下されていない場合、計測処理が終了する。
 ステップSH3では、CPU34cが、図24Aに示すように、[計測]ボタン664を強調表示するための処理を行う。[計測]ボタン664を強調表示するのは、現在、3Dオブジェクトに対して計測点が指定可能であることをユーザに通知するためである。
 ステップSH4では、CPU34cが、[計測画像]ボックス611において、3Dオブジェクトに対して計測点を指定するためにユーザがリモコン23を操作してカーソルCによりクリック等を行う操作を検出し、カーソルCの操作を検出した結果に基づいて、指定された計測点の座標を算出する。CPU34cは、算出した計測点の座標をRAM34aに記録する。このとき記録される計測点の座標は、3Dオブジェクト表面における空間座標(mm単位)である。
 ステップSH5では、CPU34cが、指定された計測点の座標に基づいて、計測結果を算出し、算出した計測結果をRAM34aに記録する。本実施形態では、2つの計測点の空間距離(2点間距離)を計測する。ステップSH5で算出される計測結果は、既に指定された2つの計測点の空間距離である。指定された計測点が1点のみである場合、計測結果は算出されず、処理がステップSH6に移行する。
 ステップSH6では、CPU34cが、図24B,24Cに示すように、指定された計測点を3Dオブジェクト上に重畳表示するための処理を行う。図24Bは1点目の計測点P1が指定されたときの[計測画像]ボックス611を示し、図24Cは2点目の計測点P2が指定されたときの[計測画像]ボックス611を示す。さらに、CPU34cは、図25に示すように、算出した計測結果を[計測結果]ボックス670に表示するための処理を行う。指定された計測点が1点のみである場合、計測結果は表示されず、ステップSH6の処理が終了する。
 ステップSH6の処理が終了すると、計測処理が終了する。上記の説明では、2点間距離を計測する場合を例としているが、3点以上の計測点が指定される面積等の計測を行う場合も同様である。
 次に、図26~図29を用いて、指定された計測点の、3Dオブジェクト表面における空間座標(3次元座標)の算出方法について説明する。図26は、3次元空間における3Dオブジェクトの一部と視点Eとの関係を示している。
 3Dオブジェクトは、複数の三角形の空間平面から構成されている。視点Eから3Dオブジェクトの重心点Gへ向かう方向を視線方向とする。視点Eと3Dオブジェクトとの間には、視線方向と垂直に交わるスクリーン平面SCが設定されている。
 ユーザが[計測画像]ボックス611における3Dオブジェクト上の計測点を指定すると、CPU34cは、図27に示すように、スクリーン平面SC上に計測点Sを設定する。計測点Sと視点Eとを通る空間直線を直線Lとする。そして、CPU34cは、3Dオブジェクトを構成する複数の三角形の中から、直線Lと交差する全ての三角形を検索する。直線と空間三角形とが交差するかどうかを判定する方法として、例えばTomas Mollerの交差判定法を用いることが可能である。この例では、図28に示すように、三角形T1,T2が、直線Lと交差する三角形であると判定される。
 そして、図29に示すように、CPU34cは、直線Lと三角形T1,T2との交点を算出し、算出したそれぞれの交点を交点F1,F2とする。ここでは、3Dオブジェクト表面における空間座標を算出したいので、CPU34cは、交点F1,F2のうち、より視点Eに近い方を選択する。この場合、CPU34cは、交点F1の空間座標を、3Dオブジェクト表面における空間座標として算出する。上記では、直線Lと交差すると判定された三角形を2つのみとしたが、3Dオブジェクトの形状や視線方向によっては、より多くの三角形が交差すると判定される場合もある。その場合も、直線Lと三角形との交点をそれぞれ求め、求めた交点の中で、最も視点Eに近い交点を選択する。
 上記のようにして、計測点の空間座標を算出することができる。ステップSF5における参照点(3D)の空間座標も上記と同様にして算出することができる。
 次に、図30を用いて、ステップSG4のパン・チルト方向のマッチング処理の流れを説明する。パン・チルト方向のマッチング処理の目的は、参照点(計測)によって構成される3角形と、参照点(3D)をスクリーン平面に降ろした投影点によって構成される3角形とが最も相似に近くなるカメラポーズを見つける、ということである。これらの3角形が相似に近い場合、計測画像に写った被検体が撮像されたときの視線のパン・チルト方向と、3Dオブジェクトを観察する視線のパン・チルト方向とが、ほぼ一致しているということができる。
 以下、図31Aに示すように、参照点(3D)R1’~R3’をスクリーン平面3100に降ろした投影点Rp1’~Rp3’を投影点(3D)と記載する。さらに、図31Bに示すように、参照点(計測)R1~R3によって構成される3角形3102を参照図形(計測)と記載し、図31Aに示すように、投影点(3D)Rp1’~Rp3’によって構成される3角形3101を参照図形(3D)と記載する。
 ステップSG401では、CPU34cが頂点角(計測)を算出し、算出した頂点角(計測)をRAM34aに記録する。頂点角(計測)とは、図32Aに示すように、参照図形(計測)3200の3つの頂点R1~R3の角度A1~A3である。
 ステップSG402では、CPU34cが、カメラポーズをパン・チルト方向にそれぞれ-31deg回転させる。ステップSG403~SG407において繰り返し処理が行われるが、これは、図32Bに示すように、カメラポーズをパン・チルト方向に回転させながら、頂点角(3D)を順次算出するためである。頂点角(3D)とは、図32Bに示すように、参照図形(3D)3201の3つの投影点(3D)Rp1’~Rp3’の角度A1’~A3’である。
 前述したように、参照点(計測)と参照点(3D)は、各参照点が指定された順番によって対応付けられており、角度A1~A3と角度A1’~A3 ’も、この順番によって対応付けられている。図32A~32Dでは、角度A1と角度A1’が対応付けられ、角度A2と角度A2’が対応付けられ、角度A3と角度A3’が対応付けられている。
 ステップSG403では、CPU34cが、カメラポーズをパン方向に+1deg回転させる。そして、ステップSG403~SG407では、カメラポーズのパン方向の回転角度が+30degとなるまでCPU34cが繰り返し処理を行う。CPU34cは、カメラポーズをパン方向に-30degから+30degとなるまで+1degずつ回転させるので、結果としてステップSG403~SG407の一連の処理を61回繰り返すことになる。
 ステップSG404では、CPU34cが、カメラポーズをチルト方向に+1deg回転させる。そして、ステップSG404~SG407では、カメラポーズのチルト方向の回転角度が+30degとなるまでCPU34cが繰り返し処理を行う。CPU34cは、カメラポーズをチルト方向に-30degから+30degとなるまで+1degずつ回転させるので、結果としてステップSG404~SG407の処理を61回繰り返すことになる。なお、ステップSG403~SG407の繰り返し処理において、カメラポーズを-30degから+30degとなるまで回転させているが、カメラポーズを回転させる範囲は必ずしもこの範囲である必要はない。
 ステップSDのカメラポーズ設定処理において、ユーザがカメラポーズを変更する際、計測画像に写った被検体と3Dオブジェクトとをどの程度までマッチングさせるかによって、ステップSG403~SG407の繰り返し処理において、カメラポーズを回転させるのに必要な範囲が変わる。範囲が広い場合、ユーザは大まかなマッチングさえ行えば良いが、その代わり、3Dマッチングの処理時間が長くなる。範囲が狭い場合、3Dマッチングの処理時間が短くて済むが、その代わり、ユーザはある程度詳細にマッチングを行う必要がある。
 ステップSG405では、CPU34cが、現在のパン・チルト方向の回転角度をRAM34aに記録する。図33A~33Cは、RAM34aに記録される回転角度を示している。ステップSG405では、CPU34cは、回転角度をRAM34aに上書き記録するのではなく、カメラポーズをパン・チルト方向に回転するたびに、図33Aに示すように、RAM34aに用意されたデータリストに現在のパン・チルト方向の回転角度を1行ずつ追加記録していく。このデータリストには、後述するように、パン・チルト方向の回転角度と関連付けて、頂点角(3D)等の様々なデータを記録することができる。
 ステップSG406では、CPU34cが投影点(3D)を算出し、算出した投影点(3D)をRAM34aに記録する。ステップSG407では、CPU34cが頂点角(3D)を算出し、算出した頂点角(3D)をRAM34aに記録する。このとき、CPU34cは、図33Bに示すように、頂点角(3D)をパン・チルト方向の回転角度と関連付けて、データリストに1行ずつ追加記録していく。
 ステップSG403~SG407の繰り返し処理が終了すると、処理はステップSG408に移行する。この時点でのデータリストは、図33Cに示すようになり、61×61行分のデータで構成されている。ステップSG408では、CPU34cがカメラポーズをパン・チルト方向にそれぞれ-30deg回転させる。ステップSG403~SG407の繰り返し処理が終了した時点で、パン・チルト方向の回転角度はそれぞれ+30degであるので、ここでは、-30deg回転させることによって、カメラポーズを元の状態に戻す。
 ステップSG409では、CPU34cが、頂点角(計測)と頂点角(3D)との差を算出する。具体的には、CPU34cは、(1)式~(3)式のように、頂点角(計測)A1~A3と頂点角(3D)A1’~A3’との差の絶対値D1~D3を算出する。
    D1=|A1-A1’| ・・・(1)
    D2=|A2-A2’| ・・・(2)
    D3=|A3-A3’| ・・・(3)
 さらに、CPU34cは、図34Aに示すように、頂点角の差をパン・チルト方向の回転角度と関連付けて、データリストに追加記録する。
 ステップSG410では、CPU34cが差D1~D3の平均値を算出する。さらに、CPU34cは、図34Bに示すように、平均値をパン・チルト方向の回転角度と関連付けて、データリストに追加記録する。
 ステップSG411では、CPU34cが平均値の最小値をデータリストから検索する。図35は、データリストにおいて、0.5が最小値として検索された様子を示している。
 ステップSG412では、CPU34cが、平均値が最小となる場合のパン・チルト方向の回転角度をデータリストから読み込む。具体的には、CPU34cは、図35に示すように、データリストから、最小の平均値に関連付けられたパン・チルト方向の回転角度を読み込む。
 ステップSG413では、CPU34cが、カメラポーズをパン・チルト方向に、ステップSG412で読み込まれた回転角度だけ回転させる。このカメラポーズで3Dオブジェクトを表示した場合、図32C,32Dに示すように、回転後の頂点角(計測)と頂点角(3D)とが、良く一致しており、参照図形(計測)と参照図形(3D)とが相似に近いことがわかる。
 ステップSG414では、CPU34cが、このときのカメラポーズをカレントカメラポーズとしてRAM34aに上書き記録する。ここでは、カレントカメラポーズに基づく3Dオブジェクトの再表示は行わない。ステップSG414の処理が終了すると、パン・チルト方向のマッチング処理が終了する。
 次に、図36を用いて、ステップSG5のロール方向のマッチング処理の流れを説明する。ロール方向のマッチング処理の目的は、参照図形(計測)と参照図形(3D)の回転方向のアングルが最も一致するカメラポーズを見つける、ということである。それぞれの参照図形の回転方向のアングルが近い場合、計測画像に写った被検体を観察する視線のロール方向の回転角度と、3Dオブジェクトを観察する視線のロール方向の回転角度とが、ほぼ一致しているということができる。
 ステップSG501では、CPU34cが相対角(計測)を算出し、算出した相対角(計測)をRAM34aに記録する。相対角(計測)とは、図37Aに示すように、計測画像において上下方向に伸びる直線3700と、参照図形(計測)の3つの辺との間の角度Ar1~Ar3である。このときの相対角(計測)は、直線3700から辺への右回り方向の角度である。
 ステップSG502では、CPU34cが投影点(3D)を算出し、算出した投影点(3D)をRAM34aに記録する。ステップSG503では、CPU34cが相対角(3D)を算出し、算出した相対角(3D)をRAM34aに記録する。相対角(3D)とは、図37Bに示すように、スクリーン平面において上下方向に伸びる直線3701と参照図形(3D)の3つの辺との間の角度Ar1’~Ar3’である。スクリーン平面は、計測画像が表示される[計測画像]ボックス611に相当するため、直線3700と直線3701の方向は一致する。また、このときの相対角(3D)は、直線3701から辺への右回り方向の角度である。
 ステップSG504では、CPU34cが相対角(計測)と相対角(3D)との差を算出する。具体的には、CPU34cは、(4)式~(6)式のように、相対角(計測)Ar1~Ar3と相対角(3D)Ar1’~Ar3’とのそれぞれの差Dr1~Dr3を算出する。
    Dr1=Ar1-Ar1’ ・・・(4)
    Dr2=Ar2-Ar2’ ・・・(5)
    Dr3=Ar3-Ar3’ ・・・(6)
 ステップSG505では、CPU34cが差Dr1~Dr3の平均値を算出し、算出した平均値をRAM34aに記録する。ステップSG506では、CPU34cがカメラポーズをロール方向に、ステップSG505で算出した平均値だけ回転させる。このカメラポーズで3Dオブジェクトを表示した場合、図37C,37Dに示すように、回転後の相対角(計測)と相対角(3D)とが良く一致していることがわかる。
 ステップSG507では、CPU34cが、このときのカメラポーズをカレントカメラポーズとしてRAM34aに上書き記録する。ここでは、カレントカメラポーズに基づく3Dオブジェクトの再表示は行わない。ステップSG507の処理が終了すると、ロール方向のマッチング処理が終了する。
 次に、図38を用いて、ステップSG6のズーム方向のマッチング処理の流れを説明する。ズーム方向のマッチング処理の目的は、参照図形(計測)と参照図形(3D)のサイズが最も一致するカメラポーズを見つける、ということである。それぞれの参照図形のサイズが近い場合、計測画像に写った被検体を観察する視線のズーム方向の位置と、3Dオブジェクトを観察する視線のズーム方向の位置とが、ほぼ一致しているということができる。
 ステップSG601では、CPU34cが辺長(計測)を算出し、算出した辺長(計測)をRAM34aに記録する。辺長(計測)とは、図39Aに示すように、参照点(計測)R1~R3によって構成される3角形の3つの辺の長さL1~L3である。
 ステップSG602では、CPU34cが投影点(3D)を算出し、算出した投影点(3D)をRAM34aに記録する。ステップSG603では、CPU34cが辺長1(3D)を算出し、算出した辺長1(3D)をRAM34aに記録する。辺長1(3D)とは、図39Bに示すように、参照図形(3D)の3つの辺の長さL1’~L3’である。
 ステップSG604では、CPU34cが、このときのカメラポーズをカメラポーズ1としてRAM34aに上書き記録する。ステップSG605では、CPU34cが、図39Bに示すように、カメラポーズをズーム方向に所定値だけ移動させる。
 ステップSG606では、CPU34cが投影点(3D)を算出し、算出した投影点(3D)をRAM34aに記録する。ステップSG607では、CPU34cが辺長2(3D)を算出し、算出した辺長2(3D)をRAM34aに記録する。辺長2(3D)とは、図39Bに示すように、カメラポーズをズーム方向に所定値だけ移動させた後の、参照図形(3D)の3つの辺の長さLz1’~Lz3’である。ステップSG608では、CPU34cが、このときのカメラポーズをカメラポーズ2としてRAM34aに上書き記録する。
 ステップSG609では、CPU34cがズーム量を算出し、算出したズーム量をRAM34aに記録する。ズーム量は、辺長(3D)と辺長(計測)とが一致するようなカメラポーズのズーム方向の移動量であり、辺長1,2(3D)と、カメラポーズ1,2との関係から算出される。辺は3つであるので、ズーム量も3つ算出される。
 図40は、辺長(3D)とカメラポーズのズーム方向位置との関係を示している。図40のグラフ4000が示すように、両者は線形的な比例関係にある。グラフ4000を用いることで、辺長(3D)と辺長(計測)とを一致させる場合にカメラポーズをズーム方向に移動させる際の移動量を算出することができる。
 ステップSG610では、CPU34cが3つのズーム量の平均値を算出し、算出した平均値をRAM34aに記録する。ステップSG611では、CPU34cが、カメラポーズをズーム方向に、ステップSG611で算出した平均値だけ移動させる。このカメラポーズで3Dオブジェクトを表示した場合、図39C,39Dに示すように、移動後の辺長(計測)と辺長(3D)とが、良く一致していることがわかる。
 ステップSG612では、CPU34cが、このときのカメラポーズをカレントカメラポーズとしてRAM34aに上書き記録する。ここでは、カレントカメラポーズに基づく3Dオブジェクトの再表示は行わない。ステップSG612の処理が終了すると、ズーム方向のマッチング処理が終了する。
 次に、図41を用いて、ステップSG7のシフト方向のマッチング処理の流れを説明する。シフト方向のマッチング処理の目的は、[計測画像]ボックス611における、計測画像に写った被検体と3Dオブジェクトとが一致するように、シフト方向に3Dオブジェクトを移動させる、ということである。本処理は、3Dオブジェクトのシフト位置を決定するものであるため、カメラポーズの算出は行わない。
 ステップSG701では、CPU34cが重心点(計測)を算出し、算出した重心点(計測)をRAM34aに記録する。重心点(計測)とは、図42Aに示すように、参照点(計測)R1~R3によって構成される3角形の重心点Gである。
 ステップSG702では、CPU34cが投影点(3D)を算出し、算出した投影点(3D)をRAM34aに記録する。ステップSG703では、CPU34cが重心点(3D)を算出し、算出した重心点(3D)をRAM34aに記録する。重心点(3D)とは、図42Aに示すように、投影点(3D)Rp1’~Rp3’によって構成される3角形の重心点G’である。
 ステップSG704では、CPU34cがシフト量を算出し、算出したシフト量をRAM34aに記録する。シフト量とは、重心点(計測)の、重心点(3D)との相対位置(平面座標系、pixel単位)である。ステップSG705では、CPU34cが、3Dオブジェクトをシフト方向に、ステップSG704で算出したシフト量だけ移動させる。
 このカメラポーズで3Dオブジェクトを表示した場合、図42Bに示すように、重心点(計測)と重心点(3D)とが、良く一致していることがわかる。ステップSG705の処理が終了すると、シフト方向のマッチング処理が終了する。
 従来例では、2次元画像と3Dオブジェクトの投影図(2Dモデル)の画像データに基づくマッチング処理を行っていたため、3Dオブジェクトの再表示や、膨大なデータ量をもつ画像データの統計計算に、多くの処理時間がかかっていた。しかし、本実施形態では、3Dマッチング処理を実行する際、ユーザが指定する平易な形状の参照図形に基づく簡単な幾何学計算のみを実行すれば良く、処理時間を大幅に短縮することができる。さらに、3Dオブジェクトの再表示は、3Dマッチング処理終了後の1度のみで良い。
 次に、本実施形態の変形例を説明する。上記の説明では、CPU34cは、3点の参照点に基づいて、3Dマッチング処理を実行しているが、本変形例では、CPU34cは、4点の参照点に基づいて、3Dマッチング処理を実行する。ステップSG4のパン・チルト方向のマッチング処理において、CPU34cは、参照図形(計測)と参照図形(3D)とが最も相似に近くなるカメラポーズのパン・チルト方向の回転角度を算出するが、1対の参照図形(3角形)だけが相似に近くなる回転角度を算出しても、マッチング精度は必ずしも高いわけではなく、明らかに誤った回転角度を算出してしまうことがある。また、ステップSG5~SG7の各マッチング処理においても、同様に誤った回転角度・移動量を算出してしまうことがある。
 上記に鑑み、本変形例では、3Dマッチング処理のマッチング精度を向上させることを目的とする。本変形例では、ステップSEの参照点(計測)の指定処理において、図43Aに示すように、ユーザは4点の参照点(計測)R1~R4を指定する。また、ステップSFの参照点(3D)の指定処理において、図43Bに示すように、ユーザは4点の参照点(3D)R1’~R4’を指定する。また、本変形例では、ステップSGの3Dマッチング処理において、CPU34cは、4点の参照点に基づいて参照図形を算出する。
 図44は、ステップSGで算出された参照図形(計測)を示している。4点の参照点(計測)R1~R4のうちの3点で構成される4つの3角形4400,4401,4402,4403が参照図形(計測)となる。また、図45は、ステップSGで算出された参照図形(3D)を示している。4点の参照点(3D)Rp1’~Rp4’のうちの3点で構成される4つの3角形4500,4501,4502,4503が参照図形(3D)となる。
 本変形例では、ステップSGの3Dマッチング処理において、CPU34cは、これら4つの3角形に基づいて、3Dマッチング処理を実行する。例えば、ステップSG4のパン・チルト方向のマッチング処理において、CPU34cは、カメラポーズのパン・チルト方向の回転角度を算出するが、この際、4つの3角形のそれぞれに基づいて算出した回転角度の平均値を最終的な回転角度として用いる。ステップSG5~SG7の各マッチング処理においても、CPU34cは、4つの3角形のそれぞれに基づいて算出した回転角度・移動量の平均値を最終的な回転角度・移動量として用いる。
 本変形例では、ユーザが4点の参照点を指定することで、CPU34cは、参照点によって構成される4つの参照図形に基づいて、3Dマッチング処理を行う。そのため、CPU34cは、3Dマッチング処理を実行する際に多くのパラメータを用いることができ、その結果、マッチング精度を向上させることができる。
 本実施形態では、計測に係る一連の処理の手順および内容を規定したソフトウェア(プログラム)である3D計測ソフトに従ってCPU34cが上記の処理を行うことによって計測が行われる。図46は、CPU34cに必要な機能構成を示している。図46では、本実施形態の計測に関係する機能構成のみが示されており、他の機能構成については省略されている。CPU34cの機能構成には、撮像制御部340、指定部341、マッチング処理部342、表示制御部343、および計測部344が含まれる。
 撮像制御部340は、光源32および湾曲制御ユニット33の制御や撮像素子30bの制御を行う。指定部341は、リモコン23を介してユーザによって入力される指示に基づいて、計測画像上や3Dオブジェクトの画像上の指定された位置に対応する参照点(計測)、参照点(3D)、計測点を指定(設定)する。マッチング処理部342は、指定部341によって指定された参照点(計測)および参照点(3D)に基づいて、参照図形(計測)および参照図形(3D)を算出し、参照図形(計測)と参照図形(3D)との幾何学計算により、マッチングに必要なカメラポーズの変更量を算出する。
 表示制御部343は、モニタ22に表示される画像の内容や表示状態等を制御する。特に、表示制御部343は、マッチング処理部342によって算出されたカメラポーズの変更量に基づいて3Dオブジェクトの姿勢および位置を調整することによって、計測画像と3Dオブジェクトを互いにマッチングさせた状態で表示させる。上記の説明では3Dオブジェクトのみの姿勢および位置を調整しているが、これに限らず、計測画像のみの姿勢および位置を調整したり、計測画像および3Dオブジェクトの姿勢および位置を調整したりしてもよい。計測部344は、指定部341によって指定された計測点に基づいて、計測処理を行う。図46に示す機能構成の一部または全部を、計測に必要な機能を実現するためのアナログ回路やデジタル回路を配置して構成した特定のハードウェアに置き換えることも可能である。
 上述したように、本実施形態によれば、参照図形(計測)と参照図形(3D)との幾何学計算を行い、幾何学計算の結果に基づいて、計測画像と3Dオブジェクトとの少なくとも一方の姿勢または位置を調整することによって、マッチングに必要な処理時間を低減することができる。
 また、参照点(計測)と参照点(3D)のそれぞれの点の指定された順番に基づいて参照点(計測)と参照点(3D)とを対応付けることによって、簡易な方法で両者の対応付けが可能となり、マッチングに必要な処理時間を低減することができる。
 また、計測画像上の参照図形(計測)と、3Dオブジェクト上の参照点(計測)によって構成される3角形をスクリーン平面に投影した参照図形(3D)との幾何学計算によるマッチングを行うことによって、マッチングの精度を維持しつつ、マッチングに必要な処理時間を低減することができる。
 また、ユーザが参照点(計測)を指定する際に3Dオブジェクトの透過率が大きく設定されることによって、ユーザが計測画像を見やすくすることができ、かつ、ユーザが参照点(計測)を指定しやすくすることができる。
 また、3Dマッチング処理中は処理負荷の高い3Dオブジェクトの再表示を行わず、3Dマッチング処理の終了時に3Dオブジェクトの再表示を行うことによって、マッチングに必要な処理時間を低減することができる。
 以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成は上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
 上記した画像処理装置、画像処理方法及びプログラムによれば、第1の図形と第2の図形との幾何学計算を行い、幾何学計算の結果に基づいて、計測対象物の画像と物体の画像との少なくとも一方の姿勢または位置を調整することによって、処理時間を低減することができる。
 1   ジェットエンジン
 2   ターニングツール
 3   内視鏡装置
 4   ビデオ端子ケーブル
 5   ビデオキャプチャカード
 6   PC
 7   LANケーブル
 10  タービンブレード
 20  内視鏡挿入部
 21  内視鏡装置本体
 22,25  モニタ(表示部)
 23  リモコン(入力装置)
 24  PC本体
 30a  撮像光学系
 30b  撮像素子
 31  画像信号処理装置
 32  光源
 33  湾曲制御ユニット
 34,35  制御用コンピュータ
 34a,35a  RAM
 34b  ROM
 34c,35c  CPU(指定部、計算部、調整部、計測部)
 34d,35d  ネットワークI/F
 34e  RS232C I/F
 34f  カードI/F
 35b  HDD
 35e  USB I/F
 340  撮像制御部
 341  指定部
 342  マッチング処理部
 343  表示制御部
 344  計測部

Claims (11)

  1.  計測対象物の画像と、前記計測対象物に対応する物体であって予め算出された3次元形状を有する前記物体の画像とを表示する表示部と、
     入力装置を介して入力される指示に基づいて、前記計測対象物の画像上の第1の点と前記物体の画像上の第2の点とを指定する指定部と、
     前記第1の点を基準とする第1の図形と、前記第2の点を基準とする第2の図形との幾何学計算を行う計算部と、
     前記幾何学計算の結果に基づいて、前記計測対象物の画像と前記物体の画像との少なくとも一方の姿勢または位置を調整する調整部と、
     前記姿勢または前記位置が調整された後、入力装置を介して入力される指示に基づいて指定された計測位置に対応する前記物体上の空間座標を算出し、算出した空間座標に基づいて、前記物体のサイズを算出する計測部と、
     を備える画像処理装置。
  2.  計測対象物の画像と、前記計測対象物に対応する物体であって予め算出された3次元形状を有する前記物体の画像とを表示する表示部と、
     入力装置を介して入力される指示に基づいて、前記計測対象物の画像上の第1の点を指定する指定部と、
     前記第1の点を基準とする第1の図形と、前記物体の画像と関連付けて記録されている第2の点を基準とする第2の図形との幾何学計算を行う計算部と、
     前記幾何学計算の結果に基づいて、前記計測対象物の画像と前記物体の画像との少なくとも一方の姿勢または位置を調整する調整部と、
     前記姿勢または前記位置が調整された後、入力装置を介して入力される指示に基づいて指定された計測位置に対応する前記物体上の空間座標を算出し、算出した空間座標に基づいて、前記物体のサイズを算出する計測部と、
     を備える画像処理装置。
  3.  前記第1の点および前記第2の点は、入力装置を介して入力される指示に基づいて指定された3点以上の点を含む請求項1に記載の画像処理装置。
  4.  前記計算部は、前記第1の点の指定された順番と、前記第2の点の指定された順番とに基づいて、前記第1の点と前記第2の点とを対応付けて前記幾何学計算を行う請求項3に記載の画像処理装置。
  5.  前記計算部は、前記第1の点を基準とする平面上の第1の図形と、前記第2の点に対応する前記物体の空間上の点を基準とする空間上の第2の図形との幾何学計算を行う請求項1~請求項4のいずれか一項に記載の画像処理装置。
  6.  前記計算部は、前記平面上の第1の図形と、前記空間上の第2の図形を前記平面に投影した第3の図形との幾何学計算を行う請求項5に記載の画像処理装置。
  7.  前記指定部はさらに、前記第1の点を指定する場合に、前記物体の画像の透過率を、前記第2の点を指定する場合の前記物体の画像の透過率よりも大きな透過率に設定する請求項1~請求項6のいずれか一項に記載の画像処理装置。
  8.  前記表示部は、前記計測対象物の画像と前記物体の画像とを表示した後、前記幾何学計算が終了するまで、前記計測対象物の画像と前記物体の画像の姿勢および位置を維持し、前記幾何学計算が終了した後、前記姿勢または前記位置が調整された前記計測対象物の画像と前記物体の画像を再表示する請求項1~請求項7のいずれか一項に記載の画像処理装置。
  9.  計測対象物の画像と、前記計測対象物に対応する物体であって予め算出された3次元形状を有する前記物体の画像とを表示部が表示するステップと、
     入力装置を介して入力される指示に基づいて、指定部が前記計測対象物の画像上の第1の点と前記物体の画像上の第2の点とを指定するステップと、
     前記第1の点を基準とする第1の図形と、前記第2の点を基準とする第2の図形との幾何学計算を計算部が行うステップと、
     前記幾何学計算の結果に基づいて、調整部が前記計測対象物の画像と前記物体の画像との少なくとも一方の姿勢または位置を調整するステップと、
     前記姿勢または前記位置が調整された後、計測部が、入力装置を介して入力される指示に基づいて指定された計測位置に対応する前記物体上の空間座標を算出し、算出した空間座標に基づいて、前記物体のサイズを算出するステップと、
     を備える画像処理方法。
  10.  前記第1の点および前記第2の点は、入力装置を介して入力される指示に基づいて指定された3点以上の点を含み、
     前記計算部は、前記第1の点の指定された順番と、前記第2の点の指定された順番とに基づいて、前記第1の点と前記第2の点とを対応付けて前記幾何学計算を行う
     請求項9に記載の画像処理方法。
  11.  計測対象物の画像と、前記計測対象物に対応する物体であって予め算出された3次元形状を有する前記物体の画像とを表示する表示部と、
     入力装置を介して入力される指示に基づいて、前記計測対象物の画像上の第1の点と前記物体の画像上の第2の点とを指定する指定部と、
     前記第1の点を基準とする第1の図形と、前記第2の点を基準とする第2の図形との幾何学計算を行う計算部と、
     前記幾何学計算の結果に基づいて、前記計測対象物の画像と前記物体の画像との少なくとも一方の姿勢または位置を調整する調整部と、
     前記姿勢または前記位置が調整された後、入力装置を介して入力される指示に基づいて指定された計測位置に対応する前記物体上の空間座標を算出し、算出した空間座標に基づいて、前記物体のサイズを算出する計測部と、
     としてコンピュータを機能させるためのプログラム。
PCT/JP2012/065124 2011-06-16 2012-06-13 画像処理装置、画像処理方法、およびプログラム WO2012173141A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP12800391.0A EP2722638B1 (en) 2011-06-16 2012-06-13 Image processing apparatus, image processing method
US14/102,455 US9275473B2 (en) 2011-06-16 2013-12-10 Image processing apparatus, image processing method, and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011-134341 2011-06-16
JP2011134341A JP5791976B2 (ja) 2011-06-16 2011-06-16 画像処理装置、画像処理方法、およびプログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/102,455 Continuation US9275473B2 (en) 2011-06-16 2013-12-10 Image processing apparatus, image processing method, and program

Publications (1)

Publication Number Publication Date
WO2012173141A1 true WO2012173141A1 (ja) 2012-12-20

Family

ID=47357127

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/065124 WO2012173141A1 (ja) 2011-06-16 2012-06-13 画像処理装置、画像処理方法、およびプログラム

Country Status (4)

Country Link
US (1) US9275473B2 (ja)
EP (1) EP2722638B1 (ja)
JP (1) JP5791976B2 (ja)
WO (1) WO2012173141A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3166083A2 (en) 2015-11-06 2017-05-10 Fujitsu Limited Superimposed display method and superimposed display apparatus
EP3239931A1 (en) 2016-03-29 2017-11-01 Fujitsu Limited Image processing apparatus and image processing method
JP2019106008A (ja) * 2017-12-12 2019-06-27 富士通株式会社 推定装置、推定方法、及び推定プログラム

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8908995B2 (en) * 2009-01-12 2014-12-09 Intermec Ip Corp. Semi-automatic dimensioning with imager on a portable device
US9779546B2 (en) 2012-05-04 2017-10-03 Intermec Ip Corp. Volume dimensioning systems and methods
US10007858B2 (en) 2012-05-15 2018-06-26 Honeywell International Inc. Terminals and methods for dimensioning objects
US10321127B2 (en) 2012-08-20 2019-06-11 Intermec Ip Corp. Volume dimensioning system calibration systems and methods
US9939259B2 (en) 2012-10-04 2018-04-10 Hand Held Products, Inc. Measuring object dimensions using mobile computer
US20140104413A1 (en) 2012-10-16 2014-04-17 Hand Held Products, Inc. Integrated dimensioning and weighing system
US9080856B2 (en) 2013-03-13 2015-07-14 Intermec Ip Corp. Systems and methods for enhancing dimensioning, for example volume dimensioning
US10228452B2 (en) 2013-06-07 2019-03-12 Hand Held Products, Inc. Method of error correction for 3D imaging device
US9480448B2 (en) 2014-07-23 2016-11-01 General Electric Company System and method for use in mapping a radiation dose applied in an angiography imaging procedure of a patient
USD771089S1 (en) * 2014-07-23 2016-11-08 General Electric Company Display screen or portion thereof with graphical user interface for a radiation dose mapping system
USD781886S1 (en) * 2014-07-25 2017-03-21 Adp, Llc Display screen or portion thereof with graphical user interface
USD773504S1 (en) * 2014-07-25 2016-12-06 Adp, Llc Display screen or portion thereof with graphical user interface
US9823059B2 (en) 2014-08-06 2017-11-21 Hand Held Products, Inc. Dimensioning system with guided alignment
US10775165B2 (en) 2014-10-10 2020-09-15 Hand Held Products, Inc. Methods for improving the accuracy of dimensioning-system measurements
US9779276B2 (en) 2014-10-10 2017-10-03 Hand Held Products, Inc. Depth sensor based auto-focus system for an indicia scanner
US10810715B2 (en) 2014-10-10 2020-10-20 Hand Held Products, Inc System and method for picking validation
US9762793B2 (en) 2014-10-21 2017-09-12 Hand Held Products, Inc. System and method for dimensioning
US9752864B2 (en) 2014-10-21 2017-09-05 Hand Held Products, Inc. Handheld dimensioning system with feedback
US9897434B2 (en) 2014-10-21 2018-02-20 Hand Held Products, Inc. Handheld dimensioning system with measurement-conformance feedback
US10060729B2 (en) 2014-10-21 2018-08-28 Hand Held Products, Inc. Handheld dimensioner with data-quality indication
JP2016163150A (ja) * 2015-02-27 2016-09-05 株式会社リコー 通信端末、面談システム、通信方法及びプログラム
US9786101B2 (en) 2015-05-19 2017-10-10 Hand Held Products, Inc. Evaluating image values
US10066982B2 (en) 2015-06-16 2018-09-04 Hand Held Products, Inc. Calibrating a volume dimensioner
US9857167B2 (en) 2015-06-23 2018-01-02 Hand Held Products, Inc. Dual-projector three-dimensional scanner
US20160377414A1 (en) 2015-06-23 2016-12-29 Hand Held Products, Inc. Optical pattern projector
US9835486B2 (en) 2015-07-07 2017-12-05 Hand Held Products, Inc. Mobile dimensioner apparatus for use in commerce
EP3118576B1 (en) * 2015-07-15 2018-09-12 Hand Held Products, Inc. Mobile dimensioning device with dynamic accuracy compatible with nist standard
US10094650B2 (en) 2015-07-16 2018-10-09 Hand Held Products, Inc. Dimensioning and imaging items
US20170017301A1 (en) 2015-07-16 2017-01-19 Hand Held Products, Inc. Adjusting dimensioning results using augmented reality
US10249030B2 (en) 2015-10-30 2019-04-02 Hand Held Products, Inc. Image transformation for indicia reading
US10225544B2 (en) 2015-11-19 2019-03-05 Hand Held Products, Inc. High resolution dot pattern
US10143526B2 (en) * 2015-11-30 2018-12-04 Auris Health, Inc. Robot-assisted driving systems and methods
US10196922B2 (en) 2015-12-09 2019-02-05 General Electric Company System and method for locating a probe within a gas turbine engine
US10196927B2 (en) 2015-12-09 2019-02-05 General Electric Company System and method for locating a probe within a gas turbine engine
US10025314B2 (en) 2016-01-27 2018-07-17 Hand Held Products, Inc. Vehicle positioning and object avoidance
US10339352B2 (en) 2016-06-03 2019-07-02 Hand Held Products, Inc. Wearable metrological apparatus
US9940721B2 (en) 2016-06-10 2018-04-10 Hand Held Products, Inc. Scene change detection in a dimensioner
US10163216B2 (en) 2016-06-15 2018-12-25 Hand Held Products, Inc. Automatic mode switching in a volume dimensioner
US10909708B2 (en) 2016-12-09 2021-02-02 Hand Held Products, Inc. Calibrating a dimensioner using ratios of measurable parameters of optic ally-perceptible geometric elements
US11047672B2 (en) 2017-03-28 2021-06-29 Hand Held Products, Inc. System for optically dimensioning
US10489896B2 (en) 2017-11-14 2019-11-26 General Electric Company High dynamic range video capture using variable lighting
US10488349B2 (en) 2017-11-14 2019-11-26 General Electric Company Automated borescope insertion system
JP7017949B2 (ja) * 2018-03-02 2022-02-09 株式会社ディスコ 加工装置
US10775315B2 (en) 2018-03-07 2020-09-15 General Electric Company Probe insertion system
JP7061506B2 (ja) * 2018-04-23 2022-04-28 オリンパス株式会社 検査システム、検査方法及びプログラム
US10584962B2 (en) 2018-05-01 2020-03-10 Hand Held Products, Inc System and method for validating physical-item security
JP7063165B2 (ja) * 2018-07-26 2022-05-09 富士通株式会社 計測装置、計測方法及び計測プログラム
WO2020044523A1 (ja) * 2018-08-30 2020-03-05 オリンパス株式会社 記録装置、画像観察装置、観察システム、観察システムの制御方法、及び観察システムの作動プログラム
JP7314047B2 (ja) 2019-12-26 2023-07-25 三和シヤッター工業株式会社 開口部用の縦枠構造

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03102202A (ja) 1989-06-29 1991-04-26 Olympus Optical Co Ltd 撮像手段による対象部分の検査方法
JPH04218708A (ja) * 1990-06-04 1992-08-10 Olympus Optical Co Ltd 撮像手段を用いた対象物の測定方法
JPH08178636A (ja) * 1994-12-19 1996-07-12 Kawasaki Heavy Ind Ltd 形状評価方法および形状評価装置
JP2003187223A (ja) * 2001-12-19 2003-07-04 Hitachi Ltd 画像診断装置,画像診断システム及び画像診断方法
JP2005173336A (ja) * 2003-12-12 2005-06-30 Olympus Corp 工業用内視鏡装置及びこれを用いた形状寸法測定方法
US20090096790A1 (en) 2007-10-11 2009-04-16 Mvtec Software Gmbh System and method for 3d object recognition

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5153721A (en) 1990-06-04 1992-10-06 Olympus Optical Co., Ltd. Method and apparatus for measuring an object by correlating displaced and simulated object images
US7581191B2 (en) * 1999-11-15 2009-08-25 Xenogen Corporation Graphical user interface for 3-D in-vivo imaging
US8073213B2 (en) * 2006-10-30 2011-12-06 General Electric Company Method for generating a registered image relative to a cardiac cycle and a respiratory cycle of a person
US8861834B2 (en) * 2007-03-09 2014-10-14 Omron Corporation Computer implemented method for recognizing an object based on a correspondence relationship between object feature points and pre-registered model feature points
CA2751853C (en) * 2009-02-24 2014-10-14 Bell Helicopter Textron Inc. System and method for mapping two-dimensional image data to a three-dimensional faceted model
US8531479B2 (en) * 2009-06-12 2013-09-10 Olympus Corporation Endoscope apparatus and program

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03102202A (ja) 1989-06-29 1991-04-26 Olympus Optical Co Ltd 撮像手段による対象部分の検査方法
JPH04218708A (ja) * 1990-06-04 1992-08-10 Olympus Optical Co Ltd 撮像手段を用いた対象物の測定方法
JPH08178636A (ja) * 1994-12-19 1996-07-12 Kawasaki Heavy Ind Ltd 形状評価方法および形状評価装置
JP2003187223A (ja) * 2001-12-19 2003-07-04 Hitachi Ltd 画像診断装置,画像診断システム及び画像診断方法
JP2005173336A (ja) * 2003-12-12 2005-06-30 Olympus Corp 工業用内視鏡装置及びこれを用いた形状寸法測定方法
US20090096790A1 (en) 2007-10-11 2009-04-16 Mvtec Software Gmbh System and method for 3d object recognition
JP2009093611A (ja) * 2007-10-11 2009-04-30 Mwtec Software Gmbh 三次元オブジェクト認識のためのシステムおよび方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3166083A2 (en) 2015-11-06 2017-05-10 Fujitsu Limited Superimposed display method and superimposed display apparatus
EP3340189A1 (en) 2015-11-06 2018-06-27 Fujitsu Limited Superimposed display method and superimposed display apparatus
US10304159B2 (en) 2015-11-06 2019-05-28 Fujitsu Limited Superimposed display method and superimposed display apparatus
EP3239931A1 (en) 2016-03-29 2017-11-01 Fujitsu Limited Image processing apparatus and image processing method
US10354402B2 (en) 2016-03-29 2019-07-16 Fujitsu Limited Image processing apparatus and image processing method
JP2019106008A (ja) * 2017-12-12 2019-06-27 富士通株式会社 推定装置、推定方法、及び推定プログラム
US10930068B2 (en) 2017-12-12 2021-02-23 Fujitsu Limited Estimation apparatus, estimation method, and non-transitory computer-readable storage medium for storing estimation program
JP7003617B2 (ja) 2017-12-12 2022-01-20 富士通株式会社 推定装置、推定方法、及び推定プログラム

Also Published As

Publication number Publication date
JP5791976B2 (ja) 2015-10-07
JP2013002956A (ja) 2013-01-07
EP2722638A1 (en) 2014-04-23
EP2722638B1 (en) 2019-10-09
US20140098091A1 (en) 2014-04-10
EP2722638A4 (en) 2014-12-10
US9275473B2 (en) 2016-03-01

Similar Documents

Publication Publication Date Title
JP5791976B2 (ja) 画像処理装置、画像処理方法、およびプログラム
JP2013167481A (ja) 画像処理装置およびプログラム
EP1435280B1 (en) A method and a system for programming an industrial robot
JP7238060B2 (ja) 情報処理装置及びその制御方法、並びに、プログラム
US20190026919A1 (en) Information processing apparatus, information processing method, and program
KR101867991B1 (ko) 다관절 오브젝트의 모션 에디팅 방법 및 장치
US8154548B2 (en) Information processing apparatus and information processing method
JP2020052790A (ja) 情報処理装置、情報処理方法、およびプログラム
KR20150133585A (ko) 3차원 영상의 단면 탐색 시스템 및 방법
JP2009087161A (ja) 画像処理装置、画像処理方法
US11055865B2 (en) Image acquisition device and method of operating image acquisition device
JPH04256185A (ja) 画像認識システムのサンプル画像収集方法
KR100908084B1 (ko) 피사체의 3차원 좌표 검출방법 및 그 방법을 컴퓨터에서실행시키기 위한 프로그램을 기록한 기록매체
JP2006215750A (ja) 画像処理方法、画像処理装置
JP6095429B2 (ja) 計測装置およびプログラム
Fuchs et al. Assistance for telepresence by stereovision-based augmented reality and interactivity in 3D space
WO2021171839A1 (ja) 画像表示装置、画像表示方法、及びプログラム
JP2018132847A (ja) 情報処理装置、情報処理方法、およびプログラム
BARON et al. APPLICATION OF AUGMENTED REALITY TOOLS TO THE DESIGN PREPARATION OF PRODUCTION.
JP2013096938A (ja) 画像処理装置、画像処理方法、およびプログラム
JP2023505322A (ja) ロボットをプログラムするための方法及びシステム
US6856325B2 (en) Information processing method and apparatus
JP2005186193A (ja) ロボットのキャリブレーション方法および三次元位置計測方法
JP2012154672A (ja) 画像処理方法、プログラム、および画像処理装置
JP2007101229A (ja) 3次元測定方法およびシステム並びにマニピュレータの制御方法および装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12800391

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE