افضل اعمال تخرج لفصل الربيع لمشاريع تكنوبروكتس



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



المنشورات السابقة: 1 ، 2 ، 3 ، 4 ، 5 .



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




فيسبيك ، تكنوبوليس



خدمة البحث عن الصور عن طريق الوجوه.



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



النظام ، باستخدام الشبكات العصبية ، يتعرف أولاً على الوجوه في الصور المرجعية ، ثم يقوم بتجميع قاعدة الصور الفوتوغرافية للأشخاص الذين تم العثور عليهم. يمكن أن تعمل الخدمة مع مصادر خارجية: VKontakte و Odnoklassniki و Yandex.Disk و Google Drive.



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











الخدمة عبارة عن تطبيق خادم عميل مع واجهة برمجة تطبيقات REST. يتكون جزء الخادم من مكونين رئيسيين: تطبيق Java ، والذي ينفذ منطق تفاعل المستخدم مع الخدمة ؛ و Python لتحديد الوجوه في الصور واستخراج ميزاتها الفريدة باستخدام شبكة عصبية.



ركز المؤلفون على قابلية التوسع ، لذلك استخدموا موازن تحميل لموازنة الحمل على الواجهة الخلفية ، ويسمح لك استخدام قائمة انتظار رسائل Redis للتفاعل بين تطبيقات Java و Python بتغيير عدد مثيلات هذه المكونات بشكل مستقل.



يتم نشر جميع الخدمات في حاويات Docker منفصلة ، ويتم استخدام Docker-compose لتنسيقها. لتنفيذ جانب العميل من التطبيق ، استخدمنا TypeScript و React. تُستخدم قاعدة بيانات PostgreSQL كمخزن دائم للبيانات.







في المستقبل ، يرغب الخريجون في تحسين دقة التعرف ، وإضافة عوامل تصفية حسب الجنس والعمر ، ودعم Facebook و Google Photos. هناك أيضًا أفكار لتحقيق الدخل من الخدمة عن طريق الحد من الوظائف المجانية وتقديم الإعلانات.



فريق المشروع: فاديم دياتشكوف ، إيجور شاخمين ، نيكولاي روبتسوف.



فيديو مع حماية المشروع .



صانعو الألعاب ، تكنوبارك



حل الأجهزة والبرامج لتسجيل التدريبات الرياضية.



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





تم تصنيع الجهاز بشكل مستقل ، لأن التكامل مع الحلول الحالية (على سبيل المثال ، MiBand) كان شاقًا للغاية ، وفي حالة الساعات والأساور ، لم يكن المطورون راضين عن وضعها على المعصم ، فقد قدموا معلومات أقل حول أنماط الحركة.



اخترنا وحدة ESP32-WROOM كجزء من ESP32-devkit-v1. لقد استوفت متطلبات معينة ، تمت كتابة الأدوات المساعدة لإنشاء التعليمات البرمجية والبرامج الثابتة في Python لها ، وإلى جانب ذلك ، يمكن برمجتها من Arduino IDE مثل أي لوحة Arduino. تم اختيار وحدة Amperka IMU لدور المستشعرات ، والتي تتضمن مقياس تسارع وجيروسكوب. يتم إجراء جميع الاتصالات مع أجهزة الاستشعار باستخدام بروتوكول I2C.



مخطط النموذج الأولي:







بالنسبة للإصدار التالي من الجهاز ، تم طلب طباعة اللوحة ولحام المكونات في الصين.









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



بيانات مقياس التسارع بعد التصفية.





بيانات الجيروسكوب بعد التصفية.



الشبكة العصبية المتكررة ذات بنية LSTM هي المسؤولة عن تصنيف التمارين. لتسهيل تصور السلاسل الزمنية ، تم استخدام تحليل المكون الرئيسي (PCA).





نتيجة الشبكة العصبية (الخط البرتقالي - احتمال القيام بتمارين الضغط ، والأخضر - القرفصاء).



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



واجهة التطبيق:









بالإضافة إلى تطبيق العميل ، طور المؤلفون برنامج الأداة المساعدة Batcher ، والذي سهّل تسجيل البيانات وترميزها لتدريب الشبكة العصبية:





بالإضافة إلى ذلك ، كتب المؤلفون آلية للتحقق من صحة الدفعات بعد حفظها في قاعدة البيانات.



لتخزين السلاسل الزمنية ، تم اختيار قاعدة بيانات InfluxDB ، والتي تم تكييفها لمثل هذه المهام. لتنفيذ خدمة التعلم الآلي ، اخترنا حزمة قياسية من Python و Django و Celery. سمحت قائمة انتظار المهام بتنفيذ مهمة التصنيف بشكل غير متزامن دون حظر واجهة التطبيق الرئيسية.



لتخزين بيانات المستخدم ، أخذوا Postgres ، تم تنفيذ تطبيق الواجهة الخلفية نفسه في Go باستخدام إطار عمل Gin.





العمارة العامة.



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



فريق المشروع: أوليغ سولوفييف ، تيميرلان راكيمغالييف ، فلاديمير إلفيموف ، أنطون مارتينوف.



فيديو مع حماية المشروع .



GestureApp ، تكنوسفير



إطار عمل للواجهة اللاتلامسية.



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



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





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



تتعرف الشبكة العصبية MobileNet3D على الإيماءات. تعطي الشبكة العصبية احتمالات فئات من الإيماءات ، بالإضافة إلى فئة خاصة "بدون إيماءة". تسمح هذه البنية بالتعرف على كل من الإيماءات الثابتة والديناميكية. تم تدريب الشبكة العصبية على مجموعة بيانات Jester. تم تحقيق دقة التنبؤ F 1 = 0.92.



يتلقى تيار الالتقاط إطارات من الكاميرا الأمامية ويضعها في نهاية القائمة. إذا كان طوله أكبر من 32 ، يقوم مؤشر ترابط الالتقاط بتنبيه مؤشر ترابط تنفيذ النموذج. يستغرق 32 إطارًا من بداية القائمة ، ويتوقع الفئات ، ثم يزيل العناصر من النهاية حتى يبقى عنصر واحد. هذا يلغي الحاجة إلى المزامنة الثقيلة ويحسن الأداء بشكل كبير: 20 إطارًا في الثانية على iPhone 11 و 18 إطارًا في الثانية على iPhone XS Max و 15 إطارًا في الثانية على iPhone XR. ومع وجود خط أنابيب ذكي للمعالجة المسبقة واللاحقة ، يتم تقليل استهلاك الطاقة إلى الحد الأدنى.



حتى الآن ، يعمل إطار العمل فقط لنظامي التشغيل iOS و Windows. استخدم التطوير إطار عمل PyTorch ومنصة TwentyBN ولغة Swift.



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



فريق المشروع: مكسيم ماتيوشين ، بوريس كونستانتينوفسكي ، ميروسلاف موروزوف.



فيديو مع حماية المشروع .






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



All Articles