Patent Description:
To measure a three-dimensional coordinate, only two cameras are required, as a three-dimensional coordinate can be computed from two two-dimensional images, provided that the measured point is visible in both images. However, typically the number of cameras is larger. This is because a larger number of cameras increases the coverage and accuracy of the measurement. The cameras are typically located so that they can see all features of the measured object, or at least as many of the features as possible. Correspondingly, it is common that a measured feature is not seen by all of the cameras. In addition to increasing the number of cameras, a plurality of other concepts, such as precise calibration and image processing algorithms, are known to improve the measurement accuracy. Furthermore, it is possible to plan the camera locations for particular objects or use more accurate cameras or specific lighting to improve the quality of images acquired from desired features.

Measuring machine vision systems are particularly good in that they recognize measured features similarly under different conditions. Thus, when an object is measured, features such as edges and holes will be detected similarly, even if the conditions change. Because of this, it is possible to accurately measure even small changes in the location or the shape of the object. Although the measurement results derived from the acquired images are precise, they cannot be compared with measurement results measured with other measurement tools, such as a coordinate measurement machine. This is because it is difficult to measure, for example, the absolute location of an edge by using conventional machine vision systems and methods. Although it is possible to accurately measure the relative change of size, location or other changes of the measured object, it is difficult to measure the same change on an absolute scale instead of the relative difference.

In conventional solutions, these measurements are sometimes supplemented by accurately measuring the location of the measured object or by placing the measured object in a measurement jig so that the accurate location is known. When the location is exactly known, it is possible to measure at least some of the absolute measures of the object to be measured. One method is to make a reference object ("golden object") that is manufactured as accurately as possible to meet the nominal dimensions of the object. Another way is to measure a reference part accurately with an absolute reference measuring system and add measured differences to the reference part values, thus getting results comparable to the absolute scale.

These approaches, however, may be problematic if there is a need for measuring different types of objects or a large number of objects. The measurements will be slow if the measured object needs to be accurately positioned before the measurement can be done. Correspondingly, if there is a need to measure different types of objects, there may also be a need for different types of jigs or other positioning means that may need to be changed between the measurements. All these mechanical methods are expensive and subject to wear and tear. Even if the use of mechanical jigs was avoided by suitable mathematical or optical positioning methods, there would still be a need for an absolute reference measuring system that is inexpensive to purchase and use.

<CIT> discloses an assembly facility inspection method for inspecting a state of an assembly facility including one or more assembly jigs used for assembling a desired part. <CIT> discloses an object-image alignment data generating method for use in an object recognition system. <CIT> discloses a method of calibrating depth camera. <CIT> discloses a method for machine vision inspection. <CIT> discloses a system and method for analyzing 3D captured image data of scanned surfaces to locate object of interest, such as solder balls.

A machine vision system using a computer generated virtual reference object is disclosed. When the exact measures of the virtual reference object are known, the machine vision system is capable of measuring
differences on an absolute scale. In the machine vision system, a virtual reference object is produced based on computer drawings. The computer generated virtual reference object is further processed in order to achieve high photorealistic accuracy. The processing may involve combining portions from an image of a manufactured real object or computationally producing an image that looks like a real measured object. When
the computer-generated virtual reference object is based on a model drawing, it does not include inaccuracies caused by manufacturing tolerances but includes all features and characteristics of the object as they were designed.

In an aspect a method for measuring an object is disclosed. The method comprises receiving a three-dimensional computer generated virtual reference object, comprising one or more reference images, that are computer generated views of the virtual reference object, wherein the received virtual reference object is generated based on a model drawing of the object and the virtual reference object comprises exact coordinates of the object, wherein the exact coordinates comprise coordinates of at least one discrete point; acquiring at least two images of the object, wherein the acquired at least two images are acquired with at least two different viewing sensors; determining a three-dimensional location of at least one discrete point on the object based on the acquired images, wherein the determined three-dimensional location is in the same coordinate system with the three-dimensional computer generated virtual reference object; determining the corresponding discrete point coordinates on the virtual reference object; and based on the determined location of at least one discrete point on the acquired images and corresponding exact coordinates on the virtual reference object, computing the absolute scale location of at least one discrete point on the object.

In the aspect the method further comprises generating the computer generated virtual reference object based on the model drawing of the object. The generating further comprises receiving additional information comprising at least one of the following: lighting setting information, object material information, or object color information. In another embodiment the generating further comprises acquiring at least one image of a manufactured object; generating a projection view based on a model drawing, wherein the projection view corresponds with the direction of acquiring at least one image of the manufactured object; and aligning at least a portion of at least one acquired image on the generated projection view.

The method as described above facilitates measuring objects in absolute scale without having an exact manufactured reference object. The method described above removes all problems relating to wearing of the reference object. It further helps removing the inaccuracies caused by measurement tolerances. These provide improved measurement quality with reduced cost.

In another embodiment the generating further comprises producing a photorealistic image of the object based on the model drawing and received additional information.

In an embodiment the method described above is implemented as a computer program comprising computer program code configured to perform a method as described above when the computer program is executed in a computing device.

In an embodiment a controller comprising at least one processor and at least one memory is disclosed. The at least one processor is configured to perform a method as described above. In a further embodiment a machine vision system is disclosed. The machine vision system comprises a housing; a camera system comprising a plurality of cameras inside the housing; a lighting system comprising a plurality of lighting devices inside the housing; and a controller as described above, wherein the controller is connected to the machine vision system and configured to perform a method as described above.

Using a computer generated virtual reference object provides several benefits. The computer generation may be performed without involving manufacturing tolerances. Thus, the computer generated virtual reference object matches exactly with the plans of the object. This is achieved without manufacturing a costly reference object and accurately measuring the manufactured reference object. Thus, the use of a computer generated virtual reference object increases the accuracy of measurements.

A further benefit of using the computer generated virtual reference object is that when the exact measures on an absolute scale are known, the differences observed in the measurements can be easily computed on an absolute scale. A further benefit of this is that when the reference object does not need to be measured, also the inaccuracies caused by the measurement tolerances can be avoided.

Conventional real reference objects are also prone to mechanical wearing and other problems that are caused by exposure to the manufacturing site environment. For example, a person performing the measurements may drop the reference object which may result in scratches and other mechanical defects. Furthermore, sometimes dirt and other impurities may cause the object look different. It is possible that in some cases, even exposure to sunlight may be a source of visible changes in the reference object. All these exposure related defects may be avoided by using a computer generated virtual reference object.

The accompanying drawings, which are included to provide a further understanding of the machine vision system and constitute a part of this specification, illustrate embodiments and together with the description help to explain the principles of the machine vision system. In the drawings:.

Reference will now be made in detail to the embodiments, examples of which are illustrated in the accompanying drawings.

In the following, first measurements involving a computer generated virtual reference object will be discussed. Then, two optional methods for preparing the computer generated virtual reference object will be discussed. The computer generated virtual reference object should be understood as one or more reference images, which are also called reference views, that are computer generated views of the virtual reference object. Thus, the computer generated virtual reference object should not be understood as one reference view but as a set comprising one or more reference views that show the object from various angles and possibly with different parameters. Furthermore, the computer generated reference model may also have several reference views from the same angle with different lighting or other settings. Furthermore, a person skilled in the art understands that the computer generated virtual reference object need not be a complete object. It is sufficient if the features to be measured are covered (areas of interest).

In the following description a machine vision system involving a plurality of cameras is discussed. However, the expression camera is used only for providing an understanding, as a conventional digital camera is typically suitable for the purpose. Instead of a conventional camera, also other types of viewing sensors that are able to produce an image that is suitable for comparison may be used. These include different types of special purpose cameras, for example a heat camera, scanner devices, digital x-ray imaging apparatuses, bendable imaging units, three-dimensional cameras and the like.

In <FIG>, a block diagram illustrating an example of a machine vision system is disclosed. In <FIG> a measurement station <NUM> is disclosed. The measurement station <NUM> includes four cameras 100a - 100d and three lighting devices 101a - 101c. The number of cameras and lighting devices is not limited to four and three but can be chosen freely. Typically, the number of cameras and lighting devices is higher. Cameras and lighting devices may be attached to one or more frames that are further attached to the measurement station <NUM>. Instead of frames, the cameras and lighting devices may also be directly attached to the walls of the measurement station <NUM>. The cameras and if needed, also the lighting devices, are calibrated using conventional calibration methods to a selected coordinate system.

The measurement station <NUM> further includes a conveyor <NUM> that is used to bring an object <NUM> to be measured inside the measurement station. The conveyor is just an example; the measured object may also be brought by using other means, such as an industrial robot, or it can be placed by a person performing measurements.

In this description the ambient light is assumed to be the lighting conditions of the hall or premises where the measurement station is located. Ambient light may be natural light from windows or lighting devices in the premises. It is beneficial that the measurement station <NUM> can be closed such that ambient light does not disturb the measurements, however, this is not always necessary. For example, if the measurement benefits from the exactly defined lighting arrangement the ambient light may be compensated. Using a powerful lighting arrangement it is possible to use the measurement station <NUM> even if some leaking ambient light may cause some variation in the measurement conditions. The closure of the measurement station <NUM> can be provided, for example, by using doors or curtains at conveyor openings if a conveyor is used. If the measured object is placed to a measurement platform by a person it is easy to manufacture tight measurement station where the ambient light is completely removed. If the ambient light cannot be completely removed additional lighting devices that are used for compensating the ambient light may be used.

The measurement station <NUM> is connected to a controller <NUM> by using a network connection <NUM>. The network connection may be wired or wireless. The controller may be arranged at the measurement station or it can be in a remote location. If the controller <NUM> is located at the measurement station <NUM> it can be operated remotely, for example, from a control room for controlling several systems of the manufacturing site. The controller <NUM> comprises at least one processor <NUM> and at least one memory <NUM>. The processor is configured to execute computer program code in order to perform measurements. The at least one memory <NUM> is configured to store computer program code and the related data, for example, the acquired measurement images and reference views. The controller <NUM> is typically connected to further computing devices, for example, for possible long term storage of the measurement images and measurement conditions.

The measurement station <NUM> may be used as it is described in the examples below with referrals to <FIG>. <FIG> discloses an example of a method using a computer generated virtual reference objects. <FIG> and <FIG> disclose two examples of a method for generating reference views. The benefit of using computer generated virtual reference objects is that the size of the reference is accurately the indented size. This is because no virtual reference object is made and thus, there is no inaccuracies caused by manufacturing tolerances. A person skilled in the art understands that the presented examples are only examples and other similar principles may be used in measurements with a computer generated virtual reference object.

In <FIG> an example of a method is disclosed. In the method a measurement station, such as the measurement station of <FIG> or similar, may be used. In the measurement first at least one computer generated virtual reference object is received, step <NUM>. The computer generated virtual reference objects are may be received in form of two-dimensional projection views that can be easily compared with images acquired using conventional cameras. However, the model may also be three-dimensional so that two-dimensional projection views are created from the three-dimensional model or the three-dimensional locations of compared discrete features are computed first and then compared with the computer generated reference object. Similar principles may be used also for cameras involving two or more lenses. These cameras are often referred as three-dimensional cameras or stereo cameras. In the method only necessary views of the computer generated virtual reference objects need to be received. For example, when only one feature is measured it may be sufficient to have only one reference. However, typically there is a plurality of reference views corresponding with different camera views and possible object orientations.

The computer generated virtual reference object may be associated with related optional settings which are also received, step <NUM>. For example, if the computer generated virtual reference object involves, for example, a specific lighting setting using a subset of available lighting devices the subset of lights may be active when receiving the optional settings. The computer generated virtual reference object may have been generated using particular lighting devices and it is beneficial to use the same lighting devices when measuring as it will provide better correspondence between compared images.

After the reference views and possible optional settings have been received the measurement station is ready for receiving the first object to be measured, step <NUM>. This may be done by, for example, using a conveyor belt, measurement person, robotic device or any other means for placing the object to a measurement platform of the measurement station.

The object is measured by acquiring a plurality of images, step <NUM>. The images are then compared to respective reference views, step <NUM>. The comparison can be similar to the conventional comparison, wherein the result achieved is the relative differences. However, as the exact measures of the computer generated virtual reference object are known it is also possible to compute absolute measures of the measured object.

In the present application the absolute scale or absolute measures is meant to be an arrangement, wherein the measures can be expressed in exact units, such as, nanometers, millimeters or meters of the metric system.

When measuring the object locations of discrete points on the object are determined and compared with the computer generated virtual reference object. In the present application discrete points means points or features on the object. These include, for example, holes, grooves, edges, corners and similar points that have an exact location on the object and the exact location has been determined by the designer. Conventionally machine vision systems have used point clouds projected on the object. These point clouds are not discrete points on the object as their location is not known with relation to the object and they are not a part of the object.

When the discrete points are derived from the computer generated virtual reference object they are known to be in the ideally correct positions as there cannot be any deviations because of manufacturing tolerances.

In the following two different methods for providing a computer generated virtual reference object are disclosed. However, the following methods should be considered as examples of a method and any other method for generating computer generated virtual reference object may be used.

In <FIG> a method for providing a computer generated virtual reference object.

A starting point for generating a computer generated virtual reference object is receiving a model drawing of the object to be measured, step <NUM>. Typically this drawing is a CAD-drawing or other similar computer aided design tool drawing. The object to be measured may be any object that than can be measured using a computer controlled machine vision system. Typically these mechanical parts are used as parts for cars, mobile phones, household devices and any other devices that involve mechanical parts. The model drawing includes coordinates of the object. The coordinates of the drawing may be two-dimensional or three-dimensional. The coordinates exactly define the size of the in a coordinate system which corresponds with the coordinate system used in the measurements.

Then an object that has been manufactured according to the model drawing is received, step <NUM>. The object needs not be so called golden object but an ordinary object with the inaccuracies of the manufacturing process. Thus, it is known that the object is not ideal and has deviations from the ideal measures that are shown in the drawing.

The received drawing of the object is used for producing a projection model, step <NUM>. This projection is typically a two-dimensional view of the object. For generating a projection view the viewing direction and other viewing sensor related parameters must be known. These include, for example, viewing sensor location, rotation angles, focal length, lens errors and other parameters that may be necessary for producing a view corresponding with the camera image. When the identical parameters are for acquiring an image and producing the view the end results are in the same coordinate system and can be compared with each other without any further processing. However, further image processing may be used in some applications.

The process further involves acquiring an image or a plurality of images corresponding with the generated projection mode, step <NUM>. The acquired image comprises the object preferably in conditions corresponding with the actual measuring conditions.

Finally acquired images and projection models are combined so that at least portion of an image is selected and aligned accurately on the projection model. The aligning may be fully automated, however, it is also possible to align the necessary portions manually by hand. In order to be accurate enough acquired images and projection model may be zoomed so that aligning process can be done very accurately. The result of the combination may be used as a computer generated virtual reference object.

In the above the measurement settings are not discussed, however, they may be stored together with the computer generated virtual reference object. Thus, it is possible to use same lighting when measuring as it was used for acquiring images for generating the computer generated virtual reference object.

In <FIG> another method for generating a computer generated virtual reference object is disclosed. The method is initiated by receiving a model drawing of the object to be measured, step <NUM>. This is at least partially similar to the step <NUM> of <FIG>. The received model drawing may be a set of points indicated by coordinates which are interconnected with each other in order to create an object.

In order to provide the computer generated virtual reference object further object properties are received, step <NUM>. These further properties include, for example, the manufacturing material or materials, the color of the object and similar. Thus, it is possible to determine how the object reflects light and is seen on a camera.

As described above a typical measurement station typically comprises a plurality of independently controllable lighting devices. It is possible that the intensity, wavelength and other properties of the light can also be controlled. In order to generate a computer generated reference model that can be compared with images taken by a camera it is beneficial to know which lighting setting is used. Thus, it is beneficial to receive the lighting setting to be used, step <NUM>.

When generating a computer generated virtual reference object the viewing angle needs to be known. Thus, as with the method of <FIG> the information of the camera used for imaging the measured object needs to be known. This may be achieved, for example, by receiving camera identification, which can be used for retrieving the camera location and orientation, step <NUM>.

When the model drawing and the additional properties are known it is possible to generate the computer generated virtual reference object, step <NUM>. The computer generated virtual reference object should be visually as photorealistic as possible. This can be achieved using rendering techniques, such as scanline rendering or raytracing, which are methods for visible surface determination. Raytracing is a technique for generating an image, which may be used as the computer generated virtual reference object, by tracing the path of light through pixels in an image plane and simulating the effects of its encounters with virtual objects. Raytracing is capable of producing very high degree of visual realism and is suitable for the purpose. Raytracing techniques are computationally demanding, however, as the computer generated virtual reference object and the images representing the computer generated virtual reference object may be computed in advance the costly computation may be done in a computing center or similar and needs not to be done by the measurement station. Thus, very high accuracy of the model object may be achieved without a need for increase of computing power when compared with conventional solutions.

In the examples above the cameras and lighting devices may be conventional cameras and lighting devices, however, this needs not to be so. Thus, special cameras and special lighting devices designed for particular wavelengths may be used. Thus, the light does not need to be visible for human eye. Thus, a person skilled in the art understands that the computer generated virtual reference objects are provided as they are seen by the cameras. For example, in some measurements it may be useful to use ultraviolet or infrared wavelengths that are not seen by human eye. The similar principle applies to other viewing sensor types, such as scanners or other measurement devices that produce an image or a measurement that can be compared against computer generated virtual reference object. Thus, the expression image should be understood broadly to cover images generated with various image generation devices that may see the object differently.

In the examples above use of computer generated virtual reference object is disclosed. In the measurements the computer generated virtual reference object is used as it was conventional reference object.

When measuring the three-dimensional discrete point of the computer generated virtual reference object for a k × <NUM> dimensioned matrix V, wherein k represents the number of measurement points. The measured real object has a similar matrix R, however, these matrices are not in the same location or even in the same coordinate-system without positioning. Thus, the difference cannot be calculated directly by calculating R - V. However, as the intention is to achieve absolute scale result in form of matrix R, naturally within the available measurement tolerances, it is sufficient to achieve the R, for example, by using the following, or any other suitable similar, approach.

The problem of positioning may be solved by using conventional positioning methods. One example is conventional <NUM>-<NUM>-<NUM> method. Another commonly used option is to use a best fit method. These positioning methods are only examples and also others are available. The methods available may be of different accuracy and this may need to be taken into account when choosing the method.

For providing better understanding one way of computing the coordinates is disclosed in the following paragrahps. Let's assume that coordinates of an individual measurement points or features on acquired two-dimensinal images are: <MAT>.

The above mentioned method may be implemented as computer software comprising computer program code, which is executed in a computing device able to communicate with external devices. When the software is executed in a computing device it is configured to perform the above described inventive method. The software is embodied on a computer readable medium so that it can be provided to the computing device, such as the controller <NUM> of <FIG>.

As stated above, the components of the exemplary embodiments can include a computer readable medium or memories for holding instructions programmed according to the teachings of the present inventions and for holding data structures, tables, records, and/or other data described herein. The computer readable medium can include any suitable medium that participates in providing instructions to a processor for execution. Common forms of computer-readable media can include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, any other suitable magnetic medium, a CD-ROM, CD±R, CD±RW, DVD, DVD-RAM, DVD±RW, DVD±R, HD DVD, HD DVD-R, HD DVD-RW, HD DVD-RAM, Blu-ray Disc, any other suitable optical medium, a RAM, a PROM, an EPROM, a FLASH-EPROM, any other suitable memory chip or cartridge, a carrier wave or any other suitable medium from which a computer can read.

Claim 1:
A method for measuring an object comprising:
receiving (<NUM>) a three-dimensional computer generated virtual reference object comprising one or more reference images, that are computer generated views of the virtual reference object, wherein the received virtual reference object is generated based on a model drawing of the object and the virtual reference object comprises exact coordinates of the object, wherein the exact coordinates comprise coordinates of at least one discrete point;
acquiring (<NUM>) at least two images of the object, wherein the acquired at least two images are acquired with at least two different cameras;
determining (<NUM>) a three-dimensional location of at least one discrete point on the object based on the acquired images, wherein the determined three-dimensional location is in the same coordinate system with the three-dimensional computer generated virtual reference object;
determining (<NUM>) the corresponding discrete point coordinates on the virtual reference object; and
based on the determined location of at least one discrete point on the acquired images and corresponding exact coordinates on the virtual reference object,
computing (<NUM>) the absolute scale location of at least one discrete point on the object,
characterized in that, the method further comprises generating (<NUM> - <NUM>, <NUM> - <NUM>) the computer generated virtual reference object based on the model drawing of the object, wherein the generating further comprises receiving (<NUM>) additional information comprising at least one of the following: lighting setting information, object material information or object color information.