يجب على مطوري تعلم الآلة يكون جمع من رؤية الكمبيوتر DIY ومشروع التعلم عمق

وهذه المادة ترجمات جمعت بلوق مجموعة لى فنغ تكنولوجيا الشبكة، العنوان الأصلي 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)

    • ينكدين:

      فافيو فاسكيز - الرئيسي عالم البيانات - أكسو | ينكدين

    الدخن المعالج، ولكن لا علاقة مع الذات المتقدمة

    إعادة تشكيل في 1980s الكلاسيكية، UNIQLO UT س سلسلة التعاون TOMMY GUERRERO لتكون معروضة للبيع

    الدوري، كامبياسو واحدة أيضا كيف نفعل؟ جرب هذه ضبط النفس البطولي شريط كامبياسو

    MEIZU Pro7 شاشة رسمت هو الشاشة الصغيرة، والهاتف المحمول الشاشة المزدوجة قبل وبعد الضربات!

    T700 ZHONGTAI بلون التعرض الداخلية FIG الشبه فولفو

    مقابلة الأزرق ميناء هاو شياو وى: مكبرات الصوت ذات الجودة الرئيسيون هم لا طعم له أو مظلمة حصان

    الامتحان العام النظرية جزء "معلومات شبكة الاتصالات موظفي الصيانة محطة" لالتصديق الكامل في بكين

    اندي شو المعرفة الباردة أن التنمية الذاتية من وحدة المعالجة المركزية المحلية للهاتف المحمول، والبحوث والتنمية المستقلة أن ذلك حقا؟

    هذا الزوج من جديد مجنون Explosive2017 Primeknit ذلك المجال الكثير من الغاز، وتساعدك على تصفح الملعب!

    "الرجل العنكبوت: الكون الموازي" يلقي مروحة كبيرة من دعوة المجال لاول مرة اللعب لندن

    نوكيا 8 أو الهبوط في الصين الشهر المقبل، وكيفية مقارنة مع الرائد المحلي؟

    رقاقة الطريق AI مايكروسوفت، في الواقع، لقد ذهبت سبع أو ثماني سنوات