python_developer
1.54K subscribers
3.74K photos
1.97K videos
232 files
434 links
کانال اموزش پایتون @Real_developer
تبلیغات پذیرفته میشود.
Download Telegram
✔️هر Classifier تشخیص چهره OpenCV ، دارای مزایا و معایبی است، اما تفاوت های عمده در دقت و سرعت است.

بنابراین، در صورتی که تشخیص دقیق تر لازم باشد، از طبقه بند Haar استفاده میشود. که بیشتردر تکنولوژی مانند سیستم های امنیتی مناسب است.

اما طبقه بندLBP سریع تر است، بنابراین باید در برنامه های تلفن همراه یا سیستم های جاسازی شده استفاده شود.
💢💢💢💢💢💢💢💢💢
This media is not supported in your browser
VIEW IN TELEGRAM
✔️کدنویسی:
🔺 کتابخانه های مورد نیاز:
import cv2
import matplotlib.pyplot as plt
import time
هنگامی که یک تصویر را با استفاده از OpenCV بارگذاری می کنید، به طور پیش فرض آن را به فضای رنگ BGR بارگذاری می کند. برای نشان دادن تصویر رنگی با استفاده از matplotlib ما باید آن را به فضای RGB تبدیل کنیم. تابع زیر ، این کار برای ما انجام میدهد:
def convertToRGB(img):
return cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
✔️لازم به ذکر است که ما در شروع قرار است از الگوریتم HAAR استفاده کنیم
تصویر اصلی
تبدیل تصویر اصلی به خاکستری:
import cv2
import matplotlib.pyplot as plt
import time
img = cv2.imread('test.jpg')
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
plt.imshow(gray_img, 'gray')
plt.show()
🔺من امتحانی روی تصویر قبلی پردازش انجام دادم اما تغییری ندیدم. بنابراین روی یک تصویر دیگر ادامه میدم وبعد علت این موضوع را بررسی میکنم.🔻
تصویر اصلی
تصویر خاکستری
✔️قبل از اینکه ما بتوانیم با تشخیص چهره ادامه دهیم، باید طبقه بندHaar cascade بارگذاری کنیم. کتابخانه opencv برای
ما کلاسی جهت تشخیص چهره و چشمها،با cv2.CascadeClassifier به عنوان ورودی فراهم می کند.
که این کلاسها یا توابع در مسیر زیر قرار دارند:
https://github.com/opencv/opencv/tree/master/data/haarcascades
فایل xml را در مسیری که تصویر و فایل پایتون قرار دارد ذخیره کنید
‍ import numpy as np
import cv2

face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
img = cv2.imread('test3.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)


faces = face_cascade.detectMultiScale(gray, 1.3, 5)
for (x,y,w,h) in faces:
cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
roi_gray = gray[y:y+h, x:x+w]
roi_color = img[y:y+h, x:x+w]

cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
💢💢💢💢💢💢💢💢💢
‍ import numpy as np
import cv2

face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml')

img = cv2.imread('test3.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
for (x,y,w,h) in faces:
cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
roi_gray = gray[y:y+h, x:x+w]
roi_color = img[y:y+h, x:x+w]
eyes = eye_cascade.detectMultiScale(roi_gray)
for (ex,ey,ew,eh) in eyes:
cv2.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2)

cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

💢💢💢💢💢💢💢💢💢
This media is not supported in your browser
VIEW IN TELEGRAM
✔️بسیاری از برنامه ها و وب سایت ها شامل ویژگی های تشخیص چهره، مخصوصا شبکه اجتماعی و پایگاه داده های عکس / تصویر ، هستند. با استفاده از OpenCV
تشخیص چهره در تصاویر و یا حتی ویدئو و یا وب کم بسیار آسان است. کتابخانه OpenCV دارای یک کامپوننتی به نام Haar Cascade Classifier است که این کار را انجام میدهد.
این طبقه بند بدون نیاز به آموزش و اصلاح، با داشتن داده های از پیش تعریف شده کار میکند.
تنها نکته این است که فقط چهره های جلو تشخیص داده می شوند
و تشخیص چهره هایی که در جهت خاصی به سمت چپ یا راست، قرار گرفته اند یا تار هستند،دشوار است.

💢💢💢💢💢💢💢💢💢