Skip to content

Commit 25d4cba

Browse files
authored
[faceapi] allows passing video to detect() and detectSingle() (#653)
* allows passing video to detect() and detectSingle() * adds check for p5 video elements
1 parent e6f5277 commit 25d4cba

File tree

1 file changed

+25
-19
lines changed

1 file changed

+25
-19
lines changed

src/FaceApi/index.js

Lines changed: 25 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -78,13 +78,15 @@ class FaceApiBase {
7878
} = this.config.MODEL_URLS;
7979

8080
this.model = faceapi;
81-
82-
const SsdMobilenetv1Options = this.model.SsdMobilenetv1Options({ minConfidence: this.minConfidence })
81+
82+
const SsdMobilenetv1Options = this.model.SsdMobilenetv1Options({
83+
minConfidence: this.minConfidence
84+
})
8385
await this.model.loadSsdMobilenetv1Model(Mobilenetv1Model, SsdMobilenetv1Options)
8486
await this.model.loadFaceLandmarkModel(FaceLandmarkModel)
8587
// await this.model.loadFaceLandmarkTinyModel(FaceLandmark68TinyNet)
8688
await this.model.loadFaceRecognitionModel(FaceRecognitionModel)
87-
89+
8890
this.modelReady = true;
8991
return this;
9092
}
@@ -101,18 +103,20 @@ class FaceApiBase {
101103
let callback;
102104
let faceApiOptions = this.config;
103105

104-
// Handle the image to predict
105-
if (typeof optionsOrCallback === 'function') {
106+
// Handle the image to predict
107+
if (typeof optionsOrCallback === 'function') {
106108
imgToClassify = this.video;
107109
callback = optionsOrCallback;
108110
// clean the following conditional statement up!
109-
} else if (optionsOrCallback instanceof HTMLImageElement
110-
|| optionsOrCallback instanceof HTMLCanvasElement
111-
|| optionsOrCallback instanceof ImageData) {
112-
imgToClassify = optionsOrCallback;
113-
} else if (typeof optionsOrCallback === 'object' && (optionsOrCallback.elt instanceof HTMLImageElement
114-
|| optionsOrCallback.elt instanceof HTMLCanvasElement
115-
|| optionsOrCallback.elt instanceof ImageData)){
111+
} else if (optionsOrCallback instanceof HTMLImageElement ||
112+
optionsOrCallback instanceof HTMLCanvasElement ||
113+
optionsOrCallback instanceof HTMLVideoElement ||
114+
optionsOrCallback instanceof ImageData) {
115+
imgToClassify = optionsOrCallback;
116+
} else if (typeof optionsOrCallback === 'object' && (optionsOrCallback.elt instanceof HTMLImageElement ||
117+
optionsOrCallback.elt instanceof HTMLCanvasElement ||
118+
optionsOrCallback.elt instanceof HTMLVideoElement ||
119+
optionsOrCallback.elt instanceof ImageData)) {
116120
imgToClassify = optionsOrCallback.elt; // Handle p5.js image
117121
} else if (typeof optionsOrCallback === 'object' && optionsOrCallback.canvas instanceof HTMLCanvasElement) {
118122
imgToClassify = optionsOrCallback.canvas; // Handle p5.js image
@@ -199,13 +203,15 @@ class FaceApiBase {
199203
imgToClassify = this.video;
200204
callback = optionsOrCallback;
201205
// clean the following conditional statement up!
202-
} else if (optionsOrCallback instanceof HTMLImageElement
203-
|| optionsOrCallback instanceof HTMLCanvasElement
204-
|| optionsOrCallback instanceof ImageData) {
205-
imgToClassify = optionsOrCallback;
206-
} else if (typeof optionsOrCallback === 'object' && (optionsOrCallback.elt instanceof HTMLImageElement
207-
|| optionsOrCallback.elt instanceof HTMLCanvasElement
208-
|| optionsOrCallback.elt instanceof ImageData)){
206+
} else if (optionsOrCallback instanceof HTMLImageElement ||
207+
optionsOrCallback instanceof HTMLCanvasElement ||
208+
optionsOrCallback instanceof HTMLVideoElement ||
209+
optionsOrCallback instanceof ImageData) {
210+
imgToClassify = optionsOrCallback;
211+
} else if (typeof optionsOrCallback === 'object' && (optionsOrCallback.elt instanceof HTMLImageElement ||
212+
optionsOrCallback.elt instanceof HTMLCanvasElement ||
213+
optionsOrCallback.elt instanceof HTMLVideoElement ||
214+
optionsOrCallback.elt instanceof ImageData)) {
209215
imgToClassify = optionsOrCallback.elt; // Handle p5.js image
210216
} else if (typeof optionsOrCallback === 'object' && optionsOrCallback.canvas instanceof HTMLCanvasElement) {
211217
imgToClassify = optionsOrCallback.canvas; // Handle p5.js image

0 commit comments

Comments
 (0)