VIDEO·CODEC
الفيديو · العقدة 07
↩ البوابة

حركة كل بِكسلالمبادئ الأولى

التدفّق البصري

متّجه الحركة في الكوديك يصف بلوكاً (و"أرخص تطابق" لا الحركة الحقيقية). لكن لبناء فلاتر متقدّمة — إبطاء، إقحام إطارات، تثبيت، تتبّع — نحتاج حركة كل بِكسل، حقيقية. هذا التدفّق البصري (optical flow).

تريد حركة كل بِكسل بين إطارين. فرضٌ معقول: سطوع البِكسل لا يتغيّر حين يتحرّك (نفس النقطة على الجسم، فقط في مكان آخر). أي I(x,y,t) = I(x+dx, y+dy, t+dt).

من هذا الفرض وحده، اشتقّ معادلة تربط حركة البِكسل (u,v) بتدرّجات الصورة. المشكلة الصادمة: ستحصل على معادلة واحدة بمجهولين (u,v)! لا يمكن حلّ مجهولين بمعادلة واحدة. لماذا؟ وما الذي ينقصك؟ (تلميح: انظر لحافةٍ مستقيمة تتحرّك — هل تستطيع معرفة حركتها على طولها؟)

معادلة قيد السطوع — واشتقاق المعضلة

بنشر تايلور لفرض ثبات السطوع نحصل على معادلة قيد التدفّق البصري:

optical flow constraint
Iₓ·u + Iᵧ·v + I_t = 0 Iₓ, Iᵧ = تدرّج الصورة مكانياً , I_t = تغيّرها زمنياً (u,v) = حركة البِكسل — مجهولان، معادلة واحدة!
مشكلة الفتحة (aperture problem) — حلّ اللغز

المعادلة الواحدة تحدّد فقط مركّبة الحركة العمودية على الحافة، لا المركّبة الموازية لها. السبب الحدسيّ: حافةٌ مستقيمة لانهائية تتحرّك على طولها تبدو ساكنة — لا معلومة محلّية تكشف الانزلاق الموازي. تنظر للعالم من "فتحة" صغيرة فترى الحركة العمودية فقط. تحتاج قيداً إضافياً لتحديد المجهولين معاً.

FIG 1 حقل تدفّق كثيف — اتجاه وسرعة كل بِكسل
كل سهم = حركة بِكسل (اتجاه + مقدار). الحقل الكثيف هو التدفّق البصري.
على عكس متّجه الحركة (بلوك واحد)، التدفّق يعطي متّجهاً لكل بِكسل. هذا ما يحتاجه الإبطاء وإقحام الإطارات والتثبيت.

القيود الإضافية — طريقتان كلاسيكيتان

الطريقةالقيد الإضافيالطبع
Lucas-Kanadeالحركة ثابتة داخل نافذة صغيرة (عدّة معادلات لمجهولين)كثيف-محلّي، متفرّق، سريع، جيّد للحركة الصغيرة
Horn-Schunckالتدفّق "ناعم" عالمياً (تنظيم/regularization)كثيف، حقل سلس، أبطأ

كلاهما يضيف افتراضاً يكسر مشكلة الفتحة: LK يفترض جواراً متّفقاً (فيجمع عدّة معادلات)، HS يفترض نعومة عالمية. هذا نمطٌ عام: المسألة ناقصة التحديد → أضِف قيداً معقولاً (prior) — ستراه يعود في التعلّم العميق.

الفرق الجوهري عن متّجه الحركة

متّجه الكوديك (٠٢) يطلب أرخص تطابق للضغط (قد يكون فيزيائياً خاطئاً). التدفّق البصري يطلب الحركة الحقيقية للبِكسل. الأوّل للضغط، الثاني للفهم والفلاتر. خلطهما خطأ شائع. (لكنهما يتلاقيان: التدفّق العصبيّ يُستعمل اليوم داخل الضغط المتعلَّم، العقدة ٠٩.)

  1. احسب تدرّجات الصورة Iₓ, Iᵧ (فرق أفقي/رأسي) وI_t (فرق بين إطارين).
  2. نفّذ Lucas-Kanade: لكل بِكسل، اجمع معادلات القيد من نافذة 5×5 حوله وحلّ نظام 2×2 (least squares) لـ(u,v). ارسم الحقل.
  3. أرِ مشكلة الفتحة: طبّقه على حافة مستقيمة طويلة تتحرّك قطرياً. لاحظ أن التدفّق يبدو عمودياً على الحافة فقط (المركّبة الموازية مفقودة) — حتى تضع نافذة تحوي زاوية أو نسيجاً.
  4. تطبيق: استعمل التدفّق لإقحام إطار وسطيّ (frame interpolation): حرّك كل بِكسل بنصف متّجهه. شاهد "إبطاءً" بدائياً — أساس فلاتر الـslow-motion.
الخلاصة

التدفّق البصري = حركة كل بِكسل، من فرض ثبات السطوع. لكنه ناقص التحديد (مشكلة الفتحة) فيحتاج قيداً (LK محلّي، HS ناعم). هو أساس الفلاتر المتقدّمة (إبطاء، تثبيت، إقحام). الآن نملك "حركة كل بِكسل" — فلنبنِ بها فلاتر حقيقية: تكبير ذكيّ، super-resolution، إقحام إطارات.