Cog3DCameraCalibrationValidator ClassCognex VisionPro
This class provides the ability to verify a set of camera calibrations accurately reflects the current intrinsic parameters for a set of cameras as well as the relative positions of the cameras. Note that the size of the set of camera calibrations and the size of the set of cameras can be 1.

The verification requires as input the original camera calibrations and a set of calibration features that have been extracted from a newly acquired set of images. The verification outputs the 2D and 3D residuals characterizing the current accuracy of the image acquisition system. These "current" accuracies can be compared to the "baseline" accuracies computed at the time of the original camera calibration. The results of the comparison determine whether or not the image acquisition system is still in calibration.

Due to the nature of the validation procedure (positioning a calibration plate in an arbitrary pose), the validation cannot determine if the world coordinate system has changed. Validation can only determine if the camera intrinsics are out of calibration, and if the camera positions RELATIVE TO EACH OTHER have changed.

Inheritance Hierarchy

System Object
  System MarshalByRefObject
    Cognex.VisionPro.Implementation CogObjectBase
      Cognex.VisionPro.Implementation CogSerializableObjectBase
        Cognex.VisionPro3D Cog3DCameraCalibrationValidator

Namespace: Cognex.VisionPro3D
Assembly: Cognex.VisionPro3D (in Cognex.VisionPro3D.dll) Version: 65.1.0.0
Syntax

[SerializableAttribute]
public class Cog3DCameraCalibrationValidator : CogSerializableObjectBase, 
	IDisposable

The Cog3DCameraCalibrationValidator type exposes the following members.

Constructors

  NameDescription
Public methodCog3DCameraCalibrationValidator 
Construct this default Cog3DCameraCalibrationValidator.
Public methodCog3DCameraCalibrationValidator(Cog3DCameraCalibrationValidator)
Protected methodCog3DCameraCalibrationValidator(SerializationInfo, StreamingContext)
Top
Methods

  NameDescription
Public methodCreateObjRef
Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.
(Inherited from MarshalByRefObject.)
Public methodDispose 
Protected methodDispose(Boolean)
Public methodEquals
Determines whether the specified Object is equal to the current Object.
(Inherited from Object.)
Public methodExecute
Use the specified calibration features and the specified camera calibrations to compute 2 camera calibration validation results. The first result (validationResultUsingOriginalCalibrations) contains the residuals when the specified camera calibrations are used. The second result (validationResultUsingRecomputedExtrinsics) contains the residuals after a new set of extrinsic parameters are computed using the specified calibration features. Note that for the case of a single camera, the two results should be exactly equal to each other.
Protected methodFinalize (Overrides Object Finalize .)
Protected methodGetAttributes
Implements the corresponding member of the ICustomTypeDescriptor interface. May be overridden in derived classes to provide custom type information.
(Inherited from CogObjectBase.)
Protected methodGetClassName
Implements the corresponding member of the ICustomTypeDescriptor interface. May be overridden in derived classes to provide custom type information.
(Inherited from CogObjectBase.)
Protected methodGetComponentName
Implements the corresponding member of the ICustomTypeDescriptor interface. May be overridden in derived classes to provide custom type information.
(Inherited from CogObjectBase.)
Protected methodGetConverter
Implements the corresponding member of the ICustomTypeDescriptor interface. May be overridden in derived classes to provide custom type information.
(Inherited from CogObjectBase.)
Protected methodGetDefaultEvent
Implements the corresponding member of the ICustomTypeDescriptor interface. May be overridden in derived classes to provide custom type information.
(Inherited from CogObjectBase.)
Protected methodGetDefaultProperty
Implements the corresponding member of the ICustomTypeDescriptor interface. May be overridden in derived classes to provide custom type information.
(Inherited from CogObjectBase.)
Protected methodGetEditor
Implements the corresponding member of the ICustomTypeDescriptor interface. May be overridden in derived classes to provide custom type information.
(Inherited from CogObjectBase.)
Protected methodGetEvents 
Implements the corresponding member of the ICustomTypeDescriptor interface. May be overridden in derived classes to provide custom type information.
(Inherited from CogObjectBase.)
Protected methodGetEvents( Attribute )
Implements the corresponding member of the ICustomTypeDescriptor interface. May be overridden in derived classes to provide custom type information.
(Inherited from CogObjectBase.)
Public methodGetHashCode
Serves as a hash function for a particular type.
(Inherited from Object.)
Public methodGetLifetimeService
Retrieves the current lifetime service object that controls the lifetime policy for this instance.
(Inherited from MarshalByRefObject.)
Protected methodGetObjectData (Overrides CogSerializableObjectBase GetObjectData(SerializationInfo, StreamingContext).)
Protected methodGetProperties 
Implements the corresponding member of the ICustomTypeDescriptor interface. May be overridden in derived classes to provide custom type information.
(Inherited from CogObjectBase.)
Protected methodGetProperties( Attribute )
Implements the corresponding member of the ICustomTypeDescriptor interface. May be overridden in derived classes to provide custom type information.
(Inherited from CogObjectBase.)
Protected methodGetPropertyOwner
Implements the corresponding member of the ICustomTypeDescriptor interface. May be overridden in derived classes to provide custom type information.
(Inherited from CogObjectBase.)
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodInitializeLifetimeService
Obtains a lifetime service object to control the lifetime policy for this instance.
(Inherited from MarshalByRefObject.)
Protected methodMemberwiseClone 
Creates a shallow copy of the current Object.
(Inherited from Object.)
Protected methodMemberwiseClone(Boolean)
Creates a shallow copy of the current MarshalByRefObject object.
(Inherited from MarshalByRefObject.)
Public methodToString
Returns a String that represents the current Object.
(Inherited from Object.)
Top
Remarks

A "baseline" validation should be performed immediately after camera calibration. That baseline validation step should involve multiple view sets so it is possible to estimate the distribution of 2D residuals and 3D residuals. The "baseline" validation measurements should be stored for future comparison.

Then, at some arbitrary time (usually after the system performed vision tasks for a period of time), the user acquires images of the same calibration plate in some set of (preferrably, the same) poses and executes camera calibration validation to get the "current" measurements. Finally, the user compares the "current" validation measurements with the "baseline".

If the "current" measurements agree with the "baseline" measurements to a satisfactory degree, then the system is in calibration and the user does not need to perform any recalibration. If the measurement computed using the "recomputed extrinsics" satisfactorily agrees, but the measurement computed using the existing "camera calibration" do not satisfactorily agrees, then the user needs to perform extrinsic calibration. If neither validation measurements agree, then the user needs to perform full recalibration.

See Also