وهذه المادة ترجمات جمعت بلوق مجموعة لى فنغ تكنولوجيا الشبكة، العنوان الأصلي DIY ديب مشاريع التعلم، مؤلف فافيو فاسكيز.
الترجمة | زاو بينغفيه شياو لين التشطيب | ينغ مزدوجة
شبكة لى فنغ من قبل، في هذه المقالة شبكة لى فنغ سيوصي بعض التطبيقات من الكمبيوتر الرؤية وعمق مشاريع التعلم، بما في ذلك تنفيذ محددة والتفاصيل، يمكنك إنتاج هذه العناصر على جهاز الكمبيوتر الخاص بك.
ينكدين المجتمع العلمي البيانات
أكشاي بهادور هو أفضل مثال على البيانات ينكدين المجتمع علمية معينة. في الأنظمة الأساسية الأخرى، مثل قرة، ستاكوفيرفلوو، يوتيوب، وهلم جرا، وهناك الكثير من الناس الطيبين، فضلا عن العديد من المحافل والمنابر لمساعدة بعضها البعض في مجالات العلوم والفلسفة والرياضيات واللغويات، والعلوم البيانات.
أكشاي بهادور
ولكن أعتقد أنه في السنوات 1-3 الماضية، المجتمع ينكدين في تبادل المحتوى البيانات العلمية لفعل الخير جدا، والتعلم من الخبرات المشتركة على كيفية آلة المقالة في العالم الحقيقي. أنا كثيرا ما يوصي أن الناس الذين يرغبون في الانخراط في هذا المجال للانضمام إلى المجتمع، وينكدين الأفضل، يمكنك أن تجد لي دائما :) هناك.
بدء التعلم عمق ورؤية الكمبيوتر
https://github.com/facebookresearch/Detectron
في هذا العقد، ودراسة متعمقة صورة في مجال التصنيف، واختبار وتنفيذ بحوث عملية المقابلة مهمة جدا، ونتائجها كانت مثيرة للدهشة، من أجل حل بعض المشاكل من حيث الأداء قد تجاوز المستوى الإنساني.
في هذه المقالة، وسوف تظهر عمل أكشاي بهادور القيام به في مجال الرؤية الكمبيوتر وعمق التعلم. إذا كنت لم تكن مألوفة مع هذه المفاهيم، يمكنك معرفة المزيد من خلال قراءة المحتوى التالي:
-
دراسة متعمقة للمقدمة "غريبة"
هنا وهناك مقدمة ممتازة حول عمق التعلم، والمناهج الدراسية وبلوق وظيفة. ولكن هذا هو عرض فريد جدا.
https://towardsdatascience.com/a-weird-introduction-to-deep-learning-7828803693b0
-
شهرين استكشاف عمق التعلم والكمبيوتر الرؤية
قررت في عمق فهم من رؤية الكمبيوتر وتعلم الآلة. كما المطور على شبكة الإنترنت، وجدت هذا.
https://towardsdatascience.com/two-months-exploring-deep-learning-and-computer-vision-3dcc84b2457f
-
من الأعصاب إلى رؤية الكمبيوتر
رؤية الإنسان والكمبيوتر 50 عاما.
https://towardsdatascience.com/from-neuroscience-to-computer-vision-e86a4dea3574
-
أندرو نغ رؤية الحاسوب - 11 الدروس
أكملت مؤخرا دورات أندرو نغ الحاسوب الرؤية على لكورسيرا. لم أندرو نغ بعمل رائع في شرح هذه القضايا.
https://towardsdatascience.com/computer-vision-by-andrew-ng-11-lessons-learned-7d05c18a6999
1. مكتبة برمجية مفتوحة للرؤية الحاسوبية القيام بها باستخدام دليل
akshaybahadur21 / HandMovementTracking
https://github.com/akshaybahadur21/HandMovementTracking
أكشاي:
من أجل أداء تتبع خوارزميات الفيديو بحاجة إلى تحليل تسلسل الهدف من إطارات الفيديو وإخراج النزوح بين كل إطار. هناك العديد من الخوارزميات، ولكل ونقاط القوة والضعف الخاصة بها. اختيار الطريقة التي يجب استخدامها، فمن المهم النظر في الغرض التطبيق. نظام تتبع الفيديو من عنصرين رئيسيين: الهدف وضع والمعلنة، وكذلك تصفية وتكوين الجمعيات البيانات.
المواقع مسار الفيديو (ق) أثناء الحركة من خلال الهدف الكاميرا. وهناك مجموعة متنوعة من الاستخدامات، مثل التفاعل بين الإنسان والحاسوب، المراقبة الأمنية، وضغط الفيديو والاتصالات، الواقع المعزز، ومراقبة حركة المرور، والتصوير الطبي، وتحرير الفيديو.
هنا هو رمز تحتاج إلى استخدامها في وقت التكاثر:
استيراد نمباي كما أرستها
cv2 استيراد
argparse استيراد
من مجموعات صف مزدوج الذيل استيراد
الحد الأقصى = cv2.VideoCapture (0)
نقطة = صف مزدوج الذيل (MAXLEN = 64)
Lower_green = np.array ()
Upper_green = np.array ()
بينما صحيح:
المتقاعد، IMG = cap.read
هامبورغ = cv2.cvtColor (IMG، cv2.COLOR_BGR2HSV)
نواة = np.ones ((5،5)، np.uint8)
قناع = cv2.inRange (هامبورغ، Lower_green، Upper_green)
قناع = cv2.erode (قناع، نواة، التكرار = 2)
قناع = cv2.morphologyEx (قناع، cv2.MORPH_OPEN، النواة)
# قناع = cv2.morphologyEx (قناع، cv2.MORPH_CLOSE، النواة)
قناع = cv2.dilate (قناع، نواة، التكرار = 1)
الدقة = cv2.bitwise_and (IMG، IMG، قناع = قناع)
المركز وريث = cv2.findContours (mask.copy، cv2.RETR_EXTERNAL، cv2.CHAIN_APPROX_SIMPLE)
مركز = بلا
إذا ليون (الأنابيب النانوية الكربونية) > 0:
ج = ماكس (المركز ومفتاح = cv2.contourArea)
((X، Y)، دائرة نصف قطرها) = cv2.minEnclosingCircle (ج)
M = cv2.moments (ج)
مركز = (كثافة العمليات (M / M )، الباحث (M / M ))
إذا دائرة نصف قطرها > 5:
cv2.circle (IMG، (الباحث (خ)، الباحث (ص))، الباحث (نصف القطر)، (0، 255، 255)، 2)
cv2.circle (IMG، مركز، 5، (0، 0، 255)، -1)
pts.appendleft (في الوسط)
لأنني في xrange (1، ليون (نقاط)):
إذا نقطة هو بلا أو نقطة هو بلا:
استمر
سميكة = كثافة العمليات (np.sqrt (ليون (نقاط) / تعويم (ط + 1)) * 2.5)
cv2.line (IMG، نقطة ، نقط (0،0،225)، سميكة)
cv2.imshow ( "الإطار"، IMG)
cv2.imshow ( "قناع"، قناع)
cv2.imshow ( "الدقة"، قرار)
ك = cv2.waitKey (30) وعشرية 0xFF
إذا ك == 32:
استراحة
# تنظيف الكاميرا وعلى مقربة أي النوافذ المفتوحة
cap.release
cv2.destroyAllWindows
نعم، 54 خطوط للقانون، هو بسيط جدا؟ إذا كان جهاز الكمبيوتر الخاص بك للتحقق من النتائج كما هو مبين أدناه، تحتاج إلى تثبيت مكتبة برمجية مفتوحة للرؤية الحاسوبية:
تركيب مكتبة برمجية مفتوحة للرؤية الحاسوبية على ماك
في هذه المقالة، سوف امشي تثبيته مكتبة برمجية مفتوحة للرؤية الحاسوبية 3.3.0 (C ++ وبايثون) على ماك OSX و.
https://www.learnopencv.com/install-opencv3-on-macos/
إذا كنت تستخدم أوبونتو:
مكتبة برمجية مفتوحة للرؤية الحاسوبية: تركيب مكتبة برمجية مفتوحة للرؤية الحاسوبية-بيثون على أوبونتو
مع كل التبعيات الضرورية، دعونا تثبيت مكتبة برمجية مفتوحة للرؤية الحاسوبية. تحتاج إلى استخدام CMake التثبيت تكوين خيارات الأدوات
https://docs.opencv.org/3.4.1/d2/de6/tutorial_py_setup_in_ubuntu.html
إذا كنت تستخدم نظام التشغيل Windows:
ويندوز تثبيت مكتبة برمجية مفتوحة للرؤية الحاسوبية Python--مكتبة برمجية مفتوحة للرؤية الحاسوبية وثائق 3.0.0-ديف
في هذا البرنامج التعليمي سوف نتعلم كيفية تعيين O-penCV بيثون على أنظمة ويندوز. الخطوات التالية في Windows 7-64 اختبارها من قبل
https://docs.opencv.org/3.0-beta/doc/py_tutorials/py_setup/py_setup_in_windows/py_setup_in_windows.html
2. الكشف عن التعب على أساس مكتبة برمجية مفتوحة للرؤية الحاسوبية
akshaybahadur21 / Drowsiness_Detection
GitHub.github.com إنشاء حساب في يساهم تطوير المشروع إلى الكشف عن التعب
https://github.com/akshaybahadur21/Drowsiness_Detection
قد يسبب السائق وقت طويل القيادة وقوع حادث. هذا الرمز بالكشف عن عينيك، وسوف يصدر تحذيرا عند النوم.
التبعية:
-
cv2
-
immutils
-
dlib
-
scipy
خوارزمية
6 كل عين باستخدام (س، ص) تنسيق التمثيل، (نفس عندما ترى الله.) ابتداء من الزاوية اليسرى للعين، ثم يتم احتساب العين في اتجاه عقارب الساعة على طول محيط.
حالة
تحقق مستمرة إطار الصور 20، وإذا كانت نسبة الارتفاع أقل من 0.25 العين، يتم إصدار إنذار.
العلاقات
3. SoftMax الانحدار تحديد الرقمي
akshaybahadur21 / أرقام التعرف
على Github.com المصنف تعلم الآلة - تحديد الرقمي
https://github.com/akshaybahadur21/Digit-Recognizer
SoftMax رموز استخدام العائد في البرنامج الذي يمكن أن تساعدك على التمييز بين أرقام مختلفة. يمكنك تثبيت كوندا كما بيثون، يمكن أن توفر مجموعة من كل مكتبة بيثون البيئية وما يتصل بها ذات الصلة بالنسبة لك.
وصف
الانحدار Softmax هو تعميم الانحدار اللوجستي، يمكننا استخدامها لإيجاد حل لمشكلة متعددة تصنيف، على افتراض أن هذه الفئات هي متبادل الحصري (مرادف: عدد من التفكير المنطقي، والحد الأقصى المصنف الكون، أو فئات من الانحدار اللوجستي). بدلا من ذلك، ونحن عادة استخدام نموذج الانحدار اللوجستي في مشاكل التصنيف الثاني.
تنفيذ الثعبان
مجموعة البيانات بيانات MNIST، في حين أن حجم الصورة هو 28 * 28، وذلك باستخدام الانحدار اللوجستي، وطبقات الشبكات العصبية السطحية والعميقة للشبكة العصبية لتصنيف 0-9.
يتم استخدام جزء واحد من أفضل النماذج الثلاثة التي المكتبات نمباي، بما في ذلك التحسين، ونشر الأمام ونشر الظهر.
الانحدار اللوجستي:
استيراد نمباي كما أرستها
matplotlib.pyplot استيراد كما معاهدة قانون البراءات
softmax صفر (ض):
ض - = np.max (ض)
ن خ = (np.exp (ض) .T / np.sum (np.exp (ض)، ومحور = 1))
عودة خ
صفر تهيئة (dim1، dim2):
"" "
: بارام خافت: حجم ناقلات ث initilazied مع الأصفار
: العودة:
"" "
ث = np.zeros (الشكل = (dim1، dim2))
ب = np.zeros (= شكل (10، 1))
العودة ث، ب
نشر مواطنه (ث، ب، X، Y):
"" "
: بارام ث: أوزان للث
: بارام ب: التحيز
: بارام X: حجم البيانات (أي من الميزات، لا من الأمثلة)
: بارام Y: التسمية الحقيقية
: العودة:
"" "
م = X.shape # الحصول على أي من الصفوف
# الأمام الدعامة
A = softmax ((np.dot (w.T، X) + ب) .T)
التكلفة = (-1 / م) * np.sum (Y * np.log (A))
# Backwar دعامة
DW = (1 / م) * np.dot (X، (A - Y) .T)
ديسيبل = (1 / م) * np.sum (A - Y)
التكلفة = np.squeeze (التكلفة)
الخريجون = { "جاف": جاف،
"ديسيبل": ديسيبل}
الخريجون المتكررين، تكلفة
مواطنه الأمثل (ث، ب، X، Y، num_iters، ألفا، print_cost = خطأ):
"" "
: بارام ث: أوزان للث
: بارام ب: التحيز
: بارام X: حجم البيانات (أي من الميزات، لا من الأمثلة)
: بارام Y: التسمية الحقيقية
: بارام num_iters: عدد التكرارات لالتدرج
: بارام ألفا:
: العودة:
"" "
تكاليف =
لأنني في مجموعة (num_iters):
الخريجون، والتكلفة = انتشارها (ث، ب، X، Y)
DW = خريجي
ديسيبل = خريجي
ث = ث - ألفا * جاف
ب = ب - ألفا * ديسيبل
# بتسجيل التكاليف
لو كنت 50 == 0:
costs.append (التكلفة)
# طباعة تكلفة كل الأمثلة تدريب 100
إذا print_cost وأنا 50 == 0:
طباعة ( "التكلفة بعد التكرار الأول: و" (ط، التكلفة))
بارامس = { "ث": ث،
"B": ب}
الخريجون = { "جاف": جاف،
"ديسيبل": ديسيبل}
العودة بارامس، الخريجون، وتكاليف
التنبؤ صفر (ث، ب، X):
"" "
: بارام ث:
: بارام ب:
: بارام X:
: العودة:
"" "
# M = X.shape
# Y_pred = np.zeros (الشكل = (1، م))
# W = w.reshape (X.shape ، 1)
y_pred = np.argmax (softmax ((np.dot (w.T، X) + ب) .T)، محور = 0)
y_pred عودة
نموذج مواطنه (X_train، Y_train، Y، X_test، Y_test، num_iters، ألفا، print_cost):
"" "
: بارام X_train:
: بارام Y_train:
: بارام X_test:
: بارام Y_test:
: num_iterations بارام:
: بارام learning_rate:
: بارام print_cost:
: العودة:
"" "
ث، ب = تهيئة (X_train.shape ، Y_train.shape )
المعلمات، الخريجون، وتكاليف = الأمثل (ث، ب، X_train، Y_train، num_iters، ألفا، print_cost)
ث = معلمات
ب = معلمات
y_prediction_train = التنبؤ (ث، ب، X_train)
y_prediction_test = التنبؤ (ث، ب، X_test)
طباعة ( "قطار دقة: {}"، مبلغ (y_prediction_train == Y) / (تعويم (ليون (Y))) * 100)
طباعة ( "اختبار دقة: {}"، مبلغ (y_prediction_test == Y_test) / (تعويم (ليون (Y_test))) * 100)
د = { "التكاليف": التكاليف،
"Y_prediction_test": y_prediction_test،
"Y_prediction_train": y_prediction_train،
"W": ث،
"B": ب،
"Learning_rate": ألفا،
"Num_iterations": num_iters}
# منحنى التعلم قطعة أرض (مع التكاليف)
#costs = np.squeeze (د )
# Plt.plot (التكاليف)
# Plt.ylabel ( "التكلفة")
# Plt.xlabel ( 'التكرار (في مئات)')
# Plt.title ( "معدل التعلم =" + شارع (د ))
# Plt.plot
# Plt.show
# Plt.close
#pri (X_test.T، y_prediction_test)
عودة د
الحزب الثوري المؤسسي صفر (X_test، y_prediction_test):
مثال = X_test
طباعة ( "التنبؤ للمثال هو"، y_prediction_test )
plt.imshow (np.reshape (على سبيل المثال، ))
plt.plot
plt.show
الشبكة العصبية الضحلة
استيراد نمباي كما أرستها
matplotlib.pyplot استيراد كما معاهدة قانون البراءات
softmax صفر (ض):
ض - = np.max (ض)
ن خ = (np.exp (ض) .T / np.sum (np.exp (ض)، ومحور = 1))
عودة خ
طبقات صفر (X، Y):
"" "
: بارام X:
: بارام Y:
: العودة:
"" "
n_x = X.shape
N_Y = Y.shape
العودة n_x، N_Y
مواطنه initialize_nn (n_x، n_h، N_Y):
"" "
: بارام n_x:
: بارام n_h:
: بارام N_Y:
: العودة:
"" "
np.random.seed (2)
W1 = np.random.randn (n_h، n_x) * 0.01
B1 = np.random.rand (n_h، 1)
W2 = np.random.rand (N_Y، n_h)
B2 = np.random.rand (N_Y، 1)
المعلمات = { "W1": W1،
"B1": B1،
"W2": W2،
"B2": B2}
المعلمات عودة
مواطنه forward_prop (X، المعلمات):
W1 = معلمات
B1 = معلمات
W2 = معلمات
B2 = معلمات
Z1 = np.dot (W1، X) + B1
A1 = np.tanh (Z1)
Z2 = np.dot (W2، A1) + B2
A2 = softmax (Z2.T)
مخبأ = { "Z1": Z1،
"A1": A1،
"Z2": Z2،
"A2": A2}
عودة A2، مخبأ
compute_cost صفر (A2، Y، المعلمات):
م = Y.shape
W1 = معلمات
W2 = معلمات
logprobs = np.multiply (np.log (A2)، Y)
التكلفة = - np.sum (logprobs) / م
التكلفة = np.squeeze (التكلفة)
تكلفة العودة
مواطنه back_prop (معلمات، ذاكرة التخزين المؤقت، X، Y):
م = Y.shape
W1 = معلمات
W2 = معلمات
A1 = مخبأ
A2 = مخبأ
dZ2 = A2 - Y
DW2 = (1 / م) * np.dot (dZ2، A1.T)
DB2 = (1 / م) * np.sum (dZ2، محور = 1، keepdims = صحيح)
dZ1 = np.multiply (np.dot (W2.T، dZ2)، 1 - np.square (A1))
DW1 = (1 / م) * np.dot (dZ1، X.T)
DB1 = (1 / م) * np.sum (dZ1، محور = 1، keepdims = صحيح)
الخريجون = { "DW1": DW1،
"DB1": DB1،
"DW2": DW2،
"DB2": DB2}
الخريجون عودة
update_params صفر (معلمات، الخريجون، ألفا):
W1 = معلمات
B1 = معلمات
W2 = معلمات
B2 = معلمات
DW1 = خريجي
DB1 = خريجي
DW2 = خريجي
DB2 = خريجي
W1 = W1 - ألفا * DW1
B1 = B1 - ألفا * DB1
W2 = W2 - ألفا * DW2
B2 = B2 - ألفا * DB2
المعلمات = { "W1": W1،
"B1": B1،
"W2": W2،
"B2": B2}
المعلمات عودة
model_nn صفر (X، Y، Y_real، test_x، test_y، n_h، num_iters، ألفا، print_cost):
np.random.seed (3)
n_x، N_Y = طبقات (X، Y)
المعلمات = initialize_nn (n_x، n_h، N_Y)
W1 = معلمات
B1 = معلمات
W2 = معلمات
B2 = معلمات
تكاليف =
لأنني في مجموعة (0، num_iters):
A2، مخبأ = forward_prop (X، المعلمات)
التكلفة = compute_cost (A2، Y، المعلمات)
الخريجون = back_prop (معلمات، ذاكرة التخزين المؤقت، X، Y)
إذا (ط > 1500):
alpha1 = 0.95 * ألفا
المعلمات = update_params (معلمات، الخريجون، alpha1)
آخر:
المعلمات = update_params (معلمات، الخريجون، ألفا)
اذا كنت 100 == 0:
costs.append (التكلفة)
إذا print_cost وأنا 100 == 0:
طباعة ( "التكلفة بعد التكرار ل الأول: و" (ط، التكلفة))
التنبؤات = predict_nn (معلمات، X)
طباعة ( "قطار دقة: {}"، مبلغ (التنبؤات == Y_real) / (تعويم (ليون (Y_real))) * 100)
التنبؤات = predict_nn (معلمات، test_x)
طباعة ( "قطار دقة: {}"، مبلغ (التنبؤات == test_y) / (تعويم (ليون (test_y))) * 100)
# Plt.plot (التكاليف)
# Plt.ylabel ( "التكلفة")
# Plt.xlabel ( 'التكرار (في مئات)')
# Plt.title ( "معدل التعلم =" + شارع (ألفا))
# Plt.show
المعلمات عودة
predict_nn صفر (معلمات، X):
A2، مخبأ = forward_prop (X، المعلمات)
التنبؤات = np.argmax (A2، محور = 0)
توقعات عودة
وأخيرا، DNN:
استيراد نمباي كما أرستها
matplotlib.pyplot استيراد كما معاهدة قانون البراءات
softmax صفر (ض):
مخبأ = ض
ض - = np.max (ض)
ن خ = (np.exp (ض) .T / np.sum (np.exp (ض)، ومحور = 1))
عودة سم، مخبأ
مواطنه relu (ض):
"" "
: بارام ض:
: العودة:
"" "
الصورة = np.maximum (0، ض)
مخبأ = ض
عودة الصورة، مخبأ
softmax_backward صفر (دا، التخزين المؤقت):
"" "
: بارام دا:
: بارام activation_cache:
: العودة:
"" "
ض = مخبأ
ض - = np.max (ض)
الصورة = (np.exp (ض) .T / np.sum (np.exp (ض)، ومحور = 1))
DZ = دا * ليالي * (1 - ق)
عودة DZ
relu_backward صفر (دا، التخزين المؤقت):
"" "
: بارام دا:
: بارام activation_cache:
: العودة:
"" "
Z = مخبأ
DZ = np.array (دا، = نسخ صحيح) # مجرد تحويل DZ إلى كائن الصحيح.
DZ إلى 17).
تكلفة العودة
linear_backward صفر (DZ، التخزين المؤقت):
"" "
: بارام DZ:
: بارام مخبأ:
: العودة:
"" "
A_prev، W، ب = مخبأ
م = A_prev.shape
DW = (1. / م) * np.dot (DZ، مخبأ .T)
ديسيبل = (1. / م) * np.sum (DZ، محور = 1، keepdims = صحيح)
dA_prev = np.dot (مخبأ .T، DZ)
عودة dA_prev، DW، ديسيبل
linear_activation_backward صفر (دا، مخبأ، وتفعيل):
"" "
: بارام دا:
: بارام مخبأ:
: تفعيل بارام:
: العودة:
"" "
linear_cache، activation_cache = مخبأ
إذا تنشيط == "relu":
DZ = relu_backward (دا، activation_cache)
dA_prev، DW، ديسيبل = linear_backward (DZ، linear_cache)
أليف تفعيل == "softmax":
DZ = softmax_backward (دا، activation_cache)
dA_prev، DW، ديسيبل = linear_backward (DZ، linear_cache)
عودة dA_prev، DW، ديسيبل
مواطنه L_model_backward (A_last، Y، مخابئ):
"" "
: بارام A_last:
: بارام Y:
: بارام تخزين:
: العودة:
"" "
الخريجون = {}
L = ليون (مخابئ) # عدد الطبقات
م = A_last.shape
Y = Y.reshape (A_last.shape) # بعد هذا الخط، Y هو نفس شكل A_last
dA_last = - (np.divide (Y، A_last) - np.divide (1 - Y 1 - A_last))
current_cache = مخابئ
الخريجون ، خريجي ، خريجي linear_activation_backward (dA_last،
current_cache،
تفعيل = "softmax")
للتر في عكس (المدى (L - 1)):
current_cache = مخابئ
dA_prev_temp، dW_temp، db_temp = linear_activation_backward (خريجي ، current_cache،
تفعيل = "relu")
الخريجون dA_prev_temp
الخريجون dW_temp
الخريجون db_temp
الخريجون عودة
update_params صفر (بارامس، الخريجون، ألفا):
"" "
: بارام بارامس:
: بارام الخريجون:
: بارام ألفا:
: العودة:
"" "
L = ليون (بارامس) // 2 # عدد من الطبقات في الشبكة العصبية
للتر في مجموعة (L):
بارامس بارامس - ألفا * الخريجون
بارامس بارامس - ألفا * الخريجون
بارامس عودة
مواطنه model_DL (X، Y، Y_real، test_x، test_y، layers_dims، ألفا، num_iterations، print_cost): كان # LR 0.009
"" "
تطبيقات الشبكة العصبية L-طبقة: * (L-1) - > LINEAR- > السيني.
الحجج:
X - البيانات، مجموعة نمباي الشكل (عددا من الأمثلة، num_px * num_px * 3)
Y - صحيح "التسمية" ناقلات (التي تحتوي على 0 إذا القط (1)، وإن كان غير القط)، الشكل (1، عدد من الأمثلة)
layers_dims - قائمة تحتوي على حجم المدخلات وحجم كل طبقة، من طول (عدد طبقات + 1).
معدل التعلم من قاعدة تحديث أصل التدرج - ألفا
num_iterations - عدد مرات التكرار من الحلقة الأمثل
print_cost - إذا صحيح، فإنه يطبع تكلفة كل 100 الخطوات
العوائد:
بارامس - بارامس المستفادة من النموذج ثم يمكنهم استخدامها للتنبؤ ..
"" "
np.random.seed (1)
تكاليف = # تتبع التكلفة
بارامس = initialize_parameters_deep (layers_dims)
لأنني في مجموعة (0، num_iterations):
A_last، مخابئ = L_model_forward (X، بارامس)
التكلفة = compute_cost (A_last، Y)
الخريجون = L_model_backward (A_last، Y، مخابئ)
إذا (ط > 800 وalpha1 ط = 0.80 * ألفا
بارامس = update_params (بارامس، الخريجون، alpha1)
أليف (ط > = 1700):
alpha1 = 0.50 * ألفا
بارامس = update_params (بارامس، الخريجون، alpha1)
آخر:
بارامس = update_params (بارامس، الخريجون، ألفا)
إذا print_cost وأنا 100 == 0:
طباعة ( "التكلفة بعد التكرار الأول: و" (ط، التكلفة))
إذا print_cost وأنا 100 == 0:
costs.append (التكلفة)
التنبؤات = التنبؤ (بارامس، X)
طباعة ( "قطار دقة: {}"، مبلغ (التنبؤات == Y_real) / (تعويم (ليون (Y_real))) * 100)
التنبؤات = التنبؤ (بارامس، test_x)
طباعة ( "اختبار دقة: {}"، مبلغ (التنبؤات == test_y) / (تعويم (ليون (test_y))) * 100)
# Plt.plot (np.squeeze (تكاليف))
# Plt.ylabel ( "التكلفة")
# Plt.xlabel ( 'التكرار (في عشرات)')
# Plt.title ( "معدل التعلم =" + شارع (ألفا))
# Plt.show
بارامس عودة
التنبؤ صفر (معلمات، X):
A_last، مخبأ = L_model_forward (X، المعلمات)
التنبؤات = np.argmax (A_last، محور = 0)
توقعات عودة
كتب بواسطة كاميرا
تشغيل برنامج الثعبان Dig-Rec.py
الثعبان Dig-Rec.py
لإظهار رمز واردة عن طريق الكاميرا
تشغيل برنامج الثعبان Digit-Recognizer.py
الثعبان Digit-Recognizer.py
Devanagiri التعرف
akshaybahadur21 / Devanagiri-التعرف
Devanagiri-التعرف - استخدام convnetgithub.com الهندية الأبجدية المصنف
هذا الرمز يمكن أن تساعدك على استخدام Convnets لتصنيف الأبجدية الهندية المختلفة (Devanagiri).
https://github.com/akshaybahadur21/Devanagiri-Recognizer
يمكنك تثبيت كوندا كما بيثون، يمكن أن توفر مجموعة من كل مكتبة بيثون البيئية وما يتصل بها ذات الصلة بالنسبة لك.
استخدام التكنولوجيا
كنت التفاف الشبكة العصبية، إطار API Tensorflow Keras مثل جيدا لتوفير مستوى عال من التجريد.
هيكل
التفاف طبقة الخلايا طبقة التلافيف طبقة الخلايا طبقة مرتبطة ارتباطا كاملا طبقة طبقة تصنيف الانحدار Softmax
نقاط أخرى ملاحظة:
يمكنك أيضا إضافة طبقة الإلتواء.
زيادة تنظيم منع الإفراط في تركيب.
زيادة عدد من الصور لتحسين دقة.
تنفيذ الثعبان
جميع أحجام الصورة DHCD (ديوناكري الأحرف الإدراجات) * تستخدم مجموعة البيانات 32 و 32 لكل من الشبكة العصبية التلافيف.
تشغيل برنامج الثعبان Dev-Rec.py
الثعبان Dev-Rec.py
4. استخدام التعرف على الوجه FaceNet
akshaybahadur21 / الوجه-الاعتراف باستخدام-FaceNet
https://github.com/akshaybahadur21/Facial-Recognition-using-Facenet
يستخدم هذا البرنامج شبكة facenet لمساعدتك على القيام التعرف على الوجه (https://arxiv.org/pdf/1503.03832.pdf). واقترح Facenets الفكرة أصلا في ورقة بحثية. ناقش المفاهيم الأساسية خسارة ثلاثية من وظيفة لمقارنة صور مختلفة من الناس. هذا المفهوم يستخدم شبكة التأسيس، من DeepingLearning.ai ملف frutils.py المجتمع. في شبكتي التي أضفت بعض الوظائف لتحسين الاستقرار واكتشاف أفضل.
المكتبة كود اللازمة
يمكنك تثبيت كما بيثون كوندا، فإنه يمكن توفير مجموعة من كل مكتبة بيثون البيئية وما يتصل بها ذات الصلة بالنسبة لك، قد تحتاج المكتبات التالية:
-
نمباي
-
matplotlib
-
cv2
-
keras
-
dlib
-
h5py
-
scipy
وصف
نظام التعرف على الوجه قادر على تحديد أو التحقق من وجه الشخص الفني من الصور الرقمية أو الفيديو. بناء نظام التعرف على الوجه حيث هناك العديد من الطرق، ولكن بصفة عامة، فهي تتميز مقارنة البيانات صورة الوجه ومجموعة مختارة من الميزات يحدد لاحقا.
وظيفة إضافية
-
فقط عند فتح عينيك للكشف عن وجهه.
-
المكتبة باستخدام dlib وجه وظيفة المحاذاة بشكل فعال في التنبؤ في الوقت الحقيقي تدفق وسائل الاعلام.
تنفيذ الثعبان
-
استخدام شبكة التأسيس لشبكة بناء
-
ورقة مصدر من جوجل-Facenet
برنامج
إذا كنت ترغب في تدريب الشبكة، تشغيل Train-inception.py، إذا كنت لا تريد لتدريب الشبكة، لأنني كان التدريب لشبكة جيدة، ثم يمكنك تحميل الملف إلى تشغيل المحلي وجها rec_Google.h5.
الآن أن لديك مجموعة من البيانات، والذي يحتوي على الكثير من الصور. انقر على ملف / الصور إلى أضعاف هذه الصور. يمكنك لصق صورة في هنا، يمكنك أيضا استخدام الكاميرا للنقر. يمكنك تشغيل create-face.py الملف إلى القيام بذلك، يتم تخزين الصور في مجلد / بدأ في. لديك لصقه يدويا في / مجلد الصور المجلد.
تشغيل rec-feat.py برنامج لتنفيذ جميع المهام.
5. Emojinator
akshaybahadur21 / Emojinator
Emojinator - على جيثب تعبير المصنف بسيط.
https://github.com/akshaybahadur21/Emojinator
يمكن أن تساعدك هذه الرموز في التمييز بين تعبيرات مختلفة. وحتى الآن، ونحن نؤيد فقط التعبير اليد.
الرموز هي رموز الأ يديوغرام صورة ويبتسم المعلومات الإلكترونية واستخدام شبكة الإنترنت. توجد الرموز في أنواع مختلفة، بما في ذلك تعبيرات الوجه، وأشياء عادية ومواقع وأنواع الطقس والحيوانات. هم يحبون المشاعر، ولكن المشاعر هي الصورة الحقيقية، بدلا من الصورة المطبوعة.
وظيفة
الكشف عن اليد من قبل المرشح.
CNN استخدامها لتدريب النموذج.
تنفيذ الثعبان
باستخدام الشبكة العصبية الإلتواء
عملية
أولا، تحتاج إلى توقيع صورة من قاعدة البيانات، يمكنك تشغيل ملف للحصول على CreateGest.py. أدخل اسم لفتة، يمكنك ان ترى إطارين. تبادل لاطلاق النار في "C." نظرة على الإطار الشخصي وضبط يديك للتأكد من التقاط خصائص يدك. وهناك لفتة يمكن تبادل لاطلاق النار 1200 الصور. محاولة تحريك يديك في هذا الإطار، إلى ضمان أن النموذج الخاص بك لا يصلح عليها في عملية التدريب.
كرر الخطوات المذكورة أعلاه لضمان أن تحصل على جميع الميزات التي تريدها.
CreateCSV.py تشغيل البرنامج لتحويل الصورة إلى ملف CSV.
إذا كنت ترغب في تدريب نموذج، ثم قم بتشغيل برنامج "TrainEmojinator.py"
وأخيرا، قم بتشغيل برنامج Emojinator.py، اختبار النموذج الخاص بك عن طريق الكاميرات
مؤلف
أكشاي بهادور وراغاف Patnecha.
خاتمة
ويمكنني أن أقول فقط أن أشعر لا يصدق على هذه المشاريع، يمكن للجميع تشغيلها على جهاز الكمبيوتر، أو تشغيلها على منصة ديب الإدراك، إذا كنت لا تريد تثبيت أي شيء، فإنه يمكن تشغيل على الانترنت.
وأود أن أشكر أكشاي وأصدقائه للمساهمة في المستقبل، فضلا عن المساهمات الأخرى المقدمة للمصدر المفتوح. محاولة لتشغيلها، والحصول على الهم. هذا هو مجرد مثال صغير من DL وCV يمكن أن تفعل أشياء مدهشة، اعتمادا على كيفية تحويله إلى المكان الذي يمكن أن تساعد في العالم الحصول على أفضل.
لا تستسلم ابدا، نحن بحاجة إلى جميع المهتمين في أشياء كثيرة مختلفة. وأعتقد أننا يمكن أن يحسن من العالم، وتحسين حياتنا، والطريقة التي عمل، والتفكير وحل المشكلات، واذا كنا توجيه جميع الموارد والآن جعل مجالات العمل هذه المعرفة معا لتحقيق فوائد أكبر، ويمكننا في العالم ولدينا يكون لها أثر إيجابي هائل على الحياة.
نحن بحاجة إلى اهتمام أكبر من الناس، مزيد من الدورات التدريبية، أكثر مهنية، أكثر حماسا. نحن بحاجة لكم :)
شكرا لقراءة هذا، وآمل أن تجد هنا هو أكثر إثارة للاهتمام :)
إذا كان لديك أي أسئلة، يرجى الاتصال بي على تويتر وينكدين:
-
تغريد
فافيو فاسكيز (FavioVaz)
-
ينكدين:
فافيو فاسكيز - الرئيسي عالم البيانات - أكسو | ينكدين