सामग्री पर जाएं

क्विक स्टार्ट गाइड: NVIDIA Jetson के साथ Ultralytics YOLOv8

यह व्यापक मार्गदर्शिका परिनियोजित करने के लिए एक विस्तृत पूर्वाभ्यास प्रदान करती है Ultralytics YOLOv8 NVIDIA Jetson उपकरणों पर। इसके अतिरिक्त, यह की क्षमताओं को प्रदर्शित करने के लिए प्रदर्शन बेंचमार्क दिखाता हैYOLOv8 इन छोटे और शक्तिशाली उपकरणों पर।

NVIDIA जेटसन इकोसिस्टम

नोट

इस गाइड का परीक्षण Seeed Studio reComputer J4012 के साथ किया गया है जो NVIDIA Jetson Orin NX 16GB पर आधारित है, जो JP5.1.3 के नवीनतम स्थिर जेटपैक रिलीज़ पर चल रहा है। जेटसन नैनो जैसे पुराने जेटसन उपकरणों के लिए इस गाइड का उपयोग करना (यह केवल JP4.6.4 तक समर्थन करता है) काम करने की गारंटी नहीं हो सकती है। हालाँकि यह JP5.1.3 चलाने वाले सभी Jetson Orin, Xavier NX, AGX Xavier उपकरणों पर काम करने की उम्मीद है।

NVIDIA Jetson क्या है?

NVIDIA Jetson एम्बेडेड कंप्यूटिंग बोर्डों की एक श्रृंखला है जिसे त्वरित AI (कृत्रिम बुद्धिमत्ता) कंप्यूटिंग को किनारे के उपकरणों में लाने के लिए डिज़ाइन किया गया है। ये कॉम्पैक्ट और शक्तिशाली डिवाइस NVIDIA के GPU आर्किटेक्चर के आसपास बनाए गए हैं और क्लाउड कंप्यूटिंग संसाधनों पर भरोसा किए बिना सीधे डिवाइस पर जटिल AI एल्गोरिदम और डीप लर्निंग मॉडल चलाने में सक्षम हैं। जेटसन बोर्ड अक्सर रोबोटिक्स, स्वायत्त वाहनों, औद्योगिक स्वचालन और अन्य अनुप्रयोगों में उपयोग किए जाते हैं जहां एआई अनुमान को कम विलंबता और उच्च दक्षता के साथ स्थानीय रूप से प्रदर्शन करने की आवश्यकता होती है। इसके अतिरिक्त, ये बोर्ड ARM64 आर्किटेक्चर पर आधारित हैं और पारंपरिक GPU कंप्यूटिंग उपकरणों की तुलना में कम शक्ति पर चलते हैं।

NVIDIA Jetson सीरीज तुलना

जेटसन ओरिन एनवीआईडीआईए एम्पीयर आर्किटेक्चर पर आधारित एनवीआईडीआईए जेटसन परिवार का नवीनतम पुनरावृत्ति है जो पिछली पीढ़ियों की तुलना में एआई प्रदर्शन में काफी सुधार लाता है। नीचे दी गई तालिका ने पारिस्थितिकी तंत्र में कुछ जेटसन उपकरणों की तुलना की।

जेटसन एजीएक्स ओरिन 64GB जेटसन ओरिन एनएक्स 16जीबी जेटसन ओरिन नैनो 8GB जेटसन एजीएक्स जेवियर जेटसन जेवियर एनएक्स जेटसन नैनो
एआई प्रदर्शन 275 सबसे ऊपर 100 सबसे ऊपर 40 टॉप 32 सबसे ऊपर 21 सबसे ऊपर 472 जीएफएलओपीएस
जीपीयू 2048-कोर NVIDIA एम्पीयर आर्किटेक्चर GPU 64 के साथ Tensor कोर 1024-कोर NVIDIA एम्पीयर आर्किटेक्चर GPU 32 के साथ Tensor कोर 1024-कोर NVIDIA एम्पीयर आर्किटेक्चर GPU 32 के साथ Tensor कोर 512-कोर NVIDIA वोल्टा आर्किटेक्चर GPU 64 के साथ Tensor कोर 384-कोर NVIDIA वोल्टा™ आर्किटेक्चर GPU 48 के साथ Tensor कोर 128-कोर NVIDIA मैक्सवेल™ आर्किटेक्चर GPU
GPU मैक्स फ्रीक्वेंसी 1.3 गीगा 918 मेगाहर्ट्ज 625 मेगाहर्ट्ज 1377 मेगाहर्ट्ज 1100 मेगाहर्ट्ज 921 मेगाहर्ट्ज
सीपीयू 12-कोर NVIDIA आर्म® कॉर्टेक्स A78AE v8.2 64-बिट CPU 3MB L2 + 6MB L3 8-कोर NVIDIA आर्म® कॉर्टेक्स A78AE v8.2 64-बिट CPU 2MB L2 + 4MB L3 6-कोर आर्म® कोर्टेक्स-A78AE® v8.2 64-बिट सीपीयू 1.5MB L2 + 4MB L3 8-कोर NVIDIA कार्मेल आर्म®v8.2 64-बिट CPU 8MB L2 + 4MB L3 6-कोर NVIDIA कार्मेल आर्म®v8.2 64-बिट CPU 6MB L2 + 4MB L3 क्वाड-कोर आर्म® कॉर्टेक्स-ए57® एमपीकोर प्रोसेसर
सीपीयू अधिकतम आवृत्ति 2.2 गीगा 2.0 गीगा 1.5 गीगा 2.2 गीगा 1.9 गीगा 1.43 गीगाहर्ट्ज़
याद 64GB 256-बिट LPDDR5 204.8GB/s 16GB 128-बिट LPDDR5 102.4GB/s 8GB 128-बिट LPDDR5 68 GB/s 32GB 256-बिट LPDDR4x 136.5GB/s 8GB 128-बिट LPDDR4x 59.7GB/s 4GB 64-बिट LPDDR4 25.6GB/s"

अधिक विस्तृत तुलना तालिका के लिए, कृपया आधिकारिक NVIDIA Jetson पृष्ठ के तकनीकी विनिर्देश अनुभाग पर जाएँ।

NVIDIA जेटपैक क्या है?

NVIDIA JetPack SDK Jetson मॉड्यूल को शक्ति प्रदान करना सबसे व्यापक समाधान है और एंड-टू-एंड त्वरित AI अनुप्रयोगों के निर्माण के लिए पूर्ण विकास वातावरण प्रदान करता है और बाजार में समय कम करता है। जेटपैक में बूटलोडर, लिनक्स कर्नेल, उबंटू डेस्कटॉप वातावरण के साथ जेटसन लिनक्स और जीपीयू कंप्यूटिंग, मल्टीमीडिया, ग्राफिक्स और कंप्यूटर दृष्टि के त्वरण के लिए पुस्तकालयों का एक पूरा सेट शामिल है। इसमें होस्ट कंप्यूटर और डेवलपर किट दोनों के लिए नमूने, प्रलेखन और डेवलपर टूल भी शामिल हैं, और उच्च स्तरीय एसडीके का समर्थन करता है जैसे कि वीडियो एनालिटिक्स स्ट्रीमिंग के लिए डीपस्ट्रीम, रोबोटिक्स के लिए इसहाक और संवादी एआई के लिए रीवा।

NVIDIA Jetson के लिए JetPack फ्लैश करें

NVIDIA Jetson डिवाइस पर अपना हाथ रखने के बाद पहला कदम डिवाइस पर NVIDIA JetPack को फ्लैश करना है। NVIDIA Jetson उपकरणों को चमकाने के कई अलग-अलग तरीके हैं।

  1. यदि आपके पास जेटसन ओरिन नैनो डेवलपर किट जैसी आधिकारिक एनवीआईडीआईए डेवलपमेंट किट है, तो आप एक छवि डाउनलोड करने और डिवाइस को बूट करने के लिए जेटपैक के साथ एसडी कार्ड तैयार करने के लिए इस लिंक पर जा सकते हैं।
  2. यदि आपके पास कोई अन्य NVIDIA डेवलपमेंट किट है, तो आप SDK Manager का उपयोग करके डिवाइस पर JetPack को फ्लैश करने के लिए इस लिंक पर जा सकते हैं।
  3. यदि आपके पास Seeed Studio reComputer J4012 डिवाइस है, तो आप JetPack को शामिल SSD में फ़्लैश करने के लिए इस लिंक पर जा सकते हैं।
  4. यदि आप NVIDIA Jetson मॉड्यूल द्वारा संचालित किसी अन्य तृतीय पक्ष डिवाइस के मालिक हैं, तो इस लिंक पर जाकर कमांड-लाइन फ्लैशिंग का पालन करने की अनुशंसा की जाती है।

नोट

उपरोक्त विधियों 3 और 4 के लिए, सिस्टम को फ्लैश करने और डिवाइस को बूट करने के बाद, कृपया आवश्यक सभी शेष जेटपैक घटकों को स्थापित करने के लिए डिवाइस टर्मिनल पर "sudo apt update &&& sudo apt install nvidia-jetpack -y" दर्ज करें।

डॉकर से शुरू करें

आरंभ करने का सबसे तेज़ तरीका Ultralytics YOLOv8 NVIDIA Jetson पर Jetson के लिए पूर्व-निर्मित डॉकर छवि के साथ चलना है।

डॉकर को खींचने और जेटसन पर चलाने के लिए नीचे दिए गए कमांड को निष्पादित करें। यह पर आधारित है एल4टी-pytorch docker छवि जिसमें शामिल हैं PyTorch और एक Python3 वातावरण में Torchvision।

t=ultralytics/ultralytics:latest-jetson && sudo docker pull $t && sudo docker run -it --ipc=host --runtime=nvidia $t

डॉकर के बिना शुरू करें

पदासीन करना Ultralytics पैकेज

यहां हम वैकल्पिक निर्भरता के साथ जेटसन पर अल्ट्रालिक्स पैकेज स्थापित करेंगे ताकि हम निर्यात कर सकें PyTorch अन्य विभिन्न स्वरूपों के लिए मॉडल। हम मुख्य रूप से ध्यान केंद्रित करेंगे एनवीडिया TensorRT निर्यात करता है क्योंकि TensoRT यह सुनिश्चित करेगा कि हम Jetson उपकरणों से अधिकतम प्रदर्शन प्राप्त कर सकें।

  1. पैकेज सूची अपडेट करें, पाइप स्थापित करें और नवीनतम में अपग्रेड करें
sudo apt update
sudo apt install python3-pip -y
pip install -U pip
  1. पदासीन करना ultralytics वैकल्पिक निर्भरता के साथ पीआईपी पैकेज
pip install ultralytics[export]
  1. डिवाइस को रिबूट करें
sudo reboot

पदासीन करना PyTorch और मशाल दृष्टि

उपरोक्त ultralytics स्थापना स्थापित हो जाएगी Torch और मशाल दृष्टि। हालांकि, पाइप के माध्यम से स्थापित ये 2 पैकेज जेटसन प्लेटफॉर्म पर चलने के लिए संगत नहीं हैं जो एआरएम 64 आर्किटेक्चर पर आधारित है। इसलिए, हमें पूर्व-निर्मित मैन्युअल रूप से स्थापित करने की आवश्यकता है PyTorch पाइप व्हील और स्रोत से मशाल विजन संकलन/स्थापित करें।

  1. वर्तमान में स्थापित स्थापना रद्द करें PyTorch और मशाल दृष्टि
pip uninstall torch torchvision
  1. पदासीन करना PyTorch 2.1.0 JP5.1.3 के अनुसार
sudo apt-get install -y libopenblas-base libopenmpi-dev
wget https://developer.download.nvidia.com/compute/redist/jp/v512/pytorch/torch-2.1.0a0+41361538.nv23.06-cp38-cp38-linux_aarch64.whl -O torch-2.1.0a0+41361538.nv23.06-cp38-cp38-linux_aarch64.whl
pip install torch-2.1.0a0+41361538.nv23.06-cp38-cp38-linux_aarch64.whl
  1. के अनुसार Torchvision v0.16.2 स्थापित करें PyTorch v2.1.0 के अनुसार
sudo apt install -y libjpeg-dev zlib1g-dev
git clone https://github.com/pytorch/vision torchvision
cd torchvision
git checkout v0.16.2
python3 setup.py install --user

के सभी विभिन्न संस्करणों तक पहुंचने के लिए इस पृष्ठ पर जाएँ PyTorch विभिन्न जेटपैक संस्करणों के लिए। पर अधिक विस्तृत सूची के लिए PyTorch, Torchvision संगतता, कृपया यहाँ जाँच करें.

प्रयोग TensorRT NVIDIA Jetson पर

द्वारा समर्थित सभी मॉडल निर्यात स्वरूपों में से Ultralytics, TensorRT NVIDIA Jetson उपकरणों के साथ काम करते समय सबसे अच्छा अनुमान प्रदर्शन प्रदान करता है और हमारी सिफारिश का उपयोग करना है TensorRT जेटसन के साथ। हमारे पास एक विस्तृत दस्तावेज भी है TensorRT यहां

मॉडल को में बदलें TensorRT और रन अनुमान

वही YOLOv8n मॉडल में PyTorch स्वरूप को इसमें बदल दिया गया है TensorRT निर्यात किए गए मॉडल के साथ अनुमान चलाने के लिए।

उदाहरण

from ultralytics import YOLO

# Load a YOLOv8n PyTorch model
model = YOLO('yolov8n.pt')

# Export the model
model.export(format='engine')  # creates 'yolov8n.engine'

# Load the exported TensorRT model
trt_model = YOLO('yolov8n.engine')

# Run inference
results = trt_model('https://ultralytics.com/images/bus.jpg')
# Export a YOLOv8n PyTorch model to TensorRT format
yolo export model=yolov8n.pt format=engine  # creates 'yolov8n.engine'

# Run inference with the exported model
yolo predict model=yolov8n.engine source='https://ultralytics.com/images/bus.jpg'

तर्क

अत्‍यंत महत्वपूर्ण मूल्य या क़िस्‍म
format 'engine' निर्यात करने के लिए प्रारूप
imgsz 640 स्केलर या (एच, डब्ल्यू) सूची के रूप में छवि का आकार, यानी (640, 480)
half False FP16 परिमाणीकरण

एनवीडिया जेटसन ओरिन YOLOv8 मानक

YOLOv8 नीचे दिए गए बेंचमार्क द्वारा चलाए गए थे Ultralytics गति और सटीकता को मापने वाले 3 अलग-अलग मॉडल प्रारूपों पर टीम: PyTorch, TorchScript और TensorRT. बेंचमार्क Seeed Studio reComputer J4012 पर FP32 परिशुद्धता पर Jetson Orin NX 16GB डिवाइस द्वारा संचालित 640 के डिफ़ॉल्ट इनपुट छवि आकार के साथ चलाए गए थे।

NVIDIA जेटसन इकोसिस्टम
को गढ़ना प्रारूप ओहदा आकार (MB) एमएपी 50-95 (बी) अनुमान समय (ms/im)
YOLOv8n PyTorch 6.2 0.4473 14.3
YOLOv8n TorchScript 12.4 0.4520 13.3
YOLOv8n TensorRT 13.6 0.4520 8.7
YOLOv8s PyTorch 21.5 0.5868 18
YOLOv8s TorchScript 43.0 0.5971 23.9
YOLOv8s TensorRT 44.0 0.5965 14.82
YOLOv8m PyTorch 49.7 0.6101 36.4
YOLOv8m TorchScript 99.2 0.6125 53.34
YOLOv8m TensorRT 100.3 0.6123 33.28
YOLOv8l PyTorch 83.7 0.6588 61.3
YOLOv8l TorchScript 167.2 0.6587 85.21
YOLOv8l TensorRT 168.3 0.6591 51.34
YOLOv8x PyTorch 130.5 0.6650 93
YOLOv8x TorchScript 260.7 0.6651 135.3
YOLOv8x TensorRT 261.8 0.6645 84.5

यह तालिका पांच अलग-अलग मॉडलों (YOLOv8n, YOLOv8s, YOLOv8m, YOLOv8l, YOLOv8x) तीन अलग-अलग स्वरूपों में (PyTorch, TorchScript, TensorRT), हमें प्रत्येक संयोजन के लिए स्थिति, आकार, mAP50-95 (B) मीट्रिक और अनुमान समय प्रदान करता है।

NVIDIA Jetson हार्डवेयर के विभिन्न संस्करणों पर चल रहे Seeed Studio द्वारा अधिक बेंचमार्किंग प्रयासों का पता लगाने के लिए इस लिंक पर जाएँ।

हमारे परिणामों को पुन: पेश करें

उपरोक्त को पुन: पेश करने के लिए Ultralytics सभी निर्यात प्रारूपों पर बेंचमार्क इस कोड को चलाते हैं:

उदाहरण

from ultralytics import YOLO

# Load a YOLOv8n PyTorch model
model = YOLO('yolov8n.pt')

# Benchmark YOLOv8n speed and accuracy on the COCO8 dataset for all all export formats
results = model.benchmarks(data='coco8.yaml', imgsz=640)
# Benchmark YOLOv8n speed and accuracy on the COCO8 dataset for all all export formats
yolo benchmark model=yolov8n.pt data=coco8.yaml imgsz=640

ध्यान दें कि बेंचमार्किंग परिणाम सिस्टम के सटीक हार्डवेयर और सॉफ़्टवेयर कॉन्फ़िगरेशन के साथ-साथ बेंचमार्क चलाए जाने के समय सिस्टम के वर्तमान कार्यभार के आधार पर भिन्न हो सकते हैं। सबसे विश्वसनीय परिणामों के लिए बड़ी संख्या में छवियों के साथ डेटासेट का उपयोग करें, अर्थात। data='coco8.yaml' (128 val images), ordata='coco.yaml'' (5000 val images).

नोट

वर्तमान में केवल PyTorch, Torchscript और TensorRT बेंचमार्किंग टूल के साथ काम कर रहे हैं। हम भविष्य में अन्य निर्यातों का समर्थन करने के लिए इसे अपडेट करेंगे।

NVIDIA Jetson का उपयोग करते समय सर्वोत्तम अभ्यास

NVIDIA Jetson का उपयोग करते समय, NVIDIA Jetson पर अधिकतम प्रदर्शन को सक्षम करने के लिए कुछ सर्वोत्तम प्रथाओं का पालन करना है YOLOv8.

  1. MAX पावर मोड सक्षम करें

    जेटसन पर मैक्स पावर मोड को सक्षम करने से सुनिश्चित होगा कि सभी सीपीयू, जीपीयू कोर चालू हैं।

    sudo nvpmodel -m 0
    

  2. जेटसन घड़ियां सक्षम करें

    जेटसन घड़ियों को सक्षम करने से यह सुनिश्चित होगा कि सभी सीपीयू, जीपीयू कोर उनकी अधिकतम आवृत्ति पर देखे गए हैं।

    sudo jetson_clocks
    

  3. Jetson आँकड़े आवेदन स्थापित करें

    हम सिस्टम घटकों के तापमान की निगरानी करने और अन्य सिस्टम विवरणों की जांच करने के लिए जेटसन आँकड़े एप्लिकेशन का उपयोग कर सकते हैं जैसे कि सीपीयू, जीपीयू, रैम उपयोग, पावर मोड बदलें, अधिकतम घड़ियों पर सेट करें, जेटपैक जानकारी की जांच करें

    sudo apt update
    sudo pip install jetson-stats
    sudo reboot
    jtop
    

जेटसन आँकड़े

अगले कदम

सफलतापूर्वक स्थापित करने पर बधाई YOLOv8 अपने NVIDIA Jetson पर! आगे सीखने और समर्थन के लिए, पर जाएँ अधिक गाइड पर जाएँ Ultralytics YOLOv8 डॉक्स!



2024-04-02 बनाया गया, अपडेट किया गया 2024-04-18
लेखक: ग्लेन-जोचर (1), बुरहान-क्यू (1), लक्षंथड (1)

टिप्पणियाँ