برد جتسون نانو Jetson Nano

آموزش کار با برد جتسون نانو Nano بخش پنجم: شناخت NVIDIA JetPack SDK

getting-started-with-jetson-nano-nvidia-step-five-jetpack-sdk-digispark
نوشته شده توسط فرهود جعفری

در مجموعه آموزش‌های برد جتسون نانو Jetson از اولین قدم برای شروع کار، شناخت برد ورودی ها و خروجی های آن به همراه روش نصب سیستم عامل شروع کردیم. در هر قسمت نکته‌هایی بسیار مهم را بررسی کردیم. همچنان هم اعلام میکنم که دانستن برخی از نکات، هرچند ساده به نظر برسند، ولی در کار کردن با برد جتسون نانو بسیار حائز اهمیت هستند. در این بخش پس از بوت کردن سیستم عامل و روش های دسترسی به محیط OS در این بخش با جت پک ادامه می‌دهیم. در ادامه آموزش آشنایی با NVIDIA Jetpack SDK در جتسون نانو با مرجع تخصصی جتسون نانو به زبان فارسی، دیجی اسپارک همراه باشید.

 


آشنایی با NVIDIA Jetpack SDK


NVIDIA Jetpack SDK جامع ترین راه حل ارائه شده جهت ساخت برنامه های شتاب گرفته شده هوش مصنوعی از الف تا ی آن می باشد. کلیه بردهای توسعه و ماژول های Jetson از جمله همین برد Jetson Nano 2GB توسط JetPack SDK پشتیبانی می شوند. SDK مخفف software development kit یا همان بسته توسعه نرم افزار است. JetPack SDK شامل بسته درایور لینوکس جتسون (L4T)، کتابخانه هایی با دسترسی سریع CUDA-X و API هایی برای یادگیری عمیق یا همان Deep Learning است. همچنین بینایی کامپیوتر یا همان Computer Vision، محاسبات سریع یا همان Accelerated Computing و چند رسانه ای یا همان Multimedia را دارا است. همچنین شامل مثال ها، مستندات و ابزارهای توسعه جهت استفاده هم در کامپیوتر میزبان و همچنین کیت توسعه است. از SDK های سطح بالاتر همچون DeepStream که در زمینه تجزیه و تحلیل ویدیویی استفاده می شود و Isaac که در دنیای روباتیک کاربرد دارد پشتیبانی می‌کند.

 


جت پک JetPack نسخه ۴٫۶


آخرین نسخه از JetPack ورژن ۴٫۶ ارائه شده است. این نسخه جت پک از کلیه ماژول های جتسون پشتیبانی می کند. JetPack 4.6 دارای سیستم عامل (لینوکس) راه انداز بردهای جتسون و همچنین شامل پشتیبانی Triton Interface Server، ویرایش جدیدی از CUDA، cuDNN و TensorRT، VPI 1.1 به همراه الگوریتم های جدید دید کامپیوتری و ملحقات پایتون، L4T 32.6.1 به همراه امکانات بروزرسانی OTA، امکانات امنیتی، و ابزار جدید فلش جهت فلش کردن حافظه های داخلی یا خارجی متصل به جتسون است.

 


کتابخانه های پیش فرض Jetpack


جت پک NVIDIA JetPack SDK شامل یک فایل سیستم مرجع است. این فایل سیستم مشتق شده از سیستم عامل اوبونتو ۱۸٫۰۴ و همچنین هسته لینوکس ۴٫۹ (kernel)، booltloader، درایورهای NVIDIA و … می باشد. برخی از مهمترین کتابخانه‌های ارایه شده در بسته JetPack به شرح زیر است.

  • کتابخانه TensorRT و cuDNN برای برنامه های یادگیری عمیق (Deep Learning) با کارایی سطح بالا

کتابخانه TensorRT یادگیری عمیق در جتسون نانو - دیجی اسپارک

کتابخانه TensorRT یادگیری عمیق زمان اجرا، با کارایی سطح بالا جهت طبقه بندی تصویر، تقسیم بندی و شبکه های عصبی تشخیص اشیاء است. این کتابخانه سرعت یادگیری عمیق و همچنین کاهش مصرف حافظه زمان اجرا برای شبکه های عصبی convolutional و deconv را سرعت می بخشد. برای چارچوب های یادگیری عمیق، کتابخانه شبکه عصبی عمیق CUDA موارد پایه ای با عملکرد سطح بالا را ارائه می دهد. این بسته شامل پشتیبانی برای حلقه ها، توابع فعالسازی و تبدیل های Tensor می باشد.

 

  • کتابخانه CUDA برای کاربردهای تسریع شده در دامنه های مختلف با منابع GPU طراحی شده است. به عبارتی نوعی مدل برنامه نویسی است که توسط NVIDIA برای پردازنده‌های گرافیکی خودش، ایجاد شده است. کودا به توسعه دهنده گان نرم‌افزار اجازه می‌دهد تا از یک GPU که ویژگی CUDA-enabled دارد برای هدف پردازش استفاده کنند.

مدل برنامه نویسی CUDA در پردازنده گرافیکی جتسون نانو - دیجی اسپارک

  • کتابخانه NVIDIA Container Runtime برای پکت های بسته برنامه های پردازش گرافیکی پرسرعت طراحی شده است. این بسته اجرایی، ایجاد، توزیع و بکارگیری برنامه های شبیه سازی شده پردازش گرافیکی پرسرعت را میسر می سازد. به عبارتی توسط این کتابخانه امکان پک کردن یک سری پردازش‌های سمت GPU فراهم می‌شود.

کتابخانه NVIDIA Container Runtime - دیجی اسپارک

 

  • پکیج Multimedia API بسته API چندرسانه ای جتسون API های سطح پایین برای ساخت برنامه های انعطاف پذیر را ارائه می دهد.

Camera application API : libargus (کتابخانه ای است برای گرفتن عکس و دریافت اطلاعات از دوربین ها) یک API سطح پایین (low-level) با قابلیت کنترل دوربین به ازای هر فریم، پشتیبانی هم زمان از چندین دوربین،و خروجی EGL برای برنامه های وابسته به دوربین ارائه می دهد. خروجی RAW دوربین های CSI (Camera Serial Interface) که به ISP نیاز دارند می توانند توسط یکی از دو کتابخانه libargus یا Gstreamer مورد استفاده قرار بگیرند. در هر دو مورد API درایور کنترل کننده سنسور مالتی مدیا V4L2 استفاده می شود.

Sensor driver API: فریمورک V4L2 قابلیت های رمز کردن، رمزگشایی، تغییر فرمت های ویدیویی و تغییر مقیاس ها را امکان پذیر می کند. V4L2 برای قابلیت رمزنگاری امکانات بسیاری همچون کنترل bit rate، پیش تنظیم های کیفی، رمز نگاری با کندی یا آهستگی پایین، معاوضه زمانی، نقشه برداری های وابسته به حرکت (حرکتی) را ارائه می کند.

VisionWorks، OpenCV و VPI برای برنامه های محاسبات بصری.

VisionWorks یک SDK برای بینایی کامپیوتری (Computer Vision یا به اختصار CV) و پردازش تصویر است.

OpenCV کتابخانه متن باز پیشرو برای کاربری در بینایی کامپیوتر (CV)، پردازش تصویر و یادگیری ماشین است، و به تازگی قابلیت سرعت بخشی توسط GPU (Graphics Processing Unit) را نیز ارائه کرده است. (سرعت بخشی توسط واحد گرافیک به عملیات افزودن واحد پردازش گرافیک به CPU یا همان واحد پردازش مرکزی است به جهت سرعت بخشیدن به عملیات های محاسباتی پیچیده).

VPI (Vision Programming Interface). کتابخانه نرم افزاری است که الگوریتم های بینایی کامپیوتری/پردازش تصویر را بر روی PVA (Programmable Vision Accelerator)، GPU (Graphics Processing Unit) و CPU پیاده سازی کرده است.

قابلیت VPI فقط بر روی بردهای سری AGX Xavier و Jetson Xavier NX  موجود می باشد.

 


برنامه های آماده کتابخانه Jetpack


تعدادی نمونه برنامه وجود دارد که عملکرد و طرز استفاده از کامپوننت های JetPack را نشان می دهد. این کد ها در فایل سیستم مرجع قرار دارند و روی کیت توسعه می توانند کامپایل شوند.

/usr/src/tensorrt/samples/

TensorRT

/usr/src/cudnn_samples_<version>/

cuDNN

/usr/local/cuda-<version>/samples/

CUDA

/usr/src/jetson_multimedia_api

MM API

/usr/share/visionworks/sources/samples/

/usr/share/visionworks-tracking/sources/samples/

/usr/share/visionworks-sfm/sources/samples/

VisionWorks

/usr/share/opencv4/samples/

 OpenCV

/opt/nvidia/vpi/samples/

VPI

 


لوازم مورد نیاز


بردهای مبتنی بر هوش مصنوعی Jetson nano

کابل USB Type-C

مموری Micro SD

 


جمع بندی


در این بخش یکی از ابزارهای مهم و کاربردی هوش مصنوعی یعنی جت پک Jetpack SDK را معرفی کردیم. کتابخانه های پیش فرض داخل جت پک بررسی شدند. در انتها هم جدولی از مسیرهای نمونه برنامه پیش فرض در کتابخانه ها معرفی کردیم. دسترسی به این مسیرها میتوانند در روند کار کردن و راه اندازی پروژه ها با برد جتسون نانو، به ما کمک کنند.

 

چنانچه مطالب این آموزش را گنک یافتید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریع‌ترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در مطالب درج شده وجود دارد می‌توانید از همین طریق اطلاع رسانی کنید.

 

درباره نویسنده

فرهود جعفری

When did Noah build the ark? Before the rain, before the RAIN...

تبادل نظر و رفع عیب با ثبت دیدگاه