sajjad abedi
sajjad abedi
خواندن ۴ دقیقه·۴ سال پیش

ادامه ساخت شبکه عصبی با پایتون قسمت 8

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

قسمت 8

به نام خداوند بخشنده مهربان سجاد عابدی طامه هستم

خوب حالا چند تا نکته :

1 اقا تعداد نرون ها در لایه پنهان خیلی مهم هست خیلی مهم خیلی خیلی مهم

به خاطر اینکه ما اگر تعداد نرون ها رو کم بگزاریم شبکه دقتش کم می شود

و اگر زیاد باشد فقت روی تست ها و داده اموزشی درست کار می کند به قول یکی از استاد های ما

شبکه overfitting می شود خودتون نگاه کنید :

حالت های شبکه عصبی برای تعداد نرون ها در لایه پنهان
حالت های شبکه عصبی برای تعداد نرون ها در لایه پنهان

خوب حالا چی کار کنیم ؟

خوب آرامش را حفظ می کنیم .

و بعد می گیم خوب بریم ادامه مقاله



بدانید به تجربه نیاز دارد یعنی برای بعضی ها 50 تا برای بعضی ها 1 جواب می دهد

توی سیستم ها فرق دارد

مثلا من توی یکی از پروژه هام شبکه عصبی داشت عالی کار می کرد اما رفت توی یک سیستم دیگر و انجا

overfitting شد

خوب پس به تجربه و ازمایش و خطا باید تعداد رو پیدا کنیم

خوب بریم سراغ کد ها

یک فایل جدید باز کنید

و بعد توش کد اجرای دوربین و نمایش ان را بنویسید

اگر هم بلد نیستید

کد ها :

import cv2 cv = cv2.VideoCapture(0) while True: _ , frame = cv.read() cv2.imshow(&quotPORT&quot,frame) key = cv2.waitKey(10) if(key == ord('q')): break

خوب بعدش یک تابع توش بسازید

من اسمش رو

AI_frame

می گزارم

خوب حالا بعدش بگم قرار چی کا کنیم

توضیح روش کار
توضیح روش کار

خوب خوب حالا باید بگیم که تشخیص چهره رو بده

ما برای تشخیص چهره از یک فایل با پسوند xml احتیاج داریم

خوب فایل را شما همیشه دارید فقط بیاید دنبال من تا بگم کجا هست

اول وارد Lib شوید

برای من اینجا است Lib پایتونم

C:\Users\ASREBAZI\AppData\Local\Programs\Python\Python38\Lib

و بعد

C:\Users\ASREBAZI\AppData\Local\Programs\Python\Python38\Lib\site-packages\cv2

و بعد

C:\Users\ASREBAZI\AppData\Local\Programs\Python\Python38\Lib\site-packages\cv2\data

و بعد در سرچ بزنید

haarcascade_frontalface_default.xml

و بعد ازش یک کپی بگیرید

و بقل فایل کد های که داریم روش کار می کنیم بگزارید

import cv2
import numpy as np
face = &quothaarcascade_frontalface_default.xml&quot
face_my = cv2.CascadeClassifier(face)
cv = cv2.VideoCapture('f//1.avi')
while True:
_ , frame = cv.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
faces =face_my.detectMultiScale(gray,scaleFactor=1.1,minNeighbors=5,minSize=(60,60),flags=cv2.CASCADE_SCALE_IMAGE)
for (x, y, w, h) in faces:
cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)
cv2.imshow(&quotPORT&quot,frame)
key = cv2.waitKey(1)
if(key == ord('q')):
break

خوب اگر فکر می کنید تشخیص چهره ضعیف است و دقت کمی دارد

باید

minSize=(60,60)

را عدد های داخلش را کم تر کنید مثلا

minSize=(30,30)

اما سرعت پایین تر می اید

و اگر می خواهید سرعت تشخیص بالا رود و دقت مناسب من

عدد 100 رو پیش نهاد می کنم

minSize=(100,100)

خوب حالا بریم سراغ اینکه داده های عکس رو کم تر کنیم

import cv2
import numpy as np port = [ ] #########
face = &quothaarcascade_frontalface_default.xml&quot
face_my = cv2.CascadeClassifier(face)
cv = cv2.VideoCapture('f//1.avi')
while True:
def AI_Face(o = None): #######
print(o) ######
_ , frame = cv.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
faces =face_my.detectMultiScale(gray,scaleFactor=1.1,minNeighbors=5,minSize=(60,60),flags=cv2.CASCADE_SCALE_IMAGE)
m = 0 #############
for (x, y, w, h) in faces:
cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)
m = 1 ###########################
AI_Face(m) ###########################
cv2.imshow(&quotPORT&quot,frame)
key = cv2.waitKey(1)
if(key == ord('q')):
break

خوب کد هایی که جلوش ###### گزاشتم یعنی این کد ها رو اضافه کردم توی این برنامه می گم اگر

ادم رو دید بگزار 1 اما ندید همان 0 بگزار و بعد تابع AI_Face رو بخوان

و مقدار m را توش بگزار

خوب حالا باید بگیم بیاد مقدار m رو در یک لیست ذخیره کند

مثل کد زیر

import cv2
import numpy as np
face = &quothaarcascade_frontalface_default.xml&quot
face_my = cv2.CascadeClassifier(face)
port = [ ]
cv = cv2.VideoCapture('f//1.avi')
while True:
def AI_Face(o = None):
port.append(o) #################
_ , frame = cv.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
faces =face_my.detectMultiScale(gray,scaleFactor=1.1,minNeighbors=5,minSize=(115,115),flags=cv2.CASCADE_SCALE_IMAGE)
m = 0
for (x, y, w, h) in faces:
cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)
m = 1
AI_Face(m)
cv2.imshow(&quotPORT&quot,frame)
key = cv2.waitKey(1)
if(key == ord('q')):
break

خوب بعدش باید بشماریم فریم چندم هست ؟

تکه کد زیر را بعد از کد

port.append(o)

بگزارید

g = -1 for i in port: g = g +1 if g == 50: print(port[50]) port.clear()

بعد باید شبکه عصبی رو بهش اضافه کنیم و بعد کلی کار دیگه

تا جلسه نهم خدا نگهدار





اموزش هایی کامل و مفید من را دنبال کنید و هر اموزشی را که در مورد برنامه نویسی می خواهید در نظر های یکی از مطالب من بگید این برنامه نویسی ها شامل php python c++ c# css html
شاید از این پست‌ها خوشتان بیاید