اتومبیل های خودران — قابلیت تشخیص علائم راهنمایی و رانندگی

۱۷۱ بازدید
آخرین به‌روزرسانی: ۳۰ اردیبهشت ۱۴۰۲
زمان مطالعه: ۳ دقیقه
اتومبیل های خودران — قابلیت تشخیص علائم راهنمایی و رانندگی

یوداسیتی (Udacity)، یک نهاد آموزشی غیرانتفاعی است که در آموزش دوره‌های مختلف مرتبط با نرم‌افزار فعالیت می‌کند. یکی از برنامه‌های آموزشی این نهاد، «نانودگری» (Nanodegree) نام دارد. پروژه شماره 2 این برنامه (Udacity’s Self-Driving Car Nanodegree - SDCND)، در رابطه با استفاده از شبکه‌های عصبی (مخصوصاً شبکه‌های پیچشی یا کانولوشن عمیق) برای طبقه‌بندی و تشخیص علائم راهنمایی و رانندگی است. یکی از مهم‌ترین مسائل مربوط به اتومبیل‌های خودران، توانایی آن‌ها در طبقه‌بندی تصویر یک علامت راهنمایی و رانندگی با توجه نوع آن علامت است. این مسئله اتومبیل‌های خودران را قادر می‌سازد تا در شرایط مختلف، تصمیم‌های مهمی را اتخاذ کنند.

فهرست مطالب این نوشته

کدهای مرتبط با این پروژه در «گیت‌ هاب» قابل دسترس هستند. اگر با مبحث یادگیری عمیق آشنا هستید، پیشنهاد می‌کنیم به فایل «README» در کدهای پروژه مراجعه کنید. بسیاری از جزئیات جذاب این پروژه، در فایل README آن قرار دارد.

بررسی اجمالی پروژه

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

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

این مجموعه داده، 43 نوع مختلف از علائم راهنمایی رانندگی را شامل می‌شود که از نظر کیفیت در محدوده بسیار زیادی تغییر می‌کنند. همه تصاویر موجود، به صورت رنگی بوده و مجموعه‌ای که ما برای آزمایش انتخاب کردیم، دارای مقیاس تصویری کمتر از 32*32 پیکسل بود (تقریباً شطرنجی). درمجموع، حدود 47000 تصویر در مجموعه داده‌ها وجود داشت.

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

  1. منظور از «عمیق» در تعاریف، وجود چندلایه در شبکه‌های عصبی است.
  2. هر لایه، «یاد می‌گیرد» که چگونه ویژگی‌های مربوط به تصویر ورودی را شناسایی کند.
  3. با اتصال این لایه‌ها به یکدیگر، شبکه قادر خواهد بود که «ویژگی‌های ویژگی‌ها» را شناسایی کند. به عنوان مثال، ممکن است خطوط، در اولین لایه شناسایی شود و در دومین لایه، مجموعه‌ای از خطوط (مانند مثلث) شناسایی شوند. به این ترتیب، در یک زمان کوتاه، به شکلی مانند علامت احتیاط خواهید رسید.
  4. شبکه‌های عصبی، با استفاده از قدرت ریاضیات یاد می‌گیرند که کدام‌یک از ویژگی‌ها با طبقه‌بندی داده‌ها در کاربرد مختص به خود مرتبط هستند.

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

برای نشان دادن این مسئله و همچنین آزمایش برای روی یک شبکه نمونه، پنج تصویر از علائم راهنمایی و رانندگی آلمان دانلود شد. بعد از کاهش اندازه آن‌ها به مقیاس 32*32، تصاویر زیر به دست آمد.

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

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

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

حال که این مطلب را خواندید، شاید مطالب زیر نیز بتوانند برای شما مفید باشند:

**

منبع

بر اساس رای ۲ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
codementor
نظر شما چیست؟

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