في المقالة الثانية من سلسة التبصير الحاسوبي نكمل حديثنا في هذا المجال الرائع ، و بعد أن تعرفنا سوياً في المقالة الأولى على مرشحات اللف الرياضي وعلى أنواعها و الفروقات بين كل منها ، نتعرف في هذه المقالة عن السمات (features) و أقسامها و الفروقات بينها و بعض من إستخداماتها و نتحدث كذلك عن تقنيات تجزئة الصور و كيفية إستغلالها لهذه السمات في عملها.
السمات
معظم السمات (features) في أي صورة تنقسم إلى ثلاثة أقسام :
- الحواف (edges): هي خيط رفيع يمر بين المناطق الغير مشتركة في الصورة أو المجالات اللونية الغير متجانسة و التي تظهر بشكل مفاجئ.
- الزوايا (corner): هي منطقة التقاطع بين حافتين أو أكثر .
- بِلوب (blobs) : هي مجموعة من النقاط الضوئية المتصلة في الصورة و التي تتشارك خاصية ما كـلون واحد أو نسيج (texture) مميز.

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

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

كل من حسابات الميل لديه مقدار (magnitude) و الذي يقوم بحساب شدة الميل ، و إتجاه ( direction ) لشدة الميل . و كل من هاتين القيمتين يمكن حسابها بإستخدام كاشف سوبل. و الطريقة كالأتي:
أولاً : نستخدم كاشف سوبل لحساب الميل في إتجاهي x و y بشكل منفصل. و نرمز لهم بـ gx و gy حيث g ترمز للميل

ثانياً : نحسب قيمة المقدار و الإتجاه من هاتين القيمتين ، وذلك عن طريق تحويل هذه القيم من نظام الإحداثيات الديكاَرتية xy في فضاء الصور إلى نظام الإحداثيات القطبية بحيث ρ تمثل المقدار و Θ الإتجاه .
عند أي نقطة يمكن التفكير في gx و gy على أنهم قيمة طول ضلعي مثلث الميل بحيث gx تمثل طول الضلع السفلي بينما gy تمثل طول الضلع الأيمن.
و المقدار ρ في هذه الحالة هو الوتر لهذا المثلث أو يمكن حسابه بإيجاد قيمة الجذر التربيعي لحاصل جمع مربع gx و gy .
أما الإتجاه Θ فيحسب عن طريق إيجاد ظل الزاوية

و الصورة الناتجة عن هذا ستكون بهذا الشكل

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

التأكل و التمدد :
التأكل (erosion ) و التمدد ( dilation ) يعتبر من العمليات الشكلية (morphological operation ) . و يتم تطبيقهم غالباً على الصور الثنائية (binary image) و هي الصور التي تحتوي على لونين فقط الأبيض و الأسود . التمدد يقوم بتكبير المناطق البيضاء في الصورة عن طريق إضافة نقاط ضوئية للحواف في تلك الصورة أما التأكل فيقوم بالعكس فهو يزيل النقاط الضوئية حول حدود الجسم و تصغير حجمه.
في العادة هاتين العمليتين يتم تنفيذهما على التوالي لتحسين بعض الخصائص المهمة في الصورة .

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

تجزئة الصورة ( Image Segmentation )
الأن وقد تعرفنا على بعض أنواع الخصائص في الصور ، حان الوقت لننظر في طريقة جمع أجزاء مختلفة في الصورة بواسطة إستخدام هذه الخصائص ، جمع أو تقسيم الصور يعرف بــ تجزئة الصورة .
الهدف الأساسي من عملية التجزئة هو فصل و تجزئة الصورة إلى مناطق ذات خواص متجانسة لإبراز الأجسام المهمة في الصورة .

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

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

طريقة عمل نموذج التجميع المتوسط كا (k-mean clusting)
يعتبر نموذج التجميع المتوسط كا على أنه من تقنيات التعلم غير الموجه ( unsupervised learning) مما يعني أننا لسنا بحاجة لبيانات مُعلمة (labeled data) لإستخدام هذا النموذج مما يعني أن هذا النموذج يقوم تلقائيا بالبحث و إكتشاف الأنماط المتشابه في مجموهة البيانات المدخله له. وكل ما هو مطلوب منا هو تحديد عدد المجموعات و التي يرمز له بالرمز K و في الصورة السابقة قمنا بإختيار K=2 . و إذا قمنا بزيادة ذلك سينتج لنا صور مجزأة لألوان أكثر

نحن نعلم بأن لكل صورة قنوات ألوان ( الأخضر و الأحمر و الأزرق ) ، ولنفترض بأننا طلبنا من نموذج التجميع المتوسط كا أن يقوم بجمع الصورة في ثلاثة ألوان أي k=3 ،
أولاً : ستنظر الخوارزمية إلى قيم النقاط الضوئية و تحدد ثلاثة نقاط عشوائية تقسم المجموعات الثلاثة . و لنطلق على هذه النقاط المركز أ ، والمركز ب ، والمركز ج ،
ثانياً : ستقوم الخوارزمية بتعيين قيم النقاط الضوئية إلى المركز الأقرب لها
ثالثاً : تقوم الخوارزمية بأخذ متوسط القيمة ( mean ) لكل قيم قنوات اللون (rpg value) في كل مجموعة ، وهذه القيمة المتوسطة تصبح القيمة الجديدة لكل مركز. وهذا التحديث ينتج عنه تكون مجموعات جديدة نسبة للقيمة الجديدة لكل مركز.
رابعا: ويتكرر هذا الأمر حتى نصل إلى نقطة التقارب ( convergence ) وهذه النقطة نحن من يحدد معاييرها ، وقد تكون مبنية على عدد عمليات التحديث كمثال 10 أو على قيمة تحرك نقطة المركز بعد كل عملية كمثال إذا ما تحركت نقطة المركز بقية صغيرة جدا فلنقل نقطة ضوئية فبالتالي سنقول بأننا وصلنا لنقطة التقارب و يكتمل النموذج .

و يمكنكم تجريب ذلك من خلال الرابط في الأسفل حيث يصور كيفية عمل خوارمية التحديث كا
https://www.naftaliharris.com/blog/visualizing-k-means-clustering
و بهذا نكون قد وصلنا إلى نهاية هذه المقالة .
بقدوركم تجريب كل ما تحدثنا عنه هنا من خلال منصة غوغل كولاب (google colab)
رابط الدفتر :
أو من خلال غيتهاب :
إضافة تعليق