دوره ی آموزشی شبکه های عصبی که توسط سید علیرضا میرحبیبی در نظر گرفته شده است حاصل حضور ایشان در کلاس های درس پروفسور تمام، جناب آقای دکتر کریم فائز (عضو هیات علمی دانشگاه صنعتی امیرکبیر) از دانشمندان شناخته شده ی جهان در حوزه ی شناسایی الگو (Pattern Recognition) و شبکه های عصبی (Neural Networks) می باشد و فارغ التحصیل دانشگاه کالیفرنیا نیز هستند که البته استاد راهنمای ایشان نیز می باشند، همچنین حضور در کلاس های پروفسور محمد باقر منهاج (فارغ التحصیل دانشگاه OSU-OSU آمریکا) که ایشان نیز از اعضای هیات علمی دانشگاه صنعتی امیرکبیر و از دانشمندان برتر جهان در سال 2004 می باشند نیز تاثیر بسزایی در یادگیری میرحبیبی داشته است.
با سلام و احترام خدمت علاقه مندان و دانشجویان دانشگاه اینترنتی بین المللی
این ویدیوی آموزشی در راستای آموزش های شبکه عصبی عمیق می باشد، و در واقع بخش اول این مجموعه از آموزش ها است، مدرس این دوره سید علیرضا میرحبیبی، مخترع، پژوهشگر و محقق در حوزه ی هوش مصنوعی می باشد، با توجه به کاربرد های روز افزون شبکه های عصبی بخصوص مباحث مربوط به Deep Learning، این حوزه از آموزش ها نیاز بسیاری از دانشجویان تحصیلات تکمیلی می باشد.
البته این ویدیو به عنوان یکی از پیش نیاز های یادگیری عمیق (دیپ لرنینگ) آموزش داده شده است، زمانی که نیاز به کار با CUDA باشد، نیاز به نصب درایور کرت گرافیک خواهید داشت، این ویدیو آموزش نصب درایور کارت گرافیک های Geforce را شامل می شود، و در آن نسخه ی مناسب و تست شده برای تنظیم روی اوبونتو 14.04 جهت بهره گیری از قدرت پردازشی GPU ارائه شده است. با مشاهده ی این دوره ی آموزشی کوتاه، از این پس می تواند در تمامی کارهای تحقیقاتی خود که نیاز به استفاده از GPU و سیستم عامل لینوکس دارند به راحتی درایور خود را فعال سازی کرده و از مزایای استفاده از کتابخانه های پرکاربردی مانند CUDA یا cuDNN بهره مند شوید
استفاده از کارت گرافیک (GPU) برای پردازش
با استفاده از دیدگاه GPGPU (General-Purpose Computing on Graphics Processing Units) می توان از کارت گرافیک برای انجام پردازش های الگوریتم های استفاده کرد.
پلتفرم CUDA یک لایه ی نرم افزاری است که به شما دسترسی مستقیم جهت استفاده از مجموعه ساختار های مجازی مربوط به کارت های گرافیک و المان های پردازش موازی برای اجرای هسته های محاسباتی را می دهد.
پلتفرم CUDA برای کار با زبان های برنامه نویسی ای مانند C، C++ و فرترن طراحی شده است. این موارد دسترسی آسان تر به منابع مربوط به واحد پردازش گرافیکی را آسان تر می کند و در نتیجه به متخصصان حوزه ی پردازش موازی اجازه ی استفاده از منابع GPU را می دهد، به صورت واضح تر می توان گفت API هایی مانند Direct3D و OpenGL که نیازمند مهارت های بالایی در برنامه نویسی گرافیکی هستند نیز می توانند از آن بهره ببرند.همچنین، CUDA از فریم ورک هایی مانند OpenACC و OpenCL پشتیبانی می کند.
واحد پردازش گرافیکی (Graphics processing unit) به عنوان یک پردازشگر ویژه ی کامپیوتری، تقاضا های در لحظه (real-time) دارای رزولوشن بالا (high-resolution) مربوط به وظایف محاسباتی سنگین گرافیک های 3 بعدی (3D graphics) را انجام می دهد.
تا سال 2012، پردازنده های گرافیکی به سیستم های چند هسته ای بسیار موازی تبدیل شده بودند که امکان دستکاری بسیار بالایی را از بلوک های بزرگ داده فراهم می آورد. این نوع طراحی بسیار تاثیر گذار تر از واحد پردازش مرکزی همه منظوره (CPU) برای الگوریتم ها در شرایطی است که پردازش بلوک های بزرگ داده به طور موازی انجام می شود، مانند:
برای نصب و گرفتن عملکرد صحیح از پلتفرم کودا می بایست درایور کارت گرافیک ها همان GPU را به درستی نصب کنید، نصب درایور کارت گرافیک در UBUNTU 14.04 LTS خود می تواند یک چالش باشد، اما با آموزش هایی که در ابتدای این ویدیوی آموزشی ارائه شده است به راحتی می توانید درایور کارت گرافیک خود را نصب کرده و به نرم افزار مدیریت کارت گرافیک ارائه شده توسط شرکت NVIDIA درسترسی پیدا کنید.
مشخصات سیستمی که در این آموزش برای تست مباحث مربوط به یادگیری عمیق استفاده شده است:
CPU: Intel
Ram: 8GB-DDR2
Graphic: Geforce GT710 (MSI) 2GB
HDD: 40GB
آزمایشات سخت افزاری ما:
جهت استفاده از شبکه های عصبی و اجرای الگوریتم های آنها، مانند Object Detector ها، مثل Yolo9000 و یا Faster R-CNN بهتر است از یک GPU با توان بالاتر از 3 گیگابایت استفاده کنید. البته با توجه به آزمایشات انجام شده که نتایج آنها به طور کامل در ویدیو های دوره های بعدی (در ادامه ی همین آموزش های یادگیری عمیق) ارائه شد، نشان دادیم که با یک کارت گرافیک 2 گیگابایتی می توان بسیاری از شبکه های عصبی را اجرا کرد، برای مثال با این کارت گرافیک می توان شبکه ی ZF و یا بخش هایی که به صورت مینیمال در Object Detector معروف YOLO یا همان Darknet ارائه شده اند را اجرا کرد.
البته نشان دادیم (در ویدیو های بعدی در رابطه با یادگیری عمیق) که چطور می توانید Object Detector های سنگینی مانند YOLO9000 که با نام دارک نت (Darknet) هم شناخته می شود را با تغییر یکسری ویژگی ها با همین کارت گرافیک 2 گیگابایتی اجرا کرد.
مواردی که در دوره ی بعدی (این دوره) در ادامه ی آموزش های یادگیری عمیق (Deep Learning) می توانید بررسی کنید.
Cuda یک پلتفرم محاسبات موازی و محیط برنامه نویسی نرم افزار های کاربردی است که توسط شرکت Nvidia ارائه شده است.
کودا به توسعه دهندگان نرم افزار و مهندسان نرم افزار اجازه ی فعال سازی ویژگی استفاده از کارت گرافیک پرای اهداف پردازشی عمومی را می دهد، در واقع با کودا می توانید الگوریتم های خود را سریعتر اجرا کنید، برای مثال زمانی که Object Detector با نام YOLO9000 را می خواهید روی یک سیستم عادی با استفاده از قدرت پردازشی CPU اجرا کنید، ممکن است تا 15 دقیقه انجام مراحل پردازشی آن روی یک شبکه عصبی از قبل Train شده به طول بیانجامد، اما زمانی که نویسنده ی این پست با استفاده از مدل کودا و با فعال سازی کودا در یولو 9000 اقدام به اجرای سورس کد Object Detector معروف YOLO9000 کرد چیزی در حدود 14 ثانیه زمان لازم بود تا با یک کارت گرافیک معمولی دارای چیپست جیفورس با مدل GT710 این سورس کد را اجرا کند! پس به خوبی تفاوت را حس کردید! همچنین زمانی که قصد استفاده از Object Detector کاربردی با نام Faster RCNN یا سایر موارد از این خانواده را دارید نیز می توانید از این آموزش استفاده فرمایید.
پلتفرم CUDA برای توسعه دهندگان نرم افزار از طریق کتابخانه های شتاب دهنده کودا (CUDA-accelerated) ، دستورالعمل کامپایلر از قبیل OpenACC و فرمت های مربوط به زبان های برنامه نویسی استاندارد صنعتی شامل C، C ++ و Fortran قابل دسترسی است. برنامه نویسان C / C ++ می توانند از CUDA C / C ++ استفاده کنند، کامپایلر nvcc، کامپایلر C / C ++ مبتنی بر LLVM مبتنی بر Nvidia است. همچنین برنامه نویسان Fortran می توانند از CUDA Fortran استفاده کنند که با کامپایلر PGI CUDA Fortran از The Portland Group گردآوری شده است.
پردازنده های گرافیکی برای رندر گرافیکی و برای محاسبات فیزیک بازی (اثرات فیزیکی مانند آوار، دود، آتش، مایعات) مورد استفاده قرار می گیرند. مثالها شامل PhysX و Bullet هستند. CUDA همچنین برای تسریع کاربرد برنامه های غیر گرافیکی در محاسبات بیولوژیکی، رمزنگاری و سایر زمینه ها به ترتیب موارد ذکر شده استفاده می شود.
و ... (مشاهده ی متن کامل در آموزش بعدی - به زودی درج می گردد)
با سلام و احترام خدمت علاقه مندان و دانشجویان دانشگاه اینترنتی بین المللی (دانشگاه خوارزمی)
این ویدیوی آموزشی در راستای آموزش های شبکه عصبی عمیق می باشد، و در واقع بخش اول این مجموعه از آموزش ها است، مدرس این دوره سید علیرضا میرحبیبی، مخترع، پژوهشگر و محقق در حوزه ی هوش مصنوعی می باشد، با توجه به کاربرد های روز افزون شبکه های عصبی بخصوص مباحث مربوط به Deep Learning، این حوزه از آموزش ها نیاز بسیاری از دانشجویان تحصیلات تکمیلی می باشد.
البته این ویدیو به عنوان یکی از پیش نیاز های یادگیری عمیق (دیپ لرنینگ) آموزش داده شده است، زمانی که نیاز به کار با CUDA باشد، نیاز به نصب درایور کارت گرافیک خواهید داشت، این ویدیو آموزش نصب درایور کارت گرافیک های Geforce را شامل می شود، و در آن نسخه ی مناسب و تست شده برای تنظیم روی اوبونتو 14.04 جهت استفاده از قدرت پردازشی GPU ارائه شده است. با مشاهده ی دوره ی آموزشی قبلی، از این پس می تواند در تمامی کارهای تحقیقاتی خود که نیاز به استفاده از GPU و سیستم عامل لینوکس دارند به راحتی درایور خود را فعال سازی کرده و از مزایای استفاده از کتابخانه های پرکاربردی مانند CUDA یا cuDNN بهره مند شوی
تاریخچه :
Cuda یک پلتفرم محاسبات موازی و محیط برنامه نویسی نرم افزار های کاربردی است که توسط شرکت Nvidia ارائه شده است.
کودا به توسعه دهندگان نرم افزار و مهندسان نرم افزار اجازه ی فعال سازی ویژگی استفاده از کارت گرافیک پرای اهداف پردازشی عمومی را می دهد، در واقع با کودا می توانید الگوریتم های خود را سریعتر اجرا کنید، برای مثال زمانی که Object Detector با نام YOLO9000 را می خواهید روی یک سیستم عادی با استفاده از قدرت پردازشی CPU اجرا کنید، ممکن است تا 15 دقیقه انجام مراحل پردازشی آن روی یک شبکه عصبی از قبل Train شده به طول بیانجامد، اما زمانی که نویسنده ی این پست با استفاده از مدل کودا و با فعال سازی کودا در یولو 9000 اقدام به اجرای سورس کد Object Detector معروف YOLO کرد چیزی در حدود 14 ثانیه زمان لازم بود تا با یک کارت گرافیک معمولی دارای چیپست جیفورس با مدل GT710 این سورس کد را اجرا کند! پس به خوبی تفاوت را حس کردید!
با استفاده از دیدگاه GPGPU (General-Purpose Computing on Graphics Processing Units) می توان از کارت گرافیک برای انجام پردازش های الگوریتم ها استفاده کرد.
پلتفرم CUDA یک لایه ی نرم افزاری است که به شما دسترسی مستقیم جهت استفاده از مجموعه ساختار های مجازی مربوط به کارت های گرافیک و المان های پردازش موازی برای اجرای هسته های محاسباتی را می دهد.
پلتفرم CUDA برای کار با زبان های برنامه نویسی ای مانند C، C++ و فرترن طراحی شده است. این موارد دسترسی آسان تر به منابع مربوط به واحد پردازش گرافیکی را آسان تر می کند و در نتیجه به متخصصان حوزه ی پردازش موازی اجازه ی استفاده از منابع GPU را می دهد، به صورت واضح تر می توان گفت API هایی مانند Direct3D و OpenGL که نیازمند مهارت های بالایی در برنامه نویسی گرافیکی هستند نیز می توانند از آن بهره ببرند.همچنین، CUDA از فریم ورک هایی مانند OpenACC و OpenCL پشتیبانی می کند.
واحد پردازش گرافیکی (Graphics processing unit) به عنوان یک پردازشگر ویژه ی کامپیوتری، تقاضا های در لحظه (real-time) دارای رزولوشن بالا (high-resolution) مربوط به وظایف محاسباتی سنگین گرافیک های 3 بعدی (3D graphics) را انجام می دهد.
تا سال 2012، پردازنده های گرافیکی به سیستم های چند هسته ای بسیار موازی تبدیل شده بودند که امکان دستکاری بسیار بالایی را از بلوک های بزرگ داده فراهم می آورد. این نوع طراحی بسیار تاثیر گذار تر از واحد پردازش مرکزی همه منظوره (CPU) برای الگوریتم ها در شرایطی است که پردازش بلوک های بزرگ داده به طور موازی انجام می شود، مانند:
برای نصب و گرفتن عملکرد صحیح از پلتفرم کودا می بایست درایور کارت گرافیک ها همان GPU را به درستی نصب کنید، نصب درایور کارت گرافیک در UBUNTU 14.04 LTS خود می تواند یک چالش باشد، اما با آموزش هایی که در ابتدای این ویدیوی آموزشی ارائه شده است به راحتی می توانید درایور کارت گرافیک خود را نصب کرده و به نرم افزار مدیریت کارت گرافیک ارائه شده توسط شرکت NVIDIA دسترسی پیدا کنید.
توانایی های برنامه نویسی
پلتفرم CUDA برای توسعه دهندگان نرم افزار از طریق کتابخانه های شتاب دهنده کودا (CUDA-accelerated) ، دستورالعمل کامپایلر از قبیل OpenACC و فرمت های مربوط به زبان های برنامه نویسی استاندارد صنعتی شامل C، C ++ و Fortran قابل دسترسی است. برنامه نویسان C / C ++ می توانند از CUDA C / C ++ استفاده کنند، کامپایلر nvcc، کامپایلر C / C ++ مبتنی بر LLVM مبتنی بر Nvidia است. همچنین برنامه نویسان Fortran می توانند از CUDA Fortran استفاده کنند که با کامپایلر PGI CUDA Fortran از The Portland Group گردآوری شده است.
مثالی از روند جریان پردازشی CUDA
علاوه بر کتابخانه ها، دستورالعمل کامپایلر، CUDA C / C ++ و CUDA Fortran، پلتفرم CUDA از سایر محیط های محاسباتی مانند OpenCL گروه Khronos، DirectCompute مایکروسافت، OpenGL و C++ AMP پشتیبانی می کند. همچنین پلاگین های دیگری نیز برای Python، Perl، Fortran، Java، Ruby، Lua، Common Lisp، Haskell، R، MATLAB، IDL، Julia و پشتبانی بومی در Mathematica در دسترس هستند.
CUDA ارائه کننده ی API ها در سطوح پایین تا بالا می باشد. اولین CUDA SDK در 15 فوریه سال 2007، برای ماکروسافت ویندوز و لینوکس ارائه شد. بخش پشتیبانی Mac OS X بعدا ورژن 2.0 را که بعدا با نسخه ی بتا جایگزین شد در 14 فوریه ی سال 2008 منتشر کرد. CUDA با تمام GPU های Nvidia از سری G8X شامل GeForce، Quadro و Tesla line کار می کند. CUDA با اکثر سیستم عامل های استاندارد نیز سازگار است.
CUDA نسخه ی 8 با کتابخانه های زیر همراه می باشد (برای کامپایل کردن و اجرا)
CUDA نسخه ی 8 با سایر امکانات نرم افزاری به ترتیب زیر ارائه می شود
CUDA 9.0 – 9.2 با کامپوننت های زیر ارائه می گردد
CUDA نسخه ی 10 با سایر کامپوننت ها به ترتیب زیر ارائه می شود
کاربردهای CUDA در بازی
در صنعت بازی کامپیوتر، پردازنده های گرافیکی برای رندر گرافیکی و برای محاسبات فیزیک بازی (اثرات فیزیکی مانند آوار، دود، آتش، مایعات) مورد استفاده قرار می گیرند. مثالها شامل PhysX و Bullet هستند. CUDA همچنین برای تسریع کاربرد برنامه های غیر گرافیکی در محاسبات بیولوژیکی، رمزنگاری و سایر زمینه ها به ترتیب موارد ذکر شده استفاده می شود.
تنسور فلو
با استفاده از کودا می توان موارد مربوط به TensorFlow را نیز با سرعت بیشتری با استفاده از gpu اجرا کرد.
Object Detector ها
object detector های معروفی همچون faster-rcnn یا yolo را می توان با استفاده از cuda با سرعت بسیار بیشتری اجرا کرد.
کتابخانه یادگیری عمیق CUDA که cuDNN نامیده می شود یک کتابخانه ی شتابدهنده بر اساس پردازنده ی کارت گرافیک یا همان GPU می باشد. cuDNN ارائه کننده ی الحاقاتی است که به طور خاص برای بکارگیری در کاربردهای استاندارد از قبیل forward convolution و backward convolution، pooling، normalization و activation layer ها تنظیم شده است.
محققان یادگیری عمیق (deep learning) و توسعه دهندگان فریم ورک ها در سطح جهان به cuDNN جهت انجام عملیات با بالاترین کارایی با استفاده واحد پردازش گرافیکی GPU وابسته هستند. cuDNN به آنها اجازه می دهد تا روی یادگیری شبکه های عصبی متمرکز شوند و همچنین اپلیکیشن هایی را بر این اساس تولید کنند، این مورد باعث می شود نیاز به وقت گذاشتن روی تنظیات سطح پایین مربوط به کارایی GPU و در واقع تنظیم کردن آن نباشد. cuDNN به صورت گسترده از فریم ورک های یادگیری عمیق مانند Caffe، Caffe2، Chainer، Keras، MATLAB، MxNet، TensorFlow و PyTorch است، برای دسترسی به محتویات فریم ورک یادگیری عمیق شرکت NVIDIA بخش GPU CLOUD وبسایت شرکت NVIDIA را بررسی کنید (لینک در بخش اول لینک ها زیر همین پست موجود می باشد).
روتین های پیچیده (convolution) در cuDNN یک کارایی تاثیر گذار را یا استفاده از سریع ترین GEMM (ضرب مارتریس) را با توجه به شامل بودن برخی روتین هایی که باعث کاهش تاثیر گذار استفاده از حافظه می شوند ایجاد می کند.
فریم ورک یادگیری عمیق cuDNN نسخه ی 7.5 و بالاتر قادر به ارائه ی ویژگی ها و کارایی های جدیدتر برای معماری های Volta و Turning می باشد که در نتیجه عملیات ترینینگ یا همان یادگیری شبکه های عصبی را سرعت می بخشد. مهمترین موارد ارائه شده در نسخه ی 7.5 فریم ورک cuDNN شامل موارد زیر می باشد:
در صورت تمایل می توانید آخرین نکات مربوط به نسخه های cuDNN را با کلیک روی لینک ارائه شده در بخش اول رفرنس ها دریافت کنید.
همچنین برای دریافت نسخه های دیگر فریم ورک یادگیری عمیق cuDNN می توانید به صفحه ی مربوطه در سایت NVIDIA مراجعه فرمایید.
نکته در مورد نحوه ی دریافت فریم ورک یادگیری عمیق کودا cuDNN: برای دانلود این فریم ورک می باید از ip کشور های دیگر وارد سایت NVIDIA شوید و اقدام به عضویت فرمایید، عضویت در این سایت رایگان بوده و با چند کلیک قابل انجام است، توجه داشته باشید که به خاطر مسائل مربوط به تحریم های جمهوری اسلامی ایران بهتر است از آدرس ایمیل غیر آکادمیک (غیر دانشگاهی) استفاده فرمایید و به راحتی می توانید با یک آدرس ایمیل Gmail یا Yahoo اقدام به عضویت فرمایید، در ضمن تمامی موارد مربوط به ثبت نام نیز در ویدیو ی ارائه شده در این جلسه ی آموزشی توضیح داده شده و می توانید به راحتی با دنبال کردن ویدیو اقدام به عضویت در سایت NVIDIA، دریافت نسخه ی لازمه از فریم ورک یادگیری عمیق و نصب این فریم ورک فرمایید.
لازم به ذکر است به دلیل سازگاری با اوبونتو 14.04 و مجموعه ی سایر موارد یادگیری عمیق از نسخه ی 6 cuDNN استفاده کردیم و موفق به اجرای این فریم ورک شدیم.
در این دوره، نحوه نصب yolo9000 که یک شناسایی کننده اشیا می باشد توسط مهندس سید علیرضا میرحبیبی آموزش داده شده است و یکی از آموزش های منحصر بفرد و اختصاصی دانشگاه اینترنتی می باشد.
YOLO9000 یکی از آخرین و بروز ترین سیستم های شناسایی اشیا (Object Detector) می باشد که علاوه بر Real time بودن قادر به شناسایی بیش از 9000 موضوع در بین اشیا می باشد، Yolo 9000 یکی از بهترین شناسایی کننده ها می باشد که آن را می توان با Fast RCNN و نسخه ی جدید آن یعنی Faster RCNN مقایسه کرد که عملکرد فوق العاده ای در مباحثی همشون Captioning دارند، اما نکته مهم در رابطه با YOLO 9000 سبک بودن و نصب راحت تر آن است، همچنین اگر بخواهیم از نظر علمی نتایج ارزیابی علمی آن را ارائه کنیم باید بگوییم که این آبجکت دتکتور توانسته به mAP 16 روی مجموعه Validation ایمیج نت روی 200 کلاس برسد، همچنین این شناسایی کننده قادر به تشخیص بیش از 9000 کلاس از اشیا می باشد و با دیتاست های مختلفی آموزش دیده است.
آموزش نصب این شناسایی کننده الگو روی سیستم عامل لینوکس اوبونتو (Ubuntu 14.04) توسط مهندس سید علیرضا میرحبیبی ارائه شده است.
اطلاعات بیشتر در رابطه با نتایج ارزیابی علمی YOLO 9000 در تصاویر محصول قرار داده شده است که محققان و اساتید دانشگاه می توانند علاوه بر مراجعه به وبسایت های مرجع مانند گوگل اسکولار از این نتایج نیز استفاده کنند.
در این دوره آموزشی نحوه کار با شناسایی کننده YOLO 9000 که یکی از سریع ترین شناسایی کننده های (Object detector) موجود می باشد آموزش داده شده است.
پس از نصب دارک نت (Darknet) و دانلود وزن های از پیش آموزش داده شده (Pre-trained weights) در مبحث شبکه های عصبی که برای راحتی کار استافده کنندگان از این آبجکت دتکتور قبلا توسط کامپیوتر های قدرتمندی آموزش (Train) داده شده است، شروع به عملیات تست (Test) در شبکه های عصبی می کنیم، که پس از تست کلاس های (Class) تشخیص داده شده برای هر شی (Object) به همراه احتمال درست تشخیص داده شدن آن شی در کلاس تشخیص داده شده (Probability value) ارائه می گردد، این موارد در تصاویر این دوره آموزشی نیز تا حدی مشخص می باشند.
سید علیرضا میرحبیبی، محقق، مخترع و مدرس شبکه های عصبی در روند تست این شناسایی کننده از تصاویر مربوط به بانک داده (Dataset) ویژوال ژنوم (Visual Genome) و سایر دیتاست های موجود استفاده کرده است که البته چند تصویر مورد استفاده در روند تست نیز از دوربین شخصی دریافت شده است تا نشان دهنده ی مستحکم بودن (Robost) این شناسایی کننده در برابر فرمت های مختلف و سایز های متفاوت تصاویر می باشد.
در مباحث مربوط به بینایی کامپیوتر می توان به اهمیت عملکرد در لحظه (Real time) یک شناسایی کننده شی در کاربرد های صنعتی و تحقیقاتی اشاره کرد که شناسایی کننده YOLO 9000 یکی از سبک ترین و کاملترین شناسایی کننده های می باشد که نسخه ی 9000 آن توانایی تشخیص بیش از 9000 کلاس شی را به صورت real time را دارا می باشد.
در این ویدیو آموزش نصب شناسایی کننده تصاویر با نام دارک نت یا همان تاینی دارک نت که با شهرت یولو ۹۰۰۰ نام گرفته است را به شما معرفی خواهیم کرد.
مدرس این دوره مخترع سید علیرضا میرحبیبی می باشد و در این ویدیو فقط به نصب این شناسایی کننده و اجرای تاینی یولو ۹۰۰۰ که خروجی متنی به همراه درصد احتمالات تشخیص مربوط به هر کلاس را ارایه می کند بسنده شده است.
اطلاعات کلی در رابطه با شناسایی اشیا را می توانید در متن انگلیسی زیر مطالعه فرمایید:
Object detection is a computer technology related to computer vision and image processing that deals with detecting instances of semantic objects of a certain class (such as humans, buildings, or cars) in digital images and videos. Well-researched domains of object detection include face detection and pedestrian detection. Object detection has applications in many areas of computer vision, including image retrieval and video surveillance.
It is widely used in computer vision tasks such as image annotation, activity recognition, face detection, face recognition, video object co-segmentation. It is also used in tracking objects, for example tracking a ball during a football match, tracking movement of a cricket bat, or tracking a person in a video.
Every object class has its own special features that helps in classifying the class – for example all circles are round. Object class detection uses these special features. For example, when looking for circles, objects that are at a particular distance from a point (i.e. the center) are sought. Similarly, when looking for squares, objects that are perpendicular at corners and have equal side lengths are needed. A similar approach is used for face identification where eyes, nose, and lips can be found and features like skin color and distance between eyes can be found.
Methods for object detection generally fall into either machine learning-based approaches or deep learning-based approaches. For Machine Learning approaches, it becomes necessary to first define features using one of the methods below, then using a technique such as support vector machine (SVM) to do the classification. On the other hand, deep learning techniques are able to do end-to-end object detection without specifically defining features, and are typically based on convolutional neural networks (CNN).
در این ویدیو آموزش نصب فریم ورک یادگیری عمیق را که با نام کافه معروف است به شما معرفی خواهیم کرد.
مدرس این دوره مخترع سید علیرضا میرحبیبی می باشد و در این ویدیو که بیش از ۱ ساعت و نیم می باشد به نصب این فریم ورک بسیار بسیار پرکاربرد پرداخته شده است.
این فریم ورک در زمان نصب روی یک ماشین با پردازنده ۲ هسته ای و ۸ گیگابایت رم ddr2 و یک پردازنده گرافیکی ۲ گیگابایت با برند جی فورس جی تی ۷۱۰ نصب و کانفیگ گردیده است که یک هارد دیسک ۸۰ گیگابایتی هم به عنوان دیسک اصلی برای نصب سیستم عامل لینوکس Ubuntu 14.04.6 LTS (Trusty Tahr) استفاده شده است.
اطلاعات کلی در رابطه با Caffe را می توانید در متن انگلیسی زیر مطالعه فرمایید:
CAFFE (Convolutional Architecture for Fast Feature Embedding) is a deep learning framework, originally developed at University of California, Berkeley. It is open source, under a BSD license. It is written in C++, with a Python interface.
Caffe supports many different types of deep learning architectures geared towards image classification and image segmentation. It supports CNN, RCNN, LSTM and fully connected neural network designs. Caffe supports GPU- and CPU-based acceleration computational kernel libraries such as NVIDIA cuDNN and Intel MKL.
Caffe is being used in academic research projects, startup prototypes, and even large-scale industrial applications in vision, speech, and multimedia. Yahoo! has also integrated caffe with Apache Spark to create CaffeOnSpark, a distributed deep learning framework.
In April 2017, Facebook announced Caffe2, which included new features such as Recurrent Neural Networks. At the end of March 2018, Caffe2 was merged into PyTorch.
در این ویدیو آموزش نصب شناسایی کننده Faster R-CNN | تشخیص اشیا در لحظه به صورت Real-Time را به شما معرفی خواهیم کرد.
مدرس این دوره مخترع سید علیرضا میرحبیبی می باشد و در این ویدیو که ۲ ساعت و 18 دقیقه می باشد به نصب این شبکه عصبی مربوط به آبجکت دتکشن بسیار بسیار پرکاربرد پرداخته شده است.
این کتابخانه در زمان نصب روی یک ماشین با پردازنده ۲ هسته ای و ۸ گیگابایت رم ddr2 و یک پردازنده گرافیکی ۲ گیگابایت با برند جی فورس جی تی ۷۱۰ نصب و کانفیگ گردیده است که یک هارد دیسک ۸۰ گیگابایتی هم به عنوان دیسک اصلی برای نصب سیستم عامل لینوکس Ubuntu 14.04.6 LTS (Trusty Tahr) استفاده شده است.
اطلاعات کلی در رابطه با شناسایی کننده فستر آر سی ان ان را می توانید در متن انگلیسی زیر مطالعه فرمایید:
Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
State-of-the-art object detection networks depend on region proposal algorithms to hypothesize object locations. Advances like SPPnet and Fast R-CNN have reduced the running time of these detection networks, exposing region proposal computation as a bottleneck. In this work, we introduce a Region Proposal Network (RPN) that shares full-image convolutional features with the detection network, thus enabling nearly cost-free region proposals. An RPN is a fully convolutional network that simultaneously predicts object bounds and objectness scores at each position. The RPN is trained end-to-end to generate high-quality region proposals, which are used by Fast R-CNN for detection. We further merge RPN and Fast R-CNN into a single network by sharing their convolutional features---using the recently popular terminology of neural networks with attention mechanisms, the RPN component tells the unified network where to look. For the very deep VGG-16 model, our detection system has a frame rate of 5fps (including all steps) on a GPU, while achieving state-of-the-art object detection accuracy on PASCAL VOC 2007, 2012, and MS COCO datasets with only 300 proposals per image. In ILSVRC and COCO 2015 competitions, Faster R-CNN and RPN are the foundations of the 1st-place winning entries in several tracks. Code has been made publicly available.
در این ویدیو آموزش نصب کتابخانه OpenCV (اپن سی وی) و اجرای آلگاریتم تشخیص چهره به صورت Real-Time از طریق وبکم را به شما معرفی خواهیم کرد.
مدرس این دوره مخترع سید علیرضا میرحبیبی می باشد و در این ویدیو که 22 دقیقه می باشد به نصب این کتابخانه بسیار بسیار پرکاربرد در مبحث بینایی ماشین و پردازش تصویر پرداخته شده است.
این کتابخانه در زمان نصب روی یک ماشین با پردازنده ۲ هسته ای و ۸ گیگابایت رم ddr2 و یک پردازنده گرافیکی ۲ گیگابایت با برند جی فورس جی تی ۷۱۰ نصب و کانفیگ گردیده است که یک هارد دیسک ۸۰ گیگابایتی هم به عنوان دیسک اصلی برای نصب سیستم عامل لینوکس Ubuntu 14.04.6 LTS (Trusty Tahr) استفاده شده است.
اطلاعات کلی در رابطه با شناسایی کننده OpenCV را می توانید در متن انگلیسی زیر مطالعه فرمایید:
About OpenCV
OpenCV (Open Source Computer Vision Library) is an open source computer vision and machine learning software library. OpenCV was built to provide a common infrastructure for computer vision applications and to accelerate the use of machine perception in the commercial products. Being a BSD-licensed product, OpenCV makes it easy for businesses to utilize and modify the code.
The library has more than 2500 optimized algorithms, which includes a comprehensive set of both classic and state-of-the-art computer vision and machine learning algorithms. These algorithms can be used to detect and recognize faces, identify objects, classify human actions in videos, track camera movements, track moving objects, extract 3D models of objects, produce 3D point clouds from stereo cameras, stitch images together to produce a high resolution image of an entire scene, find similar images from an image database, remove red eyes from images taken using flash, follow eye movements, recognize scenery and establish markers to overlay it with augmented reality, etc. OpenCV has more than 47 thousand people of user community and estimated number of downloads exceeding 18 million. The library is used extensively in companies, research groups and by governmental bodies.
Along with well-established companies like Google, Yahoo, Microsoft, Intel, IBM, Sony, Honda, Toyota that employ the library, there are many startups such as Applied Minds, VideoSurf, and Zeitera, that make extensive use of OpenCV. OpenCV’s deployed uses span the range from stitching streetview images together, detecting intrusions in surveillance video in Israel, monitoring mine equipment in China, helping robots navigate and pick up objects at Willow Garage, detection of swimming pool drowning accidents in Europe, running interactive art in Spain and New York, checking runways for debris in Turkey, inspecting labels on products in factories around the world on to rapid face detection in Japan.
It has C++, Python, Java and MATLAB interfaces and supports Windows, Linux, Android and Mac OS. OpenCV leans mostly towards real-time vision applications and takes advantage of MMX and SSE instructions when available. A full-featured CUDAand OpenCL interfaces are being actively developed right now. There are over 500 algorithms and about 10 times as many functions that compose or support those algorithms. OpenCV is written natively in C++ and has a templated interface that works seamlessly with STL containers.