@regulaforensics/face-sdk
Version:
This is an npm module for Regula Face SDK. It allows you to easily compaire faces using your phone's camera.
333 lines (270 loc) • 9.76 kB
JavaScript
import { ImageQualityCharacteristicName } from './image_quality_characteristic_name'
import { ImageQualityCharacteristic } from './image_quality_characteristic'
import { ImageQualityRange } from './image_quality_range'
export class _Image {
imageWidth(range) {
return ImageQualityCharacteristic._create(
ImageQualityCharacteristicName.IMAGE_WIDTH,
{ recommended: range }
)
}
imageHeight(range) {
return ImageQualityCharacteristic._create(
ImageQualityCharacteristicName.IMAGE_HEIGHT,
{ recommended: range }
)
}
imageWidthToHeight(range) {
return ImageQualityCharacteristic._create(
ImageQualityCharacteristicName.IMAGE_WIDTH_TO_HEIGHT,
{ recommended: range }
)
}
imageChannelsNumber(channelsNumber) {
return ImageQualityCharacteristic._create(
ImageQualityCharacteristicName.IMAGE_CHANNELS_NUMBER,
{ recommended: ImageQualityRange.withValue(channelsNumber) }
)
}
paddingRatio(range) {
return ImageQualityCharacteristic._create(
ImageQualityCharacteristicName.PADDING_RATIO,
{ recommended: range }
)
}
artFace() {
return ImageQualityCharacteristic._create(
ImageQualityCharacteristicName.ART_FACE,
)
}
allRecommended() {
return [this.artFace()]
}
}
export class _HeadSizeAndPosition {
faceMidPointHorizontalPosition() {
return ImageQualityCharacteristic._create(ImageQualityCharacteristicName.FACE_MID_POINT_HORIZONTAL_POSITION)
}
faceMidPointVerticalPosition() {
return ImageQualityCharacteristic._create(ImageQualityCharacteristicName.FACE_MID_POINT_VERTICAL_POSITION)
}
headWidthRatio() {
return ImageQualityCharacteristic._create(ImageQualityCharacteristicName.HEAD_WIDTH_RATIO)
}
headHeightRatio() {
return ImageQualityCharacteristic._create(ImageQualityCharacteristicName.HEAD_HEIGHT_RATIO)
}
eyesDistance() {
return ImageQualityCharacteristic._create(ImageQualityCharacteristicName.EYES_DISTANCE)
}
yaw() {
return ImageQualityCharacteristic._create(ImageQualityCharacteristicName.YAW)
}
pitch() {
return ImageQualityCharacteristic._create(ImageQualityCharacteristicName.PITCH)
}
roll() {
return ImageQualityCharacteristic._create(ImageQualityCharacteristicName.ROLL)
}
allRecommended() {
return [
this.faceMidPointHorizontalPosition(),
this.faceMidPointVerticalPosition(),
this.headHeightRatio(),
this.headWidthRatio(),
this.eyesDistance(),
this.yaw(),
this.pitch(),
this.roll(),
]
}
}
export class _FaceImage {
blurLevel() {
return ImageQualityCharacteristic._create(ImageQualityCharacteristicName.BLUR_LEVEL)
}
noiseLevel() {
return ImageQualityCharacteristic._create(ImageQualityCharacteristicName.NOISE_LEVEL)
}
unnaturalSkinTone() {
return ImageQualityCharacteristic._create(ImageQualityCharacteristicName.UNNATURAL_SKIN_TONE)
}
faceDynamicRange() {
return ImageQualityCharacteristic._create(ImageQualityCharacteristicName.FACE_DYNAMIC_RANGE)
}
allRecommended() {
return [
this.blurLevel(),
this.noiseLevel(),
this.unnaturalSkinTone(),
this.faceDynamicRange(),
]
}
}
export class _Eyes {
eyeRightClosed() {
return ImageQualityCharacteristic._create(ImageQualityCharacteristicName.EYE_RIGHT_CLOSED)
}
eyeLeftClosed() {
return ImageQualityCharacteristic._create(ImageQualityCharacteristicName.EYE_LEFT_CLOSED)
}
eyeRightOccluded() {
return ImageQualityCharacteristic._create(ImageQualityCharacteristicName.EYE_RIGHT_OCCLUDED)
}
eyeLeftOccluded() {
return ImageQualityCharacteristic._create(ImageQualityCharacteristicName.EYE_LEFT_OCCLUDED)
}
eyesRed() {
return ImageQualityCharacteristic._create(ImageQualityCharacteristicName.EYES_RED)
}
eyeRightCoveredWithHair() {
return ImageQualityCharacteristic._create(ImageQualityCharacteristicName.EYE_RIGHT_COVERED_WITH_HAIR)
}
eyeLeftCoveredWithHair() {
return ImageQualityCharacteristic._create(ImageQualityCharacteristicName.EYE_LEFT_COVERED_WITH_HAIR)
}
offGaze() {
return ImageQualityCharacteristic._create(ImageQualityCharacteristicName.OFF_GAZE)
}
allRecommended() {
return [
this.eyeRightClosed(),
this.eyeLeftClosed(),
this.eyeRightOccluded(),
this.eyeLeftOccluded(),
this.eyesRed(),
this.eyeRightCoveredWithHair(),
this.eyeLeftCoveredWithHair(),
this.offGaze(),
]
}
}
export class _ShadowsAndLightning {
tooDark() {
return ImageQualityCharacteristic._create(ImageQualityCharacteristicName.TOO_DARK)
}
tooLight() {
return ImageQualityCharacteristic._create(ImageQualityCharacteristicName.TOO_LIGHT)
}
faceGlare() {
return ImageQualityCharacteristic._create(ImageQualityCharacteristicName.FACE_GLARE)
}
shadowsOnFace() {
return ImageQualityCharacteristic._create(ImageQualityCharacteristicName.SHADOWS_ON_FACE)
}
allRecommended() {
return [
this.tooDark(),
this.tooLight(),
this.faceGlare(),
this.shadowsOnFace(),
]
}
}
export class _PoseAndExpression {
shouldersPose() {
return ImageQualityCharacteristic._create(ImageQualityCharacteristicName.SHOULDERS_POSE)
}
expressionLevel() {
return ImageQualityCharacteristic._create(ImageQualityCharacteristicName.EXPRESSION_LEVEL)
}
mouthOpen() {
return ImageQualityCharacteristic._create(ImageQualityCharacteristicName.MOUTH_OPEN)
}
smile() {
return ImageQualityCharacteristic._create(ImageQualityCharacteristicName.SMILE)
}
allRecommended() {
return [
this.shouldersPose(),
this.expressionLevel(),
this.mouthOpen(),
this.smile(),
]
}
}
export class _HeadOcclusion {
darkGlasses() {
return ImageQualityCharacteristic._create(ImageQualityCharacteristicName.DARK_GLASSES)
}
reflectionOnGlasses() {
return ImageQualityCharacteristic._create(ImageQualityCharacteristicName.REFLECTION_ON_GLASSES)
}
framesTooHeavy() {
return ImageQualityCharacteristic._create(ImageQualityCharacteristicName.FRAMES_TOO_HEAVY)
}
faceOccluded() {
return ImageQualityCharacteristic._create(ImageQualityCharacteristicName.FACE_OCCLUDED)
}
headCovering() {
return ImageQualityCharacteristic._create(ImageQualityCharacteristicName.HEAD_COVERING)
}
foreheadCovering() {
return ImageQualityCharacteristic._create(ImageQualityCharacteristicName.FOREHEAD_COVERING)
}
strongMakeup() {
return ImageQualityCharacteristic._create(ImageQualityCharacteristicName.STRONG_MAKEUP)
}
headphones() {
return ImageQualityCharacteristic._create(ImageQualityCharacteristicName.HEAD_PHONES)
}
medicalMask() {
return ImageQualityCharacteristic._create(ImageQualityCharacteristicName.MEDICAL_MASK)
}
allRecommended() {
return [
this.darkGlasses(),
this.reflectionOnGlasses(),
this.framesTooHeavy(),
this.faceOccluded(),
this.headCovering(),
this.foreheadCovering(),
this.strongMakeup(),
this.headphones(),
this.medicalMask(),
]
}
}
export class _Background {
backgroundUniformity() {
return ImageQualityCharacteristic._create(ImageQualityCharacteristicName.BACKGROUND_UNIFORMITY)
}
shadowsOnBackground() {
return ImageQualityCharacteristic._create(ImageQualityCharacteristicName.SHADOWS_ON_BACKGROUND)
}
otherFaces() {
return ImageQualityCharacteristic._create(ImageQualityCharacteristicName.OTHER_FACES)
}
backgroundColorMatch(params) {
return ImageQualityCharacteristic._create(
ImageQualityCharacteristicName.BACKGROUND_COLOR_MATCH,
{ color: params?.color }
)
}
allRecommended() {
return [
this.backgroundUniformity(),
this.shadowsOnBackground(),
this.otherFaces(),
this.backgroundColorMatch(),
]
}
}
export class ImageQualityGroup {
static get image() { return ImageQualityGroup._image }
static _image = new _Image()
static get headSizeAndPosition() { return ImageQualityGroup._headSizeAndPosition }
static _headSizeAndPosition = new _HeadSizeAndPosition()
static get faceImage() { return ImageQualityGroup._faceImage }
static _faceImage = new _FaceImage()
static get eyes() { return ImageQualityGroup._eyes }
static _eyes = new _Eyes()
static get shadowsAndLightning() { return ImageQualityGroup._shadowsAndLightning }
static _shadowsAndLightning = new _ShadowsAndLightning()
static get poseAndExpression() { return ImageQualityGroup._poseAndExpression }
static _poseAndExpression = new _PoseAndExpression()
static get headOcclusion() { return ImageQualityGroup._headOcclusion }
static _headOcclusion = new _HeadOcclusion()
static get background() { return ImageQualityGroup._background }
static _background = new _Background()
}