SUPERVISOR
Seyedmasoud Sayedi
سید مسعود سیدی (استاد راهنما)
STUDENT
Marzieh Bonyadi
مرضیه بنیادی
FACULTY - DEPARTMENT
دانشکده مهندسی برق و کامپیوتر
DEGREE
Master of Science (MSc)
YEAR
1393
TITLE
Study of Methods of Depth Estimation From Stereo Images and a Sample Hardware Implementation
Depth Estimation is an important issue in Machine Vision systems that gained special attention in navigation systems, especially mobile robots, surgeon robots and auto-driving cars. Stereo matching is one of the depth estimation techniques that In addition to it’s lower cost compared to other methods can be used in different environmental conditions, indoor and outdoor. Depth estimation from a stereo pair of images is done by detecting and comparing the locations of corresponding pixels in two images. This process has computational complexity and requires high hardware resources and memory. The purpose of this thesis is to review different stereo matching methods, evaluate hardware requirements of methods, choose appropriate algorithm for different steps of calculations, and present a suitable architecture design for a depth estimation system with an efficient usage of memory and hardware resources. To that end, first, different stereo matching algorithms were assessed. Then in view of hardware approach of this thesis and based on simulation results, appropriate algorithms were chosen. Next, an architecture design based on selected software algorithms was proposed. The bottleneck of hardware resources was detected and with hardware simplification, with a negligible reduction in accuracy, the amount of resources usage was decreased. Validation of this architecture was approved through the simulation. Finally a complete hardware system was proposed to be used for stereo matching function. As the stereo correspondence method relied on the search of corresponding pixels in images, by using a specific geometry and a transformation of image known as image rectification, searching space is changed from a whole two-dimensional image to a one row of image, a one-dimensional space. For implementation of this method a new approach was used in which calculation process was done efficiently using memory blocks and hardware resources. The whole system is implemented on a small device. As the result of simplification and along with a negligible reduction in accuracy, FPGA resource usage 21%, BRAM usage 11% and register usage 18% were reduced. In addition, by using pipeline technique the maximum operating frequency was increased by 75%. Keywords: Depth Estimation, Stereo Matching, FPGA, Hardware Architecture, Image Processing, VHDL
مسئله تشخیص عمق از مسایل مهم بینایی ماشین است که در سیستمهای هدایت به ویژه رباتهای سیار و رباتهای جراح و همچنین در طراحی اتومبیلهای خودران جایگاه ویژهای یافته است. یکی از روشهای تشخیص عمق، استفاده از زوج تصویر استریو است. این روش علاوه بر آن که نسبت به دیگر روشها هزینه کمتری دارد در محیط های مختلف اعم از محیطهای باز و بسته قابل استفاده است. تشخیص عمق از تصاویر استریو بر مبنای مقایسه پیکسلهای دو تصویر صورت میگیرد. مقایسه پیکسلها و تعیین تناظر، پیچیدگیهای محاسباتی خاصی دارد که نیاز به منابع سختافزاری و حافظه بالایی دارد. هدف از این پایاننامه مطالعه روشهای مختلف تطبیق استریو، بررسی نیازهای سختافزاری این روشها، انتخاب الگوریتم مناسب برای مراحل مختلف محاسبه و سپس ارائه یک معماری مناسب برای یک سیستم تشخیص عمق است. به نحوی که در استفاده از منابع سختافزاری و حافظه بهینه عمل کند. در گام اول، الگوریتمهای مختلف تشخیص عمق از تصاویر استریو مورد بررسی قرار گرفتند. در گام دوم با توجه به رویکرد پیادهسازی سختافزاری، الگوریتمهای مناسب برای این کار با استفاده از شبیهسازی انتخاب شد. در گام سوم یک معماری سختافزاری بر اساس الگوریتمهای انتخابشده نرمافزاری ارائه شد. در ادامه گلوگاه مصرف منابع سختافزاری شناسایی شد و با سادهسازیهای سختافزاری بدون اینکه تاثیر زیادی روی دقت سیستم داشته باشد میزان مصرف منابع کاهش یافت. صحت عملکرد معماری نیز از طریق شبیهسازی تایید شد. در نهایت یک سیستم کامل سختافزاری که در بستر آن عمل تطبیق استریو انجام میشود، پیشنهاد گردید. از آنجا که روش تطبیق استریو مبتنی بر جستوجوی نقاط متناظر در تصویر است، با استفاده از یک هندسه خاص و تبدیلی به نام یکسوسازی تصویر، فضای جستوجو از فضای دوبعدی کل تصویر به فضای یکبعدی یک سطر از تصویر تبدیل میشود. برای پیادهسازی این روش از روند جدیدی استفاده شد که در آن با توزیع فرآیند محاسبه میان حافظه و سختافزار، مصرف حافظه و سختافزار در وضعیت بهینه قرار میگیرد و تمام فرآیند بدون سادهسازی و از دست دادن دقت با یک تراشه کوچک قابل انجام است. در نتیجه آن میزان مصرف منابع محاسباتی %21 و میزان مصرف حافظه بلوکی %11 و میزان استفاده از رجیسترها %18 کاهش یافت. همچنین با استفاده از تکنیک خطلوله حداکثر فرکانس کاری قابل اعمال به سیستم %75 افزایش یافت. کلمات کلیدی: تشخیص عمق- تطبیق استریو- FPGA- پیادهسازی سختافزاری- پردازش تصویر- VHDL مسئله تشخیص عمق از مسایل مهم بینایی ماشین است که در سیستمهای هدایت به ویژه رباتهای سیار و رباتهای جراح و همچنین در طراحی اتومبیلهای خودران جایگاه ویژهای یافته است. یکی از روشهای تشخیص عمق، استفاده از زوج تصویر استریو است. این روش علاوه بر آن که نسبت به دیگر روشها هزینه کمتری دارد در محیط های مختلف اعم از محیطهای باز و بسته قابل استفاده است. تشخیص عمق از تصاویر استریو بر مبنای مقایسه پیکسلهای دو تصویر صورت میگیرد. مقایسه پیکسلها و تعیین تناظر، پیچیدگیهای محاسباتی خاصی دارد که نیاز به منابع سختافزاری و حافظه بالایی دارد. هدف از این پایاننامه مطالعه روشهای مختلف تطبیق استریو، بررسی نیازهای سختافزاری این روشها، انتخاب الگوریتم مناسب برای مراحل مختلف محاسبه و سپس ارائه یک معماری مناسب برای یک سیستم تشخیص عمق است. به نحوی که در استفاده از منابع سختافزاری و حافظه بهینه عمل کند. در گام اول، الگوریتمهای مختلف تشخیص عمق از تصاویر استریو مورد بررسی قرار گرفتند. در گام دوم با توجه به رویکرد پیادهسازی سختافزاری، الگوریتمهای مناسب برای این کار با استفاده از شبیهسازی انتخاب شد. در گام سوم یک معماری سختافزاری بر اساس الگوریتمهای انتخابشده نرمافزاری ارائه شد. در ادامه گلوگاه مصرف منابع سختافزاری شناسایی شد و با سادهسازیهای سختافزاری بدون اینکه تاثیر زیادی روی دقت سیستم داشته باشد میزان مصرف منابع کاهش یافت. صحت عملکرد معماری نیز از طریق شبیهسازی تایید شد. در نهایت یک سیستم کامل سختافزاری که در بستر آن عمل تطبیق استریو انجام میشود، پیشنهاد گردید. از آنجا که روش تطبیق استریو مبتنی بر جستوجوی نقاط متناظر در تصویر است، با استفاده از یک هندسه خاص و تبدیلی به نام یکسوسازی تصویر، فضای جستوجو از فضای دوبعدی کل تصویر به فضای یکبعدی یک سطر از تصویر تبدیل میشود. برای پیادهسازی این روش از روند جدیدی استفاده شد که در آن با توزیع فرآیند محاسبه میان حافظه و سختافزار، مصرف حافظه و سختافزار در وضعیت بهینه قرار میگیرد و تمام فرآیند بدون سادهسازی و از دست دادن دقت با یک تراشه کوچک قابل انجام است. در نتیجه آن میزان مصرف منابع محاسباتی %21 و میزان مصرف حافظه بلوکی %11 و میزان استفاده از رجیسترها %18 کاهش یافت. همچنین با استفاده از تکنیک خطلوله حداکثر فرکانس کاری قابل اعمال به سیستم %75 افزایش یافت.