تغیر خیرگی چشم با رویکرد‌های یادگیری ژرف – deepwarp

مقاله deepwarp یکی از مقالات منتشر شده در سال ۲۰۱۶ میباشد. ایده اصلی شناسایی ناحیه مربوط به چشم و سپس شناسایی ویژگی های مربوط به جهات آن در راستای اعمال جهت و زاویه به آن هاست.

توضیحات مقاله در ادامه آورده شده است:

The proposed system takes an input eye region, feature points (anchors) as well as a correction angle and sends them to the multi-scale neural network predicting a flow field. The flow field is then applied to the input image to produce an image of a redirected eye. Finally, the output is enhanced by processing with the lightness correction neural network.

Links: pdf poster (additional results) online demo

News

  • ۲۴٫۰۲٫۱۷: Check out an article (in Russian) about the technology! It comes with a Telegram bot.
  • ۱۱٫۰۳٫۱۷: New! An article (in English) on the Verge.
  • ۱۱٫۰۳٫۱۷: New! The online demo should be working on iOS and in the Safari browser.

Abstract

In this work, we consider the task of generating highly-realistic images of a given face with a redirected gaze. We treat this problem as a specific instance of conditional image generation, and suggest a new deep architecture that can handle this task very well as revealed by numerical comparison with prior art and a user study. Our deep architecture performs coarse-to-fine warping with an additional intensity correction of individual pixels. All these operations are performed in a feed-forward manner, and the parameters associated with different operations are learned jointly in the end-to-end fashion. After learning, the resulting neural network can synthesize images with manipulated gaze, while the redirection angle can be selected arbitrarily from a certain range and provided as an input to the network.

Deep Learning network to change the gaze of the person

?Paper:
http://sites.skoltech.ru/compvision/projects/deepwarp/files/deepwarp_eccv2016.pdf

?Project Page:
http://sites.skoltech.ru/compvision/projects/deepwarp/

?Telegram Bot:
https://telegram.me/MeduzaEyesBot

?Online Demo:
http://163.172.78.19/

فیلم های دوره آموزشی تحلیل با رویکرد یادگیری ژرف بر بستر کلان داده در دانشگاه شریف

لازم به ذکر است که فیلم های آپلود شده در حداقل سه کیفیت ۷۲۰p، ۳۶۰p و ۱۸۰p قابل دانلود می باشند.

شماره جلسه موضوعات مطرح شده لینک سایت دسترسی به فایل ها فیلم جلسه
۱ مقدمات فضای تحلیل اطلاعات و بیان ذهنیت اولیه در خصوص یادگیری ماشین و در انتها به سمت یادگیری ژرف و فریمورک ها و کتابخانه های این حوزه پرداخه شده است جلسه اول اسلاید  دانلود فیلم
۲ از صفر شروع به دید دادن در خصوص شبکه های عصبی کردیم و سپس به سمت شبکه های کانولوشنال و اجزای آن و در انتها آماده سازی ذهنیتی در خصوص یادگیری ژرف  انجام شده است. جلسه دوم اسلاید دانلود فیلم
۳ در ادامه جلسه دوم، کمی سعی کردیم مباحث را کامل تر کنیم و روی مباحث مثل گرادیان نزولی و توابع فعالیت و… بحث کنیم و در انتها روی پژوهش های اخیر این حوزه در جهان مقالاتی را شرح مختصر دادیم.  جلسه سوم  اسلاید  دانلود فیلم
۴ در این جلسه شروع به معرفی یکی از کتابخانه های مهم که شرکت گوگل از آن استفاده میکند و نامش TensorFlow (تنسورفلو) بود کردیم و سعی کردیم مقدمات کدنویسی مهیا شود.  جلسه چهارم  اسلاید  دانلود فیلم
۴-۱ در این فیلم آموزشی که تکمیلی بر جلسه چهارم هست، آموزش نصب تنسورفلو در محیط سیستم عامل ویندوز را بیان کردیم. در این فیلم سعی شده تا با استفاده از نصب anaconda  و سپس ایجاد یک محیط اختصاصی با conda و نصب تنسورفلو، بتوانیم به راحتی در محیط ipython و spyder برای استفاده از کتابخانه تنسورفلو آماده شویم.  لینک سایت فایل  دانلود فیلم
۴-۲ در این فیلم آموزشی نیز که تکمیلی بر جلسه چهارم هست، آموزش نصب تنسورفلو در محیط سیستم عامل لینوکس را بیان کردیم. در این فیلم سعی شده تا با استفاده از virtualenv یک پایتون اختصاصی درست کنیم و سپس در آن تنسورفلو را نصب کنیم. همچنین با استفاده از ipython و pycharm و یک سری ide دیگر چند تست ساده را جهت آماده شدن بزنیم.  لینک سایت  –  دانلود فیلم
۵ در این جلسه کاملا تخصصی و کارگاهی چندین مثال عملی از ساده تا نیمه پیشرفته را در محیط تنسورفلو با هم پیش بردیم.  جلسه پنجم فایل  دانلود فیلم
۶ در این جلسه روی مباحث مربوط به شبکه های بازگشتی RNN و LSTM و …. مانور دادیم و مثال هایی در حوزه های پردازش زبان طبیعی (NLP – Text) و همچنین ویدیو بیان کردیم.  جلسه ششم  دانلود فیلم
۷ در این جلسه به صورت تخصصی روی حوزه پردازش متن کار کردیم و ایده و پروژه های عملی که قابلیت اجرا و پیاده سازی در این حوزه داشتند را مانور دادیم.  جلسه هفتم  –  دانلود فیلم
۸ در خصوص مقالات RCNN، FastRCNN، FasterRCNN و YOLO که بیشتر در مباحث شناسایی شیء و … کاربرد دارد بحث شده است  جلسه هشتم اسلاید  دریافت فیلم
۹ آموزش ابتدایی کتابخانه یادگیری ژرف پایتورچ  جلسه نهم اسلایدipython  دریافت فیلم

 

منبع : http://bigdataworkgroup.ir/deep-learning-course-bdwg-sharif-1395

ارائه استخراج اطلاعات متنی با رویکرد یادگیری ژرف | دانشگاه صنعتی امیرکبیر

جلسه هفتم سمینارهای ماهانه یادگیری عمیق در پردازش زبان طبیعی دوشنبه آینده، ۱ آبان، ساعت ۱۲:۱۵ در آمفی تئاتر دانشکده مهندسی کامپیوتر برگزار خواهد شد. در این جلسه آقای یعقوب‌زاده فارغ‌التحصیل دانشگاه مونیخ در مورد موضوع پایان‌نامه دکترای خود با عنوان زیر ارائه سخنرانی خواهند داشت
Deep Learning for Information Extraction

 

دانلود ویس جلسه

 

دانلود فایل ارایه

 

جهت اطلاعات بیشتر از برنامه ارائه‌های انجام شده و ارائه‌های آیتی می‌توانید به لینک زیر مراجعه نمایید
http://nlp.ceit.aut.ac.ir/seminars.html

دوره یادگیری ژرف پژوهشکده مخابرات و فناوری ارتباطات

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

برای مشاهده همه این ها به لیست پخش مراجعه کنید:
لیست پخش

 

جلسه اول

آموزش های رایگان یادگیری ماشین با بهترین کیفیت آموزشی

در این مطلب قرار هست شما را با لینک های بسیار مفید جهت ارتقای سطح «یادگیری ماشین» که در دروس هوش مصنوعی رشته کامپیوتر اعلب تدریس میشود آشنا کنیم.

 

لینک اول : آموزش جناب اندرونگ هست که زحمت آپلودش توسط بچه های خوب مکتبخونه کشیده شده و خداقوت داره خدمتشان

https://maktabkhooneh.org/course/andrew647

 

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

https://maktabkhooneh.org/course/soleymani23

 

 

باتشکر از جناب مهندس علیزاده در خصوص ارسال این لینک های جالب و مفید

نمایش گرافیکی ماترسی اغتشاش confusion matrix

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

توضیح ویکیپدیا برای ماتریس اغتشاش:

در حوزهٔ هوش مصنوعی، ماتریس در هم ریختگی (به انگلیسی: confusion matrix) به ماتریسی گفته می‌شود که در آن عملکرد الگوریتم‌های مربوطه را نشان می‌دهند. معمولاً چنین نمایشی برای الگوریتم‌های یادگیری با ناظر استفاده می‌شود، اگرچه در یادگیری بدون ناظر نیز کاربرد دارد. معمولاً به کاربرد این ماتریس در الگوریتم‌های بدون ناظر ماتریس تطابق می گویند. هر ستون از ماتریس، نمونه‌ای از مقدار پیش بینی شده را نشان می‌دهد. در صورتی که هر سطر نمونه‌ای واقعی (درست) را در بر دارد. اسم این ماتریس نیز از آنجا بدست می‌آید که امکان این را آسانتر اشتباه و تداخل بین نتایج را مشاهده کرد. در خارج از هوش مصنوعی این ماتریس معمولاً ماتریس پیشایندی (contingency matrix) یا ماتریس خطا (error matrix) نامیده می‌شود. در مباحث هوش مصنوعی از این جدول برای تعیین مقدار شاخص های ارزیابی مانند دقت (Precision) و صحت (Recall) استفاده می شود. دقت عبارت است از اینکه “چه میزان از نمونه های انتخابی درست هستند” و صحت بر این مفهوم که “چه میزان از نمونه های صحیح موجود انتخاب شده اند” دلالت دارند. البته با ممکن است در منابعی، Accuracy نیز دقت ترجمه شود که مفهومی کاملا متفاوت داشته و بر میزان نمونه هایی اشاره دارد که سیستم در تشخیص آنها موفق بوده است.

خب برای استفاده از یادداشت ام نوت ذیل استفاده کنید

کافیست تابع ذیل را به کد پایتونی خود اضافه کنید:

 

برای بحث استفاده نیز کافیست کد ذیل را بزنید:

 

منظور از y_true و y_pred در مطلب « محاسبه عناصر جدول اغتشاش TP,NP,FP,FN» بیان گردیده است.

 

منبع : https://goo.gl/otsmhY

باتشکر از مهندس محمد خالوئی در اشتراک گذاشتن این لینک مفید.

 

شما نیز میتوانید از طریق بخش ارتباط با ما مطالب خوب و مفیدتان را برای درج در سامانه ارسال کنید. همچنین جهت همکاری به https://mnote.ir/collaboration/  مراجعه کنید

محاسبه عناصر جدول اغتشاش confusion matrix : TP,NP,FP,FN در راحت ترین وجه ممکن!

در این مطلب قرار هست تا با چیزی شما را آشنا کنیم که در زمان ارزیابی سیستم یا مدل یا ایده ای که داشتید شما را از وضعیت کارکرد سیستم آگاه میکند. همانطور که میدانید در Confusion matrix شما با توجه به میزان درستی و میزان اشتباهاتی که در حالات مختلف TP,NP,FP,FN رخ میدهد میتوانید تقریبا روند کارکرد سیستم خود را ارزیابی کنید.

شما کافیست با مثال ذیل همگام شوید. البته اگر میخواهید آن را برای کد خود استفاده کنید کافیست فقط دو آرایه y_pred که به معنای چیزی که مدل یا شبکه شما بدان رسیده را با y_true با چیزی که به عنوان Ground Truth (جدول درستی) دارید مقایسه و ارزیابی کنید

برای مثال:

در ابتدا کتابخانه Numpy را اضافه کنید:

سپس برای مثال ما اعداد وکتوری ذیل را جهت آزمایشی ایجاد میکنیم

حال کافیست کد ذیل را برای محاسبه چهار حالتTP,NP,FP,FN نیز بنویسیم:

 

به همین راحتی.

منبع این مطلب :  https://goo.gl/hEF6SQ

باتشکر از مهندس محمد خالوئی  در خصوص ارسال این نکته  و لینک مفید

ایام خوبی برایتان آرزو مندم

نکات مهم و کاربردی در حوزه یادگیری ژرف (سری اول)

نکات ورودی اطلاعات

نکته اول : بحث نوع داده ورودی

یکی از نکات مهم این هست که داده های مورد استفاده باید در فضای ۳۲بیتی قرار گیرند. زیرا شبکه های عصبی در این فضا بهتر کار میکنند. درواقع باید فرمت دادگان شما float32 باشد که این نوع داده قابل ارائه و تبدیل شدن با استفاده از numpy در پایتون است:

 

نکته دوم : بحث اندازه داده ورودی

برای کار با شبکه های عصبی نکته مهمی که حائز اهمیت هست این است که اندازه همه نمونه های ورودی شبکه باید یکسان باشد. لذا نیاز است تا یک سری کارها روی داده های ورودی انجام پذیرد تا همه به یک اندازه باشند (سایز ورودی یکسان باشد)

 

توجه به بحث batch در آماده سازی داده

برای کار با شبکه های ژرف نیاز هست تا دادگان ورودی آماده گردند. همچنین نیاز هست که داده ها به صورت دسته های چندتایی به شبکه ورود پیدا کنند. لذا برای اینکه ورودی را آماده کنیم نیاز است تا ساختار ورودی به صورت N x H x W x C که به ترتیب از چپ به راست تعداد تصاویر, ارتقاع, عرض و کانال هر تصویر می باشد.

برای تبدیل داده ها اگر آنها را درون لیست ذخیره کرده باشید با استفاده از کد ذیل میتوانید آن ها را به صورت فوق دربیاورید:

نکته ای که در تبدیل موجود numpy در بخش فوق وجود دارد این است که برای اعمال شدن و درست کار کردن نیاز است تا همه داده های ما قبل از انجام این مرحله یک اندازه (سایز) باشند. در این صورت پاسخی که دریافت میشود یک ماتریس چهار بعدی که شامل N x H x W x C  است.

 

همچنین از کد ذیل نیز میتوانید استفاده کنید که دقیقتر و با جزئیات بیشتری است:

 

 

 


باتشکر از جناب مهندس محمد خالوئی در ارائه و تآمین محتوای این بخش.

درجه (Rank)، بعد(Dimension) و شکل (Shape) تنسور در تنسورفلو

مفاهیم Rank و Dimension و shape در طراحی و استفاده آن در پیاده سازی معماری مورد نظر در تنسورفلو مفاهیم مهمی هستند که باید به آن ها احاطه داشت. مطالب زیادی در نت جستجو کردم ولی به نظرم مطالب ذیل که از سایت tflearn.ir دیدم خیلی مفید بود:

فقط یک نکته :: در این سایت تنسور را تانسور مینامیده و پیشرفته لذا هرجا تانسور دیدید همون تنسور خودمون هست (:

 

مطالب مهمش جهت کش و ذخیره در ام نوت:

تنسورفلو از داده ساختارهای مبتنی بر تانسور بهره می‌گیرد و هم‌چنین انواع نوع داده‌های مبتنی تانسور را مرور کردیم. در ادامه به معرفی ویژگی‌های این نوع داده ساختارهای تانسورها می‌پردازیم.

برنامه‌های تنسورفلو از داده ساختارهای مبتنی بر تانسور برای نمایش و بازنمایی داده‌ها استفاده می‌کنند. همان‌طور که پیش‌تر هم گفتیم شما می‌توانید برای تجسم بهتر تانسورها از آرایه‌ها و یا لیست‌های چندبعدی (n-بعدی) استفاده کنید. یک تانسور نوعی ایستا (static) و ابعادی پویا دارد. فقط تانسورها می‌توانند به‌صورت رأس‌های گراف محاسباتی مورد پردازش قرار گیرند.

درجه

در تنسورفلو، تانسورها به صورت واحدهایی از ابعاد توصیف می‌شوند که به آن درجه (Rank) می‌گویند. درجه تانسور شبیه درجه ماتریس نیست. درجه تانسور بیانگر تعداد ابعاد یک تانسور است. برای مثال تانسور روبرو (که به‌صورت یک لیست پایتونی تعریف‌شده است) دارای درجه ۲ است:

تانسور درجه ۲ در حقیقت همان چیزی است که ما عمدتاً با نام ماتریس و تانسور درجه ۱ را با نام بردار (Vector) می‌شناسیم. در تانسور درجه ۲ برای دسترسی به هر المان (درایه) از دستورهای به شکل t[i,j] استفاده می‌شود. برای تانسور درجه ۳ مستلزم آن هستیم که از یک آدرس‌دهی به شکل t[i, j, k]  استفاده کنیم.

درجه موجودیت ریاضیاتی نمونه کد پایتون
۰ مقدار اسکالر s = 483
۱ بردار v = [1.1, ۲٫۲, ۳٫۳]
۲ ماتریس m = [[1, ۲, ۳], [۴, ۵, ۶], [۷, ۸, ۹]]
۳ تانسور درجه ۳ t = [[[2], [۴], [۶]], [[۸], [۱۰], [۱۲]],[[۱۴], [۱۶], [۱۸]]]
n تانسور درجه n ….

شکل

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

درجه شکل شماره بعد مثال
۰ [] ۰-D یک تانسور ۰-D (0-بعدی) یک عدد است. (اسکالر)
۱ [D0] ۱-D یک تانسور ۱-D (1-بعدی) به شکل [۵]
۲ [D0, D1] ۲-D یک تانسور ۲-D به شکل [۳,۴]
۳ [D0, D1, D2] ۳-D یک تانسور ۳-D به شکل [۱,۴,۵]
n [D0, D1, … Dn-1] n-D یک تانسور به شکل [D0, D1, … Dn-1].

شکل تانسورها را می‌توان به صورت لیست پایتون یا تاپل‌هایی (tuple) از اعداد و یا نوع داده tf.TensorShape نشان داد.

نوع داده

تانسورها در تنسورفلو علاوه بر ابعاد دارای نوع داده‌ای نیز هستند. شما می‌توانید هر یک از نوع داده‌های جدول زیر را به تانسورها اختصاص دهید.

نوع داده نوع پایتون شرح
DT_FLOAT tf.float32 ممیز شناور ۳۲ بیتی
DT_DOUBLE tf.float64 ممیز شناور ۶۴ بیتی
DT_INT8 tf.int8 عدد صحیح علامت دار ۸ بیتی
DT_INT16 tf.int16 عدد صحیح علامت‌دار ۱۶ بیتی
DT_INT32 tf.int32 عدد صحیح علامت‌دار ۳۲ بیتی
DT_INT64 tf.int64 عدد صحیح علامت‌دار ۶۴ بیتی
DT_UINT8 tf.uint8 عدد صحیح بدون علامت ۸ بیتی
DT_UINT16 tf.uint16 عدد صحیح بدون علامت ۱۶ بیتی
DT_STRING tf.string آرایه با طول متغیر. هر عنصر از یک تانسور آرایه‌ای از بایت‌ها است.
DT_BOOL tf.bool بولی.
DT_COMPLEX64 tf.complex64 اعداد مختلط ساخته‌شده از دو ۳۲ بیت نقاط شناور: قسمت حقیقی و موهومی.
DT_COMPLEX128 tf.complex128 اعداد مختلط ساخته‌شده از دو ۶۴ بیت نقاط شناور: قسمت حقیقی و موهومی.
DT_QINT8 tf.qint8  ۸ بیت عدد صحیح علامت‌دار که در عملیات کوانتیده استفاده می‌شود.
DT_QINT32 tf.qint32 ۳۲ بیت عدد صحیح علامت‌دار که در عملیات کوانتیده استفاده می‌شود.
DT_QUINT8 tf.quint8  ۸ بیت عدد صحیح بدون علامت که در عملیات کوانتیده استفاده می‌شود.

منبع: http://www.tflearn.ir/1396/01/13/tensors/

نصب تنسورفلو (کتابخانه یادگیری ژرف گوگل)

در ابتدای نصب تنسور فلو میبایست فایل whl  نسخه مورد نظر برای استفاده با cpu و یا gpu را از آدرس ذیل دانلود کنید ( اگر با دانلود مشکل داشتید اطلاع دهید تا لینک داخلی بدهیم.)

https://www.tensorflow.org/install/install_linux#the_url_of_the_tensorflow_python_package

سپس با استفاده از یک virtualenv که در آموزش های قبلی (برای مطالعه مطالب روی لینک نصب و استفاده کلیک کنید و ابتدا آن را مطالعه کنید) ساختید آن را توسط راهنمایی های لینک ذیل نصب کنید

https://www.tensorflow.org/install/install_linux#installing_with_virtualenv

درواقع باید پس از دانلود با استفاده از کامند ذیل عمل کنید:

پس از فعال کردن  virtualenv مورد نظر :

source mnote-virtualenv/bin/activate

pip install tensorflow-1–yourspecificnote-version

به همین راحتی!