Data types
Data types
The SignatureEngine component must handle the following data types:
DynamicSignature
A signature can be supplied as:
- a SigObj signature object
- binary signature data
- signature data either as base-64 or hex-encoded text
SignatureImage
A signature image can be supplied in any common image format, including BMP, TIF, PNG, JPG etc.
It can be a scanned image of an ink-on-paper signature, or it can be an image that contains FSS data that's been steganographically embedded.
NB: Steganographic data has precedence over scanned images
Template
A template contains all the signing information for a single user. It includes the enrollment data for both types of signature (dynamic and static).
Templates are handled as BLOBs which are obfuscated and cannot be parsed except by the SignatureEngine. The BLOB data can be handled in either binary form or as base-64 encoded text.
ConfigurationOptions
Configuration options apply to all types of signatures. They are effective when a template is created but cannot be changed after the first signature has been enrolled. The enrollmentScore is the lowest found when comparing the most extreme signatures in the enrollment set. The updateInterval is defined in days here but must be converted to seconds internally.
Type | Name | Description |
---|---|---|
UINT | TemplateSize | Number of signatures needed for enrollment. Min = 3, Max = 12, Default = 6 |
FLOAT | EnrollmentScore | The minimum score needed to define a consistent set of signatures. Default = 0.2 |
UINT | UpdateInterval | The minimum number of days that must elapse before enrolled templates can be updated. Default = 30 days |
enum | SignatureStyle | Sets the classifier to the type of signatures expected Options: Cursive, Kanji, Auto (Auto not currently implemented in the engine) Default: Cursive |
ImageOptions
Image options are used to control the way in which static images are processed and don't affect dynamic data in any way.
Some cleaning options are processor-intensive and will increase the verification time.
Type | Name | Description |
---|---|---|
BOOL | RemoveSpeckle | Remove small dots produced by poor scanning or low-quality paper Default: FALSE |
BOOL | RemoveFold | Remove straight lines resulting from folds in the scanned paper Default: FALSE |
BOOL | RemoveBox | Remove the rectangular box defining the signature area Default: FALSE |
BOOL | RemoveSigningLine | Remove the printed signature line Default: FALSE |
FLOAT | MinSigningLineLength | Only applies when RemoveSigningLine is TRUE. Forces the line removal to ignore lines shorter than the given length in millimetres Default: 0 |
FLOAT | MaxSigningLineThickness | Only applies when RemoveSigningLine is TRUE. Forces the line removal to ignore lines that are thicker than the specified width in millimeters Default: 0 |
BOOL | AdjustContrast | Adjust the image contrast before extracting signature ink Default: FALSE |
INT | Contrast | Only applies when AdjustContrast is TRUE. Sets the contrast adjustment to be applied Default: 0, Min: -100, Max: 100 |
BOOL | SetImageResolution | The image resolution should normally be defined in the image metadata. However, some scanners fail to set the correct value and this option forces the correct value to be used Default: FALSE |
UINT | ImageResolution | The image resolution to be used when SetImageResolution is TRUE |
State
Note that there are three separate sets of enrollment: dynamic, static and mixed
Type | Name | Description |
---|---|---|
Enum | Blank | No signatures have been added |
Enum | Enrolling | One or more signatures have been verified but not enough for a consistent enrollment set |
Enum | Enrolled | Sufficient consistent signatures have been verified and the template is enrolled |
Enum | Updated | Fully enrolled and last signature verified was used to update the reference data |
EnrollmentStatus
Type | Name | Description |
---|---|---|
State | EnrollmentState | Condition of enrollment for this type of signature |
UINT | NumSignatures | Current number of signatures stored |
UINT | EnrollmentSize | Number of consistent signatures needed for enrollment |
NB: the NumSignatures could be equal to the number of signatures required for enrollment while the State is still Enrolling. This can occur if an excessively inconsistent set of reference signatures are enrolled.
TemplateStatus
The mixed data consists of comparisons between dynamic and static types of data. This is only needed transitionally and will never reach full enrollment so is not reported here.
Type | Name | Description |
---|---|---|
EnrollmentStatus | DynamicStatus | Current state of the dynamic reference data |
EnrollmentStatus | StaticStatus | Current state of the static reference data |
ComparisonType
Type | Name | Description |
---|---|---|
Enum | NoComparisonDone | No comparison was done (usually when the first signature is verified) |
Enum | Static | The static image comparison engine was used |
Enum | Dynamic | The dynamic signature comparison engine was used. |
Enum | Mixed | The static image comparison was used with one of the signatures being converted from dynamic to an artificial image |
InconsistencyType
Type | Name | Description |
---|---|---|
Enum | Consistent | When a verified signature is found to be a good match a score of 1.0 is returned |
Enum | Geometry | The overall shape of the verified signature differs from the reference signature |
Enum | LocalShape | Local inconsistencies in the shape of the signature were found |
Enum | Speed | The average speed of the signature is different |
Enum | Accelereation | The acceleration profile of the signature differs |
Enum | Pressure | The pressure profile is different |
Enum | Size | There are significant differences in the overall size of the signature |
Enum | SVM | The classification used a Support Vector Machine engine |
VerificationResult
Returned from the verifier when a signature is verified.
The MixedScore uses the static verifier to compare the reference signature from the dynamic and static sets. It is only available when both types of data are being used.
Type | Name | Description |
---|---|---|
FLOAT | Score | The comparison score, a value between 0 (inconsistent) and 1 (consistent) |
ComparisonType | Engine | The type of comparison engine used |
InconsistencyType | Inconsistency | The main type of difference found |
TemplateStatus | State | The enrollment status for each type of signature |
FLOAT | Complexity | Indicates the complexity of the last signature verified. The value lies in the range 0 (trivially simple) to 1 (very long and with many features). This only applies to dynamic signatures; images always have a complexity of 0 |
FLOAT | MixedScore | The verification score comparing the static and dynamic data when both types are being handled |
String | UpdatedTemplate | Updated template data as base-64 encoded text |