کاربردهای بینایی کامپیوتری در خودروهای خودران

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

در مقاله قبلی به نام “مقدمه ای بر بینایی کامپیوتری برای خودروهای خودران“، در مورد نحوه عملکرد بینایی کامپیوتری برای کاربردهای اساسی صحبت کردیم. در این مقاله تکنیک های “سنتی” بینایی کامپیوتر را معرفی می کنیم.

قصد داریم به ۳ مشکل اصلی ادراک و حسگری مسائل مربوط به بینایی کامپیوتری اشاره کنیم.

  • تشخیص خطوط
  • تشخیص موانع و علائم جاده
  • محاسبه زاویه فرمان

برای این مشکلات، می توان به ترتیب از بینایی کامپیوتری (Computer Vision)، یادگیری ماشین (Machine Learning) و یادگیری عمیق (Deep Learning) استفاده کرد.

کاربرد های بینایی کامپیوتری
تکنیک های اساسی بینایی کامپیوتر

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

تشخیص اشیا در خودروهای خودران

تشخیص اشیاء دو بعدی

تشخیص خودرو دو بعدی

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

امروزه، از یادگیری عمیق برای شناسایی اشیا استفاده می شود: الگوریتم هایی مانند YOLO، SSD، یا RetinaNet رویکردهای پیشرفته برای این کار هستند.

هنگام تشخیص موانع، نتیجه به طور کلی فراتر از خروجی تشخیص خودرو است. برای این کار به مختصات کادر محدودکننده (x1, y1, x2, y2) نیاز داریم که از قبل توسط پنجره کشویی بدست می آیند. ما به امتیاز اطمینان (برای رسیدن به آستانه مقادیر با اطمینان کم) و کلاس (ماشین، عابر پیاده، …) نیاز داریم که الگوریتم SVM به دست آورده است.

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

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

معماری الگوریتم YOLOv4
YOLOv4

در این الگوریتم، ما یک تصویر ورودی ساده را از طریق چندین لایه نورون که یک کادر محدودکننده را خروجی می‌دهند، عبور می دهیم. الگوریتم هایی مانند YOLO امروزه به عنوان پیشرفته ترین الگوریتم ها در نظر گرفته می شوند. آن ها می توانند با فریم بر ثانیه بسیار بالا (بیش از ۵۰ FPS ) عمل کنند و تقریباً هیچ مانعی را از دست نمی دهند.

تشخیص اشیاء سه بعدی

مشکل اصلی تشخیص اشیاء دوبعدی این است که در دو بعد انجام می گیرد، در حالیکه دنیای واقعی به صورت سه بعدی کار می کند و ما به جای کار با مختصات پیکسل، می خواهیم در مختصات XYZ کار کنیم.

برای آن، می توان از استریو ویژن (Stereo Vision) یا تشخیص اشیا سه بعدی تک چشمی (Monocular) استفاده کرد. که اولین موضوع مورد بحث ماست.

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

کادر محدود کننده دو بعدی و سه بعدی
کادر های محدودکننده دو بعدی و سه بعدی (منبع)

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

معماری شبکه عصبی برای تخمین سه بعدی
معماری شبکه عصبی برای تخمین سه بعدی

همانطور که ملاحظه می کنید، ما می خواهیم نه تنها ابعاد کادر سه بعدی، بلکه موقعیت و میزان اطمینان را نیز تخمین بزنیم.

در این رویکرد، یادگیری عمیق همچنان برای یادگیری ویژگی ها (ابعاد، زاویه، اطمینان) مورد استفاده قرار می گیرد. سپس از هندسه برای تبدیل اطلاعات به دنیای سه بعدی استفاده می شود. وجود کادرهای محدودکننده سه بعدی می‌تواند امکان تطبیق سه بعدی با حسگرهای سه بعدی مانند LiDAR را فراهم کند. این کار، امکان درک بهتر موقعیت یک وسیله نقلیه و سپس پیش بینی رفتار آن را فراهم می کند. کادرهای محدودکننده دوبعدی اغلب زمانی ارائه می شوند که مردم فناوری خودروهای خودران را فرا بگیرند. با این حال، کادرهای محدودکننده سه بعدی بسیار با این مشکل سازگار هستند.

استریو ویژن

تشخیص عمق و فاصله با استریو ویژن

در صورتی که تشخیص اشیاء سه بعدی تک چشمی مورد اطمینان نباشد، تشخیص موانع با استفاده از ۲ دوربین نیز امکان پذیر است. این نوع تشخیص، استریو ویژن نامیده می شود.

محاسبه عمق با استریو ویژن

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

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

تشخیص خطوط

برای تشخیص خطوط جاده، یادگیری عمیق را می توان دقیقاً به همان روش قبل استفاده کرد. در اینجا هدف، تولید ضرایب معادله خط خطوط جاده است. خطوط را می توان با معادلات ضرایب اول، دوم یا سوم تقریب زد. معادله مرتبه اول ساده بصورت ax+b (یک خط مستقیم) خواهد بود در حالی که معادله های با ابعاد بالاتر منحنی های مختلف را امکان پذیر می کنند.

تشخیص خطوط در یک بعد و دو بعد
خطوط یک بعدی و دو بعدی

در CNN، لایه های کانولوشنی ویژگی ها را یاد می گیرند، در حالی که آخرین لایه ها ضرایب خطوط (a، b وc) را یاد می گیرند. این ممکن است ساده به نظر برسد: چند لایه کانولوشنی را تنظیم کنید، چند لایه متراکم را تنظیم کنید، و معماری خروجی را طوری تنظیم کنید که فقط ۳ نورون خروجی برای ضرایب a، b و c داشته باشد.

مجموعه داده ها همیشه ضرایب خط خطوط جاده را ذکر نمی‌کنند، و همچنین ممکن است بخواهیم نوع خط (مقطع، ممتد و…) و همچنین اینکه آیا این خط متعلق به خط خودروی دیگر است یا به خط مجاور تعلق دارد را تشخیص دهیم. چندین ویژگی وجود دارد که ممکن است بخواهیم آن ها را داشته باشیم و آموزش تنها یک شبکه عصبی ممکن است واقعاً سخت باشد و تعمیم آن نیز سخت تر باشد.

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

کلاسه بندی بر اساس رنگ
هر رنگ بیانگر یک کلاس است

در این رویکرد، هر خط مربوط به یک کلاس (left، right و…) است و هدف شبکه عصبی تولید تصویری شامل این رنگ ها است.

مثالی از تصویر خروجی
نمونه تصویر خروجی

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

معماری شبکه U-Net برای تشخیص خطوط
معماری U-Net برای تشخیص خطوط جاده

اگر خروجی یک تصویر سیاه ساده شامل رنگ خطوط باشد، استفاده از یادگیری ماشین و رگرسیون خطی (یا چندگانه) برای یافتن خطوط روی همان نقاط رنگی بسیار ساده تر است. این رویکرد ها عموماً از روش های سنتی بهتر عمل می کنند و می توانند ۱۰ برابر سریع تر باشند. نتایج تست های انجام شده، برای رویکرد بینایی کامپیوتری ، ۵ فریم بر ثانیه و برای رویکرد یادگیری عمیق ، حدود ۵۰ FPS بوده است.

ردیابی اشیا

در مقاله Computer Vision for Tracking تکنیکی برای ردیابی موانع در طول زمان با استفاده از دوربین، یادگیری عمیق و الگوریتم های هوش مصنوعی مانند فیلترهای Kalman و الگوریتم Hungarian ارائه شده است. در اینجا نتیجه دو تصویر آورده شده است:

تشخیص خودرو ها با بینایی کامپیوتری
ردیابی در طول زمان با استفاده از بینایی کامپیوتری

در اینجا، رنگ کادرهای محدودکننده، مانند رویکرد کلاسیک YOLO، از فریم ۱ به فریم ۲ تغییر نمی کند. خودروی سمت راست، به دلیل ارتباط و همبستگی، دارای یک کادر سیاه رنگ در فریم ۱ و در فریم ۲ است. همچنین اشیاء هم رنگ ، کادر های رنگی یکسانی ندارند.

یادگیری این نتیجه برای شبکه های عصبی بسیار دشوار است. به همین دلیل است که از فیلتر بیزین و الگوریتم وابستگی (association algorithm) استفاده می شود. در اینجا می توانید درک بهتری داشته باشید.

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

استفاده از زمان به این شکل می تواند امکان سایر کاربرد ها مانند ردیابی و پیش بینی رفتار را فراهم کند.

تشخیص فضای آزاد

تشخیص فضای آزاد خودرو ها

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

معماری شبکه SegNet
SegNet

این یک معماری رمزگذار-رمزگشا (Encoder-Decoder) است. رمزگذار برای کانولوشن ها و ویژگی های یادگیری ، و رمزگشا برای بازسازی نقشه ویژگی است.

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

نتیجه

ما راه های متعددی را برای استفاده از بینایی کامپیوتری و یادگیری عمیق در خودروهای خودران مورد بحث قرار داده ایم. در بخش تنها یک هدف وجود دارد: ادراک و حسگری.

به نظر می رسد ما همچنین می توانیم از یادگیری عمیق برای موقعیت یابی، با الگوریتم های SLAM استفاده کنیم. چیزهای دیگری نیز وجود دارد که به آن ها اشاره نکردیم، مانند Sensor Fusion.

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

در پایان، اگر می خواهیم در خودرو های خودران از دوربین استفاده کنیم، پس یادگیری عمیق راه حلی ایده آل آن است.

بیشتر بخوانید :

منبع Think Autonomous

درباره‌ی امیر اقتدائی

همچنین ببینید

تبدیل متن به تصویر با Stable Diffusion

تبدیل متن به تصویر با ابزار Stable Diffusion

در دنیای مدل های هوش مصنوعی برای تبدیل متن به تصویر، Dall-E2 از OpenAI بهترین …

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

نشانی ایمیل شما منتشر نخواهد شد.