4.20. الخلاصة

لقد استعرضتَ أجزاء سلسلة التصوير في الكاميرا التي تظهر في كل مرة يلتقط فيها برنامج نصي إطاراً:

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

  • شبكة المستشعر -- مصفوفة ثنائية الأبعاد من الصمامات الضوئية تحوّل الفوتونات إلى شحنة، حيث يقايض زمن التعريض والكسب التناظري بين السطوع وبين تشوّش الحركة والضوضاء. ويحدّد الغالق المتدحرج والغالق العام كيفية قراءة صفوف المصفوفة، وتقوم مجموعة صغيرة من المعايرات على الشريحة -- ضوضاء النمط الثابت للأعمدة، ومستوى الأسود، والبكسلات المعيبة، وتظليل العدسة -- بتنظيف البيانات قبل أن تغادر الشريحة. ويربط ناقلان الشريحة بالمتحكم الدقيق: ناقل تحكم I2C بطيء للسجلات، وناقل متوازٍ أو MIPI سريع للبكسلات.

  • اللون ومعالج إشارة الصورة -- تمنح مصفوفة مرشحات لون بايير كل بكسل أحد الألوان الأحمر أو الأخضر أو الأزرق؛ ويستوفي إلغاء بايير القناتين المفقودتين بالاستيفاء. ويجمع معالج إشارة الصورة بقية خط المعالجة معاً -- استخراج الإحصائيات، والموازنة التلقائية للأبيض، وإلغاء بايير، وتصحيح مصفوفة الألوان، وغاما، والتحجيم، والاقتصاص، والتعبئة النهائية في صيغة البكسل المطلوبة.

  • صيغ البكسل -- بايير الخام، وRGB888، وRGB565، وYUV422، وتدرج الرمادي، وBINARY، ومخرجات JPEG / PNG المضغوطة، تقايض بين حجم الذاكرة وبين دقة اللون وتوافق الخوارزميات اللاحقة. وRGB565 هي الصيغة الافتراضية للون النهائي لأنها تتوافق مع عرض كلمة المتحكم الدقيق وتُنصِّف تكلفة الذاكرة مقارنة بـ RGB888.

  • واجهة CSI البرمجية -- خمسة أسطر للإعداد بالإضافة إلى حلقة لقطة هي الشكل الذي يبدأ منه كل برنامج نصي. وتقرر مجمّعات مخزن الإطارات (مفرد، مزدوج، ثلاثي، أو FIFO الفيديو، أو المُشغَّل) كيفية مشاركة التطبيق والكاميرا للإطارات؛ وتغذّي قناة معاينة منفصلة أي برنامج تصحيح أخطاء متصل دون التنافس على مخازن التطبيق المؤقتة؛ وتغطي مقابض المستشعر الاتجاه، والتعريض، والكسب، وموازنة الأبيض، والحد الأقصى لمعدل الإطارات، ونمط اختبار شريط الألوان.

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

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

4.20.1. استخدام هذا المرجع لاحقاً

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

4.20.2. إلى أين تذهب من هنا

معالجة الصور هي الموضوع التالي الطبيعي. فمع وجود المخزن المؤقت في متناول اليد وفهم واجهة csi البرمجية، يبقى ما يجب فعله بالبكسلات: العتبات، وكشف الحواف، وإيجاد الكتل، وكشف الخطوط والأشكال، ورموز QR، وAprilTags، والاستدلال بالتعلم الآلي. وتتحول مجموعة الأدوات إلى وحدة image وفهرس دوالها على كائن Image. وكل شيء من هذا القسم يُحمَل إلى الأمام؛ فشكل الحلقة، ووضع مخزن الإطارات، وصيغة البكسل -- كل ذلك هو ما تعمل عليه دوال معالجة الصور.