سورس کد برنامه تشخیص حالت دست (زبان اشاره) برای ناشنوایان در opencv

در این پروژه با استفاده از الگوریتم های تشخیص الگو و یادگیری ماشین، تشخیص حالت دست (hand recognition) را در زبان اشاره (الفبای اشاره ای فارسی محسن لوح موسوی) برای ناشنوایان پیاده سازی کرده ایم،همچنین از الگوریتم های یادگیری ماشین مانند شبکه عصبی و svm و زبان برنامه نویسی ++C و کتابخانه opencv در قسمت یادگیری ماشین استفاده کرده ایم. دیتاست این پروژه از ۵۰ شخص مختلف جمع آوری شده است.

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

opencv چیست

اوپن‌سی‌وی (OpenCV) یا همان Open Computer Vision Library مجموعه ای از کتابخانه‌های برنامه‌نویسی پردازش تصویر و یادگیری ماشین است. این مجموعه بیشتر بر پردازش تصویر بی درنگ تمرکز دارد. در ابتدا توسط اینتل ساخته و پشتیبانی می‌شد و هم‌اکنون توسط Willow Garage و Itseez پشتیبانی می‌گردد. استفاده از آن با پروانه فری بی‌اس‌دی آزاد است. اوپن سی وی کتاب‌خانه‌ای چندسکویی است و توسط سیستم عامل‌های ویندوز، لینوکس، مک اواس، آی او اِس و اندروید پشتیبانی می‌شود. همچنین دارای رابط برنامه‌نویسی به زبان‌های سی، سی++، پایتون، جاوا و متلب می‌باشد.

 

فیلتر گابور در استخراج ویژگی با متلب

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

 

تعریف و مراحل انجام پروژه

در این پروژه از سایت درس دانلود (تشخیص حالت دست) می خواهیم حالت دست در تصویر را شناسایی کنیم، برای این منظور از opencv استفاده کرده ایم، در opencv می توان از الگوریتم های هوش مصنوعی مانند شبکه عصبی و ماشین بردار پشتیبان برای طبقه بندی استفاده کرد. در این پروژه نیز از این الگوریتم ها برای تشخیص و طبقه بندی استفاده نموده ایم. در مرحله پیش پردازش از فیلتر گابور استفاده نموده ایم، بعد از شناسایی confusion matrix را تشکیل داده ایم تا بتوانیم الگوریتم های طبقه بندی مورد استفاده را با یکدیگر مقایسه کنیم.

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

در این پروژه از الگوریتم های یادگیری ماشین مانند neural network،bayeisan network, decision tree و svm  استفاده کرده ایم، پیاده سازی با زبان برنامه نویسی ++C و با استفاده از opencv انجام شده است. دیتاست این پروژه از ۵۰ شخص مختلف جمع آوری شده است.

 

سورس پروژه های موجود در درس دانلود در زمینه یادگیری ماشین و هوش مصنوعی را می توانید از اینجا مشاهده کنید.

 

ویژگی های این پروژه عبارتند از:

  • پیاده سازی با زبان برنامه نویسی ++C
  • استفاده از کتابخانه opencv
  • پیش پردازش داده ها با الگوریتم های پردازش تصویر مانند رفع نویز و استفاده از فیلتر گابور
  • استفاده از الگوریتم های دسته بندی مختلف برای بازشناسی
  • نمایش ماتریس پیچیدگی (confusion matrix) در قسمت تست

این پروژه در متلب (matlab) نیز پیاده سازی شده و می توانید از اینجا آن را دانلود کنید.

 

مراحل خرید فایل دانلودی
اگر محصول را می پسندید لطفا آنرا به اشتراک بگذارید.

دیدگاهی بنویسید

0