مقایسه کامپیوتر کوچک با بزرگ برای پردازش تصویر (بنچمارک SBC در برابر PC)

مقایسه کامپیوتر کوچک با بزرگ برای پردازش تصویر

مقایسه کامپیوتر کوچک با بزرگ برای پردازش تصویر یعنی سنجش اینکه یک Single Board Computer (به اختصار SBC) مانند Orange Pi یا Odroid چند فریم در ثانیه (FPS) از یک مدل تشخیص اشیا خروجی می‌گیرد و این عدد چقدر با یک PC معمولی فاصله دارد. ما سه مدل سبک YOLOv3-tiny، YOLOv4-tiny و YOLOv7-tiny را روی چند SBC و یک PC اجرا کردیم.

این گزارش برای کسانی نوشته شده که می‌خواهند برای پروژه‌ی بینایی ماشین یا یادگیری عمیق بین یک برد کوچک و یک کامپیوتر معمولی انتخاب کنند.

روش انجام بنچمارک پردازش تصویر روی SBC

برای محک، یک قطعه کد پایتون نوشتیم و سه مدل از پیش آموزش‌دیده‌ی YOLOv3-tiny، YOLOv4-tiny و YOLOv7-tiny را با هم مقایسه کردیم.

  • سیستم‌عامل: هر جا امکان داشت از سیستم‌عامل ۶۴ بیتی استفاده کردیم. روی Orange Pi PC Plus و Odroid XU4 به دلیل نبود پشتیبانی، آزمون روی سیستم‌عامل ۳۲ بیتی انجام شد.
  • اجرای v3 و v4: با کتابخانه‌ی OpenCV که مدل‌های آموزش‌دیده در فریم‌ورک Darknet را پشتیبانی می‌کند.
  • اجرای v7: با کتابخانه و مدل آموزش‌دیده در PyTorch.
  • سایز ورودی: برای هر سه مدل ۴۱۶×۴۱۶.
  • روش اندازه‌گیری: خواندن تصویر از کارت حافظه زمان‌بر است و نتیجه را خراب می‌کند. بنابراین یک تصویر را یک بار Load کردیم، ۵۱ بار به مدل دادیم و میانگین زمان اجرا را معیار قرار دادیم.

چرا برخی بردها در بنچمارک v7 نیستند؟ سیستم‌عامل‌های ۳۲ بیتی با پایتون ۳.۱۰ هنوز پشتیبانی کامل از PyTorch ندارند. راه‌اندازی آن [مثلاً: بیش از X ساعت / با خطای Y] طول کشید و به همین دلیل این محک را روی [نام بردها] انجام ندادیم.

مشخصات بردهای مقایسه‌شده

مشخصات همه‌ی بردهایی که در این بنچمارک بررسی شده‌اند، در جدول زیر آمده است:

بردپردازندهرمسیستم عاملپایتون
Orange Pi 4 LTS 4GBRockchip RK3399
4 Cores ARM 53 - 1.4 GHz
2 Cores ARM 72 - 1.8 GHz
4GB64bit - Armbian 22.04 Jammy3.10
Orange Pi 4 LTS 3GBRockchip RK3399-T
4 Cores ARM 53 - 1.4 GHz
2 Cores ARM 72 - 1.6 GHz
3GB

64bit - Armbian 22.04 Jammy

3.10
Raspberry Pi 4004 Cores ARM 72 - 1.8 GHz4GB64bit - Rasbian 2021-05 release3.7
Odroid XU44 Cores ARM 7 - 1.5 GHz
4 Cores ARM 15 - 2.0 GHz
2GB32 biT - Ubuntu Mate 22.04 Jammy
3.10
Raspberry pi 3B4 Cores ARM 53 - 1.2 GHz1GB64bit - Rasbian 2021-05 release3.7
Orange pi pc plus4 Cores ARM A7 - 1.6 GHz1GB32bit - Armbian 22.04 Jammy3.10
Orange pi 3 LTS4 Cores ARM 53 - 1.8 GHz2GB64bit - Armbian 22.04 Jammy3.10

Jetson nano 2GB4 Cores ARM 57 - 1.43 GHz
128 Cuda Cores
2GB64 bit - Ubuntu 18.04 Jetpack 4.5.13.6
PC6 Cores x86 - AMD 6350 FX - 3.9 GHz
24GB64 bit - Ubuntu 20.04 Focal
3.6

نتایج FPS: مقایسه سرعت SBC با PC

میانگین تعداد فریم پردازش‌شده در ثانیه (FPS) برای هر مدل در جدول زیر گزارش شده است:

بردهاyolov7-tinyyolov4-tinyyolov3-tiny
Orange Pi 4 LTS 4GB1.730.811.00
Orange Pi 4 LTS 3GB1.700.790.96
Raspberry Pi 4002.440.891.07
Raspberry Pi 400*0.650.79
Raspbery pi 3B0.800.270.32
Orange pi pc plus*0.260.33
Orange pi 3 LTS1.600.400.48
Jetson nano 2GB-CPU3.450.640.81
Jetson nano 2GB-GPU8.331.871.94
PC5.942.032.6

در نمودار زیر مقایسه سرعت اجرای مدل های تشخیص اشیا روی بردهای کوچک را مشاهده می نمایید.
نمودار مقایسه FPS مدل‌های YOLOv3-tiny، YOLOv4-tiny و YOLOv7-tiny روی SBCها و PC

چرا OpenCV فقط یک هسته را استفاده کرد و PyTorch همه‌ی هسته‌ها را؟

هنگام اجرای محک‌ها دیدیم که دو محک v3 و v4، به دلیل استفاده از OpenCV، عملاً فقط از یک هسته‌ی پردازنده استفاده می‌کردند. محک v7 با PyTorch توانست ۱۰۰٪ پردازنده و تمام هسته‌ها را درگیر کند.

این یعنی عدد FPS مدل‌های v3 و v4 روی SBCهای چندهسته‌ای، سقف واقعی سخت‌افزار نیست. برای نتیجه‌ی بهتر می‌توان:

  • OpenCV را با پشتیبانی چندنخی (مثلاً TBB یا OpenMP) کامپایل کرد
  • از موتورهای سبک‌تری مانند NCNN یا ONNX Runtime استفاده کرد
  • مدل را کوانتیزه (INT8) کرد
  • از NPU یا GPU برد استفاده کرد، اگر برد دارد

جمع‌بندی

اگر فقط چند FPS کافی است (شمارش، تشخیص ساده، دوربین ثابت)
اگر چند دوربین یا FPS بالا لازم دارید: PC با FPS برابر [عدد]، فاصله‌ی چشمگیری با SBCها دارد.
اگر مصرف برق، اندازه و هزینه مهم است: SBC برنده است، به شرط اینکه مدل سبک و ورودی کوچک باشد.
مدل v7 با PyTorch از همه‌ی هسته‌ها استفاده می‌کند، اما روی بردهای ضعیف‌تر سنگین‌تر است.

وضعیت سال ۲۰۲۶: چه چیزهایی از زمان این آزمون تغییر کرده؟

این آزمون با مدل‌های YOLOv3 تا v7 انجام شده است. از آن زمان مدل‌های جدیدتری مانند YOLOv8 و YOLO11 منتشر شده‌اند و بردهای دارای NPU، مثل بردهای مبتنی بر Rockchip RK3588 و سری Jetson، فاصله‌ی SBC با PC را برای استنتاج کم کرده‌اند.

سوالات متداول

چرا مدل YOLO روی برد کوچک کند است؟

پردازنده‌ی SBCها ضعیف‌تر است، GPU قدرتمند ندارند و در OpenCV (بدون تنظیم خاص) عملاً فقط یک هسته استفاده می‌شود.

اگر کم‌مصرف و کوچک بودن مهم است SBC، و اگر سرعت و انعطاف مهم است PC.

از نظر سرعت در آزمون : نمی‌توان فقط با FPS درباره‌ی دقت قضاوت کرد، چون دقت (mAP) را در این آزمون نسنجیدیم.

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

💬