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

ساختار نرم افزار خودرو خودران:

به طور کلی، نرم افزار خودرو خودران از سه بخش اصلی تشکیل شده است: Perception, Planning, Control. همانطور که در شکل زیر نشان داده شده است، بخش Perception در ابتدا قرار گرفته که وظیفه فهم محیط پیرامونی را برعهده‌ دارد. سپس، بخش Planning بر اساس محیط اطراف و مقصد خودرو، بهترین مسیر را مشخص می‌کند. در نهایت، بخش Control، مسیر مشخص شده را تبدیل به دستورات حرکتی می‌کند. در ادامه، به بخش‌های Perception و Planning که شامل مباحث اصلی پردازشی هستند، خواهیم پرداخت.

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

بخش Perception

وظیفه اصلی این بخش، فهم محیط پیرامونی خودرو است . به بیان ساده، هدف، تشخیص مکان اشیای پیرامون خودرو خودران در فضای سه بعدی است. در واقع، علاوه بر تشخیص اشیا، باید فاصله آنها تا خودرو نیز تعیین شود. بخش Perception خود شامل سه قسمت می‌شود:

  •  تشخیص خطوط (Lane detection)
  • تشخیص فضای اشغال شده (Occupancy prediction)
  •  مکان‌یابی خودرو (Localization)

تشخیص خطوط (Lane detection) 

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

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

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

خطوط تشخیص داده شده جاده با نقاط سبز و قرمز مشخص شده‌اند.

 

تشخیص فضای اشغال شده (Occupancy prediction)

دومین بخش از فهم محیط پیرامون، تشخیص اشیا پیرامونی است. خودرو خودران باید بتواند حضور سایر خودروها، عابران پیاده، موانع و سایر اشیا را در محیط پیرامونی تشخیص بدهد. به بیان دیگر، خودرو باید تشخیص دهد چه فضایی در محیط پیرامونی اشغال شده و چه فضایی قابلیت رانندگی را دارد. این مساله به زیر بخش‌های متعددی در پردازش تصویر مربوط می‌شود که می‌توان به Detection  و Semantic segmentation به عنوان مهم‌ترین آنها در استخراج اطلاعات لازم برای تولید Occupancy اشاره کرد. در Detection، هدف تشخیص مکان اشیا و نوع آنها در محیط پیرامونی است. بدین ترتیب، برای هر شی ابعاد آن، مکان آن در مختصات x,y,z و کلاس آن شی (مثلا آدم، ماشین و ...) مشخص می‌شود. علی‌رغم قدمت مساله Detection، همچنان چالش‌های مختلف حل نشده‌ در برابر این روش‌ها وجود دارند. یکی از این چالش‌ها، مواجه شدن مدل با اشیای جدیدی است که در جاده می‌تواند قرار بگیرد. با توجه به داده محور (data driven) بودن متدهای موجود، عملکرد آنها در برابر اجسامی که در داده آموزشی (training data) وجود نداشته دچار مشکل است. به طور مثال اگر حیوانی مانند شتر یا خودرو متفاوتی مانند کالسکه که در داده آموزشی وجود نداشته‌اند (یا به تعداد کم موجود بوده‌اند) در مسیر خودرو خودران قرار بگیرد، تضمینی وجود ندارد که الگوریتم Detection بتواند آنها را تشخیص دهد. البته وجود سنسورهای متنوع مانند Radar امکان پوشش این نقاط ضعف را تا حدی فراهم  می‌کنند.

 خروجی مدل Detection، موقعیت سه بعدی اشیا در تصویر تشخیص داده شده است.


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


خروجی مدل SAM، همانطور که در شکل مشخص است، تصویر به اشیای مختلف تقسیم شده و هررنگ نشان دهنده یک شی است.

مکان یابی خودرو Localization

یکی از راه‌های بهبود عملکرد ماژول Perception خودرو خودران، استفاده از نقشه‌های HDmap است که اطلاعات دقیقی از خطوط جاده و محیط پیرامون در اختیار خودرو قرار می‌دهد. اما استفاده از آنها، نیاز به تعیین موقعیت فعلی خودرو نسبت به محیط پیرامونی دارد. علاوه بر این، در طول زمان حرکت خودرو، نرم افزار باید بتواند موقعیت خودرو را آپدیت کند و متناسب با میزان حرکت خودرو، موقعیت جدید را به نسبت محیط پیرامون پیرامون بدست بیاورد.  الگوریتم‌های Localization  به حل این چالش‌ها می‌پردازند. قابل ذکر است که مکان‌یابی با استفاده از سیگنال GPS همواره دقت بالایی ندارد و مخصوصا در محیط‌های شهری، استفاده از GPS قابل اعتماد نیست. روش اصلی در Localization، تطبیق محیط پیرامون خودرو با نقشه است تا بدین منظور مشابه‌ترین محل به آنچه در اطراف خودرو است مشخص شود. شکل زیر مثالی از این تطبیق را نشان می‌دهد. برای این منظور، Feature‌های اطلاعات ورودی استخراج شده و با اطلاعات نقشه تطبیق داده می‌شوند.

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

 در‌مورد Perception بیش‌تر بدانیم:

حوزه هوش مصنوعی به سرعت در حال تغییر و تحول است و روش‌های مورد استفاده هر روز بهبود می‌یابند. مدل‌های Transformer امروزه جایگزین شبکه های CNN شده‌اند و توانسته‌اند به عملکرد بهتری دست یابند. این عملکرد بهتر به دلیل inductive biasهای کمتر و به دلیل در دسترس بودن داده بیشتر به دست آمده است. در نتیجه، همه بخش‌های Perception  امروزه بر اساس ساختار Transformer شکل گرفته‌اند.

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

 یکی از حوزه‌های جدید در هوش مصنوعی، گسترش models Foundation است. این مدل‌ها در واقع مدل‌های بسیار بزرگی هستند که با استفاده از داده‌های بسیار زیاد آموزش داده شده‌اند. این مدل‌ها به طور ویژه توانایی پردازش داده‌های بسیار متنوع را دارند و محدودیت های معمول در بحث مواجهه مدل‌ها با شرایط جدید را ندارند. به طور مثال، مدل SAM [3] ادعا می‌کند که می‌تواند هر تصویری را Segment کند. به طور مشابه، مدل‌هایی برای Detection هم ارایه شده‌اند. به هر حال، پیشرفت های این حوزه امکان در دسترس قرار گرفتن مدل‌های با عملکرد خوب برای داده‌های متنوع را ممکن می‌کند و به توسعه خودرو خودران کمک خواهد کرد.


بیشتر بخوانید: خودروهای خودران، مروری بر مزایا، چالش‌ها و آینده این فناوری

 

تعیین مسیر حرکت (Planning)

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

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

بنابراین، عملکرد بخش Planning را به این ترتیب خلاصه می‌کنیم:‌ ابتدا مسیر حرکت اشیای متحرک در اطراف خودرو پیش‌بینی می‌شود، سپس محدودیت‌های خودرو خودران بر اساس مسیر حرکت این اشیا و همچنین ورودی های Perception (مانند خطوط جاده)  تعیین می‌شوند، در انتها بین مسیرهایی که محدودیت‌ها را برآورده می‌کنند، بهترین مسیر انتخاب می‌شود.

درمورد Planning بیش‌تر بدانید:

روش‌های مبتنی بر شبکه‌های عصبی به طور گسترده‌ای برای حل بهینه مساله Planning مورد استفاده قرار می‌گیرند. این روش‌ها به دو دسته کلی (RL(Reinforcement learning و (IL(Imitation learning  تقسیم می‌شوند. RL مبتنی بر یادگیری تدریجی و در تعامل با محیط است. به این ترتیب که مدل هربار که حرکتی را انتخاب می‌کند، پاداشی دریافت می‌کند. مثلا اگر از جاده خارج شود، پاداش منفی و در غیر این صورت پاداش مثبت دریافت می‌کند. به مرور زمان، مدل یاد‌ می‌گیرد که به گونه‌ای عمل کند که بیشترین پاداش را دریافت کند. در مقابل، در IL، مدل مستقیما تلاش می‌کند همان کاری را بکند که انسان انجام می‌دهد. برای این منظور مدل ساعت‌ها داده از رانندگی انسان را دریافت می‌کند و یاد می‌گیرد که به طور مشابه رانندگی کند. به طور خلاصه، مزایا و معایب هر یک از این دو روش برای مساله Planning بدین ترتیب می‌باشد: RL نیازمند Simulator است، نیاز به آموزش بسیار طولانی دارد و در نهایت، آنچه مدل یاد می‌گیرد الزاما مشابه سبک رانندگی انسان نیست و در نتیجه می‌تواند برای سرنشین خودرو ناخوشایند باشد. در مقابل، اگرچه IL بسیار ساده‌تر آموزش داده می‌شود و در نهایت شبیه به انسان رانندگی می‌کند، اما به داده‌های آموزشی بسیار حساس است و در صورت مشاهده داده جدید، عملکرد نامناسبی خواهد داشت. علاوه براین، به‌دلیل اینکه در IL مدل صرفا رفتار انسان را کپی می‌کند، امکان مجبور کردن آن به رعایت محدودیت‌های مورد نظر، مانند پرهیز از خروج از جاده، بسیار دشوار است.

LLM (مدل‌های بزرگ زبانی) مانند chatgpt توانایی خیره کننده‌ای در ارتباط با انسان و تحلیل مسائل از خود نشان داده‌اند. این مدل‌ها می‌توانند کاربردهای متعددی در حوزه خودرو خودران نیز داشته باشند. به طور مثال، آنها می توانند تصمیمات خودرو را به مسافران توضیح بدهند، و یا در پردازش اطلاعات و تعیین مسیر خودرو بجای ماژول Planning  عمل کنند.

یکی از راه حل‌های جدید در حوزه خودرو خودران، ساخت مدل‌هایی است که همه بخش‌های پردازشی را در یک مدل واحد انجام دهند. بدین ترتیب، بجای طراحی بخش های مختلف مانند lane detection, localization, prediction  همه آنها در یک مدل واحد جمع می‌شوند. برای این منظور، یک مدل بزرگ مبتنی بر Transformer طراحی می‌شود و به صورت end-to-end آموزش داده می‌شود. در این صورت، طراحی نرم‌افزار پردازشی بسیار ساده‌تر خواهد بود زیرا نیازی به طراحی تک‌تک بخش‌ها نیست.

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

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


نویسنده: محمدحسین بهاری 

https://paperswithcode.com/task/lane-detection

https://github.com/sk-aravind/3D-Bounding-Boxes-From-Monocular-Images

https://segment-anything.com

https://ieeexplore.ieee.org/document

https://openaccess.thecvf.com/content/ICCV2023/papers/Jin_Recursive_Video_Lane_Detection_ICCV_2023_paper.pdf

https://arxiv.org/pdf/2311.01043

https://opendrivelab.github.io/UniAD

https://ieeexplore.ieee.org/abstract/document/9473026