vision-camera-face-detection 1.2.4 → 2.0.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/README.md +2 -2
- package/android/build.gradle +2 -2
- package/ios/FaceHelper.swift +109 -89
- package/ios/VisionCameraFaceDetectionModule.swift +2 -8
- package/ios/VisionCameraFaceDetectionPlugin.swift +2 -5
- package/lib/commonjs/{Camera.cjs → Camera.js} +23 -15
- package/lib/commonjs/Camera.js.map +1 -0
- package/lib/commonjs/{FaceDetector.cjs → FaceDetector.js} +1 -1
- package/lib/commonjs/{Tensor.cjs → Tensor.js} +1 -1
- package/lib/commonjs/{index.cjs → index.js} +4 -4
- package/lib/module/{Camera.mjs → Camera.js} +29 -19
- package/lib/module/Camera.js.map +1 -0
- package/lib/module/{FaceDetector.mjs → FaceDetector.js} +3 -1
- package/lib/module/FaceDetector.js.map +1 -0
- package/lib/module/{Tensor.mjs → Tensor.js} +3 -1
- package/lib/module/Tensor.js.map +1 -0
- package/lib/module/index.js +6 -0
- package/lib/module/index.js.map +1 -0
- package/lib/typescript/commonjs/package.json +1 -0
- package/lib/typescript/commonjs/src/Camera.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/FaceDetector.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/Tensor.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/index.d.ts.map +1 -0
- package/lib/typescript/module/package.json +1 -0
- package/lib/typescript/module/src/Camera.d.ts +17 -0
- package/lib/typescript/module/src/Camera.d.ts.map +1 -0
- package/lib/typescript/module/src/FaceDetector.d.ts +122 -0
- package/lib/typescript/module/src/FaceDetector.d.ts.map +1 -0
- package/lib/typescript/module/src/Tensor.d.ts +8 -0
- package/lib/typescript/module/src/Tensor.d.ts.map +1 -0
- package/lib/typescript/module/src/index.d.ts +4 -0
- package/lib/typescript/module/src/index.d.ts.map +1 -0
- package/package.json +19 -14
- package/src/Camera.tsx +19 -19
- package/lib/commonjs/Camera.cjs.map +0 -1
- package/lib/module/Camera.mjs.map +0 -1
- package/lib/module/FaceDetector.mjs.map +0 -1
- package/lib/module/Tensor.mjs.map +0 -1
- package/lib/module/index.mjs +0 -4
- package/lib/module/index.mjs.map +0 -1
- package/lib/typescript/src/Camera.d.ts.map +0 -1
- package/lib/typescript/src/FaceDetector.d.ts.map +0 -1
- package/lib/typescript/src/Tensor.d.ts.map +0 -1
- package/lib/typescript/src/index.d.ts.map +0 -1
- /package/lib/commonjs/{FaceDetector.cjs.map → FaceDetector.js.map} +0 -0
- /package/lib/commonjs/{Tensor.cjs.map → Tensor.js.map} +0 -0
- /package/lib/commonjs/{index.cjs.map → index.js.map} +0 -0
- /package/lib/typescript/{src → commonjs/src}/Camera.d.ts +0 -0
- /package/lib/typescript/{src → commonjs/src}/FaceDetector.d.ts +0 -0
- /package/lib/typescript/{src → commonjs/src}/Tensor.d.ts +0 -0
- /package/lib/typescript/{src → commonjs/src}/index.d.ts +0 -0
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
|
@@ -97,9 +97,9 @@ dependencies {
|
|
|
97
97
|
implementation "com.facebook.react:react-native:+"
|
|
98
98
|
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
|
99
99
|
api project(":react-native-vision-camera")
|
|
100
|
-
implementation "androidx.annotation:annotation:1.8.
|
|
100
|
+
implementation "androidx.annotation:annotation:1.8.2"
|
|
101
101
|
implementation "androidx.camera:camera-core:1.3.4"
|
|
102
|
-
implementation "com.google.mlkit:face-detection:16.1.
|
|
102
|
+
implementation "com.google.mlkit:face-detection:16.1.7"
|
|
103
103
|
implementation "org.tensorflow:tensorflow-lite:$tensor_version"
|
|
104
104
|
implementation 'org.tensorflow:tensorflow-lite-support:0.1.0'
|
|
105
105
|
}
|
package/ios/FaceHelper.swift
CHANGED
|
@@ -16,85 +16,85 @@ let inputHeight = 112
|
|
|
16
16
|
var interpreter: Interpreter? = nil
|
|
17
17
|
|
|
18
18
|
class FaceHelper {
|
|
19
|
-
static func processContours(from face: Face) -> [String:[[String:CGFloat]]] {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
let faceContoursTypesStrings = [
|
|
39
|
-
"FACE",
|
|
40
|
-
"LEFT_EYEBROW_TOP",
|
|
41
|
-
"LEFT_EYEBROW_BOTTOM",
|
|
42
|
-
"RIGHT_EYEBROW_TOP",
|
|
43
|
-
"RIGHT_EYEBROW_BOTTOM",
|
|
44
|
-
"LEFT_EYE",
|
|
45
|
-
"RIGHT_EYE",
|
|
46
|
-
"UPPER_LIP_TOP",
|
|
47
|
-
"UPPER_LIP_BOTTOM",
|
|
48
|
-
"LOWER_LIP_TOP",
|
|
49
|
-
"LOWER_LIP_BOTTOM",
|
|
50
|
-
"NOSE_BRIDGE",
|
|
51
|
-
"NOSE_BOTTOM",
|
|
52
|
-
"LEFT_CHEEK",
|
|
53
|
-
"RIGHT_CHEEK",
|
|
54
|
-
];
|
|
55
|
-
|
|
56
|
-
var faceContoursTypesMap: [String:[[String:CGFloat]]] = [:]
|
|
57
|
-
|
|
58
|
-
for i in 0..<faceContoursTypes.count {
|
|
59
|
-
let contour = face.contour(ofType: faceContoursTypes[i]);
|
|
60
|
-
|
|
61
|
-
var pointsArray: [[String:CGFloat]] = []
|
|
62
|
-
|
|
63
|
-
if let points = contour?.points {
|
|
64
|
-
for point in points {
|
|
65
|
-
let currentPointsMap = [
|
|
66
|
-
"x": point.x,
|
|
67
|
-
"y": point.y,
|
|
68
|
-
]
|
|
69
|
-
|
|
70
|
-
pointsArray.append(currentPointsMap)
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
faceContoursTypesMap[faceContoursTypesStrings[i]] = pointsArray
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
return faceContoursTypesMap
|
|
78
|
-
}
|
|
19
|
+
// static func processContours(from face: Face) -> [String:[[String:CGFloat]]] {
|
|
20
|
+
// let faceContoursTypes = [
|
|
21
|
+
// FaceContourType.face,
|
|
22
|
+
// FaceContourType.leftEyebrowTop,
|
|
23
|
+
// FaceContourType.leftEyebrowBottom,
|
|
24
|
+
// FaceContourType.rightEyebrowTop,
|
|
25
|
+
// FaceContourType.rightEyebrowBottom,
|
|
26
|
+
// FaceContourType.leftEye,
|
|
27
|
+
// FaceContourType.rightEye,
|
|
28
|
+
// FaceContourType.upperLipTop,
|
|
29
|
+
// FaceContourType.upperLipBottom,
|
|
30
|
+
// FaceContourType.lowerLipTop,
|
|
31
|
+
// FaceContourType.lowerLipBottom,
|
|
32
|
+
// FaceContourType.noseBridge,
|
|
33
|
+
// FaceContourType.noseBottom,
|
|
34
|
+
// FaceContourType.leftCheek,
|
|
35
|
+
// FaceContourType.rightCheek,
|
|
36
|
+
// ]
|
|
79
37
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
38
|
+
// let faceContoursTypesStrings = [
|
|
39
|
+
// "FACE",
|
|
40
|
+
// "LEFT_EYEBROW_TOP",
|
|
41
|
+
// "LEFT_EYEBROW_BOTTOM",
|
|
42
|
+
// "RIGHT_EYEBROW_TOP",
|
|
43
|
+
// "RIGHT_EYEBROW_BOTTOM",
|
|
44
|
+
// "LEFT_EYE",
|
|
45
|
+
// "RIGHT_EYE",
|
|
46
|
+
// "UPPER_LIP_TOP",
|
|
47
|
+
// "UPPER_LIP_BOTTOM",
|
|
48
|
+
// "LOWER_LIP_TOP",
|
|
49
|
+
// "LOWER_LIP_BOTTOM",
|
|
50
|
+
// "NOSE_BRIDGE",
|
|
51
|
+
// "NOSE_BOTTOM",
|
|
52
|
+
// "LEFT_CHEEK",
|
|
53
|
+
// "RIGHT_CHEEK",
|
|
54
|
+
// ];
|
|
55
|
+
|
|
56
|
+
// var faceContoursTypesMap: [String:[[String:CGFloat]]] = [:]
|
|
57
|
+
|
|
58
|
+
// for i in 0..<faceContoursTypes.count {
|
|
59
|
+
// let contour = face.contour(ofType: faceContoursTypes[i]);
|
|
60
|
+
|
|
61
|
+
// var pointsArray: [[String:CGFloat]] = []
|
|
62
|
+
|
|
63
|
+
// if let points = contour?.points {
|
|
64
|
+
// for point in points {
|
|
65
|
+
// let currentPointsMap = [
|
|
66
|
+
// "x": point.x,
|
|
67
|
+
// "y": point.y,
|
|
68
|
+
// ]
|
|
69
|
+
|
|
70
|
+
// pointsArray.append(currentPointsMap)
|
|
71
|
+
// }
|
|
72
|
+
|
|
73
|
+
// faceContoursTypesMap[faceContoursTypesStrings[i]] = pointsArray
|
|
74
|
+
// }
|
|
75
|
+
// }
|
|
76
|
+
|
|
77
|
+
// return faceContoursTypesMap
|
|
78
|
+
// }
|
|
79
|
+
|
|
80
|
+
// static func processBoundingBox(from face: Face) -> [String:Any] {
|
|
81
|
+
// let frameRect = face.frame
|
|
82
|
+
|
|
83
|
+
// let offsetX = (frameRect.midX - ceil(frameRect.width)) / 2.0
|
|
84
|
+
// let offsetY = (frameRect.midY - ceil(frameRect.height)) / 2.0
|
|
85
|
+
|
|
86
|
+
// let x = frameRect.maxX + offsetX
|
|
87
|
+
// let y = frameRect.minY + offsetY
|
|
88
|
+
|
|
89
|
+
// return [
|
|
90
|
+
// "x": frameRect.midX + (frameRect.midX - x),
|
|
91
|
+
// "y": frameRect.midY + (y - frameRect.midY),
|
|
92
|
+
// "width": frameRect.width,
|
|
93
|
+
// "height": frameRect.height,
|
|
94
|
+
// "boundingCenterX": frameRect.midX,
|
|
95
|
+
// "boundingCenterY": frameRect.midY
|
|
96
|
+
// ]
|
|
97
|
+
// }
|
|
98
98
|
|
|
99
99
|
static func getImageFaceFromUIImage(from image: UIImage, rectImage: CGRect) -> UIImage? {
|
|
100
100
|
let imageRef: CGImage = (image.cgImage?.cropping(to: rectImage)!)!
|
|
@@ -107,11 +107,8 @@ class FaceHelper {
|
|
|
107
107
|
return imageData.base64EncodedString()
|
|
108
108
|
}
|
|
109
109
|
|
|
110
|
-
static func rgbDataFromBuffer(
|
|
111
|
-
|
|
112
|
-
byteCount: Int,
|
|
113
|
-
isModelQuantized: Bool
|
|
114
|
-
) -> Data? {
|
|
110
|
+
static func rgbDataFromBuffer(_ buffer: CVPixelBuffer) -> Data? {
|
|
111
|
+
let byteCount = batchSize * inputWidth * inputHeight * inputChannels
|
|
115
112
|
CVPixelBufferLockBaseAddress(buffer, .readOnly)
|
|
116
113
|
defer {
|
|
117
114
|
CVPixelBufferUnlockBaseAddress(buffer, .readOnly)
|
|
@@ -160,11 +157,6 @@ class FaceHelper {
|
|
|
160
157
|
}
|
|
161
158
|
|
|
162
159
|
let byteData = Data(bytes: destinationBuffer.data, count: destinationBuffer.rowBytes * height)
|
|
163
|
-
if isModelQuantized {
|
|
164
|
-
return byteData
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
// Not quantized, convert to floats
|
|
168
160
|
let bytes = Array<UInt8>(unsafeData: byteData)!
|
|
169
161
|
var floats = [Float]()
|
|
170
162
|
for i in 0..<bytes.count {
|
|
@@ -218,6 +210,35 @@ class FaceHelper {
|
|
|
218
210
|
return nil
|
|
219
211
|
}
|
|
220
212
|
}
|
|
213
|
+
|
|
214
|
+
// static func getDataFromPixel(pixelBuffer: CVPixelBuffer) -> Data {
|
|
215
|
+
// CVPixelBufferLockBaseAddress(pixelBuffer, [.readOnly])
|
|
216
|
+
// defer { CVPixelBufferUnlockBaseAddress(pixelBuffer, [.readOnly]) }
|
|
217
|
+
//
|
|
218
|
+
// // Calculate sum of planes' size
|
|
219
|
+
// var totalSize = 0
|
|
220
|
+
// for plane in 0 ..< CVPixelBufferGetPlaneCount(pixelBuffer) {
|
|
221
|
+
// let height = CVPixelBufferGetHeightOfPlane(pixelBuffer, plane)
|
|
222
|
+
// let bytesPerRow = CVPixelBufferGetBytesPerRowOfPlane(pixelBuffer, plane)
|
|
223
|
+
// let planeSize = height * bytesPerRow
|
|
224
|
+
// totalSize += planeSize
|
|
225
|
+
// }
|
|
226
|
+
//
|
|
227
|
+
// guard let rawFrame = malloc(totalSize) else { fatalError() }
|
|
228
|
+
// var dest = rawFrame
|
|
229
|
+
//
|
|
230
|
+
// for plane in 0 ..< CVPixelBufferGetPlaneCount(pixelBuffer) {
|
|
231
|
+
// let source = CVPixelBufferGetBaseAddressOfPlane(pixelBuffer, plane)
|
|
232
|
+
// let height = CVPixelBufferGetHeightOfPlane(pixelBuffer, plane)
|
|
233
|
+
// let bytesPerRow = CVPixelBufferGetBytesPerRowOfPlane(pixelBuffer, plane)
|
|
234
|
+
// let planeSize = height * bytesPerRow
|
|
235
|
+
//
|
|
236
|
+
// memcpy(dest, source, planeSize)
|
|
237
|
+
// dest += planeSize
|
|
238
|
+
// }
|
|
239
|
+
//
|
|
240
|
+
// return Data(bytesNoCopy: rawFrame, count: totalSize, deallocator: .free)
|
|
241
|
+
// }
|
|
221
242
|
}
|
|
222
243
|
|
|
223
244
|
// MARK: - Extensions
|
|
@@ -235,4 +256,3 @@ extension Array {
|
|
|
235
256
|
self = unsafeData.withUnsafeBytes { .init($0.bindMemory(to: Element.self)) }
|
|
236
257
|
}
|
|
237
258
|
}
|
|
238
|
-
|
|
@@ -66,19 +66,13 @@ class VisionCameraFaceDetectionModule: NSObject {
|
|
|
66
66
|
reject("Failed to get pixelBuffer", nil, nil)
|
|
67
67
|
return
|
|
68
68
|
}
|
|
69
|
-
guard let rgbData = FaceHelper.rgbDataFromBuffer(
|
|
70
|
-
pixelBuffer,
|
|
71
|
-
byteCount: batchSize * inputWidth * inputHeight * inputChannels,
|
|
72
|
-
isModelQuantized: false
|
|
73
|
-
) else {
|
|
69
|
+
guard let rgbData = FaceHelper.rgbDataFromBuffer(pixelBuffer) else {
|
|
74
70
|
reject("Failed to convert the image buffer to RGB data.", nil, nil)
|
|
75
71
|
return
|
|
76
72
|
}
|
|
77
|
-
// Copy the RGB data to the input `Tensor`.
|
|
78
73
|
try interpreter?.copy(rgbData, toInputAt: 0)
|
|
79
|
-
// Run inference by invoking the `Interpreter`.
|
|
80
74
|
try interpreter?.invoke()
|
|
81
|
-
|
|
75
|
+
|
|
82
76
|
let outputTensor: Tensor? = try interpreter?.output(at: 0)
|
|
83
77
|
if ((outputTensor?.data) != nil) {
|
|
84
78
|
let result: [Float] = [Float32](unsafeData: outputTensor!.data) ?? []
|
|
@@ -279,13 +279,10 @@ public class VisionCameraFaceDetectionPlugin: FrameProcessorPlugin {
|
|
|
279
279
|
guard let pixelBuffer = FaceHelper.uiImageToPixelBuffer(image: imageCrop, size: inputWidth) else {
|
|
280
280
|
return nil
|
|
281
281
|
}
|
|
282
|
-
guard let rgbData = FaceHelper.rgbDataFromBuffer(
|
|
283
|
-
pixelBuffer,
|
|
284
|
-
byteCount: batchSize * inputWidth * inputHeight * inputChannels,
|
|
285
|
-
isModelQuantized: false
|
|
286
|
-
) else {
|
|
282
|
+
guard let rgbData = FaceHelper.rgbDataFromBuffer(pixelBuffer) else {
|
|
287
283
|
return nil
|
|
288
284
|
}
|
|
285
|
+
|
|
289
286
|
try interpreter?.copy(rgbData, toInputAt: 0)
|
|
290
287
|
try interpreter?.invoke()
|
|
291
288
|
let outputTensor: Tensor? = try interpreter?.output(at: 0)
|
|
@@ -8,7 +8,7 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
9
|
var _reactNativeVisionCamera = require("react-native-vision-camera");
|
|
10
10
|
var _reactNativeWorkletsCore = require("react-native-worklets-core");
|
|
11
|
-
var _FaceDetector = require("./FaceDetector.
|
|
11
|
+
var _FaceDetector = require("./FaceDetector.js");
|
|
12
12
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
13
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
14
|
// types
|
|
@@ -137,21 +137,29 @@ 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
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
+
ref: ref
|
|
156
|
+
// frameProcessor={
|
|
157
|
+
// Platform.OS === 'android' ? processorAndroid : processorIOS
|
|
158
|
+
// }
|
|
159
|
+
,
|
|
160
|
+
frameProcessor: processorAndroid,
|
|
161
|
+
pixelFormat: _reactNative.Platform.OS === 'android' ? 'yuv' : 'rgb',
|
|
162
|
+
...props
|
|
155
163
|
});
|
|
156
164
|
});
|
|
157
|
-
//# sourceMappingURL=Camera.
|
|
165
|
+
//# sourceMappingURL=Camera.js.map
|
|
@@ -0,0 +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","jsx","frameProcessor","pixelFormat","Platform","OS"],"sourceRoot":"../../src","sources":["Camera.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
var _Camera = require("./Camera.
|
|
6
|
+
var _Camera = require("./Camera.js");
|
|
7
7
|
Object.keys(_Camera).forEach(function (key) {
|
|
8
8
|
if (key === "default" || key === "__esModule") return;
|
|
9
9
|
if (key in exports && exports[key] === _Camera[key]) return;
|
|
@@ -14,7 +14,7 @@ Object.keys(_Camera).forEach(function (key) {
|
|
|
14
14
|
}
|
|
15
15
|
});
|
|
16
16
|
});
|
|
17
|
-
var _FaceDetector = require("./FaceDetector.
|
|
17
|
+
var _FaceDetector = require("./FaceDetector.js");
|
|
18
18
|
Object.keys(_FaceDetector).forEach(function (key) {
|
|
19
19
|
if (key === "default" || key === "__esModule") return;
|
|
20
20
|
if (key in exports && exports[key] === _FaceDetector[key]) return;
|
|
@@ -25,7 +25,7 @@ Object.keys(_FaceDetector).forEach(function (key) {
|
|
|
25
25
|
}
|
|
26
26
|
});
|
|
27
27
|
});
|
|
28
|
-
var _Tensor = require("./Tensor.
|
|
28
|
+
var _Tensor = require("./Tensor.js");
|
|
29
29
|
Object.keys(_Tensor).forEach(function (key) {
|
|
30
30
|
if (key === "default" || key === "__esModule") return;
|
|
31
31
|
if (key in exports && exports[key] === _Tensor[key]) return;
|
|
@@ -36,4 +36,4 @@ Object.keys(_Tensor).forEach(function (key) {
|
|
|
36
36
|
}
|
|
37
37
|
});
|
|
38
38
|
});
|
|
39
|
-
//# sourceMappingURL=index.
|
|
39
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
1
3
|
import React from 'react';
|
|
2
4
|
import { Platform } from 'react-native';
|
|
3
|
-
import { Camera as VisionCamera,
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
import { useFaceDetector } from "./FaceDetector.
|
|
5
|
+
import { Camera as VisionCamera, useFrameProcessor } from 'react-native-vision-camera';
|
|
6
|
+
import { Worklets,
|
|
7
|
+
// useRunOnJS,
|
|
8
|
+
useSharedValue } from 'react-native-worklets-core';
|
|
9
|
+
import { useFaceDetector } from "./FaceDetector.js";
|
|
8
10
|
|
|
9
11
|
// types
|
|
10
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
@@ -132,21 +134,29 @@ export const Camera = /*#__PURE__*/React.forwardRef(({
|
|
|
132
134
|
/**
|
|
133
135
|
* Runs on detection callback on js thread
|
|
134
136
|
*/
|
|
135
|
-
const runOnJs = useRunOnJS(faceDetectionCallback, [faceDetectionCallback]);
|
|
136
|
-
|
|
137
|
-
|
|
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
|
+
// );
|
|
138
150
|
|
|
139
|
-
runOnJs(detectFaces(frame), frame);
|
|
140
|
-
// runAsync(frame, () => {
|
|
141
|
-
// 'worklet';
|
|
142
|
-
// runOnJs(detectFaces(frame), frame);
|
|
143
|
-
// });
|
|
144
|
-
}, [runOnJs]);
|
|
145
151
|
return /*#__PURE__*/_jsx(VisionCamera, {
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
152
|
+
ref: ref
|
|
153
|
+
// frameProcessor={
|
|
154
|
+
// Platform.OS === 'android' ? processorAndroid : processorIOS
|
|
155
|
+
// }
|
|
156
|
+
,
|
|
157
|
+
frameProcessor: processorAndroid,
|
|
158
|
+
pixelFormat: Platform.OS === 'android' ? 'yuv' : 'rgb',
|
|
159
|
+
...props
|
|
150
160
|
});
|
|
151
161
|
});
|
|
152
|
-
//# sourceMappingURL=Camera.
|
|
162
|
+
//# sourceMappingURL=Camera.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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,3 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
1
3
|
import { useMemo } from 'react';
|
|
2
4
|
import { VisionCameraProxy } from 'react-native-vision-camera';
|
|
3
5
|
/**
|
|
@@ -33,4 +35,4 @@ function createFaceDetectorPlugin(options) {
|
|
|
33
35
|
export function useFaceDetector(options) {
|
|
34
36
|
return useMemo(() => createFaceDetectorPlugin(options), [options]);
|
|
35
37
|
}
|
|
36
|
-
//# sourceMappingURL=FaceDetector.
|
|
38
|
+
//# sourceMappingURL=FaceDetector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useMemo","VisionCameraProxy","createFaceDetectorPlugin","options","plugin","initFrameProcessorPlugin","Error","detectFaces","frame","call","useFaceDetector"],"sourceRoot":"../../src","sources":["FaceDetector.ts"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,OAAO;AAC/B,SAASC,iBAAiB,QAAoB,4BAA4B;AA+H1E;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,wBAAwBA,CAC/BC,OAA8B,EACV;EACpB,MAAMC,MAAM,GAAGH,iBAAiB,CAACI,wBAAwB,CAAC,aAAa,EAAE;IACvE,GAAGF;EACL,CAAC,CAAC;EAEF,IAAI,CAACC,MAAM,EAAE;IACX,MAAM,IAAIE,KAAK,CAAC,sDAAsD,CAAC;EACzE;EAEA,OAAO;IACLC,WAAW,EAAGC,KAAY,IAAa;MACrC,SAAS;;MACT;MACA,OAAOJ,MAAM,CAACK,IAAI,CAACD,KAAK,CAAC;IAC3B;EACF,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASE,eAAeA,CAC7BP,OAA8B,EACV;EACpB,OAAOH,OAAO,CAAC,MAAME,wBAAwB,CAACC,OAAO,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;AACpE","ignoreList":[]}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
1
3
|
import { NativeModules, Platform } from 'react-native';
|
|
2
4
|
const LINKING_ERROR = `The package 'vision-camera-face-detection' doesn't seem to be linked. Make sure: \n\n` + Platform.select({
|
|
3
5
|
ios: "- You have run 'pod install'\n",
|
|
@@ -14,4 +16,4 @@ export function initTensor(modelPath, count) {
|
|
|
14
16
|
export function detectFromBase64(imageString) {
|
|
15
17
|
return VisionCameraFaceDetectionModule.detectFromBase64(imageString);
|
|
16
18
|
}
|
|
17
|
-
//# sourceMappingURL=Tensor.
|
|
19
|
+
//# sourceMappingURL=Tensor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["NativeModules","Platform","LINKING_ERROR","select","ios","default","VisionCameraFaceDetectionModule","Proxy","get","Error","initTensor","modelPath","count","detectFromBase64","imageString"],"sourceRoot":"../../src","sources":["Tensor.ts"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AAEtD,MAAMC,aAAa,GACjB,uFAAuF,GACvFD,QAAQ,CAACE,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;AAEjC,MAAMC,+BAA+B,GACnCN,aAAa,CAACM,+BAA+B,GACzCN,aAAa,CAACM,+BAA+B,GAC7C,IAAIC,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACP,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AAEP,OAAO,SAASQ,UAAUA,CAACC,SAAiB,EAAEC,KAAc,EAAmB;EAC7E,OAAON,+BAA+B,CAACI,UAAU,CAACC,SAAS,EAAEC,KAAK,CAAC;AACrE;AAEA,OAAO,SAASC,gBAAgBA,CAC9BC,WAAmB,EACO;EAC1B,OAAOR,+BAA+B,CAACO,gBAAgB,CAACC,WAAW,CAAC;AACtE","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,cAAc,aAAU;AACxB,cAAc,mBAAgB;AAC9B,cAAc,aAAU","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"commonjs"}
|
|
@@ -0,0 +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,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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FaceDetector.d.ts","sourceRoot":"","sources":["../../../../src/FaceDetector.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,KAAK,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAE3E,KAAK,kBAAkB,GAAG;IACxB;;;;OAIG;IACH,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,EAAE,CAAC;CACvC,CAAC;AAEF,KAAK,KAAK,GAAG;IACX,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAEF,MAAM,WAAW,IAAI;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,sBAAsB,EAAE,MAAM,CAAC;IAC/B,uBAAuB,EAAE,MAAM,CAAC;IAChC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,IAAI,EAAE,GAAG,CAAC;CACX;AAED,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,KAAK,EAAE,CAAC;IACd,gBAAgB,EAAE,KAAK,EAAE,CAAC;IAC1B,mBAAmB,EAAE,KAAK,EAAE,CAAC;IAC7B,iBAAiB,EAAE,KAAK,EAAE,CAAC;IAC3B,oBAAoB,EAAE,KAAK,EAAE,CAAC;IAC9B,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClB,SAAS,EAAE,KAAK,EAAE,CAAC;IACnB,aAAa,EAAE,KAAK,EAAE,CAAC;IACvB,gBAAgB,EAAE,KAAK,EAAE,CAAC;IAC1B,aAAa,EAAE,KAAK,EAAE,CAAC;IACvB,gBAAgB,EAAE,KAAK,EAAE,CAAC;IAC1B,WAAW,EAAE,KAAK,EAAE,CAAC;IACrB,WAAW,EAAE,KAAK,EAAE,CAAC;IACrB,UAAU,EAAE,KAAK,EAAE,CAAC;IACpB,WAAW,EAAE,KAAK,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,KAAK,CAAC;IAClB,QAAQ,EAAE,KAAK,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC;IAChB,YAAY,EAAE,KAAK,CAAC;IACpB,UAAU,EAAE,KAAK,CAAC;IAClB,WAAW,EAAE,KAAK,CAAC;IACnB,SAAS,EAAE,KAAK,CAAC;IACjB,WAAW,EAAE,KAAK,CAAC;IACnB,SAAS,EAAE,KAAK,CAAC;IACjB,SAAS,EAAE,KAAK,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAEtC;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAE9B;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAE7B;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAEpC;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AA4BD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,OAAO,CAAC,EAAE,oBAAoB,GAC7B,kBAAkB,CAEpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tensor.d.ts","sourceRoot":"","sources":["../../../../src/Tensor.ts"],"names":[],"mappings":"AAoBA,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAE7E;AAED,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,eAAe,CAAC,CAE1B;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,GAAG,CAAC;IACV,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"module"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Camera as VisionCamera } from 'react-native-vision-camera';
|
|
3
|
+
import type { CameraProps, Frame } from 'react-native-vision-camera';
|
|
4
|
+
import type { Face, FaceDetectionOptions } from './FaceDetector';
|
|
5
|
+
type CallbackType = (faces: Face[], frame: Frame) => void | Promise<void>;
|
|
6
|
+
/**
|
|
7
|
+
* Vision camera wrapper
|
|
8
|
+
*
|
|
9
|
+
* @param {ComponentType} props Camera + face detection props
|
|
10
|
+
* @returns
|
|
11
|
+
*/
|
|
12
|
+
export declare const Camera: React.ForwardRefExoticComponent<{
|
|
13
|
+
faceDetectionOptions?: FaceDetectionOptions;
|
|
14
|
+
faceDetectionCallback: CallbackType;
|
|
15
|
+
} & CameraProps & React.RefAttributes<VisionCamera>>;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=Camera.d.ts.map
|
|
@@ -0,0 +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,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"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { type Frame } from 'react-native-vision-camera';
|
|
2
|
+
type FaceDetectorPlugin = {
|
|
3
|
+
/**
|
|
4
|
+
* Detect faces on frame
|
|
5
|
+
*
|
|
6
|
+
* @param {Frame} frame Frame to detect faces
|
|
7
|
+
*/
|
|
8
|
+
detectFaces: (frame: Frame) => Face[];
|
|
9
|
+
};
|
|
10
|
+
type Point = {
|
|
11
|
+
x: number;
|
|
12
|
+
y: number;
|
|
13
|
+
};
|
|
14
|
+
export interface Face {
|
|
15
|
+
pitchAngle: number;
|
|
16
|
+
rollAngle: number;
|
|
17
|
+
yawAngle: number;
|
|
18
|
+
bounds: Bounds;
|
|
19
|
+
leftEyeOpenProbability: number;
|
|
20
|
+
rightEyeOpenProbability: number;
|
|
21
|
+
smilingProbability: number;
|
|
22
|
+
contours: Contours;
|
|
23
|
+
landmarks: Landmarks;
|
|
24
|
+
data: any;
|
|
25
|
+
}
|
|
26
|
+
export interface Bounds {
|
|
27
|
+
width: number;
|
|
28
|
+
height: number;
|
|
29
|
+
x: number;
|
|
30
|
+
y: number;
|
|
31
|
+
}
|
|
32
|
+
export interface Contours {
|
|
33
|
+
FACE: Point[];
|
|
34
|
+
LEFT_EYEBROW_TOP: Point[];
|
|
35
|
+
LEFT_EYEBROW_BOTTOM: Point[];
|
|
36
|
+
RIGHT_EYEBROW_TOP: Point[];
|
|
37
|
+
RIGHT_EYEBROW_BOTTOM: Point[];
|
|
38
|
+
LEFT_EYE: Point[];
|
|
39
|
+
RIGHT_EYE: Point[];
|
|
40
|
+
UPPER_LIP_TOP: Point[];
|
|
41
|
+
UPPER_LIP_BOTTOM: Point[];
|
|
42
|
+
LOWER_LIP_TOP: Point[];
|
|
43
|
+
LOWER_LIP_BOTTOM: Point[];
|
|
44
|
+
NOSE_BRIDGE: Point[];
|
|
45
|
+
NOSE_BOTTOM: Point[];
|
|
46
|
+
LEFT_CHEEK: Point[];
|
|
47
|
+
RIGHT_CHEEK: Point[];
|
|
48
|
+
}
|
|
49
|
+
export interface Landmarks {
|
|
50
|
+
LEFT_CHEEK: Point;
|
|
51
|
+
LEFT_EAR: Point;
|
|
52
|
+
LEFT_EYE: Point;
|
|
53
|
+
MOUTH_BOTTOM: Point;
|
|
54
|
+
MOUTH_LEFT: Point;
|
|
55
|
+
MOUTH_RIGHT: Point;
|
|
56
|
+
NOSE_BASE: Point;
|
|
57
|
+
RIGHT_CHEEK: Point;
|
|
58
|
+
RIGHT_EAR: Point;
|
|
59
|
+
RIGHT_EYE: Point;
|
|
60
|
+
}
|
|
61
|
+
export interface FaceDetectionOptions {
|
|
62
|
+
/**
|
|
63
|
+
* Favor speed or accuracy when detecting faces.
|
|
64
|
+
*
|
|
65
|
+
* @default 'fast'
|
|
66
|
+
*/
|
|
67
|
+
performanceMode?: 'fast' | 'accurate';
|
|
68
|
+
/**
|
|
69
|
+
* Whether to attempt to identify facial 'landmarks': eyes, ears, nose, cheeks, mouth, and so on.
|
|
70
|
+
*
|
|
71
|
+
* @default 'none'
|
|
72
|
+
*/
|
|
73
|
+
landmarkMode?: 'none' | 'all';
|
|
74
|
+
/**
|
|
75
|
+
* Whether to detect the contours of facial features. Contours are detected for only the most prominent face in an image.
|
|
76
|
+
*
|
|
77
|
+
* @default 'none'
|
|
78
|
+
*/
|
|
79
|
+
contourMode?: 'none' | 'all';
|
|
80
|
+
/**
|
|
81
|
+
* Whether or not to classify faces into categories such as 'smiling', and 'eyes open'.
|
|
82
|
+
*
|
|
83
|
+
* @default 'none'
|
|
84
|
+
*/
|
|
85
|
+
classificationMode?: 'none' | 'all';
|
|
86
|
+
/**
|
|
87
|
+
* Sets the smallest desired face size, expressed as the ratio of the width of the head to width of the image.
|
|
88
|
+
*
|
|
89
|
+
* @default 0.15
|
|
90
|
+
*/
|
|
91
|
+
minFaceSize?: number;
|
|
92
|
+
/**
|
|
93
|
+
* Whether or not to assign faces an ID, which can be used to track faces across images.
|
|
94
|
+
*
|
|
95
|
+
* Note that when contour detection is enabled, only one face is detected, so face tracking doesn't produce useful results. For this reason, and to improve detection speed, don't enable both contour detection and face tracking.
|
|
96
|
+
*
|
|
97
|
+
* @default false
|
|
98
|
+
*/
|
|
99
|
+
trackingEnabled?: boolean;
|
|
100
|
+
/**
|
|
101
|
+
* Should auto scale face bounds, contour and landmarks on native side?
|
|
102
|
+
* This option should be disabled if you want to draw on frame using `Skia Frame Processor`.
|
|
103
|
+
* See [this](https://github.com/luicfrr/react-native-vision-camera-face-detector/issues/30#issuecomment-2058805546) and [this](https://github.com/luicfrr/react-native-vision-camera-face-detector/issues/35) for more details.
|
|
104
|
+
*
|
|
105
|
+
* @default false
|
|
106
|
+
*/
|
|
107
|
+
autoScale?: boolean;
|
|
108
|
+
/**
|
|
109
|
+
* for enable/disable tensorflow lite logic, just face detection
|
|
110
|
+
*/
|
|
111
|
+
enableTensor?: boolean;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Use an instance of face detector plugin.
|
|
115
|
+
*
|
|
116
|
+
* @param {FaceDetectionOptions | undefined} options Detection options
|
|
117
|
+
* @returns {FaceDetectorPlugin} Memoized plugin instance that will be
|
|
118
|
+
* destroyed once the component using `useFaceDetector()` unmounts.
|
|
119
|
+
*/
|
|
120
|
+
export declare function useFaceDetector(options?: FaceDetectionOptions): FaceDetectorPlugin;
|
|
121
|
+
export {};
|
|
122
|
+
//# sourceMappingURL=FaceDetector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FaceDetector.d.ts","sourceRoot":"","sources":["../../../../src/FaceDetector.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,KAAK,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAE3E,KAAK,kBAAkB,GAAG;IACxB;;;;OAIG;IACH,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,EAAE,CAAC;CACvC,CAAC;AAEF,KAAK,KAAK,GAAG;IACX,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAEF,MAAM,WAAW,IAAI;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,sBAAsB,EAAE,MAAM,CAAC;IAC/B,uBAAuB,EAAE,MAAM,CAAC;IAChC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,IAAI,EAAE,GAAG,CAAC;CACX;AAED,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,KAAK,EAAE,CAAC;IACd,gBAAgB,EAAE,KAAK,EAAE,CAAC;IAC1B,mBAAmB,EAAE,KAAK,EAAE,CAAC;IAC7B,iBAAiB,EAAE,KAAK,EAAE,CAAC;IAC3B,oBAAoB,EAAE,KAAK,EAAE,CAAC;IAC9B,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClB,SAAS,EAAE,KAAK,EAAE,CAAC;IACnB,aAAa,EAAE,KAAK,EAAE,CAAC;IACvB,gBAAgB,EAAE,KAAK,EAAE,CAAC;IAC1B,aAAa,EAAE,KAAK,EAAE,CAAC;IACvB,gBAAgB,EAAE,KAAK,EAAE,CAAC;IAC1B,WAAW,EAAE,KAAK,EAAE,CAAC;IACrB,WAAW,EAAE,KAAK,EAAE,CAAC;IACrB,UAAU,EAAE,KAAK,EAAE,CAAC;IACpB,WAAW,EAAE,KAAK,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,KAAK,CAAC;IAClB,QAAQ,EAAE,KAAK,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC;IAChB,YAAY,EAAE,KAAK,CAAC;IACpB,UAAU,EAAE,KAAK,CAAC;IAClB,WAAW,EAAE,KAAK,CAAC;IACnB,SAAS,EAAE,KAAK,CAAC;IACjB,WAAW,EAAE,KAAK,CAAC;IACnB,SAAS,EAAE,KAAK,CAAC;IACjB,SAAS,EAAE,KAAK,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAEtC;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAE9B;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAE7B;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAEpC;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AA4BD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,OAAO,CAAC,EAAE,oBAAoB,GAC7B,kBAAkB,CAEpB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare function initTensor(modelPath: string, count?: number): Promise<string>;
|
|
2
|
+
export declare function detectFromBase64(imageString: string): Promise<DetectBas64Type>;
|
|
3
|
+
export type DetectBas64Type = {
|
|
4
|
+
base64: string;
|
|
5
|
+
data: any;
|
|
6
|
+
message: string;
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=Tensor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tensor.d.ts","sourceRoot":"","sources":["../../../../src/Tensor.ts"],"names":[],"mappings":"AAoBA,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAE7E;AAED,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,eAAe,CAAC,CAE1B;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,GAAG,CAAC;IACV,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,16 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vision-camera-face-detection",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "Plugin Face Detection for Vision Camera 4",
|
|
5
5
|
"source": "./src/index.tsx",
|
|
6
|
-
"main": "./lib/commonjs/index.
|
|
7
|
-
"module": "./lib/module/index.
|
|
8
|
-
"types": "./lib/typescript/src/index.d.ts",
|
|
6
|
+
"main": "./lib/commonjs/index.js",
|
|
7
|
+
"module": "./lib/module/index.js",
|
|
9
8
|
"exports": {
|
|
10
9
|
".": {
|
|
11
|
-
"
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
"import": {
|
|
11
|
+
"types": "./lib/typescript/module/src/index.d.ts",
|
|
12
|
+
"default": "./lib/module/index.js"
|
|
13
|
+
},
|
|
14
|
+
"require": {
|
|
15
|
+
"types": "./lib/typescript/commonjs/src/index.d.ts",
|
|
16
|
+
"default": "./lib/commonjs/index.js"
|
|
17
|
+
}
|
|
14
18
|
}
|
|
15
19
|
},
|
|
16
20
|
"files": [
|
|
@@ -34,7 +38,7 @@
|
|
|
34
38
|
"scripts": {
|
|
35
39
|
"example": "yarn workspace vision-camera-face-detection-example",
|
|
36
40
|
"test": "jest",
|
|
37
|
-
"typecheck": "tsc
|
|
41
|
+
"typecheck": "tsc",
|
|
38
42
|
"lint": "eslint \"**/*.{js,ts,tsx}\"",
|
|
39
43
|
"clean": "del-cli android/build example/android/build example/android/app/build example/ios/build lib",
|
|
40
44
|
"prepare": "bob build",
|
|
@@ -72,10 +76,10 @@
|
|
|
72
76
|
"eslint-plugin-prettier": "^5.0.1",
|
|
73
77
|
"jest": "^29.7.0",
|
|
74
78
|
"prettier": "^3.0.3",
|
|
75
|
-
"react": "18.
|
|
76
|
-
"react-native": "0.
|
|
77
|
-
"react-native-builder-bob": "^0.
|
|
78
|
-
"react-native-vision-camera": "4.5.
|
|
79
|
+
"react": "18.3.1",
|
|
80
|
+
"react-native": "0.75.4",
|
|
81
|
+
"react-native-builder-bob": "^0.30.2",
|
|
82
|
+
"react-native-vision-camera": "4.5.3",
|
|
79
83
|
"react-native-worklets-core": "1.3.3",
|
|
80
84
|
"release-it": "^15.0.0",
|
|
81
85
|
"turbo": "^1.10.7",
|
|
@@ -173,7 +177,8 @@
|
|
|
173
177
|
[
|
|
174
178
|
"typescript",
|
|
175
179
|
{
|
|
176
|
-
"project": "tsconfig.build.json"
|
|
180
|
+
"project": "tsconfig.build.json",
|
|
181
|
+
"esm": true
|
|
177
182
|
}
|
|
178
183
|
]
|
|
179
184
|
]
|
|
@@ -181,6 +186,6 @@
|
|
|
181
186
|
"create-react-native-library": {
|
|
182
187
|
"type": "module-legacy",
|
|
183
188
|
"languages": "kotlin-swift",
|
|
184
|
-
"version": "0.
|
|
189
|
+
"version": "0.41.2"
|
|
185
190
|
}
|
|
186
191
|
}
|
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,28 +165,29 @@ 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
|
-
{...props}
|
|
186
184
|
ref={ref}
|
|
187
|
-
frameProcessor={
|
|
188
|
-
|
|
189
|
-
}
|
|
185
|
+
// frameProcessor={
|
|
186
|
+
// Platform.OS === 'android' ? processorAndroid : processorIOS
|
|
187
|
+
// }
|
|
188
|
+
frameProcessor={processorAndroid}
|
|
190
189
|
pixelFormat={Platform.OS === 'android' ? 'yuv' : 'rgb'}
|
|
190
|
+
{...props}
|
|
191
191
|
/>
|
|
192
192
|
);
|
|
193
193
|
}
|
|
@@ -1 +0,0 @@
|
|
|
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","runOnJs","useRunOnJS","processorIOS","jsx","frameProcessor","Platform","OS","pixelFormat"],"sourceRoot":"../../src","sources":["Camera.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["React","Platform","Camera","VisionCamera","useFrameProcessor","Worklets","useRunOnJS","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","runOnJs","processorIOS","frameProcessor","OS","pixelFormat"],"sourceRoot":"../../src","sources":["Camera.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["useMemo","VisionCameraProxy","createFaceDetectorPlugin","options","plugin","initFrameProcessorPlugin","Error","detectFaces","frame","call","useFaceDetector"],"sourceRoot":"../../src","sources":["FaceDetector.ts"],"mappings":"AAAA,SAASA,OAAO,QAAQ,OAAO;AAC/B,SAASC,iBAAiB,QAAoB,4BAA4B;AA+H1E;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,wBAAwBA,CAC/BC,OAA8B,EACV;EACpB,MAAMC,MAAM,GAAGH,iBAAiB,CAACI,wBAAwB,CAAC,aAAa,EAAE;IACvE,GAAGF;EACL,CAAC,CAAC;EAEF,IAAI,CAACC,MAAM,EAAE;IACX,MAAM,IAAIE,KAAK,CAAC,sDAAsD,CAAC;EACzE;EAEA,OAAO;IACLC,WAAW,EAAGC,KAAY,IAAa;MACrC,SAAS;;MACT;MACA,OAAOJ,MAAM,CAACK,IAAI,CAACD,KAAK,CAAC;IAC3B;EACF,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASE,eAAeA,CAC7BP,OAA8B,EACV;EACpB,OAAOH,OAAO,CAAC,MAAME,wBAAwB,CAACC,OAAO,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;AACpE","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["NativeModules","Platform","LINKING_ERROR","select","ios","default","VisionCameraFaceDetectionModule","Proxy","get","Error","initTensor","modelPath","count","detectFromBase64","imageString"],"sourceRoot":"../../src","sources":["Tensor.ts"],"mappings":"AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AAEtD,MAAMC,aAAa,GACjB,uFAAuF,GACvFD,QAAQ,CAACE,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;AAEjC,MAAMC,+BAA+B,GACnCN,aAAa,CAACM,+BAA+B,GACzCN,aAAa,CAACM,+BAA+B,GAC7C,IAAIC,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACP,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AAEP,OAAO,SAASQ,UAAUA,CAACC,SAAiB,EAAEC,KAAc,EAAmB;EAC7E,OAAON,+BAA+B,CAACI,UAAU,CAACC,SAAS,EAAEC,KAAK,CAAC;AACrE;AAEA,OAAO,SAASC,gBAAgBA,CAC9BC,WAAmB,EACO;EAC1B,OAAOR,+BAA+B,CAACO,gBAAgB,CAACC,WAAW,CAAC;AACtE","ignoreList":[]}
|
package/lib/module/index.mjs
DELETED
package/lib/module/index.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,cAAc,cAAU;AACxB,cAAc,oBAAgB;AAC9B,cAAc,cAAU","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
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,EAGvB,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;oDA+JpC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FaceDetector.d.ts","sourceRoot":"","sources":["../../../src/FaceDetector.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,KAAK,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAE3E,KAAK,kBAAkB,GAAG;IACxB;;;;OAIG;IACH,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,EAAE,CAAC;CACvC,CAAC;AAEF,KAAK,KAAK,GAAG;IACX,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAEF,MAAM,WAAW,IAAI;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,sBAAsB,EAAE,MAAM,CAAC;IAC/B,uBAAuB,EAAE,MAAM,CAAC;IAChC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,IAAI,EAAE,GAAG,CAAC;CACX;AAED,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,KAAK,EAAE,CAAC;IACd,gBAAgB,EAAE,KAAK,EAAE,CAAC;IAC1B,mBAAmB,EAAE,KAAK,EAAE,CAAC;IAC7B,iBAAiB,EAAE,KAAK,EAAE,CAAC;IAC3B,oBAAoB,EAAE,KAAK,EAAE,CAAC;IAC9B,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClB,SAAS,EAAE,KAAK,EAAE,CAAC;IACnB,aAAa,EAAE,KAAK,EAAE,CAAC;IACvB,gBAAgB,EAAE,KAAK,EAAE,CAAC;IAC1B,aAAa,EAAE,KAAK,EAAE,CAAC;IACvB,gBAAgB,EAAE,KAAK,EAAE,CAAC;IAC1B,WAAW,EAAE,KAAK,EAAE,CAAC;IACrB,WAAW,EAAE,KAAK,EAAE,CAAC;IACrB,UAAU,EAAE,KAAK,EAAE,CAAC;IACpB,WAAW,EAAE,KAAK,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,KAAK,CAAC;IAClB,QAAQ,EAAE,KAAK,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC;IAChB,YAAY,EAAE,KAAK,CAAC;IACpB,UAAU,EAAE,KAAK,CAAC;IAClB,WAAW,EAAE,KAAK,CAAC;IACnB,SAAS,EAAE,KAAK,CAAC;IACjB,WAAW,EAAE,KAAK,CAAC;IACnB,SAAS,EAAE,KAAK,CAAC;IACjB,SAAS,EAAE,KAAK,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAEtC;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAE9B;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAE7B;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAEpC;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AA4BD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,OAAO,CAAC,EAAE,oBAAoB,GAC7B,kBAAkB,CAEpB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Tensor.d.ts","sourceRoot":"","sources":["../../../src/Tensor.ts"],"names":[],"mappings":"AAoBA,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAE7E;AAED,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,eAAe,CAAC,CAE1B;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,GAAG,CAAC;IACV,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|