انتشار سرنوشت‌ساز OpenCV 5 با موتور عصبی جدید و بهینه‌سازی گسترده برای پردازنده‌های اینتل، ARM و RISC-V

10 بازدید
۱۴۰۵-۰۳-۲۳
5 دقیقه
  • نویسنده: Shadow
  • درباره نویسنده: سئوکار ساده! 🔗 مهندس الکترونیک⚡

به گفته CNX Software – Embedded Systems News

نسخه پنجم OpenCV با معرفی موتور عصبی جدید، پشتیبانی از مدل‌های زبانی بزرگ (LLM) و افزایش چشمگیر پوشش اپراتورهای ONNX به بیش از ۸۰ درصد منتشر شد. این به‌روزرسانی با بهره‌گیری از لایه جدید شتاب‌دهی سخت‌افزاری، عملکرد بینایی کامپیوتر و هوش مصنوعی را در پردازنده‌های مبتنی بر معماری‌های Intel، ARM و RISC-V بهینه‌سازی کرده است.

کتابخانه متن‌باز بینایی کامپیوتر OpenCV 5

نسخه پنجم کتابخانه محبوب بینایی کامپیوتر، OpenCV 5، اخیراً با یک موتور DNN (شبکه عصبی عمیق) کاملاً جدید منتشر شده است که پوشش بسیار بهتری برای ONNX فراهم کرده و پشتیبانی از LLM/VLM را امکان‌پذیر می‌سازد.
این نسخه همچنین از شتاب‌دهنده‌های سخت‌افزاری Intel، ARM، Qualcomm و RISC-V پشتیبانی می‌کند و بهبودهای چشمگیری در بینایی سه‌بعدی (3D Vision) به همراه دارد. از دیگر ویژگی‌های کلیدی این نسخه می‌توان به انواع داده‌های جدید، پشتیبانی واقعی از آرایه‌های N-بعدی و اسکالر، و ارتقای ملموس عملکرد اشاره کرد.

موتور DNN در OpenCV 5

در حالی که نسخه OpenCV 4.x تنها حدود ۲۲ درصد از اپراتورهای ONNX را پشتیبانی می‌کرد، موتور DNN جدید در OpenCV 5 این میزان را به بیش از ۸۰ درصد رسانده است. این پیشرفت به آن معناست که مدل‌هایی با اشکال پویا (Dynamic Shapes) که پیش‌تر در OpenCV 4.x با خطا مواجه می‌شدند، اکنون به درستی پردازش می‌شوند. این موتور بر پایه یک گراف عملیاتی نوع‌دار (Typed Operation Graph) بازنویسی شده است که از قابلیت‌هایی نظیر استنتاج دقیق شکل‌ها، Constant Folding و ادغام اپراتورها (Operator Fusion) بهره می‌برد.

OpenCV 4.x vs OpenCV 5

OpenCV 4.x vs OpenCV 5

جدول زیر تفاوت‌های اصلی بین OpenCV 4.x و OpenCV 5 را نشان می‌دهد:

ویژگی موتور کلاسیک (4.x) موتور جدید (5.x)
ساختار مدل هر لایه به‌صورت جداگانه تعریف و به‌ترتیب اجرا می‌شود مدل به‌شکل یک گراف ساخت‌یافته نمایش داده می‌شود که موتور می‌تواند آن را تحلیل و بهینه‌سازی کند
ابعاد داده‌ها فقط ابعاد ثابت پشتیبانی می‌شود پشتیبانی از ابعاد پویا و نمادین
زیرگراف‌ها پشتیبانی نمی‌شود پشتیبانی از ساختارهای شرطی (If) و حلقه‌ها (Loop)
ادغام و بهینه‌سازی عملیات محدود پشتیبانی از ادغام انواع عملیات مانند QDQ، BatchNorm، Attention، MatMul، Softmax و موارد دیگر
مدیریت حافظه حافظه به‌صورت جداگانه برای هر لایه بازاستفاده می‌شود استفاده از یک مخزن حافظه یکپارچه برای بازاستفاده حداکثری و کاهش مصرف حافظه
از آنجایی که با تغییر بسیار بزرگی روبه‌رو هستیم، برای اطمینان از عدم بروز هرگونه مشکل یا ناسازگاری، چهار گزینه مختلف برای موتور پردازشی در نظر گرفته شده است که می‌توانید از بین آن‌ها انتخاب کنید:

  • ENGINE_CLASSIC (1): استفاده اجباری از همان موتور قدیمی نسخه 4.x. این حالت از بک‌اندهای غیرپردازنده‌ای (GPU) و پلتفرم‌هایی نظیر CUDA و OpenVINO پشتیبانی می‌کند.
  • ENGINE_NEW (2): استفاده اجباری از موتور گراف جدید با قابلیت ادغام (Fusion) و پردازش اشکال پویا (Dynamic Shapes). نکته مهم: این موتور در حال حاضر فقط روی پردازنده اصلی (CPU) اجرا می‌شود؛ هرچند توسعه GPU برای پردازش استنتاجی و لایه سخت‌افزاری (HAL) غیرپردازنده‌ای برای پیش‌پردازش و پس‌پردازش در ماژول جدید DNN آغاز شده است.
  • ENGINE_AUTO (3): حالت پیش‌فرض. سیستم ابتدا موتور جدید را امتحان می‌کند و اگر در بارگذاری مدل با خطا مواجه شود، به‌طور خودکار به موتور کلاسیک بازمی‌گردد.
  • ENGINE_ORT (4): استفاده از رابط داخلی ONNX Runtime. این حالت منحصراً برای مدل‌های ONNX است و برای استفاده از آن، بیلد (Build) برنامه باید با پیکربندی WITH_ONNXRUNTIME=ON تنظیم شده باشد.

اگرچه حروف CV در نام OpenCV مخفف Computer Vision (بینایی کامپیوتر) است، اما نسخه پنجم این کتابخانه قادر است مدل‌های زبانی بزرگ (LLM) و مدل‌های بینایی-زبانی (VLM) را نیز مستقیماً درون ماژول DNN اجرا کند. به لطف بهره‌گیری از یک توکنایزر بومی و سیستم کش (KV-cache) برای رمزگشایی خودگردان (Autoregressive Decoding)، اجرای این مدل‌ها دیگر نیازی به محیط اجرای (Runtime) مجزا ندارد. مدل‌های مطرحی مانند Qwen 2.5 ،Gemma 3 ،PaliGemma و مدل‌های خانواده GPT-2 / GPT-4، دقیقاً از طریق همان رابط برنامه‌نویسی شبکه (Net API) که برای مدل‌های YOLO کاربرد دارد، اجرا می‌شوند.

در عمل، این یکپارچگی به این معناست که اکنون طیف گسترده‌ای از مدل‌های تشخیص، بخش‌بندی تصویر، پردازش بینایی-زبانی و هوش مصنوعی مولد در OpenCV 5 پشتیبانی می‌شوند.

مدل OpenCV 5 که توسط موتور جدید شبکه‌های عصبی عمیق (DNN) پشتیبانی می‌شود

مدل OpenCV 5 که توسط موتور جدید شبکه‌های عصبی عمیق (DNN) پشتیبانی می‌شود

عملکرد نیز نسبتاً خوب به نظر می‌رسد؛ همان‌طور که جدول زیر مقایسه موتور DNN در OpenCV 5 با ONNX runtime را روی سیستمی مجهز به پردازنده Intel Core i9-14900KS و سیستم‌عامل Ubuntu 24.04 LTS نشان می‌دهد.

Model OpenCV 5 DNN (ms) ONNX Runtime (ms) Difference
XFeat 6.56 8.61 31.25% faster
YOLOv8n 10.9 12.15 11.5% faster
YOLOX-S 23.46 25.16 7.24% faster
DINOv2 small 23.78 29.58 24.4% faster
RF-DETR 102.01 106.49 4.4% faster
OWLv2 1,090 1,489 36.6% faster
BiRefNet 7,178 9,503.14 32.4% faster

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

ویژگی‌های جدید کرنل (Core)

علاوه بر تغییرات مربوط به یادگیری عمیق، هسته اصلی OpenCV نیز بهبودهای چشمگیری داشته است:

  • انواع داده‌های جدید: نرم‌افزار OpenCV 5 اکنون پشتیبانی بومی و کاملی از انواع داده FP16 (شامل cv::hfloat و CV_16F) و BF16 (شامل cv::bfloat و CV_16BF) ارائه می‌دهد و در کنار آن‌ها مقادیر بولین (bool)، اعداد صحیح ۶۴ بیتی و موارد دیگر نیز اضافه شده‌اند.
  • پشتیبانی واقعی از مقادیر اسکالر و آرایه‌های N-بعدی: کلاس cv::Mat اکنون می‌تواند آرایه‌های صفر-بعدی (اسکالر) و یک‌بعدی را نمایش دهد. همچنین، قابلیت Broadcasting و عملیات‌های پایه‌ای N-بعدی مانند transposeND و flipND به این نسخه اضافه شده است.
  • عملکرد بهتر: سرعت پردازش‌های ریاضی تا ۲ برابر بهبود یافته است و حالا یک کد واحد می‌تواند بدون هیچ تغییری، هم روی پردازنده‌های اصلی و هم روی شتاب‌دهنده‌ها اجرا شود.

در زمینه پشتیبانی از زبان‌های برنامه‌نویسی نیز اصلاحاتی صورت گرفته است:

  • رابط برنامه‌نویسی (API) قدیمی زبان C رسماً منسوخ (Deprecated) شده است.
  • استاندارد C++17 اکنون حداقل استاندارد توصیه‌شده است و قرار است پشتیبانی از ماژول‌های C++20 در نسخه‌های بعدی سری 5.x اضافه شود.
  • پایتون: پشتیبانی از NumPy 2.x، یکپارچگی عمیق‌تر و امکان استفاده از آرگومان‌های نام‌دار (Keyword Arguments) برای الگوریتم‌های ++C اضافه شده است. بنابراین، به جای حفظ کردن ترتیب پارامترها، به‌سادگی می‌توانید از ساختارهای خوانایی مثل cv.someAlgorithm(threshold=0.5) استفاده کنید.

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

نسخه OpenCV 5 از یک لایه شتاب‌دهی سخت‌افزاری (HAL) کاملاً بازطراحی‌شده بهره می‌برد. این لایه بر پایه Universal Intrinsics 2.0 بنا شده که در واقع یک پایگاه کد برداری یکپارچه است و به‌راحتی با دستورالعمل‌های SSE ،AVX2/512 ،NEON ،SVE ،RVV و موارد دیگر تطبیق پیدا می‌کند. این نسخه از شتاب‌دهنده‌های زیر پشتیبانی می‌کند:

  • Intel IPP (IPPICV): ساختار آن از مسیر شتاب‌دهی اصلی x86/x64 بازنویسی شده است. یک زیرمجموعه رایگان (ICV) به‌طور پیش‌فرض همراه نرم‌افزار ارائه می‌شود که وظایف مربوط به فیلترها، تبدیل رنگ و تبدیلات هندسی را به کرنل‌های بهینه‌شده با SSE/AVX هدایت می‌کند.
  • ARM KleidiCV: یک لایه اختصاصی HAL برای معماری AArch64 که پردازش‌های اصلی تصویر و کرنل‌های DNN را با استفاده از NEON ،SVE و SME شتاب می‌بخشد (عملکرد آن روی تراشه‌های AWS Graviton 4 و Cortex-A تأیید شده است). این قابلیت برای عملیات‌های تحت پوشش به‌طور خودکار فعال می‌شود و سرعت پردازش عملیاتی مثل تغییر ابعاد (Resizing) و Warping را در تراشه‌های Arm تا ۳ الی ۴ برابر افزایش می‌دهد.
  • Qualcomm FastCV: شتاب‌دهی روی تراشه‌های اسنپدراگون با بهره‌گیری از Hexagon DSP و واحد پردازش عصبی (NPU).
  • RISC-V Vector (RVV): پشتیبانی از بردارهای مقیاس‌پذیر که توسعه و فعال‌سازی آن عمدتاً توسط تیم OpenCV China انجام شده است.

کد سطح بالا برای هر چهار پلتفرم کاملاً یکسان است و OpenCV به‌طور خودکار، بهینه‌ترین مسیر پردازشی را بر اساس سخت‌افزار میزبان انتخاب می‌کند.

بینایی سه‌بعدی (3D Vision) بهتر

قابلیت‌های بینایی سه‌بعدی در OpenCV 5 با افزودن امکان کالیبراسیون چنددوربینه، پردازش ورودی/خروجی ابر نقاط (Point Cloud) و مش (Mesh) و همچنین ادغام متراکم داده‌های RGB-D ارتقا یافته است. این نسخه سه ماژول جدید را معرفی کرده است:

  • 3d: بینایی و هندسه پایه سه‌بعدی؛ شامل عملیات I/O، اشکال هندسی پایه (Primitives)، الگوریتم‌هایی مانند ICP و بخش‌هایی از سیستم ناوبری SLAM.
  • calib: کالیبراسیون دوربین؛ شامل کالیبراسیون تک‌دوربینه و یک پایپ‌لاین بازنویسی‌شده برای سیستم‌های چنددوربینه.
  • stereo: استخراج عمق از تصاویر استریو.

توسعه‌دهندگان ادعا می‌کنند که این تغییرات، یک ارتقای بسیار ارزشمند برای متخصصان حوزه ساختار-از-حرکت (Structure-from-Motion)، رباتیک یا هر نوع تکنیک بازسازی سه‌بعدی محسوب می‌شود.

اطلاعات
10
0
0
اشتراک و حمایت
profile نویسنده: Shadow متخصص الکترونیک

سئوکار ساده! 🔗 مهندس الکترونیک⚡


مقالات بیشتر

slide

پالت | بازار خرید و فروش قطعات الکترونیک

قطعات اضافه و بدون استفاده همیشه یکی از سرباره‌‌های شرکتها و طراحان حوزه برق و الکترونیک بوده و هست. پالت سامانه‌ای است که بصورت تخصصی اجازه خرید و فروش قطعات مازاد الکترونیک را فراهم می‌کند. فروش در پالت
family

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. جستجو در آیسی
family

سیسوگ‌شاپ | فروشگاه محصولات Quectel

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند. برو به فروشگاه سیسوگ
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

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

سیکار | اولین مرجع متن باز ECU در ایران

بررسی و ارائه اطلاعات مربوط به ECU (واحد کنترل الکترونیکی) و نرم‌افزارهای متن باز مرتبط با آن برو به سیکار
become a writer
نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer
نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله

خانواده سیسوگ

سیسوگ‌شاپ

فروشگاه محصولات Quectel

پالت
سیسوگ فروم

محلی برای پاسخ پرسش‌های شما

سیسوگ جابز
سیسوگ
سیسوگ فروم
سی‌کار

اولین مرجع متن باز ECU در ایران

سیسوگ مگ
آی‌سی

موتور جستجوی قطعات الکترونیکی

سیسوگ آکادمی
پالت

بازار خرید و فروش قطعات الکترونیک

دیدگاه ها

become a writer
نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer
نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله