Roboflow Inference JS
An edge library for deploying computer vision applications built with Roboflow to JS environments.
Installation
This library is designed to be used within the browser, using a bundler such as vite, webpack, parcel, etc. Assuming your bundler is set up, you can install by executing:
npm install inferencejs
Getting Started
Begin by initializing the InferenceEngine
. This will start a background worker which is able to download and
execute models without blocking the user interface.
import { InferenceEngine } from "inferencejs"
const PUBLISHABLE_KEY = "rf_a6cd...";
const inferEngine = new InferenceEngine();
const workerId = await inferEngine.startWorker("gaze", 1, PUBLISHABLE_KEY);
const result = await inferEngine.infer(workerId, img)
API
InferenceEngine
new InferenceEngine()
Creates a new InferenceEngine instance.
startWorker(modelName: string, modelVersion: number, publishableKey: string): Promise<number>
Starts a new worker for the given model and returns the workerId
. Important- publishableKey
is required and can be obtained from Roboflow in your project settings folder.
infer(workerId: number, img: ImageBitmap): Promise<GazeDetections>
Infer an image using the worker with the given workerId
. img
can be created using createImageBitmap
stopWorker(workerId: number): Promise<void>
Stops the worker with the given workerId
.
GazeDetections
The result of making an inference using the InferenceEngine
on a Gaze model. An array with the following type:
type GazeDetections = {
leftEye: { x: number, y: number },
rightEye: { x: number, y: number },
yaw: number,
pitch: number
}[]
leftEye.x
The x position of the left eye as a floating point number between 0 and 1, measured in percentage of the input image width.
leftEye.y
The y position of the left eye as a floating point number between 0 and 1, measured in percentage of the input image height.
rightEye.x
The x position of the right eye as a floating point number between 0 and 1, measured in percentage of the input image width.
rightEye.y
The y position of the right eye as a floating point number between 0 and 1, measured in percentage of the input image height.
yaw
The yaw of the visual gaze, measured in radians.
pitch
The pitch of the visual gaze, measured in radians.
Example
A fully functional example can be found in demo/demo.ts
Developing
To start the local development server, execute npm run dev
to run the demo in development mode, with hot reloading.
To run library tests execute npm run test
. To run the index.html file in dev mode with vite packaging run npm run dev
.