عملي هو الامتياز. التقييمات. قصص النجاح. أفكار. العمل و التعليم
بحث الموقع

تطبيق طرق التدفق البصري لتقدير إزاحة الصور. بناء التدفق البصري مادة التدفقات الدوامية بالطرق البصرية

تتحرك صور السطوع مع الكائنات المرصودة. التدفق البصري هو الحركة الظاهرة لصورة السطوع. من الناحية المثالية، يتوافق التدفق البصري مع مجال الحركة، لكننا سنبين أدناه أن هذا ليس هو الحال دائمًا.

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

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

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

ماذا نعني بالحركة الظاهرة لنمط السطوع؟ لنفكر في نقطة P على الصورة ذات سطوع E في الوقت الحالي (الشكل 12.3). ما هي النقطة P من الصورة التي ستتوافق معها في الوقت الحالي، وبعبارة أخرى، كيف تتحرك صورة السطوع في هذه الفترة الزمنية؟ عادة يوجد الكثير بالقرب من النقطة P

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

وهكذا، نلاحظ أن التدفق البصري في صورة متغيرة يتم تحديده بشكل غامض من خلال المعلومات المحلية. دعونا نوضح هذا بمثال آخر. لنفكر في منطقة ذات سطوع موحد في الصورة لا تتغير بمرور الوقت. "الأكثر منطقية" في هذه الحالة هو التدفق البصري الصفري. في الواقع، داخل بقعة متجانسة يمكننا تعيين أي سرعات نريدها للنقاط. على الرغم من أننا، على ما يبدو، نفضل أبسط تفسير لتغييرات الصورة المرصودة (في هذه الحالة، عدم وجود مثل هذه التغييرات).

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

إذا تغير السطوع بسلاسة، فيمكننا بعد ذلك توسيع الجانب الأيسر من المعادلة إلى سلسلة تايلور ومن هنا نحصل على

حيث يحتوي على رتب أعلى من الصغر بدءًا من

أرز. 12.3. حركة واضحة لنمط السطوع.

ليس من السهل تحديد النقطة P على خط مستوى السطوع C للصورة الثانية التي تتوافق مع نقطة معينة P على خط مستوى السطوع C للصورة الأولى.

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

من الثانية. دعونا نقلل ونقسم على ونذهب إلى الحد عند ثم نحصل عليه

التدفق البصري هو تقنية تستخدم في مجالات مختلفة من رؤية الكمبيوتر لتحديد التحولات والتجزئة واختيار الكائنات وضغط الفيديو. ومع ذلك، إذا أردنا تنفيذه بسرعة في مشروعنا، بعد أن قرأنا عنه في ويكيبيديا أو في أي مكان آخر، فمن المرجح أن نتعثر بسرعة كبيرة على حقيقة أنه يعمل بشكل سيء للغاية ويفشل عند تحديد التحولات في ترتيب 1-2 بكسل (على الأقل كان هذا هو الحال بالنسبة لي). ثم دعنا ننتقل إلى التطبيقات الجاهزة، على سبيل المثال، في OpenCV. هناك يتم تنفيذه بطرق مختلفة وليس من الواضح تمامًا سبب كون اختصار PyrLK أفضل أو أسوأ من تسمية Farneback أو شيء من هذا القبيل، وسيتعين عليك معرفة معنى المعلمات التي يوجد الكثير منها في بعضها التطبيقات. علاوة على ذلك، الأمر المثير للاهتمام هو أن هذه الخوارزميات تعمل بطريقة ما، على عكس ما كتبناه بأنفسنا. ما هو السر؟

ما هو التدفق البصري

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

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

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

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

النهج القياسي (طريقة لوكاس كانادي)

يتم تقديم وصف رياضي للخوارزمية بتفاصيل كافية في هذه المقالة، ولكنه يتطرق فقط إلى الجوانب النظرية.

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

يترك - الشدة عند نقطة ما (x، y) في الصورة الأولى (أي في الوقت t). في الصورة الثانية، تحركت هذه النقطة بمقدار (dx, dy)، بينما مر الزمن dt، ثم قمنا بتوسيع دالة الشدة إلى الحد الأول (لاحقًا سيتم ذكر السبب إلى الأول فقط)، وهنا المشتقات الجزئية بالنسبة للإحداثيات والوقت، أي في جوهرها تغيير في السطوع عند النقطة (x، y) بين إطارين.

ونعتقد أن النقطة احتفظت بشدتها، مما يعني
نحصل على معادلة واحدة بمجهولين (dx و dy)، مما يعني أنها لا تكفي لحلها، أي أنك لن تتقدم كثيرًا بهذه المعادلة وحدها.

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

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

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

هنا وضعتنا الرياضيات. لقد غرست فينا الشعور بأن جميع الوظائف من حولنا مستمرة ويمكن تمييزها عدة مرات. وبشكل عام، تعلمنا في المعهد كتابة تقريب دالة في محيط نقطة ما باستخدام صيغة تايلور، ونحن نستخدمها بلا تفكير وبفرح في كل مكان. الآن دعونا نفكر في المعنى المادي للمشتقات في هذا المكان؟ نريد استخدامها لتحديد التغير في قيمة دالة في حي محدود لنقطة ما، ويعطي المشتق فكرة عن حي متناهية الصغر. لتوسيع هذا الحي، سيكون من الممكن إضافة ترتيب أعلى من المشتقات إلى توسع تايلور، لكن هذا سيؤدي إلى عدم خطية في النظام، مما سيجعل حلها أكثر صعوبة، وستكون المزايا موضع شك، خاصة وأن في الممارسة العملية، نحن لا نتعامل مع دوال متواصلة ومتعددة قابلة للتفاضل، ولكن بشكل عام مع ما هي الدوال المنفصلة غير الواضحة. لذلك، سيكون من المنطقي أكثر البحث عن دالة g(x)، والتي في حالتنا المنفصلة f(x) + g(x) = f(x+1)، f(x) + 2g(x) = يتم استيفاء f(x) بأكبر قدر ممكن من الدقة +2)، وf(x) - g(x) = f(x-1)، وما إلى ذلك. وهكذا، في هذه الحالة لا نحتاج إلى مشتق، ولكن بعض الوظائف الخطية التي الأقرب إلى نقاط الدالة الأصلية. الحسابات الرياضية البسيطة تؤدي إلى الحل ، أين . إذا قمنا ببناء المشتقة باستخدام نقطة واحدة مجاورة على كل جانب، فسنكون محظوظين: في هذه الحالة تتطابق الصيغة مع صيغة الحساب التقريبي للمشتقات: g(x) = (f(x+1) – f(x-) 1)) / 2. عادةً، في OpenCV، عند حساب التدفق البصري Lucas-Kanade، يتم استخدام هذه الصيغة بالضبط، وسنعود إليها لاحقًا. ولكن إذا أخذت المزيد من النقاط، فستصبح الصيغة مختلفة تمامًا عن مخططات الفرق الكلاسيكية للمشتق الأول.

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

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

ومع ذلك، فإن هذه التدابير أيضًا لن تنقذنا من الحد من التحول المكتشف إلى 2-3 بكسل. وبالمناسبة، في OpenCV 1.0 كان هناك مثل هذا التنفيذ للتدفق البصري، وكان يعمل فقط في ظل ظروف مثالية وفي نوبات صغيرة جدًا.

ما يجب القيام به؟
باختصار، فإن Lucas-Kanade المعتاد جيد في تحديد التحولات الصغيرة، بحيث تكون الصورة مشابهة لتقريبها الخطي. لمكافحة ذلك، سنستخدم تقنية السيرة الذاتية القياسية - القياس المتعدد: سنبني "هرمًا" من الصور ذات المقاييس المختلفة (دائمًا ما يتم قياسها مرتين على طول كل محور، ومن الأسهل حسابها) ونستعرضها مع التدفق البصري من صورة أصغر إلى صورة أكبر فإن الإزاحة الصغيرة المكتشفة في الصورة الصغيرة ستقابل إزاحة كبيرة في الصورة الكبيرة، وفي الصورة الأصغر نكتشف إزاحة لا تزيد عن 1-2 بكسل، والانتقال من مقياس أصغر إلى مقياس أكبر، نستخدم النتيجة من الخطوة السابقة ونحسن قيم التحول. في الواقع، في OpenCV يتم تنفيذه بواسطة الدالة calcOptFlowPyrLK. استخدام هذه الخوارزمية الهرمية يسمح لنا بعدم الاهتمام بحساب خطي التقريب على عدة نقاط: من الأسهل أخذ مستويات أكثر من الهرم، وفي كل مستوى أخذ تقريب تقريبي لهذه الوظيفة. لذلك، يقوم OpenCV بالحساب باستخدام نقطتين متجاورتين فقط. وبالتالي، فيما يتعلق بتنفيذ الخوارزمية، تبين أن استنتاجاتنا حول ميزة الدالة التقريبية على المشتقة غير مجدية: بالنسبة لمثل هذا العدد من النقاط المرجعية، فإن المشتق هو أفضل دالة تقريبية.

ما هي تلك الأخرى هناك؟

هذه الخوارزمية ليست الخيار الوحيد لحساب التدفق البصري. في OpenCV، بالإضافة إلى تدفق Lucas-Kanade، هناك أيضًا تدفق Farneback وSimpleFlow، وغالبًا ما يشار إلى خوارزمية Horn-Schunck.

طريقة هورن-شونكتعتبر ذات طبيعة عالمية أكثر إلى حد ما من طريقة Lucas-Kanade. ويعتمد على افتراض أن التدفق البصري سيكون سلسًا إلى حد ما في جميع أنحاء الصورة بأكملها. من نفس المعادلة يُقترح الانتقال إلى الوظيفة، أي إضافة شرط عدم وجود تغيير حاد في التحولات مع معامل الترجيح α. يؤدي تقليل هذه الوظيفة إلى نظام من معادلتين:

في هذه المعادلات، يُقترح حساب اللابلاس تقريبًا: - الفرق مع القيمة المتوسطة. نحصل على نظام من المعادلات نكتبه لكل بكسل ونحل النظام العام بشكل متكرر:

في هذه الخوارزمية يقترحون أيضًا استخدام القياس المتعدد، ويوصون بقياس الصور ليس مرتين، ولكن بعامل 0.65

تم تنفيذ هذه الخوارزمية في الإصدارات الأولى من OpenCV، ولكن تم التخلي عنها لاحقًا.

فارنيباكمقترح لتقريب التغير في الشدة في الحي باستخدام صيغة تربيعية: I = xAx + bx + c مع مصفوفة متماثلة A (في الواقع، مع الأخذ في الاعتبار توسع تايلور إلى الحد الأول، أخذنا التقريب الخطي I = bx + c أي أننا الآن قررنا زيادة دقة التقريب) إذا تحركت الصورة داخل هذا الحي، فإننا نستبدل في التوسع التربيعي، ونفتح الأقواس، ونحصل على


.

الآن يمكننا حساب قيم A، b، c في كلتا الصورتين، ومن ثم سيصبح هذا النظام زائداً عن الحاجة بالنسبة إلى d (المعادلة الأولى محيرة بشكل خاص)، وبشكل عام يمكن الحصول على d من المعادلة الثانية: . وعلينا أن نلجأ إلى التقريب التالي: . دعونا نشير أيضا إلى البساطة , ثم نحصل ببساطة .

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

كالعادة، تحتوي هذه الخوارزمية على عدد من التعديلات والتحسينات، مما يسمح في المقام الأول باستخدام المعلومات المسبقة المعروفة - وهو تقريب أولي محدد للتدفق - ومرة ​​أخرى، القياس المتعدد.

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

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

ماذا لو لم نأخذ الشدة؟

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

يمارس

دعونا نجرب عمليًا الخوارزميات التي يقدمها لنا OpenCV.

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

تم وصف صيغة الإجراءات بالتفصيل في صفحة الدليل، وهنا سأقدم ترجمة موجزة مع تعليقاتي.

يتم تنفيذ Lucas-Kanade الكلاسيكي باستخدام هرم في إجراء calcOpticalFlowPyrLK. تحسب الخوارزمية التدفق المتناثر، أي أنه بالنسبة لمجموعة معينة من النقاط في الصورة الأولى، فإنها تقدر موضعها في الصورة الثانية. معلمات الإدخال واضحة تمامًا: صورتان إدخالتان، مجموعة من النقاط المدخلة والمخرجة، الحالة - متجه إخراج يشير إلى ما إذا تم العثور على النقطة المقابلة بنجاح، خطأ - متجه إخراج للأخطاء المقدرة للنقاط المقابلة، WinSize - حجم النافذة التي يحدث عليها المتوسط ​​الغوسي، أخذت 21x21 وعملت بشكل جيد، maxLevel – عدد الطبقات في الهرم ناقص واحد، أي عدد الطبقة الأخيرة، أخذت 5، معايير – شرط الخروج العملية التكرارية لتحديد التحول (يتم تقليل الخطأ بشكل متكرر) - ​​تركت هذه المعلمة بشكل افتراضي، الأعلام - أعلام إضافية، على سبيل المثال، يمكنك استخدام تقريب التدفق الأولي أو تحديد طريقة تقدير الخطأ، minEigThreshold - عتبة التدرج القيمة التي تعتبر المصفوفة تحتها مفردة، لقد تركتها افتراضيًا. منذ OpenCV 2.4.1، يمكن استخدام هرم محسوب مسبقًا من الصور ذات الحجم الكبير عند حساب التدفق.

نتيجة العمل هي أن التحولات الصغيرة والكبيرة تم اكتشافها بنجاح وثبات، فهي مقاومة للضوضاء الكبيرة إلى حد ما، ووقت التشغيل حوالي 10 مللي ثانية لـ 400 نقطة مع هرم مكون من 5 طبقات (على النواة i7 950).

بالمناسبة، يتم تنفيذ هذه الخوارزمية أيضًا على GPU (CUDA)، سواء الإصدارات الكثيفة أو المتفرقة.

يتم تنفيذ تدفق Farneback من خلال إجراء calcOpticalFlowFarneback، ويتم حساب التدفق الكثيف، أي تحول كل نقطة. المعلمات: صور الإدخال، تيار الإخراج بتنسيق مصفوفة عائمة ذات قناتين، يحدد pyr_scale نسبة المقياس بين طبقات الهرم، والمستويات - عدد المستويات في الهرم، وحجم Winsize - حجم النافذة التي يتم المتوسط ​​عليها يتم تنفيذ التكرارات - عدد التكرارات على كل مستوى، poly_n - حجم كثير الحدود الذي يتم من خلاله تقدير قيم A و b، poly_sigma - سيجما التمويه الغاوسي عند تجانس المشتقات، قيم المعلمات الموصى بها يشار إليها في الدليل، والأعلام - علامات إضافية، على سبيل المثال، يمكنك استخدام التقريب الأولي للتدفق أو المتوسط ​​​​على النافذة.

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

ينفذ تدفق SimpleFlow إجراء calcOpticalFlowSF (مرة أخرى، يتم حساب التدفق الكثيف)، ويحتوي على العديد من المعلمات الغامضة بدون قيم افتراضية، وبشكل عام، يتم توفير المعلومات الموجودة على الصفحة في الوقت الحالي بإيجاز شديد. دعونا نحاول معرفة ذلك. أول 3 صور مدخلة وإخراج ثنائي القناة؛ الطبقات - عدد الطبقات في الهرم، أي عدد المرات التي قمنا فيها بقياس الصورة الأصلية؛ averaging_block_size - حجم النافذة التي قمنا بحساب دالة طاقة البكسل فيها؛ max_flow – الحد الأقصى للإزاحة الذي نريد أن نكون قادرين على تحديده في كل خطوة، ويتم تحديده بشكل أساسي حسب حجم النافذة (على الرغم من أنه ليس من الواضح تمامًا سبب وجوده int). يمكنك التوقف هنا، أو يمكنك تعيين بعض المعلمات الأخرى، ومعنى بعضها يراوغني.

ويقدم الموقع مثالاً على استخدامه حيث يتم إطلاقه بالمعلمات التالية: calcOpticalFlowSF(frame1,frame2,flow, 3, 2, 4, 4.1, 25.5, 18, 55.0, 25.5, 0.35, 18, 55.0, 25.5 ، 10) ؛

تعمل الخوارزمية الخاصة بي بشكل أبطأ بكثير من الخوارزميات الأخرى، حوالي 9-12 ثانية لكل صورة مقاس 512 × 512. تبدو نتيجة العمل أكثر معقولية من Farneback، على الأقل يتم تحديد التحول في الصور الموحدة بشكل أفضل، ويعمل بشكل أفضل بشكل ملحوظ مع التحولات الكبيرة.

الاستنتاجات

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

أجافونوف ف.يو. 1

1 أغافونوف فلاديسلاف يوريفيتش - طالب دراسات عليا في قسم "التصميم بمساعدة الكمبيوتر وأنظمة تصميم البحث"، جامعة فولغوغراد التقنية الحكومية،

فولغوجراد

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

الكلمات الدالة: معالجة الصور، البحث عن إزاحة الصورة

تطبيق طرق التدفق البصري لتقدير تحول الصورة

أجافونوف ف.و. 1

1 أجافونوف فلاديسلاف يوريفيتش - طالب دراسات عليا في قسم "أنظمة التصميم بمساعدة الكمبيوتر وتصميم البحث"،

جامعة فولغوغراد التقنية الحكومية، فولغوغراد

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

الكلمات الدالة: معالجة الصور وتقدير إزاحة الصورة

الشركة المتحدة للتنمية 004.932.2

مقدمة

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

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

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

في هذا العمل، يتم النظر في طريقتين، أحدهما يسمح لك بالحصول على إزاحات للنقاط الرئيسية الفردية، والثاني - لكل بكسل على حدة.

التدفق البصري بطريقة لوكاس-كانادي

المفهوم الأساسي للطريقة هو افتراض أن قيم البكسل تنتقل من إطار إلى آخر دون تغيير:

أين. وبتجاهل الحد المتبقي نحصل على صيغة التقريب ؟؟؟؟:

حيث يحدد الإزاحة. ووفقا للافتراض الذي تم التوصل إليه، نحصل على ذلك. ثم نكتب المعادلة (4) بالشكل

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

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

معادلة المعاملات المقابلة لكثيرات الحدود التربيعية لدينا:

وهذا صحيح بالنسبة لأي إشارة.

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

دعونا نستبدل التمثيل متعدد الحدود العالمي بتمثيل محلي. لنحسب المعاملات متعددة الحدود للصورة الأولى وللصورة الثانية. وفقًا لـ (9) ينبغي أن يكون، ولكن عمليًا يتم استخدام التقريب:

حيث يعكس استبدال النزوح العالمي بنزوح متفاوت مكانيًا.

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

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

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

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

بالنسبة لطريقة Lucas-Kanade، من الضروري تحديد العديد من النقاط الرئيسية التي يجب العثور على إزاحتها. ولهذا الغرض يتم استخدام الطريقة الكلاسيكية للبحث عن الحدود والزوايا. بعد الحصول على إزاحة كل نقطة من هذه النقاط، من الضروري حساب متوسط ​​النتيجة الناتجة.

بالنسبة لطريقة Farneback، يكفي حساب متوسط ​​قيم الإزاحة في كل بكسل.

أجريت التجربة على عينة مكونة من 20 زوج اختبار وتم حساب الانحراف المعياري لكل طريقة.

أو بي لوكاس-كندا

أو بي فارنيباكا

الجدول 1 - الانحراف المعياري للتشريد

من النتائج التجريبية، يمكن ملاحظة أن كلا الطريقتين تقدران إزاحة الصور بدقة عالية. تظهر نتيجة طريقة Farneback نتيجة سيئة نظرًا لأن الطريقة تقدر الإزاحة لجميع وحدات البكسل وقد ترتكب أخطاء في الأجزاء أحادية اللون من الصورة.

كل طريقة لها مزاياها وعيوبها، فضلا عن النطاق والقيود. تطبق طريقة Lucas-Kanade تدفقًا بصريًا متفرقًا و

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

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

خاتمة

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

فهرس/ مراجع

  1. Fleet D.، Weiss Y. تقدير التدفق البصري // دليل النماذج الرياضية في رؤية الكمبيوتر. - سبرينغر يو إس، 2006. - ص 237-257.
  2. Farnebäck G. تقدير الحركة ثنائي الإطار بناءً على توسع متعدد الحدود // تحليل الصور. - 2003. - ص363-370.

هذا هو تمثيل الأثر المرئي لحركة الأشياء والأسطح وحواف المشهد البصري، والذي يتم ملاحظته عندما تكون هناك حركة نسبية بين المراقب (مثل العين البشرية أو الكاميرا) والمشهد.

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

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

في الآونة الأخيرة، تم اختيار مصطلح التدفق البصري بواسطة الروبوتات ليشمل التقنيات ذات الصلة لمعالجة الصور والتحكم في التنقل، مثل اكتشاف الحركة، وتجزئة الكائنات، ومعلومات الاتصال الزمني، وحسابات توسيع التركيز، والنصوع، والتشفير المعوض عن الحركة، والستيريو. قياسات التفاوت.

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

عملية حسابية

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

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

بالنسبة لحالة البعد 2D+ ر(نفس الشيء بالنسبة إلى 3D أو اختصار الثانيالحالات) موقع فوكسل بكثافة ستتحرك، وبين إطارين للصور، ومع القيد اللاحق ثبات السطوعقيد الثبات) يمكن كتابته:

بافتراض أن الحركة كانت غير مهمة، وبحساب تقريب الصورة باستخدام متسلسلة تايلور، يمكن الحصول على:

… (أعضاء من الرتبة الأعلى)

ومن هذه المعادلات يتبين أن:

مما أدى إلى

حيث هذه هي المكونات والسرعة أو التدفق البصري، وهي مشتقات للصورة في الاتجاهات المقابلة. ويمكن أيضًا كتابة المشتقات.

هكذا:

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

مستشعر التدفق البصري

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

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

الصور ذات الصلة

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

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

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

في حالة البعد 2D+ ر(في الحالات ذات الأبعاد الأعلى المتشابهة) سيتم نقل البكسل الموجود في موضع ذو كثافة في إطار واحد، ويمكن كتابة المعادلة التالية:

وبافتراض أن الإزاحة صغيرة وباستخدام متسلسلة تايلور نحصل على:

ومن هذه المساواة ما يلي:

من هنا يتبين ذلك

مكونات سرعة التدفق البصري في،

الصور المشتقة في الاتجاهات المقابلة.

هكذا:

تحتوي المعادلة الناتجة على مجهولين ولا يمكن حلها بشكل فريد. وهذا ما يُعرف بمشكلة الفتحة. يتم حل المشكلة عن طريق فرض قيود إضافية - التنظيم.

طرق تحديد التدفق البصري:

    ارتباط الطور هو انعكاس الطيف المتقاطع الطبيعي.

    طرق الكتلة - تقليل مجموع المربعات أو مجموع معاملات الاختلافات

    الطرق التفاضلية لتقدير التدفق البصري بناءً على المشتقات الجزئية للإشارة:

    خوارزمية لوكاس - Kanade - تم أخذ أجزاء الصورة ونموذج الحركة المتقارب في الاعتبار

    Horn–Schunck - تصغير الوظيفة التي تصف الانحراف عن افتراض السطوع الثابت وسلاسة مجال المتجه الناتج.

    بوكستون-بوكستون - بناءً على نموذج لحركة حدود الكائن في سلسلة من الصور

    الطرق المتغيرة العامة هي تعديلات على طريقة Horn-Schunck التي تستخدم قيود بيانات مختلفة وقيود سلاسة مختلفة.

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

غالبًا ما يتم استخدام تتبع التدفق البصري مع الكاميرات الثابتة، مثل الكاميرات الموجودة في المطارات أو المباني، أو الكاميرات الثابتة.

تم في هذا العمل استخدام طريقة باستخدام خوارزمية Lucas-Kanade (الشكل 4-6)

أرز. 4 النافذة الرئيسية للنموذج



أرز. 5 كتل نموذجية

أرز. 6 نتيجة النموذج

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

عيب هذه الطريقة هو أن الكاميرا يجب أن تكون ثابتة، وإلا فإن نتيجة التعرف والتتبع تصبح غير متوقعة.