دیپ‌استریم(DeepStream)

نویسنده:
شرکت پیشرو Ai
تاریخ انتشار:
10 تیر 1405
دیدگاه ها:
دیپ‌استریم (NVIDIA DeepStream) تحلیل ویدئویی هوشمند (Video Analytics) بینایی ماشین در جتسون پردازش ویدئو بلادرنگ (Real-Time Video Processing) GStreamer در DeepStream TensorRT رهگیری اشیا (Object Tracking) استنتاج هوش مصنوعی (AI Inference) Edge AI NVIDIA Jetson DeepStream

دیپ‌استریم (DeepStream) یک کیت ابزار تجزیه و تحلیل جریانی (Streaming Analytics) برای ساخت اپلیکیشن‌های مبتنی بر هوش مصنوعی است. این ابزار داده‌های ویدئویی جریانی را به عنوان ورودی از منابع مختلفی مانند دوربین‌های USB و…

دیپ‌استریم (DeepStream) یک کیت ابزار تجزیه و تحلیل جریانی (Streaming Analytics) برای ساخت اپلیکیشن‌های مبتنی بر هوش مصنوعی است. این ابزار داده‌های ویدئویی جریانی را به عنوان ورودی از منابع مختلفی مانند دوربین‌های USB و CSI، فایل‌های ویدئویی یا استریم‌های تحت پروتکل RTSP دریافت کرده و با بهره‌گیری از هوش مصنوعی و بینایی ماشین، اطلاعات و تحلیل‌های ارزشمندی را از پیکسل‌ها برای درک بهتر محیط استخراج می‌کند.

SDK دیپ‌استریم می‌تواند به عنوان لایه زیربنایی برای طیف گسترده‌ای از راهکارهای تحلیل ویدئویی مورد استفاده قرار گیرد؛

 از جمله:

  • تحلیل ترافیک و تردد عابران پیاده در شهرهای هوشمند
  • نظارت بر سلامت و ایمنی در بیمارستان‌ها
  • سیستم‌های پرداخت خودکار (Self-checkout) و تحلیل رفتار مشتری در خرده‌فروشی‌ها
  • تشخیص نقص فنی قطعات در تأسیسات تولیدی و صنعتی و موارد دیگر.

توسعه و ابزارهای برنامه‌نویسی

دیپ‌استریم (DeepStream) از توسعه اپلیکیشن به زبان‌های C/C++ و همچنین پایتون (از طریق Python bindings) پشتیبانی می‌کند.. همچنین نمونه‌های بیشتری از برنامه‌های مرجع در صفحه گیت‌هاب NVIDIA-AI-IOT در دسترس است.

شتاب‌دهی سخت‌افزاری و امنیت

هسته اصلی این SDK از چندین پلاگین شتاب‌دهنده سخت‌افزاری تشکیل شده است که از واحد‌هایی نظیر VIC، GPU، DLA، NVDEC و NVENC استفاده می‌کنند. دیپ‌استریم با اجرای تمامی عملیات‌های سنگین محاسباتی روی شتاب‌دهنده‌های اختصاصی، به بالاترین سطح کارایی (Performance) در اپلیکیشن‌های تحلیل ویدئویی دست می‌یابد. یکی از قابلیت‌های کلیدی دیپ‌استریم، ارتباط امن و دوطرفه بین لبه (Edge) و ابر (Cloud) است. این ابزار به صورت پیش‌فرض از پروتکل‌های امنیتی متعددی پشتیبانی می‌کند، از جمله:

  • احراز هویت SASL/Plain با استفاده از نام کاربری و رمز عبور.
  • احراز هویت دوطرفه TLS.

Technology Stack

دیپ‌استریم بر پایه کتابخانه‌های قدرتمند انویدیا در پشته CUDA-X بنا شده است؛ کتابخانه‌هایی همچون CUDA، TensorRT، سرور استنتاج NVIDIA Triton و کتابخانه‌های چندرسانه‌ای.

TensorRT  : فرآیند استنتاج (Inference) هوش مصنوعی را روی پردازنده‌های گرافیکی انویدیا شتاب‌دهی می‌کند.

انتزاع پلاگین‌ها: دیپ‌استریم پیچیدگی این کتابخانه‌ها را در قالب «پلاگین» ساده‌سازی کرده است تا توسعه‌دهندگان بتوانند بدون نیاز به یادگیری تک‌تک کتابخانه‌ها، خط‌لوله‌های (Pipelines) تحلیل ویدئویی خود را بسازند.

استقرار و مدیریت

دیپ‌استریم برای پردازنده‌های گرافیکی انویدیا بهینه‌سازی شده است. اپلیکیشن‌های ساخته شده را می‌توان روی:

  1. دستگاه‌های لبه (Embedded Edge): مبتنی بر پلتفرم Jetson.
  2. مراکز داده: پردازنده‌های گرافیکی بزرگتر مانند T4.

همچنین این اپلیکیشن‌ها قابلیت اجرا در کانتینرها (با استفاده از NVIDIA Container Runtime) را دارند که در ریجستری NGC انویدیا موجود هستند. علاوه بر این، برای مدیریت در مقیاس بزرگ، می‌توان اپلیکیشن‌های دیپ‌استریم را با استفاده از Kubernetes روی GPU مدیریت (Orchestrate) کرد. نمونه‌های Helm chart برای استقرار آسان‌تر نیز در NGC در دسترس قرار گرفته است.

معماری گراف دیپ‌استریم

دیپ‌استریم یک معماری گراف بهینه‌سازی شده است که بر پایه فریم‌ورک متن‌باز GStreamer توسعه یافته است. نمودار زیر، یک اپلیکیشن استاندارد تحلیل ویدئویی را نشان می‌دهد که مراحل آن از دریافت ویدئوی ورودی آغاز شده و به استخراج اطلاعات تحلیلی (Insights) ختم می‌شود.

در این ساختار:

  • پلاگین‌ها: هر یک از بلوک‌های مجزا در نمودار، نشان‌دهنده پلاگین‌های مختلفی هستند که در طول مسیر پردازش استفاده می‌شوند.
  • موتورهای سخت‌افزاری: در لایه پایینی، موتورهای سخت‌افزاری متنوعی قرار دارند که در تمامی مراحل اجرای اپلیکیشن نقش ایفا می‌کنند.
  • کارایی حداکثری: مدیریت بهینه حافظه با استفاده از تکنیک Zero-memory copy (عدم کپی‌سازی داده‌ها در حافظه هنگام انتقال بین پلاگین‌ها) و بهره‌گیری از شتاب‌دهنده‌های سخت‌افزاری مختلف، تضمین‌کننده دستیابی به بالاترین سطح عملکرد و کارایی است.

دیپ‌استریم (DeepStream) مجموعه‌ای از اجزای سازنده را در قالب پلاگین‌های GStreamer فراهم می‌کند که می‌توان از آن‌ها برای ساخت یک خط لوله (Pipeline) کارآمد تحلیل ویدئویی استفاده کرد.

بیش از ۲۰ پلاگین مختلف در این پلتفرم وجود دارد که برای انجام وظایف گوناگون به صورت شتاب‌یافته با سخت‌افزار (Hardware Accelerated) بهینه‌سازی شده‌اند.

Streaming Data

Streaming Data می‌تواند از سه منبع اصلی وارد سیستم شود:

  • از طریق شبکه با RTSP
  • از روی فایل‌های محلی
  • به طور مستقیم از دوربین

ابتدا این استریم‌ها توسط CPU دریافت (Capture) می‌شوند. پس از قرار گرفتن فریم‌ها در حافظه، برای Decode شدن به شتاب‌دهندهٔ NVDEC ارسال می‌شوند. پلاگین مربوط به مرحلهٔ Decode، Gst-nvvideo4linux2 نام دارد.

پیش‌پردازش تصویر

بعد از Decode، یک مرحلهٔ اختیاری پیش‌پردازش تصویر وجود دارد که در آن، تصویر ورودی قبل از استنتاج (Inference) آماده‌سازی می‌شود. این پیش‌پردازش می‌تواند شامل موارد زیر باشد:

  • اصلاح اعوجاج (Dewarping) تصویر
  • تبدیل فضای رنگی (Color Space Conversion)

پلاگین‌ها:

  • Gst-nvdewarper: برای Dewarp کردن تصاویر دریافتی از دوربین‌های فیش‌آی (Fisheye) یا ۳۶۰ درجه
  • Gst-nvvideoconvert: برای تبدیل فرمت رنگ فریم‌ها

این پلاگین‌ها از GPU یا VIC (Vision Image Compositor) استفاده می‌کنند.

دسته‌بندی فریم‌ها

پس از Batch شدن فریم‌ها، نوبت به استنتاج مدل‌های هوش مصنوعی می‌رسد. این کار می‌تواند به دو صورت انجام شود:

  • با TensorRT، موتور شتاب‌دهندهٔ استنتاج انویدیا
  • در فریم‌ورک‌های بومی مثل TensorFlow یا PyTorch از طریق NVIDIA Triton Inference Server

پلاگین‌ها:

  • Gst-nvinfer: برای استنتاج با TensorRT به صورت مستقیم
  • Gst-nvinferserver: برای استنتاج از طریق Triton Inference Server

رهگیری اشیاء(Object Tracking)

بعد از استنتاج، معمولاً مرحلهٔ بعد رهگیری اشیاء است. در SDK چندین Tracker مرجع وجود دارد که طیفی از کارایی بالا تا دقت بالا را پوشش می‌دهند.

رهگیری اشیاء توسط پلاگین Gst-nvtracker انجام می‌شود.

مصورسازی

برای ساخت خروجی‌های تصویری مانند:

  • Bounding Box
  • Maskهای سگمنتیشن
  • برچسب‌ها (Labels)

از پلاگین مصورسازی Gst-nvdsosd استفاده می‌شود.

خروجی گرفتن و ارسال به ابر (Cloud)

در مرحلهٔ نهایی، دیپ‌استریم گزینه‌های مختلفی برای خروجی نتایج ارائه می‌دهد:

  • نمایش خروجی روی صفحه با Bounding Box
  • ذخیرهٔ خروجی روی دیسک محلی
  • استریم مجدد خروجی از طریق RTSP
  • یا فقط ارسال Metadata به ابر (Cloud)

ارسال داده‌ها به فضای ابری

برای ارسال متا‌دیتا (Metadata) به فضای ابری، DeepStream از دو پلاگین کلیدی زیر استفاده می‌کند:

  • Gst-nvmsgconv: وظیفه تبدیل متادیتا به قالب داده‌های استاندارد (Schema Payload) را بر عهده دارد.
  • Gst-nvmsgbroker: مسئول برقراری اتصال با فضای ابری و ارسال داده‌های دورسنجی (Telemetry) است.

در این بخش، چندین پروتکل کارگزار (Broker) به صورت پیش‌فرض پیاده‌سازی شده‌اند، از جمله:

  • Kafka
  • MQTT
  • AMQP
  • Azure IoT

آماده‌اید تا اولین اپلیکیشن خود را بسازید؟

حالا که با معماری و قطعات سازنده این پلتفرم آشنا شدید، وقت آن است که ببینید این اجزا چطور در کنار هم یک اپلیکیشن هوشمند کامل را می‌سازند. در بخش بعدی، برای بررسی برنامه‌های مرجع (Reference Apps) و مشاهده پروژه‌های عملی، با ما همراه باشید.

 

1. دیپ‌استریم (NVIDIA DeepStream) چیست؟

دیپ‌استریم یک SDK از شرکت NVIDIA برای توسعه اپلیکیشن‌های تحلیل ویدئویی مبتنی بر هوش مصنوعی است که امکان پردازش بلادرنگ استریم‌های ویدئویی و اجرای مدل‌های بینایی ماشین را روی GPU و پلتفرم Jetson فراهم می‌کند.

2. DeepStream چگونه پردازش ویدئو را سریع‌تر می‌کند؟

DeepStream با استفاده از شتاب‌دهنده‌های سخت‌افزاری مانند GPU، NVDEC، NVENC و موتور TensorRT عملیات سنگین پردازش تصویر و استنتاج مدل‌های یادگیری عمیق را به صورت بهینه و بلادرنگ اجرا می‌کند.

3. DeepStream در چه کاربردهایی استفاده می‌شود؟

از DeepStream در تحلیل ترافیک شهری، سیستم‌های نظارتی، فروشگاه‌های هوشمند، رباتیک، تشخیص اشیا در خطوط تولید صنعتی و سایر سیستم‌های Video Analytics مبتنی بر هوش مصنوعی استفاده می‌شود.

مشتاقانه منتظر دریافت نظرات شما دوستان عزیز هستیم





مطالب مرتبط

ai-model-quantization

کوانتیزاسیون (Quantization)

تأثیر نور بر کیفیت تصویر دیجیتال انواع نویز در تصاویر دیجیتال روش‌های کاهش نویز تصویر ساختار دوربین و حسگر تصویر تنظیم روشنایی و کنتراست تصویر تفاوت Global Shutter و Rolling Shutter دوربین صنعتی برای بینایی ماشین اتصال دوربین صنعتی به NVIDIA Jetson پردازش تصویر با بردهای Jetson بهترین دوربین برای پروژه‌های بینایی ماشین

تصویر در دنیای واقعی: نور، نویز و دوربین

TensorRT (تنسور آر تی)، NVIDIA GPU Optimization، AI Inference (استنتاج هوش مصنوعی)، ONNX to TensorRT، Deep Learning Deployment (استقرار یادگیری عمیق)، NVIDIA MIG، Model Quantization (کوانتیزیشن مدل)، NVIDIA Triton Inference Server، AI Model Acceleration (شتاب‌دهی مدل هوش مصنوعی)، Computer Vision Deployment

TensorRT

Jetson Nano کیت توسعه NVIDIA هوش مصنوعی امبدد راه‌اندازی Jetson Nano فلش کردن کارت microSD NVIDIA Jetson Developer Kit بوت اولیه Jetson Nano تنظیمات Headless Jetson Nano منبع تغذیه Jetson Nano آموزش نصب Jetson Nano

راه اندازی اولیه جتسون

NVIDIA Jetson (به عنوان هسته سخت‌افزاری) Edge AI (به دلیل ماهیت هوش مصنوعی روی لبه) برنامه‌نویسی پایتون (به عنوان هسته نرم‌افزاری) بینایی ماشین (Machine Vision) پردازش تصویر در پایتون هوش مصنوعی در رباتیک TensorRT (مهم‌ترین ابزار برای بهینه‌سازی روی جتسون) توسعه سیستم‌های هوشمند JetPack SDK (اکوسیستم نرم‌افزاری جتسون) پردازش بلادرنگ (Real-time Processing)

مبانی پایتون و نقش آن در توسعه بر روی NVIDIA Jetson

دیپ‌استریم (NVIDIA DeepStream) تحلیل ویدئویی هوشمند (Video Analytics) بینایی ماشین در جتسون پردازش ویدئو بلادرنگ (Real-Time Video Processing) GStreamer در DeepStream TensorRT رهگیری اشیا (Object Tracking) استنتاج هوش مصنوعی (AI Inference) Edge AI NVIDIA Jetson DeepStream

دیپ‌استریم(DeepStream)