بافوني يحل معضلة عمق الروبوتات باختزال مطابقة الصور إلى بعد واحد

Stanford AA274A Principles of Robotic Autonomy | Autumn 2019 | Stereo Vision — Stanford Online

Stanford Online

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

AI-assisted summary of Stanford AA274A Principles of Robotic Autonomy | Autumn 2019 | Stereo Vision — original source. Check the original for full context.

Source published:

Key ideas

  • قيد الخط القطبي (Epipolar Constraint) يختصر عملية البحث عن النقاط المتطابقة في الرؤية المجسمة من فضاء بحث ثنائي الأبعاد عبر كامل الصورة إلى مسار خطي أحادي البعد. (2:00)
  • المصفوفة الأساسية (Fundamental Matrix) ترمز لجميع العلاقات الهندسية بين كاميرتين بمصفوفة شاذة ذات رتبة 2 يمكن تقديرها باستخدام ثمانية أزواج من النقاط المتطابقة على الأقل عبر خوارزمية النقاط الثماني. (18:17)
  • تسوية الصور (Rectification) تحول الخطوط القطبية المائلة إلى خطوط أفقية موازية لصفوف البكسلات، مما يجعل البحث عن التباين عملية سريعة تجري عبر صف واحد. (27:48)
  • تقنية الهيكل من الحركة (SfM) تعاني من غموض مقياس المشهد المطلق عند استخدام كاميرا أحادية، وتتطلب خوارزميات مثل تعديل الحزمة (Bundle Adjustment) لتقليص خطأ إعادة الإسقاط. (42:48)

Detailed notes

## Background نُشرت هذه المحاضرة بواسطة قناة Stanford Online على منصة يوتيوب في 16 أكتوبر 2026 ضمن مساق مبادئ استقلالية الروبوتات (AA274A) لخريف 2019. وتوضح تفاصيل الصفحة أن المحاضرة العاشرة يقدمها البروفيسور ماركو بافوني، وتركز على موضوع الرؤية المجسمة (Stereo Vision) وتطبيقاتها في استعادة البنية ثلاثية الأبعاد.

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

## Atmosphere & style تسود المحاضرة أجواء أكاديمية تفاعلية ودقيقة، حيث يمتزج الشرح الرياضي الصارم بالحوار المفتوح مع تساؤلات الطلاب الاستفسارية والذكية. ويتميز أسلوب الإلقاء بالهدوء والوضوح والتدرج المفاهيمي، مما يبعث شعوراً بحل أحجية هندسية معقدة عبر تفكيك معضلات مثل 'الدجاجة والبيضة' في الرؤية الحاسوبية. ويضفي الاستشهاد بأمثلة واقعية من استكشاف الفضاء وروبوتات المريخ حماساً علمياً ملموساً يربط النظريات المجردة بمهام الاستقلالية الروبوتية الميدانية.

## Bulletin - [02:00](https://www.youtube.com/watch?v=idD08N4rgJU&t=120s) قيد الخط القطبي (Epipolar Constraint) يختصر عملية البحث عن النقاط المتطابقة في الرؤية المجسمة من فضاء بحث ثنائي الأبعاد عبر كامل الصورة إلى مسار خطي أحادي البعد. - [18:17](https://www.youtube.com/watch?v=idD08N4rgJU&t=1097s) المصفوفة الأساسية (Fundamental Matrix) ترمز لجميع العلاقات الهندسية بين كاميرتين بمصفوفة شاذة ذات رتبة 2 يمكن تقديرها باستخدام ثمانية أزواج من النقاط المتطابقة على الأقل عبر خوارزمية النقاط الثماني. - [27:48](https://www.youtube.com/watch?v=idD08N4rgJU&t=1668s) تسوية الصور (Rectification) تحول الخطوط القطبية المائلة إلى خطوط أفقية موازية لصفوف البكسلات، مما يجعل البحث عن التباين عملية سريعة تجري عبر صف واحد. - [42:48](https://www.youtube.com/watch?v=idD08N4rgJU&t=2568s) تقنية الهيكل من الحركة (SfM) تعاني من غموض مقياس المشهد المطلق عند استخدام كاميرا أحادية، وتتطلب خوارزميات مثل تعديل الحزمة (Bundle Adjustment) لتقليص خطأ إعادة الإسقاط.

## Key takeaways - [00:05](https://www.youtube.com/watch?v=idD08N4rgJU&t=5s) استعادة البنية ثلاثية الأبعاد للعالم مستحيلة بالاعتماد على صورة واحدة فقط نتيجة فقدان معلومات العمق في الإسقاط المنظوري. - [00:05](https://www.youtube.com/watch?v=idD08N4rgJU&t=5s) تتمثل معضلة التطابق (Correspondence Problem) في تحديد ما إذا كانت نقطتان في صورتين مختلفتين تمثلان النقطة الفيزيائية ذاتها في الفضاء ثلاثي الأبعاد. - [02:00](https://www.youtube.com/watch?v=idD08N4rgJU&t=120s) المستوى القطبي يُعرف بمركزي الكاميرتين والنقطة ثلاثية الأبعاد، ويتقاطع مع مستويي الصورتين لتشكيل الخطوط القطبية التي تنطلق من الأقطاب. - [09:06](https://www.youtube.com/watch?v=idD08N4rgJU&t=546s) الصيغة الجبرية لقيد الهندسة القطبية تُعبر عن شرط وقوع المتجهات في مستوى واحد عبر المعادلة p^T F p' = 0. - [11:36](https://www.youtube.com/watch?v=idD08N4rgJU&t=696s) المصفوفة الأساسية F مصفوفة شاذة (محددها صفر وذات فضاء صفري غير فارغ) لأن إسقاط القطب ذاته ينكمش إلى متجه صفري. - [15:43](https://www.youtube.com/watch?v=idD08N4rgJU&t=943s) استخدام المصفوفة الأساسية يتجاوز معضلة 'الدجاجة والبيضة' عبر تحديد الخط القطبي في الصورة الثانية دون الحاجة لمعرفة العمق ثلاثي الأبعاد للنقطة أولاً. - [18:17](https://www.youtube.com/watch?v=idD08N4rgJU&t=1097s) تُطبّق خوارزمية النقاط الثماني تقنية تحليل القيمة المفردة (SVD) لفرض شرط الرتبة 2 قسراً على المصفوفة الأساسية وضمان شذوذها الرياضي. - [27:48](https://www.youtube.com/watch?v=idD08N4rgJU&t=1668s) تسوية وتصحيح الصور المائلة يلغي الدوران النسبي ويجعل مستويات العرض متوازية، مما يقصر مسار البحث على صف البكسل الأفقي المقابل. - [30:59](https://www.youtube.com/watch?v=idD08N4rgJU&t=1859s) تتميز الطرق المعتمدة على المساحة بإنتاج خرائط عمق كثيفة ولكنها تفشل في المناطق الخالية من الملمس، بينما الطرق المعتمدة على المعالم (مثل SIFT و ORB) أكثر صلابة لكنها تنتج خرائط متناثرة. - [35:00](https://www.youtube.com/watch?v=idD08N4rgJU&t=2100s) التباين (Disparity) يتناسب طردياً مع طول خط الأساس بين الكاميرتين وعكسياً مع عمق النقطة المقاسة في الفضاء ثلاثي الأبعاد. - [36:38](https://www.youtube.com/watch?v=idD08N4rgJU&t=2198s) خط الأساس الكبير يحسن دقة قياس النقاط البعيدة لكنه يصعّب المطابقة ويقلص التداخل البصري، في حين يسهل خط الأساس الصغير المطابقة على حساب تفاقم أخطاء العمق. - [38:58](https://www.youtube.com/watch?v=idD08N4rgJU&t=2338s) المناطق السوداء المفقودة في خريطة التباين تنتج عن النقاط الخارجة عن زاوية الرؤية أو ظاهرة الحجب (Occlusion) خلف أجسام أمامية. - [40:45](https://www.youtube.com/watch?v=idD08N4rgJU&t=2445s) تقنية الهيكل من الحركة (SfM) تهدف إلى تقدير الهيكل ثلاثي الأبعاد وتتبع مسار الكاميرا غير المعروف في آن واحد باستخدام كاميرا متحركة واحدة. - [42:48](https://www.youtube.com/watch?v=idD08N4rgJU&t=2568s) يستحيل تقدير المقياس المطلق للأجسام في SfM بكاميرا أحادية دون مرجع خارجي، حيث تتطابق الإسقاطات المنظورية للأجسام الكبيرة البعيدة والصغيرة القريبة. - [45:21](https://www.youtube.com/watch?v=idD08N4rgJU&t=2721s) تعديل الحزمة (Bundle Adjustment) يمثل مسألة تحسين غير خطية أساسية لتقليص أخطاء إعادة الإسقاط البصري وضبط حزم الأشعة. - [45:21](https://www.youtube.com/watch?v=idD08N4rgJU&t=2721s) قياس المسافة البصري (Visual Odometry) يستغل تتبع معالم الصخور والميزات السطحية لتقدير الحركة اللحظية الذاتية لمركبات ناسا على سطح المريخ.

## Detailed walkthrough ### [00:05](https://www.youtube.com/watch?v=idD08N4rgJU&t=5s) مقدمة في الرؤية المجسمة ومشكلة التطابق

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

تتمثل العقبة الأساسية في الرؤية المجسمة في ما يُعرف بـ "مشكلة المراسلة" أو "مشكلة التطابق" (Correspondence Problem). يطرح المحاضر تساؤلاً جوهرياً يصف هذا التحدي بدقة: “بافتراض وجود الملاحظتين P و P prime في الكاميرا الأولى والثانية على التوالي، كيف نعرف أن هذه الملاحظات تتوافق مع نفس النقطة ثلاثية الأبعاد P الكبيرة؟” أو بعبارة أخرى، كيف نتأكد من أنهما تمثلان النقطة الفيزيائية ذاتها في الفضاء وليستا نقطتين مختلفتين في المشهد. ولحل هذا اللبس وتسهيل خطوة المطابقة الأولى، يعتمد المجال على مجموعة من القيود الهندسية والفيزيائية، مثل قيد التشابه (Similarity Constraint)، وقيد الاستمرارية (Continuity Constraint)، والأهم من ذلك كله: قيد الخط القطبي (Epipolar Constraint). بديهياً، عند تثبيت كاميرتين للنظر إلى المشهد ذاته، فإن أي بكسل يُرصد في الكاميرا الأولى يجب أن يظهر في الكاميرا الأخرى على طول خط محدد هندسياً، وتعتبر مطابقة أزواج البكسلات المحصورة على هذا المسار إحدى الركائز التقنية الأساسية لتوليد عمق ثلاثي الأبعاد من صور مسطحة.

```mermaid flowchart TD accTitle: بنية الرؤية المجسمة ومشكلة التطابق accDescr: يوضح المخطط كيفية التقاط نقطة ثلاثية الأبعاد بواسطة كاميرتين، ثم مطابقتها تحت القيود الهندسية لإعادة بناء العمق. subgraph World["الفضاء ثلاثي الأبعاد"] P["النقطة ثلاثية الأبعاد P"] end subgraph Cameras["التقاط الصور بالكاميرات"] C1["الكاميرا الأولى O / المستوي pi\n(النقطة p)"] C2["الكاميرا الثانية O' / المستوي pi'\n(النقطة p')"] end subgraph Processing["معالجة الرؤية المجسمة"] Corr["مشكلة التطابق (Correspondence)\n(استخدام قيد الخط القطبي)"] Recon["إعادة البناء ثلاثي الأبعاد"] end P --> C1 P --> C2 C1 --> Corr C2 --> Corr Corr --> Recon ```

[02:00](https://www.youtube.com/watch?v=idD08N4rgJU&t=120s) الهندسة القطبية والمصطلحات الأساسية

يشرح المحاضر الرسم البياني التأسيسي الذي سيعتمد عليه كامل مسار المحاضرة، وهو النموذج الهندسي القياسي لكاميرتين ذواتي ثقب (Pinhole Cameras). في هذا الإعداد، يُرمز لمركزي الكاميرتين بالنقطتين $O$ و $O'$، حيث تقعان خلف مستويي الصورتين $\pi$ و $\pi'$ على مسافة البعد البؤري. توجد النقطة الفيزيائية $P$ أمام الكاميرات في الفضاء ثلاثي الأبعاد، وتُسقط صورتها على المستوي الأيسر $\pi$ كبكسل يُدعى $p$، بينما تُسقط على المستوي الأيمن $\pi'$ كبكسل يُدعى $p'$. يُطلق على الخط المستقيم الواصل بين مركزي الكاميرتين $O$ و $O'$ اسم "خط الأساس" (Baseline). يقطع خط الأساس هذا مستويي الصورتين (أو امتدادهما المستوي)، ونقطة تقاطعه مع كل مستوٍ تُسمى "القطب" (Epipole)؛ بحيث يكون $e$ هو قطب الصورة اليسرى، و $e'$ هو قطب الصورة اليمنى.

ينتقل المحاضر بعد ذلك إلى تعريف "المستوى القطبي" (Epipolar Plane) باعتباره المستوى الذي تُشكّله النقاط الثلاث: مركزا الكاميرتين $O$ و $O'$ والنقطة المشاهدة $P$. عندما يتقاطع هذا المستوى القطبي مع مستويي الصورتين، فإنه يشكل خطاً في كل منهما يمتد من القطب إلى نقطة إسقاط الصورة، ويُسمى هذا الخط "الخط القطبي" (Epipolar Line). وبما أن النقطة ثلاثية الأبعاد $P$ تقع على المستوى القطبي بحكم التعريف، فإن صورتها في الكاميرا الأخرى يجب بالضرورة أن تقع على الخط القطبي المقابل. تكمن الفائدة العملية الحاسمة لهذا القيد في تبسيط خوارزميات المعالجة الحاسوبية؛ إذ يوضح المحاضر جوهر هذه الميزة قائلاً: “وبذلك يقلص مساحة البحث لدينا من مساحة بحث ثنائية الأبعاد إلى مساحة أحادية البعد فقط، وهو أسرع بكثير.”

- **مستويا الصورة ($\pi, \pi'$):** المستويان الحاملان للبكسلات في الكاميرتين اليسرى واليمنى. - **مراكِز الكاميرات ($O, O'$):** النقطتان البؤريتان للكاميرتين ذواتي الثقب. - **خط الأساس (Baseline):** الخط المستقيم الواصل بين $O$ و $O'$. - **الأقطاب ($e, e'$):** نقاط تقاطع خط الأساس مع مستويي الإسقاط. - **المستوى القطبي:** المستوي المعرف بالنقاط الثلاث $O$ و $O'$ و $P$. - **الخط القطبي ($l, l'$):** ناتج تقاطع المستوي القطبي مع مستوي الصورة، ويمتد دوماً من القطب ويمر بنقطة الإسقاط.

[05:16](https://www.youtube.com/watch?v=idD08N4rgJU&t=316s) حوار ونقاش حول تحديد الخط القطبي ونقاط التطابق

يفتح المحاضر باب الأسئلة، فيبادر أحد الطلاب بالسؤال عما إذا كانت إحدى الكاميرتين متقدمة أو متأخرة عن الأخرى وما إذا كان خط الأساس يبقى صالحاً في تلك الحالة. يؤكد المحاضر أن هذا التوصيف يمثل الحالة العامة تماماً؛ فحتى لو كانت إحدى الكاميرتين متراجعة في العمق أو مائلة بزاوية معينة، يظل خط الأساس هو الرابط بينهما بغض النظر عن اتجاهاتهما أو إزاحتهما. وهنا يتدخل طالب آخر بطرح إشكال منطقي ذكي: إذا كنا لا نعرف موقع النقطة المقابلة $p'$ في الصورة الثانية، فكيف يمكننا تحديد الخط القطبي $l'$ الذي يُفترض أن نبحث عنه؟ يرد المحاضر موضحاً أن البيانات المتاحة هي الصورتان ومعايير الإعداد الفيزيائي للكاميرات؛ فالنظام يعرف مسبقاً التحويل الهندسي بين الكاميرتين، ويشمل ذلك الانتقال المكاني (Translation) والدوران النسبي (Rotation)، لأن الكاميرات تكون مثبتة ومضبوطة مسبقاً بواسطة المهندس.

يتواصل الحوار والجدل داخل القاعة، حيث يسأل الطالب مجدداً بمزيد من الإلحاح حول التناقض الظاهري في المسألة: إذا كان الخط القطبي $l'$ يُعرَّف عبر النقطة $p'$، وفي نفس الوقت يُستخدم لإيجاد $p'$، فكيف يحل أحدهما الآخر في كلا الاتجاهين؟ يعقب الطالب معترضاً: “لكننا لا نعرف ما هو L شرطة المحدد باستخدام P شرطة، ومع ذلك فأنت تحاول إيجاد P شرطة باستخدام L شرطة. هذا في كلا الاتجاهين.” يبتسم المحاضر ويطمئن الطلاب بأن الشرح الحالي هو مجرد نظرة عامة رفيعة المستوى للإطار الهندسي، ويعدهم بالدخول في التفاصيل الرياضية الدقيقة التي ستفكك هذا الترابط وتوضح كيف أن معرفة النقطة $p$ في الصورة الأولى مع البنية الهندسية للكاميرتين تحدد مسار الخط $l'$ في الصورة الثانية دون الحاجة لمعرفة موقع $p'$ مسبقاً.

- **المعلومات المعروفة سلفاً في الرؤية المجسمة:** مواقع البكسلات في الصورتين، ومتجه الإزاحة (Translation) بين الكاميرتين، ومصفوفة الدوران النسبي (Rotation). - **التحدي المطروح من الطلاب:** معضلة الاستدعاء الذاتي أو التبعية الدائرية بين إيجاد الخط القطبي وإيجاد البكسل المطابق. - **مفهوم التطابق المحتمل لـ $p$:** البحث في مستوي الصورة الثانية عن بكسل $p'$ يعود إلى ذات النقطة الفيزيائية $P$ في العالم الخارجي.

[09:06](https://www.youtube.com/watch?v=idD08N4rgJU&t=546s) الاشتقاق الرياضي لقيد الهندسة القطبية

ينتقل المحاضر إلى الاشتقاق الرياضي لإثبات قيد الهندسة القطبية انطلاقاً من الهندسة الفراغية للمشهد. بناءً على التعريف الهندسي، تشترك المتجهات الثلاثة: خط الأساس بين الكاميرتين ($OO'$)، والمتجه من مركز الكاميرا الأولى إلى النقطة ($OP$ أو $Op$)، والمتجه من مركز الكاميرا الثانية إلى النقطة ($O'P'$ أو $O'p'$) في مستوى واحد هو المستوى القطبي (Coplanar). وبالتالي، فإن أي متجه يقع في هذا المستوى يجب أن يكون عمودياً تماماً على المتجه العمودي على المستوى. يمكن حساب المتجه العمودي على المستوى عبر أخذ حاصل الضرب الاتجاهي (Cross Product) لأي متجهين مستقلين يقعان داخله.

يشير المحاضر إلى حيلة جبرية بالغة الأهمية في معالجة الرؤية الحاسوبية، وهي إمكانية التعبير عن عملية الضرب الاتجاهي لمتجه كحاصل ضرب مصفوفي باستخدام مصفوفة متماثلة منحرفة (Skew-symmetric Matrix). يوضح المحاضر الغرض من هذه الصياغة قائلاً: “هذا أشبه بخدعة رياضية تجعل كتابة بعض الجبر المصفوفي لاحقاً أسهل ، ولكن كل ما في الأمر هو القول بأنه يمكنك كتابة الضرب الاتجاهي كحاصل ضرب مصفوفة في متجه أيضاً.” ومن خلال افتراض أن الإطار المرجعي العالمي يقع عند مركز الكاميرا الأولى ($O$)، وبعد بضع خطوات من التبسيط الجبري، يتبلور قيد الهندسة القطبية في معادلته الجبرية الشهيرة التي تربط إحداثيات البكسلين:

$$p^T F p' = 0$$

حيث تمثل $F$ مصفوفة جوهرية (تُعرف لاحقاً بالمصفوفة الأساسية Fundamental Matrix)، ويكون حاصل ضرب المتجه المنقول للبكسل في الصورة الأولى بمصفوفة الرؤية في متجه البكسل بالصورة الثانية مساوياً للصفر بدقة، وهو التعبير الجبري المكافئ لوقوع النقطتين والمتجهات في المستوي القطبي المشترك.

[11:36](https://www.youtube.com/watch?v=idD08N4rgJU&t=696s) تعريف المصفوفة الأساسية وخصائصها الهندسية

يبدأ المحاضر بتوضيح العلاقة الهندسية بين إحداثيات الكاميرتين، مبيّناً أن النقطة $p$ تمثل المتجه من مركز الكاميرا الأولى $O$ إلى النقطة المقابلة في الصورة، بينما $p'$ هو المتجه من نفس المركز $O$ إلى النقطة $p'$ وليس من $O'$. يُبرز هذا المنظور ضرورة أخذ التحويلات الهندسية الشاملة بين الكاميرتين بعين الاعتبار، والتي تتضمن مصفوفة الضرب الاتجاهي للمتجه بالإضافة إلى مصفوفات الدوران والإزاحة، وصولاً إلى دمج المعاملات الداخلية لكلتا الكاميرتين (Intrinsic Parameters) المعروفتين مسبقاً بفعل المعايرة. يُطلق على هذه المصفوفة الناتجة اسم "المصفوفة الأساسية" (Fundamental Matrix $F$). ويرجع سبب هذه التسمية إلى قدرتها الفائقة على احتواء كل المعلومات الهندسية بين صورتين لنفس المشهد ثلاثي الأبعاد دون الحاجة لمعرفة المشهد ذاته؛ إذ يقول المحاضر شارحاً أهميتها: “السبب في تسميتها بالأساسية هو أنه باستخدام هذه المصفوفة، يمكنك معرفة كل شيء تقريبًا عن صورتين لنفس المشهد.”

```mermaid flowchart LR accTitle: Fundamental Matrix Epipolar Mapping accDescr: Flowchart illustrating how points in one image map to epipolar lines in the other using the Fundamental Matrix. subgraph RightToLeft["Right Image to Left Image"] P_prime["Right Image Point (p')"] -->|"F * p'"| L_left["Left Epipolar Line (l)"] end subgraph LeftToRight["Left Image to Right Image"] P_left["Left Image Point (p)"] -->|"F^T * p"| L_right["Right Epipolar Line (l')"] end ```

يستعرض المحاضر الدور المحوري للمصفوفة الأساسية في توليد الخطوط القطبية (Epipolar lines)؛ فحين نملك $F$ ونقطة في الصورة اليمنى، يُحسب الخط القطبي المقابل لها في الصورة اليسرى بضرب المصفوفة في متجه تلك النقطة ($l = F p'$)، أو العكس عبر منقول المصفوفة ($l' = F^T p$). ويوضح تصحيحاً ورد في المحاضرة حول ما إذا كانت العملية تعتمد على منقول المعكوس (Inverse transpose)، مؤكداً تكافؤ الصياغتين هندسياً. وتكمن الميزة الرياضية الحاسمة في أن $F$ مصفوفة شاذة أو أحادية (Singular Matrix) وغير قابلة للعكس، والسبب الجوهري وراء ذلك هو أنه عند محاولة إيجاد الخط القطبي المقابل للقطب نفسه (Epipole)، تنكمش النتيجة إلى مجرد نقطة وينهار الخط الرياضي ليعطي صفراً، مما يثبت وجود فضاء صفري (Null space) للمصفوفة. ورغم احتوائها على تسعة عناصر لكونها مصفوفة $3 \times 3$، إلا أن درجات الحرية الفعلية المطلوبة لحسابها هي سبعة فقط نتيجة القيود الهندسية الإضافية.

- المتجه $p'$ معرّف بالنسبة لمركز الكاميرا الأولى $O$ لتوحيد المرجع الهندسي. - تُحسب المصفوفة الأساسية $F$ رياضياً بالاعتماد على مصفوفة الدوران $R$، متجه الإزاحة $T$، ومصفوفات المعايرة الداخلية للكاميرات. - خاصية الشذوذ: ضرب $F$ في القطب يعطي متجهاً صفرياً، مما يجعل محددها صفراً ($\det(F) = 0$). - عدد العناصر المستقلة اللازمة لتحديد المصفوفة فعلياً هو سبعة عناصر بسبب التدرج وشرط الرتبة.

---

[15:43](https://www.youtube.com/watch?v=idD08N4rgJU&t=943s) حل معضلة البحث والتطابق وتجاوز مشكلة "الدجاجة والبيضة"

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

ويصف المحاضر هذا الإنجاز بأنه تفادٍ عبقري لمشكلة "الدجاجة والبيضة" (Chicken-and-egg problem) التي تواجه استعادة الأبعاد الثلاثية. ففي الحسابات التقليدية، يُفترض أنك تحتاج النقطة ثلاثية الأبعاد $P$ لتحديد مستوى الإبيبولار، مما يوقعك في حلقة مفرغة إذا كنت تجهل عمق النقطة أصلاً. وتبرز قوة المصفوفة الأساسية في كونها غير مقيدة بإحداثيات الفضاء، حيث يلخص المحاضر جوهر هذه الخاصية بقوله: “نحن في الواقع لسنا بحاجة للعثور على النقطة ثلاثية الأبعاد لإيجاد خط الإبيبولار في الصورة الأخرى.” وهذا يتيح تحديد الخط أولاً، ثم استخراج النقطة المطابقة $p'$، تليها خطوة التثليث (Triangulation) لحساب الموضع الثلاثي الأبعاد $P$ بدقة وبشكل تدريجي سليم.

---

[18:17](https://www.youtube.com/watch?v=idD08N4rgJU&t=1097s) خوارزمية النقاط الثماني وفرض القيود الهندسية

يطرح المحاضر تساؤلاً جوهرياً حول كيفية حساب المصفوفة الأساسية عملياً عند امتلاك صورتين للمشهد نفسه (مثل صورتين للكولوسيوم في روما ملتقطتين من زاويتين مختلفتين عبر الإنترنت) دون أدنى معرفة مسبقة بالمعاملات الداخلية أو الخارجية للكاميرات. الإجابة هي إمكانية تقديرها تماماً بشرط توفر عدد كافٍ من النقاط المتطابقة في كلتا الصورتين، ويتم ذلك عبر ما يُعرف باسم "خوارزمية النقاط الثماني" (Eight-point algorithm). تعتمد الخوارزمية على حقيقة أن كل زوج من النقاط المتطابقة بالإحداثيات المتجانسة يفي بالقيد القطبي الصارم ($p^T F p' = 0$). وبكتابة إحداثيات البكسل كـ $(u, v, 1)$ و $(u', v', 1)$ مع ترك عناصر $F$ كرموز مجهولة، يتم تحويل القيد التربيعي إلى معادلة خطية مكافئة لكل زوج من النقاط.

```mermaid flowchart TD accTitle: Eight-Point Algorithm Workflow accDescr: Step-by-step workflow showing the linear solution and SVD rank enforcement for the Fundamental Matrix. subgraph LinearStage["Linear Estimation"] Points["8+ Point Correspondences"] --> BuildMatrix["Construct Matrix W"] BuildMatrix --> SolveLS["Solve Linear Least Squares (||f|| = 1)"] end subgraph CorrectionStage["Rank-2 Enforcement"] SolveLS --> RawF["Approximate Matrix F (Rank 3)"] RawF --> ApplySVD["Singular Value Decomposition (SVD)"] ApplySVD --> FinalF["Singular Matrix F (Rank 2)"] end ```

يتيح جمع ثمانية أزواج متقابلة تكوين نظام خطي يحدد قيم المصفوفة التسع بالكامل مع حسم الغموض المقياسي؛ إذ إن المصفوفة الأساسية تُعرَّف حتى عامل مقياس (Scale factor)، مما يبرر تسميتها بخوارزمية النقاط الثماني لأننا نحتاج لتحديد ثماني قيم ونقسم على العنصر الأخير أو نفرض أن معيار المتجه يساوي واحداً ($\|f\| = 1$). وإذا زاد عدد الأزواج عن ثمانية، تتحول المسألة فوراً إلى مسألة مربعات صغرى عادية يسهل حلها. ومع ذلك، فإن المصفوفة المحسوبة خطياً تفتقر لخاصية الشذوذ الهندسية (أي لا تكون ذات رتبة 2)، ولحل ذلك يُطبّق تحليل القيمة المفردة (SVD) كمسألة مربعات صغرى لمعيار فروبينيوس (Frobenius norm)، لتصفير القيمة المفردة الصغرى وضمان كون المصفوفة غير قابلة للعكس وتفي بشرط انعدام الأقطاب بدقة.

- تُبنى مصفوفة القياسات $W$ بحيث يمثل كل سطر فيها مساهمة زوج واحد من النقاط المتطابقة. - التوحيد القياسي (Normalization) يفرض أن معيار المتجه الذي يضم عناصر $F$ يساوي 1 للتخلص من غموض المقياس. - يُستخدم تحليل القيمة المفردة (SVD) لفرض رتبة المصفوفة (Rank 2) قسراً على المصفوفة التقريبية المستخرجة من المربعات الصغرى. - بعد استخراج $F$ المضبوطة، تصبح عملية المسح والبحث على امتداد الخطوط القطبية بين الصورتين مهيأة للتنفيذ العملي.

[23:40](https://www.youtube.com/watch?v=idD08N4rgJU&t=1420s) قيود المصفوفة الأساسية وتحديد التطابقات الأولية

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

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

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

فيما يخص سبب كون $F$ مصفوفة شاذة ذات فضاء صفري (Nullspace) غير فارغ، بيّن المحاضر: “يجب أن تكون $F$ شاذة لأن القطب يجب أن يرسم إلى صفر تحديداً.” فعند تمرير القطب للبحث عن الخط القطبي المقابل في الصورة الأخرى، لا يمكن الحصول على خط، بل النتيجة الرياضية المحتومة هي صفر؛ مما يعني بالضرورة امتلاك فضاء صفري غير فارغ، وبالتالي فهي مصفوفة غير قابلة للعكس جبرياً. وأرجأ المحاضر النقاش حول حساسية النظام لطول خط الأساس (Baseline) أو الدوران الشديد إلى شرائح لاحقة.

---

[27:48](https://www.youtube.com/watch?v=idD08N4rgJU&t=1668s) تسوية الصور وتصحيح الخطوط التقابلية

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

الحل الأمثل هندسياً هو العمل مع صور متوازية (Parallel stereo setup) لا توجد بينهما زوايا دوران، بل مجرد إزاحة أفقية نقية. في هذا الإعداد، تصبح الخطوط التقابلية أفقية تماماً ومطابقة لصفوف الصورة نفسها. يوضح المحاضر: “نحن نعلم أنه إذا كان لديك نقطة هنا، فأنت تعلم أن كل ما عليك فعله هو البحث على طول ذلك الصف المحدد من الصورة في الصورة الأخرى.” وهذا يختصر البحث ثنائي الأبعاد المعقد إلى بحث أحادي البعد على طول خط أفقي واحد، مما يسرّع العملية الحسابية بدرجة هائلة.

تطرق المحاضر إلى إمكانية تصحيح الكاميرات المائلة عامة الوضع (Image Rectification) عبر تحويل هندسي (Homography) يُطبَّق على إحدى الصورتين أو كلتيهما لجعل مستويي الصورتين متوازيين مع خط الأساس. ورغم أن هذا التحويل قد يتسبب في تشويه (Warping) طفيف للصورة، إلا أنه ثمن مقبول هندسياً. وأشار إلى أنه في التطبيقات الروبوتية العملية، يُفضّل المصممون دائماً تركيب الكاميرات جنباً إلى جنب بشكل متوازٍ فيزيائياً منذ البداية لتفادي هذه المعالجات الإضافية.

```mermaid flowchart LR accTitle: مراحل معالجة الرؤية المجسمة accDescr: يوضح الرسم تدفق العملية من الصور المائلة إلى التسوية ثم البحث في صف واحد وأخيراً التثليث ثلاثي الأبعاد.

subgraph Geometry["المعالجة الهندسية"] A["صور مائلة بكاميرات عامة"] --> B["تحويل التسوية (Rectification)"] B --> C["خطوط تقابلية أفقية متوازية"] end

subgraph Correspondence["مطابقة المعالم"] C --> D["بحث في صف واحد (1D Search)"] D --> E["حساب التباين (Disparity)"] end

subgraph Reconstruction["إعادة البناء"] E --> F["التثليث (Triangulation) والعمق ثلاثي الأبعاد"] end ```

---

[30:59](https://www.youtube.com/watch?v=idD08N4rgJU&t=1859s) استراتيجيات المراسلة: الطرق القائمة على المساحة مقابل المعالم

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

1. **الطرق المعتمدة على المساحة (Area-based methods):** تعتمد هذه الخوارزميات على أخذ رقعة بكسلات صغيرة (Image patch) حول نقطة ما في إحدى الصورتين والبحث عن الرقعة الأكثر شبهاً بها في الصورة المقابلة باستخدام مقاييس التشابه أو الارتباط البصري عبر نفس الصف الأفقي للصورة المصححة. ميزتها الأساسية أنها توفر خريطة تطابقات كثيفة للغاية (Dense) لأنها تغطي معظم سطح الصورة مستفيدة من سياق البكسلات المحيطة. لكن عيبها القاتل يظهر في المناطق الخالية من الملمس (Textureless regions)؛ حيث قال المحاضر كَمَثَلٍ واقعي: “مثل إذا أردت التقاط صورة لهذه السبورة وحاولت مطابقة صورتين لها، وهي تفتقر إلى الملمس والمعالم، فقد تفشل الطرق المعتمدة على المناطق.”

2. **الطرق المعتمدة على المعالم (Feature-based methods):** تقوم أولاً باستخراج نقاط بارزة وقوية داخل الصورة تتمتع بصلابة ومقاومة للتغيرات في الإضاءة، والمقياس (Scale)، والدوران. ضرب المحاضر أمثلة على أشهر هذه الخوارزميات المستخدمة تاريخياً: - خوارزمية SIFT. - خوارزمية SURF. - خوارزمية ORB.

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

---

[35:00](https://www.youtube.com/watch?v=idD08N4rgJU&t=2100s) التثليث الرياضي وحساب التباين والعمق

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

عرّف المحاضر مفهوم التباين (Disparity): - التباين هو الفرق في الإحداثي الأفقي بين موضع النقطة في الصورة الأولى وموضع نظيرتها في الصورة الثانية: $d = p_u - p'_u$. - من خلال تشابه المثلثات، يتبين أن التباين يتناسب عكسياً مع عمق النقطة $Z$ بالنسبة لمستوى الصورة. - يتناسب التباين طردياً مع طول خط الأساس $B$ (المسافة الفيزيائية بين بؤرتي الكاميرتين).

يختتم المحاضر هذا الجزء بالإشارة إلى أن هذه العلاقة تبيّن بوضوح سبب اختلاف أداء ودقة إعادة البناء ثلاثي الأبعاد باختلاف المسافة بين الكاميرتين؛ حيث تُستخدم الصيغة الرياضية لحساب العمق انطلاقاً من طول خط الأساس $B$، والبعد البؤري المعروف للكاميرا $f$، ومقدار التباين المحسوب.

- التباين يتناسب عكسياً مع المسافة: كلما كان الجسم أقرب للكاميرا كان التباين أكبر، وكلما كان أبعد اقترب التباين من الصفر. - خط الأساس الأكبر يمنح حساسية وتباين أعلى للأجسام البعيدة ولكنه يقلل من تداخل مجالي الرؤية بين الكاميرتين.

[36:38](https://www.youtube.com/watch?v=idD08N4rgJU&t=2198s) أثر حجم خط الأساس (Baseline) وتصحيح الصور

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

يطرح أحد الطلاب سؤالاً حول ما يحدث للبعد البؤري عند تصحيح الصورتين لجعل مستوياتهما متوازية، فيوضح المحاضر: > "عندما تقوم بهذا التحويل، ما تفعله في الواقع هو مجرد إصلاح الدوران بحيث تصبح متوازية."

حيث تظل نقطة الأصل ثابتة خلف مستوى الصورة ويقتصر التعديل على تدوير المستويات، مما يغير مصفوفة الدوران $R$ التي تحدد التوجيه النسبي بين الصورتين دون التأثير على بقية الخصائص الداخلية للكاميرا.

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

---

[38:58](https://www.youtube.com/watch?v=idD08N4rgJU&t=2338s) خرائط التباين ومشكلة الحجب (Occlusion)

يستعرض المحاضر ناتج عملية التثليث (Triangulation) لمجموعة كثيفة من النقاط المتطابقة، وهو ما يُعرف بـ "خريطة التباين" (Disparity Map)؛ حيث تُعرض كصورة ملونة تمثل درجات السطوع فيها المسافة النسبية، فتكون النقاط الأفتح لوناً أقرب إلى الكاميرا بينما تمثل النقاط الداكنة مسافات أبعد. ومن خلال حساب الفروقات في مواقع النقاط بين الصورتين بعد مطابقتها بكثافة، يتم استنتاج العمق وإعادة بناء المشهد ثلاثي الأبعاد.

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

```mermaid flowchart LR accTitle: Disparity Map and Occlusion Pipeline accDescr: Pipeline showing stereo matching, disparity calculation, depth estimation, and occlusion artifact handling.

subgraph Inputs["المدخلات"] I1["صورة الكاميرا اليسرى"] I2["صورة الكاميرا اليمنى"] end

subgraph Processing["المعالجة"] M["مطابقة النقاط الكثيفة"] D["حساب خريطة التباين"] Z["تثليث واستنتاج العمق"] end

subgraph Output["المخرجات والتحديات"] R["إعادة بناء ثلاثية الأبعاد"] O["مناطق سوداء (حجب / خارج الرؤية)"] end

I1 --> M I2 --> M M --> D D --> Z Z --> R M -.->|"فشل المطابقة"| O ```

---

[40:45](https://www.youtube.com/watch?v=idD08N4rgJU&t=2445s) الانتقال إلى "الهيكل من الحركة" (Structure from Motion)

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

في هذا الإطار، يُفترض وجود $M$ من مواضع الكاميرا مع تحويلات إسقاطية $M_k$ تشمل المعاملات الداخلية (كالطول البؤري والانحراف) والخارجية (الدوران والإزاحة)، والمطلوب هو استعادة المواقع ثلاثية الأبعاد للنقاط $P_j$ وحساب مصفوفات حركة الكاميرا غير المعروفة مسبقاً، خاصة عند تحريك الكاميرا يدوياً.

- المعاملات الداخلية تشمل البعد البؤري ومركز الصورة والانحراف. - المعاملات الخارجية تمثل الدوران والإزاحة الحركية للكاميرا عبر الزمن. - الهدف المزدوج لتقنية SfM: تقدير مواقع النقاط ثلاثية الأبعاد وتتبع مسار حركة الكاميرا في آن واحد.

---

[42:48](https://www.youtube.com/watch?v=idD08N4rgJU&t=2568s) غموض مقياس المشهد والحلول الجبرية في SfM

يشير المحاضر إلى قيود فيزيائية في تقنية الهيكل من الحركة باستخدام كاميرا أحادية، مؤكداً أنه يستحيل استعادة المقياس المطلق (Absolute Scale) للمشهد؛ فمكعب كبير مصور من مسافة بعيدة يعطي الإسقاط البصري والمنظوري ذاته لمكعب صغير مصور من مسافة قريبة، وبالتالي فإن إعادة البناء تكون صحيحة فقط حتى "تحويل تشابه" (Similarity Transformation) يتضمن الدوران والإزاحة ومقياساً نسبياً غير محدد.

يشرح المحاضر النهج الجبري لحل مشكلة SfM على مستوى عالٍ، والذي يعتمد على حساب "المصفوفة الأساسية" (Fundamental Matrix $F$) بين أزواج الصور باستخدام خوارزمية النقاط الثماني (8-point algorithm)، ومن ثم استخراج مصفوفات الكاميرا الإسقاطية لإجراء التثليث لكل زوج صوري متتابع وربط الإحداثيات العالمية ثلاثية الأبعاد للنقاط تباعاً.

> "إذن، الحجم الظاهري للأجسام يعتمد على مسافتها عن الكاميرا. لكن المشكلة هي أنه إذا كان لديك جسم يبعد ضعف المسافة، حسناً، سيبدو تماماً مثل شيء له نفس الحجم وأقرب بمرتين."

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

---

[45:21](https://www.youtube.com/watch?v=idD08N4rgJU&t=2721s) تعديل الحزمة (Bundle Adjustment) وقياس المسافة البصري على المريخ

يقدم المحاضر الأسلوب الأكثر دقة وشهرة في هذا المجال وهو "تعديل الحزمة" (Bundle Adjustment)، وهو أسلوب تحسين غير خطي يسعى إلى تقليل "خطأ إعادة الإسقاط" (Reprojection Error) — أي الفرق بين موقع النقطة ثلاثية الأبعاد بعد إسقاطها نظرياً في مستوى الصورة وبين موقعها المرصود فعلياً في البكسلات. ورغم كلفته الحسابية، فإنه يوفر نتائج فائقة الدقة من خلال ضبط مسارات حزم الأشعة الممتدة بين الكاميرات والنقاط.

يتحول النقاش إلى تطبيق عملي بالغ الأهمية في الروبوتات وهو "قياس المسافة البصري" (Visual Odometry)، الذي يكرر مبادئ SfM ثنائية العرض لتقدير مصفوفات الدوران والإزاحة ($R$ و $T$) بين الإطارات المتتابعة لمعرفة حركة الروبوت ومساره بدقة دون الحاجة بالضرورة لبناء خريطة كاملة. ويوجه المحاضر سؤالاً تفاعلياً للطلاب—خاصة من قسم هندسة الطيران والفضاء—حول صورة معروضة لخوارزمية قياس المسافة البصري، ليتبين أنها ملتقطة بواسطة مركبات وكالة ناسا الجوالة على سطح المريخ. وتتميز بيئة المريخ بأنها تشبه الصحاري المفتقرة للمعالم التي تصعّب مهام الرؤية، غير أن وجود صخور متناثرة يتيح استخلاص ميزات بصرية كثيفة تُستخدم لتتبع النقاط (كالنقاط الزرقاء الظاهرة من الإطار السابق) وتقدير حركة المركبة الفضائية ذاتياً.

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

[48:48](https://www.youtube.com/watch?v=idD08N4rgJU&t=2928s) تتبع حركة البكسلات والتمهيد للمحاضرة القادمة

يشرح المحاضر في ختام العرض التوضيحي كيفية تفسير حركة النقاط والبكسلات الناتجة عن تقدم المركبة للأمام بين إطار وآخر؛ حيث يُظهر التمثيل البصري انتقال البكسلات وتراجعها إلى الخلف بالنسبة لمجال الرؤية مع حركة المركبة. وخلال الشرح، يتوقف المحاضر للحظة لتصحيح التباس طفيف في دلالة الألوان المستخدمة لتمثيل المواقع السابقة والحالية، موضحاً بدقة: ”ربما اللون الأحمر هو حيث كانت، نعم. الأحمر هو حيث كانت من قبل، والأزرق هو حيث أصبحت الآن.“، مبيناً أن هذا التحول اللوني يجسد تماماً كيف تحركت البكسلات نحو الخلف أثناء تقدم المركبة.

يختتم المحاضر هذا الجزء بالإشارة إلى أن هذا يلخص النقاط الأساسية المتعلقة بموضوع إعادة البناء ثلاثي الأبعاد (3D reconstruction). بعد ذلك، يقدم لمحة تمهيدية عن موضوعات المحاضرة القادمة، مشيراً إلى أنها ستشهد تعمقاً أكبر في أساسيات وتقنيات رؤية الحاسوب (Computer Vision)، لا سيما العمليات التي تتعامل مع خصائص الصور ومعالجتها وتطبيق مرشحات وعمليات رياضية مختلفة عليها؛ مثل آليات تشويش وتنعيم الصور، وطرق كشف وتحديد الحواف (edge detection) داخل الإطارات.

- **حركة البكسلات والمركبة:** يوضح الرسم البياني حركة المركبة إلى الأمام وتراجع البكسلات المقابلة في الصورة إلى الخلف، حيث يمثل اللون الأحمر الموقع الأصلي السابق للبكسل، بينما يشير اللون الأزرق إلى موقعه الجديد. - **مواضيع المحاضرة القادمة:** دراسة متقدمة لمعالجة الصور تشمل تقنيات تشويش الصور (Image Blurring) وخوارزميات كشف الحواف (Edge Detection).

## Notable quotes > [15:43](https://www.youtube.com/watch?v=idD08N4rgJU&t=943s) نحن في الواقع لسنا بحاجة للعثور على النقطة ثلاثية الأبعاد لإيجاد خط الإبيبولار في الصورة الأخرى. — المحاضر

> [11:36](https://www.youtube.com/watch?v=idD08N4rgJU&t=696s) السبب في تسميتها بالأساسية هو أنه باستخدام هذه المصفوفة، يمكنك معرفة كل شيء تقريبًا عن صورتين لنفس المشهد. — المحاضر

> [23:40](https://www.youtube.com/watch?v=idD08N4rgJU&t=1420s) يجب أن تكون F شاذة لأن القطب يجب أن يرسم إلى صفر تحديداً. — المحاضر

## Mentioned ماركو بافوني, ناسا, الكولوسيوم, روما, المريخ, المصفوفة الأساسية, خوارزمية النقاط الثماني, خوارزمية SIFT, خوارزمية SURF, خوارزمية ORB, تعديل الحزمة, قياس المسافة البصري, الهيكل من الحركة, تحليل القيمة المفردة (SVD)

## Video description For more information about Stanford’s graduate programs, visit: https://online.stanford.edu/graduate-education

Lecture 10 — Stereo Vision

Note: This lecture was recorded as part of the 2019 edition of the course. Course content, structure, assignments, and other materials may have changed since this recording. The course links below point to the most recent edition and may therefore differ from what is presented in the video.

Read the companion textbook, Principles of Robot Autonomy, free online: https://porabook.com

Follow along with the latest course schedule and syllabus: https://stanfordasl.github.io/PoRA-I

Speaker: Prof. Marco Pavone

Dr. Marco Pavone is an Associate Professor of Aeronautics and Astronautics at Stanford University and a Senior Director of Autonomous Vehicle Research at NVIDIA. Prior to joining Stanford, he was a Research Technologist in the Robotics Section at NASA’s Jet Propulsion Laboratory. Dr. Pavone received his Ph.D. in Aeronautics and Astronautics from the Massachusetts Institute of Technology in 2010. His research focuses on the analysis, design, and control of autonomous systems, with particular emphasis on self-driving cars, autonomous aerospace vehicles, and future mobility systems. He has been recognized with numerous awards, including the Presidential Early Career Award for Scientists and Engineers from President Barack Obama, the Office of Naval Research Young Investigator Award, the NSF CAREER Award, the NASA Early Career Faculty Award, the IEEE Kiyo Tomiyasu Award, the CSS Award for Technical Excellence in Aerospace Control, and the Early-Career Spotlight Award from the Robotics Science and Systems Foundation.

Full playlist: https://www.youtube.com/playlist?list=PLR9iNyexfIkk

#StanfordOnline #RobotAutonomy #Robotics #PhysicalAI

[Source](https://www.youtube.com/watch?v=idD08N4rgJU)

中文简报

帕沃内通过将图像匹配降至一维解决机器人深度难题 基础矩阵使自主系统能够通过将像素匹配限制在由极线构成的一维线上,而非进行全局扫描,从而克服未知深度的难题。 本次讲座探讨了立体视觉的数学与几何基础,从分解匹配问题和对极几何约束开始,直至基础矩阵的构建以及八点算法的应用。课程讲解了用于加速计算搜索的图像立体校正技术,对比了基于区域与基于特征的方法以提取视差并通过三角测量估算深度。此外,讲座还拓展探讨了运动恢复结构(SfM)和光束法平差概念,并重点介绍了诸如NASA火星漫游车视觉里程计等重要的实际应用。 对极约束(Epipolar Constraint)将立体视觉中匹配点的搜索过程,从遍历整幅图像的二维搜索空间简化为一维线性路径。 (2:00) 基础矩阵(Fundamental Matrix)将两台相机之间的全部几何关系编码为一个秩为2的奇异矩阵,该矩阵可通过八点算法使用至少八对匹配点进行估计。 (18:17) 图像校正(Rectification)将倾斜的极线转换为与像素行平行的水平线,从而使视差搜索成为沿单一行快速进行的操作。 (27:48) 运动恢复结构(SfM)技术在使用单目相机时存在绝对场景尺度的模糊性,需要使用光束法平差(Bundle Adjustment)等算法来减少重投影误差。 (42:48)

Reading summary

تتناول هذه المحاضرة من جامعة ستانفورد مبادئ الرؤية المجسمة وتقنية الهيكل من الحركة، مبيّنةً كيف يمكن للقيود الهندسية التغلب على معضلة التطابق واستعادة العمق ثلاثي الأبعاد من صور ثنائية الأبعاد. الهندسة القطبية وحل معضلة التطابق (0:05) تنطلق الرؤية المجسمة من حقيقة استحالة استعادة العمق الكامل من صورة واحدة بسبب الإسقاط المنظوري، مما يفرض استخدام كاميرتين ومواجهة «مشكلة التطابق» لتحديد ما إذا كانت نقطتان في صورتين تعودان لنفس النقطة الفيزيائية. يحل قيد الهندسة القطبية هذه المسألة عبر ربط مركزي الكاميرتين والنقطة المرصودة في مستوى قطبي واحد يتقاطع مع مستويي الصورتين مشكلاً خطوطاً قطبية، مما يختصر البحث من مساحة ثنائية الأبعاد إلى مسار خطي أحادي البعد. المصفوفة الأساسية وخوارزمية النقاط الثماني تُصاغ العلاقة الهندسية جبرياً عبر المعادلة $p^T F p' = 0$ باستخدام المصفوفة الأساسية $F$ التي تدمج مصفوفات الدوران والإزاحة والمعاملات الداخلية للكاميرات. تتسم هذه المصفوفة بكونها شاذة من الرتبة 2 وذات سبع درجات حرية، حيث ينهار الخط القطبي إلى نقطة صفرية عند ضرب المصفوفة في القطب. تتيح خوارزمية النقاط الثماني تقدير مصفوفة $F$ دون معرفة مسبقة بمعايير الكاميرات بالاعتماد على ثمانية أزواج متطابقة على الأقل لحل نظام خطي بالمربعات الصغرى، ثم تطبيق تحليل القيمة المفردة (SVD) لتصفير القيمة المفردة الصغرى وضمان خاصية الشذوذ الهندسية. تسوية الصور ومقايضات استخراج العمق (27:48) لتجنب التعقيد الحسابي الناتج عن تتبع الخطوط القطبية المائلة، تُطبّق تسوية للصور عبر تحويلات هندسية لجعل مستويي الكاميرتين متوازيين، مما يحيل الخطوط القطبية إلى صفوف أفقية متطابقة. تُستخدم بعدها طرق معتمدة على المساحة لإنتاج خرائط عمق كثيفة، أو طرق معتمدة على المعالم مثل SIFT وSURF وORB لإنتاج خرائط متناثرة لكنها أكثر صموداً في البيئات الخالية من الملامح. يُحسب العمق الثلاثي الأبعاد عبر التثليث بالاعتماد على التباين، الذي يتناسب عكسياً مع المسافة وطردياً مع طول خط الأساس؛ إذ يحسن خط الأساس الكبير تمييز النقاط البعيدة مع التضحية بمجال الرؤية المشترك، بينما يسهل خط الأساس الصغير المطابقة مع زيادة أخطاء قياس العمق وتأثره بظواهر الحجب. الهيكل من الحركة وتطبيقات قياس المسافة (40:45) عند الانتقال إلى كاميرا أحادية متحركة، تعالج تقنية «الهيكل من الحركة» تقدير مواضع النقاط ثلاثية الأبعاد ومسار الكاميرا معاً في ظل غياب المعرفة المسبقة بالوضعيات النسبية، مع بقاء غموض المقياس المطلق قائماً بحيث لا تُستعاد الأبعاد إلا وفق تحويل تشابه نسبي. ولمعالجة هذه التقديرات بدقة، يُستخدم تعديل الحزمة لتقليص خطأ إعادة الإسقاط عبر مسألة تحسين غير خطية. تتجسد هذه المبادئ عملياً في قياس المسافة البصري لمركبات وكالة ناسا على المريخ، حيث تُتتبع المعالم الصخرية لتقدير حركة المركبة ذاتياً في البيئات الصحراوية المفتقرة للتضاريس البارزة. تخلص المحاضرة إلى أن دمج القيود الهندسية مثل المصفوفة الأساسية مع تقنيات التحسين كـتعديل الحزمة يمكّن من استعادة البنية المكانية وتتبع الحركة ذاتياً، ممهدةً للتعمق في معالجة الصور الرقمية مثل كشف الحواف في المحاضرة التالية.

精炼阅读摘要

斯坦福大学课程指出,单张图像由于透视投影固有的信息损失无法恢复完整三维几何结构,必须依靠对极几何与基础矩阵将立体重建中的二维匹配搜索降维至一维,并进而拓展至运动恢复结构与视觉里程计等自主系统核心任务中。 对极几何约束与降维搜索机制 (0:05) 双目视觉系统的本质包括从多个视点提取匹配特征以及基于重构几何进行三维定位,但其核心瓶颈在于解决对应问题,即确认两台相机中观测到的像素是否对应空间中同一个物理点。对极几何通过引入基线、极点以及由相机光心与三维点共同决定的对极平面,建立了几何约束机制。当对极平面与成像平面相交时,在两幅图像中分别生成对极线;由于三维点必然位于该平面上,其在另一幅图像中的对应点必须落在对应的对极线上,从而将原本复杂的二维全图搜索直接压缩为一维对极线搜索,大幅提升了计算效率。 基础矩阵代数特性与八点算法求解 (9:06) 两台相机光心与物方点构成的三向量共面特性,可经由反对称矩阵与外积形式推导为对极约束代数方程。由此定义出的基础矩阵融合了相机间的旋转平移外参及标定内参,能够映射单侧图像点至另一侧的对极线。基础矩阵的本质特征在于其为秩等于2的奇异矩阵,其零空间使得极点映射为零向量。在缺乏相机内外参数的情况下,算法可利用至少八对离散对应特征点构建线性齐次方程组,再借助奇异值分解(SVD)强制将最小奇异值归零以施加降秩约束,从而在保证几何一致性的前提下解算基础矩阵,消除寻找未知三维点与对应线之间的循环依赖。 图像校正与视差三角测量重建 (27:48) 一般相机配置下对极线呈任意倾斜分布,导致数字离散网格中的沿线采样异常繁琐。采用单应性变换进行图像校正,能够使左右图像平面与基线平行,使对极线完全水平化并与像素行对齐,实现纯粹的行内一维匹配。在对应匹配环节中,基于区域的灰度块匹配能够生成稠密深度,但在无纹理区域极易失效;而基于特征提取的方法虽然对旋转与光照鲁棒,却只能获得稀疏深度图。完成对应匹配后,系统利用水平像素差即视差进行三角测量,视差与物体深度成反比并与基线长度成正比;较长基线可提升远距离分辨精度但容易诱发遮挡和视场不重叠,而较短基线则会导致微弱视差下的测距误差显著累积。 从双目立体到单目运动恢复结构与里程计 (40:45) 当系统由固定双目转向单目移动相机时,任务拓展为运动恢复结构(SfM),需要在相对位姿完全未知的情况下联合解算三维点云与相机运动轨迹。由于单目视角的透视不变性,仅凭图像序列无法直接恢复真实绝对尺度,其几何重建仅在相似变换意义下有效。工程实践中,往往首先利用八点算法与基础矩阵求得连续帧间的相对旋转和平移,再通过非线性优化方法“光束法平差”(Bundle Adjustment)最小化图像重投影误差,以获得高精度结果。这一原理构成了火星探测车等机器人系统视觉里程计的核心基石,利用连续帧中地表岩石特征点的视移量反推机器人的自主位移。 立体视觉与SfM构建了从二维观测向三维空间反演的完整代数框架,然而基于单目运动恢复的几何重建始终面临绝对尺度不确定的物理边界,且实际环境中的遮挡与弱纹理区域仍是制约稳定匹配的关键限制。

Source quotes

[15:43] المحاضر: نحن في الواقع لسنا بحاجة للعثور على النقطة ثلاثية الأبعاد لإيجاد خط الإبيبولار في الصورة الأخرى. [11:36] المحاضر: السبب في تسميتها بالأساسية هو أنه باستخدام هذه المصفوفة، يمكنك معرفة كل شيء تقريبًا عن صورتين لنفس المشهد. [23:40] المحاضر: يجب أن تكون F شاذة لأن القطب يجب أن يرسم إلى صفر تحديداً.

Original transcript

[0:05] سنتحدث اليوم عن [0:06] الرؤية المجسمة ( [0:07] ستيريو)، وهو موضوع [0:08] أشار إليه ماركو في [0:10] المرة السابقة. لكن [0:11] الفكرة الأساسية هي [0:13] أنه بشكل عام، لا يمكن [0:15] استعادة بنية العالم [0:16] ثلاثي الأبعاد من صورة [0:18] واحدة فقط. وهذا يرجع [0:20] إلى الغموض المتأصل في [0:22] تحويل المنظور ثلاثي [0:24] الأبعاد. لذا، سنناقش [0:25] في هذه المحاضرة طرقاً [0:27] مختلفة لاستعادة [0:28] البنية ثلاثية [0:29] الأبعاد. وهنا يمكنك [0:30] رؤية بعض الأقسام التي [0:32] تم استقاء هذه المادة [0:33] منها. تتضمن الرؤية [0:36] المجسمة عمليتين. [0:38] الأولى هي دمج الميزات [0:40] التي ترصدها عينان أو [0:41] أكثر. أما الثانية فهي [0:43] إعادة بناء الخصائص [0:44] ثلاثية الأبعاد. لذا، [0:46] فإن المشكلة الرئيسية [0:47] هنا هي في الواقع [0:48] مشكلة المراسلة ( [0:49] التطابق). بافتراض [0:51] وجود الملاحظتين P و P [0:52] prime في الكاميرا [0:53] الأولى والثانية على [0:54] التوالي، كيف نعرف أن [0:56] هذه الملاحظات تتوافق [0:57] مع نفس النقطة ثلاثية [0:58] الأبعاد P الكبيرة؟ أو [1:00] بشكل مكافئ، أن P و P prime [1:02] في حالة تطابق فعلي، [1:04] وأنهما تنتميان حقاً [1:05] لنفس النقطة ثلاثية [1:07] الأبعاد. ولمساعدتنا، [1:09] هناك العديد من القيود [1:11] التي يمكن الاستفادة [1:12] منها لتبسيط الخطوة [1:13] الأولى هنا. على سبيل [1:16] المثال، هناك قيد [1:17] التشابه، وقيد [1:19] الاستمرارية، والأهم [1:21] من ذلك، قيد الخط [1:22] القطبي (الإيبولار). [1:24] وسنتحدث عن ذلك في [1:26] الوقت الحالي. مبدئياً [1:28] ، إذا فكرت في كيفية [1:30] إعداد كاميرتين للنظر [1:31] إلى نفس المشهد، فمن [1:33] المنطقي بديهياً أن أي [1:34] بكسل تراه في كاميرا [1:36] واحدة، يجب أن تكون [1:37] قادراً على رؤيته في [1:38] الكاميرا الأخرى، [1:40] خاصة إذا كانتا تنظران [1:41] إلى نفس المشهد. في [1:43] الواقع، مطابقة أزواج [1:45] البكسلات المحصورة [1:47] على طول الخط القطبي [1:48] المقابل هي إحدى الطرق [1:50] الرئيسية التي سنتمكن [1:52] من خلالها من توليد [1:54] معلومات ثلاثية [1:55] الأبعاد من صور ثنائية [1:57] الأبعاد. لذا، دعونا [1:59] نحلل ما ننظر إليه هنا. [2:01] لأن هذه هي الصورة [2:02] الأساسية التي سنعتمد [2:03] عليها خلال هذه [2:04] المحاضرة، وما يجب [2:05] عليكم وضعه في [2:06] الاعتبار عند التفكير [2:07] في الرؤية ثلاثية [2:08] الأبعاد أو الرؤية [2:09] المجسمة. هذان [2:10] المستويان هنا على [2:12] اليسار واليمين، pi و pi [2:14] prime، هما مستويا [2:15] الصورة. النقطتان O و O [2:17] prime تمثلان مركز [2:18] الكاميرا ذات الثقب [2:20] الموجود خلفهما، على [2:21] مسافة بؤرية معينة [2:23] خلفهما. والنقطة P [2:24] الكبيرة هي نقطة [2:25] ثلاثية الأبعاد تقع [2:26] أمام الكاميرات، وقد [2:28] التقطتها كلتا [2:29] الكاميرتين في [2:30] الصورتين. لذا، في pi، [2:31] تتوافق هذه النقطة [2:33] ثلاثية الأبعاد P [2:35] الكبيرة مع p الصغيرة. [2:37] وعلى اليمين في pi prime، [2:39] تتوافق مع p prime [2:41] الصغيرة. إذًا، هذه هي [2:45] إحداثيات العالم [2:47] ثلاثي الأبعاد، أي [2:48] النقاط في الصورة. [2:52] ونحن نسمي هذه مجرد [2:54] نقاط في الصورة، [2:55] وتحديدًا هناك شيء مهم [2:57] للغاية سنتحدث عنه وهو [2:59] "الأقطاب"(epipoles)، أو [3:01] دعونا نوضح المقصود [3:03] بذلك. فعندما يكون [3:04] لديك صورتان من [3:06] كاميرتين تنظران إلى [3:07] نفس المشهد. فإن خط [3:10] الأساس (baseline)، وهو [3:11] الخط الواصل بين مركزي [3:13] الكاميرتين، سيمر عبر [3:15] جزء من الصورة. وحتى لو [3:17] لم يمر عبر الصورة، [3:18] فإنه سيمر عبر جزء من [3:19] هذا المستوى. إلا إذا [3:21] كانتا متوازيتين، [3:22] لكننا سنتحدث عن ذلك [3:23] لاحقًا. وهذه هي [3:24] الحالة العامة. إذًا، [3:26] النقطة التي يتقاطع [3:28] عندها خط الأساس هذا [3:29] مع مستوى الصورة تُسمى [3:31] "الأقطاب". سيكون هناك [3:33] قطب للصورة الموجودة [3:35] على اليسار، وهو E، [3:37] وقطب للصورة الموجودة [3:39] على اليمين، وهو E prime. [3:41] والآن، بالنسبة لأي [3:42] نقطة ثلاثية الأبعاد [3:44] لها نقطة مقابلة في [3:46] الصورة، إذا رسمت خطًا [3:48] من القطب إلى تلك [3:49] النقطة، فإننا نسمي [3:51] هذا الخط "الخط القطبي" [3:53] (epipolar line). مفهوم؟ هذه [3:55] مجرد بعض المصطلحات [3:57] هنا. والمستوى الذي [3:59] تحدده هذه النقاط [4:00] الثلاث O و O prime و P [4:02] الكبير يُسمى "المستوى [4:04] القطبي". عندما كنت [4:08] أشير إلى هذا القيد [4:09] القطبي السابق لتحديد [4:11] أي نقطة في صورة ما [4:13] تقابل نقطة في صورة [4:15] أخرى، واللتان تشيران [4:16] إلى نفس النقطة في [4:18] الأبعاد الثلاثة، ما [4:20] يحدث هو أنه كما ترون، [4:22] إذا كانت لدينا نقطة P [4:24] الكبيرة، والتي تقابل [4:26] هذه النقطة P prime في [4:27] الصورة اليسرى، فيجب [4:29] أن تقع هذه النقطة في [4:31] مكان ما على الخط [4:33] القطبي. لماذا هذا؟ [4:35] لأنها تقع على المستوى [4:37] القطبي، والمستوى [4:38] القطبي يتقاطع مع [4:39] مستوى الصورة عند هذا [4:41] الخط القطبي. إذًا، [4:42] هذا هو القيد الأساسي [4:44] الذي سنعمل به [4:45] لاستخراج معلومات [4:46] ثلاثية الأبعاد من صور [4:47] ثنائية الأبعاد. دعونا [4:50] نرى إن كنت أرغب في قول [4:52] أي شيء آخر حول هذا. لا [4:53] ، لا شيء آخر. الشيء [4:55] الوحيد الذي سأقوله هو [4:56] أنه على الرغم من كونه [4:58] قيدًا أساسيًا، إلا [4:59] أنه مفيد جدًا لأنه [5:00] يعني أننا عندما نريد [5:01] البحث عن نقاط مطابقة [5:02] بين صورتين، بدلًا من [5:04] البحث في كامل الصورة [5:05] كما قد تفعل الطريقة [5:06] البسيطة، فإننا نحتاج [5:07] فقط للبحث على طول هذا [5:09] الخط. وبذلك يقلص [5:10] مساحة البحث لدينا من [5:11] مساحة بحث ثنائية [5:12] الأبعاد إلى مساحة [5:13] أحادية البعد فقط، وهو [5:15] أسرع بكثير. [5:16] >> لكن بين نقطتي الصورة [5:17] هاتين، قد تكون [5:18] إحداهما أكثر تقدماً [5:19] أو تأخراً. [5:20] >> أجل. نعم، هذه هي [5:21] الحالة العامة. أجل. [5:23] لذا، لا يوجد، لا [5:24] يتعين على خط الأساس [5:26] أن يكون، حسناً، الأمر [5:27] كله مسألة دلالات، [5:28] أليس كذلك؟ حتى لو [5:29] كانت إحدى الصورتين [5:31] بعيدة جداً خلف الأخرى [5:32] ، يظل خط الأساس، كما [5:34] تعلم، بينهما، ويمكن [5:35] تدويرهما بأي اتجاه. [5:36] أجل. هل من أسئلة أخرى [5:39] حول هذا الإعداد؟ [5:40] >> هذا هو القيد الذي [5:41] تستخدمه لإيجاد كيف [5:44] تجد ذلك الخط القطبي [5:45] إذا كنت لا تعرف أين [5:47] تقع 'P prime'؟ [5:48] >> حسناً، الشيء الوحيد [5:49] الذي تعرفه، هو أنك [5:51] تعرف حقاً موقع كل من P [5:53] و P prime لأن لديك [5:54] الصورتين. مثل، كما [5:55] تعلم، نحن من نمتلك [5:57] هاتين الصورتين تحت [5:58] تصرفنا هنا. لذا، نحن [6:00] نعرف كلاً من P و P prime [6:02] ونحاول تحديد P [6:03] الكبيرة. هذا هو الهدف [6:05] الكامل للرؤية [6:06] المجسمة. نعم. لذا، نحن [6:10] نعلم لأن هذا هو إعداد [6:12] الكاميرا الخاص بنا، [6:13] نحن نعرف خط الأساس [6:15] وتحديداً هناك شيئان [6:16] نعرفهما. نحن نعرف خط [6:17] الأساس من حيث [6:18] الانتقال بين [6:19] الكاميرتين. سنتحدث عن [6:20] هذا لاحقاً، لكننا [6:21] نعرف أيضاً الدوران [6:22] بينهما. لأن تذكر، نحن [6:24] من قمنا بإعداد [6:24] الكاميرا. لذا، يمكننا [6:26] نوعاً ما قياس هذه [6:27] الأشياء. [6:27] >> إذاً، لديك P prime، ولكن [6:28] كيف تعرف أنها تتوافق [6:29] مع نفس النقطة ثلاثية [6:30] الأبعاد؟ [6:31] >> نعم. [6:32] >> لذا، هذا ما كان يفعله [6:33] هذا. [6:34] >> حسناً، هذا يساعدنا في [6:35] الوصول إلى ذلك. [6:36] >> حسناً. [6:37] >> لأننا نعلم أن علينا [6:38] فقط البحث على طول [6:39] الخط، ولكن فيما يتعلق [6:40] بكيفية تحديد ذلك بدقة [6:41] ، سنعود إليه لاحقاً [6:42] في هذه المحاضرة. إذاً. [6:44] >> فقط بالنسبة لـ P، تلك P [6:47] الصغيرة. [6:47] >> أجل. [6:48] >> والخط القطبي L prime. [6:51] >> نعم. نعم، نعم. لذا، [6:54] فقط لتوضيح الأمر، [6:55] ربما يكون هذا مربكاً [6:56] بعض الشيء، ولكن إذا [6:57] فكرت في الأمر، فإن [6:58] التطابق لـ P، نحن نبحث [7:00] عن نقطة في pi prime [7:01] >> نعم. [7:01] >> تطابق P. عندما نقول [7:03] تطابق P، نعني أنها [7:04] تتوافق مع نفس النقطة [7:05] ثلاثية الأبعاد. لذا، [7:07] نحن نبحث هنا عن P prime، [7:09] التي يجب أن تقع على L [7:11] prime. [7:11] >> وهكذا، P، هناك خط آخر [7:14] يصور التحويل من zero prime [7:16] إلى P، وهذا يسمى خطاً. [7:21] >> ليس بالضرورة. لماذا؟ [7:26] آه لا. [7:27] >> أظن أنني، ماذا يعني [7:29] التطابق المحتمل لـ P؟ [7:31] >> نعم، نعم. إذن، [7:33] التطابق المحتمل يعني [7:34] أننا نبحث عن نقطة في [7:36] الصورة الأخرى تقابل [7:37] نفس النقطة ثلاثية [7:39] الأبعاد التي تمثلها P. [7:40] وهذا هو السبب في أنك [7:42] ترى كيف نرسم هذين [7:43] الخطين من P إلى هذه [7:44] الصورة ومن P إلى [7:45] الصورة الأخرى. [7:47] >> نعم. [7:47] >> لذا في تلك الصورة، P [7:49] شرطة هي المكان الذي [7:51] تقع فيه P الكبيرة، لكن [7:52] بالنسبة لنا هنا هي P، [7:54] للصورة اليسرى. لذا [7:56] عندما نقول إننا نبحث [7:57] عن تطابق محتمل لـ P، [7:59] فنحن نقول أساساً إننا [8:01] نبحث عن تلك النقطة P [8:02] شرطة. حسناً، لكي [8:07] نتصور كيف قد يبدو هذا [8:09] ، وبالعودة إلى سؤالك، [8:11] كيف نجدها فعلياً؟ إذا [8:13] كنا نعرف، عذراً، إذا [8:15] كنا نعرف ما هو الخط [8:17] القطبي، فمرة أخرى [8:18] سنتحدث عن هذا ونتعمق [8:20] فيه أكثر. [8:21] >> يبدو الأمر كما لو أنك [8:22] لا تملك P شرطة بعد، [8:23] فكيف تعرف ما هو L شرطة [8:24] إذا كنت تحاول... [8:27] >> سوف...حسناً. نعم، [8:29] حسناً، سنصل إلى هذا [8:30] فعلياً. نحن الآن نقدم [8:32] فقط نظرة عامة رفيعة [8:33] المستوى، لكننا [8:34] سنتعمق في الأمر. سنصل [8:35] إلى هذا. لذا، مع وضع [8:37] الفكرة العامة في [8:38] الاعتبار، إذا كان [8:39] لدينا L و L شرطة، وإذا [8:41] كان لدينا P، لكننا [8:42] نريد إيجاد P شرطة، فما [8:44] يمكننا فعله هو، كما [8:46] قلت سابقاً، البحث فقط [8:47] على طول هذا الخط، وهو [8:49] أبسط بكثير من البحث [8:50] في الصورة بأكملها. [8:52] ولكن مرة أخرى، سنتحدث [8:53] عن ذلك بمزيد من [8:54] التفصيل. [8:55] >> لكننا لا نعرف ما هو L [8:56] شرطة المحدد باستخدام [8:57] P شرطة، ومع ذلك فأنت [8:58] تحاول إيجاد P شرطة [8:59] باستخدام L شرطة. هذا [9:00] في كلا الاتجاهين. [9:02] >> نعم، ضع ذلك في [9:03] اعتبارك بينما نمضي [9:04] قدماً. حسناً، دعنا [9:06] نستنتج فعلياً كيف [9:08] نحصل على هذا القيد، [9:10] وهذا الآن من مجرد نوع [9:12] من هذه الهندسة هنا. [9:14] نحن نعلم كما قلت [9:15] سابقاً أن O و O شرطة و P [9:17] الكبيرة، على أية حال، [9:19] يشكلون هذا المستوى [9:21] الذي نهتم به، هذا [9:23] المستوى القطبي. [9:25] وبالتحديد لأن P و P [9:27] شرطة تقعان على طول [9:28] هذا المستوى، فنحن [9:30] نعلم أن كلاً من هذه [9:32] النقاط الثلاث، أي هذه [9:34] الخطوط الثلاثة، الخط [9:36] الأساسي، و OP شرطة، و OP [9:38] ، أو O شرطة P شرطة، و OP، [9:40] يجب أن تكون مستوية. [9:42] يجب أن تقع جميعها في [9:43] هذا المستوى القطبي. [9:45] ويمكنك كتابة ذلك [9:46] رياضياً بالقول إن [9:48] المتجه المكون من [9:49] النقطتين O و P يجب أن [9:50] يكون عمودياً على [9:52] المتجه العمودي [9:53] للمستوى، والذي يمكنك [9:55] تعريفه عبر الضرب [9:56] الاتجاهي كما يلي، وهو [9:58] حاصل الضرب الاتجاهي [10:00] للمتجهين الآخرين [10:01] اللذين لديك. لذا، [10:05] هناك شيء واحد يجب [10:06] وضعه في الاعتبار هو [10:08] أنه عندما نحتاج إلى [10:10] إيجاد الضرب الاتجاهي [10:12] بين متجهين، يمكنك في [10:14] الواقع كتابة ذلك [10:15] كصيغة مصفوفة للضرب [10:17] الاتجاهي لمتجه واحد [10:19] على النحو التالي. هذا [10:22] أشبه بخدعة رياضية [10:23] تجعل كتابة بعض الجبر [10:25] المصفوفي لاحقاً أسهل [10:27] ، ولكن كل ما في الأمر [10:29] هو القول بأنه يمكنك [10:31] كتابة الضرب الاتجاهي [10:33] كحاصل ضرب مصفوفة في [10:34] متجه أيضاً. لذا، ضع [10:36] ذلك في اعتبارك فقط. [10:38] وعلى أي حال، ستكون [10:39] لديك هذه الشرائح [10:40] كمرجع، أو أنها متاحة [10:41] بالفعل، لذا. حسناً، [10:43] كيف يمكننا الاشتقاق؟ [10:44] نعم، لنواصل اشتقاق [10:46] قيد الهندسة القطبية ( [10:47] epipolar constraint) هذا. إذا [10:49] افترضنا أن نظام [10:50] المرجع العالمي يقع [10:52] عند الكاميرا الأولى، [10:53] مما يعني أنك تضع [10:54] إطارك المرجعي الأولي [10:56] وكل شيء هناك. أم، بعد [11:00] القليل من الجبر، [11:02] يمكننا إيجاد أن قيد [11:04] الهندسة القطبية الذي [11:06] نتحدث عنه يظهر في هذه [11:08] الصيغة، حيث P منقولة [11:09] في مصفوفة ما F، التي [11:11] سنتحدث عنها، و P فتحه [11:13] يجب أن يساوي صفراً. [11:15] إذن، هذه كتابة مباشرة [11:18] لهذا القيد هنا. نحن [11:21] نكتب هذا القيد مباشرة [11:23] ، لكننا نعرف بعض [11:24] المصطلحات بشكل مختلف. [11:26] هنا، الحرف الصغير P [11:28] يتوافق فقط مع المتجه، [11:30] لأننا نتذكر أننا [11:32] ننتقل من نقطة الأصل [11:34] العالمية O، لذا فكل [11:36] شيء يتعلق بالصورة [11:38] اليسرى هنا. إذن، P هو [11:40] مجرد متجه من O إلى P. و P [11:42] فتحه هو المتجه من O [11:44] إلى P فتحه، وليس من O [11:46] فتحه إلى P فتحه. تذكر، [11:48] نحن نأخذ كل شيء في [11:49] الاعتبار من هذا [11:51] المنظور هنا. والآن [11:55] تظهر هذه المصفوفة [11:57] المثيرة للاهتمام F، [11:59] والتي تشبه إلى حد ما [12:00] أخذ مصفوفة الضرب [12:02] الاتجاهي لهذا المتجه [12:04] ، بالإضافة إلى بضع [12:06] دورانات وإزاحات أخرى. [12:09] لأنه يجب عليك أن تأخذ [12:10] في الاعتبار [12:11] الدورانات والإزاحات [12:12] من الكاميرا الأولى [12:13] إلى الكاميرا الثانية. [12:16] وبشكل محدد، إذا قمت [12:18] بتوسيعها، فإن F تبدو [12:19] كالتالي. وهنا يأتي [12:21] دور الإزاحة والدوران [12:22] ، بالإضافة إلى [12:23] المعاملات الداخلية [12:25] للكاميرا، التي [12:26] تعرفها لأن هذه هي [12:27] كاميراتك التي قمت [12:28] بمعايرتها. إليك بعض [12:30] الحقائق الأساسية حول [12:32] المصفوفة F. يُشار إلى F [12:34] بالمصفوفة الأساسية. [12:36] السبب في تسميتها [12:37] بالأساسية هو أنه [12:38] باستخدام هذه [12:40] المصفوفة، يمكنك [12:41] معرفة كل شيء تقريبًا [12:43] عن صورتين لنفس المشهد [12:44] . وعليه، هناك أمر محدد [12:48] كان محل اهتمام. أمر [12:52] محدد مثير للاهتمام [12:53] وهو كيف يمكننا تعريف [12:55] الخطوط القطبية (Epipolar [12:57] lines)؟ حسناً، إذا كان [12:58] لدينا هذه المصفوفة [13:00] الأساسية، فسنتحدث عن [13:01] كيفية الحصول عليها [13:02] لاحقاً. ولكن، إذا [13:04] كانت لديك هذه [13:05] المصفوفة، يمكنك [13:06] ببساطة القول إن الخط [13:07] القطبي يساوي [13:08] المصفوفة الأساسية [13:09] مضروبة في النقطة [13:10] المقابلة لها في [13:11] الصورة. تذكر، بالنسبة [13:13] للخط القطبي، أنت [13:15] بحاجة إلى القطب (Epipole) [13:16] ونقطة أخرى في الصورة. [13:18] لذا، إذا كنت تعرف L، [13:20] التي تم تعريفها؛ ضع [13:21] في اعتبارك أن هذا [13:22] التعريف يتم في الصورة [13:24] اليسرى. نحن نستخدم [13:25] نقطة صورة تم تعريفها [13:27] في الصورة الأخرى. [13:28] السبب في منطقية هذا [13:30] الأمر هو، ولهذا السبب [13:31] تم رسم هذه الخطوط [13:32] الحمراء الثلاثة هنا. [13:34] إذا اخترت نقطة صورة [13:36] أخرى P، لا أعرف، "double [13:38] prime" في الصورة اليمنى، [13:40] وقمت بتحريكها في أي [13:41] مكان على طول هذا الخط [13:43] القطبي، ربما على طول [13:45] بعض هذه الخطوط [13:46] الحمراء الثلاثة [13:48] الأخرى، فسيقابل ذلك [13:50] نقاطاً مختلفة في [13:51] الصورة اليسرى. في [13:53] الواقع، إذا قمت [13:54] بتحريك ذلك الخط [13:55] القطبي، فسيقابل نفس [13:57] النقطة. قد يكون [13:58] الاختلاف في المقياس [13:59] أكبر قليلاً فقط. [14:00] >> عذراً، لقد نسيت أن [14:01] المصفوفة هي معكوس [14:02] المنقول (Inverse transpose). [14:03] >> نعم. أوه نعم، إنها إما [14:05] منقول المعكوس أو [14:06] معكوس المنقول. نعم، [14:08] هذا متكافئ. حسناً، [14:11] هكذا يمكننا إيجاد [14:12] الخط القطبي في الصورة [14:14] اليسرى انطلاقاً من [14:15] نقطة في الصورة اليمنى [14:16] . ويمكنك أيضاً القيام [14:18] بذلك بالعكس. لذا، إذا [14:20] كنت تريد إيجاد الخط [14:21] القطبي في الصورة [14:22] اليمنى انطلاقاً من [14:23] نقطة في الصورة اليسرى [14:24] ، يمكنك فعل ذلك [14:25] ببساطة باستخدام [14:26] منقول المصفوفة [14:27] الأساسية. شيء آخر مهم [14:30] جداً يجب وضعه في [14:31] الاعتبار هو أن F [14:32] مصفوفة أحادية (Singular) [14:34] في الواقع. إنها ليست [14:36] قابلة للعكس. وكيف، [14:37] لماذا نعرف ذلك مباشرة [14:39] منذ البداية؟ حسناً، [14:41] السبب هو أنك إذا [14:43] حاولت إيجاد الخط [14:45] القطبي المقابل للقطب [14:47] نفسه، لأنه يمكنك وضع [14:49] أي نقطة صورة هناك. إذا [14:52] حاولت العثور على الخط [14:54] التقابلي المقابل [14:55] للنقطة القطبية نفسها [14:57] ، فلن تحصل على شيء، [14:58] وذلك لأنه يتقلص إلى [15:00] نقطة واحدة. أنت لا [15:01] تحصل على خط بعد الآن، [15:02] لأنه إذا كنت تحاول، [15:03] كما تعلم، تعيين هذا [15:05] للصورة الأخرى، فهو [15:06] مجرد نقطة واحدة عند [15:07] النقطة القطبية. لذا، [15:08] إذا استخدمت المصفوفة [15:10] الأساسية لهذا، [15:11] فستحصل على صفر. إذًا، [15:12] إذا حصلت على صفر، [15:13] فهذا يعني أن لها [15:14] فضاءً صفريًا. إذا كان [15:16] لها فضاء صفري، فأنت [15:17] تعلم أنها غير قابلة [15:18] للعكس. والآن، الشيء [15:20] الآخر الذي يجب معرفته [15:22] عن F هو أنها مصفوفة 3 [15:24] في 3، وتحديداً، تحتوي [15:26] على تسعة عناصر، لكننا [15:28] نحتاج فعلياً إلى سبعة [15:30] فقط لأن هناك قيوداً [15:31] أخرى تساعدنا في [15:33] العثور على العنصرين [15:35] الآخرين. ومرة أخرى، [15:36] سنتحدث عن هذا بمزيد [15:38] من التفصيل بعد بضع [15:39] دقائق. لذا، أعني، كما [15:43] تحدثنا من قبل، [15:44] الفائدة الواضحة [15:45] للمصفوفة الأساسية هي [15:46] أننا نستطيع العثور [15:48] على هذه الخطوط [15:49] التقابلية، كما تعلم، [15:50] هكذا تماماً. أم، [15:52] بافتراض أن لدينا نقطة [15:53] ما على اليسار. [15:54] وبالعودة إلى أحد [15:56] أسئلتكم، إذا كان [15:57] لدينا نقطة في الصورة [15:58] اليسرى، ولا نملك [15:59] النقطة في الصورة [16:01] اليمنى، ولكننا نريد [16:02] العثور على النقطة في [16:03] الصورة اليمنى، فماذا [16:05] نفعل؟ نبدأ من هذه [16:06] النقطة، ونضرب في [16:08] المصفوفة الأساسية، [16:09] وهذا يعطينا خطاً في [16:11] الصورة اليمنى، ثم [16:13] نبحث حرفياً على طول [16:14] هذا الخط حتى نجد [16:16] شيئاً يطابق هذه [16:17] النقطة. سنتحدث عن [16:19] كيفية القيام بذلك [16:20] أيضاً بعد دقيقتين، [16:21] ولكن كان هناك سؤال [16:23] طرح سابقاً يتعلق [16:24] بكيفية عمل ذلك. لذا، [16:26] نأمل أن يجيب هذا على [16:28] ذلك. نعم، سؤال رائع. [16:37] في الواقع، لا يوجد [16:38] افتراض بوجود ضوضاء أو [16:40] غيابها، لأن هناك [16:41] العديد من الأشياء [16:43] التي يمكنك القيام بها [16:44] في الرؤية الحاسوبية [16:46] بدلاً من مجرد مقارنة [16:47] مباشرة بين وحدات [16:49] البكسل. وفي الواقع، [16:50] حتى لو كانت لديك صورة [16:51] مثالية، فإن المقارنة [16:52] المباشرة بين وحدات [16:54] البكسل لن تنجح؛ لأنه [16:55] إذا كنت أنظر، على [16:56] سبيل المثال، إلى هذا [16:57] التمثال، وكانت إحدى [16:58] الكاميرات مائلة [16:59] قليلاً، بحيث ترى، [17:00] لنقل، الجانب الأيمن [17:01] من الأنف، بينما ترى [17:03] الكاميرا الأخرى [17:03] الجانب الأيسر، فلن [17:05] تنجح مطابقة البكسل [17:06] المباشرة على الإطلاق. [17:07] لذا، في الواقع، علينا [17:08] منذ البداية القيام [17:09] بشيء أكثر إثارة [17:10] للاهتمام من ذلك. لكن [17:11] أجل، قليل من الضجيج [17:13] لن يشكل مشكلة كبيرة. [17:14] أما الكثير منه، [17:15] فسيجعل الأمر أكثر [17:17] صعوبة. حسناً. الشيء [17:23] الرائع الآخر الذي يجب [17:25] أن تضعه في اعتبارك، [17:26] تذكر أن الهدف من هذا [17:27] الإجراء هو استخدام [17:28] مستوى الإبيبولار [17:29] الذي يتم تحديده [17:30] بواسطة هذه النقطة [17:32] ثلاثية الأبعاد، لكن [17:33] الميزة الكبرى [17:34] للمصفوفة الأساسية هي [17:35] عدم وجود أي ذكر [17:36] للنقطة ثلاثية [17:37] الأبعاد هنا. نحن في [17:38] الواقع لسنا بحاجة [17:39] للعثور على النقطة [17:40] ثلاثية الأبعاد [17:41] لإيجاد خط الإبيبولار [17:42] في الصورة الأخرى. هذا [17:44] أمر مهم جداً، أليس [17:45] كذلك؟ لأنه في هذه [17:46] الحالة لن تواجهنا [17:47] مشكلة "الدجاجة [17:48] والبيضة". لأننا [17:49] نستطيع إيجاد خط [17:50] الإبيبولار أولاً دون [17:51] الحاجة إلى النقطة "P" [17:53] الكبيرة، ثم يمكننا [17:54] إيجاد النقطة "P prime" في [17:55] هذه الصورة، أي في [17:57] الصورة اليمنى. الآن [17:58] لدينا "P prime" و "P"، [18:00] فيمكننا إجراء [18:01] التثليث ومن ثم إيجاد " [18:03] P" الكبيرة. لذا، لا [18:04] توجد معضلة: "أوه، أنت [18:06] بحاجة لإيجاد النقطة [18:07] ثلاثية الأبعاد، [18:08] وعليك أولاً إيجادها [18:10] للحصول على هذه [18:11] المصفوفة F، ثم القيام [18:13] بما تريد". إذاً، كيف [18:17] نحسب هذه المصفوفة [18:19] الأساسية فعلياً؟ هذا [18:21] سؤال جوهري آخر. نعم، [18:23] هذه المصفوفة مذهلة، [18:24] لكن كيف نجدها في [18:26] الواقع؟ السؤال الأول [18:28] هو: هل من الممكن تقدير [18:29] F إذا كان لديك فقط [18:31] صورتين لنفس المشهد [18:33] دون معرفة المعاملات [18:34] الداخلية والخارجية [18:36] حقاً؟ لأنك تتذكر، قلت [18:38] إنه يمكننا قياس R و T، [18:39] لكن لنفترض أننا لا [18:41] نستطيع قياسهما. لنقل [18:42] إنني التقطت هاتين [18:43] الصورتين من خرائط [18:45] جوجل أو صور جوجل [18:46] للكولوسيوم في روما [18:47] مثلاً، وهما من وجهتي [18:48] نظر مختلفتين. هل [18:50] يمكننا فعل ذلك؟ نعم، [18:52] هذا ممكن طالما لدينا [18:54] عدد كافٍ من النقاط [18:55] المتقابلة بين [18:56] الصورتين. ومع وجود [18:59] خوارزميات عديدة [19:01] لحساب F، سنناقش هنا [19:03] خوارزمية بسيطة نوعاً [19:05] ما. تسمى خوارزمية [19:06] النقاط الثماني، [19:07] والتي سيكون سبب [19:09] تسميتها واضحاً [19:10] تماماً. إذاً، ما [19:11] سنفعله هو استخدام [19:13] حقيقة أن المصفوفة [19:14] الأساسية تلبي قيد [19:16] الإبيبولار الذي [19:17] تحدثنا عنه طوال الوقت [19:19] لجميع أزواج النقاط [19:21] المتقابلة. تحديداً، [19:24] إذا افترضنا تعريف P و P [19:26] شرطة بهذا الشكل [19:27] المتجانس، حيث U و V هما [19:29] إحداثيات البكسل في [19:31] الصورة اليسرى، و U [19:33] شرطة و V شرطة هما [19:34] إحداثيات الصورة في [19:36] الصورة اليمنى. يمكننا [19:39] في الواقع كتابة نفس [19:41] قيد P المنقولة ضرب F [19:43] ضرب P يساوي صفر هنا [19:45] على اليمين، حيث نترك [19:47] عناصر F غير محددة [19:49] لأننا لا نعرفها [19:50] حالياً، لذا سنتركها [19:52] كمتغيرات رمزية. وما [19:57] يمكننا فعله بعد ذلك [19:58] هو أنه إذا قمت بكتابة [20:00] شكل المعادلة التي [20:02] ستحصل عليها عند إجراء [20:04] هذا الشكل التربيعي، [20:06] فستجد أنه يمكنك إعادة [20:08] كتابة هذا الشكل خطياً [20:09] على هذا النحو. لأنه، [20:12] كما تعلم، يمكنك النظر [20:13] إليها بطريقة معينة. [20:15] إذا أخذت U مضروبة في [20:16] العنصر الأول F [20:17] مضروباً في U شرطة زائد [20:19] جميع الحدود الأخرى، [20:20] يمكنك رؤية أنه حسناً، [20:22] إذا قمنا فقط باستخراج [20:23] العامل المشترك لهذين [20:25] الحدين، فيمكننا [20:26] كتابة هذا الشكل الخطي [20:27] . الآن إذا كان لدينا [20:29] هذا الشكل الخطي، فهذا [20:30] رائع لأن هذا مخصص فقط [20:32] لمجموعة واحدة من [20:33] المراسلات، زوج واحد [20:35] من نقاط المراسلة. إذا [20:36] كان لديك الآن ثمانية [20:38] من هذه المراسلات، [20:39] فيمكنك حينها تحديد [20:41] المصفوفة F بالكامل. [20:43] وإذا كان لديك المزيد، [20:44] فستتحول المسألة إلى [20:46] مسألة مربعات صغرى. [20:47] وهذا رائع لأننا نعرف [20:49] كيفية حل مسائل [20:50] المربعات الصغرى [20:51] بسهولة كبيرة. إذن، W [20:54] هي أساساً الطريقة [20:56] التي نكتب بها مصفوفة [20:57] المراسلات المعروفة [20:59] هذه. والشيء الوحيد [21:01] الذي يجب وضعه في [21:02] الاعتبار هو أنه حتى [21:04] لو كان لدينا كل هذه [21:05] المصطلحات المختلفة، [21:07] لا يزال هناك بعض [21:08] الغموض. لذا ما نقوم به [21:13] في الواقع هو حل مسألة [21:15] المربعات الصغرى هذه، [21:17] ولكن لدينا قيد بأن [21:19] معيار قيم F المتعلمة [21:20] يساوي واحداً. وهذا [21:26] يحل الغموض لدينا فيما [21:28] يتعلق بالنقطة [21:29] التاسعة. أعني أن هذه [21:31] تسمى خوارزمية النقاط [21:32] الثماني، ولكن هناك [21:33] تسع قيم في F. لذا نحن [21:34] بحاجة فقط لإيجاد [21:35] ثماني قيم، والقسمة [21:36] على الأخيرة، والأمر [21:37] كله جيد لأن المصفوفة [21:38] الأساسية يمكن [21:39] استخدامها حتى مقياس [21:40] معين. لذا لا بأس [21:41] تماماً إذا كان لديك [21:43] قيم بمقاييس مختلفة. [21:44] ولكن لهذا السبب نقوم [21:45] بالتطبيع بحيث تكون [21:47] القيمة الأكبر واحدة، [21:48] أو القيمة التاسعة [21:49] واحدة. بينما المصفوفة [21:56] F التي تعلمناها للتو [21:58] ستحقق القيد القطبي، [21:59] لم نتحدث قط عن خاصية [22:01] التفرد لـ F، وهو أمر [22:03] مهم جداً لفرضه لأننا [22:04] نحتاج أن تؤول الأقطاب [22:06] إلى صفر عند ضربها في [22:08] المصفوفة الأساسية. [22:09] لذا على وجه التحديد، [22:11] سنقوم بفرض قيد الرتبة [22:13] هذا عبر تحليل القيمة [22:15] المفردة (SVD). ليس من [22:16] المهم جداً أن تفهم [22:18] التفاصيل الداخلية [22:19] بدقة، لكن يكفي أن [22:20] تعرف أن الطريقة التي [22:22] يمكنك بها صياغة وحل [22:24] هذه المشكلة هي...إنها [22:25] مرة أخرى مسألة مربعات [22:27] صغرى لمعيار [22:28] فروبينيوس للمصفوفة، [22:30] حيث يكون لديك شرط، أو [22:31] قيد، وهو أنها غير [22:33] قابلة للعكس. بالمجمل، [22:39] خوارزمية النقاط [22:40] الثماني تستخدم [22:42] المربعات الصغرى [22:43] العادية التي اعتدنا [22:45] عليها لحساب مصفوفة [22:47] أساسية تقريبية F، ثم [22:49] معالجة حقيقة [22:50] افتقارنا لخاصية [22:52] التفرد هذه باستخدام [22:54] SVD. الآن، إذا كانت [23:02] لدينا المصفوفة [23:04] الأساسية ويمكننا [23:05] التنقل بين هاتين [23:07] الصورتين من حيث إيجاد [23:09] الخطوط القطبية في [23:10] كلتيهما، فهذا أمر قد [23:12] نهتم بالقيام به لجعل [23:14] بحثنا عبر هذه الخطوط [23:16] أسهل. حسناً، المشكلة [23:29] التي تواجهها هي، أعني [23:35] ، أحاول التفكير من [23:38] حيث، هل هناك فرق هائل [23:40] ؟ يعتمد الأمر حقاً. [23:43] يعتمد الأمر حقاً على [23:45] المشهد الذي أمامك، [23:46] ومدى جودة المراسلات [23:48] التي لديك. لكن في [23:49] الواقع، الشيء [23:50] الأساسي هو أنه يجب [23:52] عليك جعلها غير قابلة [23:54] للعكس، لأنه إذا لم [23:55] يتحقق ذلك، فإن أقطابك [23:57] لن تترابط مع بعضها [23:58] البعض، مما يعني خطين [24:01] قاعديين، وهذا أمر [24:03] غريب جداً. هذا شيء [24:04] غريب جداً، لذا حتى لو [24:06] لم تكن المصفوفات [24:07] مختلفة عددياً بشكل [24:09] كبير، فمن المهم جداً [24:10] من الناحية [24:11] المفاهيمية تصحيح هذا [24:13] الشرط. حسناً. هل لدى [24:18] أي شخص أي سؤال آخر؟ [24:19] نعم. نعم، السؤال [24:31] الجوهري. نعم، الطريقة [24:33] التي تعرف بها هذا في [24:34] الواقع، للأسف، [24:35] الإجابة هنا هي فقط [24:37] أننا ننظر إلى [24:38] الصورتين ونقوم، كما [24:39] تعلم، إما أن يقوم [24:41] إنسان بهذا أو شخص آخر. [24:42] شخص يحاول حل هذه [24:44] المشكلة لنا هنا. أنت [24:46] تختار النقاط وتقول: " [24:47] آه، أستطيع أن أعرف أن [24:49] هذه النقطة تقابل هذه [24:50] النقطة". وهناك برامج [24:52] يمكنك فيها فقط النقر [24:53] في صورة ما والنقر في [24:54] الأخرى لتحدد أن [24:55] نقطتين تنتميان [24:55] لبعضهما البعض. لذا، [24:57] عليك في الواقع تقديم [24:58] هذه المراسلات [24:59] الأولية. ثم، لأكون [25:01] صادقاً، هذه إحدى طرق [25:03] القيام بذلك. طريقة [25:05] أخرى للقيام بذلك هي [25:07] البدء باستخدام بحثك [25:08] البسيط في الصور [25:09] ثنائية الأبعاد، أليس [25:11] كذلك؟ حيث إذا كان [25:12] لديك نقطة في صورة [25:13] واحدة وتقول، "حسناً، [25:14] أريد العثور على هذه [25:15] النقطة في الصورة [25:15] الأخرى." حسناً، [25:16] يمكنني ببساطة مسح [25:17] الصورة الثانية [25:18] بالكامل، والعثور [25:19] عليها، ثم حسناً، رائع [25:21] . أعرف أن هاتين [25:22] النقطتين تتطابقان [25:23] عبر مقياس تشابه ما، [25:25] مقياس تشابه بصري، ثم [25:27] أكرر ذلك لنقاط أخرى. [25:29] لكن، مجدداً، يمكن أن [25:31] يكون هذا مشوشاً. نعم. [25:33] >> إذاً، هل هذه المصفوفة [25:35] F ثابتة طالما أن [25:36] الكاميرات مضبوطة [25:37] بنفس الطريقة، أم أنها [25:38] تعتمد على... [25:39] >> نعم، هذا سؤال رائع. [25:41] لقد رأينا من قبل هنا [25:43] أن F تحتوي على بضعة [25:44] حدود بداخلها. لذا، [25:45] إذا كانت الكاميرات [25:47] متطابقة فيزيائياً، [25:48] فإن مصفوفات K ستكون [25:49] متطابقة. وهذا أمر [25:50] رائع. لكن الأمر [25:52] تماماً كما أشرت. نعم، [25:53] يجب أن تكون مضبوطة [25:55] بنفس الطريقة، لأنه [25:56] إذا قمت بتحريكها، أي [25:57] تغيرت الإزاحة أو [25:58] الدوران، فإن F ستتغير. [26:00] لذا، F جيدة فقط لإعداد [26:02] المشهد المحدد الذي [26:04] لديك في تلك اللحظة [26:05] الزمنية. [26:09] >> لقد لاحظت للتو أن [26:10] الأقواس T والإزاحة [26:12] الافتراضية... [26:13] >> أجل. [26:14] >> أجل. [26:14] >> أوه، هل يمكنك شرح سبب [26:16] كون F مصفوفة شاذة (غير [26:18] قابلة للعكس) مرة أخرى [26:20] ؟ [26:20] >> أوه، نعم، يجب أن تكون [26:22] F شاذة لأن القطب يجب [26:24] أن يرسم إلى صفر [26:26] تحديداً. لا يمكنك [26:28] الحصول على خط ناتج من [26:29] ...إذا حاولت العثور [26:31] على الخط القطبي [26:32] المقابل عند تمرير قطب [26:34] الصورة الأخرى، يجب أن [26:35] تحصل على صفر. كيف [26:37] يمكنك الحصول على خط [26:38] من ذلك، أليس كذلك؟ [26:40] والآن، ماذا يعني ذلك؟ [26:42] هذا يعني أن لهذه [26:43] المصفوفة فضاء صفري [26:44] غير فارغ. قد تتذكر هذا [26:46] من الجبر الخطي، أو [26:47] ربما لا. لكن هذه [26:49] الخاصية المهمة [26:50] للمصفوفة تعني أنها [26:51] غير قابلة للعكس. إذا [26:52] كان لديك فضاء صفري [26:54] غير فارغ، فإن مصفوفتك [26:56] ليست قابلة للعكس. [27:13] الحساسية...هل يمكنك [27:15] شرح...سنتحدث عن هذا في [27:33] الواقع. نعم. أجل، أجل. [27:35] سنتحدث عن هذا الأمر، [27:36] مثلًا مسافة خط الأساس [27:38] ، وأشياء مثل الدوران [27:39] الشديد. سنتحدث عنها. [27:41] احتفظ بهذا السؤال في [27:42] ذهنك. هل هناك أي أسئلة [27:44] أخرى حول المصفوفة [27:45] الأساسية وتقديرها؟ [27:48] رائع. حسنًا. إذًا، شيء [27:52] ما هو..حسنًا، حسنًا. [27:54] إذا كان لدينا هذا [27:56] النوع من الإعداد [27:57] العام حيث لدينا خطوط [27:58] تقابلية تكون..حسنًا، [27:59] يمكن أن تكون أي شيء [28:00] حقًا. أعني، يمكن أن [28:01] تكون مجرد خطوط عامة [28:03] في الصورة الأخرى. شيء [28:04] مزعج نوعًا ما هو أن [28:06] البحث على طول خط قطري [28:08] أمر مزعج في مساحة [28:09] الصورة، لأنه إذا فكرت [28:11] في الأمر، ما هي [28:12] الصورة؟ إنها مصفوفة [28:14] ثنائية الأبعاد، مما [28:15] يعني أنها متقطعة. [28:16] أعني، خاصة في [28:17] الكمبيوتر، فهي [28:18] متقطعة. لديك بكسلات [28:20] محددة. لذا، إذا كان [28:21] عليك الآن البحث على [28:23] طول هذا الخط القطري [28:24] الذي قد يقطع بعض [28:25] البكسلات دون غيرها، [28:27] ويقطعها بنسبة لا أعرف [28:28] 40%من بكسل و 40%من الآخر [28:30] ، فهذا مزعج جدًا [28:31] للعمل معه وبطيء جدًا [28:32] في التكرار، خاصة في [28:34] الرؤية الحاسوبية. [28:35] وهكذا، ما نفعله هو.. [28:37] حسنًا، من الناحية [28:38] المثالية سنعمل فقط مع [28:40] صور متوازية حيث لا [28:41] يوجد دوران محدد [28:42] بينهما، ولكن قد يكون [28:44] هناك انتقال. وهذا أمر [28:45] رائع، أليس كذلك؟ لأنه [28:47] أولًا وقبل كل شيء، [28:49] خطوطك التقابلية [28:50] أفقية. أعني، هذا.. [28:51] حسنًا، هذا رائع. ماذا [28:53] يعني ذلك؟ هذا يعني [28:54] أنه يمكننا البحث فقط [28:56] على طول إحداثي محدد [28:57] واحد. نحن نعلم أنه إذا [28:59] كان لديك نقطة هنا، [29:00] فأنت تعلم أن كل ما [29:01] عليك فعله هو البحث [29:03] على طول ذلك الصف [29:04] المحدد من الصورة في [29:05] الصورة الأخرى. وهذا [29:07] الآن أسرع بكثير من [29:08] الناحية الحسابية [29:09] للتعامل معه. وهو نعم، [29:11] يبسط بشكل أساسي مشكلة [29:12] المراسلات الخاصة بك، [29:14] وهي واحدة من [29:14] المشكلتين الأساسيتين [29:16] اللتين كنا نتحدث [29:17] عنهما سابقًا. لذا، [29:20] السؤال الحقيقي هو هل [29:22] من الممكن، إذا كان [29:23] لدينا صورتان تدور [29:25] وتنتقل بشكل عام، هل [29:27] من الممكن بطريقة ما [29:29] تصحيحهما بحيث ينتهي [29:31] بهما الأمر بخطوط [29:33] تقابلية متوازية أو [29:35] أفقية؟ بالطبع، [29:37] الإجابة هي نعم، لأننا [29:39] صممنا ذلك ليكون كذلك. [29:41] ولكن بشكل أساسي، ما [29:42] يمكنك فعله الآن، إذا [29:44] كنت تعرف مقدار [29:45] الدوران والانتقال [29:46] بين كاميرتين وبين [29:48] الصورتين اللتين [29:49] تنتجانهما، يمكنك في [29:50] الواقع القيام بشيء [29:52] يسمى التماثل. أعتقد [29:53] أنه يسمى التماثل في [29:55] الحالة العامة. لكن [29:56] هذا لا يهم. يمكنك [29:59] إجراء تحويل محدد على [30:01] صورة واحدة أو على [30:02] كلتا الصورتين من أجل [30:04] تصحيحهما بحيث تصبحان [30:06] بعد هذا التحويل عرضين [30:08] متوازيين لنفس المشهد. [30:12] لذا، يمكنك أن ترى [30:13] بالطبع أن هذا سيؤدي [30:15] إلى تشويه الصورة، [30:16] ولكن هذا أمر علينا [30:17] قبوله كجزء من طبيعة [30:19] العمل. بالتأكيد يمكنك [30:26] ذلك. أعني، قد نرى هذا [30:28] لاحقاً في الشرائح، [30:30] ولكن في الأساس، معظم [30:31] أجهزة الاستشعار [30:32] الروبوتية تضع [30:33] الكاميرات جنباً إلى [30:34] جنب، لأنك بذلك لا [30:35] تضطر للتعامل مع هذا [30:36] الأمر. لكننا نتحدث [30:37] بشكل عام من منظور [30:39] نظري، فهذه إحدى الطرق [30:41] التي يمكنك من خلالها، [30:43] انطلاقاً من كاميرتين [30:44] مائلتين بشكل عشوائي، [30:46] الحصول على صور مصححة [30:48] يسهل التعامل معها [30:50] حسابياً. ولكن، نعم، [30:51] هذا هو ما يتم فعله في [30:53] الواقع العملي. حسناً. [30:59] إذا عدنا إلى نظرة [31:01] عامة رفيعة المستوى [31:02] لما نقوم به وما نحاول [31:04] حله. لدينا هاتان [31:06] المشكلتان، وهما دمج [31:07] السمات التي نرصدها [31:09] بواسطة كاميرتين أو [31:10] أكثر. وهذا ما يسمى [31:12] بالمراسلة أو التطابق. [31:13] أي العثور على نقطة [31:15] تطابق نقطة أخرى. ثم [31:17] يتعين علينا، [31:18] باستخدام هذه النقاط [31:20] المتطابقة، إعادة [31:21] بناء المشهد الذي [31:23] صورناه في أبعاد [31:24] ثلاثية. ولحل مشكلة [31:29] التطابق هذه تحديداً، [31:31] نحتاج إلى إيجاد [31:33] ملاحظات تطابق P، أي [31:35] نحتاج إلى إيجاد [31:36] ملاحظات P prime تطابق P. [31:38] وهذا سؤال آخر طُرِح [31:40] سابقاً. وهناك طريقتان [31:45] رئيسيتان يمكننا [31:46] استخدامهما للقيام [31:47] بذلك. الأولى تعتمد [31:49] على المساحة. تأخذ هذه [31:51] الخوارزميات عادةً في [31:52] الاعتبار رقعة صغيرة، [31:54] كما هو موضح هنا، في [31:55] صورة واحدة، ثم تبحث [31:57] عن الرقعة الأكثر [31:58] تشابهاً في صورة أخرى. [32:00] ويمكنك القيام بذلك عن [32:01] طريق بعض مقاييس [32:02] التشابه البصري أو [32:04] مقاييس الارتباط [32:05] البصري. الأمر يعود [32:07] إليك كمصمم. لكن الجيد [32:09] هو أنه إذا كانت لديك [32:10] هذه الصورة المصححة، [32:12] التي تحدثنا عن كيفية [32:14] الحصول عليها، فإذا [32:16] كان لدي رقعة صورة في [32:18] صورة ما، يمكنني [32:19] ببساطة مسح نفس الصف [32:21] تماماً ومعرفة ما إذا [32:23] كنت أستطيع العثور على [32:25] رقعة صورة تبدو [32:26] متشابهة. الآن، تكمن [32:30] ميزة استخدام طريقة [32:31] التطابق القائمة على [32:33] المساحة في أنها كثيفة [32:35] جداً. هذا يعني أنه [32:38] يمكنك أساساً تغطية [32:40] صورتك بالكامل بنقاط [32:42] تود مطابقتها، ولأنك [32:44] تعلم، فأنت لا تنظر [32:46] فقط إلى بكسل واحد. [32:48] سيكون من الصعب جداً [32:49] مطابقة ذلك. أنت تمتلك [32:51] البكسل المفرد [32:51] بالإضافة إلى بعض [32:52] السياق المحيط به. لذا [32:53] ، يمكنك القيام بعمل [32:55] جيد جداً في مطابقة [32:56] رقعة في صورة ما مع [32:57] رقعة في صورة أخرى. [32:59] المشكلة هي أنه في [33:00] الطرق التي تتعامل مع [33:02] مناطق تكون فيها [33:03] الصورة موحدة تماماً، [33:05] مثل إذا أردت التقاط [33:07] صورة لهذه السبورة [33:08] وحاولت مطابقة صورتين [33:10] لها، وهي تفتقر إلى [33:11] الملمس والمعالم، فقد [33:13] تفشل الطرق المعتمدة [33:15] على المناطق. وبالتالي [33:17] ، فإن كل تلك [33:18] المعلومات الكثيفة [33:19] والمفيدة حول هذا [33:21] التطابق الكثيف الذي [33:23] تريده، تذهب هباءً. [33:25] لذا، هناك طريقة أخرى [33:26] شائعة وهي الطرق [33:28] المعتمدة على المعالم. [33:31] هذه الخوارزميات [33:32] تحاول أولاً استخراج [33:34] بعض المعالم البارزة [33:36] في الصور ثم تجري [33:37] المطابقة بينها. [33:41] وعندما أقول معالم [33:42] بارزة، فأنا أعني [33:44] نقاطاً في الصورة حددت [33:46] الخوارزمية أنها قوية [33:48] ومقاومة لتغيرات [33:50] الإضاءة، أو الدوران، [33:52] أو تغيير الحجم، وما [33:54] إلى ذلك. وهناك العديد [33:56] من الخوارزميات [33:58] الشائعة لهذا الغرض. [33:59] ربما سمعت عن بعضها [34:01] مثل SIFT. ربما سمعت هذا [34:03] المصطلح من قبل، أو SURF [34:05] ، أو ORB. هذه مجرد أسماء [34:07] مختلفة لخوارزميات [34:09] متنوعة تجد معالم قوية [34:11] ومقاومة لتغيرات [34:13] الحجم، والإزاحة، [34:14] والتوجه، والدوران، [34:16] وما شابه ذلك. المشكلة [34:19] في الطرق المعتمدة على [34:20] المعالم، أو لنقل [34:22] ميزتها، هي أنها أكثر [34:23] قوة. لذا، حتى لو كان [34:25] لديك صور تفتقر للملمس [34:27] وتحاول مطابقتها معاً [34:28] ، فقد تجد سهولة أكبر [34:30] في إيجاد التوافقات. [34:32] المشكلة هي أنك عادة [34:33] لا تحصل على تغطية [34:35] كثيفة وجيدة للصورة. [34:36] لذا، رغم حصولك على [34:38] تطابق جيد، ستجد عدداً [34:40] أقل من النقاط. [34:41] وبالتالي، من المحتمل [34:43] أن تحصل على خريطة عمق [34:45] متناثرة كنتيجة لذلك. [34:48] ثم ستحتاج إلى إجراء [34:50] استيفاء لها وقد تواجه [34:51] أخطاءً أثناء العملية. [34:54] إذاً، إذا كان لدينا [35:00] صورتان متوازيتان [35:01] ونقاط متطابقة بينهما [35:03] باستخدام إحدى هذه [35:05] الخوارزميات، فيمكننا [35:07] أخيرًا محاولة حل [35:08] مشكلة إيجاد النقطة P [35:10] في العالم الحقيقي [35:11] بناءً على ما رأيناه [35:13] في هاتين الصورتين. [35:17] إذًا، الطريقة التي [35:19] يمكننا القيام بذلك [35:20] بها هي عبر التثليث. [35:21] هذا أمر رأيتموه من [35:23] قبل، حيث تُستخدم [35:24] المثلثات المتشابهة [35:26] لمعرفة مدى بُعد شيء [35:27] ما عن الكاميرا، من [35:29] الناحية النظرية على [35:30] الأقل. ولذا، يمكننا [35:33] فعل ذلك من خلال تعريف [35:35] ما يسمى بالتباين ( [35:36] disparity). التباين هو [35:39] الفرق في المسافة بين [35:41] نقطة في إحدى الصورتين [35:43] ونظيرتها في الصورة [35:44] الأخرى. ومن السهل [35:51] إثبات ذلك، حيث نعرض [35:53] الصيغة الناتجة على [35:55] اليمين، ومن خلال [35:57] مقارنة المثلثات [35:59] المتشابهة يتبين أن [36:00] التباين، وهو هنا p u [36:02] ناقص p u prime، يتناسب [36:04] عكسياً مع المسافة z [36:06] للنقطة P من مستوى [36:08] الصورة. وهو يتناسب [36:12] طردياً مع خط الأساس B. [36:14] وسنتحدث أكثر عن هذا، [36:16] ولكن هذا هو السبب في [36:17] أن وجود كاميرات [36:19] بمسافات مختلفة، سواء [36:21] كانت متباعدة أو [36:22] متقاربة، له خصائص [36:24] مختلفة عند التعامل مع [36:26] إعادة البناء ثلاثي [36:27] الأبعاد. إذًا، يمكن [36:31] استخدام هذه المعادلة [36:33] لحساب العمق من مسافة [36:34] خط الأساس، والبعد [36:36] البؤري الذي نعرفه، [36:37] بالإضافة إلى هذا [36:38] التباين الذي حصلنا [36:40] عليه من مطابقة النقاط [36:41] في الصورتين. وكما [36:43] أشرت سابقاً، هناك بعض [36:45] الخصائص لوجود خطوط [36:46] أساس بأحجام مختلفة. [36:53] فإذا كان لديك خط أساس [36:55] كبير جداً، يمكنك [36:57] تمييز النقاط البعيدة [36:59] بشكل جيد للغاية. [37:06] المشكلة هي أنه إذا [37:08] كانت الكاميرات [37:09] متباعدة جداً، فقد لا [37:10] تظهر النقاط الموجودة [37:12] في إحدى الصورتين في [37:13] الصورة الأخرى. وبذلك [37:15] تفقد جزءاً من الصورة [37:16] لا يمكنك رؤيته لأن [37:17] الكاميرات متباعدة [37:19] أكثر من اللازم. أما [37:20] الأمر الآخر هو أنه [37:21] إذا كانت الكاميرات [37:23] قريبة جداً من بعضها، [37:24] فلن تواجه مشكلة [37:25] المطابقة لأن معظم [37:26] النقاط في إحدى [37:27] الصورتين ستكون [37:28] موجودة في الأخرى. [37:30] المشكلة هي أنك ستحصل [37:31] على الكثير من الخطأ [37:32] في العمق لأن قيم [37:33] التباين لديك ستكون [37:34] صغيرة جداً. وستكون [37:35] التباينات صغيرة جداً [37:37] بالفعل. وقد تكون حتى [37:38] أصغر من حجم البكسل [37:40] الواحد للنقاط [37:41] البعيدة بما فيه [37:42] الكفاية. [37:42] >> عندما تقوم بتصحيح [37:44] صورتين بحيث تكون [37:45] مستويات الصورة [37:47] متوازية مع بعضها [37:48] البعض، ماذا يحدث [37:50] للبعد البؤري؟ إذن [37:51] يصبح ذلك مختلفاً [37:53] أيضاً؟ [37:54] >> همم. لا، فعندما تقوم [38:00] بهذا التحويل، ما [38:02] تفعله في الواقع هو [38:04] مجرد إصلاح الدوران [38:05] بحيث تصبح متوازية. [38:10] ذلك لأنك لا تزال [38:11] تحتفظ بنقطة الأصل خلف [38:13] مستوى الصورة، وتقوم [38:14] فقط بتدوير مستوى [38:16] الصورة هذا بحيث يصبح [38:17] الآن موازياً للآخر. [38:19] أو في هذه الحالة، في [38:20] هذه الحالة قمت بتدوير [38:22] كلتيهما. لكن، نعم. لذا [38:25] . نعم، هل يجيب هذا على [38:28] سؤالك؟ لكنني سأقول [38:34] هذا، الشيء الآخر هو [38:36] حتى لو تغير البعد [38:38] البؤري لديك. لا أعلم، [38:41] نعم، أنا أعرف. إنه ليس [38:43] ، إنه ليس مصدر قلق [38:44] ببساطة لأنه يحافظ على [38:45] جميع الخصائص الأخرى [38:46] للكاميرا كما هي. كل ما [38:47] يفعله حقاً هو تغيير [38:49] مصفوفة الدوران R التي [38:50] تدور بها الصورتان [38:52] بالنسبة لبعضهما. أين [38:56] كنا؟ حسناً، كنا هنا. [38:58] إذن، مخرجات القيام [38:59] بعملية التثليث هذه [39:01] للعديد من النقاط [39:02] المتقابلة تسمى خريطة [39:04] التباين. وهو اسم [39:05] مناسب لأنك تستخدم [39:07] التباين لحساب ذلك. [39:09] ولكن بشكل أساسي، تحصل [39:10] على صورة تبدو مثل [39:12] التي على اليمين، حيث [39:13] يمكنك تلوينها بحيث [39:15] تكون النقاط الأفتح [39:16] أقرب إلى الكاميرا [39:18] والنقاط الأغمق أبعد. [39:20] ولكن بشكل أساسي، [39:22] بالنظر إلى وجود [39:24] توافقات كثيفة من صورة [39:26] إلى أخرى، يمكنك حساب [39:27] التباين، وهو ذلك [39:29] الفرق في الموضع في [39:31] الصورة لنقطة ما وأخرى [39:33] ، ومن ثم يمكنك حساب [39:34] العمق. والسؤال المثير [39:38] للاهتمام هو، إذا نظرت [39:39] إلى هاتين الصورتين، [39:41] يبدو أنه يمكننا، ربما [39:43] يكون الأمر صعباً [39:44] علينا لأن الصورتين [39:45] تبدوان متشابهتين [39:47] جداً، ولكن يبدو أنه [39:48] يمكنك التوصل إلى [39:50] إعادة بناء ثلاثية [39:51] الأبعاد قوية للمشهد. [39:53] ولكن إذا نظرنا إلى [39:54] اليمين هنا، نعم، يبدو [39:55] أننا توصلنا إلى إعادة [39:56] بناء ثلاثية الأبعاد [39:57] جيدة، ولكن لدينا هذه [39:58] المناطق السوداء. وهذا [40:00] أمر غريب بعض الشيء. ما [40:01] هي هذه المناطق [40:02] السوداء؟ أعني، لماذا [40:04] لدينا بعض النقاط التي [40:06] لا يمكننا استخلاص أي [40:07] معلومات عنها؟ حسناً، [40:09] الإجابة الأولى، [40:10] وخاصة أن هذا شيء [40:11] تحدثنا عنه سابقاً، [40:13] خاصة للجانب الأيسر، [40:14] هي أن لدينا بعض [40:15] النقاط في صورة واحدة [40:17] لا يمكننا مطابقتها مع [40:18] الأخرى لأن الكاميرا [40:20] لا تستطيع رؤيتها. أما [40:22] النقاط الأخرى، فهي [40:23] تتعلق بالحجب. وهذه [40:25] مشكلة جوهرية أخرى في [40:26] الرؤية الحاسوبية، [40:28] وهي حالة حجب الأشياء [40:29] بواسطة أجسام تقع [40:31] أمامها. وهي بذلك تشكل [40:32] نوعاً من المظاهر [40:33] الشبيهة بالظلال. أعني [40:35] أنه من منظور الرؤية [40:37] الحاسوبية، يبدو [40:38] الإشغال بهذا الشكل [40:40] على أية حال. لديك جسم [40:41] يحجب جسماً آخر خلفه. [40:45] إذاً لدينا الآن هذا [40:49] النوع من الحلول إذا [40:51] كان لدينا كاميرتان [40:52] ومشهد واحد، حتى مع [40:54] وجود دورانات عامة وكل [40:56] ذلك. ماذا لو كان لدينا [41:00] كاميرات متعددة ومشهد [41:02] واحد؟ هل يمكننا تحقيق [41:04] أداء أفضل؟ أو على [41:05] العكس، ماذا لو كان [41:07] لدينا كاميرا واحدة [41:08] ولكنها تتحرك عبر [41:09] المشهد؟ لأنه في [41:10] الحقيقة، نعم، امتلاك [41:12] كاميرتين أمر رائع. [41:13] ولكن ماذا لو كان ذلك [41:15] مكلفاً للغاية؟ ماذا [41:16] لو كنت تريد فقط [41:17] امتلاك كاميرا واحدة [41:18] وتحريكها وتدويرها [41:20] حول جسم تريد مسحه [41:21] ضوئياً؟ إذا فكرت في [41:22] الأمر، فإذا كان الجسم [41:24] ثابتاً وأخذت لقطات كل [41:26] ثانية، فإن تحريك هذه [41:28] الكاميرا يشبه امتلاك [41:30] ثلاث أو أربع كاميرات [41:32] موزعة بشكل مختلف في [41:33] المشهد. في تقنية " [41:36] الهيكل من الصور [41:37] المزدوجة"، نعالج [41:39] مشكلة كيفية استعادة [41:41] هيكل البيئة من صورتين [41:43] للمشهد. أما هنا، في " [41:45] الهيكل من الحركة"، [41:46] سنتحدث عن استعادة [41:47] الهيكل عندما تكون [41:49] الوضعية النسبية [41:50] للكاميرا مجهولة. أعني [41:52] ، إذا كنت أحرك [41:53] الكاميرا، فقد لا تكون [41:54] لدي أي فكرة عن قيم [41:55] الدوران والإزاحة. [41:56] خاصة لأنني إنسان [41:58] وأقوم بتحريكها بيدي. [41:59] حسناً، لنفترض أن [42:01] لدينا M من الكاميرات [42:03] مع تحويلات كاميرا MK [42:05] بينها. وهذا يشفر كلاً [42:08] من المعاملات [42:09] الداخلية والخارجية [42:10] للكاميرا. تذكروا أن [42:12] المعاملات الداخلية [42:13] تتعلق بالبعد البؤري، [42:15] والانحراف، وكل ما [42:16] تعلمتموه في المرة [42:18] السابقة. أما [42:19] المعاملات الخارجية [42:20] فهي الدوران والإزاحة. [42:23] والنقاط PJ الكبيرة [42:24] المختلفة هي نقاط [42:26] ثلاثية الأبعاد في [42:27] المشهد نريد إعادة [42:29] بنائها. هدفنا هنا هو [42:33] استعادة هيكل المشهد، [42:35] أي هذه النقاط ثلاثية [42:36] الأبعاد، بالإضافة [42:38] إلى حركة الكاميرات. [42:40] وبشكل محدد، مصفوفات [42:42] الإسقاط MK هذه، التي [42:44] نريد إيجادها أيضاً. [42:48] أول شيء من المهم [42:49] إدراكه هو أنه في " [42:50] الهيكل من الحركة"، من [42:52] المستحيل في الواقع [42:54] استعادة مقياس المشهد. [42:57] المشكلة التي نواجهها [42:59] هنا، لنفترض أن لدينا [43:01] مكعباً كبيراً، ثم آخذ [43:03] كاميرا وأنقلها إلى [43:05] الجانب الآخر وألتقط [43:07] صورة. سيبدو هذا [43:10] تماماً كما لو كان لدي [43:11] مكعب أصغر ووضعت [43:13] الكاميرا بالقرب منه [43:14] نوعاً ما، ثم قمت بنفس [43:16] التحويل، حسناً ليس [43:18] نفس التحويل تماماً، [43:19] بل تحويل مشابه. إذن، [43:21] المشكلة هي أنه في [43:23] الواقع من الصعب [43:24] استعادة المقياس [43:25] المطلق. وبشكل حدسي، [43:27] يتوافق هذا مع خاصية [43:29] معروفة للإسقاط [43:30] المنظوري، وهي [43:31] الطريقة التي نرى بها [43:33] العالم على أي حال. إذن [43:35] ، الحجم الظاهري [43:36] للأجسام يعتمد على [43:37] مسافتها عن الكاميرا. [43:39] لكن المشكلة هي أنه [43:40] إذا كان لديك جسم يبعد [43:42] ضعف المسافة، حسناً، [43:44] سيبدو تماماً مثل شيء [43:45] له نفس الحجم وأقرب [43:47] بمرتين. أو أصغر وأقرب [43:49] بمرتين. إذن، إعادة [43:52] البناء التي سنحصل [43:53] عليها ستكون صحيحة [43:55] وصولاً إلى تحويل [43:56] التشابه. تحويل [43:57] التشابه يعني الدوران [43:59] والإزاحة والقياس، [44:01] لأن من يدري كيف تم [44:02] بناء المشهد بالمعنى [44:04] المطلق. على مستوى [44:09] عالٍ، لن نتعمق كثيراً [44:11] في كيفية حل هذه [44:12] المشكلة فعلياً، ولكن [44:14] على مستوى عالٍ، في [44:16] هيكلية الحركة، هناك [44:18] نهج جبري يكمل ما كنا [44:20] نفعله سابقاً، حيث [44:22] تستفيد من مفهوم [44:24] المصفوفة الأساسية [44:25] بين صورتين لحل مشكلة [44:28] هيكلية الحركة. ما [44:30] يمكنك فعله هو حساب [44:32] هذه المصفوفة [44:33] الأساسية F أولاً عبر [44:35] خوارزمية النقاط [44:36] الثمان التي [44:37] تناولناها سابقاً. ثم [44:40] تستخدم هذا لتقدير [44:41] مصفوفات الكاميرا [44:43] الإسقاطية. وبعد ذلك [44:45] تستخدم هذه المصفوفات [44:46] لتحديد الإحداثيات [44:48] العالمية للنقاط. [44:50] والآن إذن، وبشكل [44:53] أساسي، نعم يمكنك [44:54] استخدام مصفوفات [44:55] الكاميرا الإسقاطية [44:56] هذه للحصول على [44:57] التثليث. يمكنك القيام [44:58] بالضبط بما فعلناه، [45:00] ولكنك تعمل بنوع من [45:01] أزواج الصور. ثم تصبح [45:02] المسألة أساساً مشكلة [45:03] رؤية مجسمة (ستيريو). [45:05] أنت تتجاهل نوعاً ما [45:06] كل الكاميرات الأخرى. [45:07] حسناً، أنت لا [45:08] تتجاهلها تماماً. [45:09] الأمر هو أنك تستخدم [45:11] الصورتين للحصول على [45:12] النقاط ثلاثية [45:13] الأبعاد. ثم تستخدم [45:15] الصورتين التاليتين [45:16] للحصول على نقاط [45:18] ثلاثية الأبعاد، [45:19] وهكذا. والآن، هناك [45:21] طريقة أخرى سأقول إنها [45:23] أكثر شيوعاً بكثير [45:25] تسمى "تعديل الحزمة". [45:27] تعديل الحزمة هو طريقة [45:29] غير خطية لحل مشكلة [45:30] هيكلية الحركة. لذا، [45:32] من الناحية الحسابية، [45:33] هو أكثر صعوبة، لكن [45:35] النتائج التي تحصل [45:36] عليها أفضل بكثير. [45:37] وهذا في الواقع ما [45:38] ستستخدمه العديد من [45:39] الطرق لاستنتاج [45:40] الهيكل من الحركة، لحل [45:41] مشكلة استنتاج الهيكل [45:42] من الحركة. إذًا، [45:44] طريقة عمل "ضبط الحزمة" [45:45] هي أنها داخليًا، تمثل [45:47] مسألة تحسين. وبشكل [45:49] محدد، تتمثل مسألة [45:50] التحسين في تقليل ما [45:52] يسمى بخطأ إعادة [45:53] الإسقاط. خطأ إعادة [45:55] الإسقاط هو أساسًا، [45:56] إذا كنت أعتقد أن نقطة [45:58] ثلاثية الأبعاد [45:59] موجودة هنا، ثم أحاول [46:01] إسقاطها مرة أخرى في [46:02] كاميراتي. ما مدى بعد [46:04] ذلك الإسقاط عن النقطة [46:06] الملحوظة الفعلية في [46:07] مستوى الصورة؟ لذا، [46:08] هذه طريقة، وسبب [46:10] تسميتها بضبط الحزمة [46:11] هو أنه إذا رسمت [46:12] الكثير من هذه [46:13] الإسقاطات من العديد [46:14] من النقاط ثلاثية [46:16] الأبعاد إلى مستوى [46:17] صورة الكاميرا، فإنها [46:18] تبدو نوعًا ما كحزم من [46:20] الخطوط. إذًا، أنت [46:21] تقوم بضبط حزم الخطوط [46:23] هذه. امم. إذًا، بشكل [46:27] أساسي، طريقة تحسين [46:29] ضبط الحزمة هذه، هي في [46:30] الواقع مشابهة جدًا [46:32] لطريقة التثليث التي [46:34] تحدثنا عنها. إلا أنها [46:36] أكثر تعقيدًا قليلًا [46:37] من الناحية الرياضية، [46:39] لكنها تمنحك أداءً [46:40] أفضل. لذا، تطبيق محدد [46:42] لاستنتاج الهيكل من [46:44] الحركة والذي يعد [46:45] مفيدًا جدًا في مجال [46:46] الروبوتات هو شيء يسمى [46:48] قياس المسافة البصري. [46:51] إذًا، قياس المسافة [46:53] البصري هو مسألة تقدير [46:55] حركة روبوت أو مركبة [46:56] باستخدام المدخلات [46:58] البصرية فقط. وبشكل [47:02] محدد، المبدأ الأساسي [47:03] وراء قياس المسافة [47:05] البصري هو تكرار بسيط [47:06] لنهج استنتاج الهيكل [47:08] من الحركة ثنائي العرض [47:09] ، حيث تأخذ لقطتين [47:10] للكاميرا، وتقوم بنهج [47:12] استنتاج الهيكل [47:13] بالكامل، ثم تكرره، [47:15] ويمكنك استعادة [47:16] مصفوفة الدوران [47:17] والإزاحة (R و T)، ثم [47:18] تستخدمهما لتحديد [47:19] مسافتك المقطوعة. إذًا [47:22] ، بشكل محدد، قياس [47:23] المسافة البصري لا [47:24] يهتم حقًا ببقية [47:25] الأمور، مثل إعادة [47:26] بناء الأبعاد [47:27] الثلاثية. هو يهتم فقط [47:29] بتحديد موقع الروبوت [47:30] وتحديد حركته عبر [47:32] المشهد. لكن ليس من غير [47:33] المألوف على الإطلاق [47:35] رؤية نتائج تُظهر [47:36] أيضًا الخريطة ثلاثية [47:38] الأبعاد للبيئة [47:39] الناتجة عن مثل هذه [47:40] الطرق. وفي الواقع، ما [47:42] نراه هنا، فإذا كان [47:44] بإمكان أي شخص تخمين [47:46] أين تم استخدام هذه [47:48] الصورة وخوارزمية [47:49] قياس المسافة البصرية [47:52] هذه، هل يتعرف عليها [47:53] أحد؟ إنها على المريخ. [47:56] لذا، فإن مركبات [47:57] المريخ الجوالة [47:58] تستخدم في الواقع قياس [48:00] المسافة البصري، [48:01] وتستخدم الرؤية [48:03] الحاسوبية لتحديد [48:04] موقعها. وما هو مثير [48:06] للاهتمام حول ذلك هو [48:08] أنك إذا فكرت في الأمر [48:09] ، حسنًا، أتساءل من [48:11] هنا من تخصص هندسة [48:12] الطيران والفضاء؟ آه، [48:14] هذا جيد بما يكفي. عدد [48:16] جيد بما يكفي من الناس. [48:18] سأخبركم الآن، المريخ [48:19] يبدو نوعاً ما مثل [48:21] الصحراء. والصحاري [48:22] تفتقر للمعالم، وهو [48:24] أمر مزعج، خاصة إذا [48:25] كنت تحاول العمل على [48:26] رؤية الحاسوب. لكن [48:28] الأمر الرائع هو أنه [48:29] في كل مرة تجد فيها بعض [48:31] الصخور أو شيئاً ما، [48:32] وهو ما يحدث بكثرة، [48:33] تحصل على كمية كثيفة [48:35] من المعلومات. وفي [48:36] الواقع، ما نعرضه لكم [48:37] هنا تحديداً هو صورة [48:39] من كاميرا مركبة [48:40] المريخ الجوالة. وهذه [48:42] الخطوط، فالنقاط [48:44] الزرقاء هي حيث كانت [48:45] تلك النقاط في إطار [48:47] سابق، والنقاط [48:48] الحمراء هي حيث أصبحت [48:50] الآن. لذا، ما ترونه هو [48:52] كيف تحركت الصورة أو [48:53] كيف تحركت المركبة [48:55] للأمام بين صورة وأخرى [48:57] وكيف تم سحب كل من هذه [48:59] البكسلات للخلف. ربما [49:01] أخطأت في ذلك. ربما [49:02] اللون الأحمر هو حيث [49:03] كانت، نعم. الأحمر هو [49:05] حيث كانت من قبل، [49:05] والأزرق هو حيث أصبحت [49:07] الآن. وهكذا تحركت [49:08] البكسلات للخلف. حسناً [49:11] ، إذاً هذا كل ما لدي [49:14] لأقوله عن إعادة [49:15] البناء ثلاثي الأبعاد. [49:17] لكن في المرة القادمة، [49:19] ستطلعون على طرق أكثر [49:21] تعمقاً في رؤية [49:22] الحاسوب، وتحديداً [49:24] تلك التي تتعامل مع [49:25] تعديل خصائص الصور [49:27] وتطبيق عمليات مختلفة [49:29] عليها. تحديداً، مثل [49:31] كيف يمكنك تشويش صورة؟ [49:33] وأيضاً، كيف يمكنك [49:34] القيام بشيء مثل كشف [49:36] الحواف في الصور؟ إذاً [49:37] ، هذا كل ما لدي لهذا [49:39] اليوم.