ادامه ساخت شبکه عصبی با پایتون  قسمت 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 cv2import numpy as npface = &quothaarcascade_frontalface_default.xml&quotface_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 cv2import numpy as np port = [ ] ######### face = &quothaarcascade_frontalface_default.xml&quotface_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 cv2import numpy as npface = &quothaarcascade_frontalface_default.xml&quotface_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() بعد باید شبکه عصبی رو بهش اضافه کنیم و بعد کلی کار دیگه تا جلسه نهم خدا نگهدار