دانشکده فنی و حرفه ای میانه
پایاننامه دوره
کارشناسی
رشته
تکنولوژی نرم افزار
موضوع پروژه
شبیه سازی ماشین خود ران با هوش مصنوعی
نگارش
حسین محمودزاده
استاد راهنما
دکتر پریا جعفری
تابستان 1401
تشکر و قدردانی:
سپاس خداوند را که توفیق کسب درجات علمی را بر من عطا فرمود.
اینجا لازم می دانم از زحمات استاد گرانقدر سرکار خانوم دکتر پریا جعفری که در گرد آوری این پژوهش راهنما و مشاور من بوده اند صمیمانه قدر دانی نمایم
چکیده
اگر وسایل نقلیه خودران بتوانند طیف وسیعی را به راحتی پشتیبانی کنند، به جامعه کمک خواهند کرد
محیط های رانندگی، شرایط و وسایل نقلیه. دستیابی به این امر مستلزم کاهش آن است
پیچیدگی سیستم الگوریتمی، تسهیل جمع آوری داده های آموزشی و تایید عملیات با استفاده از آزمایشات دنیای واقعی کار ما به این مسائل توسط با استفاده از یک شبکه عصبی بازتابی که تصاویر را به فرمان و دریچه گاز ترجمه می کند دستورات این شبکه با استفاده از داده های شبیه سازی self-driving-car-sim آموزش داده شده است که ما آن را افزایش می دهیم تا تعداد ساعت های شبیه سازی را کاهش دهیم. ما سپس کار را با استفاده از سیستم ماشین RC از طریق آزمایش های متعدد تایید کنید. سیستم ما 98 دور از 100 دور یک مسیر با انواع جاده های متعدد و پیچ های دشوار را با موفقیت رانندگی کنید. همچنین در 90 درصد آزمایش ها از برخورد با وسیله نقلیه دیگر با موفقیت جلوگیری می کند.
کلمات کلیدی : شبکه های عصبی ، نورون ، Deep learning ، یادگیری ماشین ، Computer Vision
فهرست نوشتار
فصل 1: مقدمه 4
1-1- مقدمه 5
1-2- چالش ها 5
1-3- بررسی اجمالی راه حل 6
1-4- جمع آوری داده ها و آموزش 7
1-6- رئوس مطالب سایر فصل ها 9
فصل 2: بررسی پیشینه و ادبیات 10
2-1- مقدمه 11
2-2- مروری بر شبکه عصبی 11
2-3- کار های مرتبط 15
فصل 3: شبکه عصبی 20
3-1- مقدمه 21
3-2- معماری 21
3-3- معماری اولیه 23
3-4- شبکه پردازش فرمان 24
فصل 4: تست و ارزشیابی 38
4-1- مقدمه 39
4-2- ماشین کنترل از راه دور 39
4-3- راه اندازی آزمایش و روش 41
فصل 5: جمع بندی و پیشنهادها 56
5-1- نتیجه گیری 57
5-2- تحقیقات آینده 57
منابع 60
فصل 1:
مقدمه
مقدمه
وسایل نقلیه خودران چیزی بیش از یک لوکس ساده را ارائه می دهند ، تصادفات ناشی از رانندگان خسته، مست یا حواس پرت. با آزادسازی مسافران از نیاز به راننده بودن، وسایل نقلیه خودران بهره وری را تقویت می کند مسافران با اجازه دادن به مسافران در حین سفر کار کنند. به عنوان وسایل نقلیه خودران در همه جا حاضر می شوند، آنها همچنین با بهبود جریان ترافیک، زمان سفر را کاهش می دهند. راهبندان ناشی از تصادفات، "گردن لاستیکی" و ازدحام از بین خواهد رفت با توانایی وسایل نقلیه خودران برای انتقال اطلاعات در مورد شرایط جاده و الگوهای ترافیکی به یکدیگر با بازگرداندن زمانی که در حال حاضر صرف رانندگی کرده ایم و اطمینان از ایمنی ما، خودروهای خودران ارزش قابل توجهی برای بشریت خواهند داشت. با این حال، قبل از اعتماد به زندگی خود به خودروهای خودران، باید اطمینان حاصل کنیم که آنها هستند قادر به مقابله با چالش های پیچیده رانندگی در دنیای واقعی است.
چالش ها
انسان ها به دلیل شهود قدرتمند ما در رانندگی موثر هستند. انسان مغز قادر است مقادیر زیادی داده را جذب کند، آنچه مهم است را فیلتر کرده و از آن استفاده کند اطلاعات برای تصمیم گیری رانندگی به طور سنتی یک کار بسیار چالش برانگیز بوده است برای رایانه ها به دلیل طیف گسترده ای از سناریوهای ممکن و فقدان شهود. انسان ها به راحتی قادر به شناسایی موانع، خط کشی و سایر وسایل نقلیه هستند، این یک کار بسیار چالش برانگیز برای کامپیوتر است. چالش تقلید از انسان ادراک را می توان با الگوریتم های یادگیری ماشین حل کرد. اگرچه یادگیری machine learning رویکرد امیدوارکننده ای را برای رانندگی خودران نشان می دهند مجموعه ای از چالش های خود را یکی از این چالش ها میزان داده های مورد نیاز است برای آموزش آنها حجم انبوه داده های مورد نیاز برای ایجاد یک کنترل کننده خودرو موثر ارائه می شود یک چالش مهندسی قابل توجه برای رانندگی در یک سناریوی خاص، یک کنترل کننده خودروی خودمختار باید داده های جمع آوری شده توسط انسان را داشته باشد که نشان دهنده رفتار ضروری آن سناریو باشد. به همین دلیل رانندگی همیشه یک انسان بوده است
وظیفه تحت سلطه انسان ها می توانند با نور، آب و هوا و ترافیک متفاوت سازگار شوند شرایط فوق العاده خوب انطباق با طیف گسترده ای از شرایط که می تواند مشاهده شدن در جاده برای کامپیوترها یک کار چالش برانگیز است و بهترین کار است توسط الگوریتمی مورد خطاب قرار می گیرد که می تواند به همان روشی که انسان ها یاد بگیرد و تعمیم دهد انجام دادن. وسایل نقلیه خودران با مجموعه ای از یادگیری ماشین و غیره فعال می شوند الگوریتم ها این الگوریتم ها به شدت بر داده های جمع آوری شده توسط رانندگان انسانی و نیاز به یک رویکرد لایه ای برای تبدیل داده ها به کنترل های خودرو. این داده ها اغلب شامل جریان های ویدئویی از چندین حسگر روی برد از جمله دوربین ها، لیدار، رادار و مادون قرمز این اطلاعات می تواند برای تنظیم یا آموزش الگوریتم ها مورد استفاده قرار گیرد، که اساساً به عنوان تجربه ای عمل می کند که می توان از آن آموخت. تغییرات محیطی مانند
انواع جاده های جدید یا شرایط آب و هوایی نیازمند جمع آوری صدها ساعت داده است، پردازش و برچسب گذاری این داده ها برای آموزش الگوریتم ها و آموزش مجدد سیستم. تغییرات سیستم مانند حسگرهای جدید نیاز به تغییراتی در کنترل الگوریتم ها دارد و لایه های میانی که خروجی های الگوریتمی سطح بالا را به سطح پایین ترجمه می کنند
بررسی اجمالی راه حل
کار ما به چالش های رانندگی خودران از طریق آموزش می پردازد بر روی داده های شبیه سازی واقعی و ارائه یک رویکرد یادگیری پایان به پایان. در شبکه عصبی که ما ارائه می کنیم بازتابی است، به این معنی که حسگر خام را می پذیرد داده ها به عنوان ورودی و به طور مستقیم کنترل های خودرو را به عنوان خروجی تولید می کند. شبکه های عصبی نمایش محاسباتی مغز هستند و قادر به یادگیری در موارد مشابه هستند روش. ما از داده های شبیه سازی واقعی خود برای آموزش کارکرد شبکه عصبی خود استفاده کردیم یک ماشین. ما عملکرد رویکرد خود را از طریق آزمایشات دنیای واقعی تضمین می کنیم روی سیستم تست ماشین RC تا جایی که ما می دانیم، این ترکیب شبیه سازی شده است
آموزش، یک شبکه عصبی بازتابی، و راستی آزمایی دنیای واقعی قبلاً انجام نشده است تلاش کرده و یک رویکرد جدید برای بهبود وسایل نقلیه خودران ارائه می دهد. شبکه عصبی که ما پیاده سازی کردیم شبکه عصبی کانولوشنال نامیده می شود یا "سی ان ان". CNN یک معماری مدولار متشکل از شبکه های کوچک است که برای آن طراحی شده است وظایف خاص یک CNN کوچکتر برای پردازش تصویر به عنوان سبک شبکه استفاده می شود به بهترین وجه مناسب آن ورودی است، فرآیندهای شبکه پرسپترون چند لایه سنتی تر داده های فرمان و یک شبکه پرسپترون چند لایه عمیق نتایج را با هم ادغام می کند یک زاویه فرمان برای خودرو فراهم کنید. موازی با این شبکه یک مورد اضافی است شبکه پرسپترون چند لایه تنها بر روی دریچه گاز و ترمز متمرکز شده است. با شکستن تا شبکه عصبی به این ترتیب ما قادر به دستیابی به سطح بالایی از مدولاریت هستیم. افزودن ورودی های اضافی برای تطبیق خوانش های حسگر اضافی بی اهمیت خواهد بود به دلیل این طراحی فراتر از آن، جدا کردن کنترل فرمان و کنترل دریچه گاز شبکه ها زمان آموزش و پیچیدگی شبکه را کاهش می دهد. شبکه های عصبی چیزی را انجام می دهند که "یادگیری تقلیدی" نامیده می شود که به این معنی است آنها یاد می گیرند رفتاری را که مشاهده می کنند تکرار کنند. برای آموزش CNN که طراحی کردیم، به حجم زیادی داده نیاز داشتیم. به دلیل هزینه و پتانسیل بالا خطر جمع آوری داده ها در یک ماشین واقعی ما تصمیم گرفتیم از یک محیط شبیه سازی برای جمع آوری داده های آموزشی استفاده کنیم. شبیه سازی که ما انتخاب کردیم یک بازی ویدیویی است به نام Grand Theft Auto V. ما این بازی را به عنوان شبیه سازی انتخاب کردیم محیط واقعی و سهولتی که بازی را می توان تغییر داد. ما انتخاب کردیم برای استفاده از نمونه هایی از رانندگی در Grand Theft Auto V به عنوان داده های آموزشی
جمع آوری داده ها و آموزش
قبل از شروع فرآیند آموزش شبکه عصبی، ما نیاز به جمع آوری آن داشتیم داده هایی که با آن شبکه عصبی را آموزش دهیم. ما فرآیند جمع آوری داده ها را با تغییر محیط بازی به ما آغاز می کنیم
دوست داشتن و تغییر موقعیت دوربین درون بازی به طوری که روی کاپوت the10 ثابت شود
ماشین تست داخل بازی دوربین شبیه سازی شده تصاویر جلوی خودرو را به عنوان ارائه می کند
در انواع جاده ها و شرایط ترافیکی مختلف رانندگی می کند. یک اسکریپت جمع آوری داده ها
دویدن در پس زمینه اطلاعاتی در مورد زاویه فرمان راننده جمع آوری می کند و ارزش دریچه گاز هر تصویر از شبیه سازی با مربوطه برچسب گذاری می شود مقادیر فرمان و دریچه گاز پس از ثبت داده ها از آن به عنوان مثال برای آموزش عصبی استفاده می شود شبکه. تصویر گرفته شده از دوربین درون بازی به عنوان ورودی عصبی استفاده می شود
شبکه ای که سپس از آن خواسته می شود تا مقادیر مربوط به فرمان و دریچه گاز را تولید کند.
با شناسایی شرایط موجود در هر تصویر، شبکه قادر به یادگیری است خود را با شرایط مختلف رانندگی تطبیق دهید و در مورد وظیفه کلی تعمیم دهید رانندگی. برای گسترش بیشتر مجموعه داده ها، داده ها را از طریق برش افزایش می دهیم مناطق انتخاب شده از هر تصویر، که نمونه هایی از رانندگی ضعیف و اصلاحات مورد نیاز در آن سناریوها این نه تنها حجم داده ها را افزایش می دهد
که ما داریم اما شبکه عصبی را با توانایی تصحیح اشتباهاتش آغشته می کند.
-1-5 نتایج
پس از جمع آوری داده ها و آموزش شبکه عصبی، عملکرد مجموعه داده های تایید را تایید کردیم که منجر به میانگین نرخ خطای 1.9٪ شد. ما سپس این شبکه را به یک سیستم ماشین RC که برای ایمنی در طول دوره انتخاب شده است وصل کنید فرآیند توسعه ماشین RC ورودی دوربین را فراهم می کند و فرمان را دریافت می کند زاویه و مقدار دریچه گاز ما حساسیت فرمان، قابلیت اطمینان، عملکرد، و اجتناب از موانع این خودرو 98 دور از 100 دور پیست را با موفقیت پیمایش می کند
به طور خاص برای به چالش کشیدن آن با انواع مختلف جاده ها و پیچ های تنگ طراحی شده است. آن را نیز با موفقیت از خودروی دیگری با میزان موفقیت 90 درصد اجتناب می کند. این نتایج عملکرد مطمئناً می تواند با افزودن سنسورهای اضافی به سیستم ما بهبود یابد. یک دوربین جلوی دیگر برای فعال کردن سه بعدی استریوسکوپی بهبود اجتناب از موانع دوربین های جانبی و پشتی اضافی می توانند فعال شوند رفتارهایی مانند پشتیبان گیری، پیچ های 3 نقطه ای و تغییر مسیر ایمن. اگرچه مافاقد این ورودی ها بود، ما همچنان قادر بودیم پتانسیل شبکه های عصبی سرتاسر را به عنوان کنترل کننده خودرو و پتانسیل شبیه سازی ها را برای استفاده به عنوان منابع داده نشان دهیم.
-1-6 رئوس مطالب سایر فصل ها
این مقاله ابتدا کار مرتبط را در فصل 2 تشریح می کند و پس از آن شرحی از معماری شبکه عصبی ما در فصل 3. فصل 4 آزمایش های ما را مورد بحث قرار می دهد با ماشین RC فصل 5 خلاصه ای از نتایج آزمایش ما و کار بالقوه آینده.
فصل 2:
بررسی پیشینه و ادبیات
مقدمه
در این فصل مروری بر مفاهیم شبکه عصبی برای ارائه ارائه خواهیم کرد زمینه بحث های آینده بخش 2.1 شامل مرور کلی عصبی است شبکه هایی که توسط یک شبکه عصبی نظری هدایت می شوند. در بخش 2.2، ما تحقیقات موجود مرتبط با اجرای مستقل را مورد بحث قرار خواهد داد وسایل نقلیه.
مروری بر شبکه عصبی
شکل 2-1. Perceptron تک لایه
اگرچه مدل محاسباتی برای شبکه های عصبی برای اولین بار در در سال 1943، تنها بیست سال گذشته است که آنها شروع به ورود به خود کرده اند خود به عنوان جزئی از هوش مصنوعی اجرای دقیق ساختاری شبکه های عصبی به طور گسترده ای از پرسپترون های ساده و تک لایه تا کانولوشن متفاوت هستند شبکه های عصبی عمیق شبکه های عصبی را می توان به راحتی با نمودار نمایش داد. آنورون به سادگی یک گره روی نمودار است که یک یا چند قطعه عددی را می پذیرد داده های ورودی، برخی از تابع های حسابی را اعمال می کند و یک مقدار خروجی تولید می کند. در تابع محاسباتی اعمال شده توسط یک نورون به ورودی آن "تابع فعال سازی" نامیده می شود. نام این تابع به این دلیل است که درجه نورون را کنترل می کند فعال می کند. پرسپترون تک لایه نشان داده شده در شکل 1-2 ساده ترین شکل آن است یک شبکه عصبی مصنوعی یا "ANN" ، زیرا فقط یک نورون دارد. هر یک از دایره های آبی نشان دهنده ویژگی نقطه داده ورودی است که با X نشان داده می شود خروجی نورون مقادیر عددی برای هر یک از آن ویژگی ها در یک وزن ضرب می شود ارزش، W. سپس مقادیر به دست آمده به نورون ارسال می شود که نشان داده می شود به عنوان دایره نارنجی نورون جمع بندی ورودی های وزن دار را انجام می دهد که دریافت می کند. سپس مقدار حاصل به فعال شدن نورون منتقل می شود عملکرد. دو مورد از اساسی ترین پیاده سازی های تابع فعال سازی عبارتند از تابع پله و تابع سیگموئید. تابع گام بر یک مقدار آستانه متکی است و اگر مجموع وزنی کمتر از آن آستانه باشد، 0 را برمی گرداند، و اگر 1 را برمی گرداند جمع وزنی بیشتر از آستانه است. خروجی تابع سیگموئید، S(t) = 1=(1 + e-t) ، وقتی t به بی نهایت می رود، به 1 نزدیک می شود و با رفتن t به -1 نزدیک میشود. بی نهایت منفی یکی از روش های مدیریت خروجی شبکه عصبی، داشتن تعداد نورون ها است در لایه نهایی برابر با تعداد دسته هایی باشد که شبکه قادر است شناسایی در این وضعیت، یک نورون معین با یک کلاس خروجی مطابقت دارد و اگر شبکه فکر کند که داده ورودی یک عضو یا آن کلاس است، فعال می شود. تحت این پارادایم، شبکه تک نورون در شکل 1-2 تنها قادر به انجام این کار است تعیین کنید که آیا ورودی آن عضوی از یک دسته است یا خیر. اگر نورون های بیشتری به این شبکه اضافه شود، اشیاء بیشتری را می توان شناسایی کرد. برای به عنوان مثال، فرض کنید یک مجموعه داده fx; y; zg وجود دارد. به طوری که x تعداد پاهای an باشد حیوان دارد، y قد حیوان بر حسب اینچ است و z مقدار 1 یا 0 را نشان می دهد
شکل 2-2. شبکه عصبی طبقه بندی حیوانات
این حیوان مو دارد یا پر. اگر این مجموعه داده به یک نورون منفرد تغذیه می شد شبکه، مانند شکل 1، فقط می تواند یاد بگیرد که آیا یا داده های ورودی به یک حیوان خاص تعلق نداشت. به عنوان مثال، نورون خواهد بود خروجی 1 اگر فکر می کرد که نمونه گاو است و 0 اگر اینطور نیست. با این حال، اگر این قرار بود همان مجموعه داده به شبکه ای متشکل از پنج نورون ارائه شود، شاید بتوانیم
یک نمونه را به عنوان گاو، مرغ، اسب، شترمرغ یا سگ طبقه بندی کنید. در این موقعیت، همانطور که در شکل 2-2 مشاهده می شود، هر یک از نورون ها با یک حیوان مطابقت دارد نقطه داده نشان دهنده ویژگی های یک گاو به شبکه عرضه می شد انتظار می رود که نورون های مرغ، اسب، شترمرغ و سگ در حالی که گاو صفر باشد نورون، و فقط نورون گاو، خروجی 1 می دهد. این طرح خروجی گاهی اوقات است به عنوان "یک داغ" شناخته می شود زیرا فقط یکی از نورون ها باید "داغ" باشد و عدد 1 را صادر کند. در حالی که این مثال برخی از پتانسیل های ANN را روشن می کند، هنوز فقط شبکه های تک لایه به آن می پردازد
شکل 2-3. شبکه عصبی عمیق طبقه بندی حیوانات
برای گسترش "طبقه بندی حیوانات" که در بالا ذکر شد، چند اصلاح را در نظر بگیرید. ابتدا تابع گام را در هر یک از نورون ها با تابع سیگموئید جایگزین کنید S(t) = 1 = (1 + e-t) به این ترتیب، به جای 1 یا 0، هر نورون یک خروجی شناور خواهد داشت مقدار نقطه بین -1 و 1. دوم، یک ردیف از پنج نورون دیگر اضافه کنید تا خروجی پنج نورون اول ورودی همه نورون های جدید است. این لایه جدید نورون ها به عنوان لایه خروجی عمل می کنند و از تابع گام استفاده می کنند. توجه داشته باشید که هر نورون در لایه اول، یا لایه ورودی، سه قطعه از آن را دریافت می کند اطلاعات و نورون های لایه دوم یا لایه خروجی پنج قطعه را دریافت می کنند از اطلاعات، یکی از هر یک از نورون های لایه ورودی. این شبکه جدید پرسپترون چند لایه یا شبکه عصبی عمیق (DNN) نامیده می شود زیرا وجود دارد در حال حاضر عمق به شبکه. زیرا اتصالات بیشتری در این DNN جدید وجود دارد
طبقه بندی کننده حیوانات، قادر به یادگیری الگوهای پیچیده تر است و حداکثر دقت پتانسیل خود را افزایش داده است. با پیروی از این استراتژی، می توان به افزودن لایه ها به شبکه به طور نامحدود ادامه داد. اگرچه در این مثال، افزایش عمق شبکه منجر به بهبود عملکرد می شود، اما همیشه اینطور نیست. بسته به پیچیدگی یک کار، ابعاد ایده آل یک شبکه به طور قابل توجهی متفاوت است. روش دیگر برای ساختاربندی خروجی شبکه عصبی استفاده از یک نورون خروجی منفرد با تابع فعال سازی سیگموئید در آخرین لایه است. در مثال های بالا، نورون های خروجی همگی از یک تابع گام استفاده می کنند. ما می توانیم این را ببینیم زیرا آنها فقط 1 یا 0 را خروجی می دهند. با این حال، اگر به یک نورون خروجی واحد با فعال سازی سیگموئید یا تابع فعال سازی دیگری که مقدار ممیز شناور تولید می کند تغییر دهیم، می توانیم طیف وسیع تری از خروجی ها را تولید کنیم. تولید یک مقدار ممیز شناور به ما این امکان را می دهد که قطعیت طبقه بندی های خود را تخمین بزنیم یا چیزهایی را که روی یک مقیاس کشویی قرار می گیرند، مانند زاویه چرخش فرمان طبقه بندی کنیم.
کار های مرتبط
تحقیقات خودروهای خودران بر روی طیف گسترده ای از رویکردها متمرکز شده است. ما
تمرکز بر کسانی است که از شبکه های عصبی استفاده می کنند. در این بخش یک نمای کلی از
تحقیقات مرتبط با استفاده از این رویکرد با تمرکز خاص بر روی کسانی که از شبیه سازی ها، شبکه های سرتاسر یا تایید دنیای واقعی استفاده می کنند.
-2-4 شبکه های عصبی و کارهای غیر رانندگی
اگرچه تعداد زیادی کار در این دسته قرار می گیرند، ما تصمیم گرفتیم مقالات را در این بخش قرار دهیم زیرا آنها توانایی الگوریتم های یادگیری ماشین را برای حل وظایف بینایی رایانه بیان می کنند.
در این بخش، تحقیقات متمرکز بر استفاده از شبکه های عصبی برای حل مشکلات پردازش تصویر غیرمرتبط با رانندگی خودکار را بررسی می کنیم. اگرچه این وظایف به خود رانندگی خودران ارتباطی ندارند، اما مشکلات به روشی بسیار مشابه در نظر گرفته شده اند. سیستم های رانندگی مستقلی که از شبکه های عصبی استفاده می کنند باید بر روی تصاویر یک جریان ویدیویی طبقه بندی کنند. این آثار همان روشی را توصیف می کنند که ما برای دستیابی به رانندگی مستقل از آن استفاده می کنیم، اما برای کارهای مختلف اعمال می شود. در مقاله تحقیقاتی خود که در سال 2012 منتشر شد Ciresan et. al. یک شبکه عصبی ارائه کرد که قادر به طبقه بندی صحیح تابلوهای خیابان در 99.4 درصد مواقع بود. در حالی که سیستم پیشنهادی بر روی تصاویر مربوط به رانندگی آموزش داده شده بود، خود طبقه بندی کننده می توانست برای طبقه بندی هر نوع تصویری آموزش ببیند. در واقع، Ciresan et. al. مقاله دیگری را در سال 2012 با استفاده از یک شبکه عصبی مشابه که برای طبقه بندی دست خط انسان آموزش داده شده بود، منتشر کرد. آن شبکه در مجموعه داده های دستخط MNIST امتیاز خطای 0.23٪ را به دست آورد. کار Ciresan et. al. نشان می دهد که شبکه های عصبی طبقه بندی کننده های تصویر بسیار توانمندی هستند. نویسندگان ادعا می کنند که طبقه بندی کننده آنها به کنتراست و روشنایی حساس نیست. مواجهه با شرایط نوری مختلف یک چالش قابل توجه در مشکلات پردازش تصویر است.
در مقاله منتشر شده توسط محققان دانشگاه تورنتو در سال 2012، نویسندگان Krizhevsky et. al. یک شبکه عصبی مورد استفاده برای طبقه بندی تصاویر از پایگاه داده تصویر ImageNet را ترسیم کنید. مجموعه داده ImageNet شامل تصاویری از 1000 کلاس مختلف است. کریژفسکی و. al. توانستند در چالش تشخیص تصویری در مقیاس بزرگ ImageNet در سال 2012 به نرخ خطای شکستن رکورد 15.3% دست یابند. شبکه های عصبی کانولوشنال به دلیل کارایی خود در حل مشکلات بینایی کامپیوتری به خوبی شناخته شده اند. کارپاتی و همکاران al. ایجاد یک شبکه عصبی آموزش دیده برای تعیین ورزش در حال انجام در یک کلیپ ویدئویی. طبقه بندی ویدئو به دلیل ابعاد اضافی در فضای داده می تواند چالش برانگیز باشد. با نگاه کردن به فریم های متعدد در یک دوره زمانی، شبکه ها می توانند شناسایی ویژگی های فضایی-زمانی را بیاموزند. کارپاتی و همکاران al. روش های مختلفی را برای تغذیه اطلاعات از فریم های ویدئویی متعدد به یک شبکه عصبی ارائه می کند. اگرچه طبقه بندی ها در وظایف رانندگی مستقل متفاوت است، توانایی انجام طبقه بندی در جریانی از تصاویر بسیار مرتبط است.
-2-5 رانندگی مستقل بدون یادگیری ماشین
در این بخش، تلاش های مهمی را برای ایجاد وسایل نقلیه خودمختار که متدولوژی های یادگیری ماشین را ترکیب نمی کنند، مرور خواهیم کرد.
شناخته شده ترین جنبه تحقیقات رانندگی خودران، چالش بزرگ دارپا است. اولین چالش بزرگ دارپا در سال 2004 برگزار شد و رقبای وسایل نقلیه ابزاری را ملزم به رانندگی در یک مسیر طولانی در صحرای موهاوی کرد. در مسابقه اول هیچ یک از شرکت کنندگان با موفقیت دوره را طی نکردند.
در سال 2005 دارپا دومین چالش بزرگی را برگزار کرد که نه تنها توسط خودروی استنلی تیم مسابقه استانفورد تکمیل شد، بلکه برنده شد.
تا آنجا که ما می دانیم، هیچ یک از خودروها از روش های یادگیری ماشینی استفاده نمی کردند، به جای اینکه کنترل خودرو را با الگوریتم های مرسوم تری که به ورودی انواع سنسورها مانند دوربین ها، GPS و لیدار وابسته است، انتخاب کردند. الگوریتم های یادگیری ماشین معمولاً در هنگام استفاده از وظایف رانندگی مستقل روی تصاویر اعمال می شوند. در DARPA Grand Challenge ورودی دوربین کمتر از حد معمول به دلیل زمین مفید بود. در اولین چالش بزرگ دارپا، مسیر کاملاً خارج از جاده بود و بیشتر آن زمین های ناهموار را پوشش می داد. چون بیشتر جاده و زمین اطراف قهوه ای بود، رنگ معنایی به راحتی قابل تشخیص نداشت. بنابراین نمی توان به اندازه رادار و لیدار به ورودی دوربین اعتماد کرد. در سال 2007 دارپا میزبان دومین چالش بزرگ، چالش بزرگ شهری دارپا بود.
چالش بزرگ شهری در پایگاه نیروی هوایی جورج در ویکتورویل، کالیفرنیا برگزار شد و 60 مایل از جاده شهری را پوشش داد. تیم های چالش بزرگ شهری تصاویر هوایی از منطقه چالش ارائه شد. تیم تارتان از دانشگاه کارنگی ملون با رباتی که بر روی شاسی شورولت تاهو ساخته شده بود وارد رقابت شد. ربات تیم تارتان از تصاویر دوربین، لیدار و رادار به عنوان ورودی الگوریتم های کنترل خود استفاده کرد. مانند چالش های بزرگ گذشته، لیدار و رادار نقش بزرگی در فرآیندهای تصمیم گیری ناوبری ایفا کردند. با این حال، در این مورد، تصاویر دوربین برای عملکرد اصلی خط زیر استفاده شد. تیم تارتان در واقع از یادگیری ماشینی برای چالش استفاده کرد اما فقط در پیش پردازش آفلاین. تارتان از 19 یک شبکه عصبی کانولوشن برای کمک به فرآیند استخراج اطلاعات جاده از تصاویر هوایی ارائه شده استفاده کرد که بعداً برای برنامه ریزی مسیر در سطح بالا مورد استفاده قرار گرفت. از آنجایی که شبکه عصبی در زمان رانندگی مورد استفاده قرار نگرفت، این مقاله در بخش 2.2.3 گنجانده نشده است.
-2-6 یادگیری ماشینی و رانندگی مستقل
در این بخش، تحقیقات مربوط به یادگیری ماشین و رانندگی خودکار را بررسی خواهیم کرد.
تا آنجا که ما می دانیم اولین استفاده از یک شبکه عصبی برای رانندگی، ALVINN دانشگاه کارنگی ملون بود. ALVINN از یک شبکه عصبی بازتابی برای کنترل خروجی فرمان خود استفاده کرد.
شبکه های عصبی بازتابی اطلاعات ورودی را مستقیماً به یک خروجی کنترلی ترسیم می کنند. در این مورد، ورودی تصاویر دوربین ALVINN است و خروجی یک زاویه فرمان است [12، 13، 14]. شبکه ای که برای کنترل استفاده می شود با داده های دنیای واقعی و همچنین روی یک وسیله نقلیه دنیای واقعی آزمایش شده است. با توجه به قدرت محاسباتی محدود آن زمان، شبکه عصبی ALVINN نیاز داشت که بر روی ورودی های بسیار کوچک کار کند. تصاویر ارائه شده به شبکه تنها 30×32 پیکسل بودند.
رویکرد ادراک واسطه ای برای رانندگی خودکار با شبکه های عصبی شامل طبقه بندی اشیایی مانند علامت گذاری خطوط و سایر خودروها در یک تصویر است. سپس الگوریتم های اضافی از اشیاء طبقه بندی شده برای تعیین رویکرد رانندگی استفاده می کنند [15، 16، 17]. جانسون و. al. و Filipowicz دو روش جداگانه برای اصلاح GTA V به طور خاص به منظور پشتیبانی از آموزش سیستم های ادراک واسطه ای ارائه می کنند [18، 19]. فیلیپوویکس از سیستم خود برای آموزش شبکه ای برای طبقه بندی فاصله تا توقف استفاده کرد نشانه ها [17، 18]. این شبکه بر روی داده های شبیه سازی شده آموزش دیده و در همان محیط شبیه سازی آزمایش شده است، اما در یک سیستم دنیای واقعی تایید نشده است. مانند کار جانسون و. مقاله فیلیپوویچ بر این ایده استوار است که کیفیت گرافیکی GTA آنقدر بالاست که برای واقعیت قابل قبول باشد. عملکرد طبقه بندی کننده فیلیپوویچ از این ایده پشتیبانی می کند که GTA V یک زمین آموزشی مناسب برای سیستم های کنترل خودروهای خودمختار است. Johnson et. al همچنین سیستمی برای حاشیه نویسی تصاویر از GTA V ایجاد کرد. جانسون به جای طبقه بندی فاصله برای چراغ های توقف، تشخیص وسایل نقلیه در تصاویر را انتخاب کرد. جانسون برای آزمایش سیستم طبقه بندی خودروی خود از ۷۴۸۱ تصویر از مجموعه داده های KITTI استفاده کرد. جانسون توانست نشان دهد که شبکه های عصبی آموزش دیده با داده های حاشیه نویسی تولید شده از شبیه سازی ها به اندازه شبکه های آموزش دیده با داده های دنیای واقعی در شناسایی وسایل نقلیه در مجموعه داده KITTI موثر هستند. اگرچه به طور مستقیم با کنترل فرمان سروکار ندارد، Vallon et. al. ارائه رویکردی برای کنترل تغییرات خطوط به صورت مستقل. Vallon et. al. از ماشین های بردار پشتیبان یا SVM برای یادگیری زمان بندی بهینه تغییر خط بر اساس فاصله تا سایر خودروهایی که ممکن است در جاده باشند استفاده کنید. این مقاله به یکی از چالش های موجود در دستیابی به یک وسیله نقلیه خودران با درجه بالایی از خودمختاری می پردازد. هاول یک سیستم رانندگی خودمختار مجهز به شبکه عصبی دیگر ایجاد کرد که در دسته ادراک میانجی قرار می گرفت. سیستم پیشنهادی توسط تیم تحقیقاتی استنفورد قادر به طبقه بندی سایر وسایل نقلیه در خط کشی جاده ها و خطوط است. وسایل نقلیه با نمونه برداری فرعی از پنجره های بافت کوچک طبقه بندی می شوند.
تعیین اینکه آیا وسیله نقلیه در آن پنجره وجود دارد یا خیر. بسیاری از نمونه های فرعی گرفته می شوند و نتایج جمع آوری می شوند و برای قرار دادن جعبه مرزی روی خودرو یا وسایل نقلیه در تصویر اصلی استفاده می شوند. نتایج این فرآیند با بازگشت از یک حسگر رادار جفت می شود و برای تعیین فاصله تا هر وسیله نقلیه استفاده می شود.
چن و. al. یک رویکرد "ادراک مستقیم" طراحی کرد. همانطور که توسط نویسندگان توصیف شد، "ادراک مستقیم" نقطه میانی بین شبکه های عصبی بازتابی و سیستم های ادراک واسطه ای است. به جای طبقه بندی اشیاء و سپس استفاده از مکان شی در تصویر برای تعیین فاصله آن، direct perception" این سیستم فواصل تا اجسام مانند اتومبیل یا خط کشی را مستقیماً طبقه بندی می کند. این امر برنامه نویس را از انجام یک مرحله از خط لوله پردازش مورد نیاز برای کنترل خودروی خودمختار نجات می دهد. این مقاله از داده های دنیای واقعی استفاده کرد آموزش داده و سپس سیستم را در محیط شبیه سازی Torcs آزمایش کرد. این یک تضاد جالب با شبکه عصبی خودمان است که در دنیای مجازی آموزش داده شده و در واقعیت آزمایش شده است. در سال 2016، محققان NVIDIA ماریوس بوجارسکی و. al. یک شبکه انعکاسی را برای رانندگی لینکلن MKZ آموزش داد. سیستم NVIDIA با داده های دنیای واقعی آموزش داده شد، در یک شبیه سازی با داده های دنیای واقعی تایید شد و در دنیای واقعی آزمایش شد. برای جمع آوری حجم زیادی از داده های آموزشی مورد نیاز برای انجام تحقیقات خود، بوجارسکی و. al. در حین ضبط فیلم از جاده و اقدامات راننده، تقریباً 70 ساعت در یک خودرو رانندگی کرد. کار NVIDIA پتانسیل سیستم های end-to-end را با توجه به فناوری پردازش مدرن نشان داد. مولر و. al. یک ماشین خارج از جاده با استفاده از یک شبکه سرتاسر و دو دوربین ورودی برای تولید آنچه اساساً سه بعدی استریوسکوپی است، قادر به جلوگیری از موانع است. این سیستم بر روی داده های دنیای واقعی آموزش داده شد و در آزمایش های دنیای واقعی آزمایش شد. کار مولر نشان می دهد که شبکه های عصبی می توانند عمق را از یک سیستم دو دوربین یاد بگیرند، اما ماشین مسیری برای دنبال کردن نداشت و بی هدف سرگردان بود.
رویکرد ما جنبه های این آثار را برای گسترش دانش موجود ترکیب می کند. تا آنجا که ما می دانیم، هیچ کار قبلی استفاده از یک شبکه عصبی بازتابی را که با استفاده از داده های شبیه سازی آموزش دیده و در آزمایش های دنیای واقعی آزمایش شده است، ترکیب نمی کند.
فصل 3:
شبکه عصبی
مقدمه
در این فصل به تعریف معماری شبکه عصبی که طراحی کردیم خواهیم پرداخت. بحث در مورد معماری در بخش 3.1 آغاز خواهد شد. در بخش 3.2 فرآیند جمع آوری داده ها و در بخش 3.3، فرآیند آموزش شبکه عصبی را مورد بحث قرار خواهیم داد. بخش 3.4 فرآیند بازنگری شبکه عصبی و بخش 3.5 فرآیند اعتبار سنجی را پوشش می دهد.
معماری
شبکه عصبی کلی ما یک شبکه کانولوشن است که شامل یک شبکه کانولوشن برای پردازش تصویر، یک شبکه پرسپترون چند لایه برای هدایت گذشته، یک شبکه پرسپترون چند لایه عمیق برای ادغام تصویر و هدایت، و یک شبکه دوم مستقل و کانولوشن برای ترمز کردن مدولار کردن معماری برای ترکیب شبکه های مختلف، امکان تنظیم نوع شبکه برای داده های ورودی و نیازهای مختلف را فراهم می کند. علاوه بر این، این معماری امکان افزودن آسان برای کارهای مختلف رانندگی، مانند توسعه آینده برای پشتیبانی از چراغ های راهنمایی و ورودی از سنسورهای اضافی را فراهم می کند. ما از Python و Keras API برای پیاده سازی شبکه های عصبی خود استفاده کردیم. Keras پوششی در اطراف API پشتیبان شبکه عصبی "Tensorflow" گوگل است.
شکل 2-4سلسله مراتب کلی و جزئیات شبکه های کوچکتر را نشان می دهد. در داخل هر جعبه شبکه، خطوط رنگی لایه های آن را نشان می دهد که عرض خط نشان دهنده تعداد نورون ها و رنگ نشان دهنده نوع لایه شبکه است.
این سیستم تصاویر دوربین و زاویه فرمان فعلی را به عنوان ورودی می پذیرد و یک زاویه فرمان و همچنین دریچه گاز تولید می کند. این ساختار داده های ورودی حسگر و خروجی های کنترل با حداقل پردازش، مشخصه یک شبکه انتها به انتها است.
شکل 3-2. معماری کلی شبکه
معماری یا یک سیستم بازتابی. جایگزینی برای سیستم های انعکاسی، ادراک واسطه ای است که در آن یک شبکه عصبی برای طبقه بندی اشیاء در یک تصویر مانند علامت گذاری خطوط، وسایل نقلیه و عابران پیاده برای استفاده بعدی توسط الگوریتم کنترل دیگری استفاده می شود.
سیستم های انعکاسی به زمان کمتری برای پیاده سازی و نگهداری و قدرت محاسباتی کمتری برای کار کردن نیاز دارند. این مزایا به قیمت شفافیت عملیاتی است. شبکه عصبی یک جعبه سیاه است که بینش محدودی در مورد نحوه عملکرد آن ارائه می دهد.
ما چهار ماژول شبکه در داخل شبکه داریم: (1) پردازش تصویر فرمان، (2) پردازش حافظه کوتاه مدت، (3) ادغام، و (4) ضد برخورد.
بخش های بعدی هر شبکه را به تفصیل شرح می دهد. ما بخش 3.1.1 را با بحث در مورد اولین تلاش خود برای ایجاد یک درایور شبکه عصبی آغاز خواهیم کرد. در بخش های 3.1.2 تا 3.1.5
ما در مورد معماری شبکه عصبی نهایی بحث خواهیم کرد.
معماری اولیه
اولین تلاش ما برای ایجاد یک شبکه عصبی دارای معماری متفاوتی با اجرای نهایی ما بود. ذیل
در رد پای Karpathy et. al. ما در ابتدا یک شبکه عصبی را پیاده سازی کردیم که از روش های پردازش ویدیوی فیوژن اولیه استفاده می کرد. همجوشی اولیه با تغذیه چندین فریم مجاور از یک جریان ویدئویی به یک شاخه از یک شبکه عصبی به طور همزمان مشخص می شود. شهود ما در این مورد این بود که با ارائه شبکه عصبی با فریم های متعدد، می توان نحوه حرکت خودرو را استنتاج کرد. شکل 5 روش های مختلف جمع آوری اطلاعات سری های زمانی در یک شبکه عصبی را نشان می دهد. مستطیل های خاکستری در پایین شکل نشان دهنده فریم های یک جریان ویدیویی و مستطیل های رنگی بالا نشان دهنده معماری برای پشتیبانی از متدولوژی فیوژن مورد نیاز است.
شکل 3-3. روش های همجوشی زمانی
نتایج اعتبارسنجی در این شبکه عصبی آنطور که می خواستیم خوب نبود. میزان خطای اعتبارسنجی در این مرحله 2.5 درصد بود. به منظور بهبود سیستم، ما در نظر گرفتیم که انسان ها از چه اطلاعات اضافی برای رانندگی استفاده می کنند که می توانیم به شبکه ارائه دهیم. چیزی که متوجه شدیم این است که شبکه عصبی هیچ وسیله ای برای تعیین موقعیت فعلی فرمان ندارد. موقعیت فرمان برای وظیفه رانندگی بسیار مهم است، اما بخشی از اطلاعات است که رانندگان انسان آگاهانه آن را در نظر نمی گیرند. ما بازگشتی را با تغذیه به شبکه عصبی خود اضافه کردیم جدیدترین طبقه بندی فرمان بازگشت به شبکه عصبی. این رویکرد معتبر است زیرا عمل فرمان در هر لحظه معین ارتباط نزدیکی با عمل فرمان در لحظه قبل دارد.
ما آزمایشات مختلفی را بر روی نسخه اولیه معماری خود انجام دادیم که در بخش 3.4 به تفصیل پوشش داده خواهد شد. نتایج آن آزمایش ها ما را به پیاده سازی معماری مدولار شرح داده شده در بخش های 3.1.2 تا 3.1.5 هدایت می کند.
شبکه پردازش فرمان
ابتدا باید از تصاویر دوربینی که برای آنها از شبکه عصبی کانولوشناCNN ) )استفاده می کنیم، یاد بگیریم. CNN ها روشی موثر برای طبقه بندی تصاویر هستند و اغلب برای شناسایی اشیا در یک تصویر استفاده می شوند تصویر با این حال، در اجرای ما، CNN زاویه فرمان را که توسط یک ورودی مشخص ضروری است، شناسایی می کند. شبکه های عصبی که ما پیاده سازی کردیم عمدتاً از سه نوع لایه تشکیل شده اند: لایه های کانولوشن، لایه های تجمع حداکثری و لایه های عصبی به هم متصل.
لایه های کانولوشن از یک سری هسته های کانولوشن تشکیل شده اند که به تشخیص الگو کمک می کنند. حداکثر لایه های ادغام برای کاهش اندازه داده های توان عملیاتی با ساده سازی یک "pool" از نقاط داده به یک مقدار واحد عمل می کنند. این مقدار با گرفتن حداکثر مقدار از استخر انتخاب می شود. متراکم متصل است لایه های نورون، لایه های نورونی استاندارد به سبک پرسپترون هستند که در آن هر نورون در یک لایه معین به هر نورون در لایه بعدی ارتباط دارد. شبکه پردازش تصویر دارای چندین لایه پیچیدگی و ادغام است که به دنبال آن چندین لایه از نورون های متراکم به هم متصل می شوند. انتخاب لایه ها در طول توسعه بهینه شد تا بهترین نتایج را ارائه دهد. لایه ورودی یک لایه کانولوشن است که به دنبال آن یک لایه ادغام حداکثر است. پس از آن، دو لایه کانولوشن دیگر وجود دارد که به دنبال آن یک لایه ادغام حداکثر وجود دارد. سپس یک لایه کانولوشن نهایی قبل از پنج لایه نورون های متراکم متصل وجود دارد. این لایه ها شامل 1500، 1000، 1000، 256 و 128 نورون هستند.
با گنجاندن تعداد زیادی نورون اولیه و همچنین لایه های داخلی بزرگ، شبکه ارتباطات بیشتری دارد که به آن امکان ذخیره و یادگیری اطلاعات بیشتر را می دهد. عمق این شبکه به آن اجازه می دهد تا رفتارهای پیچیده تری را بیاموزد و باریک شدن شبکه به سمت انتها امکان تجمیع اطلاعات را در جریان جریان از طریق شبکه فراهم می کند. علاوه بر تعداد لایه ها و نورون ها، شبکه به یک تابع فعال سازی برای نورون های هر لایه نیاز دارد. این تابع فعال سازی میزان شلیک یا فعال شدن نورون را تعیین می کند. برای شبکه فرمان، نورون های هر یک از این لایه ها از یک تابع فعال سازی relu استفاده می کنند. اصطلاح relu مخفف واحد خطی اصلاح شده است و یک تابع فعال سازی موثر برای شبکه های عصبی کانولوشن است. شبکه عصبی توابع relu را به صورت f(x) = max(0; x) تعریف می کند.
-3-5 شبکه فرمان حافظه کوتاه مدت
یک طبقه بندی کننده تصویر به تنهایی می تواند یک محرک موثر باشد. با این حال، آگاهی از موقعیت های فعلی و گذشته فرمان، اطلاعات ارزشمندی را برای استفاده در حین رانندگی فراهم می کند. برای استفاده از این اطلاعات، ما یک شبکه پرسپترون چند لایه ایجاد می کنیم که به پردازش مجموعه ای از طبقه بندی های قبلی ساخته شده توسط شبکه اختصاص داده شده است. شاخه حافظه کوتاه مدت فرمان (STM) یک شبکه کوچکتر از شاخه پردازش تصویر است و تنها به مقدار کمی قدرت پردازش نیاز دارد. شاخه طبقه بندی تصویر باید آرایه های بزرگ و چند بعدی را که تصاویر را نشان می دهند مدیریت کند. با این حال، شاخه فرمان تنها مسئول رسیدگی به یک آرایه منفرد از حداکثر 12 زاویه فرمان قبلی است. شبکه با دو لایه از 12 لایه نورونی به هم پیوسته متراکم و به دنبال آن یک لایه منفرد از 128 نورون شروع می شود. این لایه نهایی به دلیل الزامات محیط پیاده سازی، بزرگتر از نیاز است. برای ادغام شبکه STM با زیرشبکه پردازش تصویر، همه شبکه هایی که ادغام می شوند باید تعداد نورون های یکسانی در لایه پایین داشته باشند. بنابراین، برای تطبیق با شبکه پردازش تصویر، شبکه STM هدایت را گسترش می دهیم تا حاوی یک لایه 128 نورونی باشد. در نهایت، مانند شبکه پردازش فرمان، هر نورون در هر لایه از این شبکه از فعال سازی relu استفاده می کند.
-3-6 ادغام شبکه
ادغام دو شبکه عصبی به شبکه ترکیبی حاصل اجازه می دهد تا بر اساس بیشترین مقدار در مورد هدایت خود تصمیم بگیرد.
از داده های مفید شبکه ادغام شده برای پردازش خروجی هر یک از دو شبکه که قبلا توضیح داده شد، خدمت می کند. برای رسیدن به این هدف، از یک شبکه پرسپترون چند لایه عمیق متشکل از شش لایه استفاده می کنیم. پس از اینکه هر دو شبکه قبلی خروجی خود را تولید کردند، نتایج به یکدیگر متصل می شوند و به شبکه ادغام شده تغذیه می شوند که گویی به سادگی از یک لایه قبلی ورودی است. به یک معنا، این سه شبکه یک شکل درختی را تشکیل می دهند و به گونه ای عمل می کنند که گویی یک شبکه هستند.
پایین ترین لایه های شاخه پردازش تصویر و شاخه حافظه کوتاه مدت فرمان هر دو شامل 128 نورون هستند. بنابراین، شبکه ادغام شده با خروجی های 256 نورون ترکیبی شروع می شود. سپس شبکه ادغام شده از طریق چندین لایه از نورون های متراکم متصل تغذیه می کند. اولین لایه شبکه ادغام شده شامل 768 نورون است و به دنبال آن لایه هایی حاوی 1000، 512، 256 و 16 نورون قرار دارند.
لایه نهایی شبکه عصبی شامل یک نورون منفرد است که زاویه فرمان نهایی را خروجی می کند. در نهایت، همه این لایه ها از فعال سازی relu استفاده می کنند به جز آخرین لایه 16 نورونی که از فعال سازی خطی استفاده می کند. ما برای لایه نهایی به فعال سازی خطی تغییر می دهیم، زیرا فعال سازی relu فقط خروجی های مثبت را امکان پذیر می کند و شبکه ما باید مقادیری بین 100- تا 100 تولید کند تا چرخش های چپ و راست را پوشش دهد.
-3-7 شبکه ضد برخورد
شبکه ترمز به طور مستقل از سه شبکه دیگر کار می کند. این امر پیچیدگی محاسباتی را کاهش می دهد و به آن اجازه می دهد به سرعت پاسخ دهید دقیقا همان ورودی شبکه پردازش فرمان را دریافت می کند. شبکه ترمز یک شبکه ساده تر از شبکه پردازش فرمان است، زیرا تنها وظیفه آن تضمین ایمنی وسیله نقلیه با اعمال ترمز هنگامی که یک شی خیلی نزدیک می شود، است.
شبکه ترمز با یک لایه کانولوشن و به دنبال آن یک لایه .max pooling شروع می شود. و یک لایه نویز گاوسی برای کاهش بیش از حد در حین تمرین. سپس دو لایه کانولوشن قبل از یک لایه نهایی .max pooling وجود دارد. بعد پنج لایه از نورون های متراکم با 384، 256، 128، 16 و 1 نورون هستند. درست مثل شبکه ادغام که قبلا توضیح داده شد، شبکه ترمز از فعال سازی relu در تمام لایه ها استفاده می کند، به جز لایه دوم تا آخرین که از فعال سازی خطی استفاده می کند. مزیت جداسازی این شبکه این است که نه تنها ماژولار بودن را فراهم می کند، بلکه فرآیند آموزش را ساده و تسریع می کند.
-3-8 اجرای CNN
ما شبکه عصبی را با استفاده از a پیاده سازی می کنیم.
AP پایتون به نام Keras. Keras یک API شبکه عصبی است که می تواند در بالای Tensorflow، CNTK یا Theano اجرا شود. ما به دلیل قابلیت استفاده و عملکرد بالا، شبکه عصبی را در Keras پیاده سازی کردیم. ما می توانستیم شبکه خود را تنها با استفاده از تنسورفلو یا تیانو بسازیم، اما Keras فراهم می کند همه عملکردهای یکسان با رابط کاربری بسیار ساده تر دارند. علاوه بر این، Keras API انواع توابع فعال سازی محبوب از جمله "relu" و خطی همانطور که قبلا ذکر شد و همچنین sigmoid، "tanh"، "softmax" و موارد دیگر را ارائه می دهد. در این مورد، پشتیبان Tensorflow با فعال بودن ویژگی شتاب GPU استفاده می شود.
شتاب پردازنده گرافیکی توان عملیاتی بسیار بالایی را که برای پشتیبانی از وظیفه رانندگی خودکار لازم است را امکان پذیر می کند. لپ تاپ مورد استفاده در تست ماشین RC واقعی حاوی Nvidia GTX970m است که به ما امکان می دهد از شتاب GPU ارائه شده توسط Keras استفاده کنیم. بدون شتاب GPU، ما نمی توانستیم دنیای واقعی خود را اجرا کنیم به این دلیل که شبکه عصبی برای پردازش هر فریم روی CPU بیش از یک ثانیه طول می کشد. با پیاده سازی شبکه عصبی ما توانستیم مجموعه داده های آموزشی بزرگی را جمع آوری کنیم.
-3-9 فرایند جمع آوری داده
اگرچه GTA V برای نیازهای جمع آوری داده های ما مناسب است، تنظیمات پیش فرض برای اهداف ما غیر قابل استفاده است. پس از اصلاح کنترلر دوربین و محیط در GTA V ما توانستیم یک اسکریپت برای جمع آوری داده های خام پیاده سازی کنیم.
-3-1-1 ثبت داده ها
جمع آوری داده ها با داشتن یک محقق در دنیای مجازی GTA و ضبط فریم های ویدیویی و کنترل انجام می شود.
شکل3-4. مقایسه شیب دوربین
ورودی های محقق همانطور که محقق درایو می کند، یک اسکریپت پایتون در پس زمینه برای ضبط داده ها اجرا می شود. ابتدا اسکریپت با استفاده از بسته win32gui از پنجره بازی اسکرین شات می گیرد و آن را با وضوح 640×320 پایین می آورد. این تصویر بلافاصله در یک فایل JPG نوشته شده و برای استفاده بعدی ذخیره می شود. نام JPG. با استفاده از شناسه جلسه رانندگی و شماره فریم در جلسه رانندگی ایجاد می شود. بلافاصله پس از گرفتن اسکرین شات، API "pygame" برای نظرسنجی زاویه فرمان، سطح فعال سازی پدال گاز و سطح فعال سازی پدال ترمز استفاده می شود. Pygame یک API پایتون است که ابزارهایی را برای ساخت بازی ها از جمله دسترسی آسان به ورودی های کنترلر ارائه می دهد. پس از جمع آوری، مقادیر فرمان، گاز و ترمز به فایل CSV. همراه با شناسه عددی مرتبط با تصویر اضافه می شوند. از آنجایی که هدف شبکه عصبی دنبال کردن جاده ای است که در آن قرار دارد، محققی که ماشین درون بازی را رانندگی می کند، مجاز به اجرای انتقال جاده در تقاطع ها در حین ضبط نبود. برای اینکه راننده بتواند آزادانه در شهر رانندگی کند، دکمه ای روی کنترلر برنامه ریزی شد تا به راننده اجازه دهد تا ضبط را در حالی که دکمه پایین نگه داشته است متوقف کند. این انعطاف از گیر افتادن راننده در یک جاده جلوگیری می کرد. علاوه بر این، قبل از نوشتن در یک فایل، تمام فریم ها به مدت تقریباً 10 ثانیه در یک بافر ذخیره می شدند. این تصمیم طراحی به این دلیل گرفته شد که دکمه دیگری روی کنترلر برای حذف تمام فریم های بافر برنامه ریزی شود. این به محقق این امکان را می دهد که در صورت اشتباه، 10 ثانیه آخر رانندگی را حذف کند.
-3-1-2 فرایند افزایش داده ها
محیط شبیه سازی مجموعه ای معقول از تصاویر را ارائه می دهد. با این حال، برای افزایش حجم داده ها و همچنین تجربیات مختلف، داده ها را تقویت می کنیم. این به ما این امکان را می دهد که یک درایو آموزشی در شبیه سازی را با ایجاد دیدگاه هایی برای نزدیک تر کردن خودرو به خطوط مختلف جاده، به معادل چهارده درایو مختلف تبدیل کنیم. شکل 2-7 فرآیند افزایش داده ها و مجموعه هفت تصویر حاصل را نشان می دهد.
ابتدا اندازه تصاویر 640×320 را به وضوح 160×90 تغییر می دهیم. سپس مربع مرکزی 90×90 تصویر انتخاب شده و همان برچسب تصویر اصلی به آن داده می شود. گام بعدی این است که مربع را به پنج پیکسل به چپ یا راست منتقل کنید، با هر تغییر، تصاویر جدیدی را انتخاب و ایجاد کنید. برای هر پنج پیکسلی که تصویر به چپ یا راست منتقل می شود، برچسب ها 0.75 افزایش یا کاهش می یابد. این افزایش
شکل 3-5. فرایند افزایش داده ها
فرآیند به شبکه توانایی رسیدگی به موقعیت های خارج از رانندگی متمرکز را می دهد و به آن اجازه می دهد اشتباهات خود را بهتر تصحیح کند. مجموعه داده های مورد استفاده برای آموزش شبکه های عصبی نتیجه تقریباً پنج ساعت رانندگی بود و شامل 35000 تصویر بود. با استفاده از فرآیند افزایش داده، مجموعه داده به 490000 تصویر افزایش یافت. فرآیند تقویت اساساً به شبکه عصبی 70 ساعت داده آموزشی داد.
علاوه بر ارائه دیدگاه های جدید جدید برای آموزش، این سیستم همچنین می تواند در حین کار با ماشین RC تکرار شود. با برش دادن تصاویر 1:1 از تصویر 16:9 ارائه شده توسط دوربین آن خودرو، می توان چندین طبقه بندی مختلف ایجاد کرد و سپس از آن برای تعیین زاویه فرمان نهایی استفاده کرد.
-3-1-3 آموزش
فرآیند آموزش شبکه عصبی ما با فرآیند استاندارد آموزش شبکه های عصبی پس انتشار یکسان است. هر شاخه از شبکه کنترل فرمان ورودی خود را به طور همزمان دریافت می کند و کل شبکه یک خروجی تولید می کند.
پیش بینی. اگر پیش بینی دقیقاً با برچسب مطابقت نداشته باشد، وزن اتصالات بین نورونی مطابق و متناسب اصلاح می شود. این فرآیند برای کل مجموعه داده تکرار می شود. از آنجایی که شبکه کنترل فرمان و شبکه ضد برخورد با هم تعامل ندارند، به طور وابسته به یکدیگر آموزش داده می شوند. یک تکرار از طریق تمام داده های آموزشی، یک .epoch نامیده می شود. برای یک کار پیچیده مانند رانندگی، معمولاً بین پنجاه تا صد دوره زمانی طول می کشد تا شبکه ها مهارت پیدا کنند. کل فرآیند آموزش توسط بسته یادگیری ماشینی Keras خودکار می شود. Keras از فناوری Tensorflow Google برای ایجاد شبکه ها استفاده می کند.
و آنها را با استفاده از GPU تسریع کنید. این شبکه با استفاده از GPU GTX970 آموزش داده شده است
-3-1-4 توسعه معماری
این بخش تست هایی را که در اولین تکرار شبکه عصبی خود در بخش 3.1.1 شرح داده شده است، پوشش می دهد.
-3-1-5 تجزیه و تحلیل پارامتر
قبل از شروع آزمایشات در مسیر، ما نیاز به بهینه سازی شبکه برای تعیین پیکربندی ورودی بهینه داشتیم. شبکه عصبی اولیه ای که برای هدایت ماشین کنترل از راه دور استفاده می شود می تواند پیکربندی های داده های ورودی زیادی را مدیریت کند. همانطور که قبلا گفته شد دو بخش اصلی از داده های ورودی وجود دارد: تصاویر و زوایای فرمان گذشته. تصاویر و زوایای فرمان به صورت آرایه به شبکه وارد می شوند. اجازه دهید جدیدترین قاب تصویر n و شماره یا را فراخوانی کنیم فریم های قبلی j. مجموعه تصاویر ارائه شده به شبکه عصبی را می توان به صورت n تا n-j تعریف کرد. همین امر را می توان در مورد زوایای فرمان قبلی نیز گفت. اجازه دهید جدیدترین زاویه فرمان را m و تعداد زوایای فرمان قبلی را i بنامیم. مجموعه زوایای فرمان ارائه شده به شبکه را می توان به صورت m تا m-i تعریف کرد. هدف از تجزیه و تحلیل پارامتر تعیین مقادیر i و j است که منجر به موثرترین محرک می شود. برای ثابت نگه داشتن معماری شبکه، محدوده مقادیر j به f2 : : : 8g محدود شد. همانطور که در بخش معماری شبکه بحث شد، شبکه عصبی از پیچیدگی سه بعدی به عنوان وسیله ای برای کاهش ابعاد داده استفاده می کند.
با توجه به ماهیت پیچیدگی سه بعدی، کاهش j به زیر 3 منجر به پیکربندی داده نامعتبر در قسمتی از شبکه می شود. کران بالایی روی 8 تنظیم شده است زیرا هر مقدار بزرگتر از 8 منجر به خطاهای "خارج از حافظه" در سیستم های مورد استفاده برای اجرای شبکه می شود. مقادیر تست شده برای i توسط مجموعه f1 تعریف می شوند. 2 4 6 8; 10 گرم آزمایش ها با آموزش شبکه ای با هر یک از ترکیب های ممکن (i; j) برای 20 دوره و سپس آزمایش عملکرد اعتبارسنجی هر شبکه از نظر دقت و توان انجام شد. دقت بر حسب میانگین خطای فرمان داده شده است. دقت واضح ترین معیاری است که باید در نظر گرفته شود، اما توان عملیاتی داده تقریباً به همان اندازه مهم است. هر چه شبکه برای طبقه بندی یک نقطه داده معین بیشتر طول بکشد، خودرو در طول پردازش بیشتر سفر کرده و عمل کنترلی حاصله کمتر مرتبط خواهد بود. مجموعه داده آموزشی شامل 8167 نقطه داده و مجموعه آزمایشی شامل 1843 نقطه داده است. هیچ همپوشانی بین دو مجموعه وجود ندارد.
هر نمره دقت میانگین پنج آزمون است. شایان ذکر است که این یک تست کوچک توسط استانداردهای یادگیری ماشین است و تغییرات معماری شبکه ممکن است نتایج متفاوتی به همراه داشته باشد، به خصوص با نزدیک شدن j به عدد 8. واضح ترین نتیجه این آزمایش این است که i هیچ تاثیر محسوسی بر زمان پردازش ندارد.
زمان پردازش در تمام مقادیر i برای هر مقدار j ثابت بود. دیدن این تعجب آور نیست زیرا هر تصویر شامل 160 ∗ 90 ∗ 3 = 43 است. 200 مقدار و حداکثر زوایای فرمان گذشته 10 مقدار را ایجاد می کند. شکل 2-8 رابطه بین تعداد فریم در هر نقطه داده و زمان مورد نیاز برای پردازش یک نقطه داده معین را نشان می دهد. از آنجایی که زمان پردازش برای همه مقادیر i در یک مقدار j معین ثابت است، نمودار محدود شده است که فقط j را شامل شود.
در (i; j) = (4; 4) شبکه به کمترین رتبه خطای خود دست یافت و زمان پردازش نسبتاً کم است.
این تا حدودی با شهود مخالفت می کند که داده های بیشتر با دقت بهتر مرتبط نیست، اما فقط مقداری دانش وجود دارد که می تواند در شبکه ای با اندازه معین ذخیره شود. در (i; j) = (4; 4) این شبکه عصبی به نقطه تعادل خود می رسد. شکل 10 میانگین میزان خطا را برای همه مقادیر i در یک مقدار معین j نشان می دهد. از این نمودار می بینیم که چهار فریم در هر نقطه داده کمترین میزان خطا را ارائه می دهد.
شکل 3-6. فریم در هر نقطه داده با توجه به زمان محاسبه
-3-1-6 تحلیل بررسی
روش ادغام اولیه یک رویکرد فشرده حافظه GPU است. حافظه GPU محدود و مجموعه داده های ورودی بزرگ به این معنی است که شبکه عصبی برای قرار گرفتن در حافظه GPU باید کم عمق تر باشد. این شبکه همجوشی اولیه با چهار فریم در تست های اعتبارسنجی با نرخ خطای 2.2 درصد عملکرد خوبی داشت.
پس از اجرا بر روی ماشین RC، شبکه عصبی ناکارآمد بود و قادر به انجام موفقیت آمیز یک دور از مسیر تست خارج نشد. یکی از دلایل احتمالی این نقص عملکرد، سرعت حرکت آهسته خودروی RC است. از آنجایی که ماشین بسیار آهسته حرکت می کرد، هر یک از تصاویر ورودی مشابه بودند و بنابراین هر فریم متوالی اطلاعات مفید اضافی کمی ارائه می کرد. دلیل احتمالی دیگر این است که حافظه GPU بیش از حد برای مدیریت حجم زیادی از داده های ورودی استفاده شده است. این بدان معناست که شبکه سبک درک اساسی باید بسیار کوچک باشد تا در حافظه GPU جای بگیرد. کاهش تعداد نورون های شبکه زیربنایی، توانایی طبقه بندی کل شبکه را محدود کرد.
شکل 3-7. فریم در هر نقطه داده با توجه به نرخ خطا
یکی از نگرانی های ما در مورد عملکرد ماشین RC ناشی از سیستم پخش ویدئویی است که در سیستم تست RC خود استفاده کرده ایم. پخش جریانی ویدیو مقدار زیادی از تاخیر کنترل را معرفی می کند زیرا فریم ها باید از طریق وای فای به لپ تاپ پخش شوند. این تاخیر به این معنی بود که ورودی های کنترلی ما همیشه با تاخیر مواجه می شدند و این همان چیزی است که سرعت حرکت آهسته ذکر شده در بالا را ضروری می کرد. هر چه تاخیر بیشتر باشد، ورودی های کنترلی ما کمتر مرتبط هستند. اضافه شدن زمان محاسبات طولانی می تواند این موضوع را تشدید کند. مشکلی که از این وضعیت ناشی می شود این است که ماشین RC تمایل دارد با رانندگی بسیار نزدیک به لبه پیست، خود را در موقعیت هایی قرار دهد که هرگز در تمرین ندیده بود. هنگامی که در موقعیت جاده ای ناآشنا قرار می گیرد، عملکرد ماشین می تواند غیرقابل پیش بینی شود.
-3-1-7 تجدید نظر ها
برای رفع نگرانی هایمان، معماری شبکه عصبی خود را تغییر دادیم تا فقط از فریم های منفرد استفاده کنیم. این به شبکه های عصبی عمیق تر اجازه می دهد تا در حافظه GPU بارگذاری شوند، که به نوبه خود به شبکه اجازه می دهد تا رفتارهای متنوع تری را بیاموزد. همچنین به ما اجازه می دهد تا روش افزایش داده ها را که در بخش 3.2.5 توضیح داده شده است، پیاده سازی کنیم. پس از یادگیری از اشتباهات خود، توانستیم شبکه عصبی را طراحی و اجرا کنیم که بخش 3.1 شرح داده شده است.
-3-1-8 اعتبار سنجی
پس از تکمیل فرآیند آموزش، شبکه عصبی را اعتبارسنجی کردیم. داده های مورد استفاده برای اعتبار سنجی از GTA V به همان شیوه داده های آموزشی جمع آوری شد. اعتبارسنجی یک مرحله میانی بین آموزش و آزمایش دنیای واقعی فراهم می کند و به ما امکان می دهد دقت شبکه عصبی را روی داده های مشابه داده های آموزشی آزمایش کنیم. در طول آزمایش اعتبارسنجی، شبکه عصبی 10127 تصویر تقویت شده را که در طول آموزش در معرض آنها قرار نگرفته بود طبقه بندی کرد. با استفاده از برچسب های موجود، میانگین خطای مطلق فرمان را بین زاویه فرمان محاسبه شده شبکه و زاویه فرمان برچسب گذاری شده محاسبه کردیم. در تست اعتبارسنجی، شبکه مورد استفاده برای آزمایش مسیر میانگین خطای مطلق 1.9٪ را تولید کرد. با دستیابی به نرخ خطا به این پایین، می توانیم نسبتاً به توانایی شبکه عصبی در تقلید از رفتار نشان داده شده توسط محرک انسان در طول جمع آوری داده ها اطمینان داشته باشیم.
-3-1-9 تحلیل نوع جاده
برای به دست آوردن درک عمیق تر از قابلیت های شبکه عصبی، داده های اعتبار سنجی اضافی را جمع آوری کردیم و ارزیابی کردیم. عملکرد شبکه عصبی در چهار نوع مختلف جاده نمونه ای از هر نوع جاده در شکل 11 ارائه شده است. تفاوت بین خط مرکزی نقطه چین، خط مرکزی دوتایی و جاده های بدون خط سفید بیرونی، نحوه علامت گذاری مرزهای خطوط است. با این حال، آزادراه ها دارای دو، سه یا چهار خط هستند که در هر جهت با خطوط سفید بریده ای که خطوط را از هم جدا می کنند، هستند. شکل 12 عملکرد شبکه عصبی را در چهار نوع جاده ای که آزمایش کردیم را نشان می دهد. هر نقطه در شکل 12 نشان دهنده میانگین میزان خطا در نوع جاده مربوطه است. نوارهای خطا در اطراف هر نقطه نشان دهنده یک انحراف استاندارد است. مقادیر میانگین به طور خاص در جدول در شکل 13 برشمرده شده است. نرخ خطا در تمام انواع جاده ها به جز جاده ها نسبتاً سازگار است.
شکل 3-8. انواع جاده های درون بازی
بدون خط کشی بیرونی میزان خطا در جاده های بدون خط کشی بیرونی تقریباً چهار برابر بیشتر از سه نوع جاده دیگر است. این اختلاف به ما نشان می دهد که سیستم کنترل خودروی خودران ما در جاده هایی با خطوط بیرونی به طور قابل توجهی بهتر عمل می کند و برای رانندگی ایمن در جاده های بدون خط بیرونی نیاز به بهبود دارد. از آنجایی که مقادیر مثبت فرمان مربوط به پیچ های راست، مقادیر منفی فرمان مربوط به پیچ های چپ، و نرخ خطا در همه انواع جاده ها منفی است، می توان نتیجه گرفت که شبکه عصبی دارای یک سوگیری به سمت چپ است. این ممکن است به این دلیل باشد که رنگ خاکستری زغالی سنگفرش و رنگ زرد خط کشی جاده ها کنتراست قابل توجهی ایجاد می کند که به راحتی توسط شبکه عصبی قابل شناسایی است. شکل های 14، 15، 16 و 17 این تحلیل را با نشان دادن نرخ های خطای خاص در هر نوع جاده گسترش می دهند. شکل 14 میزان خطای شبکه عصبی را در هر یک از فریم های اعتبارسنجی با خطوط مرکزی چین نشان می دهد. هنگام گردش به چپ در جاده های دارای خطوط مرکزی چین، شبکه عصبی میانگین خطای 1.35-% در هر فریم داشت. هنگام چرخش به راست، شبکه عصبی نرخ خطای 1.27٪ در هر فریم را نشان داد. در شکل 14 می بینیم
شکل 3-9 میانگین درصد خطا با توجه به نوع جاده
شکل3-1-1 میانگین درصد خطا با توجه به نوع جاده
افزایش جزئی در میزان خطا در 400 فریم اول و افزایش قابل توجه دیگری در میزان خطا از فریم 1100 به فریم 1600 وجود دارد. دسته دوم از نرخ های خطای بالا به سمت انتها شامل گروهی از فریم ها می شود که در غروب خورشید زمانی که ماشین تقریباً مستقیماً به سمت خورشید گرفته می شود، رخ می دهد. غروب خورشید باعث می شود که این قاب ها رنگ نارنجی قابل توجهی داشته باشند و زاویه وسیله نقلیه نسبت به خورشید به این معنی است که انعکاس های خورشید در جاده وجود دارد. ترکیب این دو مشخصه فریم های روشن عجیبی را ایجاد می کند که به احتمال زیاد علت افزایش شدید نرخ خطا هستند. جمع آوری داده های آموزشی اضافی تحت شرایط مشابه احتمالاً این نقص عملکرد را اصلاح می کند.
شکل 15 میزان خطای شبکه عصبی را در هر یک از فریم های اعتبارسنجی با یک خط زرد دوتایی نشان می دهد. هنگام گردش به چپ در جاده هایی با خطوط مرکزی دوگانه، شبکه عصبی میانگین خطای 1.35-% در هر فریم داشت. هنگام گردش به راست
شکل3-1-2. درصد خطا بر اساس فریم در جاده های دارای خطوط وسط نقطه چین
شبکه عصبی نرخ خطای 1.41 درصد در هر فریم را نشان داد. مشابه شکل 14، شکل 15 افزایش نرخ خطا را در 500 فریم اول و دیگری را در حدود 5000 فریم نشان می دهد. بار دیگر، اولین جهش در میزان خطا احتمالاً به دلیل این واقعیت است که در آن تصاویر شب است و جاده کم نور است. با این حال، سنبله بزرگ در اطراف قاب 5000 به احتمال زیاد به دلیل رنگ جاده است. فریم های اطراف Frame 5000 قسمتی از جاده را پوشش می دهند که بر خلاف رنگ معمولی زغالی اکثر جاده ها، خاکستری بسیار روشن است.
سنگفرش آنقدر سبک است که به سختی می توان لبه ای بین خط زرد در مرکز جاده و خود جاده تشخیص داد. شبکه عصبی احتمالاً بر تضاد بین رنگ خط و رنگ جاده برای شناسایی خط متکی است. شکل 16 نرخ خطای شبکه عصبی را در هر یک از فریم های اعتبارسنجی بدون خط سفید بیرونی نشان می دهد. هنگام گردش به چپ در جاده های بدون خطوط بیرونی، شبکه عصبی میانگین خطای 13/3- درصد در هر فریم داشت. هنگام چرخش به راست، شبکه عصبی نرخ خطای 1.90٪ در هر فریم را نشان داد. هر دوی این میزان خطا به طور قابل توجهی بالاتر از دو نوع جاده قبلی است. همچنین جالب است بدانید که خط مرزی در سمت راست جاده تاثیر قابل توجهی بر توانایی شبکه عصبی برای طبقه بندی دقیق پیچ به چپ دارد. این به احتمال زیاد به دلیل این واقعیت است
شکل3-1-3. درصد خطا بر اساس فریم در جاده هایی با خطوط مرکزی دوتایی
که شبکه عصبی یاد گرفته بود از فاصله خط سفید بیرونی به عنوان نقطه مرجع استفاده کند. شکل 17 میزان خطای شبکه عصبی را در هر یک از فریم های اعتبارسنجی که در یک آزادراه انجام می شود نشان می دهد. در بزرگراه ها، شبکه عصبی کمترین میزان خطا را در هر دو پیچ به چپ و راست نشان داد. در پیچ های چپ در آزادراه ها، شبکه عصبی نرخ خطای 0.65-% و در پیچ های راست نرخ خطای 0.72% را نشان داد. این میزان خطای پایین به احتمال زیاد به این دلیل است که رانندگی در بزرگراه معمولاً فقط شامل پیچ های ملایم و اصلاحات جزئی است. پس از تکمیل طراحی شبکه عصبی ما و تایید توانایی آن در جهت یابی، ما به آزمایش در دنیای واقعی رفتیم. در فصل 4 ما تست هایی را که برای تعیین کمیت قابلیت های سیستم کنترل شبکه عصبی خود انجام دادیم، شرح می دهیم.
شکل 3-1-4 درصد خطا بر اساس فریم در جاده هایی که خط سفید بیرونی ندارند
شکل3-1-5. درصد خطا بر اساس فریم در بزرگراه ها
فصل 4:
تست و ارزشیابی
مقدمه
در این فصل، آزمایش های مختلف انجام شده برای تنظیم و مشخص کردن سیستم ماشین RC و شبکه عصبی را مورد بحث قرار خواهیم داد. این فصل با بحث در مورد ابزار دقیق ماشین RC در بخش 4.1 آغاز خواهد شد. بخش 4.2 تست های مسیر از جمله طراحی مسیر، تنظیم حساسیت، تست عملکرد، مشخصه دریچه گاز و تست ضد برخورد را پوشش می دهد.
ماشین کنترل از راه دور
برای تایید شبکه عصبی در یک سناریوی دنیای واقعی، ما یک ماشین RC را ابزار دقیق و اصلاح کردیم، که سپس آن را به شبکه عصبی در حال اجرا روی یک لپ تاپ متصل کردیم.
ماشین RC به ما این امکان را داد که یک محیط کوچک تر بسازیم تا انواع جاده ها و پیچ های متعددی را آزمایش کنیم که در ماشین های بزرگ تر غیرممکن است. ماشین به اندازه کافی بزرگ نیست که بتواند سیستم محاسباتی و باتری های مورد نیاز را حمل کند، بنابراین ما کنترل از راه دور را برای ارتباط با ماشین و همچنین با لپ تاپی که شبکه عصبی را اجرا می کند، تغییر می دهیم.
شکل 18 اجزای مختلف سیستم و نحوه اتصال آنها را نشان می دهد. ما از یک ماشین رالی RC در مقیاس 1/18 Latrax استفاده کردیم. هزینه مناسبی دارد و سبک صحیح کنترل از راه دور را برای ابزار دقیق آسان ارائه می دهد. برای اینکه ماشین با سرعت کمتری حرکت کند و در پیچ ها متوقف نشود، چرخ های جدیدی را طراحی و پرینت سه بعدی کردیم که ضریب دنده را کاهش می دهد. ماشین RC از یک دوربین SainSmart Wide Angle با لنز زاویه باز 160◦ استفاده می کند. این دوربین با استفاده از UV4L تصاویر را با وضوح 200×116 می گیرد و با نرخ فریم 40 فریم بر ثانیه اجرا می شود. لنز زاویه باز اجازه می دهد تا اطلاعات بیشتری در هر فریم ثبت شود و نرخ فریم نسبتاً بالا امکان به روز رسانی های مکرر کنترل را فراهم می کند. دوربین به Raspberry Pi Zero W متصل می شود که تصاویر را از طریق WiFi به لپ تاپ پخش می کند.
لپ تاپ تصاویر را از طریق WiFi می پذیرد و فرمان قبلی را پیگیری می کند
شکل 4-1. بررسی اجمالی سیستم
160×90 و سپس دو تصویر اضافی تولید می کند. یک تصویر از 10 پیکسل در سمت راست مرکز و دیگری 10 پیکسل به سمت چپ گرفته شده است. سپس شبکه عصبی فرمان هر یک از تصاویر را به عنوان ورودی طبقه بندی می کند و زاویه فرمان را محاسبه می کند. با میانگین گیری دو طبقه بندی از دیدگاه های مختلف، می توان میدان دید را گسترده تر کرد و آثار خطاها را در یک طبقه بندی کاهش داد. شبکه ضد برخورد با یک برش مرکزی 90×90 از تصویر اصلی ارائه شده است تا توانایی آن در تشخیص خودروهای روبرو را به حداکثر برساند. این زاویه فرمان ارائه شده توسط شبکه عصبی درصدی از 100- تا 100 است. با این حال، سیستم خودروی RC به مقداری بین 0 و 4095 با 2047 مربوط به نشان دادن چرخ ها به سمت جلو نیاز دارد. ترجمه بین این دو مقدار به دلیل تفاوت های بین خودروی RC و خودروی GTA، چالش برانگیز است. به این ترتیب، ما باید حساسیت این ترجمه را تنظیم کنیم. ترجمه با ضرب خروجی شبکه عصبی در مقدار مطلق خودش و سپس ضرب در یک ثابت تقویت تنظیم ایستا انجام می شود. با وجود تیونینگ اضافه شده، ما روی این لایه ترجمه تصمیم گرفتیم تا به شبکه امکان کنترل وسایل نقلیه مختلف را بدهد. با این حال، فرآیند ترجمه باید برای هر سیستم خودروی خاص تنظیم شود. کنترل دریچه گاز کمی متفاوت عمل می کند. از آنجایی که ما به دلیل وای فای با تاخیر در انتقال ویدئو مواجه هستیم، این مهم است که خودرو در حین رانندگی به آرامی حرکت کند. در طول تست پیست، دریچه گاز روی یک مقدار ثابت تنظیم شده بود تا خودرو در هیچ نقطه ای از مسیر متوقف نشود یا تا سرعت بالا شتاب نگیرد. در طول تست ضد برخورد، شبکه عصبی مجاز است دریچه گاز را کنترل کند، مگر اینکه خروجی دریچه گاز به زیر آستانه تعیین شده توسط آزمایش های مشخصه دریچه گاز ما کاهش یابد، در این صورت سرعت به 0 کاهش می یابد. به این ترتیب اگر خودرو بیش از حد برسد، متوقف می شود. نزدیک به وسیله نقلیه دیگر
سپس لپ تاپ دستورات فرمان و دریچه گاز را از طریق WiFi به یک میکروکنترلر فوتون در کنترل از راه دور RC موجود ارسال می کند. فوتون از دو خروجی DAC برای دور زدن کنترل های دستی موجود و ارائه مقادیر فرمان و دریچه گاز به خودرو استفاده می کند.
راه اندازی آزمایش و روش
هنگامی که سیستم خودروی RC عملکردی داشت، ما یک روش مسیر و آزمایش برای آزمایش شبکه طراحی کردیم. ما چهار آزمایش را با استفاده از سیستم ماشین RC انجام دادیم: (1) تنظیم حساسیت سیستم کنترل، (2) اعتبار سنجی در مسیر کامل عملکرد و پایداری سیستم، (3) تعیین مشخصات خروجی دریچه گاز، و (4) اعتبار سنجی عملکرد ضد برخورد…
-4-4 طراحی مسیر
مسیر آزمایشی که برای آزمایش ایجاد کردیم، از چندین نوع جاده و پیچ تشکیل شده است که در شکل 19 نشان داده شده است.
شکل4-2. ارزیابی مسیر
(2) یک خط در هر جهت با یک خط زرد دوتایی که از وسط پایین می رود، و (3) یک خط در هر جهت با یک خط زرد چین دار که از وسط پایین می رود. انواع مختلفی از پیچ ها نیز وجود دارد که از جمله می توان به پیچ های مستقیم طولانی، خم های ملایم، پیچ های عریض، پیچ های تیز و چرخش با زوایای مختلف اشاره کرد. این شرایط مسیر برای آزمایش استحکام سیستم کنترل در انواع مختلف جاده های رایج انتخاب شدند. چندین وسیله نقلیه در شکل 3-9 نشان داده شده است تا اندازه مسیر را نسبت به وسیله نقلیه آزمایشی نشان دهد. ما مسیر را به چهار بخش تقسیم کردیم که در شکل 19 نشان داده شده است که هر بخش شامل یک نوع جاده خاص است. بخش A از نوع 1 که در شکل 20 نشان داده شده است تشکیل شده است. بخش B از نوع 3 تشکیل شده است در حالی که بخش های C و D از نوع 2 تشکیل شده اند.
شکل4-3. انواع جاده
-4-5 ارزیابی مسیر ها
تست مسیر در دنیای واقعی یکی از حیاتی ترین بخش های فرآیند تحقیق ما است. در این بخش، روش های تست را برای چهار ویژگی عملکرد مختلف ارائه خواهیم کرد.
-4-6 روش تنظیم حساسیت
هدف از تست حساسیت کنترل، یافتن تنظیمات حساسیتی بود که منجر به نرم ترین رانندگی ممکن می شود. فرآیند تنظیم حساسیت شامل دو مرحله بود. مرحله اول تعیین کرد که کدام تنظیمات حساسیت را بیشتر تجزیه و تحلیل کند و فاز دوم آن تنظیمات را تحت شرایط سخت تر آزمایش کرد.
ابتدا، فرآیند تست اولیه به خودرو اجازه داد تا سه دوره آزمایشی یک دور از پیست را کامل کند. اگر خودرو هر یک از این آزمایش ها را تکمیل می کرد، خودرو از آن تنظیمات عبور می کرد. اگر ماشین نتوانست هیچ دوری را طی کند، ماشین در آن تنظیمات شکست می خورد. برای تنظیماتی که خودرو طی کرد، مرحله دوم فرآیند تیونینگ صافی و ایمن بودن تنظیمات حساسیت قابل اجرا را تعیین کرد. که در در این آزمایش ها، خودرو پنج بار با کمترین سرعت خود در اطراف پیست راند. ما تعداد مواردی را ردیابی کردیم که هر یک از دو چرخ جلو با علامت گذاری خط تماس پیدا کرد. اگر چرخ سمت چپ ماشین با خط زرد وسط یا چرخ جلو سمت راست ماشین با خط سفید بیرونی برخورد کرد، یک نقطه اضافه می کنیم.
امتیاز آن آزمایش اگر خودرو مرتکب نوعی شکست غیرقابل جبران شود، مانند عبور کامل از جداکننده خطوط زرد یا خروج از مسیر تا جایی که دید آن را از دست داده است، آن آزمایش به طور خودکار یکصد امتیاز دریافت می کند. ما از تنظیم حساسیت با کمترین امتیاز برای تست عملکرد استفاده کردیم.
شکل 4-2 سناریوهای مختلف برای کسر امتیاز را نشان می دهد. تصویر A از شکل 21 موقعیت جاده خنثی را نشان می دهد، حفظ این موقعیت جاده منجر به کسر نمی شود. تصاویر B و D به ترتیب شرایطی را نشان می دهند که لمس خط زرد یا سفید را تشکیل می دهند. تصاویر C و E به ترتیب شرایطی را نشان می دهند که عبور از خط زرد یا سفید را تشکیل می دهند. لطفاً توجه داشته باشید که موقعیت های چرخ عقب برای امتیاز دادن به حساب نمی آیند.
شکل 4-4. سناریوهای کسر امتیاز
-4-7 روش شناسی عملکرد
هدف از آزمایش عملکرد، تعیین استحکام قابلیت ناوبری شبکه عصبی کنترل فرمان بود. در تست پیست، خودرو تلاش می کند تا 100 دور در خلاف جهت عقربه های ساعت پیست را بپیماید. برای اطمینان از ارزیابی دقیق عملکرد شبکه عصبی، خطاهای ناشی از خرابی جریان ویدئو یا فرستنده RC در سیستم محاسبه نمی شوند، زیرا این خطاها در اجرای اندازه کامل وجود ندارند. معیار نهایی استحکام تعداد دورهایی است که می توان قبل از ارتکاب خطای غیرقابل جبران (عبور از جداکننده خط زرد یا خروج از مسیر) انجام داد. علاوه بر این، مسیر به چهار بخش تقسیم شد. تعداد و نوع خطاها برای هر بخش ثبت شد. خطاها شامل لمس خطوط مرکزی یا بیرونی با چرخ و عبور از خطوط مرکزی یا بیرونی با چرخ است.
-4-8 روش شناسایی دریچه گاز
برای ارزیابی سیستم ضد برخورد، ابتدا خروجی دریچه گاز از شبکه ضد برخورد را زمانی که ماشین دیگری در فواصل مختلف در مقابل ماشین RC خودران قرار می گیرد، مشخص کردیم. خودروی اصلی در فواصل یک اینچی گسسته از جلوی خودروی خودران از 1 تا 20 اینچ قرار می گرفت. در طول این آزمایش مشخصه، ماشین خودمختار حرکت نمی کرد و نتیجه مستقیماً از خروجی شبکه عصبی گرفته شد.
-4-9 روش شناسی عملکرد ضد برخورد
پس از مشخص کردن عملکرد شبکه ضد برخورد، آزمایشی را برای ارزیابی قابلیت های آن در حین رانندگی انجام دادیم. ماشین RC در پیست ما شش فوت پشت سر ماشین دیگری در پیست قرار گرفت. ماشین دوم برای این تست ثابت ماند. ماشین آرسی شروع به رانندگی کرد و به ماشین ثابت نزدیک شد. زمانی که خودروی آرسی به دلیل شبکه ضد برخورد متوقف شد، فاصله دو خودرو را اندازه گیری کردیم. ما 20 آزمایش از این آزمایش انجام دادیم.
-4-1-1 نتایج
پس از تعیین نحوه آزمایش سیستم و معیارهای مناسب، همه آزمایش ها را انجام دادیم.
-4-1-2 نتایج حساسیت
مرحله اول تست حساسیت منجر به ضریب حساسیت 25 شد. یک حد پایین واضح برای ضرب کننده فرمان وجود دارد. زمانی که ضریب فرمان روی 11 تنظیم شد، خودرو قادر به چرخش کافی برای تکمیل بسیاری از پیچ ها نبود. با این حال، در 12، ماشین با موفقیت یک دور از پیست را در اولین آزمایش خود به پایان رساند. محدوده مقادیری که به خودرو اجازه می دهد تا محدوده پیست را تا 200 با موفقیت طی کند. با این حال، در هر تنظیم بالاتر از 100، رفتار خودرو به وضوح نامنظم می شود زیرا خودرو به طور مداوم بیش از حد سخت می چرخد و سپس بیش از حد اصلاح می شود.
پس از تعیین محدوده حساسیت های قابل دوام، مرحله دوم تست حساسیت با حداقل تنظیم قابل دوام 12 شروع شد. ما در مرحله بعدی در تنظیم 15 آزمایش کردیم و ضریب فرمان را پنج برابر کردیم تا به 60 رسیدیم. شکل 22 تعداد خطاها را نشان می دهد. ساخته شده در هر سطح حساسیت تنظیمات 25، 30 و 35 همگی عملکرد خوبی داشتند و به ترتیب میانگین 2.2، 2.6 و 2.4 امتیاز را به دست آوردند. با این حال، بالای 35، روندی شروع به ظهور کرد. ماشین شروع به حرکات تند کرد و اشتباهاتش را تصحیح کرد. هر تنظیم بعد از 35 عملکرد بدتری داشت و در نتیجه امتیاز بالاتری نسبت به تنظیمات قبلی کسب کرد. هنگامی که ضریب فرمان به 60 رسید، آزمایش را به پایان رساندیم. در آن مرحله، خودرو میانگین امتیاز 8.6 را کسب کرد. تنظیم ضریب 25 بهترین نتیجه را با کمترین امتیاز 2.2 ارائه کرد. ما از این مقدار برای تست عملکرد خود استفاده کردیم. اگرچه عملکرد در بین تنظیمات آزمایش شده متفاوت بود، همه این تنظیمات، به جز تنظیمات اول، قادر به انجام این کار بودند
با موفقیت چندین دور را در اطراف مسیر آزمایشی انجام دهید. این امکان پذیر است زیرا شبکه عصبی می تواند خطاهای خود را تصحیح کند در صورتی که بیش از حد دور شود. این رفتار سطح بالایی از انعطاف پذیری را نشان می دهد و نشان می دهد که سیستم کنترل مشابهی را می توان برای سایر وسای نقلیه نیز اعمال کرد.
شکل 4-5. نتایج حساسیت
-4-1-4 نتایج عملکرد
در تست پیست 100 دور، این خودرو با موفقیت 98 دور را با تنها دو شکست به دلیل مشکلات ناوبری پشت سر گذاشت. اولی رخ داد در دور 77 و دومی در دور 94 رخ داد. هر دوی این خرابی ها باعث شد که ماشین از مسیر خارج شود که در آن نقطه ما آن را در همان نقطه ای که از آن خارج شده بود جایگزین کردیم و آزمایش را ادامه دادیم. این منجر به میانگین فاصله تا شکست 47 دور می شود.
علاوه بر این، نحوه عملکرد خودرو را در هر بخش نشان داده شده در شکل 19 نظارت کردیم. شکل 23 نتایج این آزمایش ها را با بخش های جاده در امتداد محور x و میانگین میزان خطا در امتداد محور y نشان می دهد. این نرخ ها شامل دو دوری نمی شود که خودرو دچار نقص ناوبری شد. همانطور که در شکل نشان داده شده است، بخش A بدترین عملکرد را داشته است. این بخش از مسیر با یک خط واحد در هر جهت، یک خط زرد در مرکز و چندین پیچ عریض در حین رانندگی در این بخش، خودرو به طور متوسط 1.28 بار در هر دور خط بیرونی را لمس کرد و به طور متوسط 0.56 بار در هر دور از خط مرکزی عبور کرد. با این حال، ماشین هرگز از خط مرکزی عبور نکرد. اگرچه ایده آل نیست، اما به احتمال زیاد به دلیل میدان دید نسبتا باریک است و به راحتی می توان آن را اصلاح کرد به طور متوسط برش های بیشتر از تصویر اصلی از افست های مختلف گرفته می شود. بخش B بهترین عملکرد را داشت. دارای دو خط در هر جهت با یک خط مرکزی دوتایی است. در این بخش، خودرو تنها یک بار از خط خطی عبور کرد و تنها 0.28 بار در هر دور به هر یک از خطوط خط کشی برخورد کرد. ماشین همیشه مستقیماً در لاین چپ ادغام می شد و تا زمانی که دو لاین دوباره با هم ادغام می شدند در آنجا می ماند. به طور کلی، به طور متوسط در هر دور، خودرو 1.52 لمس خط مرکزی را تجربه کرد، 3.16 لمس خطوط بیرونی، 0.0 گذر از خط مرکزی، و 0.64 عبور از خط بیرونی. از این اطلاعات می توان دید که سیستم یک سوگیری قوی در برابر خط زرد مرکزی نشان می دهد. از آنجایی که هیچ مقاله دیگری این سطح از جزئیات را در مورد نتایج خود ارائه نمی دهد، ما نمی توانیم با کار قبلی مقایسه کنیم.
ما می خواهیم با کاهش تاخیر ویدیو و افزایش چشمگیرتر داده هایمان با استفاده از تبدیل های دیدگاه، تداخل ها و لمس ها را حتی بیشتر کاهش دهیم.
شکل 4-6. نتایج عملکرد
شایان ذکر است که ما ماشین آزمایشی را در خلاف جهت عقربه های ساعت در اطراف پیست داشتیم. ما این کار را انجام دادیم زیرا خودروی آزمایشی نمی توانست به طور مداوم در جهت عقربه های ساعت در مسیر حرکت کند. در بخش 4.4 علت این نقص عملکرد را مورد بحث قرار می دهیم.
-4-1-5 نتایج شناسایی دریچه گاز
شکل 24 نتایج آزمایش های مشخصه دریچه گاز را نشان می دهد. محور x فاصله بین دو خودرو را نشان می دهد در حالی که محور y مقدار دریچه گاز تولید شده توسط شبکه عصبی را نشان می دهد. این نتایج دو ویژگی واضح سیستم را نشان می دهد: حداقل و حداکثر فاصله موثر. در زیر چهار اینچ، خودروی اصلی بیشتر میدان دید دوربین را اشغال می کند و هیچ نمایی از جاده برای استفاده به عنوان مرجع ندارد. بنابراین، کنترل دریچه گاز مقادیر بزرگ و بی معنی را خروجی می دهد. در بالای 9 اینچ، خروجی دریچه گاز بین 20 تا 25 متغیر است، که نشان می دهد خودروی جلوی دوربین یا برای دیدن آنقدر کوچک است یا برای ترمزگیری بسیار کوچک است. با این حال، بین محدوده چهار تا نه اینچ، می توانیم ببینیم که خودرو به طور مداوم فشار ترمز بیشتری را با نزدیک شدن به مانع اصلی اعمال می کند.
-4-1-6 نتایج عملکرد ضد برخورد
ما 20 آزمایش تست ضد برخورد را انجام دادیم. این خودرو با موفقیت در 16 آزمایش از برخورد با شبکه ضد برخورد با ترمزگیری و توقف خودرو جلوگیری کرد. میانگین فاصله توقف این آزمایشات موفق شش اینچ بود.
با این حال، در دو مورد از 20 آزمایش، نه شبکه ضد برخورد و نه شبکه کنترل فرمان نتوانستند از برخورد جلوگیری کنند و سیستم به خودروی ساکن برخورد کرد. دو تست باقیمانده دیگر شکست تصادفی نبودند، بلکه شکست های متوقف کننده بودند. در یکی از این آزمایشات دیگر، شبکه فرمان از جاده خارج شد تا قبل از اینکه شبکه ضد برخورد بتواند ترمز کند، از خودرو دور شد. به نظر می رسد که شبکه کنترل فرمان نیز ممکن است یاد گرفته باشد که از موانع خاصی با رانندگی در اطراف آنها اجتناب کند. در آزمایش دیگر، خودرو برای اجتناب از خودرو از جاده خارج شد و پس از عبور از خودروی ساکن به جاده برگشت.
شکل4-7. نتایج مشخصه دریچه گاز
-4-1-7 Turn Bias Analysis
عجیب ترین جنبه آزمایش پیست ما ناتوانی ماشین RC در کامل کردن مطمئن دورهای خلاف جهت عقربه های ساعت مسیر تست بود. با مشاهده این رفتار، ما تمرکز خود را به تست اعتبارسنجی شبکه عصبی برگرداندیم
-4-1-8 تحلیل چپ در مقابل راست
ما ابتدا فرض کردیم که شبکه عصبی ممکن است در پیچ های راست نسبت به چپ دقت کمتری داشته باشد، که رفتاری را که مشاهده کردیم توضیح می دهد. برای آزمایش این فرضیه، آزمایشی طراحی کردیم تا ببینیم آیا تفاوتی در دقت در چرخش های چپ و راست در داده های اعتبارسنجی ما وجود دارد یا خیر. برای انجام این کار، چندین فریم را که شامل رانندگی در یک پیچ خاص در جاده می شد، با هم گروه بندی کردیم. در زمینه این تجزیه و تحلیل، ما از اصطلاح turn برای ارجاع به مجموعه ای از قاب ها استفاده خواهیم کرد که نشان دهنده یک قوس خاص در جاده هستند. مجموعه تست اعتبارسنجی ما به مجموعه ای از 79 پیچ به چپ و مجموعه 53 چرخش به راست تقسیم شد. شکل 25 و 26 میانگین نرخ خطای شبکه عصبی را در پیچ های چپ و راست نشان می دهد. نقاط داده در تلاشی برای تعیین اینکه آیا سیستم یک سوگیری نسبت به هر طرف مشخصی را نشان می دهد یا نه مرتب شده اند. نوارهای خطا در اطراف هر نقطه نشان دهنده انحراف استاندارد نرخ خطا در تمام فریم ها در یک چرخش معین است. از آنجایی که تعداد گردش های تقریباً مساوی با خطاهای مثبت و منفی در هر جهت پیچ وجود دارد، می توان نتیجه گرفت که هنگام چرخش، سوگیری قابل توجهی به چپ یا راست وجود ندارد. از آنجایی که اکثریت قریب به اتفاق نرخ خطا در هر دو پیچ نزدیک به صفر است و انحرافات استاندارد برای هر دو جهت پیچ نسبتاً کوچک است، ما توانستیم نتیجه بگیریم که بین عملکرد شبکه های عصبی در پیچ های چپ یا راست تفاوت معنی داری وجود ندارد.
-4-1-9 تجزیه و تحلیل وضوح چرخش
به دنبال توضیحی برای سوگیری مشاهده شده در برابر پیچ های راست، ما به مسیر آزمایش بازگشتیم. ما متوجه شدیم که از آنجایی که مسیر ما یک حلقه است، خط بیرونی حلقه فاصله بیشتری نسبت به خط داخل مسیر دارد. این بدان معناست که رانندگی در امتداد داخل مسیر منجر به پیچ های تندتر نسبت به لاین بیرونی می شود. با این اطلاعات ما پس از آن
شکل 4-8. میانگین میزان خطا بر حسب نوبت: گردش به چپ
فرض کرد که زوایای دور بالاتر منجر به نرخ خطای بالاتری می شود که می تواند رفتار غیرعادی را که در مسیر آزمایش مشاهده کرده بودیم توضیح دهد. برای آزمایش این تئوری، ما هر فریم جداگانه را از داده های چرخشی خود بر روی یک نمودار پراکنده رسم کردیم به طوری که محور x قدر مطلق زاویه فرمان صحیح و محور y نشان دهنده خطا پس از طبقه بندی است. اگر فرضیه ما درست باشد، می توان انتظار داشت که با افزایش قدر مطلق زاویه فرمان شاهد افزایش درصد خطا باشیم. این نمودار در شکل 27 نشان داده شده است. در شکل 27 می بینیم که هیچ ارتباطی بین بزرگی زاویه فرمان و خطا وجود ندارد و یک بار دیگر فرضیه ما را رد می کند.
-4-2-1 چپ در مقابل راست با تحلیل تاخیر
از آنجایی که هیچ تفاوتی در توانایی شبکه عصبی برای چرخش به چپ یا راست در داده های اعتبارسنجی مشاهده نکردیم، و هیچ تفاوتی در میزان خطا بر اساس وضوح پیچ مشاهده نکردیم، ویژگی های تنظیم تست خود را در نظر گرفتیم. یکی از محدودیت هایی که ما مجبور بودیم در طول آزمایش واقعی خود با آن دست و پنجه نرم کنیم، تاخیر ارسال ویدیو بود. ما فرض کردیم که تاخیر ارسال ویدیوی ما ممکن است بر چرخش چپ و راست تاثیر متفاوتی بگذارد. برای آزمایش این فرضیه، طبقه بندی فرمان خود را یک فریم به تاخیر انداختیم. به این ترتیب فریم n با زاویه فرمان از فریم n + 1 برچسب گذاری می شود. این همان اثر تاخیر ویدیو را ایجاد می کند.
شکل4-9. میانگین میزان خطا بر حسب نوبت: چرخش به راست
پس از جابجایی برچسب هایمان، همان آزمایشی را که در 4.4.1 انجام دادیم برای تولید شکل های 28 و 29 انجام دادیم. این ارقام انحرافات استاندارد بسیار بالاتری را نسبت به شکل های 25 و 26 نشان می دهد. شکل 29 تعداد چرخش های بیشتری را با انحراف استاندارد بالا نشان می دهد. میانگین خطای هر یک از پیچ های چپ 3.0 و میانگین خطای همه پیچ های راست 3.7 است. لازم به ذکر است که این معیارها میانگین میانگین ها هستند و بنابراین تا حدودی رقیق شده اند. این پدیده به طور موثری ناتوانی خودروی RC را در تکمیل مداوم دورهای ساعتگرد مسیر تست توضیح می دهد. این نتایج با توجه به تفاوت دیدگاه برای پیچ های راست و چپ ایجاد شده توسط رانندگی در سمت راست جاده منطقی است. از لاین سمت راست، یک راننده می تواند مسیر خود را در امتداد پیچ به چپ بیشتر از اطراف یک پیچ به راست ببیند. همچنین لازم به ذکر است که پیچ 57 به چپ و 1 به راست در شب انجام می شود. همانطور که در بخش 3.5.1 ذکر شد، روشنایی ضعیف اثر نامطلوبی بر عملکرد خودرو دارد. ترکیب نور ضعیف و تاخیر شبیه سازی شده به احتمال زیاد دلیل انحراف استاندارد بالا در این پیچ ها
شکل 4-1-1 فرمان زاویه. حقیقت پایه با توجه به خطای طبقه بندی
-4-2-2 بررسی
نتایج آزمایش ما نشان می دهد که داده های آموزش مجازی یک گزینه مناسب برای آموزش شبکه های عصبی است. ماشین RC ما قادر است برای مدت طولانی بدون خطای غیرقابل جبران رانندگی کند و همچنین موانع پیش رو را شناسایی کرده و برای جلوگیری از برخورد متوقف شود. بنابراین، می توان نتیجه گرفت که اگر محیط شبیه سازی شده با واقعیت مطابقت داشته باشد، آموزش شبیه سازی به دنیای واقعی ترجمه می شود. علاوه بر این، سیستم کنترل قادر است تحت طیف وسیعی از تنظیمات حساسیت فرمان به طور موثر رانندگی کند. این نشان می دهد که سیستم کنترل به اندازه کافی منعطف است که می تواند در انواع وسایل نقلیه مختلف اعمال شود. مسیر آزمایشی ما دارای سه نوع جاده مختلف است که نشانگر خوبی از انعطاف پذیری سیستم ما در انواع جاده های مختلف است. در بخش 3.5.1 مشاهده کردیم که این سیستم در جاده هایی با خط بیرونی به خوبی عمل می کند. نتایج آزمایش های دنیای واقعی ما، پشتیبانی بیشتری برای این مفهوم فراهم می کند. این خودرو نه تنها توانست 98 دور از 100 دور را بدون خطای غیرقابل جبران طی کند، بلکه در بخش جاده چند لاین، خودرو همیشه در لاین سمت چپ نزدیک ترین به خط سفید رانندگی می کند.
شکل 4-1-2 میانگین میزان خطا بر حسب نوبت: چرخش به چپ با تاخیر شبیه سازی شده
آزمایش های ما در بخش 4.4.1 نشان داد که شبکه عصبی پس از معرفی تاخیر مصنوعی به طور قابل توجهی بدتر عمل می کند و این تاخیر بیشتر بر چرخش های راست تاثیر منفی می گذارد تا گردش های چپ. آزمایش های مسیر ما به ما اجازه داد هر دوی این پدیده ها را در دنیای واقعی مشاهده کنیم. برای جبران جریمه عملکرد تاخیر انتقال ویدئو، ما باید اطمینان حاصل می کردیم که ماشین RC با سرعت بسیار پایین رانندگی می کند. در تست های پیست ما، این خودرو به دلیل سیستم کنترل، علیرغم تاخیر در انتقال داده، مسافت های نسبتا طولانی را بدون خطا طی کرد. علاوه بر این، خودروی آزمایشی می توانست دورهای پیست ما را در خلاف جهت عقربه های ساعت، که عمدتاً شامل پیچ های چپ می شد، کامل کند. با این حال، ماشین آزمایشی با دورهای جهت عقربه های ساعت مشکل داشت، زیرا چرخش های راست بر آن غالب بود. بدون تاخیر در انتقال ویدیو و دستورالعمل ها از طریق WiFi و کنترل از راه دور RC، می توانیم با خیال راحت فرض کنیم که عملکرد ماشین RC نرم تر خواهد بود. همچنین می توانیم فرض کنیم که خودروی آزمایشی می تواند در درصد بیشتری از زمان ها با موفقیت در پیچ های راست حرکت کند. در یک وسیله نقلیه با اندازه کامل، فضای زیادی برای تجهیزات محاسباتی وجود خواهد داشت که تاخیر انتقال ویدئو را از بین می برد. به دلیل تاخیر، آزمایش های پیست ما آزمایشی چالش برانگیزتر از جاده های واقعی را به سیستم ارائه کردند.
شکل4-1-3. میانگین میزان خطا بر حسب نوبت: چرخش به راست با تاخیر شبیه سازی شده
سیستم ما متکی به یک دوربین ثابت و تکی است که دارای محدودیت هایی است. درک عمق و شعاع چرخش هر دو توسط نمای تک چشمی ارائه شده به شبکه های عصبی محدود می شوند. درک عمق مورد نیاز شبکه ضد برخورد با مقایسه اندازه نسبی به دست می آید. علاوه بر این، شعاع پیچ محدود است، زیرا دوربین قادر به چرخش نیست، که می تواند مرتبط ترین اطلاعات را در مورد جاده در داخل میدان دید حفظ کند. این محدودیت ها را می توان به راحتی با استفاده از دوربین های بیشتر حل کرد. عملکرد سیستم را می توان با ارائه سیستم با تنوع بیشتری از سنسورها افزایش داد. با این حال، احتمالاً به یک محیط شبیه سازی ساخته شده سفارشی برای جمع آوری داده ها نیاز دارد
فصل 5:
جمع بندی و پیشنهادها
نتیجهگیری
کار ما از این ایده پشتیبانی می کند که وسایل نقلیه خودران می توانند با استفاده از شبکه های عصبی انعکاسی انعکاسی آموزش دیده با داده های شبیه سازی تقویت شده کار کنند. ما یک شبکه عصبی را پیاده سازی کردیم و آن را با استفاده از داده های گرفته شده از بازی ویدیویی محبوب self-driving-car-sim آموزش دادیم. سپس عملکرد شبکه عصبی را آزمایش کردیم
با استفاده از داده های تست نیز از بازی گرفته شده است. سپس، قابلیت های شبکه را با استفاده از یک ماشین مقیاس کوچک در دنیای واقعی بررسی کردیم. اعتبار سنجی دنیای واقعی برای تحقیقات رانندگی مستقل بسیار مهم است. همانطور که در آزمایش های خودمان کشف کردیم، عملکرد شبیه سازی و عملکرد دنیای واقعی می تواند به طور قابل توجهی متفاوت باشد. به همین دلیل بسیار مهم بود که عملکرد سیستم خود را در دنیای واقعی بررسی کنیم. برخی از محققان ترجیح می دهند کاوش های خود را به شبیه سازی محدود کنند و هرگز سیستم های خود را در دنیای واقعی آزمایش نکنند. کار ما اهمیت و اثربخشی را نشان می دهد انتقال از شبیه سازی به دنیای واقعی از طریق تعدادی از آزمایش های دنیای واقعی، سیستم ما با موفقیت 98 درصد از دورهای پیست خود را بدون مشکلات ناوبری و همچنین به 90 درصد موفقیت در اجتناب از برخورد به دست آورد. ما توانستیم تنها با استفاده از یک تک به این نتایج دست پیدا کنیم دوربین به عنوان ورودی این یک روش مفید و جدید برای ایجاد و آموزش یک سیستم خودروی خودمختار را نشان می دهد که امکان استقرار مجدد سریع در شرایط جدید و سیستم های جدید را فراهم می کند. در آینده، ما قصد داریم کار خود را برای حمایت از چراغ های راهنمایی و جاده هایی که خطوط بیرونی رنگ شده را ندارند، گسترش دهیم. بعلاوه، ما قصد داریم عملیات روی یک چرخ دستی گلف خودران را تایید کنیم و مقیاس آزمایش های دنیای واقعی را افزایش دهیم تا اعتبار رویکرد خود را بیشتر اثبات کنیم.
تحقیقات آینده
در این بخش انواع تغییرات سخت افزاری و نرم افزاری را پیشنهاد می کنیم. تغییراتی که در بخش های آینده پیشنهاد می کنیم به ما این امکان را می دهد که سیستم خود را به طور گسترده تری آزمایش کنیم یا عملکرد سیستم را بهبود ببخشیم.
-5-3 بازآموزی شبکه های عصبی
مطابق با نتایجی که در بخش 4.4.3 گرفتیم، یک توسعه طبیعی این تحقیق، آموزش مجدد شبکه عصبی موجود با داده های اصلی با برچسب های افست است. با تعدیل برچسب ها برای شبیه سازی تاخیر انتقال ویدیو، ممکن است بتوانیم نه تنها عملکرد در پیچ های راست را بهبود بخشیم، بلکه عملکرد را در همه حالات بهبود دهیم. حتی اگر سیستم کنترل ما بر روی یک وسیله نقلیه با اندازه کامل اجرا شود، تاخیری در انتقال ویدئو وجود نخواهد داشت، تاخیری در ارتباط با زمان مورد نیاز شبکه عصبی برای پردازش فریم وجود خواهد داشت. آموزش مجدد شبکه عصبی برای در نظر گرفتن تاخیرهای پردازش و انتقال احتمالاً عملکرد را به طور قابل توجهی بهبود می بخشد
-5-4 معماری شبکه های عصبی
کاوش های بیشتری در حوزه معماری شبکه های عصبی وجود دارد. یکی از عوامل محدود کننده ای که در طول فرآیند تحقیق خود مجبور به مقابله با آن بودیم، اندازه حافظه GPU است. با توجه به یک GPU با مقدار بیشتری از حافظه داخلی، می توانیم شبکه های پیچیده تری را پیاده سازی کنیم و ساختارهای مختلف را آزمایش کنیم. با توجه به منابع اضافی سیستم، ممکن است بتوان شبکه کنترل دریچه گاز و شبکه کنترل فرمان را در یک شبکه عصبی منشعبی ترکیب کرد. این به طور بالقوه می تواند ما را از سربار نیاز به اجرای دو شبکه به طور همزمان نجات دهد.
-5-5 افزایش استقلال
سیستم ما در وضعیت کنونی خود تنها با پیروی از راهی که در آن است قادر به دستیابی به استقلال است. در آینده، ما قصد داریم کار خود را برای پشتیبانی از چراغ های راهنمایی، جاده هایی که خطوط بیرونی رنگ شده و ورودی چراغ راهنما را ندارند گسترش دهیم. با تشخیص چراغ های راهنمایی و علائم توقف، سیستم ما قادر خواهد بود در تعداد بیشتری از سناریوهای رانندگی، استقلال خود را حفظ کند. این افزودن به طور قابل توجهی سودمندی را در محیط های شهری بهبود می بخشد. با پشتیبانی از جاده های بدون خط کشی بیرونی، تعداد جاده هایی را که سیستم ما می تواند در آنها کار کند، بیشتر می کنیم. در نهایت، با پذیرش وضعیت چراغ راهنما، سیستم ما می تواند یاد بگیرد که با تقاطع ها کنار بیاید. علاوه بر این، با پذیرش ورودی سیگنال راه انداز و یادگیری نحوه برخورد صحیح با تقاطع ها، کنترل کننده ما می تواند برای دستیابی به استقلال تقریباً کامل به یک سیستم ناوبری GPS متصل شود.
منابع
فهرست منابع
[1] R. Games, Grand Theft Auto V," Accessed 2017-1-10. [Online]. Available:
http://www.rockstargames.com/V/
[2] W. P. Warren S. McCulloch, A logical calculus of the ideas immanent in nervous
activity," Bulletin of Mathmatical Biophysics v5, 1943.
[3] D. Cire¸san, U. Meier, J. Masci, and J. Schmidhuber,
Multi-column
deep neural network for traffic sign classification,"
Neural Networks,
vol. 32, no. Supplement C, pp. 333{338, Aug. 2012. [Online]. Available:
http://www.sciencedirect.com/science/article/pii/S0893608012000524
[4] D. Cire¸san, U. Meier, and J. Schmidhuber, Multi-column Deep Neural
Networks for Image Classification," arXiv:1202.2745 [cs], Feb. 2012, arXiv:
1202.2745. [Online]. Available: http://arxiv.org/abs/1202.2745
[5] A. Krizhevsky, I. Sutskever, and G. E. Hinton, ImageNet Classification with
Deep Convolutional Neural Networks," in Advances in Neural Information Processing Systems 25, F. Pereira, C. J. C. Burges, L. Bottou, and K. Q. Weinberger,
Eds. Curran Associates, Inc., 2012, pp. 1097{1105.
[6] A. Karpathy, G. Toderici, S. Shetty, T. Leung, R. Sukthankar, and L. Fei-Fei,
Large-scale video classification with convolutional neural networks," in Proceedings of the IEEE conference on Computer Vision and Pattern Recognition, 2014,
pp. 1725{1732.
[7] DARPA, Darpa Urban Challenge 2007," Accessed 2017-1-15. [Online].
Available: http://archive.darpa.mil/grandchallenge/
[8] S. Thrun, M. Montemerlo, H. Dahlkamp, D. Stavens, A. Aron, J. Diebel, P. Fong,
J. Gale, M. Halpenny, G. Hoffmann, K. Lau, C. Oakley, M. Palatucci, V. Pratt,
P. Stang, S. Strohband, C. Dupont, L.-E. Jendrossek, C. Koelen, C. Markey,
C. Rummel, J. van Niekerk, E. Jensen, P. Alessandrini, G. Bradski, B. Davies,
S. Ettinger, A. Kaehler, A. Nefian, and P. Mahoney, Stanley: The robot that
won the DARPA Grand Challenge," Journal of Field Robotics, vol. 23, no. 9, pp.
661{692, Sep. 2006.
[9] A. Broggi, C. Caraffi, P. P. Porta, and P. Zani, The Single Frame Stereo Vision
System for Reliable Obstacle Detection Used during the 2005 DARPA Grand
Challenge on TerraMax," in 2006 IEEE Intelligent Transportation Systems Conference, Sep. 2006, pp. 745{752.
[10] D. U. C. Team, C. Urmson, J. A. Bagnell, C. Baker, M. Hebert, A. Kelly,
R. Rajkumar, P. Rybski, S. Scherer, R. Simmons, S. Singh, A. Stentz,
W. Whittaker, and J. Ziglar, Tartan Racing: A Multi-Modal Approach to the
DARPA Urban Challenge," Robotics Institute, Apr. 2007. [Online]. Available:
http://repository.cmu.edu/robotics/967
[11] D. A. Pomerleau, Efficient training of artificial neural networks for autonomous
navigation," Neural Computation, vol. 3, no. 1, pp. 88{97, 1991.
[12] M. Bojarski, D. Del Testa, D. Dworakowski, B. Firner, B. Flepp, P. Goyal, L. D.
Jackel, M. Monfort, U. Muller, J. Zhang, X. Zhang, J. Zhao, and K. Zieba, End
to End Learning for Self-Driving Cars," Apr. 2016.
[13] U. Muller, J. Ben, E. Cosatto, B. Flepp, and Y. L. Cun, Off-road obstacle avoidance through end-to-end learning," in Advances in neural information processing
systems, 2006, pp. 739{746.
[14] J. Mannes, Training self-driving cars on the streets of
Los
Santos
with
GTA
V
just
got
easier."
[Online].
Avail
able:
http://social.techcrunch.com/2017/01/11/training-self-driving-cars-on
the-streets-of-los-santos-with-gta-v-just-got-easier/
[15] C. Vallon, Z. Ercan, A. Carvalho, and F. Borrelli, A machine learning
approach for personalized autonomous lane change initiation and control."
[Online]. Available:
learning-approach.pdf
http://www.me.berkeley.edu/ frborrel/pdfpub/machine
[16] B. Huval, T. Wang, S. Tandon, J. Kiske, W. Song, J. Pazhayampallil, M. Andriluka, P. Rajpurkar, T. Migimatsu, R. Cheng-Yue, F. Mujica, A. Coates, and
A. Y. Ng, An empirical evaluation of deep learning on highway driving," CoRR,
vol. abs/1504.01716, 2015.
[17] M. Johnson-Roberson, C. Barto, R. Mehta, S. N. Sridhar, K. Rosaen,
and R. Vasudevan, Driving in the Matrix: Can Virtual Worlds Replace
Human-Generated Annotations for Real World Tasks?" arXiv:1610.01983 [cs],
Oct. 2016. [Online]. Available: http://arxiv.org/abs/1610.01983
[18] A. Filipowicz, J. Liu, and A. Kornhauser, Learning to Recognize Distance
to Stop Signs Using the Virtual World of Grand Theft Auto 5," in TRB
96th Annual Meeting Compendium of Papers, 2017. [Online]. Available:
https://trid.trb.org/view.aspx?id=1439152
[19] Johnny Manson, GTA V Scripting Tutorial j Installation & First Script j #1."
[Online]. Available: https://www.youtube.com/watch?v=NmuoN6z7C8Y
[20] C. Chen, A. Seff, A. Kornhauser, and J. Xiao, Deepdriving: Learning affordance for direct perception in autonomous driving," in Proceedings of the IEEE
International Conference on Computer Vision, 2015, pp. 2722{2730
Technical and Vocational University
Mianeh Technical College
Simulation of autonomous driving with artificial intelligence
By:
Hossein Mahmoodzadeh
Supervisor:
Professor Pariya Jafari
Month Year
2022 – 7
ب
3
ج
10
شبیه سازی ماشین خود ران با هوش مصنوعی00بررسی پیشینه و ادبیات
19
20
38
56
شبیه سازی ماشین خود ران با هوش مصنوعی00جمع بندی و پیشنهادها
59
60
62
1