> For the complete documentation index, see [llms.txt](https://docs.roboflow.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboflow.com/deployment/hi/self-hosted/sdks/web-browser/inferencejs-reference.md).

# inferencejs Reference

{% hint style="info" %}
के बारे में और जानें `inferencejs` , हमारा वेब SDK, [यहाँ](/deployment/hi/self-hosted/sdks/web-browser.md)
{% endhint %}

### इंस्टॉलेशन

यह लाइब्रेरी ब्राउज़र के भीतर उपयोग के लिए डिज़ाइन की गई है, और vite, webpack, parcel आदि जैसे bundler का उपयोग करती है। मान लेते हैं कि आपका bundler सेट अप है, तो आप यह चलाकर इंस्टॉल कर सकते हैं:

`npm install inferencejs`

### शुरू करना

से शुरुआत करें `InferenceEngine`. इससे एक background worker शुरू होगा जो user interface को ब्लॉक किए बिना models डाउनलोड और execute कर सकता है.

```typescript
import { InferenceEngine } from "inferencejs";

const PUBLISHABLE_KEY = "rf_a6cd..."; // Roboflow से अपनी स्वयं की publishable key से बदलें

const inferEngine = new InferenceEngine();

// model पर Roboflow के पेज से कॉपी किए गए model id द्वारा एक model लोड करें.
const workerId = await inferEngine.startWorkerByModelId("[MODEL ID]", PUBLISHABLE_KEY);

// model के विरुद्ध inference करें
const result = await inferEngine.infer(workerId, img);
```

मॉडल आईडी मॉडल के पेज पर दिखाई जाती है और इसका रूप है `workspace/model-slug` (उदाहरण: `my-workspace/hard-hat-abc-1-yolov8n-t1`). लेगेसी project-versioned models को इसके साथ लोड किया जा सकता है `startWorker` project slug और version number का उपयोग करके। कई प्रशिक्षित models वाले version के लिए, लेगेसी `{project}/{version}` id, यदि कोई alias मौजूद हो, तो version के alias के माध्यम से resolve होता है; alias न होने पर यह केवल तभी काम करता है जब version में एक ही model हो, अन्यथा id ambiguous होती है और आपको model को उसके अपने model id से लोड करना चाहिए. देखें [लेगेसी IDs कैसे resolve होते हैं](https://docs.roboflow.com/models/model-ids).

## API

### InferenceEngine

**`new InferenceEngine()`**

एक नया InferenceEngine instance बनाता है.

**`startWorkerByModelId(modelId: string, publishableKey: string): Promise<number>`**

दिए गए model id के लिए एक नया worker शुरू करता है और `workerId`लौटाता है. यह model लोड करने का अनुशंसित तरीका है. `modelId` पूरा `workspace/model-slug` आईडी जो model के पेज पर दिखाई जाती है, और versionless तथा multi-model versions के लिए काम करती है. `publishableKey` आवश्यक है और इसे आपके project settings folder में Roboflow से प्राप्त किया जा सकता है.

**`startWorker(modelName: string, modelVersion: number, publishableKey: string): Promise<number>`**

project url slug और integer version द्वारा संबोधित एक legacy model को लोड करता है, और `workerId`. उपयोग करें `startWorkerByModelId` नई integrations के लिए. `publishableKey` आवश्यक है और इसे आपके project settings folder में Roboflow से प्राप्त किया जा सकता है.

**`infer(workerId: number, img: CVImage | ImageBitmap): Promise<Inference>`**

दिए गए worker का उपयोग करके एक छवि पर inference करें `workerId`. `img` को इसका उपयोग करके बनाया जा सकता है `new CVImage(HTMLImageElement | HTMLVideoElement | ImageBitmap | TFJS.Tensor)` या [`createImageBitmap`](https://developer.mozilla.org/en-US/docs/Web/API/createImageBitmap)

**`stopWorker(workerId: number): Promise<void>`**

दिए गए worker को रोकता है `workerId`.

### `YOLO Lite` `YOLOv8` `YOLOv5`

का उपयोग करके inference करने का परिणाम `InferenceEngine` YOLO Lite, YOLOv8, या YOLOv5 object detection model पर निम्न प्रकार की एक array होती है:

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

### `GazeDetections`

का उपयोग करके inference करने का परिणाम `InferenceEngine` Gaze model पर। निम्न प्रकार की एक array:

```typescript
type GazeDetections = {
    leftEye: { x: number; y: number };
    rightEye: { x: number; y: number };
    yaw: number;
    pitch: number;
}[];
```

**`leftEye.x`**

बाईं आँख की x स्थिति, 0 और 1 के बीच एक floating point number के रूप में, input image की चौड़ाई के प्रतिशत में मापी गई.

**`leftEye.y`**

बाईं आँख की y स्थिति, 0 और 1 के बीच एक floating point number के रूप में, input image की ऊँचाई के प्रतिशत में मापी गई.

**`rightEye.x`**

दाईं आँख की x स्थिति, 0 और 1 के बीच एक floating point number के रूप में, input image की चौड़ाई के प्रतिशत में मापी गई.

**`rightEye.y`**

दाईं आँख की y स्थिति, 0 और 1 के बीच एक floating point number के रूप में, input image की ऊँचाई के प्रतिशत में मापी गई.

**`yaw`**

दृश्य gaze का yaw, radians में मापा गया.

**`pitch`**

दृश्य gaze का pitch, radians में मापा गया.

### `CVImage`

एक class जो ऐसी image का प्रतिनिधित्व करती है जिसका उपयोग computer vision tasks के लिए किया जा सकता है. यह image को manipulate और convert करने के लिए विभिन्न methods प्रदान करती है.

#### **कंस्ट्रक्टर**

यह `CVImage(image)` class constructor class का एक नया instance प्रारंभ करता है. यह निम्न प्रकारों में से एक image स्वीकार करता है:

* `ImageBitmap`: एक वैकल्पिक `ImageBitmap` छवि का प्रतिनिधित्व।
* `HTMLImageElement`: एक वैकल्पिक `HTMLImageElement` छवि का प्रतिनिधित्व।
* `tf.Tensor`: एक वैकल्पिक `tf.Tensor` छवि का प्रतिनिधित्व।
* `tf.Tensor4D`: एक वैकल्पिक 4D `tf.Tensor` छवि का प्रतिनिधित्व।

#### **मेथड्स**

**`bitmap()`**

एक promise लौटाता है जो एक `ImageBitmap` छवि का प्रतिनिधित्व. यदि छवि पहले से ही एक bitmap है, तो यह cached bitmap लौटाता है.

**`tensor()`**

लौटाता है `tf.Tensor` छवि का प्रतिनिधित्व. यदि छवि पहले से ही एक tensor है, तो यह cached tensor लौटाता है.

**`tensor4D()`**

एक promise लौटाता है जो एक 4D `tf.Tensor` छवि का प्रतिनिधित्व. यदि छवि पहले से ही एक 4D tensor है, तो यह cached 4D tensor लौटाता है.

**`array()`**

एक promise लौटाता है जो छवि के JavaScript array प्रतिनिधित्व पर resolve होता है. यदि छवि पहले से ही एक tensor है, तो यह tensor को array में बदल देता है.

**`dims()`**

ऐसा array लौटाता है जिसमें छवि के dimensions शामिल हैं. यदि छवि एक bitmap है, तो यह `[width, height]`लौटाता है. यदि छवि एक tensor है, तो यह tensor का shape लौटाता है. यदि छवि एक HTML image element है, तो यह `[width, height]`.

**`dispose()`**

मेमोरी खाली करने के लिए छवि के tensor representations को dispose करता है.

**`static fromArray(array: tf.TensorLike)`**

एक नया बनाता है `CVImage` दिए गए tensor-like array से instance.
