img

نگاهی به پردازشِ تصاویر بوسیله یادگیری عمیق…

/
/
/

شبکه‌های اجتماعی همچون Facebook، از جامعه‌ای عظیم برخوردار هستند و عظیم تر از تعداد اعضای این شبکه‌ها، حجم وسیعی از اطلاعات است که در آنها انباشته شده است.

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

اگر می خواهید بدانید که این امکان چگونه تحقق یافته است، به خواندن ادامه دهید.
یادگیریِ عمیق نوعی یادگیریِ ماشین محسوب می گردد، که در آن یک مدل(رایانه‌ای) چگونگیِ انجام وظایفِ طبقه‌بندی را مستقیما از طریق تصاویر، متون و صداها یاد می گیرد. یادگیریِ عمیق اغلب به واسطه‌ی معماریِ شبکه‌ی عصبی تبلور می یابد.
لغتِ عمیق(deep) به تعدادِ لایه‌ها در شبکه اشاره دارد، یعنی هرچقدر تعدادِ لایه‌ها بیشتر، شبکه عمیق‌تر. شبکه‌های عصبیِ سنتی تنها از دو یا سه لایه تشکیل می شوند، در حالی که شبکه‌های عمیق می توانند صدها لایه نیز داشته باشند.
در شکل ۱ شاهد تعلیم یافتنِ یک سیستم هستید، تا بتواند سه نوع حیوان – سگ، گربه و گورکن – را تفکیک و طبقه‌بندی کند.

 

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

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

چگونه یک شبکه‌ی عصبی عمیق یاد می گیرد؟
فرض کنید تعدادی عکس در اختیار ما قرار دارد، که هر کدام از این عکس‌ها، شامل تصویرِ شیئی متعلق به یک گروه، از چهار گروهِ تصاویرِ اشیاءِ گوناگون باشد. آنچه که ما از شبکه‌ی عصبیِ عمیق می خواهیم، این است که شبکه بتواند تشخیص دهد که هر عکس، حاویِ تصویرِ کدام یکی از اشیاء می باشد.

به وسیله‌ی این داده‌های تمرینی، شبکه قادر می شود تا فرآیندِ فهمیدنِ ویژگی‌های خاصِ اشیاء را آغاز کرده، و آنها را به گروهی که بدان تعلق دارند مربوط سازد. هر لایه از شبکه، داده‌ی ورودی خود را از لایه‌ی قبلی گرفته، آن را تغییر داده، و سپس به لایه‌‌ی بعدی انتقالش می دهد. شبکه به صورت لایه به لایه، به پیچیدگی و جزئیاتِ آنچه که در حال یادگیری است، می افزاید. توجه داشته باشید که شبکه مستقیما از داده‌ها یاد می گیرد، و ما هیچ گونه تاثیری در آنچه که ماشین می آموزد نداریم.
کاربرد: مثال که در آن از AlexNet استفاده می شود
اگر تازه با یادگیریِ عمیق آشنا شده‌اید، یکی از راه‌های سریع و آسان برای شروعِ کار، استفاده از شبکه‌ای مثل AlexNet به شما توصیه می گردد، که از قبل وجود پدید آمده است.
AlexNet یک شبکه‌ی عصبیِ پیچشی است(CNN) که با بیش از یک میلیون تصویر تمرین داده شده است. کاربردِ عمده‌ی AlexNet در طبقه‌بندیِ تصاویر است.
AlexNet می تواند تصویرها را به ۱۰۰۰ شاخه‌ی متفاوت شاملِ صفحه کلید، موسِ کامپیوتر، مداد و دیگر تجهیزاتِ اداری، و همین طور انواعِ گوناگونی از نژادهای سگ، گربه، اسب و سایر حیوان‌ها تقسیم کند.
شما برای استفاده از AlexNet به این نرم‌افزارها نیاز دارید:
۱- MATLAB 2016b یا نسخه‌ای جدیدتر
۲- Neural Network Toolbox
۳- بسته‌ی پشتیبانی از وب‌کم برای استفاده در
MATLAB
(http://in.mathworks.com/mathlabcentral/fileexchange/45182-matlab-support-package-for-usb-webcams)
۴-بسته پشتیبانی برای استفاده از
AlexNet
(https://in.mathworks.com/matlabcentral/fileexchange/59133-neural-network-toolbox-tm–model-for-alexnet-network)

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

camera = webcam; % Connect to the camera
nnet = AlexNet; % Load the neural net
picture = camera.snapshot; % Take a picture

 

گام دوم:

اندازه‌ی عکس را به ابعادِ ۲۲۷ در ۲۲۷ پیکسل تبدیل کنید، اندازه‌ای که مورد درخواستِ AlexNet می باشد:

picture = imresize(picture,[227,227]); % Resize the picture

 

گام سوم:

اکنون AlexNet می تواند تصاویر ما را طبقه بندی کند:

label = classify(nnet, picture); % Classify the picture
image(picture); % Show the picture
title(char(label)); % Show the label

 

گام چهارم:
برای دیدن خروجی، فرمان زیر را وارد کنید:

output:

 

 

 

دانلود فایل PDF مقاله

نظر بدهید

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

It is main inner container footer text