پردازش تصویر


در این فیلم شنان داده شده است که چگونه می توان بوسیله یک برد مبتنی بر لینوکس و برنامه نویسی QT یک دستگاه تحلیل طیف ساخت.

نمایش ویدئو از سایت آپارات

 

 

OpenCV180px-OpenCV_Logo_with_text کتابخانه ای از توابع برای برنامه نویسی کاربردهای بینایی ماشین و پردازش تصویر می باشد. این کتابخانه توسط شرکت Intel توسعه یافته و به زبان c و ++c می باشد. از جمله کاربردهایی که به وسیله این کتابخانه می توان پیاده سازی نمود می توان به موارد زیر اشاره نموده: قطعه بندی ، تشخیص، ردیابی حرکت، بهینه سازی تصویر، شناسایی اشیاء در تصویر و ... .
متاسفانه دسترسی کاربران ایرانی به این نرم افزار رایگان محدود شده است. به همین دلیل لینک دانلود مستقیم این کتابخانه کاربردی را در ادامه مطلب قرار داده ایم. همچنین به زودی آموزش گام به گام راه اندازی این کتابخانه تحت کامپایلر Visual Studio در این سایت قرار داده می شود.
 

در این مقاله آموزشی قصد داریم سیستمی طراحی کنیم که ضمن استفاده از FPGA به عنوان ابزار قدرتمند پیاده سازی سخت افزاری، از پیچیدگیهای طراحی با زبان های برنامه نویسی سخت افزاری مانند VHDL و Verilog اجتناب کرده و با استفاده از زبان برنامه نویسی C بتوان الگوریتم های پردازش تصویر را پیاده سازی و اجرا نمود.
سیستم مورد نظر برای FPGAهای شرکت ALTERA و با استفاده از نرم افزار QUARTUS طراحی شده و به نام NiosII معروف است. این سیستم دارای یک پردازنده NiosII، حافظه جانبی از نوع RAM برای قرار گرفتن برنامه C و متغیرهای مورد استفاده در برنامه، امکان ارتباط با حافظه FLASH برای ذخیره برنامه FPGA، امکان ارتباط با ماژول پردازش تصویر(دوربین، LCD گرافیکی و حافظه SD/MMC) از طریق پورت های ورودی خروجی، امکان ارتباط با پورت JTAG برای اجرای برنامه C و Debug کردن برنامه و PLL برای ساخت فرکانس مورد نیاز سیستم NiosII می باشد.
در زیر مراحل کار نشان داده می شود:
1- ابتدا یک پروژه جدید در Quartus ایجاد کرده و یک فایل شماتیک به آن اضافه کنید:
image_system1
2- سپس برای طراحی سیستم NiosII، از ابزار SOPC BUILDER در منوی TOOLS استفاده کنید(شکل زیر نمونه ای از سیستم طراحی شده را نشان می دهد):
3- پس از Generate کردن سیستم طراحی شده، به محیط شماتیک بازگشته و با استفاده از ابزار symbol tool و از منوی project ایجادشده در بخش libraries آن، سمبل سیستم ساخته شده را به فایل طراحی اضافه و با افزودن پورت های مربوطه و تکمیل فایل طراحی، آن را کامپایل کرده و بدین ترتیب فایل sof. لازم برای برنامه ریزی FPGA ساخته می شود(مطابق شکل زیر):
4- پس از برنامه ریزی FPGA، حالا سیستمی در اختیار دارید با یک پروسسور مجازی که عملکرد آن را می توانید با برنامه نویسی C مانند سایر میکروپروسسورهای سخت افزاری، و با استفاده از کامپایلر Eclipse که یک کامپایلر زبان C می باشد، برنامه نویسی کنید. حتی می توانید از سایر برنامه های زبان C که برای میکروپروسسورهای سخت افزاری نوشته شده با اندکی تغییر به سادگی استفاده نمایید. بدین ترتیب با این روش دیگر نیازی به درگیرشدن با روش های طراحی سخت افزاری FPGA که دارای پیچیدگی های اجتناب ناپذیر می باشد، نبوده و طراحی سیستم به راحتی امکان پذیر خواهد بود.
شکل زیر نمونه ای از پروژه پیاده سازی شده در برد آموزشی FPGA CycloneIII به همراه ماژول پردازش تصویر1 را نشان می دهد:
فایل های ایجادشده توسط ابزار SOPC BIULDER و فایل موردنیاز برای اجرای پروژه در FPGA را می توانید از اینجا دانلود نمائید(دقت شود که این فایل برای تراشه FPGA مدل EP3C5E144C8N از خانواده CycloneIII قابل استفاده خواهد بود).
 

شاید به جراءت بتوان پردازش تصویر را مهمترین گام در مبحث رباتیک دانست. همان طور که می دانیم در رباتیک هدف ساخت رباتی است که بتواند شبیه انسان رفتار کرده و کارهای انسان را انجام دهد. برای آنکه یک ربات بتواند شبیه انسان رفتار کند باید ابتدا بتواند شبیه انسان ببیند و درک درستی از دنیای بیرون داشته باشد(بینائی ماشین).
هدف از بینائی ماشین این است که بینائی انسان در یک ماشین مدل شود. برای رسیدن به این منظور باید سیستمی طراحی شود که دارای ویژگی های زیر باشد:
1- سیستم دریافت تصویر(Camera)
2- فرم دهی تصویر(Image Formation) که همان مبحث Optic است.
3- شناسائی تصویر(Image Detection) که توسط سنسورهای تصویر نظیر CCD انجام می شود.
4- انتقال به سخت افزار و ذخیره سازی تصویر
5- پس از انتقال، احتیاج به دانش پردازش تصویر داریم که در 3 مرحله کلی می تواند انجام شود:
مرحله Low Level: یافتن لبه و نویز
مرحله Medium Level: یافتن شکل و انجام پردازش هائی نظیر segmentation, enhancement و transformation
مرحله High Level: یافتن و ساخت patternهای خاص و ساختن تصویر 3-بعدی که با بینائی انسان قابل مقایسه می باشد.
یکی از پارامترهای بسیار مهم در بینائی ماشین قابلیت real-time بودن پردازش هاست. چراکه یک ربات باید بتواند هرآنچه را توسط دوربین ها(چشم هایش) می بیند با سرعت بالا پردازش کند. لذا باید سخت افزارهائی را در این سیستم استفاده کرد که بتوانند به صورت real-time تصاویر را پردازش کنند. یکی از این سخت افزارهای پرسرعت FPGA می باشد که می توانید توضیحات تکمیلی را درخصوص استفاده از FPGA در مباحث پردازش تصویر، در مقاله ای با عنوان "پردازش تصویر با FPGA" بخوانید.
 

پردازش تصویر یا همان Image Processing به دلایل فراوان ازجمله جذابیت های ویژه و کاربردهای متنوع در زمینه های گوناگون صنعتی یکی از موضوعات مورد علاقه بسیاری از دانشجویان کارشناسی ارشد، دکترا و سایر متخصصان الکترونیک و کامپیوتر بوده که درنهایت می تواند با پیاده سازی سخت افزاری به محصولات تجاری ارزشمندی تبدیل شود.

سخت افزاری که در پردازش تصویر مورد استفاده قرار می گیرد همان طور که از نامش پیداست دارای یک هسته اصلی پردازنده برای اجرای الگوریتم های پردازشی نظیر بخش بندی تصویر(Image Segmentation)، حافظه های سریع از نوع RAM برای ذخیره سازی یک فریم(Frame) تصویر جهت اعمال پردازش، پورت های I/O بمنظور ارسال تصویر پردازش شده روی نمایشگرها مثل LCDهای گرافیکی و مانیتور و همچنین قابلیت ارتباط با حافظه های FLASH نظیر MMC و کارت های SD برای ذخیره تصویر پردازش شده می باشد.

یکی از ابزار بسیار قدرتمند در این زمینه استفاده از تراشه های قابل برنامه ریزی FPGA می باشد که با تکنولوژی منحصر بفرد پیاده سازی یک Embedded System با پردازنده مجازی، گوی سبقت را از سایر پردازنده ها نظیر ARM و DSP ربوده است. شما می توانید با خرید یک تراشه ارزان قیمت صاحب یک تکنولوژی ارزشمند شوید. تعداد I/Oهای زیاد، سرعت پردازشی بالا، PLL، حافظه داخلی مجزا، ضرب کننده و گیت های منطقی متعدد برای پیاده سازی مدارات دیجیتال از دیگر قابلیت هایی است که دراختیار شما قرار می گیرد.

با استفاده از تکنولوژی Embedded System Design شما قادر خواهید بود یک مینیمم سیستم شامل پردازنده، حافظه های جانبی، پورت های I/O، قابلیت ارتباط با کامپیوتر از طریق پورت USB, PCI, PCI Express و امکان اتصال به ماژول های جانبی مختلف، را داخل یک تراشه با ابعاد بسیار کوچک پیاده سازی کنید.

برای آشنائی بیشتر با این مبحث نسخه pdf اولین سمینار تخصصی پردازش تصویر را که در زمستان گذشته برگزار شد می توانید از اینجا دانلود نمائید.

 

 
| + -