Fix issues #1224 & #1213: Don't call this.predict()
unless there is a video.
#1321
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issue
Reported in #1224 and #1213.
The Facemesh and Handpose models are designed such that they user can instantiated it a with a video and use a
facemesh.on("face")
callback to process the result of every frame. This chain of continuous prediction begins with a call tothis.predict()
insidethis.loadModel()
.This creates an error when no video is provided, as
this.predict()
is called without any input image. In Facemesh, this logs an errorUncaught (in promise) TypeError: Cannot read property 'height' of undefined
. In Handpose the error is avoided by returning[]
fromthis.predict()
.Changes
this.predict()
is only called when there is a video.predict()
is called with no image or video.predict()
.this.model
.