تیم برنامهنویسی پیاستور
هزینه سفارش:
۳۹۹,۰۰۰ تومان
تخصصی و منحصر به فرد بودن این اثر، تضمین کننده بهای محصول نسبت به آثار مشابه است.
سیستم های پردازش تصویر و بینایی ماشین امروزه نقشی کلیدی در اتوماسیون سازی هوشمند، نظارت تصویری و مدیریت تردد ایفا می کنند. در میان کاربردهای متنوع بینایی رایانه، مسأله شناسایی، تفکیک و شمارش دقیق چهره انسان ها در یک محیط به شکل زنده و مستقیم، از جمله مهم ترین و پرکاربردترین سرفصل های پژوهشی و صنعتی به شمار می رود. بسیاری از فرآیندهای مدرن نظیر کنترل هوشمند سیستم های تهویه و روشنایی بر پایه تعداد نفرات حاضر در اتاق، ثبت تردد در سالن های کنفرانس، ارزیابی تراکم جمعیت در کلاس های درس و سیستم های حفاظتی، به شمارش دقیق و بلادرنگ (Real-Time) چهره افراد وابسته هستند.
شمارش دستی افراد در محیط های پرجمعیت نه تنها فرآیندی خسته کننده و زمان گیر است، بلکه همواره با خطای انسانی همراه می شود. با ورود پردازش تصویر دیجیتال به این حوزه، ساماندهی خودکار حضور افراد با بالاترین سرعت و دقت ممکن امکان پذیر شده است.
تشخیص چهره (Face Detection) نخستین و حساس ترین گام در کلیه سامانه های بیومتریک چهره محسوب می شود. این فرآیند تعیین می کند که آیا در جریان فریم های دریافتی از دوربین، چهره انسانی وجود دارد یا خیر و در صورت وجود، مختصات دقیق پیکسل های مرتبط با آن در کدام ناحیه از تصویر قرار گرفته است.
پیاده سازی این سامانه مزایای زیر را فراهم می سازد:
در این سورس کد متلب، هسته شناسایی موقعیت چهره بر پایه الگوریتم بسیار قدرتمند و تحسین شده «وایولا جونز» (Viola-Jones Algorithm) طراحی و پیاده سازی شده است. این الگوریتم در سال ۲۰۰۱ توسط پاول وایولا و مایکل جونز معرفی شد و همچنان به عنوان یکی از سریع ترین و پایدارترین راهکارهای استاندارد آشکارسازی اشیاء و چهره به صورت بلادرنگ در دنیا شناخته می شود.
موتور محاسباتی وایولا جونز از چهار نوآوری مهندسی کلیدی تشکیل شده است که این پروژه متلب نیز از تمامی آن ها به طور دقیق بهره می برد:
چهره انسان دارای ویژگی های کنتراستی ثابت و مشخصی است؛ به عنوان نمونه، ناحیه چشم ها معمولاً تاریک تر از گونه ها و بینی است و پل بینی روشن تر از نواحی اطراف آن دیده می شود. ویژگی های هار، مستطیل های سیاه و سفیدی هستند که بر روی بخش های مختلف تصویر قرار می گیرند و با محاسبه تفاضل مجموع شدت روشنایی پیکسل های ناحیه سفید و تیره، وجود الگوی چهره را بررسی می کنند.
محاسبه جمع مقادیر روشنایی پیکسل ها در مستطیل های با اندازه های گوناگون در سراسر تصویر، بار پردازشی بی نهایت سنگینی به رایانه تحمیل می کند. الگوریتم وایولا جونز با تبدیل ماتریس ورودی به یک ماتریس کمکی به نام «تصویر یکپارچه»، امکان محاسبه مجموع مقادیر پیکسل ها در هر ناحیه مستطیلی دلخواه را تنها با دسترسی به ۴ گوشه مستطیل و انجام چند عمل جمع و تفریق ساده فراهم می سازد. این مفهوم ریاضی خارق العاده، سرعت محاسبات را چندین برابر افزایش می دهد.
تعداد ویژگی های هار قابل استخراج از یک فریم با وضوح متوسط به صدها هزار ویژگی می رسد، اما درصد بسیار کمی از آن ها حاوی اطلاعات معنادار برای تفکیک چهره از پس زمینه هستند. روش یادگیری ماشین AdaBoost بهترین و موثرترین ویژگی ها را گلچین کرده و با ترکیب دسته بندی کننده های ضعیف، یک دسته بندی کننده قدرتمند (Strong Classifier) با تفکیک پذیری فوق العاده بالا می سازد.
در تصاویر دریافتی از وب کم، اکثر بخش های کادر را پس زمینه، دیوارها، اشیاء و لباس تشکیل می دهند و مساحت چهره تنها بخش کوچکی از فریم را پوشش می دهد. در ساختار آبشاری، دسته بندی کننده ها به صورت لایه لایه پشت سر هم چیده می شوند. لایه های اول که بسیار سریع و سبک هستند، نواحی غیر چهره را فوراً رد می کنند و تنها نواحی مشکوک به لایه های بعدی منتقل می شوند. این معماری آبشاری سبب می شود پردازنده رایانه وقت خود را برای ارزیابی نواحی بی اهمیت هدر نداده و شمارش چهره با نرخ فریم کاملاً روان و آنی انجام پذیرد.
ساختار برنامه نویسی این پروژه به صورت کاملاً ماژولار و مبتنی بر استاندارد توابع بینایی ماشین متلب تدوین شده است. در ادامه بخش های حیاتی کد و نحوه عملکرد دستورات را بررسی می کنیم:
ابتدا متغیر شیء دوربین به صورت سراسری تعریف می شود تا دسترسی به فریم های دوربین در تمامی توابع رابط گرافیکی به آسانی صورت گیرد:
global vid
vid = videoinput('winvideo', 1, 'YUY2_640X480');
دستور فوق از آداپتور ویدیویی ویندوز (winvideo) برای برقراری ارتباط پایدار با اولین وب کم در دسترس استفاده می کند و رزولوشن ضبط تصاویر را بر روی اندازه استاندارد ۶۴۰ در ۴۸۰ پیکسل تنظیم می نماید که بهترین تعادل میان کیفیت دید و سرعت پردازش فریم ها است.
برای دستیابی به حداکثر ثبات در پردازش فریم ها و جلوگیری از قفل شدن رم (RAM)، فرآیند تصویربرداری با پیکربندی دستی تنظیم می شود:
triggerconfig(vid, 'manual');
set(vid, 'FramesPerTrigger', 1);
set(vid, 'TriggerRepeat', Inf);
set(vid, 'ReturnedColorSpace', 'rgb');
vid.Timeout = 10;
start(vid);
در این بخش، فضای رنگی دریافتی به RGB تبدیل می شود تا فریم ها با شفافیت کامل دریافت شوند. تنظیم تکرار نامحدود تریگر باعث می شود جریان تصویربرداری بدون وقفه تا زمان فشردن دکمه توقف توسط کاربر ادامه پیدا کند.
پیش نمایش پیوسته و زنده فریم های ارسالی از وب کم با دستور زیر مستقیماً بر روی محور نمایشی (Axes) پنل گرافیکی قرار می گیرد:
hImage = image(zeros(600, 800, 3), 'parent', handles.axes1);
preview(vid, hImage);
این ساختار باعث می شود کاربر بدون کوچک ترین لرزش یا پرش تصویر، جریان زنده دوربین را مشاهده نماید.
در هسته حلقه پردازش برنامه، با استفاده از شیء آشکارساز آبشاری بینایی ماشین متلب (vision.CascadeObjectDetector)، فریم جاری اسکن شده و ماتریس مختصات مستطیل های در برگیرنده چهره ها (Bounding Boxes) استخراج می گردد. تعداد سطرهای این ماتریس، نشان دهنده دقیق تعداد چهره های موجود در کادر دوربین است. برنامه این مقدار را بلافاصله بر روی کادر نمایش عددی رابط کاربری درج کرده و به ازای هر چهره شناسایی شده، یک کادر مستطیلی دور تا دور صورت افراد رسم می کند.
این پروژه مجهز به یک واسط کاربری بصری و بسیار منظم است که بدون نیاز به نوشتن دستورات در پنجره Command Window متلب، استفاده از نرم افزار را برای کاربران با هر سطح دانشی لذت بخش می سازد:
برای اجرای بی دردسر و بدون خطای این سورس کد، نیازمندی های سیستمی و جعبه ابزارهای استاندارد زیر در نظر گرفته شده است:
این پروژه در نسخه MATLAB 2014 توسعه داده شده است و با تمامی نسخه های بالاتر متلب نیز سازگاری کامل دارد.
این بسته رسمی جهت شناسایی مستقیم وب کم های متصل به درگاه USB یا وب کم های داخلی لپ تاپ به کار می رود. در محیط متلب با کلیک بر روی بخش Add-Ons و جستجوی واژه Webcam، می توان این بسته رایگان را دریافت و نصب کرد.
برای پردازش فریم های ویدیویی و بهره گیری از توابع کتابخانه videoinput در ویندوز، نصب بسته سخت افزاری Image Acquisition Toolbox ضروری است که درایور و آداپتور winvideo را به هسته متلب اضافه می کند.
توابع پایه الگوریتم وایولا جونز، کلاس های آشکارساز آبشاری و متدهای شمارش ماتریس کادربندی اشیاء مستقیماً از این جعبه ابزار معتبر متلب فراخوانی می شوند.
پروژه پیاده سازی شده علاوه بر کاربرد آموزشی مستقیم، یک سنگ بنای اساسی برای توسعه دامنه گسترده ای از سیستم های هوشمند است:
پس از تهیه و دریافت فایل فشرده پروژه، مراحل زیر را به ترتیب انجام دهید:
۱. فایل فشرده ZIP را در یک پوشه دلخواه روی هارد دیسک خود استخراج (Extract) نمایید.
۲. نرم افزار متلب را باز کرده و پوشه جاری (Current Folder) برنامه را دقیقاً بر روی مسیر پوشه استخراج شده قرار دهید.
۳. مطمئن شوید وب کم لپ تاپ یا دوربین جانبی USB به سیستم متصل است.
۴. فایل اصلی رابط کاربری (فایل با پسوند .m مربوط به پروژه) را در ویرایشگر متلب باز کرده و کلید Run (یا دکمه F5 صفحه کلید) را بفشارید.
۵. پنجره رابط کاربری گرافیکی باز می شود؛ با فشردن دکمه Start، تصویر زنده دوربین آغاز شده و با قرار گرفتن چهره ها در مقابل وب کم، بلافاصله کادرهای شناسایی دور چهره ها رسم شده و رقم شمارش در پنل مربوطه به روزرسانی می گردد.
سورس کد کامل، تست شده و آماده اجرای تشخیص و شمارش چهره در متلب از وب کم در دسترس شما عزیزان قرار گرفته است. پس از اتمام پرداخت آنلاین از طریق درگاه های بانکی امن عضو شبکه شتاب، لینک دانلود مستقیم سورس کد متلب، کدهای گرافیکی GUI و فایل های همراه بلافاصله در پنل کاربری شما فعال می شود و نسخه ای از آن نیز در سوابق خرید شما برای همیشه ثبت و قابل دریافت خواهد بود.
برای مشاهده ویدیوی هر بخش، روی عنوان آن کلیک کنید.
تیم برنامه نویسی پی استور یکی از اولین گروههای تشکیل شده در مجموعه آموزشی پی استور میباشد. این تیم از اساتید مجرب و فارغ التحصیلان رشتههای فنی و مهندسی تشکیل شده که در زمینههای مختلف برنامهنویسی و تهیه سورس کد فعال هستند.
اطلاعات و جزئیات کامل این محصول
جهت تسلط عمیقتر و تکمیل مهارتهای خود، یادگیری این سرفصلها پیشنهاد میشود.
هزینه سفارش:
۳۹۹,۰۰۰ تومان
دیدگاهها و نظرات
مدیریت و پشتیبانی
نظرات و ديدگاه هاي خود را براي هرچه بهتر قرار دادن مطالب با ما در ميان بگذاريد.