Spaces:
Running
Running
| import os | |
| import sys | |
| import numpy as np | |
| import ctypes, ctypes.util | |
| from enum import Enum | |
| from ctypes import * | |
| from numpy.ctypeslib import ndpointer | |
| def print_log(fmt): print("[LOG] \033[98m{}\033[00m" .format(fmt)) | |
| def print_info(fmt): print("[INFO] \033[92m{}\033[00m" .format(fmt)) | |
| def print_error(fmt): print("[ERR] \033[91m{}\033[00m" .format(fmt)) | |
| def print_warning(fmt): print("[WARNING] \033[93m{}\033[00m" .format(fmt)) | |
| class ENGINE_CODE(Enum): | |
| E_NO_FACE = 0 | |
| E_ACTIVATION_ERROR = -1 | |
| E_ENGINE_INIT_ERROR = -2 | |
| class Face(Structure): | |
| _fields_ = [("x", c_int32), ("y", c_int32), ("width", c_int32), ("height", c_int32), | |
| ("yaw", c_float), ("roll", c_float), ("pitch", c_float), | |
| ("age", c_int32), ("gender", c_int32), | |
| ("neutral", c_float), ("happy", c_float), ("angry", c_float), | |
| ("surprised", c_float), ("disgusted", c_float), ("sad", c_float), ("scared", c_float), | |
| ("masked", c_int32), ("left_eye_opened", c_int32), ("right_eye_opened", c_int32), | |
| ("featSize", c_int32), | |
| ("featData", c_ubyte * 512) | |
| ] | |
| libPath = os.path.abspath(os.path.dirname(__file__)) + '/libopyfacerecog.so' | |
| lib = cdll.LoadLibrary(libPath) | |
| getHWID = lib.getHWID | |
| getHWID.argtypes = [] | |
| getHWID.restype = c_char_p | |
| setLicenseKey = lib.setLicenseKey | |
| setLicenseKey.argtypes = [c_char_p] | |
| setLicenseKey.restype = c_int32 | |
| initSDK = lib.initSDK | |
| initSDK.argtypes = [c_char_p] | |
| initSDK.restype = c_int32 | |
| processImage = lib.processImage | |
| processImage.argtypes = [ndpointer(c_ubyte, flags='C_CONTIGUOUS'), c_int32, c_int32, POINTER(Face), c_int32] | |
| processImage.restype = c_int32 | |
| verifyFeat = lib.verifyFeat | |
| verifyFeat.argtypes = [c_int32, c_ubyte * 512, c_int32, c_ubyte * 512] | |
| verifyFeat.restype = c_float |