پروژه تشخیص اجزای چهره با متلب به همراه آموزش
در این پست پروژه تشخیص اجزای چهره با متلب به همراه فایل راهنما را آماده کرده ایم که بر روی تصویر چهره بسیاری از افراد (زن و مرد) تست شده است. هدف از پیاده سازی این پروژه، تشخیص و تفکیک اجزای چهره انسان می باشد. در داکیومنت این پروژه، هر یک از m-file ها (فایل اصلی اجرایی و توابع) شرح داده شده است.
این برنامه تشخیص اجزای چهره ، قابلیت شناسایی، مجزا نمودن، نمایش محدوده های آستانه سر به رنگ سبز، چشم ها به رنگ بنفش، بینی به رنگ زرد و لب ها به رنگ نیلی در تصویر پردازش شده خروجی را دارا می باشد. در این برنامه از قابلیت های نوار ابزار image processing و computed vision نرم افزار متلب استفاده شده است.
جالب است بدانید، تصاویری را هم که داری چندین چهر است (عکس سلفی)، به خوبی تشخیص و تفکیک می کند. به طور کلی، یک پروژه نسبتا ساده اما جالب و مناسب در زمینه پردازش تصویر ، بینایی ماشین ، هوش مصنوعی و تشخیص چهره می باشد.
در ادامه به شرح هر یک از ام فایل های این پروژه تشخیص اجزای چهره پرداخته و فیلمی از خروجی آن را که چندین تصویر چهره را تست کرده ایم، قرار داده شده است.
توضیح هر یک از توابع پروژه تشخیص اجزای چهره :
فایل buildDetector.m :
در این ام فایل تابع buildDetector یک شی (object) برای کشف بخش های مختلف صورت می سازد.
متغیر خروجی: detector
متغیرهای ورودی تابع:
thresholdFace: MergeThreshold برای تشخیص آستانه صورت، مقدار پیشفرض 1
thresholdParts: MergeThreshold جهت تشخیص مرزهای اجزای صورت، پیشفرض 1
stdsize: سایز صورت تعدیل شده، با مقدار پیشفرض 176
فایل checkToolboxes.m :
در این پروژه به 2 جعبه ابزار پردازش تصویر و بینایی ماشین نیاز است. تابع ret دسترسی به این دو toolbox را چک می کند.
فایل main.m :
فایل اصلی و اجرایی – با فراخوانی checkToolboxes در صورت عدم وجود جعبه ابزارهای مورد نیاز پیغام مناسب صادر، در غیر اینصورت تصویر مشخص شده در تابع Img=imread(‘image.jpg’); را لود و پس از اعمال تغییرات مورد نظر توسط توابع فراخوانی شده، تصویر نهایی را نمایش میدهد.
Image.jpg نام و پسوند فایل تصویر مورد نظر است که می تواند با توجه بنام تصویر ورودی تغییر کند. مثلا می تواند reza.jpg یا mahsa.png باشد. بنابراین اگر قصد استفاده از تصاویر مختلف را دارید، فراموش نکنید که حتما نام فایل تصویر را در این تابع (main.m) باید تغییر دهید.
فایل detectFaceParts.m :
تابع [bbox,bbX,faces,bbfaces] = detectFaceParts(detector,X,thick) که مولفه های ورودی ها و خروجی های آن در متن کد مشخص شده اجزای چهره را شناسایی می کند.
فایل detectRotFaceParts.m :
تشخیص محدوده چهره با تخمین و شناسایی آستانه های دوار چهره.
فایل drawFourPoints.m :
رسم خطوط با توجه به چهار نقطه شناسایی شده برای محدوده های هر یک از اجزای چهره.
فایل mergeFourPoints.m :
ادغام محدوده های مشخص شده برای اجزای چهره و آماده سازی آن جهت نمایش در تصویر خروجی.
تصویر خروجی 1:
تصویر خروجی 2:
تصویر خروجی 3:
سلام لطفا میشه بگیداین پروژتون چند تا عکس رو با هم می تونه تشخیص بده ؟ ممنون
تا جای که ما تست کردیم 5 نفر رو می تونه تشخیص بده
سلام این ارور برای چیه ؟ detectFaceParts