تراز کردن کارت ملی هوشمند

مقدمه : برای پروژه ی احراز هویت کاربر توسط کارت ملی هوشمند , تعدادی داده (تصویر کارت ملی) جمع آوری شد که پردازش برخی از این داده ها بخاطر زاویه و مقیاسی که داشتند امکان پذیر نبود به این خاطر تصاویر به صورت دستی توسط برنامه ی  Camscanner  تراز و سپس برش داده شدند.برنامه ی تراز کردن کارت ملی برای انجام خودکار این فرایند نوشته شده است.

ادامه خواندن تراز کردن کارت ملی هوشمند

Chatbot with Voice

مقدمه

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

ادامه خواندن Chatbot with Voice

music box

چکیده:

در این پروژه، دو هدف دنبال شده‌است. یکی تشخیص تک‌به‌تک نت‌های موسیقی (نام نت و ارزش زمانی نت) از روی یکnote sheet(Note Reader)، و دیگری تشخیص سبک موسیقی(music genre recognition) از روی فایل صوتی (پاپ، راک،…) . و در هر بخش شبکه‌های متفاوتی آموزش داده‌شده است.که یک به یک هر دو هدف توضیح داده خواهد شد.

Note Reader:
مقدمه

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

در این پروژه از سه روش برای تشخیص نت استفاده و نتیجه های آن بررسی شد، در ادامه هر سه روش به طور مفصل بیان خواهد شد.

آزمایش‌ها و داده‌ها

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

برای رفع این مشکل با استفاده از الگوریتم DBScan سعی کردیم نقاط core را شناسایی کرده و از فاصله ای مناسب آن ها را ببریم.

Segmentation & RNN:

دیتاست این قسمت شامل تصویر نت شیت و یک فایل txt حاوی نام نت ها موجود در هر خط به طور جدا گانه است.

در این قسمت از شبکه lstm استفاده کردیم اما متاسفانه چون تمام نت ها به طور قطع در الگوریتم DBScan شناسایی نمی شدند یا موارد اضافه تری هم به عنوان نت شناسایی میشدند که در فایل txt نامی از آنها نبود، به همین خاطر که mapping درستی بین نت ها در نت شیت و فایل txt وجود نداشت و شبکه دچار مشکل میشد.

CTC Loss:

برای استفاده از CTC loss از مدل اماده توسعه داده شده به کراس در لینک زیر استفاده کردیم اما این بار هم به دلایل مشابه در قسمت segmentation به مشکل خوردیم و وقتی سعی کردیم مشکل را نادیده بگیریم و مدل را روی 5 نت شیت بدون ارور آزمایش کنیم سخت افزاری دچار مشکل شدیم.

CTC keras model:https://git.litislab.fr/TextRecognition/CTCModel/tree/master

CNN:

تشخیص نت شامل دو بخش نام نت(دو-ر-می-فا-…) و ارزش زمانی(گرد-سفید-سیاه-چنگ-دولا چنگ-…) مربوط نت است.که برای هر یک از این قسمت ها شبکه جداگانه آموزش دادیم. مشکل اصلی در این قسمت نبود دیتاست بود که سعی کردیم با استفاده از همان الگوریتم DBScan به تولید دیتا بپردازیم و لیبل بزنیم که نتیجه این نوع تولید دیتا وجود دو الی سه برابر دیتا در کلاس های پر کاربرد بود که پس از ترین کردن، شبکه تنها قادر به تشخیص یک نوع نت بود که سه برابر بقیه کلاس ها در آن دیتا وجود داشت. برای رفع این مشکل به علت کمبود وقت سعی کردیم دیتا ها را در همه کلاس ها یکسان کنیم اما این کار هم باعث overfit شدن شبکه با accuracy 99%   شد.

music genre recognition:
مقدمه

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

آزمایش‌ها و داده‌ها

دیتاست:

ما برای این قسمت از دیتاست GTZAN که شامل انواع سبک های ” classical, country, disco, hip hop metal, jazz, pop, reggae, blues, rock,” است استفاده کردیم.

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

http://github.com/ruohoruotsi/LSTM-Music-Genre-Classification

(دیتاست 6 کلاسه را کامل شد و بر روی شبکه آن کار شد)

برای تعیین ژانر موسیقی همانطور که در بقیه قسمت های مربوط به موسیقی در شبکه های عمیق مانند music generation مطرح است باید ویژگی های آن موسیقی را ابتدا استخراج کرد. که در اینجا از کتابخانه librosa برای این کار استفاده شده است.

ویژگی های استخراج شده شامل MFCC مربوط به طیف صدا و Spectral Centroid مربوط به مرکز طیف صداو CHROMA مربوط به اطلاعات اکتاو ها و نت های موسیقی و Spectral Contrast مربوط به کنتراست طیفی مبتنی بر اکتاو  است.

در این سمت از دو لایه LSTM برای آموزش مدل استفاده شده است که با افزایش این تعداد لایه به accuracy پایین تر بر روی دیتا ها رسیدیم و حتی سعی کردیم از شبکه کانوولوشنالی هم قبل از لایه های lstm استفاده کنیم اما نتیجه ی بهتری نگرفتیم.

در نهایت accuracy ما بر روی این داده های validation به 75% رسید اما تشخیص درستی در پی نداشت.

منابع

http://github.com/ruohoruotsi/LSTM-Music-Genre-Classification

https://git.litislab.fr/TextRecognition/CTCModel/tree/master

 

 

اعضای گروه : معصومه سلیمیان – آرزو یوسفی

بازشناسی دست نوشته های فارسی

مقدمه

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

 

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

تشخیص پلاک فارسی خودرو

پروژه دانشجویی درس یادگیری عمیق  |  محمدحسن ستاریان و امیرمحمد قریشی

مقدمه

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

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

ادامه خواندن تشخیص پلاک فارسی خودرو

پردازش اشیاء بصری با مدل‌های مولد

مقدمه

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

ادامه خواندن پردازش اشیاء بصری با مدل‌های مولد

Speech Emotion Recognition

چکیده

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

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

مقدمه

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

تشخیص احساسات از روی گفتار 

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

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


مراحل انجام کار 

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

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


جمع آوری داده 

در این پروژه جمع آوری داده از چالش های اصلی طراحی این سیستم بوده است . مجموعه داده های مورد استفاده شامل دیتاهای به زبان فرانسوی و انگلیسی است که در 4 کلاس خشمگین ، خوشحال ، ناراحت و خنثی در قالب صدای افراد پیر ، جوان و کودک ( زن و مرد ) جمع آوری شده اند ، هر یک از این کلاس ها بین 300 تا 400 داده ی مختلف را در خود جای داده اند .

مراحل آماده سازی داده ها 

برای آموزش مدل و تشخیص 4 کلاس گفته شده نیاز است تا مجموعه داده ی واحدی از لحاظ فرمت ، sampling rate ، bit resolution و تعداد کانال ( mono – stereo ) و … داشته باشیم .

بر این اساس داده های موجود را به شکلی واحد ، مطابق زیر درآوردیم :

  •  32 bit resolution
  •   16KHz sampling rate
  •  256kbps bitrate
  •  Mono audio chanells
  •   wav format

استفاده از سری دیتاست های مختلف (فرانسوی ، انگلیسی ، فرانسوی و انگلیسی ) 

به منظور دست یابی به بهترین کارایی ممکن با استفاده از داده های موجود در ابتدا تنها با استفاده از دیتاهای فرانسوی به آموزش مدل پرداختیم و به کارایی 96.2% و خطای 0.02 رسیدیم ، همین روند را برای دیتای انگلیسی پیش گرفتیم و نتایج 91.2% کارایی و 0.02 خطا مشاهده نمودیم . در آخر با استفاده از هردو سری دیتاهای انگلیسی و فرانسوی مدل را آموزش دادیم و به 92.7% و 0.006 رسیدیم .

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


استخراج ویژگی ها 

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

روش MFCC

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

تحقیقات انجام شده نشان دهنده ی این هستند که روش استخراج ویژگی MFCC مناسب ترین روش برای سیگنال های صوتی به ویژه گفتار می باشند

MFCC مطابق روال زیر محاسبه می شود :

ورودی: یک فریم از سیگنال گفتار

1-  یک تابع پنجره ی مناسب مانند پنجره ی همینگ روی فریم های موجود اعمال می کنیم.

2- روی خروجی مرحله ی قبل تبدیل فوریه ی گسسته (DFT) اعمال می کنیم .

3- خروجی مرحله قبل را در یک بانک فیلتر که اصطلاحا بانک فیلتر mel نامیده می شود، ضرب می کنیم.

4- خروجی های مرحله ی قبل را با هم جمع می کنیم.

5- از حاصل جمع مرحله ی قبل لگاریتم می گیریم .

6- سپس با استفاده از تبدیل DCT یعنی Discrete cosine transform می گیریم .


معماری مدل های مورد استفاده 

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

 

سپس به پیاده سازی یک مدل با استفاده از Recurrent neural network پرداختیم و نتایجی بهتر مطابق قسمت قبلی رسیدیم .

 

با توجه به نتایج بدست آمده در این مرحله با مدل RNN پیش رفتیم و در انتهای لایه های موجود ،  با استفاده از Dense (چهار تایی)  و تابع فعال ساز Softmax به تفکیک 4 کلاس موجود پرداختیم .

در انتها موفق به تفکیک صداهایی در 4 احساس مختلف عصبانی ، خوشحال ، غمگین و خنثی شدیم .


پروژه ی تشخیص احساسات از روی گفتار                                                                                               محیا مهدیان _ نفیسه داوری

 

Voice Style Transfer

 

اعضای گروه : محسن مدنی – یاسین اسفندیاری – سهیل اشعاری

چکیده

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

پروژه ترجمه ماشین

اعضای گروه : عاطفه ولی پور – المیرا قربانی

مقدمه

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