سفارش تبلیغ
صبا ویژن

یادگیری ماشینی

8 کاربرد جالب یادگیری عمیق در بینایی رایانه ای

بینایی رایانه ای و یادگیری عمیق در بینایی رایانه ای

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

 

1. طبقه بندی تصویر (Image Classification) 

طبقه بندی تصویر شامل قرار دادن یک برچسب به کل تصویر یا عکس است. چند مثال از طبقه بندی تصویر شامل موارد زیر است:
• برچسب زدن تصاویر اشعه ایکس که آیا سرطانی هستند یا خیر
• طبقه بندی اعداد دست نویس
• اختصاص دادن نام به یک عکس یا یک چهره

بینایی رایانه ای و یادگیری عمیق در بینایی رایانه ایشکل الف:  نمونه ای از ارقام دست نویس از مجموعه داده MNIST

یک نمونه محبوب از طبقه بندی تصویر که به عنوان یک معیار مورد استفاده قرار می گیرد مجموعه داده MNIST است. نمونه هایی از طبقه بندی تصویر وجود دارد که شامل عکس اشیاء است. دو نمونه محبوب شامل مجموعه داده های CIFAR-10 و CIFAR-100 است که دارای عکس هایی هستند که به ترتیب در 10 و 100 کلاس طبقه بندی می شوند.
چالش تشخیص تصویری، یک رقابت سالانه است که در آن تیم ها برای بهترین عملکرد در طیف وسیعی از وظایف بینایی رایانه ای بر روی داده های تهیه شده از پایگاه داده ImageNet با یکدیگر رقابت می کنند. بسیاری از پیشرفت های مهم در طبقه بندی تصویر از مقالات منتشر شده حاصل می شود.

بینایی رایانه ای و یادگیری عمیق در بینایی رایانه ای

شکل ب‌:نمونه ای از عکس های اشیاء از مجموعه داده CIFAR-10

 

2. طبقه بندی تصویر با بخش بندی (Image Classification With Localization) 

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

بینایی رایانه ای و یادگیری عمیق در بینایی رایانه ای

شکل ت‌: نمونه ای از طبقه بندی تصویر با بخش بندی یک سگ از VOC 2012

این کار ممکن است شامل اضافه کردن باکس در اطراف نمونه های متعدد از همان شی در یک تصویر باشد. این عمل را به عنوان ” تشخیص شی” می شناسیم. مجموعه داده ILSVRC2016 برای طبقه بندی تصویر با بخش بندی، یک مجموعه داده محبوب است که از 150000 عکس و 1000 دسته اشیا تشکیل شده است.

بینایی رایانه ای و یادگیری عمیق در بینایی رایانه ای

شکل ث‌: نمونه ای از طبقه بندی تصویر با بخش بندی صندلی های چندگانه از VOC 2012

3. تشخیص شی (Object Detection) 

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

بینایی رایانه ای و یادگیری عمیق در بینایی رایانه ایشکل ج‌: نمونه ای از شناسایی شی در بانک اطلاعات MS COCO

 

4. انتقال سبک ( Style Transfer)

انتقال سبک یا انتقال سبک عصبی وظیفه برداشت سبک از یک یا چند تصویر و استفاده از آن سبک بر روی یک تصویر جدید است. این وظیفه را می توان به عنوان نوعی فیلتر عکس یا تبدیل تصور کرد که ممکن است ارزیابی عینی نداشته باشد. به عنوان مثال می توان به استفاده از سبک آثار هنری خاص و معروف (مثل آثار پابلو پیکاسو یا وینسنت ون گوگ) برای عکس های جدید اشاره کرد. مجموعه داده ها معمولا شامل آثار هنری معروفی است که در دسترس عموم قرار دارند و همچنین مجموعه داده های بینایی رایانه ای استاندارد.

بینایی رایانه ای و یادگیری عمیق در بینایی رایانه ایشکل ح‌: نمونه انتقال سبک عصبی از آثار هنری مشهور به یک عکس. برگرفته از “الگوریتم عصبی از سبک هنری”

 

5. رنگ آمیزی تصویر (Image Colorization)

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

بینایی رایانه ای و یادگیری عمیق در بینایی رایانه ایشکل خ‌: نمونه هایی از رنگ آمیزی عکس. برگرفته از “رنگ آمیزی تصویر رنگارنگ”

 

6. بازسازی تصویر (Image Reconstruction)

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

بینایی رایانه ای و یادگیری عمیق در بینایی رایانه ایشکل د‌: برگرفته از “تصویر حاوی سوراخ های نامنظم با استفاده از اتصالات جزئی”

7. تصویر با وضوح فوق العاده (Image Super-Resolution ) 

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

بینایی رایانه ای و یادگیری عمیق در بینایی رایانه ایشکل ذ‌: نمونه ای از نتایج حاصل از تکنیک های مختلف با وضوح فوق العاده

 

8. سنتز تصویر (Image Synthesis)

سنتز تصویر وظیفه ایجاد تغییرات هدفمند در تصاویر موجود یا تصاویر کاملا جدید را دارد. این یک حوزه بسیار گسترده است که به سرعت در حال پیشرفت می باشد. این ممکن است شامل تغییرات جزئی در تصویر و فیلم باشد، مانند:
• تغییر سبک یک شی در یک صحنه
• اضافه کردن یک شی به صحنه
• اضافه کردن چهره به صحنه

بینایی رایانه ای و یادگیری عمیق در بینایی رایانه ای

 

شکل ر‌: نمونه ای از استایلینگ گورخر و اسب

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

یادگیری دیپ لرنینگ در آکادمی آمانج

انجام گام به گام پروژه دیپ لرنینگ در پایتون

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

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

بررسی اجمالی آموزش کراس

ما قصد داریم به آرامی و قدم به قدم توضیح دهیم تا شما بدانید که چگونه می توانید در آینده مدل های خود را ایجاد کنید. مراحلی این آموزش به شرح زیر است: • بارگیری داده ها • تعریف مدل کراس • کامپایل مدل کراس • فیت کردن مدل کراس • ارزیابی مدل کراس • ادغام این آموزش کراس چند پیش نیاز لازم دارد: • پایتون 2 یا 3 را نصب و پیکربندی کنید. • SciPy (شامل NumPy) را نصب و پیکربندی کنید. • کراس و یک بک-اند (Theano یا TensorFlow) نصب و پیکربندی کنید. فایل جدیدی به نام keras_first_network.py ایجاد کنید و کدها را در آن وارد کنید.

1. بارگیری داده ها

اولین قدم، تعریف توابع و کلاس هایی است که قصد استفاده از آن ها را در این آموزش داریم. ما از کتابخانه NumPy برای بارگذاری مجموعه داده و برای تعریف مدل از دو کلاس از کتابخانه Keras استفاده خواهیم کرد. بارگذاری های مورد نیاز عبارتند از:
# first neural network with keras tutorial from numpy import loadtxt from keras.models import Sequential from keras.layers import Dense …
اکنون می توانیم مجموعه داده خود را بارگیری کنیم. در این آموزش کراس قصد داریم از مجموعه داده های دیابت Pima Indians استفاده کنیم. این یک مجموعه داده استاندارد یادگیری ماشین از منبع UCI Machine Learning است. این مجموعه داده، اطلاعات مربوط به سابقه پزشکی بیماران و اینکه آیا آن ها در طی پنج سال اخیر به دیابت مبتلا شده اند یا خیر را، توصیف می کند. طبقه بندی به صورت باینری است (دیابت مثبت به عنوان 1 و دیابت منفی به عنوان 0). همه متغیرهای ورودی که توصیف بیماران است به صورت عددی هستند. همین امر استفاده مستقیم از شبکه های عصبی را آسان تر می کند. مجموعه داده های ما در لینک های زیر قابل دسترس می باشند:
داده ها را دانلود کرده و آن را در دایرکتوری خود، جایی که فایل پایتون قرار دارد، قرار دهید. آن را با نام زیر ذخیره کنید:
pima-indians-diabetes.csv اکنون می توانیم با استفاده از تابع loadtxt() فایل را به عنوان ماتریس اعداد بارگذاری کنیم. هشت متغیر ورودی و یک متغیر خروجی (آخرین ستون) وجود دارد. ما در حال آموزش یک مدل برای ترسیم ردیف متغیرهای ورودی (X) به یک متغیر خروجی (y) هستیم که اغلب آن ها را بصورت y = f (X) خلاصه می کنیم. متغیرها را می توان به شکل زیر خلاصه کرد: متغیرهای ورودی (X): • تعداد دفعات بارداری • غلظت گلوکز در پلاسما • فشار خون دیاستولیک (میلی متر جیوه) • ضخامت پوست ماهیچه سه سر (میلی متر) • انسولین سرم در بازه 2 ساعته (mu U / ml) • شاخص توده بدنی (2(قد به متر) / وزن به کیلوگرم) • سوابق دیابت در خانواده • سن متغیرهای خروجی (y): • متغیر کلاس (0 یا 1) پس از بارگیری فایل CSV در حافظه، می توان ستون داده ها را به متغیرهای ورودی و خروجی تقسیم کرد. داده ها در آرایه های دوبعدی شامل سطر و ستون ذخیره می شوند. می توانیم با انتخاب زیر مجموعه ستون ها توسط عملگر برش استاندارد(standard NumPy slice operator)، آرایه را به دو قسمت تقسیم کنیم. روش دیگر این است که از طریق برش 0:8، 8 ستون اول از 0 تا 7 را انتخاب کنیم. سپس می توانیم ستون خروجی (متغیر نهم) را از طریق ایندکس 8 انتخاب کنیم.
# load the dataset
dataset = loadtxt(‘pima-indians-diabetes.csv’, delimiter=’,’)
# split into input (X) and output (y) variables
X = dataset[:,0:8]
y = dataset[:,8]
اکنون زمان تعریف مدل شبکه عصبی است.

2. تعریف مدل کراس

مدل ها در کراس به عنوان دنباله ای از لایه ها تعریف می شوند. ما یک مدل Sequential ایجاد کرده و لایه ها را اضافه می کنیم. اطمینان حاصل می کنیم که لایه ورودی از تعداد ورودی های مناسب برخوردار است. غالبا بهترین نوع ساختار از نظر تعداد لایه ها و انواع آن، از طریق سعی و خطا مشخص می شود. در این پروژه، ما از یک ساختار شبکه کاملا متصل (fully-connected) با سه لایه استفاده خواهیم کرد. لایه های کاملا متصل با استفاده از کلاس Dense تعریف می شوند. ما می توانیم تعداد نورون ها یا گره ها را در لایه به عنوان اولین آرگومان مشخص کرده و با استفاده از آرگومان فعال سازی، عملکرد فعال سازی را تعیین کنیم. ما از تابع فعال سازی واحد خطی اصلاح شده که به آن ReLU گفته می شود در دو لایه اول و از تابع Sigmoid در لایه خروجی استفاده خواهیم کرد. پیش از این توابع فعال سازی Sigmoid و Tanh برای همه لایه ها ارجحیت داشتند؛ اما امروزه با استفاده از تابع فعال سازی ReLU عملکرد بهتری حاصل می شود. ما از Sigmoid روی لایه خروجی استفاده می کنیم تا اطمینان حاصل کنیم که خروجی شبکه ما بین 0 تا 1 است.
# define the keras model
model = Sequential()
model.add(Dense(12, input_dim=8, activation=’relu’))
model.add(Dense(8, activation=’relu’))
model.add(Dense(1, activation=’sigmoid’))

3. کامپایل مدل کراس

برای کامپایل این مدل از کتابخانه های عددی کارآمد مانند Theano یا TensorFlow استفاده می شود. بک-اند به طور خودکار بهترین راه برای آموزش مدل و اجرای آن بر روی سخت افزار شما را انتخاب می کند. حین کامپایل می بایست برخی از ویژگی های اضافی ضروری برای آموزش شبکه را مشخص کنیم. به یاد داشته باشید آموزش یک شبکه به معنای پیدا کردن بهترین مجموعه وزن ها برای ترسیم ورودی ها به خروجی در مجموعه داده است. برای ارزیابی مجموعه ای از وزن ها باید از تابع ضرر(loss function) استفاده کنیم. همچنین از بهینه ساز برای جستجوی وزن های مختلف در شبکه استفاده می شود. در این پروژه، از آنتروپی متقاطع به عنوان آرگومان ضرر استفاده خواهیم کرد. این تابع برای طبقه بندی مسائل باینری مورد استفاده قرار گرفته و در کراس به عنوان “binary_crossentropy” تعریف شده است. برای بهینه ساز، الگوریتم “adam”را تعریف خواهیم کرد؛ که به دلیل قابلیت تنظیم خودکار و کارآمد بودن در طیف گسترده ای از مسائل، از محبوبیت بالایی برخوردار است. در نهایت، چون این یک مساله طبقه بندی است، از آرگوکان metrics به منظور طبقه بندی و گزارش استفاده خواهیم کرد.
# compile the keras model
model.compile(loss=’binary_crossentropy’, optimizer=’adam’, metrics=[‘accuracy’])

4. فیت کردن مدل کراس

ما می توانیم با فراخوانی تابع fit()، مدل خود را آموزش داده یا فیت کنیم. قبل از شروع این مرحله به تعریف دو مفهوم epoch و batch می پردازیم: Epoch: دوره: یک دور به روز رسانی شبکه برای مجموعه داده آموزش Batch: دسته: یک یا چند نمونه در نظر گرفته شده توسط مدل در یک دوره قبل از به روزرسانی وزن. روند آموزش برای تعداد مشخصی از تکرارها در مجموعه داده به نام epochs اجرا می شود، که ما باید با استفاده از آرگومان epochs آن را مشخص کنیم. ما همچنین می بایست تعداد ردیف های مجموعه داده را قبل از به روزرسانی وزن مدل در هر دوره، تنظیم کنیم. برای این منظور از آرگومان batch_size استفاده می کنیم. دوره و دسته در این پروژه به ترتیب برابر با 150 و 10 می باشد. این پیکربندی ها می توانند به صورت آزمایشی با سعی و خطا انتخاب شوند. مدل همیشه دارای خطا خواهد بود، اما میزان خطا پس از مدتی یکنواخت می شود. به این فرایند “همگرایی مدل” گفته می شود.
# fit the keras model on the dataset
model.fit(X, y, epochs=150, batch_size=10)

5. ارزیابی مدل کراس

شما می توانید با استفاده از تابع evaluate()، مدل خود را ارزیابی کرده و همان ورودی و خروجی مورد استفاده برای آموزش مدل را وارد کنید. تابع ارزیابی لیستی را با دو مقدار ارائه می دهد. اولین مورد ضرر مدل و دومین مورد، دقت مدل در مجموعه داده خواهد بود. ما در این پروژه فقط به گزارش دقت نیاز داریم.
# evaluate the keras model
_, accuracy = model.evaluate(X, y)
print(‘Accuracy: %.2f’ % (accuracy*100))

6. ادغام

اکنون همه را با هم ادغام می کنیم.
# first neural network with keras tutorial
from numpy import loadtxt
from keras.models import Sequential
from keras.layers import Dense
# load the dataset
dataset = loadtxt(‘pima-indians-diabetes.csv’, delimiter=’,’)
# split into input (X) and output (y) variables
X = dataset[:,0:8]
y = dataset[:,8]
# define the keras model
model = Sequential()
model.add(Dense(12, input_dim=8, activation=’relu’))
model.add(Dense(8, activation=’relu’))
model.add(Dense(1, activation=’sigmoid’))
# compile the keras model
model.compile(loss=’binary_crossentropy’, optimizer=’adam’, metrics=[‘accuracy’])
# fit the keras model on the dataset
model.fit(X, y, epochs=150, batch_size=10)
# evaluate the keras model
_, accuracy = model.evaluate(X, y)
print(‘Accuracy: %.2f’ % (accuracy*100))
می توانید کلیه کد ها را در فایل پایتون خود کپی کرده و به عنوان “keras_first_network.py” در همان فهرست داده های “pima-indians-diabet.csv” ذخیره کنید. سپس می توانید فایل پایتون را به عنوان یک اسکریپت از خط فرمان خود به شرح زیر اجرا کنید:
python keras_first_network.py
در حالت ایده آل، تمایل داریم که ضرر صفر و دقت یک باشد. اما این ممکن نیست و مدل همواره با خطا روبرو خواهد بود. هدف این است که پیکربندی را انتخاب کنیم که به کمترین میزان ضرر و بیشترین میزان دقت دست یابد.
768/768 [==============================] – 0s 63us/step – loss: 0.4817 – acc: 0.7708
Epoch 147/150
768/768 [==============================] – 0s 63us/step – loss: 0.4764 – acc: 0.7747
Epoch 148/150
768/768 [==============================] – 0s 63us/step – loss: 0.4737 – acc: 0.7682
Epoch 149/150
768/768 [==============================] – 0s 64us/step – loss: 0.4730 – acc: 0.7747
Epoch 150/150
768/768 [==============================] – 0s 63us/step – loss: 0.4754 – acc: 0.7799
768/768 [==============================] – 0s 38us/step
Accuracy: 76.56
شبکه عصبی در دیپ لرنینگ یک الگوریتم تصادفی است؛ به این معنی که همان الگوریتم روی داده های یکسان می تواند هر بار مدل متفاوتی را آموزش دهد. این یکی از ویژگی های شبکه عصبی است، نه یک اشکال. واریانس عملکرد مدل بدان معنی است که برای بدست آوردن تقریبی معقول از عملکرد مدل، ممکن است لازم باشد شما بارها و بارها آن را متناسب کرده و میانگین دقت را محاسبه کنید. برای مثال در زیر شاهد دقت های متفاوت از پنج اجرای مختلف همین مثال را مشاهده می کنید:
Accuracy: 75.00
Accuracy: 77.73
Accuracy: 77.60
Accuracy: 78.12
Accuracy: 76.17

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

دهه گذشته شاهد پیشرفت فزاینده ای در فناوری اتومبیل های خودران بوده ایم که عمدتاً از پیشرفت در زمینه دیپ لرنینگ و هوش مصنوعی ناشی می شد. در آینده ای نه چندان دور اتومبیل های خودران ایمن ترین وسایل نقلیه در جاده ها خواهند بود. اگرچه امروزه بسیاری از وسایل نقلیه از ” سیستم های کمک راننده ” استفاده می کنند؛ اما همچنان اتومبیل ها نیازمند انسان ها هستند. صنعت خودروسازی با استفاده از مجموعه ای بسیار قوی تر از داده های حسگر و امکان پردازش سریع این داده ها؛ در پی ایجاد یک اتومبیل کاملا مستقل است.

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

 

نقش دیپ لرنینگ در پیشرفت اتومبیل های بدون راننده

در طی یک دهه گذشته، یادگیری عمیق و هوش مصنوعی به اصلی ترین فناوری ها در پیشرفت بسیاری از تکنولوژی ها از قبیل روباتیک، پردازش زبان طبیعی، سیستم های ضد کلاهبرداری و اتومبیل های بدون راننده تبدیل شدند.

در این راستا، هوش مصنوعی، دیپ لرنینگ و شبکه های عصبی می توانند در این سه زمینه موثر باشند:

• استفاده از داده های حسگر به منظور طراحی صحنه

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

• یادگیری مداوم به منظور بهبود ایمنی و عملکرد

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

مسیر پیشرفت اتومبیل های خودران دارای چندین سطح است:

• سطح 0: اتومبیل به طور کامل توسط انسان هدایت می شود.

• سطح 1: فرمان، ترمز، شتاب، پارکینگ و سایر کارکردها می توانند به صورت اتوماتیک توسط اتومبیل انجام شوند، اما راننده همیشه آماده است تا کنترل اتومبیل را به دست بگیرد.

• سطح 2: حداقل یک سیستم کمک به راننده کاملا خودکار وجود دارد (مانند کنترل سرعت و مسیر حرکت) اما راننده هوشیار است تا در صورت عدم موفقیت سیستم، حوادث یا اشیاء را تشخیص داده و عکس العمل نشان دهد.

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

• سطح 4: وسیله نقلیه کاملاً خودمختار بوده و قادر به انجام کلیه عملکردهای مهم رانندگی در ایمنی و نظارت بر شرایط جاده برای یک سفر کامل است.

• سطح 5: وسیله نقلیه کاملا خودمختار عمل می کند؛ و به اثبات می رسد که بهتر از یک انسان رانندگی می کند.

امروزه بیشتر اتومبیل های موجود در جاده ها در سطح صفر قرار دارند؛ در حالی که بسیاری از وسایل نقلیه تولید شده در چند سال گذشته دارای استقلال سطح 1یا 2 هستند. سطوح بالاتر نیازمند هوش مصنوعی هستند. سطح 4 و 5 با استفاده از فناوریهای پیشرفته یادگیری عمیق ساخته خواهد شد.

نیازهای عملکردی در رانندگی بدون راننده

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

حسگر:

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

• اشیاء ساکن مانند محدوده جاده، گارد ریل ها و خطوط مخصوص دوچرخه

• اشیاء متحرک از جمله سایر وسایل نقلیه ، عابرین و دوچرخه ها

• داده ها و علائم مانند خطوط، مناطق پارکینگ، علائم راهنمایی و رانندگی و چراغ ها

سنجش دقیق در اتومبیل های بدون راننده :

اتومبیل های خودران و اتومبیل های بدون راننده و رانندگی بدون راننده و دیپ لرنینگ و شبکه های عصبی

شکل 1: سنسورهای چندگانه ، وسایل نقلیه خودمختار را قادر می سازند تا هم اشیاء متحرک و هم ایستا را با دقت تشخیص دهند. این سنسورها صحنه را در کل حاشیه خودرو چندین بار در ثانیه ردیابی و طبقه بندی می کند.

 

مسیریاب:

اتومبیل های هوشمند از داده های GPS برای رسیدن باز نقطه A به نقطه B استفاده می کنند. اما همچنان به ترجیحات راننده نیز نیاز دارند تا نقشه برداری از مسیر را تا حد امکان کارآمدتر کنند.

 

سیاست رانندگی:

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

سیستم عامل های اتوموبیل های خودران باید:

o به طور پیوسته اجرا شوند

o قادر به فعالیت ایمن در شرایط سخت ( هوای بد یا ترافیک سنگین) و شب باشند

o به رفتار غیر قابل پیش بینی سایر وسایل نقلیه، عابرین، تعمیرات جاده ای و غیره بدون درصد خطا واکنش نشان دهند.

هر یک از این نیازها بیانگر چندین چالش در فناوری است. یکی از مهمترین الزامات که به درستی توسط یادگیری عمیق پوشش داده می شود؛ توانایی درک کل تصویر در لحظه است (که توسط چندین سنسور شکل می گیرد).

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

سخت افزار سنسور داخلی ساخته شده توسط تسلا: شامل 8 دوربین فراگیر، 12 سنسور فراصوت به علاوه رادار روبرو است. همه این سنسورها چندین بار در ثانیه داده ها را جمع آوری می کنند.

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

تشخیص خطر اتومبیل:

اتومبیل های خودران و اتومبیل های بدون راننده و رانندگی بدون راننده و دیپ لرنینگ و شبکه های عصبی

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

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

اساسی ترین تکنولوژی های یادگیری عمیق استفاده شده در اتومبیل های بدون راننده عبارتند از: شبکه های عصبی پیچشی، شبکه های عصبی بازگشتی و شبکه های عصبی تقویتی.

شبکه های عصبی پیچشی (CNN):

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

شبکه های عصبی بازگشتی(RNN):

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

شبکه های عصبی تقویتی (DRL):

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

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

جمع بندی:

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