الأسئلة المتكررة#
ما الاختلافات بين CMUcam1 وCMUcam2؟#
مقدمة#
تتضمن CMUcam2 كل وظائف CMUcam1 في صورة محسّنة والكثير غير ذلك. فيما يلي نصف باختصار الوظائف الجديدة والاختلافات. قد ترغب أيضًا في الاطلاع على إجابة سؤال كيفية تقرير ما إذا كنت ستشتري CMUcam1 أو CMUcam2.
نظرة عامة على العتاد#
هناك اختلافان رئيسيان في العتاد مهمّان، تستخدم CMUcam2 معالجًا مختلفًا عن CMUcam1 وتتضمن CMUcam2 شريحة مخزن مؤقت للإطارات بينما CMUcam1 لا تتضمنها.
تستخدم CMUcam2 المعالج SX52 وتستخدم CMUcam1 المعالج SX28، وكلاهما من سلسلة معالجات SX من Ubicom. في كلتا الحالتين يعمل المعالج بتردد 75 ميجاهرتز لذا لا يوجد فرق في سرعة المعالج أو القدرة الحسابية. تتمثل مزايا المعالج SX52 في أنه يحتوي على ذاكرة وصول عشوائي أكبر (262 مقابل 136 بايت)، وذاكرة قراءة فقط أكبر (4096 مقابل 2048 كلمة)، وعدد أكبر من أطراف الإدخال/الإخراج. المزيد من ذاكرة RAM وROM يعني أننا استطعنا كتابة كود أكثر تعقيدًا مما سمح لنا بدمج وظائف أكثر في CMUcam2. العدد الأكبر من أطراف الإدخال/الإخراج يعني أنه تبقى لدينا أطراف أكثر لوظائف أخرى -- مثل المزيد من السيرفوهات، والمزيد من وصلات التهيئة، وغيرها.
الفرق الكبير بين النظامين هو أن CMUcam2 تتضمن شريحة المخزن المؤقت للإطارات AL422B من AverLogic بينما CMUcam1 لا تتضمنها. يتيح هذا لعتاد CMUcam2 التقاط إطار واحد كامل بسرعة وتخزينه في ذاكرة المخزن المؤقت للإطارات. لهذا عدد من المزايا:
معالجة أكثر تعقيداً. في CMUcam1 كان على المعالج أن يعالج تدفق بيانات البكسل أثناء تدفقه كما تخرجه وحدة الكاميرا. ساعد هذا التصميم في تقليل تعقيد وتكلفة عتاد النظام. لكنه حدّ من تعقيد المعالجة لأنه كان يجب أداؤها في الزمن الحقيقي بين البكسلات أو بين صفوف الصورة. ولأن المعالج في CMUcam2 يصل إلى بيانات البكسل من مخزن الإطارات المؤقت بوتيرته الخاصة، يمكنه إجراء معالجة أكثر تعقيداً لكل بكسل.
معالجة أسرع. الوجه الآخر لعدم الاضطرار للبقاء متزامناً مع تدفق بكسلات وحدة الكاميرا هو أن المعالج لا يضطر إلى انتظار وحدة الكاميرا عندما يحتاج إلى بيانات البكسل. إن إلغاء زمن الانتظار هذا يعني أن معالج CMUcam2 يمكنه فعلياً معالجة إطار أسرع مما يستطيع CMUcam1 حتى وإن لم يكن المعالج أقوى بأي شكل.
عمليات متعددة لكل إطار. لأن الصورة المخزّنة في مخزن الإطارات المؤقت لا تتغير، يمكن لـ CMUcam2 إجراء عمليات متعددة على إطار واحد. فمثلاً، يمكن كشف الحركة، وحساب إحصاءات المنطقة، وتتبع ألوان متعددة، كل ذلك على إطار واحد.
تفريغات إطارات أفضل. لأن CMUcam1 كان عليه مزامنة بيانات تفريغ الإطار المُرسلة مع تدفق بيانات وحدة الكاميرا، لم يكن بإمكانه إرسال سوى عمود واحد من البيانات لكل إطار كاميرا. وهذا يعني أن أجزاء مختلفة من الصورة كانت تُلتقط في أوقات مختلفة، لذا فإن الأجسام سريعة الحركة كانت تظهر ملطخة عبر تفريغات إطارات CMUcam1. وبما أن CMUcam2 ينقل الصورة من البيانات الثابتة في مخزن الإطارات المؤقت، لم تعد هذه مشكلة.
معالجة أفضل لمعدلات الباود المنخفضة. وجود مخزن إطارات مؤقت يعني أيضاً أن توقيت البيانات التي يرسلها CMUcam2 يمكن فصله تماماً عن توقيت البيانات المقروءة من وحدة الكاميرا. وهذا يعني أن بيانات CMUcam2 من تفريغات الإطارات وأوضاع الأسطر النقطية لا تتغير عند تغير معدل باود الاتصالات، إذ سينقل CMUcam2 نفس بيانات الإطار أو الصورة النقطية إلى المعالج المضيف بغض النظر عن معدل الباود. ومع ذلك فإن عدد الإطارات المعالجة في الثانية قد يظل يتغير مع معدلات الباود الأبطأ لأنه لا يزال بحاجة في النهاية إلى إكمال إرسال جميع بيانات إطار واحد قبل إمكانية معالجة الإطارات التالية.
تشغيل أفضل لوحدة الكاميرا. لكي يظل المعالج في CMUcam1 متزامناً مع تدفق البيانات القادم من وحدة الكاميرا، كان لا بد من إبطاء معدل إطارات وحدة الكاميرا إلى 17 إطاراً في الثانية. يتيح لنا مخزن الإطارات المؤقت الذي يستخدمه CMUcam2 تشغيل وحدة الكاميرا بسرعة الإطار الكاملة. إحدى مزايا ذلك أن ضبط التعريض التلقائي وموازنة البياض في الكاميرا يمكن أن يعملا بسرعة أكبر لأنهما لا يستطيعان إجراء سوى تعديل واحد لكل إطار وأصبح الآن هناك عدد أكبر من الإطارات في الثانية. الميزة الثانية أن خرج الفيديو التناظري بالأبيض والأسود (الذي يعمل فقط عندما تعمل الوحدة بمعدل الإطار الكامل) يمكن استخدامه بينما يعالج CMUcam2 بيانات الصورة، وهو ما لم يكن ممكناً مع CMUcam1.
نظرة عامة على الوظائف#
تنفّذ CMUcam2 كل وظائف CMUcam1 وتضيف أيضًا الكثير من الوظائف الجديدة. فيما يلي ملخص.
تتبع الألوان. ينفّذ CMUcam2 تتبع الألوان تماماً كما فعل CMUcam1. وكما في CMUcam1، يُنفَّذ وضع سطر نقطي اختياري ينقل صورة نقطية للبكسلات المتتبَّعة. وهناك أيضاً بعض التحسينات. فهناك وضع سطر اختياري جديد يوفر إحصاءات للبكسلات المتتبَّعة لكل صف، بما في ذلك متوسط ومواضع الحد الأدنى والأقصى للبكسلات المتتبَّعة. وهذا مفيد جداً لتتبع الخطوط. وهناك أيضاً وضع اختياري جديد يمكن فيه عكس تفسير حدود التتبع. في هذا الوضع تُعتبر البكسلات خارج حدود التتبع "جيدة". وهذا مفيد لتتبع جسم أمام خلفية متجانسة -- فكّر في مؤثرات الشاشة الزرقاء الخاصة. وهو مفيد أيضاً لكشف الحواف عند تمكين فرق البكسل (الموصوف أدناه). كما تم تحسين خيار ترشيح الضوضاء للسماح بضبط مقدار الترشيح في الحالات المزعجة بالضوضاء.
إحصاءات الصورة. ينفّذ CMUcam2 حساب إحصاءات المتوسط والتباين لمناطق الصورة تماماً كما فعل CMUcam1. وكما في CMUcam1، يُنفَّذ وضع سطر اختياري ينقل متوسط كل سطر من الصورة. وهناك أيضاً وضع سطر محسّن جديد يتضمن اختيارياً معلومات التباين على أساس كل سطر على حدة.
كشف الحركة. جديدة تماماً في CMUcam2 هي أوامر كشف الحركة (فرق الإطارات). يمكن استخدام هذه الأوامر لتوجيه CMUcam2 لالتقاط نسخة منخفضة الدقة من الصورة الحالية ومقارنتها باستمرار بالصور الجديدة الواردة. تُبلغ الحزم من CMUcam2 عما إذا كان أي جزء من الصورة يتغير بأكثر من مقدار محدد، مما قد يشير إلى وجود حركة. يمكن لهذه الحزم أن تصف مركز ثقل وامتداد كتل الصورة المتغيرة أو أن توفر صورة نقطية لكتل الصورة التي تغيرت. يمكن أيضاً دمج هذا الوضع مع فرق البكسل (الموصوف أدناه) لجعل كشف الحركة أكثر مناعة ضد التغيرات في الإضاءة.
حساب المدرجات التكرارية. جديدة تماماً في CMUcam2 هي أوامر حساب المدرج التكراري (histogram). يمكن استخدام هذه الأوامر لالتقاط مدرج تكراري أحادي البعد لقناة لون واحدة بدقة تصل إلى 28 حاوية (bin). توفر المدرجات التكرارية معلومات مفيدة تلخّص مظهر الصورة. ومع برمجة إضافية على المعالج المضيف يمكن استخدام هذه المعلومات للمساعدة في كشف العوائق أو أجسام أو مواقع محددة.
تنفيذ نافذة الصورة. ينفّذ CMUcam2 القدرة على قصر المعالجة على منطقة صغيرة (نافذة فرعية) من الصورة الكاملة تماماً كما فعل CMUcam1. في CMUcam2 تكون هذه الوظيفة أكثر فائدة لأنه يمكن استخدامها للفحص الدقيق للنوافذ الفرعية لصورة واحدة مخزّنة في مخزن الإطارات المؤقت. أيضاً، يمكن استخدام تقليل حجم النافذة الرأسية لزيادة عدد الإطارات المعالجة في الثانية بشكل كبير عن طريق التقليل الكبير لعدد البكسلات التي يحتاج CMUcam2 إلى معالجتها.
تخصيص حزمة الخرج. ينفّذ CMUcam2 تخصيصاً للحزم أكثر مرونة بكثير من CMUcam1. فهناك أوامر تسمح للمستخدم بتخصيص كل حزمة يولّدها كل أمر بحيث تعيد فقط القيم اللازمة لتطبيق معين. وهذا يمكن أن يقلل بشكل كبير كمية البيانات المنقولة إلى المعالج المضيف والمعالَجة بواسطته في العديد من الحالات.
فرق البكسل. جديد تماماً في CMUcam2 هو وضع فرق البكسل الاختياري. في وضع فرق البكسل تُعالَج البكسلات مسبقاً قبل تمريرها إلى بقية كود CMUcam2. ترسل خطوة المعالجة المسبقة هذه قيم بكسل جديدة إلى بقية الكود تمثل الفرق بين قيمة البكسل الحالية والقيمة السابقة. وما يفعله هذا أساساً هو ترشيح كل شيء باستثناء الحواف الرأسية في الصورة. وهذه عملية قوية جداً ويمكن، مع برمجة إضافية على المعالج المضيف، استخدامها للمساعدة في كشف العوائق وتتبع الخطوط.
تقليل العينات. جديد تماماً في CMUcam2 هو وضع تقليل العينات الاختياري. في وضع تقليل العينات يقوم برنامج CMUcam2 بتقليل دقة صورة الكاميرا قبل معالجتها. وميزة ذلك أن عدد البكسلات المطلوب معالجتها ونقلها أقل بكثير. ولأن ذلك يتم بالبرمجيات، فإن تقليل العينات يؤدي إلى زيادة صغيرة جداً فقط في سرعة المعالجة. الفائدة الكبرى تكمن في تقليل كمية البيانات المنقولة. في حالة إطار صورة مُفرَّغ، يمكن لتقليل العينات أن يقلل بسهولة حجم البيانات ومن ثم يقلل زمن النقل بمعامل 2 أو 4 أو أكثر. وبالمثل عند استخدام أوضاع الأسطر النقطية يمكن تقليل حجم الصورة النقطية بشكل كبير، مما يقلل كمية البيانات التي يتعين على المعالج المضيف استقبالها ومعالجتها.
التحكم في السيرفو. كان CMUcam1 الأصلي يدعم سيرفو واحداً فقط وكان ذلك السيرفو يعمل بشكل صحيح فقط عند معدلات باود محددة وعندما يكون CMUcam1 في وضع التدفق. يدعم CMUcam2 ما يصل إلى خمسة سيرفوات. كود متحكم السيرفو في CMUcam2 مُنفَّذ كعملية في الخلفية بحيث تظل مخارج السيرفو مستقرة دائماً ويمكن استخدامه كما يُستخدم أي متحكم سيرفو آخر. بالإضافة إلى ذلك، يمكن تهيئة CMUcam2 للتحكم تلقائياً في سيرفوات الإمالة والدوران الأفقي. في هذا الوضع سيحدّث CMUcam2 مواضع السيرفو في كل مرة يُؤمَر فيها بحساب بيانات تتبع الألوان.
توفير الطاقة. جديدة تماماً في CMUcam2 هي أوضاع توفير الطاقة. في بعض التطبيقات لا يُطلب من CMUcam2 معالجة بيانات الصورة باستمرار. في هذه الحالات يمكن توجيه CMUcam2 للدخول في مجموعة متنوعة من أوضاع إيقاف الطاقة (أو السكون). لن تحدث أي أوامر تتبع أو تحكم في السيرفو عندما يكون CMUcam2 في أحد هذه الأوضاع. إرسال أمر تسلسلي بسيط يوقظ الكاميرا مجدداً في غضون بضعة أجزاء من الألف من الثانية.
ما الفرق بين استخدام وحدة OV6620 وOV7620 مع CMUcam2؟#
مقدمة#
من حيث القدرات، المستشعر OV7620 هو مستشعر بدقة أعلى (664x492 موقع مستشعر خام) من المستشعر OV6620 (356x292 موقع مستشعر خام). لكن لهذه الحقيقة علاقة ضئيلة جداً بالمسائل التي تنشأ عند التفكير في أي من هذين المستشعرين يناسب تطبيقك لـ CMUcam2 على أفضل وجه. فيما يلي قائمة بالاعتبارات.
الدقة#
بينما صحيح أن مستشعر OV7620 أعلى دقة من OV6620، بسبب الحجم الثابت لذاكرة المخزن المؤقت للإطارات في CMUcam2، تدعم CMUcam2 دقة واحدة فقط قدرها 160x239 لمستشعر OV7620. تدعم CMUcam2 وضع دقة منخفضة 88x143 ووضع دقة عالية 176x255 لمستشعر OV6620. لذا باستخدام OV6620 في وضع الدقة العالية يمكن فعليًا تحقيق تشغيل بدقة أعلى من وضع الدقة الواحدة المتاح لمستشعر OV7620.
معدل الإطارات#
مسألة أخرى متعلقة بالدقة هي معدل الإطارات الأقصى عند المعالجة المستمرة لتدفق من الصور. كلما انخفضت الدقة، قلّ عدد البكسلات التي تحتاج إلى معالجة وارتفع معدل الإطارات القابل للتحقيق. ورغم أنه يمكن تحقيق زيادة في معدل الإطارات بتغيير معدل تقليل العينات وحجم النافذة الافتراضية، فإن العدد الفعلي للبكسلات التي يخرجها المستشعر له تأثير أكبر بكثير. لهذا السبب، يمكن لـ CMUcam2 تحقيق معدل إطارات أعلى بكثير عندما يعمل OV6620 في وضعه منخفض الدقة مقارنة بوضع الدقة الوحيدة المتاح لـ OV7620.
خرج الفيديو التناظري#
فرق آخر بين المستشعرين هو صيغة خرج الفيديو التناظري لكل منهما. يُخرج المستشعر OV6620 بصيغة PAL التناظرية ويُخرج المستشعر OV7620 بصيغة NTSC التناظرية. في كلتا الحالتين يكون الخرج بالأبيض والأسود.
من المهم ملاحظة أنه في معظم استخدامات CMUcam2 لن يُستخدم الخرج التناظري. في التطبيق النموذجي تُنقل نتائج معالجة الصورة أو البكسلات الخام رقمياً عبر المنفذ التسلسلي إلى الحاسب المضيف أو المتحكم الدقيق لذا فهذه ليست مشكلة. ومع ذلك، إذا كان الفيديو المباشر بالأبيض والأسود مهماً، فقد ترغب في مراعاة صيغة خرج الفيديو التناظري.
ملخص#
توصيتنا هي أن وحدة OV6620 هي أفضل خيار لجميع التطبيقات تقريباً، خاصة بالنظر إلى تكلفتها الأقل ووقت المعالجة الأسرع القابل للتحقيق مع هذه الوحدة. في التطبيقات النادرة التي يُطلب فيها خرج فيديو تناظري أحادي اللون بصيغة NTSC قد ترغب في التفكير في OV7620.
هل هناك أي مشكلات معروفة في إصدارات البرنامج الثابت الحالية لـ CMUcam2؟#
نعم. في إصدار 1.00 لم يعمل أمر "RM" (Raw Mode) بشكل صحيح. يصلح إصدار 1.01 تلك المشكلة.
البرنامج الثابت في CMUcam2 قابل للترقية، لكن يلزم مبرمجة SX-Key (أو متوافقة) لفعل ذلك. ملفات "hex" لصور ROM متوفرة في صفحة التنزيلات.