زمان تخمینی مطالعه: 11 دقیقه

Optical Flow یا شار نوری حرکت اجسام بین فریم‌های متوالی گرفته شده توسط دوربین را کمیت می‌بخشد. الگوریتم‌های Optical Flow تلاش می‌کنند تا حرکت ظاهری الگوهای روشنایی را در تصویر ثبت کنند. این مفهوم یک زیرشاخه مهم از بینایی کامپیوتر است که ماشین‌ها را قادر می‌سازد تا دینامیک صحنه و حرکت را درک کنند. مفهوم شار نوری به کارهای اولیه جیمز گیبسون در دهه 1950 برمی‌گردد. گیبسون این مفهوم را در چارچوب ادراک بصری معرفی کرد. محققان مطالعه و استفاده از Optical Flow را تا دهه 1980، زمانی که ابزارهای محاسباتی معرفی شدند، شروع نکردند. یک نقطه عطف مهم توسعه روش لوکاس-کاناد در سال 1981 بود. این مفهوم یک الگوریتم اساسی برای تخمین شار نوری در یک پنجره محلی از یک تصویر ارائه کرد. الگوریتم Horn-Schunck به زودی در پی آن معرفی شد و یک رویکرد جهانی برای تخمین شار نوری در کل تصویر معرفی کرد.

توالی بصری که چرخش ناظر را به تصویر می‌کشد، به الگوهای شار نوری سه‌بعدی تبدیل می‌شود و سپس به نمایش دو بعدی با بردارهای جریان جهت ختم می‌شود.

تخمین Optical Flow بر این فرض تکیه می‌کند که روشنایی یک نقطه در بازه‌های زمانی کوتاه ثابت است. از نظر ریاضی، این متد از طریق معادله شار نوری Ix​vx+Iyvy+It=0 بیان می‌شود.

پیشرفت‌های اخیر شامل استفاده از مدل‌های یادگیری عمیق مانند FlowNet، FlowNet 2.0 و LiteFlowNet است. این مدل‌ها تخمین شار نوری را با بهبود قابل‌توجهی دقت و کارایی محاسباتی تغییر دادند. این تا حد زیادی به دلیل ادغام شبکه‌های عصبی کانولوشن (CNN) و در دسترس بودن مجموعه داده‌های بزرگ است. حتی در تنظیمات با انسداد، تکنیک‌های Optical Flow امروزه می‌توانند الگوهای پیچیده حرکت ظاهری را با دقت پیش‌بینی کنند.

پیش بینی شار نوری با FlowNet در دیتاست Sintel.

تکنیک‌ها و الگوریتم‌های Optical Flow

انواع مختلف الگوریتم‌های Optical Flow، که هر کدام روش منحصر به فردی برای محاسبه الگوی حرکت دارند، منجر به تکامل رویکردهای محاسباتی شدند. الگوریتم‌های سنتی مانند روش‌های Lucas-Kanade و Horn-Schunck پایه‌های این حوزه از بینایی ماشین را ایجاد کردند.

با این حال، الگوریتم‌های جدید یادگیری عمیق، عصر جدیدی از الگوریتم‌های Optical Flow را آغاز کرده‌اند. مدل‌هایی مانند FlowNet، LiteFlowNet و PWC-Net از CNN برای یادگیری از مجموعه داده‌های گسترده تصاویر استفاده می‌کنند. این کار امکان پیش‌بینی را با دقت و استحکام بیشتری به خصوص در سناریوهای چالش برانگیز فراهم می‌کند. به عنوان مثال، در صحنه‌هایی با انسداد، نورهای متفاوت و بافت‌های پویا پیچیده.

برای نشان دادن تفاوت بین این الگوریتم‌ها، جدول مقایسه‌ای زیر را در نظر بگیرید که عملکرد آنها را از نظر دقت، سرعت و الزامات محاسباتی نشان می‌دهد:

الگوریتمدقت(Accuracy)سرعت(فریم بر ثانیهFPS)نیاز محاسباتی
Lucas-Kanadeمتوسطبالاپایین
Horn-Schunckبالاپایینبالا
FlowNetبالامتوسطمتوسط
LiteFlowNetخیلی بالامتوسطمتوسط
PWC-Netخیلی بالابالابالا
مقایسه الگوریتم‌های Optical Flow

تکنیک‌های سنتی مانند لوکاس-کاناد و هورن-شانک اساسی هستند و نباید از آنها کاسته شود. با این حال، آنها معمولا نمی‌توانند با دقت و استحکام رویکردهای یادگیری عمیق رقابت کنند. روش‌های یادگیری عمیق، اگرچه قدرتمند هستند، اما اغلب به منابع محاسباتی قابل توجهی نیاز دارند. این بدان معنی است که آنها ممکن است برای برنامه‌های بلادرنگ مناسب نباشند.

شار نوری در عمل و موارد استفاده و کاربردها

امروزه، کاربردهای فناوری Optical Flow را در صنایع مختلف خواهید یافت. این تکنیک برای فناوری‌های بینایی رایانه‌ای هوشمند که می‌توانند اطلاعات بصری پویا را به سرعت تفسیر کنند، اهمیت فزاینده‌ای پیدا می‌کند.

نمایش شار نوری در حرکات ورزشی.

پیاده سازی عملی Optical Flow

راه های مختلفی برای پیاده سازی شار نوری در برنامه‌ها وجود دارد که از نرم افزار گرفته تا یکپارچه‌سازی سخت افزاری را شامل می‌شود. به عنوان مثال، ما به یک فرآیند یکپارچه سازی معمولی با استفاده از الگوریتم شار نوری محبوب OpenCV نگاهی خواهیم کرد.OpenCV یک کتابخانه گسترده است که طیف وسیعی از قابلیت‌های بینایی کامپیوتر بلادرنگ را ارائه می‌کند. این خود شامل ابزارهایی برای تجزیه و تحلیل تصویر و ویدئو، تشخیص ویژگی، و تشخیص اشیاء است. OpenCV که به دلیل تطبیق‌پذیری و عملکرد خود شناخته شده است، به طور گسترده در دانشگاه و صنعت برای نمونه سازی و استقرار سریع استفاده می‌شود.

– استفاده از روش Lucas-Kanade در OpenCV

pip install opencv-python
VideoCapture
cvtColor
goodFeaturesToTrack
calcOpticalFlowPyrLK

– ادغام شار نوری در پروژه‌های سخت افزاری

یک مثال از ادغام با سخت افزار می‌تواند شامل هواپیماهای بدون سرنشین برای ردیابی حرکت به صورت بلادرنگ باشد:

بهینه‌سازی عملکرد Optical Flow

در ادامه مطالب روش‌های بهینه‌سازی عملکرد شار نوری آورده شده است:

چالش‌ها و محدودیت‌های Optical Flow

انسداد(Occlusions)، تغییرات روشنایی، و مناطق کم بافت هنوز هم یک چالش مهم برای دقت سیستم‌های شار نوری است. مدل‌های پیش‌بینی‌کننده که حرکت نواحی مسدود شده را بر اساس عناصر مرئی اطراف تخمین می‌زنند، می‌توانند نتایج را بهبود بخشند. الگوریتم‌های تطبیقی ​​که می‌توانند تغییرات نور را عادی کنند نیز ممکن است به جبران تغییرات نور کمک کنند. Optical Flow برای مناطق با بافت پراکنده می‌تواند از یکپارچه سازی زمینه فضایی یا نشانه‌های سطح بالاتر برای استنباط حرکت بهره‌مند شود.
یکی دیگر از چالش‌هایی که معمولاً با آن روبه‌رو می‌شود، «مسئله ناشناخته معادله دو» است. این امر به دلیل داشتن متغیرهای بیشتر از معادلات به وجود می‌آید که باعث می‌شود محاسبات نامعین شوند. با فرض ثبات جریان در پنجره‌های کوچک، می‌توانید این مشکل را با اجازه دادن به تجمع اطلاعات برای حل مجهولات کاهش دهید. سایر روش‌های پیشرفته ممکن است برآوردها را با استفاده از تکنیک‌های منظم‌سازی تکراری اصلاح کنند.
مدل‌ها و الگوریتم‌های فعلی ممکن است در محیط‌های پیچیده با حرکات سریع، مقیاس‌های شیء متنوع و تغییرات عمق سه‌بعدی با مشکل مواجه شوند. یک راه حل، توسعه مدل‌های چند مقیاسی است که در وضوح‌های مختلف عمل می کنند. مورد دیگر ادغام اطلاعات عمق از دید استریو یا LiDAR است، برای مثال، برای بهبود تفسیر صحنه سه بعدی.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *