زمان تخمینی مطالعه: 16 دقیقه
بینایی کامپیوتر سه بعدی شاخهای از علوم کامپیوتر است که بر روی ثبت، پردازش تصویر و تجزیه و تحلیل دادههای بصری سه بعدی تمرکز دارد. هدف این مفهوم بازسازی و درک ساختار سه بعدی اشیاء و صحنهها از تصاویر دو بعدی یا دادههای ویدیویی است. تکنیکهای بینایی سهبعدی از اطلاعات منابعی مانند دوربینها یا حسگرها برای ایجاد درک دیجیتالی از اشکال، ساختار و ویژگیهای اشیاء در یک صحنه استفاده میکنند. این علم کاربردهای متعددی در رباتیک، واقعیت افزوده/مجازی، سیستمهای مستقل و بسیاری موارد دیگر دارد.
بینایی کامپیوتر سه بعدی چیست؟
بینایی کامپیوتری 3D دادههای بصری دو بعدی را استخراج، پردازش و تجزیه و تحلیل میکند تا بتواند مدلهای سه بعدی آنها را تولید کند. برای انجام این کار، از الگوریتمهای مختلف و تکنیکهای اکتساب داده استفاده میکند که مدلهای بینایی کامپیوتری را قادر میسازد تا ابعاد، خطوط و روابط فضایی اشیاء را در یک محیط بصری معین بازسازی کنند. تکنیکهای سه بعدی CV اصولی از رشتههای مختلف مانند بینایی کامپیوتر، فتوگرامتری، هندسه و یادگیری ماشین را با هدف به دست آوردن اطلاعات سه بعدی ارزشمند از تصاویر، ویدیوها یا دادههای حسگر ترکیب میکند.
مفاهیم بنیادی در بینایی کامپیوتر سه بعدی
- درک عمق Depth Perceptions: درک عمق توانایی تخمین فاصله بین اجسام و دوربین یا حسگر است. این کار از طریق روشهایی مانند دید استریو انجام میشود، جایی که از دو دوربین برای محاسبه عمق یا با تجزیه و تحلیل نشانههایی مانند سایهزنی، تغییرات بافت و تفاوتهای حرکتی در تصاویر تکدوربین یا توالیهای ویدیویی استفاده میشود.
- ابعاد فضایی Spatial Dimensions: ابعاد فضایی به سه محور متعامد (X، Y و Z) اشاره دارد که سیستم مختصات سه بعدی را میسازد. این ابعاد مقادیر ارتفاع، عرض و عمق اجسام را ثبت میکنند. مختصات فضایی نمایش، بررسی و دستکاری دادههای سهبعدی مانند ابرهای نقطهای، مشها یا شبکههای وکسل را تسهیل میکنند که برای کاربردهایی مانند روباتیک، واقعیت افزوده و بازسازی سهبعدی ضروری هستند.
- مختصات همگن و هندسه تصویری سه بعدی: هندسه تصویری سه بعدی و مختصات همگن ساختاری را برای نمایش و مدیریت نقاط، خطوط و سطوح سه بعدی ارائه میدهند. مختصات همگن نقاطی را در فضا با استفاده از یک مختصات اضافی نشان میدهند تا امکان تبدیلهای هندسی مانند چرخش، ترجمه و مقیاسگذاری از طریق عملیات ماتریسی را فراهم کند. از سوی دیگر، هندسه تصویری سه بعدی با نمایش ریاضی و دستکاری اشیاء سه بعدی همراه با پیشبینی آنها بر روی صفحات تصویر دو بعدی سروکار دارد.
- مدلهای دوربین و تکنیکهای کالیبراسیون برای مدلهای سهبعدی: انتخاب مناسب مدلهای دوربین و تکنیکهای کالیبراسیون آنها نقش مهمی در بینایی کامپیوتر سه بعدی برای بازسازی دقیق مدلهای سهبعدی از تصاویر دو بعدی دارد. استفاده از مدلهای دوربین با وضوح بالا، رابطه هندسی بین نقاط سهبعدی در دنیای واقعی و پیشبینیهای دوبعدی مربوطه آنها را در صفحه تصویر بهبود میبخشد. در همین حال، کالیبراسیون دقیق دوربین به تخمین پارامترهای درونی دوربین، مانند فاصله کانونی و نقطه اصلی، و همچنین پارامترهای بیرونی، از جمله موقعیت و جهت کمک میکند. این پارامترها برای تصحیح اعوجاج، تراز کردن تصاویر، و مثلثبندی نقاط سه بعدی از چندین نما برای اطمینان از بازسازی دقیق مدلهای سه بعدی، بسیار مهم هستند.
- بینایی استریو Stereo Vision: بینایی استریو روشی در بینایی کامپیوتر سه بعدی است که از دو یا چند دوربین بینایی ماشینی سه بعدی برای گرفتن تصاویر از یک صحنه از زوایای کمی متفاوت استفاده میکند. این تکنیک با یافتن نقاط تطبیق در هر دو تصویر و سپس محاسبه مکانهای سه بعدی آنها با استفاده از هندسه شناخته شده دوربین کار میکند. الگوریتمهای بینایی استریو، نابرابری یا تفاوت در موقعیتهای نقاط مربوطه را برای تخمین عمق نقاط در صحنه تجزیه و تحلیل میکنند. این دادههای عمقی امکان بازسازی دقیق مدلهای سهبعدی صنعتی را فراهم میکند، که میتواند برای کارهایی مانند ناوبری رباتیک، واقعیت افزوده و نقشهبرداری سهبعدی مفید باشد.
تکنیکهای بازسازی سه بعدی در بینایی کامپیوتر
در بینایی کامپیوتر، میتوانیم مدلهای سهبعدی اشیاء را به دو روش اصلی ایجاد کنیم:
1- تکنیکهای غیرفعال:
تکنیکهای تصویربرداری غیرفعال به طور مستقیم تصاویر یا فیلمهای گرفته شده توسط منابع نور موجود را تجزیه و تحلیل میکنند. در این تکنیک بدون انتشار یا ساطع کردن هیچ گونه تشعشع کنترل شده، اقدام به بازسازی سه بعدی در بینایی کامپیوتر میشود . نمونههایی از این تکنیکها عبارتند از:
- ایجاد شکل از سایه Shape from Shading: در بینایی کامپیوتر سه بعدی، ایجاد شکل از سایه، شکل سه بعدی یک شی را تنها با استفاده از یک تصویر دو بعدی بازسازی میکند. این تکنیک نحوه برخورد نور به جسم (الگوهای سایه) و چگونگی ظاهر شدن مناطق مختلف روشن (تغییرات شدت) را تجزیه و تحلیل میکند. با درک نحوه تعامل نور با سطح جسم، این تکنیک بینایی شکل سه بعدی آن را تخمین میزند. شکل ایجاد شده از سایه فرض میکند که ما از ویژگیهای سطحی اجسام (به ویژه نحوه انعکاس نور) و شرایط نور اطلاع داریم. سپس، از الگوریتمهای ویژهای استفاده میکند تا محتملترین شکل سهبعدی آن شی را پیدا کند که الگوهای سایهزنی دیدهشده در تصویر را توضیح میدهد.
- شکل از بافت Shape from Texture: تکنیک شکل از بافت روشی است که در بینایی کامپیوتر برای تعیین شکل سه بعدی یک جسم بر اساس اعوجاجهای موجود در بافت سطح آن استفاده میشود. این تکنیک بر این فرض تکیه دارد که سطح دارای یک الگوی بافت با ویژگیهای شناخته شده است. با تجزیه و تحلیل چگونگی تغییر شکل این بافت در یک تصویر دو بعدی، این تکنیک میتواند جهتگیری و شکل سه بعدی سطح زیرین را تخمین بزند. مفهوم اساسی این است که بافت در نواحی دورتر از دوربین فشرده میشود و در نواحی نزدیک به دوربین کشیده میشود.
- تشخیص عمق بر اساس عدم فوکوس Depth from Defocus: تکنیک Depth from Defocus فرآیندی است که عمق یا ساختار سه بعدی یک صحنه را با بررسی میزان تاری یا عدم فوکوس موجود در نواحی تصویر محاسبه میکند. این روش بر اساس این اصل کار میکند که اشیایی که در فواصل دور از لنز دوربین قرار دارند، سطوح مختلفی از تاری فوکوس را نشان میدهند. با مقایسه این سطوح تاری در سراسر تصویر، DfD میتواند نقشههای عمق یا مدلهای سهبعدی را تولید کند که صحنه را نشان میدهد.
- ساختار از حرکت (SfM): روش ساختار از حرکت (Structure from Motion) ساختار سه بعدی یک صحنه را از مجموعهای از تصاویر دو بعدی بازسازی میکند. این تکنیک مجموعهای از تصاویر دوبعدی روی هم را به عنوان ورودی میگیرد که میتوان این تصاویر را با یک دوربین معمولی یا حتی یک پهپاد ثبت کرد. در مرحله اول، ویژگیهای مشترک در این تصاویر، مانند گوشهها، لبهها یا الگوهای خاص مشخص میشود. سپس SfM موقعیت و جهت (موقع) دوربین را برای هر تصویر بر اساس ویژگیهای شناسایی شده و نحوه ظاهر شدن آنها از دیدگاههای مختلف تخمین میزند. با داشتن ویژگیهای متناظر در تصاویر متعدد و ژستهای دوربین، مثلثبندی را انجام میدهد تا مکان سه بعدی این ویژگیها را در صحنه مشخص کند. در نهایت، الگوریتمهای SfM از موقعیتیابی سهبعدی این ویژگیها برای ساخت یک مدل سهبعدی از صحنه استفاده میکنند که میتواند یک نمایش ابر نقطهای یا یک مدل مش با جزئیات بیشتر باشد.
2- تکنیکهای فعال
روشهای بازسازی سهبعدی فعال هر نوع تشعشعی مانند نور، صدا یا امواج رادیویی را بر روی جسم میتابانند. سپس بازتابها، پژواکها یا اعوجاجهای آنها را تجزیه و تحلیل میکند تا ساختار سهبعدی آن شی را بازسازی کند. نمونههایی از این تکنیکها ممکن است شامل موارد زیر باشد:
- نور ساختیافته Structured Light: نور ساختیافته یک تکنیک بینایی کامپیوتر سه بعدی فعال است که در آن یک الگوی نور یا پرتوی خاص طراحی شده بر روی یک صحنه بصری پخش میشود. این الگوی نور میتواند به اشکال مختلف از جمله شبکهای، راه راه و یا حتی طرحهای پیچیدهتر باشد. همانطور که الگوی نور به اجسامی که اشکال و اعماق متفاوتی دارند برخورد میکند، پرتوهای نور تغییر شکل میدهند. بنابراین با تجزیه و تحلیل نحوه خم شدن و انحراف پرتوهای تابانده شده بر روی سطح جسم، یک سیستم بینایی اطلاعات عمق نقاط مختلف روی جسم را محاسبه میکند. این دادههای عمقی امکان بازسازی یک نمایش سهبعدی از شی بصری که تحت مشاهده است را میسازد.
- سنسورهای زمان پرواز Time-of-Flight: سنسور زمان پرواز (ToF) یکی دیگر از تکنیکهای بینایی فعال است که زمان انتقال سیگنال نور از سنسور به یک جسم و بازگشت بازتاب را اندازهگیری میکند. منابع نور متداول برای حسگرهای ToF لیزر یا LED های مادون قرمز (IR) هستند. سنسور یک پالس نوری ساطع میکند و سپس فاصله را بر اساس زمان پرواز پرتو نور منعکس شده محاسبه میکند. با گرفتن این زمان برای هر پیکسل در آرایه حسگر، یک نقشه عمق سه بعدی از صحنه ایجاد میشود. برخلاف دوربینهای معمولی که رنگ یا روشنایی را ثبت میکنند، حسگرهای ToF اطلاعات عمقی را برای هر نقطه ارائه میکنند که اساساً به ایجاد یک تصویر سه بعدی از محیط اطراف کمک میکند.
- LiDAR: لایدار (Light Detection and Ranging) یک تکنیک بینایی سه بعدی سنجش از دور است که از نور لیزر برای اندازهگیری فواصل اجسام استفاده میکند. این تکنولوژی پالسهای لیزری را به سمت اجسام ساطع میکند و زمان بازگشت نور منعکس شده را اندازهگیری میکند. این دادهها نمایشهای سه بعدی دقیقی از محیط اطراف ایجاد میکند. سیستمهای LiDAR نقشههای سهبعدی با وضوح بالا ایجاد میکنند که برای کاربردهایی مانند وسایل نقلیه خودران، نقشهبرداری، باستانشناسی و مطالعات جوی مفید هستند.
رویکردهای یادگیری عمیق برای بینایی سه بعدی (تکنیکهای پیشرفته)
پیشرفتهای اخیر در یادگیری عمیق به طور قابل توجهی بر حوزه بینایی کامپیوتر سه بعدی تأثیر گذاشته است و در کارهای مختلف به نتایج قابل توجهی دست یافته است از جمله:
- شبکههای عصبی کانولوشنال سه بعدی: این دسته که به عنوان CNNهای سهبعدی نیز شناخته میشوند، شکلی از مدل یادگیری عمیق سهبعدی هستند که برای تجزیه و تحلیل دادههای بصری سهبعدی ساخته شدهاند. برخلاف رویکردهای سنتی CNN که دادههای دوبعدی را پردازش میکنند، CNNهای سه بعدی از فیلترهای منحصربهفرد برای استخراج ویژگیهای کلیدی مستقیماً از دادههای حجمی، مانند اسکنهای پزشکی سهبعدی یا مدلهای سهبعدی شی استفاده میکنند. این قابلیت برای پردازش دادهها در سه بعد، این رویکرد یادگیری را قادر میسازد تا روابط مکانی (مانند موقعیتیابی شیء) و جزئیات زمانی (مانند پیشرفت حرکت در فیلمها) را ثبت کند. در نتیجه، CNN های سه بعدی برای کارهایی مانند تشخیص اشیاء سه بعدی، تجزیه و تحلیل ویدئو و تقسیمبندی دقیق تصاویر پزشکی برای تشخیص دقیق موثر هستند.
- پردازش ابر نقطهای Point Cloud Processing: پردازش ابر نقطهای روشی است که در یادگیری عمیق سه بعدی برای بررسی و دستکاری دادههای بصری سه بعدی ارائه شده به عنوان ابرهای نقطهای استفاده میشود. ابر نقطه مجموعهای از مختصات سه بعدی است که معمولاً توسط دستگاههایی مانند اسکنرها، دوربینهای عمق یا حسگرهای LiDAR ثبت میشود. این مختصات موقعیت جسم و گاهی اطلاعات اضافی مانند شدت یا رنگ را برای هر نقطه در یک محیط بصری نشان میدهد. وظایف پردازش شامل تراز کردن اسکنها (ثبت نام)، تقسیمبندی اشیاء، حذف نویز (نویز زدایی) و تولید مدلهای سه بعدی (بازسازی سطح) بر اساس دادههای نقاط است. این رویکرد در بینایی کامپیوتر برای تشخیص اشیاء، درک صحنه سه بعدی و توسعه نقشههای سه بعدی ضروری برای برنامههایی مانند وسایل نقلیه خودران و واقعیت مجازی استفاده میشود.
- تشخیص و شناسایی اشیاء سه بعدی: هدف تشخیص شی سه بعدی شناسایی و مکانیابی اشیاء در یک صحنه بصری اما با پیچیدگی بیشتر بعد سوم یعنی عمق است. این دسته روشها ویژگیهایی مانند شکل، بافت و اطلاعات بالقوه سه بعدی را برای طبقهبندی شی تجزیه و تحلیل میکنند که شامل رسم جعبههای محدود کننده در اطراف جسم یا تولید یک ابر نقطهای است که شکل آن را نشان میدهد. این تکنیک بینایی شناخت را یک قدم جلوتر میبرد. این روش شیء و همچنین مکان دقیق آن را در فضای سه بعدی شناسایی میکند. به عنوان نمونه آن را به عنوان یک خودروی خودران در نظر بگیرید که نه تنها عابر پیاده را تشخیص میدهد، بلکه فاصله و موقعیت آنها را در جاده نیز مشخص میکند.
کاربردهای واقعی بینایی کامپیوتر سه بعدی
پیشرفتهای بینایی کامپیوتر 3D راه را برای طیف گستردهای از کاربردها هموار کرده است:
- فناوری AR/VR: بینایی سه بعدی با ساختن محیطهای مجازی، تجربیات همه جانبهای را در AR/VR ایجاد میکند. همپوشانیهایی را به نماهای واقعی اضافه میکند و شبیهسازیهای تعاملی را فعال میکند.
- رباتیک: رباتها از بینایی سه بعدی برای “دیدن” محیط اطراف خود استفاده میکنند. این مفهوم به آنها اجازه میدهد تا اشیاء را در موقعیتهای پیچیده دنیای واقعی تشخیص دهند.
- سیستمهای خودران: اتومبیلهای خودران، هواپیماهای بدون سرنشین و سایر سیستمهای خودران برای کارهای حیاتی به بینایی سه بعدی متکی هستند. اینها شامل شناسایی موانع، برنامهریزی مسیرها، درک صحنهها و ایجاد نقشههای سه بعدی از محیط آنها میشود. همه اینها عملکرد ایمن و کارآمد وسایل نقلیه خودران را تضمین میکند.
- تصویربرداری و تجزیه و تحلیل پزشکی: سیستمهای بینایی ماشین سه بعدی در تصویربرداری پزشکی حیاتی هستند. آنها ساختارهای آناتومیک سه بعدی را از سی تی اسکن، ام آر آی یا سونوگرافی بازسازی و تجسم میکنند که به پزشکان در تشخیص و برنامهریزی درمان کمک میکند.
- نظارت و امنیت: سیستمهای بینایی سه بعدی میتوانند فعالیتها را در زمان واقعی برای اهداف امنیتی نظارت و تجزیه و تحلیل کنند. آنها میتوانند اشیاء یا افراد را شناسایی و ردیابی کنند، جمعیتها را زیر نظر بگیرند و رفتار انسان را در محیطهای سه بعدی تجزیه و تحلیل کنند.
- معماری و ساخت و ساز: تکنیکهای بینایی کامپیوتر سه بعدی به ایجاد مدلهای سه بعدی دقیق از ساختمانها و محیطها کمک میکند. این به طراحی، برنامهریزی و ایجاد شبیهسازی مجازی برای پروژههای معماری و ساخت و ساز کمک میکند.