كيف فعلنا الطيار الآلي لمحطة خدمة

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

يمكن الاطلاع على البيان الصحفي للمشروع من العميل هنا .

بادئ ذي بدء ، سوف أخبركم لماذا لجأ صانع السيارات إلينا ، ولم يفعل المشروع بمفرده. من الصعب بالنسبة للاهتمامات الألمانية الكبيرة تغيير العمليات ، ونادراً ما يكون تنسيق تطوير السيارة مناسبًا للبرامج - التكرارات طويلة وتتطلب تخطيطًا جيدًا. يبدو لي أن شركات صناعة السيارات الألمانية تفهم هذا ، وبالتالي يمكنك مقابلة الشركات الناشئة التي أنشأتها ، لكنك تعمل كشركة مستقلة (على سبيل المثال ، AID من Audi و Zenuity من Volvo). تنظم شركات صناعة السيارات الأخرى أحداثًا مثل Startup Autobahn ، حيث يبحثون عن مقاولين محتملين للمهام والأفكار الجديدة. يمكنهم طلب منتج أو نموذج أولي وبعد فترة قصيرة من الوقت الحصول على النتيجة النهائية. قد يكون هذا أسرع من محاولة القيام بنفس الشيء بنفسك ، ولا يكلف أكثر من تطويره من حيث التكاليف. يتضح مدى تعقيد تغييرات العملية بشكل جيد من خلال عدد الأذونات اللازمة لبدء اختبار سيارة مع الطيار الآلي لدى العملاء: الموافقة على تسجيل الفيديو للأشخاص (حتى لو لم نحفظ البيانات ، ونستخدم دفق الفيديو فقط في شكل مجهول دون تحديد أشخاص محددين) ، والموافقة على تسجيل الفيديو المناطق ، وموافقة النقابة والقنصل العامل لاختبار هذه التقنيات ، وموافقة خدمة الأمن ، وموافقة خدمة تكنولوجيا المعلومات - ليست هذه هي القائمة الكاملة.

مهمة


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

  1. يريد الفني البدء في العمل باستخدام آلة موجودة في مكان ما في ساحة انتظار السيارات خارج منطقة الاختبار.
  2. إنه يختار السيارة على الجهاز اللوحي ، ويحدد مربع الخدمة وينقر على "Drive in".
  3. تقود السيارة من الداخل وتتوقف عند نقطة النهاية (المصعد ، المنحدر ، أو أي شيء آخر).
  4. عندما ينتهي الفني من العمل على السيارة ، يضغط على زر على الجهاز اللوحي ، وتخرج السيارة وتتوقف في بعض الأماكن الفارغة بالخارج.

الميزات: ليس كل السيارات لديها كاميرات. على الأجهزة التي هم عليها ، لا يمكننا الوصول إليهم. البيانات الوحيدة الموجودة على الجهاز والتي لدينا إمكانية الوصول إليها هي السونارات وعلم القياس

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

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

قرار


هيكل المنتج النهائي على النحو التالي:

  • في منطقة الخدمة ، نقوم بتركيب الكاميرات الخارجية والأغطية وغيرها من الأشياء (مرحبا تسلا).
  • يتم نقل البيانات من الكاميرات إلى Jetson TX2 (ثلاث كاميرات لكل منها) ، والتي تعمل في مهمة العثور على الجهاز ومعالجة الصور المسبقة من الكاميرات.
  • علاوة على ذلك ، تأتي بيانات الكاميرا إلى الخادم المركزي ، الذي يطلق عليه بفخر برج التحكم والذي يقع عليه في وحدات التصور والتتبع وتخطيط المسار. نتيجة للتحليل ، يتم اتخاذ قرار بشأن الاتجاه الإضافي لحركة السيارة ويتم إرساله إلى السيارة.
  • في هذه المرحلة من المشروع ، يتم وضع Jetson TX2 أخرى في السيارة ، والتي تستخدم برنامج التشغيل الخاص بنا ، والذي يتصل بـ Vector والذي يقوم بفك تشفير بيانات السيارة وإرسال الأوامر. يستقبل TX2 أوامر التحكم من خادم مركزي ويبثها إلى السيارة.

بالنسبة لمستوى البنية التحتية ، يتم استخدام ROS .

إليك ما يحدث بعد أن يختار فني سيارة وينقر على "محرك الأقراص":

  1. يبحث النظام عن سيارة: نرسل أمرًا للسيارة إلى وميض الإنذارات ، وبعد ذلك يمكننا تحديد أي من السيارات في ساحة انتظار السيارات يختارها الفني. في المرحلة الأولى من التطوير ، نظرنا أيضًا في خيار تحديد الماكينة بواسطة لوحة الأرقام ، ولكن في بعض مناطق السيارة المستوقفة قد لا يكون الرقم مرئيًا. بالإضافة إلى ذلك ، إذا قمنا بتحديد السيارة من خلال رقم التسجيل ، فيجب زيادة دقة الصور بشكل كبير ، مما سيؤثر سلبًا على الأداء ، ونستخدم نفس الصورة للبحث والقيادة. تحدث هذه المرحلة مرة واحدة ولا تتكرر إلا إذا فقدنا السيارة لسبب ما.
  2. بمجرد العثور على السيارة ، نقوم بإسقاط الصور من الكاميرات التي تصطدم بها السيارة في وحدة الإدراك الحسي ، والتي تقسم المساحة وتعطي إحداثيات جميع الكائنات واتجاهها وأحجامها. هذه العملية مستمرة ، حيث تعمل بمعدل حوالي 30 إطارًا في الثانية. العمليات اللاحقة ثابتة أيضًا ويتم تشغيلها حتى تصل الماكينة إلى نقطة النهاية.
  3. تستقبل وحدة التتبع مدخلات من الإدراك ، السونار ، وعلم القياس ، وتخزين جميع الكائنات الموجودة في الذاكرة ، والجمع بينها ، وتحسين الموقع ، ويتوقع وضع وسرعة الأشياء.
  4. بعد ذلك ، يقوم مخطط المسار ، الذي ينقسم إلى قسمين: مخطط المسار العالمي للمسار العالمي ومخطط المسار المحلي للمحلي (المسؤول عن تجنب العقبات) ، بإنشاء المسار وتحديد موقع الانتقال إلى سيارتنا ، وهو يرسل أمرًا.
  5. تأخذ Jetson الأمر بالسيارة وتبثه إلى السيارة.

تتم المغادرة بنفس طريقة الوصول.

الإدراك


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

  1. متقطع VAE . سمح لنا تعديل صغير تم إجراؤه على β-VAE بتدريب الشبكة بحيث يقوم المتجهات الكامنة بتخزين معلومات الصورة في عرض تصاعدي تخطيطي.
  2. GAN الشرطي (أشهر تطبيق هو pix2pix ). هذه الشبكة يمكن استخدامها لبناء الخرائط. استخدمناها أيضًا لإنشاء طريقة عرض تخطيطية من أعلى ، ووضع البيانات من كاميرا واحدة أو جميعها في نفس الوقت وانتظار عرض تخطيطي من أعلى عند الإخراج.

أحد تكرارات GAN الشرطية لكاميرا واحدة ، من اليسار إلى اليمين: صورة الإدخال ، التنبؤ بالشبكة ، النتيجة المتوقعة



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

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

ومع ذلك ، كنا مهتمين بفهم إمكانيات هذه الأساليب ، وسنضعها في الاعتبار للمهام المستقبلية.

بعد ذلك ، تعاملنا مع المهمة من ناحية أخرى ، من خلال البحث المنتظم عن الكائنات + شبكة لتحديد الموضع المكاني للكائنات التي تم العثور عليها (على سبيل المثال ، هذا أو ذاك ). هذا الخيار بدا لنا الأكثر دقة. العيب الوحيد هو أنه أبطأ من الطرق المقترحة من قبل ، لكنه يناسب إطار التأخير المحتمل ، لأن سرعة السيارة في منطقة الخدمة لا تزيد عن 5 كم / ساعة. يبدو أن العمل الأكثر إثارة للاهتمام في مجال التنبؤ بالموضع ثلاثي الأبعاد للكائن هو هذا العمل ، والذي يظهر نتائج جيدة جدًا على KITTI . لقد قمنا ببناء شبكة مماثلة مع بعض التغييرات وكتبنا خوارزمية خاصة بنا لتحديد المربع المحيط ، ولكي نكون أكثر دقة ، خوارزمية لتقدير إحداثيات مركز إسقاط الكائن على الأرض - لاتخاذ قرارات حول اتجاه الحركة ، لا نحتاج إلى بيانات حول ارتفاع الكائنات. يتم تغذية صورة الكائن ونوعه (السيارة ، المشاة ، ..) إلى إدخال الشبكة ، ويتم إخراج أبعادها واتجاهها المكاني. بعد ذلك ، تقوم الوحدة بتقييم مركز الإسقاط وتقدم بيانات لجميع الكائنات: إحداثيات المركز والاتجاه والأبعاد (العرض والطول).

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

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

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

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

Source: https://habr.com/ru/post/ar457500/


All Articles