UNPKG

facezk-core

Version:

ZKP-AI Proof of Humanity: Live Selfie Check with Biometric Template Extraction and Fuzzy Hashing

217 lines 5.43 kB
/** * Human Library Integration * ZK-AI Proof of Humanity: Real Face Detection and Analysis */ import { Human } from '@vladmandic/human'; import type { BiometricTemplate } from '../types'; /** Enhanced face detection result with all Human features */ export interface HumanFaceResult { /** Face detection result */ face: any; /** Face mesh points (468 points) */ mesh: number[][]; /** Face bounding box */ box: [number, number, number, number]; /** Confidence score */ confidence: number; /** Emotion analysis */ emotion?: { emotion: string; confidence: number; scores?: any; }; /** Age and gender prediction */ ageGender?: { age: number; ageConfidence: number; gender: string; genderConfidence: number; }; /** Iris analysis */ iris?: { left: any; right: any; confidence: number; }; /** Anti-spoofing result */ antispoof?: { isReal: boolean; confidence: number; score: number; }; /** Face angles (3D pose) */ angles?: { yaw: number; pitch: number; roll: number; }; /** Face landmarks */ landmarks: number[][]; } /** Human library configuration */ export interface HumanConfig { /** Enable face detection */ face: { enabled: boolean; detector: { rotation: boolean; return: boolean; maxDetected: number; minConfidence: number; iouThreshold: number; skipFrames: number; skipTime: number; }; mesh: { enabled: boolean; maxDetected: number; minConfidence: number; return: boolean; }; iris: { enabled: boolean; maxDetected: number; minConfidence: number; return: boolean; }; emotion: { enabled: boolean; maxDetected: number; minConfidence: number; return: boolean; }; antispoof: { enabled: boolean; maxDetected: number; minConfidence: number; return: boolean; }; ageGender: { enabled: boolean; maxDetected: number; minConfidence: number; return: boolean; }; }; /** Enable body detection */ body: { enabled: boolean; maxDetected: number; minConfidence: number; return: boolean; }; /** Enable hand detection */ hand: { enabled: boolean; maxDetected: number; minConfidence: number; return: boolean; }; /** Enable gesture recognition */ gesture: { enabled: boolean; maxDetected: number; minConfidence: number; return: boolean; }; /** Backend configuration */ backend: string; /** Model base path */ modelBasePath: string; /** Debug mode */ debug: boolean; } /** Default Human configuration */ export declare const defaultHumanConfig: HumanConfig; /** Human library integration class */ export declare class HumanIntegration { private human; private config; private isInitialized; constructor(config?: Partial<HumanConfig>); /** * Initialize Human library */ initialize(): Promise<void>; /** * Detect faces and extract all features */ detectFaces(input: ImageData | HTMLImageElement | HTMLVideoElement | HTMLCanvasElement): Promise<HumanFaceResult[]>; /** * Extract comprehensive face result from Human detection */ private extractFaceResult; /** * Extract face mesh points (468 points) */ private extractFaceMesh; /** * Extract face angles (3D pose) */ private extractFaceAngles; /** * Extract face landmarks */ private extractLandmarks; /** * Extract emotion analysis */ private extractEmotion; /** * Extract age and gender prediction */ private extractAgeGender; /** * Extract iris analysis */ private extractIris; /** * Extract anti-spoofing result */ private extractAntispoof; /** * Convert Human.js face result to biometric template */ convertToBiometricTemplate(faceResult: HumanFaceResult): BiometricTemplate; /** * Extract face descriptor from mesh points */ private extractDescriptor; /** * Calculate face width from mesh */ private calculateFaceWidth; /** * Calculate face height from mesh */ private calculateFaceHeight; /** * Extract key facial features */ private extractKeyFeatures; /** * Normalize descriptor vector */ private normalizeDescriptor; /** * Calculate Euclidean distance between two points */ private euclideanDistance; /** * Get Human library instance */ getHuman(): Human; /** * Check if Human library is initialized */ isReady(): boolean; /** * Clean up resources */ dispose(): Promise<void>; /** * Draw face mesh and attributes overlay on a canvas context */ drawOverlay(ctx: CanvasRenderingContext2D, faceResult: HumanFaceResult): void; } //# sourceMappingURL=human-integration.d.ts.map