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

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

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

متجهتي السمة هاتين تمثلان شكلين مختلفين ، لكن للقيام بالتعرف على الدائرة أو شبه المنحرف بشكل دقيق بإختلاف حجميهما أو زاوية رؤيتهما فيترتب على متجهات السمة أن تكون قادرة على إكتشاف و تمييز هذه الأشكال حتى ولو وجد بعض التشوه فيها . وهذا هو محور حديثنا في هذا المقال .
خوارمية أورب :
وجود خوارزمية للتعرف على الأجسام بشكل سريع هو أمر مهم في العديد من تطبيقات التبصير الحاسوبي مثال الواقع المعزز أو الروبوتات و سيارات القيادة الذاتية مثل هذه التطبيقات تحتاج للإستجابة للفيديو المدخل ضمن الزمن الحقيقي (Real time) و لذلك الوقت مهم.
و هنا يأتي دور خوارزمية أورب (ORB algorithm) تستخدم هذه الخوارزمية للحصول بسرعة على متجهات السمة لنقاط ذات أهمية في الصورة ومن ثم يتم إستخدام متجهات السمة هذه في التعرف على الأجسام في الصورة
طريقة عمل خوارزمية أورب
أورب ترمز إلى كاشف فاست الموجه و واصف بريف المدور ( Orb: Oriented Fast and Rotated Brief.)
فاست هي خوارزمية لإكتشاف السمات أما بريف فهي خوارزمية لوصف و صناعة المتجهات كاشفة الخواص
أورب تبدأ بإيجاد المناطق المهمة في الصورة و المسمية بالنقاط الجوهرية (key points) بشكل عام يمكن التفكير في النقاط الجوهرية على أنها مناطق صغيرة في الصورة لها صفات مميزة ، كمثال الزوايا و التي يحدث عندها تغيير حاد في إضاءة النقاط الضوئية
و هنا مثال لمجموعه من النقاط الجوهرية التي قام أورب بتوليدها لصورة هذه الكديسه

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

أورب ليس سريع فحسب لكنه لا يتأثر بالضوضاء و الإضاءة و التحولات الصورية كالدوران.
خوارزميات فاست (FAST):
الخطوة الأولى لكاشف السِمات أورب تكمن في إيجاد النقاط الجوهرية في الصورة وهذا يتم عمله بواسطة خوارزميات فاست
وفاست تعني كشف السمات المعتمدة على إختبار الأجزاء المسرع (FAST : Features from Accelerated Segments Test) وتقوم فاست بإختيار النقاط الجوهرية عن طريق مقارنة درجات السطوع في منطقة النقاط الضوئية المعطاة.
لنفترص أن لدينا نقطة ضوئية نرمز لها بـ P فإن فاست تقارن سطوع p مع حزمة مكونة من 16 نقطة ضوئيه تقع في محيط الدائرة الصغيرة حول P وكل نقطة ضوئية في الدائره يتم ترتيبها إلى ثلاثة أصناف ،
- الصنف الأول: أفتح من p
- الصنف الثاني : أغمق من p
- الصنف الثالث : في نفس درجة P
و سنشير لسطوع النقطة الضوئيه بـ Ip و الذي يمكن التفكير فيه كشدة سطوع النقطة p (intensity of P)
لذلك إذا كان سطوع النقطة الضوئية مساوي لـ Ip ، إذا للعتبة المفترضة h فإن النقاط الضوئية الأفتح ستكون النقاط التي درجة سطوعها تتجاوز Ip+h و النقاط الضوئية الأغمق هي النقاط التي يقل نسبة سطوعها عن Ip-h . و النقاط الضوئية المشابه سيكون لها قيم تقع ما بين هذه القيم

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

لكن ما نوع المعلومات التي توفره لنا هذه النقاط ؟ ما المغزئ من مقارنة نسبة السطوع بين النقاط الضوئية المحيطة ؟
للجواب عن هذا فللنظر للنقاط الجوهرية التي وجدها فاست في صورة هذه البسينة.

هنالك نقاط جوهريه على حافة العين و هناك مجموعة من النقاط الجوهريه على حافة الأنف. كما نرى فالنقاط جوهريه موجوده في مناطق يوجد فيها تغيير في شدة الألوان ، في الغالب مناطق كهذه تحدد حافة من نوع ما. كمثال كف البسة
الحواف هناك تمثل حدود القطوسة و حدود عناصر وجهها و لهذا فإن هذه النقاط الجوهريه تمنحنا طريقة للتعرف على القطوة على عكس أي جسم أخر في الصورة لذلك النقاط جوهريه المحدده بواسطة فاست تمنحنا معلومات عن موضع الحواف التي توصف الجسم في الصورة .
ولكن من المهم أن ننوه أن هذه النقاط تعطي موقع الحواف في الصورة و لا تعطينا أي معلومات عن إتجاهها أو شدة التغيير في اللون.
الأن و قد عرفنا كيف بإمكان اورب إستخدام فاست لتحديد أماكن المناطق المميزة في الصورة فللنظر كيف تستخدم أورب خوارزمية بريف لتحول هذه النقاط إلى متجهات السمة (feature vectors).
خوارزمية بريف (BRIEF algorithm)
الجزء الثاني من خوارزمية أورب هو أخذ النقاط الجوهرية المكتشفة من قبل خوارزمية فاست و تحويلها إلى مُتجهات السمة و التي سويا بوسعها وصف جسم ما . و لإنشاء مُتجهات السمة فأورب يستخدم خوارزمية بريف و بريف تعني السمات الثنائية النشيطة المستقله الأوليه أو السمات الثنائية المستقلة البسيطه (BRIEF : binary robust independent elementary features )
كما تعرفنا سابقاً فمتجة السمة الثنائية تعرف أيضاً بالواصف الثنائي (binary descriptor) و هي مُتجه سمة تحتوي فقط على أحاد و أصفار

في بريف فإن كل نقطة جوهرية يتم وصفها بمُتجه سمة ثتائية لديها 128 إلى 512 بت تحتوي فقط على أحاد و أصفار
![Binary
Ⅵ=[01011100100110...]
&은CIO心](https://1.bp.blogspot.com/-tzNqFiISZgI/XezhBb-YT0I/AAAAAAAAc-c/zN5ioy_i4ogSvBdTYOmmUyKV6G998NGvgCLcBGAsYHQ/s1600/%25D8%25AE%25D9%2588%25D8%25A7%25D8%25B1%25D8%25B2%25D9%2585%25D9%258A%25D8%25A9%2B%25D8%25A8%25D8%25B1%25D9%258A%25D9%2581.png)
للتذكير فالبت هو إختصار للعدد الثنائي و كل بت يمكن أن يحمل قيمة ثنائية واحدة أما واحد أو صفر وسلسة البت (bit string) هي مجموعة من البت ، وهنا نرى مثال مجموعة من سلسة البت (جدول في المقال )
السلسة (string) | القيمة |
1-بت | 0 |
2-بت | 01 |
3-بت | 010 |
4-بت | 0111 |
و للعلم فأن الحواسيب تشتغل بالثنائيات أو لغة الألة و لذلك فإن الأفضلية الكبيرة للإستخدام مُتجهات السمة الثنائية هي في أنها يمكن تخزينها في الذاكرة بكفاءة عالية و حسابها بسرعة و هذه الخصائص تجعل بريف ليس سريعا فحسب ( السرعه أمر مهم في برامج الزمن الحقيقي) لكنها تُمكن بريف من أن تعمل على أجهزة بإمكانية حسابية محدودة كمثال الهواتف الذكية
كيف يقوم بريف بإنشاء هذه الواصفات الثتائية لكل نقطة ؟
أولا : خوازميات بريف تبدأ بتنعيم الصورة بإستخدام التنعيم الغاوسي في سبيل منع الواصف من أن يكون حساس فوق اللازم للضوضاء عالية التردد

ثانياً : لكل نقطة جوهرية مُعطاة ، كمثال الموجوده على كف القطة ، بريف يختار زوج عشوائي من النقاط الضوئية داخل المنطقة المجاروة للنقطة الجوهرية المنطقة المجاورة للنقطة الجوهرية تعرف بالحزمه (patch) و هي منطقة مربعة لها عرض و إرتفاع محدد مسبقاً .
- النقطة الضوئية الأولى للزوج العشوائي تم إختيارها من التوزيع الغاوسي المتمركز حول النقطة الجوهرية بالإستعانه كذلك بالإنحراف القياسي ( standard deviation) أو إنتشار السيغما (spread of Sigma)
- النقطة الضوئية الثانية في الزوج العشوائي تم إختيارها من التوزيع الغاوسي المتمركز حول النقطة النقطة الضوئية الأولى مع نصف الإنحراف القياسي أو إنتشار السيغما مقسم على 2 و قد أظهرت النتائج أن أن هذا الإختيار للتوزيع لغاوس يحسن مقدار مطابفة السمات
ثالثا: يقوم بريف ببناء الواصف الثنائي للنقطة الجوهرية عن طريق مطابقة سطوع النقطتين الضوئيتين كا الأتي :
- إذا كانت النقطة الضوئية الأولى أسطع من الثانية فسيتم تعيين قيمة البت الأول في الواصف بـ 1 .
- أما إذا كانت النقطة الضوئية الثانيه أسطع من الأولى فسيتم تعيين قيمة البت الأول في الواصف بـ 0 .
في هذا المثال نرى أن النقطة الضوئية الثانية هي أسطع من الأولى لذلك نعين القيمة صفر للبت الأول في متجة السمة البت الأول في متجه السمة يمثل الزوج العشوائي الأول للنفطة الجوهرية

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

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

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

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

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

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

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

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