diff --git a/packages/mlkit-core/typings/objc!MLKitObjectDetection.d.ts b/packages/mlkit-core/typings/objc!MLKitObjectDetection.d.ts index 6d7cf1b..3303a08 100644 --- a/packages/mlkit-core/typings/objc!MLKitObjectDetection.d.ts +++ b/packages/mlkit-core/typings/objc!MLKitObjectDetection.d.ts @@ -24,4 +24,8 @@ declare class MLKObjectDetectorOptions extends MLKCommonObjectDetectorOptions { static alloc(): MLKObjectDetectorOptions; // inherited from NSObject static new(): MLKObjectDetectorOptions; // inherited from NSObject + loadCustomModel(path: string) { + return MLKLocalModel *localModel = + [[MLKLocalModel alloc] initWithPath:path]; + } } diff --git a/packages/mlkit-custom-image-labeling/.eslintrc.json b/packages/mlkit-custom-image-labeling/.eslintrc.json new file mode 100644 index 0000000..53c06c8 --- /dev/null +++ b/packages/mlkit-custom-image-labeling/.eslintrc.json @@ -0,0 +1,18 @@ +{ + "extends": ["../../.eslintrc.json"], + "ignorePatterns": ["!**/*", "node_modules/**/*"], + "overrides": [ + { + "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], + "rules": {} + }, + { + "files": ["*.ts", "*.tsx"], + "rules": {} + }, + { + "files": ["*.js", "*.jsx"], + "rules": {} + } + ] +} diff --git a/packages/mlkit-custom-image-labeling/README.md b/packages/mlkit-custom-image-labeling/README.md new file mode 100644 index 0000000..dfffcbc --- /dev/null +++ b/packages/mlkit-custom-image-labeling/README.md @@ -0,0 +1,37 @@ +# @nativescript/mlkit-image-labeling + +A plugin that is used with [@nativescript/mlkit-core](../mlkit-core/) to enable Image Labeling and provide the [ImageLabelingResult](#imagelabelingresult) type for the image labeling event data. + +## Contents +* [Installation](#installation) +* [Use @nativescript/mlkit-image-labeling](#use-nativescriptmlkit-image-labeling) +* [API](#api) + * [ImageLabelingResult](#imagelabelingresult) +* [License](#license) + +## Installation + +```cli +npm install @nativescript/mlkit-image-labeling +``` + +## Use @nativescript/mlkit-image-labeling + +For an example, read [Use @nativescript/mlkit-core](../mlkit-core#use-nativescriptmlkit-core) and [Image Labeling](../mlkit-core#image-labeling) + +## API + +### ImageLabelingResult + +The Image Labeling event data type. + +```ts +interface ImageLabelingResult { + text?: string + confidence?: number; + index?: number; +} +``` +## License + +Apache License Version 2.0 diff --git a/packages/mlkit-custom-image-labeling/index.ts b/packages/mlkit-custom-image-labeling/index.ts new file mode 100644 index 0000000..3b569ce --- /dev/null +++ b/packages/mlkit-custom-image-labeling/index.ts @@ -0,0 +1,5 @@ +export interface ImageLabelingResult { + text?: string + confidence?: number; + index?: number; +} \ No newline at end of file diff --git a/packages/mlkit-custom-image-labeling/package.json b/packages/mlkit-custom-image-labeling/package.json new file mode 100644 index 0000000..be145ef --- /dev/null +++ b/packages/mlkit-custom-image-labeling/package.json @@ -0,0 +1,35 @@ +{ + "name": "@nativescript/mlkit-image-labeling", + "version": "2.0.0", + "description": "NativeScript MLKit Image Labeling module", + "main": "index", + "typings": "index.d.ts", + "nativescript": { + "platforms": { + "ios": "6.0.0", + "android": "6.0.0" + } + }, + "repository": { + "type": "git", + "url": "https://github.com/NativeScript/mlkit.git" + }, + "keywords": [ + "NativeScript", + "JavaScript", + "TypeScript", + "iOS", + "Android" + ], + "author": { + "name": "NativeScript", + "email": "oss@nativescript.org" + }, + "bugs": { + "url": "https://github.com/NativeScript/mlkit/issues" + }, + "license": "Apache-2.0", + "homepage": "https://github.com/NativeScript/mlkit", + "readmeFilename": "README.md", + "bootstrapper": "@nativescript/plugin-seed" +} diff --git a/packages/mlkit-custom-image-labeling/platforms/android/include.gradle b/packages/mlkit-custom-image-labeling/platforms/android/include.gradle new file mode 100644 index 0000000..6bc0586 --- /dev/null +++ b/packages/mlkit-custom-image-labeling/platforms/android/include.gradle @@ -0,0 +1,4 @@ +dependencies { +implementation 'com.google.mlkit:object-detection-custom:17.0.0' +implementation 'com.google.mlkit:linkfirebase:17.0.0' +} diff --git a/packages/mlkit-custom-image-labeling/platforms/ios/Podfile b/packages/mlkit-custom-image-labeling/platforms/ios/Podfile new file mode 100644 index 0000000..051c5a4 --- /dev/null +++ b/packages/mlkit-custom-image-labeling/platforms/ios/Podfile @@ -0,0 +1,2 @@ +platform :ios, '11.0' +pod 'GoogleMLKit/ImageLabeling', '4.0.0' diff --git a/packages/mlkit-custom-image-labeling/project.json b/packages/mlkit-custom-image-labeling/project.json new file mode 100644 index 0000000..7b01eab --- /dev/null +++ b/packages/mlkit-custom-image-labeling/project.json @@ -0,0 +1,63 @@ +{ + "name": "mlkit-image-labeling", + "$schema": "../../node_modules/nx/schemas/project-schema.json", + "projectType": "library", + "sourceRoot": "packages/mlkit-image-labeling", + "targets": { + "build": { + "executor": "@nrwl/js:tsc", + "options": { + "outputPath": "dist/packages/mlkit-image-labeling", + "tsConfig": "packages/mlkit-image-labeling/tsconfig.json", + "packageJson": "packages/mlkit-image-labeling/package.json", + "main": "packages/mlkit-image-labeling/index.ts", + "assets": [ + "packages/mlkit-image-labeling/*.md", + "LICENSE", + { + "glob": "**/*", + "input": "packages/mlkit-image-labeling/platforms/", + "output": "./platforms/" + } + ] + }, + "dependsOn": [ + { + "target": "build.all", + "projects": "dependencies" + } + ] + }, + "build.all": { + "executor": "nx:run-commands", + "options": { + "commands": ["node tools/scripts/build-finish.ts mlkit-image-labeling"], + "parallel": false + }, + "outputs": ["{workspaceRoot}/dist/packages/mlkit-image-labeling"], + "dependsOn": [ + { + "target": "build.all", + "projects": "dependencies" + }, + { + "target": "build", + "projects": "self" + } + ] + }, + "focus": { + "executor": "nx:run-commands", + "options": { + "commands": ["nx g @nativescript/plugin-tools:focus-packages mlkit-image-labeling"], + "parallel": false + } + }, + "lint": { + "executor": "@nrwl/linter:eslint", + "options": { + "lintFilePatterns": ["packages/mlkit-image-labeling/**/*.ts"] + } + } + } +} diff --git a/packages/mlkit-custom-image-labeling/references.d.ts b/packages/mlkit-custom-image-labeling/references.d.ts new file mode 100644 index 0000000..98c5393 --- /dev/null +++ b/packages/mlkit-custom-image-labeling/references.d.ts @@ -0,0 +1 @@ +/// \ No newline at end of file diff --git a/packages/mlkit-custom-image-labeling/tsconfig.json b/packages/mlkit-custom-image-labeling/tsconfig.json new file mode 100644 index 0000000..a2ef9cc --- /dev/null +++ b/packages/mlkit-custom-image-labeling/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "outDir": "../../dist/out-tsc", + "rootDir": "." + }, + "exclude": ["**/*.spec.ts", "angular"], + "include": ["**/*.ts", "references.d.ts"] +} diff --git a/packages/mlkit-custom-object-detection/.eslintrc.json b/packages/mlkit-custom-object-detection/.eslintrc.json new file mode 100644 index 0000000..53c06c8 --- /dev/null +++ b/packages/mlkit-custom-object-detection/.eslintrc.json @@ -0,0 +1,18 @@ +{ + "extends": ["../../.eslintrc.json"], + "ignorePatterns": ["!**/*", "node_modules/**/*"], + "overrides": [ + { + "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], + "rules": {} + }, + { + "files": ["*.ts", "*.tsx"], + "rules": {} + }, + { + "files": ["*.js", "*.jsx"], + "rules": {} + } + ] +} diff --git a/packages/mlkit-custom-object-detection/README.md b/packages/mlkit-custom-object-detection/README.md new file mode 100644 index 0000000..bb3a0cd --- /dev/null +++ b/packages/mlkit-custom-object-detection/README.md @@ -0,0 +1,73 @@ +# @nativescript/mlkit-custom-object-detection + +A plugin that is used with [@nativescript/mlkit-core](../mlkit-core/) to enable Custom Object Detection and provide the [ObjectResult](#objectresult) type for the object detection event data. + +## Contents +* [Installation](#installation) +* [Use @nativescript/mlkit-custom-object-detection](#use-nativescriptmlkit-custom-object-detection) +* [CustomObjectResult](#customobjectresult) +* [API](#api) + * [CustomObjectResult] + +## Installation + +Install `@nativescript/mlkit-custom-object-detection` by running the following command: + +```cli +npm install @nativescript/mlkit-custom-object-detection +``` + +## Use @nativescript/mlkit-custom-object-detection + +For an example, read [Use @nativescript/mlkit-core](../mlkit-core#use-nativescriptmlkit-core) and [Custom Object Detection](../mlkit-core#custom-object-detection). + +## API + +### ObjectResult + +The type of object detection event data. + +```ts +interface CustomObjectResult { + trackingId?: number + bounds: Bounds + labels: CustomObjectLabeling[] +} +``` +#### CustomObjectLabeling + +```ts +interface CustomObjectLabeling { + text?: string + confidence?: number + index?: number +} +``` +#### Bounds + +```ts +interface Bounds { + origin: Origin; + size: Size; +} +``` +#### Origin + +```ts +export interface Origin { + x: number; + y: number; +} +``` +#### Size + +```ts +interface Size { + width: number; + height: number; +} +``` + +## License + +Apache License Version 2.0 diff --git a/packages/mlkit-custom-object-detection/index.ts b/packages/mlkit-custom-object-detection/index.ts new file mode 100644 index 0000000..eae3721 --- /dev/null +++ b/packages/mlkit-custom-object-detection/index.ts @@ -0,0 +1,28 @@ +export interface CustomObjectLabeling { + text?: string + confidence?: number + index?: number +} + + +export interface Origin { + x: number; + y: number; +} + +export interface Size { + width: number; + height: number; +} + +export interface Bounds { + origin: Origin; + size: Size; +} + + +export interface CustomObjectResult { + trackingId?: number + bounds: Bounds + labels: CustomObjectLabeling[] +} diff --git a/packages/mlkit-custom-object-detection/package.json b/packages/mlkit-custom-object-detection/package.json new file mode 100644 index 0000000..670d844 --- /dev/null +++ b/packages/mlkit-custom-object-detection/package.json @@ -0,0 +1,35 @@ +{ + "name": "@nativescript/mlkit-object-detection", + "version": "2.0.0", + "description": "NativeScript MLKit Object Detection module", + "main": "index", + "typings": "index.d.ts", + "nativescript": { + "platforms": { + "ios": "6.0.0", + "android": "6.0.0" + } + }, + "repository": { + "type": "git", + "url": "https://github.com/NativeScript/mlkit.git" + }, + "keywords": [ + "NativeScript", + "JavaScript", + "TypeScript", + "iOS", + "Android" + ], + "author": { + "name": "NativeScript", + "email": "oss@nativescript.org" + }, + "bugs": { + "url": "https://github.com/NativeScript/mlkit/issues" + }, + "license": "Apache-2.0", + "homepage": "https://github.com/NativeScript/mlkit", + "readmeFilename": "README.md", + "bootstrapper": "@nativescript/plugin-seed" +} diff --git a/packages/mlkit-custom-object-detection/platforms/android/include.gradle b/packages/mlkit-custom-object-detection/platforms/android/include.gradle new file mode 100644 index 0000000..92e7d50 --- /dev/null +++ b/packages/mlkit-custom-object-detection/platforms/android/include.gradle @@ -0,0 +1,4 @@ +dependencies { + implementation 'com.google.mlkit:object-detection-custom:17.0.0' + implementation 'com.google.mlkit:linkfirebase:17.0.0' +} diff --git a/packages/mlkit-custom-object-detection/platforms/ios/Podfile b/packages/mlkit-custom-object-detection/platforms/ios/Podfile new file mode 100644 index 0000000..537751f --- /dev/null +++ b/packages/mlkit-custom-object-detection/platforms/ios/Podfile @@ -0,0 +1,3 @@ +platform :ios, '11.0' +pod 'GoogleMLKit/ObjectDetectionCustom', '3.2.0' +pod 'GoogleMLKit/LinkFirebase', '3.2.0' diff --git a/packages/mlkit-custom-object-detection/project.json b/packages/mlkit-custom-object-detection/project.json new file mode 100644 index 0000000..0dd5d8a --- /dev/null +++ b/packages/mlkit-custom-object-detection/project.json @@ -0,0 +1,63 @@ +{ + "name": "mlkit-object-detection", + "$schema": "../../node_modules/nx/schemas/project-schema.json", + "projectType": "library", + "sourceRoot": "packages/mlkit-object-detection", + "targets": { + "build": { + "executor": "@nrwl/js:tsc", + "options": { + "outputPath": "dist/packages/mlkit-object-detection", + "tsConfig": "packages/mlkit-object-detection/tsconfig.json", + "packageJson": "packages/mlkit-object-detection/package.json", + "main": "packages/mlkit-object-detection/index.ts", + "assets": [ + "packages/mlkit-object-detection/*.md", + "LICENSE", + { + "glob": "**/*", + "input": "packages/mlkit-object-detection/platforms/", + "output": "./platforms/" + } + ] + }, + "dependsOn": [ + { + "target": "build.all", + "projects": "dependencies" + } + ] + }, + "build.all": { + "executor": "nx:run-commands", + "options": { + "commands": ["node tools/scripts/build-finish.ts mlkit-object-detection"], + "parallel": false + }, + "outputs": ["{workspaceRoot}/dist/packages/mlkit-object-detection"], + "dependsOn": [ + { + "target": "build.all", + "projects": "dependencies" + }, + { + "target": "build", + "projects": "self" + } + ] + }, + "focus": { + "executor": "nx:run-commands", + "options": { + "commands": ["nx g @nativescript/plugin-tools:focus-packages mlkit-object-detection"], + "parallel": false + } + }, + "lint": { + "executor": "@nrwl/linter:eslint", + "options": { + "lintFilePatterns": ["packages/mlkit-object-detection/**/*.ts"] + } + } + } +} diff --git a/packages/mlkit-custom-object-detection/references.d.ts b/packages/mlkit-custom-object-detection/references.d.ts new file mode 100644 index 0000000..98c5393 --- /dev/null +++ b/packages/mlkit-custom-object-detection/references.d.ts @@ -0,0 +1 @@ +/// \ No newline at end of file diff --git a/packages/mlkit-custom-object-detection/tsconfig.json b/packages/mlkit-custom-object-detection/tsconfig.json new file mode 100644 index 0000000..a2ef9cc --- /dev/null +++ b/packages/mlkit-custom-object-detection/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "outDir": "../../dist/out-tsc", + "rootDir": "." + }, + "exclude": ["**/*.spec.ts", "angular"], + "include": ["**/*.ts", "references.d.ts"] +}