فهرست مطالب:

تشخیص چهره Opencv: 4 مرحله
تشخیص چهره Opencv: 4 مرحله

تصویری: تشخیص چهره Opencv: 4 مرحله

تصویری: تشخیص چهره Opencv: 4 مرحله
تصویری: پردازش تصویر در پایتون - 14 - تشخیص چهره 2024, نوامبر
Anonim
Opencv تشخیص چهره
Opencv تشخیص چهره

امروزه تشخیص چهره بسیار رایج است ، در بسیاری از برنامه های کاربردی مانند تلفن های هوشمند ، بسیاری از ابزارهای الکترونیکی. این نوع فناوری شامل الگوریتم ها و ابزارهای زیادی است و از برخی سیستم عامل های SOC تعبیه شده مانند Raspberry Pi و دید رایانه منبع باز استفاده می کند. کتابخانه هایی مانند OpenCV ، اکنون می توانید تشخیص چهره را به برنامه های خود مانند سیستم های امنیتی اضافه کنید.

در این پروژه ، من به شما می گویم که چگونه با استفاده از Raspberry Pi تشخیص چهره ایجاد کنید و از arduino+Lcd برای نمایش نام شخص استفاده کرده ایم.

مرحله 1: موارد مورد نیاز

چیزهایی که شما نیاز دارید
چیزهایی که شما نیاز دارید

1. PI رزبری

2. EDUINO UNO / NANO

نمایشگر LCD 3.16x2

4. RASPI-CAMERA / WEBcam (من برای نتایج بهتر وب کم را ترجیح می دهم)

مرحله 2: Opencv-Intro و نصب

Opencv-Intro و نصب
Opencv-Intro و نصب

OpenCV (کتابخانه بینایی رایانه منبع باز) یک کتابخانه بسیار مفید است - بسیاری از ویژگی های مفید مانند تشخیص متن ، تشخیص چهره ، تشخیص شی ، ایجاد نقشه های عمق و یادگیری ماشین را ارائه می دهد.

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

OpenCV چیست؟

OpenCV یک کتابخانه نرم افزار منبع باز کامپیوتر و یادگیری ماشین است. OpenCV تحت مجوز BSD منتشر می شود و برای مصارف دانشگاهی و تجاری رایگان است. دارای رابط های C ++ ، Python و Java است و از Windows ، Linux ، Mac OS ، iOS و Android پشتیبانی می کند. OpenCV برای کارآیی محاسباتی و تمرکز قوی بر برنامه های زمان واقعی طراحی شده است.

چگونه OpenCV را روی Raspberry Pi نصب کنیم؟

برای نصب OpenCV ، باید پایتون را نصب کرده باشیم. از آنجا که Raspberry Pis با Python بارگیری شده است ، می توانیم OpenCV را مستقیماً نصب کنیم.

دستورات زیر را تایپ کنید تا مطمئن شوید رزبری پای شما به روز است و بسته های نصب شده روی رزبری پای خود را به آخرین نسخه ها به روز کنید.

sudo apt-get updatesudo apt-get upgrade

دستورات زیر را در ترمینال تایپ کنید تا بسته های مورد نیاز OpenCV را بر روی رزبری پای خود نصب کنید.

sudo apt install libatlas3-base libsz2 libharfbuzz0b libtiff5 libjasper1 libilmbase12 libopenexr22 libilmbase12 libgstreamer1.0-0 libavcodec57 libavformat57 libavutil55 libswscale4 libqtgui4 libqt4-test libqtcore4

دستور زیر را برای نصب OpenCV 3 برای پایتون 3 روی رزبری پای خود تایپ کنید ، pip3 به ما می گوید که OpenCV برای پایتون 3 نصب می شود.

sudo pip3 opencv-contrib-python libwebp6 را نصب کنید

اکنون ، OpenCV باید نصب شود.

(در صورت بروز خطا: همچنان می توانید این کار را با پیوند زیر انجام دهید

https://www.instructables.com/id/Raspberry-Pi-Hand…)

حالا عجله نکنید ما باید بررسی کنیم که آیا به درستی نصب شده است یا خیر

opencv خود را با موارد زیر آزمایش کنید:

1. به ترمینال خود بروید و تایپ کنید "python"

2. سپس "import cv2" را تایپ کنید.

3. سپس "cv2._ version_" را تایپ کنید.

سپس این کتابخانه ها را نصب کنید

pip3 python-numpy را نصب کنید

pip3 python-matplotlib را نصب کنید

کد تست برای تشخیص چهره در تصویر:

واردات cv2

faceCascade = cv2. CascadeClassifier ("haarcascade_frontalface_default.xml")؛

image = cv2.imread ('نام فایل شما') #example cv2.imread ('home/pi/Desktop/filename.jpg')

خروجی را مانند یک جعبه مربعی روی صورت افرادی که در تصویر هستند ایجاد کرده اید.

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

واردات cv2

وارد کردن numpy به عنوان np

وارد کردن سیستم عامل

سریال واردات

ser = serial. سریال ('/dev/ttyACM0'، 9600، timeout = 1) #/dev/ttyACM0 ممکن است در مورد شما تغییر کند ، بستگی به آردوینو دارد

cascadePath = "haarcascade_frontalface_default.xml"

faceCascade = cv2. CascadeClassifier (cascadePath)

تشخیص = cv2.face.createLBPHFaceRecognizer ()

تصاویر =

برچسب ها =

برای نام فایل در os.listdir ("مجموعه داده"):

im = cv2.imread ('Dataset/'+نام فایل ، 0)

images.append (im)

labels.append (int (filename.split ('.') [0] [0]))

#چاپ نام فایل

names_file = open ('labels.txt')

names = names_file.read (). split ('\ n')

تشخیص دهنده (آموزش ، تصاویر ، np.array (برچسب ها))

چاپ 'آموزش انجام شد. به به '

font = cv2. FONT_

HERSHEY_SIMPLEXcap = cv2. فیلم برداری (1) # دستگاه ویدئوی شما

lastRes = "" تعداد = 0

در حالی که (1):

_ ، frame = cap.read ()

خاکستری = cv2.cvtColor (قاب ، cv2. COLOR_BGR2GRAY)

چهره = faceCascade.detectMultiScale (خاکستری ، 1.3 ، 5)

شمارش+1 =

برای (x ، y ، w ، h) در صورت:

cv2. مستطیل (قاب ، (x ، y) ، (x+w ، y+h) ، (255 ، 0 ، 0) ، 2)

در صورت شمارش> 20: res = نامها [تشخیص دهنده. پیش بینی (خاکستری [y: y+h، x: x+w])-1]

اگر res! = lastRes:

lastRes = res

چاپ lastRes

ser.write (lastRes)

شمارش = 0

زنگ تفريح

cv2.imshow ("قاب" ، قاب)

k = 0xFF & cv2.wait کلید (10)

اگر k == 27:

زنگ تفريح

cap.release ()

ser.close ()

cv2.destroyAllWindows ()

مرحله 4: اجرای کد

اجرای کد
اجرای کد

1. فایلهای پیوست شده در مرحله قبل را بارگیری کنید

2. عکسهای خاکستری خود (6 تصویر/ نمونه…..) را در پوشه مجموعه داده خود کپی کنید

1. Tom Cruise 1_1 ، 1_2 ، 1_3 ، 1_4 ، 1_5 ، 1_6 (شماره تصویر مجموعه داده برای پوشه مجموعه داده بازتر)

2. برد پیت -2_1 ، 2_2 ، 2_3 ، 2_4 ، 2_5 ، 2_6

3. لئو -3_1 ، 3_2 ، 3_3 ، 3_4 ، 3_5 ، 3_6

4. Ironman4_1 ، 4_2 ، 4_3 ، 4_4 ، 4_5 ، 4_6

مانند موارد بالا ، می توانید برچسب ها را برای افراد مربوطه اضافه کنید ،

بنابراین اگر pi هر چهره ای را در بین 1_1 ، 1_2 ، 1_3 ، 1_4 ، 1_5 ، 1_6 تشخیص داد ، آن را به عنوان تام کروز برچسب گذاری کرد ، بنابراین هنگام بارگذاری عکس ها مراقب باشید ………………

و سپس آردوینو خود را به تمشک Pi خود متصل کرده و تغییرات را در main.py codeser = serial. Serial ('/dev/ttyACM0'، 9600، timeout = 1) 3. کلیه فایلهای بارگیری شده را وارد کنید (main.py، پوشه مجموعه داده ، haarcascade_frontalface_default.xml در یک پوشه.)

3. اکنون Raspi-terminal را باز کنید و کد خود را توسط "sudo python main.py" اجرا کنید

توصیه شده: