الکتروهایو

هوش مصنوعی / الکترونیک / برنامه‌نویسی

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

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

مفهوم Optical Flow یا شار نوری چیست؟

مفهوم Optical Flow یا شار نوری چیست؟ - سایت الکتروهایو
در این مقاله می‌خوانید:

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

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

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

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

  • x و Iy گرادیان‌های فضایی شدت پیکسل را به ترتیب در جهت‌های x و y منعکس می‌کنند.
  • lt گرادیان زمانی است
  • vx و vy به ترتیب سرعت جریان در جهت x و y هستند.

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

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

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

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

  • روش Oprical Flow لوکاس-کاناد: این روش به استفاده از کیس‌هایی با مجموعه ویژگی‌های پراکنده کمک می‌کند. این متد با این فرض عمل می‌کند که جریان به صورت محلی صاف است و از یک تقریب سری تیلور برای گرادیان‌های تصویر استفاده می‌کند. بنابراین می‌توانید معادله شار نوری را حل کنید، که معمولاً شامل دو متغیر ناشناخته برای هر نقطه در مجموعه ویژگی است. این روش برای ردیابی گوشه‌ها و بافت‌های کاملاً مشخص اغلب کارآمد است، همانطور که توسط تشخیص گوشه Shi-Tomasi یا آشکارساز گوشه هریس شناسایی می‌شود.
  • الگوریتم هورن-شانک: این الگوریتم یک تکنیک شار نوری متراکم است. با فرض صاف بودن Optical Flow در کل تصویر، رویکردی جهانی به خود در نظر می‌گیرد. این روش یک تابع خطای کلی را به حداقل می‌رساند و می‌تواند جریان را برای هر پیکسل استنتاج کند. این الگوریتم ساختارهای دقیق‌تری از حرکت را به قیمت پیچیدگی محاسباتی بالاتر ارائه می‌دهد.

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

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

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

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

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

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

  • خودرو: شار نوری به عنوان یک فناوری پایه‌ای برای سیستم‌های پیشرفته کمک راننده (ADAS) عمل می‌کند. برای مثال، Autopilot تسلا از این الگوریتم‌ها در اجتماع با حسگرها و دوربین‌های خود برای شناسایی و ردیابی اشیا استفاده می‌کند. همچنین به تخمین سرعت اجسام متحرک نسبت به ماشین کمک می‌کند. این قابلیت‌ها برای جلوگیری از برخورد و ردیابی خط بسیار مهم هستند.
  • نظارت و امنیت: شار نوری با تجزیه و تحلیل جریان افراد به نظارت بر جمعیت کمک می‌کند تا به تشخیص الگوها یا ناهنجاری‌ها کمک کند. برای مثال، وقتی به کاربردهای رایانه در فرودگاه‌ها یا مراکز خرید نگاه می‌کنید، با استفاده از آن می‌توان حرکات غیرمعمول را علامت‌گذاری کند و به بخش امنیتی هشدار دهد. این موضوع می‌تواند مفهومی ساده (اما دیدن آن سخت) باشد مانند حرکت فردی در مقابل جمعیت. در رویدادهایی مانند جام جهانی فوتبال اغلب از این تکنولوژی برای کمک به نظارت بر پویایی جمعیت برای اهداف ایمنی استفاده می‌کنند.
  • تجزیه و تحلیل ورزشی: با تجزیه و تحلیل جریان بازیکنان در سراسر زمین، تیم‌ها می‌توانند تمرینات و استراتژی‌ها را برای بهبود عملکرد ورزشی بهینه کنند. Catapult Sports، پیشرو در تجزیه و تحلیل ورزشکاران، از Optical Flow برای ردیابی حرکات بازیکن استفاده می‌کند. این امر به مربیان داده‌هایی را برای افزایش عملکرد و کاهش خطرات آسیب ارائه می‌دهد.
نمایش شار نوری در حرکات ورزشی.
  • رباتیک: شرکت‌های فناوری پهپاد، مانند Da-Jiang Innovations (DJI)، از حسگرهای بصری برای تثبیت پرواز و اجتناب از موانع استفاده می‌کنند. همچنین الگوهای سطح را تجزیه و تحلیل می‌کند و به هواپیماهای بدون سرنشین کمک می‌کند تا موقعیت خود را با محاسبه حرکت خود نسبت به زمین حفظ کنند. این مفهوم به اطمینان از ناوبری ایمن، حتی بدون سیستم‌های GPS کمک می‌کند.
  • تولید فیلم و ویدئو: فیلمسازان از Optical Flow برای ایجاد جلوه‌های بصری و در ویرایش پس از تولید استفاده می‌کنند. تیم جلوه‌های بصری فیلم «آواتار» از این تکنیک‌ها برای ردیابی حرکت و بازسازی صحنه استفاده کردند. این امکان ادغام یکپارچه تصاویر تولید شده توسط رایانه (CGI) با فیلم‌های زنده را فراهم می‌کند. این مفهوم می‌تواند بازآفرینی صحنه‌های پویا پیچیده را برای ارائه تصاویر واقعی و همه جانبه تسهیل کند.

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

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

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

  • تنظیمات محیطی: OpenCV را با استفاده از یک مدیر پکیج مانند pip برای پایتون با دستور زیر نصب کنید.
pip install opencv-python
  • فرم‌ها را بخوان: با استفاده از OpenCV از فریم‌های ویدیویی عکس بگیرید
VideoCapture
  • پیش پردازش فریم‌ها: برای پردازش، فریم‌ها را به مقیاس خاکستری تبدیل کنید، زیرا جریان نوری به تصاویر تک کاناله نیاز دارد.
cvtColor
  • انتخاب ویژگی: از goodFeaturesToTrack برای انتخاب نقاط برای ردیابی یا عبور مجموعه‌ای از نقاط از پیش تعریف شده استفاده کنید.
goodFeaturesToTrack
  • شار نوری Lucas-Kanade: برای تخمین شار نوری بین فریم‌ها، calcOpticalFlowPyrLK را فراخوانی کنید.
calcOpticalFlowPyrLK
  • Visualize Flow: بردارهای جریان را روی تصاویر بکشید تا جهت و بزرگی جریان را تأیید کنید.
  • تکرار: این فرآیند را برای جفت فریم‌های بعدی تکرار کنید تا حرکت را در طول زمان دنبال کنید.

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

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

  • انتخاب سنسور: یک حسگر شار نوری سازگار با پلتفرم سخت افزاری خود را انتخاب کنید، مانند PMW3901 برای رزبری پای.
  • قابلیت اتصال: سنسور را به پین‌​​های GPIO پلتفرم سخت افزاری خود وصل کنید یا در صورت لزوم از ماژول رابط استفاده کنید.
  • نصب درایور: درایورها و کتابخانه‌های لازم را برای ارتباط با سنسور نصب کنید.
  • اکتساب داده: کدی بنویسید تا داده‌های جابجایی را از حسگر بخواند، که نشان دهنده Optical Flow است.
  • یکپارچه‌سازی برنامه: داده‌های حسگر را به منطق برنامه خود وارد کنید تا از شار نوری برای کارهایی مانند ناوبری یا اجتناب از موانع استفاده کنید.

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

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

  • کیفیت ویژگی‌ها: اطمینان حاصل کنید که نقاط انتخاب شده به خوبی توزیع شده و در طول زمان قابل ردیابی هستند.
  • تنظیم پارامتر: پارامترهای تابع شار نوری را برای تعادل بین سرعت و دقت تنظیم کنید.
  • سطوح هرم: از هرم‌های تصویری برای ردیابی نقاط در مقیاس‌های مختلف برای محاسبه تغییرات در حرکت و مقیاس استفاده کنید.
  • بررسی خطا: بررسی‌های خطا را برای فیلتر کردن بردارهای جریان غیرقابل اطمینان اجرا کنید.

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

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

لوگو الکتروهایو

الکتروهایو در خدمت مخاطبان عزیز می‌باشد. ما در تیم الکتروهایو در تلاش برای تهیه مقالات و مطالب به روز هستیم. لطفا برای مطالب و مقالات بیشتر با ما همراه باشید.

مطالب مرتبط:

داده‌های اسمی Nominal Data - الکتروهایو

داده‌های اسمی Nominal Data چیست؟

داده‌های اسمی(Nominal Data) یکی از اساسی‌ترین انواع داده‌ها در تجزیه و تحلیل داده‌ها است. شناسایی و تفسیر آن در بسیاری از زمینه‌ها از جمله آمار، علوم کامپیوتر، روانشناسی و بازاریابی ضروری است. این مقاله ویژگی‌ها، کاربردها و تفاوت‌های داده‌های اسمی

ادامه مطلب »
حاشیه‌نویسی متن در هوش مصنوعی - سایت الکتروهایو

حاشیه‌نویسی متن در هوش مصنوعی

حاشیه‌نویسی داده به الگوریتم‌های یادگیری ماشین اجازه می‌دهد تا اطلاعات را درک و تفسیر کنند. حاشیه‌نویسی‌ها برچسب‌هایی هستند که داده‌ها را شناسایی و طبقه‌بندی می‌کنند یا قطعات مختلف اطلاعات را با یکدیگر مرتبط می‌کنند. الگوریتم‌های هوش مصنوعی از آنها به

ادامه مطلب »
هوش مصنوعی در باستان شناسی و کاربردهای آن - سایت الکتروهایو

هوش مصنوعی در باستان شناسی چه کاربردهای می‌تواند داشته باشد؟

مکان‌های باستان‌شناسی ممکن است ثابت باشند، اما فرهنگ‌هایی که آنها را تولید کرده‌اند، پویا و متنوع بودند. برخی از آنها کاملاً عشایری بودند و مرتباً موقعیت خود را تغییر می‌دادند. برخی از آنها فواصل بسیار زیادی را مهاجرت کردند، در

ادامه مطلب »
با الگوریتم تشخیص اشیاء FCOS آشنا شوید - سایت الکتروهایو

با الگوریتم تشخیص اشیاء FCOS آشنا شوید: تشخیص اشیاء تک مرحله‌ای کاملاً کانولوشنال

تشخیص اشیاء یک کار مهم در بینایی کامپیوتر است که با رسم کادرهای محدود کننده در اطراف اشیاء شناسایی شده، مکان یک شی را در یک تصویر شناسایی و مکان‌یابی می‌کند. اهمیت تشخیص اشیاء را نمی‌توان به اندازه کافی بیان

ادامه مطلب »
با سایت Kaggle آشنا شوید! دریچه‌ای رو به دنیای اجتماع متخصصان هوش مصنوعی - سایت الکتروهایو

با سایت Kaggle آشنا شوید! دریچه‌ای رو به دنیای اجتماع متخصصان هوش مصنوعی

یادگیری ماشین (Machine Learning) و علم داده (Data Science) موضوعاتی هستند که در تمامی بخش‌های فناوری اطلاعات در مورد آن بحث و گفتگو وجود دارد. امروزه همه چیز در حال خودکار شدن است، و برنامه‌های کاربردی نیز به سرعت در

ادامه مطلب »
داده‌های اسمی Nominal Data - الکتروهایو

داده‌های اسمی Nominal Data چیست؟

داده‌های اسمی(Nominal Data) یکی از اساسی‌ترین انواع داده‌ها در تجزیه و تحلیل داده‌ها است. شناسایی ...

حاشیه‌نویسی متن در هوش مصنوعی - سایت الکتروهایو

حاشیه‌نویسی متن در هوش مصنوعی

حاشیه‌نویسی داده به الگوریتم‌های یادگیری ماشین اجازه می‌دهد تا اطلاعات را درک و تفسیر کنند. ...

هوش مصنوعی در باستان شناسی و کاربردهای آن - سایت الکتروهایو

هوش مصنوعی در باستان شناسی چه کاربردهای می‌تواند داشته باشد؟

مکان‌های باستان‌شناسی ممکن است ثابت باشند، اما فرهنگ‌هایی که آنها را تولید کرده‌اند، پویا و ...

با الگوریتم تشخیص اشیاء FCOS آشنا شوید - سایت الکتروهایو

با الگوریتم تشخیص اشیاء FCOS آشنا شوید: تشخیص اشیاء تک مرحله‌ای کاملاً کانولوشنال

تشخیص اشیاء یک کار مهم در بینایی کامپیوتر است که با رسم کادرهای محدود کننده ...

تصویربرداری چند طیفی، دیدی جدید فراسوی نور مرئی - سایت الکتروهایو

تصویربرداری چند طیفی، دیدی جدید فراسوی نور مرئی

تصویربرداری چند طیفی تکنیکی است که نور را در طیف وسیعی از باندهای طیفی، فراتر ...