> 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/models/hi/supported-models/l2cs-net.md).

# L2Cs-Net

L2Cs-Net एक दृष्टि-दिशा अनुमान मॉडल है जो चेहरों का पता लगाता है और प्रत्येक चेहरे के yaw तथा pitch कोणों का अनुमान लगाता है। आप इसे हमारे माध्यम से चला सकते हैं [सर्वरलेस होस्टेड API](https://docs.roboflow.com/deployment/roboflow-cloud/serverless-api).

{% hint style="warning" %}
**स्व-होस्टेड Inference में अप्रचलित।** Gaze detection को में अप्रचलित किया गया था [Roboflow Inference](https://docs.roboflow.com/deployment/self-hosted/self-hosted) जब MediaPipe निर्भरता हटा दी गई थी। प्रभावित संस्करणों में, `/gaze/gaze_detection` एंडपॉइंट और `Gaze` मॉडल क्लास उठाती है `FeatureDeprecatedError` (HTTP 410 Gone), और स्टब एंडपॉइंट को हटाने के लिए निर्धारित किया गया है। सेट करें `CORE_MODEL_GAZE_ENABLED=False` इसे पूरी तरह अक्षम करने के लिए। यदि आपको इस क्षमता की आवश्यकता हो, तो Roboflow से संपर्क करें।
{% endhint %}

## कोड नमूना

HTTP एंडपॉइंट के माध्यम से सीधे L2Cs-Net चलाएँ, इसके लिए `curl`, या साथ में [`inference-sdk`](https://docs.roboflow.com/reference/inference/inference-sdk) रैपर।

{% tabs %}
{% tab title="HTTP (curl)" icon="webhook" %}
{% stepper %}
{% step %}

### अपनी API कुंजी प्राप्त करें

एक Roboflow खाता बनाएँ, अपनी कुंजी यहाँ खोजें [Roboflow API सेटिंग्स पेज](https://app.roboflow.com/settings/api) और इसे अपने shell के लिए उपलब्ध कराएँ:

```bash
export ROBOFLOW_API_KEY="your-key-here"
```

{% endstep %}

{% step %}

### मॉडल चलाएँ

कॉल करें `/gaze/gaze_detection` endpoint के साथ `curl`:

```bash
curl --location 'https://serverless.roboflow.com/gaze/gaze_detection' \
  --header 'Content-Type: application/json' \\
  --data '{
    "api_key": "'"$ROBOFLOW_API_KEY"'",
    "image": {"type": "url", "value": "https://media.roboflow.com/inference/man.jpg"}
  }'
```

{% endstep %}
{% endstepper %}
{% endtab %}

{% tab title="SDK (Python)" icon="python" %}
{% stepper %}
{% step %}

### अपनी API कुंजी प्राप्त करें

एक Roboflow खाता बनाएँ, अपनी कुंजी यहाँ खोजें [Roboflow API सेटिंग्स पेज](https://app.roboflow.com/settings/api) और इसे अपने shell के लिए उपलब्ध कराएँ:

```bash
export ROBOFLOW_API_KEY="your-key-here"
```

{% endstep %}

{% step %}

### निर्भरताएँ इंस्टॉल करें

यह पैकेज मॉडल को कॉल करता है:

```bash
pip install -U inference-sdk supervision
```

{% endstep %}

{% step %}

### मॉडल चलाएँ

नीचे दिया गया कोड नमूना कॉल करता है `detect_gazes`को, जो उसी `/gaze/gaze_detection` एंडपॉइंट को हिट करता है:

```python
import os
import supervision as sv
from inference_sdk import InferenceHTTPClient

image = sv.load_image_from_url("https://media.roboflow.com/inference/man.jpg")

client = InferenceHTTPClient(
    api_url="https://serverless.roboflow.com",
    api_key=os.environ["ROBOFLOW_API_KEY"],
).select_api_v1()

result = client.detect_gazes(image)

for prediction in result[0]["predictions"]:
    face = prediction["face"]
    yaw = prediction["yaw"]
    pitch = prediction["pitch"]
    print(f"Face at ({face['x']}, {face['y']}) - yaw: {yaw:.3f}, pitch: {pitch:.3f}")
```

{% endstep %}
{% endstepper %}
{% endtab %}
{% endtabs %}

## इनफ़रेंस गति

विलंबता मापी गई [Roboflow Inference](https://docs.roboflow.com/deployment/self-hosted/self-hosted) पर 1x NVIDIA L4, batch size 1, warmup के बाद औसत।

<table data-search="false"><thead><tr><th>मॉडल</th><th>Latency (ms)</th></tr></thead><tbody><tr><td><code>l2cs-net</code></td><td>6.0</td></tr></tbody></table>

एकल चेहरे की क्रॉप पर मापा गया, जो मॉडल को इनपुट के रूप में अपेक्षित होता है।

{% hint style="info" %}
सेट करें `api_url` को अपने deployment target से मिलाने के लिए:

* `https://serverless.roboflow.com` सर्वरलेस होस्टेड API के लिए।
* `http://localhost:9001` एक स्थानीय [Inference](https://docs.roboflow.com/deployment/self-hosted/self-hosted) server के लिए।
* आपका [समर्पित परिनियोजन](https://docs.roboflow.com/deployment/roboflow-cloud/dedicated-deployments) एक निजी endpoint के लिए URL।
  {% endhint %}

प्रतिक्रिया में एक सूची होती है जिसमें `पूर्वानुमान` (प्रत्येक में `चेहरा` बाउंडिंग बॉक्स, `लैंडमार्क्स`, `yaw`, और `pitch` रेडियन में), `समय`, `time_face_det`, और `time_gaze_det`.

स्व-होस्टेड परिनियोजन और अतिरिक्त उदाहरणों के लिए, देखें [Roboflow Inference दस्तावेज़](https://docs.roboflow.com/deployment/self-hosted/self-hosted).

## Inference (self-hosted) के साथ उपयोग करें

L2Cs-Net को एक स्थानीय [Inference](https://docs.roboflow.com/deployment/self-hosted/self-hosted) सर्वर द्वारा भी सर्व किया जा सकता है:

```bash
pip install inference inference-cli inference-sdk
inference server start  # http://localhost:9001 पर सेवा देता है
```

```python
import os
from inference_sdk import InferenceHTTPClient

client = InferenceHTTPClient(
    api_url="http://localhost:9001",
    api_key=os.environ["ROBOFLOW_API_KEY"],
)

client.detect_gazes(inference_input="./image.jpg")
```

मॉडल प्रत्येक पहचाने गए चेहरे के लिए एक प्रविष्टि लौटाता है, जिसमें चेहरे का बॉक्स और लैंडमार्क्स के साथ `yaw` और `pitch` रेडियन में:

```python
[{'face': {'x': 1107.0, 'y': 1695.5, 'width': 1056.0, 'height': 1055.0,
           'confidence': 0.9356, 'class': 'face', 'class_id': 0,
           'landmarks': [{'x': 902.0, 'y': 1441.0}, {'x': 1350.0, 'y': 1449.0},
                         {'x': 1137.0, 'y': 1692.0}, {'x': 1124.0, 'y': 1915.0},
                         {'x': 625.0, 'y': 1551.0}, {'x': 1565.0, 'y': 1571.0}]},
  'pitch': 0.0295,
  'yaw': -0.0410}]
```

yaw और pitch को अंतरिक्ष में एक बिंदु में बदलना यह मानता है कि चेहरे कैमरे से लगभग एक मीटर दूर और लगभग 250 मिमी लंबे हैं, जो वेबकैम सेटअप के लिए एक उचित शुरुआती बिंदु है।

यह [gaze detection का उदाहरण](https://github.com/roboflow/inference) Inference रिपॉज़िटरी में यह दिखाता है कि वेबकैम पर L2Cs-Net कैसे चलाया जाए, व्यक्ति किस ओर देख रहा है यह कैसे गणना करें, और फ्रेम को एनोटेट कैसे करें।

### वर्कफ़्लोज़ में निष्पादन मोड

जब इसे एक में उपयोग किया जाता है [वर्कफ़्लो](https://docs.roboflow.com/workflows)gaze detection दो में से एक मोड में चलता है:

* **लोकल निष्पादन**: मॉडल आपके Inference सर्वर पर चलता है।
* **रिमोट निष्पादन**: मॉडल को एक रिमोट Inference सर्वर पर HTTP के माध्यम से `detect_gazes()` क्लाइंट विधि।

## अधिक पढ़ें

* [Gaze detection और eye tracking: एक how-to guide](https://blog.roboflow.com/gaze-direction-position/)
