@hmscore/react-native-hms-mlimage
Version:
React Native HMS ML Image Kit
590 lines (511 loc) • 19.9 kB
TypeScript
/*
* Copyright 2023-2024. Huawei Technologies Co., Ltd. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License")
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
declare module "@hmscore/react-native-hms-mlimage" {
export const HMSApplication = {
enableLogger(): Promise<Object>;,
disableLogger(): Promise<Object>;,
setApiKey(apiKey: string): Promise<Object>;,
getApiKey(): Promise<Object>;,
setAccessToken(token: string): Promise<Object>;,
getCountryCode(): Promise<Object>;,
setUserRegion(userRegion: int): Promise<Object>;
}
export declare enum HMSApplication {
UNKNOWN = -1,
SUCCESS = 0,
DISCARDED = 1,
INNER = 2,
INACTIVE = 3,
NOT_SUPPORTED = 4,
ILLEGAL_PARAMETER = 5,
OVERDUE = 6,
NO_FOUND = 7,
DUPLICATE_FOUND = 8,
NO_PERMISSION = 9,
INSUFFICIENT_RESOURCE = 10,
ANALYSIS_FAILURE = 11,
INTERRUPTED = 12,
EXCEED_RANGE = 13,
DATA_MISSING = 14,
AUTHENTICATION_REQUIRED = 15,
TFLITE_NOT_COMPATIBLE = 16,
INSUFFICIENT_SPACE = 17,
HASH_MISS = 18,
TOKEN_INVALID = 19,
FRAME_NULL = 20,
ANALYZER_NOT_AVAILABLE = 21,
CURRENT_ACTIVITY_NULL = 22,
CANCEL = 23,
FAILURE = 24,
DENY = 25,
STRING_PARAM_NULL = 26,
REMOTE_MODEL_NULL = 27,
ASR_RECOGNIZER_NULL = 28,
TTS_ENGINE_NULL = 30,
SOUND_DECT_NULL = 31,
CUSTOM_MODEL_SETTING_NULL = 32,
CUSTOM_MODEL_INPUT_NULL = 33,
CUSTOM_MODEL_EXECUTOR_SETTING_NULL = 34,
DATA_SET_NOT_VALID = 35,
LENS_ENGINE_NULL = 36,
LENS_HOLDER_NULL = 37
}
export const HMSFrame = {
getPreviewBitmap(frameConfiguration: Frame): Promise<Object>;,
readBitmap(frameConfiguration: Frame): Promise<Object>;,
rotate(quadrant: HMSFrame, fileUri: string): Promise<Object>;
}
export declare enum HMSFrame {
SCREEN_FIRST_QUADRANT = 0,
SCREEN_SECOND_QUADRANT = 1,
SCREEN_THIRD_QUADRANT = 2,
SCREEN_FOURTH_QUADRANT = 3,
IMAGE_FORMAT_NV21 = 17,
IMAGE_FORMAT_YV12 = 842094169
}
interface Frame {
bitmap: string,
bytes: Bytes,
byteBuffer: ByteBuffer,
filePath: string,
creator: Creator
}
interface Bytes {
frameProperty: FrameProperty,
values: number[],
}
interface ByteBuffer {
frameProperty: FrameProperty,
buffer: string,
}
interface Creator {
base64Bitmap: string,
itemIdentity: number,
quadrant: HMSFrame,
timeStamp: number,
framePropertyExt: FramePropertyExt,
writeByteBufferData: ByteBufferData
}
interface FrameProperty {
width: number,
height: number,
quadrant: HMSFrame,
formatType: HMSFrame,
itemIdentity: number,
timeStamp: number,
}
interface FramePropertyExt {
lensId: number,
maxZoom: number,
zoom: number,
bottom: number,
left: number,
right: number,
top: number,
}
interface ByteBufferData {
width: number,
height: number,
data: string,
formatType: HMSFrame,
}
export const HMSSceneDetection = {
analyzeFrame(isStop: boolean, confidence: number, frameConfiguration: FrameConfiguration): Promise<object>;,
asyncAnalyzeFrame(isStop: boolean, confidence: number, frameConfiguration: FrameConfiguration): Promise<object>;,
};
export const HMSTextImageSuperResolution = {
analyzeFrame(isStop: boolean, frameConfiguration: FrameConfiguration): Promise<object>;,
asyncAnalyzeFrame(isStop: boolean, frameConfiguration: FrameConfiguration): Promise<object>;,
};
export const HMSDocumentSkewCorrection = {
analyzeFrame(isStop: boolean, frameConfiguration: FrameConfiguration): Promise<object>;,
asyncDocumentSkewDetect(isStop: boolean, frameConfiguration: FrameConfiguration): Promise<object>;,
asyncDocumentSkewCorrect(isStop: boolean, frameConfiguration: FrameConfiguration, points: Point[]): Promise<object>;,
syncDocumentSkewCorrect(isStop: boolean, frameConfiguration: FrameConfiguration, points: Point[]): Promise<object>;,
};
interface Point {
x: number;
y: number;
}
export const HMSLandmarkRecognition = {
asyncAnalyzeFrame(isStop: boolean, frameConfiguration: FrameConfiguration, landmarkAnalyzerConfiguration: LandmarkAnalyzerConfiguration): Promise<object>;,
};
interface LandmarkAnalyzerConfiguration {
largestNumOfReturns: number;
patternType: HMSLandmarkRecognition;
}
export declare enum HMSLandmarkRecognition {
STEADY_PATTERN = 1,
NEWEST_PATTERN = 2
}
export const HMSObjectRecognition = {
analyzeFrame(isStop: boolean, frameConfiguration: FrameConfiguration, objectAnalyzerSettingConfiguration: ObjectAnalyzerSettingConfiguration): Promise<object>;,
asyncAnalyzeFrame(isStop: boolean, frameConfiguration: FrameConfiguration, objectAnalyzerSettingConfiguration: ObjectAnalyzerSettingConfiguration): Promise<object>;,
};
export declare enum HMSObjectRecognition {
TYPE_PICTURE = 0,
TYPE_VIDEO = 1,
TYPE_OTHER = 0,
TYPE_GOODS = 1,
TYPE_FOOD = 2,
TYPE_FURNITURE = 3,
TYPE_PLANT = 4,
TYPE_PLACE = 5,
TYPE_FACE = 6
}
interface ObjectAnalyzerSettingConfiguration {
analyzerType: HMSObjectRecognition;
allowMultiResults: boolean;
allowClassification: boolean;
}
export const HMSImageSegmentation = {
analyzeFrame(isStop: boolean, frameConfiguration: FrameConfiguration, analyzerConfiguration: ImageSegmentationAnalyzerConfiguration): Promise<object>;,
asyncAnalyzeFrame(isStop: boolean, frameConfiguration: FrameConfiguration, analyzerConfiguration: ImageSegmentationAnalyzerConfiguration): Promise<object>;,
};
export declare enum HMSImageSegmentation {
TYPE_BACKGOURND = 0,
TYPE_HUMAN = 1,
TYPE_SKY = 2,
TYPE_GRASS = 3,
TYPE_FOOD = 4,
TYPE_CAT = 5,
TYPE_BUILD = 6,
TYPE_FLOWER = 7,
TYPE_WATER = 8,
TYPE_SAND = 9,
TYPE_MOUNTAIN = 10,
ALL = 0,
MASK_ONLY = 1,
FOREGROUND_ONLY = 2,
GRAYSCALE_ONLY = 3,
BODY_SEG = 0,
IMAGE_SEG = 1,
HAIR_SEG = 2
}
interface ImageSegmentationAnalyzerConfiguration {
analyzerType: HMSImageSegmentation;
scene: HMSImageSegmentation;
exact: boolean;
}
export const HMSImageClassification = {
analyzeFrame(isRemote: boolean, isStop: boolean, frameConfiguration: FrameConfiguration, analyzerSetting: ImageClassAnalyzerSettingsOnCloud|ImageClassAnalyzerSettingsOnDevice): Promise<object>;,
asyncAnalyzeFrame(isRemote: boolean, isStop: boolean, frameConfiguration: FrameConfiguration, analyzerSetting: ImageClassAnalyzerSettingsOnCloud|ImageClassAnalyzerSettingsOnDevice): Promise<object>;,
};
interface ImageClassAnalyzerSettingsOnCloud {
maxNumberOfReturns: number;
minAcceptablePossibility: number;
}
interface ImageClassAnalyzerSettingsOnDevice {
minAcceptablePossibility: number;
}
export const HMSImageSuperResolution = {
asyncAnalyzeFrame(isStop: boolean, frameConfiguration: FrameConfiguration, scale: HMSImageSuperResolution): Promise<object>;,
analyzeFrame(isStop: boolean, frameConfiguration: FrameConfiguration, scale: HMSImageSuperResolution): Promise<object>;,
};
export declare enum HMSImageSuperResolution {
ISR_SCALE_1X = 1.0,
ISR_SCALE_3X = 3.0
}
export const HMSProductVisionSearch = {
asyncAnalyzeFrame(isStop: boolean, frameConfiguration: FrameConfiguration, analyzerSetting: ProductVisionSearchAnalyzerSettings): Promise<object>;,
startProductVisionSearchCapturePlugin(pluginConfiguration: FrameConfiguration): Promise<object>;,
};
export declare enum HMSProductVisionSearch {
REGION_DR_CHINA = 1002,
REGION_DR_SINGAPORE = 1007,
REGION_DR_GERMAN = 1006,
REGION_DR_RUSSIA = 1005,
PRODUCT_ON_RESULT = "productOnResult"
}
interface ProductVisionSearchAnalyzerSettings {
maxResults: number;
productSetId: string;
region: HMSProductVisionSearch;
}
export const HMSLensEngine = {
createLensEngine(analyzerTag: number, analyzerConfig: TextAnalyzerConfiguration | FaceAnalyzerConfiguration2D | FaceAnalyzerConfiguration3D | SkeletonAnalyzerConfiguration | ClassificationAnalyzerConfigurationRemote | ClassificationAnalyzerConfigurationLocal | ObjectAnalyzerSettingConfiguration | SceneAnalyzerConfiguration | HandKeyPointAnalyzerConfiguration, lensConfig: LensConfiguration): Promise<object>;,
close(): Promise<object>;,
doZoom(scale: number): Promise<object>;,
getDisplayDimension(): Promise<object>;,
getLensType(): Promise<object>;,
photograph(): Promise<object>;,
release(): Promise<object>;,
run(): Promise<object>;,
runWithView(): Promise<object>;,
};
export declare enum HMSLensEngine {
FLASH_MODE_OFF = "off",
FLASH_MODE_ON = "on",
FLASH_MODE_AUTO = "auto",
FOCUS_MODE_CONTINUOUS_PICTURE = "continuous-picture",
FOCUS_MODE_CONTINUOUS_VIDEO = "continuous-video",
BACK_LENS = 0,
FRONT_LENS = 1,
LENS_ON_PHOTO_TAKEN = "lensOnPhotoTaken",
LENS_ON_CLICK_SHUTTER = "lensOnClickShutter",
LENS_SURFACE_ON_CREATED = "lensSurfaceOnCreated",
LENS_SURFACE_ON_CHANGED = "lensSurfaceOnChanged",
LENS_SURFACE_ON_DESTROY = "lensSurfaceOnDestroyed",
TEXT_TRANSACTOR_ON_DESTROY = "textTransactorOnDestroy",
TEXT_TRANSACTOR_ON_RESULT = "textTransactorOnResult",
FACE_2D_TRANSACTOR_ON_DESTROY = "face2dTransactorOnDestroy",
FACE_2D_TRANSACTOR_ON_RESULT = "face2dTransactorOnResult",
FACE_3D_TRANSACTOR_ON_DESTROY = "face3dTransactorOnDestroy",
FACE_3D_TRANSACTOR_ON_RESULT = "face3dTransactorOnResult",
CLASSIFICATION_TRANSACTOR_ON_DESTROY = "classificationTransactorOnDestroy",
CLASSIFICATION_TRANSACTOR_ON_RESULT = "classificationTransactorOnResult",
OBJECT_TRANSACTOR_ON_DESTROY = "objectTransactorOnDestroy",
OBJECT_TRANSACTOR_ON_RESULT = "objectTransactorOnResult",
SCENE_TRANSACTOR_ON_DESTROY = "sceneTransactorOnDestroy",
SCENE_TRANSACTOR_ON_RESULT = "sceneTransactorOnResult",
SKELETON_TRANSACTOR_ON_DESTROY = "skeletonTransactorOnDestroy",
SKELETON_TRANSACTOR_ON_RESULT = "skeletonTransactorOnResult",
HAND_TRANSACTOR_ON_DESTROY = "handTransactorOnDestroy",
HAND_TRANSACTOR_ON_RESULT = "handTransactorOnResult",
GESTURE_TRANSACTOR_ON_DESTROY = "gestureTransactorOnDestroy",
GESTURE_TRANSACTOR_ON_RESULT = "gestureTransactorOnResult",
LENS_TEXT_ANALYZER = 0,
LENS_FACE_2D_ANALYZER = 1,
LENS_FACE_3D_ANALYZER = 2,
LENS_SKELETON_ANALYZER = 3,
LENS_CLASSIFICATION_ANALYZER = 4,
LENS_OBJECT_ANALYZER = 5,
LENS_SCENE_ANALYZER = 6,
LENS_HAND_ANALYZER = 7,
LENS_GESTURE_ANALYZER = 8
}
interface TextAnalyzerConfiguration {
language: string;
OCRMode: HMSTextRecognition;
}
interface FaceAnalyzerConfiguration2D {
featureType: HMSFaceRecognition;
shapeType: HMSFaceRecognition;
keyPointType: HMSFaceRecognition;
performanceType: HMSFaceRecognition;
tracingMode: HMSFaceRecognition;
minFaceProportion: number;
isPoseDisabled: boolean;
isTracingAllowed: boolean;
isMaxSizeFaceOnly: boolean;
}
interface FaceAnalyzerConfiguration3D {
performanceType: HMSFaceRecognition;
isTracingAllowed: boolean;
}
interface SkeletonAnalyzerConfiguration {
analyzeType: HMSSkeletonDetection;
}
interface ClassificationAnalyzerConfigurationRemote {
maxNumberOfReturns: number;
minAcceptablePossibility: number;
}
interface ClassificationAnalyzerConfigurationLocal {
minAcceptablePossibility: number;
}
interface SceneAnalyzerConfiguration {
confidence: number;
}
interface HandKeyPointAnalyzerConfiguration {
sceneType: HMSHandKeypointDetection;
maxHandResults: HMSHandKeypointDetection;
}
interface LensConfiguration {
width: number;
height: number;
lensType: number;
fps: number;
automaticFocus: boolean;
flashMode: string;
focusMode: string;
}
export const HMSComposite = {
createCompositeAnalyzer(configuration: CompositeTextAnalyzerConfiguration | CompositeFaceAnalyzerFaceAnalyzerConfiguration2D | CompositeFaceAnalyzerConfiguration3D | CompositeSkeletonAnalyzerConfiguration | CompositeClassificationAnalyzerConfigurationRemote | CompositeClassificationAnalyzerConfigurationLocal | CompositeObjectAnalyzerSettingConfiguration | CompositeHandKeyPointAnalyzerConfiguration): Promise<object>;,
isAvailable(): Promise<object>;,
destroy(): Promise<object>;,
analyzeFrame(frameConfiguration: FrameConfiguration): Promise<object>;,
};
export declare enum CompositeFaceAnalyzerConstants {
MODE_TRACING_FAST = 1,
MODE_TRACING_ROBUST = 2,
TYPE_FEATURES = 1,
TYPE_FEATURE_AGE = 256,
TYPE_FEATURE_BEARD = 32,
TYPE_FEATURE_EMOTION = 4,
TYPE_FEATURE_EYEGLASS = 8,
TYPE_FEATURE_GENDAR = 128,
TYPE_FEATURE_HAT = 16,
TYPE_FEATURE_OPENCLOSEEYE = 64,
TYPE_KEYPOINTS = 1,
TYPE_PRECISION = 1,
TYPE_SHAPES = 2,
TYPE_SPEED = 2,
TYPE_UNSUPPORT_FEATURES = 2,
TYPE_UNSUPPORT_KEYPOINTS = 0,
TYPE_UNSUPPORT_SHAPES = 3,
TYPE_BOTTOM_OF_MOUTH = 1,
TYPE_LEFT_CHEEK = 2,
TYPE_LEFT_EAR = 3,
TYPE_LEFT_EYE = 5,
TYPE_LEFT_SIDE_OF_MOUTH = 6,
TYPE_RIGHT_CHEEK = 8,
TYPE_RIGHT_EAR = 9,
TYPE_RIGHT_EYE = 11,
TYPE_RIGHT_SIDE_OF_MOUTH = 12,
TYPE_TIP_OF_LEFT_EAR = 4,
TYPE_TIP_OF_NOSE = 7,
TYPE_TIP_OF_RIGHT_EAR = 10,
TYPE_ALL = 0,
TYPE_BOTTOM_OF_LEFT_EYEBROW = 4,
TYPE_BOTTOM_OF_LOWER_LIP = 8,
TYPE_BOTTOM_OF_NOSE = 12,
TYPE_BOTTOM_OF_RIGHT_EYEBROW = 5,
TYPE_BOTTOM_OF_UPPER_LIP = 10,
TYPE_BRIDGE_OF_NOSE = 13,
TYPE_FACE = 1,
TYPE_LEFT_EYE = 2,
TYPE_RIGHT_EYE = 3,
TYPE_TOP_OF_LEFT_EYEBROW = 6,
TYPE_TOP_OF_LOWER_LIP = 9,
TYPE_TOP_OF_RIGHT_EYEBROW = 7,
TYPE_TOP_OF_UPPER_LIP = 11
}
export declare enum CompositeTextAnalyzeConstants {
OCR_DETECT_MODE = 1,
OCR_TRACKING_MODE = 2,
OCR_LOOSE_SCENE = 1,
OCR_COMPACT_SCENE = 2,
ARC = "ARC",
NGON = "NGON",
LATIN = "rm",
ENGLISH = "en",
CHINESE = "zh",
JAPANESE = "ja",
KOREAN = "ko",
RUSSIAN = "ru",
GERMAN = "de",
FRENCH = "fr",
ITALIAN = "it",
PORTUGUESE = "pt",
SPANISH = "es",
POLISH = "pl",
NORWEGIAN = "no",
SWEDISH = "sv",
DANISH = "da",
TURKISH = "tr",
FINNISH = "fi",
THAI = "th",
ARABIC = "ar",
HINDI = "hi"
}
export declare enum CompositeSkeletonAnalyzerConstants {
TYPE_RIGHT_SHOULDER = 101,
TYPE_RIGHT_ELBOW = 102,
TYPE_RIGHT_WRIST = 103,
TYPE_LEFT_SHOULDER = 104,
TYPE_LEFT_ELBOW = 105,
TYPE_LEFT_WRIST = 106,
TYPE_RIGHT_HIP = 107,
TYPE_RIGHT_KNEE = 108,
TYPE_RIGHT_ANKLE = 109,
TYPE_LEFT_HIP = 110,
TYPE_LEFT_KNEE = 111,
TYPE_LEFT_ANKLE = 112,
TYPE_HEAD_TOP = 113,
TYPE_NECK = 114,
TYPE_NORMAL = 0,
TYPE_YOGA = 1,
}
export declare enum CompositeHandKeyPointAnalyzerConstants {
TYPE_WRIST = 0,
TYPE_THUMB_FIRST = 1,
TYPE_THUMB_SECOND = 2,
TYPE_THUMB_THIRD = 3,
TYPE_THUMB_FOURTH = 4,
TYPE_FOREFINGER_FIRST = 5,
TYPE_FOREFINGER_SECOND = 6,
TYPE_FOREFINGER_THIRD = 7,
TYPE_FOREFINGER_FOURTH = 8,
TYPE_MIDDLE_FINGER_FIRST = 9,
TYPE_MIDDLE_FINGER_SECOND = 10,
TYPE_MIDDLE_FINGER_THIRD = 11,
TYPE_MIDDLE_FINGER_FOURTH = 12,
TYPE_RING_FINGER_FIRST = 13,
TYPE_RING_FINGER_SECOND = 14,
TYPE_RING_FINGER_THIRD = 15,
TYPE_RING_FINGER_FOURTH = 16,
TYPE_LITTLE_FINGER_FIRST = 17,
TYPE_LITTLE_FINGER_SECOND = 18,
TYPE_LITTLE_FINGER_THIRD = 19,
TYPE_LITTLE_FINGER_FOURTH = 20,
TYPE_ALL = 0,
TYPE_KEYPOINT_ONLY = 1,
TYPE_RECT_ONLY = 2,
MAX_HANDS_NUM = 10
}
export declare enum CompositeObjectAnalyzerConstants {
TYPE_PICTURE = 0,
TYPE_VIDEO = 1,
TYPE_OTHER = 0,
TYPE_GOODS = 1,
TYPE_FOOD = 2,
TYPE_FURNITURE = 3,
TYPE_PLANT = 4,
TYPE_PLACE = 5,
TYPE_FACE = 6
}
interface CompositeFaceAnalyzerFaceAnalyzerConfiguration2D {
featureType: CompositeFaceAnalyzerConstants;
shapeType: CompositeFaceAnalyzerConstants;
keyPointType: CompositeFaceAnalyzerConstants;
performanceType: CompositeFaceAnalyzerConstants;
tracingMode: CompositeFaceAnalyzerConstants;
minFaceProportion: number;
isPoseDisabled: boolean;
isTracingAllowed: boolean;
isFace2D: true;
}
interface CompositeFaceAnalyzerConfiguration3D {
performanceType: CompositeFaceAnalyzerConstants;
isTracingAllowed: boolean;
isFace2D: false;
}
interface CompositeClassificationAnalyzerConfigurationRemote {
maxNumberOfReturns: number;
minAcceptablePossibility: number;
isRemote: true;
}
interface CompositeClassificationAnalyzerConfigurationLocal {
minAcceptablePossibility: number;
isRemote: false;
}
interface CompositeTextAnalyzerConfiguration {
language: string;
OCRMode: CompositeTextAnalyzeConstants;
}
interface CompositeSkeletonAnalyzerConfiguration {
analyzeType: CompositeSkeletonAnalyzerConstants;
}
interface CompositeHandKeyPointAnalyzerConfiguration {
sceneType: CompositeHandKeyPointAnalyzerConstants;
maxHandResults: CompositeHandKeyPointAnalyzerConstants;
}
interface CompositeObjectAnalyzerSettingConfiguration {
analyzerType: CompositeObjectAnalyzerConstants;
allowMultiResults: boolean;
allowClassification: boolean;
}
}