# Luxonis OAK

The [Luxonis OAK (OpenCV AI Kit)](https://shop.luxonis.com/) एक एज डिवाइस है जो एम्बेडेड कंप्यूटर विज़न सिस्टम्स के तैनाती के लिए लोकप्रिय रूप से उपयोग किया जाता है।

OAK डिवाइस उन होस्ट मशीनों के साथ जोड़े जाते हैं जो डाउनस्ट्रीम एप्लिकेशन के संचालन को चलाती हैं। कुछ प्रेरणा के लिए देखें [Luxonis के उपयोग केस](https://docs.luxonis.com/en/latest/#example-use-cases) और [Roboflow के केस स्टडीज़](https://blog.roboflow.com/tag/case-studies/).

**वैसे:** यदि आपके पास अभी तक आपका OAK डिवाइस नहीं है, तो आप [Roboflow Store के माध्यम से एक खरीद सकते हैं](https://store.roboflow.com/) 10% छूट पाने के लिए।

### टास्क सपोर्ट

होस्टेड API निम्नलिखित टास्क प्रकारों का समर्थन करता है:

| टास्क प्रकार                                                                                                                                                     | Luxonis OAK Deployment द्वारा समर्थित |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------- |
| <p>ऑब्जेक्ट डिटेक्शन:</p><ul><li>YOLOv8 मॉडल, जो Roboflow पर प्रशिक्षित हैं, दोनों Fast और Accurate</li><li>YOLOv11 मॉडल जो Roboflow पर प्रशिक्षित हैं</li></ul> | ✅                                     |
| क्लासिफिकेशन                                                                                                                                                     |                                       |
| इंस्‍टेंस सेगमेंटेशन                                                                                                                                             |                                       |
| सैमान्टिक सेगमेंटेशन                                                                                                                                             |                                       |

### Luxonis OAK पर एक मॉडल तैनात करें

#### समर्थित Luxonis डिवाइस और होस्ट आवश्यकताएँ

Roboflow Inference Server निम्नलिखित डिवाइसों का समर्थन करता है:

* OAK-D
* OAK-D-Lite
* OAK-D-POE
* OAK-1 (कोई डेप्थ नहीं)

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

इंस्टॉल करें `roboflowoak`, `depthai`और `opencv-python` पैकेज:

```python
pip install roboflowoak
pip install depthai
pip install opencv-python
```

अब आप अपने कस्टम प्रशिक्षित Roboflow मॉडल को चलाने के लिए `roboflowoak` पैकेज का उपयोग कर सकते हैं।

#### इन्फरेंस चलाना: तैनाती

यदि आप ऐसे OAK डिवाइस पर तैनाती कर रहे हैं जिसमें Depth क्षमताएँ नहीं हैं, तो सेट करें `depth=False` जब आप (बनाते समय) को इंस्टैंसिएट कर रहे हों `rf` ऑब्जेक्ट। Depth वाले OAK मॉडल नाम के साथ "D" संलग्न करते हैं, जैसे OAK-D और OAK-D-Lite।

साथ ही, इन पर टिप्पणी करें `max_depth = np.amax(depth)` और `cv2.imshow("depth", depth/max_depth)`

```python
from roboflowoak import RoboflowOak
import cv2
import time
import numpy as np

if __name__ == '__main__':
    # RoboflowOak मॉड्यूल के साथ एक ऑब्जेक्ट (rf) का इंस्टैंसिएशन
    rf = RoboflowOak(model="YOUR-MODEL-ID", confidence=0.05, overlap=0.5,
    version="YOUR-MODEL-VERSION-#", api_key="YOUR-PRIVATE_API_KEY", rgb=True,
    depth=True, device=None, blocking=True)
    # हमारा मॉडल चलाना और डिटेक्शन्स के साथ वीडियो आउटपुट दिखाना
    while True:
        t0 = time.time()
        # rf.detect() फ़ंक्शन मॉडल इन्फरेंस चलाता है
        result, frame, raw_frame, depth = rf.detect()
        predictions = result["predictions"]
        #{
        #    predictions:
        #    [ {
        #        x: (मध्य),
        #        y:(मध्य),
        #        width:
        #        height:
        #        depth: ###->
        #        confidence:
        #        class:
        #        mask: {
        #    ]
        #}
        #frame - प्रिप्रोसेसिंग के बाद का फ्रेम, predictions के साथ
        #raw_frame - आपका OAK से मूल फ्रेम
        #depth - raw_frame के लिए डेप्थ मैप, केंद्र-कैमरा के लिए केंद्र-संशोधित
        
        # timing: बेंचमार्किंग उद्देश्यों के लिए
        t = time.time()-t0
        print("FPS ", 1/t)
        print("PREDICTIONS ", [p.json() for p in predictions])

        # डेप्थ कैलकुलेशन के लिए पैरामीटर सेट करना
        # यदि आप बिना Depth वाले OAK का उपयोग कर रहे हैं तो निम्न 2 लाइनों पर टिप्पणी करें
        max_depth = np.amax(depth)
        cv2.imshow("depth", depth/max_depth)
        # वीडियो फ़ीड को लगातार फ्रेम के रूप में दिखाना
        cv2.imshow("frame", frame)
    
        # OAK इन्फरेंस विंडो को बंद करने / इन्फरेंस रोकने का तरीका: CTRL+q या CTRL+c
        if cv2.waitKey(1) == ord('q'):
            break
```

नीचे का कोड दर्ज करें (प्लेसहोल्डर टेक्स्ट को अपने Python स्क्रिप्ट के पाथ से बदलने के बाद)

```python
# विंडो बंद करने के लिए (इंटरप्ट या इन्फरेंस समाप्त करने के लिए), अपने कीबोर्ड पर CTRL+c दबाएँ
python3 /path/to/[YOUR-PYTHON-FILE].py
```

Apple Macbook Air (M1) को होस्ट डिवाइस के रूप में उपयोग करने पर इन्फरेंस स्पीड (मिलीसेकंड में) औसतन लगभग 15 ms, या 66 FPS रही। ***नोट**: OAK के साथ उपयोग किया गया होस्ट डिवाइस FPS पर भारी प्रभाव डालेगा। अपने सिस्टम बनाते समय इसे ध्यान में रखें।*

#### ट्रबलशूटिंग

यदि आप अपना OAK डिवाइस सेटअप करते समय समस्याओं का सामना कर रहे हैं, तो Luxonis की इंस्टॉलेशन निर्देशावलियों पर जाएँ और सुनिश्चित करें कि आप RGB उदाहरण को सफलतापूर्वक चला सकते हैं [Luxonis इंस्टॉलेशन](https://docs.luxonis.com/en/latest/#demo-script)। आप मदद के लिए [Roboflow Forum](https://discuss.roboflow.com/).

### पर भी पोस्ट कर सकते हैं

* [संदर्भ के लिए](https://blog.roboflow.com/opencv-ai-kit-deployment/)
* [M1 चिप का उपयोग करते समय इंस्टॉलेशन समस्या · Issue #299 · luxonis/depthai · GitHub](https://github.com/luxonis/depthai/issues/299) (depthai SDK)
