npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

inferencejs

v1.0.16

Published

An edge library for deploying computer vision applications built with Roboflow to JS environments.

Downloads

208

Readme

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..."; // replace with your own publishable key from Roboflow

const inferEngine = new InferenceEngine();
const workerId = await inferEngine.startWorker("[PROJECT URL SLUG]", [VERSION NUMBER], PUBLISHABLE_KEY);

//make inferences against the model
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: CVImage | ImageBitmap): Promise<Inference>

Infer on n image using the worker with the given workerId. img can be created using new CVImage(HTMLImageElement | HTMLVideoElement | ImageBitmap | TFJS.Tensor) or createImageBitmap

stopWorker(workerId: number): Promise<void>

Stops the worker with the given workerId.

YOLOv8 YOLOv5

The result of making an inference using the InferenceEngine on a YOLOv8 or YOLOv5 object detection model is an array of the following type:

type RFObjectDetectionPrediction = {
    class?: string;
    confidence?: number;
    bbox?: {
        x: number;
        y: number;
        width: number;
        height: number;
    };
    color?: string;
};

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.

CVImage

A class representing an image that can be used for computer vision tasks. It provides various methods to manipulate and convert the image.

Constructor

The CVImage(image) class constructor initializes a new instance of the class. It accepts one image of one of the following types:

  • ImageBitmap: An optional ImageBitmap representation of the image.
  • HTMLImageElement: An optional HTMLImageElement representation of the image.
  • tf.Tensor: An optional tf.Tensor representation of the image.
  • tf.Tensor4D: An optional 4D tf.Tensor representation of the image.

Methods

bitmap()

Returns a promise that resolves to an ImageBitmap representation of the image. If the image is already a bitmap, it returns the cached bitmap.

tensor()

Returns a tf.Tensor representation of the image. If the image is already a tensor, it returns the cached tensor.

tensor4D()

Returns a promise that resolves to a 4D tf.Tensor representation of the image. If the image is already a 4D tensor, it returns the cached 4D tensor.

array()

Returns a promise that resolves to a JavaScript array representation of the image. If the image is already a tensor, it converts the tensor to an array.

dims()

Returns an array containing the dimensions of the image. If the image is a bitmap, it returns [width, height]. If the image is a tensor, it returns the shape of the tensor. If the image is an HTML image element, it returns [width, height].

dispose()

Disposes of the tensor representations of the image to free up memory.

static fromArray(array: tf.TensorLike)

Creates a new CVImage instance from a given tensor-like array.

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.