كيف تعلمت ألا أقلق وأحب رؤية الآلة

مرحبا يا هابر! اسمي Artyom Nagumanov ، لدي أكثر من 15 عامًا من الخبرة في تطوير البرمجيات وإدارة المشاريع والفرق وأقسام تكنولوجيا المعلومات. لقد كنت دائمًا مهتمًا بموضوع الذكاء الاصطناعي ورؤية الآلة. أثناء تطوير البرمجيات ، كنت دائمًا في ذهني بسبب سبب عدم إضافة جزء من الذكاء على الأقل إلى تطبيق المؤسسة من أجل رفض مشاركة المستخدم جزئيًا أو كليًا في أي عملية تبدو للوهلة الأولى غير مشروطة تمامًا.

صورة

للقيام بذلك ، في كل مرة كان عليّ الذهاب إلى كل مكان من جديد: دراسة / استدعاء المكتبات المناسبة ، والتثبيت على جهاز Linux افتراضي لاختبار أدوات مجانية لإنشاء الشبكات العصبية وتدريبها ، والعثور على بنى الشبكة التي تعد حاليًا تاج الإبداع البشري في العالم الذكاء الاصطناعي. هذه العملية شاقة للغاية وليست ممتعة للغاية. ذات مرة ، عند فهم بنية شبكة عصبية أخرى ، أدركت أن الوقت قد حان لوضع حد لهذا وإنشاء أداة عالمية تأخذ الروتين بأكمله. وأحتاج فقط إلى الضغط على بعض الأزرار الزجاجية الكبيرة والحصول على النتيجة. في الصورة لجذب الانتباه (في الفقرة الأولى من المقالة) ، يتم عرض مثال على التعرف على نفثات الماء من آلة الري ، ولكن أولاً وقبل كل شيء.

نحن نقدم خدمة التعرف


كانت لدي الفكرة التالية - لإنشاء موقع ويب حيث يمكن للمستخدم تحميل أي صور ، انقر فوق الزر "التعرف" واحصل على النتيجة بتنسيق json. لكن الحقيقة هي أنه لا توجد خوارزمية عالمية أو شبكة عصبية يمكنها العثور على أي أشياء في العالم. ونتيجة لذلك ، قررت أن أجعل من الممكن تدريب النماذج الخاصة بي للشبكات العصبية للتعرف على الأشياء التي نحتاجها ، باستخدام الموقع وعينة الصور فقط التي يجب التعرف عليها. قبل البدء في العمل ، قمت بتحليل التطورات في العالم الموجودة حول هذا الموضوع. كما اتضح ، يعمل العديد من عمالقة صناعة تكنولوجيا المعلومات في هذا الاتجاه: Yandex ، Mail.ru ، Amazon. العيب الرئيسي هو أن كل هؤلاء العمالقة يريدون المال مقابل خدماتهم. كان هذا كافياً بالنسبة لي لبدء تطوري الخاص.لدي خلفية بالفعل ، وكنت أعرف كيفية العثور على الكائنات وتصنيفها على الصور جيدًا ، كل ما تبقى هو تجميع كل شيء وإنشاء واجهة ملائمة.

في الغالبية العظمى من الحالات ، أستخدم تقنيات Microsoft في مشاريعي ، مما أثر بشكل كبير على التقنيات المستخدمة في هذا المشروع:

  • ASP.NET (لغة C #)
  • Webpi
  • javascript jquery
  • خادم MSSQL
  • بيثون
  • Tensorflow

بادئ ذي بدء ، قررت إنشاء خدمة REST ، والتي ستكون بمثابة دماغ النظام بأكمله ، مما سيسمح لنا بقبول الأوامر من خلال واجهة برمجة التطبيقات والقيام بكل العمل الشاق. بنية الشبكة العصبية ، اخترت Mask R-CNN ، يمكن لهذه الشبكة العثور على كائنات في الصورة وتصنيفها.

كان كل شيء يسير بشكل منتظم تقريبًا ، حتى وصلت إلى تحقيق تدريب نماذجي الخاصة. كانت عملية التعلم مكلفة للغاية وتتطلب الكثير من الأجهزة. بالطبع ، كنت أعرف هذا من قبل ، ولكن قبل ذلك ، كان بإمكاني انتظار تدريب النموذج لمدة يوم أو يومين ، باستخدام وحدة المعالجة المركزية للحسابات. ولكن نظرًا لأن الفكرة كانت إنشاء أداة مريحة وسريعة ، لم أستطع تحمل التدريب الطويل للنموذج. لذا فقد نضج السؤال بتثبيت خادم خاص ببطاقة فيديو مناسبة تدعم تقنية CUDA ( https://ru.wikipedia.org/wiki/CUDA) وسيقلل بشكل كبير من الوقت الذي يستغرقه تدريب النموذج. لكي لا تضخم ميزانية المشروع ، اخترت بطاقة رسومات NVIDIA GeForce GTX 1050 Ti غير مكلفة. بالتوازي مع الخدمة ، قمت بعمل عميل على نماذج Windows يسمح بإجراء الاختبار.

في المرحلة الثانية ، قمت بإنشاء موقع على شبكة الإنترنت ، وهو في الأساس عميل للخدمة. لم أكن منزعجًا حقًا من التصميم ولم أقم بأخذ النموذج النهائي ، لقد كتبت كل شيء بنفسي ، باستخدام فقط ما يقدمه Visual Studio من الصندوق. استغرق إنشاء الموقع واختباره ثلاثة أشهر أخرى.

كنت سعيدًا جدًا عندما قمت بتحميل الصورة ، واخترت نموذجًا جاهزًا للاعتراف ، نقرت على زر "التعرف" وحصلت على النتيجة الأولى.

صورة

المهمة الحقيقية لرؤية الجهاز


بينما كنت أعمل على نظام التعرف ، طارت إليّ مهمة حقيقية - لتحديد موضع المجرفة الأمامية لآلة خاصة تنظف الثلج على الطريق. لحل هذه المشكلة ، لم أكن محدودًا في اختيار نهج للحل ، ومنذ البداية كنت أرغب في استخدام تركيب أجهزة استشعار خاصة تحدد زاوية المجرفة ، ولكنني تخلت عن هذه الفكرة بسرعة. كما اتضح ، تحتاج هذه المستشعرات إلى المعايرة باستمرار نظرًا لأن المجرفة تتم إزالتها بشكل دوري ويتم إدخال آخر ، إلى جانب التحدث مع الزملاء الذين يقومون بتركيب هذه المستشعرات ، اكتشفت أن هذه المستشعرات في الشارع ومتوفرة للتخريب. جاءت الفكرة إلى الذهن لتحليل ضوابط العمل في المجرفة ، ولكن كما اتضح ، في الحياة الواقعية يذهبون إلى حد إزالة المجرفة ، وفي الهيئات العاملة يشيرون إلى أن المجرفة قد تم تخفيضها ،في كلمة واحدة ، مرة أخرى ليس خيارًا موثوقًا به. حسنًا ، لم يتركوا لي خيارًا سوى استخدام القوة الكاملة لخدمة التعرف. لقد وضعت الكاميرا في مقصورة الركاب في السيارة ، التي تنظر إلى المجرف الأمامي ، جمعت مئات العينات من المجرف ، وقمت بتمييزها بأداة VGG ، التي قمت ببنائها في الموقع وبدأت في التدريب. استغرقت العملية حوالي ساعتين ، وحصلت في القرن الثلاثين على نتيجة اعتراف مقبولة تمامًا ، وكانت دقة التعرف حوالي 95٪.استغرقت العملية حوالي ساعتين ، وحصلت في القرن الثلاثين على نتيجة اعتراف مقبولة تمامًا ، وكانت دقة التعرف حوالي 95٪.استغرقت العملية حوالي ساعتين ، وحصلت في القرن الثلاثين على نتيجة اعتراف مقبولة تمامًا ، وكانت دقة التعرف حوالي 95٪.

صورة

لكي يعمل النظام بشكل كامل على السيارة ، كان علي تعديلها: أضف القدرة على تحميل الصور عبر بروتوكول نقل الملفات ، وليس فقط من خلال واجهة برمجة التطبيقات لأن سمحت لك كاميرا الفيديو بالتقاط صورة وإرسالها إلى بروتوكول نقل الملفات المحدد. تمت إضافة القدرة على حفظ النتيجة في قاعدة البيانات ، ومن ثم من خلال واجهة برمجة التطبيقات (API) للفترة الزمنية المحددة للحصول على النتائج وتحليلها والكتابة إلى نظام المحاسبة المكتوب في 1C ، وهو بالمناسبة نظام تحكم ضخم يحلل آلاف السيارات في نفس الوقت ويتحكم في العديد من المعلمات ، مثل الأميال ، وساعات الماكينة ، والوقود في الخزان ، وركوب الخيل ، والخمول ، وما إلى ذلك ، لكن هذه قصة مختلفة تمامًا. الإصدار الأول من التحكم في المجرفة جاهز ، ولكن في المعركة سيتم اختباره فقط عندما يسقط الثلج.

ما مدى سهولة ذلك؟


الفكرة الرئيسية لخدمة التعرف هي بساطة إنشاء وتدريب النماذج الخاصة بك. لفهم ما إذا كان بإمكان أي شخص حقًا إنشاء نموذج خاص به وتدريبه ، طلبت من مساعدي إنشاء نموذج للتعرف على نفثات المياه من آلة الري. كان المدخل الوحيد الذي قدمته لها هو مقطع فيديو لتشغيل آلة الري ، مأخوذة من الكابينة ، وعنوان خدمة التعرف ، في المساء قمت بتعيين هذه المهمة لها ، وفي الصباح ، عندما دخلت إلى النظام ، رأيت نموذجًا منتهيًا يعمل حقًا. فيما يلي لقطة شاشة للنافذة التي يتم فيها تدريب النموذج.

صورة

كما تعلم ، يتم الحفاظ على عصر النموذج ، ويمكننا ، دون مقاطعة عملية التعلم ، اختبار أي عصر.

التطوير والاستخدام


يمكن مشاهدة مثال على كيفية عمل كل شيء مباشرة في مقطع الفيديو .

اعتقدت لفترة طويلة أنه إذا كان بإمكان أي شخص إنشاء نموذج خاص به ، فلماذا لا تجعل من الممكن مشاركة هذا النموذج مع مستخدمين آخرين للنظام. ونتيجة لذلك ، أضفت قسمًا حيث يمكنك وضع نموذج ناجح بنقرة واحدة على الماوس ويمكن لأي مشارك استخدامه. وهذه الخدمة مجانية تماما.

أنا الآن أستخدم هذه الخدمة لحل المهام الخاصة بي لأتمتة العمليات في الشركات التي يمكن استخدام رؤية الماكينة فيها. أخطط في المستقبل لإضافة طرق التعرف الأخرى ، وليس فقط الشبكات العصبية. سأكون سعيدًا جدًا إذا تمكن شخص آخر يستخدم هذه الخدمة من حل مشاكله.

All Articles