diff --git a/.gitignore b/.gitignore
index 0bf9dc9f..3a9ad0b8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,8 +1,11 @@
node_modules
.rpt2_cache
.env*
+
tmp
proto
weights_uncompressed
weights_unused
-docs
\ No newline at end of file
+docs
+out
+build
\ No newline at end of file
diff --git a/.npmignore b/.npmignore
index f0284d72..48c03f67 100644
--- a/.npmignore
+++ b/.npmignore
@@ -6,6 +6,7 @@ proto
weights
weights_uncompressed
weights_unused
+src
test
tools
docs
\ No newline at end of file
diff --git a/.travis.yml b/.travis.yml
index 6ea96a20..70b26bae 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,19 +1,25 @@
sudo: required
language: node_js
node_js:
- - "node"
+ #- "node"
+ - "12"
+ - "11"
- "10"
- "8"
- - "6"
+ # node 6 is not compatible with tfjs-node
+ # - "6"
+services:
+ - xvfb
env:
- - BACKEND_CPU=true EXCLUDE_UNCOMPRESSED=true
+ global:
+ - BACKEND_CPU=true EXCLUDE_UNCOMPRESSED=true
+ matrix:
+ - ENV=browser
+ - ENV=node
addons:
chrome: stable
install: npm install
-before_install:
- - export DISPLAY=:99.0
- - sh -e /etc/init.d/xvfb start
- - sleep 3 # give xvfb some time to start
script:
- - npm run test-travis
+ - if [ $ENV == 'browser' ]; then npm run test-browser; fi
+ - if [ $ENV == 'node' ]; then npm run test-node; fi
- npm run build
\ No newline at end of file
diff --git a/README.md b/README.md
index 0e67eda8..df98850e 100644
--- a/README.md
+++ b/README.md
@@ -3,161 +3,198 @@
[](https://travis-ci.org/justadudewhohacks/face-api.js)
[](https://slack.bri.im)
-**JavaScript API for face detection and face recognition in the browser implemented on top of the tensorflow.js core API ([tensorflow/tfjs-core](https://github.com/tensorflow/tfjs-core))**
+**JavaScript face recognition API for the browser and nodejs implemented on top of tensorflow.js core ([tensorflow/tfjs-core](https://github.com/tensorflow/tfjs))**
-Table of Contents:
+
-* **[Resources](#resources)**
- * **[Live Demos](#live-demos)**
- * **[Tutorials](#tutorials)**
-* **[Examples](#examples)**
- * **[Running the Examples](#running-the-examples)**
-* **[Available Models](#models)**
- * **[Face Detection Models](#models-face-detection)**
- * **[68 Point Face Landmark Detection Models](#models-face-landmark-detection)**
- * **[Face Recognition Model](#models-face-recognition)**
-* **[Usage](#usage)**
- * **[Loading the Models](#usage-loading-models)**
- * **[High Level API](#usage-high-level-api)**
- * **[Displaying Detection Results](#usage-displaying-detection-results)**
- * **[Face Detection Options](#usage-face-detection-options)**
- * **[Utility Classes](#usage-utility-classes)**
- * **[Other Useful Utility](#other-useful-utility)**
-
-
-
-# Resources
-
-
-
-## Live Demos
-
-**[Check out the live demos!](https://justadudewhohacks.github.io/face-api.js/)**
-
-
+## **[Click me for Live Demos!](https://justadudewhohacks.github.io/face-api.js/)**
## Tutorials
-Check out my face-api.js tutorials:
-
* **[face-api.js — JavaScript API for Face Recognition in the Browser with tensorflow.js](https://itnext.io/face-api-js-javascript-api-for-face-recognition-in-the-browser-with-tensorflow-js-bcc2a6c4cf07)**
* **[Realtime JavaScript Face Tracking and Face Recognition using face-api.js’ MTCNN Face Detector](https://itnext.io/realtime-javascript-face-tracking-and-face-recognition-using-face-api-js-mtcnn-face-detector-d924dd8b5740)**
+* **[Realtime Webcam Face Detection And Emotion Recognition - Video](https://youtu.be/CVClHLwv-4I)**
+* **[Easy Face Recognition Tutorial With JavaScript - Video](https://youtu.be/AZ4PdALMqx0)**
+* **[Using face-api.js with Vue.js and Electron](https://medium.com/@andreas.schallwig/do-not-laugh-a-simple-ai-powered-game-3e22ad0f8166)**
+* **[Add Masks to People - Gant Laborde on Learn with Jason](https://www.learnwithjason.dev/fun-with-machine-learning-pt-2)**
+
+## Table of Contents
+
+* **[Features](#features)**
+* **[Running the Examples](#running-the-examples)**
+* **[face-api.js for the Browser](#face-api.js-for-the-browser)**
+* **[face-api.js for Nodejs](#face-api.js-for-nodejs)**
+* **[Usage](#getting-started)**
+ * **[Loading the Models](#getting-started-loading-models)**
+ * **[High Level API](#high-level-api)**
+ * **[Displaying Detection Results](#getting-started-displaying-detection-results)**
+ * **[Face Detection Options](#getting-started-face-detection-options)**
+ * **[Utility Classes](#getting-started-utility-classes)**
+ * **[Other Useful Utility](#other-useful-utility)**
+* **[Available Models](#models)**
+ * **[Face Detection](#models-face-detection)**
+ * **[Face Landmark Detection](#models-face-landmark-detection)**
+ * **[Face Recognition](#models-face-recognition)**
+ * **[Face Expression Recognition](#models-face-expression-recognition)**
+ * **[Age Estimation and Gender Recognition](#models-age-and-gender-recognition)**
+* **[API Documentation](https://justadudewhohacks.github.io/face-api.js/docs/globals.html)**
-
-
-# Examples
+# Features
## Face Recognition
-
-
-
-
-## Face Similarity
-
-
+
## Face Landmark Detection
-
+
-
+## Face Expression Recognition
-## Realtime Face Tracking
+
-
+## Age Estimation & Gender Recognition
-## MTCNN
-
-
+
-## Running the Examples
+# Running the Examples
+
+Clone the repository:
``` bash
git clone https://github.com/justadudewhohacks/face-api.js.git
-cd face-api.js/examples
+```
+
+## Running the Browser Examples
+
+``` bash
+cd face-api.js/examples/examples-browser
npm i
npm start
```
Browse to http://localhost:3000/.
-
+## Running the Nodejs Examples
-# Available Models
+``` bash
+cd face-api.js/examples/examples-nodejs
+npm i
+```
-
+Now run one of the examples using ts-node:
-## Face Detection Models
+``` bash
+ts-node faceDetection.ts
+```
-### SSD Mobilenet V1
+Or simply compile and run them with node:
-For face detection, this project implements a SSD (Single Shot Multibox Detector) based on MobileNetV1. The neural net will compute the locations of each face in an image and will return the bounding boxes together with it's probability for each face. This face detector is aiming towards obtaining high accuracy in detecting face bounding boxes instead of low inference time. The size of the quantized model is about 5.4 MB (**ssd_mobilenetv1_model**).
+``` bash
+tsc faceDetection.ts
+node faceDetection.js
+```
-The face detection model has been trained on the [WIDERFACE dataset](http://mmlab.ie.cuhk.edu.hk/projects/WIDERFace/) and the weights are provided by [yeephycho](https://github.com/yeephycho) in [this](https://github.com/yeephycho/tensorflow-face-detection) repo.
+
-### Tiny Face Detector
+# face-api.js for the Browser
-The Tiny Face Detector is a very performant, realtime face detector, which is much faster, smaller and less resource consuming compared to the SSD Mobilenet V1 face detector, in return it performs slightly less well on detecting small faces. This model is extremely mobile and web friendly, thus it should be your GO-TO face detector on mobile devices and resource limited clients. The size of the quantized model is only 190 KB (**tiny_face_detector_model**).
+Simply include the latest script from [dist/face-api.js](https://github.com/justadudewhohacks/face-api.js/tree/master/dist).
-The face detector has been trained on a custom dataset of ~14K images labeled with bounding boxes. Furthermore the model has been trained to predict bounding boxes, which entirely cover facial feature points, thus it in general produces better results in combination with subsequent face landmark detection than SSD Mobilenet V1.
+Or install it via npm:
-This model is basically an even tinier version of Tiny Yolo V2, replacing the regular convolutions of Yolo with depthwise separable convolutions. Yolo is fully convolutional, thus can easily adapt to different input image sizes to trade off accuracy for performance (inference time).
+``` bash
+npm i face-api.js
+```
-### MTCNN
+
-**Note, this model is mostly kept in this repo for experimental reasons. In general the other face detectors should perform better, but of course you are free to play around with MTCNN.**
+# face-api.js for Nodejs
-MTCNN (Multi-task Cascaded Convolutional Neural Networks) represents an alternative face detector to SSD Mobilenet v1 and Tiny Yolo v2, which offers much more room for configuration. By tuning the input parameters, MTCNN should be able to detect a wide range of face bounding box sizes. MTCNN is a 3 stage cascaded CNN, which simultaneously returns 5 face landmark points along with the bounding boxes and scores for each face. Additionally the model size is only 2MB.
+We can use the equivalent API in a nodejs environment by polyfilling some browser specifics, such as HTMLImageElement, HTMLCanvasElement and ImageData. The easiest way to do so is by installing the node-canvas package.
-MTCNN has been presented in the paper [Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks](https://kpzhang93.github.io/MTCNN_face_detection_alignment/paper/spl.pdf) by Zhang et al. and the model weights are provided in the official [repo](https://github.com/kpzhang93/MTCNN_face_detection_alignment) of the MTCNN implementation.
+Alternatively you can simply construct your own tensors from image data and pass tensors as inputs to the API.
-
+Furthermore you want to install @tensorflow/tfjs-node (not required, but highly recommended), which speeds things up drastically by compiling and binding to the native Tensorflow C++ library:
-## 68 Point Face Landmark Detection Models
+``` bash
+npm i face-api.js canvas @tensorflow/tfjs-node
+```
-This package implements a very lightweight and fast, yet accurate 68 point face landmark detector. The default model has a size of only 350kb (**face_landmark_68_model**) and the tiny model is only 80kb (**face_landmark_68_tiny_model**). Both models employ the ideas of depthwise separable convolutions as well as densely connected blocks. The models have been trained on a dataset of ~35k face images labeled with 68 face landmark points.
+Now we simply monkey patch the environment to use the polyfills:
-
+``` javascript
+// import nodejs bindings to native tensorflow,
+// not required, but will speed up things drastically (python required)
+import '@tensorflow/tfjs-node';
-## Face Recognition Model
+// implements nodejs wrappers for HTMLCanvasElement, HTMLImageElement, ImageData
+import * as canvas from 'canvas';
-For face recognition, a ResNet-34 like architecture is implemented to compute a face descriptor (a feature vector with 128 values) from any given face image, which is used to describe the characteristics of a persons face. The model is **not** limited to the set of faces used for training, meaning you can use it for face recognition of any person, for example yourself. You can determine the similarity of two arbitrary faces by comparing their face descriptors, for example by computing the euclidean distance or using any other classifier of your choice.
+import * as faceapi from 'face-api.js';
-The neural net is equivalent to the **FaceRecognizerNet** used in [face-recognition.js](https://github.com/justadudewhohacks/face-recognition.js) and the net used in the [dlib](https://github.com/davisking/dlib/blob/master/examples/dnn_face_recognition_ex.cpp) face recognition example. The weights have been trained by [davisking](https://github.com/davisking) and the model achieves a prediction accuracy of 99.38% on the LFW (Labeled Faces in the Wild) benchmark for face recognition.
+// patch nodejs environment, we need to provide an implementation of
+// HTMLCanvasElement and HTMLImageElement
+const { Canvas, Image, ImageData } = canvas
+faceapi.env.monkeyPatch({ Canvas, Image, ImageData })
+```
-The size of the quantized model is roughly 6.2 MB (**face_recognition_model**).
+
-# Usage
+# Getting Started
-
+
## Loading the Models
-To load a model, you have provide the corresponding manifest.json file as well as the model weight files (shards) as assets. Simply copy them to your public or assets folder. The manifest.json and shard files of a model have to be located in the same directory / accessible under the same route.
+All global neural network instances are exported via faceapi.nets:
+
+``` javascript
+console.log(faceapi.nets)
+// ageGenderNet
+// faceExpressionNet
+// faceLandmark68Net
+// faceLandmark68TinyNet
+// faceRecognitionNet
+// ssdMobilenetv1
+// tinyFaceDetector
+// tinyYolov2
+```
+
+To load a model, you have to provide the corresponding manifest.json file as well as the model weight files (shards) as assets. Simply copy them to your public or assets folder. The manifest.json and shard files of a model have to be located in the same directory / accessible under the same route.
Assuming the models reside in **public/models**:
``` javascript
-await faceapi.loadSsdMobilenetv1Model('/models')
+await faceapi.nets.ssdMobilenetv1.loadFromUri('/models')
// accordingly for the other models:
-// await faceapi.loadTinyFaceDetectorModel('/models')
-// await faceapi.loadMtcnnModel('/models')
-// await faceapi.loadFaceLandmarkModel('/models')
-// await faceapi.loadFaceLandmarkTinyModel('/models')
-// await faceapi.loadFaceRecognitionModel('/models')
+// await faceapi.nets.faceLandmark68Net.loadFromUri('/models')
+// await faceapi.nets.faceRecognitionNet.loadFromUri('/models')
+// ...
```
-Alternatively, you can also create instance of the neural nets:
+In a nodejs environment you can furthermore load the models directly from disk:
+
+``` javascript
+await faceapi.nets.ssdMobilenetv1.loadFromDisk('./models')
+```
+
+You can also load the model from a tf.NamedTensorMap:
+
+``` javascript
+await faceapi.nets.ssdMobilenetv1.loadFromWeightMap(weightMap)
+```
+
+Alternatively, you can also create own instances of the neural nets:
``` javascript
const net = new faceapi.SsdMobilenetv1()
-await net.load('/models')
+await net.loadFromUri('/models')
```
-Using instances, you can also load the weights as a Float32Array (in case you want to use the uncompressed models):
+You can also load the weights as a Float32Array (in case you want to use the uncompressed models):
``` javascript
// using fetch
@@ -169,6 +206,8 @@ const weights = new Float32Array(res.data)
net.load(weights)
```
+
+
## High Level API
In the following **input** can be an HTML img, video or canvas element or the id of that element.
@@ -205,23 +244,22 @@ By default **detectAllFaces** and **detectSingleFace** utilize the SSD Mobilenet
``` javascript
const detections1 = await faceapi.detectAllFaces(input, new faceapi.SsdMobilenetv1Options())
-const detections2 = await faceapi.detectAllFaces(input, new faceapi.inyFaceDetectorOptions())
-const detections3 = await faceapi.detectAllFaces(input, new faceapi.MtcnnOptions())
+const detections2 = await faceapi.detectAllFaces(input, new faceapi.TinyFaceDetectorOptions())
```
-You can tune the options of each face detector as shown [here](#usage-face-detection-options).
+You can tune the options of each face detector as shown [here](#getting-started-face-detection-options).
### Detecting 68 Face Landmark Points
**After face detection, we can furthermore predict the facial landmarks for each detected face as follows:**
-Detect all faces in an image + computes 68 Point Face Landmarks for each detected face. Returns **Array<[FaceDetectionWithLandmarks](#interface-face-detection-with-landmarks)>**:
+Detect all faces in an image + computes 68 Point Face Landmarks for each detected face. Returns **Array<[WithFaceLandmarks>](#getting-started-utility-classes)>**:
``` javascript
const detectionsWithLandmarks = await faceapi.detectAllFaces(input).withFaceLandmarks()
```
-Detect the face with the highest confidence score in an image + computes 68 Point Face Landmarks for that face. Returns **[FaceDetectionWithLandmarks](#interface-face-detection-with-landmarks) | undefined**:
+Detect the face with the highest confidence score in an image + computes 68 Point Face Landmarks for that face. Returns **[WithFaceLandmarks>](#getting-started-utility-classes) | undefined**:
``` javascript
const detectionWithLandmarks = await faceapi.detectSingleFace(input).withFaceLandmarks()
@@ -238,49 +276,133 @@ const detectionsWithLandmarks = await faceapi.detectAllFaces(input).withFaceLand
**After face detection and facial landmark prediction the face descriptors for each face can be computed as follows:**
-Detect all faces in an image + computes 68 Point Face Landmarks for each detected face. Returns **Array<[FullFaceDescription](#interface-full-face-description)>**:
+Detect all faces in an image + compute 68 Point Face Landmarks for each detected face. Returns **Array<[WithFaceDescriptor>>](#getting-started-utility-classes)>**:
+
+``` javascript
+const results = await faceapi.detectAllFaces(input).withFaceLandmarks().withFaceDescriptors()
+```
+
+Detect the face with the highest confidence score in an image + compute 68 Point Face Landmarks and face descriptor for that face. Returns **[WithFaceDescriptor>>](#getting-started-utility-classes) | undefined**:
+
+``` javascript
+const result = await faceapi.detectSingleFace(input).withFaceLandmarks().withFaceDescriptor()
+```
+
+### Recognizing Face Expressions
+
+**Face expression recognition can be performed for detected faces as follows:**
+
+Detect all faces in an image + recognize face expressions of each face. Returns **Array<[WithFaceExpressions>>](#getting-started-utility-classes)>**:
``` javascript
-const fullFaceDescriptions = await faceapi.detectAllFaces(input).withFaceLandmarks().withFaceDescriptors()
+const detectionsWithExpressions = await faceapi.detectAllFaces(input).withFaceLandmarks().withFaceExpressions()
```
-Detect the face with the highest confidence score in an image + computes 68 Point Face Landmarks and face descriptor for that face. Returns **[FullFaceDescription](#interface-full-face-description) | undefined**:
+Detect the face with the highest confidence score in an image + recognize the face expressions for that face. Returns **[WithFaceExpressions>>](#getting-started-utility-classes) | undefined**:
``` javascript
-const fullFaceDescription = await faceapi.detectSingleFace(input).withFaceLandmarks().withFaceDescriptor()
+const detectionWithExpressions = await faceapi.detectSingleFace(input).withFaceLandmarks().withFaceExpressions()
+```
+
+**You can also skip .withFaceLandmarks(), which will skip the face alignment step (less stable accuracy):**
+
+Detect all faces without face alignment + recognize face expressions of each face. Returns **Array<[WithFaceExpressions>](#getting-started-utility-classes)>**:
+
+``` javascript
+const detectionsWithExpressions = await faceapi.detectAllFaces(input).withFaceExpressions()
+```
+
+Detect the face with the highest confidence score without face alignment + recognize the face expression for that face. Returns **[WithFaceExpressions>](#getting-started-utility-classes) | undefined**:
+
+``` javascript
+const detectionWithExpressions = await faceapi.detectSingleFace(input).withFaceExpressions()
+```
+
+### Age Estimation and Gender Recognition
+
+**Age estimation and gender recognition from detected faces can be done as follows:**
+
+Detect all faces in an image + estimate age and recognize gender of each face. Returns **Array<[WithAge>>>](#getting-started-utility-classes)>**:
+
+``` javascript
+const detectionsWithAgeAndGender = await faceapi.detectAllFaces(input).withFaceLandmarks().withAgeAndGender()
+```
+
+Detect the face with the highest confidence score in an image + estimate age and recognize gender for that face. Returns **[WithAge>>>](#getting-started-utility-classes) | undefined**:
+
+``` javascript
+const detectionWithAgeAndGender = await faceapi.detectSingleFace(input).withFaceLandmarks().withAgeAndGender()
+```
+
+**You can also skip .withFaceLandmarks(), which will skip the face alignment step (less stable accuracy):**
+
+Detect all faces without face alignment + estimate age and recognize gender of each face. Returns **Array<[WithAge>>](#getting-started-utility-classes)>**:
+
+``` javascript
+const detectionsWithAgeAndGender = await faceapi.detectAllFaces(input).withAgeAndGender()
+```
+
+Detect the face with the highest confidence score without face alignment + estimate age and recognize gender for that face. Returns **[WithAge>>](#getting-started-utility-classes) | undefined**:
+
+``` javascript
+const detectionWithAgeAndGender = await faceapi.detectSingleFace(input).withAgeAndGender()
+```
+
+### Composition of Tasks
+
+**Tasks can be composed as follows:**
+
+``` javascript
+// all faces
+await faceapi.detectAllFaces(input)
+await faceapi.detectAllFaces(input).withFaceExpressions()
+await faceapi.detectAllFaces(input).withFaceLandmarks()
+await faceapi.detectAllFaces(input).withFaceLandmarks().withFaceExpressions()
+await faceapi.detectAllFaces(input).withFaceLandmarks().withFaceExpressions().withFaceDescriptors()
+await faceapi.detectAllFaces(input).withFaceLandmarks().withAgeAndGender().withFaceDescriptors()
+await faceapi.detectAllFaces(input).withFaceLandmarks().withFaceExpressions().withAgeAndGender().withFaceDescriptors()
+
+// single face
+await faceapi.detectSingleFace(input)
+await faceapi.detectSingleFace(input).withFaceExpressions()
+await faceapi.detectSingleFace(input).withFaceLandmarks()
+await faceapi.detectSingleFace(input).withFaceLandmarks().withFaceExpressions()
+await faceapi.detectSingleFace(input).withFaceLandmarks().withFaceExpressions().withFaceDescriptor()
+await faceapi.detectSingleFace(input).withFaceLandmarks().withAgeAndGender().withFaceDescriptor()
+await faceapi.detectSingleFace(input).withFaceLandmarks().withFaceExpressions().withAgeAndGender().withFaceDescriptor()
```
### Face Recognition by Matching Descriptors
To perform face recognition, one can use faceapi.FaceMatcher to compare reference face descriptors to query face descriptors.
-First, we initialize the FaceMatcher with the reference data, for example we can simply detect faces in a **referenceImage** and match the descriptors of the detected faces to faces of subsquent images:
+First, we initialize the FaceMatcher with the reference data, for example we can simply detect faces in a **referenceImage** and match the descriptors of the detected faces to faces of subsequent images:
``` javascript
-const fullFaceDescriptions = await faceapi
+const results = await faceapi
.detectAllFaces(referenceImage)
.withFaceLandmarks()
.withFaceDescriptors()
-if (!fullFaceDescriptions.length) {
+if (!results.length) {
return
}
// create FaceMatcher with automatically assigned labels
// from the detection results for the reference image
-const faceMatcher = new faceapi.FaceMatcher(fullFaceDescriptions)
+const faceMatcher = new faceapi.FaceMatcher(results)
```
Now we can recognize a persons face shown in **queryImage1**:
``` javascript
-const singleFullFaceDescription = await faceapi
+const singleResult = await faceapi
.detectSingleFace(queryImage1)
.withFaceLandmarks()
.withFaceDescriptor()
-if (singleFullFaceDescription) {
- const bestMatch = faceMatcher.findBestMatch(singleFullFaceDescription.descriptor)
+if (singleResult) {
+ const bestMatch = faceMatcher.findBestMatch(singleResult.descriptor)
console.log(bestMatch.toString())
}
```
@@ -288,12 +410,12 @@ if (singleFullFaceDescription) {
Or we can recognize all faces shown in **queryImage2**:
``` javascript
-const fullFaceDescriptions = await faceapi
+const results = await faceapi
.detectAllFaces(queryImage2)
.withFaceLandmarks()
.withFaceDescriptors()
-fullFaceDescriptions.forEach(fd => {
+results.forEach(fd => {
const bestMatch = faceMatcher.findBestMatch(fd.descriptor)
console.log(bestMatch.toString())
})
@@ -304,11 +426,11 @@ You can also create labeled reference descriptors as follows:
``` javascript
const labeledDescriptors = [
new faceapi.LabeledFaceDescriptors(
- 'obama'
+ 'obama',
[descriptorObama1, descriptorObama2]
),
new faceapi.LabeledFaceDescriptors(
- 'trump'
+ 'trump',
[descriptorTrump]
)
]
@@ -316,53 +438,117 @@ const labeledDescriptors = [
const faceMatcher = new faceapi.FaceMatcher(labeledDescriptors)
```
-
+
## Displaying Detection Results
-Drawing the detected faces into a canvas:
+Preparing the overlay canvas:
``` javascript
-const detections = await faceapi.detectAllFaces(input)
-
-// resize the detected boxes in case your displayed image has a different size then the original
-const detectionsForSize = detections.map(det => det.forSize(input.width, input.height))
-// draw them into a canvas
+const displaySize = { width: input.width, height: input.height }
+// resize the overlay canvas to the input dimensions
const canvas = document.getElementById('overlay')
-canvas.width = input.width
-canvas.height = input.height
-faceapi.drawDetection(canvas, detectionsForSize, { withScore: true })
+faceapi.matchDimensions(canvas, displaySize)
```
-Drawing face landmarks into a canvas:
+face-api.js predefines some highlevel drawing functions, which you can utilize:
``` javascript
+/* Display detected face bounding boxes */
+const detections = await faceapi.detectAllFaces(input)
+// resize the detected boxes in case your displayed image has a different size than the original
+const resizedDetections = faceapi.resizeResults(detections, displaySize)
+// draw detections into the canvas
+faceapi.draw.drawDetections(canvas, resizedDetections)
+
+/* Display face landmarks */
const detectionsWithLandmarks = await faceapi
.detectAllFaces(input)
.withFaceLandmarks()
+// resize the detected boxes and landmarks in case your displayed image has a different size than the original
+const resizedResults = faceapi.resizeResults(detectionsWithLandmarks, displaySize)
+// draw detections into the canvas
+faceapi.draw.drawDetections(canvas, resizedResults)
+// draw the landmarks into the canvas
+faceapi.draw.drawFaceLandmarks(canvas, resizedResults)
-// resize the detected boxes and landmarks in case your displayed image has a different size then the original
-const detectionsWithLandmarksForSize = detectionsWithLandmarks.map(det => det.forSize(input.width, input.height))
-// draw them into a canvas
-const canvas = document.getElementById('overlay')
-canvas.width = input.width
-canvas.height = input.height
-faceapi.drawLandmarks(canvas, detectionsWithLandmarks, { drawLines: true })
+
+/* Display face expression results */
+const detectionsWithExpressions = await faceapi
+ .detectAllFaces(input)
+ .withFaceLandmarks()
+ .withFaceExpressions()
+// resize the detected boxes and landmarks in case your displayed image has a different size than the original
+const resizedResults = faceapi.resizeResults(detectionsWithExpressions, displaySize)
+// draw detections into the canvas
+faceapi.draw.drawDetections(canvas, resizedResults)
+// draw a textbox displaying the face expressions with minimum probability into the canvas
+const minProbability = 0.05
+faceapi.draw.drawFaceExpressions(canvas, resizedResults, minProbability)
+```
+
+You can also draw boxes with custom text ([DrawBox](https://github.com/justadudewhohacks/tfjs-image-recognition-base/blob/master/src/draw/DrawBox.ts)):
+
+``` javascript
+const box = { x: 50, y: 50, width: 100, height: 100 }
+// see DrawBoxOptions below
+const drawOptions = {
+ label: 'Hello I am a box!',
+ lineWidth: 2
+}
+const drawBox = new faceapi.draw.DrawBox(box, drawOptions)
+drawBox.draw(document.getElementById('myCanvas'))
```
-Finally you can also draw boxes with custom text:
+DrawBox drawing options:
``` javascript
-const boxesWithText = [
- new faceapi.BoxWithText(new faceapi.Rect(x, y, width, height), text))
- new faceapi.BoxWithText(new faceapi.Rect(0, 0, 50, 50), 'some text'))
+export interface IDrawBoxOptions {
+ boxColor?: string
+ lineWidth?: number
+ drawLabelOptions?: IDrawTextFieldOptions
+ label?: string
+}
+```
+
+Finally you can draw custom text fields ([DrawTextField](https://github.com/justadudewhohacks/tfjs-image-recognition-base/blob/master/src/draw/DrawTextField.ts)):
+
+``` javascript
+const text = [
+ 'This is a textline!',
+ 'This is another textline!'
]
+const anchor = { x: 200, y: 200 }
+// see DrawTextField below
+const drawOptions = {
+ anchorPosition: 'TOP_LEFT',
+ backgroundColor: 'rgba(0, 0, 0, 0.5)'
+}
+const drawBox = new faceapi.draw.DrawTextField(text, anchor, drawOptions)
+drawBox.draw(document.getElementById('myCanvas'))
+```
-const canvas = document.getElementById('overlay')
-faceapi.drawDetection(canvas, boxesWithText)
+DrawTextField drawing options:
+
+``` javascript
+export interface IDrawTextFieldOptions {
+ anchorPosition?: AnchorPosition
+ backgroundColor?: string
+ fontColor?: string
+ fontSize?: number
+ fontStyle?: string
+ padding?: number
+}
+
+export enum AnchorPosition {
+ TOP_LEFT = 'TOP_LEFT',
+ TOP_RIGHT = 'TOP_RIGHT',
+ BOTTOM_LEFT = 'BOTTOM_LEFT',
+ BOTTOM_RIGHT = 'BOTTOM_RIGHT'
+}
```
-
+
## Face Detection Options
@@ -404,41 +590,7 @@ export interface ITinyFaceDetectorOptions {
const options = new faceapi.TinyFaceDetectorOptions({ inputSize: 320 })
```
-### MtcnnOptions
-
-``` javascript
-export interface IMtcnnOptions {
- // minimum face size to expect, the higher the faster processing will be,
- // but smaller faces won't be detected
- // default: 20
- minFaceSize?: number
-
- // the score threshold values used to filter the bounding
- // boxes of stage 1, 2 and 3
- // default: [0.6, 0.7, 0.7]
- scoreThresholds?: number[]
-
- // scale factor used to calculate the scale steps of the image
- // pyramid used in stage 1
- // default: 0.709
- scaleFactor?: number
-
- // number of scaled versions of the input image passed through the CNN
- // of the first stage, lower numbers will result in lower inference time,
- // but will also be less accurate
- // default: 10
- maxNumScales?: number
-
- // instead of specifying scaleFactor and maxNumScales you can also
- // set the scaleSteps manually
- scaleSteps?: number[]
-}
-
-// example
-const options = new faceapi.MtcnnOptions({ minFaceSize: 100, scaleFactor: 0.8 })
-```
-
-
+
## Utility Classes
@@ -453,8 +605,6 @@ export interface IBox {
}
```
-
-
### IFaceDetection
``` javascript
@@ -464,8 +614,6 @@ export interface IFaceDetection {
}
```
-
-
### IFaceLandmarks
``` javascript
@@ -475,28 +623,63 @@ export interface IFaceLandmarks {
}
```
-
-
-### IFaceDetectionWithLandmarks
+### WithFaceDetection
``` javascript
-export interface IFaceDetectionWithLandmarks {
+export type WithFaceDetection = TSource & {
detection: FaceDetection
- landmarks: FaceLandmarks
}
```
-
+### WithFaceLandmarks
-### IFullFaceDescription
+``` javascript
+export type WithFaceLandmarks = TSource & {
+ unshiftedLandmarks: FaceLandmarks
+ landmarks: FaceLandmarks
+ alignedRect: FaceDetection
+}
+```
+
+### WithFaceDescriptor
``` javascript
-export interface IFullFaceDescription extends IFaceDetectionWithLandmarks {
+export type WithFaceDescriptor = TSource & {
descriptor: Float32Array
}
```
-
+### WithFaceExpressions
+
+``` javascript
+export type WithFaceExpressions = TSource & {
+ expressions: FaceExpressions
+}
+```
+
+### WithAge
+
+``` javascript
+export type WithAge = TSource & {
+ age: number
+}
+```
+
+### WithGender
+
+``` javascript
+export type WithGender = TSource & {
+ gender: Gender
+ genderProbability: number
+}
+
+export enum Gender {
+ FEMALE = 'female',
+ MALE = 'male'
+}
+```
+
+
## Other Useful Utility
@@ -507,18 +690,11 @@ Instead of using the high level API, you can directly use the forward methods of
``` javascript
const detections1 = await faceapi.ssdMobilenetv1(input, options)
const detections2 = await faceapi.tinyFaceDetector(input, options)
-const detections3 = await faceapi.mtcnn(input, options)
const landmarks1 = await faceapi.detectFaceLandmarks(faceImage)
const landmarks2 = await faceapi.detectFaceLandmarksTiny(faceImage)
const descriptor = await faceapi.computeFaceDescriptor(alignedFaceImage)
```
-All global neural network instances are exported via faceapi.nets:
-
-``` javascript
-console.log(faceapi.nets)
-```
-
### Extracting a Canvas for an Image Region
``` javascript
@@ -602,4 +778,78 @@ async function uploadImage() {
``` javascript
const canvas1 = faceapi.createCanvasFromMedia(document.getElementById('myImg'))
const canvas2 = faceapi.createCanvasFromMedia(document.getElementById('myVideo'))
-```
\ No newline at end of file
+```
+
+
+
+# Available Models
+
+
+
+## Face Detection Models
+
+### SSD Mobilenet V1
+
+For face detection, this project implements a SSD (Single Shot Multibox Detector) based on MobileNetV1. The neural net will compute the locations of each face in an image and will return the bounding boxes together with it's probability for each face. This face detector is aiming towards obtaining high accuracy in detecting face bounding boxes instead of low inference time. The size of the quantized model is about 5.4 MB (**ssd_mobilenetv1_model**).
+
+The face detection model has been trained on the [WIDERFACE dataset](http://mmlab.ie.cuhk.edu.hk/projects/WIDERFace/) and the weights are provided by [yeephycho](https://github.com/yeephycho) in [this](https://github.com/yeephycho/tensorflow-face-detection) repo.
+
+### Tiny Face Detector
+
+The Tiny Face Detector is a very performant, realtime face detector, which is much faster, smaller and less resource consuming compared to the SSD Mobilenet V1 face detector, in return it performs slightly less well on detecting small faces. This model is extremely mobile and web friendly, thus it should be your GO-TO face detector on mobile devices and resource limited clients. The size of the quantized model is only 190 KB (**tiny_face_detector_model**).
+
+The face detector has been trained on a custom dataset of ~14K images labeled with bounding boxes. Furthermore the model has been trained to predict bounding boxes, which entirely cover facial feature points, thus it in general produces better results in combination with subsequent face landmark detection than SSD Mobilenet V1.
+
+This model is basically an even tinier version of Tiny Yolo V2, replacing the regular convolutions of Yolo with depthwise separable convolutions. Yolo is fully convolutional, thus can easily adapt to different input image sizes to trade off accuracy for performance (inference time).
+
+
+
+## 68 Point Face Landmark Detection Models
+
+This package implements a very lightweight and fast, yet accurate 68 point face landmark detector. The default model has a size of only 350kb (**face_landmark_68_model**) and the tiny model is only 80kb (**face_landmark_68_tiny_model**). Both models employ the ideas of depthwise separable convolutions as well as densely connected blocks. The models have been trained on a dataset of ~35k face images labeled with 68 face landmark points.
+
+
+
+## Face Recognition Model
+
+For face recognition, a ResNet-34 like architecture is implemented to compute a face descriptor (a feature vector with 128 values) from any given face image, which is used to describe the characteristics of a persons face. The model is **not** limited to the set of faces used for training, meaning you can use it for face recognition of any person, for example yourself. You can determine the similarity of two arbitrary faces by comparing their face descriptors, for example by computing the euclidean distance or using any other classifier of your choice.
+
+The neural net is equivalent to the **FaceRecognizerNet** used in [face-recognition.js](https://github.com/justadudewhohacks/face-recognition.js) and the net used in the [dlib](https://github.com/davisking/dlib/blob/master/examples/dnn_face_recognition_ex.cpp) face recognition example. The weights have been trained by [davisking](https://github.com/davisking) and the model achieves a prediction accuracy of 99.38% on the LFW (Labeled Faces in the Wild) benchmark for face recognition.
+
+The size of the quantized model is roughly 6.2 MB (**face_recognition_model**).
+
+
+
+## Face Expression Recognition Model
+
+The face expression recognition model is lightweight, fast and provides reasonable accuracy. The model has a size of roughly 310kb and it employs depthwise separable convolutions and densely connected blocks. It has been trained on a variety of images from publicly available datasets as well as images scraped from the web. Note, that wearing glasses might decrease the accuracy of the prediction results.
+
+
+
+## Age and Gender Recognition Model
+
+The age and gender recognition model is a multitask network, which employs a feature extraction layer, an age regression layer and a gender classifier. The model has a size of roughly 420kb and the feature extractor employs a tinier but very similar architecture to Xception.
+
+This model has been trained and tested on the following databases with an 80/20 train/test split each: UTK, FGNET, Chalearn, Wiki, IMDB*, CACD*, MegaAge, MegaAge-Asian. The `*` indicates, that these databases have been algorithmically cleaned up, since the initial databases are very noisy.
+
+### Total Test Results
+
+Total MAE (Mean Age Error): **4.54**
+
+Total Gender Accuracy: **95%**
+
+### Test results for each database
+
+The `-` indicates, that there are no gender labels available for these databases.
+
+Database | UTK | FGNET | Chalearn | Wiki | IMDB* | CACD* | MegaAge | MegaAge-Asian |
+----------------|-------:|------:|---------:|-----:|------:|------:|--------:|--------------:|
+MAE | 5.25 | 4.23 | 6.24 | 6.54 | 3.63 | 3.20 | 6.23 | 4.21 |
+Gender Accuracy | 0.93 | - | 0.94 | 0.95 | - | 0.97 | - | - |
+
+### Test results for different age category groups
+
+Age Range | 0 - 3 | 4 - 8 | 9 - 18 | 19 - 28 | 29 - 40 | 41 - 60 | 60 - 80 | 80+ |
+----------------|-------:|------:|-------:|--------:|--------:|--------:|--------:|--------:|
+MAE | 1.52 | 3.06 | 4.82 | 4.99 | 5.43 | 4.94 | 6.17 | 9.91 |
+Gender Accuracy | 0.69 | 0.80 | 0.88 | 0.96 | 0.97 | 0.97 | 0.96 | 0.9 |
diff --git a/build/commonjs/classes/FaceDetection.d.ts b/build/commonjs/classes/FaceDetection.d.ts
deleted file mode 100644
index b542db89..00000000
--- a/build/commonjs/classes/FaceDetection.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { Box, IDimensions, ObjectDetection, Rect } from 'tfjs-image-recognition-base';
-export interface IFaceDetecion {
- score: number;
- box: Box;
-}
-export declare class FaceDetection extends ObjectDetection implements IFaceDetecion {
- constructor(score: number, relativeBox: Rect, imageDims: IDimensions);
-}
diff --git a/build/commonjs/classes/FaceDetection.js b/build/commonjs/classes/FaceDetection.js
deleted file mode 100644
index ac80fb00..00000000
--- a/build/commonjs/classes/FaceDetection.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tslib_1 = require("tslib");
-var tfjs_image_recognition_base_1 = require("tfjs-image-recognition-base");
-var FaceDetection = /** @class */ (function (_super) {
- tslib_1.__extends(FaceDetection, _super);
- function FaceDetection(score, relativeBox, imageDims) {
- return _super.call(this, score, score, '', relativeBox, imageDims) || this;
- }
- return FaceDetection;
-}(tfjs_image_recognition_base_1.ObjectDetection));
-exports.FaceDetection = FaceDetection;
-//# sourceMappingURL=FaceDetection.js.map
\ No newline at end of file
diff --git a/build/commonjs/classes/FaceDetection.js.map b/build/commonjs/classes/FaceDetection.js.map
deleted file mode 100644
index f1fd6120..00000000
--- a/build/commonjs/classes/FaceDetection.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"FaceDetection.js","sourceRoot":"","sources":["../../../src/classes/FaceDetection.ts"],"names":[],"mappings":";;;AAAA,2EAAsF;AAOtF;IAAmC,yCAAe;IAChD,uBACE,KAAa,EACb,WAAiB,EACjB,SAAsB;eAEtB,kBAAM,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC;IACjD,CAAC;IACH,oBAAC;AAAD,CAAC,AARD,CAAmC,6CAAe,GAQjD;AARY,sCAAa"}
\ No newline at end of file
diff --git a/build/commonjs/classes/FaceDetectionWithLandmarks.d.ts b/build/commonjs/classes/FaceDetectionWithLandmarks.d.ts
deleted file mode 100644
index ed2ac7d5..00000000
--- a/build/commonjs/classes/FaceDetectionWithLandmarks.d.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-import { FaceDetection } from './FaceDetection';
-import { FaceLandmarks } from './FaceLandmarks';
-import { FaceLandmarks68 } from './FaceLandmarks68';
-export interface IFaceDetectionWithLandmarks {
- detection: FaceDetection;
- landmarks: TFaceLandmarks;
-}
-export declare class FaceDetectionWithLandmarks implements IFaceDetectionWithLandmarks {
- private _detection;
- private _unshiftedLandmarks;
- constructor(detection: FaceDetection, unshiftedLandmarks: TFaceLandmarks);
- readonly detection: FaceDetection;
- readonly unshiftedLandmarks: TFaceLandmarks;
- readonly alignedRect: FaceDetection;
- readonly landmarks: TFaceLandmarks;
- readonly faceDetection: FaceDetection;
- readonly faceLandmarks: TFaceLandmarks;
- forSize(width: number, height: number): FaceDetectionWithLandmarks;
-}
diff --git a/build/commonjs/classes/FaceDetectionWithLandmarks.js b/build/commonjs/classes/FaceDetectionWithLandmarks.js
deleted file mode 100644
index 55b3f0a9..00000000
--- a/build/commonjs/classes/FaceDetectionWithLandmarks.js
+++ /dev/null
@@ -1,55 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var FaceDetection_1 = require("./FaceDetection");
-var FaceDetectionWithLandmarks = /** @class */ (function () {
- function FaceDetectionWithLandmarks(detection, unshiftedLandmarks) {
- this._detection = detection;
- this._unshiftedLandmarks = unshiftedLandmarks;
- }
- Object.defineProperty(FaceDetectionWithLandmarks.prototype, "detection", {
- get: function () { return this._detection; },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(FaceDetectionWithLandmarks.prototype, "unshiftedLandmarks", {
- get: function () { return this._unshiftedLandmarks; },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(FaceDetectionWithLandmarks.prototype, "alignedRect", {
- get: function () {
- var rect = this.landmarks.align();
- var imageDims = this.detection.imageDims;
- return new FaceDetection_1.FaceDetection(this._detection.score, rect.rescale(imageDims.reverse()), imageDims);
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(FaceDetectionWithLandmarks.prototype, "landmarks", {
- get: function () {
- var _a = this.detection.box, x = _a.x, y = _a.y;
- return this._unshiftedLandmarks.shiftBy(x, y);
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(FaceDetectionWithLandmarks.prototype, "faceDetection", {
- // aliases for backward compatibily
- get: function () { return this.detection; },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(FaceDetectionWithLandmarks.prototype, "faceLandmarks", {
- get: function () { return this.landmarks; },
- enumerable: true,
- configurable: true
- });
- FaceDetectionWithLandmarks.prototype.forSize = function (width, height) {
- var resizedDetection = this._detection.forSize(width, height);
- var resizedLandmarks = this._unshiftedLandmarks.forSize(resizedDetection.box.width, resizedDetection.box.height);
- return new FaceDetectionWithLandmarks(resizedDetection, resizedLandmarks);
- };
- return FaceDetectionWithLandmarks;
-}());
-exports.FaceDetectionWithLandmarks = FaceDetectionWithLandmarks;
-//# sourceMappingURL=FaceDetectionWithLandmarks.js.map
\ No newline at end of file
diff --git a/build/commonjs/classes/FaceDetectionWithLandmarks.js.map b/build/commonjs/classes/FaceDetectionWithLandmarks.js.map
deleted file mode 100644
index ae66ce23..00000000
--- a/build/commonjs/classes/FaceDetectionWithLandmarks.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"FaceDetectionWithLandmarks.js","sourceRoot":"","sources":["../../../src/classes/FaceDetectionWithLandmarks.ts"],"names":[],"mappings":";;AAAA,iDAAgD;AAShD;IAME,oCACE,SAAwB,EACxB,kBAAkC;QAElC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAA;QAC3B,IAAI,CAAC,mBAAmB,GAAG,kBAAkB,CAAA;IAC/C,CAAC;IAED,sBAAW,iDAAS;aAApB,cAAwC,OAAO,IAAI,CAAC,UAAU,CAAA,CAAC,CAAC;;;OAAA;IAChE,sBAAW,0DAAkB;aAA7B,cAAkD,OAAO,IAAI,CAAC,mBAAmB,CAAA,CAAC,CAAC;;;OAAA;IAEnF,sBAAW,mDAAW;aAAtB;YACE,IAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAA;YAC3B,IAAA,oCAAS,CAAmB;YACpC,OAAO,IAAI,6BAAa,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA;QAC/F,CAAC;;;OAAA;IAED,sBAAW,iDAAS;aAApB;YACQ,IAAA,uBAA6B,EAA3B,QAAC,EAAE,QAAC,CAAuB;YACnC,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAC/C,CAAC;;;OAAA;IAGD,sBAAI,qDAAa;QADjB,mCAAmC;aACnC,cAAqC,OAAO,IAAI,CAAC,SAAS,CAAA,CAAC,CAAC;;;OAAA;IAC5D,sBAAI,qDAAa;aAAjB,cAAsC,OAAO,IAAI,CAAC,SAAS,CAAA,CAAC,CAAC;;;OAAA;IAEtD,4CAAO,GAAd,UAAe,KAAa,EAAE,MAAc;QAC1C,IAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QAC/D,IAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAiB,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAClI,OAAO,IAAI,0BAA0B,CAAiB,gBAAgB,EAAE,gBAAgB,CAAC,CAAA;IAC3F,CAAC;IACH,iCAAC;AAAD,CAAC,AArCD,IAqCC;AArCY,gEAA0B"}
\ No newline at end of file
diff --git a/build/commonjs/classes/FaceLandmarks.d.ts b/build/commonjs/classes/FaceLandmarks.d.ts
deleted file mode 100644
index 48ea7c81..00000000
--- a/build/commonjs/classes/FaceLandmarks.d.ts
+++ /dev/null
@@ -1,33 +0,0 @@
-import { Dimensions, IDimensions, Point, Rect } from 'tfjs-image-recognition-base';
-import { FaceDetection } from './FaceDetection';
-export interface IFaceLandmarks {
- positions: Point[];
- shift: Point;
-}
-export declare class FaceLandmarks implements IFaceLandmarks {
- protected _shift: Point;
- protected _positions: Point[];
- protected _imgDims: Dimensions;
- constructor(relativeFaceLandmarkPositions: Point[], imgDims: IDimensions, shift?: Point);
- readonly shift: Point;
- readonly imageWidth: number;
- readonly imageHeight: number;
- readonly positions: Point[];
- readonly relativePositions: Point[];
- forSize(width: number, height: number): T;
- shiftBy(x: number, y: number): T;
- shiftByPoint(pt: Point): T;
- /**
- * Aligns the face landmarks after face detection from the relative positions of the faces
- * bounding box, or it's current shift. This function should be used to align the face images
- * after face detection has been performed, before they are passed to the face recognition net.
- * This will make the computed face descriptor more accurate.
- *
- * @param detection (optional) The bounding box of the face or the face detection result. If
- * no argument was passed the position of the face landmarks are assumed to be relative to
- * it's current shift.
- * @returns The bounding box of the aligned face.
- */
- align(detection?: FaceDetection | Rect): Rect;
- protected getRefPointsForAlignment(): Point[];
-}
diff --git a/build/commonjs/classes/FaceLandmarks.js b/build/commonjs/classes/FaceLandmarks.js
deleted file mode 100644
index 0b1ffa1e..00000000
--- a/build/commonjs/classes/FaceLandmarks.js
+++ /dev/null
@@ -1,89 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tfjs_image_recognition_base_1 = require("tfjs-image-recognition-base");
-var FaceDetection_1 = require("./FaceDetection");
-// face alignment constants
-var relX = 0.5;
-var relY = 0.43;
-var relScale = 0.45;
-var FaceLandmarks = /** @class */ (function () {
- function FaceLandmarks(relativeFaceLandmarkPositions, imgDims, shift) {
- if (shift === void 0) { shift = new tfjs_image_recognition_base_1.Point(0, 0); }
- var width = imgDims.width, height = imgDims.height;
- this._imgDims = new tfjs_image_recognition_base_1.Dimensions(width, height);
- this._shift = shift;
- this._positions = relativeFaceLandmarkPositions.map(function (pt) { return pt.mul(new tfjs_image_recognition_base_1.Point(width, height)).add(shift); });
- }
- Object.defineProperty(FaceLandmarks.prototype, "shift", {
- get: function () { return new tfjs_image_recognition_base_1.Point(this._shift.x, this._shift.y); },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(FaceLandmarks.prototype, "imageWidth", {
- get: function () { return this._imgDims.width; },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(FaceLandmarks.prototype, "imageHeight", {
- get: function () { return this._imgDims.height; },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(FaceLandmarks.prototype, "positions", {
- get: function () { return this._positions; },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(FaceLandmarks.prototype, "relativePositions", {
- get: function () {
- var _this = this;
- return this._positions.map(function (pt) { return pt.sub(_this._shift).div(new tfjs_image_recognition_base_1.Point(_this.imageWidth, _this.imageHeight)); });
- },
- enumerable: true,
- configurable: true
- });
- FaceLandmarks.prototype.forSize = function (width, height) {
- return new this.constructor(this.relativePositions, { width: width, height: height });
- };
- FaceLandmarks.prototype.shiftBy = function (x, y) {
- return new this.constructor(this.relativePositions, this._imgDims, new tfjs_image_recognition_base_1.Point(x, y));
- };
- FaceLandmarks.prototype.shiftByPoint = function (pt) {
- return this.shiftBy(pt.x, pt.y);
- };
- /**
- * Aligns the face landmarks after face detection from the relative positions of the faces
- * bounding box, or it's current shift. This function should be used to align the face images
- * after face detection has been performed, before they are passed to the face recognition net.
- * This will make the computed face descriptor more accurate.
- *
- * @param detection (optional) The bounding box of the face or the face detection result. If
- * no argument was passed the position of the face landmarks are assumed to be relative to
- * it's current shift.
- * @returns The bounding box of the aligned face.
- */
- FaceLandmarks.prototype.align = function (detection) {
- if (detection) {
- var box = detection instanceof FaceDetection_1.FaceDetection
- ? detection.box.floor()
- : detection;
- return this.shiftBy(box.x, box.y).align();
- }
- var centers = this.getRefPointsForAlignment();
- var leftEyeCenter = centers[0], rightEyeCenter = centers[1], mouthCenter = centers[2];
- var distToMouth = function (pt) { return mouthCenter.sub(pt).magnitude(); };
- var eyeToMouthDist = (distToMouth(leftEyeCenter) + distToMouth(rightEyeCenter)) / 2;
- var size = Math.floor(eyeToMouthDist / relScale);
- var refPoint = tfjs_image_recognition_base_1.getCenterPoint(centers);
- // TODO: pad in case rectangle is out of image bounds
- var x = Math.floor(Math.max(0, refPoint.x - (relX * size)));
- var y = Math.floor(Math.max(0, refPoint.y - (relY * size)));
- return new tfjs_image_recognition_base_1.Rect(x, y, Math.min(size, this.imageWidth + x), Math.min(size, this.imageHeight + y));
- };
- FaceLandmarks.prototype.getRefPointsForAlignment = function () {
- throw new Error('getRefPointsForAlignment not implemented by base class');
- };
- return FaceLandmarks;
-}());
-exports.FaceLandmarks = FaceLandmarks;
-//# sourceMappingURL=FaceLandmarks.js.map
\ No newline at end of file
diff --git a/build/commonjs/classes/FaceLandmarks.js.map b/build/commonjs/classes/FaceLandmarks.js.map
deleted file mode 100644
index 1dd9f20f..00000000
--- a/build/commonjs/classes/FaceLandmarks.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"FaceLandmarks.js","sourceRoot":"","sources":["../../../src/classes/FaceLandmarks.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/build/commonjs/classes/FaceLandmarks5.d.ts b/build/commonjs/classes/FaceLandmarks5.d.ts
deleted file mode 100644
index 554ce2f1..00000000
--- a/build/commonjs/classes/FaceLandmarks5.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import { Point } from 'tfjs-image-recognition-base';
-import { FaceLandmarks } from './FaceLandmarks';
-export declare class FaceLandmarks5 extends FaceLandmarks {
- protected getRefPointsForAlignment(): Point[];
-}
diff --git a/build/commonjs/classes/FaceLandmarks5.js b/build/commonjs/classes/FaceLandmarks5.js
deleted file mode 100644
index c62a0991..00000000
--- a/build/commonjs/classes/FaceLandmarks5.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tslib_1 = require("tslib");
-var tfjs_image_recognition_base_1 = require("tfjs-image-recognition-base");
-var FaceLandmarks_1 = require("./FaceLandmarks");
-var FaceLandmarks5 = /** @class */ (function (_super) {
- tslib_1.__extends(FaceLandmarks5, _super);
- function FaceLandmarks5() {
- return _super !== null && _super.apply(this, arguments) || this;
- }
- FaceLandmarks5.prototype.getRefPointsForAlignment = function () {
- var pts = this.positions;
- return [
- pts[0],
- pts[1],
- tfjs_image_recognition_base_1.getCenterPoint([pts[3], pts[4]])
- ];
- };
- return FaceLandmarks5;
-}(FaceLandmarks_1.FaceLandmarks));
-exports.FaceLandmarks5 = FaceLandmarks5;
-//# sourceMappingURL=FaceLandmarks5.js.map
\ No newline at end of file
diff --git a/build/commonjs/classes/FaceLandmarks5.js.map b/build/commonjs/classes/FaceLandmarks5.js.map
deleted file mode 100644
index a4303925..00000000
--- a/build/commonjs/classes/FaceLandmarks5.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"FaceLandmarks5.js","sourceRoot":"","sources":["../../../src/classes/FaceLandmarks5.ts"],"names":[],"mappings":";;;AAAA,2EAAoE;AAEpE,iDAAgD;AAEhD;IAAoC,0CAAa;IAAjD;;IAUA,CAAC;IARW,iDAAwB,GAAlC;QACE,IAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAA;QAC1B,OAAO;YACL,GAAG,CAAC,CAAC,CAAC;YACN,GAAG,CAAC,CAAC,CAAC;YACN,4CAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SACjC,CAAA;IACH,CAAC;IACH,qBAAC;AAAD,CAAC,AAVD,CAAoC,6BAAa,GAUhD;AAVY,wCAAc"}
\ No newline at end of file
diff --git a/build/commonjs/classes/FaceLandmarks68.d.ts b/build/commonjs/classes/FaceLandmarks68.d.ts
deleted file mode 100644
index 5ac3974e..00000000
--- a/build/commonjs/classes/FaceLandmarks68.d.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { Point } from 'tfjs-image-recognition-base';
-import { FaceLandmarks } from '../classes/FaceLandmarks';
-export declare class FaceLandmarks68 extends FaceLandmarks {
- getJawOutline(): Point[];
- getLeftEyeBrow(): Point[];
- getRightEyeBrow(): Point[];
- getNose(): Point[];
- getLeftEye(): Point[];
- getRightEye(): Point[];
- getMouth(): Point[];
- protected getRefPointsForAlignment(): Point[];
-}
diff --git a/build/commonjs/classes/FaceLandmarks68.js b/build/commonjs/classes/FaceLandmarks68.js
deleted file mode 100644
index 8128068c..00000000
--- a/build/commonjs/classes/FaceLandmarks68.js
+++ /dev/null
@@ -1,42 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tslib_1 = require("tslib");
-var tfjs_image_recognition_base_1 = require("tfjs-image-recognition-base");
-var FaceLandmarks_1 = require("../classes/FaceLandmarks");
-var FaceLandmarks68 = /** @class */ (function (_super) {
- tslib_1.__extends(FaceLandmarks68, _super);
- function FaceLandmarks68() {
- return _super !== null && _super.apply(this, arguments) || this;
- }
- FaceLandmarks68.prototype.getJawOutline = function () {
- return this.positions.slice(0, 17);
- };
- FaceLandmarks68.prototype.getLeftEyeBrow = function () {
- return this.positions.slice(17, 22);
- };
- FaceLandmarks68.prototype.getRightEyeBrow = function () {
- return this.positions.slice(22, 27);
- };
- FaceLandmarks68.prototype.getNose = function () {
- return this.positions.slice(27, 36);
- };
- FaceLandmarks68.prototype.getLeftEye = function () {
- return this.positions.slice(36, 42);
- };
- FaceLandmarks68.prototype.getRightEye = function () {
- return this.positions.slice(42, 48);
- };
- FaceLandmarks68.prototype.getMouth = function () {
- return this.positions.slice(48, 68);
- };
- FaceLandmarks68.prototype.getRefPointsForAlignment = function () {
- return [
- this.getLeftEye(),
- this.getRightEye(),
- this.getMouth()
- ].map(tfjs_image_recognition_base_1.getCenterPoint);
- };
- return FaceLandmarks68;
-}(FaceLandmarks_1.FaceLandmarks));
-exports.FaceLandmarks68 = FaceLandmarks68;
-//# sourceMappingURL=FaceLandmarks68.js.map
\ No newline at end of file
diff --git a/build/commonjs/classes/FaceLandmarks68.js.map b/build/commonjs/classes/FaceLandmarks68.js.map
deleted file mode 100644
index a83cfd49..00000000
--- a/build/commonjs/classes/FaceLandmarks68.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"FaceLandmarks68.js","sourceRoot":"","sources":["../../../src/classes/FaceLandmarks68.ts"],"names":[],"mappings":";;;AAAA,2EAAoE;AAEpE,0DAAyD;AAEzD;IAAqC,2CAAa;IAAlD;;IAoCA,CAAC;IAnCQ,uCAAa,GAApB;QACE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACpC,CAAC;IAEM,wCAAc,GAArB;QACE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IACrC,CAAC;IAEM,yCAAe,GAAtB;QACE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IACrC,CAAC;IAEM,iCAAO,GAAd;QACE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IACrC,CAAC;IAEM,oCAAU,GAAjB;QACE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IACrC,CAAC;IAEM,qCAAW,GAAlB;QACE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IACrC,CAAC;IAEM,kCAAQ,GAAf;QACE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IACrC,CAAC;IAES,kDAAwB,GAAlC;QACE,OAAO;YACL,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,QAAQ,EAAE;SAChB,CAAC,GAAG,CAAC,4CAAc,CAAC,CAAA;IACvB,CAAC;IACH,sBAAC;AAAD,CAAC,AApCD,CAAqC,6BAAa,GAoCjD;AApCY,0CAAe"}
\ No newline at end of file
diff --git a/build/commonjs/classes/FaceMatch.d.ts b/build/commonjs/classes/FaceMatch.d.ts
deleted file mode 100644
index 3c0befef..00000000
--- a/build/commonjs/classes/FaceMatch.d.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-export interface IFaceMatch {
- label: string;
- distance: number;
-}
-export declare class FaceMatch implements IFaceMatch {
- private _label;
- private _distance;
- constructor(label: string, distance: number);
- readonly label: string;
- readonly distance: number;
- toString(withDistance?: boolean): string;
-}
diff --git a/build/commonjs/classes/FaceMatch.js b/build/commonjs/classes/FaceMatch.js
deleted file mode 100644
index 0dbbe68e..00000000
--- a/build/commonjs/classes/FaceMatch.js
+++ /dev/null
@@ -1,26 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tfjs_image_recognition_base_1 = require("tfjs-image-recognition-base");
-var FaceMatch = /** @class */ (function () {
- function FaceMatch(label, distance) {
- this._label = label;
- this._distance = distance;
- }
- Object.defineProperty(FaceMatch.prototype, "label", {
- get: function () { return this._label; },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(FaceMatch.prototype, "distance", {
- get: function () { return this._distance; },
- enumerable: true,
- configurable: true
- });
- FaceMatch.prototype.toString = function (withDistance) {
- if (withDistance === void 0) { withDistance = true; }
- return "" + this.label + (withDistance ? " (" + tfjs_image_recognition_base_1.round(this.distance) + ")" : '');
- };
- return FaceMatch;
-}());
-exports.FaceMatch = FaceMatch;
-//# sourceMappingURL=FaceMatch.js.map
\ No newline at end of file
diff --git a/build/commonjs/classes/FaceMatch.js.map b/build/commonjs/classes/FaceMatch.js.map
deleted file mode 100644
index f7016c12..00000000
--- a/build/commonjs/classes/FaceMatch.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"FaceMatch.js","sourceRoot":"","sources":["../../../src/classes/FaceMatch.ts"],"names":[],"mappings":";;AAAA,2EAAoD;AAOpD;IAIE,mBAAY,KAAa,EAAE,QAAgB;QACzC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAA;IAC3B,CAAC;IAED,sBAAW,4BAAK;aAAhB,cAA6B,OAAO,IAAI,CAAC,MAAM,CAAA,CAAC,CAAC;;;OAAA;IACjD,sBAAW,+BAAQ;aAAnB,cAAgC,OAAO,IAAI,CAAC,SAAS,CAAA,CAAC,CAAC;;;OAAA;IAEhD,4BAAQ,GAAf,UAAgB,YAA4B;QAA5B,6BAAA,EAAA,mBAA4B;QAC1C,OAAO,KAAG,IAAI,CAAC,KAAK,IAAG,YAAY,CAAC,CAAC,CAAC,OAAK,mCAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAG,CAAC,CAAC,CAAC,EAAE,CAAE,CAAA;IAC3E,CAAC;IACH,gBAAC;AAAD,CAAC,AAfD,IAeC;AAfY,8BAAS"}
\ No newline at end of file
diff --git a/build/commonjs/classes/FullFaceDescription.d.ts b/build/commonjs/classes/FullFaceDescription.d.ts
deleted file mode 100644
index 88ec647d..00000000
--- a/build/commonjs/classes/FullFaceDescription.d.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import { FaceDetection } from './FaceDetection';
-import { FaceDetectionWithLandmarks, IFaceDetectionWithLandmarks } from './FaceDetectionWithLandmarks';
-import { FaceLandmarks } from './FaceLandmarks';
-import { FaceLandmarks68 } from './FaceLandmarks68';
-export interface IFullFaceDescription extends IFaceDetectionWithLandmarks {
- detection: FaceDetection;
- landmarks: TFaceLandmarks;
- descriptor: Float32Array;
-}
-export declare class FullFaceDescription extends FaceDetectionWithLandmarks implements IFullFaceDescription {
- private _descriptor;
- constructor(detection: FaceDetection, unshiftedLandmarks: TFaceLandmarks, descriptor: Float32Array);
- readonly descriptor: Float32Array;
- forSize(width: number, height: number): FullFaceDescription;
-}
diff --git a/build/commonjs/classes/FullFaceDescription.js b/build/commonjs/classes/FullFaceDescription.js
deleted file mode 100644
index fba5a745..00000000
--- a/build/commonjs/classes/FullFaceDescription.js
+++ /dev/null
@@ -1,26 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tslib_1 = require("tslib");
-var FaceDetectionWithLandmarks_1 = require("./FaceDetectionWithLandmarks");
-var FullFaceDescription = /** @class */ (function (_super) {
- tslib_1.__extends(FullFaceDescription, _super);
- function FullFaceDescription(detection, unshiftedLandmarks, descriptor) {
- var _this = _super.call(this, detection, unshiftedLandmarks) || this;
- _this._descriptor = descriptor;
- return _this;
- }
- Object.defineProperty(FullFaceDescription.prototype, "descriptor", {
- get: function () {
- return this._descriptor;
- },
- enumerable: true,
- configurable: true
- });
- FullFaceDescription.prototype.forSize = function (width, height) {
- var _a = _super.prototype.forSize.call(this, width, height), detection = _a.detection, landmarks = _a.landmarks;
- return new FullFaceDescription(detection, landmarks, this.descriptor);
- };
- return FullFaceDescription;
-}(FaceDetectionWithLandmarks_1.FaceDetectionWithLandmarks));
-exports.FullFaceDescription = FullFaceDescription;
-//# sourceMappingURL=FullFaceDescription.js.map
\ No newline at end of file
diff --git a/build/commonjs/classes/FullFaceDescription.js.map b/build/commonjs/classes/FullFaceDescription.js.map
deleted file mode 100644
index 6b612ab4..00000000
--- a/build/commonjs/classes/FullFaceDescription.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"FullFaceDescription.js","sourceRoot":"","sources":["../../../src/classes/FullFaceDescription.ts"],"names":[],"mappings":";;;AACA,2EAAuG;AAYvG;IACU,+CAA0C;IAKlD,6BACE,SAAwB,EACxB,kBAAkC,EAClC,UAAwB;QAH1B,YAKE,kBAAM,SAAS,EAAE,kBAAkB,CAAC,SAErC;QADC,KAAI,CAAC,WAAW,GAAG,UAAU,CAAA;;IAC/B,CAAC;IAED,sBAAW,2CAAU;aAArB;YACE,OAAO,IAAI,CAAC,WAAW,CAAA;QACzB,CAAC;;;OAAA;IAEM,qCAAO,GAAd,UAAe,KAAa,EAAE,MAAc;QACpC,IAAA,uDAAuD,EAArD,wBAAS,EAAE,wBAAS,CAAiC;QAC7D,OAAO,IAAI,mBAAmB,CAAiB,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;IACvF,CAAC;IACH,0BAAC;AAAD,CAAC,AAvBD,CACU,uDAA0B,GAsBnC;AAvBY,kDAAmB"}
\ No newline at end of file
diff --git a/build/commonjs/classes/LabeledFaceDescriptors.d.ts b/build/commonjs/classes/LabeledFaceDescriptors.d.ts
deleted file mode 100644
index feb5da06..00000000
--- a/build/commonjs/classes/LabeledFaceDescriptors.d.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-export declare class LabeledFaceDescriptors {
- private _label;
- private _descriptors;
- constructor(label: string, descriptors: Float32Array[]);
- readonly label: string;
- readonly descriptors: Float32Array[];
-}
diff --git a/build/commonjs/classes/LabeledFaceDescriptors.js b/build/commonjs/classes/LabeledFaceDescriptors.js
deleted file mode 100644
index 0fd67add..00000000
--- a/build/commonjs/classes/LabeledFaceDescriptors.js
+++ /dev/null
@@ -1,27 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var LabeledFaceDescriptors = /** @class */ (function () {
- function LabeledFaceDescriptors(label, descriptors) {
- if (!(typeof label === 'string')) {
- throw new Error('LabeledFaceDescriptors - constructor expected label to be a string');
- }
- if (!Array.isArray(descriptors) || descriptors.some(function (desc) { return !(desc instanceof Float32Array); })) {
- throw new Error('LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array');
- }
- this._label = label;
- this._descriptors = descriptors;
- }
- Object.defineProperty(LabeledFaceDescriptors.prototype, "label", {
- get: function () { return this._label; },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(LabeledFaceDescriptors.prototype, "descriptors", {
- get: function () { return this._descriptors; },
- enumerable: true,
- configurable: true
- });
- return LabeledFaceDescriptors;
-}());
-exports.LabeledFaceDescriptors = LabeledFaceDescriptors;
-//# sourceMappingURL=LabeledFaceDescriptors.js.map
\ No newline at end of file
diff --git a/build/commonjs/classes/LabeledFaceDescriptors.js.map b/build/commonjs/classes/LabeledFaceDescriptors.js.map
deleted file mode 100644
index 0981d92d..00000000
--- a/build/commonjs/classes/LabeledFaceDescriptors.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"LabeledFaceDescriptors.js","sourceRoot":"","sources":["../../../src/classes/LabeledFaceDescriptors.ts"],"names":[],"mappings":";;AAAA;IAIE,gCAAY,KAAa,EAAE,WAA2B;QACpD,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,EAAE;YAChC,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAA;SACtF;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,UAAA,IAAI,IAAI,OAAA,CAAC,CAAC,IAAI,YAAY,YAAY,CAAC,EAA/B,CAA+B,CAAC,EAAE;YAC5F,MAAM,IAAI,KAAK,CAAC,0FAA0F,CAAC,CAAA;SAC5G;QAED,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,IAAI,CAAC,YAAY,GAAG,WAAW,CAAA;IACjC,CAAC;IAED,sBAAW,yCAAK;aAAhB,cAA6B,OAAO,IAAI,CAAC,MAAM,CAAA,CAAC,CAAC;;;OAAA;IACjD,sBAAW,+CAAW;aAAtB,cAA2C,OAAO,IAAI,CAAC,YAAY,CAAA,CAAC,CAAC;;;OAAA;IACvE,6BAAC;AAAD,CAAC,AAnBD,IAmBC;AAnBY,wDAAsB"}
\ No newline at end of file
diff --git a/build/commonjs/classes/index.d.ts b/build/commonjs/classes/index.d.ts
deleted file mode 100644
index e19eaaa8..00000000
--- a/build/commonjs/classes/index.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-export * from './FaceDetection';
-export * from './FaceDetectionWithLandmarks';
-export * from './FaceLandmarks';
-export * from './FaceLandmarks5';
-export * from './FaceLandmarks68';
-export * from './FaceMatch';
-export * from './FullFaceDescription';
-export * from './LabeledFaceDescriptors';
diff --git a/build/commonjs/classes/index.js b/build/commonjs/classes/index.js
deleted file mode 100644
index a8aa55b2..00000000
--- a/build/commonjs/classes/index.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tslib_1 = require("tslib");
-tslib_1.__exportStar(require("./FaceDetection"), exports);
-tslib_1.__exportStar(require("./FaceDetectionWithLandmarks"), exports);
-tslib_1.__exportStar(require("./FaceLandmarks"), exports);
-tslib_1.__exportStar(require("./FaceLandmarks5"), exports);
-tslib_1.__exportStar(require("./FaceLandmarks68"), exports);
-tslib_1.__exportStar(require("./FaceMatch"), exports);
-tslib_1.__exportStar(require("./FullFaceDescription"), exports);
-tslib_1.__exportStar(require("./LabeledFaceDescriptors"), exports);
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/build/commonjs/classes/index.js.map b/build/commonjs/classes/index.js.map
deleted file mode 100644
index 5b389f30..00000000
--- a/build/commonjs/classes/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/classes/index.ts"],"names":[],"mappings":";;;AAAA,0DAAgC;AAChC,uEAA6C;AAC7C,0DAAgC;AAChC,2DAAiC;AACjC,4DAAkC;AAClC,sDAA4B;AAC5B,gEAAsC;AACtC,mEAAyC"}
\ No newline at end of file
diff --git a/build/commonjs/dom/drawContour.d.ts b/build/commonjs/dom/drawContour.d.ts
deleted file mode 100644
index 78664e6b..00000000
--- a/build/commonjs/dom/drawContour.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-import { Point } from 'tfjs-image-recognition-base';
-export declare function drawContour(ctx: CanvasRenderingContext2D, points: Point[], isClosed?: boolean): void;
diff --git a/build/commonjs/dom/drawContour.js b/build/commonjs/dom/drawContour.js
deleted file mode 100644
index 097275c3..00000000
--- a/build/commonjs/dom/drawContour.js
+++ /dev/null
@@ -1,24 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-function drawContour(ctx, points, isClosed) {
- if (isClosed === void 0) { isClosed = false; }
- ctx.beginPath();
- points.slice(1).forEach(function (_a, prevIdx) {
- var x = _a.x, y = _a.y;
- var from = points[prevIdx];
- ctx.moveTo(from.x, from.y);
- ctx.lineTo(x, y);
- });
- if (isClosed) {
- var from = points[points.length - 1];
- var to = points[0];
- if (!from || !to) {
- return;
- }
- ctx.moveTo(from.x, from.y);
- ctx.lineTo(to.x, to.y);
- }
- ctx.stroke();
-}
-exports.drawContour = drawContour;
-//# sourceMappingURL=drawContour.js.map
\ No newline at end of file
diff --git a/build/commonjs/dom/drawContour.js.map b/build/commonjs/dom/drawContour.js.map
deleted file mode 100644
index 53143e06..00000000
--- a/build/commonjs/dom/drawContour.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"drawContour.js","sourceRoot":"","sources":["../../../src/dom/drawContour.ts"],"names":[],"mappings":";;AAEA,qBACE,GAA6B,EAC7B,MAAe,EACf,QAAyB;IAAzB,yBAAA,EAAA,gBAAyB;IAEzB,GAAG,CAAC,SAAS,EAAE,CAAA;IAEf,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAC,EAAQ,EAAE,OAAO;YAAf,QAAC,EAAE,QAAC;QAC7B,IAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;QAC5B,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;QAC1B,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAClB,CAAC,CAAC,CAAA;IAEF,IAAI,QAAQ,EAAE;QACZ,IAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QACtC,IAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;QACpB,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE;YAChB,OAAM;SACP;QAED,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;QAC1B,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;KACvB;IAED,GAAG,CAAC,MAAM,EAAE,CAAA;AACd,CAAC;AAzBD,kCAyBC"}
\ No newline at end of file
diff --git a/build/commonjs/dom/drawLandmarks.d.ts b/build/commonjs/dom/drawLandmarks.d.ts
deleted file mode 100644
index 4a372873..00000000
--- a/build/commonjs/dom/drawLandmarks.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import { FaceLandmarks } from '../classes/FaceLandmarks';
-import { DrawLandmarksOptions } from './types';
-export declare function drawLandmarks(canvasArg: string | HTMLCanvasElement, faceLandmarks: FaceLandmarks | FaceLandmarks[], options?: DrawLandmarksOptions): void;
diff --git a/build/commonjs/dom/drawLandmarks.js b/build/commonjs/dom/drawLandmarks.js
deleted file mode 100644
index 88137b34..00000000
--- a/build/commonjs/dom/drawLandmarks.js
+++ /dev/null
@@ -1,36 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tfjs_image_recognition_base_1 = require("tfjs-image-recognition-base");
-var FaceLandmarks68_1 = require("../classes/FaceLandmarks68");
-var drawContour_1 = require("./drawContour");
-function drawLandmarks(canvasArg, faceLandmarks, options) {
- var canvas = tfjs_image_recognition_base_1.resolveInput(canvasArg);
- if (!(canvas instanceof HTMLCanvasElement)) {
- throw new Error('drawLandmarks - expected canvas to be of type: HTMLCanvasElement');
- }
- var drawOptions = Object.assign(tfjs_image_recognition_base_1.getDefaultDrawOptions(options), (options || {}));
- var drawLines = Object.assign({ drawLines: false }, (options || {})).drawLines;
- var ctx = tfjs_image_recognition_base_1.getContext2dOrThrow(canvas);
- var lineWidth = drawOptions.lineWidth, _a = drawOptions.color, color = _a === void 0 ? 'blue' : _a;
- var faceLandmarksArray = Array.isArray(faceLandmarks) ? faceLandmarks : [faceLandmarks];
- faceLandmarksArray.forEach(function (landmarks) {
- if (drawLines && landmarks instanceof FaceLandmarks68_1.FaceLandmarks68) {
- ctx.strokeStyle = color;
- ctx.lineWidth = lineWidth;
- drawContour_1.drawContour(ctx, landmarks.getJawOutline());
- drawContour_1.drawContour(ctx, landmarks.getLeftEyeBrow());
- drawContour_1.drawContour(ctx, landmarks.getRightEyeBrow());
- drawContour_1.drawContour(ctx, landmarks.getNose());
- drawContour_1.drawContour(ctx, landmarks.getLeftEye(), true);
- drawContour_1.drawContour(ctx, landmarks.getRightEye(), true);
- drawContour_1.drawContour(ctx, landmarks.getMouth(), true);
- return;
- }
- // else draw points
- var ptOffset = lineWidth / 2;
- ctx.fillStyle = color;
- landmarks.positions.forEach(function (pt) { return ctx.fillRect(pt.x - ptOffset, pt.y - ptOffset, lineWidth, lineWidth); });
- });
-}
-exports.drawLandmarks = drawLandmarks;
-//# sourceMappingURL=drawLandmarks.js.map
\ No newline at end of file
diff --git a/build/commonjs/dom/drawLandmarks.js.map b/build/commonjs/dom/drawLandmarks.js.map
deleted file mode 100644
index 2c377d58..00000000
--- a/build/commonjs/dom/drawLandmarks.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"drawLandmarks.js","sourceRoot":"","sources":["../../../src/dom/drawLandmarks.ts"],"names":[],"mappings":";;AAAA,2EAAuG;AAGvG,8DAA6D;AAC7D,6CAA4C;AAG5C,uBACE,SAAqC,EACrC,aAA8C,EAC9C,OAA8B;IAE9B,IAAM,MAAM,GAAG,0CAAY,CAAC,SAAS,CAAC,CAAA;IACtC,IAAI,CAAC,CAAC,MAAM,YAAY,iBAAiB,CAAC,EAAE;QAC1C,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAA;KACpF;IAED,IAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAC/B,mDAAqB,CAAC,OAAO,CAAC,EAC9B,CAAC,OAAO,IAAI,EAAE,CAAC,CAChB,CAAA;IAEO,IAAA,0EAAS,CAAyD;IAE1E,IAAM,GAAG,GAAG,iDAAmB,CAAC,MAAM,CAAC,CAAA;IAC/B,IAAA,iCAAS,EAAE,sBAAc,EAAd,mCAAc,CAAgB;IAEjD,IAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAA;IAEzF,kBAAkB,CAAC,OAAO,CAAC,UAAA,SAAS;QAClC,IAAI,SAAS,IAAI,SAAS,YAAY,iCAAe,EAAE;YACrD,GAAG,CAAC,WAAW,GAAG,KAAK,CAAA;YACvB,GAAG,CAAC,SAAS,GAAG,SAAS,CAAA;YACzB,yBAAW,CAAC,GAAG,EAAE,SAAS,CAAC,aAAa,EAAE,CAAC,CAAA;YAC3C,yBAAW,CAAC,GAAG,EAAE,SAAS,CAAC,cAAc,EAAE,CAAC,CAAA;YAC5C,yBAAW,CAAC,GAAG,EAAE,SAAS,CAAC,eAAe,EAAE,CAAC,CAAA;YAC7C,yBAAW,CAAC,GAAG,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,CAAA;YACrC,yBAAW,CAAC,GAAG,EAAE,SAAS,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,CAAA;YAC9C,yBAAW,CAAC,GAAG,EAAE,SAAS,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,CAAA;YAC/C,yBAAW,CAAC,GAAG,EAAE,SAAS,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAA;YAC5C,OAAM;SACP;QAED,mBAAmB;QACnB,IAAM,QAAQ,GAAG,SAAS,GAAG,CAAC,CAAA;QAC9B,GAAG,CAAC,SAAS,GAAG,KAAK,CAAA;QACrB,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,UAAA,EAAE,IAAI,OAAA,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,GAAG,QAAQ,EAAE,EAAE,CAAC,CAAC,GAAG,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,EAApE,CAAoE,CAAC,CAAA;IACzG,CAAC,CAAC,CAAA;AACJ,CAAC;AAzCD,sCAyCC"}
\ No newline at end of file
diff --git a/build/commonjs/dom/extractFaceTensors.d.ts b/build/commonjs/dom/extractFaceTensors.d.ts
deleted file mode 100644
index 429ea46e..00000000
--- a/build/commonjs/dom/extractFaceTensors.d.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { Rect } from 'tfjs-image-recognition-base';
-import { FaceDetection } from '../classes/FaceDetection';
-/**
- * Extracts the tensors of the image regions containing the detected faces.
- * Useful if you want to compute the face descriptors for the face images.
- * Using this method is faster then extracting a canvas for each face and
- * converting them to tensors individually.
- *
- * @param imageTensor The image tensor that face detection has been performed on.
- * @param detections The face detection results or face bounding boxes for that image.
- * @returns Tensors of the corresponding image region for each detected face.
- */
-export declare function extractFaceTensors(imageTensor: tf.Tensor3D | tf.Tensor4D, detections: Array): Promise;
diff --git a/build/commonjs/dom/extractFaceTensors.js b/build/commonjs/dom/extractFaceTensors.js
deleted file mode 100644
index c701c287..00000000
--- a/build/commonjs/dom/extractFaceTensors.js
+++ /dev/null
@@ -1,39 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tslib_1 = require("tslib");
-var tf = require("@tensorflow/tfjs-core");
-var tfjs_image_recognition_base_1 = require("tfjs-image-recognition-base");
-var FaceDetection_1 = require("../classes/FaceDetection");
-/**
- * Extracts the tensors of the image regions containing the detected faces.
- * Useful if you want to compute the face descriptors for the face images.
- * Using this method is faster then extracting a canvas for each face and
- * converting them to tensors individually.
- *
- * @param imageTensor The image tensor that face detection has been performed on.
- * @param detections The face detection results or face bounding boxes for that image.
- * @returns Tensors of the corresponding image region for each detected face.
- */
-function extractFaceTensors(imageTensor, detections) {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- return tslib_1.__generator(this, function (_a) {
- if (tfjs_image_recognition_base_1.isTensor4D(imageTensor) && imageTensor.shape[0] > 1) {
- throw new Error('extractFaceTensors - batchSize > 1 not supported');
- }
- return [2 /*return*/, tf.tidy(function () {
- var _a = imageTensor.shape.slice(tfjs_image_recognition_base_1.isTensor4D(imageTensor) ? 1 : 0), imgHeight = _a[0], imgWidth = _a[1], numChannels = _a[2];
- var boxes = detections.map(function (det) { return det instanceof FaceDetection_1.FaceDetection
- ? det.forSize(imgWidth, imgHeight).box
- : det; })
- .map(function (box) { return box.clipAtImageBorders(imgWidth, imgHeight); });
- var faceTensors = boxes.map(function (_a) {
- var x = _a.x, y = _a.y, width = _a.width, height = _a.height;
- return tf.slice3d(imageTensor.as3D(imgHeight, imgWidth, numChannels), [y, x, 0], [height, width, numChannels]);
- });
- return faceTensors;
- })];
- });
- });
-}
-exports.extractFaceTensors = extractFaceTensors;
-//# sourceMappingURL=extractFaceTensors.js.map
\ No newline at end of file
diff --git a/build/commonjs/dom/extractFaceTensors.js.map b/build/commonjs/dom/extractFaceTensors.js.map
deleted file mode 100644
index 95c669fc..00000000
--- a/build/commonjs/dom/extractFaceTensors.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"extractFaceTensors.js","sourceRoot":"","sources":["../../../src/dom/extractFaceTensors.ts"],"names":[],"mappings":";;;AAAA,0CAA4C;AAC5C,2EAA+D;AAE/D,0DAAyD;AAEzD;;;;;;;;;GASG;AACH,4BACE,WAAsC,EACtC,UAAuC;;;YAGvC,IAAI,wCAAU,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;gBACvD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;aACpE;YAED,sBAAO,EAAE,CAAC,IAAI,CAAC;oBACP,IAAA,2FAA6F,EAA5F,iBAAS,EAAE,gBAAQ,EAAE,mBAAW,CAA4D;oBAEnG,IAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAC1B,UAAA,GAAG,IAAI,OAAA,GAAG,YAAY,6BAAa;wBACjC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,GAAG;wBACtC,CAAC,CAAC,GAAG,EAFA,CAEA,CACR;yBACE,GAAG,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,kBAAkB,CAAC,QAAQ,EAAE,SAAS,CAAC,EAA3C,CAA2C,CAAC,CAAA;oBAE1D,IAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,UAAC,EAAuB;4BAArB,QAAC,EAAE,QAAC,EAAE,gBAAK,EAAE,kBAAM;wBAClD,OAAA,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;oBAAvG,CAAuG,CACxG,CAAA;oBAED,OAAO,WAAW,CAAA;gBACpB,CAAC,CAAC,EAAA;;;CACH;AAzBD,gDAyBC"}
\ No newline at end of file
diff --git a/build/commonjs/dom/extractFaces.d.ts b/build/commonjs/dom/extractFaces.d.ts
deleted file mode 100644
index d7bf0e60..00000000
--- a/build/commonjs/dom/extractFaces.d.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { Rect, TNetInput } from 'tfjs-image-recognition-base';
-import { FaceDetection } from '../classes/FaceDetection';
-/**
- * Extracts the image regions containing the detected faces.
- *
- * @param input The image that face detection has been performed on.
- * @param detections The face detection results or face bounding boxes for that image.
- * @returns The Canvases of the corresponding image region for each detected face.
- */
-export declare function extractFaces(input: TNetInput, detections: Array): Promise;
diff --git a/build/commonjs/dom/extractFaces.js b/build/commonjs/dom/extractFaces.js
deleted file mode 100644
index 32b5ac02..00000000
--- a/build/commonjs/dom/extractFaces.js
+++ /dev/null
@@ -1,56 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tslib_1 = require("tslib");
-var tfjs_image_recognition_base_1 = require("tfjs-image-recognition-base");
-var FaceDetection_1 = require("../classes/FaceDetection");
-/**
- * Extracts the image regions containing the detected faces.
- *
- * @param input The image that face detection has been performed on.
- * @param detections The face detection results or face bounding boxes for that image.
- * @returns The Canvases of the corresponding image region for each detected face.
- */
-function extractFaces(input, detections) {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var canvas, netInput, tensorOrCanvas, _a, ctx, boxes;
- return tslib_1.__generator(this, function (_b) {
- switch (_b.label) {
- case 0:
- canvas = input;
- if (!!(input instanceof HTMLCanvasElement)) return [3 /*break*/, 5];
- return [4 /*yield*/, tfjs_image_recognition_base_1.toNetInput(input)];
- case 1:
- netInput = _b.sent();
- if (netInput.batchSize > 1) {
- throw new Error('extractFaces - batchSize > 1 not supported');
- }
- tensorOrCanvas = netInput.getInput(0);
- if (!(tensorOrCanvas instanceof HTMLCanvasElement)) return [3 /*break*/, 2];
- _a = tensorOrCanvas;
- return [3 /*break*/, 4];
- case 2: return [4 /*yield*/, tfjs_image_recognition_base_1.imageTensorToCanvas(tensorOrCanvas)];
- case 3:
- _a = _b.sent();
- _b.label = 4;
- case 4:
- canvas = _a;
- _b.label = 5;
- case 5:
- ctx = tfjs_image_recognition_base_1.getContext2dOrThrow(canvas);
- boxes = detections.map(function (det) { return det instanceof FaceDetection_1.FaceDetection
- ? det.forSize(canvas.width, canvas.height).box.floor()
- : det; })
- .map(function (box) { return box.clipAtImageBorders(canvas.width, canvas.height); });
- return [2 /*return*/, boxes.map(function (_a) {
- var x = _a.x, y = _a.y, width = _a.width, height = _a.height;
- var faceImg = tfjs_image_recognition_base_1.createCanvas({ width: width, height: height });
- tfjs_image_recognition_base_1.getContext2dOrThrow(faceImg)
- .putImageData(ctx.getImageData(x, y, width, height), 0, 0);
- return faceImg;
- })];
- }
- });
- });
-}
-exports.extractFaces = extractFaces;
-//# sourceMappingURL=extractFaces.js.map
\ No newline at end of file
diff --git a/build/commonjs/dom/extractFaces.js.map b/build/commonjs/dom/extractFaces.js.map
deleted file mode 100644
index 0b1efce9..00000000
--- a/build/commonjs/dom/extractFaces.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"extractFaces.js","sourceRoot":"","sources":["../../../src/dom/extractFaces.ts"],"names":[],"mappings":";;;AAAA,2EAOqC;AAErC,0DAAyD;AAEzD;;;;;;GAMG;AACH,sBACE,KAAgB,EAChB,UAAuC;;;;;;oBAGnC,MAAM,GAAG,KAA0B,CAAA;yBAEnC,CAAC,CAAC,KAAK,YAAY,iBAAiB,CAAC,EAArC,wBAAqC;oBACtB,qBAAM,wCAAU,CAAC,KAAK,CAAC,EAAA;;oBAAlC,QAAQ,GAAG,SAAuB;oBAExC,IAAI,QAAQ,CAAC,SAAS,GAAG,CAAC,EAAE;wBAC1B,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;qBAC9D;oBAEK,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;yBAClC,CAAA,cAAc,YAAY,iBAAiB,CAAA,EAA3C,wBAA2C;oBAChD,KAAA,cAAc,CAAA;;wBACd,qBAAM,iDAAmB,CAAC,cAAc,CAAC,EAAA;;oBAAzC,KAAA,SAAyC,CAAA;;;oBAF7C,MAAM,KAEuC,CAAA;;;oBAGzC,GAAG,GAAG,iDAAmB,CAAC,MAAM,CAAC,CAAA;oBACjC,KAAK,GAAG,UAAU,CAAC,GAAG,CAC1B,UAAA,GAAG,IAAI,OAAA,GAAG,YAAY,6BAAa;wBACjC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE;wBACtD,CAAC,CAAC,GAAG,EAFA,CAEA,CACR;yBACE,GAAG,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAnD,CAAmD,CAAC,CAAA;oBAElE,sBAAO,KAAK,CAAC,GAAG,CAAC,UAAC,EAAuB;gCAArB,QAAC,EAAE,QAAC,EAAE,gBAAK,EAAE,kBAAM;4BACrC,IAAM,OAAO,GAAG,0CAAY,CAAC,EAAE,KAAK,OAAA,EAAE,MAAM,QAAA,EAAE,CAAC,CAAA;4BAC/C,iDAAmB,CAAC,OAAO,CAAC;iCACzB,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;4BAC5D,OAAO,OAAO,CAAA;wBAChB,CAAC,CAAC,EAAA;;;;CACH;AAlCD,oCAkCC"}
\ No newline at end of file
diff --git a/build/commonjs/dom/index.d.ts b/build/commonjs/dom/index.d.ts
deleted file mode 100644
index 2fdbb244..00000000
--- a/build/commonjs/dom/index.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-export * from './drawContour';
-export * from './drawLandmarks';
-export * from './extractFaces';
-export * from './extractFaceTensors';
-export * from './types';
diff --git a/build/commonjs/dom/index.js b/build/commonjs/dom/index.js
deleted file mode 100644
index 0a57e0e2..00000000
--- a/build/commonjs/dom/index.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tslib_1 = require("tslib");
-tslib_1.__exportStar(require("./drawContour"), exports);
-tslib_1.__exportStar(require("./drawLandmarks"), exports);
-tslib_1.__exportStar(require("./extractFaces"), exports);
-tslib_1.__exportStar(require("./extractFaceTensors"), exports);
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/build/commonjs/dom/index.js.map b/build/commonjs/dom/index.js.map
deleted file mode 100644
index f2b7980f..00000000
--- a/build/commonjs/dom/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/dom/index.ts"],"names":[],"mappings":";;;AAAA,wDAA6B;AAC7B,0DAA+B;AAC/B,yDAA8B;AAC9B,+DAAoC"}
\ No newline at end of file
diff --git a/build/commonjs/dom/types.d.ts b/build/commonjs/dom/types.d.ts
deleted file mode 100644
index cd664596..00000000
--- a/build/commonjs/dom/types.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-export declare type DrawLandmarksOptions = {
- lineWidth?: number;
- color?: string;
- drawLines?: boolean;
-};
diff --git a/build/commonjs/dom/types.js b/build/commonjs/dom/types.js
deleted file mode 100644
index 11e638d1..00000000
--- a/build/commonjs/dom/types.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-//# sourceMappingURL=types.js.map
\ No newline at end of file
diff --git a/build/commonjs/dom/types.js.map b/build/commonjs/dom/types.js.map
deleted file mode 100644
index 81849c01..00000000
--- a/build/commonjs/dom/types.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/dom/types.ts"],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/build/commonjs/euclideanDistance.d.ts b/build/commonjs/euclideanDistance.d.ts
deleted file mode 100644
index d555de27..00000000
--- a/build/commonjs/euclideanDistance.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export declare function euclideanDistance(arr1: number[] | Float32Array, arr2: number[] | Float32Array): number;
diff --git a/build/commonjs/euclideanDistance.js b/build/commonjs/euclideanDistance.js
deleted file mode 100644
index e263610d..00000000
--- a/build/commonjs/euclideanDistance.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-function euclideanDistance(arr1, arr2) {
- if (arr1.length !== arr2.length)
- throw new Error('euclideanDistance: arr1.length !== arr2.length');
- var desc1 = Array.from(arr1);
- var desc2 = Array.from(arr2);
- return Math.sqrt(desc1
- .map(function (val, i) { return val - desc2[i]; })
- .reduce(function (res, diff) { return res + Math.pow(diff, 2); }, 0));
-}
-exports.euclideanDistance = euclideanDistance;
-//# sourceMappingURL=euclideanDistance.js.map
\ No newline at end of file
diff --git a/build/commonjs/euclideanDistance.js.map b/build/commonjs/euclideanDistance.js.map
deleted file mode 100644
index e05eee10..00000000
--- a/build/commonjs/euclideanDistance.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"euclideanDistance.js","sourceRoot":"","sources":["../../src/euclideanDistance.ts"],"names":[],"mappings":";;AAAA,2BAAkC,IAA6B,EAAE,IAA6B;IAC5F,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;QAC7B,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAA;IAEnE,IAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC9B,IAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAE9B,OAAO,IAAI,CAAC,IAAI,CACd,KAAK;SACF,GAAG,CAAC,UAAC,GAAG,EAAE,CAAC,IAAK,OAAA,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAd,CAAc,CAAC;SAC/B,MAAM,CAAC,UAAC,GAAG,EAAE,IAAI,IAAK,OAAA,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,EAAvB,CAAuB,EAAE,CAAC,CAAC,CACrD,CAAA;AACH,CAAC;AAZD,8CAYC"}
\ No newline at end of file
diff --git a/build/commonjs/faceLandmarkNet/FaceLandmark68Net.d.ts b/build/commonjs/faceLandmarkNet/FaceLandmark68Net.d.ts
deleted file mode 100644
index 93d5106a..00000000
--- a/build/commonjs/faceLandmarkNet/FaceLandmark68Net.d.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { NetInput } from 'tfjs-image-recognition-base';
-import { FaceLandmark68NetBase } from './FaceLandmark68NetBase';
-import { NetParams } from './types';
-export declare class FaceLandmark68Net extends FaceLandmark68NetBase {
- constructor();
- runNet(input: NetInput): tf.Tensor2D;
- protected loadQuantizedParams(uri: string | undefined): Promise<{
- params: NetParams;
- paramMappings: {
- originalPath?: string | undefined;
- paramPath: string;
- }[];
- }>;
- protected extractParams(weights: Float32Array): {
- params: NetParams;
- paramMappings: {
- originalPath?: string | undefined;
- paramPath: string;
- }[];
- };
-}
diff --git a/build/commonjs/faceLandmarkNet/FaceLandmark68Net.js b/build/commonjs/faceLandmarkNet/FaceLandmark68Net.js
deleted file mode 100644
index 81325daf..00000000
--- a/build/commonjs/faceLandmarkNet/FaceLandmark68Net.js
+++ /dev/null
@@ -1,56 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tslib_1 = require("tslib");
-var tf = require("@tensorflow/tfjs-core");
-var tfjs_image_recognition_base_1 = require("tfjs-image-recognition-base");
-var depthwiseSeparableConv_1 = require("./depthwiseSeparableConv");
-var extractParams_1 = require("./extractParams");
-var FaceLandmark68NetBase_1 = require("./FaceLandmark68NetBase");
-var fullyConnectedLayer_1 = require("./fullyConnectedLayer");
-var loadQuantizedParams_1 = require("./loadQuantizedParams");
-function denseBlock(x, denseBlockParams, isFirstLayer) {
- if (isFirstLayer === void 0) { isFirstLayer = false; }
- return tf.tidy(function () {
- var out1 = tf.relu(isFirstLayer
- ? tf.add(tf.conv2d(x, denseBlockParams.conv0.filters, [2, 2], 'same'), denseBlockParams.conv0.bias)
- : depthwiseSeparableConv_1.depthwiseSeparableConv(x, denseBlockParams.conv0, [2, 2]));
- var out2 = depthwiseSeparableConv_1.depthwiseSeparableConv(out1, denseBlockParams.conv1, [1, 1]);
- var in3 = tf.relu(tf.add(out1, out2));
- var out3 = depthwiseSeparableConv_1.depthwiseSeparableConv(in3, denseBlockParams.conv2, [1, 1]);
- var in4 = tf.relu(tf.add(out1, tf.add(out2, out3)));
- var out4 = depthwiseSeparableConv_1.depthwiseSeparableConv(in4, denseBlockParams.conv3, [1, 1]);
- return tf.relu(tf.add(out1, tf.add(out2, tf.add(out3, out4))));
- });
-}
-var FaceLandmark68Net = /** @class */ (function (_super) {
- tslib_1.__extends(FaceLandmark68Net, _super);
- function FaceLandmark68Net() {
- return _super.call(this, 'FaceLandmark68Net') || this;
- }
- FaceLandmark68Net.prototype.runNet = function (input) {
- var params = this.params;
- if (!params) {
- throw new Error('FaceLandmark68Net - load model before inference');
- }
- return tf.tidy(function () {
- var batchTensor = input.toBatchTensor(112, true);
- var meanRgb = [122.782, 117.001, 104.298];
- var normalized = tfjs_image_recognition_base_1.normalize(batchTensor, meanRgb).div(tf.scalar(255));
- var out = denseBlock(normalized, params.dense0, true);
- out = denseBlock(out, params.dense1);
- out = denseBlock(out, params.dense2);
- out = denseBlock(out, params.dense3);
- out = tf.avgPool(out, [7, 7], [2, 2], 'valid');
- return fullyConnectedLayer_1.fullyConnectedLayer(out.as2D(out.shape[0], -1), params.fc);
- });
- };
- FaceLandmark68Net.prototype.loadQuantizedParams = function (uri) {
- return loadQuantizedParams_1.loadQuantizedParams(uri);
- };
- FaceLandmark68Net.prototype.extractParams = function (weights) {
- return extractParams_1.extractParams(weights);
- };
- return FaceLandmark68Net;
-}(FaceLandmark68NetBase_1.FaceLandmark68NetBase));
-exports.FaceLandmark68Net = FaceLandmark68Net;
-//# sourceMappingURL=FaceLandmark68Net.js.map
\ No newline at end of file
diff --git a/build/commonjs/faceLandmarkNet/FaceLandmark68Net.js.map b/build/commonjs/faceLandmarkNet/FaceLandmark68Net.js.map
deleted file mode 100644
index c04f2c6a..00000000
--- a/build/commonjs/faceLandmarkNet/FaceLandmark68Net.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"FaceLandmark68Net.js","sourceRoot":"","sources":["../../../src/faceLandmarkNet/FaceLandmark68Net.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/build/commonjs/faceLandmarkNet/FaceLandmark68NetBase.d.ts b/build/commonjs/faceLandmarkNet/FaceLandmark68NetBase.d.ts
deleted file mode 100644
index 8ec0dad9..00000000
--- a/build/commonjs/faceLandmarkNet/FaceLandmark68NetBase.d.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { IDimensions, NetInput, NeuralNetwork, TNetInput } from 'tfjs-image-recognition-base';
-import { FaceLandmarks68 } from '../classes/FaceLandmarks68';
-export declare class FaceLandmark68NetBase extends NeuralNetwork {
- private __name;
- constructor(_name: string);
- runNet(_: NetInput): tf.Tensor2D;
- postProcess(output: tf.Tensor2D, inputSize: number, originalDimensions: IDimensions[]): tf.Tensor2D;
- forwardInput(input: NetInput): tf.Tensor2D;
- forward(input: TNetInput): Promise;
- detectLandmarks(input: TNetInput): Promise;
-}
diff --git a/build/commonjs/faceLandmarkNet/FaceLandmark68NetBase.js b/build/commonjs/faceLandmarkNet/FaceLandmark68NetBase.js
deleted file mode 100644
index 9183847c..00000000
--- a/build/commonjs/faceLandmarkNet/FaceLandmark68NetBase.js
+++ /dev/null
@@ -1,115 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tslib_1 = require("tslib");
-var tf = require("@tensorflow/tfjs-core");
-var tfjs_image_recognition_base_1 = require("tfjs-image-recognition-base");
-var FaceLandmarks68_1 = require("../classes/FaceLandmarks68");
-var FaceLandmark68NetBase = /** @class */ (function (_super) {
- tslib_1.__extends(FaceLandmark68NetBase, _super);
- function FaceLandmark68NetBase(_name) {
- var _this = _super.call(this, _name) || this;
- _this.__name = _name;
- return _this;
- }
- FaceLandmark68NetBase.prototype.runNet = function (_) {
- throw new Error(this.__name + " - runNet not implemented");
- };
- FaceLandmark68NetBase.prototype.postProcess = function (output, inputSize, originalDimensions) {
- var inputDimensions = originalDimensions.map(function (_a) {
- var width = _a.width, height = _a.height;
- var scale = inputSize / Math.max(height, width);
- return {
- width: width * scale,
- height: height * scale
- };
- });
- var batchSize = inputDimensions.length;
- return tf.tidy(function () {
- var createInterleavedTensor = function (fillX, fillY) {
- return tf.stack([
- tf.fill([68], fillX),
- tf.fill([68], fillY)
- ], 1).as2D(1, 136).as1D();
- };
- var getPadding = function (batchIdx, cond) {
- var _a = inputDimensions[batchIdx], width = _a.width, height = _a.height;
- return cond(width, height) ? Math.abs(width - height) / 2 : 0;
- };
- var getPaddingX = function (batchIdx) { return getPadding(batchIdx, function (w, h) { return w < h; }); };
- var getPaddingY = function (batchIdx) { return getPadding(batchIdx, function (w, h) { return h < w; }); };
- var landmarkTensors = output
- .mul(tf.fill([batchSize, 136], inputSize))
- .sub(tf.stack(Array.from(Array(batchSize), function (_, batchIdx) {
- return createInterleavedTensor(getPaddingX(batchIdx), getPaddingY(batchIdx));
- })))
- .div(tf.stack(Array.from(Array(batchSize), function (_, batchIdx) {
- return createInterleavedTensor(inputDimensions[batchIdx].width, inputDimensions[batchIdx].height);
- })));
- return landmarkTensors;
- });
- };
- FaceLandmark68NetBase.prototype.forwardInput = function (input) {
- var _this = this;
- return tf.tidy(function () {
- var out = _this.runNet(input);
- return _this.postProcess(out, input.inputSize, input.inputDimensions.map(function (_a) {
- var height = _a[0], width = _a[1];
- return ({ height: height, width: width });
- }));
- });
- };
- FaceLandmark68NetBase.prototype.forward = function (input) {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var _a;
- return tslib_1.__generator(this, function (_b) {
- switch (_b.label) {
- case 0:
- _a = this.forwardInput;
- return [4 /*yield*/, tfjs_image_recognition_base_1.toNetInput(input)];
- case 1: return [2 /*return*/, _a.apply(this, [_b.sent()])];
- }
- });
- });
- };
- FaceLandmark68NetBase.prototype.detectLandmarks = function (input) {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var _this = this;
- var netInput, landmarkTensors, landmarksForBatch;
- return tslib_1.__generator(this, function (_a) {
- switch (_a.label) {
- case 0: return [4 /*yield*/, tfjs_image_recognition_base_1.toNetInput(input)];
- case 1:
- netInput = _a.sent();
- landmarkTensors = tf.tidy(function () { return tf.unstack(_this.forwardInput(netInput)); });
- return [4 /*yield*/, Promise.all(landmarkTensors.map(function (landmarkTensor, batchIdx) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
- var landmarksArray, _a, _b, xCoords, yCoords;
- return tslib_1.__generator(this, function (_c) {
- switch (_c.label) {
- case 0:
- _b = (_a = Array).from;
- return [4 /*yield*/, landmarkTensor.data()];
- case 1:
- landmarksArray = _b.apply(_a, [_c.sent()]);
- xCoords = landmarksArray.filter(function (_, i) { return tfjs_image_recognition_base_1.isEven(i); });
- yCoords = landmarksArray.filter(function (_, i) { return !tfjs_image_recognition_base_1.isEven(i); });
- return [2 /*return*/, new FaceLandmarks68_1.FaceLandmarks68(Array(68).fill(0).map(function (_, i) { return new tfjs_image_recognition_base_1.Point(xCoords[i], yCoords[i]); }), {
- height: netInput.getInputHeight(batchIdx),
- width: netInput.getInputWidth(batchIdx),
- })];
- }
- });
- }); }))];
- case 2:
- landmarksForBatch = _a.sent();
- landmarkTensors.forEach(function (t) { return t.dispose(); });
- return [2 /*return*/, netInput.isBatchInput
- ? landmarksForBatch
- : landmarksForBatch[0]];
- }
- });
- });
- };
- return FaceLandmark68NetBase;
-}(tfjs_image_recognition_base_1.NeuralNetwork));
-exports.FaceLandmark68NetBase = FaceLandmark68NetBase;
-//# sourceMappingURL=FaceLandmark68NetBase.js.map
\ No newline at end of file
diff --git a/build/commonjs/faceLandmarkNet/FaceLandmark68NetBase.js.map b/build/commonjs/faceLandmarkNet/FaceLandmark68NetBase.js.map
deleted file mode 100644
index 237d887e..00000000
--- a/build/commonjs/faceLandmarkNet/FaceLandmark68NetBase.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"FaceLandmark68NetBase.js","sourceRoot":"","sources":["../../../src/faceLandmarkNet/FaceLandmark68NetBase.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/build/commonjs/faceLandmarkNet/FaceLandmark68TinyNet.d.ts b/build/commonjs/faceLandmarkNet/FaceLandmark68TinyNet.d.ts
deleted file mode 100644
index 774b1109..00000000
--- a/build/commonjs/faceLandmarkNet/FaceLandmark68TinyNet.d.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { NetInput } from 'tfjs-image-recognition-base';
-import { FaceLandmark68NetBase } from './FaceLandmark68NetBase';
-import { TinyNetParams } from './types';
-export declare class FaceLandmark68TinyNet extends FaceLandmark68NetBase {
- constructor();
- runNet(input: NetInput): tf.Tensor2D;
- protected loadQuantizedParams(uri: string | undefined): Promise<{
- params: TinyNetParams;
- paramMappings: {
- originalPath?: string | undefined;
- paramPath: string;
- }[];
- }>;
- protected extractParams(weights: Float32Array): {
- params: TinyNetParams;
- paramMappings: {
- originalPath?: string | undefined;
- paramPath: string;
- }[];
- };
-}
diff --git a/build/commonjs/faceLandmarkNet/FaceLandmark68TinyNet.js b/build/commonjs/faceLandmarkNet/FaceLandmark68TinyNet.js
deleted file mode 100644
index ef919986..00000000
--- a/build/commonjs/faceLandmarkNet/FaceLandmark68TinyNet.js
+++ /dev/null
@@ -1,53 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tslib_1 = require("tslib");
-var tf = require("@tensorflow/tfjs-core");
-var tfjs_image_recognition_base_1 = require("tfjs-image-recognition-base");
-var depthwiseSeparableConv_1 = require("./depthwiseSeparableConv");
-var extractParamsTiny_1 = require("./extractParamsTiny");
-var FaceLandmark68NetBase_1 = require("./FaceLandmark68NetBase");
-var fullyConnectedLayer_1 = require("./fullyConnectedLayer");
-var loadQuantizedParamsTiny_1 = require("./loadQuantizedParamsTiny");
-function denseBlock(x, denseBlockParams, isFirstLayer) {
- if (isFirstLayer === void 0) { isFirstLayer = false; }
- return tf.tidy(function () {
- var out1 = tf.relu(isFirstLayer
- ? tf.add(tf.conv2d(x, denseBlockParams.conv0.filters, [2, 2], 'same'), denseBlockParams.conv0.bias)
- : depthwiseSeparableConv_1.depthwiseSeparableConv(x, denseBlockParams.conv0, [2, 2]));
- var out2 = depthwiseSeparableConv_1.depthwiseSeparableConv(out1, denseBlockParams.conv1, [1, 1]);
- var in3 = tf.relu(tf.add(out1, out2));
- var out3 = depthwiseSeparableConv_1.depthwiseSeparableConv(in3, denseBlockParams.conv2, [1, 1]);
- return tf.relu(tf.add(out1, tf.add(out2, out3)));
- });
-}
-var FaceLandmark68TinyNet = /** @class */ (function (_super) {
- tslib_1.__extends(FaceLandmark68TinyNet, _super);
- function FaceLandmark68TinyNet() {
- return _super.call(this, 'FaceLandmark68TinyNet') || this;
- }
- FaceLandmark68TinyNet.prototype.runNet = function (input) {
- var params = this.params;
- if (!params) {
- throw new Error('FaceLandmark68TinyNet - load model before inference');
- }
- return tf.tidy(function () {
- var batchTensor = input.toBatchTensor(112, true);
- var meanRgb = [122.782, 117.001, 104.298];
- var normalized = tfjs_image_recognition_base_1.normalize(batchTensor, meanRgb).div(tf.scalar(255));
- var out = denseBlock(normalized, params.dense0, true);
- out = denseBlock(out, params.dense1);
- out = denseBlock(out, params.dense2);
- out = tf.avgPool(out, [14, 14], [2, 2], 'valid');
- return fullyConnectedLayer_1.fullyConnectedLayer(out.as2D(out.shape[0], -1), params.fc);
- });
- };
- FaceLandmark68TinyNet.prototype.loadQuantizedParams = function (uri) {
- return loadQuantizedParamsTiny_1.loadQuantizedParamsTiny(uri);
- };
- FaceLandmark68TinyNet.prototype.extractParams = function (weights) {
- return extractParamsTiny_1.extractParamsTiny(weights);
- };
- return FaceLandmark68TinyNet;
-}(FaceLandmark68NetBase_1.FaceLandmark68NetBase));
-exports.FaceLandmark68TinyNet = FaceLandmark68TinyNet;
-//# sourceMappingURL=FaceLandmark68TinyNet.js.map
\ No newline at end of file
diff --git a/build/commonjs/faceLandmarkNet/FaceLandmark68TinyNet.js.map b/build/commonjs/faceLandmarkNet/FaceLandmark68TinyNet.js.map
deleted file mode 100644
index a5de506a..00000000
--- a/build/commonjs/faceLandmarkNet/FaceLandmark68TinyNet.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"FaceLandmark68TinyNet.js","sourceRoot":"","sources":["../../../src/faceLandmarkNet/FaceLandmark68TinyNet.ts"],"names":[],"mappings":";;;AAAA,0CAA4C;AAC5C,2EAAkE;AAGlE,mEAAkE;AAClE,yDAAwD;AACxD,iEAAgE;AAChE,6DAA4D;AAC5D,qEAAoE;AAGpE,oBACE,CAAc,EACd,gBAAmC,EACnC,YAA6B;IAA7B,6BAAA,EAAA,oBAA6B;IAE7B,OAAO,EAAE,CAAC,IAAI,CAAC;QACb,IAAM,IAAI,GAAG,EAAE,CAAC,IAAI,CAClB,YAAY;YACV,CAAC,CAAC,EAAE,CAAC,GAAG,CACN,EAAE,CAAC,MAAM,CAAC,CAAC,EAAG,gBAAgB,CAAC,KAAoB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,EAC5E,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAC5B;YACD,CAAC,CAAC,+CAAsB,CAAC,CAAC,EAAE,gBAAgB,CAAC,KAA4B,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CACtE,CAAA;QAChB,IAAM,IAAI,GAAG,+CAAsB,CAAC,IAAI,EAAE,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAEzE,IAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAgB,CAAA;QACtD,IAAM,IAAI,GAAG,+CAAsB,CAAC,GAAG,EAAE,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAExE,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAgB,CAAA;IACjE,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;IAA2C,iDAAoC;IAE7E;eACE,kBAAM,uBAAuB,CAAC;IAChC,CAAC;IAEM,sCAAM,GAAb,UAAc,KAAe;QAEnB,IAAA,oBAAM,CAAS;QAEvB,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAA;SACvE;QAED,OAAO,EAAE,CAAC,IAAI,CAAC;YACb,IAAM,WAAW,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;YAClD,IAAM,OAAO,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;YAC3C,IAAM,UAAU,GAAG,uCAAS,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAgB,CAAA;YAErF,IAAI,GAAG,GAAG,UAAU,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;YACrD,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;YACpC,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;YACpC,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;YAEhD,OAAO,yCAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAA;QACnE,CAAC,CAAC,CAAA;IACJ,CAAC;IAES,mDAAmB,GAA7B,UAA8B,GAAuB;QACnD,OAAO,iDAAuB,CAAC,GAAG,CAAC,CAAA;IACrC,CAAC;IAES,6CAAa,GAAvB,UAAwB,OAAqB;QAC3C,OAAO,qCAAiB,CAAC,OAAO,CAAC,CAAA;IACnC,CAAC;IACH,4BAAC;AAAD,CAAC,AAnCD,CAA2C,6CAAqB,GAmC/D;AAnCY,sDAAqB"}
\ No newline at end of file
diff --git a/build/commonjs/faceLandmarkNet/depthwiseSeparableConv.d.ts b/build/commonjs/faceLandmarkNet/depthwiseSeparableConv.d.ts
deleted file mode 100644
index 3e11ba95..00000000
--- a/build/commonjs/faceLandmarkNet/depthwiseSeparableConv.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { SeparableConvParams } from 'tfjs-tiny-yolov2';
-export declare function depthwiseSeparableConv(x: tf.Tensor4D, params: SeparableConvParams, stride: [number, number]): tf.Tensor4D;
diff --git a/build/commonjs/faceLandmarkNet/depthwiseSeparableConv.js b/build/commonjs/faceLandmarkNet/depthwiseSeparableConv.js
deleted file mode 100644
index 969f2522..00000000
--- a/build/commonjs/faceLandmarkNet/depthwiseSeparableConv.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tf = require("@tensorflow/tfjs-core");
-function depthwiseSeparableConv(x, params, stride) {
- return tf.tidy(function () {
- var out = tf.separableConv2d(x, params.depthwise_filter, params.pointwise_filter, stride, 'same');
- out = tf.add(out, params.bias);
- return out;
- });
-}
-exports.depthwiseSeparableConv = depthwiseSeparableConv;
-//# sourceMappingURL=depthwiseSeparableConv.js.map
\ No newline at end of file
diff --git a/build/commonjs/faceLandmarkNet/depthwiseSeparableConv.js.map b/build/commonjs/faceLandmarkNet/depthwiseSeparableConv.js.map
deleted file mode 100644
index 07475543..00000000
--- a/build/commonjs/faceLandmarkNet/depthwiseSeparableConv.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"depthwiseSeparableConv.js","sourceRoot":"","sources":["../../../src/faceLandmarkNet/depthwiseSeparableConv.ts"],"names":[],"mappings":";;AAAA,0CAA4C;AAG5C,gCACE,CAAc,EACd,MAA2B,EAC3B,MAAwB;IAExB,OAAO,EAAE,CAAC,IAAI,CAAC;QACb,IAAI,GAAG,GAAG,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;QACjG,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;QAC9B,OAAO,GAAG,CAAA;IACZ,CAAC,CAAC,CAAA;AACJ,CAAC;AAVD,wDAUC"}
\ No newline at end of file
diff --git a/build/commonjs/faceLandmarkNet/extractParams.d.ts b/build/commonjs/faceLandmarkNet/extractParams.d.ts
deleted file mode 100644
index 40295777..00000000
--- a/build/commonjs/faceLandmarkNet/extractParams.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { ParamMapping } from 'tfjs-image-recognition-base';
-import { NetParams } from './types';
-export declare function extractParams(weights: Float32Array): {
- params: NetParams;
- paramMappings: ParamMapping[];
-};
diff --git a/build/commonjs/faceLandmarkNet/extractParams.js b/build/commonjs/faceLandmarkNet/extractParams.js
deleted file mode 100644
index 1b2bf57a..00000000
--- a/build/commonjs/faceLandmarkNet/extractParams.js
+++ /dev/null
@@ -1,23 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tfjs_image_recognition_base_1 = require("tfjs-image-recognition-base");
-var extractorsFactory_1 = require("./extractorsFactory");
-function extractParams(weights) {
- var paramMappings = [];
- var _a = tfjs_image_recognition_base_1.extractWeightsFactory(weights), extractWeights = _a.extractWeights, getRemainingWeights = _a.getRemainingWeights;
- var _b = extractorsFactory_1.extractorsFactory(extractWeights, paramMappings), extractDenseBlock4Params = _b.extractDenseBlock4Params, extractFCParams = _b.extractFCParams;
- var dense0 = extractDenseBlock4Params(3, 32, 'dense0', true);
- var dense1 = extractDenseBlock4Params(32, 64, 'dense1');
- var dense2 = extractDenseBlock4Params(64, 128, 'dense2');
- var dense3 = extractDenseBlock4Params(128, 256, 'dense3');
- var fc = extractFCParams(256, 136, 'fc');
- if (getRemainingWeights().length !== 0) {
- throw new Error("weights remaing after extract: " + getRemainingWeights().length);
- }
- return {
- paramMappings: paramMappings,
- params: { dense0: dense0, dense1: dense1, dense2: dense2, dense3: dense3, fc: fc }
- };
-}
-exports.extractParams = extractParams;
-//# sourceMappingURL=extractParams.js.map
\ No newline at end of file
diff --git a/build/commonjs/faceLandmarkNet/extractParams.js.map b/build/commonjs/faceLandmarkNet/extractParams.js.map
deleted file mode 100644
index 2df6c83c..00000000
--- a/build/commonjs/faceLandmarkNet/extractParams.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"extractParams.js","sourceRoot":"","sources":["../../../src/faceLandmarkNet/extractParams.ts"],"names":[],"mappings":";;AAAA,2EAAkF;AAElF,yDAAwD;AAGxD,uBAA8B,OAAqB;IAEjD,IAAM,aAAa,GAAmB,EAAE,CAAA;IAElC,IAAA,iEAG4B,EAFhC,kCAAc,EACd,4CAAmB,CACa;IAE5B,IAAA,yEAG8C,EAFlD,sDAAwB,EACxB,oCAAe,CACmC;IAEpD,IAAM,MAAM,GAAG,wBAAwB,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;IAC9D,IAAM,MAAM,GAAG,wBAAwB,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAA;IACzD,IAAM,MAAM,GAAG,wBAAwB,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAA;IAC1D,IAAM,MAAM,GAAG,wBAAwB,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAA;IAC3D,IAAM,EAAE,GAAG,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;IAE1C,IAAI,mBAAmB,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;QACtC,MAAM,IAAI,KAAK,CAAC,oCAAkC,mBAAmB,EAAE,CAAC,MAAQ,CAAC,CAAA;KAClF;IAED,OAAO;QACL,aAAa,eAAA;QACb,MAAM,EAAE,EAAE,MAAM,QAAA,EAAE,MAAM,QAAA,EAAE,MAAM,QAAA,EAAE,MAAM,QAAA,EAAE,EAAE,IAAA,EAAE;KAC/C,CAAA;AACH,CAAC;AA5BD,sCA4BC"}
\ No newline at end of file
diff --git a/build/commonjs/faceLandmarkNet/extractParamsTiny.d.ts b/build/commonjs/faceLandmarkNet/extractParamsTiny.d.ts
deleted file mode 100644
index ef9c65b1..00000000
--- a/build/commonjs/faceLandmarkNet/extractParamsTiny.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { ParamMapping } from 'tfjs-image-recognition-base';
-import { TinyNetParams } from './types';
-export declare function extractParamsTiny(weights: Float32Array): {
- params: TinyNetParams;
- paramMappings: ParamMapping[];
-};
diff --git a/build/commonjs/faceLandmarkNet/extractParamsTiny.js b/build/commonjs/faceLandmarkNet/extractParamsTiny.js
deleted file mode 100644
index de267340..00000000
--- a/build/commonjs/faceLandmarkNet/extractParamsTiny.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tfjs_image_recognition_base_1 = require("tfjs-image-recognition-base");
-var extractorsFactory_1 = require("./extractorsFactory");
-function extractParamsTiny(weights) {
- var paramMappings = [];
- var _a = tfjs_image_recognition_base_1.extractWeightsFactory(weights), extractWeights = _a.extractWeights, getRemainingWeights = _a.getRemainingWeights;
- var _b = extractorsFactory_1.extractorsFactory(extractWeights, paramMappings), extractDenseBlock3Params = _b.extractDenseBlock3Params, extractFCParams = _b.extractFCParams;
- var dense0 = extractDenseBlock3Params(3, 32, 'dense0', true);
- var dense1 = extractDenseBlock3Params(32, 64, 'dense1');
- var dense2 = extractDenseBlock3Params(64, 128, 'dense2');
- var fc = extractFCParams(128, 136, 'fc');
- if (getRemainingWeights().length !== 0) {
- throw new Error("weights remaing after extract: " + getRemainingWeights().length);
- }
- return {
- paramMappings: paramMappings,
- params: { dense0: dense0, dense1: dense1, dense2: dense2, fc: fc }
- };
-}
-exports.extractParamsTiny = extractParamsTiny;
-//# sourceMappingURL=extractParamsTiny.js.map
\ No newline at end of file
diff --git a/build/commonjs/faceLandmarkNet/extractParamsTiny.js.map b/build/commonjs/faceLandmarkNet/extractParamsTiny.js.map
deleted file mode 100644
index c7062d20..00000000
--- a/build/commonjs/faceLandmarkNet/extractParamsTiny.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"extractParamsTiny.js","sourceRoot":"","sources":["../../../src/faceLandmarkNet/extractParamsTiny.ts"],"names":[],"mappings":";;AAAA,2EAAkF;AAElF,yDAAwD;AAGxD,2BAAkC,OAAqB;IAErD,IAAM,aAAa,GAAmB,EAAE,CAAA;IAElC,IAAA,iEAG4B,EAFhC,kCAAc,EACd,4CAAmB,CACa;IAE5B,IAAA,yEAG8C,EAFlD,sDAAwB,EACxB,oCAAe,CACmC;IAEpD,IAAM,MAAM,GAAG,wBAAwB,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;IAC9D,IAAM,MAAM,GAAG,wBAAwB,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAA;IACzD,IAAM,MAAM,GAAG,wBAAwB,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAA;IAC1D,IAAM,EAAE,GAAG,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;IAE1C,IAAI,mBAAmB,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;QACtC,MAAM,IAAI,KAAK,CAAC,oCAAkC,mBAAmB,EAAE,CAAC,MAAQ,CAAC,CAAA;KAClF;IAED,OAAO;QACL,aAAa,eAAA;QACb,MAAM,EAAE,EAAE,MAAM,QAAA,EAAE,MAAM,QAAA,EAAE,MAAM,QAAA,EAAE,EAAE,IAAA,EAAE;KACvC,CAAA;AACH,CAAC;AA3BD,8CA2BC"}
\ No newline at end of file
diff --git a/build/commonjs/faceLandmarkNet/extractorsFactory.d.ts b/build/commonjs/faceLandmarkNet/extractorsFactory.d.ts
deleted file mode 100644
index 247236f3..00000000
--- a/build/commonjs/faceLandmarkNet/extractorsFactory.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { ExtractWeightsFunction, ParamMapping } from 'tfjs-image-recognition-base';
-import { FCParams } from 'tfjs-tiny-yolov2';
-import { DenseBlock3Params, DenseBlock4Params } from './types';
-export declare function extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]): {
- extractDenseBlock3Params: (channelsIn: number, channelsOut: number, mappedPrefix: string, isFirstLayer?: boolean) => DenseBlock3Params;
- extractDenseBlock4Params: (channelsIn: number, channelsOut: number, mappedPrefix: string, isFirstLayer?: boolean) => DenseBlock4Params;
- extractFCParams: (channelsIn: number, channelsOut: number, mappedPrefix: string) => FCParams;
-};
diff --git a/build/commonjs/faceLandmarkNet/extractorsFactory.js b/build/commonjs/faceLandmarkNet/extractorsFactory.js
deleted file mode 100644
index b279b269..00000000
--- a/build/commonjs/faceLandmarkNet/extractorsFactory.js
+++ /dev/null
@@ -1,45 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tf = require("@tensorflow/tfjs-core");
-var tfjs_tiny_yolov2_1 = require("tfjs-tiny-yolov2");
-function extractorsFactory(extractWeights, paramMappings) {
- function extractSeparableConvParams(channelsIn, channelsOut, mappedPrefix) {
- var depthwise_filter = tf.tensor4d(extractWeights(3 * 3 * channelsIn), [3, 3, channelsIn, 1]);
- var pointwise_filter = tf.tensor4d(extractWeights(channelsIn * channelsOut), [1, 1, channelsIn, channelsOut]);
- var bias = tf.tensor1d(extractWeights(channelsOut));
- paramMappings.push({ paramPath: mappedPrefix + "/depthwise_filter" }, { paramPath: mappedPrefix + "/pointwise_filter" }, { paramPath: mappedPrefix + "/bias" });
- return new tfjs_tiny_yolov2_1.SeparableConvParams(depthwise_filter, pointwise_filter, bias);
- }
- function extractFCParams(channelsIn, channelsOut, mappedPrefix) {
- var weights = tf.tensor2d(extractWeights(channelsIn * channelsOut), [channelsIn, channelsOut]);
- var bias = tf.tensor1d(extractWeights(channelsOut));
- paramMappings.push({ paramPath: mappedPrefix + "/weights" }, { paramPath: mappedPrefix + "/bias" });
- return {
- weights: weights,
- bias: bias
- };
- }
- var extractConvParams = tfjs_tiny_yolov2_1.extractConvParamsFactory(extractWeights, paramMappings);
- function extractDenseBlock3Params(channelsIn, channelsOut, mappedPrefix, isFirstLayer) {
- if (isFirstLayer === void 0) { isFirstLayer = false; }
- var conv0 = isFirstLayer
- ? extractConvParams(channelsIn, channelsOut, 3, mappedPrefix + "/conv0")
- : extractSeparableConvParams(channelsIn, channelsOut, mappedPrefix + "/conv0");
- var conv1 = extractSeparableConvParams(channelsOut, channelsOut, mappedPrefix + "/conv1");
- var conv2 = extractSeparableConvParams(channelsOut, channelsOut, mappedPrefix + "/conv2");
- return { conv0: conv0, conv1: conv1, conv2: conv2 };
- }
- function extractDenseBlock4Params(channelsIn, channelsOut, mappedPrefix, isFirstLayer) {
- if (isFirstLayer === void 0) { isFirstLayer = false; }
- var _a = extractDenseBlock3Params(channelsIn, channelsOut, mappedPrefix, isFirstLayer), conv0 = _a.conv0, conv1 = _a.conv1, conv2 = _a.conv2;
- var conv3 = extractSeparableConvParams(channelsOut, channelsOut, mappedPrefix + "/conv3");
- return { conv0: conv0, conv1: conv1, conv2: conv2, conv3: conv3 };
- }
- return {
- extractDenseBlock3Params: extractDenseBlock3Params,
- extractDenseBlock4Params: extractDenseBlock4Params,
- extractFCParams: extractFCParams
- };
-}
-exports.extractorsFactory = extractorsFactory;
-//# sourceMappingURL=extractorsFactory.js.map
\ No newline at end of file
diff --git a/build/commonjs/faceLandmarkNet/extractorsFactory.js.map b/build/commonjs/faceLandmarkNet/extractorsFactory.js.map
deleted file mode 100644
index 17f9cf29..00000000
--- a/build/commonjs/faceLandmarkNet/extractorsFactory.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"extractorsFactory.js","sourceRoot":"","sources":["../../../src/faceLandmarkNet/extractorsFactory.ts"],"names":[],"mappings":";;AAAA,0CAA4C;AAE5C,qDAA2F;AAI3F,2BAAkC,cAAsC,EAAE,aAA6B;IAErG,oCAAoC,UAAkB,EAAE,WAAmB,EAAE,YAAoB;QAC/F,IAAM,gBAAgB,GAAG,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAA;QAC/F,IAAM,gBAAgB,GAAG,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAA;QAC/G,IAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAA;QAErD,aAAa,CAAC,IAAI,CAChB,EAAE,SAAS,EAAK,YAAY,sBAAmB,EAAE,EACjD,EAAE,SAAS,EAAK,YAAY,sBAAmB,EAAE,EACjD,EAAE,SAAS,EAAK,YAAY,UAAO,EAAE,CACtC,CAAA;QAED,OAAO,IAAI,sCAAmB,CAC5B,gBAAgB,EAChB,gBAAgB,EAChB,IAAI,CACL,CAAA;IACH,CAAC;IAED,yBAAyB,UAAkB,EAAE,WAAmB,EAAE,YAAoB;QACpF,IAAM,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,GAAG,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAA;QAChG,IAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAA;QAErD,aAAa,CAAC,IAAI,CAChB,EAAE,SAAS,EAAK,YAAY,aAAU,EAAE,EACxC,EAAE,SAAS,EAAK,YAAY,UAAO,EAAE,CACtC,CAAA;QAED,OAAO;YACL,OAAO,SAAA;YACP,IAAI,MAAA;SACL,CAAA;IACH,CAAC;IAED,IAAM,iBAAiB,GAAG,2CAAwB,CAAC,cAAc,EAAE,aAAa,CAAC,CAAA;IAEjF,kCAAkC,UAAkB,EAAE,WAAmB,EAAE,YAAoB,EAAE,YAA6B;QAA7B,6BAAA,EAAA,oBAA6B;QAE5H,IAAM,KAAK,GAAG,YAAY;YACxB,CAAC,CAAC,iBAAiB,CAAC,UAAU,EAAE,WAAW,EAAE,CAAC,EAAK,YAAY,WAAQ,CAAC;YACxE,CAAC,CAAC,0BAA0B,CAAC,UAAU,EAAE,WAAW,EAAK,YAAY,WAAQ,CAAC,CAAA;QAChF,IAAM,KAAK,GAAG,0BAA0B,CAAC,WAAW,EAAE,WAAW,EAAK,YAAY,WAAQ,CAAC,CAAA;QAC3F,IAAM,KAAK,GAAG,0BAA0B,CAAC,WAAW,EAAE,WAAW,EAAK,YAAY,WAAQ,CAAC,CAAA;QAE3F,OAAO,EAAE,KAAK,OAAA,EAAE,KAAK,OAAA,EAAE,KAAK,OAAA,EAAE,CAAA;IAChC,CAAC;IAED,kCAAkC,UAAkB,EAAE,WAAmB,EAAE,YAAoB,EAAE,YAA6B;QAA7B,6BAAA,EAAA,oBAA6B;QAEtH,IAAA,kFAAuG,EAArG,gBAAK,EAAE,gBAAK,EAAE,gBAAK,CAAkF;QAC7G,IAAM,KAAK,GAAG,0BAA0B,CAAC,WAAW,EAAE,WAAW,EAAK,YAAY,WAAQ,CAAC,CAAA;QAE3F,OAAO,EAAE,KAAK,OAAA,EAAE,KAAK,OAAA,EAAE,KAAK,OAAA,EAAE,KAAK,OAAA,EAAE,CAAA;IACvC,CAAC;IAED,OAAO;QACL,wBAAwB,0BAAA;QACxB,wBAAwB,0BAAA;QACxB,eAAe,iBAAA;KAChB,CAAA;AAEH,CAAC;AA9DD,8CA8DC"}
\ No newline at end of file
diff --git a/build/commonjs/faceLandmarkNet/fullyConnectedLayer.d.ts b/build/commonjs/faceLandmarkNet/fullyConnectedLayer.d.ts
deleted file mode 100644
index f9f052aa..00000000
--- a/build/commonjs/faceLandmarkNet/fullyConnectedLayer.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { FCParams } from 'tfjs-tiny-yolov2';
-export declare function fullyConnectedLayer(x: tf.Tensor2D, params: FCParams): tf.Tensor2D;
diff --git a/build/commonjs/faceLandmarkNet/fullyConnectedLayer.js b/build/commonjs/faceLandmarkNet/fullyConnectedLayer.js
deleted file mode 100644
index 624c1d5e..00000000
--- a/build/commonjs/faceLandmarkNet/fullyConnectedLayer.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tf = require("@tensorflow/tfjs-core");
-function fullyConnectedLayer(x, params) {
- return tf.tidy(function () {
- return tf.add(tf.matMul(x, params.weights), params.bias);
- });
-}
-exports.fullyConnectedLayer = fullyConnectedLayer;
-//# sourceMappingURL=fullyConnectedLayer.js.map
\ No newline at end of file
diff --git a/build/commonjs/faceLandmarkNet/fullyConnectedLayer.js.map b/build/commonjs/faceLandmarkNet/fullyConnectedLayer.js.map
deleted file mode 100644
index 2b35a335..00000000
--- a/build/commonjs/faceLandmarkNet/fullyConnectedLayer.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"fullyConnectedLayer.js","sourceRoot":"","sources":["../../../src/faceLandmarkNet/fullyConnectedLayer.ts"],"names":[],"mappings":";;AAAA,0CAA4C;AAG5C,6BACE,CAAc,EACd,MAAgB;IAEhB,OAAO,EAAE,CAAC,IAAI,CAAC;QACb,OAAA,EAAE,CAAC,GAAG,CACJ,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,EAC5B,MAAM,CAAC,IAAI,CACZ;IAHD,CAGC,CACF,CAAA;AACH,CAAC;AAVD,kDAUC"}
\ No newline at end of file
diff --git a/build/commonjs/faceLandmarkNet/index.d.ts b/build/commonjs/faceLandmarkNet/index.d.ts
deleted file mode 100644
index 6e5d1cd4..00000000
--- a/build/commonjs/faceLandmarkNet/index.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { FaceLandmark68Net } from './FaceLandmark68Net';
-export * from './FaceLandmark68Net';
-export * from './FaceLandmark68TinyNet';
-export declare class FaceLandmarkNet extends FaceLandmark68Net {
-}
-export declare function createFaceLandmarkNet(weights: Float32Array): FaceLandmarkNet;
diff --git a/build/commonjs/faceLandmarkNet/index.js b/build/commonjs/faceLandmarkNet/index.js
deleted file mode 100644
index 8322f774..00000000
--- a/build/commonjs/faceLandmarkNet/index.js
+++ /dev/null
@@ -1,21 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tslib_1 = require("tslib");
-var FaceLandmark68Net_1 = require("./FaceLandmark68Net");
-tslib_1.__exportStar(require("./FaceLandmark68Net"), exports);
-tslib_1.__exportStar(require("./FaceLandmark68TinyNet"), exports);
-var FaceLandmarkNet = /** @class */ (function (_super) {
- tslib_1.__extends(FaceLandmarkNet, _super);
- function FaceLandmarkNet() {
- return _super !== null && _super.apply(this, arguments) || this;
- }
- return FaceLandmarkNet;
-}(FaceLandmark68Net_1.FaceLandmark68Net));
-exports.FaceLandmarkNet = FaceLandmarkNet;
-function createFaceLandmarkNet(weights) {
- var net = new FaceLandmarkNet();
- net.extractWeights(weights);
- return net;
-}
-exports.createFaceLandmarkNet = createFaceLandmarkNet;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/build/commonjs/faceLandmarkNet/index.js.map b/build/commonjs/faceLandmarkNet/index.js.map
deleted file mode 100644
index def228be..00000000
--- a/build/commonjs/faceLandmarkNet/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/faceLandmarkNet/index.ts"],"names":[],"mappings":";;;AAAA,yDAAwD;AAExD,8DAAoC;AACpC,kEAAwC;AAExC;IAAqC,2CAAiB;IAAtD;;IAAwD,CAAC;IAAD,sBAAC;AAAD,CAAC,AAAzD,CAAqC,qCAAiB,GAAG;AAA5C,0CAAe;AAE5B,+BAAsC,OAAqB;IACzD,IAAM,GAAG,GAAG,IAAI,eAAe,EAAE,CAAA;IACjC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;IAC3B,OAAO,GAAG,CAAA;AACZ,CAAC;AAJD,sDAIC"}
\ No newline at end of file
diff --git a/build/commonjs/faceLandmarkNet/loadParamsFactory.d.ts b/build/commonjs/faceLandmarkNet/loadParamsFactory.d.ts
deleted file mode 100644
index f4c2f6ad..00000000
--- a/build/commonjs/faceLandmarkNet/loadParamsFactory.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { ParamMapping } from 'tfjs-image-recognition-base';
-import { FCParams } from 'tfjs-tiny-yolov2';
-import { DenseBlock3Params, DenseBlock4Params } from './types';
-export declare function loadParamsFactory(weightMap: any, paramMappings: ParamMapping[]): {
- extractDenseBlock3Params: (prefix: string, isFirstLayer?: boolean) => DenseBlock3Params;
- extractDenseBlock4Params: (prefix: string, isFirstLayer?: boolean) => DenseBlock4Params;
- extractFcParams: (prefix: string) => FCParams;
-};
diff --git a/build/commonjs/faceLandmarkNet/loadParamsFactory.js b/build/commonjs/faceLandmarkNet/loadParamsFactory.js
deleted file mode 100644
index 0e434f68..00000000
--- a/build/commonjs/faceLandmarkNet/loadParamsFactory.js
+++ /dev/null
@@ -1,49 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tfjs_image_recognition_base_1 = require("tfjs-image-recognition-base");
-var tfjs_tiny_yolov2_1 = require("tfjs-tiny-yolov2");
-function loadParamsFactory(weightMap, paramMappings) {
- var extractWeightEntry = tfjs_image_recognition_base_1.extractWeightEntryFactory(weightMap, paramMappings);
- function extractConvParams(prefix) {
- var filters = extractWeightEntry(prefix + "/filters", 4);
- var bias = extractWeightEntry(prefix + "/bias", 1);
- return { filters: filters, bias: bias };
- }
- function extractSeparableConvParams(prefix) {
- var depthwise_filter = extractWeightEntry(prefix + "/depthwise_filter", 4);
- var pointwise_filter = extractWeightEntry(prefix + "/pointwise_filter", 4);
- var bias = extractWeightEntry(prefix + "/bias", 1);
- return new tfjs_tiny_yolov2_1.SeparableConvParams(depthwise_filter, pointwise_filter, bias);
- }
- function extractDenseBlock3Params(prefix, isFirstLayer) {
- if (isFirstLayer === void 0) { isFirstLayer = false; }
- var conv0 = isFirstLayer
- ? extractConvParams(prefix + "/conv0")
- : extractSeparableConvParams(prefix + "/conv0");
- var conv1 = extractSeparableConvParams(prefix + "/conv1");
- var conv2 = extractSeparableConvParams(prefix + "/conv2");
- return { conv0: conv0, conv1: conv1, conv2: conv2 };
- }
- function extractDenseBlock4Params(prefix, isFirstLayer) {
- if (isFirstLayer === void 0) { isFirstLayer = false; }
- var conv0 = isFirstLayer
- ? extractConvParams(prefix + "/conv0")
- : extractSeparableConvParams(prefix + "/conv0");
- var conv1 = extractSeparableConvParams(prefix + "/conv1");
- var conv2 = extractSeparableConvParams(prefix + "/conv2");
- var conv3 = extractSeparableConvParams(prefix + "/conv3");
- return { conv0: conv0, conv1: conv1, conv2: conv2, conv3: conv3 };
- }
- function extractFcParams(prefix) {
- var weights = extractWeightEntry(prefix + "/weights", 2);
- var bias = extractWeightEntry(prefix + "/bias", 1);
- return { weights: weights, bias: bias };
- }
- return {
- extractDenseBlock3Params: extractDenseBlock3Params,
- extractDenseBlock4Params: extractDenseBlock4Params,
- extractFcParams: extractFcParams
- };
-}
-exports.loadParamsFactory = loadParamsFactory;
-//# sourceMappingURL=loadParamsFactory.js.map
\ No newline at end of file
diff --git a/build/commonjs/faceLandmarkNet/loadParamsFactory.js.map b/build/commonjs/faceLandmarkNet/loadParamsFactory.js.map
deleted file mode 100644
index 71ceb0f3..00000000
--- a/build/commonjs/faceLandmarkNet/loadParamsFactory.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"loadParamsFactory.js","sourceRoot":"","sources":["../../../src/faceLandmarkNet/loadParamsFactory.ts"],"names":[],"mappings":";;AACA,2EAAsF;AACtF,qDAA6E;AAI7E,2BAAkC,SAAc,EAAE,aAA6B;IAE7E,IAAM,kBAAkB,GAAG,uDAAyB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;IAE9E,2BAA2B,MAAc;QACvC,IAAM,OAAO,GAAG,kBAAkB,CAAiB,MAAM,aAAU,EAAE,CAAC,CAAC,CAAA;QACvE,IAAM,IAAI,GAAG,kBAAkB,CAAiB,MAAM,UAAO,EAAE,CAAC,CAAC,CAAA;QAEjE,OAAO,EAAE,OAAO,SAAA,EAAE,IAAI,MAAA,EAAE,CAAA;IAC1B,CAAC;IAED,oCAAoC,MAAc;QAChD,IAAM,gBAAgB,GAAG,kBAAkB,CAAiB,MAAM,sBAAmB,EAAE,CAAC,CAAC,CAAA;QACzF,IAAM,gBAAgB,GAAG,kBAAkB,CAAiB,MAAM,sBAAmB,EAAE,CAAC,CAAC,CAAA;QACzF,IAAM,IAAI,GAAG,kBAAkB,CAAiB,MAAM,UAAO,EAAE,CAAC,CAAC,CAAA;QAEjE,OAAO,IAAI,sCAAmB,CAC5B,gBAAgB,EAChB,gBAAgB,EAChB,IAAI,CACL,CAAA;IACH,CAAC;IAED,kCAAkC,MAAc,EAAE,YAA6B;QAA7B,6BAAA,EAAA,oBAA6B;QAC7E,IAAM,KAAK,GAAG,YAAY;YACxB,CAAC,CAAC,iBAAiB,CAAI,MAAM,WAAQ,CAAC;YACtC,CAAC,CAAC,0BAA0B,CAAI,MAAM,WAAQ,CAAC,CAAA;QACjD,IAAM,KAAK,GAAG,0BAA0B,CAAI,MAAM,WAAQ,CAAC,CAAA;QAC3D,IAAM,KAAK,GAAG,0BAA0B,CAAI,MAAM,WAAQ,CAAC,CAAA;QAE3D,OAAO,EAAE,KAAK,OAAA,EAAE,KAAK,OAAA,EAAE,KAAK,OAAA,EAAE,CAAA;IAChC,CAAC;IAED,kCAAkC,MAAc,EAAE,YAA6B;QAA7B,6BAAA,EAAA,oBAA6B;QAC7E,IAAM,KAAK,GAAG,YAAY;YACxB,CAAC,CAAC,iBAAiB,CAAI,MAAM,WAAQ,CAAC;YACtC,CAAC,CAAC,0BAA0B,CAAI,MAAM,WAAQ,CAAC,CAAA;QACjD,IAAM,KAAK,GAAG,0BAA0B,CAAI,MAAM,WAAQ,CAAC,CAAA;QAC3D,IAAM,KAAK,GAAG,0BAA0B,CAAI,MAAM,WAAQ,CAAC,CAAA;QAC3D,IAAM,KAAK,GAAG,0BAA0B,CAAI,MAAM,WAAQ,CAAC,CAAA;QAE3D,OAAO,EAAE,KAAK,OAAA,EAAE,KAAK,OAAA,EAAE,KAAK,OAAA,EAAE,KAAK,OAAA,EAAE,CAAA;IACvC,CAAC;IAED,yBAAyB,MAAc;QACrC,IAAM,OAAO,GAAG,kBAAkB,CAAiB,MAAM,aAAU,EAAE,CAAC,CAAC,CAAA;QACvE,IAAM,IAAI,GAAG,kBAAkB,CAAiB,MAAM,UAAO,EAAE,CAAC,CAAC,CAAA;QAEjE,OAAO,EAAE,OAAO,SAAA,EAAE,IAAI,MAAA,EAAE,CAAA;IAC1B,CAAC;IAED,OAAO;QACL,wBAAwB,0BAAA;QACxB,wBAAwB,0BAAA;QACxB,eAAe,iBAAA;KAChB,CAAA;AACH,CAAC;AAxDD,8CAwDC"}
\ No newline at end of file
diff --git a/build/commonjs/faceLandmarkNet/loadQuantizedParams.d.ts b/build/commonjs/faceLandmarkNet/loadQuantizedParams.d.ts
deleted file mode 100644
index c5e1dc44..00000000
--- a/build/commonjs/faceLandmarkNet/loadQuantizedParams.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { ParamMapping } from 'tfjs-image-recognition-base';
-import { NetParams } from './types';
-export declare function loadQuantizedParams(uri: string | undefined): Promise<{
- params: NetParams;
- paramMappings: ParamMapping[];
-}>;
diff --git a/build/commonjs/faceLandmarkNet/loadQuantizedParams.js b/build/commonjs/faceLandmarkNet/loadQuantizedParams.js
deleted file mode 100644
index bea29a7a..00000000
--- a/build/commonjs/faceLandmarkNet/loadQuantizedParams.js
+++ /dev/null
@@ -1,31 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tslib_1 = require("tslib");
-var tfjs_image_recognition_base_1 = require("tfjs-image-recognition-base");
-var loadParamsFactory_1 = require("./loadParamsFactory");
-var DEFAULT_MODEL_NAME = 'face_landmark_68_model';
-function loadQuantizedParams(uri) {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var weightMap, paramMappings, _a, extractDenseBlock4Params, extractFcParams, params;
- return tslib_1.__generator(this, function (_b) {
- switch (_b.label) {
- case 0: return [4 /*yield*/, tfjs_image_recognition_base_1.loadWeightMap(uri, DEFAULT_MODEL_NAME)];
- case 1:
- weightMap = _b.sent();
- paramMappings = [];
- _a = loadParamsFactory_1.loadParamsFactory(weightMap, paramMappings), extractDenseBlock4Params = _a.extractDenseBlock4Params, extractFcParams = _a.extractFcParams;
- params = {
- dense0: extractDenseBlock4Params('dense0', true),
- dense1: extractDenseBlock4Params('dense1'),
- dense2: extractDenseBlock4Params('dense2'),
- dense3: extractDenseBlock4Params('dense3'),
- fc: extractFcParams('fc')
- };
- tfjs_image_recognition_base_1.disposeUnusedWeightTensors(weightMap, paramMappings);
- return [2 /*return*/, { params: params, paramMappings: paramMappings }];
- }
- });
- });
-}
-exports.loadQuantizedParams = loadQuantizedParams;
-//# sourceMappingURL=loadQuantizedParams.js.map
\ No newline at end of file
diff --git a/build/commonjs/faceLandmarkNet/loadQuantizedParams.js.map b/build/commonjs/faceLandmarkNet/loadQuantizedParams.js.map
deleted file mode 100644
index 09988dc7..00000000
--- a/build/commonjs/faceLandmarkNet/loadQuantizedParams.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"loadQuantizedParams.js","sourceRoot":"","sources":["../../../src/faceLandmarkNet/loadQuantizedParams.ts"],"names":[],"mappings":";;;AAAA,2EAAsG;AAEtG,yDAAwD;AAGxD,IAAM,kBAAkB,GAAG,wBAAwB,CAAA;AAEnD,6BACE,GAAuB;;;;;wBAGL,qBAAM,2CAAa,CAAC,GAAG,EAAE,kBAAkB,CAAC,EAAA;;oBAAxD,SAAS,GAAG,SAA4C;oBACxD,aAAa,GAAmB,EAAE,CAAA;oBAElC,KAGF,qCAAiB,CAAC,SAAS,EAAE,aAAa,CAAC,EAF7C,wBAAwB,8BAAA,EACxB,eAAe,qBAAA,CAC8B;oBAEzC,MAAM,GAAG;wBACb,MAAM,EAAE,wBAAwB,CAAC,QAAQ,EAAE,IAAI,CAAC;wBAChD,MAAM,EAAE,wBAAwB,CAAC,QAAQ,CAAC;wBAC1C,MAAM,EAAE,wBAAwB,CAAC,QAAQ,CAAC;wBAC1C,MAAM,EAAE,wBAAwB,CAAC,QAAQ,CAAC;wBAC1C,EAAE,EAAE,eAAe,CAAC,IAAI,CAAC;qBAC1B,CAAA;oBAED,wDAA0B,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;oBAEpD,sBAAO,EAAE,MAAM,QAAA,EAAE,aAAa,eAAA,EAAE,EAAA;;;;CACjC;AAvBD,kDAuBC"}
\ No newline at end of file
diff --git a/build/commonjs/faceLandmarkNet/loadQuantizedParamsTiny.d.ts b/build/commonjs/faceLandmarkNet/loadQuantizedParamsTiny.d.ts
deleted file mode 100644
index 36f4ea62..00000000
--- a/build/commonjs/faceLandmarkNet/loadQuantizedParamsTiny.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { ParamMapping } from 'tfjs-image-recognition-base';
-import { TinyNetParams } from './types';
-export declare function loadQuantizedParamsTiny(uri: string | undefined): Promise<{
- params: TinyNetParams;
- paramMappings: ParamMapping[];
-}>;
diff --git a/build/commonjs/faceLandmarkNet/loadQuantizedParamsTiny.js b/build/commonjs/faceLandmarkNet/loadQuantizedParamsTiny.js
deleted file mode 100644
index cee78ef9..00000000
--- a/build/commonjs/faceLandmarkNet/loadQuantizedParamsTiny.js
+++ /dev/null
@@ -1,30 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tslib_1 = require("tslib");
-var tfjs_image_recognition_base_1 = require("tfjs-image-recognition-base");
-var loadParamsFactory_1 = require("./loadParamsFactory");
-var DEFAULT_MODEL_NAME = 'face_landmark_68_tiny_model';
-function loadQuantizedParamsTiny(uri) {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var weightMap, paramMappings, _a, extractDenseBlock3Params, extractFcParams, params;
- return tslib_1.__generator(this, function (_b) {
- switch (_b.label) {
- case 0: return [4 /*yield*/, tfjs_image_recognition_base_1.loadWeightMap(uri, DEFAULT_MODEL_NAME)];
- case 1:
- weightMap = _b.sent();
- paramMappings = [];
- _a = loadParamsFactory_1.loadParamsFactory(weightMap, paramMappings), extractDenseBlock3Params = _a.extractDenseBlock3Params, extractFcParams = _a.extractFcParams;
- params = {
- dense0: extractDenseBlock3Params('dense0', true),
- dense1: extractDenseBlock3Params('dense1'),
- dense2: extractDenseBlock3Params('dense2'),
- fc: extractFcParams('fc')
- };
- tfjs_image_recognition_base_1.disposeUnusedWeightTensors(weightMap, paramMappings);
- return [2 /*return*/, { params: params, paramMappings: paramMappings }];
- }
- });
- });
-}
-exports.loadQuantizedParamsTiny = loadQuantizedParamsTiny;
-//# sourceMappingURL=loadQuantizedParamsTiny.js.map
\ No newline at end of file
diff --git a/build/commonjs/faceLandmarkNet/loadQuantizedParamsTiny.js.map b/build/commonjs/faceLandmarkNet/loadQuantizedParamsTiny.js.map
deleted file mode 100644
index 99023f8f..00000000
--- a/build/commonjs/faceLandmarkNet/loadQuantizedParamsTiny.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"loadQuantizedParamsTiny.js","sourceRoot":"","sources":["../../../src/faceLandmarkNet/loadQuantizedParamsTiny.ts"],"names":[],"mappings":";;;AAAA,2EAAsG;AAEtG,yDAAwD;AAGxD,IAAM,kBAAkB,GAAG,6BAA6B,CAAA;AAExD,iCACE,GAAuB;;;;;wBAGL,qBAAM,2CAAa,CAAC,GAAG,EAAE,kBAAkB,CAAC,EAAA;;oBAAxD,SAAS,GAAG,SAA4C;oBACxD,aAAa,GAAmB,EAAE,CAAA;oBAElC,KAGF,qCAAiB,CAAC,SAAS,EAAE,aAAa,CAAC,EAF7C,wBAAwB,8BAAA,EACxB,eAAe,qBAAA,CAC8B;oBAEzC,MAAM,GAAG;wBACb,MAAM,EAAE,wBAAwB,CAAC,QAAQ,EAAE,IAAI,CAAC;wBAChD,MAAM,EAAE,wBAAwB,CAAC,QAAQ,CAAC;wBAC1C,MAAM,EAAE,wBAAwB,CAAC,QAAQ,CAAC;wBAC1C,EAAE,EAAE,eAAe,CAAC,IAAI,CAAC;qBAC1B,CAAA;oBAED,wDAA0B,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;oBAEpD,sBAAO,EAAE,MAAM,QAAA,EAAE,aAAa,eAAA,EAAE,EAAA;;;;CACjC;AAtBD,0DAsBC"}
\ No newline at end of file
diff --git a/build/commonjs/faceLandmarkNet/types.d.ts b/build/commonjs/faceLandmarkNet/types.d.ts
deleted file mode 100644
index 2e5131f8..00000000
--- a/build/commonjs/faceLandmarkNet/types.d.ts
+++ /dev/null
@@ -1,39 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { ConvParams, FCParams, SeparableConvParams } from 'tfjs-tiny-yolov2';
-export declare type ConvWithBatchNormParams = BatchNormParams & {
- filter: tf.Tensor4D;
-};
-export declare type BatchNormParams = {
- mean: tf.Tensor1D;
- variance: tf.Tensor1D;
- scale: tf.Tensor1D;
- offset: tf.Tensor1D;
-};
-export declare type SeparableConvWithBatchNormParams = {
- depthwise: ConvWithBatchNormParams;
- pointwise: ConvWithBatchNormParams;
-};
-export declare type FCWithBatchNormParams = BatchNormParams & {
- weights: tf.Tensor2D;
-};
-export declare type DenseBlock3Params = {
- conv0: SeparableConvParams | ConvParams;
- conv1: SeparableConvParams;
- conv2: SeparableConvParams;
-};
-export declare type DenseBlock4Params = DenseBlock3Params & {
- conv3: SeparableConvParams;
-};
-export declare type TinyNetParams = {
- dense0: DenseBlock3Params;
- dense1: DenseBlock3Params;
- dense2: DenseBlock3Params;
- fc: FCParams;
-};
-export declare type NetParams = {
- dense0: DenseBlock4Params;
- dense1: DenseBlock4Params;
- dense2: DenseBlock4Params;
- dense3: DenseBlock4Params;
- fc: FCParams;
-};
diff --git a/build/commonjs/faceLandmarkNet/types.js b/build/commonjs/faceLandmarkNet/types.js
deleted file mode 100644
index 11e638d1..00000000
--- a/build/commonjs/faceLandmarkNet/types.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-//# sourceMappingURL=types.js.map
\ No newline at end of file
diff --git a/build/commonjs/faceLandmarkNet/types.js.map b/build/commonjs/faceLandmarkNet/types.js.map
deleted file mode 100644
index 7dfe1a59..00000000
--- a/build/commonjs/faceLandmarkNet/types.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/faceLandmarkNet/types.ts"],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/build/commonjs/faceRecognitionNet/FaceRecognitionNet.d.ts b/build/commonjs/faceRecognitionNet/FaceRecognitionNet.d.ts
deleted file mode 100644
index f34abc0c..00000000
--- a/build/commonjs/faceRecognitionNet/FaceRecognitionNet.d.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { NetInput, NeuralNetwork, TNetInput } from 'tfjs-image-recognition-base';
-import { NetParams } from './types';
-export declare class FaceRecognitionNet extends NeuralNetwork {
- constructor();
- forwardInput(input: NetInput): tf.Tensor2D;
- forward(input: TNetInput): Promise;
- computeFaceDescriptor(input: TNetInput): Promise;
- protected loadQuantizedParams(uri: string | undefined): Promise<{
- params: NetParams;
- paramMappings: {
- originalPath?: string | undefined;
- paramPath: string;
- }[];
- }>;
- protected extractParams(weights: Float32Array): {
- params: NetParams;
- paramMappings: {
- originalPath?: string | undefined;
- paramPath: string;
- }[];
- };
-}
diff --git a/build/commonjs/faceRecognitionNet/FaceRecognitionNet.js b/build/commonjs/faceRecognitionNet/FaceRecognitionNet.js
deleted file mode 100644
index 55d18628..00000000
--- a/build/commonjs/faceRecognitionNet/FaceRecognitionNet.js
+++ /dev/null
@@ -1,88 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tslib_1 = require("tslib");
-var tf = require("@tensorflow/tfjs-core");
-var tfjs_image_recognition_base_1 = require("tfjs-image-recognition-base");
-var convLayer_1 = require("./convLayer");
-var extractParams_1 = require("./extractParams");
-var loadQuantizedParams_1 = require("./loadQuantizedParams");
-var residualLayer_1 = require("./residualLayer");
-var FaceRecognitionNet = /** @class */ (function (_super) {
- tslib_1.__extends(FaceRecognitionNet, _super);
- function FaceRecognitionNet() {
- return _super.call(this, 'FaceRecognitionNet') || this;
- }
- FaceRecognitionNet.prototype.forwardInput = function (input) {
- var params = this.params;
- if (!params) {
- throw new Error('FaceRecognitionNet - load model before inference');
- }
- return tf.tidy(function () {
- var batchTensor = input.toBatchTensor(150, true).toFloat();
- var meanRgb = [122.782, 117.001, 104.298];
- var normalized = tfjs_image_recognition_base_1.normalize(batchTensor, meanRgb).div(tf.scalar(256));
- var out = convLayer_1.convDown(normalized, params.conv32_down);
- out = tf.maxPool(out, 3, 2, 'valid');
- out = residualLayer_1.residual(out, params.conv32_1);
- out = residualLayer_1.residual(out, params.conv32_2);
- out = residualLayer_1.residual(out, params.conv32_3);
- out = residualLayer_1.residualDown(out, params.conv64_down);
- out = residualLayer_1.residual(out, params.conv64_1);
- out = residualLayer_1.residual(out, params.conv64_2);
- out = residualLayer_1.residual(out, params.conv64_3);
- out = residualLayer_1.residualDown(out, params.conv128_down);
- out = residualLayer_1.residual(out, params.conv128_1);
- out = residualLayer_1.residual(out, params.conv128_2);
- out = residualLayer_1.residualDown(out, params.conv256_down);
- out = residualLayer_1.residual(out, params.conv256_1);
- out = residualLayer_1.residual(out, params.conv256_2);
- out = residualLayer_1.residualDown(out, params.conv256_down_out);
- var globalAvg = out.mean([1, 2]);
- var fullyConnected = tf.matMul(globalAvg, params.fc);
- return fullyConnected;
- });
- };
- FaceRecognitionNet.prototype.forward = function (input) {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var _a;
- return tslib_1.__generator(this, function (_b) {
- switch (_b.label) {
- case 0:
- _a = this.forwardInput;
- return [4 /*yield*/, tfjs_image_recognition_base_1.toNetInput(input)];
- case 1: return [2 /*return*/, _a.apply(this, [_b.sent()])];
- }
- });
- });
- };
- FaceRecognitionNet.prototype.computeFaceDescriptor = function (input) {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var _this = this;
- var netInput, faceDescriptorTensors, faceDescriptorsForBatch;
- return tslib_1.__generator(this, function (_a) {
- switch (_a.label) {
- case 0: return [4 /*yield*/, tfjs_image_recognition_base_1.toNetInput(input)];
- case 1:
- netInput = _a.sent();
- faceDescriptorTensors = tf.tidy(function () { return tf.unstack(_this.forwardInput(netInput)); });
- return [4 /*yield*/, Promise.all(faceDescriptorTensors.map(function (t) { return t.data(); }))];
- case 2:
- faceDescriptorsForBatch = _a.sent();
- faceDescriptorTensors.forEach(function (t) { return t.dispose(); });
- return [2 /*return*/, netInput.isBatchInput
- ? faceDescriptorsForBatch
- : faceDescriptorsForBatch[0]];
- }
- });
- });
- };
- FaceRecognitionNet.prototype.loadQuantizedParams = function (uri) {
- return loadQuantizedParams_1.loadQuantizedParams(uri);
- };
- FaceRecognitionNet.prototype.extractParams = function (weights) {
- return extractParams_1.extractParams(weights);
- };
- return FaceRecognitionNet;
-}(tfjs_image_recognition_base_1.NeuralNetwork));
-exports.FaceRecognitionNet = FaceRecognitionNet;
-//# sourceMappingURL=FaceRecognitionNet.js.map
\ No newline at end of file
diff --git a/build/commonjs/faceRecognitionNet/FaceRecognitionNet.js.map b/build/commonjs/faceRecognitionNet/FaceRecognitionNet.js.map
deleted file mode 100644
index 78bd1a92..00000000
--- a/build/commonjs/faceRecognitionNet/FaceRecognitionNet.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"FaceRecognitionNet.js","sourceRoot":"","sources":["../../../src/faceRecognitionNet/FaceRecognitionNet.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/build/commonjs/faceRecognitionNet/convLayer.d.ts b/build/commonjs/faceRecognitionNet/convLayer.d.ts
deleted file mode 100644
index a750f6c4..00000000
--- a/build/commonjs/faceRecognitionNet/convLayer.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { ConvLayerParams } from './types';
-export declare function conv(x: tf.Tensor4D, params: ConvLayerParams): tf.Tensor;
-export declare function convNoRelu(x: tf.Tensor4D, params: ConvLayerParams): tf.Tensor;
-export declare function convDown(x: tf.Tensor4D, params: ConvLayerParams): tf.Tensor;
diff --git a/build/commonjs/faceRecognitionNet/convLayer.js b/build/commonjs/faceRecognitionNet/convLayer.js
deleted file mode 100644
index 4c4a2fcf..00000000
--- a/build/commonjs/faceRecognitionNet/convLayer.js
+++ /dev/null
@@ -1,25 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tf = require("@tensorflow/tfjs-core");
-var scaleLayer_1 = require("./scaleLayer");
-function convLayer(x, params, strides, withRelu, padding) {
- if (padding === void 0) { padding = 'same'; }
- var _a = params.conv, filters = _a.filters, bias = _a.bias;
- var out = tf.conv2d(x, filters, strides, padding);
- out = tf.add(out, bias);
- out = scaleLayer_1.scale(out, params.scale);
- return withRelu ? tf.relu(out) : out;
-}
-function conv(x, params) {
- return convLayer(x, params, [1, 1], true);
-}
-exports.conv = conv;
-function convNoRelu(x, params) {
- return convLayer(x, params, [1, 1], false);
-}
-exports.convNoRelu = convNoRelu;
-function convDown(x, params) {
- return convLayer(x, params, [2, 2], true, 'valid');
-}
-exports.convDown = convDown;
-//# sourceMappingURL=convLayer.js.map
\ No newline at end of file
diff --git a/build/commonjs/faceRecognitionNet/convLayer.js.map b/build/commonjs/faceRecognitionNet/convLayer.js.map
deleted file mode 100644
index e2461b73..00000000
--- a/build/commonjs/faceRecognitionNet/convLayer.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"convLayer.js","sourceRoot":"","sources":["../../../src/faceRecognitionNet/convLayer.ts"],"names":[],"mappings":";;AAAA,0CAA4C;AAE5C,2CAAqC;AAIrC,mBACE,CAAc,EACd,MAAuB,EACvB,OAAyB,EACzB,QAAiB,EACjB,OAAkC;IAAlC,wBAAA,EAAA,gBAAkC;IAE5B,IAAA,gBAA+B,EAA7B,oBAAO,EAAE,cAAI,CAAgB;IAErC,IAAI,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;IACjD,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IACvB,GAAG,GAAG,kBAAK,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;IAC9B,OAAO,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;AACtC,CAAC;AAED,cAAqB,CAAc,EAAE,MAAuB;IAC1D,OAAO,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;AAC3C,CAAC;AAFD,oBAEC;AAED,oBAA2B,CAAc,EAAE,MAAuB;IAChE,OAAO,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;AAC5C,CAAC;AAFD,gCAEC;AAED,kBAAyB,CAAc,EAAE,MAAuB;IAC9D,OAAO,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;AACpD,CAAC;AAFD,4BAEC"}
\ No newline at end of file
diff --git a/build/commonjs/faceRecognitionNet/extractParams.d.ts b/build/commonjs/faceRecognitionNet/extractParams.d.ts
deleted file mode 100644
index 40295777..00000000
--- a/build/commonjs/faceRecognitionNet/extractParams.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { ParamMapping } from 'tfjs-image-recognition-base';
-import { NetParams } from './types';
-export declare function extractParams(weights: Float32Array): {
- params: NetParams;
- paramMappings: ParamMapping[];
-};
diff --git a/build/commonjs/faceRecognitionNet/extractParams.js b/build/commonjs/faceRecognitionNet/extractParams.js
deleted file mode 100644
index 46740854..00000000
--- a/build/commonjs/faceRecognitionNet/extractParams.js
+++ /dev/null
@@ -1,90 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tf = require("@tensorflow/tfjs-core");
-var tfjs_image_recognition_base_1 = require("tfjs-image-recognition-base");
-function extractorsFactory(extractWeights, paramMappings) {
- function extractFilterValues(numFilterValues, numFilters, filterSize) {
- var weights = extractWeights(numFilterValues);
- var depth = weights.length / (numFilters * filterSize * filterSize);
- if (tfjs_image_recognition_base_1.isFloat(depth)) {
- throw new Error("depth has to be an integer: " + depth + ", weights.length: " + weights.length + ", numFilters: " + numFilters + ", filterSize: " + filterSize);
- }
- return tf.tidy(function () { return tf.transpose(tf.tensor4d(weights, [numFilters, depth, filterSize, filterSize]), [2, 3, 1, 0]); });
- }
- function extractConvParams(numFilterValues, numFilters, filterSize, mappedPrefix) {
- var filters = extractFilterValues(numFilterValues, numFilters, filterSize);
- var bias = tf.tensor1d(extractWeights(numFilters));
- paramMappings.push({ paramPath: mappedPrefix + "/filters" }, { paramPath: mappedPrefix + "/bias" });
- return { filters: filters, bias: bias };
- }
- function extractScaleLayerParams(numWeights, mappedPrefix) {
- var weights = tf.tensor1d(extractWeights(numWeights));
- var biases = tf.tensor1d(extractWeights(numWeights));
- paramMappings.push({ paramPath: mappedPrefix + "/weights" }, { paramPath: mappedPrefix + "/biases" });
- return {
- weights: weights,
- biases: biases
- };
- }
- function extractConvLayerParams(numFilterValues, numFilters, filterSize, mappedPrefix) {
- var conv = extractConvParams(numFilterValues, numFilters, filterSize, mappedPrefix + "/conv");
- var scale = extractScaleLayerParams(numFilters, mappedPrefix + "/scale");
- return { conv: conv, scale: scale };
- }
- function extractResidualLayerParams(numFilterValues, numFilters, filterSize, mappedPrefix, isDown) {
- if (isDown === void 0) { isDown = false; }
- var conv1 = extractConvLayerParams((isDown ? 0.5 : 1) * numFilterValues, numFilters, filterSize, mappedPrefix + "/conv1");
- var conv2 = extractConvLayerParams(numFilterValues, numFilters, filterSize, mappedPrefix + "/conv2");
- return { conv1: conv1, conv2: conv2 };
- }
- return {
- extractConvLayerParams: extractConvLayerParams,
- extractResidualLayerParams: extractResidualLayerParams
- };
-}
-function extractParams(weights) {
- var _a = tfjs_image_recognition_base_1.extractWeightsFactory(weights), extractWeights = _a.extractWeights, getRemainingWeights = _a.getRemainingWeights;
- var paramMappings = [];
- var _b = extractorsFactory(extractWeights, paramMappings), extractConvLayerParams = _b.extractConvLayerParams, extractResidualLayerParams = _b.extractResidualLayerParams;
- var conv32_down = extractConvLayerParams(4704, 32, 7, 'conv32_down');
- var conv32_1 = extractResidualLayerParams(9216, 32, 3, 'conv32_1');
- var conv32_2 = extractResidualLayerParams(9216, 32, 3, 'conv32_2');
- var conv32_3 = extractResidualLayerParams(9216, 32, 3, 'conv32_3');
- var conv64_down = extractResidualLayerParams(36864, 64, 3, 'conv64_down', true);
- var conv64_1 = extractResidualLayerParams(36864, 64, 3, 'conv64_1');
- var conv64_2 = extractResidualLayerParams(36864, 64, 3, 'conv64_2');
- var conv64_3 = extractResidualLayerParams(36864, 64, 3, 'conv64_3');
- var conv128_down = extractResidualLayerParams(147456, 128, 3, 'conv128_down', true);
- var conv128_1 = extractResidualLayerParams(147456, 128, 3, 'conv128_1');
- var conv128_2 = extractResidualLayerParams(147456, 128, 3, 'conv128_2');
- var conv256_down = extractResidualLayerParams(589824, 256, 3, 'conv256_down', true);
- var conv256_1 = extractResidualLayerParams(589824, 256, 3, 'conv256_1');
- var conv256_2 = extractResidualLayerParams(589824, 256, 3, 'conv256_2');
- var conv256_down_out = extractResidualLayerParams(589824, 256, 3, 'conv256_down_out');
- var fc = tf.tidy(function () { return tf.transpose(tf.tensor2d(extractWeights(256 * 128), [128, 256]), [1, 0]); });
- paramMappings.push({ paramPath: "fc" });
- if (getRemainingWeights().length !== 0) {
- throw new Error("weights remaing after extract: " + getRemainingWeights().length);
- }
- var params = {
- conv32_down: conv32_down,
- conv32_1: conv32_1,
- conv32_2: conv32_2,
- conv32_3: conv32_3,
- conv64_down: conv64_down,
- conv64_1: conv64_1,
- conv64_2: conv64_2,
- conv64_3: conv64_3,
- conv128_down: conv128_down,
- conv128_1: conv128_1,
- conv128_2: conv128_2,
- conv256_down: conv256_down,
- conv256_1: conv256_1,
- conv256_2: conv256_2,
- conv256_down_out: conv256_down_out,
- fc: fc
- };
- return { params: params, paramMappings: paramMappings };
-}
-exports.extractParams = extractParams;
-//# sourceMappingURL=extractParams.js.map
\ No newline at end of file
diff --git a/build/commonjs/faceRecognitionNet/extractParams.js.map b/build/commonjs/faceRecognitionNet/extractParams.js.map
deleted file mode 100644
index c8dc262e..00000000
--- a/build/commonjs/faceRecognitionNet/extractParams.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"extractParams.js","sourceRoot":"","sources":["../../../src/faceRecognitionNet/extractParams.ts"],"names":[],"mappings":";;AAAA,0CAA4C;AAC5C,2EAAmH;AAKnH,2BAA2B,cAAsC,EAAE,aAA6B;IAE9F,6BAA6B,eAAuB,EAAE,UAAkB,EAAE,UAAkB;QAC1F,IAAM,OAAO,GAAG,cAAc,CAAC,eAAe,CAAC,CAAA;QAC/C,IAAM,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,UAAU,GAAG,UAAU,GAAG,UAAU,CAAC,CAAA;QAErE,IAAI,qCAAO,CAAC,KAAK,CAAC,EAAE;YAClB,MAAM,IAAI,KAAK,CAAC,iCAA+B,KAAK,0BAAqB,OAAO,CAAC,MAAM,sBAAiB,UAAU,sBAAiB,UAAY,CAAC,CAAA;SACjJ;QAED,OAAO,EAAE,CAAC,IAAI,CACZ,cAAM,OAAA,EAAE,CAAC,SAAS,CAChB,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,EACjE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CACb,EAHK,CAGL,CACF,CAAA;IACH,CAAC;IAED,2BACE,eAAuB,EACvB,UAAkB,EAClB,UAAkB,EAClB,YAAoB;QAGpB,IAAM,OAAO,GAAG,mBAAmB,CAAC,eAAe,EAAE,UAAU,EAAE,UAAU,CAAC,CAAA;QAC5E,IAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAA;QAEpD,aAAa,CAAC,IAAI,CAChB,EAAE,SAAS,EAAK,YAAY,aAAU,EAAE,EACxC,EAAE,SAAS,EAAK,YAAY,UAAO,EAAE,CACtC,CAAA;QAED,OAAO,EAAE,OAAO,SAAA,EAAE,IAAI,MAAA,EAAE,CAAA;IAC1B,CAAC;IAED,iCAAiC,UAAkB,EAAE,YAAoB;QAEvE,IAAM,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAA;QACvD,IAAM,MAAM,GAAG,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAA;QAEtD,aAAa,CAAC,IAAI,CAChB,EAAE,SAAS,EAAK,YAAY,aAAU,EAAE,EACxC,EAAE,SAAS,EAAK,YAAY,YAAS,EAAE,CACxC,CAAA;QAED,OAAO;YACL,OAAO,SAAA;YACP,MAAM,QAAA;SACP,CAAA;IACH,CAAC;IAED,gCACE,eAAuB,EACvB,UAAkB,EAClB,UAAkB,EAClB,YAAoB;QAGpB,IAAM,IAAI,GAAG,iBAAiB,CAAC,eAAe,EAAE,UAAU,EAAE,UAAU,EAAK,YAAY,UAAO,CAAC,CAAA;QAC/F,IAAM,KAAK,GAAG,uBAAuB,CAAC,UAAU,EAAK,YAAY,WAAQ,CAAC,CAAA;QAE1E,OAAO,EAAE,IAAI,MAAA,EAAE,KAAK,OAAA,EAAE,CAAA;IACxB,CAAC;IAED,oCACE,eAAuB,EACvB,UAAkB,EAClB,UAAkB,EAClB,YAAoB,EACpB,MAAuB;QAAvB,uBAAA,EAAA,cAAuB;QAGvB,IAAM,KAAK,GAAG,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,eAAe,EAAE,UAAU,EAAE,UAAU,EAAK,YAAY,WAAQ,CAAC,CAAA;QAC3H,IAAM,KAAK,GAAG,sBAAsB,CAAC,eAAe,EAAE,UAAU,EAAE,UAAU,EAAK,YAAY,WAAQ,CAAC,CAAA;QAEtG,OAAO,EAAE,KAAK,OAAA,EAAE,KAAK,OAAA,EAAE,CAAA;IACzB,CAAC;IAED,OAAO;QACL,sBAAsB,wBAAA;QACtB,0BAA0B,4BAAA;KAC3B,CAAA;AAEH,CAAC;AAED,uBAA8B,OAAqB;IAE3C,IAAA,iEAG4B,EAFhC,kCAAc,EACd,4CAAmB,CACa;IAElC,IAAM,aAAa,GAAmB,EAAE,CAAA;IAElC,IAAA,qDAG8C,EAFlD,kDAAsB,EACtB,0DAA0B,CACwB;IAEpD,IAAM,WAAW,GAAG,sBAAsB,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,aAAa,CAAC,CAAA;IACtE,IAAM,QAAQ,GAAG,0BAA0B,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,UAAU,CAAC,CAAA;IACpE,IAAM,QAAQ,GAAG,0BAA0B,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,UAAU,CAAC,CAAA;IACpE,IAAM,QAAQ,GAAG,0BAA0B,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,UAAU,CAAC,CAAA;IAEpE,IAAM,WAAW,GAAG,0BAA0B,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,CAAA;IACjF,IAAM,QAAQ,GAAG,0BAA0B,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,UAAU,CAAC,CAAA;IACrE,IAAM,QAAQ,GAAG,0BAA0B,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,UAAU,CAAC,CAAA;IACrE,IAAM,QAAQ,GAAG,0BAA0B,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,UAAU,CAAC,CAAA;IAErE,IAAM,YAAY,GAAG,0BAA0B,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,CAAA;IACrF,IAAM,SAAS,GAAG,0BAA0B,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,WAAW,CAAC,CAAA;IACzE,IAAM,SAAS,GAAG,0BAA0B,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,WAAW,CAAC,CAAA;IAEzE,IAAM,YAAY,GAAG,0BAA0B,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,CAAA;IACrF,IAAM,SAAS,GAAG,0BAA0B,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,WAAW,CAAC,CAAA;IACzE,IAAM,SAAS,GAAG,0BAA0B,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,WAAW,CAAC,CAAA;IACzE,IAAM,gBAAgB,GAAG,0BAA0B,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,kBAAkB,CAAC,CAAA;IAEvF,IAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAChB,cAAM,OAAA,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAxE,CAAwE,CAC/E,CAAA;IACD,aAAa,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAEvC,IAAI,mBAAmB,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;QACtC,MAAM,IAAI,KAAK,CAAC,oCAAkC,mBAAmB,EAAE,CAAC,MAAQ,CAAC,CAAA;KAClF;IAED,IAAM,MAAM,GAAG;QACb,WAAW,aAAA;QACX,QAAQ,UAAA;QACR,QAAQ,UAAA;QACR,QAAQ,UAAA;QACR,WAAW,aAAA;QACX,QAAQ,UAAA;QACR,QAAQ,UAAA;QACR,QAAQ,UAAA;QACR,YAAY,cAAA;QACZ,SAAS,WAAA;QACT,SAAS,WAAA;QACT,YAAY,cAAA;QACZ,SAAS,WAAA;QACT,SAAS,WAAA;QACT,gBAAgB,kBAAA;QAChB,EAAE,IAAA;KACH,CAAA;IAED,OAAO,EAAE,MAAM,QAAA,EAAE,aAAa,eAAA,EAAE,CAAA;AAClC,CAAC;AA9DD,sCA8DC"}
\ No newline at end of file
diff --git a/build/commonjs/faceRecognitionNet/index.d.ts b/build/commonjs/faceRecognitionNet/index.d.ts
deleted file mode 100644
index 487d6af4..00000000
--- a/build/commonjs/faceRecognitionNet/index.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import { FaceRecognitionNet } from './FaceRecognitionNet';
-export * from './FaceRecognitionNet';
-export declare function createFaceRecognitionNet(weights: Float32Array): FaceRecognitionNet;
diff --git a/build/commonjs/faceRecognitionNet/index.js b/build/commonjs/faceRecognitionNet/index.js
deleted file mode 100644
index 926218e3..00000000
--- a/build/commonjs/faceRecognitionNet/index.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tslib_1 = require("tslib");
-var FaceRecognitionNet_1 = require("./FaceRecognitionNet");
-tslib_1.__exportStar(require("./FaceRecognitionNet"), exports);
-function createFaceRecognitionNet(weights) {
- var net = new FaceRecognitionNet_1.FaceRecognitionNet();
- net.extractWeights(weights);
- return net;
-}
-exports.createFaceRecognitionNet = createFaceRecognitionNet;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/build/commonjs/faceRecognitionNet/index.js.map b/build/commonjs/faceRecognitionNet/index.js.map
deleted file mode 100644
index e150e83a..00000000
--- a/build/commonjs/faceRecognitionNet/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/faceRecognitionNet/index.ts"],"names":[],"mappings":";;;AAAA,2DAA0D;AAE1D,+DAAqC;AAErC,kCAAyC,OAAqB;IAC5D,IAAM,GAAG,GAAG,IAAI,uCAAkB,EAAE,CAAA;IACpC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;IAC3B,OAAO,GAAG,CAAA;AACZ,CAAC;AAJD,4DAIC"}
\ No newline at end of file
diff --git a/build/commonjs/faceRecognitionNet/loadQuantizedParams.d.ts b/build/commonjs/faceRecognitionNet/loadQuantizedParams.d.ts
deleted file mode 100644
index c5e1dc44..00000000
--- a/build/commonjs/faceRecognitionNet/loadQuantizedParams.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { ParamMapping } from 'tfjs-image-recognition-base';
-import { NetParams } from './types';
-export declare function loadQuantizedParams(uri: string | undefined): Promise<{
- params: NetParams;
- paramMappings: ParamMapping[];
-}>;
diff --git a/build/commonjs/faceRecognitionNet/loadQuantizedParams.js b/build/commonjs/faceRecognitionNet/loadQuantizedParams.js
deleted file mode 100644
index e726e443..00000000
--- a/build/commonjs/faceRecognitionNet/loadQuantizedParams.js
+++ /dev/null
@@ -1,85 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tslib_1 = require("tslib");
-var tfjs_image_recognition_base_1 = require("tfjs-image-recognition-base");
-var DEFAULT_MODEL_NAME = 'face_recognition_model';
-function extractorsFactory(weightMap, paramMappings) {
- var extractWeightEntry = tfjs_image_recognition_base_1.extractWeightEntryFactory(weightMap, paramMappings);
- function extractScaleLayerParams(prefix) {
- var weights = extractWeightEntry(prefix + "/scale/weights", 1);
- var biases = extractWeightEntry(prefix + "/scale/biases", 1);
- return { weights: weights, biases: biases };
- }
- function extractConvLayerParams(prefix) {
- var filters = extractWeightEntry(prefix + "/conv/filters", 4);
- var bias = extractWeightEntry(prefix + "/conv/bias", 1);
- var scale = extractScaleLayerParams(prefix);
- return { conv: { filters: filters, bias: bias }, scale: scale };
- }
- function extractResidualLayerParams(prefix) {
- return {
- conv1: extractConvLayerParams(prefix + "/conv1"),
- conv2: extractConvLayerParams(prefix + "/conv2")
- };
- }
- return {
- extractConvLayerParams: extractConvLayerParams,
- extractResidualLayerParams: extractResidualLayerParams
- };
-}
-function loadQuantizedParams(uri) {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var weightMap, paramMappings, _a, extractConvLayerParams, extractResidualLayerParams, conv32_down, conv32_1, conv32_2, conv32_3, conv64_down, conv64_1, conv64_2, conv64_3, conv128_down, conv128_1, conv128_2, conv256_down, conv256_1, conv256_2, conv256_down_out, fc, params;
- return tslib_1.__generator(this, function (_b) {
- switch (_b.label) {
- case 0: return [4 /*yield*/, tfjs_image_recognition_base_1.loadWeightMap(uri, DEFAULT_MODEL_NAME)];
- case 1:
- weightMap = _b.sent();
- paramMappings = [];
- _a = extractorsFactory(weightMap, paramMappings), extractConvLayerParams = _a.extractConvLayerParams, extractResidualLayerParams = _a.extractResidualLayerParams;
- conv32_down = extractConvLayerParams('conv32_down');
- conv32_1 = extractResidualLayerParams('conv32_1');
- conv32_2 = extractResidualLayerParams('conv32_2');
- conv32_3 = extractResidualLayerParams('conv32_3');
- conv64_down = extractResidualLayerParams('conv64_down');
- conv64_1 = extractResidualLayerParams('conv64_1');
- conv64_2 = extractResidualLayerParams('conv64_2');
- conv64_3 = extractResidualLayerParams('conv64_3');
- conv128_down = extractResidualLayerParams('conv128_down');
- conv128_1 = extractResidualLayerParams('conv128_1');
- conv128_2 = extractResidualLayerParams('conv128_2');
- conv256_down = extractResidualLayerParams('conv256_down');
- conv256_1 = extractResidualLayerParams('conv256_1');
- conv256_2 = extractResidualLayerParams('conv256_2');
- conv256_down_out = extractResidualLayerParams('conv256_down_out');
- fc = weightMap['fc'];
- paramMappings.push({ originalPath: 'fc', paramPath: 'fc' });
- if (!tfjs_image_recognition_base_1.isTensor2D(fc)) {
- throw new Error("expected weightMap[fc] to be a Tensor2D, instead have " + fc);
- }
- params = {
- conv32_down: conv32_down,
- conv32_1: conv32_1,
- conv32_2: conv32_2,
- conv32_3: conv32_3,
- conv64_down: conv64_down,
- conv64_1: conv64_1,
- conv64_2: conv64_2,
- conv64_3: conv64_3,
- conv128_down: conv128_down,
- conv128_1: conv128_1,
- conv128_2: conv128_2,
- conv256_down: conv256_down,
- conv256_1: conv256_1,
- conv256_2: conv256_2,
- conv256_down_out: conv256_down_out,
- fc: fc
- };
- tfjs_image_recognition_base_1.disposeUnusedWeightTensors(weightMap, paramMappings);
- return [2 /*return*/, { params: params, paramMappings: paramMappings }];
- }
- });
- });
-}
-exports.loadQuantizedParams = loadQuantizedParams;
-//# sourceMappingURL=loadQuantizedParams.js.map
\ No newline at end of file
diff --git a/build/commonjs/faceRecognitionNet/loadQuantizedParams.js.map b/build/commonjs/faceRecognitionNet/loadQuantizedParams.js.map
deleted file mode 100644
index 0bbd9841..00000000
--- a/build/commonjs/faceRecognitionNet/loadQuantizedParams.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"loadQuantizedParams.js","sourceRoot":"","sources":["../../../src/faceRecognitionNet/loadQuantizedParams.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/build/commonjs/faceRecognitionNet/residualLayer.d.ts b/build/commonjs/faceRecognitionNet/residualLayer.d.ts
deleted file mode 100644
index 1656e0a0..00000000
--- a/build/commonjs/faceRecognitionNet/residualLayer.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { ResidualLayerParams } from './types';
-export declare function residual(x: tf.Tensor4D, params: ResidualLayerParams): tf.Tensor4D;
-export declare function residualDown(x: tf.Tensor4D, params: ResidualLayerParams): tf.Tensor4D;
diff --git a/build/commonjs/faceRecognitionNet/residualLayer.js b/build/commonjs/faceRecognitionNet/residualLayer.js
deleted file mode 100644
index 04c60b23..00000000
--- a/build/commonjs/faceRecognitionNet/residualLayer.js
+++ /dev/null
@@ -1,36 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tf = require("@tensorflow/tfjs-core");
-var convLayer_1 = require("./convLayer");
-function residual(x, params) {
- var out = convLayer_1.conv(x, params.conv1);
- out = convLayer_1.convNoRelu(out, params.conv2);
- out = tf.add(out, x);
- out = tf.relu(out);
- return out;
-}
-exports.residual = residual;
-function residualDown(x, params) {
- var out = convLayer_1.convDown(x, params.conv1);
- out = convLayer_1.convNoRelu(out, params.conv2);
- var pooled = tf.avgPool(x, 2, 2, 'valid');
- var zeros = tf.zeros(pooled.shape);
- var isPad = pooled.shape[3] !== out.shape[3];
- var isAdjustShape = pooled.shape[1] !== out.shape[1] || pooled.shape[2] !== out.shape[2];
- if (isAdjustShape) {
- var padShapeX = out.shape.slice();
- padShapeX[1] = 1;
- var zerosW = tf.zeros(padShapeX);
- out = tf.concat([out, zerosW], 1);
- var padShapeY = out.shape.slice();
- padShapeY[2] = 1;
- var zerosH = tf.zeros(padShapeY);
- out = tf.concat([out, zerosH], 2);
- }
- pooled = isPad ? tf.concat([pooled, zeros], 3) : pooled;
- out = tf.add(pooled, out);
- out = tf.relu(out);
- return out;
-}
-exports.residualDown = residualDown;
-//# sourceMappingURL=residualLayer.js.map
\ No newline at end of file
diff --git a/build/commonjs/faceRecognitionNet/residualLayer.js.map b/build/commonjs/faceRecognitionNet/residualLayer.js.map
deleted file mode 100644
index 8a5fca7d..00000000
--- a/build/commonjs/faceRecognitionNet/residualLayer.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"residualLayer.js","sourceRoot":"","sources":["../../../src/faceRecognitionNet/residualLayer.ts"],"names":[],"mappings":";;AAAA,0CAA4C;AAE5C,yCAAyD;AAGzD,kBAAyB,CAAc,EAAE,MAA2B;IAClE,IAAI,GAAG,GAAG,gBAAI,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;IAC/B,GAAG,GAAG,sBAAU,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;IACnC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;IACpB,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAClB,OAAO,GAAG,CAAA;AACZ,CAAC;AAND,4BAMC;AAED,sBAA6B,CAAc,EAAE,MAA2B;IACtE,IAAI,GAAG,GAAG,oBAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;IACnC,GAAG,GAAG,sBAAU,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;IAEnC,IAAI,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAgB,CAAA;IACxD,IAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAa,MAAM,CAAC,KAAK,CAAC,CAAA;IAChD,IAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC9C,IAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAE1F,IAAI,aAAa,EAAE;QACjB,IAAM,SAAS,GAAO,GAAG,CAAC,KAAK,QAAqC,CAAA;QACpE,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QAChB,IAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAa,SAAS,CAAC,CAAA;QAC9C,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;QAEjC,IAAM,SAAS,GAAO,GAAG,CAAC,KAAK,QAAqC,CAAA;QACpE,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QAChB,IAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAa,SAAS,CAAC,CAAA;QAC9C,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;KAClC;IAED,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;IACvD,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAgB,CAAA;IAExC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAClB,OAAO,GAAG,CAAA;AACZ,CAAC;AA1BD,oCA0BC"}
\ No newline at end of file
diff --git a/build/commonjs/faceRecognitionNet/scaleLayer.d.ts b/build/commonjs/faceRecognitionNet/scaleLayer.d.ts
deleted file mode 100644
index 07a866ea..00000000
--- a/build/commonjs/faceRecognitionNet/scaleLayer.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { ScaleLayerParams } from './types';
-export declare function scale(x: tf.Tensor4D, params: ScaleLayerParams): tf.Tensor4D;
diff --git a/build/commonjs/faceRecognitionNet/scaleLayer.js b/build/commonjs/faceRecognitionNet/scaleLayer.js
deleted file mode 100644
index e00e7958..00000000
--- a/build/commonjs/faceRecognitionNet/scaleLayer.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tf = require("@tensorflow/tfjs-core");
-function scale(x, params) {
- return tf.add(tf.mul(x, params.weights), params.biases);
-}
-exports.scale = scale;
-//# sourceMappingURL=scaleLayer.js.map
\ No newline at end of file
diff --git a/build/commonjs/faceRecognitionNet/scaleLayer.js.map b/build/commonjs/faceRecognitionNet/scaleLayer.js.map
deleted file mode 100644
index c451368d..00000000
--- a/build/commonjs/faceRecognitionNet/scaleLayer.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"scaleLayer.js","sourceRoot":"","sources":["../../../src/faceRecognitionNet/scaleLayer.ts"],"names":[],"mappings":";;AAAA,0CAA4C;AAI5C,eAAsB,CAAc,EAAE,MAAwB;IAC5D,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;AACzD,CAAC;AAFD,sBAEC"}
\ No newline at end of file
diff --git a/build/commonjs/faceRecognitionNet/types.d.ts b/build/commonjs/faceRecognitionNet/types.d.ts
deleted file mode 100644
index 8f3446d4..00000000
--- a/build/commonjs/faceRecognitionNet/types.d.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { ConvParams } from 'tfjs-tiny-yolov2';
-export declare type ScaleLayerParams = {
- weights: tf.Tensor1D;
- biases: tf.Tensor1D;
-};
-export declare type ResidualLayerParams = {
- conv1: ConvLayerParams;
- conv2: ConvLayerParams;
-};
-export declare type ConvLayerParams = {
- conv: ConvParams;
- scale: ScaleLayerParams;
-};
-export declare type NetParams = {
- conv32_down: ConvLayerParams;
- conv32_1: ResidualLayerParams;
- conv32_2: ResidualLayerParams;
- conv32_3: ResidualLayerParams;
- conv64_down: ResidualLayerParams;
- conv64_1: ResidualLayerParams;
- conv64_2: ResidualLayerParams;
- conv64_3: ResidualLayerParams;
- conv128_down: ResidualLayerParams;
- conv128_1: ResidualLayerParams;
- conv128_2: ResidualLayerParams;
- conv256_down: ResidualLayerParams;
- conv256_1: ResidualLayerParams;
- conv256_2: ResidualLayerParams;
- conv256_down_out: ResidualLayerParams;
- fc: tf.Tensor2D;
-};
diff --git a/build/commonjs/faceRecognitionNet/types.js b/build/commonjs/faceRecognitionNet/types.js
deleted file mode 100644
index 11e638d1..00000000
--- a/build/commonjs/faceRecognitionNet/types.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-//# sourceMappingURL=types.js.map
\ No newline at end of file
diff --git a/build/commonjs/faceRecognitionNet/types.js.map b/build/commonjs/faceRecognitionNet/types.js.map
deleted file mode 100644
index 3e899768..00000000
--- a/build/commonjs/faceRecognitionNet/types.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/faceRecognitionNet/types.ts"],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/build/commonjs/globalApi/ComposableTask.d.ts b/build/commonjs/globalApi/ComposableTask.d.ts
deleted file mode 100644
index b7203e33..00000000
--- a/build/commonjs/globalApi/ComposableTask.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-export declare class ComposableTask {
- then(onfulfilled: (value: T) => T | PromiseLike): Promise;
- run(): Promise;
-}
diff --git a/build/commonjs/globalApi/ComposableTask.js b/build/commonjs/globalApi/ComposableTask.js
deleted file mode 100644
index 7c111ee7..00000000
--- a/build/commonjs/globalApi/ComposableTask.js
+++ /dev/null
@@ -1,30 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tslib_1 = require("tslib");
-var ComposableTask = /** @class */ (function () {
- function ComposableTask() {
- }
- ComposableTask.prototype.then = function (onfulfilled) {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var _a;
- return tslib_1.__generator(this, function (_b) {
- switch (_b.label) {
- case 0:
- _a = onfulfilled;
- return [4 /*yield*/, this.run()];
- case 1: return [2 /*return*/, _a.apply(void 0, [_b.sent()])];
- }
- });
- });
- };
- ComposableTask.prototype.run = function () {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- return tslib_1.__generator(this, function (_a) {
- throw new Error('ComposableTask - run is not implemented');
- });
- });
- };
- return ComposableTask;
-}());
-exports.ComposableTask = ComposableTask;
-//# sourceMappingURL=ComposableTask.js.map
\ No newline at end of file
diff --git a/build/commonjs/globalApi/ComposableTask.js.map b/build/commonjs/globalApi/ComposableTask.js.map
deleted file mode 100644
index 97bdd610..00000000
--- a/build/commonjs/globalApi/ComposableTask.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ComposableTask.js","sourceRoot":"","sources":["../../../src/globalApi/ComposableTask.ts"],"names":[],"mappings":";;;AAAA;IAAA;IAWA,CAAC;IATc,6BAAI,GAAjB,UACE,WAA6C;;;;;;wBAEtC,KAAA,WAAW,CAAA;wBAAC,qBAAM,IAAI,CAAC,GAAG,EAAE,EAAA;4BAAnC,sBAAO,kBAAY,SAAgB,EAAC,EAAA;;;;KACrC;IAEY,4BAAG,GAAhB;;;gBACE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;;;KAC3D;IACH,qBAAC;AAAD,CAAC,AAXD,IAWC;AAXY,wCAAc"}
\ No newline at end of file
diff --git a/build/commonjs/globalApi/ComputeFaceDescriptorsTasks.d.ts b/build/commonjs/globalApi/ComputeFaceDescriptorsTasks.d.ts
deleted file mode 100644
index 702d2e34..00000000
--- a/build/commonjs/globalApi/ComputeFaceDescriptorsTasks.d.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import { TNetInput } from 'tfjs-image-recognition-base';
-import { FaceDetectionWithLandmarks } from '../classes/FaceDetectionWithLandmarks';
-import { FullFaceDescription } from '../classes/FullFaceDescription';
-import { ComposableTask } from './ComposableTask';
-export declare class ComputeFaceDescriptorsTaskBase extends ComposableTask {
- protected detectFaceLandmarksTask: ComposableTask | Promise;
- protected input: TNetInput;
- constructor(detectFaceLandmarksTask: ComposableTask | Promise, input: TNetInput);
-}
-export declare class ComputeAllFaceDescriptorsTask extends ComputeFaceDescriptorsTaskBase {
- run(): Promise;
-}
-export declare class ComputeSingleFaceDescriptorTask extends ComputeFaceDescriptorsTaskBase {
- run(): Promise;
-}
diff --git a/build/commonjs/globalApi/ComputeFaceDescriptorsTasks.js b/build/commonjs/globalApi/ComputeFaceDescriptorsTasks.js
deleted file mode 100644
index 5a2b52de..00000000
--- a/build/commonjs/globalApi/ComputeFaceDescriptorsTasks.js
+++ /dev/null
@@ -1,92 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tslib_1 = require("tslib");
-var FullFaceDescription_1 = require("../classes/FullFaceDescription");
-var dom_1 = require("../dom");
-var ComposableTask_1 = require("./ComposableTask");
-var nets_1 = require("./nets");
-var ComputeFaceDescriptorsTaskBase = /** @class */ (function (_super) {
- tslib_1.__extends(ComputeFaceDescriptorsTaskBase, _super);
- function ComputeFaceDescriptorsTaskBase(detectFaceLandmarksTask, input) {
- var _this = _super.call(this) || this;
- _this.detectFaceLandmarksTask = detectFaceLandmarksTask;
- _this.input = input;
- return _this;
- }
- return ComputeFaceDescriptorsTaskBase;
-}(ComposableTask_1.ComposableTask));
-exports.ComputeFaceDescriptorsTaskBase = ComputeFaceDescriptorsTaskBase;
-var ComputeAllFaceDescriptorsTask = /** @class */ (function (_super) {
- tslib_1.__extends(ComputeAllFaceDescriptorsTask, _super);
- function ComputeAllFaceDescriptorsTask() {
- return _super !== null && _super.apply(this, arguments) || this;
- }
- ComputeAllFaceDescriptorsTask.prototype.run = function () {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var _this = this;
- var facesWithLandmarks, alignedFaceCanvases;
- return tslib_1.__generator(this, function (_a) {
- switch (_a.label) {
- case 0: return [4 /*yield*/, this.detectFaceLandmarksTask];
- case 1:
- facesWithLandmarks = _a.sent();
- return [4 /*yield*/, dom_1.extractFaces(this.input, facesWithLandmarks.map(function (_a) {
- var landmarks = _a.landmarks;
- return landmarks.align();
- }))];
- case 2:
- alignedFaceCanvases = _a.sent();
- return [4 /*yield*/, Promise.all(facesWithLandmarks.map(function (_a, i) {
- var detection = _a.detection, landmarks = _a.landmarks;
- return tslib_1.__awaiter(_this, void 0, void 0, function () {
- var descriptor;
- return tslib_1.__generator(this, function (_b) {
- switch (_b.label) {
- case 0: return [4 /*yield*/, nets_1.nets.faceRecognitionNet.computeFaceDescriptor(alignedFaceCanvases[i])];
- case 1:
- descriptor = _b.sent();
- return [2 /*return*/, new FullFaceDescription_1.FullFaceDescription(detection, landmarks, descriptor)];
- }
- });
- });
- }))];
- case 3: return [2 /*return*/, _a.sent()];
- }
- });
- });
- };
- return ComputeAllFaceDescriptorsTask;
-}(ComputeFaceDescriptorsTaskBase));
-exports.ComputeAllFaceDescriptorsTask = ComputeAllFaceDescriptorsTask;
-var ComputeSingleFaceDescriptorTask = /** @class */ (function (_super) {
- tslib_1.__extends(ComputeSingleFaceDescriptorTask, _super);
- function ComputeSingleFaceDescriptorTask() {
- return _super !== null && _super.apply(this, arguments) || this;
- }
- ComputeSingleFaceDescriptorTask.prototype.run = function () {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var detectionWithLandmarks, detection, landmarks, alignedRect, alignedFaceCanvas, descriptor;
- return tslib_1.__generator(this, function (_a) {
- switch (_a.label) {
- case 0: return [4 /*yield*/, this.detectFaceLandmarksTask];
- case 1:
- detectionWithLandmarks = _a.sent();
- if (!detectionWithLandmarks) {
- return [2 /*return*/];
- }
- detection = detectionWithLandmarks.detection, landmarks = detectionWithLandmarks.landmarks, alignedRect = detectionWithLandmarks.alignedRect;
- return [4 /*yield*/, dom_1.extractFaces(this.input, [alignedRect])];
- case 2:
- alignedFaceCanvas = (_a.sent())[0];
- return [4 /*yield*/, nets_1.nets.faceRecognitionNet.computeFaceDescriptor(alignedFaceCanvas)];
- case 3:
- descriptor = _a.sent();
- return [2 /*return*/, new FullFaceDescription_1.FullFaceDescription(detection, landmarks, descriptor)];
- }
- });
- });
- };
- return ComputeSingleFaceDescriptorTask;
-}(ComputeFaceDescriptorsTaskBase));
-exports.ComputeSingleFaceDescriptorTask = ComputeSingleFaceDescriptorTask;
-//# sourceMappingURL=ComputeFaceDescriptorsTasks.js.map
\ No newline at end of file
diff --git a/build/commonjs/globalApi/ComputeFaceDescriptorsTasks.js.map b/build/commonjs/globalApi/ComputeFaceDescriptorsTasks.js.map
deleted file mode 100644
index a37b6c37..00000000
--- a/build/commonjs/globalApi/ComputeFaceDescriptorsTasks.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ComputeFaceDescriptorsTasks.js","sourceRoot":"","sources":["../../../src/globalApi/ComputeFaceDescriptorsTasks.ts"],"names":[],"mappings":";;;AAGA,sEAAqE;AACrE,8BAAsC;AACtC,mDAAkD;AAClD,+BAA8B;AAE9B;IAA4F,0DAAuB;IACjH,wCACY,uBAA+G,EAC/G,KAAgB;QAF5B,YAIE,iBAAO,SACR;QAJW,6BAAuB,GAAvB,uBAAuB,CAAwF;QAC/G,WAAK,GAAL,KAAK,CAAW;;IAG5B,CAAC;IACH,qCAAC;AAAD,CAAC,AAPD,CAA4F,+BAAc,GAOzG;AAPY,wEAA8B;AAS3C;IAAmD,yDAAmF;IAAtI;;IAeA,CAAC;IAbc,2CAAG,GAAhB;;;;;;4BAE6B,qBAAM,IAAI,CAAC,uBAAuB,EAAA;;wBAAvD,kBAAkB,GAAG,SAAkC;wBACjC,qBAAM,kBAAY,CAC5C,IAAI,CAAC,KAAK,EACV,kBAAkB,CAAC,GAAG,CAAC,UAAC,EAAa;oCAAX,wBAAS;gCAAO,OAAA,SAAS,CAAC,KAAK,EAAE;4BAAjB,CAAiB,CAAC,CAC7D,EAAA;;wBAHK,mBAAmB,GAAG,SAG3B;wBAEM,qBAAM,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAO,EAAwB,EAAE,CAAC;oCAAzB,wBAAS,EAAE,wBAAS;;;;;oDACxD,qBAAM,WAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAAA;;gDAAxF,UAAU,GAAG,SAA2F;gDAC9G,sBAAO,IAAI,yCAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,EAAA;;;;6BACjE,CAAC,CAAC,EAAA;4BAHH,sBAAO,SAGJ,EAAA;;;;KACJ;IACH,oCAAC;AAAD,CAAC,AAfD,CAAmD,8BAA8B,GAehF;AAfY,sEAA6B;AAiB1C;IAAqD,2DAAuG;IAA5J;;IAeA,CAAC;IAbc,6CAAG,GAAhB;;;;;4BAEiC,qBAAM,IAAI,CAAC,uBAAuB,EAAA;;wBAA3D,sBAAsB,GAAG,SAAkC;wBACjE,IAAI,CAAC,sBAAsB,EAAE;4BAC3B,sBAAM;yBACP;wBAEO,SAAS,GAA6B,sBAAsB,UAAnD,EAAE,SAAS,GAAkB,sBAAsB,UAAxC,EAAE,WAAW,GAAK,sBAAsB,YAA3B,CAA2B;wBACzC,qBAAM,kBAAY,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,WAAW,CAAC,CAAC,EAAA;;wBAAlE,iBAAiB,GAAG,CAAC,SAA6C,CAAC,CAAC,CAAC,CAAC;wBACzD,qBAAM,WAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,EAAA;;wBAAnF,UAAU,GAAG,SAAsF;wBAEzG,sBAAO,IAAI,yCAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,EAAA;;;;KACjE;IACH,sCAAC;AAAD,CAAC,AAfD,CAAqD,8BAA8B,GAelF;AAfY,0EAA+B"}
\ No newline at end of file
diff --git a/build/commonjs/globalApi/DetectFaceLandmarksTasks.d.ts b/build/commonjs/globalApi/DetectFaceLandmarksTasks.d.ts
deleted file mode 100644
index 2bcb6adf..00000000
--- a/build/commonjs/globalApi/DetectFaceLandmarksTasks.d.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-import { TNetInput } from 'tfjs-image-recognition-base';
-import { FaceDetection } from '../classes/FaceDetection';
-import { FaceDetectionWithLandmarks } from '../classes/FaceDetectionWithLandmarks';
-import { FaceLandmark68Net } from '../faceLandmarkNet/FaceLandmark68Net';
-import { FaceLandmark68TinyNet } from '../faceLandmarkNet/FaceLandmark68TinyNet';
-import { ComposableTask } from './ComposableTask';
-import { ComputeAllFaceDescriptorsTask, ComputeSingleFaceDescriptorTask } from './ComputeFaceDescriptorsTasks';
-export declare class DetectFaceLandmarksTaskBase extends ComposableTask {
- protected detectFacesTask: ComposableTask | Promise;
- protected input: TNetInput;
- protected useTinyLandmarkNet: boolean;
- constructor(detectFacesTask: ComposableTask | Promise, input: TNetInput, useTinyLandmarkNet: boolean);
- protected readonly landmarkNet: FaceLandmark68Net | FaceLandmark68TinyNet;
-}
-export declare class DetectAllFaceLandmarksTask extends DetectFaceLandmarksTaskBase {
- run(): Promise;
- withFaceDescriptors(): ComputeAllFaceDescriptorsTask;
-}
-export declare class DetectSingleFaceLandmarksTask extends DetectFaceLandmarksTaskBase {
- run(): Promise;
- withFaceDescriptor(): ComputeSingleFaceDescriptorTask;
-}
diff --git a/build/commonjs/globalApi/DetectFaceLandmarksTasks.js b/build/commonjs/globalApi/DetectFaceLandmarksTasks.js
deleted file mode 100644
index 0de05688..00000000
--- a/build/commonjs/globalApi/DetectFaceLandmarksTasks.js
+++ /dev/null
@@ -1,96 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tslib_1 = require("tslib");
-var FaceDetectionWithLandmarks_1 = require("../classes/FaceDetectionWithLandmarks");
-var dom_1 = require("../dom");
-var ComposableTask_1 = require("./ComposableTask");
-var ComputeFaceDescriptorsTasks_1 = require("./ComputeFaceDescriptorsTasks");
-var nets_1 = require("./nets");
-var DetectFaceLandmarksTaskBase = /** @class */ (function (_super) {
- tslib_1.__extends(DetectFaceLandmarksTaskBase, _super);
- function DetectFaceLandmarksTaskBase(detectFacesTask, input, useTinyLandmarkNet) {
- var _this = _super.call(this) || this;
- _this.detectFacesTask = detectFacesTask;
- _this.input = input;
- _this.useTinyLandmarkNet = useTinyLandmarkNet;
- return _this;
- }
- Object.defineProperty(DetectFaceLandmarksTaskBase.prototype, "landmarkNet", {
- get: function () {
- return this.useTinyLandmarkNet
- ? nets_1.nets.faceLandmark68TinyNet
- : nets_1.nets.faceLandmark68Net;
- },
- enumerable: true,
- configurable: true
- });
- return DetectFaceLandmarksTaskBase;
-}(ComposableTask_1.ComposableTask));
-exports.DetectFaceLandmarksTaskBase = DetectFaceLandmarksTaskBase;
-var DetectAllFaceLandmarksTask = /** @class */ (function (_super) {
- tslib_1.__extends(DetectAllFaceLandmarksTask, _super);
- function DetectAllFaceLandmarksTask() {
- return _super !== null && _super.apply(this, arguments) || this;
- }
- DetectAllFaceLandmarksTask.prototype.run = function () {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var _this = this;
- var detections, faceCanvases, faceLandmarksByFace;
- return tslib_1.__generator(this, function (_a) {
- switch (_a.label) {
- case 0: return [4 /*yield*/, this.detectFacesTask];
- case 1:
- detections = _a.sent();
- return [4 /*yield*/, dom_1.extractFaces(this.input, detections)];
- case 2:
- faceCanvases = _a.sent();
- return [4 /*yield*/, Promise.all(faceCanvases.map(function (canvas) { return _this.landmarkNet.detectLandmarks(canvas); }))];
- case 3:
- faceLandmarksByFace = _a.sent();
- return [2 /*return*/, detections.map(function (detection, i) {
- return new FaceDetectionWithLandmarks_1.FaceDetectionWithLandmarks(detection, faceLandmarksByFace[i]);
- })];
- }
- });
- });
- };
- DetectAllFaceLandmarksTask.prototype.withFaceDescriptors = function () {
- return new ComputeFaceDescriptorsTasks_1.ComputeAllFaceDescriptorsTask(this, this.input);
- };
- return DetectAllFaceLandmarksTask;
-}(DetectFaceLandmarksTaskBase));
-exports.DetectAllFaceLandmarksTask = DetectAllFaceLandmarksTask;
-var DetectSingleFaceLandmarksTask = /** @class */ (function (_super) {
- tslib_1.__extends(DetectSingleFaceLandmarksTask, _super);
- function DetectSingleFaceLandmarksTask() {
- return _super !== null && _super.apply(this, arguments) || this;
- }
- DetectSingleFaceLandmarksTask.prototype.run = function () {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var detection, faceCanvas, _a, _b;
- return tslib_1.__generator(this, function (_c) {
- switch (_c.label) {
- case 0: return [4 /*yield*/, this.detectFacesTask];
- case 1:
- detection = _c.sent();
- if (!detection) {
- return [2 /*return*/];
- }
- return [4 /*yield*/, dom_1.extractFaces(this.input, [detection])];
- case 2:
- faceCanvas = (_c.sent())[0];
- _a = FaceDetectionWithLandmarks_1.FaceDetectionWithLandmarks.bind;
- _b = [void 0, detection];
- return [4 /*yield*/, this.landmarkNet.detectLandmarks(faceCanvas)];
- case 3: return [2 /*return*/, new (_a.apply(FaceDetectionWithLandmarks_1.FaceDetectionWithLandmarks, _b.concat([_c.sent()])))()];
- }
- });
- });
- };
- DetectSingleFaceLandmarksTask.prototype.withFaceDescriptor = function () {
- return new ComputeFaceDescriptorsTasks_1.ComputeSingleFaceDescriptorTask(this, this.input);
- };
- return DetectSingleFaceLandmarksTask;
-}(DetectFaceLandmarksTaskBase));
-exports.DetectSingleFaceLandmarksTask = DetectSingleFaceLandmarksTask;
-//# sourceMappingURL=DetectFaceLandmarksTasks.js.map
\ No newline at end of file
diff --git a/build/commonjs/globalApi/DetectFaceLandmarksTasks.js.map b/build/commonjs/globalApi/DetectFaceLandmarksTasks.js.map
deleted file mode 100644
index 8c77ef98..00000000
--- a/build/commonjs/globalApi/DetectFaceLandmarksTasks.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"DetectFaceLandmarksTasks.js","sourceRoot":"","sources":["../../../src/globalApi/DetectFaceLandmarksTasks.ts"],"names":[],"mappings":";;;AAGA,oFAAmF;AAEnF,8BAAsC;AAGtC,mDAAkD;AAClD,6EAA+G;AAC/G,+BAA8B;AAE9B;IAAoF,uDAA0B;IAC5G,qCACY,eAAuF,EACvF,KAAgB,EAChB,kBAA2B;QAHvC,YAKE,iBAAO,SACR;QALW,qBAAe,GAAf,eAAe,CAAwE;QACvF,WAAK,GAAL,KAAK,CAAW;QAChB,wBAAkB,GAAlB,kBAAkB,CAAS;;IAGvC,CAAC;IAED,sBAAc,oDAAW;aAAzB;YACE,OAAO,IAAI,CAAC,kBAAkB;gBAC5B,CAAC,CAAC,WAAI,CAAC,qBAAqB;gBAC5B,CAAC,CAAC,WAAI,CAAC,iBAAiB,CAAA;QAC5B,CAAC;;;OAAA;IACH,kCAAC;AAAD,CAAC,AAdD,CAAoF,+BAAc,GAcjG;AAdY,kEAA2B;AAgBxC;IAAgD,sDAA0E;IAA1H;;IAmBA,CAAC;IAjBc,wCAAG,GAAhB;;;;;;4BAEqB,qBAAM,IAAI,CAAC,eAAe,EAAA;;wBAAvC,UAAU,GAAG,SAA0B;wBACxB,qBAAM,kBAAY,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,EAAA;;wBAAzD,YAAY,GAAG,SAA0C;wBAEnC,qBAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAC5D,UAAA,MAAM,IAAI,OAAA,KAAI,CAAC,WAAW,CAAC,eAAe,CAAC,MAAM,CAAC,EAAxC,CAAwC,CACnD,CAAC,EAAA;;wBAFI,mBAAmB,GAAG,SAEL;wBAEvB,sBAAO,UAAU,CAAC,GAAG,CAAC,UAAC,SAAS,EAAE,CAAC;gCACjC,OAAA,IAAI,uDAA0B,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;4BAAjE,CAAiE,CAClE,EAAA;;;;KACF;IAED,wDAAmB,GAAnB;QACE,OAAO,IAAI,2DAA6B,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;IAC5D,CAAC;IACH,iCAAC;AAAD,CAAC,AAnBD,CAAgD,2BAA2B,GAmB1E;AAnBY,gEAA0B;AAqBvC;IAAmD,yDAA8F;IAAjJ;;IAmBA,CAAC;IAjBc,2CAAG,GAAhB;;;;;4BAEoB,qBAAM,IAAI,CAAC,eAAe,EAAA;;wBAAtC,SAAS,GAAG,SAA0B;wBAC5C,IAAI,CAAC,SAAS,EAAE;4BACd,sBAAM;yBACP;wBAEmB,qBAAM,kBAAY,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,CAAC,EAAA;;wBAAzD,UAAU,GAAG,CAAC,SAA2C,CAAC,CAAC,CAAC,CAAC;6BACxD,uDAA0B;sCACnC,SAAS;wBACT,qBAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,UAAU,CAAC,EAAA;4BAFpD,sBAAO,cAAI,uDAA0B,aAEnC,SAAqE,MACtE,EAAA;;;;KACF;IAED,0DAAkB,GAAlB;QACE,OAAO,IAAI,6DAA+B,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;IAC9D,CAAC;IACH,oCAAC;AAAD,CAAC,AAnBD,CAAmD,2BAA2B,GAmB7E;AAnBY,sEAA6B"}
\ No newline at end of file
diff --git a/build/commonjs/globalApi/DetectFacesTasks.d.ts b/build/commonjs/globalApi/DetectFacesTasks.d.ts
deleted file mode 100644
index a0b73885..00000000
--- a/build/commonjs/globalApi/DetectFacesTasks.d.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import { TNetInput } from 'tfjs-image-recognition-base';
-import { FaceDetection } from '../classes/FaceDetection';
-import { ComposableTask } from './ComposableTask';
-import { DetectAllFaceLandmarksTask, DetectSingleFaceLandmarksTask } from './DetectFaceLandmarksTasks';
-import { FaceDetectionOptions } from './types';
-export declare class DetectFacesTaskBase extends ComposableTask {
- protected input: TNetInput;
- protected options: FaceDetectionOptions;
- constructor(input: TNetInput, options?: FaceDetectionOptions);
-}
-export declare class DetectAllFacesTask extends DetectFacesTaskBase {
- run(): Promise;
- withFaceLandmarks(useTinyLandmarkNet?: boolean): DetectAllFaceLandmarksTask;
-}
-export declare class DetectSingleFaceTask extends DetectFacesTaskBase {
- run(): Promise;
- withFaceLandmarks(useTinyLandmarkNet?: boolean): DetectSingleFaceLandmarksTask;
-}
diff --git a/build/commonjs/globalApi/DetectFacesTasks.js b/build/commonjs/globalApi/DetectFacesTasks.js
deleted file mode 100644
index 443cd2d4..00000000
--- a/build/commonjs/globalApi/DetectFacesTasks.js
+++ /dev/null
@@ -1,85 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tslib_1 = require("tslib");
-var tfjs_tiny_yolov2_1 = require("tfjs-tiny-yolov2");
-var MtcnnOptions_1 = require("../mtcnn/MtcnnOptions");
-var SsdMobilenetv1Options_1 = require("../ssdMobilenetv1/SsdMobilenetv1Options");
-var TinyFaceDetectorOptions_1 = require("../tinyFaceDetector/TinyFaceDetectorOptions");
-var ComposableTask_1 = require("./ComposableTask");
-var DetectFaceLandmarksTasks_1 = require("./DetectFaceLandmarksTasks");
-var nets_1 = require("./nets");
-var DetectFacesTaskBase = /** @class */ (function (_super) {
- tslib_1.__extends(DetectFacesTaskBase, _super);
- function DetectFacesTaskBase(input, options) {
- if (options === void 0) { options = new SsdMobilenetv1Options_1.SsdMobilenetv1Options(); }
- var _this = _super.call(this) || this;
- _this.input = input;
- _this.options = options;
- return _this;
- }
- return DetectFacesTaskBase;
-}(ComposableTask_1.ComposableTask));
-exports.DetectFacesTaskBase = DetectFacesTaskBase;
-var DetectAllFacesTask = /** @class */ (function (_super) {
- tslib_1.__extends(DetectAllFacesTask, _super);
- function DetectAllFacesTask() {
- return _super !== null && _super.apply(this, arguments) || this;
- }
- DetectAllFacesTask.prototype.run = function () {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var _a, input, options, faceDetectionFunction;
- return tslib_1.__generator(this, function (_b) {
- switch (_b.label) {
- case 0:
- _a = this, input = _a.input, options = _a.options;
- if (!(options instanceof MtcnnOptions_1.MtcnnOptions)) return [3 /*break*/, 2];
- return [4 /*yield*/, nets_1.nets.mtcnn.forward(input, options)];
- case 1: return [2 /*return*/, (_b.sent())
- .map(function (result) { return result.faceDetection; })];
- case 2:
- faceDetectionFunction = options instanceof TinyFaceDetectorOptions_1.TinyFaceDetectorOptions
- ? function (input) { return nets_1.nets.tinyFaceDetector.locateFaces(input, options); }
- : (options instanceof SsdMobilenetv1Options_1.SsdMobilenetv1Options
- ? function (input) { return nets_1.nets.ssdMobilenetv1.locateFaces(input, options); }
- : (options instanceof tfjs_tiny_yolov2_1.TinyYolov2Options
- ? function (input) { return nets_1.nets.tinyYolov2.locateFaces(input, options); }
- : null));
- if (!faceDetectionFunction) {
- throw new Error('detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | MtcnnOptions | TinyYolov2Options');
- }
- return [2 /*return*/, faceDetectionFunction(input)];
- }
- });
- });
- };
- DetectAllFacesTask.prototype.withFaceLandmarks = function (useTinyLandmarkNet) {
- if (useTinyLandmarkNet === void 0) { useTinyLandmarkNet = false; }
- return new DetectFaceLandmarksTasks_1.DetectAllFaceLandmarksTask(this, this.input, useTinyLandmarkNet);
- };
- return DetectAllFacesTask;
-}(DetectFacesTaskBase));
-exports.DetectAllFacesTask = DetectAllFacesTask;
-var DetectSingleFaceTask = /** @class */ (function (_super) {
- tslib_1.__extends(DetectSingleFaceTask, _super);
- function DetectSingleFaceTask() {
- return _super !== null && _super.apply(this, arguments) || this;
- }
- DetectSingleFaceTask.prototype.run = function () {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- return tslib_1.__generator(this, function (_a) {
- switch (_a.label) {
- case 0: return [4 /*yield*/, new DetectAllFacesTask(this.input, this.options)];
- case 1: return [2 /*return*/, (_a.sent())
- .sort(function (f1, f2) { return f1.score - f2.score; })[0]];
- }
- });
- });
- };
- DetectSingleFaceTask.prototype.withFaceLandmarks = function (useTinyLandmarkNet) {
- if (useTinyLandmarkNet === void 0) { useTinyLandmarkNet = false; }
- return new DetectFaceLandmarksTasks_1.DetectSingleFaceLandmarksTask(this, this.input, useTinyLandmarkNet);
- };
- return DetectSingleFaceTask;
-}(DetectFacesTaskBase));
-exports.DetectSingleFaceTask = DetectSingleFaceTask;
-//# sourceMappingURL=DetectFacesTasks.js.map
\ No newline at end of file
diff --git a/build/commonjs/globalApi/DetectFacesTasks.js.map b/build/commonjs/globalApi/DetectFacesTasks.js.map
deleted file mode 100644
index 8cd81df5..00000000
--- a/build/commonjs/globalApi/DetectFacesTasks.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"DetectFacesTasks.js","sourceRoot":"","sources":["../../../src/globalApi/DetectFacesTasks.ts"],"names":[],"mappings":";;;AACA,qDAAqD;AAGrD,sDAAqD;AACrD,iFAAgF;AAChF,uFAAsF;AACtF,mDAAkD;AAClD,uEAAuG;AACvG,+BAA8B;AAG9B;IAAkD,+CAAuB;IACvE,6BACY,KAAgB,EAChB,OAA2D;QAA3D,wBAAA,EAAA,cAAoC,6CAAqB,EAAE;QAFvE,YAIE,iBAAO,SACR;QAJW,WAAK,GAAL,KAAK,CAAW;QAChB,aAAO,GAAP,OAAO,CAAoD;;IAGvE,CAAC;IACH,0BAAC;AAAD,CAAC,AAPD,CAAkD,+BAAc,GAO/D;AAPY,kDAAmB;AAShC;IAAwC,8CAAoC;IAA5E;;IAkCA,CAAC;IAhCc,gCAAG,GAAhB;;;;;;wBAEQ,KAAqB,IAAI,EAAvB,KAAK,WAAA,EAAE,OAAO,aAAA,CAAS;6BAE3B,CAAA,OAAO,YAAY,2BAAY,CAAA,EAA/B,wBAA+B;wBACzB,qBAAM,WAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,EAAA;4BAAhD,sBAAO,CAAC,SAAwC,CAAC;6BAC9C,GAAG,CAAC,UAAA,MAAM,IAAI,OAAA,MAAM,CAAC,aAAa,EAApB,CAAoB,CAAC,EAAA;;wBAGlC,qBAAqB,GAAG,OAAO,YAAY,iDAAuB;4BACtE,CAAC,CAAC,UAAC,KAAgB,IAAK,OAAA,WAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,EAAjD,CAAiD;4BACzE,CAAC,CAAC,CACA,OAAO,YAAY,6CAAqB;gCACtC,CAAC,CAAC,UAAC,KAAgB,IAAK,OAAA,WAAI,CAAC,cAAc,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,EAA/C,CAA+C;gCACvE,CAAC,CAAC,CACA,OAAO,YAAY,oCAAiB;oCAClC,CAAC,CAAC,UAAC,KAAgB,IAAK,OAAA,WAAI,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,EAA3C,CAA2C;oCACnE,CAAC,CAAC,IAAI,CACT,CACJ,CAAA;wBAEH,IAAI,CAAC,qBAAqB,EAAE;4BAC1B,MAAM,IAAI,KAAK,CAAC,qIAAqI,CAAC,CAAA;yBACvJ;wBAED,sBAAO,qBAAqB,CAAC,KAAK,CAAC,EAAA;;;;KACpC;IAED,8CAAiB,GAAjB,UAAkB,kBAAmC;QAAnC,mCAAA,EAAA,0BAAmC;QACnD,OAAO,IAAI,qDAA0B,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAA;IAC7E,CAAC;IAEH,yBAAC;AAAD,CAAC,AAlCD,CAAwC,mBAAmB,GAkC1D;AAlCY,gDAAkB;AAoC/B;IAA0C,gDAA8C;IAAxF;;IAWA,CAAC;IATc,kCAAG,GAAhB;;;;4BACU,qBAAM,IAAI,kBAAkB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,EAAA;4BAA9D,sBAAO,CAAC,SAAsD,CAAC;6BAC5D,IAAI,CAAC,UAAC,EAAE,EAAE,EAAE,IAAK,OAAA,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,EAAnB,CAAmB,CAAC,CAAC,CAAC,CAAC,EAAA;;;;KAC5C;IAED,gDAAiB,GAAjB,UAAkB,kBAAmC;QAAnC,mCAAA,EAAA,0BAAmC;QACnD,OAAO,IAAI,wDAA6B,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAA;IAChF,CAAC;IAEH,2BAAC;AAAD,CAAC,AAXD,CAA0C,mBAAmB,GAW5D;AAXY,oDAAoB"}
\ No newline at end of file
diff --git a/build/commonjs/globalApi/FaceMatcher.d.ts b/build/commonjs/globalApi/FaceMatcher.d.ts
deleted file mode 100644
index ea61bac1..00000000
--- a/build/commonjs/globalApi/FaceMatcher.d.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import { FaceMatch } from '../classes/FaceMatch';
-import { FullFaceDescription } from '../classes/FullFaceDescription';
-import { LabeledFaceDescriptors } from '../classes/LabeledFaceDescriptors';
-export declare class FaceMatcher {
- private _labeledDescriptors;
- private _distanceThreshold;
- constructor(inputs: LabeledFaceDescriptors | FullFaceDescription | Float32Array | Array, distanceThreshold?: number);
- readonly labeledDescriptors: LabeledFaceDescriptors[];
- readonly distanceThreshold: number;
- computeMeanDistance(queryDescriptor: Float32Array, descriptors: Float32Array[]): number;
- matchDescriptor(queryDescriptor: Float32Array): FaceMatch;
- findBestMatch(queryDescriptor: Float32Array): FaceMatch;
-}
diff --git a/build/commonjs/globalApi/FaceMatcher.js b/build/commonjs/globalApi/FaceMatcher.js
deleted file mode 100644
index ff975267..00000000
--- a/build/commonjs/globalApi/FaceMatcher.js
+++ /dev/null
@@ -1,64 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var FaceMatch_1 = require("../classes/FaceMatch");
-var FullFaceDescription_1 = require("../classes/FullFaceDescription");
-var LabeledFaceDescriptors_1 = require("../classes/LabeledFaceDescriptors");
-var euclideanDistance_1 = require("../euclideanDistance");
-var FaceMatcher = /** @class */ (function () {
- function FaceMatcher(inputs, distanceThreshold) {
- if (distanceThreshold === void 0) { distanceThreshold = 0.6; }
- this._distanceThreshold = distanceThreshold;
- var inputArray = Array.isArray(inputs) ? inputs : [inputs];
- if (!inputArray.length) {
- throw new Error("FaceRecognizer.constructor - expected atleast one input");
- }
- var count = 1;
- var createUniqueLabel = function () { return "person " + count++; };
- this._labeledDescriptors = inputArray.map(function (desc) {
- if (desc instanceof LabeledFaceDescriptors_1.LabeledFaceDescriptors) {
- return desc;
- }
- if (desc instanceof FullFaceDescription_1.FullFaceDescription) {
- return new LabeledFaceDescriptors_1.LabeledFaceDescriptors(createUniqueLabel(), [desc.descriptor]);
- }
- if (desc instanceof Float32Array) {
- return new LabeledFaceDescriptors_1.LabeledFaceDescriptors(createUniqueLabel(), [desc]);
- }
- throw new Error("FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | FullFaceDescription | Float32Array | Array");
- });
- }
- Object.defineProperty(FaceMatcher.prototype, "labeledDescriptors", {
- get: function () { return this._labeledDescriptors; },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(FaceMatcher.prototype, "distanceThreshold", {
- get: function () { return this._distanceThreshold; },
- enumerable: true,
- configurable: true
- });
- FaceMatcher.prototype.computeMeanDistance = function (queryDescriptor, descriptors) {
- return descriptors
- .map(function (d) { return euclideanDistance_1.euclideanDistance(d, queryDescriptor); })
- .reduce(function (d1, d2) { return d1 + d2; }, 0)
- / (descriptors.length || 1);
- };
- FaceMatcher.prototype.matchDescriptor = function (queryDescriptor) {
- var _this = this;
- return this.labeledDescriptors
- .map(function (_a) {
- var descriptors = _a.descriptors, label = _a.label;
- return new FaceMatch_1.FaceMatch(label, _this.computeMeanDistance(queryDescriptor, descriptors));
- })
- .reduce(function (best, curr) { return best.distance < curr.distance ? best : curr; });
- };
- FaceMatcher.prototype.findBestMatch = function (queryDescriptor) {
- var bestMatch = this.matchDescriptor(queryDescriptor);
- return bestMatch.distance < this.distanceThreshold
- ? bestMatch
- : new FaceMatch_1.FaceMatch('unknown', bestMatch.distance);
- };
- return FaceMatcher;
-}());
-exports.FaceMatcher = FaceMatcher;
-//# sourceMappingURL=FaceMatcher.js.map
\ No newline at end of file
diff --git a/build/commonjs/globalApi/FaceMatcher.js.map b/build/commonjs/globalApi/FaceMatcher.js.map
deleted file mode 100644
index 2a8bc76e..00000000
--- a/build/commonjs/globalApi/FaceMatcher.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"FaceMatcher.js","sourceRoot":"","sources":["../../../src/globalApi/FaceMatcher.ts"],"names":[],"mappings":";;AAAA,kDAAiD;AACjD,sEAAqE;AACrE,4EAA2E;AAC3E,0DAAyD;AAEzD;IAKE,qBACE,MAAwI,EACxI,iBAA+B;QAA/B,kCAAA,EAAA,uBAA+B;QAG/B,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAA;QAE3C,IAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;QAE5D,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAA;SAC3E;QAED,IAAI,KAAK,GAAG,CAAC,CAAA;QACb,IAAM,iBAAiB,GAAG,cAAM,OAAA,YAAU,KAAK,EAAI,EAAnB,CAAmB,CAAA;QAEnD,IAAI,CAAC,mBAAmB,GAAG,UAAU,CAAC,GAAG,CAAC,UAAC,IAAI;YAC7C,IAAI,IAAI,YAAY,+CAAsB,EAAE;gBAC1C,OAAO,IAAI,CAAA;aACZ;YAED,IAAI,IAAI,YAAY,yCAAmB,EAAE;gBACvC,OAAO,IAAI,+CAAsB,CAAC,iBAAiB,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAA;aAC1E;YAED,IAAI,IAAI,YAAY,YAAY,EAAE;gBAChC,OAAO,IAAI,+CAAsB,CAAC,iBAAiB,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;aAC/D;YAED,MAAM,IAAI,KAAK,CAAC,6LAA6L,CAAC,CAAA;QAChN,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,sBAAW,2CAAkB;aAA7B,cAA4D,OAAO,IAAI,CAAC,mBAAmB,CAAA,CAAC,CAAC;;;OAAA;IAC7F,sBAAW,0CAAiB;aAA5B,cAAyC,OAAO,IAAI,CAAC,kBAAkB,CAAA,CAAC,CAAC;;;OAAA;IAElE,yCAAmB,GAA1B,UAA2B,eAA6B,EAAE,WAA2B;QACnF,OAAO,WAAW;aACf,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,qCAAiB,CAAC,CAAC,EAAE,eAAe,CAAC,EAArC,CAAqC,CAAC;aAC/C,MAAM,CAAC,UAAC,EAAE,EAAE,EAAE,IAAK,OAAA,EAAE,GAAG,EAAE,EAAP,CAAO,EAAE,CAAC,CAAC;cAC3B,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,CAAC,CAAA;IACjC,CAAC;IAEM,qCAAe,GAAtB,UAAuB,eAA6B;QAApD,iBAOC;QANC,OAAO,IAAI,CAAC,kBAAkB;aAC3B,GAAG,CAAC,UAAC,EAAsB;gBAApB,4BAAW,EAAE,gBAAK;YAAO,OAAA,IAAI,qBAAS,CAC1C,KAAK,EACL,KAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE,WAAW,CAAC,CACzD;QAHgC,CAGhC,CAAC;aACD,MAAM,CAAC,UAAC,IAAI,EAAE,IAAI,IAAK,OAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAA3C,CAA2C,CAAC,CAAA;IACxE,CAAC;IAEM,mCAAa,GAApB,UAAqB,eAA6B;QAChD,IAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAA;QACvD,OAAO,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB;YAChD,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,IAAI,qBAAS,CAAC,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAA;IAClD,CAAC;IAEH,kBAAC;AAAD,CAAC,AAhED,IAgEC;AAhEY,kCAAW"}
\ No newline at end of file
diff --git a/build/commonjs/globalApi/allFaces.d.ts b/build/commonjs/globalApi/allFaces.d.ts
deleted file mode 100644
index 7c682877..00000000
--- a/build/commonjs/globalApi/allFaces.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { TNetInput } from 'tfjs-image-recognition-base';
-import { ITinyYolov2Options } from 'tfjs-tiny-yolov2';
-import { FullFaceDescription } from '../classes';
-import { IMtcnnOptions } from '../mtcnn/MtcnnOptions';
-export declare function allFacesSsdMobilenetv1(input: TNetInput, minConfidence?: number): Promise;
-export declare function allFacesTinyYolov2(input: TNetInput, forwardParams?: ITinyYolov2Options): Promise;
-export declare function allFacesMtcnn(input: TNetInput, forwardParams?: IMtcnnOptions): Promise;
-export declare const allFaces: typeof allFacesSsdMobilenetv1;
diff --git a/build/commonjs/globalApi/allFaces.js b/build/commonjs/globalApi/allFaces.js
deleted file mode 100644
index 3b072bcb..00000000
--- a/build/commonjs/globalApi/allFaces.js
+++ /dev/null
@@ -1,51 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tslib_1 = require("tslib");
-var tfjs_tiny_yolov2_1 = require("tfjs-tiny-yolov2");
-var MtcnnOptions_1 = require("../mtcnn/MtcnnOptions");
-var ssdMobilenetv1_1 = require("../ssdMobilenetv1");
-var detectFaces_1 = require("./detectFaces");
-// export allFaces API for backward compatibility
-function allFacesSsdMobilenetv1(input, minConfidence) {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- return tslib_1.__generator(this, function (_a) {
- switch (_a.label) {
- case 0: return [4 /*yield*/, detectFaces_1.detectAllFaces(input, new ssdMobilenetv1_1.SsdMobilenetv1Options(minConfidence ? { minConfidence: minConfidence } : {}))
- .withFaceLandmarks()
- .withFaceDescriptors()];
- case 1: return [2 /*return*/, _a.sent()];
- }
- });
- });
-}
-exports.allFacesSsdMobilenetv1 = allFacesSsdMobilenetv1;
-function allFacesTinyYolov2(input, forwardParams) {
- if (forwardParams === void 0) { forwardParams = {}; }
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- return tslib_1.__generator(this, function (_a) {
- switch (_a.label) {
- case 0: return [4 /*yield*/, detectFaces_1.detectAllFaces(input, new tfjs_tiny_yolov2_1.TinyYolov2Options(forwardParams))
- .withFaceLandmarks()
- .withFaceDescriptors()];
- case 1: return [2 /*return*/, _a.sent()];
- }
- });
- });
-}
-exports.allFacesTinyYolov2 = allFacesTinyYolov2;
-function allFacesMtcnn(input, forwardParams) {
- if (forwardParams === void 0) { forwardParams = {}; }
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- return tslib_1.__generator(this, function (_a) {
- switch (_a.label) {
- case 0: return [4 /*yield*/, detectFaces_1.detectAllFaces(input, new MtcnnOptions_1.MtcnnOptions(forwardParams))
- .withFaceLandmarks()
- .withFaceDescriptors()];
- case 1: return [2 /*return*/, _a.sent()];
- }
- });
- });
-}
-exports.allFacesMtcnn = allFacesMtcnn;
-exports.allFaces = allFacesSsdMobilenetv1;
-//# sourceMappingURL=allFaces.js.map
\ No newline at end of file
diff --git a/build/commonjs/globalApi/allFaces.js.map b/build/commonjs/globalApi/allFaces.js.map
deleted file mode 100644
index e0e16584..00000000
--- a/build/commonjs/globalApi/allFaces.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"allFaces.js","sourceRoot":"","sources":["../../../src/globalApi/allFaces.ts"],"names":[],"mappings":";;;AACA,qDAAyE;AAGzE,sDAAoE;AACpE,oDAA0D;AAC1D,6CAA+C;AAE/C,iDAAiD;AAEjD,gCACE,KAAgB,EAChB,aAAsB;;;;wBAEf,qBAAM,4BAAc,CAAC,KAAK,EAAE,IAAI,sCAAqB,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,eAAA,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;yBAClG,iBAAiB,EAAE;yBACnB,mBAAmB,EAAE,EAAA;wBAFxB,sBAAO,SAEiB,EAAA;;;;CACzB;AAPD,wDAOC;AAED,4BACE,KAAgB,EAChB,aAAsC;IAAtC,8BAAA,EAAA,kBAAsC;;;;wBAE/B,qBAAM,4BAAc,CAAC,KAAK,EAAE,IAAI,oCAAiB,CAAC,aAAa,CAAC,CAAC;yBACrE,iBAAiB,EAAE;yBACnB,mBAAmB,EAAE,EAAA;wBAFxB,sBAAO,SAEiB,EAAA;;;;CACzB;AAPD,gDAOC;AAED,uBACE,KAAgB,EAChB,aAAiC;IAAjC,8BAAA,EAAA,kBAAiC;;;;wBAE1B,qBAAM,4BAAc,CAAC,KAAK,EAAE,IAAI,2BAAY,CAAC,aAAa,CAAC,CAAC;yBAChE,iBAAiB,EAAE;yBACnB,mBAAmB,EAAE,EAAA;wBAFxB,sBAAO,SAEiB,EAAA;;;;CACzB;AAPD,sCAOC;AAEY,QAAA,QAAQ,GAAG,sBAAsB,CAAA"}
\ No newline at end of file
diff --git a/build/commonjs/globalApi/detectFaces.d.ts b/build/commonjs/globalApi/detectFaces.d.ts
deleted file mode 100644
index d1091c32..00000000
--- a/build/commonjs/globalApi/detectFaces.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import { TNetInput } from 'tfjs-image-recognition-base';
-import { DetectAllFacesTask, DetectSingleFaceTask } from './DetectFacesTasks';
-import { FaceDetectionOptions } from './types';
-export declare function detectSingleFace(input: TNetInput, options?: FaceDetectionOptions): DetectSingleFaceTask;
-export declare function detectAllFaces(input: TNetInput, options?: FaceDetectionOptions): DetectAllFacesTask;
diff --git a/build/commonjs/globalApi/detectFaces.js b/build/commonjs/globalApi/detectFaces.js
deleted file mode 100644
index 941040f8..00000000
--- a/build/commonjs/globalApi/detectFaces.js
+++ /dev/null
@@ -1,15 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var SsdMobilenetv1Options_1 = require("../ssdMobilenetv1/SsdMobilenetv1Options");
-var DetectFacesTasks_1 = require("./DetectFacesTasks");
-function detectSingleFace(input, options) {
- if (options === void 0) { options = new SsdMobilenetv1Options_1.SsdMobilenetv1Options(); }
- return new DetectFacesTasks_1.DetectSingleFaceTask(input, options);
-}
-exports.detectSingleFace = detectSingleFace;
-function detectAllFaces(input, options) {
- if (options === void 0) { options = new SsdMobilenetv1Options_1.SsdMobilenetv1Options(); }
- return new DetectFacesTasks_1.DetectAllFacesTask(input, options);
-}
-exports.detectAllFaces = detectAllFaces;
-//# sourceMappingURL=detectFaces.js.map
\ No newline at end of file
diff --git a/build/commonjs/globalApi/detectFaces.js.map b/build/commonjs/globalApi/detectFaces.js.map
deleted file mode 100644
index 35e80dda..00000000
--- a/build/commonjs/globalApi/detectFaces.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"detectFaces.js","sourceRoot":"","sources":["../../../src/globalApi/detectFaces.ts"],"names":[],"mappings":";;AAEA,iFAAgF;AAChF,uDAA8E;AAG9E,0BACE,KAAgB,EAChB,OAA2D;IAA3D,wBAAA,EAAA,cAAoC,6CAAqB,EAAE;IAE3D,OAAO,IAAI,uCAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;AACjD,CAAC;AALD,4CAKC;AAED,wBACE,KAAgB,EAChB,OAA2D;IAA3D,wBAAA,EAAA,cAAoC,6CAAqB,EAAE;IAE3D,OAAO,IAAI,qCAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;AAC/C,CAAC;AALD,wCAKC"}
\ No newline at end of file
diff --git a/build/commonjs/globalApi/index.d.ts b/build/commonjs/globalApi/index.d.ts
deleted file mode 100644
index de0e0c09..00000000
--- a/build/commonjs/globalApi/index.d.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-export * from './allFaces';
-export * from './ComposableTask';
-export * from './ComputeFaceDescriptorsTasks';
-export * from './detectFaces';
-export * from './DetectFacesTasks';
-export * from './DetectFaceLandmarksTasks';
-export * from './FaceMatcher';
-export * from './nets';
-export * from './types';
diff --git a/build/commonjs/globalApi/index.js b/build/commonjs/globalApi/index.js
deleted file mode 100644
index 83ae0022..00000000
--- a/build/commonjs/globalApi/index.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tslib_1 = require("tslib");
-tslib_1.__exportStar(require("./allFaces"), exports);
-tslib_1.__exportStar(require("./ComposableTask"), exports);
-tslib_1.__exportStar(require("./ComputeFaceDescriptorsTasks"), exports);
-tslib_1.__exportStar(require("./detectFaces"), exports);
-tslib_1.__exportStar(require("./DetectFacesTasks"), exports);
-tslib_1.__exportStar(require("./DetectFaceLandmarksTasks"), exports);
-tslib_1.__exportStar(require("./FaceMatcher"), exports);
-tslib_1.__exportStar(require("./nets"), exports);
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/build/commonjs/globalApi/index.js.map b/build/commonjs/globalApi/index.js.map
deleted file mode 100644
index 4d46a8e2..00000000
--- a/build/commonjs/globalApi/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/globalApi/index.ts"],"names":[],"mappings":";;;AAAA,qDAA0B;AAC1B,2DAAgC;AAChC,wEAA6C;AAC7C,wDAA6B;AAC7B,6DAAkC;AAClC,qEAA0C;AAC1C,wDAA6B;AAC7B,iDAAsB"}
\ No newline at end of file
diff --git a/build/commonjs/globalApi/nets.d.ts b/build/commonjs/globalApi/nets.d.ts
deleted file mode 100644
index bd264f40..00000000
--- a/build/commonjs/globalApi/nets.d.ts
+++ /dev/null
@@ -1,97 +0,0 @@
-import { TNetInput } from 'tfjs-image-recognition-base';
-import { ITinyYolov2Options } from 'tfjs-tiny-yolov2';
-import { FaceDetection } from '../classes/FaceDetection';
-import { FaceDetectionWithLandmarks } from '../classes/FaceDetectionWithLandmarks';
-import { FaceLandmarks5 } from '../classes/FaceLandmarks5';
-import { FaceLandmarks68 } from '../classes/FaceLandmarks68';
-import { FaceLandmark68Net } from '../faceLandmarkNet/FaceLandmark68Net';
-import { FaceLandmark68TinyNet } from '../faceLandmarkNet/FaceLandmark68TinyNet';
-import { FaceRecognitionNet } from '../faceRecognitionNet/FaceRecognitionNet';
-import { Mtcnn } from '../mtcnn/Mtcnn';
-import { MtcnnOptions } from '../mtcnn/MtcnnOptions';
-import { SsdMobilenetv1 } from '../ssdMobilenetv1/SsdMobilenetv1';
-import { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options';
-import { TinyFaceDetector } from '../tinyFaceDetector/TinyFaceDetector';
-import { TinyFaceDetectorOptions } from '../tinyFaceDetector/TinyFaceDetectorOptions';
-import { TinyYolov2 } from '../tinyYolov2/TinyYolov2';
-export declare const nets: {
- ssdMobilenetv1: SsdMobilenetv1;
- tinyFaceDetector: TinyFaceDetector;
- tinyYolov2: TinyYolov2;
- mtcnn: Mtcnn;
- faceLandmark68Net: FaceLandmark68Net;
- faceLandmark68TinyNet: FaceLandmark68TinyNet;
- faceRecognitionNet: FaceRecognitionNet;
-};
-/**
- * Attempts to detect all faces in an image using SSD Mobilenetv1 Network.
- *
- * @param input The input image.
- * @param options (optional, default: see SsdMobilenetv1Options constructor for default parameters).
- * @returns Bounding box of each face with score.
- */
-export declare const ssdMobilenetv1: (input: TNetInput, options: SsdMobilenetv1Options) => Promise;
-/**
- * Attempts to detect all faces in an image using the Tiny Face Detector.
- *
- * @param input The input image.
- * @param options (optional, default: see TinyFaceDetectorOptions constructor for default parameters).
- * @returns Bounding box of each face with score.
- */
-export declare const tinyFaceDetector: (input: TNetInput, options: TinyFaceDetectorOptions) => Promise;
-/**
- * Attempts to detect all faces in an image using the Tiny Yolov2 Network.
- *
- * @param input The input image.
- * @param options (optional, default: see TinyYolov2Options constructor for default parameters).
- * @returns Bounding box of each face with score.
- */
-export declare const tinyYolov2: (input: TNetInput, options: ITinyYolov2Options) => Promise;
-/**
- * Attempts to detect all faces in an image and the 5 point face landmarks
- * of each detected face using the MTCNN Network.
- *
- * @param input The input image.
- * @param options (optional, default: see MtcnnOptions constructor for default parameters).
- * @returns Bounding box of each face with score and 5 point face landmarks.
- */
-export declare const mtcnn: (input: TNetInput, options: MtcnnOptions) => Promise[]>;
-/**
- * Detects the 68 point face landmark positions of the face shown in an image.
- *
- * @param inputs The face image extracted from the bounding box of a face. Can
- * also be an array of input images, which will be batch processed.
- * @returns 68 point face landmarks or array thereof in case of batch input.
- */
-export declare const detectFaceLandmarks: (input: TNetInput) => Promise;
-/**
- * Detects the 68 point face landmark positions of the face shown in an image
- * using a tinier version of the 68 point face landmark model, which is slightly
- * faster at inference, but also slightly less accurate.
- *
- * @param inputs The face image extracted from the bounding box of a face. Can
- * also be an array of input images, which will be batch processed.
- * @returns 68 point face landmarks or array thereof in case of batch input.
- */
-export declare const detectFaceLandmarksTiny: (input: TNetInput) => Promise;
-/**
- * Computes a 128 entry vector (face descriptor / face embeddings) from the face shown in an image,
- * which uniquely represents the features of that persons face. The computed face descriptor can
- * be used to measure the similarity between faces, by computing the euclidean distance of two
- * face descriptors.
- *
- * @param inputs The face image extracted from the aligned bounding box of a face. Can
- * also be an array of input images, which will be batch processed.
- * @returns Face descriptor with 128 entries or array thereof in case of batch input.
- */
-export declare const computeFaceDescriptor: (input: TNetInput) => Promise;
-export declare const loadSsdMobilenetv1Model: (url: string) => Promise;
-export declare const loadTinyFaceDetectorModel: (url: string) => Promise;
-export declare const loadMtcnnModel: (url: string) => Promise;
-export declare const loadTinyYolov2Model: (url: string) => Promise;
-export declare const loadFaceLandmarkModel: (url: string) => Promise;
-export declare const loadFaceLandmarkTinyModel: (url: string) => Promise;
-export declare const loadFaceRecognitionModel: (url: string) => Promise;
-export declare const loadFaceDetectionModel: (url: string) => Promise;
-export declare const locateFaces: (input: TNetInput, options: SsdMobilenetv1Options) => Promise;
-export declare const detectLandmarks: (input: TNetInput) => Promise;
diff --git a/build/commonjs/globalApi/nets.js b/build/commonjs/globalApi/nets.js
deleted file mode 100644
index ffff067c..00000000
--- a/build/commonjs/globalApi/nets.js
+++ /dev/null
@@ -1,106 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var FaceLandmark68Net_1 = require("../faceLandmarkNet/FaceLandmark68Net");
-var FaceLandmark68TinyNet_1 = require("../faceLandmarkNet/FaceLandmark68TinyNet");
-var FaceRecognitionNet_1 = require("../faceRecognitionNet/FaceRecognitionNet");
-var Mtcnn_1 = require("../mtcnn/Mtcnn");
-var SsdMobilenetv1_1 = require("../ssdMobilenetv1/SsdMobilenetv1");
-var TinyFaceDetector_1 = require("../tinyFaceDetector/TinyFaceDetector");
-var TinyYolov2_1 = require("../tinyYolov2/TinyYolov2");
-exports.nets = {
- ssdMobilenetv1: new SsdMobilenetv1_1.SsdMobilenetv1(),
- tinyFaceDetector: new TinyFaceDetector_1.TinyFaceDetector(),
- tinyYolov2: new TinyYolov2_1.TinyYolov2(),
- mtcnn: new Mtcnn_1.Mtcnn(),
- faceLandmark68Net: new FaceLandmark68Net_1.FaceLandmark68Net(),
- faceLandmark68TinyNet: new FaceLandmark68TinyNet_1.FaceLandmark68TinyNet(),
- faceRecognitionNet: new FaceRecognitionNet_1.FaceRecognitionNet()
-};
-/**
- * Attempts to detect all faces in an image using SSD Mobilenetv1 Network.
- *
- * @param input The input image.
- * @param options (optional, default: see SsdMobilenetv1Options constructor for default parameters).
- * @returns Bounding box of each face with score.
- */
-exports.ssdMobilenetv1 = function (input, options) {
- return exports.nets.ssdMobilenetv1.locateFaces(input, options);
-};
-/**
- * Attempts to detect all faces in an image using the Tiny Face Detector.
- *
- * @param input The input image.
- * @param options (optional, default: see TinyFaceDetectorOptions constructor for default parameters).
- * @returns Bounding box of each face with score.
- */
-exports.tinyFaceDetector = function (input, options) {
- return exports.nets.tinyFaceDetector.locateFaces(input, options);
-};
-/**
- * Attempts to detect all faces in an image using the Tiny Yolov2 Network.
- *
- * @param input The input image.
- * @param options (optional, default: see TinyYolov2Options constructor for default parameters).
- * @returns Bounding box of each face with score.
- */
-exports.tinyYolov2 = function (input, options) {
- return exports.nets.tinyYolov2.locateFaces(input, options);
-};
-/**
- * Attempts to detect all faces in an image and the 5 point face landmarks
- * of each detected face using the MTCNN Network.
- *
- * @param input The input image.
- * @param options (optional, default: see MtcnnOptions constructor for default parameters).
- * @returns Bounding box of each face with score and 5 point face landmarks.
- */
-exports.mtcnn = function (input, options) {
- return exports.nets.mtcnn.forward(input, options);
-};
-/**
- * Detects the 68 point face landmark positions of the face shown in an image.
- *
- * @param inputs The face image extracted from the bounding box of a face. Can
- * also be an array of input images, which will be batch processed.
- * @returns 68 point face landmarks or array thereof in case of batch input.
- */
-exports.detectFaceLandmarks = function (input) {
- return exports.nets.faceLandmark68Net.detectLandmarks(input);
-};
-/**
- * Detects the 68 point face landmark positions of the face shown in an image
- * using a tinier version of the 68 point face landmark model, which is slightly
- * faster at inference, but also slightly less accurate.
- *
- * @param inputs The face image extracted from the bounding box of a face. Can
- * also be an array of input images, which will be batch processed.
- * @returns 68 point face landmarks or array thereof in case of batch input.
- */
-exports.detectFaceLandmarksTiny = function (input) {
- return exports.nets.faceLandmark68TinyNet.detectLandmarks(input);
-};
-/**
- * Computes a 128 entry vector (face descriptor / face embeddings) from the face shown in an image,
- * which uniquely represents the features of that persons face. The computed face descriptor can
- * be used to measure the similarity between faces, by computing the euclidean distance of two
- * face descriptors.
- *
- * @param inputs The face image extracted from the aligned bounding box of a face. Can
- * also be an array of input images, which will be batch processed.
- * @returns Face descriptor with 128 entries or array thereof in case of batch input.
- */
-exports.computeFaceDescriptor = function (input) {
- return exports.nets.faceRecognitionNet.computeFaceDescriptor(input);
-};
-exports.loadSsdMobilenetv1Model = function (url) { return exports.nets.ssdMobilenetv1.load(url); };
-exports.loadTinyFaceDetectorModel = function (url) { return exports.nets.tinyFaceDetector.load(url); };
-exports.loadMtcnnModel = function (url) { return exports.nets.mtcnn.load(url); };
-exports.loadTinyYolov2Model = function (url) { return exports.nets.tinyYolov2.load(url); };
-exports.loadFaceLandmarkModel = function (url) { return exports.nets.faceLandmark68Net.load(url); };
-exports.loadFaceLandmarkTinyModel = function (url) { return exports.nets.faceLandmark68TinyNet.load(url); };
-exports.loadFaceRecognitionModel = function (url) { return exports.nets.faceRecognitionNet.load(url); };
-// backward compatibility
-exports.loadFaceDetectionModel = exports.loadSsdMobilenetv1Model;
-exports.locateFaces = exports.ssdMobilenetv1;
-exports.detectLandmarks = exports.detectFaceLandmarks;
-//# sourceMappingURL=nets.js.map
\ No newline at end of file
diff --git a/build/commonjs/globalApi/nets.js.map b/build/commonjs/globalApi/nets.js.map
deleted file mode 100644
index c9a37a20..00000000
--- a/build/commonjs/globalApi/nets.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"nets.js","sourceRoot":"","sources":["../../../src/globalApi/nets.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/build/commonjs/globalApi/types.d.ts b/build/commonjs/globalApi/types.d.ts
deleted file mode 100644
index 085925da..00000000
--- a/build/commonjs/globalApi/types.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { TNetInput } from 'tfjs-image-recognition-base';
-import { TinyYolov2Options } from 'tfjs-tiny-yolov2';
-import { FaceDetection } from '../classes/FaceDetection';
-import { MtcnnOptions } from '../mtcnn/MtcnnOptions';
-import { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options';
-import { TinyFaceDetectorOptions } from '../tinyFaceDetector/TinyFaceDetectorOptions';
-export declare type FaceDetectionOptions = TinyFaceDetectorOptions | SsdMobilenetv1Options | MtcnnOptions | TinyYolov2Options;
-export declare type FaceDetectionFunction = (input: TNetInput) => Promise;
diff --git a/build/commonjs/globalApi/types.js b/build/commonjs/globalApi/types.js
deleted file mode 100644
index 11e638d1..00000000
--- a/build/commonjs/globalApi/types.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-//# sourceMappingURL=types.js.map
\ No newline at end of file
diff --git a/build/commonjs/globalApi/types.js.map b/build/commonjs/globalApi/types.js.map
deleted file mode 100644
index e079214c..00000000
--- a/build/commonjs/globalApi/types.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/globalApi/types.ts"],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/build/commonjs/index.d.ts b/build/commonjs/index.d.ts
deleted file mode 100644
index c7b129b4..00000000
--- a/build/commonjs/index.d.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-export { tf };
-export * from 'tfjs-image-recognition-base';
-export * from './classes/index';
-export * from './dom/index';
-export * from './faceLandmarkNet/index';
-export * from './faceRecognitionNet/index';
-export * from './globalApi/index';
-export * from './mtcnn/index';
-export * from './ssdMobilenetv1/index';
-export * from './tinyFaceDetector/index';
-export * from './tinyYolov2/index';
-export * from './euclideanDistance';
diff --git a/build/commonjs/index.js b/build/commonjs/index.js
deleted file mode 100644
index e9d5ff6b..00000000
--- a/build/commonjs/index.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tslib_1 = require("tslib");
-var tf = require("@tensorflow/tfjs-core");
-exports.tf = tf;
-tslib_1.__exportStar(require("tfjs-image-recognition-base"), exports);
-tslib_1.__exportStar(require("./classes/index"), exports);
-tslib_1.__exportStar(require("./dom/index"), exports);
-tslib_1.__exportStar(require("./faceLandmarkNet/index"), exports);
-tslib_1.__exportStar(require("./faceRecognitionNet/index"), exports);
-tslib_1.__exportStar(require("./globalApi/index"), exports);
-tslib_1.__exportStar(require("./mtcnn/index"), exports);
-tslib_1.__exportStar(require("./ssdMobilenetv1/index"), exports);
-tslib_1.__exportStar(require("./tinyFaceDetector/index"), exports);
-tslib_1.__exportStar(require("./tinyYolov2/index"), exports);
-tslib_1.__exportStar(require("./euclideanDistance"), exports);
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/build/commonjs/index.js.map b/build/commonjs/index.js.map
deleted file mode 100644
index 6b0e6455..00000000
--- a/build/commonjs/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,0CAA4C;AAG1C,gBAAE;AAGJ,sEAA4C;AAE5C,0DAAgC;AAChC,sDAA2B;AAC3B,kEAAwC;AACxC,qEAA2C;AAC3C,4DAAkC;AAClC,wDAA8B;AAC9B,iEAAuC;AACvC,mEAAyC;AACzC,6DAAmC;AAEnC,8DAAoC"}
\ No newline at end of file
diff --git a/build/commonjs/mtcnn/Mtcnn.d.ts b/build/commonjs/mtcnn/Mtcnn.d.ts
deleted file mode 100644
index 68215c54..00000000
--- a/build/commonjs/mtcnn/Mtcnn.d.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-import { NetInput, NeuralNetwork, TNetInput } from 'tfjs-image-recognition-base';
-import { FaceDetectionWithLandmarks } from '../classes/FaceDetectionWithLandmarks';
-import { FaceLandmarks5 } from '../classes/FaceLandmarks5';
-import { IMtcnnOptions } from './MtcnnOptions';
-import { NetParams } from './types';
-export declare class Mtcnn extends NeuralNetwork {
- constructor();
- forwardInput(input: NetInput, forwardParams?: IMtcnnOptions): Promise<{
- results: FaceDetectionWithLandmarks[];
- stats: any;
- }>;
- forward(input: TNetInput, forwardParams?: IMtcnnOptions): Promise[]>;
- forwardWithStats(input: TNetInput, forwardParams?: IMtcnnOptions): Promise<{
- results: FaceDetectionWithLandmarks[];
- stats: any;
- }>;
- protected loadQuantizedParams(uri: string | undefined): Promise<{
- params: NetParams;
- paramMappings: {
- originalPath?: string | undefined;
- paramPath: string;
- }[];
- }>;
- protected extractParams(weights: Float32Array): {
- params: NetParams;
- paramMappings: {
- originalPath?: string | undefined;
- paramPath: string;
- }[];
- };
-}
diff --git a/build/commonjs/mtcnn/Mtcnn.js b/build/commonjs/mtcnn/Mtcnn.js
deleted file mode 100644
index e6faa35d..00000000
--- a/build/commonjs/mtcnn/Mtcnn.js
+++ /dev/null
@@ -1,135 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tslib_1 = require("tslib");
-var tf = require("@tensorflow/tfjs-core");
-var tfjs_image_recognition_base_1 = require("tfjs-image-recognition-base");
-var FaceDetection_1 = require("../classes/FaceDetection");
-var FaceDetectionWithLandmarks_1 = require("../classes/FaceDetectionWithLandmarks");
-var FaceLandmarks5_1 = require("../classes/FaceLandmarks5");
-var bgrToRgbTensor_1 = require("./bgrToRgbTensor");
-var config_1 = require("./config");
-var extractParams_1 = require("./extractParams");
-var getSizesForScale_1 = require("./getSizesForScale");
-var loadQuantizedParams_1 = require("./loadQuantizedParams");
-var MtcnnOptions_1 = require("./MtcnnOptions");
-var pyramidDown_1 = require("./pyramidDown");
-var stage1_1 = require("./stage1");
-var stage2_1 = require("./stage2");
-var stage3_1 = require("./stage3");
-var Mtcnn = /** @class */ (function (_super) {
- tslib_1.__extends(Mtcnn, _super);
- function Mtcnn() {
- return _super.call(this, 'Mtcnn') || this;
- }
- Mtcnn.prototype.forwardInput = function (input, forwardParams) {
- if (forwardParams === void 0) { forwardParams = {}; }
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var params, inputCanvas, stats, tsTotal, imgTensor, onReturn, _a, height, width, _b, minFaceSize, scaleFactor, maxNumScales, scoreThresholds, scaleSteps, scales, ts, out1, out2, out3, results;
- return tslib_1.__generator(this, function (_c) {
- switch (_c.label) {
- case 0:
- params = this.params;
- if (!params) {
- throw new Error('Mtcnn - load model before inference');
- }
- inputCanvas = input.canvases[0];
- if (!inputCanvas) {
- throw new Error('Mtcnn - inputCanvas is not defined, note that passing tensors into Mtcnn.forwardInput is not supported yet.');
- }
- stats = {};
- tsTotal = Date.now();
- imgTensor = tf.tidy(function () {
- return bgrToRgbTensor_1.bgrToRgbTensor(tf.expandDims(tf.fromPixels(inputCanvas)).toFloat());
- });
- onReturn = function (results) {
- // dispose tensors on return
- imgTensor.dispose();
- stats.total = Date.now() - tsTotal;
- return results;
- };
- _a = imgTensor.shape.slice(1), height = _a[0], width = _a[1];
- _b = new MtcnnOptions_1.MtcnnOptions(forwardParams), minFaceSize = _b.minFaceSize, scaleFactor = _b.scaleFactor, maxNumScales = _b.maxNumScales, scoreThresholds = _b.scoreThresholds, scaleSteps = _b.scaleSteps;
- scales = (scaleSteps || pyramidDown_1.pyramidDown(minFaceSize, scaleFactor, [height, width]))
- .filter(function (scale) {
- var sizes = getSizesForScale_1.getSizesForScale(scale, [height, width]);
- return Math.min(sizes.width, sizes.height) > config_1.CELL_SIZE;
- })
- .slice(0, maxNumScales);
- stats.scales = scales;
- stats.pyramid = scales.map(function (scale) { return getSizesForScale_1.getSizesForScale(scale, [height, width]); });
- ts = Date.now();
- return [4 /*yield*/, stage1_1.stage1(imgTensor, scales, scoreThresholds[0], params.pnet, stats)];
- case 1:
- out1 = _c.sent();
- stats.total_stage1 = Date.now() - ts;
- if (!out1.boxes.length) {
- return [2 /*return*/, onReturn({ results: [], stats: stats })];
- }
- stats.stage2_numInputBoxes = out1.boxes.length;
- // using the inputCanvas to extract and resize the image patches, since it is faster
- // than doing this on the gpu
- ts = Date.now();
- return [4 /*yield*/, stage2_1.stage2(inputCanvas, out1.boxes, scoreThresholds[1], params.rnet, stats)];
- case 2:
- out2 = _c.sent();
- stats.total_stage2 = Date.now() - ts;
- if (!out2.boxes.length) {
- return [2 /*return*/, onReturn({ results: [], stats: stats })];
- }
- stats.stage3_numInputBoxes = out2.boxes.length;
- ts = Date.now();
- return [4 /*yield*/, stage3_1.stage3(inputCanvas, out2.boxes, scoreThresholds[2], params.onet, stats)];
- case 3:
- out3 = _c.sent();
- stats.total_stage3 = Date.now() - ts;
- results = out3.boxes.map(function (box, idx) { return new FaceDetectionWithLandmarks_1.FaceDetectionWithLandmarks(new FaceDetection_1.FaceDetection(out3.scores[idx], new tfjs_image_recognition_base_1.Rect(box.left / width, box.top / height, box.width / width, box.height / height), {
- height: height,
- width: width
- }), new FaceLandmarks5_1.FaceLandmarks5(out3.points[idx].map(function (pt) { return pt.sub(new tfjs_image_recognition_base_1.Point(box.left, box.top)).div(new tfjs_image_recognition_base_1.Point(box.width, box.height)); }), { width: box.width, height: box.height })); });
- return [2 /*return*/, onReturn({ results: results, stats: stats })];
- }
- });
- });
- };
- Mtcnn.prototype.forward = function (input, forwardParams) {
- if (forwardParams === void 0) { forwardParams = {}; }
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var _a;
- return tslib_1.__generator(this, function (_b) {
- switch (_b.label) {
- case 0:
- _a = this.forwardInput;
- return [4 /*yield*/, tfjs_image_recognition_base_1.toNetInput(input)];
- case 1: return [4 /*yield*/, _a.apply(this, [_b.sent(),
- forwardParams])];
- case 2: return [2 /*return*/, (_b.sent()).results];
- }
- });
- });
- };
- Mtcnn.prototype.forwardWithStats = function (input, forwardParams) {
- if (forwardParams === void 0) { forwardParams = {}; }
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var _a;
- return tslib_1.__generator(this, function (_b) {
- switch (_b.label) {
- case 0:
- _a = this.forwardInput;
- return [4 /*yield*/, tfjs_image_recognition_base_1.toNetInput(input)];
- case 1: return [2 /*return*/, _a.apply(this, [_b.sent(),
- forwardParams])];
- }
- });
- });
- };
- // none of the param tensors are quantized yet
- Mtcnn.prototype.loadQuantizedParams = function (uri) {
- return loadQuantizedParams_1.loadQuantizedParams(uri);
- };
- Mtcnn.prototype.extractParams = function (weights) {
- return extractParams_1.extractParams(weights);
- };
- return Mtcnn;
-}(tfjs_image_recognition_base_1.NeuralNetwork));
-exports.Mtcnn = Mtcnn;
-//# sourceMappingURL=Mtcnn.js.map
\ No newline at end of file
diff --git a/build/commonjs/mtcnn/Mtcnn.js.map b/build/commonjs/mtcnn/Mtcnn.js.map
deleted file mode 100644
index cfd239b6..00000000
--- a/build/commonjs/mtcnn/Mtcnn.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Mtcnn.js","sourceRoot":"","sources":["../../../src/mtcnn/Mtcnn.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/build/commonjs/mtcnn/MtcnnBox.d.ts b/build/commonjs/mtcnn/MtcnnBox.d.ts
deleted file mode 100644
index e61cf2f0..00000000
--- a/build/commonjs/mtcnn/MtcnnBox.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import { Box } from 'tfjs-image-recognition-base';
-export declare class MtcnnBox extends Box {
- constructor(left: number, top: number, right: number, bottom: number);
-}
diff --git a/build/commonjs/mtcnn/MtcnnBox.js b/build/commonjs/mtcnn/MtcnnBox.js
deleted file mode 100644
index 1759d29b..00000000
--- a/build/commonjs/mtcnn/MtcnnBox.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tslib_1 = require("tslib");
-var tfjs_image_recognition_base_1 = require("tfjs-image-recognition-base");
-var MtcnnBox = /** @class */ (function (_super) {
- tslib_1.__extends(MtcnnBox, _super);
- function MtcnnBox(left, top, right, bottom) {
- return _super.call(this, { left: left, top: top, right: right, bottom: bottom }, true) || this;
- }
- return MtcnnBox;
-}(tfjs_image_recognition_base_1.Box));
-exports.MtcnnBox = MtcnnBox;
-//# sourceMappingURL=MtcnnBox.js.map
\ No newline at end of file
diff --git a/build/commonjs/mtcnn/MtcnnBox.js.map b/build/commonjs/mtcnn/MtcnnBox.js.map
deleted file mode 100644
index 68404922..00000000
--- a/build/commonjs/mtcnn/MtcnnBox.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"MtcnnBox.js","sourceRoot":"","sources":["../../../src/mtcnn/MtcnnBox.ts"],"names":[],"mappings":";;;AAAA,2EAAkD;AAElD;IAA8B,oCAAa;IACzC,kBAAY,IAAY,EAAE,GAAW,EAAE,KAAa,EAAE,MAAc;eAClE,kBAAM,EAAE,IAAI,MAAA,EAAE,GAAG,KAAA,EAAE,KAAK,OAAA,EAAE,MAAM,QAAA,EAAE,EAAE,IAAI,CAAC;IAC3C,CAAC;IACH,eAAC;AAAD,CAAC,AAJD,CAA8B,iCAAG,GAIhC;AAJY,4BAAQ"}
\ No newline at end of file
diff --git a/build/commonjs/mtcnn/MtcnnOptions.d.ts b/build/commonjs/mtcnn/MtcnnOptions.d.ts
deleted file mode 100644
index ed24b4cd..00000000
--- a/build/commonjs/mtcnn/MtcnnOptions.d.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-export interface IMtcnnOptions {
- minFaceSize?: number;
- scaleFactor?: number;
- maxNumScales?: number;
- scoreThresholds?: number[];
- scaleSteps?: number[];
-}
-export declare class MtcnnOptions {
- protected _name: string;
- private _minFaceSize;
- private _scaleFactor;
- private _maxNumScales;
- private _scoreThresholds;
- private _scaleSteps;
- constructor({minFaceSize, scaleFactor, maxNumScales, scoreThresholds, scaleSteps}?: IMtcnnOptions);
- readonly minFaceSize: number;
- readonly scaleFactor: number;
- readonly maxNumScales: number;
- readonly scoreThresholds: number[];
- readonly scaleSteps: number[] | undefined;
-}
diff --git a/build/commonjs/mtcnn/MtcnnOptions.js b/build/commonjs/mtcnn/MtcnnOptions.js
deleted file mode 100644
index 9581a200..00000000
--- a/build/commonjs/mtcnn/MtcnnOptions.js
+++ /dev/null
@@ -1,59 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var MtcnnOptions = /** @class */ (function () {
- function MtcnnOptions(_a) {
- var _b = _a === void 0 ? {} : _a, minFaceSize = _b.minFaceSize, scaleFactor = _b.scaleFactor, maxNumScales = _b.maxNumScales, scoreThresholds = _b.scoreThresholds, scaleSteps = _b.scaleSteps;
- this._name = 'MtcnnOptions';
- this._minFaceSize = minFaceSize || 20;
- this._scaleFactor = scaleFactor || 0.709;
- this._maxNumScales = maxNumScales || 10;
- this._scoreThresholds = scoreThresholds || [0.6, 0.7, 0.7];
- this._scaleSteps = scaleSteps;
- if (typeof this._minFaceSize !== 'number' || this._minFaceSize < 0) {
- throw new Error(this._name + " - expected minFaceSize to be a number > 0");
- }
- if (typeof this._scaleFactor !== 'number' || this._scaleFactor <= 0 || this._scaleFactor >= 1) {
- throw new Error(this._name + " - expected scaleFactor to be a number between 0 and 1");
- }
- if (typeof this._maxNumScales !== 'number' || this._maxNumScales < 0) {
- throw new Error(this._name + " - expected maxNumScales to be a number > 0");
- }
- if (!Array.isArray(this._scoreThresholds)
- || this._scoreThresholds.length !== 3
- || this._scoreThresholds.some(function (th) { return typeof th !== 'number'; })) {
- throw new Error(this._name + " - expected scoreThresholds to be an array of numbers of length 3");
- }
- if (this._scaleSteps
- && (!Array.isArray(this._scaleSteps) || this._scaleSteps.some(function (th) { return typeof th !== 'number'; }))) {
- throw new Error(this._name + " - expected scaleSteps to be an array of numbers");
- }
- }
- Object.defineProperty(MtcnnOptions.prototype, "minFaceSize", {
- get: function () { return this._minFaceSize; },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(MtcnnOptions.prototype, "scaleFactor", {
- get: function () { return this._scaleFactor; },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(MtcnnOptions.prototype, "maxNumScales", {
- get: function () { return this._maxNumScales; },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(MtcnnOptions.prototype, "scoreThresholds", {
- get: function () { return this._scoreThresholds; },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(MtcnnOptions.prototype, "scaleSteps", {
- get: function () { return this._scaleSteps; },
- enumerable: true,
- configurable: true
- });
- return MtcnnOptions;
-}());
-exports.MtcnnOptions = MtcnnOptions;
-//# sourceMappingURL=MtcnnOptions.js.map
\ No newline at end of file
diff --git a/build/commonjs/mtcnn/MtcnnOptions.js.map b/build/commonjs/mtcnn/MtcnnOptions.js.map
deleted file mode 100644
index d3f14f41..00000000
--- a/build/commonjs/mtcnn/MtcnnOptions.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"MtcnnOptions.js","sourceRoot":"","sources":["../../../src/mtcnn/MtcnnOptions.ts"],"names":[],"mappings":";;AAQA;IASE,sBAAY,EAA2F;YAA3F,4BAA2F,EAAzF,4BAAW,EAAE,4BAAW,EAAE,8BAAY,EAAE,oCAAe,EAAE,0BAAU;QARvE,UAAK,GAAW,cAAc,CAAA;QAStC,IAAI,CAAC,YAAY,GAAG,WAAW,IAAI,EAAE,CAAA;QACrC,IAAI,CAAC,YAAY,GAAG,WAAW,IAAI,KAAK,CAAA;QACxC,IAAI,CAAC,aAAa,GAAG,YAAY,IAAI,EAAE,CAAA;QACvC,IAAI,CAAC,gBAAgB,GAAG,eAAe,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;QAC1D,IAAI,CAAC,WAAW,GAAG,UAAU,CAAA;QAE7B,IAAI,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE;YAClE,MAAM,IAAI,KAAK,CAAI,IAAI,CAAC,KAAK,+CAA4C,CAAC,CAAA;SAC3E;QAED,IAAI,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,EAAE;YAC7F,MAAM,IAAI,KAAK,CAAI,IAAI,CAAC,KAAK,2DAAwD,CAAC,CAAA;SACvF;QAED,IAAI,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,EAAE;YACpE,MAAM,IAAI,KAAK,CAAI,IAAI,CAAC,KAAK,gDAA6C,CAAC,CAAA;SAC5E;QAED,IACE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC;eAChC,IAAI,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC;eAClC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAA,EAAE,IAAI,OAAA,OAAO,EAAE,KAAK,QAAQ,EAAtB,CAAsB,CAAC,EAC7D;YACA,MAAM,IAAI,KAAK,CAAI,IAAI,CAAC,KAAK,sEAAmE,CAAC,CAAA;SAClG;QAED,IACE,IAAI,CAAC,WAAW;eACX,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAA,EAAE,IAAI,OAAA,OAAO,EAAE,KAAK,QAAQ,EAAtB,CAAsB,CAAC,CAAC,EAC9F;YACA,MAAM,IAAI,KAAK,CAAI,IAAI,CAAC,KAAK,qDAAkD,CAAC,CAAA;SACjF;IACH,CAAC;IAED,sBAAI,qCAAW;aAAf,cAA4B,OAAO,IAAI,CAAC,YAAY,CAAA,CAAC,CAAC;;;OAAA;IACtD,sBAAI,qCAAW;aAAf,cAA4B,OAAO,IAAI,CAAC,YAAY,CAAA,CAAC,CAAC;;;OAAA;IACtD,sBAAI,sCAAY;aAAhB,cAA6B,OAAO,IAAI,CAAC,aAAa,CAAA,CAAC,CAAC;;;OAAA;IACxD,sBAAI,yCAAe;aAAnB,cAAkC,OAAO,IAAI,CAAC,gBAAgB,CAAA,CAAC,CAAC;;;OAAA;IAChE,sBAAI,oCAAU;aAAd,cAAyC,OAAO,IAAI,CAAC,WAAW,CAAA,CAAC,CAAC;;;OAAA;IACpE,mBAAC;AAAD,CAAC,AAjDD,IAiDC;AAjDY,oCAAY"}
\ No newline at end of file
diff --git a/build/commonjs/mtcnn/ONet.d.ts b/build/commonjs/mtcnn/ONet.d.ts
deleted file mode 100644
index dfc7f113..00000000
--- a/build/commonjs/mtcnn/ONet.d.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { ONetParams } from './types';
-export declare function ONet(x: tf.Tensor4D, params: ONetParams): {
- scores: tf.Tensor1D;
- regions: tf.Tensor2D;
- points: tf.Tensor2D;
-};
diff --git a/build/commonjs/mtcnn/ONet.js b/build/commonjs/mtcnn/ONet.js
deleted file mode 100644
index 50ace1cf..00000000
--- a/build/commonjs/mtcnn/ONet.js
+++ /dev/null
@@ -1,27 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tf = require("@tensorflow/tfjs-core");
-var tfjs_tiny_yolov2_1 = require("tfjs-tiny-yolov2");
-var fullyConnectedLayer_1 = require("../faceLandmarkNet/fullyConnectedLayer");
-var prelu_1 = require("./prelu");
-var sharedLayers_1 = require("./sharedLayers");
-function ONet(x, params) {
- return tf.tidy(function () {
- var out = sharedLayers_1.sharedLayer(x, params);
- out = tf.maxPool(out, [2, 2], [2, 2], 'same');
- out = tfjs_tiny_yolov2_1.convLayer(out, params.conv4, 'valid');
- out = prelu_1.prelu(out, params.prelu4_alpha);
- var vectorized = tf.reshape(out, [out.shape[0], params.fc1.weights.shape[0]]);
- var fc1 = fullyConnectedLayer_1.fullyConnectedLayer(vectorized, params.fc1);
- var prelu5 = prelu_1.prelu(fc1, params.prelu5_alpha);
- var fc2_1 = fullyConnectedLayer_1.fullyConnectedLayer(prelu5, params.fc2_1);
- var max = tf.expandDims(tf.max(fc2_1, 1), 1);
- var prob = tf.softmax(tf.sub(fc2_1, max), 1);
- var regions = fullyConnectedLayer_1.fullyConnectedLayer(prelu5, params.fc2_2);
- var points = fullyConnectedLayer_1.fullyConnectedLayer(prelu5, params.fc2_3);
- var scores = tf.unstack(prob, 1)[1];
- return { scores: scores, regions: regions, points: points };
- });
-}
-exports.ONet = ONet;
-//# sourceMappingURL=ONet.js.map
\ No newline at end of file
diff --git a/build/commonjs/mtcnn/ONet.js.map b/build/commonjs/mtcnn/ONet.js.map
deleted file mode 100644
index c92c2e34..00000000
--- a/build/commonjs/mtcnn/ONet.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ONet.js","sourceRoot":"","sources":["../../../src/mtcnn/ONet.ts"],"names":[],"mappings":";;AAAA,0CAA4C;AAC5C,qDAA6C;AAE7C,8EAA6E;AAC7E,iCAAgC;AAChC,+CAA6C;AAG7C,cAAqB,CAAc,EAAE,MAAkB;IACrD,OAAO,EAAE,CAAC,IAAI,CAAC;QAEb,IAAI,GAAG,GAAG,0BAAW,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;QAChC,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;QAC7C,GAAG,GAAG,4BAAS,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QAC3C,GAAG,GAAG,aAAK,CAAc,GAAG,EAAE,MAAM,CAAC,YAAY,CAAC,CAAA;QAElD,IAAM,UAAU,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAgB,CAAA;QAC9F,IAAM,GAAG,GAAG,yCAAmB,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;QACvD,IAAM,MAAM,GAAG,aAAK,CAAc,GAAG,EAAE,MAAM,CAAC,YAAY,CAAC,CAAA;QAC3D,IAAM,KAAK,GAAG,yCAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;QACvD,IAAM,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAE9C,IAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,CAAgB,CAAA;QAC7D,IAAM,OAAO,GAAG,yCAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;QACzD,IAAM,MAAM,GAAG,yCAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;QAExD,IAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAgB,CAAA;QACpD,OAAO,EAAE,MAAM,QAAA,EAAE,OAAO,SAAA,EAAE,MAAM,QAAA,EAAE,CAAA;IACpC,CAAC,CAAC,CAAA;AACJ,CAAC;AArBD,oBAqBC"}
\ No newline at end of file
diff --git a/build/commonjs/mtcnn/PNet.d.ts b/build/commonjs/mtcnn/PNet.d.ts
deleted file mode 100644
index 74e2c841..00000000
--- a/build/commonjs/mtcnn/PNet.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { PNetParams } from './types';
-export declare function PNet(x: tf.Tensor4D, params: PNetParams): {
- prob: tf.Tensor4D;
- regions: tf.Tensor4D;
-};
diff --git a/build/commonjs/mtcnn/PNet.js b/build/commonjs/mtcnn/PNet.js
deleted file mode 100644
index 696fd4ec..00000000
--- a/build/commonjs/mtcnn/PNet.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tf = require("@tensorflow/tfjs-core");
-var tfjs_tiny_yolov2_1 = require("tfjs-tiny-yolov2");
-var sharedLayers_1 = require("./sharedLayers");
-function PNet(x, params) {
- return tf.tidy(function () {
- var out = sharedLayers_1.sharedLayer(x, params, true);
- var conv = tfjs_tiny_yolov2_1.convLayer(out, params.conv4_1, 'valid');
- var max = tf.expandDims(tf.max(conv, 3), 3);
- var prob = tf.softmax(tf.sub(conv, max), 3);
- var regions = tfjs_tiny_yolov2_1.convLayer(out, params.conv4_2, 'valid');
- return { prob: prob, regions: regions };
- });
-}
-exports.PNet = PNet;
-//# sourceMappingURL=PNet.js.map
\ No newline at end of file
diff --git a/build/commonjs/mtcnn/PNet.js.map b/build/commonjs/mtcnn/PNet.js.map
deleted file mode 100644
index 23c90ad1..00000000
--- a/build/commonjs/mtcnn/PNet.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"PNet.js","sourceRoot":"","sources":["../../../src/mtcnn/PNet.ts"],"names":[],"mappings":";;AAAA,0CAA4C;AAC5C,qDAA6C;AAE7C,+CAA6C;AAG7C,cAAqB,CAAc,EAAE,MAAkB;IACrD,OAAO,EAAE,CAAC,IAAI,CAAC;QAEb,IAAI,GAAG,GAAG,0BAAW,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;QACtC,IAAM,IAAI,GAAG,4BAAS,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACpD,IAAM,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAC7C,IAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAgB,CAAA;QAC5D,IAAM,OAAO,GAAG,4BAAS,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAEvD,OAAO,EAAE,IAAI,MAAA,EAAE,OAAO,SAAA,EAAE,CAAA;IAC1B,CAAC,CAAC,CAAA;AACJ,CAAC;AAXD,oBAWC"}
\ No newline at end of file
diff --git a/build/commonjs/mtcnn/RNet.d.ts b/build/commonjs/mtcnn/RNet.d.ts
deleted file mode 100644
index c6883ff7..00000000
--- a/build/commonjs/mtcnn/RNet.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { RNetParams } from './types';
-export declare function RNet(x: tf.Tensor4D, params: RNetParams): {
- scores: tf.Tensor1D;
- regions: tf.Tensor2D;
-};
diff --git a/build/commonjs/mtcnn/RNet.js b/build/commonjs/mtcnn/RNet.js
deleted file mode 100644
index 2f975438..00000000
--- a/build/commonjs/mtcnn/RNet.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tf = require("@tensorflow/tfjs-core");
-var fullyConnectedLayer_1 = require("../faceLandmarkNet/fullyConnectedLayer");
-var prelu_1 = require("./prelu");
-var sharedLayers_1 = require("./sharedLayers");
-function RNet(x, params) {
- return tf.tidy(function () {
- var convOut = sharedLayers_1.sharedLayer(x, params);
- var vectorized = tf.reshape(convOut, [convOut.shape[0], params.fc1.weights.shape[0]]);
- var fc1 = fullyConnectedLayer_1.fullyConnectedLayer(vectorized, params.fc1);
- var prelu4 = prelu_1.prelu(fc1, params.prelu4_alpha);
- var fc2_1 = fullyConnectedLayer_1.fullyConnectedLayer(prelu4, params.fc2_1);
- var max = tf.expandDims(tf.max(fc2_1, 1), 1);
- var prob = tf.softmax(tf.sub(fc2_1, max), 1);
- var regions = fullyConnectedLayer_1.fullyConnectedLayer(prelu4, params.fc2_2);
- var scores = tf.unstack(prob, 1)[1];
- return { scores: scores, regions: regions };
- });
-}
-exports.RNet = RNet;
-//# sourceMappingURL=RNet.js.map
\ No newline at end of file
diff --git a/build/commonjs/mtcnn/RNet.js.map b/build/commonjs/mtcnn/RNet.js.map
deleted file mode 100644
index 7a899d11..00000000
--- a/build/commonjs/mtcnn/RNet.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"RNet.js","sourceRoot":"","sources":["../../../src/mtcnn/RNet.ts"],"names":[],"mappings":";;AAAA,0CAA4C;AAE5C,8EAA6E;AAC7E,iCAAgC;AAChC,+CAA6C;AAG7C,cAAqB,CAAc,EAAE,MAAkB;IACrD,OAAO,EAAE,CAAC,IAAI,CAAC;QAEb,IAAM,OAAO,GAAG,0BAAW,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;QACtC,IAAM,UAAU,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAgB,CAAA;QACtG,IAAM,GAAG,GAAG,yCAAmB,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;QACvD,IAAM,MAAM,GAAG,aAAK,CAAc,GAAG,EAAE,MAAM,CAAC,YAAY,CAAC,CAAA;QAC3D,IAAM,KAAK,GAAG,yCAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;QACvD,IAAM,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAC9C,IAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,CAAgB,CAAA;QAC7D,IAAM,OAAO,GAAG,yCAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;QAEzD,IAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAgB,CAAA;QACpD,OAAO,EAAE,MAAM,QAAA,EAAE,OAAO,SAAA,EAAE,CAAA;IAC5B,CAAC,CAAC,CAAA;AACJ,CAAC;AAfD,oBAeC"}
\ No newline at end of file
diff --git a/build/commonjs/mtcnn/bgrToRgbTensor.d.ts b/build/commonjs/mtcnn/bgrToRgbTensor.d.ts
deleted file mode 100644
index 7b544bef..00000000
--- a/build/commonjs/mtcnn/bgrToRgbTensor.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-export declare function bgrToRgbTensor(tensor: tf.Tensor4D): tf.Tensor4D;
diff --git a/build/commonjs/mtcnn/bgrToRgbTensor.js b/build/commonjs/mtcnn/bgrToRgbTensor.js
deleted file mode 100644
index 262ce6dd..00000000
--- a/build/commonjs/mtcnn/bgrToRgbTensor.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tf = require("@tensorflow/tfjs-core");
-function bgrToRgbTensor(tensor) {
- return tf.tidy(function () { return tf.stack(tf.unstack(tensor, 3).reverse(), 3); });
-}
-exports.bgrToRgbTensor = bgrToRgbTensor;
-//# sourceMappingURL=bgrToRgbTensor.js.map
\ No newline at end of file
diff --git a/build/commonjs/mtcnn/bgrToRgbTensor.js.map b/build/commonjs/mtcnn/bgrToRgbTensor.js.map
deleted file mode 100644
index 46669a11..00000000
--- a/build/commonjs/mtcnn/bgrToRgbTensor.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"bgrToRgbTensor.js","sourceRoot":"","sources":["../../../src/mtcnn/bgrToRgbTensor.ts"],"names":[],"mappings":";;AAAA,0CAA4C;AAE5C,wBAA+B,MAAmB;IAChD,OAAO,EAAE,CAAC,IAAI,CACZ,cAAM,OAAA,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAA5C,CAA4C,CACpC,CAAA;AAClB,CAAC;AAJD,wCAIC"}
\ No newline at end of file
diff --git a/build/commonjs/mtcnn/config.d.ts b/build/commonjs/mtcnn/config.d.ts
deleted file mode 100644
index 05a91437..00000000
--- a/build/commonjs/mtcnn/config.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export declare const CELL_STRIDE = 2;
-export declare const CELL_SIZE = 12;
diff --git a/build/commonjs/mtcnn/config.js b/build/commonjs/mtcnn/config.js
deleted file mode 100644
index fa6824e6..00000000
--- a/build/commonjs/mtcnn/config.js
+++ /dev/null
@@ -1,5 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.CELL_STRIDE = 2;
-exports.CELL_SIZE = 12;
-//# sourceMappingURL=config.js.map
\ No newline at end of file
diff --git a/build/commonjs/mtcnn/config.js.map b/build/commonjs/mtcnn/config.js.map
deleted file mode 100644
index bae8cf34..00000000
--- a/build/commonjs/mtcnn/config.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/mtcnn/config.ts"],"names":[],"mappings":";;AAAa,QAAA,WAAW,GAAG,CAAC,CAAA;AACf,QAAA,SAAS,GAAG,EAAE,CAAA"}
\ No newline at end of file
diff --git a/build/commonjs/mtcnn/extractImagePatches.d.ts b/build/commonjs/mtcnn/extractImagePatches.d.ts
deleted file mode 100644
index c5217d49..00000000
--- a/build/commonjs/mtcnn/extractImagePatches.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { Box, IDimensions } from 'tfjs-image-recognition-base';
-export declare function extractImagePatches(img: HTMLCanvasElement, boxes: Box[], {width, height}: IDimensions): Promise;
diff --git a/build/commonjs/mtcnn/extractImagePatches.js b/build/commonjs/mtcnn/extractImagePatches.js
deleted file mode 100644
index 8498f1b8..00000000
--- a/build/commonjs/mtcnn/extractImagePatches.js
+++ /dev/null
@@ -1,55 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tslib_1 = require("tslib");
-var tf = require("@tensorflow/tfjs-core");
-var tfjs_image_recognition_base_1 = require("tfjs-image-recognition-base");
-var normalize_1 = require("./normalize");
-function extractImagePatches(img, boxes, _a) {
- var width = _a.width, height = _a.height;
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var _this = this;
- var imgCtx, bitmaps, imagePatchesDatas;
- return tslib_1.__generator(this, function (_b) {
- switch (_b.label) {
- case 0:
- imgCtx = tfjs_image_recognition_base_1.getContext2dOrThrow(img);
- return [4 /*yield*/, Promise.all(boxes.map(function (box) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
- var _a, y, ey, x, ex, fromX, fromY, imgData;
- return tslib_1.__generator(this, function (_b) {
- _a = box.padAtBorders(img.height, img.width), y = _a.y, ey = _a.ey, x = _a.x, ex = _a.ex;
- fromX = x - 1;
- fromY = y - 1;
- imgData = imgCtx.getImageData(fromX, fromY, (ex - fromX), (ey - fromY));
- return [2 /*return*/, createImageBitmap(imgData)];
- });
- }); }))];
- case 1:
- bitmaps = _b.sent();
- imagePatchesDatas = [];
- bitmaps.forEach(function (bmp) {
- var patch = tfjs_image_recognition_base_1.createCanvas({ width: width, height: height });
- var patchCtx = tfjs_image_recognition_base_1.getContext2dOrThrow(patch);
- patchCtx.drawImage(bmp, 0, 0, width, height);
- var data = patchCtx.getImageData(0, 0, width, height).data;
- var currData = [];
- // RGBA -> BGR
- for (var i = 0; i < data.length; i += 4) {
- currData.push(data[i + 2]);
- currData.push(data[i + 1]);
- currData.push(data[i]);
- }
- imagePatchesDatas.push(currData);
- });
- return [2 /*return*/, imagePatchesDatas.map(function (data) {
- var t = tf.tidy(function () {
- var imagePatchTensor = tf.transpose(tf.tensor4d(data, [1, width, height, 3]), [0, 2, 1, 3]).toFloat();
- return normalize_1.normalize(imagePatchTensor);
- });
- return t;
- })];
- }
- });
- });
-}
-exports.extractImagePatches = extractImagePatches;
-//# sourceMappingURL=extractImagePatches.js.map
\ No newline at end of file
diff --git a/build/commonjs/mtcnn/extractImagePatches.js.map b/build/commonjs/mtcnn/extractImagePatches.js.map
deleted file mode 100644
index 78996d2b..00000000
--- a/build/commonjs/mtcnn/extractImagePatches.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"extractImagePatches.js","sourceRoot":"","sources":["../../../src/mtcnn/extractImagePatches.ts"],"names":[],"mappings":";;;AAAA,0CAA4C;AAC5C,2EAAkG;AAElG,yCAAwC;AAExC,6BACE,GAAsB,EACtB,KAAY,EACZ,EAA8B;QAA5B,gBAAK,EAAE,kBAAM;;;;;;;oBAIT,MAAM,GAAG,iDAAmB,CAAC,GAAG,CAAC,CAAA;oBAEvB,qBAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,UAAM,GAAG;;;gCAE7C,KAAmB,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,EAAxD,CAAC,OAAA,EAAE,EAAE,QAAA,EAAE,CAAC,OAAA,EAAE,EAAE,QAAA,CAA4C;gCAE1D,KAAK,GAAG,CAAC,GAAG,CAAC,CAAA;gCACb,KAAK,GAAG,CAAC,GAAG,CAAC,CAAA;gCACb,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAA;gCAE7E,sBAAO,iBAAiB,CAAC,OAAO,CAAC,EAAA;;6BAClC,CAAC,CAAC,EAAA;;oBATG,OAAO,GAAG,SASb;oBAEG,iBAAiB,GAAe,EAAE,CAAA;oBAExC,OAAO,CAAC,OAAO,CAAC,UAAA,GAAG;wBACjB,IAAM,KAAK,GAAG,0CAAY,CAAC,EAAE,KAAK,OAAA,EAAE,MAAM,QAAA,EAAE,CAAC,CAAA;wBAC7C,IAAM,QAAQ,GAAG,iDAAmB,CAAC,KAAK,CAAC,CAAA;wBAC3C,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;wBACpC,IAAA,sDAAI,CAA+C;wBAE3D,IAAM,QAAQ,GAAG,EAAE,CAAA;wBACnB,cAAc;wBACd,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAE,CAAC,EAAE;4BACpC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;4BAC1B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;4BAC1B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;yBACvB;wBACD,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;oBAClC,CAAC,CAAC,CAAA;oBAGF,sBAAO,iBAAiB,CAAC,GAAG,CAAC,UAAA,IAAI;4BAC/B,IAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;gCAChB,IAAM,gBAAgB,GAAG,EAAE,CAAC,SAAS,CACnC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EACxC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CACb,CAAC,OAAO,EAAiB,CAAA;gCAE1B,OAAO,qBAAS,CAAC,gBAAgB,CAAC,CAAA;4BACpC,CAAC,CAAC,CAAA;4BACF,OAAO,CAAC,CAAA;wBACV,CAAC,CAAC,EAAA;;;;CACH;AAlDD,kDAkDC"}
\ No newline at end of file
diff --git a/build/commonjs/mtcnn/extractParams.d.ts b/build/commonjs/mtcnn/extractParams.d.ts
deleted file mode 100644
index 40295777..00000000
--- a/build/commonjs/mtcnn/extractParams.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { ParamMapping } from 'tfjs-image-recognition-base';
-import { NetParams } from './types';
-export declare function extractParams(weights: Float32Array): {
- params: NetParams;
- paramMappings: ParamMapping[];
-};
diff --git a/build/commonjs/mtcnn/extractParams.js b/build/commonjs/mtcnn/extractParams.js
deleted file mode 100644
index 31a8189b..00000000
--- a/build/commonjs/mtcnn/extractParams.js
+++ /dev/null
@@ -1,69 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tslib_1 = require("tslib");
-var tf = require("@tensorflow/tfjs-core");
-var tfjs_image_recognition_base_1 = require("tfjs-image-recognition-base");
-var tfjs_tiny_yolov2_1 = require("tfjs-tiny-yolov2");
-function extractorsFactory(extractWeights, paramMappings) {
- var extractConvParams = tfjs_tiny_yolov2_1.extractConvParamsFactory(extractWeights, paramMappings);
- var extractFCParams = tfjs_tiny_yolov2_1.extractFCParamsFactory(extractWeights, paramMappings);
- function extractPReluParams(size, paramPath) {
- var alpha = tf.tensor1d(extractWeights(size));
- paramMappings.push({ paramPath: paramPath });
- return alpha;
- }
- function extractSharedParams(numFilters, mappedPrefix, isRnet) {
- if (isRnet === void 0) { isRnet = false; }
- var conv1 = extractConvParams(numFilters[0], numFilters[1], 3, mappedPrefix + "/conv1");
- var prelu1_alpha = extractPReluParams(numFilters[1], mappedPrefix + "/prelu1_alpha");
- var conv2 = extractConvParams(numFilters[1], numFilters[2], 3, mappedPrefix + "/conv2");
- var prelu2_alpha = extractPReluParams(numFilters[2], mappedPrefix + "/prelu2_alpha");
- var conv3 = extractConvParams(numFilters[2], numFilters[3], isRnet ? 2 : 3, mappedPrefix + "/conv3");
- var prelu3_alpha = extractPReluParams(numFilters[3], mappedPrefix + "/prelu3_alpha");
- return { conv1: conv1, prelu1_alpha: prelu1_alpha, conv2: conv2, prelu2_alpha: prelu2_alpha, conv3: conv3, prelu3_alpha: prelu3_alpha };
- }
- function extractPNetParams() {
- var sharedParams = extractSharedParams([3, 10, 16, 32], 'pnet');
- var conv4_1 = extractConvParams(32, 2, 1, 'pnet/conv4_1');
- var conv4_2 = extractConvParams(32, 4, 1, 'pnet/conv4_2');
- return tslib_1.__assign({}, sharedParams, { conv4_1: conv4_1, conv4_2: conv4_2 });
- }
- function extractRNetParams() {
- var sharedParams = extractSharedParams([3, 28, 48, 64], 'rnet', true);
- var fc1 = extractFCParams(576, 128, 'rnet/fc1');
- var prelu4_alpha = extractPReluParams(128, 'rnet/prelu4_alpha');
- var fc2_1 = extractFCParams(128, 2, 'rnet/fc2_1');
- var fc2_2 = extractFCParams(128, 4, 'rnet/fc2_2');
- return tslib_1.__assign({}, sharedParams, { fc1: fc1, prelu4_alpha: prelu4_alpha, fc2_1: fc2_1, fc2_2: fc2_2 });
- }
- function extractONetParams() {
- var sharedParams = extractSharedParams([3, 32, 64, 64], 'onet');
- var conv4 = extractConvParams(64, 128, 2, 'onet/conv4');
- var prelu4_alpha = extractPReluParams(128, 'onet/prelu4_alpha');
- var fc1 = extractFCParams(1152, 256, 'onet/fc1');
- var prelu5_alpha = extractPReluParams(256, 'onet/prelu5_alpha');
- var fc2_1 = extractFCParams(256, 2, 'onet/fc2_1');
- var fc2_2 = extractFCParams(256, 4, 'onet/fc2_2');
- var fc2_3 = extractFCParams(256, 10, 'onet/fc2_3');
- return tslib_1.__assign({}, sharedParams, { conv4: conv4, prelu4_alpha: prelu4_alpha, fc1: fc1, prelu5_alpha: prelu5_alpha, fc2_1: fc2_1, fc2_2: fc2_2, fc2_3: fc2_3 });
- }
- return {
- extractPNetParams: extractPNetParams,
- extractRNetParams: extractRNetParams,
- extractONetParams: extractONetParams
- };
-}
-function extractParams(weights) {
- var _a = tfjs_image_recognition_base_1.extractWeightsFactory(weights), extractWeights = _a.extractWeights, getRemainingWeights = _a.getRemainingWeights;
- var paramMappings = [];
- var _b = extractorsFactory(extractWeights, paramMappings), extractPNetParams = _b.extractPNetParams, extractRNetParams = _b.extractRNetParams, extractONetParams = _b.extractONetParams;
- var pnet = extractPNetParams();
- var rnet = extractRNetParams();
- var onet = extractONetParams();
- if (getRemainingWeights().length !== 0) {
- throw new Error("weights remaing after extract: " + getRemainingWeights().length);
- }
- return { params: { pnet: pnet, rnet: rnet, onet: onet }, paramMappings: paramMappings };
-}
-exports.extractParams = extractParams;
-//# sourceMappingURL=extractParams.js.map
\ No newline at end of file
diff --git a/build/commonjs/mtcnn/extractParams.js.map b/build/commonjs/mtcnn/extractParams.js.map
deleted file mode 100644
index 7f78c4f5..00000000
--- a/build/commonjs/mtcnn/extractParams.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"extractParams.js","sourceRoot":"","sources":["../../../src/mtcnn/extractParams.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/build/commonjs/mtcnn/getSizesForScale.d.ts b/build/commonjs/mtcnn/getSizesForScale.d.ts
deleted file mode 100644
index 4ab739a5..00000000
--- a/build/commonjs/mtcnn/getSizesForScale.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-export declare function getSizesForScale(scale: number, [height, width]: number[]): {
- height: number;
- width: number;
-};
diff --git a/build/commonjs/mtcnn/getSizesForScale.js b/build/commonjs/mtcnn/getSizesForScale.js
deleted file mode 100644
index b2cd4cee..00000000
--- a/build/commonjs/mtcnn/getSizesForScale.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-function getSizesForScale(scale, _a) {
- var height = _a[0], width = _a[1];
- return {
- height: Math.floor(height * scale),
- width: Math.floor(width * scale)
- };
-}
-exports.getSizesForScale = getSizesForScale;
-//# sourceMappingURL=getSizesForScale.js.map
\ No newline at end of file
diff --git a/build/commonjs/mtcnn/getSizesForScale.js.map b/build/commonjs/mtcnn/getSizesForScale.js.map
deleted file mode 100644
index 8eb9fe46..00000000
--- a/build/commonjs/mtcnn/getSizesForScale.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"getSizesForScale.js","sourceRoot":"","sources":["../../../src/mtcnn/getSizesForScale.ts"],"names":[],"mappings":";;AAAA,0BAAiC,KAAa,EAAE,EAAyB;QAAxB,cAAM,EAAE,aAAK;IAC5D,OAAO;QACL,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;QAClC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;KACjC,CAAA;AACH,CAAC;AALD,4CAKC"}
\ No newline at end of file
diff --git a/build/commonjs/mtcnn/index.d.ts b/build/commonjs/mtcnn/index.d.ts
deleted file mode 100644
index 8e8e10ee..00000000
--- a/build/commonjs/mtcnn/index.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import { Mtcnn } from './Mtcnn';
-export * from './Mtcnn';
-export * from './MtcnnOptions';
-export declare function createMtcnn(weights: Float32Array): Mtcnn;
diff --git a/build/commonjs/mtcnn/index.js b/build/commonjs/mtcnn/index.js
deleted file mode 100644
index 6e03c6a2..00000000
--- a/build/commonjs/mtcnn/index.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tslib_1 = require("tslib");
-var Mtcnn_1 = require("./Mtcnn");
-tslib_1.__exportStar(require("./Mtcnn"), exports);
-tslib_1.__exportStar(require("./MtcnnOptions"), exports);
-function createMtcnn(weights) {
- var net = new Mtcnn_1.Mtcnn();
- net.extractWeights(weights);
- return net;
-}
-exports.createMtcnn = createMtcnn;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/build/commonjs/mtcnn/index.js.map b/build/commonjs/mtcnn/index.js.map
deleted file mode 100644
index c767f401..00000000
--- a/build/commonjs/mtcnn/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mtcnn/index.ts"],"names":[],"mappings":";;;AAAA,iCAAgC;AAEhC,kDAAwB;AACxB,yDAA+B;AAE/B,qBAA4B,OAAqB;IAC/C,IAAM,GAAG,GAAG,IAAI,aAAK,EAAE,CAAA;IACvB,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;IAC3B,OAAO,GAAG,CAAA;AACZ,CAAC;AAJD,kCAIC"}
\ No newline at end of file
diff --git a/build/commonjs/mtcnn/loadQuantizedParams.d.ts b/build/commonjs/mtcnn/loadQuantizedParams.d.ts
deleted file mode 100644
index c5e1dc44..00000000
--- a/build/commonjs/mtcnn/loadQuantizedParams.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { ParamMapping } from 'tfjs-image-recognition-base';
-import { NetParams } from './types';
-export declare function loadQuantizedParams(uri: string | undefined): Promise<{
- params: NetParams;
- paramMappings: ParamMapping[];
-}>;
diff --git a/build/commonjs/mtcnn/loadQuantizedParams.js b/build/commonjs/mtcnn/loadQuantizedParams.js
deleted file mode 100644
index 65f271ee..00000000
--- a/build/commonjs/mtcnn/loadQuantizedParams.js
+++ /dev/null
@@ -1,81 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tslib_1 = require("tslib");
-var tfjs_image_recognition_base_1 = require("tfjs-image-recognition-base");
-var DEFAULT_MODEL_NAME = 'mtcnn_model';
-function extractorsFactory(weightMap, paramMappings) {
- var extractWeightEntry = tfjs_image_recognition_base_1.extractWeightEntryFactory(weightMap, paramMappings);
- function extractConvParams(prefix) {
- var filters = extractWeightEntry(prefix + "/weights", 4, prefix + "/filters");
- var bias = extractWeightEntry(prefix + "/bias", 1);
- return { filters: filters, bias: bias };
- }
- function extractFCParams(prefix) {
- var weights = extractWeightEntry(prefix + "/weights", 2);
- var bias = extractWeightEntry(prefix + "/bias", 1);
- return { weights: weights, bias: bias };
- }
- function extractPReluParams(paramPath) {
- return extractWeightEntry(paramPath, 1);
- }
- function extractSharedParams(prefix) {
- var conv1 = extractConvParams(prefix + "/conv1");
- var prelu1_alpha = extractPReluParams(prefix + "/prelu1_alpha");
- var conv2 = extractConvParams(prefix + "/conv2");
- var prelu2_alpha = extractPReluParams(prefix + "/prelu2_alpha");
- var conv3 = extractConvParams(prefix + "/conv3");
- var prelu3_alpha = extractPReluParams(prefix + "/prelu3_alpha");
- return { conv1: conv1, prelu1_alpha: prelu1_alpha, conv2: conv2, prelu2_alpha: prelu2_alpha, conv3: conv3, prelu3_alpha: prelu3_alpha };
- }
- function extractPNetParams() {
- var sharedParams = extractSharedParams('pnet');
- var conv4_1 = extractConvParams('pnet/conv4_1');
- var conv4_2 = extractConvParams('pnet/conv4_2');
- return tslib_1.__assign({}, sharedParams, { conv4_1: conv4_1, conv4_2: conv4_2 });
- }
- function extractRNetParams() {
- var sharedParams = extractSharedParams('rnet');
- var fc1 = extractFCParams('rnet/fc1');
- var prelu4_alpha = extractPReluParams('rnet/prelu4_alpha');
- var fc2_1 = extractFCParams('rnet/fc2_1');
- var fc2_2 = extractFCParams('rnet/fc2_2');
- return tslib_1.__assign({}, sharedParams, { fc1: fc1, prelu4_alpha: prelu4_alpha, fc2_1: fc2_1, fc2_2: fc2_2 });
- }
- function extractONetParams() {
- var sharedParams = extractSharedParams('onet');
- var conv4 = extractConvParams('onet/conv4');
- var prelu4_alpha = extractPReluParams('onet/prelu4_alpha');
- var fc1 = extractFCParams('onet/fc1');
- var prelu5_alpha = extractPReluParams('onet/prelu5_alpha');
- var fc2_1 = extractFCParams('onet/fc2_1');
- var fc2_2 = extractFCParams('onet/fc2_2');
- var fc2_3 = extractFCParams('onet/fc2_3');
- return tslib_1.__assign({}, sharedParams, { conv4: conv4, prelu4_alpha: prelu4_alpha, fc1: fc1, prelu5_alpha: prelu5_alpha, fc2_1: fc2_1, fc2_2: fc2_2, fc2_3: fc2_3 });
- }
- return {
- extractPNetParams: extractPNetParams,
- extractRNetParams: extractRNetParams,
- extractONetParams: extractONetParams
- };
-}
-function loadQuantizedParams(uri) {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var weightMap, paramMappings, _a, extractPNetParams, extractRNetParams, extractONetParams, pnet, rnet, onet;
- return tslib_1.__generator(this, function (_b) {
- switch (_b.label) {
- case 0: return [4 /*yield*/, tfjs_image_recognition_base_1.loadWeightMap(uri, DEFAULT_MODEL_NAME)];
- case 1:
- weightMap = _b.sent();
- paramMappings = [];
- _a = extractorsFactory(weightMap, paramMappings), extractPNetParams = _a.extractPNetParams, extractRNetParams = _a.extractRNetParams, extractONetParams = _a.extractONetParams;
- pnet = extractPNetParams();
- rnet = extractRNetParams();
- onet = extractONetParams();
- tfjs_image_recognition_base_1.disposeUnusedWeightTensors(weightMap, paramMappings);
- return [2 /*return*/, { params: { pnet: pnet, rnet: rnet, onet: onet }, paramMappings: paramMappings }];
- }
- });
- });
-}
-exports.loadQuantizedParams = loadQuantizedParams;
-//# sourceMappingURL=loadQuantizedParams.js.map
\ No newline at end of file
diff --git a/build/commonjs/mtcnn/loadQuantizedParams.js.map b/build/commonjs/mtcnn/loadQuantizedParams.js.map
deleted file mode 100644
index 0633bd30..00000000
--- a/build/commonjs/mtcnn/loadQuantizedParams.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"loadQuantizedParams.js","sourceRoot":"","sources":["../../../src/mtcnn/loadQuantizedParams.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/build/commonjs/mtcnn/normalize.d.ts b/build/commonjs/mtcnn/normalize.d.ts
deleted file mode 100644
index 1a14045d..00000000
--- a/build/commonjs/mtcnn/normalize.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-export declare function normalize(x: tf.Tensor4D): tf.Tensor4D;
diff --git a/build/commonjs/mtcnn/normalize.js b/build/commonjs/mtcnn/normalize.js
deleted file mode 100644
index e0cff3f7..00000000
--- a/build/commonjs/mtcnn/normalize.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tf = require("@tensorflow/tfjs-core");
-function normalize(x) {
- return tf.tidy(function () { return tf.mul(tf.sub(x, tf.scalar(127.5)), tf.scalar(0.0078125)); });
-}
-exports.normalize = normalize;
-//# sourceMappingURL=normalize.js.map
\ No newline at end of file
diff --git a/build/commonjs/mtcnn/normalize.js.map b/build/commonjs/mtcnn/normalize.js.map
deleted file mode 100644
index 64982e36..00000000
--- a/build/commonjs/mtcnn/normalize.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../../src/mtcnn/normalize.ts"],"names":[],"mappings":";;AAAA,0CAA4C;AAE5C,mBAA0B,CAAc;IACtC,OAAO,EAAE,CAAC,IAAI,CACZ,cAAM,OAAA,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAzD,CAAyD,CAChE,CAAA;AACH,CAAC;AAJD,8BAIC"}
\ No newline at end of file
diff --git a/build/commonjs/mtcnn/prelu.d.ts b/build/commonjs/mtcnn/prelu.d.ts
deleted file mode 100644
index 3019168f..00000000
--- a/build/commonjs/mtcnn/prelu.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-export declare function prelu(x: T, alpha: tf.Tensor1D): T;
diff --git a/build/commonjs/mtcnn/prelu.js b/build/commonjs/mtcnn/prelu.js
deleted file mode 100644
index c6c2e457..00000000
--- a/build/commonjs/mtcnn/prelu.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tf = require("@tensorflow/tfjs-core");
-function prelu(x, alpha) {
- return tf.tidy(function () {
- return tf.add(tf.relu(x), tf.mul(alpha, tf.neg(tf.relu(tf.neg(x)))));
- });
-}
-exports.prelu = prelu;
-//# sourceMappingURL=prelu.js.map
\ No newline at end of file
diff --git a/build/commonjs/mtcnn/prelu.js.map b/build/commonjs/mtcnn/prelu.js.map
deleted file mode 100644
index 78499e69..00000000
--- a/build/commonjs/mtcnn/prelu.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"prelu.js","sourceRoot":"","sources":["../../../src/mtcnn/prelu.ts"],"names":[],"mappings":";;AAAA,0CAA4C;AAE5C,eAA2C,CAAI,EAAE,KAAkB;IACjE,OAAO,EAAE,CAAC,IAAI,CAAC;QACb,OAAA,EAAE,CAAC,GAAG,CACJ,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EACV,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC1C;IAHD,CAGC,CACF,CAAA;AACH,CAAC;AAPD,sBAOC"}
\ No newline at end of file
diff --git a/build/commonjs/mtcnn/pyramidDown.d.ts b/build/commonjs/mtcnn/pyramidDown.d.ts
deleted file mode 100644
index 58073049..00000000
--- a/build/commonjs/mtcnn/pyramidDown.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export declare function pyramidDown(minFaceSize: number, scaleFactor: number, dims: number[]): number[];
diff --git a/build/commonjs/mtcnn/pyramidDown.js b/build/commonjs/mtcnn/pyramidDown.js
deleted file mode 100644
index 44ab651a..00000000
--- a/build/commonjs/mtcnn/pyramidDown.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var config_1 = require("./config");
-function pyramidDown(minFaceSize, scaleFactor, dims) {
- var height = dims[0], width = dims[1];
- var m = config_1.CELL_SIZE / minFaceSize;
- var scales = [];
- var minLayer = Math.min(height, width) * m;
- var exp = 0;
- while (minLayer >= 12) {
- scales.push(m * Math.pow(scaleFactor, exp));
- minLayer = minLayer * scaleFactor;
- exp += 1;
- }
- return scales;
-}
-exports.pyramidDown = pyramidDown;
-//# sourceMappingURL=pyramidDown.js.map
\ No newline at end of file
diff --git a/build/commonjs/mtcnn/pyramidDown.js.map b/build/commonjs/mtcnn/pyramidDown.js.map
deleted file mode 100644
index a076ebd9..00000000
--- a/build/commonjs/mtcnn/pyramidDown.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"pyramidDown.js","sourceRoot":"","sources":["../../../src/mtcnn/pyramidDown.ts"],"names":[],"mappings":";;AAAA,mCAAqC;AAErC,qBAA4B,WAAmB,EAAE,WAAmB,EAAE,IAAc;IAE3E,IAAA,gBAAM,EAAE,eAAK,CAAQ;IAC5B,IAAM,CAAC,GAAG,kBAAS,GAAG,WAAW,CAAA;IAEjC,IAAM,MAAM,GAAG,EAAE,CAAA;IAEjB,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;IAC1C,IAAI,GAAG,GAAG,CAAC,CAAA;IACX,OAAO,QAAQ,IAAI,EAAE,EAAE;QACrB,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAA;QAC3C,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAA;QACjC,GAAG,IAAI,CAAC,CAAA;KACT;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAhBD,kCAgBC"}
\ No newline at end of file
diff --git a/build/commonjs/mtcnn/sharedLayers.d.ts b/build/commonjs/mtcnn/sharedLayers.d.ts
deleted file mode 100644
index afc63db2..00000000
--- a/build/commonjs/mtcnn/sharedLayers.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { SharedParams } from './types';
-export declare function sharedLayer(x: tf.Tensor4D, params: SharedParams, isPnet?: boolean): tf.Tensor;
diff --git a/build/commonjs/mtcnn/sharedLayers.js b/build/commonjs/mtcnn/sharedLayers.js
deleted file mode 100644
index 4fbda0e7..00000000
--- a/build/commonjs/mtcnn/sharedLayers.js
+++ /dev/null
@@ -1,21 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tf = require("@tensorflow/tfjs-core");
-var tfjs_tiny_yolov2_1 = require("tfjs-tiny-yolov2");
-var prelu_1 = require("./prelu");
-function sharedLayer(x, params, isPnet) {
- if (isPnet === void 0) { isPnet = false; }
- return tf.tidy(function () {
- var out = tfjs_tiny_yolov2_1.convLayer(x, params.conv1, 'valid');
- out = prelu_1.prelu(out, params.prelu1_alpha);
- out = tf.maxPool(out, isPnet ? [2, 2] : [3, 3], [2, 2], 'same');
- out = tfjs_tiny_yolov2_1.convLayer(out, params.conv2, 'valid');
- out = prelu_1.prelu(out, params.prelu2_alpha);
- out = isPnet ? out : tf.maxPool(out, [3, 3], [2, 2], 'valid');
- out = tfjs_tiny_yolov2_1.convLayer(out, params.conv3, 'valid');
- out = prelu_1.prelu(out, params.prelu3_alpha);
- return out;
- });
-}
-exports.sharedLayer = sharedLayer;
-//# sourceMappingURL=sharedLayers.js.map
\ No newline at end of file
diff --git a/build/commonjs/mtcnn/sharedLayers.js.map b/build/commonjs/mtcnn/sharedLayers.js.map
deleted file mode 100644
index fb748296..00000000
--- a/build/commonjs/mtcnn/sharedLayers.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"sharedLayers.js","sourceRoot":"","sources":["../../../src/mtcnn/sharedLayers.ts"],"names":[],"mappings":";;AAAA,0CAA4C;AAC5C,qDAA6C;AAE7C,iCAAgC;AAGhC,qBAA4B,CAAc,EAAE,MAAoB,EAAE,MAAuB;IAAvB,uBAAA,EAAA,cAAuB;IACvF,OAAO,EAAE,CAAC,IAAI,CAAC;QAEb,IAAI,GAAG,GAAG,4BAAS,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QAC7C,GAAG,GAAG,aAAK,CAAc,GAAG,EAAE,MAAM,CAAC,YAAY,CAAC,CAAA;QAClD,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;QAC9D,GAAG,GAAG,4BAAS,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QAC3C,GAAG,GAAG,aAAK,CAAc,GAAG,EAAE,MAAM,CAAC,YAAY,CAAC,CAAA;QAClD,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;QAC7D,GAAG,GAAG,4BAAS,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QAC3C,GAAG,GAAG,aAAK,CAAc,GAAG,EAAE,MAAM,CAAC,YAAY,CAAC,CAAA;QAElD,OAAO,GAAG,CAAA;IACZ,CAAC,CAAC,CAAA;AACJ,CAAC;AAdD,kCAcC"}
\ No newline at end of file
diff --git a/build/commonjs/mtcnn/stage1.d.ts b/build/commonjs/mtcnn/stage1.d.ts
deleted file mode 100644
index f096cea1..00000000
--- a/build/commonjs/mtcnn/stage1.d.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { BoundingBox } from 'tfjs-image-recognition-base';
-import { PNetParams } from './types';
-export declare function stage1(imgTensor: tf.Tensor4D, scales: number[], scoreThreshold: number, params: PNetParams, stats: any): {
- boxes: BoundingBox[];
- scores: number[];
-};
diff --git a/build/commonjs/mtcnn/stage1.js b/build/commonjs/mtcnn/stage1.js
deleted file mode 100644
index 14ad0297..00000000
--- a/build/commonjs/mtcnn/stage1.js
+++ /dev/null
@@ -1,94 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tf = require("@tensorflow/tfjs-core");
-var tfjs_image_recognition_base_1 = require("tfjs-image-recognition-base");
-var config_1 = require("./config");
-var getSizesForScale_1 = require("./getSizesForScale");
-var MtcnnBox_1 = require("./MtcnnBox");
-var normalize_1 = require("./normalize");
-var PNet_1 = require("./PNet");
-function rescaleAndNormalize(x, scale) {
- return tf.tidy(function () {
- var _a = getSizesForScale_1.getSizesForScale(scale, x.shape.slice(1)), height = _a.height, width = _a.width;
- var resized = tf.image.resizeBilinear(x, [height, width]);
- var normalized = normalize_1.normalize(resized);
- return tf.transpose(normalized, [0, 2, 1, 3]);
- });
-}
-function extractBoundingBoxes(scoresTensor, regionsTensor, scale, scoreThreshold) {
- // TODO: fix this!, maybe better to use tf.gather here
- var indices = [];
- for (var y = 0; y < scoresTensor.shape[0]; y++) {
- for (var x = 0; x < scoresTensor.shape[1]; x++) {
- if (scoresTensor.get(y, x) >= scoreThreshold) {
- indices.push(new tfjs_image_recognition_base_1.Point(x, y));
- }
- }
- }
- var boundingBoxes = indices.map(function (idx) {
- var cell = new tfjs_image_recognition_base_1.BoundingBox(Math.round((idx.y * config_1.CELL_STRIDE + 1) / scale), Math.round((idx.x * config_1.CELL_STRIDE + 1) / scale), Math.round((idx.y * config_1.CELL_STRIDE + config_1.CELL_SIZE) / scale), Math.round((idx.x * config_1.CELL_STRIDE + config_1.CELL_SIZE) / scale));
- var score = scoresTensor.get(idx.y, idx.x);
- var region = new MtcnnBox_1.MtcnnBox(regionsTensor.get(idx.y, idx.x, 0), regionsTensor.get(idx.y, idx.x, 1), regionsTensor.get(idx.y, idx.x, 2), regionsTensor.get(idx.y, idx.x, 3));
- return {
- cell: cell,
- score: score,
- region: region
- };
- });
- return boundingBoxes;
-}
-function stage1(imgTensor, scales, scoreThreshold, params, stats) {
- stats.stage1 = [];
- var pnetOutputs = scales.map(function (scale) { return tf.tidy(function () {
- var statsForScale = { scale: scale };
- var resized = rescaleAndNormalize(imgTensor, scale);
- var ts = Date.now();
- var _a = PNet_1.PNet(resized, params), prob = _a.prob, regions = _a.regions;
- statsForScale.pnet = Date.now() - ts;
- var scoresTensor = tf.unstack(tf.unstack(prob, 3)[1])[0];
- var regionsTensor = tf.unstack(regions)[0];
- return {
- scoresTensor: scoresTensor,
- regionsTensor: regionsTensor,
- scale: scale,
- statsForScale: statsForScale
- };
- }); });
- var boxesForScale = pnetOutputs.map(function (_a) {
- var scoresTensor = _a.scoresTensor, regionsTensor = _a.regionsTensor, scale = _a.scale, statsForScale = _a.statsForScale;
- var boundingBoxes = extractBoundingBoxes(scoresTensor, regionsTensor, scale, scoreThreshold);
- scoresTensor.dispose();
- regionsTensor.dispose();
- if (!boundingBoxes.length) {
- stats.stage1.push(statsForScale);
- return [];
- }
- var ts = Date.now();
- var indices = tfjs_image_recognition_base_1.nonMaxSuppression(boundingBoxes.map(function (bbox) { return bbox.cell; }), boundingBoxes.map(function (bbox) { return bbox.score; }), 0.5);
- statsForScale.nms = Date.now() - ts;
- statsForScale.numBoxes = indices.length;
- stats.stage1.push(statsForScale);
- return indices.map(function (boxIdx) { return boundingBoxes[boxIdx]; });
- });
- var allBoxes = boxesForScale.reduce(function (all, boxes) { return all.concat(boxes); }, []);
- var finalBoxes = [];
- var finalScores = [];
- if (allBoxes.length > 0) {
- var ts = Date.now();
- var indices = tfjs_image_recognition_base_1.nonMaxSuppression(allBoxes.map(function (bbox) { return bbox.cell; }), allBoxes.map(function (bbox) { return bbox.score; }), 0.7);
- stats.stage1_nms = Date.now() - ts;
- finalScores = indices.map(function (idx) { return allBoxes[idx].score; });
- finalBoxes = indices
- .map(function (idx) { return allBoxes[idx]; })
- .map(function (_a) {
- var cell = _a.cell, region = _a.region;
- return new tfjs_image_recognition_base_1.BoundingBox(cell.left + (region.left * cell.width), cell.top + (region.top * cell.height), cell.right + (region.right * cell.width), cell.bottom + (region.bottom * cell.height)).toSquare().round();
- });
- }
- return {
- boxes: finalBoxes,
- scores: finalScores
- };
-}
-exports.stage1 = stage1;
-//# sourceMappingURL=stage1.js.map
\ No newline at end of file
diff --git a/build/commonjs/mtcnn/stage1.js.map b/build/commonjs/mtcnn/stage1.js.map
deleted file mode 100644
index 48a2e6a5..00000000
--- a/build/commonjs/mtcnn/stage1.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"stage1.js","sourceRoot":"","sources":["../../../src/mtcnn/stage1.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/build/commonjs/mtcnn/stage2.d.ts b/build/commonjs/mtcnn/stage2.d.ts
deleted file mode 100644
index de3a4c61..00000000
--- a/build/commonjs/mtcnn/stage2.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { Box } from 'tfjs-image-recognition-base';
-import { RNetParams } from './types';
-export declare function stage2(img: HTMLCanvasElement, inputBoxes: Box[], scoreThreshold: number, params: RNetParams, stats: any): Promise<{
- boxes: Box[];
- scores: number[];
-}>;
diff --git a/build/commonjs/mtcnn/stage2.js b/build/commonjs/mtcnn/stage2.js
deleted file mode 100644
index 72375ab1..00000000
--- a/build/commonjs/mtcnn/stage2.js
+++ /dev/null
@@ -1,69 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tslib_1 = require("tslib");
-var tf = require("@tensorflow/tfjs-core");
-var tfjs_image_recognition_base_1 = require("tfjs-image-recognition-base");
-var extractImagePatches_1 = require("./extractImagePatches");
-var MtcnnBox_1 = require("./MtcnnBox");
-var RNet_1 = require("./RNet");
-function stage2(img, inputBoxes, scoreThreshold, params, stats) {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var ts, rnetInputs, rnetOuts, scoresTensor, scores, _a, _b, indices, filteredBoxes, filteredScores, finalBoxes, finalScores, indicesNms, regions_1;
- return tslib_1.__generator(this, function (_c) {
- switch (_c.label) {
- case 0:
- ts = Date.now();
- return [4 /*yield*/, extractImagePatches_1.extractImagePatches(img, inputBoxes, { width: 24, height: 24 })];
- case 1:
- rnetInputs = _c.sent();
- stats.stage2_extractImagePatches = Date.now() - ts;
- ts = Date.now();
- rnetOuts = rnetInputs.map(function (rnetInput) {
- var out = RNet_1.RNet(rnetInput, params);
- rnetInput.dispose();
- return out;
- });
- stats.stage2_rnet = Date.now() - ts;
- scoresTensor = rnetOuts.length > 1
- ? tf.concat(rnetOuts.map(function (out) { return out.scores; }))
- : rnetOuts[0].scores;
- _b = (_a = Array).from;
- return [4 /*yield*/, scoresTensor.data()];
- case 2:
- scores = _b.apply(_a, [_c.sent()]);
- scoresTensor.dispose();
- indices = scores
- .map(function (score, idx) { return ({ score: score, idx: idx }); })
- .filter(function (c) { return c.score > scoreThreshold; })
- .map(function (_a) {
- var idx = _a.idx;
- return idx;
- });
- filteredBoxes = indices.map(function (idx) { return inputBoxes[idx]; });
- filteredScores = indices.map(function (idx) { return scores[idx]; });
- finalBoxes = [];
- finalScores = [];
- if (filteredBoxes.length > 0) {
- ts = Date.now();
- indicesNms = tfjs_image_recognition_base_1.nonMaxSuppression(filteredBoxes, filteredScores, 0.7);
- stats.stage2_nms = Date.now() - ts;
- regions_1 = indicesNms.map(function (idx) {
- return new MtcnnBox_1.MtcnnBox(rnetOuts[indices[idx]].regions.get(0, 0), rnetOuts[indices[idx]].regions.get(0, 1), rnetOuts[indices[idx]].regions.get(0, 2), rnetOuts[indices[idx]].regions.get(0, 3));
- });
- finalScores = indicesNms.map(function (idx) { return filteredScores[idx]; });
- finalBoxes = indicesNms.map(function (idx, i) { return filteredBoxes[idx].calibrate(regions_1[i]); });
- }
- rnetOuts.forEach(function (t) {
- t.regions.dispose();
- t.scores.dispose();
- });
- return [2 /*return*/, {
- boxes: finalBoxes,
- scores: finalScores
- }];
- }
- });
- });
-}
-exports.stage2 = stage2;
-//# sourceMappingURL=stage2.js.map
\ No newline at end of file
diff --git a/build/commonjs/mtcnn/stage2.js.map b/build/commonjs/mtcnn/stage2.js.map
deleted file mode 100644
index d2a8b464..00000000
--- a/build/commonjs/mtcnn/stage2.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"stage2.js","sourceRoot":"","sources":["../../../src/mtcnn/stage2.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/build/commonjs/mtcnn/stage3.d.ts b/build/commonjs/mtcnn/stage3.d.ts
deleted file mode 100644
index 607d3047..00000000
--- a/build/commonjs/mtcnn/stage3.d.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import { BoundingBox, Box, Point } from 'tfjs-image-recognition-base';
-import { ONetParams } from './types';
-export declare function stage3(img: HTMLCanvasElement, inputBoxes: BoundingBox[], scoreThreshold: number, params: ONetParams, stats: any): Promise<{
- boxes: Box[];
- scores: number[];
- points: Point[][];
-}>;
diff --git a/build/commonjs/mtcnn/stage3.js b/build/commonjs/mtcnn/stage3.js
deleted file mode 100644
index 09dd0b17..00000000
--- a/build/commonjs/mtcnn/stage3.js
+++ /dev/null
@@ -1,76 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tslib_1 = require("tslib");
-var tf = require("@tensorflow/tfjs-core");
-var tfjs_image_recognition_base_1 = require("tfjs-image-recognition-base");
-var extractImagePatches_1 = require("./extractImagePatches");
-var MtcnnBox_1 = require("./MtcnnBox");
-var ONet_1 = require("./ONet");
-function stage3(img, inputBoxes, scoreThreshold, params, stats) {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var ts, onetInputs, onetOuts, scoresTensor, scores, _a, _b, indices, filteredRegions, filteredBoxes, filteredScores, finalBoxes, finalScores, points, indicesNms;
- return tslib_1.__generator(this, function (_c) {
- switch (_c.label) {
- case 0:
- ts = Date.now();
- return [4 /*yield*/, extractImagePatches_1.extractImagePatches(img, inputBoxes, { width: 48, height: 48 })];
- case 1:
- onetInputs = _c.sent();
- stats.stage3_extractImagePatches = Date.now() - ts;
- ts = Date.now();
- onetOuts = onetInputs.map(function (onetInput) {
- var out = ONet_1.ONet(onetInput, params);
- onetInput.dispose();
- return out;
- });
- stats.stage3_onet = Date.now() - ts;
- scoresTensor = onetOuts.length > 1
- ? tf.concat(onetOuts.map(function (out) { return out.scores; }))
- : onetOuts[0].scores;
- _b = (_a = Array).from;
- return [4 /*yield*/, scoresTensor.data()];
- case 2:
- scores = _b.apply(_a, [_c.sent()]);
- scoresTensor.dispose();
- indices = scores
- .map(function (score, idx) { return ({ score: score, idx: idx }); })
- .filter(function (c) { return c.score > scoreThreshold; })
- .map(function (_a) {
- var idx = _a.idx;
- return idx;
- });
- filteredRegions = indices.map(function (idx) { return new MtcnnBox_1.MtcnnBox(onetOuts[idx].regions.get(0, 0), onetOuts[idx].regions.get(0, 1), onetOuts[idx].regions.get(0, 2), onetOuts[idx].regions.get(0, 3)); });
- filteredBoxes = indices
- .map(function (idx, i) { return inputBoxes[idx].calibrate(filteredRegions[i]); });
- filteredScores = indices.map(function (idx) { return scores[idx]; });
- finalBoxes = [];
- finalScores = [];
- points = [];
- if (filteredBoxes.length > 0) {
- ts = Date.now();
- indicesNms = tfjs_image_recognition_base_1.nonMaxSuppression(filteredBoxes, filteredScores, 0.7, false);
- stats.stage3_nms = Date.now() - ts;
- finalBoxes = indicesNms.map(function (idx) { return filteredBoxes[idx]; });
- finalScores = indicesNms.map(function (idx) { return filteredScores[idx]; });
- points = indicesNms.map(function (idx, i) {
- return Array(5).fill(0).map(function (_, ptIdx) {
- return new tfjs_image_recognition_base_1.Point(((onetOuts[idx].points.get(0, ptIdx) * (finalBoxes[i].width + 1)) + finalBoxes[i].left), ((onetOuts[idx].points.get(0, ptIdx + 5) * (finalBoxes[i].height + 1)) + finalBoxes[i].top));
- });
- });
- }
- onetOuts.forEach(function (t) {
- t.regions.dispose();
- t.scores.dispose();
- t.points.dispose();
- });
- return [2 /*return*/, {
- boxes: finalBoxes,
- scores: finalScores,
- points: points
- }];
- }
- });
- });
-}
-exports.stage3 = stage3;
-//# sourceMappingURL=stage3.js.map
\ No newline at end of file
diff --git a/build/commonjs/mtcnn/stage3.js.map b/build/commonjs/mtcnn/stage3.js.map
deleted file mode 100644
index a01f3aaa..00000000
--- a/build/commonjs/mtcnn/stage3.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"stage3.js","sourceRoot":"","sources":["../../../src/mtcnn/stage3.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/build/commonjs/mtcnn/types.d.ts b/build/commonjs/mtcnn/types.d.ts
deleted file mode 100644
index fc2b533d..00000000
--- a/build/commonjs/mtcnn/types.d.ts
+++ /dev/null
@@ -1,34 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { ConvParams, FCParams } from 'tfjs-tiny-yolov2';
-export declare type SharedParams = {
- conv1: ConvParams;
- prelu1_alpha: tf.Tensor1D;
- conv2: ConvParams;
- prelu2_alpha: tf.Tensor1D;
- conv3: ConvParams;
- prelu3_alpha: tf.Tensor1D;
-};
-export declare type PNetParams = SharedParams & {
- conv4_1: ConvParams;
- conv4_2: ConvParams;
-};
-export declare type RNetParams = SharedParams & {
- fc1: FCParams;
- prelu4_alpha: tf.Tensor1D;
- fc2_1: FCParams;
- fc2_2: FCParams;
-};
-export declare type ONetParams = SharedParams & {
- conv4: ConvParams;
- prelu4_alpha: tf.Tensor1D;
- fc1: FCParams;
- prelu5_alpha: tf.Tensor1D;
- fc2_1: FCParams;
- fc2_2: FCParams;
- fc2_3: FCParams;
-};
-export declare type NetParams = {
- pnet: PNetParams;
- rnet: RNetParams;
- onet: ONetParams;
-};
diff --git a/build/commonjs/mtcnn/types.js b/build/commonjs/mtcnn/types.js
deleted file mode 100644
index 11e638d1..00000000
--- a/build/commonjs/mtcnn/types.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-//# sourceMappingURL=types.js.map
\ No newline at end of file
diff --git a/build/commonjs/mtcnn/types.js.map b/build/commonjs/mtcnn/types.js.map
deleted file mode 100644
index a06d2049..00000000
--- a/build/commonjs/mtcnn/types.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/mtcnn/types.ts"],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/build/commonjs/ssdMobilenetv1/SsdMobilenetv1.d.ts b/build/commonjs/ssdMobilenetv1/SsdMobilenetv1.d.ts
deleted file mode 100644
index 3749d1c0..00000000
--- a/build/commonjs/ssdMobilenetv1/SsdMobilenetv1.d.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { NetInput, NeuralNetwork, TNetInput } from 'tfjs-image-recognition-base';
-import { FaceDetection } from '../classes/FaceDetection';
-import { ISsdMobilenetv1Options } from './SsdMobilenetv1Options';
-import { NetParams } from './types';
-export declare class SsdMobilenetv1 extends NeuralNetwork {
- constructor();
- forwardInput(input: NetInput): {
- boxes: tf.Tensor[];
- scores: tf.Tensor[];
- };
- forward(input: TNetInput): Promise<{
- boxes: tf.Tensor[];
- scores: tf.Tensor[];
- }>;
- locateFaces(input: TNetInput, options?: ISsdMobilenetv1Options): Promise;
- protected loadQuantizedParams(uri: string | undefined): Promise<{
- params: NetParams;
- paramMappings: {
- originalPath?: string | undefined;
- paramPath: string;
- }[];
- }>;
- protected extractParams(weights: Float32Array): {
- params: NetParams;
- paramMappings: {
- originalPath?: string | undefined;
- paramPath: string;
- }[];
- };
-}
diff --git a/build/commonjs/ssdMobilenetv1/SsdMobilenetv1.js b/build/commonjs/ssdMobilenetv1/SsdMobilenetv1.js
deleted file mode 100644
index 3de963fc..00000000
--- a/build/commonjs/ssdMobilenetv1/SsdMobilenetv1.js
+++ /dev/null
@@ -1,104 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tslib_1 = require("tslib");
-var tf = require("@tensorflow/tfjs-core");
-var tfjs_image_recognition_base_1 = require("tfjs-image-recognition-base");
-var FaceDetection_1 = require("../classes/FaceDetection");
-var extractParams_1 = require("./extractParams");
-var loadQuantizedParams_1 = require("./loadQuantizedParams");
-var mobileNetV1_1 = require("./mobileNetV1");
-var nonMaxSuppression_1 = require("./nonMaxSuppression");
-var outputLayer_1 = require("./outputLayer");
-var predictionLayer_1 = require("./predictionLayer");
-var SsdMobilenetv1Options_1 = require("./SsdMobilenetv1Options");
-var SsdMobilenetv1 = /** @class */ (function (_super) {
- tslib_1.__extends(SsdMobilenetv1, _super);
- function SsdMobilenetv1() {
- return _super.call(this, 'SsdMobilenetv1') || this;
- }
- SsdMobilenetv1.prototype.forwardInput = function (input) {
- var params = this.params;
- if (!params) {
- throw new Error('SsdMobilenetv1 - load model before inference');
- }
- return tf.tidy(function () {
- var batchTensor = input.toBatchTensor(512, false).toFloat();
- var x = tf.sub(tf.mul(batchTensor, tf.scalar(0.007843137718737125)), tf.scalar(1));
- var features = mobileNetV1_1.mobileNetV1(x, params.mobilenetv1);
- var _a = predictionLayer_1.predictionLayer(features.out, features.conv11, params.prediction_layer), boxPredictions = _a.boxPredictions, classPredictions = _a.classPredictions;
- return outputLayer_1.outputLayer(boxPredictions, classPredictions, params.output_layer);
- });
- };
- SsdMobilenetv1.prototype.forward = function (input) {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var _a;
- return tslib_1.__generator(this, function (_b) {
- switch (_b.label) {
- case 0:
- _a = this.forwardInput;
- return [4 /*yield*/, tfjs_image_recognition_base_1.toNetInput(input)];
- case 1: return [2 /*return*/, _a.apply(this, [_b.sent()])];
- }
- });
- });
- };
- SsdMobilenetv1.prototype.locateFaces = function (input, options) {
- if (options === void 0) { options = {}; }
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var _a, maxResults, minConfidence, netInput, _b, _boxes, _scores, boxes, scores, i, scoresData, _c, _d, iouThreshold, indices, reshapedDims, inputSize, padX, padY, results;
- return tslib_1.__generator(this, function (_e) {
- switch (_e.label) {
- case 0:
- _a = new SsdMobilenetv1Options_1.SsdMobilenetv1Options(options), maxResults = _a.maxResults, minConfidence = _a.minConfidence;
- return [4 /*yield*/, tfjs_image_recognition_base_1.toNetInput(input)];
- case 1:
- netInput = _e.sent();
- _b = this.forwardInput(netInput), _boxes = _b.boxes, _scores = _b.scores;
- boxes = _boxes[0];
- scores = _scores[0];
- for (i = 1; i < _boxes.length; i++) {
- _boxes[i].dispose();
- _scores[i].dispose();
- }
- _d = (_c = Array).from;
- return [4 /*yield*/, scores.data()];
- case 2:
- scoresData = _d.apply(_c, [_e.sent()]);
- iouThreshold = 0.5;
- indices = nonMaxSuppression_1.nonMaxSuppression(boxes, scoresData, maxResults, iouThreshold, minConfidence);
- reshapedDims = netInput.getReshapedInputDimensions(0);
- inputSize = netInput.inputSize;
- padX = inputSize / reshapedDims.width;
- padY = inputSize / reshapedDims.height;
- results = indices
- .map(function (idx) {
- var _a = [
- Math.max(0, boxes.get(idx, 0)),
- Math.min(1.0, boxes.get(idx, 2))
- ].map(function (val) { return val * padY; }), top = _a[0], bottom = _a[1];
- var _b = [
- Math.max(0, boxes.get(idx, 1)),
- Math.min(1.0, boxes.get(idx, 3))
- ].map(function (val) { return val * padX; }), left = _b[0], right = _b[1];
- return new FaceDetection_1.FaceDetection(scoresData[idx], new tfjs_image_recognition_base_1.Rect(left, top, right - left, bottom - top), {
- height: netInput.getInputHeight(0),
- width: netInput.getInputWidth(0)
- });
- });
- boxes.dispose();
- scores.dispose();
- return [2 /*return*/, results];
- }
- });
- });
- };
- SsdMobilenetv1.prototype.loadQuantizedParams = function (uri) {
- return loadQuantizedParams_1.loadQuantizedParams(uri);
- };
- SsdMobilenetv1.prototype.extractParams = function (weights) {
- return extractParams_1.extractParams(weights);
- };
- return SsdMobilenetv1;
-}(tfjs_image_recognition_base_1.NeuralNetwork));
-exports.SsdMobilenetv1 = SsdMobilenetv1;
-//# sourceMappingURL=SsdMobilenetv1.js.map
\ No newline at end of file
diff --git a/build/commonjs/ssdMobilenetv1/SsdMobilenetv1.js.map b/build/commonjs/ssdMobilenetv1/SsdMobilenetv1.js.map
deleted file mode 100644
index 08cf470e..00000000
--- a/build/commonjs/ssdMobilenetv1/SsdMobilenetv1.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"SsdMobilenetv1.js","sourceRoot":"","sources":["../../../src/ssdMobilenetv1/SsdMobilenetv1.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/build/commonjs/ssdMobilenetv1/SsdMobilenetv1Options.d.ts b/build/commonjs/ssdMobilenetv1/SsdMobilenetv1Options.d.ts
deleted file mode 100644
index 3f710f3e..00000000
--- a/build/commonjs/ssdMobilenetv1/SsdMobilenetv1Options.d.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-export interface ISsdMobilenetv1Options {
- minConfidence?: number;
- maxResults?: number;
-}
-export declare class SsdMobilenetv1Options {
- protected _name: string;
- private _minConfidence;
- private _maxResults;
- constructor({minConfidence, maxResults}?: ISsdMobilenetv1Options);
- readonly minConfidence: number;
- readonly maxResults: number;
-}
diff --git a/build/commonjs/ssdMobilenetv1/SsdMobilenetv1Options.js b/build/commonjs/ssdMobilenetv1/SsdMobilenetv1Options.js
deleted file mode 100644
index e8e7be01..00000000
--- a/build/commonjs/ssdMobilenetv1/SsdMobilenetv1Options.js
+++ /dev/null
@@ -1,29 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var SsdMobilenetv1Options = /** @class */ (function () {
- function SsdMobilenetv1Options(_a) {
- var _b = _a === void 0 ? {} : _a, minConfidence = _b.minConfidence, maxResults = _b.maxResults;
- this._name = 'SsdMobilenetv1Options';
- this._minConfidence = minConfidence || 0.5;
- this._maxResults = maxResults || 100;
- if (typeof this._minConfidence !== 'number' || this._minConfidence <= 0 || this._minConfidence >= 1) {
- throw new Error(this._name + " - expected minConfidence to be a number between 0 and 1");
- }
- if (typeof this._maxResults !== 'number') {
- throw new Error(this._name + " - expected maxResults to be a number");
- }
- }
- Object.defineProperty(SsdMobilenetv1Options.prototype, "minConfidence", {
- get: function () { return this._minConfidence; },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(SsdMobilenetv1Options.prototype, "maxResults", {
- get: function () { return this._maxResults; },
- enumerable: true,
- configurable: true
- });
- return SsdMobilenetv1Options;
-}());
-exports.SsdMobilenetv1Options = SsdMobilenetv1Options;
-//# sourceMappingURL=SsdMobilenetv1Options.js.map
\ No newline at end of file
diff --git a/build/commonjs/ssdMobilenetv1/SsdMobilenetv1Options.js.map b/build/commonjs/ssdMobilenetv1/SsdMobilenetv1Options.js.map
deleted file mode 100644
index 03c196c8..00000000
--- a/build/commonjs/ssdMobilenetv1/SsdMobilenetv1Options.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"SsdMobilenetv1Options.js","sourceRoot":"","sources":["../../../src/ssdMobilenetv1/SsdMobilenetv1Options.ts"],"names":[],"mappings":";;AAKA;IAME,+BAAY,EAA0D;YAA1D,4BAA0D,EAAxD,gCAAa,EAAE,0BAAU;QAL7B,UAAK,GAAW,uBAAuB,CAAA;QAM/C,IAAI,CAAC,cAAc,GAAG,aAAa,IAAI,GAAG,CAAA;QAC1C,IAAI,CAAC,WAAW,GAAG,UAAU,IAAI,GAAG,CAAA;QAEpC,IAAI,OAAO,IAAI,CAAC,cAAc,KAAK,QAAQ,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,EAAE;YACnG,MAAM,IAAI,KAAK,CAAI,IAAI,CAAC,KAAK,6DAA0D,CAAC,CAAA;SACzF;QAED,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,EAAE;YACxC,MAAM,IAAI,KAAK,CAAI,IAAI,CAAC,KAAK,0CAAuC,CAAC,CAAA;SACtE;IACH,CAAC;IAED,sBAAI,gDAAa;aAAjB,cAA8B,OAAO,IAAI,CAAC,cAAc,CAAA,CAAC,CAAC;;;OAAA;IAC1D,sBAAI,6CAAU;aAAd,cAA2B,OAAO,IAAI,CAAC,WAAW,CAAA,CAAC,CAAC;;;OAAA;IACtD,4BAAC;AAAD,CAAC,AArBD,IAqBC;AArBY,sDAAqB"}
\ No newline at end of file
diff --git a/build/commonjs/ssdMobilenetv1/boxPredictionLayer.d.ts b/build/commonjs/ssdMobilenetv1/boxPredictionLayer.d.ts
deleted file mode 100644
index bed8cd15..00000000
--- a/build/commonjs/ssdMobilenetv1/boxPredictionLayer.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { BoxPredictionParams } from './types';
-export declare function boxPredictionLayer(x: tf.Tensor4D, params: BoxPredictionParams): {
- boxPredictionEncoding: tf.Tensor;
- classPrediction: tf.Tensor;
-};
diff --git a/build/commonjs/ssdMobilenetv1/boxPredictionLayer.js b/build/commonjs/ssdMobilenetv1/boxPredictionLayer.js
deleted file mode 100644
index f5acb02e..00000000
--- a/build/commonjs/ssdMobilenetv1/boxPredictionLayer.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tf = require("@tensorflow/tfjs-core");
-var tfjs_tiny_yolov2_1 = require("tfjs-tiny-yolov2");
-function boxPredictionLayer(x, params) {
- return tf.tidy(function () {
- var batchSize = x.shape[0];
- var boxPredictionEncoding = tf.reshape(tfjs_tiny_yolov2_1.convLayer(x, params.box_encoding_predictor), [batchSize, -1, 1, 4]);
- var classPrediction = tf.reshape(tfjs_tiny_yolov2_1.convLayer(x, params.class_predictor), [batchSize, -1, 3]);
- return {
- boxPredictionEncoding: boxPredictionEncoding,
- classPrediction: classPrediction
- };
- });
-}
-exports.boxPredictionLayer = boxPredictionLayer;
-//# sourceMappingURL=boxPredictionLayer.js.map
\ No newline at end of file
diff --git a/build/commonjs/ssdMobilenetv1/boxPredictionLayer.js.map b/build/commonjs/ssdMobilenetv1/boxPredictionLayer.js.map
deleted file mode 100644
index fade629a..00000000
--- a/build/commonjs/ssdMobilenetv1/boxPredictionLayer.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"boxPredictionLayer.js","sourceRoot":"","sources":["../../../src/ssdMobilenetv1/boxPredictionLayer.ts"],"names":[],"mappings":";;AAAA,0CAA4C;AAC5C,qDAA6C;AAK7C,4BACE,CAAc,EACd,MAA2B;IAE3B,OAAO,EAAE,CAAC,IAAI,CAAC;QAEb,IAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAE5B,IAAM,qBAAqB,GAAG,EAAE,CAAC,OAAO,CACtC,4BAAS,CAAC,CAAC,EAAE,MAAM,CAAC,sBAAsB,CAAC,EAC3C,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CACtB,CAAA;QACD,IAAM,eAAe,GAAG,EAAE,CAAC,OAAO,CAChC,4BAAS,CAAC,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,EACpC,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CACnB,CAAA;QAED,OAAO;YACL,qBAAqB,uBAAA;YACrB,eAAe,iBAAA;SAChB,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAtBD,gDAsBC"}
\ No newline at end of file
diff --git a/build/commonjs/ssdMobilenetv1/extractParams.d.ts b/build/commonjs/ssdMobilenetv1/extractParams.d.ts
deleted file mode 100644
index 40295777..00000000
--- a/build/commonjs/ssdMobilenetv1/extractParams.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { ParamMapping } from 'tfjs-image-recognition-base';
-import { NetParams } from './types';
-export declare function extractParams(weights: Float32Array): {
- params: NetParams;
- paramMappings: ParamMapping[];
-};
diff --git a/build/commonjs/ssdMobilenetv1/extractParams.js b/build/commonjs/ssdMobilenetv1/extractParams.js
deleted file mode 100644
index ccf07792..00000000
--- a/build/commonjs/ssdMobilenetv1/extractParams.js
+++ /dev/null
@@ -1,162 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tf = require("@tensorflow/tfjs-core");
-var tfjs_image_recognition_base_1 = require("tfjs-image-recognition-base");
-function extractorsFactory(extractWeights, paramMappings) {
- function extractDepthwiseConvParams(numChannels, mappedPrefix) {
- var filters = tf.tensor4d(extractWeights(3 * 3 * numChannels), [3, 3, numChannels, 1]);
- var batch_norm_scale = tf.tensor1d(extractWeights(numChannels));
- var batch_norm_offset = tf.tensor1d(extractWeights(numChannels));
- var batch_norm_mean = tf.tensor1d(extractWeights(numChannels));
- var batch_norm_variance = tf.tensor1d(extractWeights(numChannels));
- paramMappings.push({ paramPath: mappedPrefix + "/filters" }, { paramPath: mappedPrefix + "/batch_norm_scale" }, { paramPath: mappedPrefix + "/batch_norm_offset" }, { paramPath: mappedPrefix + "/batch_norm_mean" }, { paramPath: mappedPrefix + "/batch_norm_variance" });
- return {
- filters: filters,
- batch_norm_scale: batch_norm_scale,
- batch_norm_offset: batch_norm_offset,
- batch_norm_mean: batch_norm_mean,
- batch_norm_variance: batch_norm_variance
- };
- }
- function extractConvParams(channelsIn, channelsOut, filterSize, mappedPrefix, isPointwiseConv) {
- var filters = tf.tensor4d(extractWeights(channelsIn * channelsOut * filterSize * filterSize), [filterSize, filterSize, channelsIn, channelsOut]);
- var bias = tf.tensor1d(extractWeights(channelsOut));
- paramMappings.push({ paramPath: mappedPrefix + "/filters" }, { paramPath: mappedPrefix + "/" + (isPointwiseConv ? 'batch_norm_offset' : 'bias') });
- return { filters: filters, bias: bias };
- }
- function extractPointwiseConvParams(channelsIn, channelsOut, filterSize, mappedPrefix) {
- var _a = extractConvParams(channelsIn, channelsOut, filterSize, mappedPrefix, true), filters = _a.filters, bias = _a.bias;
- return {
- filters: filters,
- batch_norm_offset: bias
- };
- }
- function extractConvPairParams(channelsIn, channelsOut, mappedPrefix) {
- var depthwise_conv = extractDepthwiseConvParams(channelsIn, mappedPrefix + "/depthwise_conv");
- var pointwise_conv = extractPointwiseConvParams(channelsIn, channelsOut, 1, mappedPrefix + "/pointwise_conv");
- return { depthwise_conv: depthwise_conv, pointwise_conv: pointwise_conv };
- }
- function extractMobilenetV1Params() {
- var conv_0 = extractPointwiseConvParams(3, 32, 3, 'mobilenetv1/conv_0');
- var conv_1 = extractConvPairParams(32, 64, 'mobilenetv1/conv_1');
- var conv_2 = extractConvPairParams(64, 128, 'mobilenetv1/conv_2');
- var conv_3 = extractConvPairParams(128, 128, 'mobilenetv1/conv_3');
- var conv_4 = extractConvPairParams(128, 256, 'mobilenetv1/conv_4');
- var conv_5 = extractConvPairParams(256, 256, 'mobilenetv1/conv_5');
- var conv_6 = extractConvPairParams(256, 512, 'mobilenetv1/conv_6');
- var conv_7 = extractConvPairParams(512, 512, 'mobilenetv1/conv_7');
- var conv_8 = extractConvPairParams(512, 512, 'mobilenetv1/conv_8');
- var conv_9 = extractConvPairParams(512, 512, 'mobilenetv1/conv_9');
- var conv_10 = extractConvPairParams(512, 512, 'mobilenetv1/conv_10');
- var conv_11 = extractConvPairParams(512, 512, 'mobilenetv1/conv_11');
- var conv_12 = extractConvPairParams(512, 1024, 'mobilenetv1/conv_12');
- var conv_13 = extractConvPairParams(1024, 1024, 'mobilenetv1/conv_13');
- return {
- conv_0: conv_0,
- conv_1: conv_1,
- conv_2: conv_2,
- conv_3: conv_3,
- conv_4: conv_4,
- conv_5: conv_5,
- conv_6: conv_6,
- conv_7: conv_7,
- conv_8: conv_8,
- conv_9: conv_9,
- conv_10: conv_10,
- conv_11: conv_11,
- conv_12: conv_12,
- conv_13: conv_13
- };
- }
- function extractPredictionLayerParams() {
- var conv_0 = extractPointwiseConvParams(1024, 256, 1, 'prediction_layer/conv_0');
- var conv_1 = extractPointwiseConvParams(256, 512, 3, 'prediction_layer/conv_1');
- var conv_2 = extractPointwiseConvParams(512, 128, 1, 'prediction_layer/conv_2');
- var conv_3 = extractPointwiseConvParams(128, 256, 3, 'prediction_layer/conv_3');
- var conv_4 = extractPointwiseConvParams(256, 128, 1, 'prediction_layer/conv_4');
- var conv_5 = extractPointwiseConvParams(128, 256, 3, 'prediction_layer/conv_5');
- var conv_6 = extractPointwiseConvParams(256, 64, 1, 'prediction_layer/conv_6');
- var conv_7 = extractPointwiseConvParams(64, 128, 3, 'prediction_layer/conv_7');
- var box_encoding_0_predictor = extractConvParams(512, 12, 1, 'prediction_layer/box_predictor_0/box_encoding_predictor');
- var class_predictor_0 = extractConvParams(512, 9, 1, 'prediction_layer/box_predictor_0/class_predictor');
- var box_encoding_1_predictor = extractConvParams(1024, 24, 1, 'prediction_layer/box_predictor_1/box_encoding_predictor');
- var class_predictor_1 = extractConvParams(1024, 18, 1, 'prediction_layer/box_predictor_1/class_predictor');
- var box_encoding_2_predictor = extractConvParams(512, 24, 1, 'prediction_layer/box_predictor_2/box_encoding_predictor');
- var class_predictor_2 = extractConvParams(512, 18, 1, 'prediction_layer/box_predictor_2/class_predictor');
- var box_encoding_3_predictor = extractConvParams(256, 24, 1, 'prediction_layer/box_predictor_3/box_encoding_predictor');
- var class_predictor_3 = extractConvParams(256, 18, 1, 'prediction_layer/box_predictor_3/class_predictor');
- var box_encoding_4_predictor = extractConvParams(256, 24, 1, 'prediction_layer/box_predictor_4/box_encoding_predictor');
- var class_predictor_4 = extractConvParams(256, 18, 1, 'prediction_layer/box_predictor_4/class_predictor');
- var box_encoding_5_predictor = extractConvParams(128, 24, 1, 'prediction_layer/box_predictor_5/box_encoding_predictor');
- var class_predictor_5 = extractConvParams(128, 18, 1, 'prediction_layer/box_predictor_5/class_predictor');
- var box_predictor_0 = {
- box_encoding_predictor: box_encoding_0_predictor,
- class_predictor: class_predictor_0
- };
- var box_predictor_1 = {
- box_encoding_predictor: box_encoding_1_predictor,
- class_predictor: class_predictor_1
- };
- var box_predictor_2 = {
- box_encoding_predictor: box_encoding_2_predictor,
- class_predictor: class_predictor_2
- };
- var box_predictor_3 = {
- box_encoding_predictor: box_encoding_3_predictor,
- class_predictor: class_predictor_3
- };
- var box_predictor_4 = {
- box_encoding_predictor: box_encoding_4_predictor,
- class_predictor: class_predictor_4
- };
- var box_predictor_5 = {
- box_encoding_predictor: box_encoding_5_predictor,
- class_predictor: class_predictor_5
- };
- return {
- conv_0: conv_0,
- conv_1: conv_1,
- conv_2: conv_2,
- conv_3: conv_3,
- conv_4: conv_4,
- conv_5: conv_5,
- conv_6: conv_6,
- conv_7: conv_7,
- box_predictor_0: box_predictor_0,
- box_predictor_1: box_predictor_1,
- box_predictor_2: box_predictor_2,
- box_predictor_3: box_predictor_3,
- box_predictor_4: box_predictor_4,
- box_predictor_5: box_predictor_5
- };
- }
- return {
- extractMobilenetV1Params: extractMobilenetV1Params,
- extractPredictionLayerParams: extractPredictionLayerParams
- };
-}
-function extractParams(weights) {
- var paramMappings = [];
- var _a = tfjs_image_recognition_base_1.extractWeightsFactory(weights), extractWeights = _a.extractWeights, getRemainingWeights = _a.getRemainingWeights;
- var _b = extractorsFactory(extractWeights, paramMappings), extractMobilenetV1Params = _b.extractMobilenetV1Params, extractPredictionLayerParams = _b.extractPredictionLayerParams;
- var mobilenetv1 = extractMobilenetV1Params();
- var prediction_layer = extractPredictionLayerParams();
- var extra_dim = tf.tensor3d(extractWeights(5118 * 4), [1, 5118, 4]);
- var output_layer = {
- extra_dim: extra_dim
- };
- paramMappings.push({ paramPath: 'output_layer/extra_dim' });
- if (getRemainingWeights().length !== 0) {
- throw new Error("weights remaing after extract: " + getRemainingWeights().length);
- }
- return {
- params: {
- mobilenetv1: mobilenetv1,
- prediction_layer: prediction_layer,
- output_layer: output_layer
- },
- paramMappings: paramMappings
- };
-}
-exports.extractParams = extractParams;
-//# sourceMappingURL=extractParams.js.map
\ No newline at end of file
diff --git a/build/commonjs/ssdMobilenetv1/extractParams.js.map b/build/commonjs/ssdMobilenetv1/extractParams.js.map
deleted file mode 100644
index efe0dc2f..00000000
--- a/build/commonjs/ssdMobilenetv1/extractParams.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"extractParams.js","sourceRoot":"","sources":["../../../src/ssdMobilenetv1/extractParams.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/build/commonjs/ssdMobilenetv1/index.d.ts b/build/commonjs/ssdMobilenetv1/index.d.ts
deleted file mode 100644
index b83f4792..00000000
--- a/build/commonjs/ssdMobilenetv1/index.d.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import { SsdMobilenetv1 } from './SsdMobilenetv1';
-export * from './SsdMobilenetv1';
-export * from './SsdMobilenetv1Options';
-export declare function createSsdMobilenetv1(weights: Float32Array): SsdMobilenetv1;
-export declare function createFaceDetectionNet(weights: Float32Array): SsdMobilenetv1;
-export declare class FaceDetectionNet extends SsdMobilenetv1 {
-}
diff --git a/build/commonjs/ssdMobilenetv1/index.js b/build/commonjs/ssdMobilenetv1/index.js
deleted file mode 100644
index 648d3667..00000000
--- a/build/commonjs/ssdMobilenetv1/index.js
+++ /dev/null
@@ -1,26 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tslib_1 = require("tslib");
-var SsdMobilenetv1_1 = require("./SsdMobilenetv1");
-tslib_1.__exportStar(require("./SsdMobilenetv1"), exports);
-tslib_1.__exportStar(require("./SsdMobilenetv1Options"), exports);
-function createSsdMobilenetv1(weights) {
- var net = new SsdMobilenetv1_1.SsdMobilenetv1();
- net.extractWeights(weights);
- return net;
-}
-exports.createSsdMobilenetv1 = createSsdMobilenetv1;
-function createFaceDetectionNet(weights) {
- return createSsdMobilenetv1(weights);
-}
-exports.createFaceDetectionNet = createFaceDetectionNet;
-// alias for backward compatibily
-var FaceDetectionNet = /** @class */ (function (_super) {
- tslib_1.__extends(FaceDetectionNet, _super);
- function FaceDetectionNet() {
- return _super !== null && _super.apply(this, arguments) || this;
- }
- return FaceDetectionNet;
-}(SsdMobilenetv1_1.SsdMobilenetv1));
-exports.FaceDetectionNet = FaceDetectionNet;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/build/commonjs/ssdMobilenetv1/index.js.map b/build/commonjs/ssdMobilenetv1/index.js.map
deleted file mode 100644
index 0f5967d0..00000000
--- a/build/commonjs/ssdMobilenetv1/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ssdMobilenetv1/index.ts"],"names":[],"mappings":";;;AAAA,mDAAkD;AAElD,2DAAiC;AACjC,kEAAwC;AAExC,8BAAqC,OAAqB;IACxD,IAAM,GAAG,GAAG,IAAI,+BAAc,EAAE,CAAA;IAChC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;IAC3B,OAAO,GAAG,CAAA;AACZ,CAAC;AAJD,oDAIC;AAED,gCAAuC,OAAqB;IAC1D,OAAO,oBAAoB,CAAC,OAAO,CAAC,CAAA;AACtC,CAAC;AAFD,wDAEC;AAED,iCAAiC;AACjC;IAAsC,4CAAc;IAApD;;IAAsD,CAAC;IAAD,uBAAC;AAAD,CAAC,AAAvD,CAAsC,+BAAc,GAAG;AAA1C,4CAAgB"}
\ No newline at end of file
diff --git a/build/commonjs/ssdMobilenetv1/loadQuantizedParams.d.ts b/build/commonjs/ssdMobilenetv1/loadQuantizedParams.d.ts
deleted file mode 100644
index c5e1dc44..00000000
--- a/build/commonjs/ssdMobilenetv1/loadQuantizedParams.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { ParamMapping } from 'tfjs-image-recognition-base';
-import { NetParams } from './types';
-export declare function loadQuantizedParams(uri: string | undefined): Promise<{
- params: NetParams;
- paramMappings: ParamMapping[];
-}>;
diff --git a/build/commonjs/ssdMobilenetv1/loadQuantizedParams.js b/build/commonjs/ssdMobilenetv1/loadQuantizedParams.js
deleted file mode 100644
index c16b7d7e..00000000
--- a/build/commonjs/ssdMobilenetv1/loadQuantizedParams.js
+++ /dev/null
@@ -1,114 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tslib_1 = require("tslib");
-var tfjs_image_recognition_base_1 = require("tfjs-image-recognition-base");
-var DEFAULT_MODEL_NAME = 'ssd_mobilenetv1_model';
-function extractorsFactory(weightMap, paramMappings) {
- var extractWeightEntry = tfjs_image_recognition_base_1.extractWeightEntryFactory(weightMap, paramMappings);
- function extractPointwiseConvParams(prefix, idx, mappedPrefix) {
- var filters = extractWeightEntry(prefix + "/Conv2d_" + idx + "_pointwise/weights", 4, mappedPrefix + "/filters");
- var batch_norm_offset = extractWeightEntry(prefix + "/Conv2d_" + idx + "_pointwise/convolution_bn_offset", 1, mappedPrefix + "/batch_norm_offset");
- return { filters: filters, batch_norm_offset: batch_norm_offset };
- }
- function extractConvPairParams(idx) {
- var mappedPrefix = "mobilenetv1/conv_" + idx;
- var prefixDepthwiseConv = "MobilenetV1/Conv2d_" + idx + "_depthwise";
- var mappedPrefixDepthwiseConv = mappedPrefix + "/depthwise_conv";
- var mappedPrefixPointwiseConv = mappedPrefix + "/pointwise_conv";
- var filters = extractWeightEntry(prefixDepthwiseConv + "/depthwise_weights", 4, mappedPrefixDepthwiseConv + "/filters");
- var batch_norm_scale = extractWeightEntry(prefixDepthwiseConv + "/BatchNorm/gamma", 1, mappedPrefixDepthwiseConv + "/batch_norm_scale");
- var batch_norm_offset = extractWeightEntry(prefixDepthwiseConv + "/BatchNorm/beta", 1, mappedPrefixDepthwiseConv + "/batch_norm_offset");
- var batch_norm_mean = extractWeightEntry(prefixDepthwiseConv + "/BatchNorm/moving_mean", 1, mappedPrefixDepthwiseConv + "/batch_norm_mean");
- var batch_norm_variance = extractWeightEntry(prefixDepthwiseConv + "/BatchNorm/moving_variance", 1, mappedPrefixDepthwiseConv + "/batch_norm_variance");
- return {
- depthwise_conv: {
- filters: filters,
- batch_norm_scale: batch_norm_scale,
- batch_norm_offset: batch_norm_offset,
- batch_norm_mean: batch_norm_mean,
- batch_norm_variance: batch_norm_variance
- },
- pointwise_conv: extractPointwiseConvParams('MobilenetV1', idx, mappedPrefixPointwiseConv)
- };
- }
- function extractMobilenetV1Params() {
- return {
- conv_0: extractPointwiseConvParams('MobilenetV1', 0, 'mobilenetv1/conv_0'),
- conv_1: extractConvPairParams(1),
- conv_2: extractConvPairParams(2),
- conv_3: extractConvPairParams(3),
- conv_4: extractConvPairParams(4),
- conv_5: extractConvPairParams(5),
- conv_6: extractConvPairParams(6),
- conv_7: extractConvPairParams(7),
- conv_8: extractConvPairParams(8),
- conv_9: extractConvPairParams(9),
- conv_10: extractConvPairParams(10),
- conv_11: extractConvPairParams(11),
- conv_12: extractConvPairParams(12),
- conv_13: extractConvPairParams(13)
- };
- }
- function extractConvParams(prefix, mappedPrefix) {
- var filters = extractWeightEntry(prefix + "/weights", 4, mappedPrefix + "/filters");
- var bias = extractWeightEntry(prefix + "/biases", 1, mappedPrefix + "/bias");
- return { filters: filters, bias: bias };
- }
- function extractBoxPredictorParams(idx) {
- var box_encoding_predictor = extractConvParams("Prediction/BoxPredictor_" + idx + "/BoxEncodingPredictor", "prediction_layer/box_predictor_" + idx + "/box_encoding_predictor");
- var class_predictor = extractConvParams("Prediction/BoxPredictor_" + idx + "/ClassPredictor", "prediction_layer/box_predictor_" + idx + "/class_predictor");
- return { box_encoding_predictor: box_encoding_predictor, class_predictor: class_predictor };
- }
- function extractPredictionLayerParams() {
- return {
- conv_0: extractPointwiseConvParams('Prediction', 0, 'prediction_layer/conv_0'),
- conv_1: extractPointwiseConvParams('Prediction', 1, 'prediction_layer/conv_1'),
- conv_2: extractPointwiseConvParams('Prediction', 2, 'prediction_layer/conv_2'),
- conv_3: extractPointwiseConvParams('Prediction', 3, 'prediction_layer/conv_3'),
- conv_4: extractPointwiseConvParams('Prediction', 4, 'prediction_layer/conv_4'),
- conv_5: extractPointwiseConvParams('Prediction', 5, 'prediction_layer/conv_5'),
- conv_6: extractPointwiseConvParams('Prediction', 6, 'prediction_layer/conv_6'),
- conv_7: extractPointwiseConvParams('Prediction', 7, 'prediction_layer/conv_7'),
- box_predictor_0: extractBoxPredictorParams(0),
- box_predictor_1: extractBoxPredictorParams(1),
- box_predictor_2: extractBoxPredictorParams(2),
- box_predictor_3: extractBoxPredictorParams(3),
- box_predictor_4: extractBoxPredictorParams(4),
- box_predictor_5: extractBoxPredictorParams(5)
- };
- }
- return {
- extractMobilenetV1Params: extractMobilenetV1Params,
- extractPredictionLayerParams: extractPredictionLayerParams
- };
-}
-function loadQuantizedParams(uri) {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var weightMap, paramMappings, _a, extractMobilenetV1Params, extractPredictionLayerParams, extra_dim, params;
- return tslib_1.__generator(this, function (_b) {
- switch (_b.label) {
- case 0: return [4 /*yield*/, tfjs_image_recognition_base_1.loadWeightMap(uri, DEFAULT_MODEL_NAME)];
- case 1:
- weightMap = _b.sent();
- paramMappings = [];
- _a = extractorsFactory(weightMap, paramMappings), extractMobilenetV1Params = _a.extractMobilenetV1Params, extractPredictionLayerParams = _a.extractPredictionLayerParams;
- extra_dim = weightMap['Output/extra_dim'];
- paramMappings.push({ originalPath: 'Output/extra_dim', paramPath: 'output_layer/extra_dim' });
- if (!tfjs_image_recognition_base_1.isTensor3D(extra_dim)) {
- throw new Error("expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have " + extra_dim);
- }
- params = {
- mobilenetv1: extractMobilenetV1Params(),
- prediction_layer: extractPredictionLayerParams(),
- output_layer: {
- extra_dim: extra_dim
- }
- };
- tfjs_image_recognition_base_1.disposeUnusedWeightTensors(weightMap, paramMappings);
- return [2 /*return*/, { params: params, paramMappings: paramMappings }];
- }
- });
- });
-}
-exports.loadQuantizedParams = loadQuantizedParams;
-//# sourceMappingURL=loadQuantizedParams.js.map
\ No newline at end of file
diff --git a/build/commonjs/ssdMobilenetv1/loadQuantizedParams.js.map b/build/commonjs/ssdMobilenetv1/loadQuantizedParams.js.map
deleted file mode 100644
index a5fc6295..00000000
--- a/build/commonjs/ssdMobilenetv1/loadQuantizedParams.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"loadQuantizedParams.js","sourceRoot":"","sources":["../../../src/ssdMobilenetv1/loadQuantizedParams.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/build/commonjs/ssdMobilenetv1/mobileNetV1.d.ts b/build/commonjs/ssdMobilenetv1/mobileNetV1.d.ts
deleted file mode 100644
index 05f5c5fe..00000000
--- a/build/commonjs/ssdMobilenetv1/mobileNetV1.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { MobileNetV1 } from './types';
-export declare function mobileNetV1(x: tf.Tensor4D, params: MobileNetV1.Params): {
- out: tf.Tensor;
- conv11: any;
-};
diff --git a/build/commonjs/ssdMobilenetv1/mobileNetV1.js b/build/commonjs/ssdMobilenetv1/mobileNetV1.js
deleted file mode 100644
index e73ca54e..00000000
--- a/build/commonjs/ssdMobilenetv1/mobileNetV1.js
+++ /dev/null
@@ -1,54 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tf = require("@tensorflow/tfjs-core");
-var pointwiseConvLayer_1 = require("./pointwiseConvLayer");
-var epsilon = 0.0010000000474974513;
-function depthwiseConvLayer(x, params, strides) {
- return tf.tidy(function () {
- var out = tf.depthwiseConv2d(x, params.filters, strides, 'same');
- out = tf.batchNormalization(out, params.batch_norm_mean, params.batch_norm_variance, epsilon, params.batch_norm_scale, params.batch_norm_offset);
- return tf.clipByValue(out, 0, 6);
- });
-}
-function getStridesForLayerIdx(layerIdx) {
- return [2, 4, 6, 12].some(function (idx) { return idx === layerIdx; }) ? [2, 2] : [1, 1];
-}
-function mobileNetV1(x, params) {
- return tf.tidy(function () {
- var conv11 = null;
- var out = pointwiseConvLayer_1.pointwiseConvLayer(x, params.conv_0, [2, 2]);
- var convPairParams = [
- params.conv_1,
- params.conv_2,
- params.conv_3,
- params.conv_4,
- params.conv_5,
- params.conv_6,
- params.conv_7,
- params.conv_8,
- params.conv_9,
- params.conv_10,
- params.conv_11,
- params.conv_12,
- params.conv_13
- ];
- convPairParams.forEach(function (param, i) {
- var layerIdx = i + 1;
- var depthwiseConvStrides = getStridesForLayerIdx(layerIdx);
- out = depthwiseConvLayer(out, param.depthwise_conv, depthwiseConvStrides);
- out = pointwiseConvLayer_1.pointwiseConvLayer(out, param.pointwise_conv, [1, 1]);
- if (layerIdx === 11) {
- conv11 = out;
- }
- });
- if (conv11 === null) {
- throw new Error('mobileNetV1 - output of conv layer 11 is null');
- }
- return {
- out: out,
- conv11: conv11
- };
- });
-}
-exports.mobileNetV1 = mobileNetV1;
-//# sourceMappingURL=mobileNetV1.js.map
\ No newline at end of file
diff --git a/build/commonjs/ssdMobilenetv1/mobileNetV1.js.map b/build/commonjs/ssdMobilenetv1/mobileNetV1.js.map
deleted file mode 100644
index fdfc137f..00000000
--- a/build/commonjs/ssdMobilenetv1/mobileNetV1.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"mobileNetV1.js","sourceRoot":"","sources":["../../../src/ssdMobilenetv1/mobileNetV1.ts"],"names":[],"mappings":";;AAAA,0CAA4C;AAE5C,2DAA0D;AAG1D,IAAM,OAAO,GAAG,qBAAqB,CAAA;AAErC,4BACE,CAAc,EACd,MAAuC,EACvC,OAAyB;IAEzB,OAAO,EAAE,CAAC,IAAI,CAAC;QAEb,IAAI,GAAG,GAAG,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;QAChE,GAAG,GAAG,EAAE,CAAC,kBAAkB,CACzB,GAAG,EACH,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,mBAAmB,EAC1B,OAAO,EACP,MAAM,CAAC,gBAAgB,EACvB,MAAM,CAAC,iBAAiB,CACzB,CAAA;QACD,OAAO,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAElC,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,+BAA+B,QAAgB;IAC7C,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,KAAK,QAAQ,EAAhB,CAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AACtE,CAAC;AAED,qBAA4B,CAAc,EAAE,MAA0B;IACpE,OAAO,EAAE,CAAC,IAAI,CAAC;QAEb,IAAI,MAAM,GAAG,IAAI,CAAA;QACjB,IAAI,GAAG,GAAG,uCAAkB,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAEtD,IAAM,cAAc,GAAG;YACrB,MAAM,CAAC,MAAM;YACb,MAAM,CAAC,MAAM;YACb,MAAM,CAAC,MAAM;YACb,MAAM,CAAC,MAAM;YACb,MAAM,CAAC,MAAM;YACb,MAAM,CAAC,MAAM;YACb,MAAM,CAAC,MAAM;YACb,MAAM,CAAC,MAAM;YACb,MAAM,CAAC,MAAM;YACb,MAAM,CAAC,OAAO;YACd,MAAM,CAAC,OAAO;YACd,MAAM,CAAC,OAAO;YACd,MAAM,CAAC,OAAO;SACf,CAAA;QAED,cAAc,CAAC,OAAO,CAAC,UAAC,KAAK,EAAE,CAAC;YAC9B,IAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAA;YACtB,IAAM,oBAAoB,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAA;YAC5D,GAAG,GAAG,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAA;YACzE,GAAG,GAAG,uCAAkB,CAAC,GAAG,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;YAC3D,IAAI,QAAQ,KAAK,EAAE,EAAE;gBACnB,MAAM,GAAG,GAAG,CAAA;aACb;QACH,CAAC,CAAC,CAAA;QAEF,IAAI,MAAM,KAAK,IAAI,EAAE;YACnB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;SACjE;QAED,OAAO;YACL,GAAG,KAAA;YACH,MAAM,EAAE,MAAa;SACtB,CAAA;IAEH,CAAC,CAAC,CAAA;AACJ,CAAC;AA1CD,kCA0CC"}
\ No newline at end of file
diff --git a/build/commonjs/ssdMobilenetv1/nonMaxSuppression.d.ts b/build/commonjs/ssdMobilenetv1/nonMaxSuppression.d.ts
deleted file mode 100644
index 6b215a26..00000000
--- a/build/commonjs/ssdMobilenetv1/nonMaxSuppression.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-export declare function nonMaxSuppression(boxes: tf.Tensor2D, scores: number[], maxOutputSize: number, iouThreshold: number, scoreThreshold: number): number[];
diff --git a/build/commonjs/ssdMobilenetv1/nonMaxSuppression.js b/build/commonjs/ssdMobilenetv1/nonMaxSuppression.js
deleted file mode 100644
index 65e75e87..00000000
--- a/build/commonjs/ssdMobilenetv1/nonMaxSuppression.js
+++ /dev/null
@@ -1,56 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-function nonMaxSuppression(boxes, scores, maxOutputSize, iouThreshold, scoreThreshold) {
- var numBoxes = boxes.shape[0];
- var outputSize = Math.min(maxOutputSize, numBoxes);
- var candidates = scores
- .map(function (score, boxIndex) { return ({ score: score, boxIndex: boxIndex }); })
- .filter(function (c) { return c.score > scoreThreshold; })
- .sort(function (c1, c2) { return c2.score - c1.score; });
- var suppressFunc = function (x) { return x <= iouThreshold ? 1 : 0; };
- var selected = [];
- candidates.forEach(function (c) {
- if (selected.length >= outputSize) {
- return;
- }
- var originalScore = c.score;
- for (var j = selected.length - 1; j >= 0; --j) {
- var iou = IOU(boxes, c.boxIndex, selected[j]);
- if (iou === 0.0) {
- continue;
- }
- c.score *= suppressFunc(iou);
- if (c.score <= scoreThreshold) {
- break;
- }
- }
- if (originalScore === c.score) {
- selected.push(c.boxIndex);
- }
- });
- return selected;
-}
-exports.nonMaxSuppression = nonMaxSuppression;
-function IOU(boxes, i, j) {
- var yminI = Math.min(boxes.get(i, 0), boxes.get(i, 2));
- var xminI = Math.min(boxes.get(i, 1), boxes.get(i, 3));
- var ymaxI = Math.max(boxes.get(i, 0), boxes.get(i, 2));
- var xmaxI = Math.max(boxes.get(i, 1), boxes.get(i, 3));
- var yminJ = Math.min(boxes.get(j, 0), boxes.get(j, 2));
- var xminJ = Math.min(boxes.get(j, 1), boxes.get(j, 3));
- var ymaxJ = Math.max(boxes.get(j, 0), boxes.get(j, 2));
- var xmaxJ = Math.max(boxes.get(j, 1), boxes.get(j, 3));
- var areaI = (ymaxI - yminI) * (xmaxI - xminI);
- var areaJ = (ymaxJ - yminJ) * (xmaxJ - xminJ);
- if (areaI <= 0 || areaJ <= 0) {
- return 0.0;
- }
- var intersectionYmin = Math.max(yminI, yminJ);
- var intersectionXmin = Math.max(xminI, xminJ);
- var intersectionYmax = Math.min(ymaxI, ymaxJ);
- var intersectionXmax = Math.min(xmaxI, xmaxJ);
- var intersectionArea = Math.max(intersectionYmax - intersectionYmin, 0.0) *
- Math.max(intersectionXmax - intersectionXmin, 0.0);
- return intersectionArea / (areaI + areaJ - intersectionArea);
-}
-//# sourceMappingURL=nonMaxSuppression.js.map
\ No newline at end of file
diff --git a/build/commonjs/ssdMobilenetv1/nonMaxSuppression.js.map b/build/commonjs/ssdMobilenetv1/nonMaxSuppression.js.map
deleted file mode 100644
index f8feb673..00000000
--- a/build/commonjs/ssdMobilenetv1/nonMaxSuppression.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"nonMaxSuppression.js","sourceRoot":"","sources":["../../../src/ssdMobilenetv1/nonMaxSuppression.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/build/commonjs/ssdMobilenetv1/outputLayer.d.ts b/build/commonjs/ssdMobilenetv1/outputLayer.d.ts
deleted file mode 100644
index 9ce8d135..00000000
--- a/build/commonjs/ssdMobilenetv1/outputLayer.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { OutputLayerParams } from './types';
-export declare function outputLayer(boxPredictions: tf.Tensor4D, classPredictions: tf.Tensor4D, params: OutputLayerParams): {
- boxes: tf.Tensor[];
- scores: tf.Tensor[];
-};
diff --git a/build/commonjs/ssdMobilenetv1/outputLayer.js b/build/commonjs/ssdMobilenetv1/outputLayer.js
deleted file mode 100644
index 63ec147c..00000000
--- a/build/commonjs/ssdMobilenetv1/outputLayer.js
+++ /dev/null
@@ -1,50 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tf = require("@tensorflow/tfjs-core");
-function getCenterCoordinatesAndSizesLayer(x) {
- var vec = tf.unstack(tf.transpose(x, [1, 0]));
- var sizes = [
- tf.sub(vec[2], vec[0]),
- tf.sub(vec[3], vec[1])
- ];
- var centers = [
- tf.add(vec[0], tf.div(sizes[0], tf.scalar(2))),
- tf.add(vec[1], tf.div(sizes[1], tf.scalar(2)))
- ];
- return {
- sizes: sizes,
- centers: centers
- };
-}
-function decodeBoxesLayer(x0, x1) {
- var _a = getCenterCoordinatesAndSizesLayer(x0), sizes = _a.sizes, centers = _a.centers;
- var vec = tf.unstack(tf.transpose(x1, [1, 0]));
- var div0_out = tf.div(tf.mul(tf.exp(tf.div(vec[2], tf.scalar(5))), sizes[0]), tf.scalar(2));
- var add0_out = tf.add(tf.mul(tf.div(vec[0], tf.scalar(10)), sizes[0]), centers[0]);
- var div1_out = tf.div(tf.mul(tf.exp(tf.div(vec[3], tf.scalar(5))), sizes[1]), tf.scalar(2));
- var add1_out = tf.add(tf.mul(tf.div(vec[1], tf.scalar(10)), sizes[1]), centers[1]);
- return tf.transpose(tf.stack([
- tf.sub(add0_out, div0_out),
- tf.sub(add1_out, div1_out),
- tf.add(add0_out, div0_out),
- tf.add(add1_out, div1_out)
- ]), [1, 0]);
-}
-function outputLayer(boxPredictions, classPredictions, params) {
- return tf.tidy(function () {
- var batchSize = boxPredictions.shape[0];
- var boxes = decodeBoxesLayer(tf.reshape(tf.tile(params.extra_dim, [batchSize, 1, 1]), [-1, 4]), tf.reshape(boxPredictions, [-1, 4]));
- boxes = tf.reshape(boxes, [batchSize, (boxes.shape[0] / batchSize), 4]);
- var scoresAndClasses = tf.sigmoid(tf.slice(classPredictions, [0, 0, 1], [-1, -1, -1]));
- var scores = tf.slice(scoresAndClasses, [0, 0, 0], [-1, -1, 1]);
- scores = tf.reshape(scores, [batchSize, scores.shape[1]]);
- var boxesByBatch = tf.unstack(boxes);
- var scoresByBatch = tf.unstack(scores);
- return {
- boxes: boxesByBatch,
- scores: scoresByBatch
- };
- });
-}
-exports.outputLayer = outputLayer;
-//# sourceMappingURL=outputLayer.js.map
\ No newline at end of file
diff --git a/build/commonjs/ssdMobilenetv1/outputLayer.js.map b/build/commonjs/ssdMobilenetv1/outputLayer.js.map
deleted file mode 100644
index ae2c073a..00000000
--- a/build/commonjs/ssdMobilenetv1/outputLayer.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"outputLayer.js","sourceRoot":"","sources":["../../../src/ssdMobilenetv1/outputLayer.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/build/commonjs/ssdMobilenetv1/pointwiseConvLayer.d.ts b/build/commonjs/ssdMobilenetv1/pointwiseConvLayer.d.ts
deleted file mode 100644
index f7a92d55..00000000
--- a/build/commonjs/ssdMobilenetv1/pointwiseConvLayer.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { PointwiseConvParams } from './types';
-export declare function pointwiseConvLayer(x: tf.Tensor4D, params: PointwiseConvParams, strides: [number, number]): tf.Tensor;
diff --git a/build/commonjs/ssdMobilenetv1/pointwiseConvLayer.js b/build/commonjs/ssdMobilenetv1/pointwiseConvLayer.js
deleted file mode 100644
index 71ace7c1..00000000
--- a/build/commonjs/ssdMobilenetv1/pointwiseConvLayer.js
+++ /dev/null
@@ -1,12 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tf = require("@tensorflow/tfjs-core");
-function pointwiseConvLayer(x, params, strides) {
- return tf.tidy(function () {
- var out = tf.conv2d(x, params.filters, strides, 'same');
- out = tf.add(out, params.batch_norm_offset);
- return tf.clipByValue(out, 0, 6);
- });
-}
-exports.pointwiseConvLayer = pointwiseConvLayer;
-//# sourceMappingURL=pointwiseConvLayer.js.map
\ No newline at end of file
diff --git a/build/commonjs/ssdMobilenetv1/pointwiseConvLayer.js.map b/build/commonjs/ssdMobilenetv1/pointwiseConvLayer.js.map
deleted file mode 100644
index 55600cf1..00000000
--- a/build/commonjs/ssdMobilenetv1/pointwiseConvLayer.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"pointwiseConvLayer.js","sourceRoot":"","sources":["../../../src/ssdMobilenetv1/pointwiseConvLayer.ts"],"names":[],"mappings":";;AAAA,0CAA4C;AAI5C,4BACE,CAAc,EACd,MAA2B,EAC3B,OAAyB;IAEzB,OAAO,EAAE,CAAC,IAAI,CAAC;QAEb,IAAI,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;QACvD,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAA;QAC3C,OAAO,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAElC,CAAC,CAAC,CAAA;AACJ,CAAC;AAZD,gDAYC"}
\ No newline at end of file
diff --git a/build/commonjs/ssdMobilenetv1/predictionLayer.d.ts b/build/commonjs/ssdMobilenetv1/predictionLayer.d.ts
deleted file mode 100644
index 3f136062..00000000
--- a/build/commonjs/ssdMobilenetv1/predictionLayer.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { PredictionLayerParams } from './types';
-export declare function predictionLayer(x: tf.Tensor4D, conv11: tf.Tensor4D, params: PredictionLayerParams): {
- boxPredictions: tf.Tensor;
- classPredictions: tf.Tensor;
-};
diff --git a/build/commonjs/ssdMobilenetv1/predictionLayer.js b/build/commonjs/ssdMobilenetv1/predictionLayer.js
deleted file mode 100644
index 33847b68..00000000
--- a/build/commonjs/ssdMobilenetv1/predictionLayer.js
+++ /dev/null
@@ -1,45 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tf = require("@tensorflow/tfjs-core");
-var boxPredictionLayer_1 = require("./boxPredictionLayer");
-var pointwiseConvLayer_1 = require("./pointwiseConvLayer");
-function predictionLayer(x, conv11, params) {
- return tf.tidy(function () {
- var conv0 = pointwiseConvLayer_1.pointwiseConvLayer(x, params.conv_0, [1, 1]);
- var conv1 = pointwiseConvLayer_1.pointwiseConvLayer(conv0, params.conv_1, [2, 2]);
- var conv2 = pointwiseConvLayer_1.pointwiseConvLayer(conv1, params.conv_2, [1, 1]);
- var conv3 = pointwiseConvLayer_1.pointwiseConvLayer(conv2, params.conv_3, [2, 2]);
- var conv4 = pointwiseConvLayer_1.pointwiseConvLayer(conv3, params.conv_4, [1, 1]);
- var conv5 = pointwiseConvLayer_1.pointwiseConvLayer(conv4, params.conv_5, [2, 2]);
- var conv6 = pointwiseConvLayer_1.pointwiseConvLayer(conv5, params.conv_6, [1, 1]);
- var conv7 = pointwiseConvLayer_1.pointwiseConvLayer(conv6, params.conv_7, [2, 2]);
- var boxPrediction0 = boxPredictionLayer_1.boxPredictionLayer(conv11, params.box_predictor_0);
- var boxPrediction1 = boxPredictionLayer_1.boxPredictionLayer(x, params.box_predictor_1);
- var boxPrediction2 = boxPredictionLayer_1.boxPredictionLayer(conv1, params.box_predictor_2);
- var boxPrediction3 = boxPredictionLayer_1.boxPredictionLayer(conv3, params.box_predictor_3);
- var boxPrediction4 = boxPredictionLayer_1.boxPredictionLayer(conv5, params.box_predictor_4);
- var boxPrediction5 = boxPredictionLayer_1.boxPredictionLayer(conv7, params.box_predictor_5);
- var boxPredictions = tf.concat([
- boxPrediction0.boxPredictionEncoding,
- boxPrediction1.boxPredictionEncoding,
- boxPrediction2.boxPredictionEncoding,
- boxPrediction3.boxPredictionEncoding,
- boxPrediction4.boxPredictionEncoding,
- boxPrediction5.boxPredictionEncoding
- ], 1);
- var classPredictions = tf.concat([
- boxPrediction0.classPrediction,
- boxPrediction1.classPrediction,
- boxPrediction2.classPrediction,
- boxPrediction3.classPrediction,
- boxPrediction4.classPrediction,
- boxPrediction5.classPrediction
- ], 1);
- return {
- boxPredictions: boxPredictions,
- classPredictions: classPredictions
- };
- });
-}
-exports.predictionLayer = predictionLayer;
-//# sourceMappingURL=predictionLayer.js.map
\ No newline at end of file
diff --git a/build/commonjs/ssdMobilenetv1/predictionLayer.js.map b/build/commonjs/ssdMobilenetv1/predictionLayer.js.map
deleted file mode 100644
index 3c955862..00000000
--- a/build/commonjs/ssdMobilenetv1/predictionLayer.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"predictionLayer.js","sourceRoot":"","sources":["../../../src/ssdMobilenetv1/predictionLayer.ts"],"names":[],"mappings":";;AAAA,0CAA4C;AAE5C,2DAA0D;AAC1D,2DAA0D;AAG1D,yBACE,CAAc,EACd,MAAmB,EACnB,MAA6B;IAE7B,OAAO,EAAE,CAAC,IAAI,CAAC;QAEb,IAAM,KAAK,GAAG,uCAAkB,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC1D,IAAM,KAAK,GAAG,uCAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC9D,IAAM,KAAK,GAAG,uCAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC9D,IAAM,KAAK,GAAG,uCAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC9D,IAAM,KAAK,GAAG,uCAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC9D,IAAM,KAAK,GAAG,uCAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC9D,IAAM,KAAK,GAAG,uCAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC9D,IAAM,KAAK,GAAG,uCAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAE9D,IAAM,cAAc,GAAG,uCAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC,CAAA;QACzE,IAAM,cAAc,GAAG,uCAAkB,CAAC,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,CAAA;QACpE,IAAM,cAAc,GAAG,uCAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,eAAe,CAAC,CAAA;QACxE,IAAM,cAAc,GAAG,uCAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,eAAe,CAAC,CAAA;QACxE,IAAM,cAAc,GAAG,uCAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,eAAe,CAAC,CAAA;QACxE,IAAM,cAAc,GAAG,uCAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,eAAe,CAAC,CAAA;QAExE,IAAM,cAAc,GAAG,EAAE,CAAC,MAAM,CAAC;YAC/B,cAAc,CAAC,qBAAqB;YACpC,cAAc,CAAC,qBAAqB;YACpC,cAAc,CAAC,qBAAqB;YACpC,cAAc,CAAC,qBAAqB;YACpC,cAAc,CAAC,qBAAqB;YACpC,cAAc,CAAC,qBAAqB;SACrC,EAAE,CAAC,CAAgB,CAAA;QAEpB,IAAM,gBAAgB,GAAG,EAAE,CAAC,MAAM,CAAC;YACjC,cAAc,CAAC,eAAe;YAC9B,cAAc,CAAC,eAAe;YAC9B,cAAc,CAAC,eAAe;YAC9B,cAAc,CAAC,eAAe;YAC9B,cAAc,CAAC,eAAe;YAC9B,cAAc,CAAC,eAAe;SAC/B,EAAE,CAAC,CAAgB,CAAA;QAEpB,OAAO;YACL,cAAc,gBAAA;YACd,gBAAgB,kBAAA;SACjB,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AA9CD,0CA8CC"}
\ No newline at end of file
diff --git a/build/commonjs/ssdMobilenetv1/types.d.ts b/build/commonjs/ssdMobilenetv1/types.d.ts
deleted file mode 100644
index f0eed191..00000000
--- a/build/commonjs/ssdMobilenetv1/types.d.ts
+++ /dev/null
@@ -1,63 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { ConvParams } from 'tfjs-tiny-yolov2';
-export declare type PointwiseConvParams = {
- filters: tf.Tensor4D;
- batch_norm_offset: tf.Tensor1D;
-};
-export declare namespace MobileNetV1 {
- type DepthwiseConvParams = {
- filters: tf.Tensor4D;
- batch_norm_scale: tf.Tensor1D;
- batch_norm_offset: tf.Tensor1D;
- batch_norm_mean: tf.Tensor1D;
- batch_norm_variance: tf.Tensor1D;
- };
- type ConvPairParams = {
- depthwise_conv: DepthwiseConvParams;
- pointwise_conv: PointwiseConvParams;
- };
- type Params = {
- conv_0: PointwiseConvParams;
- conv_1: ConvPairParams;
- conv_2: ConvPairParams;
- conv_3: ConvPairParams;
- conv_4: ConvPairParams;
- conv_5: ConvPairParams;
- conv_6: ConvPairParams;
- conv_7: ConvPairParams;
- conv_8: ConvPairParams;
- conv_9: ConvPairParams;
- conv_10: ConvPairParams;
- conv_11: ConvPairParams;
- conv_12: ConvPairParams;
- conv_13: ConvPairParams;
- };
-}
-export declare type BoxPredictionParams = {
- box_encoding_predictor: ConvParams;
- class_predictor: ConvParams;
-};
-export declare type PredictionLayerParams = {
- conv_0: PointwiseConvParams;
- conv_1: PointwiseConvParams;
- conv_2: PointwiseConvParams;
- conv_3: PointwiseConvParams;
- conv_4: PointwiseConvParams;
- conv_5: PointwiseConvParams;
- conv_6: PointwiseConvParams;
- conv_7: PointwiseConvParams;
- box_predictor_0: BoxPredictionParams;
- box_predictor_1: BoxPredictionParams;
- box_predictor_2: BoxPredictionParams;
- box_predictor_3: BoxPredictionParams;
- box_predictor_4: BoxPredictionParams;
- box_predictor_5: BoxPredictionParams;
-};
-export declare type OutputLayerParams = {
- extra_dim: tf.Tensor3D;
-};
-export declare type NetParams = {
- mobilenetv1: MobileNetV1.Params;
- prediction_layer: PredictionLayerParams;
- output_layer: OutputLayerParams;
-};
diff --git a/build/commonjs/ssdMobilenetv1/types.js b/build/commonjs/ssdMobilenetv1/types.js
deleted file mode 100644
index 11e638d1..00000000
--- a/build/commonjs/ssdMobilenetv1/types.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-//# sourceMappingURL=types.js.map
\ No newline at end of file
diff --git a/build/commonjs/ssdMobilenetv1/types.js.map b/build/commonjs/ssdMobilenetv1/types.js.map
deleted file mode 100644
index 977d82a6..00000000
--- a/build/commonjs/ssdMobilenetv1/types.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/ssdMobilenetv1/types.ts"],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/build/commonjs/tinyFaceDetector/TinyFaceDetector.d.ts b/build/commonjs/tinyFaceDetector/TinyFaceDetector.d.ts
deleted file mode 100644
index 36b07c85..00000000
--- a/build/commonjs/tinyFaceDetector/TinyFaceDetector.d.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import { Point, TNetInput } from 'tfjs-image-recognition-base';
-import { TinyYolov2 as TinyYolov2Base, ITinyYolov2Options } from 'tfjs-tiny-yolov2';
-import { FaceDetection } from '../classes';
-export declare class TinyFaceDetector extends TinyYolov2Base {
- constructor();
- readonly anchors: Point[];
- locateFaces(input: TNetInput, forwardParams: ITinyYolov2Options): Promise;
- protected loadQuantizedParams(modelUri: string | undefined): any;
-}
diff --git a/build/commonjs/tinyFaceDetector/TinyFaceDetector.js b/build/commonjs/tinyFaceDetector/TinyFaceDetector.js
deleted file mode 100644
index 8500a8f8..00000000
--- a/build/commonjs/tinyFaceDetector/TinyFaceDetector.js
+++ /dev/null
@@ -1,50 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tslib_1 = require("tslib");
-var tfjs_tiny_yolov2_1 = require("tfjs-tiny-yolov2");
-var classes_1 = require("../classes");
-var const_1 = require("./const");
-var TinyFaceDetector = /** @class */ (function (_super) {
- tslib_1.__extends(TinyFaceDetector, _super);
- function TinyFaceDetector() {
- var _this = this;
- var config = {
- withSeparableConvs: true,
- iouThreshold: const_1.IOU_THRESHOLD,
- classes: ['face'],
- anchors: const_1.BOX_ANCHORS,
- meanRgb: const_1.MEAN_RGB,
- isFirstLayerConv2d: true,
- filterSizes: [3, 16, 32, 64, 128, 256, 512]
- };
- _this = _super.call(this, config) || this;
- return _this;
- }
- Object.defineProperty(TinyFaceDetector.prototype, "anchors", {
- get: function () {
- return this.config.anchors;
- },
- enumerable: true,
- configurable: true
- });
- TinyFaceDetector.prototype.locateFaces = function (input, forwardParams) {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var objectDetections;
- return tslib_1.__generator(this, function (_a) {
- switch (_a.label) {
- case 0: return [4 /*yield*/, this.detect(input, forwardParams)];
- case 1:
- objectDetections = _a.sent();
- return [2 /*return*/, objectDetections.map(function (det) { return new classes_1.FaceDetection(det.score, det.relativeBox, { width: det.imageWidth, height: det.imageHeight }); })];
- }
- });
- });
- };
- TinyFaceDetector.prototype.loadQuantizedParams = function (modelUri) {
- var defaultModelName = const_1.DEFAULT_MODEL_NAME;
- return _super.prototype.loadQuantizedParams.call(this, modelUri, defaultModelName);
- };
- return TinyFaceDetector;
-}(tfjs_tiny_yolov2_1.TinyYolov2));
-exports.TinyFaceDetector = TinyFaceDetector;
-//# sourceMappingURL=TinyFaceDetector.js.map
\ No newline at end of file
diff --git a/build/commonjs/tinyFaceDetector/TinyFaceDetector.js.map b/build/commonjs/tinyFaceDetector/TinyFaceDetector.js.map
deleted file mode 100644
index a0cb4153..00000000
--- a/build/commonjs/tinyFaceDetector/TinyFaceDetector.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"TinyFaceDetector.js","sourceRoot":"","sources":["../../../src/tinyFaceDetector/TinyFaceDetector.ts"],"names":[],"mappings":";;;AACA,qDAAoF;AAEpF,sCAA2C;AAC3C,iCAAmF;AAEnF;IAAsC,4CAAc;IAElD;QAAA,iBAYC;QAXC,IAAM,MAAM,GAAG;YACb,kBAAkB,EAAE,IAAI;YACxB,YAAY,EAAE,qBAAa;YAC3B,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,OAAO,EAAE,mBAAW;YACpB,OAAO,EAAE,gBAAQ;YACjB,kBAAkB,EAAE,IAAI;YACxB,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;SAC5C,CAAA;QAED,QAAA,kBAAM,MAAM,CAAC,SAAA;;IACf,CAAC;IAED,sBAAW,qCAAO;aAAlB;YACE,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAA;QAC5B,CAAC;;;OAAA;IAEY,sCAAW,GAAxB,UAAyB,KAAgB,EAAE,aAAiC;;;;;4BACjD,qBAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,EAAA;;wBAA1D,gBAAgB,GAAG,SAAuC;wBAChE,sBAAO,gBAAgB,CAAC,GAAG,CAAC,UAAA,GAAG,IAAI,OAAA,IAAI,uBAAa,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,EAAjG,CAAiG,CAAC,EAAA;;;;KACtI;IAES,8CAAmB,GAA7B,UAA8B,QAA4B;QACxD,IAAM,gBAAgB,GAAG,0BAAkB,CAAA;QAC3C,OAAO,iBAAM,mBAAmB,YAAC,QAAQ,EAAE,gBAAgB,CAAQ,CAAA;IACrE,CAAC;IACH,uBAAC;AAAD,CAAC,AA7BD,CAAsC,6BAAc,GA6BnD;AA7BY,4CAAgB"}
\ No newline at end of file
diff --git a/build/commonjs/tinyFaceDetector/TinyFaceDetectorOptions.d.ts b/build/commonjs/tinyFaceDetector/TinyFaceDetectorOptions.d.ts
deleted file mode 100644
index 65d5d654..00000000
--- a/build/commonjs/tinyFaceDetector/TinyFaceDetectorOptions.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { ITinyYolov2Options, TinyYolov2Options } from 'tfjs-tiny-yolov2';
-export interface ITinyFaceDetectorOptions extends ITinyYolov2Options {
-}
-export declare class TinyFaceDetectorOptions extends TinyYolov2Options {
- protected _name: string;
-}
diff --git a/build/commonjs/tinyFaceDetector/TinyFaceDetectorOptions.js b/build/commonjs/tinyFaceDetector/TinyFaceDetectorOptions.js
deleted file mode 100644
index 747782ec..00000000
--- a/build/commonjs/tinyFaceDetector/TinyFaceDetectorOptions.js
+++ /dev/null
@@ -1,15 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tslib_1 = require("tslib");
-var tfjs_tiny_yolov2_1 = require("tfjs-tiny-yolov2");
-var TinyFaceDetectorOptions = /** @class */ (function (_super) {
- tslib_1.__extends(TinyFaceDetectorOptions, _super);
- function TinyFaceDetectorOptions() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this._name = 'TinyFaceDetectorOptions';
- return _this;
- }
- return TinyFaceDetectorOptions;
-}(tfjs_tiny_yolov2_1.TinyYolov2Options));
-exports.TinyFaceDetectorOptions = TinyFaceDetectorOptions;
-//# sourceMappingURL=TinyFaceDetectorOptions.js.map
\ No newline at end of file
diff --git a/build/commonjs/tinyFaceDetector/TinyFaceDetectorOptions.js.map b/build/commonjs/tinyFaceDetector/TinyFaceDetectorOptions.js.map
deleted file mode 100644
index 4471f43d..00000000
--- a/build/commonjs/tinyFaceDetector/TinyFaceDetectorOptions.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"TinyFaceDetectorOptions.js","sourceRoot":"","sources":["../../../src/tinyFaceDetector/TinyFaceDetectorOptions.ts"],"names":[],"mappings":";;;AAAA,qDAAyE;AAIzE;IAA6C,mDAAiB;IAA9D;QAAA,qEAEC;QADW,WAAK,GAAW,yBAAyB,CAAA;;IACrD,CAAC;IAAD,8BAAC;AAAD,CAAC,AAFD,CAA6C,oCAAiB,GAE7D;AAFY,0DAAuB"}
\ No newline at end of file
diff --git a/build/commonjs/tinyFaceDetector/const.d.ts b/build/commonjs/tinyFaceDetector/const.d.ts
deleted file mode 100644
index 85ee0383..00000000
--- a/build/commonjs/tinyFaceDetector/const.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import { Point } from 'tfjs-image-recognition-base';
-export declare const IOU_THRESHOLD = 0.4;
-export declare const BOX_ANCHORS: Point[];
-export declare const MEAN_RGB: [number, number, number];
-export declare const DEFAULT_MODEL_NAME = "tiny_face_detector_model";
diff --git a/build/commonjs/tinyFaceDetector/const.js b/build/commonjs/tinyFaceDetector/const.js
deleted file mode 100644
index 4b7f2a23..00000000
--- a/build/commonjs/tinyFaceDetector/const.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tfjs_image_recognition_base_1 = require("tfjs-image-recognition-base");
-exports.IOU_THRESHOLD = 0.4;
-exports.BOX_ANCHORS = [
- new tfjs_image_recognition_base_1.Point(1.603231, 2.094468),
- new tfjs_image_recognition_base_1.Point(6.041143, 7.080126),
- new tfjs_image_recognition_base_1.Point(2.882459, 3.518061),
- new tfjs_image_recognition_base_1.Point(4.266906, 5.178857),
- new tfjs_image_recognition_base_1.Point(9.041765, 10.66308)
-];
-exports.MEAN_RGB = [117.001, 114.697, 97.404];
-exports.DEFAULT_MODEL_NAME = 'tiny_face_detector_model';
-//# sourceMappingURL=const.js.map
\ No newline at end of file
diff --git a/build/commonjs/tinyFaceDetector/const.js.map b/build/commonjs/tinyFaceDetector/const.js.map
deleted file mode 100644
index e29ca0ed..00000000
--- a/build/commonjs/tinyFaceDetector/const.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"const.js","sourceRoot":"","sources":["../../../src/tinyFaceDetector/const.ts"],"names":[],"mappings":";;AAAA,2EAAoD;AAEvC,QAAA,aAAa,GAAG,GAAG,CAAA;AAEnB,QAAA,WAAW,GAAG;IACzB,IAAI,mCAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC7B,IAAI,mCAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC7B,IAAI,mCAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC7B,IAAI,mCAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC7B,IAAI,mCAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC9B,CAAA;AAEY,QAAA,QAAQ,GAA6B,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;AAE/D,QAAA,kBAAkB,GAAG,0BAA0B,CAAA"}
\ No newline at end of file
diff --git a/build/commonjs/tinyFaceDetector/index.d.ts b/build/commonjs/tinyFaceDetector/index.d.ts
deleted file mode 100644
index cde93ca0..00000000
--- a/build/commonjs/tinyFaceDetector/index.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import { TinyFaceDetector } from './TinyFaceDetector';
-export * from './TinyFaceDetector';
-export * from './TinyFaceDetectorOptions';
-export declare function createTinyFaceDetector(weights: Float32Array): TinyFaceDetector;
diff --git a/build/commonjs/tinyFaceDetector/index.js b/build/commonjs/tinyFaceDetector/index.js
deleted file mode 100644
index 714c0e6c..00000000
--- a/build/commonjs/tinyFaceDetector/index.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tslib_1 = require("tslib");
-var TinyFaceDetector_1 = require("./TinyFaceDetector");
-tslib_1.__exportStar(require("./TinyFaceDetector"), exports);
-tslib_1.__exportStar(require("./TinyFaceDetectorOptions"), exports);
-function createTinyFaceDetector(weights) {
- var net = new TinyFaceDetector_1.TinyFaceDetector();
- net.extractWeights(weights);
- return net;
-}
-exports.createTinyFaceDetector = createTinyFaceDetector;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/build/commonjs/tinyFaceDetector/index.js.map b/build/commonjs/tinyFaceDetector/index.js.map
deleted file mode 100644
index 838f2352..00000000
--- a/build/commonjs/tinyFaceDetector/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tinyFaceDetector/index.ts"],"names":[],"mappings":";;;AAAA,uDAAsD;AAEtD,6DAAmC;AACnC,oEAA0C;AAE1C,gCAAuC,OAAqB;IAC1D,IAAM,GAAG,GAAG,IAAI,mCAAgB,EAAE,CAAA;IAClC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;IAC3B,OAAO,GAAG,CAAA;AACZ,CAAC;AAJD,wDAIC"}
\ No newline at end of file
diff --git a/build/commonjs/tinyYolov2/TinyYolov2.d.ts b/build/commonjs/tinyYolov2/TinyYolov2.d.ts
deleted file mode 100644
index 28161b6f..00000000
--- a/build/commonjs/tinyYolov2/TinyYolov2.d.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { Point, TNetInput } from 'tfjs-image-recognition-base';
-import { ITinyYolov2Options, TinyYolov2 as TinyYolov2Base } from 'tfjs-tiny-yolov2';
-import { FaceDetection } from '../classes';
-export declare class TinyYolov2 extends TinyYolov2Base {
- constructor(withSeparableConvs?: boolean);
- readonly withSeparableConvs: boolean;
- readonly anchors: Point[];
- locateFaces(input: TNetInput, forwardParams: ITinyYolov2Options): Promise;
- protected loadQuantizedParams(modelUri: string | undefined): any;
-}
diff --git a/build/commonjs/tinyYolov2/TinyYolov2.js b/build/commonjs/tinyYolov2/TinyYolov2.js
deleted file mode 100644
index d0ffa925..00000000
--- a/build/commonjs/tinyYolov2/TinyYolov2.js
+++ /dev/null
@@ -1,62 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tslib_1 = require("tslib");
-var tfjs_tiny_yolov2_1 = require("tfjs-tiny-yolov2");
-var classes_1 = require("../classes");
-var const_1 = require("./const");
-var TinyYolov2 = /** @class */ (function (_super) {
- tslib_1.__extends(TinyYolov2, _super);
- function TinyYolov2(withSeparableConvs) {
- if (withSeparableConvs === void 0) { withSeparableConvs = true; }
- var _this = this;
- var config = Object.assign({}, {
- withSeparableConvs: withSeparableConvs,
- iouThreshold: const_1.IOU_THRESHOLD,
- classes: ['face']
- }, withSeparableConvs
- ? {
- anchors: const_1.BOX_ANCHORS_SEPARABLE,
- meanRgb: const_1.MEAN_RGB_SEPARABLE
- }
- : {
- anchors: const_1.BOX_ANCHORS,
- withClassScores: true
- });
- _this = _super.call(this, config) || this;
- return _this;
- }
- Object.defineProperty(TinyYolov2.prototype, "withSeparableConvs", {
- get: function () {
- return this.config.withSeparableConvs;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(TinyYolov2.prototype, "anchors", {
- get: function () {
- return this.config.anchors;
- },
- enumerable: true,
- configurable: true
- });
- TinyYolov2.prototype.locateFaces = function (input, forwardParams) {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var objectDetections;
- return tslib_1.__generator(this, function (_a) {
- switch (_a.label) {
- case 0: return [4 /*yield*/, this.detect(input, forwardParams)];
- case 1:
- objectDetections = _a.sent();
- return [2 /*return*/, objectDetections.map(function (det) { return new classes_1.FaceDetection(det.score, det.relativeBox, { width: det.imageWidth, height: det.imageHeight }); })];
- }
- });
- });
- };
- TinyYolov2.prototype.loadQuantizedParams = function (modelUri) {
- var defaultModelName = this.withSeparableConvs ? const_1.DEFAULT_MODEL_NAME_SEPARABLE_CONV : const_1.DEFAULT_MODEL_NAME;
- return _super.prototype.loadQuantizedParams.call(this, modelUri, defaultModelName);
- };
- return TinyYolov2;
-}(tfjs_tiny_yolov2_1.TinyYolov2));
-exports.TinyYolov2 = TinyYolov2;
-//# sourceMappingURL=TinyYolov2.js.map
\ No newline at end of file
diff --git a/build/commonjs/tinyYolov2/TinyYolov2.js.map b/build/commonjs/tinyYolov2/TinyYolov2.js.map
deleted file mode 100644
index 04658500..00000000
--- a/build/commonjs/tinyYolov2/TinyYolov2.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"TinyYolov2.js","sourceRoot":"","sources":["../../../src/tinyYolov2/TinyYolov2.ts"],"names":[],"mappings":";;;AACA,qDAAoF;AAEpF,sCAA2C;AAC3C,iCAOiB;AAEjB;IAAgC,sCAAc;IAE5C,oBAAY,kBAAkC;QAAlC,mCAAA,EAAA,yBAAkC;QAA9C,iBAkBC;QAjBC,IAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE;YAC/B,kBAAkB,oBAAA;YAClB,YAAY,EAAE,qBAAa;YAC3B,OAAO,EAAE,CAAC,MAAM,CAAC;SAClB,EACD,kBAAkB;YAChB,CAAC,CAAC;gBACA,OAAO,EAAE,6BAAqB;gBAC9B,OAAO,EAAE,0BAAkB;aAC5B;YACD,CAAC,CAAC;gBACA,OAAO,EAAE,mBAAW;gBACpB,eAAe,EAAE,IAAI;aACtB,CACF,CAAA;QAED,QAAA,kBAAM,MAAM,CAAC,SAAA;;IACf,CAAC;IAED,sBAAW,0CAAkB;aAA7B;YACE,OAAO,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAA;QACvC,CAAC;;;OAAA;IAED,sBAAW,+BAAO;aAAlB;YACE,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAA;QAC5B,CAAC;;;OAAA;IAEY,gCAAW,GAAxB,UAAyB,KAAgB,EAAE,aAAiC;;;;;4BACjD,qBAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,EAAA;;wBAA1D,gBAAgB,GAAG,SAAuC;wBAChE,sBAAO,gBAAgB,CAAC,GAAG,CAAC,UAAA,GAAG,IAAI,OAAA,IAAI,uBAAa,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,EAAjG,CAAiG,CAAC,EAAA;;;;KACtI;IAES,wCAAmB,GAA7B,UAA8B,QAA4B;QACxD,IAAM,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,yCAAiC,CAAC,CAAC,CAAC,0BAAkB,CAAA;QACzG,OAAO,iBAAM,mBAAmB,YAAC,QAAQ,EAAE,gBAAgB,CAAQ,CAAA;IACrE,CAAC;IACH,iBAAC;AAAD,CAAC,AAvCD,CAAgC,6BAAc,GAuC7C;AAvCY,gCAAU"}
\ No newline at end of file
diff --git a/build/commonjs/tinyYolov2/const.d.ts b/build/commonjs/tinyYolov2/const.d.ts
deleted file mode 100644
index e64e2478..00000000
--- a/build/commonjs/tinyYolov2/const.d.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import { Point } from 'tfjs-image-recognition-base';
-export declare const IOU_THRESHOLD = 0.4;
-export declare const BOX_ANCHORS: Point[];
-export declare const BOX_ANCHORS_SEPARABLE: Point[];
-export declare const MEAN_RGB_SEPARABLE: [number, number, number];
-export declare const DEFAULT_MODEL_NAME = "tiny_yolov2_model";
-export declare const DEFAULT_MODEL_NAME_SEPARABLE_CONV = "tiny_yolov2_separable_conv_model";
diff --git a/build/commonjs/tinyYolov2/const.js b/build/commonjs/tinyYolov2/const.js
deleted file mode 100644
index 72df0e30..00000000
--- a/build/commonjs/tinyYolov2/const.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tfjs_image_recognition_base_1 = require("tfjs-image-recognition-base");
-exports.IOU_THRESHOLD = 0.4;
-exports.BOX_ANCHORS = [
- new tfjs_image_recognition_base_1.Point(0.738768, 0.874946),
- new tfjs_image_recognition_base_1.Point(2.42204, 2.65704),
- new tfjs_image_recognition_base_1.Point(4.30971, 7.04493),
- new tfjs_image_recognition_base_1.Point(10.246, 4.59428),
- new tfjs_image_recognition_base_1.Point(12.6868, 11.8741)
-];
-exports.BOX_ANCHORS_SEPARABLE = [
- new tfjs_image_recognition_base_1.Point(1.603231, 2.094468),
- new tfjs_image_recognition_base_1.Point(6.041143, 7.080126),
- new tfjs_image_recognition_base_1.Point(2.882459, 3.518061),
- new tfjs_image_recognition_base_1.Point(4.266906, 5.178857),
- new tfjs_image_recognition_base_1.Point(9.041765, 10.66308)
-];
-exports.MEAN_RGB_SEPARABLE = [117.001, 114.697, 97.404];
-exports.DEFAULT_MODEL_NAME = 'tiny_yolov2_model';
-exports.DEFAULT_MODEL_NAME_SEPARABLE_CONV = 'tiny_yolov2_separable_conv_model';
-//# sourceMappingURL=const.js.map
\ No newline at end of file
diff --git a/build/commonjs/tinyYolov2/const.js.map b/build/commonjs/tinyYolov2/const.js.map
deleted file mode 100644
index b0583b69..00000000
--- a/build/commonjs/tinyYolov2/const.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"const.js","sourceRoot":"","sources":["../../../src/tinyYolov2/const.ts"],"names":[],"mappings":";;AAAA,2EAAoD;AAEvC,QAAA,aAAa,GAAG,GAAG,CAAA;AAEnB,QAAA,WAAW,GAAG;IACzB,IAAI,mCAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC7B,IAAI,mCAAK,CAAC,OAAO,EAAE,OAAO,CAAC;IAC3B,IAAI,mCAAK,CAAC,OAAO,EAAE,OAAO,CAAC;IAC3B,IAAI,mCAAK,CAAC,MAAM,EAAE,OAAO,CAAC;IAC1B,IAAI,mCAAK,CAAC,OAAO,EAAE,OAAO,CAAC;CAC5B,CAAA;AAEY,QAAA,qBAAqB,GAAG;IACnC,IAAI,mCAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC7B,IAAI,mCAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC7B,IAAI,mCAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC7B,IAAI,mCAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC7B,IAAI,mCAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC9B,CAAA;AAEY,QAAA,kBAAkB,GAA6B,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;AAEzE,QAAA,kBAAkB,GAAG,mBAAmB,CAAA;AACxC,QAAA,iCAAiC,GAAG,kCAAkC,CAAA"}
\ No newline at end of file
diff --git a/build/commonjs/tinyYolov2/index.d.ts b/build/commonjs/tinyYolov2/index.d.ts
deleted file mode 100644
index 37d04441..00000000
--- a/build/commonjs/tinyYolov2/index.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import { TinyYolov2 } from './TinyYolov2';
-export * from './TinyYolov2';
-export declare function createTinyYolov2(weights: Float32Array, withSeparableConvs?: boolean): TinyYolov2;
diff --git a/build/commonjs/tinyYolov2/index.js b/build/commonjs/tinyYolov2/index.js
deleted file mode 100644
index 2a274368..00000000
--- a/build/commonjs/tinyYolov2/index.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-var tslib_1 = require("tslib");
-var TinyYolov2_1 = require("./TinyYolov2");
-tslib_1.__exportStar(require("./TinyYolov2"), exports);
-function createTinyYolov2(weights, withSeparableConvs) {
- if (withSeparableConvs === void 0) { withSeparableConvs = true; }
- var net = new TinyYolov2_1.TinyYolov2(withSeparableConvs);
- net.extractWeights(weights);
- return net;
-}
-exports.createTinyYolov2 = createTinyYolov2;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/build/commonjs/tinyYolov2/index.js.map b/build/commonjs/tinyYolov2/index.js.map
deleted file mode 100644
index df76e267..00000000
--- a/build/commonjs/tinyYolov2/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tinyYolov2/index.ts"],"names":[],"mappings":";;;AAAA,2CAA0C;AAE1C,uDAA6B;AAE7B,0BAAiC,OAAqB,EAAE,kBAAkC;IAAlC,mCAAA,EAAA,yBAAkC;IACxF,IAAM,GAAG,GAAG,IAAI,uBAAU,CAAC,kBAAkB,CAAC,CAAA;IAC9C,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;IAC3B,OAAO,GAAG,CAAA;AACZ,CAAC;AAJD,4CAIC"}
\ No newline at end of file
diff --git a/build/es6/classes/FaceDetection.d.ts b/build/es6/classes/FaceDetection.d.ts
deleted file mode 100644
index b542db89..00000000
--- a/build/es6/classes/FaceDetection.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { Box, IDimensions, ObjectDetection, Rect } from 'tfjs-image-recognition-base';
-export interface IFaceDetecion {
- score: number;
- box: Box;
-}
-export declare class FaceDetection extends ObjectDetection implements IFaceDetecion {
- constructor(score: number, relativeBox: Rect, imageDims: IDimensions);
-}
diff --git a/build/es6/classes/FaceDetection.js b/build/es6/classes/FaceDetection.js
deleted file mode 100644
index c29c916d..00000000
--- a/build/es6/classes/FaceDetection.js
+++ /dev/null
@@ -1,11 +0,0 @@
-import * as tslib_1 from "tslib";
-import { ObjectDetection } from 'tfjs-image-recognition-base';
-var FaceDetection = /** @class */ (function (_super) {
- tslib_1.__extends(FaceDetection, _super);
- function FaceDetection(score, relativeBox, imageDims) {
- return _super.call(this, score, score, '', relativeBox, imageDims) || this;
- }
- return FaceDetection;
-}(ObjectDetection));
-export { FaceDetection };
-//# sourceMappingURL=FaceDetection.js.map
\ No newline at end of file
diff --git a/build/es6/classes/FaceDetection.js.map b/build/es6/classes/FaceDetection.js.map
deleted file mode 100644
index a93c6517..00000000
--- a/build/es6/classes/FaceDetection.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"FaceDetection.js","sourceRoot":"","sources":["../../../src/classes/FaceDetection.ts"],"names":[],"mappings":";AAAA,OAAO,EAAoB,eAAe,EAAQ,MAAM,6BAA6B,CAAC;AAOtF;IAAmC,yCAAe;IAChD,uBACE,KAAa,EACb,WAAiB,EACjB,SAAsB;eAEtB,kBAAM,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC;IACjD,CAAC;IACH,oBAAC;AAAD,CAAC,AARD,CAAmC,eAAe,GAQjD"}
\ No newline at end of file
diff --git a/build/es6/classes/FaceDetectionWithLandmarks.d.ts b/build/es6/classes/FaceDetectionWithLandmarks.d.ts
deleted file mode 100644
index ed2ac7d5..00000000
--- a/build/es6/classes/FaceDetectionWithLandmarks.d.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-import { FaceDetection } from './FaceDetection';
-import { FaceLandmarks } from './FaceLandmarks';
-import { FaceLandmarks68 } from './FaceLandmarks68';
-export interface IFaceDetectionWithLandmarks {
- detection: FaceDetection;
- landmarks: TFaceLandmarks;
-}
-export declare class FaceDetectionWithLandmarks implements IFaceDetectionWithLandmarks {
- private _detection;
- private _unshiftedLandmarks;
- constructor(detection: FaceDetection, unshiftedLandmarks: TFaceLandmarks);
- readonly detection: FaceDetection;
- readonly unshiftedLandmarks: TFaceLandmarks;
- readonly alignedRect: FaceDetection;
- readonly landmarks: TFaceLandmarks;
- readonly faceDetection: FaceDetection;
- readonly faceLandmarks: TFaceLandmarks;
- forSize(width: number, height: number): FaceDetectionWithLandmarks;
-}
diff --git a/build/es6/classes/FaceDetectionWithLandmarks.js b/build/es6/classes/FaceDetectionWithLandmarks.js
deleted file mode 100644
index 4acf586b..00000000
--- a/build/es6/classes/FaceDetectionWithLandmarks.js
+++ /dev/null
@@ -1,53 +0,0 @@
-import { FaceDetection } from './FaceDetection';
-var FaceDetectionWithLandmarks = /** @class */ (function () {
- function FaceDetectionWithLandmarks(detection, unshiftedLandmarks) {
- this._detection = detection;
- this._unshiftedLandmarks = unshiftedLandmarks;
- }
- Object.defineProperty(FaceDetectionWithLandmarks.prototype, "detection", {
- get: function () { return this._detection; },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(FaceDetectionWithLandmarks.prototype, "unshiftedLandmarks", {
- get: function () { return this._unshiftedLandmarks; },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(FaceDetectionWithLandmarks.prototype, "alignedRect", {
- get: function () {
- var rect = this.landmarks.align();
- var imageDims = this.detection.imageDims;
- return new FaceDetection(this._detection.score, rect.rescale(imageDims.reverse()), imageDims);
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(FaceDetectionWithLandmarks.prototype, "landmarks", {
- get: function () {
- var _a = this.detection.box, x = _a.x, y = _a.y;
- return this._unshiftedLandmarks.shiftBy(x, y);
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(FaceDetectionWithLandmarks.prototype, "faceDetection", {
- // aliases for backward compatibily
- get: function () { return this.detection; },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(FaceDetectionWithLandmarks.prototype, "faceLandmarks", {
- get: function () { return this.landmarks; },
- enumerable: true,
- configurable: true
- });
- FaceDetectionWithLandmarks.prototype.forSize = function (width, height) {
- var resizedDetection = this._detection.forSize(width, height);
- var resizedLandmarks = this._unshiftedLandmarks.forSize(resizedDetection.box.width, resizedDetection.box.height);
- return new FaceDetectionWithLandmarks(resizedDetection, resizedLandmarks);
- };
- return FaceDetectionWithLandmarks;
-}());
-export { FaceDetectionWithLandmarks };
-//# sourceMappingURL=FaceDetectionWithLandmarks.js.map
\ No newline at end of file
diff --git a/build/es6/classes/FaceDetectionWithLandmarks.js.map b/build/es6/classes/FaceDetectionWithLandmarks.js.map
deleted file mode 100644
index aa4d4797..00000000
--- a/build/es6/classes/FaceDetectionWithLandmarks.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"FaceDetectionWithLandmarks.js","sourceRoot":"","sources":["../../../src/classes/FaceDetectionWithLandmarks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAShD;IAME,oCACE,SAAwB,EACxB,kBAAkC;QAElC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAA;QAC3B,IAAI,CAAC,mBAAmB,GAAG,kBAAkB,CAAA;IAC/C,CAAC;IAED,sBAAW,iDAAS;aAApB,cAAwC,OAAO,IAAI,CAAC,UAAU,CAAA,CAAC,CAAC;;;OAAA;IAChE,sBAAW,0DAAkB;aAA7B,cAAkD,OAAO,IAAI,CAAC,mBAAmB,CAAA,CAAC,CAAC;;;OAAA;IAEnF,sBAAW,mDAAW;aAAtB;YACE,IAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAA;YAC3B,IAAA,oCAAS,CAAmB;YACpC,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,CAAA;QAC/F,CAAC;;;OAAA;IAED,sBAAW,iDAAS;aAApB;YACQ,IAAA,uBAA6B,EAA3B,QAAC,EAAE,QAAC,CAAuB;YACnC,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAC/C,CAAC;;;OAAA;IAGD,sBAAI,qDAAa;QADjB,mCAAmC;aACnC,cAAqC,OAAO,IAAI,CAAC,SAAS,CAAA,CAAC,CAAC;;;OAAA;IAC5D,sBAAI,qDAAa;aAAjB,cAAsC,OAAO,IAAI,CAAC,SAAS,CAAA,CAAC,CAAC;;;OAAA;IAEtD,4CAAO,GAAd,UAAe,KAAa,EAAE,MAAc;QAC1C,IAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;QAC/D,IAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAiB,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAClI,OAAO,IAAI,0BAA0B,CAAiB,gBAAgB,EAAE,gBAAgB,CAAC,CAAA;IAC3F,CAAC;IACH,iCAAC;AAAD,CAAC,AArCD,IAqCC"}
\ No newline at end of file
diff --git a/build/es6/classes/FaceLandmarks.d.ts b/build/es6/classes/FaceLandmarks.d.ts
deleted file mode 100644
index 48ea7c81..00000000
--- a/build/es6/classes/FaceLandmarks.d.ts
+++ /dev/null
@@ -1,33 +0,0 @@
-import { Dimensions, IDimensions, Point, Rect } from 'tfjs-image-recognition-base';
-import { FaceDetection } from './FaceDetection';
-export interface IFaceLandmarks {
- positions: Point[];
- shift: Point;
-}
-export declare class FaceLandmarks implements IFaceLandmarks {
- protected _shift: Point;
- protected _positions: Point[];
- protected _imgDims: Dimensions;
- constructor(relativeFaceLandmarkPositions: Point[], imgDims: IDimensions, shift?: Point);
- readonly shift: Point;
- readonly imageWidth: number;
- readonly imageHeight: number;
- readonly positions: Point[];
- readonly relativePositions: Point[];
- forSize(width: number, height: number): T;
- shiftBy(x: number, y: number): T;
- shiftByPoint(pt: Point): T;
- /**
- * Aligns the face landmarks after face detection from the relative positions of the faces
- * bounding box, or it's current shift. This function should be used to align the face images
- * after face detection has been performed, before they are passed to the face recognition net.
- * This will make the computed face descriptor more accurate.
- *
- * @param detection (optional) The bounding box of the face or the face detection result. If
- * no argument was passed the position of the face landmarks are assumed to be relative to
- * it's current shift.
- * @returns The bounding box of the aligned face.
- */
- align(detection?: FaceDetection | Rect): Rect;
- protected getRefPointsForAlignment(): Point[];
-}
diff --git a/build/es6/classes/FaceLandmarks.js b/build/es6/classes/FaceLandmarks.js
deleted file mode 100644
index 08676418..00000000
--- a/build/es6/classes/FaceLandmarks.js
+++ /dev/null
@@ -1,87 +0,0 @@
-import { Dimensions, getCenterPoint, Point, Rect } from 'tfjs-image-recognition-base';
-import { FaceDetection } from './FaceDetection';
-// face alignment constants
-var relX = 0.5;
-var relY = 0.43;
-var relScale = 0.45;
-var FaceLandmarks = /** @class */ (function () {
- function FaceLandmarks(relativeFaceLandmarkPositions, imgDims, shift) {
- if (shift === void 0) { shift = new Point(0, 0); }
- var width = imgDims.width, height = imgDims.height;
- this._imgDims = new Dimensions(width, height);
- this._shift = shift;
- this._positions = relativeFaceLandmarkPositions.map(function (pt) { return pt.mul(new Point(width, height)).add(shift); });
- }
- Object.defineProperty(FaceLandmarks.prototype, "shift", {
- get: function () { return new Point(this._shift.x, this._shift.y); },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(FaceLandmarks.prototype, "imageWidth", {
- get: function () { return this._imgDims.width; },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(FaceLandmarks.prototype, "imageHeight", {
- get: function () { return this._imgDims.height; },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(FaceLandmarks.prototype, "positions", {
- get: function () { return this._positions; },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(FaceLandmarks.prototype, "relativePositions", {
- get: function () {
- var _this = this;
- return this._positions.map(function (pt) { return pt.sub(_this._shift).div(new Point(_this.imageWidth, _this.imageHeight)); });
- },
- enumerable: true,
- configurable: true
- });
- FaceLandmarks.prototype.forSize = function (width, height) {
- return new this.constructor(this.relativePositions, { width: width, height: height });
- };
- FaceLandmarks.prototype.shiftBy = function (x, y) {
- return new this.constructor(this.relativePositions, this._imgDims, new Point(x, y));
- };
- FaceLandmarks.prototype.shiftByPoint = function (pt) {
- return this.shiftBy(pt.x, pt.y);
- };
- /**
- * Aligns the face landmarks after face detection from the relative positions of the faces
- * bounding box, or it's current shift. This function should be used to align the face images
- * after face detection has been performed, before they are passed to the face recognition net.
- * This will make the computed face descriptor more accurate.
- *
- * @param detection (optional) The bounding box of the face or the face detection result. If
- * no argument was passed the position of the face landmarks are assumed to be relative to
- * it's current shift.
- * @returns The bounding box of the aligned face.
- */
- FaceLandmarks.prototype.align = function (detection) {
- if (detection) {
- var box = detection instanceof FaceDetection
- ? detection.box.floor()
- : detection;
- return this.shiftBy(box.x, box.y).align();
- }
- var centers = this.getRefPointsForAlignment();
- var leftEyeCenter = centers[0], rightEyeCenter = centers[1], mouthCenter = centers[2];
- var distToMouth = function (pt) { return mouthCenter.sub(pt).magnitude(); };
- var eyeToMouthDist = (distToMouth(leftEyeCenter) + distToMouth(rightEyeCenter)) / 2;
- var size = Math.floor(eyeToMouthDist / relScale);
- var refPoint = getCenterPoint(centers);
- // TODO: pad in case rectangle is out of image bounds
- var x = Math.floor(Math.max(0, refPoint.x - (relX * size)));
- var y = Math.floor(Math.max(0, refPoint.y - (relY * size)));
- return new Rect(x, y, Math.min(size, this.imageWidth + x), Math.min(size, this.imageHeight + y));
- };
- FaceLandmarks.prototype.getRefPointsForAlignment = function () {
- throw new Error('getRefPointsForAlignment not implemented by base class');
- };
- return FaceLandmarks;
-}());
-export { FaceLandmarks };
-//# sourceMappingURL=FaceLandmarks.js.map
\ No newline at end of file
diff --git a/build/es6/classes/FaceLandmarks.js.map b/build/es6/classes/FaceLandmarks.js.map
deleted file mode 100644
index 73758b9c..00000000
--- a/build/es6/classes/FaceLandmarks.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"FaceLandmarks.js","sourceRoot":"","sources":["../../../src/classes/FaceLandmarks.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/build/es6/classes/FaceLandmarks5.d.ts b/build/es6/classes/FaceLandmarks5.d.ts
deleted file mode 100644
index 554ce2f1..00000000
--- a/build/es6/classes/FaceLandmarks5.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import { Point } from 'tfjs-image-recognition-base';
-import { FaceLandmarks } from './FaceLandmarks';
-export declare class FaceLandmarks5 extends FaceLandmarks {
- protected getRefPointsForAlignment(): Point[];
-}
diff --git a/build/es6/classes/FaceLandmarks5.js b/build/es6/classes/FaceLandmarks5.js
deleted file mode 100644
index 16b1a4e4..00000000
--- a/build/es6/classes/FaceLandmarks5.js
+++ /dev/null
@@ -1,20 +0,0 @@
-import * as tslib_1 from "tslib";
-import { getCenterPoint } from 'tfjs-image-recognition-base';
-import { FaceLandmarks } from './FaceLandmarks';
-var FaceLandmarks5 = /** @class */ (function (_super) {
- tslib_1.__extends(FaceLandmarks5, _super);
- function FaceLandmarks5() {
- return _super !== null && _super.apply(this, arguments) || this;
- }
- FaceLandmarks5.prototype.getRefPointsForAlignment = function () {
- var pts = this.positions;
- return [
- pts[0],
- pts[1],
- getCenterPoint([pts[3], pts[4]])
- ];
- };
- return FaceLandmarks5;
-}(FaceLandmarks));
-export { FaceLandmarks5 };
-//# sourceMappingURL=FaceLandmarks5.js.map
\ No newline at end of file
diff --git a/build/es6/classes/FaceLandmarks5.js.map b/build/es6/classes/FaceLandmarks5.js.map
deleted file mode 100644
index 062b0cb9..00000000
--- a/build/es6/classes/FaceLandmarks5.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"FaceLandmarks5.js","sourceRoot":"","sources":["../../../src/classes/FaceLandmarks5.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAS,MAAM,6BAA6B,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD;IAAoC,0CAAa;IAAjD;;IAUA,CAAC;IARW,iDAAwB,GAAlC;QACE,IAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAA;QAC1B,OAAO;YACL,GAAG,CAAC,CAAC,CAAC;YACN,GAAG,CAAC,CAAC,CAAC;YACN,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SACjC,CAAA;IACH,CAAC;IACH,qBAAC;AAAD,CAAC,AAVD,CAAoC,aAAa,GAUhD"}
\ No newline at end of file
diff --git a/build/es6/classes/FaceLandmarks68.d.ts b/build/es6/classes/FaceLandmarks68.d.ts
deleted file mode 100644
index 5ac3974e..00000000
--- a/build/es6/classes/FaceLandmarks68.d.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { Point } from 'tfjs-image-recognition-base';
-import { FaceLandmarks } from '../classes/FaceLandmarks';
-export declare class FaceLandmarks68 extends FaceLandmarks {
- getJawOutline(): Point[];
- getLeftEyeBrow(): Point[];
- getRightEyeBrow(): Point[];
- getNose(): Point[];
- getLeftEye(): Point[];
- getRightEye(): Point[];
- getMouth(): Point[];
- protected getRefPointsForAlignment(): Point[];
-}
diff --git a/build/es6/classes/FaceLandmarks68.js b/build/es6/classes/FaceLandmarks68.js
deleted file mode 100644
index 4e81caf5..00000000
--- a/build/es6/classes/FaceLandmarks68.js
+++ /dev/null
@@ -1,40 +0,0 @@
-import * as tslib_1 from "tslib";
-import { getCenterPoint } from 'tfjs-image-recognition-base';
-import { FaceLandmarks } from '../classes/FaceLandmarks';
-var FaceLandmarks68 = /** @class */ (function (_super) {
- tslib_1.__extends(FaceLandmarks68, _super);
- function FaceLandmarks68() {
- return _super !== null && _super.apply(this, arguments) || this;
- }
- FaceLandmarks68.prototype.getJawOutline = function () {
- return this.positions.slice(0, 17);
- };
- FaceLandmarks68.prototype.getLeftEyeBrow = function () {
- return this.positions.slice(17, 22);
- };
- FaceLandmarks68.prototype.getRightEyeBrow = function () {
- return this.positions.slice(22, 27);
- };
- FaceLandmarks68.prototype.getNose = function () {
- return this.positions.slice(27, 36);
- };
- FaceLandmarks68.prototype.getLeftEye = function () {
- return this.positions.slice(36, 42);
- };
- FaceLandmarks68.prototype.getRightEye = function () {
- return this.positions.slice(42, 48);
- };
- FaceLandmarks68.prototype.getMouth = function () {
- return this.positions.slice(48, 68);
- };
- FaceLandmarks68.prototype.getRefPointsForAlignment = function () {
- return [
- this.getLeftEye(),
- this.getRightEye(),
- this.getMouth()
- ].map(getCenterPoint);
- };
- return FaceLandmarks68;
-}(FaceLandmarks));
-export { FaceLandmarks68 };
-//# sourceMappingURL=FaceLandmarks68.js.map
\ No newline at end of file
diff --git a/build/es6/classes/FaceLandmarks68.js.map b/build/es6/classes/FaceLandmarks68.js.map
deleted file mode 100644
index 4b2c8bf4..00000000
--- a/build/es6/classes/FaceLandmarks68.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"FaceLandmarks68.js","sourceRoot":"","sources":["../../../src/classes/FaceLandmarks68.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAS,MAAM,6BAA6B,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD;IAAqC,2CAAa;IAAlD;;IAoCA,CAAC;IAnCQ,uCAAa,GAApB;QACE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACpC,CAAC;IAEM,wCAAc,GAArB;QACE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IACrC,CAAC;IAEM,yCAAe,GAAtB;QACE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IACrC,CAAC;IAEM,iCAAO,GAAd;QACE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IACrC,CAAC;IAEM,oCAAU,GAAjB;QACE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IACrC,CAAC;IAEM,qCAAW,GAAlB;QACE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IACrC,CAAC;IAEM,kCAAQ,GAAf;QACE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;IACrC,CAAC;IAES,kDAAwB,GAAlC;QACE,OAAO;YACL,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,QAAQ,EAAE;SAChB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;IACvB,CAAC;IACH,sBAAC;AAAD,CAAC,AApCD,CAAqC,aAAa,GAoCjD"}
\ No newline at end of file
diff --git a/build/es6/classes/FaceMatch.d.ts b/build/es6/classes/FaceMatch.d.ts
deleted file mode 100644
index 3c0befef..00000000
--- a/build/es6/classes/FaceMatch.d.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-export interface IFaceMatch {
- label: string;
- distance: number;
-}
-export declare class FaceMatch implements IFaceMatch {
- private _label;
- private _distance;
- constructor(label: string, distance: number);
- readonly label: string;
- readonly distance: number;
- toString(withDistance?: boolean): string;
-}
diff --git a/build/es6/classes/FaceMatch.js b/build/es6/classes/FaceMatch.js
deleted file mode 100644
index 525568b1..00000000
--- a/build/es6/classes/FaceMatch.js
+++ /dev/null
@@ -1,24 +0,0 @@
-import { round } from 'tfjs-image-recognition-base';
-var FaceMatch = /** @class */ (function () {
- function FaceMatch(label, distance) {
- this._label = label;
- this._distance = distance;
- }
- Object.defineProperty(FaceMatch.prototype, "label", {
- get: function () { return this._label; },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(FaceMatch.prototype, "distance", {
- get: function () { return this._distance; },
- enumerable: true,
- configurable: true
- });
- FaceMatch.prototype.toString = function (withDistance) {
- if (withDistance === void 0) { withDistance = true; }
- return "" + this.label + (withDistance ? " (" + round(this.distance) + ")" : '');
- };
- return FaceMatch;
-}());
-export { FaceMatch };
-//# sourceMappingURL=FaceMatch.js.map
\ No newline at end of file
diff --git a/build/es6/classes/FaceMatch.js.map b/build/es6/classes/FaceMatch.js.map
deleted file mode 100644
index 0ca7ed77..00000000
--- a/build/es6/classes/FaceMatch.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"FaceMatch.js","sourceRoot":"","sources":["../../../src/classes/FaceMatch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAOpD;IAIE,mBAAY,KAAa,EAAE,QAAgB;QACzC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAA;IAC3B,CAAC;IAED,sBAAW,4BAAK;aAAhB,cAA6B,OAAO,IAAI,CAAC,MAAM,CAAA,CAAC,CAAC;;;OAAA;IACjD,sBAAW,+BAAQ;aAAnB,cAAgC,OAAO,IAAI,CAAC,SAAS,CAAA,CAAC,CAAC;;;OAAA;IAEhD,4BAAQ,GAAf,UAAgB,YAA4B;QAA5B,6BAAA,EAAA,mBAA4B;QAC1C,OAAO,KAAG,IAAI,CAAC,KAAK,IAAG,YAAY,CAAC,CAAC,CAAC,OAAK,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAG,CAAC,CAAC,CAAC,EAAE,CAAE,CAAA;IAC3E,CAAC;IACH,gBAAC;AAAD,CAAC,AAfD,IAeC"}
\ No newline at end of file
diff --git a/build/es6/classes/FullFaceDescription.d.ts b/build/es6/classes/FullFaceDescription.d.ts
deleted file mode 100644
index 88ec647d..00000000
--- a/build/es6/classes/FullFaceDescription.d.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import { FaceDetection } from './FaceDetection';
-import { FaceDetectionWithLandmarks, IFaceDetectionWithLandmarks } from './FaceDetectionWithLandmarks';
-import { FaceLandmarks } from './FaceLandmarks';
-import { FaceLandmarks68 } from './FaceLandmarks68';
-export interface IFullFaceDescription extends IFaceDetectionWithLandmarks {
- detection: FaceDetection;
- landmarks: TFaceLandmarks;
- descriptor: Float32Array;
-}
-export declare class FullFaceDescription extends FaceDetectionWithLandmarks implements IFullFaceDescription {
- private _descriptor;
- constructor(detection: FaceDetection, unshiftedLandmarks: TFaceLandmarks, descriptor: Float32Array);
- readonly descriptor: Float32Array;
- forSize(width: number, height: number): FullFaceDescription;
-}
diff --git a/build/es6/classes/FullFaceDescription.js b/build/es6/classes/FullFaceDescription.js
deleted file mode 100644
index eb0c8d4a..00000000
--- a/build/es6/classes/FullFaceDescription.js
+++ /dev/null
@@ -1,24 +0,0 @@
-import * as tslib_1 from "tslib";
-import { FaceDetectionWithLandmarks } from './FaceDetectionWithLandmarks';
-var FullFaceDescription = /** @class */ (function (_super) {
- tslib_1.__extends(FullFaceDescription, _super);
- function FullFaceDescription(detection, unshiftedLandmarks, descriptor) {
- var _this = _super.call(this, detection, unshiftedLandmarks) || this;
- _this._descriptor = descriptor;
- return _this;
- }
- Object.defineProperty(FullFaceDescription.prototype, "descriptor", {
- get: function () {
- return this._descriptor;
- },
- enumerable: true,
- configurable: true
- });
- FullFaceDescription.prototype.forSize = function (width, height) {
- var _a = _super.prototype.forSize.call(this, width, height), detection = _a.detection, landmarks = _a.landmarks;
- return new FullFaceDescription(detection, landmarks, this.descriptor);
- };
- return FullFaceDescription;
-}(FaceDetectionWithLandmarks));
-export { FullFaceDescription };
-//# sourceMappingURL=FullFaceDescription.js.map
\ No newline at end of file
diff --git a/build/es6/classes/FullFaceDescription.js.map b/build/es6/classes/FullFaceDescription.js.map
deleted file mode 100644
index 962a232a..00000000
--- a/build/es6/classes/FullFaceDescription.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"FullFaceDescription.js","sourceRoot":"","sources":["../../../src/classes/FullFaceDescription.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,0BAA0B,EAA+B,MAAM,8BAA8B,CAAC;AAYvG;IACU,+CAA0C;IAKlD,6BACE,SAAwB,EACxB,kBAAkC,EAClC,UAAwB;QAH1B,YAKE,kBAAM,SAAS,EAAE,kBAAkB,CAAC,SAErC;QADC,KAAI,CAAC,WAAW,GAAG,UAAU,CAAA;;IAC/B,CAAC;IAED,sBAAW,2CAAU;aAArB;YACE,OAAO,IAAI,CAAC,WAAW,CAAA;QACzB,CAAC;;;OAAA;IAEM,qCAAO,GAAd,UAAe,KAAa,EAAE,MAAc;QACpC,IAAA,uDAAuD,EAArD,wBAAS,EAAE,wBAAS,CAAiC;QAC7D,OAAO,IAAI,mBAAmB,CAAiB,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;IACvF,CAAC;IACH,0BAAC;AAAD,CAAC,AAvBD,CACU,0BAA0B,GAsBnC"}
\ No newline at end of file
diff --git a/build/es6/classes/LabeledFaceDescriptors.d.ts b/build/es6/classes/LabeledFaceDescriptors.d.ts
deleted file mode 100644
index feb5da06..00000000
--- a/build/es6/classes/LabeledFaceDescriptors.d.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-export declare class LabeledFaceDescriptors {
- private _label;
- private _descriptors;
- constructor(label: string, descriptors: Float32Array[]);
- readonly label: string;
- readonly descriptors: Float32Array[];
-}
diff --git a/build/es6/classes/LabeledFaceDescriptors.js b/build/es6/classes/LabeledFaceDescriptors.js
deleted file mode 100644
index cb23a2b1..00000000
--- a/build/es6/classes/LabeledFaceDescriptors.js
+++ /dev/null
@@ -1,25 +0,0 @@
-var LabeledFaceDescriptors = /** @class */ (function () {
- function LabeledFaceDescriptors(label, descriptors) {
- if (!(typeof label === 'string')) {
- throw new Error('LabeledFaceDescriptors - constructor expected label to be a string');
- }
- if (!Array.isArray(descriptors) || descriptors.some(function (desc) { return !(desc instanceof Float32Array); })) {
- throw new Error('LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array');
- }
- this._label = label;
- this._descriptors = descriptors;
- }
- Object.defineProperty(LabeledFaceDescriptors.prototype, "label", {
- get: function () { return this._label; },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(LabeledFaceDescriptors.prototype, "descriptors", {
- get: function () { return this._descriptors; },
- enumerable: true,
- configurable: true
- });
- return LabeledFaceDescriptors;
-}());
-export { LabeledFaceDescriptors };
-//# sourceMappingURL=LabeledFaceDescriptors.js.map
\ No newline at end of file
diff --git a/build/es6/classes/LabeledFaceDescriptors.js.map b/build/es6/classes/LabeledFaceDescriptors.js.map
deleted file mode 100644
index c19354f0..00000000
--- a/build/es6/classes/LabeledFaceDescriptors.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"LabeledFaceDescriptors.js","sourceRoot":"","sources":["../../../src/classes/LabeledFaceDescriptors.ts"],"names":[],"mappings":"AAAA;IAIE,gCAAY,KAAa,EAAE,WAA2B;QACpD,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,EAAE;YAChC,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAA;SACtF;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,UAAA,IAAI,IAAI,OAAA,CAAC,CAAC,IAAI,YAAY,YAAY,CAAC,EAA/B,CAA+B,CAAC,EAAE;YAC5F,MAAM,IAAI,KAAK,CAAC,0FAA0F,CAAC,CAAA;SAC5G;QAED,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,IAAI,CAAC,YAAY,GAAG,WAAW,CAAA;IACjC,CAAC;IAED,sBAAW,yCAAK;aAAhB,cAA6B,OAAO,IAAI,CAAC,MAAM,CAAA,CAAC,CAAC;;;OAAA;IACjD,sBAAW,+CAAW;aAAtB,cAA2C,OAAO,IAAI,CAAC,YAAY,CAAA,CAAC,CAAC;;;OAAA;IACvE,6BAAC;AAAD,CAAC,AAnBD,IAmBC"}
\ No newline at end of file
diff --git a/build/es6/classes/index.d.ts b/build/es6/classes/index.d.ts
deleted file mode 100644
index e19eaaa8..00000000
--- a/build/es6/classes/index.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-export * from './FaceDetection';
-export * from './FaceDetectionWithLandmarks';
-export * from './FaceLandmarks';
-export * from './FaceLandmarks5';
-export * from './FaceLandmarks68';
-export * from './FaceMatch';
-export * from './FullFaceDescription';
-export * from './LabeledFaceDescriptors';
diff --git a/build/es6/classes/index.js b/build/es6/classes/index.js
deleted file mode 100644
index 050b12c5..00000000
--- a/build/es6/classes/index.js
+++ /dev/null
@@ -1,9 +0,0 @@
-export * from './FaceDetection';
-export * from './FaceDetectionWithLandmarks';
-export * from './FaceLandmarks';
-export * from './FaceLandmarks5';
-export * from './FaceLandmarks68';
-export * from './FaceMatch';
-export * from './FullFaceDescription';
-export * from './LabeledFaceDescriptors';
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/build/es6/classes/index.js.map b/build/es6/classes/index.js.map
deleted file mode 100644
index c23e51e3..00000000
--- a/build/es6/classes/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/classes/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC"}
\ No newline at end of file
diff --git a/build/es6/dom/drawContour.d.ts b/build/es6/dom/drawContour.d.ts
deleted file mode 100644
index 78664e6b..00000000
--- a/build/es6/dom/drawContour.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-import { Point } from 'tfjs-image-recognition-base';
-export declare function drawContour(ctx: CanvasRenderingContext2D, points: Point[], isClosed?: boolean): void;
diff --git a/build/es6/dom/drawContour.js b/build/es6/dom/drawContour.js
deleted file mode 100644
index 30ec264d..00000000
--- a/build/es6/dom/drawContour.js
+++ /dev/null
@@ -1,21 +0,0 @@
-export function drawContour(ctx, points, isClosed) {
- if (isClosed === void 0) { isClosed = false; }
- ctx.beginPath();
- points.slice(1).forEach(function (_a, prevIdx) {
- var x = _a.x, y = _a.y;
- var from = points[prevIdx];
- ctx.moveTo(from.x, from.y);
- ctx.lineTo(x, y);
- });
- if (isClosed) {
- var from = points[points.length - 1];
- var to = points[0];
- if (!from || !to) {
- return;
- }
- ctx.moveTo(from.x, from.y);
- ctx.lineTo(to.x, to.y);
- }
- ctx.stroke();
-}
-//# sourceMappingURL=drawContour.js.map
\ No newline at end of file
diff --git a/build/es6/dom/drawContour.js.map b/build/es6/dom/drawContour.js.map
deleted file mode 100644
index 6f18fd5b..00000000
--- a/build/es6/dom/drawContour.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"drawContour.js","sourceRoot":"","sources":["../../../src/dom/drawContour.ts"],"names":[],"mappings":"AAEA,MAAM,sBACJ,GAA6B,EAC7B,MAAe,EACf,QAAyB;IAAzB,yBAAA,EAAA,gBAAyB;IAEzB,GAAG,CAAC,SAAS,EAAE,CAAA;IAEf,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAC,EAAQ,EAAE,OAAO;YAAf,QAAC,EAAE,QAAC;QAC7B,IAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;QAC5B,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;QAC1B,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAClB,CAAC,CAAC,CAAA;IAEF,IAAI,QAAQ,EAAE;QACZ,IAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QACtC,IAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;QACpB,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE;YAChB,OAAM;SACP;QAED,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;QAC1B,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;KACvB;IAED,GAAG,CAAC,MAAM,EAAE,CAAA;AACd,CAAC"}
\ No newline at end of file
diff --git a/build/es6/dom/drawLandmarks.d.ts b/build/es6/dom/drawLandmarks.d.ts
deleted file mode 100644
index 4a372873..00000000
--- a/build/es6/dom/drawLandmarks.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import { FaceLandmarks } from '../classes/FaceLandmarks';
-import { DrawLandmarksOptions } from './types';
-export declare function drawLandmarks(canvasArg: string | HTMLCanvasElement, faceLandmarks: FaceLandmarks | FaceLandmarks[], options?: DrawLandmarksOptions): void;
diff --git a/build/es6/dom/drawLandmarks.js b/build/es6/dom/drawLandmarks.js
deleted file mode 100644
index f7697976..00000000
--- a/build/es6/dom/drawLandmarks.js
+++ /dev/null
@@ -1,33 +0,0 @@
-import { getContext2dOrThrow, getDefaultDrawOptions, resolveInput } from 'tfjs-image-recognition-base';
-import { FaceLandmarks68 } from '../classes/FaceLandmarks68';
-import { drawContour } from './drawContour';
-export function drawLandmarks(canvasArg, faceLandmarks, options) {
- var canvas = resolveInput(canvasArg);
- if (!(canvas instanceof HTMLCanvasElement)) {
- throw new Error('drawLandmarks - expected canvas to be of type: HTMLCanvasElement');
- }
- var drawOptions = Object.assign(getDefaultDrawOptions(options), (options || {}));
- var drawLines = Object.assign({ drawLines: false }, (options || {})).drawLines;
- var ctx = getContext2dOrThrow(canvas);
- var lineWidth = drawOptions.lineWidth, _a = drawOptions.color, color = _a === void 0 ? 'blue' : _a;
- var faceLandmarksArray = Array.isArray(faceLandmarks) ? faceLandmarks : [faceLandmarks];
- faceLandmarksArray.forEach(function (landmarks) {
- if (drawLines && landmarks instanceof FaceLandmarks68) {
- ctx.strokeStyle = color;
- ctx.lineWidth = lineWidth;
- drawContour(ctx, landmarks.getJawOutline());
- drawContour(ctx, landmarks.getLeftEyeBrow());
- drawContour(ctx, landmarks.getRightEyeBrow());
- drawContour(ctx, landmarks.getNose());
- drawContour(ctx, landmarks.getLeftEye(), true);
- drawContour(ctx, landmarks.getRightEye(), true);
- drawContour(ctx, landmarks.getMouth(), true);
- return;
- }
- // else draw points
- var ptOffset = lineWidth / 2;
- ctx.fillStyle = color;
- landmarks.positions.forEach(function (pt) { return ctx.fillRect(pt.x - ptOffset, pt.y - ptOffset, lineWidth, lineWidth); });
- });
-}
-//# sourceMappingURL=drawLandmarks.js.map
\ No newline at end of file
diff --git a/build/es6/dom/drawLandmarks.js.map b/build/es6/dom/drawLandmarks.js.map
deleted file mode 100644
index 5d0bd4fc..00000000
--- a/build/es6/dom/drawLandmarks.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"drawLandmarks.js","sourceRoot":"","sources":["../../../src/dom/drawLandmarks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAGvG,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,MAAM,wBACJ,SAAqC,EACrC,aAA8C,EAC9C,OAA8B;IAE9B,IAAM,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,CAAA;IACtC,IAAI,CAAC,CAAC,MAAM,YAAY,iBAAiB,CAAC,EAAE;QAC1C,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAA;KACpF;IAED,IAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAC/B,qBAAqB,CAAC,OAAO,CAAC,EAC9B,CAAC,OAAO,IAAI,EAAE,CAAC,CAChB,CAAA;IAEO,IAAA,0EAAS,CAAyD;IAE1E,IAAM,GAAG,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAA;IAC/B,IAAA,iCAAS,EAAE,sBAAc,EAAd,mCAAc,CAAgB;IAEjD,IAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAA;IAEzF,kBAAkB,CAAC,OAAO,CAAC,UAAA,SAAS;QAClC,IAAI,SAAS,IAAI,SAAS,YAAY,eAAe,EAAE;YACrD,GAAG,CAAC,WAAW,GAAG,KAAK,CAAA;YACvB,GAAG,CAAC,SAAS,GAAG,SAAS,CAAA;YACzB,WAAW,CAAC,GAAG,EAAE,SAAS,CAAC,aAAa,EAAE,CAAC,CAAA;YAC3C,WAAW,CAAC,GAAG,EAAE,SAAS,CAAC,cAAc,EAAE,CAAC,CAAA;YAC5C,WAAW,CAAC,GAAG,EAAE,SAAS,CAAC,eAAe,EAAE,CAAC,CAAA;YAC7C,WAAW,CAAC,GAAG,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,CAAA;YACrC,WAAW,CAAC,GAAG,EAAE,SAAS,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,CAAA;YAC9C,WAAW,CAAC,GAAG,EAAE,SAAS,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,CAAA;YAC/C,WAAW,CAAC,GAAG,EAAE,SAAS,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAA;YAC5C,OAAM;SACP;QAED,mBAAmB;QACnB,IAAM,QAAQ,GAAG,SAAS,GAAG,CAAC,CAAA;QAC9B,GAAG,CAAC,SAAS,GAAG,KAAK,CAAA;QACrB,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,UAAA,EAAE,IAAI,OAAA,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,GAAG,QAAQ,EAAE,EAAE,CAAC,CAAC,GAAG,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,EAApE,CAAoE,CAAC,CAAA;IACzG,CAAC,CAAC,CAAA;AACJ,CAAC"}
\ No newline at end of file
diff --git a/build/es6/dom/extractFaceTensors.d.ts b/build/es6/dom/extractFaceTensors.d.ts
deleted file mode 100644
index 429ea46e..00000000
--- a/build/es6/dom/extractFaceTensors.d.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { Rect } from 'tfjs-image-recognition-base';
-import { FaceDetection } from '../classes/FaceDetection';
-/**
- * Extracts the tensors of the image regions containing the detected faces.
- * Useful if you want to compute the face descriptors for the face images.
- * Using this method is faster then extracting a canvas for each face and
- * converting them to tensors individually.
- *
- * @param imageTensor The image tensor that face detection has been performed on.
- * @param detections The face detection results or face bounding boxes for that image.
- * @returns Tensors of the corresponding image region for each detected face.
- */
-export declare function extractFaceTensors(imageTensor: tf.Tensor3D | tf.Tensor4D, detections: Array): Promise;
diff --git a/build/es6/dom/extractFaceTensors.js b/build/es6/dom/extractFaceTensors.js
deleted file mode 100644
index 90fc304d..00000000
--- a/build/es6/dom/extractFaceTensors.js
+++ /dev/null
@@ -1,36 +0,0 @@
-import * as tslib_1 from "tslib";
-import * as tf from '@tensorflow/tfjs-core';
-import { isTensor4D } from 'tfjs-image-recognition-base';
-import { FaceDetection } from '../classes/FaceDetection';
-/**
- * Extracts the tensors of the image regions containing the detected faces.
- * Useful if you want to compute the face descriptors for the face images.
- * Using this method is faster then extracting a canvas for each face and
- * converting them to tensors individually.
- *
- * @param imageTensor The image tensor that face detection has been performed on.
- * @param detections The face detection results or face bounding boxes for that image.
- * @returns Tensors of the corresponding image region for each detected face.
- */
-export function extractFaceTensors(imageTensor, detections) {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- return tslib_1.__generator(this, function (_a) {
- if (isTensor4D(imageTensor) && imageTensor.shape[0] > 1) {
- throw new Error('extractFaceTensors - batchSize > 1 not supported');
- }
- return [2 /*return*/, tf.tidy(function () {
- var _a = imageTensor.shape.slice(isTensor4D(imageTensor) ? 1 : 0), imgHeight = _a[0], imgWidth = _a[1], numChannels = _a[2];
- var boxes = detections.map(function (det) { return det instanceof FaceDetection
- ? det.forSize(imgWidth, imgHeight).box
- : det; })
- .map(function (box) { return box.clipAtImageBorders(imgWidth, imgHeight); });
- var faceTensors = boxes.map(function (_a) {
- var x = _a.x, y = _a.y, width = _a.width, height = _a.height;
- return tf.slice3d(imageTensor.as3D(imgHeight, imgWidth, numChannels), [y, x, 0], [height, width, numChannels]);
- });
- return faceTensors;
- })];
- });
- });
-}
-//# sourceMappingURL=extractFaceTensors.js.map
\ No newline at end of file
diff --git a/build/es6/dom/extractFaceTensors.js.map b/build/es6/dom/extractFaceTensors.js.map
deleted file mode 100644
index 8c24befb..00000000
--- a/build/es6/dom/extractFaceTensors.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"extractFaceTensors.js","sourceRoot":"","sources":["../../../src/dom/extractFaceTensors.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAQ,MAAM,6BAA6B,CAAC;AAE/D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD;;;;;;;;;GASG;AACH,MAAM,6BACJ,WAAsC,EACtC,UAAuC;;;YAGvC,IAAI,UAAU,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;gBACvD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;aACpE;YAED,sBAAO,EAAE,CAAC,IAAI,CAAC;oBACP,IAAA,6DAA6F,EAA5F,iBAAS,EAAE,gBAAQ,EAAE,mBAAW,CAA4D;oBAEnG,IAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAC1B,UAAA,GAAG,IAAI,OAAA,GAAG,YAAY,aAAa;wBACjC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,GAAG;wBACtC,CAAC,CAAC,GAAG,EAFA,CAEA,CACR;yBACE,GAAG,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,kBAAkB,CAAC,QAAQ,EAAE,SAAS,CAAC,EAA3C,CAA2C,CAAC,CAAA;oBAE1D,IAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,UAAC,EAAuB;4BAArB,QAAC,EAAE,QAAC,EAAE,gBAAK,EAAE,kBAAM;wBAClD,OAAA,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;oBAAvG,CAAuG,CACxG,CAAA;oBAED,OAAO,WAAW,CAAA;gBACpB,CAAC,CAAC,EAAA;;;CACH"}
\ No newline at end of file
diff --git a/build/es6/dom/extractFaces.d.ts b/build/es6/dom/extractFaces.d.ts
deleted file mode 100644
index d7bf0e60..00000000
--- a/build/es6/dom/extractFaces.d.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { Rect, TNetInput } from 'tfjs-image-recognition-base';
-import { FaceDetection } from '../classes/FaceDetection';
-/**
- * Extracts the image regions containing the detected faces.
- *
- * @param input The image that face detection has been performed on.
- * @param detections The face detection results or face bounding boxes for that image.
- * @returns The Canvases of the corresponding image region for each detected face.
- */
-export declare function extractFaces(input: TNetInput, detections: Array): Promise;
diff --git a/build/es6/dom/extractFaces.js b/build/es6/dom/extractFaces.js
deleted file mode 100644
index 2dab2cb9..00000000
--- a/build/es6/dom/extractFaces.js
+++ /dev/null
@@ -1,53 +0,0 @@
-import * as tslib_1 from "tslib";
-import { createCanvas, getContext2dOrThrow, imageTensorToCanvas, toNetInput, } from 'tfjs-image-recognition-base';
-import { FaceDetection } from '../classes/FaceDetection';
-/**
- * Extracts the image regions containing the detected faces.
- *
- * @param input The image that face detection has been performed on.
- * @param detections The face detection results or face bounding boxes for that image.
- * @returns The Canvases of the corresponding image region for each detected face.
- */
-export function extractFaces(input, detections) {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var canvas, netInput, tensorOrCanvas, _a, ctx, boxes;
- return tslib_1.__generator(this, function (_b) {
- switch (_b.label) {
- case 0:
- canvas = input;
- if (!!(input instanceof HTMLCanvasElement)) return [3 /*break*/, 5];
- return [4 /*yield*/, toNetInput(input)];
- case 1:
- netInput = _b.sent();
- if (netInput.batchSize > 1) {
- throw new Error('extractFaces - batchSize > 1 not supported');
- }
- tensorOrCanvas = netInput.getInput(0);
- if (!(tensorOrCanvas instanceof HTMLCanvasElement)) return [3 /*break*/, 2];
- _a = tensorOrCanvas;
- return [3 /*break*/, 4];
- case 2: return [4 /*yield*/, imageTensorToCanvas(tensorOrCanvas)];
- case 3:
- _a = _b.sent();
- _b.label = 4;
- case 4:
- canvas = _a;
- _b.label = 5;
- case 5:
- ctx = getContext2dOrThrow(canvas);
- boxes = detections.map(function (det) { return det instanceof FaceDetection
- ? det.forSize(canvas.width, canvas.height).box.floor()
- : det; })
- .map(function (box) { return box.clipAtImageBorders(canvas.width, canvas.height); });
- return [2 /*return*/, boxes.map(function (_a) {
- var x = _a.x, y = _a.y, width = _a.width, height = _a.height;
- var faceImg = createCanvas({ width: width, height: height });
- getContext2dOrThrow(faceImg)
- .putImageData(ctx.getImageData(x, y, width, height), 0, 0);
- return faceImg;
- })];
- }
- });
- });
-}
-//# sourceMappingURL=extractFaces.js.map
\ No newline at end of file
diff --git a/build/es6/dom/extractFaces.js.map b/build/es6/dom/extractFaces.js.map
deleted file mode 100644
index 4e260a14..00000000
--- a/build/es6/dom/extractFaces.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"extractFaces.js","sourceRoot":"","sources":["../../../src/dom/extractFaces.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EAGnB,UAAU,GACX,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD;;;;;;GAMG;AACH,MAAM,uBACJ,KAAgB,EAChB,UAAuC;;;;;;oBAGnC,MAAM,GAAG,KAA0B,CAAA;yBAEnC,CAAC,CAAC,KAAK,YAAY,iBAAiB,CAAC,EAArC,wBAAqC;oBACtB,qBAAM,UAAU,CAAC,KAAK,CAAC,EAAA;;oBAAlC,QAAQ,GAAG,SAAuB;oBAExC,IAAI,QAAQ,CAAC,SAAS,GAAG,CAAC,EAAE;wBAC1B,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;qBAC9D;oBAEK,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;yBAClC,CAAA,cAAc,YAAY,iBAAiB,CAAA,EAA3C,wBAA2C;oBAChD,KAAA,cAAc,CAAA;;wBACd,qBAAM,mBAAmB,CAAC,cAAc,CAAC,EAAA;;oBAAzC,KAAA,SAAyC,CAAA;;;oBAF7C,MAAM,KAEuC,CAAA;;;oBAGzC,GAAG,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAA;oBACjC,KAAK,GAAG,UAAU,CAAC,GAAG,CAC1B,UAAA,GAAG,IAAI,OAAA,GAAG,YAAY,aAAa;wBACjC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE;wBACtD,CAAC,CAAC,GAAG,EAFA,CAEA,CACR;yBACE,GAAG,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAnD,CAAmD,CAAC,CAAA;oBAElE,sBAAO,KAAK,CAAC,GAAG,CAAC,UAAC,EAAuB;gCAArB,QAAC,EAAE,QAAC,EAAE,gBAAK,EAAE,kBAAM;4BACrC,IAAM,OAAO,GAAG,YAAY,CAAC,EAAE,KAAK,OAAA,EAAE,MAAM,QAAA,EAAE,CAAC,CAAA;4BAC/C,mBAAmB,CAAC,OAAO,CAAC;iCACzB,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;4BAC5D,OAAO,OAAO,CAAA;wBAChB,CAAC,CAAC,EAAA;;;;CACH"}
\ No newline at end of file
diff --git a/build/es6/dom/index.d.ts b/build/es6/dom/index.d.ts
deleted file mode 100644
index 2fdbb244..00000000
--- a/build/es6/dom/index.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-export * from './drawContour';
-export * from './drawLandmarks';
-export * from './extractFaces';
-export * from './extractFaceTensors';
-export * from './types';
diff --git a/build/es6/dom/index.js b/build/es6/dom/index.js
deleted file mode 100644
index b137d709..00000000
--- a/build/es6/dom/index.js
+++ /dev/null
@@ -1,5 +0,0 @@
-export * from './drawContour';
-export * from './drawLandmarks';
-export * from './extractFaces';
-export * from './extractFaceTensors';
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/build/es6/dom/index.js.map b/build/es6/dom/index.js.map
deleted file mode 100644
index 9339c121..00000000
--- a/build/es6/dom/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/dom/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,sBAAsB,CAAA"}
\ No newline at end of file
diff --git a/build/es6/dom/types.d.ts b/build/es6/dom/types.d.ts
deleted file mode 100644
index cd664596..00000000
--- a/build/es6/dom/types.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-export declare type DrawLandmarksOptions = {
- lineWidth?: number;
- color?: string;
- drawLines?: boolean;
-};
diff --git a/build/es6/dom/types.js b/build/es6/dom/types.js
deleted file mode 100644
index 5b2306a4..00000000
--- a/build/es6/dom/types.js
+++ /dev/null
@@ -1 +0,0 @@
-//# sourceMappingURL=types.js.map
\ No newline at end of file
diff --git a/build/es6/dom/types.js.map b/build/es6/dom/types.js.map
deleted file mode 100644
index 81849c01..00000000
--- a/build/es6/dom/types.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/dom/types.ts"],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/build/es6/euclideanDistance.d.ts b/build/es6/euclideanDistance.d.ts
deleted file mode 100644
index d555de27..00000000
--- a/build/es6/euclideanDistance.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export declare function euclideanDistance(arr1: number[] | Float32Array, arr2: number[] | Float32Array): number;
diff --git a/build/es6/euclideanDistance.js b/build/es6/euclideanDistance.js
deleted file mode 100644
index 34289679..00000000
--- a/build/es6/euclideanDistance.js
+++ /dev/null
@@ -1,10 +0,0 @@
-export function euclideanDistance(arr1, arr2) {
- if (arr1.length !== arr2.length)
- throw new Error('euclideanDistance: arr1.length !== arr2.length');
- var desc1 = Array.from(arr1);
- var desc2 = Array.from(arr2);
- return Math.sqrt(desc1
- .map(function (val, i) { return val - desc2[i]; })
- .reduce(function (res, diff) { return res + Math.pow(diff, 2); }, 0));
-}
-//# sourceMappingURL=euclideanDistance.js.map
\ No newline at end of file
diff --git a/build/es6/euclideanDistance.js.map b/build/es6/euclideanDistance.js.map
deleted file mode 100644
index 9ed4368e..00000000
--- a/build/es6/euclideanDistance.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"euclideanDistance.js","sourceRoot":"","sources":["../../src/euclideanDistance.ts"],"names":[],"mappings":"AAAA,MAAM,4BAA4B,IAA6B,EAAE,IAA6B;IAC5F,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM;QAC7B,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAA;IAEnE,IAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC9B,IAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAE9B,OAAO,IAAI,CAAC,IAAI,CACd,KAAK;SACF,GAAG,CAAC,UAAC,GAAG,EAAE,CAAC,IAAK,OAAA,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAd,CAAc,CAAC;SAC/B,MAAM,CAAC,UAAC,GAAG,EAAE,IAAI,IAAK,OAAA,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,EAAvB,CAAuB,EAAE,CAAC,CAAC,CACrD,CAAA;AACH,CAAC"}
\ No newline at end of file
diff --git a/build/es6/faceLandmarkNet/FaceLandmark68Net.d.ts b/build/es6/faceLandmarkNet/FaceLandmark68Net.d.ts
deleted file mode 100644
index 93d5106a..00000000
--- a/build/es6/faceLandmarkNet/FaceLandmark68Net.d.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { NetInput } from 'tfjs-image-recognition-base';
-import { FaceLandmark68NetBase } from './FaceLandmark68NetBase';
-import { NetParams } from './types';
-export declare class FaceLandmark68Net extends FaceLandmark68NetBase {
- constructor();
- runNet(input: NetInput): tf.Tensor2D;
- protected loadQuantizedParams(uri: string | undefined): Promise<{
- params: NetParams;
- paramMappings: {
- originalPath?: string | undefined;
- paramPath: string;
- }[];
- }>;
- protected extractParams(weights: Float32Array): {
- params: NetParams;
- paramMappings: {
- originalPath?: string | undefined;
- paramPath: string;
- }[];
- };
-}
diff --git a/build/es6/faceLandmarkNet/FaceLandmark68Net.js b/build/es6/faceLandmarkNet/FaceLandmark68Net.js
deleted file mode 100644
index 1531043f..00000000
--- a/build/es6/faceLandmarkNet/FaceLandmark68Net.js
+++ /dev/null
@@ -1,54 +0,0 @@
-import * as tslib_1 from "tslib";
-import * as tf from '@tensorflow/tfjs-core';
-import { normalize } from 'tfjs-image-recognition-base';
-import { depthwiseSeparableConv } from './depthwiseSeparableConv';
-import { extractParams } from './extractParams';
-import { FaceLandmark68NetBase } from './FaceLandmark68NetBase';
-import { fullyConnectedLayer } from './fullyConnectedLayer';
-import { loadQuantizedParams } from './loadQuantizedParams';
-function denseBlock(x, denseBlockParams, isFirstLayer) {
- if (isFirstLayer === void 0) { isFirstLayer = false; }
- return tf.tidy(function () {
- var out1 = tf.relu(isFirstLayer
- ? tf.add(tf.conv2d(x, denseBlockParams.conv0.filters, [2, 2], 'same'), denseBlockParams.conv0.bias)
- : depthwiseSeparableConv(x, denseBlockParams.conv0, [2, 2]));
- var out2 = depthwiseSeparableConv(out1, denseBlockParams.conv1, [1, 1]);
- var in3 = tf.relu(tf.add(out1, out2));
- var out3 = depthwiseSeparableConv(in3, denseBlockParams.conv2, [1, 1]);
- var in4 = tf.relu(tf.add(out1, tf.add(out2, out3)));
- var out4 = depthwiseSeparableConv(in4, denseBlockParams.conv3, [1, 1]);
- return tf.relu(tf.add(out1, tf.add(out2, tf.add(out3, out4))));
- });
-}
-var FaceLandmark68Net = /** @class */ (function (_super) {
- tslib_1.__extends(FaceLandmark68Net, _super);
- function FaceLandmark68Net() {
- return _super.call(this, 'FaceLandmark68Net') || this;
- }
- FaceLandmark68Net.prototype.runNet = function (input) {
- var params = this.params;
- if (!params) {
- throw new Error('FaceLandmark68Net - load model before inference');
- }
- return tf.tidy(function () {
- var batchTensor = input.toBatchTensor(112, true);
- var meanRgb = [122.782, 117.001, 104.298];
- var normalized = normalize(batchTensor, meanRgb).div(tf.scalar(255));
- var out = denseBlock(normalized, params.dense0, true);
- out = denseBlock(out, params.dense1);
- out = denseBlock(out, params.dense2);
- out = denseBlock(out, params.dense3);
- out = tf.avgPool(out, [7, 7], [2, 2], 'valid');
- return fullyConnectedLayer(out.as2D(out.shape[0], -1), params.fc);
- });
- };
- FaceLandmark68Net.prototype.loadQuantizedParams = function (uri) {
- return loadQuantizedParams(uri);
- };
- FaceLandmark68Net.prototype.extractParams = function (weights) {
- return extractParams(weights);
- };
- return FaceLandmark68Net;
-}(FaceLandmark68NetBase));
-export { FaceLandmark68Net };
-//# sourceMappingURL=FaceLandmark68Net.js.map
\ No newline at end of file
diff --git a/build/es6/faceLandmarkNet/FaceLandmark68Net.js.map b/build/es6/faceLandmarkNet/FaceLandmark68Net.js.map
deleted file mode 100644
index 7c9f31d5..00000000
--- a/build/es6/faceLandmarkNet/FaceLandmark68Net.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"FaceLandmark68Net.js","sourceRoot":"","sources":["../../../src/faceLandmarkNet/FaceLandmark68Net.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/build/es6/faceLandmarkNet/FaceLandmark68NetBase.d.ts b/build/es6/faceLandmarkNet/FaceLandmark68NetBase.d.ts
deleted file mode 100644
index 8ec0dad9..00000000
--- a/build/es6/faceLandmarkNet/FaceLandmark68NetBase.d.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { IDimensions, NetInput, NeuralNetwork, TNetInput } from 'tfjs-image-recognition-base';
-import { FaceLandmarks68 } from '../classes/FaceLandmarks68';
-export declare class FaceLandmark68NetBase extends NeuralNetwork {
- private __name;
- constructor(_name: string);
- runNet(_: NetInput): tf.Tensor2D;
- postProcess(output: tf.Tensor2D, inputSize: number, originalDimensions: IDimensions[]): tf.Tensor2D;
- forwardInput(input: NetInput): tf.Tensor2D;
- forward(input: TNetInput): Promise;
- detectLandmarks(input: TNetInput): Promise;
-}
diff --git a/build/es6/faceLandmarkNet/FaceLandmark68NetBase.js b/build/es6/faceLandmarkNet/FaceLandmark68NetBase.js
deleted file mode 100644
index 0673c63c..00000000
--- a/build/es6/faceLandmarkNet/FaceLandmark68NetBase.js
+++ /dev/null
@@ -1,113 +0,0 @@
-import * as tslib_1 from "tslib";
-import * as tf from '@tensorflow/tfjs-core';
-import { isEven, NeuralNetwork, Point, toNetInput } from 'tfjs-image-recognition-base';
-import { FaceLandmarks68 } from '../classes/FaceLandmarks68';
-var FaceLandmark68NetBase = /** @class */ (function (_super) {
- tslib_1.__extends(FaceLandmark68NetBase, _super);
- function FaceLandmark68NetBase(_name) {
- var _this = _super.call(this, _name) || this;
- _this.__name = _name;
- return _this;
- }
- FaceLandmark68NetBase.prototype.runNet = function (_) {
- throw new Error(this.__name + " - runNet not implemented");
- };
- FaceLandmark68NetBase.prototype.postProcess = function (output, inputSize, originalDimensions) {
- var inputDimensions = originalDimensions.map(function (_a) {
- var width = _a.width, height = _a.height;
- var scale = inputSize / Math.max(height, width);
- return {
- width: width * scale,
- height: height * scale
- };
- });
- var batchSize = inputDimensions.length;
- return tf.tidy(function () {
- var createInterleavedTensor = function (fillX, fillY) {
- return tf.stack([
- tf.fill([68], fillX),
- tf.fill([68], fillY)
- ], 1).as2D(1, 136).as1D();
- };
- var getPadding = function (batchIdx, cond) {
- var _a = inputDimensions[batchIdx], width = _a.width, height = _a.height;
- return cond(width, height) ? Math.abs(width - height) / 2 : 0;
- };
- var getPaddingX = function (batchIdx) { return getPadding(batchIdx, function (w, h) { return w < h; }); };
- var getPaddingY = function (batchIdx) { return getPadding(batchIdx, function (w, h) { return h < w; }); };
- var landmarkTensors = output
- .mul(tf.fill([batchSize, 136], inputSize))
- .sub(tf.stack(Array.from(Array(batchSize), function (_, batchIdx) {
- return createInterleavedTensor(getPaddingX(batchIdx), getPaddingY(batchIdx));
- })))
- .div(tf.stack(Array.from(Array(batchSize), function (_, batchIdx) {
- return createInterleavedTensor(inputDimensions[batchIdx].width, inputDimensions[batchIdx].height);
- })));
- return landmarkTensors;
- });
- };
- FaceLandmark68NetBase.prototype.forwardInput = function (input) {
- var _this = this;
- return tf.tidy(function () {
- var out = _this.runNet(input);
- return _this.postProcess(out, input.inputSize, input.inputDimensions.map(function (_a) {
- var height = _a[0], width = _a[1];
- return ({ height: height, width: width });
- }));
- });
- };
- FaceLandmark68NetBase.prototype.forward = function (input) {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var _a;
- return tslib_1.__generator(this, function (_b) {
- switch (_b.label) {
- case 0:
- _a = this.forwardInput;
- return [4 /*yield*/, toNetInput(input)];
- case 1: return [2 /*return*/, _a.apply(this, [_b.sent()])];
- }
- });
- });
- };
- FaceLandmark68NetBase.prototype.detectLandmarks = function (input) {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var _this = this;
- var netInput, landmarkTensors, landmarksForBatch;
- return tslib_1.__generator(this, function (_a) {
- switch (_a.label) {
- case 0: return [4 /*yield*/, toNetInput(input)];
- case 1:
- netInput = _a.sent();
- landmarkTensors = tf.tidy(function () { return tf.unstack(_this.forwardInput(netInput)); });
- return [4 /*yield*/, Promise.all(landmarkTensors.map(function (landmarkTensor, batchIdx) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
- var landmarksArray, _a, _b, xCoords, yCoords;
- return tslib_1.__generator(this, function (_c) {
- switch (_c.label) {
- case 0:
- _b = (_a = Array).from;
- return [4 /*yield*/, landmarkTensor.data()];
- case 1:
- landmarksArray = _b.apply(_a, [_c.sent()]);
- xCoords = landmarksArray.filter(function (_, i) { return isEven(i); });
- yCoords = landmarksArray.filter(function (_, i) { return !isEven(i); });
- return [2 /*return*/, new FaceLandmarks68(Array(68).fill(0).map(function (_, i) { return new Point(xCoords[i], yCoords[i]); }), {
- height: netInput.getInputHeight(batchIdx),
- width: netInput.getInputWidth(batchIdx),
- })];
- }
- });
- }); }))];
- case 2:
- landmarksForBatch = _a.sent();
- landmarkTensors.forEach(function (t) { return t.dispose(); });
- return [2 /*return*/, netInput.isBatchInput
- ? landmarksForBatch
- : landmarksForBatch[0]];
- }
- });
- });
- };
- return FaceLandmark68NetBase;
-}(NeuralNetwork));
-export { FaceLandmark68NetBase };
-//# sourceMappingURL=FaceLandmark68NetBase.js.map
\ No newline at end of file
diff --git a/build/es6/faceLandmarkNet/FaceLandmark68NetBase.js.map b/build/es6/faceLandmarkNet/FaceLandmark68NetBase.js.map
deleted file mode 100644
index 09a59310..00000000
--- a/build/es6/faceLandmarkNet/FaceLandmark68NetBase.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"FaceLandmark68NetBase.js","sourceRoot":"","sources":["../../../src/faceLandmarkNet/FaceLandmark68NetBase.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/build/es6/faceLandmarkNet/FaceLandmark68TinyNet.d.ts b/build/es6/faceLandmarkNet/FaceLandmark68TinyNet.d.ts
deleted file mode 100644
index 774b1109..00000000
--- a/build/es6/faceLandmarkNet/FaceLandmark68TinyNet.d.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { NetInput } from 'tfjs-image-recognition-base';
-import { FaceLandmark68NetBase } from './FaceLandmark68NetBase';
-import { TinyNetParams } from './types';
-export declare class FaceLandmark68TinyNet extends FaceLandmark68NetBase {
- constructor();
- runNet(input: NetInput): tf.Tensor2D;
- protected loadQuantizedParams(uri: string | undefined): Promise<{
- params: TinyNetParams;
- paramMappings: {
- originalPath?: string | undefined;
- paramPath: string;
- }[];
- }>;
- protected extractParams(weights: Float32Array): {
- params: TinyNetParams;
- paramMappings: {
- originalPath?: string | undefined;
- paramPath: string;
- }[];
- };
-}
diff --git a/build/es6/faceLandmarkNet/FaceLandmark68TinyNet.js b/build/es6/faceLandmarkNet/FaceLandmark68TinyNet.js
deleted file mode 100644
index 32b07bae..00000000
--- a/build/es6/faceLandmarkNet/FaceLandmark68TinyNet.js
+++ /dev/null
@@ -1,51 +0,0 @@
-import * as tslib_1 from "tslib";
-import * as tf from '@tensorflow/tfjs-core';
-import { normalize } from 'tfjs-image-recognition-base';
-import { depthwiseSeparableConv } from './depthwiseSeparableConv';
-import { extractParamsTiny } from './extractParamsTiny';
-import { FaceLandmark68NetBase } from './FaceLandmark68NetBase';
-import { fullyConnectedLayer } from './fullyConnectedLayer';
-import { loadQuantizedParamsTiny } from './loadQuantizedParamsTiny';
-function denseBlock(x, denseBlockParams, isFirstLayer) {
- if (isFirstLayer === void 0) { isFirstLayer = false; }
- return tf.tidy(function () {
- var out1 = tf.relu(isFirstLayer
- ? tf.add(tf.conv2d(x, denseBlockParams.conv0.filters, [2, 2], 'same'), denseBlockParams.conv0.bias)
- : depthwiseSeparableConv(x, denseBlockParams.conv0, [2, 2]));
- var out2 = depthwiseSeparableConv(out1, denseBlockParams.conv1, [1, 1]);
- var in3 = tf.relu(tf.add(out1, out2));
- var out3 = depthwiseSeparableConv(in3, denseBlockParams.conv2, [1, 1]);
- return tf.relu(tf.add(out1, tf.add(out2, out3)));
- });
-}
-var FaceLandmark68TinyNet = /** @class */ (function (_super) {
- tslib_1.__extends(FaceLandmark68TinyNet, _super);
- function FaceLandmark68TinyNet() {
- return _super.call(this, 'FaceLandmark68TinyNet') || this;
- }
- FaceLandmark68TinyNet.prototype.runNet = function (input) {
- var params = this.params;
- if (!params) {
- throw new Error('FaceLandmark68TinyNet - load model before inference');
- }
- return tf.tidy(function () {
- var batchTensor = input.toBatchTensor(112, true);
- var meanRgb = [122.782, 117.001, 104.298];
- var normalized = normalize(batchTensor, meanRgb).div(tf.scalar(255));
- var out = denseBlock(normalized, params.dense0, true);
- out = denseBlock(out, params.dense1);
- out = denseBlock(out, params.dense2);
- out = tf.avgPool(out, [14, 14], [2, 2], 'valid');
- return fullyConnectedLayer(out.as2D(out.shape[0], -1), params.fc);
- });
- };
- FaceLandmark68TinyNet.prototype.loadQuantizedParams = function (uri) {
- return loadQuantizedParamsTiny(uri);
- };
- FaceLandmark68TinyNet.prototype.extractParams = function (weights) {
- return extractParamsTiny(weights);
- };
- return FaceLandmark68TinyNet;
-}(FaceLandmark68NetBase));
-export { FaceLandmark68TinyNet };
-//# sourceMappingURL=FaceLandmark68TinyNet.js.map
\ No newline at end of file
diff --git a/build/es6/faceLandmarkNet/FaceLandmark68TinyNet.js.map b/build/es6/faceLandmarkNet/FaceLandmark68TinyNet.js.map
deleted file mode 100644
index 3fce06b7..00000000
--- a/build/es6/faceLandmarkNet/FaceLandmark68TinyNet.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"FaceLandmark68TinyNet.js","sourceRoot":"","sources":["../../../src/faceLandmarkNet/FaceLandmark68TinyNet.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/build/es6/faceLandmarkNet/depthwiseSeparableConv.d.ts b/build/es6/faceLandmarkNet/depthwiseSeparableConv.d.ts
deleted file mode 100644
index 3e11ba95..00000000
--- a/build/es6/faceLandmarkNet/depthwiseSeparableConv.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { SeparableConvParams } from 'tfjs-tiny-yolov2';
-export declare function depthwiseSeparableConv(x: tf.Tensor4D, params: SeparableConvParams, stride: [number, number]): tf.Tensor4D;
diff --git a/build/es6/faceLandmarkNet/depthwiseSeparableConv.js b/build/es6/faceLandmarkNet/depthwiseSeparableConv.js
deleted file mode 100644
index 7c8669d2..00000000
--- a/build/es6/faceLandmarkNet/depthwiseSeparableConv.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-export function depthwiseSeparableConv(x, params, stride) {
- return tf.tidy(function () {
- var out = tf.separableConv2d(x, params.depthwise_filter, params.pointwise_filter, stride, 'same');
- out = tf.add(out, params.bias);
- return out;
- });
-}
-//# sourceMappingURL=depthwiseSeparableConv.js.map
\ No newline at end of file
diff --git a/build/es6/faceLandmarkNet/depthwiseSeparableConv.js.map b/build/es6/faceLandmarkNet/depthwiseSeparableConv.js.map
deleted file mode 100644
index 009a1e40..00000000
--- a/build/es6/faceLandmarkNet/depthwiseSeparableConv.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"depthwiseSeparableConv.js","sourceRoot":"","sources":["../../../src/faceLandmarkNet/depthwiseSeparableConv.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAG5C,MAAM,iCACJ,CAAc,EACd,MAA2B,EAC3B,MAAwB;IAExB,OAAO,EAAE,CAAC,IAAI,CAAC;QACb,IAAI,GAAG,GAAG,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;QACjG,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;QAC9B,OAAO,GAAG,CAAA;IACZ,CAAC,CAAC,CAAA;AACJ,CAAC"}
\ No newline at end of file
diff --git a/build/es6/faceLandmarkNet/extractParams.d.ts b/build/es6/faceLandmarkNet/extractParams.d.ts
deleted file mode 100644
index 40295777..00000000
--- a/build/es6/faceLandmarkNet/extractParams.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { ParamMapping } from 'tfjs-image-recognition-base';
-import { NetParams } from './types';
-export declare function extractParams(weights: Float32Array): {
- params: NetParams;
- paramMappings: ParamMapping[];
-};
diff --git a/build/es6/faceLandmarkNet/extractParams.js b/build/es6/faceLandmarkNet/extractParams.js
deleted file mode 100644
index a6b9a778..00000000
--- a/build/es6/faceLandmarkNet/extractParams.js
+++ /dev/null
@@ -1,20 +0,0 @@
-import { extractWeightsFactory } from 'tfjs-image-recognition-base';
-import { extractorsFactory } from './extractorsFactory';
-export function extractParams(weights) {
- var paramMappings = [];
- var _a = extractWeightsFactory(weights), extractWeights = _a.extractWeights, getRemainingWeights = _a.getRemainingWeights;
- var _b = extractorsFactory(extractWeights, paramMappings), extractDenseBlock4Params = _b.extractDenseBlock4Params, extractFCParams = _b.extractFCParams;
- var dense0 = extractDenseBlock4Params(3, 32, 'dense0', true);
- var dense1 = extractDenseBlock4Params(32, 64, 'dense1');
- var dense2 = extractDenseBlock4Params(64, 128, 'dense2');
- var dense3 = extractDenseBlock4Params(128, 256, 'dense3');
- var fc = extractFCParams(256, 136, 'fc');
- if (getRemainingWeights().length !== 0) {
- throw new Error("weights remaing after extract: " + getRemainingWeights().length);
- }
- return {
- paramMappings: paramMappings,
- params: { dense0: dense0, dense1: dense1, dense2: dense2, dense3: dense3, fc: fc }
- };
-}
-//# sourceMappingURL=extractParams.js.map
\ No newline at end of file
diff --git a/build/es6/faceLandmarkNet/extractParams.js.map b/build/es6/faceLandmarkNet/extractParams.js.map
deleted file mode 100644
index 1f1b673b..00000000
--- a/build/es6/faceLandmarkNet/extractParams.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"extractParams.js","sourceRoot":"","sources":["../../../src/faceLandmarkNet/extractParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAgB,MAAM,6BAA6B,CAAC;AAElF,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,MAAM,wBAAwB,OAAqB;IAEjD,IAAM,aAAa,GAAmB,EAAE,CAAA;IAElC,IAAA,mCAG4B,EAFhC,kCAAc,EACd,4CAAmB,CACa;IAE5B,IAAA,qDAG8C,EAFlD,sDAAwB,EACxB,oCAAe,CACmC;IAEpD,IAAM,MAAM,GAAG,wBAAwB,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;IAC9D,IAAM,MAAM,GAAG,wBAAwB,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAA;IACzD,IAAM,MAAM,GAAG,wBAAwB,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAA;IAC1D,IAAM,MAAM,GAAG,wBAAwB,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAA;IAC3D,IAAM,EAAE,GAAG,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;IAE1C,IAAI,mBAAmB,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;QACtC,MAAM,IAAI,KAAK,CAAC,oCAAkC,mBAAmB,EAAE,CAAC,MAAQ,CAAC,CAAA;KAClF;IAED,OAAO;QACL,aAAa,eAAA;QACb,MAAM,EAAE,EAAE,MAAM,QAAA,EAAE,MAAM,QAAA,EAAE,MAAM,QAAA,EAAE,MAAM,QAAA,EAAE,EAAE,IAAA,EAAE;KAC/C,CAAA;AACH,CAAC"}
\ No newline at end of file
diff --git a/build/es6/faceLandmarkNet/extractParamsTiny.d.ts b/build/es6/faceLandmarkNet/extractParamsTiny.d.ts
deleted file mode 100644
index ef9c65b1..00000000
--- a/build/es6/faceLandmarkNet/extractParamsTiny.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { ParamMapping } from 'tfjs-image-recognition-base';
-import { TinyNetParams } from './types';
-export declare function extractParamsTiny(weights: Float32Array): {
- params: TinyNetParams;
- paramMappings: ParamMapping[];
-};
diff --git a/build/es6/faceLandmarkNet/extractParamsTiny.js b/build/es6/faceLandmarkNet/extractParamsTiny.js
deleted file mode 100644
index 20ef32c0..00000000
--- a/build/es6/faceLandmarkNet/extractParamsTiny.js
+++ /dev/null
@@ -1,19 +0,0 @@
-import { extractWeightsFactory } from 'tfjs-image-recognition-base';
-import { extractorsFactory } from './extractorsFactory';
-export function extractParamsTiny(weights) {
- var paramMappings = [];
- var _a = extractWeightsFactory(weights), extractWeights = _a.extractWeights, getRemainingWeights = _a.getRemainingWeights;
- var _b = extractorsFactory(extractWeights, paramMappings), extractDenseBlock3Params = _b.extractDenseBlock3Params, extractFCParams = _b.extractFCParams;
- var dense0 = extractDenseBlock3Params(3, 32, 'dense0', true);
- var dense1 = extractDenseBlock3Params(32, 64, 'dense1');
- var dense2 = extractDenseBlock3Params(64, 128, 'dense2');
- var fc = extractFCParams(128, 136, 'fc');
- if (getRemainingWeights().length !== 0) {
- throw new Error("weights remaing after extract: " + getRemainingWeights().length);
- }
- return {
- paramMappings: paramMappings,
- params: { dense0: dense0, dense1: dense1, dense2: dense2, fc: fc }
- };
-}
-//# sourceMappingURL=extractParamsTiny.js.map
\ No newline at end of file
diff --git a/build/es6/faceLandmarkNet/extractParamsTiny.js.map b/build/es6/faceLandmarkNet/extractParamsTiny.js.map
deleted file mode 100644
index 121ea889..00000000
--- a/build/es6/faceLandmarkNet/extractParamsTiny.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"extractParamsTiny.js","sourceRoot":"","sources":["../../../src/faceLandmarkNet/extractParamsTiny.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAgB,MAAM,6BAA6B,CAAC;AAElF,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,MAAM,4BAA4B,OAAqB;IAErD,IAAM,aAAa,GAAmB,EAAE,CAAA;IAElC,IAAA,mCAG4B,EAFhC,kCAAc,EACd,4CAAmB,CACa;IAE5B,IAAA,qDAG8C,EAFlD,sDAAwB,EACxB,oCAAe,CACmC;IAEpD,IAAM,MAAM,GAAG,wBAAwB,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;IAC9D,IAAM,MAAM,GAAG,wBAAwB,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAA;IACzD,IAAM,MAAM,GAAG,wBAAwB,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAA;IAC1D,IAAM,EAAE,GAAG,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;IAE1C,IAAI,mBAAmB,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;QACtC,MAAM,IAAI,KAAK,CAAC,oCAAkC,mBAAmB,EAAE,CAAC,MAAQ,CAAC,CAAA;KAClF;IAED,OAAO;QACL,aAAa,eAAA;QACb,MAAM,EAAE,EAAE,MAAM,QAAA,EAAE,MAAM,QAAA,EAAE,MAAM,QAAA,EAAE,EAAE,IAAA,EAAE;KACvC,CAAA;AACH,CAAC"}
\ No newline at end of file
diff --git a/build/es6/faceLandmarkNet/extractorsFactory.d.ts b/build/es6/faceLandmarkNet/extractorsFactory.d.ts
deleted file mode 100644
index 247236f3..00000000
--- a/build/es6/faceLandmarkNet/extractorsFactory.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { ExtractWeightsFunction, ParamMapping } from 'tfjs-image-recognition-base';
-import { FCParams } from 'tfjs-tiny-yolov2';
-import { DenseBlock3Params, DenseBlock4Params } from './types';
-export declare function extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]): {
- extractDenseBlock3Params: (channelsIn: number, channelsOut: number, mappedPrefix: string, isFirstLayer?: boolean) => DenseBlock3Params;
- extractDenseBlock4Params: (channelsIn: number, channelsOut: number, mappedPrefix: string, isFirstLayer?: boolean) => DenseBlock4Params;
- extractFCParams: (channelsIn: number, channelsOut: number, mappedPrefix: string) => FCParams;
-};
diff --git a/build/es6/faceLandmarkNet/extractorsFactory.js b/build/es6/faceLandmarkNet/extractorsFactory.js
deleted file mode 100644
index f2b2775e..00000000
--- a/build/es6/faceLandmarkNet/extractorsFactory.js
+++ /dev/null
@@ -1,42 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { extractConvParamsFactory, SeparableConvParams } from 'tfjs-tiny-yolov2';
-export function extractorsFactory(extractWeights, paramMappings) {
- function extractSeparableConvParams(channelsIn, channelsOut, mappedPrefix) {
- var depthwise_filter = tf.tensor4d(extractWeights(3 * 3 * channelsIn), [3, 3, channelsIn, 1]);
- var pointwise_filter = tf.tensor4d(extractWeights(channelsIn * channelsOut), [1, 1, channelsIn, channelsOut]);
- var bias = tf.tensor1d(extractWeights(channelsOut));
- paramMappings.push({ paramPath: mappedPrefix + "/depthwise_filter" }, { paramPath: mappedPrefix + "/pointwise_filter" }, { paramPath: mappedPrefix + "/bias" });
- return new SeparableConvParams(depthwise_filter, pointwise_filter, bias);
- }
- function extractFCParams(channelsIn, channelsOut, mappedPrefix) {
- var weights = tf.tensor2d(extractWeights(channelsIn * channelsOut), [channelsIn, channelsOut]);
- var bias = tf.tensor1d(extractWeights(channelsOut));
- paramMappings.push({ paramPath: mappedPrefix + "/weights" }, { paramPath: mappedPrefix + "/bias" });
- return {
- weights: weights,
- bias: bias
- };
- }
- var extractConvParams = extractConvParamsFactory(extractWeights, paramMappings);
- function extractDenseBlock3Params(channelsIn, channelsOut, mappedPrefix, isFirstLayer) {
- if (isFirstLayer === void 0) { isFirstLayer = false; }
- var conv0 = isFirstLayer
- ? extractConvParams(channelsIn, channelsOut, 3, mappedPrefix + "/conv0")
- : extractSeparableConvParams(channelsIn, channelsOut, mappedPrefix + "/conv0");
- var conv1 = extractSeparableConvParams(channelsOut, channelsOut, mappedPrefix + "/conv1");
- var conv2 = extractSeparableConvParams(channelsOut, channelsOut, mappedPrefix + "/conv2");
- return { conv0: conv0, conv1: conv1, conv2: conv2 };
- }
- function extractDenseBlock4Params(channelsIn, channelsOut, mappedPrefix, isFirstLayer) {
- if (isFirstLayer === void 0) { isFirstLayer = false; }
- var _a = extractDenseBlock3Params(channelsIn, channelsOut, mappedPrefix, isFirstLayer), conv0 = _a.conv0, conv1 = _a.conv1, conv2 = _a.conv2;
- var conv3 = extractSeparableConvParams(channelsOut, channelsOut, mappedPrefix + "/conv3");
- return { conv0: conv0, conv1: conv1, conv2: conv2, conv3: conv3 };
- }
- return {
- extractDenseBlock3Params: extractDenseBlock3Params,
- extractDenseBlock4Params: extractDenseBlock4Params,
- extractFCParams: extractFCParams
- };
-}
-//# sourceMappingURL=extractorsFactory.js.map
\ No newline at end of file
diff --git a/build/es6/faceLandmarkNet/extractorsFactory.js.map b/build/es6/faceLandmarkNet/extractorsFactory.js.map
deleted file mode 100644
index 50f49f15..00000000
--- a/build/es6/faceLandmarkNet/extractorsFactory.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"extractorsFactory.js","sourceRoot":"","sources":["../../../src/faceLandmarkNet/extractorsFactory.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/build/es6/faceLandmarkNet/fullyConnectedLayer.d.ts b/build/es6/faceLandmarkNet/fullyConnectedLayer.d.ts
deleted file mode 100644
index f9f052aa..00000000
--- a/build/es6/faceLandmarkNet/fullyConnectedLayer.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { FCParams } from 'tfjs-tiny-yolov2';
-export declare function fullyConnectedLayer(x: tf.Tensor2D, params: FCParams): tf.Tensor2D;
diff --git a/build/es6/faceLandmarkNet/fullyConnectedLayer.js b/build/es6/faceLandmarkNet/fullyConnectedLayer.js
deleted file mode 100644
index 1bf3c127..00000000
--- a/build/es6/faceLandmarkNet/fullyConnectedLayer.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-export function fullyConnectedLayer(x, params) {
- return tf.tidy(function () {
- return tf.add(tf.matMul(x, params.weights), params.bias);
- });
-}
-//# sourceMappingURL=fullyConnectedLayer.js.map
\ No newline at end of file
diff --git a/build/es6/faceLandmarkNet/fullyConnectedLayer.js.map b/build/es6/faceLandmarkNet/fullyConnectedLayer.js.map
deleted file mode 100644
index 143c3188..00000000
--- a/build/es6/faceLandmarkNet/fullyConnectedLayer.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"fullyConnectedLayer.js","sourceRoot":"","sources":["../../../src/faceLandmarkNet/fullyConnectedLayer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAG5C,MAAM,8BACJ,CAAc,EACd,MAAgB;IAEhB,OAAO,EAAE,CAAC,IAAI,CAAC;QACb,OAAA,EAAE,CAAC,GAAG,CACJ,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,EAC5B,MAAM,CAAC,IAAI,CACZ;IAHD,CAGC,CACF,CAAA;AACH,CAAC"}
\ No newline at end of file
diff --git a/build/es6/faceLandmarkNet/index.d.ts b/build/es6/faceLandmarkNet/index.d.ts
deleted file mode 100644
index 6e5d1cd4..00000000
--- a/build/es6/faceLandmarkNet/index.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { FaceLandmark68Net } from './FaceLandmark68Net';
-export * from './FaceLandmark68Net';
-export * from './FaceLandmark68TinyNet';
-export declare class FaceLandmarkNet extends FaceLandmark68Net {
-}
-export declare function createFaceLandmarkNet(weights: Float32Array): FaceLandmarkNet;
diff --git a/build/es6/faceLandmarkNet/index.js b/build/es6/faceLandmarkNet/index.js
deleted file mode 100644
index 258fac90..00000000
--- a/build/es6/faceLandmarkNet/index.js
+++ /dev/null
@@ -1,18 +0,0 @@
-import * as tslib_1 from "tslib";
-import { FaceLandmark68Net } from './FaceLandmark68Net';
-export * from './FaceLandmark68Net';
-export * from './FaceLandmark68TinyNet';
-var FaceLandmarkNet = /** @class */ (function (_super) {
- tslib_1.__extends(FaceLandmarkNet, _super);
- function FaceLandmarkNet() {
- return _super !== null && _super.apply(this, arguments) || this;
- }
- return FaceLandmarkNet;
-}(FaceLandmark68Net));
-export { FaceLandmarkNet };
-export function createFaceLandmarkNet(weights) {
- var net = new FaceLandmarkNet();
- net.extractWeights(weights);
- return net;
-}
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/build/es6/faceLandmarkNet/index.js.map b/build/es6/faceLandmarkNet/index.js.map
deleted file mode 100644
index 37615432..00000000
--- a/build/es6/faceLandmarkNet/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/faceLandmarkNet/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AAExC;IAAqC,2CAAiB;IAAtD;;IAAwD,CAAC;IAAD,sBAAC;AAAD,CAAC,AAAzD,CAAqC,iBAAiB,GAAG;;AAEzD,MAAM,gCAAgC,OAAqB;IACzD,IAAM,GAAG,GAAG,IAAI,eAAe,EAAE,CAAA;IACjC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;IAC3B,OAAO,GAAG,CAAA;AACZ,CAAC"}
\ No newline at end of file
diff --git a/build/es6/faceLandmarkNet/loadParamsFactory.d.ts b/build/es6/faceLandmarkNet/loadParamsFactory.d.ts
deleted file mode 100644
index f4c2f6ad..00000000
--- a/build/es6/faceLandmarkNet/loadParamsFactory.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { ParamMapping } from 'tfjs-image-recognition-base';
-import { FCParams } from 'tfjs-tiny-yolov2';
-import { DenseBlock3Params, DenseBlock4Params } from './types';
-export declare function loadParamsFactory(weightMap: any, paramMappings: ParamMapping[]): {
- extractDenseBlock3Params: (prefix: string, isFirstLayer?: boolean) => DenseBlock3Params;
- extractDenseBlock4Params: (prefix: string, isFirstLayer?: boolean) => DenseBlock4Params;
- extractFcParams: (prefix: string) => FCParams;
-};
diff --git a/build/es6/faceLandmarkNet/loadParamsFactory.js b/build/es6/faceLandmarkNet/loadParamsFactory.js
deleted file mode 100644
index 13eb64be..00000000
--- a/build/es6/faceLandmarkNet/loadParamsFactory.js
+++ /dev/null
@@ -1,46 +0,0 @@
-import { extractWeightEntryFactory } from 'tfjs-image-recognition-base';
-import { SeparableConvParams } from 'tfjs-tiny-yolov2';
-export function loadParamsFactory(weightMap, paramMappings) {
- var extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);
- function extractConvParams(prefix) {
- var filters = extractWeightEntry(prefix + "/filters", 4);
- var bias = extractWeightEntry(prefix + "/bias", 1);
- return { filters: filters, bias: bias };
- }
- function extractSeparableConvParams(prefix) {
- var depthwise_filter = extractWeightEntry(prefix + "/depthwise_filter", 4);
- var pointwise_filter = extractWeightEntry(prefix + "/pointwise_filter", 4);
- var bias = extractWeightEntry(prefix + "/bias", 1);
- return new SeparableConvParams(depthwise_filter, pointwise_filter, bias);
- }
- function extractDenseBlock3Params(prefix, isFirstLayer) {
- if (isFirstLayer === void 0) { isFirstLayer = false; }
- var conv0 = isFirstLayer
- ? extractConvParams(prefix + "/conv0")
- : extractSeparableConvParams(prefix + "/conv0");
- var conv1 = extractSeparableConvParams(prefix + "/conv1");
- var conv2 = extractSeparableConvParams(prefix + "/conv2");
- return { conv0: conv0, conv1: conv1, conv2: conv2 };
- }
- function extractDenseBlock4Params(prefix, isFirstLayer) {
- if (isFirstLayer === void 0) { isFirstLayer = false; }
- var conv0 = isFirstLayer
- ? extractConvParams(prefix + "/conv0")
- : extractSeparableConvParams(prefix + "/conv0");
- var conv1 = extractSeparableConvParams(prefix + "/conv1");
- var conv2 = extractSeparableConvParams(prefix + "/conv2");
- var conv3 = extractSeparableConvParams(prefix + "/conv3");
- return { conv0: conv0, conv1: conv1, conv2: conv2, conv3: conv3 };
- }
- function extractFcParams(prefix) {
- var weights = extractWeightEntry(prefix + "/weights", 2);
- var bias = extractWeightEntry(prefix + "/bias", 1);
- return { weights: weights, bias: bias };
- }
- return {
- extractDenseBlock3Params: extractDenseBlock3Params,
- extractDenseBlock4Params: extractDenseBlock4Params,
- extractFcParams: extractFcParams
- };
-}
-//# sourceMappingURL=loadParamsFactory.js.map
\ No newline at end of file
diff --git a/build/es6/faceLandmarkNet/loadParamsFactory.js.map b/build/es6/faceLandmarkNet/loadParamsFactory.js.map
deleted file mode 100644
index 555a6d20..00000000
--- a/build/es6/faceLandmarkNet/loadParamsFactory.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"loadParamsFactory.js","sourceRoot":"","sources":["../../../src/faceLandmarkNet/loadParamsFactory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAgB,MAAM,6BAA6B,CAAC;AACtF,OAAO,EAAwB,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAI7E,MAAM,4BAA4B,SAAc,EAAE,aAA6B;IAE7E,IAAM,kBAAkB,GAAG,yBAAyB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;IAE9E,2BAA2B,MAAc;QACvC,IAAM,OAAO,GAAG,kBAAkB,CAAiB,MAAM,aAAU,EAAE,CAAC,CAAC,CAAA;QACvE,IAAM,IAAI,GAAG,kBAAkB,CAAiB,MAAM,UAAO,EAAE,CAAC,CAAC,CAAA;QAEjE,OAAO,EAAE,OAAO,SAAA,EAAE,IAAI,MAAA,EAAE,CAAA;IAC1B,CAAC;IAED,oCAAoC,MAAc;QAChD,IAAM,gBAAgB,GAAG,kBAAkB,CAAiB,MAAM,sBAAmB,EAAE,CAAC,CAAC,CAAA;QACzF,IAAM,gBAAgB,GAAG,kBAAkB,CAAiB,MAAM,sBAAmB,EAAE,CAAC,CAAC,CAAA;QACzF,IAAM,IAAI,GAAG,kBAAkB,CAAiB,MAAM,UAAO,EAAE,CAAC,CAAC,CAAA;QAEjE,OAAO,IAAI,mBAAmB,CAC5B,gBAAgB,EAChB,gBAAgB,EAChB,IAAI,CACL,CAAA;IACH,CAAC;IAED,kCAAkC,MAAc,EAAE,YAA6B;QAA7B,6BAAA,EAAA,oBAA6B;QAC7E,IAAM,KAAK,GAAG,YAAY;YACxB,CAAC,CAAC,iBAAiB,CAAI,MAAM,WAAQ,CAAC;YACtC,CAAC,CAAC,0BAA0B,CAAI,MAAM,WAAQ,CAAC,CAAA;QACjD,IAAM,KAAK,GAAG,0BAA0B,CAAI,MAAM,WAAQ,CAAC,CAAA;QAC3D,IAAM,KAAK,GAAG,0BAA0B,CAAI,MAAM,WAAQ,CAAC,CAAA;QAE3D,OAAO,EAAE,KAAK,OAAA,EAAE,KAAK,OAAA,EAAE,KAAK,OAAA,EAAE,CAAA;IAChC,CAAC;IAED,kCAAkC,MAAc,EAAE,YAA6B;QAA7B,6BAAA,EAAA,oBAA6B;QAC7E,IAAM,KAAK,GAAG,YAAY;YACxB,CAAC,CAAC,iBAAiB,CAAI,MAAM,WAAQ,CAAC;YACtC,CAAC,CAAC,0BAA0B,CAAI,MAAM,WAAQ,CAAC,CAAA;QACjD,IAAM,KAAK,GAAG,0BAA0B,CAAI,MAAM,WAAQ,CAAC,CAAA;QAC3D,IAAM,KAAK,GAAG,0BAA0B,CAAI,MAAM,WAAQ,CAAC,CAAA;QAC3D,IAAM,KAAK,GAAG,0BAA0B,CAAI,MAAM,WAAQ,CAAC,CAAA;QAE3D,OAAO,EAAE,KAAK,OAAA,EAAE,KAAK,OAAA,EAAE,KAAK,OAAA,EAAE,KAAK,OAAA,EAAE,CAAA;IACvC,CAAC;IAED,yBAAyB,MAAc;QACrC,IAAM,OAAO,GAAG,kBAAkB,CAAiB,MAAM,aAAU,EAAE,CAAC,CAAC,CAAA;QACvE,IAAM,IAAI,GAAG,kBAAkB,CAAiB,MAAM,UAAO,EAAE,CAAC,CAAC,CAAA;QAEjE,OAAO,EAAE,OAAO,SAAA,EAAE,IAAI,MAAA,EAAE,CAAA;IAC1B,CAAC;IAED,OAAO;QACL,wBAAwB,0BAAA;QACxB,wBAAwB,0BAAA;QACxB,eAAe,iBAAA;KAChB,CAAA;AACH,CAAC"}
\ No newline at end of file
diff --git a/build/es6/faceLandmarkNet/loadQuantizedParams.d.ts b/build/es6/faceLandmarkNet/loadQuantizedParams.d.ts
deleted file mode 100644
index c5e1dc44..00000000
--- a/build/es6/faceLandmarkNet/loadQuantizedParams.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { ParamMapping } from 'tfjs-image-recognition-base';
-import { NetParams } from './types';
-export declare function loadQuantizedParams(uri: string | undefined): Promise<{
- params: NetParams;
- paramMappings: ParamMapping[];
-}>;
diff --git a/build/es6/faceLandmarkNet/loadQuantizedParams.js b/build/es6/faceLandmarkNet/loadQuantizedParams.js
deleted file mode 100644
index 836b4441..00000000
--- a/build/es6/faceLandmarkNet/loadQuantizedParams.js
+++ /dev/null
@@ -1,28 +0,0 @@
-import * as tslib_1 from "tslib";
-import { disposeUnusedWeightTensors, loadWeightMap } from 'tfjs-image-recognition-base';
-import { loadParamsFactory } from './loadParamsFactory';
-var DEFAULT_MODEL_NAME = 'face_landmark_68_model';
-export function loadQuantizedParams(uri) {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var weightMap, paramMappings, _a, extractDenseBlock4Params, extractFcParams, params;
- return tslib_1.__generator(this, function (_b) {
- switch (_b.label) {
- case 0: return [4 /*yield*/, loadWeightMap(uri, DEFAULT_MODEL_NAME)];
- case 1:
- weightMap = _b.sent();
- paramMappings = [];
- _a = loadParamsFactory(weightMap, paramMappings), extractDenseBlock4Params = _a.extractDenseBlock4Params, extractFcParams = _a.extractFcParams;
- params = {
- dense0: extractDenseBlock4Params('dense0', true),
- dense1: extractDenseBlock4Params('dense1'),
- dense2: extractDenseBlock4Params('dense2'),
- dense3: extractDenseBlock4Params('dense3'),
- fc: extractFcParams('fc')
- };
- disposeUnusedWeightTensors(weightMap, paramMappings);
- return [2 /*return*/, { params: params, paramMappings: paramMappings }];
- }
- });
- });
-}
-//# sourceMappingURL=loadQuantizedParams.js.map
\ No newline at end of file
diff --git a/build/es6/faceLandmarkNet/loadQuantizedParams.js.map b/build/es6/faceLandmarkNet/loadQuantizedParams.js.map
deleted file mode 100644
index 1c712c52..00000000
--- a/build/es6/faceLandmarkNet/loadQuantizedParams.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"loadQuantizedParams.js","sourceRoot":"","sources":["../../../src/faceLandmarkNet/loadQuantizedParams.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,0BAA0B,EAAE,aAAa,EAAgB,MAAM,6BAA6B,CAAC;AAEtG,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,IAAM,kBAAkB,GAAG,wBAAwB,CAAA;AAEnD,MAAM,8BACJ,GAAuB;;;;;wBAGL,qBAAM,aAAa,CAAC,GAAG,EAAE,kBAAkB,CAAC,EAAA;;oBAAxD,SAAS,GAAG,SAA4C;oBACxD,aAAa,GAAmB,EAAE,CAAA;oBAElC,KAGF,iBAAiB,CAAC,SAAS,EAAE,aAAa,CAAC,EAF7C,wBAAwB,8BAAA,EACxB,eAAe,qBAAA,CAC8B;oBAEzC,MAAM,GAAG;wBACb,MAAM,EAAE,wBAAwB,CAAC,QAAQ,EAAE,IAAI,CAAC;wBAChD,MAAM,EAAE,wBAAwB,CAAC,QAAQ,CAAC;wBAC1C,MAAM,EAAE,wBAAwB,CAAC,QAAQ,CAAC;wBAC1C,MAAM,EAAE,wBAAwB,CAAC,QAAQ,CAAC;wBAC1C,EAAE,EAAE,eAAe,CAAC,IAAI,CAAC;qBAC1B,CAAA;oBAED,0BAA0B,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;oBAEpD,sBAAO,EAAE,MAAM,QAAA,EAAE,aAAa,eAAA,EAAE,EAAA;;;;CACjC"}
\ No newline at end of file
diff --git a/build/es6/faceLandmarkNet/loadQuantizedParamsTiny.d.ts b/build/es6/faceLandmarkNet/loadQuantizedParamsTiny.d.ts
deleted file mode 100644
index 36f4ea62..00000000
--- a/build/es6/faceLandmarkNet/loadQuantizedParamsTiny.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { ParamMapping } from 'tfjs-image-recognition-base';
-import { TinyNetParams } from './types';
-export declare function loadQuantizedParamsTiny(uri: string | undefined): Promise<{
- params: TinyNetParams;
- paramMappings: ParamMapping[];
-}>;
diff --git a/build/es6/faceLandmarkNet/loadQuantizedParamsTiny.js b/build/es6/faceLandmarkNet/loadQuantizedParamsTiny.js
deleted file mode 100644
index 8e0798dd..00000000
--- a/build/es6/faceLandmarkNet/loadQuantizedParamsTiny.js
+++ /dev/null
@@ -1,27 +0,0 @@
-import * as tslib_1 from "tslib";
-import { disposeUnusedWeightTensors, loadWeightMap } from 'tfjs-image-recognition-base';
-import { loadParamsFactory } from './loadParamsFactory';
-var DEFAULT_MODEL_NAME = 'face_landmark_68_tiny_model';
-export function loadQuantizedParamsTiny(uri) {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var weightMap, paramMappings, _a, extractDenseBlock3Params, extractFcParams, params;
- return tslib_1.__generator(this, function (_b) {
- switch (_b.label) {
- case 0: return [4 /*yield*/, loadWeightMap(uri, DEFAULT_MODEL_NAME)];
- case 1:
- weightMap = _b.sent();
- paramMappings = [];
- _a = loadParamsFactory(weightMap, paramMappings), extractDenseBlock3Params = _a.extractDenseBlock3Params, extractFcParams = _a.extractFcParams;
- params = {
- dense0: extractDenseBlock3Params('dense0', true),
- dense1: extractDenseBlock3Params('dense1'),
- dense2: extractDenseBlock3Params('dense2'),
- fc: extractFcParams('fc')
- };
- disposeUnusedWeightTensors(weightMap, paramMappings);
- return [2 /*return*/, { params: params, paramMappings: paramMappings }];
- }
- });
- });
-}
-//# sourceMappingURL=loadQuantizedParamsTiny.js.map
\ No newline at end of file
diff --git a/build/es6/faceLandmarkNet/loadQuantizedParamsTiny.js.map b/build/es6/faceLandmarkNet/loadQuantizedParamsTiny.js.map
deleted file mode 100644
index 613e4049..00000000
--- a/build/es6/faceLandmarkNet/loadQuantizedParamsTiny.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"loadQuantizedParamsTiny.js","sourceRoot":"","sources":["../../../src/faceLandmarkNet/loadQuantizedParamsTiny.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,0BAA0B,EAAE,aAAa,EAAgB,MAAM,6BAA6B,CAAC;AAEtG,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,IAAM,kBAAkB,GAAG,6BAA6B,CAAA;AAExD,MAAM,kCACJ,GAAuB;;;;;wBAGL,qBAAM,aAAa,CAAC,GAAG,EAAE,kBAAkB,CAAC,EAAA;;oBAAxD,SAAS,GAAG,SAA4C;oBACxD,aAAa,GAAmB,EAAE,CAAA;oBAElC,KAGF,iBAAiB,CAAC,SAAS,EAAE,aAAa,CAAC,EAF7C,wBAAwB,8BAAA,EACxB,eAAe,qBAAA,CAC8B;oBAEzC,MAAM,GAAG;wBACb,MAAM,EAAE,wBAAwB,CAAC,QAAQ,EAAE,IAAI,CAAC;wBAChD,MAAM,EAAE,wBAAwB,CAAC,QAAQ,CAAC;wBAC1C,MAAM,EAAE,wBAAwB,CAAC,QAAQ,CAAC;wBAC1C,EAAE,EAAE,eAAe,CAAC,IAAI,CAAC;qBAC1B,CAAA;oBAED,0BAA0B,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;oBAEpD,sBAAO,EAAE,MAAM,QAAA,EAAE,aAAa,eAAA,EAAE,EAAA;;;;CACjC"}
\ No newline at end of file
diff --git a/build/es6/faceLandmarkNet/types.d.ts b/build/es6/faceLandmarkNet/types.d.ts
deleted file mode 100644
index 2e5131f8..00000000
--- a/build/es6/faceLandmarkNet/types.d.ts
+++ /dev/null
@@ -1,39 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { ConvParams, FCParams, SeparableConvParams } from 'tfjs-tiny-yolov2';
-export declare type ConvWithBatchNormParams = BatchNormParams & {
- filter: tf.Tensor4D;
-};
-export declare type BatchNormParams = {
- mean: tf.Tensor1D;
- variance: tf.Tensor1D;
- scale: tf.Tensor1D;
- offset: tf.Tensor1D;
-};
-export declare type SeparableConvWithBatchNormParams = {
- depthwise: ConvWithBatchNormParams;
- pointwise: ConvWithBatchNormParams;
-};
-export declare type FCWithBatchNormParams = BatchNormParams & {
- weights: tf.Tensor2D;
-};
-export declare type DenseBlock3Params = {
- conv0: SeparableConvParams | ConvParams;
- conv1: SeparableConvParams;
- conv2: SeparableConvParams;
-};
-export declare type DenseBlock4Params = DenseBlock3Params & {
- conv3: SeparableConvParams;
-};
-export declare type TinyNetParams = {
- dense0: DenseBlock3Params;
- dense1: DenseBlock3Params;
- dense2: DenseBlock3Params;
- fc: FCParams;
-};
-export declare type NetParams = {
- dense0: DenseBlock4Params;
- dense1: DenseBlock4Params;
- dense2: DenseBlock4Params;
- dense3: DenseBlock4Params;
- fc: FCParams;
-};
diff --git a/build/es6/faceLandmarkNet/types.js b/build/es6/faceLandmarkNet/types.js
deleted file mode 100644
index 5b2306a4..00000000
--- a/build/es6/faceLandmarkNet/types.js
+++ /dev/null
@@ -1 +0,0 @@
-//# sourceMappingURL=types.js.map
\ No newline at end of file
diff --git a/build/es6/faceLandmarkNet/types.js.map b/build/es6/faceLandmarkNet/types.js.map
deleted file mode 100644
index 7dfe1a59..00000000
--- a/build/es6/faceLandmarkNet/types.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/faceLandmarkNet/types.ts"],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/build/es6/faceRecognitionNet/FaceRecognitionNet.d.ts b/build/es6/faceRecognitionNet/FaceRecognitionNet.d.ts
deleted file mode 100644
index f34abc0c..00000000
--- a/build/es6/faceRecognitionNet/FaceRecognitionNet.d.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { NetInput, NeuralNetwork, TNetInput } from 'tfjs-image-recognition-base';
-import { NetParams } from './types';
-export declare class FaceRecognitionNet extends NeuralNetwork {
- constructor();
- forwardInput(input: NetInput): tf.Tensor2D;
- forward(input: TNetInput): Promise;
- computeFaceDescriptor(input: TNetInput): Promise;
- protected loadQuantizedParams(uri: string | undefined): Promise<{
- params: NetParams;
- paramMappings: {
- originalPath?: string | undefined;
- paramPath: string;
- }[];
- }>;
- protected extractParams(weights: Float32Array): {
- params: NetParams;
- paramMappings: {
- originalPath?: string | undefined;
- paramPath: string;
- }[];
- };
-}
diff --git a/build/es6/faceRecognitionNet/FaceRecognitionNet.js b/build/es6/faceRecognitionNet/FaceRecognitionNet.js
deleted file mode 100644
index 3896effd..00000000
--- a/build/es6/faceRecognitionNet/FaceRecognitionNet.js
+++ /dev/null
@@ -1,86 +0,0 @@
-import * as tslib_1 from "tslib";
-import * as tf from '@tensorflow/tfjs-core';
-import { NeuralNetwork, normalize, toNetInput } from 'tfjs-image-recognition-base';
-import { convDown } from './convLayer';
-import { extractParams } from './extractParams';
-import { loadQuantizedParams } from './loadQuantizedParams';
-import { residual, residualDown } from './residualLayer';
-var FaceRecognitionNet = /** @class */ (function (_super) {
- tslib_1.__extends(FaceRecognitionNet, _super);
- function FaceRecognitionNet() {
- return _super.call(this, 'FaceRecognitionNet') || this;
- }
- FaceRecognitionNet.prototype.forwardInput = function (input) {
- var params = this.params;
- if (!params) {
- throw new Error('FaceRecognitionNet - load model before inference');
- }
- return tf.tidy(function () {
- var batchTensor = input.toBatchTensor(150, true).toFloat();
- var meanRgb = [122.782, 117.001, 104.298];
- var normalized = normalize(batchTensor, meanRgb).div(tf.scalar(256));
- var out = convDown(normalized, params.conv32_down);
- out = tf.maxPool(out, 3, 2, 'valid');
- out = residual(out, params.conv32_1);
- out = residual(out, params.conv32_2);
- out = residual(out, params.conv32_3);
- out = residualDown(out, params.conv64_down);
- out = residual(out, params.conv64_1);
- out = residual(out, params.conv64_2);
- out = residual(out, params.conv64_3);
- out = residualDown(out, params.conv128_down);
- out = residual(out, params.conv128_1);
- out = residual(out, params.conv128_2);
- out = residualDown(out, params.conv256_down);
- out = residual(out, params.conv256_1);
- out = residual(out, params.conv256_2);
- out = residualDown(out, params.conv256_down_out);
- var globalAvg = out.mean([1, 2]);
- var fullyConnected = tf.matMul(globalAvg, params.fc);
- return fullyConnected;
- });
- };
- FaceRecognitionNet.prototype.forward = function (input) {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var _a;
- return tslib_1.__generator(this, function (_b) {
- switch (_b.label) {
- case 0:
- _a = this.forwardInput;
- return [4 /*yield*/, toNetInput(input)];
- case 1: return [2 /*return*/, _a.apply(this, [_b.sent()])];
- }
- });
- });
- };
- FaceRecognitionNet.prototype.computeFaceDescriptor = function (input) {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var _this = this;
- var netInput, faceDescriptorTensors, faceDescriptorsForBatch;
- return tslib_1.__generator(this, function (_a) {
- switch (_a.label) {
- case 0: return [4 /*yield*/, toNetInput(input)];
- case 1:
- netInput = _a.sent();
- faceDescriptorTensors = tf.tidy(function () { return tf.unstack(_this.forwardInput(netInput)); });
- return [4 /*yield*/, Promise.all(faceDescriptorTensors.map(function (t) { return t.data(); }))];
- case 2:
- faceDescriptorsForBatch = _a.sent();
- faceDescriptorTensors.forEach(function (t) { return t.dispose(); });
- return [2 /*return*/, netInput.isBatchInput
- ? faceDescriptorsForBatch
- : faceDescriptorsForBatch[0]];
- }
- });
- });
- };
- FaceRecognitionNet.prototype.loadQuantizedParams = function (uri) {
- return loadQuantizedParams(uri);
- };
- FaceRecognitionNet.prototype.extractParams = function (weights) {
- return extractParams(weights);
- };
- return FaceRecognitionNet;
-}(NeuralNetwork));
-export { FaceRecognitionNet };
-//# sourceMappingURL=FaceRecognitionNet.js.map
\ No newline at end of file
diff --git a/build/es6/faceRecognitionNet/FaceRecognitionNet.js.map b/build/es6/faceRecognitionNet/FaceRecognitionNet.js.map
deleted file mode 100644
index 34deb6d9..00000000
--- a/build/es6/faceRecognitionNet/FaceRecognitionNet.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"FaceRecognitionNet.js","sourceRoot":"","sources":["../../../src/faceRecognitionNet/FaceRecognitionNet.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/build/es6/faceRecognitionNet/convLayer.d.ts b/build/es6/faceRecognitionNet/convLayer.d.ts
deleted file mode 100644
index a750f6c4..00000000
--- a/build/es6/faceRecognitionNet/convLayer.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { ConvLayerParams } from './types';
-export declare function conv(x: tf.Tensor4D, params: ConvLayerParams): tf.Tensor;
-export declare function convNoRelu(x: tf.Tensor4D, params: ConvLayerParams): tf.Tensor;
-export declare function convDown(x: tf.Tensor4D, params: ConvLayerParams): tf.Tensor;
diff --git a/build/es6/faceRecognitionNet/convLayer.js b/build/es6/faceRecognitionNet/convLayer.js
deleted file mode 100644
index e5d61651..00000000
--- a/build/es6/faceRecognitionNet/convLayer.js
+++ /dev/null
@@ -1,20 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { scale } from './scaleLayer';
-function convLayer(x, params, strides, withRelu, padding) {
- if (padding === void 0) { padding = 'same'; }
- var _a = params.conv, filters = _a.filters, bias = _a.bias;
- var out = tf.conv2d(x, filters, strides, padding);
- out = tf.add(out, bias);
- out = scale(out, params.scale);
- return withRelu ? tf.relu(out) : out;
-}
-export function conv(x, params) {
- return convLayer(x, params, [1, 1], true);
-}
-export function convNoRelu(x, params) {
- return convLayer(x, params, [1, 1], false);
-}
-export function convDown(x, params) {
- return convLayer(x, params, [2, 2], true, 'valid');
-}
-//# sourceMappingURL=convLayer.js.map
\ No newline at end of file
diff --git a/build/es6/faceRecognitionNet/convLayer.js.map b/build/es6/faceRecognitionNet/convLayer.js.map
deleted file mode 100644
index 17fef6b7..00000000
--- a/build/es6/faceRecognitionNet/convLayer.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"convLayer.js","sourceRoot":"","sources":["../../../src/faceRecognitionNet/convLayer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAIrC,mBACE,CAAc,EACd,MAAuB,EACvB,OAAyB,EACzB,QAAiB,EACjB,OAAkC;IAAlC,wBAAA,EAAA,gBAAkC;IAE5B,IAAA,gBAA+B,EAA7B,oBAAO,EAAE,cAAI,CAAgB;IAErC,IAAI,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;IACjD,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IACvB,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;IAC9B,OAAO,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;AACtC,CAAC;AAED,MAAM,eAAe,CAAc,EAAE,MAAuB;IAC1D,OAAO,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;AAC3C,CAAC;AAED,MAAM,qBAAqB,CAAc,EAAE,MAAuB;IAChE,OAAO,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;AAC5C,CAAC;AAED,MAAM,mBAAmB,CAAc,EAAE,MAAuB;IAC9D,OAAO,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;AACpD,CAAC"}
\ No newline at end of file
diff --git a/build/es6/faceRecognitionNet/extractParams.d.ts b/build/es6/faceRecognitionNet/extractParams.d.ts
deleted file mode 100644
index 40295777..00000000
--- a/build/es6/faceRecognitionNet/extractParams.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { ParamMapping } from 'tfjs-image-recognition-base';
-import { NetParams } from './types';
-export declare function extractParams(weights: Float32Array): {
- params: NetParams;
- paramMappings: ParamMapping[];
-};
diff --git a/build/es6/faceRecognitionNet/extractParams.js b/build/es6/faceRecognitionNet/extractParams.js
deleted file mode 100644
index 1259d36a..00000000
--- a/build/es6/faceRecognitionNet/extractParams.js
+++ /dev/null
@@ -1,87 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { extractWeightsFactory, isFloat } from 'tfjs-image-recognition-base';
-function extractorsFactory(extractWeights, paramMappings) {
- function extractFilterValues(numFilterValues, numFilters, filterSize) {
- var weights = extractWeights(numFilterValues);
- var depth = weights.length / (numFilters * filterSize * filterSize);
- if (isFloat(depth)) {
- throw new Error("depth has to be an integer: " + depth + ", weights.length: " + weights.length + ", numFilters: " + numFilters + ", filterSize: " + filterSize);
- }
- return tf.tidy(function () { return tf.transpose(tf.tensor4d(weights, [numFilters, depth, filterSize, filterSize]), [2, 3, 1, 0]); });
- }
- function extractConvParams(numFilterValues, numFilters, filterSize, mappedPrefix) {
- var filters = extractFilterValues(numFilterValues, numFilters, filterSize);
- var bias = tf.tensor1d(extractWeights(numFilters));
- paramMappings.push({ paramPath: mappedPrefix + "/filters" }, { paramPath: mappedPrefix + "/bias" });
- return { filters: filters, bias: bias };
- }
- function extractScaleLayerParams(numWeights, mappedPrefix) {
- var weights = tf.tensor1d(extractWeights(numWeights));
- var biases = tf.tensor1d(extractWeights(numWeights));
- paramMappings.push({ paramPath: mappedPrefix + "/weights" }, { paramPath: mappedPrefix + "/biases" });
- return {
- weights: weights,
- biases: biases
- };
- }
- function extractConvLayerParams(numFilterValues, numFilters, filterSize, mappedPrefix) {
- var conv = extractConvParams(numFilterValues, numFilters, filterSize, mappedPrefix + "/conv");
- var scale = extractScaleLayerParams(numFilters, mappedPrefix + "/scale");
- return { conv: conv, scale: scale };
- }
- function extractResidualLayerParams(numFilterValues, numFilters, filterSize, mappedPrefix, isDown) {
- if (isDown === void 0) { isDown = false; }
- var conv1 = extractConvLayerParams((isDown ? 0.5 : 1) * numFilterValues, numFilters, filterSize, mappedPrefix + "/conv1");
- var conv2 = extractConvLayerParams(numFilterValues, numFilters, filterSize, mappedPrefix + "/conv2");
- return { conv1: conv1, conv2: conv2 };
- }
- return {
- extractConvLayerParams: extractConvLayerParams,
- extractResidualLayerParams: extractResidualLayerParams
- };
-}
-export function extractParams(weights) {
- var _a = extractWeightsFactory(weights), extractWeights = _a.extractWeights, getRemainingWeights = _a.getRemainingWeights;
- var paramMappings = [];
- var _b = extractorsFactory(extractWeights, paramMappings), extractConvLayerParams = _b.extractConvLayerParams, extractResidualLayerParams = _b.extractResidualLayerParams;
- var conv32_down = extractConvLayerParams(4704, 32, 7, 'conv32_down');
- var conv32_1 = extractResidualLayerParams(9216, 32, 3, 'conv32_1');
- var conv32_2 = extractResidualLayerParams(9216, 32, 3, 'conv32_2');
- var conv32_3 = extractResidualLayerParams(9216, 32, 3, 'conv32_3');
- var conv64_down = extractResidualLayerParams(36864, 64, 3, 'conv64_down', true);
- var conv64_1 = extractResidualLayerParams(36864, 64, 3, 'conv64_1');
- var conv64_2 = extractResidualLayerParams(36864, 64, 3, 'conv64_2');
- var conv64_3 = extractResidualLayerParams(36864, 64, 3, 'conv64_3');
- var conv128_down = extractResidualLayerParams(147456, 128, 3, 'conv128_down', true);
- var conv128_1 = extractResidualLayerParams(147456, 128, 3, 'conv128_1');
- var conv128_2 = extractResidualLayerParams(147456, 128, 3, 'conv128_2');
- var conv256_down = extractResidualLayerParams(589824, 256, 3, 'conv256_down', true);
- var conv256_1 = extractResidualLayerParams(589824, 256, 3, 'conv256_1');
- var conv256_2 = extractResidualLayerParams(589824, 256, 3, 'conv256_2');
- var conv256_down_out = extractResidualLayerParams(589824, 256, 3, 'conv256_down_out');
- var fc = tf.tidy(function () { return tf.transpose(tf.tensor2d(extractWeights(256 * 128), [128, 256]), [1, 0]); });
- paramMappings.push({ paramPath: "fc" });
- if (getRemainingWeights().length !== 0) {
- throw new Error("weights remaing after extract: " + getRemainingWeights().length);
- }
- var params = {
- conv32_down: conv32_down,
- conv32_1: conv32_1,
- conv32_2: conv32_2,
- conv32_3: conv32_3,
- conv64_down: conv64_down,
- conv64_1: conv64_1,
- conv64_2: conv64_2,
- conv64_3: conv64_3,
- conv128_down: conv128_down,
- conv128_1: conv128_1,
- conv128_2: conv128_2,
- conv256_down: conv256_down,
- conv256_1: conv256_1,
- conv256_2: conv256_2,
- conv256_down_out: conv256_down_out,
- fc: fc
- };
- return { params: params, paramMappings: paramMappings };
-}
-//# sourceMappingURL=extractParams.js.map
\ No newline at end of file
diff --git a/build/es6/faceRecognitionNet/extractParams.js.map b/build/es6/faceRecognitionNet/extractParams.js.map
deleted file mode 100644
index 58314bd2..00000000
--- a/build/es6/faceRecognitionNet/extractParams.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"extractParams.js","sourceRoot":"","sources":["../../../src/faceRecognitionNet/extractParams.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/build/es6/faceRecognitionNet/index.d.ts b/build/es6/faceRecognitionNet/index.d.ts
deleted file mode 100644
index 487d6af4..00000000
--- a/build/es6/faceRecognitionNet/index.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import { FaceRecognitionNet } from './FaceRecognitionNet';
-export * from './FaceRecognitionNet';
-export declare function createFaceRecognitionNet(weights: Float32Array): FaceRecognitionNet;
diff --git a/build/es6/faceRecognitionNet/index.js b/build/es6/faceRecognitionNet/index.js
deleted file mode 100644
index 0074593d..00000000
--- a/build/es6/faceRecognitionNet/index.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import { FaceRecognitionNet } from './FaceRecognitionNet';
-export * from './FaceRecognitionNet';
-export function createFaceRecognitionNet(weights) {
- var net = new FaceRecognitionNet();
- net.extractWeights(weights);
- return net;
-}
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/build/es6/faceRecognitionNet/index.js.map b/build/es6/faceRecognitionNet/index.js.map
deleted file mode 100644
index f733cf2b..00000000
--- a/build/es6/faceRecognitionNet/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/faceRecognitionNet/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,cAAc,sBAAsB,CAAC;AAErC,MAAM,mCAAmC,OAAqB;IAC5D,IAAM,GAAG,GAAG,IAAI,kBAAkB,EAAE,CAAA;IACpC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;IAC3B,OAAO,GAAG,CAAA;AACZ,CAAC"}
\ No newline at end of file
diff --git a/build/es6/faceRecognitionNet/loadQuantizedParams.d.ts b/build/es6/faceRecognitionNet/loadQuantizedParams.d.ts
deleted file mode 100644
index c5e1dc44..00000000
--- a/build/es6/faceRecognitionNet/loadQuantizedParams.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { ParamMapping } from 'tfjs-image-recognition-base';
-import { NetParams } from './types';
-export declare function loadQuantizedParams(uri: string | undefined): Promise<{
- params: NetParams;
- paramMappings: ParamMapping[];
-}>;
diff --git a/build/es6/faceRecognitionNet/loadQuantizedParams.js b/build/es6/faceRecognitionNet/loadQuantizedParams.js
deleted file mode 100644
index c9e33fac..00000000
--- a/build/es6/faceRecognitionNet/loadQuantizedParams.js
+++ /dev/null
@@ -1,82 +0,0 @@
-import * as tslib_1 from "tslib";
-import { disposeUnusedWeightTensors, extractWeightEntryFactory, isTensor2D, loadWeightMap, } from 'tfjs-image-recognition-base';
-var DEFAULT_MODEL_NAME = 'face_recognition_model';
-function extractorsFactory(weightMap, paramMappings) {
- var extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);
- function extractScaleLayerParams(prefix) {
- var weights = extractWeightEntry(prefix + "/scale/weights", 1);
- var biases = extractWeightEntry(prefix + "/scale/biases", 1);
- return { weights: weights, biases: biases };
- }
- function extractConvLayerParams(prefix) {
- var filters = extractWeightEntry(prefix + "/conv/filters", 4);
- var bias = extractWeightEntry(prefix + "/conv/bias", 1);
- var scale = extractScaleLayerParams(prefix);
- return { conv: { filters: filters, bias: bias }, scale: scale };
- }
- function extractResidualLayerParams(prefix) {
- return {
- conv1: extractConvLayerParams(prefix + "/conv1"),
- conv2: extractConvLayerParams(prefix + "/conv2")
- };
- }
- return {
- extractConvLayerParams: extractConvLayerParams,
- extractResidualLayerParams: extractResidualLayerParams
- };
-}
-export function loadQuantizedParams(uri) {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var weightMap, paramMappings, _a, extractConvLayerParams, extractResidualLayerParams, conv32_down, conv32_1, conv32_2, conv32_3, conv64_down, conv64_1, conv64_2, conv64_3, conv128_down, conv128_1, conv128_2, conv256_down, conv256_1, conv256_2, conv256_down_out, fc, params;
- return tslib_1.__generator(this, function (_b) {
- switch (_b.label) {
- case 0: return [4 /*yield*/, loadWeightMap(uri, DEFAULT_MODEL_NAME)];
- case 1:
- weightMap = _b.sent();
- paramMappings = [];
- _a = extractorsFactory(weightMap, paramMappings), extractConvLayerParams = _a.extractConvLayerParams, extractResidualLayerParams = _a.extractResidualLayerParams;
- conv32_down = extractConvLayerParams('conv32_down');
- conv32_1 = extractResidualLayerParams('conv32_1');
- conv32_2 = extractResidualLayerParams('conv32_2');
- conv32_3 = extractResidualLayerParams('conv32_3');
- conv64_down = extractResidualLayerParams('conv64_down');
- conv64_1 = extractResidualLayerParams('conv64_1');
- conv64_2 = extractResidualLayerParams('conv64_2');
- conv64_3 = extractResidualLayerParams('conv64_3');
- conv128_down = extractResidualLayerParams('conv128_down');
- conv128_1 = extractResidualLayerParams('conv128_1');
- conv128_2 = extractResidualLayerParams('conv128_2');
- conv256_down = extractResidualLayerParams('conv256_down');
- conv256_1 = extractResidualLayerParams('conv256_1');
- conv256_2 = extractResidualLayerParams('conv256_2');
- conv256_down_out = extractResidualLayerParams('conv256_down_out');
- fc = weightMap['fc'];
- paramMappings.push({ originalPath: 'fc', paramPath: 'fc' });
- if (!isTensor2D(fc)) {
- throw new Error("expected weightMap[fc] to be a Tensor2D, instead have " + fc);
- }
- params = {
- conv32_down: conv32_down,
- conv32_1: conv32_1,
- conv32_2: conv32_2,
- conv32_3: conv32_3,
- conv64_down: conv64_down,
- conv64_1: conv64_1,
- conv64_2: conv64_2,
- conv64_3: conv64_3,
- conv128_down: conv128_down,
- conv128_1: conv128_1,
- conv128_2: conv128_2,
- conv256_down: conv256_down,
- conv256_1: conv256_1,
- conv256_2: conv256_2,
- conv256_down_out: conv256_down_out,
- fc: fc
- };
- disposeUnusedWeightTensors(weightMap, paramMappings);
- return [2 /*return*/, { params: params, paramMappings: paramMappings }];
- }
- });
- });
-}
-//# sourceMappingURL=loadQuantizedParams.js.map
\ No newline at end of file
diff --git a/build/es6/faceRecognitionNet/loadQuantizedParams.js.map b/build/es6/faceRecognitionNet/loadQuantizedParams.js.map
deleted file mode 100644
index fe466e02..00000000
--- a/build/es6/faceRecognitionNet/loadQuantizedParams.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"loadQuantizedParams.js","sourceRoot":"","sources":["../../../src/faceRecognitionNet/loadQuantizedParams.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/build/es6/faceRecognitionNet/residualLayer.d.ts b/build/es6/faceRecognitionNet/residualLayer.d.ts
deleted file mode 100644
index 1656e0a0..00000000
--- a/build/es6/faceRecognitionNet/residualLayer.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { ResidualLayerParams } from './types';
-export declare function residual(x: tf.Tensor4D, params: ResidualLayerParams): tf.Tensor4D;
-export declare function residualDown(x: tf.Tensor4D, params: ResidualLayerParams): tf.Tensor4D;
diff --git a/build/es6/faceRecognitionNet/residualLayer.js b/build/es6/faceRecognitionNet/residualLayer.js
deleted file mode 100644
index bfc1cb70..00000000
--- a/build/es6/faceRecognitionNet/residualLayer.js
+++ /dev/null
@@ -1,32 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { conv, convDown, convNoRelu } from './convLayer';
-export function residual(x, params) {
- var out = conv(x, params.conv1);
- out = convNoRelu(out, params.conv2);
- out = tf.add(out, x);
- out = tf.relu(out);
- return out;
-}
-export function residualDown(x, params) {
- var out = convDown(x, params.conv1);
- out = convNoRelu(out, params.conv2);
- var pooled = tf.avgPool(x, 2, 2, 'valid');
- var zeros = tf.zeros(pooled.shape);
- var isPad = pooled.shape[3] !== out.shape[3];
- var isAdjustShape = pooled.shape[1] !== out.shape[1] || pooled.shape[2] !== out.shape[2];
- if (isAdjustShape) {
- var padShapeX = out.shape.slice();
- padShapeX[1] = 1;
- var zerosW = tf.zeros(padShapeX);
- out = tf.concat([out, zerosW], 1);
- var padShapeY = out.shape.slice();
- padShapeY[2] = 1;
- var zerosH = tf.zeros(padShapeY);
- out = tf.concat([out, zerosH], 2);
- }
- pooled = isPad ? tf.concat([pooled, zeros], 3) : pooled;
- out = tf.add(pooled, out);
- out = tf.relu(out);
- return out;
-}
-//# sourceMappingURL=residualLayer.js.map
\ No newline at end of file
diff --git a/build/es6/faceRecognitionNet/residualLayer.js.map b/build/es6/faceRecognitionNet/residualLayer.js.map
deleted file mode 100644
index 403745e6..00000000
--- a/build/es6/faceRecognitionNet/residualLayer.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"residualLayer.js","sourceRoot":"","sources":["../../../src/faceRecognitionNet/residualLayer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzD,MAAM,mBAAmB,CAAc,EAAE,MAA2B;IAClE,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;IAC/B,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;IACnC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;IACpB,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAClB,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,MAAM,uBAAuB,CAAc,EAAE,MAA2B;IACtE,IAAI,GAAG,GAAG,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;IACnC,GAAG,GAAG,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;IAEnC,IAAI,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAgB,CAAA;IACxD,IAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAa,MAAM,CAAC,KAAK,CAAC,CAAA;IAChD,IAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC9C,IAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAE1F,IAAI,aAAa,EAAE;QACjB,IAAM,SAAS,GAAO,GAAG,CAAC,KAAK,QAAqC,CAAA;QACpE,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QAChB,IAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAa,SAAS,CAAC,CAAA;QAC9C,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;QAEjC,IAAM,SAAS,GAAO,GAAG,CAAC,KAAK,QAAqC,CAAA;QACpE,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QAChB,IAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAa,SAAS,CAAC,CAAA;QAC9C,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;KAClC;IAED,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;IACvD,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAgB,CAAA;IAExC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAClB,OAAO,GAAG,CAAA;AACZ,CAAC"}
\ No newline at end of file
diff --git a/build/es6/faceRecognitionNet/scaleLayer.d.ts b/build/es6/faceRecognitionNet/scaleLayer.d.ts
deleted file mode 100644
index 07a866ea..00000000
--- a/build/es6/faceRecognitionNet/scaleLayer.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { ScaleLayerParams } from './types';
-export declare function scale(x: tf.Tensor4D, params: ScaleLayerParams): tf.Tensor4D;
diff --git a/build/es6/faceRecognitionNet/scaleLayer.js b/build/es6/faceRecognitionNet/scaleLayer.js
deleted file mode 100644
index 6c1b911e..00000000
--- a/build/es6/faceRecognitionNet/scaleLayer.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-export function scale(x, params) {
- return tf.add(tf.mul(x, params.weights), params.biases);
-}
-//# sourceMappingURL=scaleLayer.js.map
\ No newline at end of file
diff --git a/build/es6/faceRecognitionNet/scaleLayer.js.map b/build/es6/faceRecognitionNet/scaleLayer.js.map
deleted file mode 100644
index f2060b6c..00000000
--- a/build/es6/faceRecognitionNet/scaleLayer.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"scaleLayer.js","sourceRoot":"","sources":["../../../src/faceRecognitionNet/scaleLayer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAI5C,MAAM,gBAAgB,CAAc,EAAE,MAAwB;IAC5D,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;AACzD,CAAC"}
\ No newline at end of file
diff --git a/build/es6/faceRecognitionNet/types.d.ts b/build/es6/faceRecognitionNet/types.d.ts
deleted file mode 100644
index 8f3446d4..00000000
--- a/build/es6/faceRecognitionNet/types.d.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { ConvParams } from 'tfjs-tiny-yolov2';
-export declare type ScaleLayerParams = {
- weights: tf.Tensor1D;
- biases: tf.Tensor1D;
-};
-export declare type ResidualLayerParams = {
- conv1: ConvLayerParams;
- conv2: ConvLayerParams;
-};
-export declare type ConvLayerParams = {
- conv: ConvParams;
- scale: ScaleLayerParams;
-};
-export declare type NetParams = {
- conv32_down: ConvLayerParams;
- conv32_1: ResidualLayerParams;
- conv32_2: ResidualLayerParams;
- conv32_3: ResidualLayerParams;
- conv64_down: ResidualLayerParams;
- conv64_1: ResidualLayerParams;
- conv64_2: ResidualLayerParams;
- conv64_3: ResidualLayerParams;
- conv128_down: ResidualLayerParams;
- conv128_1: ResidualLayerParams;
- conv128_2: ResidualLayerParams;
- conv256_down: ResidualLayerParams;
- conv256_1: ResidualLayerParams;
- conv256_2: ResidualLayerParams;
- conv256_down_out: ResidualLayerParams;
- fc: tf.Tensor2D;
-};
diff --git a/build/es6/faceRecognitionNet/types.js b/build/es6/faceRecognitionNet/types.js
deleted file mode 100644
index 5b2306a4..00000000
--- a/build/es6/faceRecognitionNet/types.js
+++ /dev/null
@@ -1 +0,0 @@
-//# sourceMappingURL=types.js.map
\ No newline at end of file
diff --git a/build/es6/faceRecognitionNet/types.js.map b/build/es6/faceRecognitionNet/types.js.map
deleted file mode 100644
index 3e899768..00000000
--- a/build/es6/faceRecognitionNet/types.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/faceRecognitionNet/types.ts"],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/build/es6/globalApi/ComposableTask.d.ts b/build/es6/globalApi/ComposableTask.d.ts
deleted file mode 100644
index b7203e33..00000000
--- a/build/es6/globalApi/ComposableTask.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-export declare class ComposableTask {
- then(onfulfilled: (value: T) => T | PromiseLike): Promise;
- run(): Promise;
-}
diff --git a/build/es6/globalApi/ComposableTask.js b/build/es6/globalApi/ComposableTask.js
deleted file mode 100644
index a00a030b..00000000
--- a/build/es6/globalApi/ComposableTask.js
+++ /dev/null
@@ -1,28 +0,0 @@
-import * as tslib_1 from "tslib";
-var ComposableTask = /** @class */ (function () {
- function ComposableTask() {
- }
- ComposableTask.prototype.then = function (onfulfilled) {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var _a;
- return tslib_1.__generator(this, function (_b) {
- switch (_b.label) {
- case 0:
- _a = onfulfilled;
- return [4 /*yield*/, this.run()];
- case 1: return [2 /*return*/, _a.apply(void 0, [_b.sent()])];
- }
- });
- });
- };
- ComposableTask.prototype.run = function () {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- return tslib_1.__generator(this, function (_a) {
- throw new Error('ComposableTask - run is not implemented');
- });
- });
- };
- return ComposableTask;
-}());
-export { ComposableTask };
-//# sourceMappingURL=ComposableTask.js.map
\ No newline at end of file
diff --git a/build/es6/globalApi/ComposableTask.js.map b/build/es6/globalApi/ComposableTask.js.map
deleted file mode 100644
index 9248586a..00000000
--- a/build/es6/globalApi/ComposableTask.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ComposableTask.js","sourceRoot":"","sources":["../../../src/globalApi/ComposableTask.ts"],"names":[],"mappings":";AAAA;IAAA;IAWA,CAAC;IATc,6BAAI,GAAjB,UACE,WAA6C;;;;;;wBAEtC,KAAA,WAAW,CAAA;wBAAC,qBAAM,IAAI,CAAC,GAAG,EAAE,EAAA;4BAAnC,sBAAO,kBAAY,SAAgB,EAAC,EAAA;;;;KACrC;IAEY,4BAAG,GAAhB;;;gBACE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;;;KAC3D;IACH,qBAAC;AAAD,CAAC,AAXD,IAWC"}
\ No newline at end of file
diff --git a/build/es6/globalApi/ComputeFaceDescriptorsTasks.d.ts b/build/es6/globalApi/ComputeFaceDescriptorsTasks.d.ts
deleted file mode 100644
index 702d2e34..00000000
--- a/build/es6/globalApi/ComputeFaceDescriptorsTasks.d.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import { TNetInput } from 'tfjs-image-recognition-base';
-import { FaceDetectionWithLandmarks } from '../classes/FaceDetectionWithLandmarks';
-import { FullFaceDescription } from '../classes/FullFaceDescription';
-import { ComposableTask } from './ComposableTask';
-export declare class ComputeFaceDescriptorsTaskBase extends ComposableTask {
- protected detectFaceLandmarksTask: ComposableTask | Promise;
- protected input: TNetInput;
- constructor(detectFaceLandmarksTask: ComposableTask | Promise, input: TNetInput);
-}
-export declare class ComputeAllFaceDescriptorsTask extends ComputeFaceDescriptorsTaskBase {
- run(): Promise;
-}
-export declare class ComputeSingleFaceDescriptorTask extends ComputeFaceDescriptorsTaskBase {
- run(): Promise;
-}
diff --git a/build/es6/globalApi/ComputeFaceDescriptorsTasks.js b/build/es6/globalApi/ComputeFaceDescriptorsTasks.js
deleted file mode 100644
index 4d246813..00000000
--- a/build/es6/globalApi/ComputeFaceDescriptorsTasks.js
+++ /dev/null
@@ -1,90 +0,0 @@
-import * as tslib_1 from "tslib";
-import { FullFaceDescription } from '../classes/FullFaceDescription';
-import { extractFaces } from '../dom';
-import { ComposableTask } from './ComposableTask';
-import { nets } from './nets';
-var ComputeFaceDescriptorsTaskBase = /** @class */ (function (_super) {
- tslib_1.__extends(ComputeFaceDescriptorsTaskBase, _super);
- function ComputeFaceDescriptorsTaskBase(detectFaceLandmarksTask, input) {
- var _this = _super.call(this) || this;
- _this.detectFaceLandmarksTask = detectFaceLandmarksTask;
- _this.input = input;
- return _this;
- }
- return ComputeFaceDescriptorsTaskBase;
-}(ComposableTask));
-export { ComputeFaceDescriptorsTaskBase };
-var ComputeAllFaceDescriptorsTask = /** @class */ (function (_super) {
- tslib_1.__extends(ComputeAllFaceDescriptorsTask, _super);
- function ComputeAllFaceDescriptorsTask() {
- return _super !== null && _super.apply(this, arguments) || this;
- }
- ComputeAllFaceDescriptorsTask.prototype.run = function () {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var _this = this;
- var facesWithLandmarks, alignedFaceCanvases;
- return tslib_1.__generator(this, function (_a) {
- switch (_a.label) {
- case 0: return [4 /*yield*/, this.detectFaceLandmarksTask];
- case 1:
- facesWithLandmarks = _a.sent();
- return [4 /*yield*/, extractFaces(this.input, facesWithLandmarks.map(function (_a) {
- var landmarks = _a.landmarks;
- return landmarks.align();
- }))];
- case 2:
- alignedFaceCanvases = _a.sent();
- return [4 /*yield*/, Promise.all(facesWithLandmarks.map(function (_a, i) {
- var detection = _a.detection, landmarks = _a.landmarks;
- return tslib_1.__awaiter(_this, void 0, void 0, function () {
- var descriptor;
- return tslib_1.__generator(this, function (_b) {
- switch (_b.label) {
- case 0: return [4 /*yield*/, nets.faceRecognitionNet.computeFaceDescriptor(alignedFaceCanvases[i])];
- case 1:
- descriptor = _b.sent();
- return [2 /*return*/, new FullFaceDescription(detection, landmarks, descriptor)];
- }
- });
- });
- }))];
- case 3: return [2 /*return*/, _a.sent()];
- }
- });
- });
- };
- return ComputeAllFaceDescriptorsTask;
-}(ComputeFaceDescriptorsTaskBase));
-export { ComputeAllFaceDescriptorsTask };
-var ComputeSingleFaceDescriptorTask = /** @class */ (function (_super) {
- tslib_1.__extends(ComputeSingleFaceDescriptorTask, _super);
- function ComputeSingleFaceDescriptorTask() {
- return _super !== null && _super.apply(this, arguments) || this;
- }
- ComputeSingleFaceDescriptorTask.prototype.run = function () {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var detectionWithLandmarks, detection, landmarks, alignedRect, alignedFaceCanvas, descriptor;
- return tslib_1.__generator(this, function (_a) {
- switch (_a.label) {
- case 0: return [4 /*yield*/, this.detectFaceLandmarksTask];
- case 1:
- detectionWithLandmarks = _a.sent();
- if (!detectionWithLandmarks) {
- return [2 /*return*/];
- }
- detection = detectionWithLandmarks.detection, landmarks = detectionWithLandmarks.landmarks, alignedRect = detectionWithLandmarks.alignedRect;
- return [4 /*yield*/, extractFaces(this.input, [alignedRect])];
- case 2:
- alignedFaceCanvas = (_a.sent())[0];
- return [4 /*yield*/, nets.faceRecognitionNet.computeFaceDescriptor(alignedFaceCanvas)];
- case 3:
- descriptor = _a.sent();
- return [2 /*return*/, new FullFaceDescription(detection, landmarks, descriptor)];
- }
- });
- });
- };
- return ComputeSingleFaceDescriptorTask;
-}(ComputeFaceDescriptorsTaskBase));
-export { ComputeSingleFaceDescriptorTask };
-//# sourceMappingURL=ComputeFaceDescriptorsTasks.js.map
\ No newline at end of file
diff --git a/build/es6/globalApi/ComputeFaceDescriptorsTasks.js.map b/build/es6/globalApi/ComputeFaceDescriptorsTasks.js.map
deleted file mode 100644
index c61181fa..00000000
--- a/build/es6/globalApi/ComputeFaceDescriptorsTasks.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ComputeFaceDescriptorsTasks.js","sourceRoot":"","sources":["../../../src/globalApi/ComputeFaceDescriptorsTasks.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B;IAA4F,0DAAuB;IACjH,wCACY,uBAA+G,EAC/G,KAAgB;QAF5B,YAIE,iBAAO,SACR;QAJW,6BAAuB,GAAvB,uBAAuB,CAAwF;QAC/G,WAAK,GAAL,KAAK,CAAW;;IAG5B,CAAC;IACH,qCAAC;AAAD,CAAC,AAPD,CAA4F,cAAc,GAOzG;;AAED;IAAmD,yDAAmF;IAAtI;;IAeA,CAAC;IAbc,2CAAG,GAAhB;;;;;;4BAE6B,qBAAM,IAAI,CAAC,uBAAuB,EAAA;;wBAAvD,kBAAkB,GAAG,SAAkC;wBACjC,qBAAM,YAAY,CAC5C,IAAI,CAAC,KAAK,EACV,kBAAkB,CAAC,GAAG,CAAC,UAAC,EAAa;oCAAX,wBAAS;gCAAO,OAAA,SAAS,CAAC,KAAK,EAAE;4BAAjB,CAAiB,CAAC,CAC7D,EAAA;;wBAHK,mBAAmB,GAAG,SAG3B;wBAEM,qBAAM,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAO,EAAwB,EAAE,CAAC;oCAAzB,wBAAS,EAAE,wBAAS;;;;;oDACxD,qBAAM,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAAA;;gDAAxF,UAAU,GAAG,SAA2F;gDAC9G,sBAAO,IAAI,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,EAAA;;;;6BACjE,CAAC,CAAC,EAAA;4BAHH,sBAAO,SAGJ,EAAA;;;;KACJ;IACH,oCAAC;AAAD,CAAC,AAfD,CAAmD,8BAA8B,GAehF;;AAED;IAAqD,2DAAuG;IAA5J;;IAeA,CAAC;IAbc,6CAAG,GAAhB;;;;;4BAEiC,qBAAM,IAAI,CAAC,uBAAuB,EAAA;;wBAA3D,sBAAsB,GAAG,SAAkC;wBACjE,IAAI,CAAC,sBAAsB,EAAE;4BAC3B,sBAAM;yBACP;wBAEO,SAAS,GAA6B,sBAAsB,UAAnD,EAAE,SAAS,GAAkB,sBAAsB,UAAxC,EAAE,WAAW,GAAK,sBAAsB,YAA3B,CAA2B;wBACzC,qBAAM,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,WAAW,CAAC,CAAC,EAAA;;wBAAlE,iBAAiB,GAAG,CAAC,SAA6C,CAAC,CAAC,CAAC,CAAC;wBACzD,qBAAM,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,EAAA;;wBAAnF,UAAU,GAAG,SAAsF;wBAEzG,sBAAO,IAAI,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,EAAA;;;;KACjE;IACH,sCAAC;AAAD,CAAC,AAfD,CAAqD,8BAA8B,GAelF"}
\ No newline at end of file
diff --git a/build/es6/globalApi/DetectFaceLandmarksTasks.d.ts b/build/es6/globalApi/DetectFaceLandmarksTasks.d.ts
deleted file mode 100644
index 2bcb6adf..00000000
--- a/build/es6/globalApi/DetectFaceLandmarksTasks.d.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-import { TNetInput } from 'tfjs-image-recognition-base';
-import { FaceDetection } from '../classes/FaceDetection';
-import { FaceDetectionWithLandmarks } from '../classes/FaceDetectionWithLandmarks';
-import { FaceLandmark68Net } from '../faceLandmarkNet/FaceLandmark68Net';
-import { FaceLandmark68TinyNet } from '../faceLandmarkNet/FaceLandmark68TinyNet';
-import { ComposableTask } from './ComposableTask';
-import { ComputeAllFaceDescriptorsTask, ComputeSingleFaceDescriptorTask } from './ComputeFaceDescriptorsTasks';
-export declare class DetectFaceLandmarksTaskBase extends ComposableTask {
- protected detectFacesTask: ComposableTask | Promise;
- protected input: TNetInput;
- protected useTinyLandmarkNet: boolean;
- constructor(detectFacesTask: ComposableTask | Promise, input: TNetInput, useTinyLandmarkNet: boolean);
- protected readonly landmarkNet: FaceLandmark68Net | FaceLandmark68TinyNet;
-}
-export declare class DetectAllFaceLandmarksTask extends DetectFaceLandmarksTaskBase {
- run(): Promise;
- withFaceDescriptors(): ComputeAllFaceDescriptorsTask;
-}
-export declare class DetectSingleFaceLandmarksTask extends DetectFaceLandmarksTaskBase {
- run(): Promise;
- withFaceDescriptor(): ComputeSingleFaceDescriptorTask;
-}
diff --git a/build/es6/globalApi/DetectFaceLandmarksTasks.js b/build/es6/globalApi/DetectFaceLandmarksTasks.js
deleted file mode 100644
index 91998781..00000000
--- a/build/es6/globalApi/DetectFaceLandmarksTasks.js
+++ /dev/null
@@ -1,94 +0,0 @@
-import * as tslib_1 from "tslib";
-import { FaceDetectionWithLandmarks } from '../classes/FaceDetectionWithLandmarks';
-import { extractFaces } from '../dom';
-import { ComposableTask } from './ComposableTask';
-import { ComputeAllFaceDescriptorsTask, ComputeSingleFaceDescriptorTask } from './ComputeFaceDescriptorsTasks';
-import { nets } from './nets';
-var DetectFaceLandmarksTaskBase = /** @class */ (function (_super) {
- tslib_1.__extends(DetectFaceLandmarksTaskBase, _super);
- function DetectFaceLandmarksTaskBase(detectFacesTask, input, useTinyLandmarkNet) {
- var _this = _super.call(this) || this;
- _this.detectFacesTask = detectFacesTask;
- _this.input = input;
- _this.useTinyLandmarkNet = useTinyLandmarkNet;
- return _this;
- }
- Object.defineProperty(DetectFaceLandmarksTaskBase.prototype, "landmarkNet", {
- get: function () {
- return this.useTinyLandmarkNet
- ? nets.faceLandmark68TinyNet
- : nets.faceLandmark68Net;
- },
- enumerable: true,
- configurable: true
- });
- return DetectFaceLandmarksTaskBase;
-}(ComposableTask));
-export { DetectFaceLandmarksTaskBase };
-var DetectAllFaceLandmarksTask = /** @class */ (function (_super) {
- tslib_1.__extends(DetectAllFaceLandmarksTask, _super);
- function DetectAllFaceLandmarksTask() {
- return _super !== null && _super.apply(this, arguments) || this;
- }
- DetectAllFaceLandmarksTask.prototype.run = function () {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var _this = this;
- var detections, faceCanvases, faceLandmarksByFace;
- return tslib_1.__generator(this, function (_a) {
- switch (_a.label) {
- case 0: return [4 /*yield*/, this.detectFacesTask];
- case 1:
- detections = _a.sent();
- return [4 /*yield*/, extractFaces(this.input, detections)];
- case 2:
- faceCanvases = _a.sent();
- return [4 /*yield*/, Promise.all(faceCanvases.map(function (canvas) { return _this.landmarkNet.detectLandmarks(canvas); }))];
- case 3:
- faceLandmarksByFace = _a.sent();
- return [2 /*return*/, detections.map(function (detection, i) {
- return new FaceDetectionWithLandmarks(detection, faceLandmarksByFace[i]);
- })];
- }
- });
- });
- };
- DetectAllFaceLandmarksTask.prototype.withFaceDescriptors = function () {
- return new ComputeAllFaceDescriptorsTask(this, this.input);
- };
- return DetectAllFaceLandmarksTask;
-}(DetectFaceLandmarksTaskBase));
-export { DetectAllFaceLandmarksTask };
-var DetectSingleFaceLandmarksTask = /** @class */ (function (_super) {
- tslib_1.__extends(DetectSingleFaceLandmarksTask, _super);
- function DetectSingleFaceLandmarksTask() {
- return _super !== null && _super.apply(this, arguments) || this;
- }
- DetectSingleFaceLandmarksTask.prototype.run = function () {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var detection, faceCanvas, _a, _b;
- return tslib_1.__generator(this, function (_c) {
- switch (_c.label) {
- case 0: return [4 /*yield*/, this.detectFacesTask];
- case 1:
- detection = _c.sent();
- if (!detection) {
- return [2 /*return*/];
- }
- return [4 /*yield*/, extractFaces(this.input, [detection])];
- case 2:
- faceCanvas = (_c.sent())[0];
- _a = FaceDetectionWithLandmarks.bind;
- _b = [void 0, detection];
- return [4 /*yield*/, this.landmarkNet.detectLandmarks(faceCanvas)];
- case 3: return [2 /*return*/, new (_a.apply(FaceDetectionWithLandmarks, _b.concat([_c.sent()])))()];
- }
- });
- });
- };
- DetectSingleFaceLandmarksTask.prototype.withFaceDescriptor = function () {
- return new ComputeSingleFaceDescriptorTask(this, this.input);
- };
- return DetectSingleFaceLandmarksTask;
-}(DetectFaceLandmarksTaskBase));
-export { DetectSingleFaceLandmarksTask };
-//# sourceMappingURL=DetectFaceLandmarksTasks.js.map
\ No newline at end of file
diff --git a/build/es6/globalApi/DetectFaceLandmarksTasks.js.map b/build/es6/globalApi/DetectFaceLandmarksTasks.js.map
deleted file mode 100644
index 5cec0db3..00000000
--- a/build/es6/globalApi/DetectFaceLandmarksTasks.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"DetectFaceLandmarksTasks.js","sourceRoot":"","sources":["../../../src/globalApi/DetectFaceLandmarksTasks.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AAEnF,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,6BAA6B,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAC;AAC/G,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B;IAAoF,uDAA0B;IAC5G,qCACY,eAAuF,EACvF,KAAgB,EAChB,kBAA2B;QAHvC,YAKE,iBAAO,SACR;QALW,qBAAe,GAAf,eAAe,CAAwE;QACvF,WAAK,GAAL,KAAK,CAAW;QAChB,wBAAkB,GAAlB,kBAAkB,CAAS;;IAGvC,CAAC;IAED,sBAAc,oDAAW;aAAzB;YACE,OAAO,IAAI,CAAC,kBAAkB;gBAC5B,CAAC,CAAC,IAAI,CAAC,qBAAqB;gBAC5B,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAA;QAC5B,CAAC;;;OAAA;IACH,kCAAC;AAAD,CAAC,AAdD,CAAoF,cAAc,GAcjG;;AAED;IAAgD,sDAA0E;IAA1H;;IAmBA,CAAC;IAjBc,wCAAG,GAAhB;;;;;;4BAEqB,qBAAM,IAAI,CAAC,eAAe,EAAA;;wBAAvC,UAAU,GAAG,SAA0B;wBACxB,qBAAM,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,EAAA;;wBAAzD,YAAY,GAAG,SAA0C;wBAEnC,qBAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAC5D,UAAA,MAAM,IAAI,OAAA,KAAI,CAAC,WAAW,CAAC,eAAe,CAAC,MAAM,CAAC,EAAxC,CAAwC,CACnD,CAAC,EAAA;;wBAFI,mBAAmB,GAAG,SAEL;wBAEvB,sBAAO,UAAU,CAAC,GAAG,CAAC,UAAC,SAAS,EAAE,CAAC;gCACjC,OAAA,IAAI,0BAA0B,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;4BAAjE,CAAiE,CAClE,EAAA;;;;KACF;IAED,wDAAmB,GAAnB;QACE,OAAO,IAAI,6BAA6B,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;IAC5D,CAAC;IACH,iCAAC;AAAD,CAAC,AAnBD,CAAgD,2BAA2B,GAmB1E;;AAED;IAAmD,yDAA8F;IAAjJ;;IAmBA,CAAC;IAjBc,2CAAG,GAAhB;;;;;4BAEoB,qBAAM,IAAI,CAAC,eAAe,EAAA;;wBAAtC,SAAS,GAAG,SAA0B;wBAC5C,IAAI,CAAC,SAAS,EAAE;4BACd,sBAAM;yBACP;wBAEmB,qBAAM,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,CAAC,EAAA;;wBAAzD,UAAU,GAAG,CAAC,SAA2C,CAAC,CAAC,CAAC,CAAC;6BACxD,0BAA0B;sCACnC,SAAS;wBACT,qBAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,UAAU,CAAC,EAAA;4BAFpD,sBAAO,cAAI,0BAA0B,aAEnC,SAAqE,MACtE,EAAA;;;;KACF;IAED,0DAAkB,GAAlB;QACE,OAAO,IAAI,+BAA+B,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;IAC9D,CAAC;IACH,oCAAC;AAAD,CAAC,AAnBD,CAAmD,2BAA2B,GAmB7E"}
\ No newline at end of file
diff --git a/build/es6/globalApi/DetectFacesTasks.d.ts b/build/es6/globalApi/DetectFacesTasks.d.ts
deleted file mode 100644
index a0b73885..00000000
--- a/build/es6/globalApi/DetectFacesTasks.d.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import { TNetInput } from 'tfjs-image-recognition-base';
-import { FaceDetection } from '../classes/FaceDetection';
-import { ComposableTask } from './ComposableTask';
-import { DetectAllFaceLandmarksTask, DetectSingleFaceLandmarksTask } from './DetectFaceLandmarksTasks';
-import { FaceDetectionOptions } from './types';
-export declare class DetectFacesTaskBase extends ComposableTask {
- protected input: TNetInput;
- protected options: FaceDetectionOptions;
- constructor(input: TNetInput, options?: FaceDetectionOptions);
-}
-export declare class DetectAllFacesTask extends DetectFacesTaskBase {
- run(): Promise;
- withFaceLandmarks(useTinyLandmarkNet?: boolean): DetectAllFaceLandmarksTask;
-}
-export declare class DetectSingleFaceTask extends DetectFacesTaskBase {
- run(): Promise;
- withFaceLandmarks(useTinyLandmarkNet?: boolean): DetectSingleFaceLandmarksTask;
-}
diff --git a/build/es6/globalApi/DetectFacesTasks.js b/build/es6/globalApi/DetectFacesTasks.js
deleted file mode 100644
index d957f1cc..00000000
--- a/build/es6/globalApi/DetectFacesTasks.js
+++ /dev/null
@@ -1,83 +0,0 @@
-import * as tslib_1 from "tslib";
-import { TinyYolov2Options } from 'tfjs-tiny-yolov2';
-import { MtcnnOptions } from '../mtcnn/MtcnnOptions';
-import { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options';
-import { TinyFaceDetectorOptions } from '../tinyFaceDetector/TinyFaceDetectorOptions';
-import { ComposableTask } from './ComposableTask';
-import { DetectAllFaceLandmarksTask, DetectSingleFaceLandmarksTask } from './DetectFaceLandmarksTasks';
-import { nets } from './nets';
-var DetectFacesTaskBase = /** @class */ (function (_super) {
- tslib_1.__extends(DetectFacesTaskBase, _super);
- function DetectFacesTaskBase(input, options) {
- if (options === void 0) { options = new SsdMobilenetv1Options(); }
- var _this = _super.call(this) || this;
- _this.input = input;
- _this.options = options;
- return _this;
- }
- return DetectFacesTaskBase;
-}(ComposableTask));
-export { DetectFacesTaskBase };
-var DetectAllFacesTask = /** @class */ (function (_super) {
- tslib_1.__extends(DetectAllFacesTask, _super);
- function DetectAllFacesTask() {
- return _super !== null && _super.apply(this, arguments) || this;
- }
- DetectAllFacesTask.prototype.run = function () {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var _a, input, options, faceDetectionFunction;
- return tslib_1.__generator(this, function (_b) {
- switch (_b.label) {
- case 0:
- _a = this, input = _a.input, options = _a.options;
- if (!(options instanceof MtcnnOptions)) return [3 /*break*/, 2];
- return [4 /*yield*/, nets.mtcnn.forward(input, options)];
- case 1: return [2 /*return*/, (_b.sent())
- .map(function (result) { return result.faceDetection; })];
- case 2:
- faceDetectionFunction = options instanceof TinyFaceDetectorOptions
- ? function (input) { return nets.tinyFaceDetector.locateFaces(input, options); }
- : (options instanceof SsdMobilenetv1Options
- ? function (input) { return nets.ssdMobilenetv1.locateFaces(input, options); }
- : (options instanceof TinyYolov2Options
- ? function (input) { return nets.tinyYolov2.locateFaces(input, options); }
- : null));
- if (!faceDetectionFunction) {
- throw new Error('detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | MtcnnOptions | TinyYolov2Options');
- }
- return [2 /*return*/, faceDetectionFunction(input)];
- }
- });
- });
- };
- DetectAllFacesTask.prototype.withFaceLandmarks = function (useTinyLandmarkNet) {
- if (useTinyLandmarkNet === void 0) { useTinyLandmarkNet = false; }
- return new DetectAllFaceLandmarksTask(this, this.input, useTinyLandmarkNet);
- };
- return DetectAllFacesTask;
-}(DetectFacesTaskBase));
-export { DetectAllFacesTask };
-var DetectSingleFaceTask = /** @class */ (function (_super) {
- tslib_1.__extends(DetectSingleFaceTask, _super);
- function DetectSingleFaceTask() {
- return _super !== null && _super.apply(this, arguments) || this;
- }
- DetectSingleFaceTask.prototype.run = function () {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- return tslib_1.__generator(this, function (_a) {
- switch (_a.label) {
- case 0: return [4 /*yield*/, new DetectAllFacesTask(this.input, this.options)];
- case 1: return [2 /*return*/, (_a.sent())
- .sort(function (f1, f2) { return f1.score - f2.score; })[0]];
- }
- });
- });
- };
- DetectSingleFaceTask.prototype.withFaceLandmarks = function (useTinyLandmarkNet) {
- if (useTinyLandmarkNet === void 0) { useTinyLandmarkNet = false; }
- return new DetectSingleFaceLandmarksTask(this, this.input, useTinyLandmarkNet);
- };
- return DetectSingleFaceTask;
-}(DetectFacesTaskBase));
-export { DetectSingleFaceTask };
-//# sourceMappingURL=DetectFacesTasks.js.map
\ No newline at end of file
diff --git a/build/es6/globalApi/DetectFacesTasks.js.map b/build/es6/globalApi/DetectFacesTasks.js.map
deleted file mode 100644
index 50de31c5..00000000
--- a/build/es6/globalApi/DetectFacesTasks.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"DetectFacesTasks.js","sourceRoot":"","sources":["../../../src/globalApi/DetectFacesTasks.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/build/es6/globalApi/FaceMatcher.d.ts b/build/es6/globalApi/FaceMatcher.d.ts
deleted file mode 100644
index ea61bac1..00000000
--- a/build/es6/globalApi/FaceMatcher.d.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import { FaceMatch } from '../classes/FaceMatch';
-import { FullFaceDescription } from '../classes/FullFaceDescription';
-import { LabeledFaceDescriptors } from '../classes/LabeledFaceDescriptors';
-export declare class FaceMatcher {
- private _labeledDescriptors;
- private _distanceThreshold;
- constructor(inputs: LabeledFaceDescriptors | FullFaceDescription | Float32Array | Array, distanceThreshold?: number);
- readonly labeledDescriptors: LabeledFaceDescriptors[];
- readonly distanceThreshold: number;
- computeMeanDistance(queryDescriptor: Float32Array, descriptors: Float32Array[]): number;
- matchDescriptor(queryDescriptor: Float32Array): FaceMatch;
- findBestMatch(queryDescriptor: Float32Array): FaceMatch;
-}
diff --git a/build/es6/globalApi/FaceMatcher.js b/build/es6/globalApi/FaceMatcher.js
deleted file mode 100644
index 0e361205..00000000
--- a/build/es6/globalApi/FaceMatcher.js
+++ /dev/null
@@ -1,62 +0,0 @@
-import { FaceMatch } from '../classes/FaceMatch';
-import { FullFaceDescription } from '../classes/FullFaceDescription';
-import { LabeledFaceDescriptors } from '../classes/LabeledFaceDescriptors';
-import { euclideanDistance } from '../euclideanDistance';
-var FaceMatcher = /** @class */ (function () {
- function FaceMatcher(inputs, distanceThreshold) {
- if (distanceThreshold === void 0) { distanceThreshold = 0.6; }
- this._distanceThreshold = distanceThreshold;
- var inputArray = Array.isArray(inputs) ? inputs : [inputs];
- if (!inputArray.length) {
- throw new Error("FaceRecognizer.constructor - expected atleast one input");
- }
- var count = 1;
- var createUniqueLabel = function () { return "person " + count++; };
- this._labeledDescriptors = inputArray.map(function (desc) {
- if (desc instanceof LabeledFaceDescriptors) {
- return desc;
- }
- if (desc instanceof FullFaceDescription) {
- return new LabeledFaceDescriptors(createUniqueLabel(), [desc.descriptor]);
- }
- if (desc instanceof Float32Array) {
- return new LabeledFaceDescriptors(createUniqueLabel(), [desc]);
- }
- throw new Error("FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | FullFaceDescription | Float32Array | Array");
- });
- }
- Object.defineProperty(FaceMatcher.prototype, "labeledDescriptors", {
- get: function () { return this._labeledDescriptors; },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(FaceMatcher.prototype, "distanceThreshold", {
- get: function () { return this._distanceThreshold; },
- enumerable: true,
- configurable: true
- });
- FaceMatcher.prototype.computeMeanDistance = function (queryDescriptor, descriptors) {
- return descriptors
- .map(function (d) { return euclideanDistance(d, queryDescriptor); })
- .reduce(function (d1, d2) { return d1 + d2; }, 0)
- / (descriptors.length || 1);
- };
- FaceMatcher.prototype.matchDescriptor = function (queryDescriptor) {
- var _this = this;
- return this.labeledDescriptors
- .map(function (_a) {
- var descriptors = _a.descriptors, label = _a.label;
- return new FaceMatch(label, _this.computeMeanDistance(queryDescriptor, descriptors));
- })
- .reduce(function (best, curr) { return best.distance < curr.distance ? best : curr; });
- };
- FaceMatcher.prototype.findBestMatch = function (queryDescriptor) {
- var bestMatch = this.matchDescriptor(queryDescriptor);
- return bestMatch.distance < this.distanceThreshold
- ? bestMatch
- : new FaceMatch('unknown', bestMatch.distance);
- };
- return FaceMatcher;
-}());
-export { FaceMatcher };
-//# sourceMappingURL=FaceMatcher.js.map
\ No newline at end of file
diff --git a/build/es6/globalApi/FaceMatcher.js.map b/build/es6/globalApi/FaceMatcher.js.map
deleted file mode 100644
index a1b4f3ac..00000000
--- a/build/es6/globalApi/FaceMatcher.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"FaceMatcher.js","sourceRoot":"","sources":["../../../src/globalApi/FaceMatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD;IAKE,qBACE,MAAwI,EACxI,iBAA+B;QAA/B,kCAAA,EAAA,uBAA+B;QAG/B,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAA;QAE3C,IAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;QAE5D,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAA;SAC3E;QAED,IAAI,KAAK,GAAG,CAAC,CAAA;QACb,IAAM,iBAAiB,GAAG,cAAM,OAAA,YAAU,KAAK,EAAI,EAAnB,CAAmB,CAAA;QAEnD,IAAI,CAAC,mBAAmB,GAAG,UAAU,CAAC,GAAG,CAAC,UAAC,IAAI;YAC7C,IAAI,IAAI,YAAY,sBAAsB,EAAE;gBAC1C,OAAO,IAAI,CAAA;aACZ;YAED,IAAI,IAAI,YAAY,mBAAmB,EAAE;gBACvC,OAAO,IAAI,sBAAsB,CAAC,iBAAiB,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAA;aAC1E;YAED,IAAI,IAAI,YAAY,YAAY,EAAE;gBAChC,OAAO,IAAI,sBAAsB,CAAC,iBAAiB,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;aAC/D;YAED,MAAM,IAAI,KAAK,CAAC,6LAA6L,CAAC,CAAA;QAChN,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,sBAAW,2CAAkB;aAA7B,cAA4D,OAAO,IAAI,CAAC,mBAAmB,CAAA,CAAC,CAAC;;;OAAA;IAC7F,sBAAW,0CAAiB;aAA5B,cAAyC,OAAO,IAAI,CAAC,kBAAkB,CAAA,CAAC,CAAC;;;OAAA;IAElE,yCAAmB,GAA1B,UAA2B,eAA6B,EAAE,WAA2B;QACnF,OAAO,WAAW;aACf,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,iBAAiB,CAAC,CAAC,EAAE,eAAe,CAAC,EAArC,CAAqC,CAAC;aAC/C,MAAM,CAAC,UAAC,EAAE,EAAE,EAAE,IAAK,OAAA,EAAE,GAAG,EAAE,EAAP,CAAO,EAAE,CAAC,CAAC;cAC3B,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,CAAC,CAAA;IACjC,CAAC;IAEM,qCAAe,GAAtB,UAAuB,eAA6B;QAApD,iBAOC;QANC,OAAO,IAAI,CAAC,kBAAkB;aAC3B,GAAG,CAAC,UAAC,EAAsB;gBAApB,4BAAW,EAAE,gBAAK;YAAO,OAAA,IAAI,SAAS,CAC1C,KAAK,EACL,KAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE,WAAW,CAAC,CACzD;QAHgC,CAGhC,CAAC;aACD,MAAM,CAAC,UAAC,IAAI,EAAE,IAAI,IAAK,OAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAA3C,CAA2C,CAAC,CAAA;IACxE,CAAC;IAEM,mCAAa,GAApB,UAAqB,eAA6B;QAChD,IAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAA;QACvD,OAAO,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB;YAChD,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,IAAI,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAA;IAClD,CAAC;IAEH,kBAAC;AAAD,CAAC,AAhED,IAgEC"}
\ No newline at end of file
diff --git a/build/es6/globalApi/allFaces.d.ts b/build/es6/globalApi/allFaces.d.ts
deleted file mode 100644
index 7c682877..00000000
--- a/build/es6/globalApi/allFaces.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { TNetInput } from 'tfjs-image-recognition-base';
-import { ITinyYolov2Options } from 'tfjs-tiny-yolov2';
-import { FullFaceDescription } from '../classes';
-import { IMtcnnOptions } from '../mtcnn/MtcnnOptions';
-export declare function allFacesSsdMobilenetv1(input: TNetInput, minConfidence?: number): Promise;
-export declare function allFacesTinyYolov2(input: TNetInput, forwardParams?: ITinyYolov2Options): Promise;
-export declare function allFacesMtcnn(input: TNetInput, forwardParams?: IMtcnnOptions): Promise;
-export declare const allFaces: typeof allFacesSsdMobilenetv1;
diff --git a/build/es6/globalApi/allFaces.js b/build/es6/globalApi/allFaces.js
deleted file mode 100644
index 18d45da4..00000000
--- a/build/es6/globalApi/allFaces.js
+++ /dev/null
@@ -1,46 +0,0 @@
-import * as tslib_1 from "tslib";
-import { TinyYolov2Options } from 'tfjs-tiny-yolov2';
-import { MtcnnOptions } from '../mtcnn/MtcnnOptions';
-import { SsdMobilenetv1Options } from '../ssdMobilenetv1';
-import { detectAllFaces } from './detectFaces';
-// export allFaces API for backward compatibility
-export function allFacesSsdMobilenetv1(input, minConfidence) {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- return tslib_1.__generator(this, function (_a) {
- switch (_a.label) {
- case 0: return [4 /*yield*/, detectAllFaces(input, new SsdMobilenetv1Options(minConfidence ? { minConfidence: minConfidence } : {}))
- .withFaceLandmarks()
- .withFaceDescriptors()];
- case 1: return [2 /*return*/, _a.sent()];
- }
- });
- });
-}
-export function allFacesTinyYolov2(input, forwardParams) {
- if (forwardParams === void 0) { forwardParams = {}; }
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- return tslib_1.__generator(this, function (_a) {
- switch (_a.label) {
- case 0: return [4 /*yield*/, detectAllFaces(input, new TinyYolov2Options(forwardParams))
- .withFaceLandmarks()
- .withFaceDescriptors()];
- case 1: return [2 /*return*/, _a.sent()];
- }
- });
- });
-}
-export function allFacesMtcnn(input, forwardParams) {
- if (forwardParams === void 0) { forwardParams = {}; }
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- return tslib_1.__generator(this, function (_a) {
- switch (_a.label) {
- case 0: return [4 /*yield*/, detectAllFaces(input, new MtcnnOptions(forwardParams))
- .withFaceLandmarks()
- .withFaceDescriptors()];
- case 1: return [2 /*return*/, _a.sent()];
- }
- });
- });
-}
-export var allFaces = allFacesSsdMobilenetv1;
-//# sourceMappingURL=allFaces.js.map
\ No newline at end of file
diff --git a/build/es6/globalApi/allFaces.js.map b/build/es6/globalApi/allFaces.js.map
deleted file mode 100644
index 31be8fb4..00000000
--- a/build/es6/globalApi/allFaces.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"allFaces.js","sourceRoot":"","sources":["../../../src/globalApi/allFaces.ts"],"names":[],"mappings":";AACA,OAAO,EAAsB,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGzE,OAAO,EAAiB,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,iDAAiD;AAEjD,MAAM,iCACJ,KAAgB,EAChB,aAAsB;;;;wBAEf,qBAAM,cAAc,CAAC,KAAK,EAAE,IAAI,qBAAqB,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,eAAA,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;yBAClG,iBAAiB,EAAE;yBACnB,mBAAmB,EAAE,EAAA;wBAFxB,sBAAO,SAEiB,EAAA;;;;CACzB;AAED,MAAM,6BACJ,KAAgB,EAChB,aAAsC;IAAtC,8BAAA,EAAA,kBAAsC;;;;wBAE/B,qBAAM,cAAc,CAAC,KAAK,EAAE,IAAI,iBAAiB,CAAC,aAAa,CAAC,CAAC;yBACrE,iBAAiB,EAAE;yBACnB,mBAAmB,EAAE,EAAA;wBAFxB,sBAAO,SAEiB,EAAA;;;;CACzB;AAED,MAAM,wBACJ,KAAgB,EAChB,aAAiC;IAAjC,8BAAA,EAAA,kBAAiC;;;;wBAE1B,qBAAM,cAAc,CAAC,KAAK,EAAE,IAAI,YAAY,CAAC,aAAa,CAAC,CAAC;yBAChE,iBAAiB,EAAE;yBACnB,mBAAmB,EAAE,EAAA;wBAFxB,sBAAO,SAEiB,EAAA;;;;CACzB;AAED,MAAM,CAAC,IAAM,QAAQ,GAAG,sBAAsB,CAAA"}
\ No newline at end of file
diff --git a/build/es6/globalApi/detectFaces.d.ts b/build/es6/globalApi/detectFaces.d.ts
deleted file mode 100644
index d1091c32..00000000
--- a/build/es6/globalApi/detectFaces.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import { TNetInput } from 'tfjs-image-recognition-base';
-import { DetectAllFacesTask, DetectSingleFaceTask } from './DetectFacesTasks';
-import { FaceDetectionOptions } from './types';
-export declare function detectSingleFace(input: TNetInput, options?: FaceDetectionOptions): DetectSingleFaceTask;
-export declare function detectAllFaces(input: TNetInput, options?: FaceDetectionOptions): DetectAllFacesTask;
diff --git a/build/es6/globalApi/detectFaces.js b/build/es6/globalApi/detectFaces.js
deleted file mode 100644
index be82c34b..00000000
--- a/build/es6/globalApi/detectFaces.js
+++ /dev/null
@@ -1,11 +0,0 @@
-import { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options';
-import { DetectAllFacesTask, DetectSingleFaceTask } from './DetectFacesTasks';
-export function detectSingleFace(input, options) {
- if (options === void 0) { options = new SsdMobilenetv1Options(); }
- return new DetectSingleFaceTask(input, options);
-}
-export function detectAllFaces(input, options) {
- if (options === void 0) { options = new SsdMobilenetv1Options(); }
- return new DetectAllFacesTask(input, options);
-}
-//# sourceMappingURL=detectFaces.js.map
\ No newline at end of file
diff --git a/build/es6/globalApi/detectFaces.js.map b/build/es6/globalApi/detectFaces.js.map
deleted file mode 100644
index 86a9c5e9..00000000
--- a/build/es6/globalApi/detectFaces.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"detectFaces.js","sourceRoot":"","sources":["../../../src/globalApi/detectFaces.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAG9E,MAAM,2BACJ,KAAgB,EAChB,OAA2D;IAA3D,wBAAA,EAAA,cAAoC,qBAAqB,EAAE;IAE3D,OAAO,IAAI,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;AACjD,CAAC;AAED,MAAM,yBACJ,KAAgB,EAChB,OAA2D;IAA3D,wBAAA,EAAA,cAAoC,qBAAqB,EAAE;IAE3D,OAAO,IAAI,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;AAC/C,CAAC"}
\ No newline at end of file
diff --git a/build/es6/globalApi/index.d.ts b/build/es6/globalApi/index.d.ts
deleted file mode 100644
index de0e0c09..00000000
--- a/build/es6/globalApi/index.d.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-export * from './allFaces';
-export * from './ComposableTask';
-export * from './ComputeFaceDescriptorsTasks';
-export * from './detectFaces';
-export * from './DetectFacesTasks';
-export * from './DetectFaceLandmarksTasks';
-export * from './FaceMatcher';
-export * from './nets';
-export * from './types';
diff --git a/build/es6/globalApi/index.js b/build/es6/globalApi/index.js
deleted file mode 100644
index 5fd55601..00000000
--- a/build/es6/globalApi/index.js
+++ /dev/null
@@ -1,9 +0,0 @@
-export * from './allFaces';
-export * from './ComposableTask';
-export * from './ComputeFaceDescriptorsTasks';
-export * from './detectFaces';
-export * from './DetectFacesTasks';
-export * from './DetectFaceLandmarksTasks';
-export * from './FaceMatcher';
-export * from './nets';
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/build/es6/globalApi/index.js.map b/build/es6/globalApi/index.js.map
deleted file mode 100644
index 94fa9775..00000000
--- a/build/es6/globalApi/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/globalApi/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA;AAClC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,eAAe,CAAA;AAC7B,cAAc,QAAQ,CAAA"}
\ No newline at end of file
diff --git a/build/es6/globalApi/nets.d.ts b/build/es6/globalApi/nets.d.ts
deleted file mode 100644
index bd264f40..00000000
--- a/build/es6/globalApi/nets.d.ts
+++ /dev/null
@@ -1,97 +0,0 @@
-import { TNetInput } from 'tfjs-image-recognition-base';
-import { ITinyYolov2Options } from 'tfjs-tiny-yolov2';
-import { FaceDetection } from '../classes/FaceDetection';
-import { FaceDetectionWithLandmarks } from '../classes/FaceDetectionWithLandmarks';
-import { FaceLandmarks5 } from '../classes/FaceLandmarks5';
-import { FaceLandmarks68 } from '../classes/FaceLandmarks68';
-import { FaceLandmark68Net } from '../faceLandmarkNet/FaceLandmark68Net';
-import { FaceLandmark68TinyNet } from '../faceLandmarkNet/FaceLandmark68TinyNet';
-import { FaceRecognitionNet } from '../faceRecognitionNet/FaceRecognitionNet';
-import { Mtcnn } from '../mtcnn/Mtcnn';
-import { MtcnnOptions } from '../mtcnn/MtcnnOptions';
-import { SsdMobilenetv1 } from '../ssdMobilenetv1/SsdMobilenetv1';
-import { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options';
-import { TinyFaceDetector } from '../tinyFaceDetector/TinyFaceDetector';
-import { TinyFaceDetectorOptions } from '../tinyFaceDetector/TinyFaceDetectorOptions';
-import { TinyYolov2 } from '../tinyYolov2/TinyYolov2';
-export declare const nets: {
- ssdMobilenetv1: SsdMobilenetv1;
- tinyFaceDetector: TinyFaceDetector;
- tinyYolov2: TinyYolov2;
- mtcnn: Mtcnn;
- faceLandmark68Net: FaceLandmark68Net;
- faceLandmark68TinyNet: FaceLandmark68TinyNet;
- faceRecognitionNet: FaceRecognitionNet;
-};
-/**
- * Attempts to detect all faces in an image using SSD Mobilenetv1 Network.
- *
- * @param input The input image.
- * @param options (optional, default: see SsdMobilenetv1Options constructor for default parameters).
- * @returns Bounding box of each face with score.
- */
-export declare const ssdMobilenetv1: (input: TNetInput, options: SsdMobilenetv1Options) => Promise;
-/**
- * Attempts to detect all faces in an image using the Tiny Face Detector.
- *
- * @param input The input image.
- * @param options (optional, default: see TinyFaceDetectorOptions constructor for default parameters).
- * @returns Bounding box of each face with score.
- */
-export declare const tinyFaceDetector: (input: TNetInput, options: TinyFaceDetectorOptions) => Promise;
-/**
- * Attempts to detect all faces in an image using the Tiny Yolov2 Network.
- *
- * @param input The input image.
- * @param options (optional, default: see TinyYolov2Options constructor for default parameters).
- * @returns Bounding box of each face with score.
- */
-export declare const tinyYolov2: (input: TNetInput, options: ITinyYolov2Options) => Promise;
-/**
- * Attempts to detect all faces in an image and the 5 point face landmarks
- * of each detected face using the MTCNN Network.
- *
- * @param input The input image.
- * @param options (optional, default: see MtcnnOptions constructor for default parameters).
- * @returns Bounding box of each face with score and 5 point face landmarks.
- */
-export declare const mtcnn: (input: TNetInput, options: MtcnnOptions) => Promise[]>;
-/**
- * Detects the 68 point face landmark positions of the face shown in an image.
- *
- * @param inputs The face image extracted from the bounding box of a face. Can
- * also be an array of input images, which will be batch processed.
- * @returns 68 point face landmarks or array thereof in case of batch input.
- */
-export declare const detectFaceLandmarks: (input: TNetInput) => Promise;
-/**
- * Detects the 68 point face landmark positions of the face shown in an image
- * using a tinier version of the 68 point face landmark model, which is slightly
- * faster at inference, but also slightly less accurate.
- *
- * @param inputs The face image extracted from the bounding box of a face. Can
- * also be an array of input images, which will be batch processed.
- * @returns 68 point face landmarks or array thereof in case of batch input.
- */
-export declare const detectFaceLandmarksTiny: (input: TNetInput) => Promise;
-/**
- * Computes a 128 entry vector (face descriptor / face embeddings) from the face shown in an image,
- * which uniquely represents the features of that persons face. The computed face descriptor can
- * be used to measure the similarity between faces, by computing the euclidean distance of two
- * face descriptors.
- *
- * @param inputs The face image extracted from the aligned bounding box of a face. Can
- * also be an array of input images, which will be batch processed.
- * @returns Face descriptor with 128 entries or array thereof in case of batch input.
- */
-export declare const computeFaceDescriptor: (input: TNetInput) => Promise;
-export declare const loadSsdMobilenetv1Model: (url: string) => Promise;
-export declare const loadTinyFaceDetectorModel: (url: string) => Promise;
-export declare const loadMtcnnModel: (url: string) => Promise;
-export declare const loadTinyYolov2Model: (url: string) => Promise;
-export declare const loadFaceLandmarkModel: (url: string) => Promise;
-export declare const loadFaceLandmarkTinyModel: (url: string) => Promise;
-export declare const loadFaceRecognitionModel: (url: string) => Promise;
-export declare const loadFaceDetectionModel: (url: string) => Promise;
-export declare const locateFaces: (input: TNetInput, options: SsdMobilenetv1Options) => Promise;
-export declare const detectLandmarks: (input: TNetInput) => Promise;
diff --git a/build/es6/globalApi/nets.js b/build/es6/globalApi/nets.js
deleted file mode 100644
index 445d08de..00000000
--- a/build/es6/globalApi/nets.js
+++ /dev/null
@@ -1,104 +0,0 @@
-import { FaceLandmark68Net } from '../faceLandmarkNet/FaceLandmark68Net';
-import { FaceLandmark68TinyNet } from '../faceLandmarkNet/FaceLandmark68TinyNet';
-import { FaceRecognitionNet } from '../faceRecognitionNet/FaceRecognitionNet';
-import { Mtcnn } from '../mtcnn/Mtcnn';
-import { SsdMobilenetv1 } from '../ssdMobilenetv1/SsdMobilenetv1';
-import { TinyFaceDetector } from '../tinyFaceDetector/TinyFaceDetector';
-import { TinyYolov2 } from '../tinyYolov2/TinyYolov2';
-export var nets = {
- ssdMobilenetv1: new SsdMobilenetv1(),
- tinyFaceDetector: new TinyFaceDetector(),
- tinyYolov2: new TinyYolov2(),
- mtcnn: new Mtcnn(),
- faceLandmark68Net: new FaceLandmark68Net(),
- faceLandmark68TinyNet: new FaceLandmark68TinyNet(),
- faceRecognitionNet: new FaceRecognitionNet()
-};
-/**
- * Attempts to detect all faces in an image using SSD Mobilenetv1 Network.
- *
- * @param input The input image.
- * @param options (optional, default: see SsdMobilenetv1Options constructor for default parameters).
- * @returns Bounding box of each face with score.
- */
-export var ssdMobilenetv1 = function (input, options) {
- return nets.ssdMobilenetv1.locateFaces(input, options);
-};
-/**
- * Attempts to detect all faces in an image using the Tiny Face Detector.
- *
- * @param input The input image.
- * @param options (optional, default: see TinyFaceDetectorOptions constructor for default parameters).
- * @returns Bounding box of each face with score.
- */
-export var tinyFaceDetector = function (input, options) {
- return nets.tinyFaceDetector.locateFaces(input, options);
-};
-/**
- * Attempts to detect all faces in an image using the Tiny Yolov2 Network.
- *
- * @param input The input image.
- * @param options (optional, default: see TinyYolov2Options constructor for default parameters).
- * @returns Bounding box of each face with score.
- */
-export var tinyYolov2 = function (input, options) {
- return nets.tinyYolov2.locateFaces(input, options);
-};
-/**
- * Attempts to detect all faces in an image and the 5 point face landmarks
- * of each detected face using the MTCNN Network.
- *
- * @param input The input image.
- * @param options (optional, default: see MtcnnOptions constructor for default parameters).
- * @returns Bounding box of each face with score and 5 point face landmarks.
- */
-export var mtcnn = function (input, options) {
- return nets.mtcnn.forward(input, options);
-};
-/**
- * Detects the 68 point face landmark positions of the face shown in an image.
- *
- * @param inputs The face image extracted from the bounding box of a face. Can
- * also be an array of input images, which will be batch processed.
- * @returns 68 point face landmarks or array thereof in case of batch input.
- */
-export var detectFaceLandmarks = function (input) {
- return nets.faceLandmark68Net.detectLandmarks(input);
-};
-/**
- * Detects the 68 point face landmark positions of the face shown in an image
- * using a tinier version of the 68 point face landmark model, which is slightly
- * faster at inference, but also slightly less accurate.
- *
- * @param inputs The face image extracted from the bounding box of a face. Can
- * also be an array of input images, which will be batch processed.
- * @returns 68 point face landmarks or array thereof in case of batch input.
- */
-export var detectFaceLandmarksTiny = function (input) {
- return nets.faceLandmark68TinyNet.detectLandmarks(input);
-};
-/**
- * Computes a 128 entry vector (face descriptor / face embeddings) from the face shown in an image,
- * which uniquely represents the features of that persons face. The computed face descriptor can
- * be used to measure the similarity between faces, by computing the euclidean distance of two
- * face descriptors.
- *
- * @param inputs The face image extracted from the aligned bounding box of a face. Can
- * also be an array of input images, which will be batch processed.
- * @returns Face descriptor with 128 entries or array thereof in case of batch input.
- */
-export var computeFaceDescriptor = function (input) {
- return nets.faceRecognitionNet.computeFaceDescriptor(input);
-};
-export var loadSsdMobilenetv1Model = function (url) { return nets.ssdMobilenetv1.load(url); };
-export var loadTinyFaceDetectorModel = function (url) { return nets.tinyFaceDetector.load(url); };
-export var loadMtcnnModel = function (url) { return nets.mtcnn.load(url); };
-export var loadTinyYolov2Model = function (url) { return nets.tinyYolov2.load(url); };
-export var loadFaceLandmarkModel = function (url) { return nets.faceLandmark68Net.load(url); };
-export var loadFaceLandmarkTinyModel = function (url) { return nets.faceLandmark68TinyNet.load(url); };
-export var loadFaceRecognitionModel = function (url) { return nets.faceRecognitionNet.load(url); };
-// backward compatibility
-export var loadFaceDetectionModel = loadSsdMobilenetv1Model;
-export var locateFaces = ssdMobilenetv1;
-export var detectLandmarks = detectFaceLandmarks;
-//# sourceMappingURL=nets.js.map
\ No newline at end of file
diff --git a/build/es6/globalApi/nets.js.map b/build/es6/globalApi/nets.js.map
deleted file mode 100644
index 1ea47ec1..00000000
--- a/build/es6/globalApi/nets.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"nets.js","sourceRoot":"","sources":["../../../src/globalApi/nets.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/build/es6/globalApi/types.d.ts b/build/es6/globalApi/types.d.ts
deleted file mode 100644
index 085925da..00000000
--- a/build/es6/globalApi/types.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { TNetInput } from 'tfjs-image-recognition-base';
-import { TinyYolov2Options } from 'tfjs-tiny-yolov2';
-import { FaceDetection } from '../classes/FaceDetection';
-import { MtcnnOptions } from '../mtcnn/MtcnnOptions';
-import { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options';
-import { TinyFaceDetectorOptions } from '../tinyFaceDetector/TinyFaceDetectorOptions';
-export declare type FaceDetectionOptions = TinyFaceDetectorOptions | SsdMobilenetv1Options | MtcnnOptions | TinyYolov2Options;
-export declare type FaceDetectionFunction = (input: TNetInput) => Promise;
diff --git a/build/es6/globalApi/types.js b/build/es6/globalApi/types.js
deleted file mode 100644
index 5b2306a4..00000000
--- a/build/es6/globalApi/types.js
+++ /dev/null
@@ -1 +0,0 @@
-//# sourceMappingURL=types.js.map
\ No newline at end of file
diff --git a/build/es6/globalApi/types.js.map b/build/es6/globalApi/types.js.map
deleted file mode 100644
index e079214c..00000000
--- a/build/es6/globalApi/types.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/globalApi/types.ts"],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/build/es6/index.d.ts b/build/es6/index.d.ts
deleted file mode 100644
index c7b129b4..00000000
--- a/build/es6/index.d.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-export { tf };
-export * from 'tfjs-image-recognition-base';
-export * from './classes/index';
-export * from './dom/index';
-export * from './faceLandmarkNet/index';
-export * from './faceRecognitionNet/index';
-export * from './globalApi/index';
-export * from './mtcnn/index';
-export * from './ssdMobilenetv1/index';
-export * from './tinyFaceDetector/index';
-export * from './tinyYolov2/index';
-export * from './euclideanDistance';
diff --git a/build/es6/index.js b/build/es6/index.js
deleted file mode 100644
index 91d0aa52..00000000
--- a/build/es6/index.js
+++ /dev/null
@@ -1,14 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-export { tf };
-export * from 'tfjs-image-recognition-base';
-export * from './classes/index';
-export * from './dom/index';
-export * from './faceLandmarkNet/index';
-export * from './faceRecognitionNet/index';
-export * from './globalApi/index';
-export * from './mtcnn/index';
-export * from './ssdMobilenetv1/index';
-export * from './tinyFaceDetector/index';
-export * from './tinyYolov2/index';
-export * from './euclideanDistance';
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/build/es6/index.js.map b/build/es6/index.js.map
deleted file mode 100644
index 943f6bbd..00000000
--- a/build/es6/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EACL,EAAE,EACH,CAAA;AAED,cAAc,6BAA6B,CAAC;AAE5C,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AAEnC,cAAc,qBAAqB,CAAC"}
\ No newline at end of file
diff --git a/build/es6/mtcnn/Mtcnn.d.ts b/build/es6/mtcnn/Mtcnn.d.ts
deleted file mode 100644
index 68215c54..00000000
--- a/build/es6/mtcnn/Mtcnn.d.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-import { NetInput, NeuralNetwork, TNetInput } from 'tfjs-image-recognition-base';
-import { FaceDetectionWithLandmarks } from '../classes/FaceDetectionWithLandmarks';
-import { FaceLandmarks5 } from '../classes/FaceLandmarks5';
-import { IMtcnnOptions } from './MtcnnOptions';
-import { NetParams } from './types';
-export declare class Mtcnn extends NeuralNetwork {
- constructor();
- forwardInput(input: NetInput, forwardParams?: IMtcnnOptions): Promise<{
- results: FaceDetectionWithLandmarks[];
- stats: any;
- }>;
- forward(input: TNetInput, forwardParams?: IMtcnnOptions): Promise[]>;
- forwardWithStats(input: TNetInput, forwardParams?: IMtcnnOptions): Promise<{
- results: FaceDetectionWithLandmarks[];
- stats: any;
- }>;
- protected loadQuantizedParams(uri: string | undefined): Promise<{
- params: NetParams;
- paramMappings: {
- originalPath?: string | undefined;
- paramPath: string;
- }[];
- }>;
- protected extractParams(weights: Float32Array): {
- params: NetParams;
- paramMappings: {
- originalPath?: string | undefined;
- paramPath: string;
- }[];
- };
-}
diff --git a/build/es6/mtcnn/Mtcnn.js b/build/es6/mtcnn/Mtcnn.js
deleted file mode 100644
index 1e59661f..00000000
--- a/build/es6/mtcnn/Mtcnn.js
+++ /dev/null
@@ -1,133 +0,0 @@
-import * as tslib_1 from "tslib";
-import * as tf from '@tensorflow/tfjs-core';
-import { NeuralNetwork, Point, Rect, toNetInput } from 'tfjs-image-recognition-base';
-import { FaceDetection } from '../classes/FaceDetection';
-import { FaceDetectionWithLandmarks } from '../classes/FaceDetectionWithLandmarks';
-import { FaceLandmarks5 } from '../classes/FaceLandmarks5';
-import { bgrToRgbTensor } from './bgrToRgbTensor';
-import { CELL_SIZE } from './config';
-import { extractParams } from './extractParams';
-import { getSizesForScale } from './getSizesForScale';
-import { loadQuantizedParams } from './loadQuantizedParams';
-import { MtcnnOptions } from './MtcnnOptions';
-import { pyramidDown } from './pyramidDown';
-import { stage1 } from './stage1';
-import { stage2 } from './stage2';
-import { stage3 } from './stage3';
-var Mtcnn = /** @class */ (function (_super) {
- tslib_1.__extends(Mtcnn, _super);
- function Mtcnn() {
- return _super.call(this, 'Mtcnn') || this;
- }
- Mtcnn.prototype.forwardInput = function (input, forwardParams) {
- if (forwardParams === void 0) { forwardParams = {}; }
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var params, inputCanvas, stats, tsTotal, imgTensor, onReturn, _a, height, width, _b, minFaceSize, scaleFactor, maxNumScales, scoreThresholds, scaleSteps, scales, ts, out1, out2, out3, results;
- return tslib_1.__generator(this, function (_c) {
- switch (_c.label) {
- case 0:
- params = this.params;
- if (!params) {
- throw new Error('Mtcnn - load model before inference');
- }
- inputCanvas = input.canvases[0];
- if (!inputCanvas) {
- throw new Error('Mtcnn - inputCanvas is not defined, note that passing tensors into Mtcnn.forwardInput is not supported yet.');
- }
- stats = {};
- tsTotal = Date.now();
- imgTensor = tf.tidy(function () {
- return bgrToRgbTensor(tf.expandDims(tf.fromPixels(inputCanvas)).toFloat());
- });
- onReturn = function (results) {
- // dispose tensors on return
- imgTensor.dispose();
- stats.total = Date.now() - tsTotal;
- return results;
- };
- _a = imgTensor.shape.slice(1), height = _a[0], width = _a[1];
- _b = new MtcnnOptions(forwardParams), minFaceSize = _b.minFaceSize, scaleFactor = _b.scaleFactor, maxNumScales = _b.maxNumScales, scoreThresholds = _b.scoreThresholds, scaleSteps = _b.scaleSteps;
- scales = (scaleSteps || pyramidDown(minFaceSize, scaleFactor, [height, width]))
- .filter(function (scale) {
- var sizes = getSizesForScale(scale, [height, width]);
- return Math.min(sizes.width, sizes.height) > CELL_SIZE;
- })
- .slice(0, maxNumScales);
- stats.scales = scales;
- stats.pyramid = scales.map(function (scale) { return getSizesForScale(scale, [height, width]); });
- ts = Date.now();
- return [4 /*yield*/, stage1(imgTensor, scales, scoreThresholds[0], params.pnet, stats)];
- case 1:
- out1 = _c.sent();
- stats.total_stage1 = Date.now() - ts;
- if (!out1.boxes.length) {
- return [2 /*return*/, onReturn({ results: [], stats: stats })];
- }
- stats.stage2_numInputBoxes = out1.boxes.length;
- // using the inputCanvas to extract and resize the image patches, since it is faster
- // than doing this on the gpu
- ts = Date.now();
- return [4 /*yield*/, stage2(inputCanvas, out1.boxes, scoreThresholds[1], params.rnet, stats)];
- case 2:
- out2 = _c.sent();
- stats.total_stage2 = Date.now() - ts;
- if (!out2.boxes.length) {
- return [2 /*return*/, onReturn({ results: [], stats: stats })];
- }
- stats.stage3_numInputBoxes = out2.boxes.length;
- ts = Date.now();
- return [4 /*yield*/, stage3(inputCanvas, out2.boxes, scoreThresholds[2], params.onet, stats)];
- case 3:
- out3 = _c.sent();
- stats.total_stage3 = Date.now() - ts;
- results = out3.boxes.map(function (box, idx) { return new FaceDetectionWithLandmarks(new FaceDetection(out3.scores[idx], new Rect(box.left / width, box.top / height, box.width / width, box.height / height), {
- height: height,
- width: width
- }), new FaceLandmarks5(out3.points[idx].map(function (pt) { return pt.sub(new Point(box.left, box.top)).div(new Point(box.width, box.height)); }), { width: box.width, height: box.height })); });
- return [2 /*return*/, onReturn({ results: results, stats: stats })];
- }
- });
- });
- };
- Mtcnn.prototype.forward = function (input, forwardParams) {
- if (forwardParams === void 0) { forwardParams = {}; }
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var _a;
- return tslib_1.__generator(this, function (_b) {
- switch (_b.label) {
- case 0:
- _a = this.forwardInput;
- return [4 /*yield*/, toNetInput(input)];
- case 1: return [4 /*yield*/, _a.apply(this, [_b.sent(),
- forwardParams])];
- case 2: return [2 /*return*/, (_b.sent()).results];
- }
- });
- });
- };
- Mtcnn.prototype.forwardWithStats = function (input, forwardParams) {
- if (forwardParams === void 0) { forwardParams = {}; }
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var _a;
- return tslib_1.__generator(this, function (_b) {
- switch (_b.label) {
- case 0:
- _a = this.forwardInput;
- return [4 /*yield*/, toNetInput(input)];
- case 1: return [2 /*return*/, _a.apply(this, [_b.sent(),
- forwardParams])];
- }
- });
- });
- };
- // none of the param tensors are quantized yet
- Mtcnn.prototype.loadQuantizedParams = function (uri) {
- return loadQuantizedParams(uri);
- };
- Mtcnn.prototype.extractParams = function (weights) {
- return extractParams(weights);
- };
- return Mtcnn;
-}(NeuralNetwork));
-export { Mtcnn };
-//# sourceMappingURL=Mtcnn.js.map
\ No newline at end of file
diff --git a/build/es6/mtcnn/Mtcnn.js.map b/build/es6/mtcnn/Mtcnn.js.map
deleted file mode 100644
index 230b0036..00000000
--- a/build/es6/mtcnn/Mtcnn.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"Mtcnn.js","sourceRoot":"","sources":["../../../src/mtcnn/Mtcnn.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/build/es6/mtcnn/MtcnnBox.d.ts b/build/es6/mtcnn/MtcnnBox.d.ts
deleted file mode 100644
index e61cf2f0..00000000
--- a/build/es6/mtcnn/MtcnnBox.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import { Box } from 'tfjs-image-recognition-base';
-export declare class MtcnnBox extends Box {
- constructor(left: number, top: number, right: number, bottom: number);
-}
diff --git a/build/es6/mtcnn/MtcnnBox.js b/build/es6/mtcnn/MtcnnBox.js
deleted file mode 100644
index 65b0b6c8..00000000
--- a/build/es6/mtcnn/MtcnnBox.js
+++ /dev/null
@@ -1,11 +0,0 @@
-import * as tslib_1 from "tslib";
-import { Box } from 'tfjs-image-recognition-base';
-var MtcnnBox = /** @class */ (function (_super) {
- tslib_1.__extends(MtcnnBox, _super);
- function MtcnnBox(left, top, right, bottom) {
- return _super.call(this, { left: left, top: top, right: right, bottom: bottom }, true) || this;
- }
- return MtcnnBox;
-}(Box));
-export { MtcnnBox };
-//# sourceMappingURL=MtcnnBox.js.map
\ No newline at end of file
diff --git a/build/es6/mtcnn/MtcnnBox.js.map b/build/es6/mtcnn/MtcnnBox.js.map
deleted file mode 100644
index d64b12ac..00000000
--- a/build/es6/mtcnn/MtcnnBox.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"MtcnnBox.js","sourceRoot":"","sources":["../../../src/mtcnn/MtcnnBox.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,6BAA6B,CAAC;AAElD;IAA8B,oCAAa;IACzC,kBAAY,IAAY,EAAE,GAAW,EAAE,KAAa,EAAE,MAAc;eAClE,kBAAM,EAAE,IAAI,MAAA,EAAE,GAAG,KAAA,EAAE,KAAK,OAAA,EAAE,MAAM,QAAA,EAAE,EAAE,IAAI,CAAC;IAC3C,CAAC;IACH,eAAC;AAAD,CAAC,AAJD,CAA8B,GAAG,GAIhC"}
\ No newline at end of file
diff --git a/build/es6/mtcnn/MtcnnOptions.d.ts b/build/es6/mtcnn/MtcnnOptions.d.ts
deleted file mode 100644
index ed24b4cd..00000000
--- a/build/es6/mtcnn/MtcnnOptions.d.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-export interface IMtcnnOptions {
- minFaceSize?: number;
- scaleFactor?: number;
- maxNumScales?: number;
- scoreThresholds?: number[];
- scaleSteps?: number[];
-}
-export declare class MtcnnOptions {
- protected _name: string;
- private _minFaceSize;
- private _scaleFactor;
- private _maxNumScales;
- private _scoreThresholds;
- private _scaleSteps;
- constructor({minFaceSize, scaleFactor, maxNumScales, scoreThresholds, scaleSteps}?: IMtcnnOptions);
- readonly minFaceSize: number;
- readonly scaleFactor: number;
- readonly maxNumScales: number;
- readonly scoreThresholds: number[];
- readonly scaleSteps: number[] | undefined;
-}
diff --git a/build/es6/mtcnn/MtcnnOptions.js b/build/es6/mtcnn/MtcnnOptions.js
deleted file mode 100644
index ce341f1c..00000000
--- a/build/es6/mtcnn/MtcnnOptions.js
+++ /dev/null
@@ -1,57 +0,0 @@
-var MtcnnOptions = /** @class */ (function () {
- function MtcnnOptions(_a) {
- var _b = _a === void 0 ? {} : _a, minFaceSize = _b.minFaceSize, scaleFactor = _b.scaleFactor, maxNumScales = _b.maxNumScales, scoreThresholds = _b.scoreThresholds, scaleSteps = _b.scaleSteps;
- this._name = 'MtcnnOptions';
- this._minFaceSize = minFaceSize || 20;
- this._scaleFactor = scaleFactor || 0.709;
- this._maxNumScales = maxNumScales || 10;
- this._scoreThresholds = scoreThresholds || [0.6, 0.7, 0.7];
- this._scaleSteps = scaleSteps;
- if (typeof this._minFaceSize !== 'number' || this._minFaceSize < 0) {
- throw new Error(this._name + " - expected minFaceSize to be a number > 0");
- }
- if (typeof this._scaleFactor !== 'number' || this._scaleFactor <= 0 || this._scaleFactor >= 1) {
- throw new Error(this._name + " - expected scaleFactor to be a number between 0 and 1");
- }
- if (typeof this._maxNumScales !== 'number' || this._maxNumScales < 0) {
- throw new Error(this._name + " - expected maxNumScales to be a number > 0");
- }
- if (!Array.isArray(this._scoreThresholds)
- || this._scoreThresholds.length !== 3
- || this._scoreThresholds.some(function (th) { return typeof th !== 'number'; })) {
- throw new Error(this._name + " - expected scoreThresholds to be an array of numbers of length 3");
- }
- if (this._scaleSteps
- && (!Array.isArray(this._scaleSteps) || this._scaleSteps.some(function (th) { return typeof th !== 'number'; }))) {
- throw new Error(this._name + " - expected scaleSteps to be an array of numbers");
- }
- }
- Object.defineProperty(MtcnnOptions.prototype, "minFaceSize", {
- get: function () { return this._minFaceSize; },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(MtcnnOptions.prototype, "scaleFactor", {
- get: function () { return this._scaleFactor; },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(MtcnnOptions.prototype, "maxNumScales", {
- get: function () { return this._maxNumScales; },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(MtcnnOptions.prototype, "scoreThresholds", {
- get: function () { return this._scoreThresholds; },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(MtcnnOptions.prototype, "scaleSteps", {
- get: function () { return this._scaleSteps; },
- enumerable: true,
- configurable: true
- });
- return MtcnnOptions;
-}());
-export { MtcnnOptions };
-//# sourceMappingURL=MtcnnOptions.js.map
\ No newline at end of file
diff --git a/build/es6/mtcnn/MtcnnOptions.js.map b/build/es6/mtcnn/MtcnnOptions.js.map
deleted file mode 100644
index a2b20743..00000000
--- a/build/es6/mtcnn/MtcnnOptions.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"MtcnnOptions.js","sourceRoot":"","sources":["../../../src/mtcnn/MtcnnOptions.ts"],"names":[],"mappings":"AAQA;IASE,sBAAY,EAA2F;YAA3F,4BAA2F,EAAzF,4BAAW,EAAE,4BAAW,EAAE,8BAAY,EAAE,oCAAe,EAAE,0BAAU;QARvE,UAAK,GAAW,cAAc,CAAA;QAStC,IAAI,CAAC,YAAY,GAAG,WAAW,IAAI,EAAE,CAAA;QACrC,IAAI,CAAC,YAAY,GAAG,WAAW,IAAI,KAAK,CAAA;QACxC,IAAI,CAAC,aAAa,GAAG,YAAY,IAAI,EAAE,CAAA;QACvC,IAAI,CAAC,gBAAgB,GAAG,eAAe,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;QAC1D,IAAI,CAAC,WAAW,GAAG,UAAU,CAAA;QAE7B,IAAI,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE;YAClE,MAAM,IAAI,KAAK,CAAI,IAAI,CAAC,KAAK,+CAA4C,CAAC,CAAA;SAC3E;QAED,IAAI,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,EAAE;YAC7F,MAAM,IAAI,KAAK,CAAI,IAAI,CAAC,KAAK,2DAAwD,CAAC,CAAA;SACvF;QAED,IAAI,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,EAAE;YACpE,MAAM,IAAI,KAAK,CAAI,IAAI,CAAC,KAAK,gDAA6C,CAAC,CAAA;SAC5E;QAED,IACE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC;eAChC,IAAI,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC;eAClC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAA,EAAE,IAAI,OAAA,OAAO,EAAE,KAAK,QAAQ,EAAtB,CAAsB,CAAC,EAC7D;YACA,MAAM,IAAI,KAAK,CAAI,IAAI,CAAC,KAAK,sEAAmE,CAAC,CAAA;SAClG;QAED,IACE,IAAI,CAAC,WAAW;eACX,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAA,EAAE,IAAI,OAAA,OAAO,EAAE,KAAK,QAAQ,EAAtB,CAAsB,CAAC,CAAC,EAC9F;YACA,MAAM,IAAI,KAAK,CAAI,IAAI,CAAC,KAAK,qDAAkD,CAAC,CAAA;SACjF;IACH,CAAC;IAED,sBAAI,qCAAW;aAAf,cAA4B,OAAO,IAAI,CAAC,YAAY,CAAA,CAAC,CAAC;;;OAAA;IACtD,sBAAI,qCAAW;aAAf,cAA4B,OAAO,IAAI,CAAC,YAAY,CAAA,CAAC,CAAC;;;OAAA;IACtD,sBAAI,sCAAY;aAAhB,cAA6B,OAAO,IAAI,CAAC,aAAa,CAAA,CAAC,CAAC;;;OAAA;IACxD,sBAAI,yCAAe;aAAnB,cAAkC,OAAO,IAAI,CAAC,gBAAgB,CAAA,CAAC,CAAC;;;OAAA;IAChE,sBAAI,oCAAU;aAAd,cAAyC,OAAO,IAAI,CAAC,WAAW,CAAA,CAAC,CAAC;;;OAAA;IACpE,mBAAC;AAAD,CAAC,AAjDD,IAiDC"}
\ No newline at end of file
diff --git a/build/es6/mtcnn/ONet.d.ts b/build/es6/mtcnn/ONet.d.ts
deleted file mode 100644
index dfc7f113..00000000
--- a/build/es6/mtcnn/ONet.d.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { ONetParams } from './types';
-export declare function ONet(x: tf.Tensor4D, params: ONetParams): {
- scores: tf.Tensor1D;
- regions: tf.Tensor2D;
- points: tf.Tensor2D;
-};
diff --git a/build/es6/mtcnn/ONet.js b/build/es6/mtcnn/ONet.js
deleted file mode 100644
index 6e707280..00000000
--- a/build/es6/mtcnn/ONet.js
+++ /dev/null
@@ -1,24 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { convLayer } from 'tfjs-tiny-yolov2';
-import { fullyConnectedLayer } from '../faceLandmarkNet/fullyConnectedLayer';
-import { prelu } from './prelu';
-import { sharedLayer } from './sharedLayers';
-export function ONet(x, params) {
- return tf.tidy(function () {
- var out = sharedLayer(x, params);
- out = tf.maxPool(out, [2, 2], [2, 2], 'same');
- out = convLayer(out, params.conv4, 'valid');
- out = prelu(out, params.prelu4_alpha);
- var vectorized = tf.reshape(out, [out.shape[0], params.fc1.weights.shape[0]]);
- var fc1 = fullyConnectedLayer(vectorized, params.fc1);
- var prelu5 = prelu(fc1, params.prelu5_alpha);
- var fc2_1 = fullyConnectedLayer(prelu5, params.fc2_1);
- var max = tf.expandDims(tf.max(fc2_1, 1), 1);
- var prob = tf.softmax(tf.sub(fc2_1, max), 1);
- var regions = fullyConnectedLayer(prelu5, params.fc2_2);
- var points = fullyConnectedLayer(prelu5, params.fc2_3);
- var scores = tf.unstack(prob, 1)[1];
- return { scores: scores, regions: regions, points: points };
- });
-}
-//# sourceMappingURL=ONet.js.map
\ No newline at end of file
diff --git a/build/es6/mtcnn/ONet.js.map b/build/es6/mtcnn/ONet.js.map
deleted file mode 100644
index 940f668c..00000000
--- a/build/es6/mtcnn/ONet.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ONet.js","sourceRoot":"","sources":["../../../src/mtcnn/ONet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,MAAM,eAAe,CAAc,EAAE,MAAkB;IACrD,OAAO,EAAE,CAAC,IAAI,CAAC;QAEb,IAAI,GAAG,GAAG,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;QAChC,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;QAC7C,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QAC3C,GAAG,GAAG,KAAK,CAAc,GAAG,EAAE,MAAM,CAAC,YAAY,CAAC,CAAA;QAElD,IAAM,UAAU,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAgB,CAAA;QAC9F,IAAM,GAAG,GAAG,mBAAmB,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;QACvD,IAAM,MAAM,GAAG,KAAK,CAAc,GAAG,EAAE,MAAM,CAAC,YAAY,CAAC,CAAA;QAC3D,IAAM,KAAK,GAAG,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;QACvD,IAAM,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAE9C,IAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,CAAgB,CAAA;QAC7D,IAAM,OAAO,GAAG,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;QACzD,IAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;QAExD,IAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAgB,CAAA;QACpD,OAAO,EAAE,MAAM,QAAA,EAAE,OAAO,SAAA,EAAE,MAAM,QAAA,EAAE,CAAA;IACpC,CAAC,CAAC,CAAA;AACJ,CAAC"}
\ No newline at end of file
diff --git a/build/es6/mtcnn/PNet.d.ts b/build/es6/mtcnn/PNet.d.ts
deleted file mode 100644
index 74e2c841..00000000
--- a/build/es6/mtcnn/PNet.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { PNetParams } from './types';
-export declare function PNet(x: tf.Tensor4D, params: PNetParams): {
- prob: tf.Tensor4D;
- regions: tf.Tensor4D;
-};
diff --git a/build/es6/mtcnn/PNet.js b/build/es6/mtcnn/PNet.js
deleted file mode 100644
index 470b8fa2..00000000
--- a/build/es6/mtcnn/PNet.js
+++ /dev/null
@@ -1,14 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { convLayer } from 'tfjs-tiny-yolov2';
-import { sharedLayer } from './sharedLayers';
-export function PNet(x, params) {
- return tf.tidy(function () {
- var out = sharedLayer(x, params, true);
- var conv = convLayer(out, params.conv4_1, 'valid');
- var max = tf.expandDims(tf.max(conv, 3), 3);
- var prob = tf.softmax(tf.sub(conv, max), 3);
- var regions = convLayer(out, params.conv4_2, 'valid');
- return { prob: prob, regions: regions };
- });
-}
-//# sourceMappingURL=PNet.js.map
\ No newline at end of file
diff --git a/build/es6/mtcnn/PNet.js.map b/build/es6/mtcnn/PNet.js.map
deleted file mode 100644
index 4bc3cdf4..00000000
--- a/build/es6/mtcnn/PNet.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"PNet.js","sourceRoot":"","sources":["../../../src/mtcnn/PNet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,MAAM,eAAe,CAAc,EAAE,MAAkB;IACrD,OAAO,EAAE,CAAC,IAAI,CAAC;QAEb,IAAI,GAAG,GAAG,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;QACtC,IAAM,IAAI,GAAG,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACpD,IAAM,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAC7C,IAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAgB,CAAA;QAC5D,IAAM,OAAO,GAAG,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAEvD,OAAO,EAAE,IAAI,MAAA,EAAE,OAAO,SAAA,EAAE,CAAA;IAC1B,CAAC,CAAC,CAAA;AACJ,CAAC"}
\ No newline at end of file
diff --git a/build/es6/mtcnn/RNet.d.ts b/build/es6/mtcnn/RNet.d.ts
deleted file mode 100644
index c6883ff7..00000000
--- a/build/es6/mtcnn/RNet.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { RNetParams } from './types';
-export declare function RNet(x: tf.Tensor4D, params: RNetParams): {
- scores: tf.Tensor1D;
- regions: tf.Tensor2D;
-};
diff --git a/build/es6/mtcnn/RNet.js b/build/es6/mtcnn/RNet.js
deleted file mode 100644
index 816940c3..00000000
--- a/build/es6/mtcnn/RNet.js
+++ /dev/null
@@ -1,19 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { fullyConnectedLayer } from '../faceLandmarkNet/fullyConnectedLayer';
-import { prelu } from './prelu';
-import { sharedLayer } from './sharedLayers';
-export function RNet(x, params) {
- return tf.tidy(function () {
- var convOut = sharedLayer(x, params);
- var vectorized = tf.reshape(convOut, [convOut.shape[0], params.fc1.weights.shape[0]]);
- var fc1 = fullyConnectedLayer(vectorized, params.fc1);
- var prelu4 = prelu(fc1, params.prelu4_alpha);
- var fc2_1 = fullyConnectedLayer(prelu4, params.fc2_1);
- var max = tf.expandDims(tf.max(fc2_1, 1), 1);
- var prob = tf.softmax(tf.sub(fc2_1, max), 1);
- var regions = fullyConnectedLayer(prelu4, params.fc2_2);
- var scores = tf.unstack(prob, 1)[1];
- return { scores: scores, regions: regions };
- });
-}
-//# sourceMappingURL=RNet.js.map
\ No newline at end of file
diff --git a/build/es6/mtcnn/RNet.js.map b/build/es6/mtcnn/RNet.js.map
deleted file mode 100644
index 91852f63..00000000
--- a/build/es6/mtcnn/RNet.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"RNet.js","sourceRoot":"","sources":["../../../src/mtcnn/RNet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAG7C,MAAM,eAAe,CAAc,EAAE,MAAkB;IACrD,OAAO,EAAE,CAAC,IAAI,CAAC;QAEb,IAAM,OAAO,GAAG,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;QACtC,IAAM,UAAU,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAgB,CAAA;QACtG,IAAM,GAAG,GAAG,mBAAmB,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;QACvD,IAAM,MAAM,GAAG,KAAK,CAAc,GAAG,EAAE,MAAM,CAAC,YAAY,CAAC,CAAA;QAC3D,IAAM,KAAK,GAAG,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;QACvD,IAAM,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAC9C,IAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,CAAgB,CAAA;QAC7D,IAAM,OAAO,GAAG,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;QAEzD,IAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAgB,CAAA;QACpD,OAAO,EAAE,MAAM,QAAA,EAAE,OAAO,SAAA,EAAE,CAAA;IAC5B,CAAC,CAAC,CAAA;AACJ,CAAC"}
\ No newline at end of file
diff --git a/build/es6/mtcnn/bgrToRgbTensor.d.ts b/build/es6/mtcnn/bgrToRgbTensor.d.ts
deleted file mode 100644
index 7b544bef..00000000
--- a/build/es6/mtcnn/bgrToRgbTensor.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-export declare function bgrToRgbTensor(tensor: tf.Tensor4D): tf.Tensor4D;
diff --git a/build/es6/mtcnn/bgrToRgbTensor.js b/build/es6/mtcnn/bgrToRgbTensor.js
deleted file mode 100644
index 5084eaf2..00000000
--- a/build/es6/mtcnn/bgrToRgbTensor.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-export function bgrToRgbTensor(tensor) {
- return tf.tidy(function () { return tf.stack(tf.unstack(tensor, 3).reverse(), 3); });
-}
-//# sourceMappingURL=bgrToRgbTensor.js.map
\ No newline at end of file
diff --git a/build/es6/mtcnn/bgrToRgbTensor.js.map b/build/es6/mtcnn/bgrToRgbTensor.js.map
deleted file mode 100644
index 9b8e0aa4..00000000
--- a/build/es6/mtcnn/bgrToRgbTensor.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"bgrToRgbTensor.js","sourceRoot":"","sources":["../../../src/mtcnn/bgrToRgbTensor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE5C,MAAM,yBAAyB,MAAmB;IAChD,OAAO,EAAE,CAAC,IAAI,CACZ,cAAM,OAAA,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAA5C,CAA4C,CACpC,CAAA;AAClB,CAAC"}
\ No newline at end of file
diff --git a/build/es6/mtcnn/config.d.ts b/build/es6/mtcnn/config.d.ts
deleted file mode 100644
index 05a91437..00000000
--- a/build/es6/mtcnn/config.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export declare const CELL_STRIDE = 2;
-export declare const CELL_SIZE = 12;
diff --git a/build/es6/mtcnn/config.js b/build/es6/mtcnn/config.js
deleted file mode 100644
index 134cf10b..00000000
--- a/build/es6/mtcnn/config.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export var CELL_STRIDE = 2;
-export var CELL_SIZE = 12;
-//# sourceMappingURL=config.js.map
\ No newline at end of file
diff --git a/build/es6/mtcnn/config.js.map b/build/es6/mtcnn/config.js.map
deleted file mode 100644
index cfc71d2c..00000000
--- a/build/es6/mtcnn/config.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/mtcnn/config.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,IAAM,WAAW,GAAG,CAAC,CAAA;AAC5B,MAAM,CAAC,IAAM,SAAS,GAAG,EAAE,CAAA"}
\ No newline at end of file
diff --git a/build/es6/mtcnn/extractImagePatches.d.ts b/build/es6/mtcnn/extractImagePatches.d.ts
deleted file mode 100644
index c5217d49..00000000
--- a/build/es6/mtcnn/extractImagePatches.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { Box, IDimensions } from 'tfjs-image-recognition-base';
-export declare function extractImagePatches(img: HTMLCanvasElement, boxes: Box[], {width, height}: IDimensions): Promise;
diff --git a/build/es6/mtcnn/extractImagePatches.js b/build/es6/mtcnn/extractImagePatches.js
deleted file mode 100644
index 7e4be7d0..00000000
--- a/build/es6/mtcnn/extractImagePatches.js
+++ /dev/null
@@ -1,52 +0,0 @@
-import * as tslib_1 from "tslib";
-import * as tf from '@tensorflow/tfjs-core';
-import { createCanvas, getContext2dOrThrow } from 'tfjs-image-recognition-base';
-import { normalize } from './normalize';
-export function extractImagePatches(img, boxes, _a) {
- var width = _a.width, height = _a.height;
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var _this = this;
- var imgCtx, bitmaps, imagePatchesDatas;
- return tslib_1.__generator(this, function (_b) {
- switch (_b.label) {
- case 0:
- imgCtx = getContext2dOrThrow(img);
- return [4 /*yield*/, Promise.all(boxes.map(function (box) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
- var _a, y, ey, x, ex, fromX, fromY, imgData;
- return tslib_1.__generator(this, function (_b) {
- _a = box.padAtBorders(img.height, img.width), y = _a.y, ey = _a.ey, x = _a.x, ex = _a.ex;
- fromX = x - 1;
- fromY = y - 1;
- imgData = imgCtx.getImageData(fromX, fromY, (ex - fromX), (ey - fromY));
- return [2 /*return*/, createImageBitmap(imgData)];
- });
- }); }))];
- case 1:
- bitmaps = _b.sent();
- imagePatchesDatas = [];
- bitmaps.forEach(function (bmp) {
- var patch = createCanvas({ width: width, height: height });
- var patchCtx = getContext2dOrThrow(patch);
- patchCtx.drawImage(bmp, 0, 0, width, height);
- var data = patchCtx.getImageData(0, 0, width, height).data;
- var currData = [];
- // RGBA -> BGR
- for (var i = 0; i < data.length; i += 4) {
- currData.push(data[i + 2]);
- currData.push(data[i + 1]);
- currData.push(data[i]);
- }
- imagePatchesDatas.push(currData);
- });
- return [2 /*return*/, imagePatchesDatas.map(function (data) {
- var t = tf.tidy(function () {
- var imagePatchTensor = tf.transpose(tf.tensor4d(data, [1, width, height, 3]), [0, 2, 1, 3]).toFloat();
- return normalize(imagePatchTensor);
- });
- return t;
- })];
- }
- });
- });
-}
-//# sourceMappingURL=extractImagePatches.js.map
\ No newline at end of file
diff --git a/build/es6/mtcnn/extractImagePatches.js.map b/build/es6/mtcnn/extractImagePatches.js.map
deleted file mode 100644
index be52a9da..00000000
--- a/build/es6/mtcnn/extractImagePatches.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"extractImagePatches.js","sourceRoot":"","sources":["../../../src/mtcnn/extractImagePatches.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAO,YAAY,EAAE,mBAAmB,EAAe,MAAM,6BAA6B,CAAC;AAElG,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,8BACJ,GAAsB,EACtB,KAAY,EACZ,EAA8B;QAA5B,gBAAK,EAAE,kBAAM;;;;;;;oBAIT,MAAM,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAA;oBAEvB,qBAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,UAAM,GAAG;;;gCAE7C,KAAmB,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,EAAxD,CAAC,OAAA,EAAE,EAAE,QAAA,EAAE,CAAC,OAAA,EAAE,EAAE,QAAA,CAA4C;gCAE1D,KAAK,GAAG,CAAC,GAAG,CAAC,CAAA;gCACb,KAAK,GAAG,CAAC,GAAG,CAAC,CAAA;gCACb,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAA;gCAE7E,sBAAO,iBAAiB,CAAC,OAAO,CAAC,EAAA;;6BAClC,CAAC,CAAC,EAAA;;oBATG,OAAO,GAAG,SASb;oBAEG,iBAAiB,GAAe,EAAE,CAAA;oBAExC,OAAO,CAAC,OAAO,CAAC,UAAA,GAAG;wBACjB,IAAM,KAAK,GAAG,YAAY,CAAC,EAAE,KAAK,OAAA,EAAE,MAAM,QAAA,EAAE,CAAC,CAAA;wBAC7C,IAAM,QAAQ,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAA;wBAC3C,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;wBACpC,IAAA,sDAAI,CAA+C;wBAE3D,IAAM,QAAQ,GAAG,EAAE,CAAA;wBACnB,cAAc;wBACd,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAE,CAAC,EAAE;4BACpC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;4BAC1B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;4BAC1B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;yBACvB;wBACD,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;oBAClC,CAAC,CAAC,CAAA;oBAGF,sBAAO,iBAAiB,CAAC,GAAG,CAAC,UAAA,IAAI;4BAC/B,IAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;gCAChB,IAAM,gBAAgB,GAAG,EAAE,CAAC,SAAS,CACnC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EACxC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CACb,CAAC,OAAO,EAAiB,CAAA;gCAE1B,OAAO,SAAS,CAAC,gBAAgB,CAAC,CAAA;4BACpC,CAAC,CAAC,CAAA;4BACF,OAAO,CAAC,CAAA;wBACV,CAAC,CAAC,EAAA;;;;CACH"}
\ No newline at end of file
diff --git a/build/es6/mtcnn/extractParams.d.ts b/build/es6/mtcnn/extractParams.d.ts
deleted file mode 100644
index 40295777..00000000
--- a/build/es6/mtcnn/extractParams.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { ParamMapping } from 'tfjs-image-recognition-base';
-import { NetParams } from './types';
-export declare function extractParams(weights: Float32Array): {
- params: NetParams;
- paramMappings: ParamMapping[];
-};
diff --git a/build/es6/mtcnn/extractParams.js b/build/es6/mtcnn/extractParams.js
deleted file mode 100644
index da1b2583..00000000
--- a/build/es6/mtcnn/extractParams.js
+++ /dev/null
@@ -1,66 +0,0 @@
-import * as tslib_1 from "tslib";
-import * as tf from '@tensorflow/tfjs-core';
-import { extractWeightsFactory } from 'tfjs-image-recognition-base';
-import { extractConvParamsFactory, extractFCParamsFactory } from 'tfjs-tiny-yolov2';
-function extractorsFactory(extractWeights, paramMappings) {
- var extractConvParams = extractConvParamsFactory(extractWeights, paramMappings);
- var extractFCParams = extractFCParamsFactory(extractWeights, paramMappings);
- function extractPReluParams(size, paramPath) {
- var alpha = tf.tensor1d(extractWeights(size));
- paramMappings.push({ paramPath: paramPath });
- return alpha;
- }
- function extractSharedParams(numFilters, mappedPrefix, isRnet) {
- if (isRnet === void 0) { isRnet = false; }
- var conv1 = extractConvParams(numFilters[0], numFilters[1], 3, mappedPrefix + "/conv1");
- var prelu1_alpha = extractPReluParams(numFilters[1], mappedPrefix + "/prelu1_alpha");
- var conv2 = extractConvParams(numFilters[1], numFilters[2], 3, mappedPrefix + "/conv2");
- var prelu2_alpha = extractPReluParams(numFilters[2], mappedPrefix + "/prelu2_alpha");
- var conv3 = extractConvParams(numFilters[2], numFilters[3], isRnet ? 2 : 3, mappedPrefix + "/conv3");
- var prelu3_alpha = extractPReluParams(numFilters[3], mappedPrefix + "/prelu3_alpha");
- return { conv1: conv1, prelu1_alpha: prelu1_alpha, conv2: conv2, prelu2_alpha: prelu2_alpha, conv3: conv3, prelu3_alpha: prelu3_alpha };
- }
- function extractPNetParams() {
- var sharedParams = extractSharedParams([3, 10, 16, 32], 'pnet');
- var conv4_1 = extractConvParams(32, 2, 1, 'pnet/conv4_1');
- var conv4_2 = extractConvParams(32, 4, 1, 'pnet/conv4_2');
- return tslib_1.__assign({}, sharedParams, { conv4_1: conv4_1, conv4_2: conv4_2 });
- }
- function extractRNetParams() {
- var sharedParams = extractSharedParams([3, 28, 48, 64], 'rnet', true);
- var fc1 = extractFCParams(576, 128, 'rnet/fc1');
- var prelu4_alpha = extractPReluParams(128, 'rnet/prelu4_alpha');
- var fc2_1 = extractFCParams(128, 2, 'rnet/fc2_1');
- var fc2_2 = extractFCParams(128, 4, 'rnet/fc2_2');
- return tslib_1.__assign({}, sharedParams, { fc1: fc1, prelu4_alpha: prelu4_alpha, fc2_1: fc2_1, fc2_2: fc2_2 });
- }
- function extractONetParams() {
- var sharedParams = extractSharedParams([3, 32, 64, 64], 'onet');
- var conv4 = extractConvParams(64, 128, 2, 'onet/conv4');
- var prelu4_alpha = extractPReluParams(128, 'onet/prelu4_alpha');
- var fc1 = extractFCParams(1152, 256, 'onet/fc1');
- var prelu5_alpha = extractPReluParams(256, 'onet/prelu5_alpha');
- var fc2_1 = extractFCParams(256, 2, 'onet/fc2_1');
- var fc2_2 = extractFCParams(256, 4, 'onet/fc2_2');
- var fc2_3 = extractFCParams(256, 10, 'onet/fc2_3');
- return tslib_1.__assign({}, sharedParams, { conv4: conv4, prelu4_alpha: prelu4_alpha, fc1: fc1, prelu5_alpha: prelu5_alpha, fc2_1: fc2_1, fc2_2: fc2_2, fc2_3: fc2_3 });
- }
- return {
- extractPNetParams: extractPNetParams,
- extractRNetParams: extractRNetParams,
- extractONetParams: extractONetParams
- };
-}
-export function extractParams(weights) {
- var _a = extractWeightsFactory(weights), extractWeights = _a.extractWeights, getRemainingWeights = _a.getRemainingWeights;
- var paramMappings = [];
- var _b = extractorsFactory(extractWeights, paramMappings), extractPNetParams = _b.extractPNetParams, extractRNetParams = _b.extractRNetParams, extractONetParams = _b.extractONetParams;
- var pnet = extractPNetParams();
- var rnet = extractRNetParams();
- var onet = extractONetParams();
- if (getRemainingWeights().length !== 0) {
- throw new Error("weights remaing after extract: " + getRemainingWeights().length);
- }
- return { params: { pnet: pnet, rnet: rnet, onet: onet }, paramMappings: paramMappings };
-}
-//# sourceMappingURL=extractParams.js.map
\ No newline at end of file
diff --git a/build/es6/mtcnn/extractParams.js.map b/build/es6/mtcnn/extractParams.js.map
deleted file mode 100644
index 4ac45310..00000000
--- a/build/es6/mtcnn/extractParams.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"extractParams.js","sourceRoot":"","sources":["../../../src/mtcnn/extractParams.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/build/es6/mtcnn/getSizesForScale.d.ts b/build/es6/mtcnn/getSizesForScale.d.ts
deleted file mode 100644
index 4ab739a5..00000000
--- a/build/es6/mtcnn/getSizesForScale.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-export declare function getSizesForScale(scale: number, [height, width]: number[]): {
- height: number;
- width: number;
-};
diff --git a/build/es6/mtcnn/getSizesForScale.js b/build/es6/mtcnn/getSizesForScale.js
deleted file mode 100644
index 9cad4651..00000000
--- a/build/es6/mtcnn/getSizesForScale.js
+++ /dev/null
@@ -1,8 +0,0 @@
-export function getSizesForScale(scale, _a) {
- var height = _a[0], width = _a[1];
- return {
- height: Math.floor(height * scale),
- width: Math.floor(width * scale)
- };
-}
-//# sourceMappingURL=getSizesForScale.js.map
\ No newline at end of file
diff --git a/build/es6/mtcnn/getSizesForScale.js.map b/build/es6/mtcnn/getSizesForScale.js.map
deleted file mode 100644
index feaeeb40..00000000
--- a/build/es6/mtcnn/getSizesForScale.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"getSizesForScale.js","sourceRoot":"","sources":["../../../src/mtcnn/getSizesForScale.ts"],"names":[],"mappings":"AAAA,MAAM,2BAA2B,KAAa,EAAE,EAAyB;QAAxB,cAAM,EAAE,aAAK;IAC5D,OAAO;QACL,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;QAClC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;KACjC,CAAA;AACH,CAAC"}
\ No newline at end of file
diff --git a/build/es6/mtcnn/index.d.ts b/build/es6/mtcnn/index.d.ts
deleted file mode 100644
index 8e8e10ee..00000000
--- a/build/es6/mtcnn/index.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import { Mtcnn } from './Mtcnn';
-export * from './Mtcnn';
-export * from './MtcnnOptions';
-export declare function createMtcnn(weights: Float32Array): Mtcnn;
diff --git a/build/es6/mtcnn/index.js b/build/es6/mtcnn/index.js
deleted file mode 100644
index 1443d9b9..00000000
--- a/build/es6/mtcnn/index.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import { Mtcnn } from './Mtcnn';
-export * from './Mtcnn';
-export * from './MtcnnOptions';
-export function createMtcnn(weights) {
- var net = new Mtcnn();
- net.extractWeights(weights);
- return net;
-}
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/build/es6/mtcnn/index.js.map b/build/es6/mtcnn/index.js.map
deleted file mode 100644
index 8885b857..00000000
--- a/build/es6/mtcnn/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mtcnn/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAE/B,MAAM,sBAAsB,OAAqB;IAC/C,IAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAA;IACvB,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;IAC3B,OAAO,GAAG,CAAA;AACZ,CAAC"}
\ No newline at end of file
diff --git a/build/es6/mtcnn/loadQuantizedParams.d.ts b/build/es6/mtcnn/loadQuantizedParams.d.ts
deleted file mode 100644
index c5e1dc44..00000000
--- a/build/es6/mtcnn/loadQuantizedParams.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { ParamMapping } from 'tfjs-image-recognition-base';
-import { NetParams } from './types';
-export declare function loadQuantizedParams(uri: string | undefined): Promise<{
- params: NetParams;
- paramMappings: ParamMapping[];
-}>;
diff --git a/build/es6/mtcnn/loadQuantizedParams.js b/build/es6/mtcnn/loadQuantizedParams.js
deleted file mode 100644
index b3b00990..00000000
--- a/build/es6/mtcnn/loadQuantizedParams.js
+++ /dev/null
@@ -1,78 +0,0 @@
-import * as tslib_1 from "tslib";
-import { disposeUnusedWeightTensors, extractWeightEntryFactory, loadWeightMap, } from 'tfjs-image-recognition-base';
-var DEFAULT_MODEL_NAME = 'mtcnn_model';
-function extractorsFactory(weightMap, paramMappings) {
- var extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);
- function extractConvParams(prefix) {
- var filters = extractWeightEntry(prefix + "/weights", 4, prefix + "/filters");
- var bias = extractWeightEntry(prefix + "/bias", 1);
- return { filters: filters, bias: bias };
- }
- function extractFCParams(prefix) {
- var weights = extractWeightEntry(prefix + "/weights", 2);
- var bias = extractWeightEntry(prefix + "/bias", 1);
- return { weights: weights, bias: bias };
- }
- function extractPReluParams(paramPath) {
- return extractWeightEntry(paramPath, 1);
- }
- function extractSharedParams(prefix) {
- var conv1 = extractConvParams(prefix + "/conv1");
- var prelu1_alpha = extractPReluParams(prefix + "/prelu1_alpha");
- var conv2 = extractConvParams(prefix + "/conv2");
- var prelu2_alpha = extractPReluParams(prefix + "/prelu2_alpha");
- var conv3 = extractConvParams(prefix + "/conv3");
- var prelu3_alpha = extractPReluParams(prefix + "/prelu3_alpha");
- return { conv1: conv1, prelu1_alpha: prelu1_alpha, conv2: conv2, prelu2_alpha: prelu2_alpha, conv3: conv3, prelu3_alpha: prelu3_alpha };
- }
- function extractPNetParams() {
- var sharedParams = extractSharedParams('pnet');
- var conv4_1 = extractConvParams('pnet/conv4_1');
- var conv4_2 = extractConvParams('pnet/conv4_2');
- return tslib_1.__assign({}, sharedParams, { conv4_1: conv4_1, conv4_2: conv4_2 });
- }
- function extractRNetParams() {
- var sharedParams = extractSharedParams('rnet');
- var fc1 = extractFCParams('rnet/fc1');
- var prelu4_alpha = extractPReluParams('rnet/prelu4_alpha');
- var fc2_1 = extractFCParams('rnet/fc2_1');
- var fc2_2 = extractFCParams('rnet/fc2_2');
- return tslib_1.__assign({}, sharedParams, { fc1: fc1, prelu4_alpha: prelu4_alpha, fc2_1: fc2_1, fc2_2: fc2_2 });
- }
- function extractONetParams() {
- var sharedParams = extractSharedParams('onet');
- var conv4 = extractConvParams('onet/conv4');
- var prelu4_alpha = extractPReluParams('onet/prelu4_alpha');
- var fc1 = extractFCParams('onet/fc1');
- var prelu5_alpha = extractPReluParams('onet/prelu5_alpha');
- var fc2_1 = extractFCParams('onet/fc2_1');
- var fc2_2 = extractFCParams('onet/fc2_2');
- var fc2_3 = extractFCParams('onet/fc2_3');
- return tslib_1.__assign({}, sharedParams, { conv4: conv4, prelu4_alpha: prelu4_alpha, fc1: fc1, prelu5_alpha: prelu5_alpha, fc2_1: fc2_1, fc2_2: fc2_2, fc2_3: fc2_3 });
- }
- return {
- extractPNetParams: extractPNetParams,
- extractRNetParams: extractRNetParams,
- extractONetParams: extractONetParams
- };
-}
-export function loadQuantizedParams(uri) {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var weightMap, paramMappings, _a, extractPNetParams, extractRNetParams, extractONetParams, pnet, rnet, onet;
- return tslib_1.__generator(this, function (_b) {
- switch (_b.label) {
- case 0: return [4 /*yield*/, loadWeightMap(uri, DEFAULT_MODEL_NAME)];
- case 1:
- weightMap = _b.sent();
- paramMappings = [];
- _a = extractorsFactory(weightMap, paramMappings), extractPNetParams = _a.extractPNetParams, extractRNetParams = _a.extractRNetParams, extractONetParams = _a.extractONetParams;
- pnet = extractPNetParams();
- rnet = extractRNetParams();
- onet = extractONetParams();
- disposeUnusedWeightTensors(weightMap, paramMappings);
- return [2 /*return*/, { params: { pnet: pnet, rnet: rnet, onet: onet }, paramMappings: paramMappings }];
- }
- });
- });
-}
-//# sourceMappingURL=loadQuantizedParams.js.map
\ No newline at end of file
diff --git a/build/es6/mtcnn/loadQuantizedParams.js.map b/build/es6/mtcnn/loadQuantizedParams.js.map
deleted file mode 100644
index 7728a722..00000000
--- a/build/es6/mtcnn/loadQuantizedParams.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"loadQuantizedParams.js","sourceRoot":"","sources":["../../../src/mtcnn/loadQuantizedParams.ts"],"names":[],"mappings":";AACA,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,aAAa,GAEd,MAAM,6BAA6B,CAAC;AAKrC,IAAM,kBAAkB,GAAG,aAAa,CAAA;AAExC,2BAA2B,SAAc,EAAE,aAA6B;IAEtE,IAAM,kBAAkB,GAAG,yBAAyB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;IAE9E,2BAA2B,MAAc;QACvC,IAAM,OAAO,GAAG,kBAAkB,CAAiB,MAAM,aAAU,EAAE,CAAC,EAAK,MAAM,aAAU,CAAC,CAAA;QAC5F,IAAM,IAAI,GAAG,kBAAkB,CAAiB,MAAM,UAAO,EAAE,CAAC,CAAC,CAAA;QAEjE,OAAO,EAAE,OAAO,SAAA,EAAE,IAAI,MAAA,EAAE,CAAA;IAC1B,CAAC;IAED,yBAAyB,MAAc;QACrC,IAAM,OAAO,GAAG,kBAAkB,CAAiB,MAAM,aAAU,EAAE,CAAC,CAAC,CAAA;QACvE,IAAM,IAAI,GAAG,kBAAkB,CAAiB,MAAM,UAAO,EAAE,CAAC,CAAC,CAAA;QAEjE,OAAO,EAAE,OAAO,SAAA,EAAE,IAAI,MAAA,EAAE,CAAA;IAC1B,CAAC;IAED,4BAA4B,SAAiB;QAC3C,OAAO,kBAAkB,CAAc,SAAS,EAAE,CAAC,CAAC,CAAA;IACtD,CAAC;IAED,6BAA6B,MAAc;QAEzC,IAAM,KAAK,GAAG,iBAAiB,CAAI,MAAM,WAAQ,CAAC,CAAA;QAClD,IAAM,YAAY,GAAG,kBAAkB,CAAI,MAAM,kBAAe,CAAC,CAAA;QACjE,IAAM,KAAK,GAAG,iBAAiB,CAAI,MAAM,WAAQ,CAAC,CAAA;QAClD,IAAM,YAAY,GAAG,kBAAkB,CAAI,MAAM,kBAAe,CAAC,CAAA;QACjE,IAAM,KAAK,GAAG,iBAAiB,CAAI,MAAM,WAAQ,CAAC,CAAA;QAClD,IAAM,YAAY,GAAG,kBAAkB,CAAI,MAAM,kBAAe,CAAC,CAAA;QAEjE,OAAO,EAAE,KAAK,OAAA,EAAE,YAAY,cAAA,EAAE,KAAK,OAAA,EAAE,YAAY,cAAA,EAAE,KAAK,OAAA,EAAE,YAAY,cAAA,EAAE,CAAA;IAC1E,CAAC;IAED;QAEE,IAAM,YAAY,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAA;QAChD,IAAM,OAAO,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAA;QACjD,IAAM,OAAO,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAA;QAEjD,4BAAY,YAAY,IAAE,OAAO,SAAA,EAAE,OAAO,SAAA,IAAE;IAC9C,CAAC;IAED;QAEE,IAAM,YAAY,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAA;QAChD,IAAM,GAAG,GAAG,eAAe,CAAC,UAAU,CAAC,CAAA;QACvC,IAAM,YAAY,GAAG,kBAAkB,CAAC,mBAAmB,CAAC,CAAA;QAC5D,IAAM,KAAK,GAAG,eAAe,CAAC,YAAY,CAAC,CAAA;QAC3C,IAAM,KAAK,GAAG,eAAe,CAAC,YAAY,CAAC,CAAA;QAE3C,4BAAY,YAAY,IAAE,GAAG,KAAA,EAAE,YAAY,cAAA,EAAE,KAAK,OAAA,EAAE,KAAK,OAAA,IAAE;IAC7D,CAAC;IAED;QAEE,IAAM,YAAY,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAA;QAChD,IAAM,KAAK,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAA;QAC7C,IAAM,YAAY,GAAG,kBAAkB,CAAC,mBAAmB,CAAC,CAAA;QAC5D,IAAM,GAAG,GAAG,eAAe,CAAC,UAAU,CAAC,CAAA;QACvC,IAAM,YAAY,GAAG,kBAAkB,CAAC,mBAAmB,CAAC,CAAA;QAC5D,IAAM,KAAK,GAAG,eAAe,CAAC,YAAY,CAAC,CAAA;QAC3C,IAAM,KAAK,GAAG,eAAe,CAAC,YAAY,CAAC,CAAA;QAC3C,IAAM,KAAK,GAAG,eAAe,CAAC,YAAY,CAAC,CAAA;QAE3C,4BAAY,YAAY,IAAE,KAAK,OAAA,EAAE,YAAY,cAAA,EAAE,GAAG,KAAA,EAAE,YAAY,cAAA,EAAE,KAAK,OAAA,EAAE,KAAK,OAAA,EAAE,KAAK,OAAA,IAAE;IACzF,CAAC;IAED,OAAO;QACL,iBAAiB,mBAAA;QACjB,iBAAiB,mBAAA;QACjB,iBAAiB,mBAAA;KAClB,CAAA;AAEH,CAAC;AAED,MAAM,8BACJ,GAAuB;;;;;wBAGL,qBAAM,aAAa,CAAC,GAAG,EAAE,kBAAkB,CAAC,EAAA;;oBAAxD,SAAS,GAAG,SAA4C;oBACxD,aAAa,GAAmB,EAAE,CAAA;oBAElC,KAIF,iBAAiB,CAAC,SAAS,EAAE,aAAa,CAAC,EAH7C,iBAAiB,uBAAA,EACjB,iBAAiB,uBAAA,EACjB,iBAAiB,uBAAA,CAC4B;oBAEzC,IAAI,GAAG,iBAAiB,EAAE,CAAA;oBAC1B,IAAI,GAAG,iBAAiB,EAAE,CAAA;oBAC1B,IAAI,GAAG,iBAAiB,EAAE,CAAA;oBAEhC,0BAA0B,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;oBAEpD,sBAAO,EAAE,MAAM,EAAE,EAAE,IAAI,MAAA,EAAE,IAAI,MAAA,EAAE,IAAI,MAAA,EAAE,EAAE,aAAa,eAAA,EAAE,EAAA;;;;CACvD"}
\ No newline at end of file
diff --git a/build/es6/mtcnn/normalize.d.ts b/build/es6/mtcnn/normalize.d.ts
deleted file mode 100644
index 1a14045d..00000000
--- a/build/es6/mtcnn/normalize.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-export declare function normalize(x: tf.Tensor4D): tf.Tensor4D;
diff --git a/build/es6/mtcnn/normalize.js b/build/es6/mtcnn/normalize.js
deleted file mode 100644
index 4df55c9e..00000000
--- a/build/es6/mtcnn/normalize.js
+++ /dev/null
@@ -1,5 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-export function normalize(x) {
- return tf.tidy(function () { return tf.mul(tf.sub(x, tf.scalar(127.5)), tf.scalar(0.0078125)); });
-}
-//# sourceMappingURL=normalize.js.map
\ No newline at end of file
diff --git a/build/es6/mtcnn/normalize.js.map b/build/es6/mtcnn/normalize.js.map
deleted file mode 100644
index 0ec5e039..00000000
--- a/build/es6/mtcnn/normalize.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../../src/mtcnn/normalize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE5C,MAAM,oBAAoB,CAAc;IACtC,OAAO,EAAE,CAAC,IAAI,CACZ,cAAM,OAAA,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAzD,CAAyD,CAChE,CAAA;AACH,CAAC"}
\ No newline at end of file
diff --git a/build/es6/mtcnn/prelu.d.ts b/build/es6/mtcnn/prelu.d.ts
deleted file mode 100644
index 3019168f..00000000
--- a/build/es6/mtcnn/prelu.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-export declare function prelu(x: T, alpha: tf.Tensor1D): T;
diff --git a/build/es6/mtcnn/prelu.js b/build/es6/mtcnn/prelu.js
deleted file mode 100644
index 8ef03aa3..00000000
--- a/build/es6/mtcnn/prelu.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-export function prelu(x, alpha) {
- return tf.tidy(function () {
- return tf.add(tf.relu(x), tf.mul(alpha, tf.neg(tf.relu(tf.neg(x)))));
- });
-}
-//# sourceMappingURL=prelu.js.map
\ No newline at end of file
diff --git a/build/es6/mtcnn/prelu.js.map b/build/es6/mtcnn/prelu.js.map
deleted file mode 100644
index 70ac701d..00000000
--- a/build/es6/mtcnn/prelu.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"prelu.js","sourceRoot":"","sources":["../../../src/mtcnn/prelu.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE5C,MAAM,gBAAqC,CAAI,EAAE,KAAkB;IACjE,OAAO,EAAE,CAAC,IAAI,CAAC;QACb,OAAA,EAAE,CAAC,GAAG,CACJ,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EACV,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC1C;IAHD,CAGC,CACF,CAAA;AACH,CAAC"}
\ No newline at end of file
diff --git a/build/es6/mtcnn/pyramidDown.d.ts b/build/es6/mtcnn/pyramidDown.d.ts
deleted file mode 100644
index 58073049..00000000
--- a/build/es6/mtcnn/pyramidDown.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export declare function pyramidDown(minFaceSize: number, scaleFactor: number, dims: number[]): number[];
diff --git a/build/es6/mtcnn/pyramidDown.js b/build/es6/mtcnn/pyramidDown.js
deleted file mode 100644
index 94eaac91..00000000
--- a/build/es6/mtcnn/pyramidDown.js
+++ /dev/null
@@ -1,15 +0,0 @@
-import { CELL_SIZE } from './config';
-export function pyramidDown(minFaceSize, scaleFactor, dims) {
- var height = dims[0], width = dims[1];
- var m = CELL_SIZE / minFaceSize;
- var scales = [];
- var minLayer = Math.min(height, width) * m;
- var exp = 0;
- while (minLayer >= 12) {
- scales.push(m * Math.pow(scaleFactor, exp));
- minLayer = minLayer * scaleFactor;
- exp += 1;
- }
- return scales;
-}
-//# sourceMappingURL=pyramidDown.js.map
\ No newline at end of file
diff --git a/build/es6/mtcnn/pyramidDown.js.map b/build/es6/mtcnn/pyramidDown.js.map
deleted file mode 100644
index d77b79f4..00000000
--- a/build/es6/mtcnn/pyramidDown.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"pyramidDown.js","sourceRoot":"","sources":["../../../src/mtcnn/pyramidDown.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,MAAM,sBAAsB,WAAmB,EAAE,WAAmB,EAAE,IAAc;IAE3E,IAAA,gBAAM,EAAE,eAAK,CAAQ;IAC5B,IAAM,CAAC,GAAG,SAAS,GAAG,WAAW,CAAA;IAEjC,IAAM,MAAM,GAAG,EAAE,CAAA;IAEjB,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;IAC1C,IAAI,GAAG,GAAG,CAAC,CAAA;IACX,OAAO,QAAQ,IAAI,EAAE,EAAE;QACrB,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAA;QAC3C,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAA;QACjC,GAAG,IAAI,CAAC,CAAA;KACT;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
\ No newline at end of file
diff --git a/build/es6/mtcnn/sharedLayers.d.ts b/build/es6/mtcnn/sharedLayers.d.ts
deleted file mode 100644
index afc63db2..00000000
--- a/build/es6/mtcnn/sharedLayers.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { SharedParams } from './types';
-export declare function sharedLayer(x: tf.Tensor4D, params: SharedParams, isPnet?: boolean): tf.Tensor;
diff --git a/build/es6/mtcnn/sharedLayers.js b/build/es6/mtcnn/sharedLayers.js
deleted file mode 100644
index ef9c6f15..00000000
--- a/build/es6/mtcnn/sharedLayers.js
+++ /dev/null
@@ -1,18 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { convLayer } from 'tfjs-tiny-yolov2';
-import { prelu } from './prelu';
-export function sharedLayer(x, params, isPnet) {
- if (isPnet === void 0) { isPnet = false; }
- return tf.tidy(function () {
- var out = convLayer(x, params.conv1, 'valid');
- out = prelu(out, params.prelu1_alpha);
- out = tf.maxPool(out, isPnet ? [2, 2] : [3, 3], [2, 2], 'same');
- out = convLayer(out, params.conv2, 'valid');
- out = prelu(out, params.prelu2_alpha);
- out = isPnet ? out : tf.maxPool(out, [3, 3], [2, 2], 'valid');
- out = convLayer(out, params.conv3, 'valid');
- out = prelu(out, params.prelu3_alpha);
- return out;
- });
-}
-//# sourceMappingURL=sharedLayers.js.map
\ No newline at end of file
diff --git a/build/es6/mtcnn/sharedLayers.js.map b/build/es6/mtcnn/sharedLayers.js.map
deleted file mode 100644
index 02d540a1..00000000
--- a/build/es6/mtcnn/sharedLayers.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"sharedLayers.js","sourceRoot":"","sources":["../../../src/mtcnn/sharedLayers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,MAAM,sBAAsB,CAAc,EAAE,MAAoB,EAAE,MAAuB;IAAvB,uBAAA,EAAA,cAAuB;IACvF,OAAO,EAAE,CAAC,IAAI,CAAC;QAEb,IAAI,GAAG,GAAG,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QAC7C,GAAG,GAAG,KAAK,CAAc,GAAG,EAAE,MAAM,CAAC,YAAY,CAAC,CAAA;QAClD,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;QAC9D,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QAC3C,GAAG,GAAG,KAAK,CAAc,GAAG,EAAE,MAAM,CAAC,YAAY,CAAC,CAAA;QAClD,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAA;QAC7D,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QAC3C,GAAG,GAAG,KAAK,CAAc,GAAG,EAAE,MAAM,CAAC,YAAY,CAAC,CAAA;QAElD,OAAO,GAAG,CAAA;IACZ,CAAC,CAAC,CAAA;AACJ,CAAC"}
\ No newline at end of file
diff --git a/build/es6/mtcnn/stage1.d.ts b/build/es6/mtcnn/stage1.d.ts
deleted file mode 100644
index f096cea1..00000000
--- a/build/es6/mtcnn/stage1.d.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { BoundingBox } from 'tfjs-image-recognition-base';
-import { PNetParams } from './types';
-export declare function stage1(imgTensor: tf.Tensor4D, scales: number[], scoreThreshold: number, params: PNetParams, stats: any): {
- boxes: BoundingBox[];
- scores: number[];
-};
diff --git a/build/es6/mtcnn/stage1.js b/build/es6/mtcnn/stage1.js
deleted file mode 100644
index 93794b99..00000000
--- a/build/es6/mtcnn/stage1.js
+++ /dev/null
@@ -1,91 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { BoundingBox, nonMaxSuppression, Point } from 'tfjs-image-recognition-base';
-import { CELL_SIZE, CELL_STRIDE } from './config';
-import { getSizesForScale } from './getSizesForScale';
-import { MtcnnBox } from './MtcnnBox';
-import { normalize } from './normalize';
-import { PNet } from './PNet';
-function rescaleAndNormalize(x, scale) {
- return tf.tidy(function () {
- var _a = getSizesForScale(scale, x.shape.slice(1)), height = _a.height, width = _a.width;
- var resized = tf.image.resizeBilinear(x, [height, width]);
- var normalized = normalize(resized);
- return tf.transpose(normalized, [0, 2, 1, 3]);
- });
-}
-function extractBoundingBoxes(scoresTensor, regionsTensor, scale, scoreThreshold) {
- // TODO: fix this!, maybe better to use tf.gather here
- var indices = [];
- for (var y = 0; y < scoresTensor.shape[0]; y++) {
- for (var x = 0; x < scoresTensor.shape[1]; x++) {
- if (scoresTensor.get(y, x) >= scoreThreshold) {
- indices.push(new Point(x, y));
- }
- }
- }
- var boundingBoxes = indices.map(function (idx) {
- var cell = new BoundingBox(Math.round((idx.y * CELL_STRIDE + 1) / scale), Math.round((idx.x * CELL_STRIDE + 1) / scale), Math.round((idx.y * CELL_STRIDE + CELL_SIZE) / scale), Math.round((idx.x * CELL_STRIDE + CELL_SIZE) / scale));
- var score = scoresTensor.get(idx.y, idx.x);
- var region = new MtcnnBox(regionsTensor.get(idx.y, idx.x, 0), regionsTensor.get(idx.y, idx.x, 1), regionsTensor.get(idx.y, idx.x, 2), regionsTensor.get(idx.y, idx.x, 3));
- return {
- cell: cell,
- score: score,
- region: region
- };
- });
- return boundingBoxes;
-}
-export function stage1(imgTensor, scales, scoreThreshold, params, stats) {
- stats.stage1 = [];
- var pnetOutputs = scales.map(function (scale) { return tf.tidy(function () {
- var statsForScale = { scale: scale };
- var resized = rescaleAndNormalize(imgTensor, scale);
- var ts = Date.now();
- var _a = PNet(resized, params), prob = _a.prob, regions = _a.regions;
- statsForScale.pnet = Date.now() - ts;
- var scoresTensor = tf.unstack(tf.unstack(prob, 3)[1])[0];
- var regionsTensor = tf.unstack(regions)[0];
- return {
- scoresTensor: scoresTensor,
- regionsTensor: regionsTensor,
- scale: scale,
- statsForScale: statsForScale
- };
- }); });
- var boxesForScale = pnetOutputs.map(function (_a) {
- var scoresTensor = _a.scoresTensor, regionsTensor = _a.regionsTensor, scale = _a.scale, statsForScale = _a.statsForScale;
- var boundingBoxes = extractBoundingBoxes(scoresTensor, regionsTensor, scale, scoreThreshold);
- scoresTensor.dispose();
- regionsTensor.dispose();
- if (!boundingBoxes.length) {
- stats.stage1.push(statsForScale);
- return [];
- }
- var ts = Date.now();
- var indices = nonMaxSuppression(boundingBoxes.map(function (bbox) { return bbox.cell; }), boundingBoxes.map(function (bbox) { return bbox.score; }), 0.5);
- statsForScale.nms = Date.now() - ts;
- statsForScale.numBoxes = indices.length;
- stats.stage1.push(statsForScale);
- return indices.map(function (boxIdx) { return boundingBoxes[boxIdx]; });
- });
- var allBoxes = boxesForScale.reduce(function (all, boxes) { return all.concat(boxes); }, []);
- var finalBoxes = [];
- var finalScores = [];
- if (allBoxes.length > 0) {
- var ts = Date.now();
- var indices = nonMaxSuppression(allBoxes.map(function (bbox) { return bbox.cell; }), allBoxes.map(function (bbox) { return bbox.score; }), 0.7);
- stats.stage1_nms = Date.now() - ts;
- finalScores = indices.map(function (idx) { return allBoxes[idx].score; });
- finalBoxes = indices
- .map(function (idx) { return allBoxes[idx]; })
- .map(function (_a) {
- var cell = _a.cell, region = _a.region;
- return new BoundingBox(cell.left + (region.left * cell.width), cell.top + (region.top * cell.height), cell.right + (region.right * cell.width), cell.bottom + (region.bottom * cell.height)).toSquare().round();
- });
- }
- return {
- boxes: finalBoxes,
- scores: finalScores
- };
-}
-//# sourceMappingURL=stage1.js.map
\ No newline at end of file
diff --git a/build/es6/mtcnn/stage1.js.map b/build/es6/mtcnn/stage1.js.map
deleted file mode 100644
index b8ffd3a6..00000000
--- a/build/es6/mtcnn/stage1.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"stage1.js","sourceRoot":"","sources":["../../../src/mtcnn/stage1.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/build/es6/mtcnn/stage2.d.ts b/build/es6/mtcnn/stage2.d.ts
deleted file mode 100644
index de3a4c61..00000000
--- a/build/es6/mtcnn/stage2.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { Box } from 'tfjs-image-recognition-base';
-import { RNetParams } from './types';
-export declare function stage2(img: HTMLCanvasElement, inputBoxes: Box[], scoreThreshold: number, params: RNetParams, stats: any): Promise<{
- boxes: Box[];
- scores: number[];
-}>;
diff --git a/build/es6/mtcnn/stage2.js b/build/es6/mtcnn/stage2.js
deleted file mode 100644
index d36774f7..00000000
--- a/build/es6/mtcnn/stage2.js
+++ /dev/null
@@ -1,66 +0,0 @@
-import * as tslib_1 from "tslib";
-import * as tf from '@tensorflow/tfjs-core';
-import { nonMaxSuppression } from 'tfjs-image-recognition-base';
-import { extractImagePatches } from './extractImagePatches';
-import { MtcnnBox } from './MtcnnBox';
-import { RNet } from './RNet';
-export function stage2(img, inputBoxes, scoreThreshold, params, stats) {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var ts, rnetInputs, rnetOuts, scoresTensor, scores, _a, _b, indices, filteredBoxes, filteredScores, finalBoxes, finalScores, indicesNms, regions_1;
- return tslib_1.__generator(this, function (_c) {
- switch (_c.label) {
- case 0:
- ts = Date.now();
- return [4 /*yield*/, extractImagePatches(img, inputBoxes, { width: 24, height: 24 })];
- case 1:
- rnetInputs = _c.sent();
- stats.stage2_extractImagePatches = Date.now() - ts;
- ts = Date.now();
- rnetOuts = rnetInputs.map(function (rnetInput) {
- var out = RNet(rnetInput, params);
- rnetInput.dispose();
- return out;
- });
- stats.stage2_rnet = Date.now() - ts;
- scoresTensor = rnetOuts.length > 1
- ? tf.concat(rnetOuts.map(function (out) { return out.scores; }))
- : rnetOuts[0].scores;
- _b = (_a = Array).from;
- return [4 /*yield*/, scoresTensor.data()];
- case 2:
- scores = _b.apply(_a, [_c.sent()]);
- scoresTensor.dispose();
- indices = scores
- .map(function (score, idx) { return ({ score: score, idx: idx }); })
- .filter(function (c) { return c.score > scoreThreshold; })
- .map(function (_a) {
- var idx = _a.idx;
- return idx;
- });
- filteredBoxes = indices.map(function (idx) { return inputBoxes[idx]; });
- filteredScores = indices.map(function (idx) { return scores[idx]; });
- finalBoxes = [];
- finalScores = [];
- if (filteredBoxes.length > 0) {
- ts = Date.now();
- indicesNms = nonMaxSuppression(filteredBoxes, filteredScores, 0.7);
- stats.stage2_nms = Date.now() - ts;
- regions_1 = indicesNms.map(function (idx) {
- return new MtcnnBox(rnetOuts[indices[idx]].regions.get(0, 0), rnetOuts[indices[idx]].regions.get(0, 1), rnetOuts[indices[idx]].regions.get(0, 2), rnetOuts[indices[idx]].regions.get(0, 3));
- });
- finalScores = indicesNms.map(function (idx) { return filteredScores[idx]; });
- finalBoxes = indicesNms.map(function (idx, i) { return filteredBoxes[idx].calibrate(regions_1[i]); });
- }
- rnetOuts.forEach(function (t) {
- t.regions.dispose();
- t.scores.dispose();
- });
- return [2 /*return*/, {
- boxes: finalBoxes,
- scores: finalScores
- }];
- }
- });
- });
-}
-//# sourceMappingURL=stage2.js.map
\ No newline at end of file
diff --git a/build/es6/mtcnn/stage2.js.map b/build/es6/mtcnn/stage2.js.map
deleted file mode 100644
index dfb2e1c6..00000000
--- a/build/es6/mtcnn/stage2.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"stage2.js","sourceRoot":"","sources":["../../../src/mtcnn/stage2.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/build/es6/mtcnn/stage3.d.ts b/build/es6/mtcnn/stage3.d.ts
deleted file mode 100644
index 607d3047..00000000
--- a/build/es6/mtcnn/stage3.d.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import { BoundingBox, Box, Point } from 'tfjs-image-recognition-base';
-import { ONetParams } from './types';
-export declare function stage3(img: HTMLCanvasElement, inputBoxes: BoundingBox[], scoreThreshold: number, params: ONetParams, stats: any): Promise<{
- boxes: Box[];
- scores: number[];
- points: Point[][];
-}>;
diff --git a/build/es6/mtcnn/stage3.js b/build/es6/mtcnn/stage3.js
deleted file mode 100644
index 852b9fe0..00000000
--- a/build/es6/mtcnn/stage3.js
+++ /dev/null
@@ -1,73 +0,0 @@
-import * as tslib_1 from "tslib";
-import * as tf from '@tensorflow/tfjs-core';
-import { nonMaxSuppression, Point } from 'tfjs-image-recognition-base';
-import { extractImagePatches } from './extractImagePatches';
-import { MtcnnBox } from './MtcnnBox';
-import { ONet } from './ONet';
-export function stage3(img, inputBoxes, scoreThreshold, params, stats) {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var ts, onetInputs, onetOuts, scoresTensor, scores, _a, _b, indices, filteredRegions, filteredBoxes, filteredScores, finalBoxes, finalScores, points, indicesNms;
- return tslib_1.__generator(this, function (_c) {
- switch (_c.label) {
- case 0:
- ts = Date.now();
- return [4 /*yield*/, extractImagePatches(img, inputBoxes, { width: 48, height: 48 })];
- case 1:
- onetInputs = _c.sent();
- stats.stage3_extractImagePatches = Date.now() - ts;
- ts = Date.now();
- onetOuts = onetInputs.map(function (onetInput) {
- var out = ONet(onetInput, params);
- onetInput.dispose();
- return out;
- });
- stats.stage3_onet = Date.now() - ts;
- scoresTensor = onetOuts.length > 1
- ? tf.concat(onetOuts.map(function (out) { return out.scores; }))
- : onetOuts[0].scores;
- _b = (_a = Array).from;
- return [4 /*yield*/, scoresTensor.data()];
- case 2:
- scores = _b.apply(_a, [_c.sent()]);
- scoresTensor.dispose();
- indices = scores
- .map(function (score, idx) { return ({ score: score, idx: idx }); })
- .filter(function (c) { return c.score > scoreThreshold; })
- .map(function (_a) {
- var idx = _a.idx;
- return idx;
- });
- filteredRegions = indices.map(function (idx) { return new MtcnnBox(onetOuts[idx].regions.get(0, 0), onetOuts[idx].regions.get(0, 1), onetOuts[idx].regions.get(0, 2), onetOuts[idx].regions.get(0, 3)); });
- filteredBoxes = indices
- .map(function (idx, i) { return inputBoxes[idx].calibrate(filteredRegions[i]); });
- filteredScores = indices.map(function (idx) { return scores[idx]; });
- finalBoxes = [];
- finalScores = [];
- points = [];
- if (filteredBoxes.length > 0) {
- ts = Date.now();
- indicesNms = nonMaxSuppression(filteredBoxes, filteredScores, 0.7, false);
- stats.stage3_nms = Date.now() - ts;
- finalBoxes = indicesNms.map(function (idx) { return filteredBoxes[idx]; });
- finalScores = indicesNms.map(function (idx) { return filteredScores[idx]; });
- points = indicesNms.map(function (idx, i) {
- return Array(5).fill(0).map(function (_, ptIdx) {
- return new Point(((onetOuts[idx].points.get(0, ptIdx) * (finalBoxes[i].width + 1)) + finalBoxes[i].left), ((onetOuts[idx].points.get(0, ptIdx + 5) * (finalBoxes[i].height + 1)) + finalBoxes[i].top));
- });
- });
- }
- onetOuts.forEach(function (t) {
- t.regions.dispose();
- t.scores.dispose();
- t.points.dispose();
- });
- return [2 /*return*/, {
- boxes: finalBoxes,
- scores: finalScores,
- points: points
- }];
- }
- });
- });
-}
-//# sourceMappingURL=stage3.js.map
\ No newline at end of file
diff --git a/build/es6/mtcnn/stage3.js.map b/build/es6/mtcnn/stage3.js.map
deleted file mode 100644
index f2bc06d0..00000000
--- a/build/es6/mtcnn/stage3.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"stage3.js","sourceRoot":"","sources":["../../../src/mtcnn/stage3.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAoB,iBAAiB,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAEzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAG9B,MAAM,iBACJ,GAAsB,EACtB,UAAyB,EACzB,cAAsB,EACtB,MAAkB,EAClB,KAAU;;;;;;oBAGN,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;oBACA,qBAAM,mBAAmB,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,EAAA;;oBAAlF,UAAU,GAAG,SAAqE;oBACxF,KAAK,CAAC,0BAA0B,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAA;oBAElD,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;oBACT,QAAQ,GAAG,UAAU,CAAC,GAAG,CAC7B,UAAA,SAAS;wBACP,IAAM,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;wBACnC,SAAS,CAAC,OAAO,EAAE,CAAA;wBACnB,OAAO,GAAG,CAAA;oBACZ,CAAC,CACF,CAAA;oBACD,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAA;oBAE7B,YAAY,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC;wBACtC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,MAAM,EAAV,CAAU,CAAC,CAAC;wBAC5C,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;oBACP,KAAA,CAAA,KAAA,KAAK,CAAA,CAAC,IAAI,CAAA;oBAAC,qBAAM,YAAY,CAAC,IAAI,EAAE,EAAA;;oBAA7C,MAAM,GAAG,cAAW,SAAyB,EAAC;oBACpD,YAAY,CAAC,OAAO,EAAE,CAAA;oBAEhB,OAAO,GAAG,MAAM;yBACnB,GAAG,CAAC,UAAC,KAAK,EAAE,GAAG,IAAK,OAAA,CAAC,EAAE,KAAK,OAAA,EAAE,GAAG,KAAA,EAAE,CAAC,EAAhB,CAAgB,CAAC;yBACrC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,KAAK,GAAG,cAAc,EAAxB,CAAwB,CAAC;yBACrC,GAAG,CAAC,UAAC,EAAO;4BAAL,YAAG;wBAAO,OAAA,GAAG;oBAAH,CAAG,CAAC,CAAA;oBAElB,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,UAAA,GAAG,IAAI,OAAA,IAAI,QAAQ,CACrD,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAC/B,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAC/B,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAC/B,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAChC,EAL0C,CAK1C,CAAC,CAAA;oBACI,aAAa,GAAG,OAAO;yBAC1B,GAAG,CAAC,UAAC,GAAG,EAAE,CAAC,IAAK,OAAA,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAA7C,CAA6C,CAAC,CAAA;oBAC3D,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,UAAA,GAAG,IAAI,OAAA,MAAM,CAAC,GAAG,CAAC,EAAX,CAAW,CAAC,CAAA;oBAElD,UAAU,GAAU,EAAE,CAAA;oBACtB,WAAW,GAAa,EAAE,CAAA;oBAC1B,MAAM,GAAc,EAAE,CAAA;oBAE1B,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;wBAE5B,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;wBACT,UAAU,GAAG,iBAAiB,CAClC,aAAa,EACb,cAAc,EACd,GAAG,EACH,KAAK,CACN,CAAA;wBACD,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAA;wBAElC,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,UAAA,GAAG,IAAI,OAAA,aAAa,CAAC,GAAG,CAAC,EAAlB,CAAkB,CAAC,CAAA;wBACtD,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,UAAA,GAAG,IAAI,OAAA,cAAc,CAAC,GAAG,CAAC,EAAnB,CAAmB,CAAC,CAAA;wBACxD,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,UAAC,GAAG,EAAE,CAAC;4BAC7B,OAAA,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,KAAK;gCAC5B,OAAA,IAAI,KAAK,CACP,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EACvF,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAC5F;4BAHD,CAGC,CACF;wBALD,CAKC,CACF,CAAA;qBACF;oBAED,QAAQ,CAAC,OAAO,CAAC,UAAA,CAAC;wBAChB,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAA;wBACnB,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;wBAClB,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;oBACpB,CAAC,CAAC,CAAA;oBAEF,sBAAO;4BACL,KAAK,EAAE,UAAU;4BACjB,MAAM,EAAE,WAAW;4BACnB,MAAM,QAAA;yBACP,EAAA;;;;CAEF"}
\ No newline at end of file
diff --git a/build/es6/mtcnn/types.d.ts b/build/es6/mtcnn/types.d.ts
deleted file mode 100644
index fc2b533d..00000000
--- a/build/es6/mtcnn/types.d.ts
+++ /dev/null
@@ -1,34 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { ConvParams, FCParams } from 'tfjs-tiny-yolov2';
-export declare type SharedParams = {
- conv1: ConvParams;
- prelu1_alpha: tf.Tensor1D;
- conv2: ConvParams;
- prelu2_alpha: tf.Tensor1D;
- conv3: ConvParams;
- prelu3_alpha: tf.Tensor1D;
-};
-export declare type PNetParams = SharedParams & {
- conv4_1: ConvParams;
- conv4_2: ConvParams;
-};
-export declare type RNetParams = SharedParams & {
- fc1: FCParams;
- prelu4_alpha: tf.Tensor1D;
- fc2_1: FCParams;
- fc2_2: FCParams;
-};
-export declare type ONetParams = SharedParams & {
- conv4: ConvParams;
- prelu4_alpha: tf.Tensor1D;
- fc1: FCParams;
- prelu5_alpha: tf.Tensor1D;
- fc2_1: FCParams;
- fc2_2: FCParams;
- fc2_3: FCParams;
-};
-export declare type NetParams = {
- pnet: PNetParams;
- rnet: RNetParams;
- onet: ONetParams;
-};
diff --git a/build/es6/mtcnn/types.js b/build/es6/mtcnn/types.js
deleted file mode 100644
index 5b2306a4..00000000
--- a/build/es6/mtcnn/types.js
+++ /dev/null
@@ -1 +0,0 @@
-//# sourceMappingURL=types.js.map
\ No newline at end of file
diff --git a/build/es6/mtcnn/types.js.map b/build/es6/mtcnn/types.js.map
deleted file mode 100644
index a06d2049..00000000
--- a/build/es6/mtcnn/types.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/mtcnn/types.ts"],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/build/es6/ssdMobilenetv1/SsdMobilenetv1.d.ts b/build/es6/ssdMobilenetv1/SsdMobilenetv1.d.ts
deleted file mode 100644
index 3749d1c0..00000000
--- a/build/es6/ssdMobilenetv1/SsdMobilenetv1.d.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { NetInput, NeuralNetwork, TNetInput } from 'tfjs-image-recognition-base';
-import { FaceDetection } from '../classes/FaceDetection';
-import { ISsdMobilenetv1Options } from './SsdMobilenetv1Options';
-import { NetParams } from './types';
-export declare class SsdMobilenetv1 extends NeuralNetwork {
- constructor();
- forwardInput(input: NetInput): {
- boxes: tf.Tensor[];
- scores: tf.Tensor[];
- };
- forward(input: TNetInput): Promise<{
- boxes: tf.Tensor[];
- scores: tf.Tensor[];
- }>;
- locateFaces(input: TNetInput, options?: ISsdMobilenetv1Options): Promise;
- protected loadQuantizedParams(uri: string | undefined): Promise<{
- params: NetParams;
- paramMappings: {
- originalPath?: string | undefined;
- paramPath: string;
- }[];
- }>;
- protected extractParams(weights: Float32Array): {
- params: NetParams;
- paramMappings: {
- originalPath?: string | undefined;
- paramPath: string;
- }[];
- };
-}
diff --git a/build/es6/ssdMobilenetv1/SsdMobilenetv1.js b/build/es6/ssdMobilenetv1/SsdMobilenetv1.js
deleted file mode 100644
index 4dc28b48..00000000
--- a/build/es6/ssdMobilenetv1/SsdMobilenetv1.js
+++ /dev/null
@@ -1,102 +0,0 @@
-import * as tslib_1 from "tslib";
-import * as tf from '@tensorflow/tfjs-core';
-import { NeuralNetwork, Rect, toNetInput } from 'tfjs-image-recognition-base';
-import { FaceDetection } from '../classes/FaceDetection';
-import { extractParams } from './extractParams';
-import { loadQuantizedParams } from './loadQuantizedParams';
-import { mobileNetV1 } from './mobileNetV1';
-import { nonMaxSuppression } from './nonMaxSuppression';
-import { outputLayer } from './outputLayer';
-import { predictionLayer } from './predictionLayer';
-import { SsdMobilenetv1Options } from './SsdMobilenetv1Options';
-var SsdMobilenetv1 = /** @class */ (function (_super) {
- tslib_1.__extends(SsdMobilenetv1, _super);
- function SsdMobilenetv1() {
- return _super.call(this, 'SsdMobilenetv1') || this;
- }
- SsdMobilenetv1.prototype.forwardInput = function (input) {
- var params = this.params;
- if (!params) {
- throw new Error('SsdMobilenetv1 - load model before inference');
- }
- return tf.tidy(function () {
- var batchTensor = input.toBatchTensor(512, false).toFloat();
- var x = tf.sub(tf.mul(batchTensor, tf.scalar(0.007843137718737125)), tf.scalar(1));
- var features = mobileNetV1(x, params.mobilenetv1);
- var _a = predictionLayer(features.out, features.conv11, params.prediction_layer), boxPredictions = _a.boxPredictions, classPredictions = _a.classPredictions;
- return outputLayer(boxPredictions, classPredictions, params.output_layer);
- });
- };
- SsdMobilenetv1.prototype.forward = function (input) {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var _a;
- return tslib_1.__generator(this, function (_b) {
- switch (_b.label) {
- case 0:
- _a = this.forwardInput;
- return [4 /*yield*/, toNetInput(input)];
- case 1: return [2 /*return*/, _a.apply(this, [_b.sent()])];
- }
- });
- });
- };
- SsdMobilenetv1.prototype.locateFaces = function (input, options) {
- if (options === void 0) { options = {}; }
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var _a, maxResults, minConfidence, netInput, _b, _boxes, _scores, boxes, scores, i, scoresData, _c, _d, iouThreshold, indices, reshapedDims, inputSize, padX, padY, results;
- return tslib_1.__generator(this, function (_e) {
- switch (_e.label) {
- case 0:
- _a = new SsdMobilenetv1Options(options), maxResults = _a.maxResults, minConfidence = _a.minConfidence;
- return [4 /*yield*/, toNetInput(input)];
- case 1:
- netInput = _e.sent();
- _b = this.forwardInput(netInput), _boxes = _b.boxes, _scores = _b.scores;
- boxes = _boxes[0];
- scores = _scores[0];
- for (i = 1; i < _boxes.length; i++) {
- _boxes[i].dispose();
- _scores[i].dispose();
- }
- _d = (_c = Array).from;
- return [4 /*yield*/, scores.data()];
- case 2:
- scoresData = _d.apply(_c, [_e.sent()]);
- iouThreshold = 0.5;
- indices = nonMaxSuppression(boxes, scoresData, maxResults, iouThreshold, minConfidence);
- reshapedDims = netInput.getReshapedInputDimensions(0);
- inputSize = netInput.inputSize;
- padX = inputSize / reshapedDims.width;
- padY = inputSize / reshapedDims.height;
- results = indices
- .map(function (idx) {
- var _a = [
- Math.max(0, boxes.get(idx, 0)),
- Math.min(1.0, boxes.get(idx, 2))
- ].map(function (val) { return val * padY; }), top = _a[0], bottom = _a[1];
- var _b = [
- Math.max(0, boxes.get(idx, 1)),
- Math.min(1.0, boxes.get(idx, 3))
- ].map(function (val) { return val * padX; }), left = _b[0], right = _b[1];
- return new FaceDetection(scoresData[idx], new Rect(left, top, right - left, bottom - top), {
- height: netInput.getInputHeight(0),
- width: netInput.getInputWidth(0)
- });
- });
- boxes.dispose();
- scores.dispose();
- return [2 /*return*/, results];
- }
- });
- });
- };
- SsdMobilenetv1.prototype.loadQuantizedParams = function (uri) {
- return loadQuantizedParams(uri);
- };
- SsdMobilenetv1.prototype.extractParams = function (weights) {
- return extractParams(weights);
- };
- return SsdMobilenetv1;
-}(NeuralNetwork));
-export { SsdMobilenetv1 };
-//# sourceMappingURL=SsdMobilenetv1.js.map
\ No newline at end of file
diff --git a/build/es6/ssdMobilenetv1/SsdMobilenetv1.js.map b/build/es6/ssdMobilenetv1/SsdMobilenetv1.js.map
deleted file mode 100644
index a78b8e04..00000000
--- a/build/es6/ssdMobilenetv1/SsdMobilenetv1.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"SsdMobilenetv1.js","sourceRoot":"","sources":["../../../src/ssdMobilenetv1/SsdMobilenetv1.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/build/es6/ssdMobilenetv1/SsdMobilenetv1Options.d.ts b/build/es6/ssdMobilenetv1/SsdMobilenetv1Options.d.ts
deleted file mode 100644
index 3f710f3e..00000000
--- a/build/es6/ssdMobilenetv1/SsdMobilenetv1Options.d.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-export interface ISsdMobilenetv1Options {
- minConfidence?: number;
- maxResults?: number;
-}
-export declare class SsdMobilenetv1Options {
- protected _name: string;
- private _minConfidence;
- private _maxResults;
- constructor({minConfidence, maxResults}?: ISsdMobilenetv1Options);
- readonly minConfidence: number;
- readonly maxResults: number;
-}
diff --git a/build/es6/ssdMobilenetv1/SsdMobilenetv1Options.js b/build/es6/ssdMobilenetv1/SsdMobilenetv1Options.js
deleted file mode 100644
index 411cdc43..00000000
--- a/build/es6/ssdMobilenetv1/SsdMobilenetv1Options.js
+++ /dev/null
@@ -1,27 +0,0 @@
-var SsdMobilenetv1Options = /** @class */ (function () {
- function SsdMobilenetv1Options(_a) {
- var _b = _a === void 0 ? {} : _a, minConfidence = _b.minConfidence, maxResults = _b.maxResults;
- this._name = 'SsdMobilenetv1Options';
- this._minConfidence = minConfidence || 0.5;
- this._maxResults = maxResults || 100;
- if (typeof this._minConfidence !== 'number' || this._minConfidence <= 0 || this._minConfidence >= 1) {
- throw new Error(this._name + " - expected minConfidence to be a number between 0 and 1");
- }
- if (typeof this._maxResults !== 'number') {
- throw new Error(this._name + " - expected maxResults to be a number");
- }
- }
- Object.defineProperty(SsdMobilenetv1Options.prototype, "minConfidence", {
- get: function () { return this._minConfidence; },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(SsdMobilenetv1Options.prototype, "maxResults", {
- get: function () { return this._maxResults; },
- enumerable: true,
- configurable: true
- });
- return SsdMobilenetv1Options;
-}());
-export { SsdMobilenetv1Options };
-//# sourceMappingURL=SsdMobilenetv1Options.js.map
\ No newline at end of file
diff --git a/build/es6/ssdMobilenetv1/SsdMobilenetv1Options.js.map b/build/es6/ssdMobilenetv1/SsdMobilenetv1Options.js.map
deleted file mode 100644
index 2bc8a56c..00000000
--- a/build/es6/ssdMobilenetv1/SsdMobilenetv1Options.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"SsdMobilenetv1Options.js","sourceRoot":"","sources":["../../../src/ssdMobilenetv1/SsdMobilenetv1Options.ts"],"names":[],"mappings":"AAKA;IAME,+BAAY,EAA0D;YAA1D,4BAA0D,EAAxD,gCAAa,EAAE,0BAAU;QAL7B,UAAK,GAAW,uBAAuB,CAAA;QAM/C,IAAI,CAAC,cAAc,GAAG,aAAa,IAAI,GAAG,CAAA;QAC1C,IAAI,CAAC,WAAW,GAAG,UAAU,IAAI,GAAG,CAAA;QAEpC,IAAI,OAAO,IAAI,CAAC,cAAc,KAAK,QAAQ,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,EAAE;YACnG,MAAM,IAAI,KAAK,CAAI,IAAI,CAAC,KAAK,6DAA0D,CAAC,CAAA;SACzF;QAED,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,EAAE;YACxC,MAAM,IAAI,KAAK,CAAI,IAAI,CAAC,KAAK,0CAAuC,CAAC,CAAA;SACtE;IACH,CAAC;IAED,sBAAI,gDAAa;aAAjB,cAA8B,OAAO,IAAI,CAAC,cAAc,CAAA,CAAC,CAAC;;;OAAA;IAC1D,sBAAI,6CAAU;aAAd,cAA2B,OAAO,IAAI,CAAC,WAAW,CAAA,CAAC,CAAC;;;OAAA;IACtD,4BAAC;AAAD,CAAC,AArBD,IAqBC"}
\ No newline at end of file
diff --git a/build/es6/ssdMobilenetv1/boxPredictionLayer.d.ts b/build/es6/ssdMobilenetv1/boxPredictionLayer.d.ts
deleted file mode 100644
index bed8cd15..00000000
--- a/build/es6/ssdMobilenetv1/boxPredictionLayer.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { BoxPredictionParams } from './types';
-export declare function boxPredictionLayer(x: tf.Tensor4D, params: BoxPredictionParams): {
- boxPredictionEncoding: tf.Tensor;
- classPrediction: tf.Tensor;
-};
diff --git a/build/es6/ssdMobilenetv1/boxPredictionLayer.js b/build/es6/ssdMobilenetv1/boxPredictionLayer.js
deleted file mode 100644
index f5995bb1..00000000
--- a/build/es6/ssdMobilenetv1/boxPredictionLayer.js
+++ /dev/null
@@ -1,14 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { convLayer } from 'tfjs-tiny-yolov2';
-export function boxPredictionLayer(x, params) {
- return tf.tidy(function () {
- var batchSize = x.shape[0];
- var boxPredictionEncoding = tf.reshape(convLayer(x, params.box_encoding_predictor), [batchSize, -1, 1, 4]);
- var classPrediction = tf.reshape(convLayer(x, params.class_predictor), [batchSize, -1, 3]);
- return {
- boxPredictionEncoding: boxPredictionEncoding,
- classPrediction: classPrediction
- };
- });
-}
-//# sourceMappingURL=boxPredictionLayer.js.map
\ No newline at end of file
diff --git a/build/es6/ssdMobilenetv1/boxPredictionLayer.js.map b/build/es6/ssdMobilenetv1/boxPredictionLayer.js.map
deleted file mode 100644
index 03faa5fb..00000000
--- a/build/es6/ssdMobilenetv1/boxPredictionLayer.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"boxPredictionLayer.js","sourceRoot":"","sources":["../../../src/ssdMobilenetv1/boxPredictionLayer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAK7C,MAAM,6BACJ,CAAc,EACd,MAA2B;IAE3B,OAAO,EAAE,CAAC,IAAI,CAAC;QAEb,IAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAE5B,IAAM,qBAAqB,GAAG,EAAE,CAAC,OAAO,CACtC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,sBAAsB,CAAC,EAC3C,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CACtB,CAAA;QACD,IAAM,eAAe,GAAG,EAAE,CAAC,OAAO,CAChC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,EACpC,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CACnB,CAAA;QAED,OAAO;YACL,qBAAqB,uBAAA;YACrB,eAAe,iBAAA;SAChB,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC"}
\ No newline at end of file
diff --git a/build/es6/ssdMobilenetv1/extractParams.d.ts b/build/es6/ssdMobilenetv1/extractParams.d.ts
deleted file mode 100644
index 40295777..00000000
--- a/build/es6/ssdMobilenetv1/extractParams.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { ParamMapping } from 'tfjs-image-recognition-base';
-import { NetParams } from './types';
-export declare function extractParams(weights: Float32Array): {
- params: NetParams;
- paramMappings: ParamMapping[];
-};
diff --git a/build/es6/ssdMobilenetv1/extractParams.js b/build/es6/ssdMobilenetv1/extractParams.js
deleted file mode 100644
index 6a82f4ef..00000000
--- a/build/es6/ssdMobilenetv1/extractParams.js
+++ /dev/null
@@ -1,159 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { extractWeightsFactory } from 'tfjs-image-recognition-base';
-function extractorsFactory(extractWeights, paramMappings) {
- function extractDepthwiseConvParams(numChannels, mappedPrefix) {
- var filters = tf.tensor4d(extractWeights(3 * 3 * numChannels), [3, 3, numChannels, 1]);
- var batch_norm_scale = tf.tensor1d(extractWeights(numChannels));
- var batch_norm_offset = tf.tensor1d(extractWeights(numChannels));
- var batch_norm_mean = tf.tensor1d(extractWeights(numChannels));
- var batch_norm_variance = tf.tensor1d(extractWeights(numChannels));
- paramMappings.push({ paramPath: mappedPrefix + "/filters" }, { paramPath: mappedPrefix + "/batch_norm_scale" }, { paramPath: mappedPrefix + "/batch_norm_offset" }, { paramPath: mappedPrefix + "/batch_norm_mean" }, { paramPath: mappedPrefix + "/batch_norm_variance" });
- return {
- filters: filters,
- batch_norm_scale: batch_norm_scale,
- batch_norm_offset: batch_norm_offset,
- batch_norm_mean: batch_norm_mean,
- batch_norm_variance: batch_norm_variance
- };
- }
- function extractConvParams(channelsIn, channelsOut, filterSize, mappedPrefix, isPointwiseConv) {
- var filters = tf.tensor4d(extractWeights(channelsIn * channelsOut * filterSize * filterSize), [filterSize, filterSize, channelsIn, channelsOut]);
- var bias = tf.tensor1d(extractWeights(channelsOut));
- paramMappings.push({ paramPath: mappedPrefix + "/filters" }, { paramPath: mappedPrefix + "/" + (isPointwiseConv ? 'batch_norm_offset' : 'bias') });
- return { filters: filters, bias: bias };
- }
- function extractPointwiseConvParams(channelsIn, channelsOut, filterSize, mappedPrefix) {
- var _a = extractConvParams(channelsIn, channelsOut, filterSize, mappedPrefix, true), filters = _a.filters, bias = _a.bias;
- return {
- filters: filters,
- batch_norm_offset: bias
- };
- }
- function extractConvPairParams(channelsIn, channelsOut, mappedPrefix) {
- var depthwise_conv = extractDepthwiseConvParams(channelsIn, mappedPrefix + "/depthwise_conv");
- var pointwise_conv = extractPointwiseConvParams(channelsIn, channelsOut, 1, mappedPrefix + "/pointwise_conv");
- return { depthwise_conv: depthwise_conv, pointwise_conv: pointwise_conv };
- }
- function extractMobilenetV1Params() {
- var conv_0 = extractPointwiseConvParams(3, 32, 3, 'mobilenetv1/conv_0');
- var conv_1 = extractConvPairParams(32, 64, 'mobilenetv1/conv_1');
- var conv_2 = extractConvPairParams(64, 128, 'mobilenetv1/conv_2');
- var conv_3 = extractConvPairParams(128, 128, 'mobilenetv1/conv_3');
- var conv_4 = extractConvPairParams(128, 256, 'mobilenetv1/conv_4');
- var conv_5 = extractConvPairParams(256, 256, 'mobilenetv1/conv_5');
- var conv_6 = extractConvPairParams(256, 512, 'mobilenetv1/conv_6');
- var conv_7 = extractConvPairParams(512, 512, 'mobilenetv1/conv_7');
- var conv_8 = extractConvPairParams(512, 512, 'mobilenetv1/conv_8');
- var conv_9 = extractConvPairParams(512, 512, 'mobilenetv1/conv_9');
- var conv_10 = extractConvPairParams(512, 512, 'mobilenetv1/conv_10');
- var conv_11 = extractConvPairParams(512, 512, 'mobilenetv1/conv_11');
- var conv_12 = extractConvPairParams(512, 1024, 'mobilenetv1/conv_12');
- var conv_13 = extractConvPairParams(1024, 1024, 'mobilenetv1/conv_13');
- return {
- conv_0: conv_0,
- conv_1: conv_1,
- conv_2: conv_2,
- conv_3: conv_3,
- conv_4: conv_4,
- conv_5: conv_5,
- conv_6: conv_6,
- conv_7: conv_7,
- conv_8: conv_8,
- conv_9: conv_9,
- conv_10: conv_10,
- conv_11: conv_11,
- conv_12: conv_12,
- conv_13: conv_13
- };
- }
- function extractPredictionLayerParams() {
- var conv_0 = extractPointwiseConvParams(1024, 256, 1, 'prediction_layer/conv_0');
- var conv_1 = extractPointwiseConvParams(256, 512, 3, 'prediction_layer/conv_1');
- var conv_2 = extractPointwiseConvParams(512, 128, 1, 'prediction_layer/conv_2');
- var conv_3 = extractPointwiseConvParams(128, 256, 3, 'prediction_layer/conv_3');
- var conv_4 = extractPointwiseConvParams(256, 128, 1, 'prediction_layer/conv_4');
- var conv_5 = extractPointwiseConvParams(128, 256, 3, 'prediction_layer/conv_5');
- var conv_6 = extractPointwiseConvParams(256, 64, 1, 'prediction_layer/conv_6');
- var conv_7 = extractPointwiseConvParams(64, 128, 3, 'prediction_layer/conv_7');
- var box_encoding_0_predictor = extractConvParams(512, 12, 1, 'prediction_layer/box_predictor_0/box_encoding_predictor');
- var class_predictor_0 = extractConvParams(512, 9, 1, 'prediction_layer/box_predictor_0/class_predictor');
- var box_encoding_1_predictor = extractConvParams(1024, 24, 1, 'prediction_layer/box_predictor_1/box_encoding_predictor');
- var class_predictor_1 = extractConvParams(1024, 18, 1, 'prediction_layer/box_predictor_1/class_predictor');
- var box_encoding_2_predictor = extractConvParams(512, 24, 1, 'prediction_layer/box_predictor_2/box_encoding_predictor');
- var class_predictor_2 = extractConvParams(512, 18, 1, 'prediction_layer/box_predictor_2/class_predictor');
- var box_encoding_3_predictor = extractConvParams(256, 24, 1, 'prediction_layer/box_predictor_3/box_encoding_predictor');
- var class_predictor_3 = extractConvParams(256, 18, 1, 'prediction_layer/box_predictor_3/class_predictor');
- var box_encoding_4_predictor = extractConvParams(256, 24, 1, 'prediction_layer/box_predictor_4/box_encoding_predictor');
- var class_predictor_4 = extractConvParams(256, 18, 1, 'prediction_layer/box_predictor_4/class_predictor');
- var box_encoding_5_predictor = extractConvParams(128, 24, 1, 'prediction_layer/box_predictor_5/box_encoding_predictor');
- var class_predictor_5 = extractConvParams(128, 18, 1, 'prediction_layer/box_predictor_5/class_predictor');
- var box_predictor_0 = {
- box_encoding_predictor: box_encoding_0_predictor,
- class_predictor: class_predictor_0
- };
- var box_predictor_1 = {
- box_encoding_predictor: box_encoding_1_predictor,
- class_predictor: class_predictor_1
- };
- var box_predictor_2 = {
- box_encoding_predictor: box_encoding_2_predictor,
- class_predictor: class_predictor_2
- };
- var box_predictor_3 = {
- box_encoding_predictor: box_encoding_3_predictor,
- class_predictor: class_predictor_3
- };
- var box_predictor_4 = {
- box_encoding_predictor: box_encoding_4_predictor,
- class_predictor: class_predictor_4
- };
- var box_predictor_5 = {
- box_encoding_predictor: box_encoding_5_predictor,
- class_predictor: class_predictor_5
- };
- return {
- conv_0: conv_0,
- conv_1: conv_1,
- conv_2: conv_2,
- conv_3: conv_3,
- conv_4: conv_4,
- conv_5: conv_5,
- conv_6: conv_6,
- conv_7: conv_7,
- box_predictor_0: box_predictor_0,
- box_predictor_1: box_predictor_1,
- box_predictor_2: box_predictor_2,
- box_predictor_3: box_predictor_3,
- box_predictor_4: box_predictor_4,
- box_predictor_5: box_predictor_5
- };
- }
- return {
- extractMobilenetV1Params: extractMobilenetV1Params,
- extractPredictionLayerParams: extractPredictionLayerParams
- };
-}
-export function extractParams(weights) {
- var paramMappings = [];
- var _a = extractWeightsFactory(weights), extractWeights = _a.extractWeights, getRemainingWeights = _a.getRemainingWeights;
- var _b = extractorsFactory(extractWeights, paramMappings), extractMobilenetV1Params = _b.extractMobilenetV1Params, extractPredictionLayerParams = _b.extractPredictionLayerParams;
- var mobilenetv1 = extractMobilenetV1Params();
- var prediction_layer = extractPredictionLayerParams();
- var extra_dim = tf.tensor3d(extractWeights(5118 * 4), [1, 5118, 4]);
- var output_layer = {
- extra_dim: extra_dim
- };
- paramMappings.push({ paramPath: 'output_layer/extra_dim' });
- if (getRemainingWeights().length !== 0) {
- throw new Error("weights remaing after extract: " + getRemainingWeights().length);
- }
- return {
- params: {
- mobilenetv1: mobilenetv1,
- prediction_layer: prediction_layer,
- output_layer: output_layer
- },
- paramMappings: paramMappings
- };
-}
-//# sourceMappingURL=extractParams.js.map
\ No newline at end of file
diff --git a/build/es6/ssdMobilenetv1/extractParams.js.map b/build/es6/ssdMobilenetv1/extractParams.js.map
deleted file mode 100644
index b14ea5a6..00000000
--- a/build/es6/ssdMobilenetv1/extractParams.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"extractParams.js","sourceRoot":"","sources":["../../../src/ssdMobilenetv1/extractParams.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/build/es6/ssdMobilenetv1/index.d.ts b/build/es6/ssdMobilenetv1/index.d.ts
deleted file mode 100644
index b83f4792..00000000
--- a/build/es6/ssdMobilenetv1/index.d.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import { SsdMobilenetv1 } from './SsdMobilenetv1';
-export * from './SsdMobilenetv1';
-export * from './SsdMobilenetv1Options';
-export declare function createSsdMobilenetv1(weights: Float32Array): SsdMobilenetv1;
-export declare function createFaceDetectionNet(weights: Float32Array): SsdMobilenetv1;
-export declare class FaceDetectionNet extends SsdMobilenetv1 {
-}
diff --git a/build/es6/ssdMobilenetv1/index.js b/build/es6/ssdMobilenetv1/index.js
deleted file mode 100644
index eb81abea..00000000
--- a/build/es6/ssdMobilenetv1/index.js
+++ /dev/null
@@ -1,22 +0,0 @@
-import * as tslib_1 from "tslib";
-import { SsdMobilenetv1 } from './SsdMobilenetv1';
-export * from './SsdMobilenetv1';
-export * from './SsdMobilenetv1Options';
-export function createSsdMobilenetv1(weights) {
- var net = new SsdMobilenetv1();
- net.extractWeights(weights);
- return net;
-}
-export function createFaceDetectionNet(weights) {
- return createSsdMobilenetv1(weights);
-}
-// alias for backward compatibily
-var FaceDetectionNet = /** @class */ (function (_super) {
- tslib_1.__extends(FaceDetectionNet, _super);
- function FaceDetectionNet() {
- return _super !== null && _super.apply(this, arguments) || this;
- }
- return FaceDetectionNet;
-}(SsdMobilenetv1));
-export { FaceDetectionNet };
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/build/es6/ssdMobilenetv1/index.js.map b/build/es6/ssdMobilenetv1/index.js.map
deleted file mode 100644
index b97e564b..00000000
--- a/build/es6/ssdMobilenetv1/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ssdMobilenetv1/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AAExC,MAAM,+BAA+B,OAAqB;IACxD,IAAM,GAAG,GAAG,IAAI,cAAc,EAAE,CAAA;IAChC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;IAC3B,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,MAAM,iCAAiC,OAAqB;IAC1D,OAAO,oBAAoB,CAAC,OAAO,CAAC,CAAA;AACtC,CAAC;AAED,iCAAiC;AACjC;IAAsC,4CAAc;IAApD;;IAAsD,CAAC;IAAD,uBAAC;AAAD,CAAC,AAAvD,CAAsC,cAAc,GAAG"}
\ No newline at end of file
diff --git a/build/es6/ssdMobilenetv1/loadQuantizedParams.d.ts b/build/es6/ssdMobilenetv1/loadQuantizedParams.d.ts
deleted file mode 100644
index c5e1dc44..00000000
--- a/build/es6/ssdMobilenetv1/loadQuantizedParams.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { ParamMapping } from 'tfjs-image-recognition-base';
-import { NetParams } from './types';
-export declare function loadQuantizedParams(uri: string | undefined): Promise<{
- params: NetParams;
- paramMappings: ParamMapping[];
-}>;
diff --git a/build/es6/ssdMobilenetv1/loadQuantizedParams.js b/build/es6/ssdMobilenetv1/loadQuantizedParams.js
deleted file mode 100644
index 61e9e4bc..00000000
--- a/build/es6/ssdMobilenetv1/loadQuantizedParams.js
+++ /dev/null
@@ -1,111 +0,0 @@
-import * as tslib_1 from "tslib";
-import { disposeUnusedWeightTensors, extractWeightEntryFactory, isTensor3D, loadWeightMap, } from 'tfjs-image-recognition-base';
-var DEFAULT_MODEL_NAME = 'ssd_mobilenetv1_model';
-function extractorsFactory(weightMap, paramMappings) {
- var extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);
- function extractPointwiseConvParams(prefix, idx, mappedPrefix) {
- var filters = extractWeightEntry(prefix + "/Conv2d_" + idx + "_pointwise/weights", 4, mappedPrefix + "/filters");
- var batch_norm_offset = extractWeightEntry(prefix + "/Conv2d_" + idx + "_pointwise/convolution_bn_offset", 1, mappedPrefix + "/batch_norm_offset");
- return { filters: filters, batch_norm_offset: batch_norm_offset };
- }
- function extractConvPairParams(idx) {
- var mappedPrefix = "mobilenetv1/conv_" + idx;
- var prefixDepthwiseConv = "MobilenetV1/Conv2d_" + idx + "_depthwise";
- var mappedPrefixDepthwiseConv = mappedPrefix + "/depthwise_conv";
- var mappedPrefixPointwiseConv = mappedPrefix + "/pointwise_conv";
- var filters = extractWeightEntry(prefixDepthwiseConv + "/depthwise_weights", 4, mappedPrefixDepthwiseConv + "/filters");
- var batch_norm_scale = extractWeightEntry(prefixDepthwiseConv + "/BatchNorm/gamma", 1, mappedPrefixDepthwiseConv + "/batch_norm_scale");
- var batch_norm_offset = extractWeightEntry(prefixDepthwiseConv + "/BatchNorm/beta", 1, mappedPrefixDepthwiseConv + "/batch_norm_offset");
- var batch_norm_mean = extractWeightEntry(prefixDepthwiseConv + "/BatchNorm/moving_mean", 1, mappedPrefixDepthwiseConv + "/batch_norm_mean");
- var batch_norm_variance = extractWeightEntry(prefixDepthwiseConv + "/BatchNorm/moving_variance", 1, mappedPrefixDepthwiseConv + "/batch_norm_variance");
- return {
- depthwise_conv: {
- filters: filters,
- batch_norm_scale: batch_norm_scale,
- batch_norm_offset: batch_norm_offset,
- batch_norm_mean: batch_norm_mean,
- batch_norm_variance: batch_norm_variance
- },
- pointwise_conv: extractPointwiseConvParams('MobilenetV1', idx, mappedPrefixPointwiseConv)
- };
- }
- function extractMobilenetV1Params() {
- return {
- conv_0: extractPointwiseConvParams('MobilenetV1', 0, 'mobilenetv1/conv_0'),
- conv_1: extractConvPairParams(1),
- conv_2: extractConvPairParams(2),
- conv_3: extractConvPairParams(3),
- conv_4: extractConvPairParams(4),
- conv_5: extractConvPairParams(5),
- conv_6: extractConvPairParams(6),
- conv_7: extractConvPairParams(7),
- conv_8: extractConvPairParams(8),
- conv_9: extractConvPairParams(9),
- conv_10: extractConvPairParams(10),
- conv_11: extractConvPairParams(11),
- conv_12: extractConvPairParams(12),
- conv_13: extractConvPairParams(13)
- };
- }
- function extractConvParams(prefix, mappedPrefix) {
- var filters = extractWeightEntry(prefix + "/weights", 4, mappedPrefix + "/filters");
- var bias = extractWeightEntry(prefix + "/biases", 1, mappedPrefix + "/bias");
- return { filters: filters, bias: bias };
- }
- function extractBoxPredictorParams(idx) {
- var box_encoding_predictor = extractConvParams("Prediction/BoxPredictor_" + idx + "/BoxEncodingPredictor", "prediction_layer/box_predictor_" + idx + "/box_encoding_predictor");
- var class_predictor = extractConvParams("Prediction/BoxPredictor_" + idx + "/ClassPredictor", "prediction_layer/box_predictor_" + idx + "/class_predictor");
- return { box_encoding_predictor: box_encoding_predictor, class_predictor: class_predictor };
- }
- function extractPredictionLayerParams() {
- return {
- conv_0: extractPointwiseConvParams('Prediction', 0, 'prediction_layer/conv_0'),
- conv_1: extractPointwiseConvParams('Prediction', 1, 'prediction_layer/conv_1'),
- conv_2: extractPointwiseConvParams('Prediction', 2, 'prediction_layer/conv_2'),
- conv_3: extractPointwiseConvParams('Prediction', 3, 'prediction_layer/conv_3'),
- conv_4: extractPointwiseConvParams('Prediction', 4, 'prediction_layer/conv_4'),
- conv_5: extractPointwiseConvParams('Prediction', 5, 'prediction_layer/conv_5'),
- conv_6: extractPointwiseConvParams('Prediction', 6, 'prediction_layer/conv_6'),
- conv_7: extractPointwiseConvParams('Prediction', 7, 'prediction_layer/conv_7'),
- box_predictor_0: extractBoxPredictorParams(0),
- box_predictor_1: extractBoxPredictorParams(1),
- box_predictor_2: extractBoxPredictorParams(2),
- box_predictor_3: extractBoxPredictorParams(3),
- box_predictor_4: extractBoxPredictorParams(4),
- box_predictor_5: extractBoxPredictorParams(5)
- };
- }
- return {
- extractMobilenetV1Params: extractMobilenetV1Params,
- extractPredictionLayerParams: extractPredictionLayerParams
- };
-}
-export function loadQuantizedParams(uri) {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var weightMap, paramMappings, _a, extractMobilenetV1Params, extractPredictionLayerParams, extra_dim, params;
- return tslib_1.__generator(this, function (_b) {
- switch (_b.label) {
- case 0: return [4 /*yield*/, loadWeightMap(uri, DEFAULT_MODEL_NAME)];
- case 1:
- weightMap = _b.sent();
- paramMappings = [];
- _a = extractorsFactory(weightMap, paramMappings), extractMobilenetV1Params = _a.extractMobilenetV1Params, extractPredictionLayerParams = _a.extractPredictionLayerParams;
- extra_dim = weightMap['Output/extra_dim'];
- paramMappings.push({ originalPath: 'Output/extra_dim', paramPath: 'output_layer/extra_dim' });
- if (!isTensor3D(extra_dim)) {
- throw new Error("expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have " + extra_dim);
- }
- params = {
- mobilenetv1: extractMobilenetV1Params(),
- prediction_layer: extractPredictionLayerParams(),
- output_layer: {
- extra_dim: extra_dim
- }
- };
- disposeUnusedWeightTensors(weightMap, paramMappings);
- return [2 /*return*/, { params: params, paramMappings: paramMappings }];
- }
- });
- });
-}
-//# sourceMappingURL=loadQuantizedParams.js.map
\ No newline at end of file
diff --git a/build/es6/ssdMobilenetv1/loadQuantizedParams.js.map b/build/es6/ssdMobilenetv1/loadQuantizedParams.js.map
deleted file mode 100644
index 1fc7025d..00000000
--- a/build/es6/ssdMobilenetv1/loadQuantizedParams.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"loadQuantizedParams.js","sourceRoot":"","sources":["../../../src/ssdMobilenetv1/loadQuantizedParams.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/build/es6/ssdMobilenetv1/mobileNetV1.d.ts b/build/es6/ssdMobilenetv1/mobileNetV1.d.ts
deleted file mode 100644
index 05f5c5fe..00000000
--- a/build/es6/ssdMobilenetv1/mobileNetV1.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { MobileNetV1 } from './types';
-export declare function mobileNetV1(x: tf.Tensor4D, params: MobileNetV1.Params): {
- out: tf.Tensor;
- conv11: any;
-};
diff --git a/build/es6/ssdMobilenetv1/mobileNetV1.js b/build/es6/ssdMobilenetv1/mobileNetV1.js
deleted file mode 100644
index e6dac5e1..00000000
--- a/build/es6/ssdMobilenetv1/mobileNetV1.js
+++ /dev/null
@@ -1,51 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { pointwiseConvLayer } from './pointwiseConvLayer';
-var epsilon = 0.0010000000474974513;
-function depthwiseConvLayer(x, params, strides) {
- return tf.tidy(function () {
- var out = tf.depthwiseConv2d(x, params.filters, strides, 'same');
- out = tf.batchNormalization(out, params.batch_norm_mean, params.batch_norm_variance, epsilon, params.batch_norm_scale, params.batch_norm_offset);
- return tf.clipByValue(out, 0, 6);
- });
-}
-function getStridesForLayerIdx(layerIdx) {
- return [2, 4, 6, 12].some(function (idx) { return idx === layerIdx; }) ? [2, 2] : [1, 1];
-}
-export function mobileNetV1(x, params) {
- return tf.tidy(function () {
- var conv11 = null;
- var out = pointwiseConvLayer(x, params.conv_0, [2, 2]);
- var convPairParams = [
- params.conv_1,
- params.conv_2,
- params.conv_3,
- params.conv_4,
- params.conv_5,
- params.conv_6,
- params.conv_7,
- params.conv_8,
- params.conv_9,
- params.conv_10,
- params.conv_11,
- params.conv_12,
- params.conv_13
- ];
- convPairParams.forEach(function (param, i) {
- var layerIdx = i + 1;
- var depthwiseConvStrides = getStridesForLayerIdx(layerIdx);
- out = depthwiseConvLayer(out, param.depthwise_conv, depthwiseConvStrides);
- out = pointwiseConvLayer(out, param.pointwise_conv, [1, 1]);
- if (layerIdx === 11) {
- conv11 = out;
- }
- });
- if (conv11 === null) {
- throw new Error('mobileNetV1 - output of conv layer 11 is null');
- }
- return {
- out: out,
- conv11: conv11
- };
- });
-}
-//# sourceMappingURL=mobileNetV1.js.map
\ No newline at end of file
diff --git a/build/es6/ssdMobilenetv1/mobileNetV1.js.map b/build/es6/ssdMobilenetv1/mobileNetV1.js.map
deleted file mode 100644
index d803e587..00000000
--- a/build/es6/ssdMobilenetv1/mobileNetV1.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"mobileNetV1.js","sourceRoot":"","sources":["../../../src/ssdMobilenetv1/mobileNetV1.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,IAAM,OAAO,GAAG,qBAAqB,CAAA;AAErC,4BACE,CAAc,EACd,MAAuC,EACvC,OAAyB;IAEzB,OAAO,EAAE,CAAC,IAAI,CAAC;QAEb,IAAI,GAAG,GAAG,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;QAChE,GAAG,GAAG,EAAE,CAAC,kBAAkB,CACzB,GAAG,EACH,MAAM,CAAC,eAAe,EACtB,MAAM,CAAC,mBAAmB,EAC1B,OAAO,EACP,MAAM,CAAC,gBAAgB,EACvB,MAAM,CAAC,iBAAiB,CACzB,CAAA;QACD,OAAO,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAElC,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,+BAA+B,QAAgB;IAC7C,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,KAAK,QAAQ,EAAhB,CAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AACtE,CAAC;AAED,MAAM,sBAAsB,CAAc,EAAE,MAA0B;IACpE,OAAO,EAAE,CAAC,IAAI,CAAC;QAEb,IAAI,MAAM,GAAG,IAAI,CAAA;QACjB,IAAI,GAAG,GAAG,kBAAkB,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAEtD,IAAM,cAAc,GAAG;YACrB,MAAM,CAAC,MAAM;YACb,MAAM,CAAC,MAAM;YACb,MAAM,CAAC,MAAM;YACb,MAAM,CAAC,MAAM;YACb,MAAM,CAAC,MAAM;YACb,MAAM,CAAC,MAAM;YACb,MAAM,CAAC,MAAM;YACb,MAAM,CAAC,MAAM;YACb,MAAM,CAAC,MAAM;YACb,MAAM,CAAC,OAAO;YACd,MAAM,CAAC,OAAO;YACd,MAAM,CAAC,OAAO;YACd,MAAM,CAAC,OAAO;SACf,CAAA;QAED,cAAc,CAAC,OAAO,CAAC,UAAC,KAAK,EAAE,CAAC;YAC9B,IAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAA;YACtB,IAAM,oBAAoB,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAA;YAC5D,GAAG,GAAG,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAA;YACzE,GAAG,GAAG,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;YAC3D,IAAI,QAAQ,KAAK,EAAE,EAAE;gBACnB,MAAM,GAAG,GAAG,CAAA;aACb;QACH,CAAC,CAAC,CAAA;QAEF,IAAI,MAAM,KAAK,IAAI,EAAE;YACnB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;SACjE;QAED,OAAO;YACL,GAAG,KAAA;YACH,MAAM,EAAE,MAAa;SACtB,CAAA;IAEH,CAAC,CAAC,CAAA;AACJ,CAAC"}
\ No newline at end of file
diff --git a/build/es6/ssdMobilenetv1/nonMaxSuppression.d.ts b/build/es6/ssdMobilenetv1/nonMaxSuppression.d.ts
deleted file mode 100644
index 6b215a26..00000000
--- a/build/es6/ssdMobilenetv1/nonMaxSuppression.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-export declare function nonMaxSuppression(boxes: tf.Tensor2D, scores: number[], maxOutputSize: number, iouThreshold: number, scoreThreshold: number): number[];
diff --git a/build/es6/ssdMobilenetv1/nonMaxSuppression.js b/build/es6/ssdMobilenetv1/nonMaxSuppression.js
deleted file mode 100644
index dc1b72fa..00000000
--- a/build/es6/ssdMobilenetv1/nonMaxSuppression.js
+++ /dev/null
@@ -1,53 +0,0 @@
-export function nonMaxSuppression(boxes, scores, maxOutputSize, iouThreshold, scoreThreshold) {
- var numBoxes = boxes.shape[0];
- var outputSize = Math.min(maxOutputSize, numBoxes);
- var candidates = scores
- .map(function (score, boxIndex) { return ({ score: score, boxIndex: boxIndex }); })
- .filter(function (c) { return c.score > scoreThreshold; })
- .sort(function (c1, c2) { return c2.score - c1.score; });
- var suppressFunc = function (x) { return x <= iouThreshold ? 1 : 0; };
- var selected = [];
- candidates.forEach(function (c) {
- if (selected.length >= outputSize) {
- return;
- }
- var originalScore = c.score;
- for (var j = selected.length - 1; j >= 0; --j) {
- var iou = IOU(boxes, c.boxIndex, selected[j]);
- if (iou === 0.0) {
- continue;
- }
- c.score *= suppressFunc(iou);
- if (c.score <= scoreThreshold) {
- break;
- }
- }
- if (originalScore === c.score) {
- selected.push(c.boxIndex);
- }
- });
- return selected;
-}
-function IOU(boxes, i, j) {
- var yminI = Math.min(boxes.get(i, 0), boxes.get(i, 2));
- var xminI = Math.min(boxes.get(i, 1), boxes.get(i, 3));
- var ymaxI = Math.max(boxes.get(i, 0), boxes.get(i, 2));
- var xmaxI = Math.max(boxes.get(i, 1), boxes.get(i, 3));
- var yminJ = Math.min(boxes.get(j, 0), boxes.get(j, 2));
- var xminJ = Math.min(boxes.get(j, 1), boxes.get(j, 3));
- var ymaxJ = Math.max(boxes.get(j, 0), boxes.get(j, 2));
- var xmaxJ = Math.max(boxes.get(j, 1), boxes.get(j, 3));
- var areaI = (ymaxI - yminI) * (xmaxI - xminI);
- var areaJ = (ymaxJ - yminJ) * (xmaxJ - xminJ);
- if (areaI <= 0 || areaJ <= 0) {
- return 0.0;
- }
- var intersectionYmin = Math.max(yminI, yminJ);
- var intersectionXmin = Math.max(xminI, xminJ);
- var intersectionYmax = Math.min(ymaxI, ymaxJ);
- var intersectionXmax = Math.min(xmaxI, xmaxJ);
- var intersectionArea = Math.max(intersectionYmax - intersectionYmin, 0.0) *
- Math.max(intersectionXmax - intersectionXmin, 0.0);
- return intersectionArea / (areaI + areaJ - intersectionArea);
-}
-//# sourceMappingURL=nonMaxSuppression.js.map
\ No newline at end of file
diff --git a/build/es6/ssdMobilenetv1/nonMaxSuppression.js.map b/build/es6/ssdMobilenetv1/nonMaxSuppression.js.map
deleted file mode 100644
index 57cce56b..00000000
--- a/build/es6/ssdMobilenetv1/nonMaxSuppression.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"nonMaxSuppression.js","sourceRoot":"","sources":["../../../src/ssdMobilenetv1/nonMaxSuppression.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/build/es6/ssdMobilenetv1/outputLayer.d.ts b/build/es6/ssdMobilenetv1/outputLayer.d.ts
deleted file mode 100644
index 9ce8d135..00000000
--- a/build/es6/ssdMobilenetv1/outputLayer.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { OutputLayerParams } from './types';
-export declare function outputLayer(boxPredictions: tf.Tensor4D, classPredictions: tf.Tensor4D, params: OutputLayerParams): {
- boxes: tf.Tensor[];
- scores: tf.Tensor[];
-};
diff --git a/build/es6/ssdMobilenetv1/outputLayer.js b/build/es6/ssdMobilenetv1/outputLayer.js
deleted file mode 100644
index ebae3195..00000000
--- a/build/es6/ssdMobilenetv1/outputLayer.js
+++ /dev/null
@@ -1,47 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-function getCenterCoordinatesAndSizesLayer(x) {
- var vec = tf.unstack(tf.transpose(x, [1, 0]));
- var sizes = [
- tf.sub(vec[2], vec[0]),
- tf.sub(vec[3], vec[1])
- ];
- var centers = [
- tf.add(vec[0], tf.div(sizes[0], tf.scalar(2))),
- tf.add(vec[1], tf.div(sizes[1], tf.scalar(2)))
- ];
- return {
- sizes: sizes,
- centers: centers
- };
-}
-function decodeBoxesLayer(x0, x1) {
- var _a = getCenterCoordinatesAndSizesLayer(x0), sizes = _a.sizes, centers = _a.centers;
- var vec = tf.unstack(tf.transpose(x1, [1, 0]));
- var div0_out = tf.div(tf.mul(tf.exp(tf.div(vec[2], tf.scalar(5))), sizes[0]), tf.scalar(2));
- var add0_out = tf.add(tf.mul(tf.div(vec[0], tf.scalar(10)), sizes[0]), centers[0]);
- var div1_out = tf.div(tf.mul(tf.exp(tf.div(vec[3], tf.scalar(5))), sizes[1]), tf.scalar(2));
- var add1_out = tf.add(tf.mul(tf.div(vec[1], tf.scalar(10)), sizes[1]), centers[1]);
- return tf.transpose(tf.stack([
- tf.sub(add0_out, div0_out),
- tf.sub(add1_out, div1_out),
- tf.add(add0_out, div0_out),
- tf.add(add1_out, div1_out)
- ]), [1, 0]);
-}
-export function outputLayer(boxPredictions, classPredictions, params) {
- return tf.tidy(function () {
- var batchSize = boxPredictions.shape[0];
- var boxes = decodeBoxesLayer(tf.reshape(tf.tile(params.extra_dim, [batchSize, 1, 1]), [-1, 4]), tf.reshape(boxPredictions, [-1, 4]));
- boxes = tf.reshape(boxes, [batchSize, (boxes.shape[0] / batchSize), 4]);
- var scoresAndClasses = tf.sigmoid(tf.slice(classPredictions, [0, 0, 1], [-1, -1, -1]));
- var scores = tf.slice(scoresAndClasses, [0, 0, 0], [-1, -1, 1]);
- scores = tf.reshape(scores, [batchSize, scores.shape[1]]);
- var boxesByBatch = tf.unstack(boxes);
- var scoresByBatch = tf.unstack(scores);
- return {
- boxes: boxesByBatch,
- scores: scoresByBatch
- };
- });
-}
-//# sourceMappingURL=outputLayer.js.map
\ No newline at end of file
diff --git a/build/es6/ssdMobilenetv1/outputLayer.js.map b/build/es6/ssdMobilenetv1/outputLayer.js.map
deleted file mode 100644
index 422d3484..00000000
--- a/build/es6/ssdMobilenetv1/outputLayer.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"outputLayer.js","sourceRoot":"","sources":["../../../src/ssdMobilenetv1/outputLayer.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/build/es6/ssdMobilenetv1/pointwiseConvLayer.d.ts b/build/es6/ssdMobilenetv1/pointwiseConvLayer.d.ts
deleted file mode 100644
index f7a92d55..00000000
--- a/build/es6/ssdMobilenetv1/pointwiseConvLayer.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { PointwiseConvParams } from './types';
-export declare function pointwiseConvLayer(x: tf.Tensor4D, params: PointwiseConvParams, strides: [number, number]): tf.Tensor;
diff --git a/build/es6/ssdMobilenetv1/pointwiseConvLayer.js b/build/es6/ssdMobilenetv1/pointwiseConvLayer.js
deleted file mode 100644
index 41845f29..00000000
--- a/build/es6/ssdMobilenetv1/pointwiseConvLayer.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-export function pointwiseConvLayer(x, params, strides) {
- return tf.tidy(function () {
- var out = tf.conv2d(x, params.filters, strides, 'same');
- out = tf.add(out, params.batch_norm_offset);
- return tf.clipByValue(out, 0, 6);
- });
-}
-//# sourceMappingURL=pointwiseConvLayer.js.map
\ No newline at end of file
diff --git a/build/es6/ssdMobilenetv1/pointwiseConvLayer.js.map b/build/es6/ssdMobilenetv1/pointwiseConvLayer.js.map
deleted file mode 100644
index c22a27be..00000000
--- a/build/es6/ssdMobilenetv1/pointwiseConvLayer.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"pointwiseConvLayer.js","sourceRoot":"","sources":["../../../src/ssdMobilenetv1/pointwiseConvLayer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAI5C,MAAM,6BACJ,CAAc,EACd,MAA2B,EAC3B,OAAyB;IAEzB,OAAO,EAAE,CAAC,IAAI,CAAC;QAEb,IAAI,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;QACvD,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAA;QAC3C,OAAO,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAElC,CAAC,CAAC,CAAA;AACJ,CAAC"}
\ No newline at end of file
diff --git a/build/es6/ssdMobilenetv1/predictionLayer.d.ts b/build/es6/ssdMobilenetv1/predictionLayer.d.ts
deleted file mode 100644
index 3f136062..00000000
--- a/build/es6/ssdMobilenetv1/predictionLayer.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { PredictionLayerParams } from './types';
-export declare function predictionLayer(x: tf.Tensor4D, conv11: tf.Tensor4D, params: PredictionLayerParams): {
- boxPredictions: tf.Tensor;
- classPredictions: tf.Tensor;
-};
diff --git a/build/es6/ssdMobilenetv1/predictionLayer.js b/build/es6/ssdMobilenetv1/predictionLayer.js
deleted file mode 100644
index 9ebad6bb..00000000
--- a/build/es6/ssdMobilenetv1/predictionLayer.js
+++ /dev/null
@@ -1,42 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { boxPredictionLayer } from './boxPredictionLayer';
-import { pointwiseConvLayer } from './pointwiseConvLayer';
-export function predictionLayer(x, conv11, params) {
- return tf.tidy(function () {
- var conv0 = pointwiseConvLayer(x, params.conv_0, [1, 1]);
- var conv1 = pointwiseConvLayer(conv0, params.conv_1, [2, 2]);
- var conv2 = pointwiseConvLayer(conv1, params.conv_2, [1, 1]);
- var conv3 = pointwiseConvLayer(conv2, params.conv_3, [2, 2]);
- var conv4 = pointwiseConvLayer(conv3, params.conv_4, [1, 1]);
- var conv5 = pointwiseConvLayer(conv4, params.conv_5, [2, 2]);
- var conv6 = pointwiseConvLayer(conv5, params.conv_6, [1, 1]);
- var conv7 = pointwiseConvLayer(conv6, params.conv_7, [2, 2]);
- var boxPrediction0 = boxPredictionLayer(conv11, params.box_predictor_0);
- var boxPrediction1 = boxPredictionLayer(x, params.box_predictor_1);
- var boxPrediction2 = boxPredictionLayer(conv1, params.box_predictor_2);
- var boxPrediction3 = boxPredictionLayer(conv3, params.box_predictor_3);
- var boxPrediction4 = boxPredictionLayer(conv5, params.box_predictor_4);
- var boxPrediction5 = boxPredictionLayer(conv7, params.box_predictor_5);
- var boxPredictions = tf.concat([
- boxPrediction0.boxPredictionEncoding,
- boxPrediction1.boxPredictionEncoding,
- boxPrediction2.boxPredictionEncoding,
- boxPrediction3.boxPredictionEncoding,
- boxPrediction4.boxPredictionEncoding,
- boxPrediction5.boxPredictionEncoding
- ], 1);
- var classPredictions = tf.concat([
- boxPrediction0.classPrediction,
- boxPrediction1.classPrediction,
- boxPrediction2.classPrediction,
- boxPrediction3.classPrediction,
- boxPrediction4.classPrediction,
- boxPrediction5.classPrediction
- ], 1);
- return {
- boxPredictions: boxPredictions,
- classPredictions: classPredictions
- };
- });
-}
-//# sourceMappingURL=predictionLayer.js.map
\ No newline at end of file
diff --git a/build/es6/ssdMobilenetv1/predictionLayer.js.map b/build/es6/ssdMobilenetv1/predictionLayer.js.map
deleted file mode 100644
index 7a53c797..00000000
--- a/build/es6/ssdMobilenetv1/predictionLayer.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"predictionLayer.js","sourceRoot":"","sources":["../../../src/ssdMobilenetv1/predictionLayer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,MAAM,0BACJ,CAAc,EACd,MAAmB,EACnB,MAA6B;IAE7B,OAAO,EAAE,CAAC,IAAI,CAAC;QAEb,IAAM,KAAK,GAAG,kBAAkB,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC1D,IAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC9D,IAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC9D,IAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC9D,IAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC9D,IAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC9D,IAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC9D,IAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAE9D,IAAM,cAAc,GAAG,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC,CAAA;QACzE,IAAM,cAAc,GAAG,kBAAkB,CAAC,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,CAAA;QACpE,IAAM,cAAc,GAAG,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,eAAe,CAAC,CAAA;QACxE,IAAM,cAAc,GAAG,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,eAAe,CAAC,CAAA;QACxE,IAAM,cAAc,GAAG,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,eAAe,CAAC,CAAA;QACxE,IAAM,cAAc,GAAG,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,eAAe,CAAC,CAAA;QAExE,IAAM,cAAc,GAAG,EAAE,CAAC,MAAM,CAAC;YAC/B,cAAc,CAAC,qBAAqB;YACpC,cAAc,CAAC,qBAAqB;YACpC,cAAc,CAAC,qBAAqB;YACpC,cAAc,CAAC,qBAAqB;YACpC,cAAc,CAAC,qBAAqB;YACpC,cAAc,CAAC,qBAAqB;SACrC,EAAE,CAAC,CAAgB,CAAA;QAEpB,IAAM,gBAAgB,GAAG,EAAE,CAAC,MAAM,CAAC;YACjC,cAAc,CAAC,eAAe;YAC9B,cAAc,CAAC,eAAe;YAC9B,cAAc,CAAC,eAAe;YAC9B,cAAc,CAAC,eAAe;YAC9B,cAAc,CAAC,eAAe;YAC9B,cAAc,CAAC,eAAe;SAC/B,EAAE,CAAC,CAAgB,CAAA;QAEpB,OAAO;YACL,cAAc,gBAAA;YACd,gBAAgB,kBAAA;SACjB,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC"}
\ No newline at end of file
diff --git a/build/es6/ssdMobilenetv1/types.d.ts b/build/es6/ssdMobilenetv1/types.d.ts
deleted file mode 100644
index f0eed191..00000000
--- a/build/es6/ssdMobilenetv1/types.d.ts
+++ /dev/null
@@ -1,63 +0,0 @@
-import * as tf from '@tensorflow/tfjs-core';
-import { ConvParams } from 'tfjs-tiny-yolov2';
-export declare type PointwiseConvParams = {
- filters: tf.Tensor4D;
- batch_norm_offset: tf.Tensor1D;
-};
-export declare namespace MobileNetV1 {
- type DepthwiseConvParams = {
- filters: tf.Tensor4D;
- batch_norm_scale: tf.Tensor1D;
- batch_norm_offset: tf.Tensor1D;
- batch_norm_mean: tf.Tensor1D;
- batch_norm_variance: tf.Tensor1D;
- };
- type ConvPairParams = {
- depthwise_conv: DepthwiseConvParams;
- pointwise_conv: PointwiseConvParams;
- };
- type Params = {
- conv_0: PointwiseConvParams;
- conv_1: ConvPairParams;
- conv_2: ConvPairParams;
- conv_3: ConvPairParams;
- conv_4: ConvPairParams;
- conv_5: ConvPairParams;
- conv_6: ConvPairParams;
- conv_7: ConvPairParams;
- conv_8: ConvPairParams;
- conv_9: ConvPairParams;
- conv_10: ConvPairParams;
- conv_11: ConvPairParams;
- conv_12: ConvPairParams;
- conv_13: ConvPairParams;
- };
-}
-export declare type BoxPredictionParams = {
- box_encoding_predictor: ConvParams;
- class_predictor: ConvParams;
-};
-export declare type PredictionLayerParams = {
- conv_0: PointwiseConvParams;
- conv_1: PointwiseConvParams;
- conv_2: PointwiseConvParams;
- conv_3: PointwiseConvParams;
- conv_4: PointwiseConvParams;
- conv_5: PointwiseConvParams;
- conv_6: PointwiseConvParams;
- conv_7: PointwiseConvParams;
- box_predictor_0: BoxPredictionParams;
- box_predictor_1: BoxPredictionParams;
- box_predictor_2: BoxPredictionParams;
- box_predictor_3: BoxPredictionParams;
- box_predictor_4: BoxPredictionParams;
- box_predictor_5: BoxPredictionParams;
-};
-export declare type OutputLayerParams = {
- extra_dim: tf.Tensor3D;
-};
-export declare type NetParams = {
- mobilenetv1: MobileNetV1.Params;
- prediction_layer: PredictionLayerParams;
- output_layer: OutputLayerParams;
-};
diff --git a/build/es6/ssdMobilenetv1/types.js b/build/es6/ssdMobilenetv1/types.js
deleted file mode 100644
index 5b2306a4..00000000
--- a/build/es6/ssdMobilenetv1/types.js
+++ /dev/null
@@ -1 +0,0 @@
-//# sourceMappingURL=types.js.map
\ No newline at end of file
diff --git a/build/es6/ssdMobilenetv1/types.js.map b/build/es6/ssdMobilenetv1/types.js.map
deleted file mode 100644
index 977d82a6..00000000
--- a/build/es6/ssdMobilenetv1/types.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/ssdMobilenetv1/types.ts"],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/build/es6/tinyFaceDetector/TinyFaceDetector.d.ts b/build/es6/tinyFaceDetector/TinyFaceDetector.d.ts
deleted file mode 100644
index 36b07c85..00000000
--- a/build/es6/tinyFaceDetector/TinyFaceDetector.d.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import { Point, TNetInput } from 'tfjs-image-recognition-base';
-import { TinyYolov2 as TinyYolov2Base, ITinyYolov2Options } from 'tfjs-tiny-yolov2';
-import { FaceDetection } from '../classes';
-export declare class TinyFaceDetector extends TinyYolov2Base {
- constructor();
- readonly anchors: Point[];
- locateFaces(input: TNetInput, forwardParams: ITinyYolov2Options): Promise;
- protected loadQuantizedParams(modelUri: string | undefined): any;
-}
diff --git a/build/es6/tinyFaceDetector/TinyFaceDetector.js b/build/es6/tinyFaceDetector/TinyFaceDetector.js
deleted file mode 100644
index 822f9a0b..00000000
--- a/build/es6/tinyFaceDetector/TinyFaceDetector.js
+++ /dev/null
@@ -1,48 +0,0 @@
-import * as tslib_1 from "tslib";
-import { TinyYolov2 as TinyYolov2Base } from 'tfjs-tiny-yolov2';
-import { FaceDetection } from '../classes';
-import { BOX_ANCHORS, DEFAULT_MODEL_NAME, IOU_THRESHOLD, MEAN_RGB } from './const';
-var TinyFaceDetector = /** @class */ (function (_super) {
- tslib_1.__extends(TinyFaceDetector, _super);
- function TinyFaceDetector() {
- var _this = this;
- var config = {
- withSeparableConvs: true,
- iouThreshold: IOU_THRESHOLD,
- classes: ['face'],
- anchors: BOX_ANCHORS,
- meanRgb: MEAN_RGB,
- isFirstLayerConv2d: true,
- filterSizes: [3, 16, 32, 64, 128, 256, 512]
- };
- _this = _super.call(this, config) || this;
- return _this;
- }
- Object.defineProperty(TinyFaceDetector.prototype, "anchors", {
- get: function () {
- return this.config.anchors;
- },
- enumerable: true,
- configurable: true
- });
- TinyFaceDetector.prototype.locateFaces = function (input, forwardParams) {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var objectDetections;
- return tslib_1.__generator(this, function (_a) {
- switch (_a.label) {
- case 0: return [4 /*yield*/, this.detect(input, forwardParams)];
- case 1:
- objectDetections = _a.sent();
- return [2 /*return*/, objectDetections.map(function (det) { return new FaceDetection(det.score, det.relativeBox, { width: det.imageWidth, height: det.imageHeight }); })];
- }
- });
- });
- };
- TinyFaceDetector.prototype.loadQuantizedParams = function (modelUri) {
- var defaultModelName = DEFAULT_MODEL_NAME;
- return _super.prototype.loadQuantizedParams.call(this, modelUri, defaultModelName);
- };
- return TinyFaceDetector;
-}(TinyYolov2Base));
-export { TinyFaceDetector };
-//# sourceMappingURL=TinyFaceDetector.js.map
\ No newline at end of file
diff --git a/build/es6/tinyFaceDetector/TinyFaceDetector.js.map b/build/es6/tinyFaceDetector/TinyFaceDetector.js.map
deleted file mode 100644
index 5d416d41..00000000
--- a/build/es6/tinyFaceDetector/TinyFaceDetector.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"TinyFaceDetector.js","sourceRoot":"","sources":["../../../src/tinyFaceDetector/TinyFaceDetector.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,IAAI,cAAc,EAAsB,MAAM,kBAAkB,CAAC;AAEpF,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnF;IAAsC,4CAAc;IAElD;QAAA,iBAYC;QAXC,IAAM,MAAM,GAAG;YACb,kBAAkB,EAAE,IAAI;YACxB,YAAY,EAAE,aAAa;YAC3B,OAAO,EAAE,CAAC,MAAM,CAAC;YACjB,OAAO,EAAE,WAAW;YACpB,OAAO,EAAE,QAAQ;YACjB,kBAAkB,EAAE,IAAI;YACxB,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;SAC5C,CAAA;QAED,QAAA,kBAAM,MAAM,CAAC,SAAA;;IACf,CAAC;IAED,sBAAW,qCAAO;aAAlB;YACE,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAA;QAC5B,CAAC;;;OAAA;IAEY,sCAAW,GAAxB,UAAyB,KAAgB,EAAE,aAAiC;;;;;4BACjD,qBAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,EAAA;;wBAA1D,gBAAgB,GAAG,SAAuC;wBAChE,sBAAO,gBAAgB,CAAC,GAAG,CAAC,UAAA,GAAG,IAAI,OAAA,IAAI,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,EAAjG,CAAiG,CAAC,EAAA;;;;KACtI;IAES,8CAAmB,GAA7B,UAA8B,QAA4B;QACxD,IAAM,gBAAgB,GAAG,kBAAkB,CAAA;QAC3C,OAAO,iBAAM,mBAAmB,YAAC,QAAQ,EAAE,gBAAgB,CAAQ,CAAA;IACrE,CAAC;IACH,uBAAC;AAAD,CAAC,AA7BD,CAAsC,cAAc,GA6BnD"}
\ No newline at end of file
diff --git a/build/es6/tinyFaceDetector/TinyFaceDetectorOptions.d.ts b/build/es6/tinyFaceDetector/TinyFaceDetectorOptions.d.ts
deleted file mode 100644
index 65d5d654..00000000
--- a/build/es6/tinyFaceDetector/TinyFaceDetectorOptions.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { ITinyYolov2Options, TinyYolov2Options } from 'tfjs-tiny-yolov2';
-export interface ITinyFaceDetectorOptions extends ITinyYolov2Options {
-}
-export declare class TinyFaceDetectorOptions extends TinyYolov2Options {
- protected _name: string;
-}
diff --git a/build/es6/tinyFaceDetector/TinyFaceDetectorOptions.js b/build/es6/tinyFaceDetector/TinyFaceDetectorOptions.js
deleted file mode 100644
index 4e48a40e..00000000
--- a/build/es6/tinyFaceDetector/TinyFaceDetectorOptions.js
+++ /dev/null
@@ -1,13 +0,0 @@
-import * as tslib_1 from "tslib";
-import { TinyYolov2Options } from 'tfjs-tiny-yolov2';
-var TinyFaceDetectorOptions = /** @class */ (function (_super) {
- tslib_1.__extends(TinyFaceDetectorOptions, _super);
- function TinyFaceDetectorOptions() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this._name = 'TinyFaceDetectorOptions';
- return _this;
- }
- return TinyFaceDetectorOptions;
-}(TinyYolov2Options));
-export { TinyFaceDetectorOptions };
-//# sourceMappingURL=TinyFaceDetectorOptions.js.map
\ No newline at end of file
diff --git a/build/es6/tinyFaceDetector/TinyFaceDetectorOptions.js.map b/build/es6/tinyFaceDetector/TinyFaceDetectorOptions.js.map
deleted file mode 100644
index 1adcfc67..00000000
--- a/build/es6/tinyFaceDetector/TinyFaceDetectorOptions.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"TinyFaceDetectorOptions.js","sourceRoot":"","sources":["../../../src/tinyFaceDetector/TinyFaceDetectorOptions.ts"],"names":[],"mappings":";AAAA,OAAO,EAAsB,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAIzE;IAA6C,mDAAiB;IAA9D;QAAA,qEAEC;QADW,WAAK,GAAW,yBAAyB,CAAA;;IACrD,CAAC;IAAD,8BAAC;AAAD,CAAC,AAFD,CAA6C,iBAAiB,GAE7D"}
\ No newline at end of file
diff --git a/build/es6/tinyFaceDetector/const.d.ts b/build/es6/tinyFaceDetector/const.d.ts
deleted file mode 100644
index 85ee0383..00000000
--- a/build/es6/tinyFaceDetector/const.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import { Point } from 'tfjs-image-recognition-base';
-export declare const IOU_THRESHOLD = 0.4;
-export declare const BOX_ANCHORS: Point[];
-export declare const MEAN_RGB: [number, number, number];
-export declare const DEFAULT_MODEL_NAME = "tiny_face_detector_model";
diff --git a/build/es6/tinyFaceDetector/const.js b/build/es6/tinyFaceDetector/const.js
deleted file mode 100644
index 3a2be9ed..00000000
--- a/build/es6/tinyFaceDetector/const.js
+++ /dev/null
@@ -1,12 +0,0 @@
-import { Point } from 'tfjs-image-recognition-base';
-export var IOU_THRESHOLD = 0.4;
-export var BOX_ANCHORS = [
- new Point(1.603231, 2.094468),
- new Point(6.041143, 7.080126),
- new Point(2.882459, 3.518061),
- new Point(4.266906, 5.178857),
- new Point(9.041765, 10.66308)
-];
-export var MEAN_RGB = [117.001, 114.697, 97.404];
-export var DEFAULT_MODEL_NAME = 'tiny_face_detector_model';
-//# sourceMappingURL=const.js.map
\ No newline at end of file
diff --git a/build/es6/tinyFaceDetector/const.js.map b/build/es6/tinyFaceDetector/const.js.map
deleted file mode 100644
index 56b8aa5f..00000000
--- a/build/es6/tinyFaceDetector/const.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"const.js","sourceRoot":"","sources":["../../../src/tinyFaceDetector/const.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAEpD,MAAM,CAAC,IAAM,aAAa,GAAG,GAAG,CAAA;AAEhC,MAAM,CAAC,IAAM,WAAW,GAAG;IACzB,IAAI,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC7B,IAAI,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC7B,IAAI,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC7B,IAAI,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC7B,IAAI,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC9B,CAAA;AAED,MAAM,CAAC,IAAM,QAAQ,GAA6B,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;AAE5E,MAAM,CAAC,IAAM,kBAAkB,GAAG,0BAA0B,CAAA"}
\ No newline at end of file
diff --git a/build/es6/tinyFaceDetector/index.d.ts b/build/es6/tinyFaceDetector/index.d.ts
deleted file mode 100644
index cde93ca0..00000000
--- a/build/es6/tinyFaceDetector/index.d.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import { TinyFaceDetector } from './TinyFaceDetector';
-export * from './TinyFaceDetector';
-export * from './TinyFaceDetectorOptions';
-export declare function createTinyFaceDetector(weights: Float32Array): TinyFaceDetector;
diff --git a/build/es6/tinyFaceDetector/index.js b/build/es6/tinyFaceDetector/index.js
deleted file mode 100644
index 9c17b2de..00000000
--- a/build/es6/tinyFaceDetector/index.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import { TinyFaceDetector } from './TinyFaceDetector';
-export * from './TinyFaceDetector';
-export * from './TinyFaceDetectorOptions';
-export function createTinyFaceDetector(weights) {
- var net = new TinyFaceDetector();
- net.extractWeights(weights);
- return net;
-}
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/build/es6/tinyFaceDetector/index.js.map b/build/es6/tinyFaceDetector/index.js.map
deleted file mode 100644
index 8792c136..00000000
--- a/build/es6/tinyFaceDetector/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tinyFaceDetector/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAE1C,MAAM,iCAAiC,OAAqB;IAC1D,IAAM,GAAG,GAAG,IAAI,gBAAgB,EAAE,CAAA;IAClC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;IAC3B,OAAO,GAAG,CAAA;AACZ,CAAC"}
\ No newline at end of file
diff --git a/build/es6/tinyYolov2/TinyYolov2.d.ts b/build/es6/tinyYolov2/TinyYolov2.d.ts
deleted file mode 100644
index 28161b6f..00000000
--- a/build/es6/tinyYolov2/TinyYolov2.d.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { Point, TNetInput } from 'tfjs-image-recognition-base';
-import { ITinyYolov2Options, TinyYolov2 as TinyYolov2Base } from 'tfjs-tiny-yolov2';
-import { FaceDetection } from '../classes';
-export declare class TinyYolov2 extends TinyYolov2Base {
- constructor(withSeparableConvs?: boolean);
- readonly withSeparableConvs: boolean;
- readonly anchors: Point[];
- locateFaces(input: TNetInput, forwardParams: ITinyYolov2Options): Promise;
- protected loadQuantizedParams(modelUri: string | undefined): any;
-}
diff --git a/build/es6/tinyYolov2/TinyYolov2.js b/build/es6/tinyYolov2/TinyYolov2.js
deleted file mode 100644
index 3e66556c..00000000
--- a/build/es6/tinyYolov2/TinyYolov2.js
+++ /dev/null
@@ -1,60 +0,0 @@
-import * as tslib_1 from "tslib";
-import { TinyYolov2 as TinyYolov2Base } from 'tfjs-tiny-yolov2';
-import { FaceDetection } from '../classes';
-import { BOX_ANCHORS, BOX_ANCHORS_SEPARABLE, DEFAULT_MODEL_NAME, DEFAULT_MODEL_NAME_SEPARABLE_CONV, IOU_THRESHOLD, MEAN_RGB_SEPARABLE, } from './const';
-var TinyYolov2 = /** @class */ (function (_super) {
- tslib_1.__extends(TinyYolov2, _super);
- function TinyYolov2(withSeparableConvs) {
- if (withSeparableConvs === void 0) { withSeparableConvs = true; }
- var _this = this;
- var config = Object.assign({}, {
- withSeparableConvs: withSeparableConvs,
- iouThreshold: IOU_THRESHOLD,
- classes: ['face']
- }, withSeparableConvs
- ? {
- anchors: BOX_ANCHORS_SEPARABLE,
- meanRgb: MEAN_RGB_SEPARABLE
- }
- : {
- anchors: BOX_ANCHORS,
- withClassScores: true
- });
- _this = _super.call(this, config) || this;
- return _this;
- }
- Object.defineProperty(TinyYolov2.prototype, "withSeparableConvs", {
- get: function () {
- return this.config.withSeparableConvs;
- },
- enumerable: true,
- configurable: true
- });
- Object.defineProperty(TinyYolov2.prototype, "anchors", {
- get: function () {
- return this.config.anchors;
- },
- enumerable: true,
- configurable: true
- });
- TinyYolov2.prototype.locateFaces = function (input, forwardParams) {
- return tslib_1.__awaiter(this, void 0, void 0, function () {
- var objectDetections;
- return tslib_1.__generator(this, function (_a) {
- switch (_a.label) {
- case 0: return [4 /*yield*/, this.detect(input, forwardParams)];
- case 1:
- objectDetections = _a.sent();
- return [2 /*return*/, objectDetections.map(function (det) { return new FaceDetection(det.score, det.relativeBox, { width: det.imageWidth, height: det.imageHeight }); })];
- }
- });
- });
- };
- TinyYolov2.prototype.loadQuantizedParams = function (modelUri) {
- var defaultModelName = this.withSeparableConvs ? DEFAULT_MODEL_NAME_SEPARABLE_CONV : DEFAULT_MODEL_NAME;
- return _super.prototype.loadQuantizedParams.call(this, modelUri, defaultModelName);
- };
- return TinyYolov2;
-}(TinyYolov2Base));
-export { TinyYolov2 };
-//# sourceMappingURL=TinyYolov2.js.map
\ No newline at end of file
diff --git a/build/es6/tinyYolov2/TinyYolov2.js.map b/build/es6/tinyYolov2/TinyYolov2.js.map
deleted file mode 100644
index b08f4c6e..00000000
--- a/build/es6/tinyYolov2/TinyYolov2.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"TinyYolov2.js","sourceRoot":"","sources":["../../../src/tinyYolov2/TinyYolov2.ts"],"names":[],"mappings":";AACA,OAAO,EAAsB,UAAU,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEpF,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EACL,WAAW,EACX,qBAAqB,EACrB,kBAAkB,EAClB,iCAAiC,EACjC,aAAa,EACb,kBAAkB,GACnB,MAAM,SAAS,CAAC;AAEjB;IAAgC,sCAAc;IAE5C,oBAAY,kBAAkC;QAAlC,mCAAA,EAAA,yBAAkC;QAA9C,iBAkBC;QAjBC,IAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE;YAC/B,kBAAkB,oBAAA;YAClB,YAAY,EAAE,aAAa;YAC3B,OAAO,EAAE,CAAC,MAAM,CAAC;SAClB,EACD,kBAAkB;YAChB,CAAC,CAAC;gBACA,OAAO,EAAE,qBAAqB;gBAC9B,OAAO,EAAE,kBAAkB;aAC5B;YACD,CAAC,CAAC;gBACA,OAAO,EAAE,WAAW;gBACpB,eAAe,EAAE,IAAI;aACtB,CACF,CAAA;QAED,QAAA,kBAAM,MAAM,CAAC,SAAA;;IACf,CAAC;IAED,sBAAW,0CAAkB;aAA7B;YACE,OAAO,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAA;QACvC,CAAC;;;OAAA;IAED,sBAAW,+BAAO;aAAlB;YACE,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAA;QAC5B,CAAC;;;OAAA;IAEY,gCAAW,GAAxB,UAAyB,KAAgB,EAAE,aAAiC;;;;;4BACjD,qBAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,EAAA;;wBAA1D,gBAAgB,GAAG,SAAuC;wBAChE,sBAAO,gBAAgB,CAAC,GAAG,CAAC,UAAA,GAAG,IAAI,OAAA,IAAI,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,EAAjG,CAAiG,CAAC,EAAA;;;;KACtI;IAES,wCAAmB,GAA7B,UAA8B,QAA4B;QACxD,IAAM,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,kBAAkB,CAAA;QACzG,OAAO,iBAAM,mBAAmB,YAAC,QAAQ,EAAE,gBAAgB,CAAQ,CAAA;IACrE,CAAC;IACH,iBAAC;AAAD,CAAC,AAvCD,CAAgC,cAAc,GAuC7C"}
\ No newline at end of file
diff --git a/build/es6/tinyYolov2/const.d.ts b/build/es6/tinyYolov2/const.d.ts
deleted file mode 100644
index e64e2478..00000000
--- a/build/es6/tinyYolov2/const.d.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import { Point } from 'tfjs-image-recognition-base';
-export declare const IOU_THRESHOLD = 0.4;
-export declare const BOX_ANCHORS: Point[];
-export declare const BOX_ANCHORS_SEPARABLE: Point[];
-export declare const MEAN_RGB_SEPARABLE: [number, number, number];
-export declare const DEFAULT_MODEL_NAME = "tiny_yolov2_model";
-export declare const DEFAULT_MODEL_NAME_SEPARABLE_CONV = "tiny_yolov2_separable_conv_model";
diff --git a/build/es6/tinyYolov2/const.js b/build/es6/tinyYolov2/const.js
deleted file mode 100644
index 1a0cc8db..00000000
--- a/build/es6/tinyYolov2/const.js
+++ /dev/null
@@ -1,20 +0,0 @@
-import { Point } from 'tfjs-image-recognition-base';
-export var IOU_THRESHOLD = 0.4;
-export var BOX_ANCHORS = [
- new Point(0.738768, 0.874946),
- new Point(2.42204, 2.65704),
- new Point(4.30971, 7.04493),
- new Point(10.246, 4.59428),
- new Point(12.6868, 11.8741)
-];
-export var BOX_ANCHORS_SEPARABLE = [
- new Point(1.603231, 2.094468),
- new Point(6.041143, 7.080126),
- new Point(2.882459, 3.518061),
- new Point(4.266906, 5.178857),
- new Point(9.041765, 10.66308)
-];
-export var MEAN_RGB_SEPARABLE = [117.001, 114.697, 97.404];
-export var DEFAULT_MODEL_NAME = 'tiny_yolov2_model';
-export var DEFAULT_MODEL_NAME_SEPARABLE_CONV = 'tiny_yolov2_separable_conv_model';
-//# sourceMappingURL=const.js.map
\ No newline at end of file
diff --git a/build/es6/tinyYolov2/const.js.map b/build/es6/tinyYolov2/const.js.map
deleted file mode 100644
index 0cc1b153..00000000
--- a/build/es6/tinyYolov2/const.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"const.js","sourceRoot":"","sources":["../../../src/tinyYolov2/const.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAEpD,MAAM,CAAC,IAAM,aAAa,GAAG,GAAG,CAAA;AAEhC,MAAM,CAAC,IAAM,WAAW,GAAG;IACzB,IAAI,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC7B,IAAI,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC;IAC3B,IAAI,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC;IAC3B,IAAI,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC;IAC1B,IAAI,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC;CAC5B,CAAA;AAED,MAAM,CAAC,IAAM,qBAAqB,GAAG;IACnC,IAAI,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC7B,IAAI,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC7B,IAAI,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC7B,IAAI,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC7B,IAAI,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC9B,CAAA;AAED,MAAM,CAAC,IAAM,kBAAkB,GAA6B,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;AAEtF,MAAM,CAAC,IAAM,kBAAkB,GAAG,mBAAmB,CAAA;AACrD,MAAM,CAAC,IAAM,iCAAiC,GAAG,kCAAkC,CAAA"}
\ No newline at end of file
diff --git a/build/es6/tinyYolov2/index.d.ts b/build/es6/tinyYolov2/index.d.ts
deleted file mode 100644
index 37d04441..00000000
--- a/build/es6/tinyYolov2/index.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import { TinyYolov2 } from './TinyYolov2';
-export * from './TinyYolov2';
-export declare function createTinyYolov2(weights: Float32Array, withSeparableConvs?: boolean): TinyYolov2;
diff --git a/build/es6/tinyYolov2/index.js b/build/es6/tinyYolov2/index.js
deleted file mode 100644
index 2ad4701a..00000000
--- a/build/es6/tinyYolov2/index.js
+++ /dev/null
@@ -1,9 +0,0 @@
-import { TinyYolov2 } from './TinyYolov2';
-export * from './TinyYolov2';
-export function createTinyYolov2(weights, withSeparableConvs) {
- if (withSeparableConvs === void 0) { withSeparableConvs = true; }
- var net = new TinyYolov2(withSeparableConvs);
- net.extractWeights(weights);
- return net;
-}
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/build/es6/tinyYolov2/index.js.map b/build/es6/tinyYolov2/index.js.map
deleted file mode 100644
index f23a091e..00000000
--- a/build/es6/tinyYolov2/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tinyYolov2/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,cAAc,cAAc,CAAC;AAE7B,MAAM,2BAA2B,OAAqB,EAAE,kBAAkC;IAAlC,mCAAA,EAAA,yBAAkC;IACxF,IAAM,GAAG,GAAG,IAAI,UAAU,CAAC,kBAAkB,CAAC,CAAA;IAC9C,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;IAC3B,OAAO,GAAG,CAAA;AACZ,CAAC"}
\ No newline at end of file
diff --git a/dist/face-api.js b/dist/face-api.js
index 1d0ee130..a4373418 100644
--- a/dist/face-api.js
+++ b/dist/face-api.js
@@ -1,6197 +1,6568 @@
(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
- typeof define === 'function' && define.amd ? define(['exports'], factory) :
- (factory((global.faceapi = global.faceapi || {})));
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
+ typeof define === 'function' && define.amd ? define(['exports'], factory) :
+ (global = global || self, factory(global.faceapi = global.faceapi || {}));
}(this, (function (exports) { 'use strict';
- /**
- * @license
- * Copyright 2018 Google LLC. 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
- *
- * http://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.
- * =============================================================================
- */
- var extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t;}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);};function __extends(e,t){function n(){this.constructor=e;}extendStatics(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n);}var __assign=Object.assign||function(e){for(var t,n=1,r=arguments.length;n0&&o[o.length-1])&&(6===a[0]||2===a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]0;)r=Math.random()*t|0,n=e[--t],e[t]=e[r],e[r]=n;}function clamp(e,t,n){return Math.max(e,Math.min(t,n))}function randUniform(e,t){var n=Math.random();return t*n+(1-n)*e}function distSquared(e,t){for(var n=0,r=0;r0,function(){return "Element arr["+n.join("][")+"] should be a primitive, but is an array of "+e.length+" elements"}),assert(e.length===t[0],function(){return "Element arr["+n.join("][")+"] should have "+t[0]+" elements, but has "+e.length+" elements"});for(var r=t.slice(1),o=0;o1;--t)if(e%t==0)return [t,e/t];return [1,e]}function createShuffledIndices(e){for(var t=new Uint32Array(e),n=0;n=n?o():setTimeout(i,s);}};i();})}function inferFromImplicitShape(e,t){for(var n=1,r=-1,o=0;o=0)n*=e[o];else if(-1===e[o]){if(-1!==r)throw Error("Shapes can only have 1 implicit size. Found -1 at dim "+r+" and dim "+o);r=o;}else if(e[o]<0)throw Error("Shapes can not be < 0. Found "+e[o]+" at dim "+o);if(-1===r){if(t>0&&t!==n)throw Error("Size("+t+") must match the product of shape "+e);return e}if(0===n)throw Error("Cannot infer the missing size in ["+e+"] when there are 0 elements");if(t%n!=0)throw Error("The implicit shape can't be a fractional number. Got "+t+" / "+n);var a=e.slice();return a[r]=t/n,a}function squeezeShape(e,t){for(var n=[],r=[],o=0,a=0;aa)&&1===e[a]&&(n.push(e[a]),r.push(a)),t[o]<=a&&o++;}1!==e[a]&&(n.push(e[a]),r.push(a));}return {newShape:n,keptDims:r}}function getTypedArrayFromDType(e,t){var n=null;if(null==e||"float32"===e)n=new Float32Array(t);else if("int32"===e)n=new Int32Array(t);else{if("bool"!==e)throw new Error("Unknown data type "+e);n=new Uint8Array(t);}return n}function checkComputationForNaN(e,t,n){if("float32"===t)for(var r=0;r=0;--r)n[r]=n[r+1]*e[r+1];return n}function toTypedArray(e,t,n){return noConversionNeeded(e,t)?e:(Array.isArray(e)&&(e=flatten(e)),copyTypedArray(e,t,n))}function noConversionNeeded(e,t){return e instanceof Float32Array&&"float32"===t||e instanceof Int32Array&&"int32"===t||e instanceof Uint8Array&&"bool"===t}function makeOnesTypedArray(e,t){for(var n=makeZerosTypedArray(e,t),r=0;r1)for(var l=0;lFORMAT_LIMIT_NUM_VALS){var l=FORMAT_NUM_FIRST_LAST_VALS*i,c=Array.from(e.subarray(0,l)),p=Array.from(e.subarray(s-FORMAT_NUM_FIRST_LAST_VALS*i,s));return "complex64"===n&&(c=createComplexTuples(c),p=createComplexTuples(p)),["["+c.map(function(e,t){return valToString(e,o[t])}).join(", ")+", ..., "+p.map(function(e,t){return valToString(e,o[s-FORMAT_NUM_FIRST_LAST_VALS+t])}).join(", ")+"]"]}return ["["+("complex64"===n?createComplexTuples(e):Array.from(e)).map(function(e,t){return valToString(e,o[t])}).join(", ")+"]"]}var d=t.slice(1),h=r.slice(1),f=r[0]*i,m=[];if(s>FORMAT_LIMIT_NUM_VALS){for(var g=0;g=0;a--)for(i=(f=e[a]).inputs,c=0;c=0;r--)n(r);}function assertTypesMatch(e,t){assert(e.dtype===t.dtype,"The dtypes of the first("+e.dtype+") and second("+t.dtype+") input must match");}function isTensorInList(e,t){for(var n=0;n {...}) to avoid memory leaks.");return this.keepTensors.add(e.id),e},e.prototype.startScope=function(e,t){void 0===t&&(t=!1),t&&0===this.gradientScopeCount&&(this.activeTape=[]),t&&this.gradientScopeCount++;var n={track:[],name:"unnamed scope"};e&&(n.name=e),this.scopeStack.push(n),this.activeScope=n;},e.prototype.endScope=function(e,t){var n=this;void 0===t&&(t=!1),t&&(this.gradientScopeCount--,0===this.gradientScopeCount&&(this.activeTape=null));var r=new Set(this.keepTensors),o=getTensorsInContainer(e);o.forEach(function(e){return r.add(e.id)});for(var a=0;a0,"gradients() received an empty list of xs."),this.tidy("gradients",function(){var a=e();assert(a instanceof Tensor,"The result y returned by f() must be a tensor.");var i=getFilteredNodesXToY(o.activeTape,t,a);if(!r&&0===i.length&&t.length>0)throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that the f you passed encloses all operations that lead from x to y.");var s={};return s[a.id]=null==n?ones(a.shape):n,backpropagateGradients(s,i),{value:a,grads:t.map(function(e){return s[e.id]})}},!0)},e.prototype.customGrad=function(e){var t=this;return assert(isFunction(e),"The f passed in customGrad(f) must be a function."),function(){for(var n,r,o=[],a=0;a {op();...}); to avoid memory leaks.");return this.activeScope.track.push(e),e},e}();function ones(e){var t=makeOnesTypedArray(sizeFromShape(e),"float32");return Tensor.make(e,{values:t})}!function(e){e[e.NUMBER=0]="NUMBER",e[e.BOOLEAN=1]="BOOLEAN",e[e.STRING=2]="STRING";}(Type||(Type={}));var URL_PROPERTIES=[{name:"DEBUG",type:Type.BOOLEAN},{name:"IS_BROWSER",type:Type.BOOLEAN},{name:"WEBGL_PAGING_ENABLED",type:Type.BOOLEAN},{name:"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",type:Type.NUMBER},{name:"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",type:Type.BOOLEAN},{name:"WEBGL_VERSION",type:Type.NUMBER},{name:"WEBGL_RENDER_FLOAT32_ENABLED",type:Type.BOOLEAN},{name:"WEBGL_DOWNLOAD_FLOAT_ENABLED",type:Type.BOOLEAN},{name:"WEBGL_FENCE_API_ENABLED",type:Type.BOOLEAN},{name:"BACKEND",type:Type.STRING},{name:"EPSILON",type:Type.NUMBER}];function isWebGLVersionEnabled(e,t){var n;try{n=getWebGLRenderingContext(e,t);}catch(e){return !1}return null!=n&&(loseContext(n),!0)}function getWebGLDisjointQueryTimerVersion(e,t){if(0===e)return 0;var n,r=getWebGLRenderingContext(e,t);return n=hasExtension(r,"EXT_disjoint_timer_query_webgl2")&&2===e?2:hasExtension(r,"EXT_disjoint_timer_query")?1:0,null!=r&&loseContext(r),n}function isRenderToFloatTextureEnabled(e,t){if(0===e)return !1;var n=getWebGLRenderingContext(e,t);if(1===e){if(!hasExtension(n,"OES_texture_float"))return !1}else if(!hasExtension(n,"EXT_color_buffer_float"))return !1;var r=createFloatTextureAndBindToFramebuffer(n,e);return loseContext(n),r}function isDownloadFloatTextureEnabled(e,t){if(0===e)return !1;var n=getWebGLRenderingContext(e,t);if(1===e){if(!hasExtension(n,"OES_texture_float"))return !1;if(!hasExtension(n,"WEBGL_color_buffer_float"))return !1}else if(!hasExtension(n,"EXT_color_buffer_float"))return !1;var r=createFloatTextureAndBindToFramebuffer(n,e);return loseContext(n),r}function isWebGLFenceEnabled(e,t){if(2!==e)return !1;var n=getWebGLRenderingContext(e,t),r=null!=n.fenceSync;return loseContext(n),r}function isChrome(){return "undefined"!=typeof navigator&&null!=navigator&&null!=navigator.userAgent&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor)}var TENSORFLOWJS_FLAGS_PREFIX="tfjsflags";function getFeaturesFromURL(){var e={};if("undefined"==typeof window||void 0===window.location)return e;var t=getQueryParams(window.location.search);if(TENSORFLOWJS_FLAGS_PREFIX in t){var n={};t[TENSORFLOWJS_FLAGS_PREFIX].split(",").forEach(function(e){var t=e.split(":"),r=t[0],o=t[1];n[r]=o;}),URL_PROPERTIES.forEach(function(t){t.name in n&&(console.log("Setting feature override from URL "+t.name+": "+n[t.name]),t.type===Type.NUMBER?e[t.name]=+n[t.name]:t.type===Type.BOOLEAN?e[t.name]="true"===n[t.name]:t.type===Type.STRING?e[t.name]=n[t.name]:console.warn("Unknown URL param: "+t.name+"."));});}return e}function hasExtension(e,t){return null!=e.getExtension(t)}function getWebGLRenderingContext(e,t){if(0===e||!t)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");var n=document.createElement("canvas");return 1===e?n.getContext("webgl")||n.getContext("experimental-webgl"):n.getContext("webgl2")}function loseContext(e){if(null!=e){var t=e.getExtension("WEBGL_lose_context");if(null==t)throw new Error("Extension WEBGL_lose_context not supported on this browser.");t.loseContext();}}function createFloatTextureAndBindToFramebuffer(e,t){var n=e.createFramebuffer(),r=e.createTexture();e.bindTexture(e.TEXTURE_2D,r);var o=2===t?e.RGBA32F:e.RGBA;e.texImage2D(e.TEXTURE_2D,0,o,1,1,0,e.RGBA,e.FLOAT,null),e.bindFramebuffer(e.FRAMEBUFFER,n),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,r,0);var a=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(r),e.deleteFramebuffer(n),a}function getQueryParams(e){var t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,function(e){for(var n=[],r=1;r0&&!isMobile();if("HAS_WEBGL"===e)return this.get("WEBGL_VERSION")>0;if("WEBGL_VERSION"===e)return isWebGLVersionEnabled(2,this.get("IS_BROWSER"))?2:isWebGLVersionEnabled(1,this.get("IS_BROWSER"))?1:0;if("WEBGL_RENDER_FLOAT32_ENABLED"===e)return isRenderToFloatTextureEnabled(this.get("WEBGL_VERSION"),this.get("IS_BROWSER"));if("WEBGL_DOWNLOAD_FLOAT_ENABLED"===e)return isDownloadFloatTextureEnabled(this.get("WEBGL_VERSION"),this.get("IS_BROWSER"));if("WEBGL_FENCE_API_ENABLED"===e)return isWebGLFenceEnabled(this.get("WEBGL_VERSION"),this.get("IS_BROWSER"));if("TEST_EPSILON"===e)return 32===this.backend.floatPrecision()?TEST_EPSILON_FLOAT32:TEST_EPSILON_FLOAT16;if("EPSILON"===e)return 32===this.backend.floatPrecision()?EPSILON_FLOAT32:EPSILON_FLOAT16;throw new Error("Unknown feature "+e+".")},e.prototype.setFeatures=function(e){this.features=Object.assign({},e);},e.prototype.reset=function(){this.features=getFeaturesFromURL(),null!=this.globalEngine&&(this.globalEngine=null);},Object.defineProperty(e.prototype,"backend",{get:function(){return this.engine.backend},enumerable:!0,configurable:!0}),e.prototype.findBackend=function(e){return e in this.registry?this.registry[e].backend:null},e.prototype.registerBackend=function(e,t,n,r){var o=this;if(void 0===n&&(n=1),e in this.registry)return console.warn(e+" backend was already registered. Reusing existing backend"),null!=r&&r(function(){return o.engine}),!1;try{var a=t();return a.setDataMover({moveData:function(e){return o.engine.moveData(e)}}),this.registry[e]={backend:a,priority:n},!0}catch(t){return console.warn("Registration of backend "+e+" failed"),console.warn(t.stack||t.message),!1}},e.prototype.removeBackend=function(e){if(!(e in this.registry))throw new Error(e+" backend not found in registry");this.registry[e].backend.dispose(),delete this.registry[e];},Object.defineProperty(e.prototype,"engine",{get:function(){return this.initEngine(),this.globalEngine},enumerable:!0,configurable:!0}),e.prototype.initEngine=function(){var e=this;if(null==this.globalEngine){this.backendName=this.get("BACKEND");var t=this.findBackend(this.backendName);this.globalEngine=new Engine(t,!1,function(){return e.get("DEBUG")});}},e}();function getGlobalNamespace(){var e;if("undefined"!=typeof window)e=window;else{if("undefined"==typeof process)throw new Error("Could not find a global object");e=process;}return e}function getOrMakeEnvironment(){var e=getGlobalNamespace();return null==e.ENV&&(e.ENV=new Environment(getFeaturesFromURL()),setTensorTracker(function(){return e.ENV.engine})),e.ENV}var ENV=getOrMakeEnvironment(),environment=Object.freeze({Environment:Environment,ENV:ENV});function grad(e){return assert(isFunction(e),"The f passed in grad(f) must be a function"),function(t,n){return assert(t instanceof Tensor,"The x passed in grad(f)(x) must be a tensor"),assert(null==n||n instanceof Tensor,"The dy passed in grad(f)(x, dy) must be a tensor"),ENV.engine.tidy(function(){var r=ENV.engine.gradients(function(){return e(t)},[t],n),o=r.value,a=r.grads;return null!=n&&assertShapesMatch(o.shape,n.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),checkGrads(a),a[0]})}}function grads(e){return assert(isFunction(e),"The f passed in grads(f) must be a function"),function(t,n){return assert(Array.isArray(t)&&t.every(function(e){return e instanceof Tensor}),"The args passed in grads(f)(args) must be an array of tensors"),assert(null==n||n instanceof Tensor,"The dy passed in grads(f)(args, dy) must be a tensor"),ENV.engine.tidy(function(){var r=ENV.engine.gradients(function(){return e.apply(void 0,t)},t,n),o=r.value,a=r.grads;return null!=n&&assertShapesMatch(o.shape,n.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),checkGrads(a),a})}}function valueAndGrad(e){return assert(isFunction(e),"The f passed in valueAndGrad(f) must be a function"),function(t,n){assert(t instanceof Tensor,"The x passed in valueAndGrad(f)(x) must be a tensor"),assert(null==n||n instanceof Tensor,"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");var r=ENV.engine.gradients(function(){return e(t)},[t],n),o=r.grads,a=r.value;return checkGrads(o),{grad:o[0],value:a}}}function valueAndGrads(e){return assert(isFunction(e),"The f passed in valueAndGrads(f) must be a function"),function(t,n){assert(Array.isArray(t)&&t.every(function(e){return e instanceof Tensor}),"The args passed in valueAndGrads(f)(args) must be array of tensors"),assert(null==n||n instanceof Tensor,"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");var r=ENV.engine.gradients(function(){return e.apply(void 0,t)},t,n);return null!=n&&assertShapesMatch(r.value.shape,n.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),checkGrads(r.grads),r}}function variableGrads(e,t){if(assert(isFunction(e),"The f passed in variableGrads(f) must be a function"),assert(null==t||Array.isArray(t)&&t.every(function(e){return e instanceof Variable}),"The varList passed in variableGrads(f, varList) must be an array of variables"),null==t)for(var n in t=[],ENV.engine.registeredVariables)t.push(ENV.engine.registeredVariables[n]);var r=t.length;assert((t=t.filter(function(e){return e.trainable})).length>0,"variableGrads() expects at least one of the input variables to be trainable, but none of the "+r+" variables is trainable.");var o=ENV.engine.gradients(e,t,null,!0),a=o.value,i=o.grads;assert(i.some(function(e){return null!=e}),"Cannot find a connection between any variable and the result of the loss function y=f(x). Please make sure the operations that use variables are inside the function f passed to minimize()."),assert(0===a.rank,"The f passed in variableGrads(f) must return a scalar, but it returned a rank-"+a.rank+" tensor");var s={};return t.forEach(function(e,t){null!=i[t]&&(s[e.name]=i[t]);}),{value:a,grads:s}}function customGrad(e){return ENV.engine.customGrad(e)}function checkGrads(e){if(e.filter(function(e){return null==e}).length>0)throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that\n the f you passed encloses all operations that lead from x to y.")}var tidy=Environment.tidy,keep=Environment.keep,dispose=Environment.dispose,time=Environment.time,profile=Environment.profile;function warn(){for(var e=[],t=0;t=2*t+1||o%2==1?i.push(o):a.push(o);r.push.apply(r,a),r.push(0),r.push.apply(r,i);}return r}function getReshapedPermuted(e,t,n,r){void 0===r&&(r=!0);var o=[];r?o.push(e[0]/n):o.push(e[0]*n);for(var a=1;a=-n&&e=0&&tt||n===e){r=!0;break}n=nearestDivisor(e,n+1);}return n}function computeOutShape$1(e,t,n){for(var r=[],o=e.length,a=0;a