آموزش پردازش تصویر در پایتون – جلسه 16: تشخیص چهره (قسمت آخر)

0
307
آموزش پردازش تصویر در پایتون – جلسه 16: تشخیص چهره (قسمت آخر)

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

تشخیص چهره

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

البته خودمان نیز می‌توانیم این الگوها را بنویسیم، اما راحت‌تر این است که از الگوهای استانداردی که برای این کار وجود دارد استفاده کنیم.

برای دریافت این الگوهای آماده می‌توانید از طریق سایت opencv و یا گیت‌هاب آن استفاده کنید.

این الگوها در سایت گیت‌هاب در این آدرس قرار دارند.

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

برنامه‌ای که ما در ادامه خواهیم نوشت توانایی این را دارد که صورت و چشم‌ها را تشخیص دهد.

 

import cv2
import numpy as np

faceXML = cv2.CascadeClassifier('face.xml')
eyeXml = cv2.CascadeClassifier('eye.xml')

cap = cv2.VideoCapture(0)

while True:
_, frame = cap.read()
gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
faces = faceXML.detectMultiScale(gray)

for(x,y,w,h) in faceXML:
cv2.rectangle(frame,(x,y),(x+w,y+h),(255,0,0), 2)
roi_gray = gray[y:y+h, x:x+h]
roi_color = frame[y:y+h, x:x+h]
eyes = eyeXml.detectMultiScale(roi_gray)
for(ex,ey,ew,eh) in eyes:
cv2.rectangle(roi_color,(ex, ey), (ex+ew, ey+eh), (0, 0, 255), 2)

cv2.imshow('face', frame)
k = cv2.waitKey(27) & 0xFF
if(k == 27):
break

cv2.destroyAllWindows()

 

پس از اجرای برنامه بالا خروجی برنامه به صورت زیر خواهد بود:

 

تشخیص چهره

 

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

این مقاله برگرفته از آموزش ویدئویی زیر می‌باشد، برای مشاهده‌ی جزئیات بیشتر حتما این ویدئو را مشاهده بفرمائید.

 

 

منبع: سیسوگ

 

مطلب قبلیاز نرم‌افزار تا سخت‌افزار – قسمت چهارم – فایل Linker و فرآیند Locating
مطلب بعدیمروری بر نسل ها و سرعت های مختلف شبکه تلفن همراه

پاسخ دهید

لطفا نظر خود را وارد کنید!
لطفا نام خود را در اینجا وارد کنید