منذ يومين فقط ، نقل أوروراي نظامًا للتعرف على العيوب ومراقبة العربات لقاطرات إيرماك إلى مرحلة التشغيل التجريبي. كانت المهمة غير تافهة ومثيرة للاهتمام للغاية ، وكانت الخطوة الأولى منها تقييم حالة منصات الفرامل وعرض الدعامة. تمكنا من حل المشكلة بدقة 1 مم بسرعة قاطرة تصل إلى 30 كم / ساعة! أريد أن أشير إلى أنه نظرًا للخصوصيات ، كان من الممكن استخدام
"TTA (زيادة وقت الاختبار)" - مثال حي على اختراق المنافسة على غرار kaggle الذي لا يتناسب بشكل جيد مع تجزئة prod والدلالي بناءً على
ترميز se_resnext50 ، والذي يعطي نتيجة دقيقة بشكل مدهش في تنبؤ القناع .
وصف المهمةمن الضروري إنشاء مجمع برمجيات الأجهزة للكشف عن عيوب منصات الفرامل وإخراج البيانات إلى عامل التحول.
المتطلبات الأساسية للمهمةكما اتضح ، يتغير عدد كبير من الفوط ، حوالي 80 ٪ ، في PTL (نقاط الفحص الفني للقاطرة) ، وهذا يحدث كل 72 ساعة لكل قاطرة. الجزء الأكبر من الشيكات في PTOL هو الفحص البصري من قبل سيد الجزء الخارجي من عربة قاطرة.
خطة لحل المشكلة:- اختيار المعدات
- جمع البيانات
- التدريب النموذجي
- تطوير الخادم مع واجهة برمجة تطبيقات REST
- تطوير عميل لوحي Android
- تصميم وتجميع الرف لوضع الكاميرات والضوء
- التشغيل التجريبي
اختيار المعداتربما كانت إحدى أصعب المهام ، إن لم تكن أصعبها ، اختيار الكاميرات والعدسات والإضاءة في ميزانية ووقت محدودين: كان يجب إجراء MVP في غضون شهر ونصف. في غضون يومين ، جعلني Google خبيرًا في أجهزة رؤية الجهاز. تم الاختيار على كاميرات
Basler والإضاءة الخلفية النابضة التي يبلغ طولها 6 كيلو وات ، متزامنة مع الكاميرا. لصالح Basler (70 إطارًا / ثانية ، دقة تصل إلى 1920 × 1024) تحدثت واجهة برمجة تطبيقات python الخاصة بها ، والتي سهلت إلى حد كبير تكامل جميع مكونات النظام ، ناقص الوحيد هو سعر الكاميرات ~ 100 طن.
لقد كان اختيار العدسة للكاميرات معقدًا بسبب عدم فهم الطول البؤري وزاوية المشاهدة اللازمة ، واضطررت إلى المخاطرة ، لكني أخرجت آلة حاسبة للعدسة وقرصة الحظ.
الإضاءة الخلفية: تم تحديد الوقت اللازم لتوهج المصابيح ، ونوعها ، ومعلمات العدسة. لقد جربت 3 تعديلات مختلفة للعدسات لـ LEDs ، بزاوية 30 ، 45 ، 60 ، وفي النهاية اخترت العدسات غير اللامعة بزاوية 45.


تجميع واختبار إشارة التحكم في النبض للكاميرا

بالنسبة إلى أجهزة الخادم ، أخذت Intel Core i7-7740X Kaby Lake و 46 جيجابايت من ذاكرة الوصول العشوائي و 1 تيرابايت SSD و 3 x1080Ti - وهذا يكفي للتنبؤ بقاطرتين من 3 أقسام في أكثر من دقيقتين.
تهب المزرعة الجماعية لساندويتش من بطاقات الفيديو 10 درجات.
جمع البياناتإن إنشاء مجموعة بيانات هي أغنية منفصلة ، ولا يمكن تكليف أي شخص بهذا الحدث ، ولذا فقد تم إرسالي إلى مدينة بعيدة غير معروفة في أعماق وطننا الشاسع. صورت حوالي 400 فوط على
هاتفي (!!!) . في المستقبل ، سأقول إن موظفي المستودع الشجعان ، الذين خافوا على ما يبدو من قبل المراجع من موسكو ، غيروا جميع الفوط الموجودة في القاطرات إلى أخرى جديدة ورسموها بطبقة جديدة من الطلاء ، كان الأمر ممتعاً ومخيفاً أن ننظر إليها. كنت أتطلع إلى الأسوأ ، رغم أنه لا يزال هناك حوالي 400 صورة من كتل مختلفة تمامًا صنعتها في مستودع موسكو.
بقي فقط أن أؤمن بالمعجزة ، كومة على التعزيزات ، والتوصل إلى الاستدلال لإزالة شرائح خاطئة ، والتي كان هناك الكثير منها ، لأنني لم أفكر في الأمثلة المضادة.
الانتظار:

الواقع:


هنا يجب أن يقال أنه لم يكن هناك مثال واحد على الكتل البالية.
التدريب النموذجيأظهر النموذج الذي يحتوي على مشفر se_resnext50 وفك التشفير مع كتلة
scse من
هذا المستودع نفسه بشكل أفضل ، ولكن كان يجب إزالة
scse (تطبيق pytorch) لأسباب تسريع عملية التنبؤ ، وذلك بسبب كان لا بد من التنبؤ بها في دقيقة واحدة. للتدريب النموذجي ، تم
استخدام إطار عمل
Pytorch 1.0.1 ، مع وجود عدد كبير من التعزيزات من
البيموميشن وتكبير أفقي مكتوب ذاتيًا لتغيير الفصل عند العرض.
def train_transform(p=1): return Compose([ OneOf([ CLAHE(clip_limit=2), IAASharpen(), IAAEmboss(), RandomBrightnessContrast(brightness_limit=0.8, contrast_limit=0.8), HueSaturationValue(hue_shift_limit=50, sat_shift_limit=50, val_shift_limit=50), RGBShift(r_shift_limit=50, g_shift_limit=50, b_shift_limit=50), JpegCompression(quality_lower=30), RandomGamma(), GaussNoise() ], p=0.3), OneOf([ Blur(), MotionBlur(), MedianBlur(), ], p=0.3), ShiftScaleRotate(shift_limit=0.2, scale_limit=0.4, rotate_limit=5, p=0.5), Normalize(p=1) ], p=p)
كدالة فقد ، اخترت
خسارة Lovász-Softmax ، لقد تصرفت بنفس الطريقة تقريبًا مثل bce + jaccard ، ولكن أفضل من
BCE ، التي تناسبها كثيرًا على العلامات. كان اختيار خوارزمية لتحديد الرقم التسلسلي لزوج من القطع والكتل يمثل أيضًا تحديا ، كانت هناك خيارات مع
التعلم المتري ، لكنني كنت بحاجة لإظهار النتيجة بسرعة ، وجاءت الفكرة لتمييز الكتل في الفئتين 1 و 2 ، حيث 1 هي الاتجاه إلى اليمين ، و 2 إلى اليسار. بدأت الشبكة في التنبؤ ليس فقط القناع ، ولكن الاتجاه. باستخدام الاستدلال البسيط ، كان من الممكن تحديد الأرقام التسلسلية للكتل وعجلات العجلات بشكل موثوق ، ثم تحديد متوسط التنبؤات ، في الواقع ، باستخدام TTA مع تحول بسيط في الكائن أثناء الحركة وزوايا الإضاءة المختلفة تعطي نتيجة جيدة في دقة القناع حتى بدقة 320 × 320.
بشكل منفصل ، كانت المهمة لتحديد الخلل على شكل إسفين من الكتل ، كانت هناك العديد من الأفكار من
التحول هوف ، بمناسبة زوايا / حدود الكتلة مع نقاط / خطوط من فئات مختلفة. في النهاية ، فاز الخيار بكيفية قيام العمال بذلك: تحتاج إلى التراجع 5 سم عن الحافة الضيقة وقياس العرض ، إذا كان ضمن النطاق الطبيعي ، ثم تخطي الكتلة.
تم الحصول على خط التدريب من هنا بواسطة
MICCAI 2017 Robotic Instrument Segmentation . تتكون عملية التدريب من ثلاث مراحل: التدريب باستخدام جهاز تشفير مجمد ، تدريب الشبكة بالكامل والتدريب مع
CosineAnnealingLR . استخدام المرحلتين
الأوليين ReduceLROnPlateau .
برمجة خادم REST والعميل على Androidبالنسبة لخادم REST ، اخترت قارورة - من الأسهل عدم طرح إطلاق خلال دقيقتين. قررت إنشاء قاعدة بيانات للتخزين بيدي في شكل بنية مجلد بسيطة وملف حالة الحالي. يعد تطبيق الجهاز اللوحي على Android Studio ، الاستفادة من أحدث الإصدارات مجرد جنة للمطور.
تصميم وتجميع الرف لوضع الكاميرات والضوءتذكرت الأيام الخوالي عندما أنشأت محطات شحن للسيارات الكهربائية ، وكانت هذه التجربة مفيدة للغاية - قررنا أن نجعلها من رفوف الألومنيوم الهيكلية المطبوعة على طابعة ثلاثية الأبعاد.

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


يصل
Jaccard على التحقق من الصحة إلى 0.96 ، ويتم تجزئة الوسائد بصريًا بوضوح شديد ، وتضيف متوسطًا على العديد من الصور والحصول على دقة جيدة للغاية في تقدير عرض الفوط. خلال الاختبارات ، تبين أنه يمكنك العمل مع عربات القاطرات الأخرى ، ولكن التقاط كاميرات أسرع:


في الختام ، أود أن أقول إن التكنولوجيا أظهرت نفسها بشكل جيد للغاية ، وفي رأيي ، لديها إمكانات كبيرة فيما يتعلق بالقضاء على العامل البشري ، وتقليل وقت توقف القاطرة ووضع التوقعات.
شكر وتقديربفضل مجتمع
ods.ai ، بدون مساعدتكم ، لن أكون قادرًا على القيام بكل هذا في مثل هذا الوقت القصير! شكرا جزيلا ل
n01z3 ، DL ، الذي تمنى لي أن
أتناول DL ، على نصيحته التي لا تقدر بثمن والاحتراف غير عادية! شكرا جزيلا للعقل المدبر الأيديولوجي فاسيلي مانكو (الرئيس التنفيذي لشركة أوروراي) ، أفضل مصمّمة الأزياء تاتيانا بروسوفا.
نراكم في الحلقة القادمة من القصة!
أوروراي