अब आप roboflowoak package का उपयोग अपने custom trained Roboflow model को चलाने के लिए कर सकते हैं।
Inference चलाना: Deployment
यदि आप बिना Depth capabilities वाले OAK device पर deploy कर रहे हैं, तो सेट करें depth=False जब rf ऑब्जेक्ट को instantiate (create) कर रहे हों। Depth वाले OAK के model name के साथ एक "D" जुड़ा होता है, यानी OAK-D और OAK-D-Lite.
साथ ही, टिप्पणी करें max_depth = np.amax(depth) और cv2.imshow("depth", depth/max_depth)
नीचे दिया गया code दर्ज करें (placeholder text को अपनी Python script के path से बदलने के बाद)
Apple Macbook Air (M1) को host device के रूप में उपयोग करने पर inference speed (milliseconds में) औसतन लगभग 15 ms, या 66 FPS थी। नोट: OAK के साथ उपयोग किया गया host device FPS पर बहुत बड़ा प्रभाव डालेगा। अपना system बनाते समय इसे ध्यान में रखें।
समस्या निवारण
यदि आपको अपना OAK device सेट अप करने में समस्याएँ आ रही हैं, तो Luxonis के installation instructions पर जाएँ और सुनिश्चित करें कि आप RGB example को सफलतापूर्वक चला सकते हैं Luxonis स्थापना. आप सहायता के लिए Roboflow Forum.
from roboflowoak import RoboflowOak
import cv2
import time
import numpy as np
if __name__ == '__main__':
# RoboflowOak module के साथ एक object (rf) instantiate कर रहे हैं
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)
# अपने model को चलाना और detections के साथ video output प्रदर्शित करना
while True:
t0 = time.time()
# rf.detect() function model inference चलाती है
result, frame, raw_frame, depth = rf.detect()
predictions = result["predictions"]
#{
# predictions:
# [ {
# x: (middle),
# y:(middle),
# width:
# height:
# depth: ###->
# confidence:
# class:
# mask: {
# ]
#}
#frame - preprocs के बाद का frame, predictions के साथ
#raw_frame - आपके OAK से मूल frame
#depth - raw_frame के लिए depth map, center camera के साथ center-rectified
# timing: benchmarking उद्देश्यों के लिए
t = time.time()-t0
print("FPS ", 1/t)
print("PREDICTIONS ", [p.json() for p in predictions])
# depth calculation के लिए parameters सेट करना
# यदि आप बिना Depth वाले OAK का उपयोग कर रहे हैं, तो निम्नलिखित 2 lines पर टिप्पणी करें
max_depth = np.amax(depth)
cv2.imshow("depth", depth/max_depth)
# video feed को क्रमिक frames के रूप में प्रदर्शित करना
cv2.imshow("frame", frame)
# OAK inference window कैसे बंद करें / inference कैसे रोकें: CTRL+q या CTRL+c
if cv2.waitKey(1) == ord('q'):
break
# window बंद करने के लिए (interrupt या end inference), अपने keyboard पर CTRL+c दर्ज करें
python3 /path/to/[YOUR-PYTHON-FILE].py