Post Top Ad

Your Ad Spot

الاثنين، 28 يناير 2019

Object detection YOLO - RCNN


انا بحب أدخل في الموضوع علطول شوفو احنا عندنا 3 انواع من ال Object detection النوع الاولاني اسمه Image classification ودا بيقولك اذا كان الصورة دي عبارة عن دبدوب أو لأ .. النوع التاني عندنا وهو عبارة عن Classification مضاف اليه localization ودا بيقولك هل الصورة دي دبدوب أو لأ وكمان بيحددلك مكان الدبدوب النوع التالت اسمه Detection ودا بيكون عبارة عن انه بيعرف كل حاجة موجودة في الصورة فا بيعرف ان الدبدوب موجود وان الكتاب موجود ويحدد مكان كل واحد فيهم وهي دي ال 3 انواع في ال Object detection بتاعنا .

بالاضافة بقي الي اننا بنتكلم عن ال Object detection في بعض من ال Method الي بنستخدمها سواء احنا عايزين نحدد مكان ال Object في الصورة او نعمل Detection علي كل الصورة بس في حاجتين رئيسيتين واساسيتين لازم نعرفهم في بداية موضوعنا يا جماعة :

شوف ال Bounding box detection بيعملك مربع كداه وبيبقي فيه مركز وليه طول وعرض وبيكون بداخله ال object الي الModel جابه , لكن النوع التاني الي هو Landmark detection بيكون عبارة عن ان كل Feature بيرمز ليها ب نقطة علي محور السينات والصادات فا الناتج بتاعك بيكون عبارة عن نقط كتير اوي كل نقطة منهم بترمز لحاجة علي سبيل المثال النقطة الاولي فوق علي اليمين بترمك للعينين , في واحدة في النص للأنف , في واحدة للايدين والرجلين والي اخره .. فا دا الفرق بين ال Bounding وال Landmark في عملية ال Detection طيب حلو اوي لحد كداه نتعمق أكتر شوية ايه رأيك ؟


في حاجة بقي اسمها التقاطع فوق الاتحاد انا مبحبش اترجم المصطلحات للعربي لانها بتفقد معناها Intersection over Union ودا بيترمز ليه بالرمز التالي IOU

والله شوف هما بيقارنو ال Ba بل Bp يعني بيقارنو المربع الكبير بالمربع الصغير ولو الناتج بتاعنا بعد ما طبقنا المعادلة الي فوق دي طلع ان ال IOU اكبر من او يساوي 0.5 فا دا معناه اننا ماشيين صح واحنا تنبئنا بال Bp بطريقة صحيحة والدبدوب الحمد لله بقي لقيناه بطريقة صحيحة في الصورة 

وعندنا Anchor boxes دي مثلا لو انتا بتستخدم ال bounding detection فهي كل ما هتحدد ميزة او خاصية في صورة الدبدوب هتروح عاملة مستطيل عشان متنساش الميزة دي , وبعدين تعرف ميزة كمان فا تعمل مربع , بعدين تعرف ميزة كمان فا تعمل مربع بس بأبعاد هندسية تانية , في النهاية انتا بيكون عندك أبعاد هندسية كتير لمربعات ومستطيلات كتير كل منها بتعبر عن وجود خاصية معينة او مجموعة من الخصائص في الصورة دي واتعملهم detection وقفشتهم خلاص طب وبعدين ؟

كل مستطيل او مربع بيعبر عن ال Bounding box الي اتكلمنا عنه في الاول وكل box من دول بيعبر عن probability prediction معينة فأنتا بتعدي كل الكلام الي فات دا علي Function بنسميها  : Non-max suppression شوف دي بتبقي قايمة علي حاجتين اساسيين
الاولي انها بتطلب من كل الbox الموجودة انها تعمل تفوض لأكتر box بيعبر عنهم وبيكون داه صاحب اعلي probability prediction

التانية انها بتمسح اي box بيكون ال IOU بتاعه اقل من ال 0.5 شبه ما اتكلمنا قبل كداه في IOU واهميتها .


كل الكلام الي فات كان مجرد مقدمة في الي كنت عايز اتناقش معاك فيه دلوقتي , طبعا لو كنت قلتلك اننا هناقش ورقة علمية كنت صرخة وموصلتش معايا لحد النقطة دي بس للاسف احنا ضحكت عليك وخلصنا نص البحث وحاليا في الجزء الاخير كدا انتا معاك اخطر 3 فانكشن في ال مجال ال OBJECT DETECTION تقدر تقولهم تاني معلش ؟
- معادلة ال IOU
- Anchor boxes
- non-max supression

في ناس ظريفة كداه قالك انا هخلي الكومبيوتر يبص علي الحاجة مرة واحدة يعرف ايه الحاجة الي موجودة في الصورة دي , طبعا انتا هتقولي ازاي عملها الصايع داه والكومبيوتر احنا قايلين انه غبي وتفكيره محدود وانه ياعيني بيتسند علينا ؟
هو فعلا مكنش بيهزر وعمل Alogrthim وسماه "من نظرة واحدة" دي مش أغنية للهضبية والله دا Alogrthim وتقريبا انتا قريت عنه كتير ومفهمتهوش اسمه YOLO
YOU ONLY LOOK ONCE من نظرة واحدة ولا مش نظرة واحدة .. متفقين يعني؟

هو بيبص علي الصورة مرة واحدة وبعد كداه بيرميها في حاجة اسمها Grid ودي بتكون ال Size بتاعها GxG ال Grid دي بتكون متقسمة لخلايا Cells وعلي كل خلية منهم بيمشي عليها ال CNN طبعا تخيل معايا يعني الصورة دخلالك وعلي كل Cell بعد ما حطتها في ال Grid هتمشي عليها CNN كاملة .. موضوع هيطلع معاك انه هيكون فائق الدقة طبعا انتا انبهرت ومبسوط دلوقتي انك فاهم الدنيا وعارف كلام العلماء الكبار اتقل اتقل دنا هخليك البريمو علي الدفعة بعد ما طبقنا ال CNN علي كل Cell بداخل ال Grid الي حطينا فيها ال Input بتاعنا 

الناتج هيكون حاجة اسمها y المهم انها بتحتوي علي ايه بقي شوف اول حاجة بتحتوي علي Pc ودي بتعبر عن ال probabillity of detecting لل object وبعد كداه كل قيم ال B بتعتبر عن Bounding Box Features وبعدين  بنروح علي ال Non-Max Suppression  عشان نجيب اكتر Box كان فعلا ال probabillity of detecting بتاعته مرتفعه جدا وبعد كداه بنشيل كل الباقي وبم انه اكتر Box بيعبر فا بنعينه انه يكون الواجهه بتاعنا وساعتها خلاص ال Detecting حصل


يبقي تعالا راجع معايا كدا ال CNN وال YOLO سريعا كداه , دلوقتي احنا جبنا صور كتير اوي للدبدوب الي فوق داه وصور كتير اوي للكتب وعملنا CNN وقدرنا يبقي معانا Classifier Model يعرف ان كان في الصورة كتاب او لأ ويعرف ان كان فيه دبدوب او لأ , حبينا بقي اننا نعمل الموضوع داه Real Time يعني في الوقت الحقيقي يعني مباشرة يعني اول ما تفتح الكاميرا ال Model يكون شغال هو فهنعمل ايه ؟ 
ساعتها بنرمي ال كلام داه علي حاجة زي ال Yolo طب ليه؟ لاننا عايزين نعمل object detection ساعتها هنسأل نفسها عايزنه Classifier ولا Localization فهنقول عايزينه الاتنين , هنسأل نفسنا هل نوعه Bounding box ولا Landmark هتفتكر ان فيه Anchor box وهتفتكر ال non-max suppression  فا هتقول لأ انا عايزه Bounding max بعدين هتروح مدخل ال صورة علي ال input ايه الي هيحصل فيها ؟
أول حاجة بتترمي بداخل Grid ايوة مظبوط انا معاك
تاني حاجة ال Grid دي بتتقسم الي خلايا صغيرة جدا
في كل خلية احنا هنطبق ايه ؟ أيوة شاطر هنطبق CNN 
الناتج بتاعنا هيكون ايه ال output بتاع ال CNN هيكون Bounding Box Prediction صح الكلام ودا بيكون عبارة عن ايه ؟  مجموعة من المزايا تمت رصدها فا الكومبيوتر بيفضل يعلمها ويرمي مجموعة من الابعاد الي بتحيط بالمزايا دي , طيب وبعدين بنعمل ايه بنطبق ال non-max suppression علشان نشيل الBounding boxes الي بتكون حاصل ليها overlapping يعني المستطيلات الي بتكون متداخله .. طيب معلش فكرني كداه ال non-max suppression بتتشتغل ازاي؟
اول حاجة بنشيل اي حاجة ال IOU بتاعها بيكون اقل من ال 0.5 
تاني حاجة بناخد احسن واحد بيكون مندوب عن كل زمايله التانين وبيكون ادق نتيجة
مظبوط كداه وفي النهاية هيطلعلي ايه هيطلعلك الناتج داه .


علي ما اظن ان الموضوع مفيش اسهل منه وحضرتك مبسوط جدا انك هتتكلم بعد كداه في الYOLO وهتقول لصحابك تعرف الورقة البحثية الي اسمها " من أول نظرة " وتألش وتهزر وداه الي انا عايزك توصله انا عايزك توصل لدرجة من التمكن انك عارف اه هي ازاي بتشتغل مش لازم تخش في التفاصيل الا لو حضرتك بتفكر ساعتها انك تكتب اوراق بحثية او تطورها ساعتها كلمني بقي وهنتكلمو في التفاصيل والاحصاء والرياضة والتفاضل وغيره من الحسابات التقيلة اوي عليك وعليا بس في النهاية هتفهم نفس الكلام الي انا بقوله دا فانا بختصر عليك السكة وبحاول اقولك المختصر المفيد ..
العلم دا غويط اوي ممكن ورقة زي ال YOLO تعود فيها اسبوع عشان تفهمها وممكن تفهمها في 10 دقايق بس علي حسب الي بيشرحهالك هل هو فعلا فهمها ولا هو بيحاول يفهمها ولسة مفهمهاش ..


نشرح بقي ال R-CNN 
Region with Convolutional Neural Networks :

شوف بص احنا هنزود حاجة هنا بسيطة جدا , كل الي هنضيفه هنا Method اسمها Segmentataion دي يا سيدي بتقوم علي حاجة واحدة بس انها تقطع الصورة بحيث ان هي ميتبقاش فيها غير ال objects المحتمل اننا نلاقي فيها Bounding Boxes وبعد كداه بنطبق باقي الخطوات بتاعتنا عادي جدا وبنطلع ال Bounding probabillity بتاعتنا عادي جدا لاننا بنمشي علي نهج ال
 Non-Max suppression فا الفكرة هنا كلها ان ال R-CNN بطيئة جدا بس حاليا بقي في حاجة اسمها Fast R-CNN و Faster R-CNN ودي عالجت مشاكل ال R-CNN التقليدية



بس دا كل الموضوع بدون اي تعاقيد وبدون اي رياضيات واحصاء ومواضيع كتير لو عرفتها او معرفتهاش مش هتفيدك بحاجة لان في النهاية انتا هيكون معاك كود جاهز والكود كمان هيكون بداخل Function وال Function بداخل Class وال Class بداخل Template وكلهم انتا مجهزهم عشان يكونو حلول محتملة لمشاكل كتير هتقابلك في المستقبل شبه المشكلة دي فكونك سايب العلم التطبيقي وهتهتم بالعلم النظري فا عمرك ما هتوصل للتطبيقي وعمرك ما هتفهم النظري ولو فهمته هتنساه لانك لو تمكنت من التطبيقي هتعرف ان النظري كان ابسط من السهولة لدرجة انك تتوقع ان ال Paper الجاية ممكن تكون بأسمك مين عارف؟

دايما اعرف ان كل حاجة في حدود عقلنا وان مفيش حاجة من خلق بشر غير وهيقدر يستوعبها بشر كل الموضوع بطريقة نقل المعلومة هل هي صحيحة ولا مش صحيحة ..
هتقرا ال مقالة دي اكتر من 3 مرات او مرتين , وهتجيب ورقة وقلم وتحاول تقسم كل paper تقرا عنها مقالات علمية فيها تفاصيل اكتر , انا حاولت ادعم المحتوي البصري علي قد ما قدرت ولكن في النهاية لازم تكون فعلا محتاج انك تفهم كلامي ساعتها هتفهمه كل الي عليك تجيب ورقة وقلم بس وتكتب كل نقطة انا بشرحها وتحاول تفهمها لنفسك بأسلوبك دي طريقتي الخاصة ..


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


بالنسبة للمصادر :

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

هناك 14 تعليقًا:

Post Top Ad

Your Ad Spot

Datalizer