برای داشتن عمق در تصویر میتوانیم از دوربین دوتایی استفاده کنیم! این یک آموزش برای استفاده از نرم افزار متلب برای بهدست آوردن پارامترهای کالیبراسیون دوربین است.
با استفاده از Stereo Camera Calibrator میتوانیم یک شئ شامل پارامترهای دوربین ایجاد کنیم. از شئ میتوان استفاده کرد برای:
rectifyStereoImages
reconstructScene
triangulate
مجموع توابع با استفاده از Stereo Camera Calibrator app در متلب قابل استفاه خواهند بود.
روند کار به شکل زیر خواهد بود:
برای کالیبره کردن دوربین استریو روند را طی نمایید:
میتوانید از ظرح های تخته شطرنجی، شبکه دایره ای و الگوهای سفارشی استفاده کنید. برای جزئیات بیشتر: Calibration Patterns
برای بهدست آوردن بهترین نتیجه نیاز به 10 الی 20 تصویر میباشد. و در حالت مینیمم به سه تصویر نیاز است.از فرمت های تصویر فشرد نشده مثل PNG استفاده نمایید.
یا در کامنت پرامپت وارد کنید: stereoCameraCalibrator
از طریق گزینه Add Image تصاویر را اضافه و مدل دوربین را وارد کنید. پس از آن متلب به آنالیز تصاویر خواهد پرداخت برای مشاهده جزئیات این روند: Prepare Camera and Capture Images
برای مشخص کردن camera intrinsics میتوانید در تب Calibration و در قسمت Intrinsics گزینه Use Fixed Intrinsic و مقادیر Radial Distortion و را وارد نمایید. برای وارد کردن مقادیر از محیط workspace گزینه Load Intrinsics را انتخاب و برای مثال اگر ساختار wideBaselineStereo
شامل intrinsics برای هر دو دوربین باشد این کد را در کامنت پرامپت وارد کنید:
ld = load("wideBaselineStereo"); int1 = ld.intrinsics1 int2 = ld.intrinsics2
سپس گزینه Load Intrinsics را انتخاب کنید.
کالیبره کردن
روی گزینه Calibrate کلیک کنید. در حالت پیش فرض کمترین حالت پارامترها در نظر گرفته خواهد شد. پس از ارزیابی نتایج شما میتوانید برای بهبود دقت کالیبراسیون اقدام نمایید با تنظیم تنظیمات و کم و زیاد کردن تصاویر و کالیبره کردن مجدد.
وقتی دوربین اعواج شدیدی داره، دوربین ممکن است نتواند مقادیر ذاتی دوربین را محاسبه کند. اگر شما این مقادیر فنی دوربین خود را میدانید(pixel size - focal length - lens characteristics) میتوانید به صورت دستی حدسهای اولیه برای ویژگی های ذاتی و اعواج شجاعی(radial distortion) انتخاب کنید. برای این منظور روند زیر را طی نمایید:
برای مشاهده جزئیات بیشتر در مورد پارامترهای کالیبراسیون بخوانید: What Is Camera Calibration?
ارزیابی نتایج کالیبراسیون
برای ارزیابی نتایج کالیبراسیون میتوانید از سه روش زیر و برای ارزیابی بهتر میتوانید از هر سه روش استفاده کنید:
این خطا فاصله برحسب پیکسل بین نقاط شناسایی شده و نقاط reprojecte شده است. به عنوان یک قاعده کلی، میانگین خطاهای reprojecte شده کمتر از یک پیکسل قابل قبول است.
برنامه این خطا را روی یک نمودار میله ای بر حسب پیکسل نمایش میدهد. این نمودار کمک میکند تا متوجه شویم کدام تصاویر به کالیبراسیون کمک میکند. ورودی نمودار میلهای را انتخاب کنید و تصویر را در پنجره Data Browser حذف کنید.
نمودار Reprojection Errors
این نمودار میانگین خطا به همراه میانگین کلی نمایش میدهد.
میتوان میانگین خطای کلی را تنظیم کرد، برای انتخاب جفت تصویر با مقدار بیشتر از خطای مشخص شده، خط قرمز را جابجا کنید.
یک نمایش سه بعدی خارجی خواهیم داشت که میتوانید شبیه به نمودار های سه بعدی متلب آن را جابجا و از زوایای متفاوت ببینید. موقعیت های نسبی دوربین و الگو ها را مقایسه کنید و ببینید آیا با آنچه انتظار داشته یاد تطابق دارد. به عنوان مثال اگر الگویی در پشت دوربین نمایش داده شده ات نشان دهنده خطای کالیبراسیون است.
برای مشاهده اثر stereo rectification در تب Calibration، در قسمت View، Show Rectified را انتخاب کنید. اگر کالیبراسیون صحیح باشد، تصاویر بدون اعوجاج و تراز خواهند بود.
بهبود کالیبراسیون
برای بهبود کالیبراسیون میتوانید تصاویر با خطای بالا را حذف کنید، تصاویر بیشتری اضافه کنید یا تنظیمات کالیبراتور را تغییر دهید.
جفت تصویر بیشتری اضافه کنید اگر:
جفت تصویر را حذف کنید اگر:
خروجی گرفتن از پارامتر ها
وقتی دقت کالیبراسیون مدنظر ایجاد شد، گزینه Export Camera Parameters را انتخاب کنید. شما میتوانید ذخیره و یا خروجی بگیرید از پارامترها به عنوان یک شی در workspace متلب و یا پارامترها را به عنوان یک اسکریپت تولید کنید.
منبع: mathworks.com