Web inference.js

inference.js を使用してブラウザ上でエッジのリアルタイム予測を実行します

inferencejs は、Roboflow で学習したモデルを使用して、ブラウザ経由でリアルタイム推論を可能にする JavaScript パッケージです。

こちらを参照: inferencejs リファレンス こちら

ほとんどのビジネス向けアプリケーションでは、 Hosted API が適しています。しかし、多くのコンシューマー向けアプリケーションや一部のエンタープライズ用途では、サーバーホスト型モデルは実用的ではない場合があります(たとえば、ユーザーの帯域幅が限られている、またはリモート API では達成できない低レイテンシーが必要な場合など)。

学習リソース

対応モデル

inferencejs は現在、以下のモデルアーキテクチャをサポートしています:

インストール

追加方法: inference をあなたのプロジェクトに追加するには、npm でインストールするか、script タグの参照をページの <head> タグに追加してください。

npm install inferencejs
<script src="https://cdn.jsdelivr.net/npm/inferencejs"></script>

初期化 inferencejs

認証

あなたの publishable_key は Roboflow の Workspace 設定から取得できます。

まず、 InferenceEngine をインポートし、新しい推論エンジンオブジェクトを作成します

inferencejs は Web Worker を使用しており、メインの UI スレッドをブロックすることなく複数のモデルを使用できます。各モデルは InferenceEngine でロードされます。これは必要なスレッド管理を抽象化する Web Worker マネージャーです。

import { InferenceEngine } from "inferencejs";
const inferEngine = new InferenceEngine();

これで、あなたの publishable_key を使用し、モデルメタデータ(モデル名とバージョン)に加えて、信頼度しきい値や重なりしきい値などの設定パラメータを指定して、roboflow からモデルをロードできます。

const workerId = await inferEngine.startWorker("[model name]", "[version]", "[publishable key]");

inferencejs は、選択したモデルを実行するワーカーを起動します。返されるワーカー ID は、推論に使用する InferenceEngine 内のワーカー ID に対応します。モデルで推論するには、 infer メソッドを InferenceEngine.

に対して呼び出します。画像を読み込み、ワーカーで推論してみましょう。

const image = document.getElementById("image"); // id `image` を持つ画像要素を取得
const predictions = await inferEngine.infer(workerId, image); // 画像で推論

これは様々な画像フォーマットを受け取れます(HTMLImageElement, HTMLVideoElement, ImageBitmap、または TFJS Tensor).

これは予測の配列(この場合はクラス RFObjectDetectionPrediction )

設定

の予測のフィルタリング方法をカスタマイズしたい場合は、ワーカー作成時にパラメータを渡せます。 inferencejs

const configuration = {scoreThreshold: 0.5, iouThreshold: 0.5, maxNumBoxes: 20};
const workerId = await inferEngine.startWorker("[model name]", "[version]", "[publishable key]", configuration);

または、推論時に設定オプションを渡すこともできます

const configuration = {
    scoreThreshold: 0.5,
    iouThreshold: 0.5,
    maxNumBoxes: 20
};
const predictions = await inferEngine.infer(workerId, image, configuration);

Last updated

Was this helpful?