بخشی از مقاله
چکیده
این مقاله به ارائه روشی سریع برای تخمین حرکت دوربین در جریان تصاویر عمق رنگ میپردازد. تصاویر عمق ورودی از دوربین کینکت بهصورت ابر نقاط بازنمایش میشوند و سپس برای این ابر نقاط، بردار عمود بر صفحه در هر نقطه، محاسبه میشود. بردار عمود از اختلاف یک نقطه با همسایگان به دست میآید، که برای کاهش این محاسبات، از تصاویر انتگرالی برای تخمین اختلاف یک محدوده از نقاط بهره میبریم.
برای تخمین جابجایی دوربین در دو تصویر متوالی از این تصویربردار نرمال استفاده میکنیم . ابتدا قسمتهایی از تصویر فعلی که بر روی صفحات واقعشدهاند با قسمتهای مشابه در تصویر قبلی مقایسه میشوند و از این مقایسه جهت و جابجایی حرکت دوربین به دست میآید. در این روش پیشنهادی مبتنی بر تکرار نیست، از این رو انتظار داریم بسیار سریع باشد.
-1 مقدمه
مکان یابی و ساخت نقشه هم زمان از حوزه های تحقیقی فعال در رباتیک شمرده می شود که پیش نیاز حوزه های دیگری شامل مکانیابی ربات، کشف محیط، برنامه ریزی مسیر و ... است . در صورتی چنین کاری میتواند مفید باشد که ربات قابلیت تخمین دقیق مکان خود و هندسه محیط را داشته باشد . تطبیق دقیق مدلهای سهبعدی علاوه بر رباتیک میتواند در حوزه های مربوط به واقعیت مجازی، بازی های رایانهای و شبیهسازی دکوراسیون منزل مفید باشد. فهم هندسی محیط نیز از مهمترین مسائلی است که در رباتیک، پردازش تصویر و بینایی ماشین کاربرد دارد. برای بهبود فهم هندسی محیط، ربات نیاز به حسگری دارد که بتواند علاوه بر اطلاعات رنگ، هندسه محیط را نیز بیان کند. به همین منظور از حسگرهای عمق که فاصله هر نقطه تا صفحهی دوربین را محاسبه میکند، استفاده میکنیم.
در این مقاله ابتدا به بررسی کارهای پیشین در حوزه تخمین حرکت دوربین و بازسازی سهبعدی صحنه در تصاویر رنگی-عمق میپردازیم . بخش بعد به معرفی روشی سریع برای محاسبه بردار عمود و ساخت تصویر نرمال، صورت میگیرد. بخش بعد نیز روشی برای انتخاب قسمتهای مشترک در دو تصویر نرمال و تخمین ماتریس چرخش دوربین معرفی میشود. در بخش بعدی نتایج این روش با دیگر روشها مقایسه میشود.
-2 کارهای پیشین
در مکان یابی و ساخت نقشه هم زمان نیاز به تخمین حرکت و نگاشت دوربین است. برای تخمین حرکت دوربین نیاز است از اطلاعات و ویژگی های هندسی محیط، استفاده شود. روش های ساختار از حرکت در بینایی ماشین برای تخمین مدل حرکتی دوربین از تطبیق ویژگیهای بصری در عکس هایی که در حین حرکت دوربین به دست میآید، استفاده میکند.[2 ,1] روشهای زیادی نیز برای تخمین عمق از تصاویر معرفیشده است.
آقای Newcombe و همکاران [5] از تابع فاصله وزندار برای بیان هندسه محیط استفاده کرد، و برای تخمین حرکت دوربین بین دو فریم از الگوریتم نزدیک ترین نقطه تکراری بهره برد . آقای Whelan و همکاران [6] علاوه بر موقعیت نقاط، رنگ نقاط را نیز در نقشه ذخیره نمود. برای تخمین حرکت دوربین از روش های جایگزین استفاده کرد.
تخمین حرکت دوربین کامل مبتنی بر ویژگیهای بصری نسبت به استفاده از هندسه محیط، دارای خطا و لغزش بیشتری است، از این رو [7] Bylow و همکاران تابع فاصله علامتدار را برای تطبیق دو تصویر عمق موردبررسی قراردادند. مقدار این تابع در مکان هایی از محیط که دارای سطوح است، صفر است و در بقیه قسمت ها بسته به مکان دوربین، منفی یا مثبت است. چون جابجایی در دو تصویر متوالی کم است و بخش بزرگی از محیط در دو تصویر مشترک است، مقادیر این تابع در دو تصویر باید منطبق باشد .
روش آقای Felix Endres که در [8] معرفیشده است از چهار مرحلهی پردازشی تشکیل شده است. ابتدا ویژگیها و توصیفگرهای تصویری از تصاویر رنگی به دست میآید. سپس به تطبیق این ویژگیها با ویژگیهایی که در تصویر قبل به دستآمده بود، میپردازد. با بررسی تصاویر عمق در مکان این ویژگیها، یک مجموعه از نقاط سهبعدی متناظر برای هر دو فریم به دست میآورد.
بر اساس این شباهتها، تبدیل نسبی برای هر دو فریم با استفاده از RANSAC تخمین زده میشود . آقای Peter Henry در [10 ,9] از بهینه سازی توأم اطلاعات رنگ و هندسی برای تطبیق دو فریم استفاده کرد است. ویژگی های بصری دو فریم از توصیفگرهای ویژه تصویر رنگ به دست می آید و سپس با استفاده از RANSAC تطبیق داده می شوند. این تطبیق ویژگی ها با الگوریتم نزدیک ترین نقطه ی تکراری، ترکیب می شود، تا تبدیل حرکتی بهتری به دست آید.
-3 بردار عمود بر صفحه
تصویر عمق ورودی از دوربین کینکت ابتدا در فضای xyz بازنمایش داده میشود. از این رو با توجه به پارامترهای دوربین، هر پیکسل در تصویر عمق به نقطه xyz تبدیل میشود:
با توجه به ساختار دوربین کینکت، نقطه سهبعدی x - x , y , z - بر
روی صفحهی عکس، پروجکت میشود:
که fx , f y , c x و cy به ترتیب اندازه فاصله کانونی حسگر دوربین و مکان حسگر در تصویر میباشد.
ابر نقاط شامل پیکسلهای تصویر ساخته میشود که علاوه بر اطلاعات سهبعدی، مکان دوبعدی هر نقطه در تصویر را نیز ذخیره میکند. از این اطلاعات برای یافتن همسایگان یک نقطه کاربرد دارد. محاسبه بردار عمود بر صفحه در یک نقطه، از اختلاف با همسایگانش به دست میآید. برای کاهش اثر خطای محاسبه عمق در دوربین، به جای چهار همسایه از چند همسایه استفاده میکنیم. برای این کار از یک قاب فیلتر میانگیری به مرکز نقطه بهره میبریم. برای افزایش سرعت این فیلتر، تصاویر انتگرالی برای ابر نقاط ساخته میشود تا تعداد محاسبات کاهش یابد. تصاویر انتگرالی برای هر بعد x,y,z ابر نقاط با توجه به مکان در تصویر عمق ساخته میشود.
تصویر انتگرالی بهصورت زیر به دست میآید:
که میتوان با یک بار پیمایش بالا به پایین تصویر، به دست آید. میانگین در یک محدوده خاص با استفاده از تصویر انتگرالی محاسبه می-شودکه - m,n - مرکز قاب و r اندازه شعاع قاب است - شکل . - 1
شکل :1 - الف - بردار عمود سطح در یک نقطه از ضرب خارجی بردارهای افقی و عمودی اختلاف نقطه با همسایگان به دست میآید. - ب - مساحت و میانگین قسمتی از تصویر با داشتن مقادیر 4 نقطه مشخصشده در تصویر به دست میآید.
برای تخمین بردار عمود سطح np در نقطه p در پیکسل - m,n - تصویر عمق، از بردارهای سه بعدی vp,h که اختلاف بین همسایه چپ و راست و vp,v اختلاف بین همسایه بالا و پایین نقطه ی p در تصویر است استفاده میکنیم. حاصلضرب خارجی این دو بردار، تخمین بردار نرمال سطح را میدهد.
شکل : 2 محاسبه بردار عمود بر سطح. تصویر عمق بهصورت ابر نقاط بازنمایش داده میشود[11] و ابر نقاط شامل بردار نرمال محاسبه میشود که برای بازنمایش دوبعدی به تصویر نرمال نگاشت شده است. این تصاویر از پایگاه داده [12] قابلدسترس است.
که Px,Py و Pz به ترتیب نقشه دوبعدی مؤلفههای x,y و z ابر نقاط است و IPz تصویر انتگرالی Pz است. مقدار r میتواند با توجه به مقدار عمق تصویر تغییر یابد، زیرا برای عمقهای بالاتر مقدار خطای حسگر بیشتر است
-4 نگاشت تصاویر عمق
برای تطبیق دو ابر نقاط به هم و تخمین میزان جابجایی و چرخش بین آن ها، روش تکراری نزدیک ترین نقطه معرفی شده است.[15 ,14 ,11] این روش مبتنی بر تکرار بوده و در هر تکرار سعی میکند مجموع فاصله یک نقطه در ابر نقاط مرجع با نزدیکترین نقطه در ابر نقاط ورودی را کمینه کند. عملیات یافتن نزدیکترین نقطه در ابر نقاط عملی زمانبر است، از این رو برای کاربردهای بیدرنگ و سریع مناسب نیست
برای تطبیق دو ابر نقاط مربوط به تصاویر عمق متوالی، نیاز است تا ماتریس تبدیل صلب بین نقاط متناظر به دست آید . این ماتریس شامل دو قسمت چرخش و انتقال است که چرخش به صورت ماتریس 3*3 و انتقال به صورت بردار 1*3 نمایش داده میشود. طی اعمال چرخش به ابر نقاط، به بردارهای عمود بر سطوح موجود در آن نیز چرخش اعمال میشود. برای تخمین ماتریس چرخش از تصاویر شامل بردار نرمال استفاده میکنیم.
برای یافتن میزان چرخش حرکت دوربین بین دو تصویر متوالی، قسمت های کوچکی از سطوح موجود دارای بردار عمود یکسان، در دو تصویر نرمال انتخاب می شوند . برای هرکدام از سطوح کوچک در ابر نقاط ورودی باید سطوح متناظر با آن را در ابر نقاط مرجع مشخص شود، تا با توجه به چرخش بردار عمود بر این سطوح، چرخش دوربین به دست آید . قسمت های کوچک از یک سطح هموار در ابر نقاط ، دارای میزان تغییرات کمی در تصویر نرمال هستند.
ازآنجایی که تغییرات برای دو تصویر متوالی در طی حرکت دوربین کم است، تغییرات مکان نگاشت صفحات محیط در دو تصویر نیز پایین است. پس می توانیم فرض کنیم بخشهایی از صفحات بزرگتر نیز از موقعیت یکسان در دو تصویر نرمال برخوردار هستند یا به عبارت دیگر بخشهایی با موقعیت یکسان در دو تصویر نرمال یافت می شود که طی حرکت دوربین مربوط به یک صفحه باشند. مجموعه صفحات ریز متناظر در ابر نقاط مرجع - i - ni , di و ابر نقاط ورودی - i - ni , di نمایش میدهیم که ni بردار عمود بر جز صفحه و di فاصله صفحه تا مبدأ مختصات در دستگاه مختصات حول مکان دوربین است. انتقال مکان دوربین در تغییربردار عمود بر سطح، تأثیر نمیگذارد. از این رو، ماتریس چرخش از به دست می آید. در رابطه An - 14 - مجموعه صفحات کوچک مشترک بین ابر نقاط هدف و ابر نقاط مرجع است . wi وزن تطبیق برای صفحه کوچک i است