مقایسه انواع پلت فرم های سخت افزاری مناسب برای بینایی ماشین و پردازش تصویر Embedded

ارسال شده در: OpenCV, آموزش رباتیک, رباتیک | 0

به نام خدا

مقایسه انواع پلت فرم های سخت افزاری مناسب برای بینایی ماشین و پردازش تصویر Embedded

هنگامیکه می خواهیم نرم افزارهای بینایی ماشین یا پردازش تصویر را برای کامپیوترهای رومیزی توسعه دهیم انتخاب پلتفرم های سخت افرازی خیلی محدود هستند. اگر شما به پردازش زیادی نیاز نداشته باشید می توانید از یک کامپیوتر ارزان با GPU تقویت شده استفاده نمایید و در صورتیکه به پردازش حجیمی نیاز داشته باشید از یک پردازشگر سریع به همراه یک GPU می توانید استفاده کنید. اما در بین Embedded System ها انتخاب ها بسیار بیشتر میباشند و دستگاهی موجود نمی باشد که بتوان از آن در همه نوع پلتفرم های Embedded استفاده نمود زیرا هر کدام دارای مزایا و معایبی می باشند. در زیر خلاصه ای از این پلتفرم ها آورده شده است:

Machine_Vision_HeaderImg

 

نوع پلتفرم بالاترین سرعت پردازشی مصرف باطری ویژگی ها
میکروکنترلرها < 0.2 GFLOPS <0.3 Watts بسیاری از میکروکنترلرها (مانند AVR ، PIC ) برای پردازش تصاویر اخذ شده از دوربین بسیار کند هستند اما یک ARM 32 بیتی Cortex از نسل M4 ( مانند NXP LPC 4088 با قیمت تقریبی ۴۵۰۰۰ تومان و یا STM32F407 با قیمت با سرعت ۱۶۸ مگاهرتز و قیمت ۱۵ دلار ) ممکن است بتواند عملیات بسیار ابتدایی پردازش تصویر را انجام دهد. میکروکنترلرها سیستم عامل های بسیار کوچک و محدودی را پشتیبانی میکنند بنابراین عملا نرم افزار شما مانند یک میان افزار (firm ware) سطح پایین عمل نموده و مجبور هستید که بسیاری از الگوریتم ها و کدها را خودتان بنویسید و از مزیت های دسترسی مستقیم به پین های I/O و تایمرها و پردازش Real Time بهره ببرید.
بردهای توسعه موبایل یا تبلت ۱ – ۲۵ GFLOPS ۱ – ۶ Watts جدیدترین پردازشگرهای موبایل ARM هم سرعت پردازش بالایی دارند و هم مصرف باطری پایین. اگر از پردازش با دقت صحیح استفاده میکنید یک گزینه استفاده از ARM CROTEX A8 ( مانند بردBlack Beagle Bone با قیمت تقریبی ۳۵۰۰۰۰ تومان) یا حتی ARM 11 ( مانند Raspberry P با قیمت تقریبی ۰۰۰/۱۸۰ تومان) مناسب میباشد. اما اگر نیاز به پردازش با دقت اعشاری دارید قطعا باید از Cortex-A9 ( مانند ODROID-U3 با قیمت ۶۵ دلار یا برد Radxa Board با قیمت ۳۸۵۰۰۰ تومان ) و یا Cortex-A15 ( مانند برد چهار هسته ای ODROID-XU با قیمت ۱۳۹ دلار) استفاده نمایید زیرا FPU این بردها بارها از FPUی ، CROTEX A8 سریعتر میباشد. و اگر می خواهید تصاویر را روی صفحه نمایش نشان دهید استفاده از تبلت های روت شده که اندروید یا لینوکس روی آنهاست گزینه مناسبی میباشد ( از wifi یا Blutooth برای ارتباط با یک میکروکنترلر می توانید استفاده کنید اگر نیاز به IO دارید).برنامه نویسی SOC ARM مانند کامپیوترهای رومیزی ( Desktop) میباشد و کتابخانه هایی مانند OpenCV در اختیار است اما به سادگی کار کردن با X86 نیست. استفاده از android و یا لینوکس به این معنی است که حین اجرای کد شما ممکن است وقفه صادر شود برای رفع این مشکل از سیستم عامل های بلادرنگ RealTime میتوان استفاده نمود.
لپ تاپ های کوچک یا نت بوک های X86 ۱۵ – ۱۱۰ GFLOPS ۳۰ – ۱۰۰ Watts کامپیوترهای قابل حمل   بسیار سریع هستند و برنامه نویسی روی چنین PC هایی بسیار آسان میباشد اما بسیار پر مصرفتر و حجیم تر میباشند. و اگر بخواهید که تصویر را نمایشگر نشان دهید استفاده از یک نت بوک از SBC مناسبتر میباشد. اگرچه نرم افزارها با بیشترین سرعت روی معماری x86 اجرا میگردند اما می توانند توسط سیستم عامل دچار وقفه شوند که می توان از سیستم عامل های بلادرنگ استفاده نمود.
لپ تاپ های X86 به همراه dGPU ۲۴۰ – ۲۲۰۰ GFLOPS ۴۰ – ۱۱۰ Watts بعضی از لپ تاپ های بزرگتر شامل یک GPU قابلیت استفاده از Cuda یا افزایش سرعت GPU با استفاده از OpenCl را دارا میباشند مانند (MSI GE60 یا Alienware 14) و بنابراین برای بینایی ماشین بسیار مناسب میباشند. برنامه نویسی این گونه نیز آسان میباشد اما سیستم هایی حجیم و با توان مصرفی بالا می باشند.
طراحی سخت افزاری بوسیله FPGA ۵۰ – ۱۰۰۰ GFLOPS ۱ – ۳ Watts FPGA ها ( مانند Cyclone II Starter Kit به همراه دوربین ۵ مگاپیکسلی به قیمت ۱۹۹ دلار ) فوق العاده پرسرعت و فوق العاده کم مصرف هستند اما طراحی آنها پیچیده بوده و به ماه ها و یا سالها زمان برای طراحی نیاز دارند. بوسیله FPGA شما منطق سخت افزاری چیپ را طراحی میکنید   نه نرم افزار را ! بنابراین روند کار با برنامه نویسی نرم افزاری کاملا تفاوت دارد اگرچه میتوانید از CPU هایی روی FPGA ( مانند NIOSII ) نیز استفاده کنید. و از آنجاییکه شما در حقیقت یک مدار الکترونیکی طراحی میکنید نتیجه خروجی بسیار قابل اطمینان بوده و می توان تضمین نمود که یک فریم هم از دست نخواهد رفت.
بیشتر بخوانید...  جلسه هفتم : بافر ها و درایور ها در رباتیک

 

هم اکنون پلتفرم مورد علاقه من ( نویسنده) برد چهار هسته ای ARM Cortex-A9 به نام ODROID-U3 با قیمت ۶۵ دلار میباشد مگر اینکه نیاز به هزینه پایین ( استفاده از میکروکنترلر) یا سرعت بالا ( استفاده از FPGA ) داشته باشم. اما در سال ۲۰۱۴ شرکت من ( NVIDIA ) دستگاه Tegra 5 را خواهد ساخت که قابلیت اجرای شتاب دهنده GPU ، CUDA را روی چیپ های موبایل خواهد داشت همچنین بقیه شرکت ها مانند Samsung Qualcomm وTI نیز دستگا ه های مشابهی تولید خواهند کرد که قطعاً درآینده انتخاب من خواهند بود.

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