انتقل إلى المحتوى

دليل البدء السريع: NVIDIA Jetson مع Ultralytics YOLOv8

يوفر هذا الدليل الشامل إرشادات تفصيلية للنشر Ultralytics YOLOv8 على أجهزة NVIDIA Jetson . بالإضافة إلى ذلك ، فإنه يعرض معايير الأداء لإظهار قدرات YOLOv8 على هذه الأجهزة الصغيرة والقوية.

نفيديا جيتسون النظام البيئي

ملاحظه

تم اختبار هذا الدليل باستخدام Seeed Studio reComputer J4012 الذي يعتمد على NVIDIA Jetson Orin NX 16GB الذي يعمل بأحدث إصدار مستقر من JetPack من JP5.1.3. قد لا يكون استخدام هذا الدليل لأجهزة Jetson القديمة مثل Jetson Nano (يدعم هذا فقط حتى JP4.6.4) مضمونا للعمل. ومع ذلك ، من المتوقع أن يعمل هذا على جميع أجهزة Jetson Orin و Xavier NX و AGX Xavier التي تعمل بنظام JP5.1.3.

ما هو نفيديا جيتسون؟

NVIDIA Jetson عبارة عن سلسلة من لوحات الحوسبة المضمنة المصممة لجلب حوسبة الذكاء الاصطناعي (الذكاء الاصطناعي) المتسارعة إلى أجهزة الحافة. تم تصميم هذه الأجهزة المدمجة والقوية حول بنية وحدة معالجة الرسومات من NVIDIA وهي قادرة على تشغيل خوارزميات الذكاء الاصطناعي المعقدة ونماذج التعلم العميق مباشرة على الجهاز ، دون الحاجة إلى الاعتماد على موارد الحوسبة السحابية. غالبا ما تستخدم لوحات Jetson في الروبوتات والمركبات المستقلة والأتمتة الصناعية والتطبيقات الأخرى حيث يجب إجراء الاستدلال الذكاء الاصطناعي محليا بزمن انتقال منخفض وكفاءة عالية. بالإضافة إلى ذلك ، تعتمد هذه اللوحات على بنية ARM64 وتعمل على طاقة أقل مقارنة بأجهزة حوسبة GPU التقليدية.

مقارنة سلسلة نفيديا جيتسون

Jetson Orin هو أحدث تكرار لعائلة NVIDIA Jetson استنادا إلى بنية NVIDIA Ampere التي توفر أداء الذكاء الاصطناعي محسنا بشكل كبير مقارنة بالأجيال السابقة. قارن الجدول أدناه عددا قليلا من أجهزة Jetson في النظام البيئي.

جيتسون AGX أورين 64 جيجابايت جيتسون أورين NX 16 جيجابايت جيتسون أورين نانو 8 جيجا جيتسون AGX كزافييه جيتسون كزافييه NX جيتسون نانو
أداء الذكاء الاصطناعي 275 قمم 100 قمم 40 قمة 32 قمم 21 قمم 472 جلوب
الجرافيك 2048 نواة NVIDIA Ampere العمارة GPU مع 64 Tensor النوي 1024 نواة NVIDIA Ampere العمارة GPU مع 32 Tensor النوي 1024 نواة NVIDIA Ampere العمارة 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 نواة نفيديا الذراع® اللحاء A78AE v8.2 64 بت وحدة المعالجة المركزية 3MB L2 + 6MB L3 8-core NVIDIA Arm® Cortex A78AE v8.2 64 بت وحدة المعالجة المركزية 2MB L2 + 4MB L3 6 النواة الذراع® اللحاء® A78AE v8.2 64 بت وحدة المعالجة المركزية 1.5MB L2 + 4MB L3 8-core NVIDIA Carmel Arm®v8.2 64 بت وحدة المعالجة المركزية 8 ميجابايت L2 + 4 ميجابايت L3 6-core NVIDIA Carmel Arm®v8.2 64 بت وحدة المعالجة المركزية 6 ميجابايت L2 + 4 ميجابايت L3 معالج رباعي النواة® Cortex-A57® MPCore
وحدة المعالجة المركزية ماكس التردد 2.2 جيجاهرتز 2.0 جيجاهرتز 1.5 جيجاهرتز 2.2 جيجاهرتز 1.9 جيجاهرتز 1.43 جيجا هرتز
ذاكرة 64 جيجابايت 256 بت LPDDR5 204.8 جيجابايت / ثانية 16 جيجابايت 128 بت LPDDR5 102.4 جيجابايت / ثانية 8 جيجا بايت 128 بت LPDDR5 68 جيجا بايت / ثانية 32 جيجابايت 256 بت LPDDR4x 136.5 جيجابايت / ثانية 8 جيجا بايت 128 بت LPDDR4x 59.7 جيجا بايت / ثانية 4 جيجابايت 64 بت LPDDR4 25.6 جيجابايت / ثانية "

للحصول على جدول مقارنة أكثر تفصيلا ، يرجى زيارة قسم المواصفات الفنية في صفحة NVIDIA Jetson الرسمية.

ما هو نفيديا جيت باك؟

تعد NVIDIA JetPack SDK التي تعمل على تشغيل وحدات Jetson هي الحل الأكثر شمولا وتوفر بيئة تطوير كاملة لبناء تطبيقات الذكاء الاصطناعي المتسارعة الشاملة وتقصير وقت الوصول إلى السوق. يتضمن JetPack Jetson Linux مع أداة تحميل التشغيل ، ونواة Linux ، وبيئة سطح مكتب Ubuntu ، ومجموعة كاملة من المكتبات لتسريع حوسبة GPU والوسائط المتعددة والرسومات ورؤية الكمبيوتر. يتضمن أيضا عينات ووثائق وأدوات مطور لكل من الكمبيوتر المضيف ومجموعة المطورين ، ويدعم حزم SDK ذات المستوى الأعلى مثل DeepStream لتحليلات الفيديو المتدفقة و Isaac للروبوتات و Riva الذكاء الاصطناعي المحادثة.

فلاش JetPack إلى نفيديا جيتسون

الخطوة الأولى بعد وضع يديك على جهاز NVIDIA Jetson هي وميض NVIDIA JetPack على الجهاز. هناك عدة طرق مختلفة لوميض أجهزة NVIDIA Jetson.

  1. إذا كنت تمتلك مجموعة تطوير NVIDIA رسمية مثل Jetson Orin Nano Developer Kit ، فيمكنك زيارة هذا الرابط لتنزيل صورة وإعداد بطاقة SD باستخدام JetPack لتشغيل الجهاز.
  2. إذا كنت تمتلك أي مجموعة تطوير NVIDIA أخرى ، فيمكنك زيارة هذا الرابط لفلاش JetPack إلى الجهاز باستخدام SDK Manager.
  3. إذا كنت تمتلك جهاز Seeed Studio reComputer J4012 ، فيمكنك زيارة هذا الرابط لفلاش JetPack إلى SSD المضمن.
  4. إذا كنت تمتلك أي جهاز آخر تابع لجهة خارجية يتم تشغيله بواسطة وحدة NVIDIA Jetson ، فمن المستحسن اتباع وميض سطر الأوامر من خلال زيارة هذا الرابط.

ملاحظه

بالنسبة للطريقتين 3 و 4 أعلاه ، بعد وميض النظام وتشغيل الجهاز ، يرجى إدخال "sudo apt update && sudo apt install nvidia-jetpack -y" على طرف الجهاز لتثبيت جميع مكونات JetPack المتبقية المطلوبة.

ابدأ مع عامل ميناء

أسرع طريقة للبدء مع Ultralytics YOLOv8 على NVIDIA Jetson هو تشغيل مع صورة عامل ميناء مسبقة الصنع ل Jetson.

قم بتنفيذ الأمر أدناه لسحب أداة احتواء Docker وتشغيلها على Jetson. هذا يعتمد على L4T-pytorch صورة عامل الإرساء التي تحتوي على PyTorch و Torchvision في بيئة Python3.

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

ابدأ بدون عامل ميناء

أقام Ultralytics حزمة

سنقوم هنا بتثبيت حزمة ultralyics على Jetson مع تبعيات اختيارية حتى نتمكن من تصدير ملف 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 و Torchvision

ما سبق ultralytics سيتم تثبيت التثبيت Torch و Torchvision. ومع ذلك ، فإن حزم 2 المثبتة عبر النقطة غير متوافقة للتشغيل على منصة Jetson التي تعتمد على بنية ARM64. لذلك ، نحتاج إلى تثبيت يدويا مسبق الصنع PyTorch عجلة نقطة وتجميع / تثبيت Torchvision من المصدر.

  1. إلغاء التثبيت مثبت حاليا PyTorch و Torchvision
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 الإصدار 2.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 لإصدارات JetPack المختلفة. للحصول على قائمة أكثر تفصيلا حول PyTorch، توافق Torchvision ، يرجى التحقق هنا.

استخدام TensorRT على نفيديا جيتسون

من بين جميع تنسيقات تصدير النموذج التي يدعمها 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 حجم الصورة كعدد قياسي أو قائمة (H ، W) ، أي (640 ، 480)
half False تكميم FP16

نفيديا جيتسون أورين YOLOv8 المعايير

YOLOv8 تم تشغيل المعايير أدناه من قبل Ultralytics فريق على 3 تنسيقات نماذج مختلفة قياس السرعة والدقة: PyTorch, TorchScript و TensorRT. تم تشغيل المعايير على Seeed Studio reComputer J4012 المدعوم من جهاز Jetson Orin NX 16GB بدقة FP32 مع حجم صورة إدخال افتراضي يبلغ 640.

نفيديا جيتسون النظام البيئي
نموذج تنسيق حالة الحجم (ميغابايت) mAP50-95 (ب) وقت الاستدلال (مللي ثانية / 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) ووقت الاستدلال لكل مجموعة.

قم بزيارة هذا الرابط لاستكشاف المزيد من جهود قياس الأداء من قبل Seeed Studio الذي يعمل على إصدارات مختلفة من أجهزة NVIDIA Jetson.

إعادة إنتاج نتائجنا

لإعادة إنتاج ما سبق 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 صورة فال).

ملاحظه

حاليا فقط PyTorch, Torchscript و TensorRT تعمل مع أدوات قياس الأداء. سنقوم بتحديثه لدعم الصادرات الأخرى في المستقبل.

أفضل الممارسات عند استخدام NVIDIA Jetson

عند استخدام NVIDIA Jetson ، هناك بعض أفضل الممارسات التي يجب اتباعها من أجل تمكين أقصى أداء على تشغيل NVIDIA Jetson YOLOv8.

  1. تمكين وضع الطاقة MAX

    سيؤدي تمكين وضع الطاقة MAX على Jetson إلى التأكد من تشغيل جميع نوى وحدة المعالجة المركزية ووحدة معالجة الرسومات.

    sudo nvpmodel -m 0
    

  2. تمكين ساعات جيتسون

    سيؤدي تمكين Jetson Clocks إلى التأكد من تسجيل جميع نوى وحدة المعالجة المركزية ووحدة معالجة الرسومات بأقصى تردد لها.

    sudo jetson_clocks
    

  3. تثبيت تطبيق إحصائيات جيتسون

    يمكننا استخدام تطبيق Jetson stats لمراقبة درجات حرارة مكونات النظام والتحقق من تفاصيل النظام الأخرى مثل عرض وحدة المعالجة المركزية ووحدة معالجة الرسومات واستخدام ذاكرة الوصول العشوائي وتغيير أوضاع الطاقة وضبطها على الساعات القصوى والتحقق من معلومات JetPack

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

احصائيات جيتسون

الخطوات التالية

تهانينا على الإعداد الناجح YOLOv8 على نفيديا جيتسون الخاص بك! لمزيد من التعلم والدعم ، قم بزيارة المزيد من الدليل على Ultralytics YOLOv8 المستندات!



تم إنشاؤه في 2024-04-02, اخر تحديث 2024-04-18
المؤلفون: جلين جوشر (1) ، برهان كيو (1) ، لاكشانثاد (1)

التعليقات