vision-camera-face-detection 1.2.5 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +2 -2
- package/VisionCameraFaceDetection.podspec +1 -1
- package/android/build.gradle +8 -18
- package/android/gradle.properties +4 -4
- package/lib/commonjs/Camera.js +19 -11
- package/lib/commonjs/Camera.js.map +1 -1
- package/lib/module/Camera.js +23 -15
- package/lib/module/Camera.js.map +1 -1
- package/lib/typescript/commonjs/src/Camera.d.ts.map +1 -1
- package/lib/typescript/module/src/Camera.d.ts.map +1 -1
- package/package.json +14 -12
- package/src/Camera.tsx +18 -18
- package/lib/commonjs/package.json +0 -1
- package/lib/module/package.json +0 -1
package/LICENSE
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c)
|
|
3
|
+
Copyright (c) 2025 Yudi Edri Alviska
|
|
4
4
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
5
5
|
of this software and associated documentation files (the "Software"), to deal
|
|
6
6
|
in the Software without restriction, including without limitation the rights
|
package/README.md
CHANGED
|
@@ -5,14 +5,14 @@ Plugin Face Detection for Vision Camera 4
|
|
|
5
5
|
## Installation
|
|
6
6
|
|
|
7
7
|
```sh
|
|
8
|
-
npm install vision-camera-face-detection
|
|
8
|
+
npm install @edritech/vision-camera-face-detection
|
|
9
9
|
```
|
|
10
10
|
|
|
11
11
|
## Usage
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
```js
|
|
15
|
-
import { multiply } from 'vision-camera-face-detection';
|
|
15
|
+
import { multiply } from '@edritech/vision-camera-face-detection';
|
|
16
16
|
|
|
17
17
|
// ...
|
|
18
18
|
|
package/android/build.gradle
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
buildscript {
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
ext.getExtOrDefault = {name ->
|
|
3
|
+
return rootProject.ext.has(name) ? rootProject.ext.get(name) : project.properties['VisionCameraFaceDetection_' + name]
|
|
4
|
+
}
|
|
4
5
|
|
|
5
6
|
repositories {
|
|
6
7
|
google()
|
|
@@ -8,16 +9,12 @@ buildscript {
|
|
|
8
9
|
}
|
|
9
10
|
|
|
10
11
|
dependencies {
|
|
11
|
-
classpath "com.android.tools.build:gradle:7.2
|
|
12
|
+
classpath "com.android.tools.build:gradle:8.7.2"
|
|
12
13
|
// noinspection DifferentKotlinGradleVersion
|
|
13
|
-
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$
|
|
14
|
+
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${getExtOrDefault('kotlinVersion')}"
|
|
14
15
|
}
|
|
15
16
|
}
|
|
16
17
|
|
|
17
|
-
def reactNativeArchitectures() {
|
|
18
|
-
def value = rootProject.getProperties().get("reactNativeArchitectures")
|
|
19
|
-
return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"]
|
|
20
|
-
}
|
|
21
18
|
|
|
22
19
|
def isNewArchitectureEnabled() {
|
|
23
20
|
return rootProject.hasProperty("newArchEnabled") && rootProject.getProperty("newArchEnabled") == "true"
|
|
@@ -30,10 +27,6 @@ if (isNewArchitectureEnabled()) {
|
|
|
30
27
|
apply plugin: "com.facebook.react"
|
|
31
28
|
}
|
|
32
29
|
|
|
33
|
-
def getExtOrDefault(name) {
|
|
34
|
-
return rootProject.ext.has(name) ? rootProject.ext.get(name) : project.properties["VisionCameraFaceDetection_" + name]
|
|
35
|
-
}
|
|
36
|
-
|
|
37
30
|
def getExtOrIntegerDefault(name) {
|
|
38
31
|
return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties["VisionCameraFaceDetection_" + name]).toInteger()
|
|
39
32
|
}
|
|
@@ -91,15 +84,12 @@ def kotlin_version = getExtOrDefault("kotlinVersion")
|
|
|
91
84
|
def tensor_version = getExtOrDefault("tensorVersion")
|
|
92
85
|
|
|
93
86
|
dependencies {
|
|
94
|
-
|
|
95
|
-
// For > 0.71, this will be replaced by `com.facebook.react:react-android:$version` by react gradle plugin
|
|
96
|
-
//noinspection GradleDynamicVersion
|
|
97
|
-
implementation "com.facebook.react:react-native:+"
|
|
87
|
+
implementation "com.facebook.react:react-android"
|
|
98
88
|
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
|
99
89
|
api project(":react-native-vision-camera")
|
|
100
|
-
implementation "androidx.annotation:annotation:1.8.
|
|
90
|
+
implementation "androidx.annotation:annotation:1.8.2"
|
|
101
91
|
implementation "androidx.camera:camera-core:1.3.4"
|
|
102
|
-
implementation "com.google.mlkit:face-detection:16.1.
|
|
92
|
+
implementation "com.google.mlkit:face-detection:16.1.7"
|
|
103
93
|
implementation "org.tensorflow:tensorflow-lite:$tensor_version"
|
|
104
94
|
implementation 'org.tensorflow:tensorflow-lite-support:0.1.0'
|
|
105
95
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
VisionCameraFaceDetection_kotlinVersion=
|
|
2
|
-
VisionCameraFaceDetection_minSdkVersion=
|
|
1
|
+
VisionCameraFaceDetection_kotlinVersion=2.0.21
|
|
2
|
+
VisionCameraFaceDetection_minSdkVersion=24
|
|
3
3
|
VisionCameraFaceDetection_targetSdkVersion=34
|
|
4
|
-
VisionCameraFaceDetection_compileSdkVersion=
|
|
5
|
-
VisionCameraFaceDetection_ndkversion=
|
|
4
|
+
VisionCameraFaceDetection_compileSdkVersion=35
|
|
5
|
+
VisionCameraFaceDetection_ndkversion=27.1.12297006
|
|
6
6
|
VisionCameraFaceDetection_tensorVersion=2.11.0
|
package/lib/commonjs/Camera.js
CHANGED
|
@@ -137,19 +137,27 @@ const Camera = exports.Camera = /*#__PURE__*/_react.default.forwardRef(({
|
|
|
137
137
|
/**
|
|
138
138
|
* Runs on detection callback on js thread
|
|
139
139
|
*/
|
|
140
|
-
const runOnJs =
|
|
141
|
-
|
|
142
|
-
|
|
140
|
+
// const runOnJs = useRunOnJS(faceDetectionCallback, [faceDetectionCallback]);
|
|
141
|
+
|
|
142
|
+
// const processorIOS = useFrameProcessor(
|
|
143
|
+
// (frame) => {
|
|
144
|
+
// 'worklet';
|
|
145
|
+
// runOnJs(detectFaces(frame), frame);
|
|
146
|
+
// // runAsync(frame, () => {
|
|
147
|
+
// // 'worklet';
|
|
148
|
+
// // runOnJs(detectFaces(frame), frame);
|
|
149
|
+
// // });
|
|
150
|
+
// },
|
|
151
|
+
// [runOnJs]
|
|
152
|
+
// );
|
|
143
153
|
|
|
144
|
-
runOnJs(detectFaces(frame), frame);
|
|
145
|
-
// runAsync(frame, () => {
|
|
146
|
-
// 'worklet';
|
|
147
|
-
// runOnJs(detectFaces(frame), frame);
|
|
148
|
-
// });
|
|
149
|
-
}, [runOnJs]);
|
|
150
154
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeVisionCamera.Camera, {
|
|
151
|
-
ref: ref
|
|
152
|
-
frameProcessor
|
|
155
|
+
ref: ref
|
|
156
|
+
// frameProcessor={
|
|
157
|
+
// Platform.OS === 'android' ? processorAndroid : processorIOS
|
|
158
|
+
// }
|
|
159
|
+
,
|
|
160
|
+
frameProcessor: processorAndroid,
|
|
153
161
|
pixelFormat: _reactNative.Platform.OS === 'android' ? 'yuv' : 'rgb',
|
|
154
162
|
...props
|
|
155
163
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeVisionCamera","_reactNativeWorkletsCore","_FaceDetector","_jsxRuntime","e","__esModule","default","useWorklet","func","dependencyList","worklet","React","useMemo","context","Worklets","defaultContext","createRunAsync","useRunInJS","createRunOnJS","Camera","exports","forwardRef","faceDetectionOptions","faceDetectionCallback","props","ref","detectFaces","useFaceDetector","isAsyncContextBusy","useSharedValue","logOnJs","log","error","console","message","JSON","stringify","runInJs","runOnAsyncContext","frame","faces","incrementRefCount","finally","decrementRefCount","value","runAsync","internal","processorAndroid","useFrameProcessor","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeVisionCamera","_reactNativeWorkletsCore","_FaceDetector","_jsxRuntime","e","__esModule","default","useWorklet","func","dependencyList","worklet","React","useMemo","context","Worklets","defaultContext","createRunAsync","useRunInJS","createRunOnJS","Camera","exports","forwardRef","faceDetectionOptions","faceDetectionCallback","props","ref","detectFaces","useFaceDetector","isAsyncContextBusy","useSharedValue","logOnJs","log","error","console","message","JSON","stringify","runInJs","runOnAsyncContext","frame","faces","incrementRefCount","finally","decrementRefCount","value","runAsync","internal","processorAndroid","useFrameProcessor","jsx","frameProcessor","pixelFormat","Platform","OS"],"sourceRoot":"../../src","sources":["Camera.tsx"],"mappings":"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","ignoreList":[]}
|
package/lib/module/Camera.js
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import { Platform } from 'react-native';
|
|
5
|
-
import { Camera as VisionCamera,
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
import { Camera as VisionCamera, useFrameProcessor } from 'react-native-vision-camera';
|
|
6
|
+
import { Worklets,
|
|
7
|
+
// useRunOnJS,
|
|
8
|
+
useSharedValue } from 'react-native-worklets-core';
|
|
9
9
|
import { useFaceDetector } from "./FaceDetector.js";
|
|
10
10
|
|
|
11
11
|
// types
|
|
@@ -134,19 +134,27 @@ export const Camera = /*#__PURE__*/React.forwardRef(({
|
|
|
134
134
|
/**
|
|
135
135
|
* Runs on detection callback on js thread
|
|
136
136
|
*/
|
|
137
|
-
const runOnJs = useRunOnJS(faceDetectionCallback, [faceDetectionCallback]);
|
|
138
|
-
|
|
139
|
-
|
|
137
|
+
// const runOnJs = useRunOnJS(faceDetectionCallback, [faceDetectionCallback]);
|
|
138
|
+
|
|
139
|
+
// const processorIOS = useFrameProcessor(
|
|
140
|
+
// (frame) => {
|
|
141
|
+
// 'worklet';
|
|
142
|
+
// runOnJs(detectFaces(frame), frame);
|
|
143
|
+
// // runAsync(frame, () => {
|
|
144
|
+
// // 'worklet';
|
|
145
|
+
// // runOnJs(detectFaces(frame), frame);
|
|
146
|
+
// // });
|
|
147
|
+
// },
|
|
148
|
+
// [runOnJs]
|
|
149
|
+
// );
|
|
140
150
|
|
|
141
|
-
runOnJs(detectFaces(frame), frame);
|
|
142
|
-
// runAsync(frame, () => {
|
|
143
|
-
// 'worklet';
|
|
144
|
-
// runOnJs(detectFaces(frame), frame);
|
|
145
|
-
// });
|
|
146
|
-
}, [runOnJs]);
|
|
147
151
|
return /*#__PURE__*/_jsx(VisionCamera, {
|
|
148
|
-
ref: ref
|
|
149
|
-
frameProcessor
|
|
152
|
+
ref: ref
|
|
153
|
+
// frameProcessor={
|
|
154
|
+
// Platform.OS === 'android' ? processorAndroid : processorIOS
|
|
155
|
+
// }
|
|
156
|
+
,
|
|
157
|
+
frameProcessor: processorAndroid,
|
|
150
158
|
pixelFormat: Platform.OS === 'android' ? 'yuv' : 'rgb',
|
|
151
159
|
...props
|
|
152
160
|
});
|
package/lib/module/Camera.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Platform","Camera","VisionCamera","useFrameProcessor","Worklets","
|
|
1
|
+
{"version":3,"names":["React","Platform","Camera","VisionCamera","useFrameProcessor","Worklets","useSharedValue","useFaceDetector","jsx","_jsx","useWorklet","func","dependencyList","worklet","useMemo","context","defaultContext","createRunAsync","useRunInJS","createRunOnJS","forwardRef","faceDetectionOptions","faceDetectionCallback","props","ref","detectFaces","isAsyncContextBusy","logOnJs","log","error","console","message","JSON","stringify","runInJs","runOnAsyncContext","frame","faces","incrementRefCount","finally","decrementRefCount","value","runAsync","internal","processorAndroid","frameProcessor","pixelFormat","OS"],"sourceRoot":"../../src","sources":["Camera.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Camera.d.ts","sourceRoot":"","sources":["../../../../src/Camera.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EACL,MAAM,IAAI,YAAY,
|
|
1
|
+
{"version":3,"file":"Camera.d.ts","sourceRoot":"","sources":["../../../../src/Camera.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EACL,MAAM,IAAI,YAAY,EAEvB,MAAM,4BAA4B,CAAC;AAUpC,OAAO,KAAK,EACV,WAAW,EACX,KAAK,EAEN,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AASjE,KAAK,YAAY,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AA4C1E;;;;;GAKG;AACH,eAAO,MAAM,MAAM;2BA/CM,oBAAoB;2BACpB,YAAY;oDAgKpC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Camera.d.ts","sourceRoot":"","sources":["../../../../src/Camera.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EACL,MAAM,IAAI,YAAY,
|
|
1
|
+
{"version":3,"file":"Camera.d.ts","sourceRoot":"","sources":["../../../../src/Camera.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EACL,MAAM,IAAI,YAAY,EAEvB,MAAM,4BAA4B,CAAC;AAUpC,OAAO,KAAK,EACV,WAAW,EACX,KAAK,EAEN,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AASjE,KAAK,YAAY,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AA4C1E;;;;;GAKG;AACH,eAAO,MAAM,MAAM;2BA/CM,oBAAoB;2BACpB,YAAY;oDAgKpC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vision-camera-face-detection",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"description": "Plugin Face Detection for Vision Camera 4",
|
|
5
5
|
"source": "./src/index.tsx",
|
|
6
6
|
"main": "./lib/commonjs/index.js",
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
"ios",
|
|
25
25
|
"cpp",
|
|
26
26
|
"*.podspec",
|
|
27
|
+
"react-native.config.js",
|
|
27
28
|
"!ios/build",
|
|
28
29
|
"!android/build",
|
|
29
30
|
"!android/gradle",
|
|
@@ -65,8 +66,9 @@
|
|
|
65
66
|
"devDependencies": {
|
|
66
67
|
"@commitlint/config-conventional": "^17.0.2",
|
|
67
68
|
"@evilmartians/lefthook": "^1.5.0",
|
|
69
|
+
"@react-native-community/cli": "15.0.1",
|
|
68
70
|
"@react-native/eslint-config": "^0.73.1",
|
|
69
|
-
"@release-it/conventional-changelog": "^
|
|
71
|
+
"@release-it/conventional-changelog": "^9.0.2",
|
|
70
72
|
"@types/jest": "^29.5.5",
|
|
71
73
|
"@types/react": "^18.2.44",
|
|
72
74
|
"commitlint": "^17.0.2",
|
|
@@ -76,12 +78,12 @@
|
|
|
76
78
|
"eslint-plugin-prettier": "^5.0.1",
|
|
77
79
|
"jest": "^29.7.0",
|
|
78
80
|
"prettier": "^3.0.3",
|
|
79
|
-
"react": "18.
|
|
80
|
-
"react-native": "0.
|
|
81
|
-
"react-native-builder-bob": "^0.
|
|
82
|
-
"react-native-vision-camera": "4.
|
|
83
|
-
"react-native-worklets-core": "1.
|
|
84
|
-
"release-it": "^
|
|
81
|
+
"react": "18.3.1",
|
|
82
|
+
"react-native": "0.77.0",
|
|
83
|
+
"react-native-builder-bob": "^0.36.0",
|
|
84
|
+
"react-native-vision-camera": "^4.6.3",
|
|
85
|
+
"react-native-worklets-core": "^1.5.0",
|
|
86
|
+
"release-it": "^17.10.0",
|
|
85
87
|
"turbo": "^1.10.7",
|
|
86
88
|
"typescript": "^5.2.2"
|
|
87
89
|
},
|
|
@@ -91,8 +93,8 @@
|
|
|
91
93
|
"peerDependencies": {
|
|
92
94
|
"react": "*",
|
|
93
95
|
"react-native": "*",
|
|
94
|
-
"react-native-vision-camera": ">= 4.
|
|
95
|
-
"react-native-worklets-core": ">= 1.
|
|
96
|
+
"react-native-vision-camera": ">= 4.6",
|
|
97
|
+
"react-native-worklets-core": ">= 1.5"
|
|
96
98
|
},
|
|
97
99
|
"workspaces": [
|
|
98
100
|
"example"
|
|
@@ -184,8 +186,8 @@
|
|
|
184
186
|
]
|
|
185
187
|
},
|
|
186
188
|
"create-react-native-library": {
|
|
187
|
-
"type": "module
|
|
189
|
+
"type": "legacy-module",
|
|
188
190
|
"languages": "kotlin-swift",
|
|
189
|
-
"version": "0.
|
|
191
|
+
"version": "0.47.0"
|
|
190
192
|
}
|
|
191
193
|
}
|
package/src/Camera.tsx
CHANGED
|
@@ -2,12 +2,11 @@ import React from 'react';
|
|
|
2
2
|
import { Platform } from 'react-native';
|
|
3
3
|
import {
|
|
4
4
|
Camera as VisionCamera,
|
|
5
|
-
// runAsync,
|
|
6
5
|
useFrameProcessor,
|
|
7
6
|
} from 'react-native-vision-camera';
|
|
8
7
|
import {
|
|
9
8
|
Worklets,
|
|
10
|
-
useRunOnJS,
|
|
9
|
+
// useRunOnJS,
|
|
11
10
|
useSharedValue,
|
|
12
11
|
} from 'react-native-worklets-core';
|
|
13
12
|
import { useFaceDetector } from './FaceDetector';
|
|
@@ -166,26 +165,27 @@ export const Camera = React.forwardRef(
|
|
|
166
165
|
/**
|
|
167
166
|
* Runs on detection callback on js thread
|
|
168
167
|
*/
|
|
169
|
-
const runOnJs = useRunOnJS(faceDetectionCallback, [faceDetectionCallback]);
|
|
170
|
-
|
|
171
|
-
const processorIOS = useFrameProcessor(
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
);
|
|
168
|
+
// const runOnJs = useRunOnJS(faceDetectionCallback, [faceDetectionCallback]);
|
|
169
|
+
|
|
170
|
+
// const processorIOS = useFrameProcessor(
|
|
171
|
+
// (frame) => {
|
|
172
|
+
// 'worklet';
|
|
173
|
+
// runOnJs(detectFaces(frame), frame);
|
|
174
|
+
// // runAsync(frame, () => {
|
|
175
|
+
// // 'worklet';
|
|
176
|
+
// // runOnJs(detectFaces(frame), frame);
|
|
177
|
+
// // });
|
|
178
|
+
// },
|
|
179
|
+
// [runOnJs]
|
|
180
|
+
// );
|
|
182
181
|
|
|
183
182
|
return (
|
|
184
183
|
<VisionCamera
|
|
185
184
|
ref={ref}
|
|
186
|
-
frameProcessor={
|
|
187
|
-
|
|
188
|
-
}
|
|
185
|
+
// frameProcessor={
|
|
186
|
+
// Platform.OS === 'android' ? processorAndroid : processorIOS
|
|
187
|
+
// }
|
|
188
|
+
frameProcessor={processorAndroid}
|
|
189
189
|
pixelFormat={Platform.OS === 'android' ? 'yuv' : 'rgb'}
|
|
190
190
|
{...props}
|
|
191
191
|
/>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"type":"commonjs"}
|
package/lib/module/package.json
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"type":"module"}
|