نمایش عینک بر روی صورت از طریق وبکم Live

نمایش عینک بر روی صورت از طریق وبکم Live

مقدمه

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

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

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

مرحله اول : نصب پیش نیاز ها

قبل از همه، ابتدا پایتون و پیش‌نیازها (کتابخانهٔ OpenCV و dlib) را نصب کنید:

مرحله دوم : افزودن کتابخانه ها به برنامه

این برنامه از یک کتابخانه ساده برای تشخیص چهره و نمایش عینک بر روی چهره استفاده می کند. ابتدا باید کتابخانه های مورد نیاز را وارد کنید:

مرحله سوم : تعریف توابع

سپس دو تابع را تعریف می کنیم. تابع اول برای تشخیص چهره ها استفاده می شود:

از تابع dlib.get_frontal_face_detector() برای تشخیص چهره در تصویر استفاده می کنیم. تصویر ورودی را به تصویر خاکستری تبدیل می کنیم و سپس تشخیص چهره ها را انجام می دهیم. نتیجهٔ تشخیص چهره ها به عنوان یک لیست از مستطیل ها برگردانده می شود.

تابع دوم هم برای قرار دادن عینک بر روی چهره استفاده می شود:

مرحله چهارم: محسابه مختصات چشم و قرار دادن عینک

ابتدا مختصات دو چشم روی صورت را محاسبه می کنیم. سپس تصویر عینک را بارگیری می کنیم. اندازهٔ عینک را بر اساس فاصلهٔ بین دو چشم محاسبه می کنیم و سپس تصویر عینک را به اندازهٔ مناسب تغییر اندازه می دهیم.

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

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

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

مواردی که باید مورد توجه قرار گیرند:

1- برای تشخیص چهره از کدگذاری هاگ استفاده می کنیم که تغییرات شدیدی در تصویر می کند. بنابراین، ممکن است نتایج بهینه نباشد.

2- تصویر عینک glasses.png باید در همان پوشه وجود داشته باشد.

3- این برنامه یک مثال ساده برای استفاده از تشخیص چهره و نمایش عینک بر روی صورت ها است. شما می توانید با تغییرات بیشتر و استفاده از روش های پیشرفته تر، برنامه را بهبود دهید.

کد نهایی

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

برای این کد، شما نیاز به تصویر عینکی با پسوند PNG با پس زمینه‌ای شفاف (transparent) خواهید داشت.

این تصویر را در سرور یا هارد کامپیوتر شخصی خود قرار دهید و نام آن را glasses.png قرار دهید.

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

برای خروج از برنامه، میتوانید کلید q را فشار دهید.