العودة لقائمة المشاريع
مطلوب برمجة Analytics Application (Firebase Computer Vision)
الميزانية
$250.00 - $500.00
التصنيف
برمجة، تطوير المواقع والتطبيقات
المهارات المطلوبة
جافا
برمجة أندرويد
تعلم الآلة
فايربيس
تطوير البرمجيات
برمجة التطبيقات
جافا
برمجة أندرويد
تعلم الآلة
فايربيس
تطوير البرمجيات
برمجة التطبيقات
الوصف
السلام عليكم,
المطلوب هو تطبيق اندرويد لمساعدتي بعمل بعض الاحصائيات على تطبيق امتلكه بالفعل.
سيتم تفسير المتطلبات وشرح كل شيء لتحري الدقة, ارجو ارسال عروض فقط بعد قراءة جميع المتطلبات والتاكد من انك قادر على القيام بها جميعا (ارجو مشاهدة الفيديو المرفق لاخذ فكرة مبدئية عن المتطلبات)
سيتم اعطائك الصلاحيات المطلوبة لتستخدم حسابنا على Firebase حينما يتم الاتفاق على العرض.
المتطلبات:
1) شرط اساسي هو تنفيذ جميع المطلوب وعدم اهمال اي جزئية, سيتم فحص كل المتطلبات التي تم تنفيذها, لن يتم قبول المشروع لو كان ينقصه اي شيء من المتطلبات.
2) كتابة الاكواد الخاصة بجميع ال classes وال methods التي تم ارفاقها كصورة (سيتم شرح كل واحد ادناه) واستخدام نفس الاسماء ونفس المدخلات والمخرجات لكل واحد منها, بامكانك تعريف واستخدام classes او methods اضافية ان احتجت, لكن المرفقة اسمائها يجب ان لا يتم التعديل على اسمائها, مدخلاتها او مخرجاتها.
3) تدريب Firebase AutoML Model ليتم التعرف على الاشكال الظاهرة في الصور المرفقة (تم ارفاق الاشكال المطلوبة) , يجب التعرف على الاشكال ومعرفة نوعها ومكانها (circle, rectangle, line, triangle)
https://firebase.google.c...
4) يجب ان يستمر التطبيق بالعمل حتى لو تم الضغط على زر Home/Back , في هذه الحاله يجب ان يستمر التطبيق باخذ صور للشاشه والتعرف على الاشكال المطلوبه ورسمها باللون الاحمر ( لا يجب ان يختفي ال floating View باي حال من الاحوال) .
5) التطبيق يجب ان يبدا او يتوقف عن العمل بناء على الضغط على كبسة Start / Stop
6) يجب على التطبيق العمل بنفس الكفائة في كلا الحالتين للجهاز Portrait / Landscape
7) سيكون بالامكان التغيير بين الصور الموجوده على جهاز الاندرويد (الصور التي تم ارفاقها وتحتوي على الاشكال المطلوبة) ويقوم تطبيقك بعمل كل شي بسلاسة حتى لو تم تغيير الصوره (screenshot, detection, drawing objects)
8) ليس هنالك اي داعي لان يتواصل التطبيق مع الانترنت لاي غرض كان, اذا كنت تظن عكس ذلك فتواصل معي قبل تقديم اي عرض ( التعرف على الاشكال يجب ان يتم على الجهاز دون استخدام اي خدمة اونلاين)
9) في كل مره يتم اخذ صورة للشاشه (مره كل 500 milli seconds) يجب ان يتم التعرف على الاشكال من جديد في الصورة الجديدة, مسح الاشكال التي تم التعرف عليها مسبقا ورسمها على الشاشه, ومن ثم الرسم على الشاشة.
10) عدد غير محدد من التعديلات الى ان يتم الحصول على النتيجة التي تم ذكرها (ليس هدفنا التعديل, بل ضمان الحصول على النتيجة المطلوبة)
المدخلات:
1) تم ارفاق صورتين من تطبيقنا تحتوي على الاشكال المراد التعرف اليها, اذا كنت تحتاج للمزيد من الصور من اجل التدريب الالي فبامكانك عمل المزيد من الصور الشبيهة باستخدام اي برنامج تعديل صور (اذا قررت ان تصنع المزيد من الصور فيجب ان تكون بمواصفات شبيهة بالصور المرفقة من حيث الالوان والاشكال والاحجام والخلفية)
المخرجات:
1) Android application(java & android studio) source code
تطبيق اندرويد مبرمج بلغة الجافا باستخدام Android Studio (مطلوب source code)
2) AutoML model trained on our Firebase account
https://firebase.google.c...
3) شرح عن كيف يتم تدريب في firebase بحيث نكون قادرين على تنفيذ التدريب بانفسنا (اذا كانت هنالك حاجة بسكريبت للتدريب يرجو ارفاقه مع المخرجات)
4) واجهة مستخدم بسيطة كالتي ارفقت بالصور (Floating Window)
شرح ال methods المطلوبة (اسمائها مرفقة في الصور)
1) List<Detection> detectObjects(Bitmap bitmap, int width, int height)
تستقبل صورة, مع طولها وعرضها, وتخرج لنا الاشكال التي تم التعرف عليها
2) Bitmap getScreenshot():
تلتقط صورة واحده للشاشه وارجاعها بنسق Bitmap
3) void getScreenshotsPeriodacally(int milliseconds)
تلتقط صور متعدده للشاشه تفصل بين كل صوره والاخرى milli seconds المدخلة, هذه الدالة يجب ان تستخدم الدالة السابقة لالتقاط صوره في كل مره.
4) Bitmap screenshotHandler(Bitmap screenshot)
في كل مره تلتقط الدالة السابقة صوره من الصور المتعددة , يتم المناداة على هذه الدالة للتتعامل مع الصوره التي تم التقاطها (هذه الدالة سيتم مناداتها في كل مره يتم التقاط صوره في كل X milliseconds
5)void saveBitmapToStorage(Bitmap bitmap)
كل مهمتها استقبال صورة وحفظها في ذاكرة الجهاز
6) void drawLineOnScreen(Point a, Point b, Color color)
رسم خط على الشاشة بين النقطتان المدخلات الى الدالة
7) void startRecordingAndDetection()
يتم استدعائها فور الضغط على زر start لتقوم بالبدء بكل المطلوب (screenshot, detection, drawing)
8) void stopRecordingAndDetection()
توقف كل ما بدات لتشغيله الدالة السابقة (يتم استدعائها فور الضغط على زر stop)
9) void drawRectangle(Rect rect, float x, float y)
رسم مستطيل حول الشكل الذي تم التعرف عليه
اي سؤال او استفسار ارجو عدم التردد, شكرا.