خودروهای خودران با شبکه های عصبی کانولوشن (CNN) - قسمت اول

این نوشته قسمت اول می باشد که در آن با خودروهای خودران سنسورهای آن و روش کار آن آشنا می شویم این مقدمات برای ادامه نیاز می باشد تا بتوانیم درک بهتری از روش کار و ... داشته باشیم.بشریت چندین دهه است که منتظر خودروهای خودران است.به لطف تکامل بسیار سریع فناوری، این ایده اخیراً از «ممکن» به «در دسترس» تبدیل شده است.یادگیری عمیق یکی از فناوری های اصلی است که امکان رانندگی خودران را فراهم می کند. یادگیری عمیق یک فناوری است که می تواند به حل تقریباً هر نوع مشکل علمی یا مهندسی کمک کند.در این مقاله،ما بر روی الگوریتم های یادگیری عمیق در اتومبیل های خودران تمرکز خواهیم کرد - شبکه های عصبی کانولوشنال (CNN). CNN الگوریتم اولیه ای است که این سیستم ها برای شناسایی و طبقه بندی قسمت های مختلف جاده و تصمیم گیری مناسب استفاده می کنند.در ادامه، خواهیم دید که چگونه Tesla و Waymo و Nvidia از الگوریتم‌های CNN برای سیستم های بدون راننده یا خودران خودروهای خود استفاده می‌کنند.ماشین های خودران چگونه کار می کنند؟اولین خودروی خودران در سال 1989 اختراع شد، این وسیله نقلیه زمینی خودکار در شبکه عصبی (ALVINN) بود. از شبکه‌های عصبی برای تشخیص خطوط، بخش‌بندی محیط، مسیریابی خود و رانندگی استفاده می‌کرد.این شبکه عصبی به خوبی کار می کرد، اما به دلیل قدرت پردازش کند و داده های ناکافی محدود بود.با کارت های گرافیکی با کارایی بالا امروزی، پردازنده‌ها و حجم عظیمی از داده، خودرانی قدرتمندتر از همیشه است. اگر خودروهای خودران فراگیر بشوند ، تراکم ترافیک را کاهش می دهد و ایمنی جاده ها را افزایش می دهد.خودروهای خودران سیستم های تصمیم گیری مستقلی هستند.آنها می توانند جریان داده های حسگرهای مختلف مانند دوربین ها، LiDAR، رادار ، GPS یا سنسورهای inertia را پردازش کنند. سپس این داده‌ها با استفاده از الگوریتم‌های یادگیری عمیق مدل‌سازی می‌شوند، که سپس تصمیمات مربوط به محیطی را که خودرو در آن قرار دارد، اتخاذ می‌کند.تصویر بالا modular perception-planning-action pipeline را نشان می دهد که برای تصمیم گیری های رانندگی استفاده می شود. اجزای کلیدی این روش سنسورهای مختلفی هستند که داده ها را از محیط دریافت می کنند.برای درک عملکرد خودروهای خودران، باید چهار بخش اصلی را بررسی کنیم:1 - ادراک (Perception) :یکی از مهم‌ترین ویژگی‌هایی که خودروهای خودران باید داشته باشند، ادراک است که به خودرو کمک می‌کند دنیای اطراف خود را ببیند و همچنین چیزهایی را که می‌بیند شناسایی و طبقه‌بندی کند. برای تصمیم گیری خوب، ماشین باید اشیا را فورا تشخیص دهد.بنابراین، خودرو باید چراغ‌های راهنمایی، عابران پیاده، علائم جاده‌ای، پیاده‌روها، نقاط پارکینگ، خطوط جاده و بسیاری موارد دیگر را ببیند و طبقه‌بندی کند.نه تنها این، بلکه باید فاصله دقیق بین خود و اجسام اطراف خود را نیز بداند.مسئله ی ادراک فراتر از دیدن و طبقه بندی است، ادراک سیستم را قادر می سازد تا مسافت را ارزیابی کند و تصمیم بگیرد که سرعت را کاهش دهد یا ترمز کند.برای دستیابی به چنین سطح بالایی از ادراک، یک خودروی خودران باید دارای سه حسگر باشد:یک - دوربین (Camera) :این دوربین بینایی را برای خودرو فراهم می کند و وظایف متعددی مانند طبقه بندی، تقسیم بندی و درک محل را امکان پذیر می کند. دوربین ها باید وضوح بالایی داشته باشند و محیط را به طور دقیق نشان دهند.برای اطمینان از اینکه خودرو اطلاعات بصری را از بصورت 365 درجه و از هر طرف دریافت می کند: جلو، عقب، چپ و راست، دوربین وجود دارد تا دید کاملی به محیط وجود داشته باشد.این دوربین‌ها دید وسیع‌تری تا 200 متر و همچنین دید با برد کوتاه برای درک متمرکزتر ارائه می‌دهند.برای برخی از کارها مانند پارک کردن ، دوربین یک نمای پانوراما را نیز برای تصمیم گیری بهتر ارائه می دهد.با وجود اینکه دوربین‌ها تمام وظایف مربوط به درک را انجام می‌دهند، در شرایط شدید مانند مه، باران شدید و به‌ویژه در شب، به سختی از آن استفاده می‌شود.در شرایط دشوار ، چیزی که دوربین‌ها ثبت می‌کنند نویز و ناهماهنگی است که می‌تواند خطرناک باشد.(موجب تصمیمات اشتباه برای خودروی خودران شود و تهدید جانی به وجود بیاورد.)برای غلبه بر این محدودیت‌ها، به سنسورهایی نیاز داریم که بتوانند بدون نور کار کنند و فاصله را نیز اندازه‌گیری کنند.دو - لیدار (LiDAR) :لیدار LiDAR مخفف Light Detection And Ranging است، این روشی است برای اندازه‌گیری فاصله اجسام با شلیک پرتو لیزر و سپس اندازه‌گیری مدت زمانی که طول می‌کشد تا توسط چیزی منعکس شود.یک دوربین فقط می تواند تصاویری از آنچه در اطراف خودش می گذرد به ماشین ارائه دهد. وقتی با حسگر LiDAR ترکیب می‌شود، در تصاویر عمق پیدا می‌کند - و درک سه بعدی از آنچه در اطراف ماشین می‌گذرد را به دست می‌آورد.بنابراین، LiDAR اطلاعات فضای اطراف را درک می کند. و هنگامی که این داده ها به شبکه های عصبی عمیق (deep neural networks) وارد می شوند، خودرو می تواند تحرکات و واکنش های اشیاء یا وسایل نقلیه نزدیک به خود را پیش بینی کند.این نوع فناوری در یک سناریو رانندگی پیچیده بسیار مفید است، مانند یک تقاطع چند خروجی، جایی که ماشین می تواند تمام ماشین های دیگر را تجزیه و تحلیل کند و مناسب ترین و مطمئن ترین تصمیم را بگیرد.ایلان ماسک : "هر کسی که به LiDAR ها تکیه کند محکوم به فناست...".(سال 2019) چرا؟ خب، LiDAR ها محدودیت هایی دارند که می تواند فاجعه بار باشد. به عنوان مثال، حسگر LiDAR از لیزر یا نور برای اندازه گیری فاصله جسم نزدیک استفاده می کند. در شب و در محیط‌های تاریک کار می‌کند، اما همچنان ممکن است زمان باران یا مه بدلیل وجود نویز از کار بیفتد.به همین دلیل است که ما به سنسور رادار نیز نیاز داریم.سه - رادارها (RADARs) :رادار (RADARs) یک دستگاه رادیویی است که برای مشاهده، تشخیص یا آشکارسازی اجسام و نیز اندازه‌گیری برخی ویژگی‌های آن‌ها به کمک موج‌های رادیویی به کار می‌رود و یک جزء کلیدی در بسیاری از کاربردهای نظامی و ... می باشد.این فناوری اولین بار توسط ارتش برای شناسایی اشیاء استفاده شد. با استفاده از سیگنال های امواج رادیویی فاصله را محاسبه می کند. امروزه در بسیاری از وسایل نقلیه استفاده می شود و به یکی از اجزای اصلی خودروهای خودران تبدیل شده است.رادارها بسیار موثر هستند زیرا به جای لیزر از امواج رادیویی استفاده می کنند، بنابراین در هر شرایطی کار می کنند.مقایسه ی لیدار و راداردرک این نکته مهم است که رادارها حسگرهای نویزی هستند. این به این معنی است که حتی اگر دوربین هیچ مانعی را نبیند، رادار برخی از موانع را شناسایی خواهد کرد.تصویر بالا ماشین خودران (به رنگ سبز) را نشان می دهد که از LiDAR برای تشخیص اشیاء اطراف و محاسبه فاصله و شکل جسم استفاده می کند. همان صحنه را مقایسه کنید با تصویر پایین که با سنسور RADAR زیر گرفته شده است، می توانید نویزهای غیر ضروری زیادی را مشاهده کنید.برای تصمیم گیری و پیش بینی خوب، داده های رادار باید تمیز شوند. ما باید سیگنال های ضعیف را از سیگنال های قوی جدا کنیم. یعنی آستانه ای را تعیین می کنیم(thresholding). ما همچنین از تبدیل فوریه سریع Fast Fourier Transforms (FFT) برای فیلتر و تفسیر سیگنال استفاده می کنیم.اگر به موارد زیر نگاه کنید، متوجه خواهید شد که سیگنال های RADAR و LiDAR داده های مبتنی بر نقطه (point-based) هستند. این داده ها باید خوشه بندی شوند تا بتوان آن ها را به خوبی تفسیر کرد. برای دستیابی به این کار از الگوریتم های خوشه بندی (Clustering) مانند خوشه بندی اقلیدسی (Euclidean Clustering) یا خوشه بندی K means استفاده می شود.2 -محلی سازی (Localization) :الگوریتم‌های localization در خودروهای خودران موقعیت و جهت وسیله نقلیه را در حین حرکت محاسبه می‌کنند - علمی که به عنوان کیلومتر شماری بصری (VO) Visual Odometry شناخته می‌شود.کیلومتر شماری بصری (VO) با تطبیق نکات کلیدی در فریم های ویدیویی متوالی کار می کند. هر فریم، از نقاط کلیدی را به عنوان ورودی الگوریتم نقشه برداری استفاده می شود. الگوریتم نقشه‌برداری، مانند مکان‌یابی و نقشه‌برداری همزمان (SLAM)، موقعیت و جهت هر شیء نزدیک را با توجه به قاب قبلی محاسبه می‌کند و به طبقه‌بندی جاده‌ها، عابران پیاده و سایر اشیاء اطراف کمک می‌کند.یادگیری عمیق معمولاً برای بهبود عملکرد VO و طبقه بندی اشیاء مختلف استفاده می شود. شبکه های عصبی مانند PoseNet و ++VLocNet برخی از چارچوب هایی هستند که از داده های نقطه ای برای تخمین موقعیت و جهت گیری سه بعدی استفاده می کنند. این موقعیت ها و جهت گیری های سه بعدی تخمین زده شده را می توان برای استخراج درک و معنای صحنه، همانطور که در تصویر زیر مشاهده می کنید، استفاده کرد.3 - پیش بینی (Prediction) :درک رانندگان انسانی یک کار بسیار پیچیده است. این کار شامل احساسات به جای منطق است، بسیار نامشخص می شود که اقدام بعدی رانندگان یا عابران پیاده در نزدیکی چیست، بنابراین سیستمی که بتواند اقدامات سایر کاربران جاده را پیش بینی کند می تواند برای ایمنی جاده بسیار مهم باشد.این خودرو دارای دید 360 درجه ای از محیط خود است که آن را قادر می سازد تمام اطلاعات را درک و ضبط کند و آنها را پردازش کند. پس از وارد شدن به الگوریتم یادگیری عمیق، می تواند تمام حرکات ممکنی را که سایر کاربران جاده ممکن است انجام دهند را انجام دهد. این کار مانند یک بازی است که در آن بازیکن تعداد حرکات محدودی دارد و سعی می کند بهترین حرکت را برای شکست دادن حریف پیدا کند.حسگرهای موجود در خودروهای خودران آنها را قادر می‌سازد تا کارهایی مانند طبقه‌بندی تصویر (image classification)، تشخیص اشیا (object detection)، بخش‌بندی (segmentation) و محلی‌سازی (localization) را انجام دهند. با اشکال مختلف نمایش داده ها، خودرو می تواند اشیاء اطراف خود را پیش بینی کند.یک الگوریتم یادگیری عمیق می تواند از اطلاعاتی مانند تصاویر و LiDARها و RADARها در طول آموزش مدل سازی کند. همین مدل در حین استنتاج، می تواند به خودرو کمک کند تا برای تمام حرکات ممکن که شامل ترمز، توقف، کاهش سرعت، تغییر خط و غیره است، آماده شود.نقش یادگیری عمیق تفسیر وظایف پیچیده بینایی، بومی سازی خود در محیط، افزایش ادراک در خودروهای خودران است. این امر ایمنی جاده و رفت و آمد آسان را نیز تضمین می کند.اما بخش دشوار این است که از بین تعداد محدودی از اقدامات، اقدام صحیح را انتخاب کنید.4 - تصمیم گیری (Decision-making) :تصمیم گیری در خودروهای خودران حیاتی است. آنها به سیستمی نیاز دارند که در یک محیط نامطمئن, پویا و دقیق باشد. باید در نظر گرفت که همه آنچه از سنسور ها دریافت میشود درست نیستند و از سمت دیگر هم انسان‌ها می‌توانند در حین رانندگی انتخاب‌های غیرقابل پیش‌بینی داشته باشند. این چیزها را نمی توان مستقیماً اندازه گیری کرد. حتی اگر بتوانیم آنها را اندازه گیری کنیم، نمی توانیم آنها را با دقت خوبی پیش بینی کنیم.یک خودروی خودران در حال حرکت به سمت یک تقاطعتصویر بالا یک خودروی خودران را نشان می دهد که به سمت یک تقاطع حرکت می کند. خودروی دیگری به رنگ آبی نیز به سمت چهارراه در حال حرکت است. در این سناریو، خودروی خودران باید پیش‌بینی کند که آیا خودروی دیگر, مستقیم، چپ یا راست می‌رود. در هر مورد، خودرو باید تصمیم بگیرد که چه مانوری را برای جلوگیری از برخورد انجام دهد.برای تصمیم گیری، خودرو باید اطلاعات کافی داشته باشد تا بتواند مجموعه اقدامات لازم را انتخاب کند. ما آموختیم که حسگرها به خودرو کمک می کنند تا اطلاعات را جمع آوری کند و الگوریتم های یادگیری عمیق(Deep learning) را می توان برای محلی سازی(localization) و پیش بینی(prediction) استفاده کرد.به طور خلاصه، محلی سازی(localization) خودرو را قادر می سازد موقعیت اولیه خود را بداند و پیش بینی(prediction) تعداد n اقدام یا حرکت ممکن را بر اساس محیط ایجاد می کند. سوالی که باقی می ماند: از بین بسیاری از اقدامات پیش بینی شده کدام گزینه بهترین است؟وقتی نوبت به تصمیم گیری می رسد، از یادگیری تقویتی عمیق (DRL)deep reinforcement learning استفاده می کنیم. به طور خاص، یک الگوریتم تصمیم‌گیری به نام فرآیند تصمیم‌گیری مارکوف (MDP)Markov decision process در قلب DRL قرار دارد (در بخش بعدی که در مورد یادگیری تقویتی صحبت می‌کنیم درباره MDP بیشتر خواهیم آموخت).معمولاً از MDP برای پیش‌بینی رفتار آینده کاربران جاده استفاده می‌شود. باید در نظر داشته باشیم که در صورت افزایش تعداد اجسام، به‌ویژه اجسام متحرک، این سناریو می‌تواند بسیار پیچیده شود. این موضوع در نهایت تعداد حرکات ممکن را برای خود خودروی خودران را افزایش می دهد.به منظور مقابله با مشکل یافتن بهترین حرکت برای خود، مدل یادگیری عمیق با بهینه سازی(optimization) Bayesian بهینه شده است. همچنین شرایطی وجود دارد که در آن چارچوبی ، متشکل از هر دو hidden Markov model و بهینه‌سازی Bayesian ، برای تصمیم‌گیری استفاده می‌شود.به طور کلی تصمیم گیری در خودروهای خودران یک فرآیند سلسله مراتبی است.در این قسمت ما با خودروهای خودران و سنسورها و روش کار آن آشنا شدیم در قسمت بعدی به سراغ شبکه های عصبی کانولوشن (CNN) خواهیم رفت. امیدوارم این مطلب برای شما آموزنده بوده باشد و از آن حمایت کنید.