رایا اسکیلز

ساخت برنامه تشخیص چهره با پایتون و OpenCV

پروژه تشخیص چهره با پایتون

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

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

پیش‌نیازها: ابزارهای لازم برای شروع

برای انجام پروژه پردازش تصویر، به چند ابزار ساده نیاز دارید:

  1. نصب پایتون: مطمئن شوید که آخرین نسخه پایتون روی سیستم شما نصب است.
  2. نصب VS Code: ما از ویرایشگر محبوب VS Code استفاده می‌کنیم. اگر هنوز آن را نصب نکرده‌اید، می‌توانید از [راهنمای کامل آموزش نصب VS Code] ما استفاده کنید.
  3. نصب کتابخانه‌های لازم: دو کتابخانه اصلی این پروژه matplotlib و opencv-python هستند. آنها را با دستورات زیر در ترمینال یا Command Prompt خود نصب کنید:
  4. pip install matplotlib
  5. pip install opencv-python

شروع پروژه: توضیح خط به خط سورس کد

بیایید با هم کد اصلی این پروژه پردازش تصویر با پایتون را بررسی کنیم. شما می‌توانید این کد را کپی کرده و در محیط VS Code خود اجرا کنید.

قدم اول: فراخوانی کتابخانه‌های لازم برای تشخیص چهره

هر پروژه پایتون با وارد کردن ابزارهای مورد نیاز شروع می‌شود.

from matplotlib import pyplot as plt
import cv2
Python

import cv2: این خط، کتابخانه OpenCV را فراخوانی می‌کند. این آموزش opencv در پایتون به شما نشان می‌دهد که OpenCV قدرتمندترین کتابخانه برای کارهای پردازش تصویر و بینایی ماشین است.

from matplotlib import pyplot as plt: این خط، کتابخانه Matplotlib را فراخوانی می‌کند که ابزاری استاندارد برای نمایش تصاویر در پایتون است.

قدم دوم: بارگذاری تصویر

حالا باید تصویری که می‌خواهیم چهره را در آن پیدا کنیم، به برنامه بدهیم.

# یک عکس دلخواه (مثلا nima.jpg) را در کنار فایل پایتون خود قرار دهید
image = cv2.imread("nima.jpg")
Python

تابع cv2.imread() تصویر مشخص شده را می‌خواند و آن را به صورت مجموعه‌ای از پیکسل‌ها در متغیر image ذخیره می‌کند.

قدم سوم: اصلاح رنگ‌بندی تصویر

OpenCV به صورت پیش‌فرض تصاویر را با فرمت رنگی BGR (آبی، سبز، قرمز) می‌خواند، در حالی که Matplotlib برای نمایش صحیح، به فرمت RGB (قرمز، سبز، آبی) نیاز دارد.

image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
Python

قدم چهارم: فراخوانی مدل هوش مصنوعی تشخیص چهره

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

model = cv2.CascadeClassifier("model.xml")
Python

تابع cv2.CascadeClassifier() این فایل مدل را بارگذاری کرده و آن را برای استفاده آماده می‌کند.

دریافت فایل مدل (model.xml):

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

قدم پنجم: تشخیص چهره در تصویر

حالا از مدلی که بارگذاری کردیم، برای پیدا کردن چهره در تصویر استفاده می‌کنیم.

face = model.detectMultiScale(image)
Python
  • تابع detectMultiScale() تصویر را اسکن کرده و مختصات تمام چهره‌هایی که پیدا می‌کند را در قالب یک لیست برمی‌گرداند.

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

قدم ششم: استخراج مختصات چهره

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

x = face[0][0]
y = face[0][1]
a = face[0][2]
b = face[0][3]
Python

x و y مختصات گوشه بالا سمت چپ کادر چهره هستند.

a و b به ترتیب عرض و ارتفاع کادر چهره هستند.

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

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

image = cv2.rectangle(image, (x,y), (x + a, y + b), (0,255,0), 3)
Python

cv2.rectangle() یک مستطیل روی تصویر می‌کشد. ورودی‌های آن به ترتیب عبارتند از: خود تصویر، مختصات گوشه اول، مختصات گوشه دوم، رنگ (به فرمت RGB) و ضخامت خط.

قدم هشتم: نمایش نتیجه نهایی

در نهایت، تصویر نهایی را که حالا کادری دور چهره دارد، با استفاده از Matplotlib نمایش می‌دهیم.

plt.imshow(image)
Python

نتیجه‌گیری: شما اولین پروژه پردازش تصویر خود را ساختید!

پروژه پردازش تصویر

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

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

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

0 0 رای ها
امتیازدهی به مقاله
اشتراک در
اطلاع از
0 نظرات
قدیمی‌ترین
تازه‌ترین بیشترین رأی
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها
صفحه مقالات با سایدبار بهینه
پیمایش به بالا

از کجا برنامه نویسی و
هوش مصنوعی رو شروع کنم ؟

با یه مشاوره رایگان مسیر یادگیری مناسب خودت رو پیدا کن

دوره رایگان برنامه نویسی و Ai

برای شرکت در دوره و دریافت منتور اختصاصی همین الان اقدام کن