إحدى المهام الفرعية المهمة لتحليلات الفيديو هي تتبع الكائنات الموجودة على الفيديو. إنه ليس بدائيًا لدرجة أنني اضطررت إلى النزول إلى مستوى بكسل تلو الآخر ، ولكنه ليس معقدًا لدرجة تتطلب بشكل لا لبس فيه شبكة عصبية متعددة الطبقات للحل. يمكن استخدام التتبع كغاية في حد ذاته وكجزء من خوارزميات أخرى:
- عد الأشخاص الفريدين الذين دخلوا منطقة معينة أو عبروا الحدود في إطار
- تحديد الطرق النموذجية للسيارات في موقف السيارات والأشخاص في المتجر
- التدوير التلقائي لكاميرا المراقبة عند تحريك الجسم
حتى دون النظر إلى الأدبيات ، يمكنني القول بثقة أن أفضل طريقة لحل المشكلة هي استخدام الشبكات العصبية. بشكل عام ، لا يمكنك كتابة أي شيء آخر ، ولكن ليس من الممكن دائمًا الاندفاع إلى مهمة مع زوج من GTX 1080Ti. من يهتم بكيفية تتبع الأشياء على الفيديو في مثل هذه الحالات ، من فضلك ، تحت القط. لن أحاول فقط شرح كيفية عمل أجهزة تتبع ASEF و MOSSE ، ولكن سأقدم لك الحل حتى تبدو الصيغ واضحة.
بادئ ذي بدء ، سوف نجيب على سؤال أولي: لماذا اخترع شيئًا عندما يمكنك إطعام رزمة tensorflow من مقاطع الفيديو وترك الكمبيوتر لبضعة أسابيع؟ نهج الشبكة العصبية لها عيب واحد خطير: حتى على بطاقات الفيديو الحديثة ، من الصعب تحقيق معدل جيد من إطلاق النار من الشبكات. هذه ليست مشكلة إذا قمنا بتحليل الفيديو المسجل ، لكنه يدرج عصا في العجلات إذا كنت ترغب في العمل في الوقت الحقيقي. لنفترض أننا نريد معالجة الفيديو من خمس كاميرات بمعدل 10 إطارات في الثانية. حتى مع هذه الظروف المعتدلة نسبيًا ، يجب أن يكون للشبكة العصبية وقت استنتاج أقل من
frac10005 times10=20دولارً مللي ثانية (في حالة عدم التوازي الكامل). للمقارنة ، يمكن لـ YoloV3 ، وهي شبكة مصنفة ذات بنية بسيطة نسبيًا ، أن تبث صورة

مللي ثانية. بالإضافة إلى ذلك ، يمكن أن تكون الحلول المستندة إلى بطاقات الرسومات القوية باهظة الثمن.
تفترض هذه المقالة أنك قد تعاملت بالفعل مع معالجة الصور الآلية ، وأنك على دراية بالعمليات الأساسية للجبر الخطي (الالتفاف ، القاعدة ، انعكاس المصفوفة) وبشكل عام فهم تحويل فورييه.
فيما يلي:
- A odotB لتقف على ضرب المصفوفة عنصري A و B
- A otimesB يدل على انحراف المصفوفات A و B
- hatA( omega، nu)= mathcalF(A(x،y)) يعني ذلك hatA( omega، nu) - مصفوفة تردد تحويل فورييه السريع المطبق على الصورة A .
- التوازيA\allel2 - يشير إلى مجموع مربعات عناصر المصفوفة A
قرار تافه
للوهلة الأولى ، لا تبدو مهمة تتبع موضوع معين معقدة للغاية.
نرجو أن يكون لدينا
T إطارات الفيديو المتتالية
It الحجم
w على
h بكسل. في الإطار الأولي للفيديو
I0 مستطيل دائري حول شيء ما
F0م على
n . مطلوب للعثور على موقع هذا الجسم على جميع الإطارات الأخرى
It .
نزيل الضجيج في الصور ، ثم نقوم بتطبيع كل منها في النطاق من -1 إلى 1 بحيث لا تؤثر التغييرات العامة في السطوع على الكشف. التقط الإطار الأول للفيديو بدون ترميز
I1 . إذا
I0 و
I1 - إطارات الفيديو المجاورة مع FPS جيدة ، فمن غير المرجح أن يكون الكائن المطلوب بعيدًا عن موضعه الأصلي. استفد من هذا. اقطع
I1 مستطيل
F1 من المكان الذي كان يوجد فيه الجسد المطلوب سابقًا. "اسحب"
F0 من خلال
F1 وعند كل نقطة نحسب مربع مجموع الفروق
GL2(i،j)=\allelF1(i،j)−F0\allel2،i in[0،m]،j in[0،n]
أين تحسب الفرق
GL2(i،j) بحاجة إلى الجمع بين المركز
F0 مع العنصر
(i،j) في
F1 ، والقيم المفقودة إلى الصفر. بعد ذلك في المصفوفة
GL2 مطلوب الحد الأدنى ؛ موقعه ناقص إحداثيات المركز
F1 وسيتم إزاحة الكائن المطلوب بمقدار
I1 .
حتى لا "يرن" الانتقال الحاد إلى الصفر أثناء الكشف ، فمن الأفضل أن تأخذ المستطيل في البداية أكثر من اللازم بقليل وأن تقلل إلى الصفر القيم القريبة من الحدود بسلاسة
F0 و
F1 . لهذا ، كل من
F تحتاج إلى ضرب القناع. بالنسبة للأشياء المربعة ، سيقوم العارض القديم الجيد بذلك.
A= exp frac(x−i)2+(y−j)2 sigma2 (أين
(x،y) هو مركز النافذة) ، ولكن في الحالة العامة ، من الأفضل أن تأخذ نافذة هانينج ثنائية الأبعاد.
ل
I2 النافذة
F2 مأخوذة من الموضع المتوقع على الإطار
I1 وهكذا.
بدلاً من ذلك
L2 يمكن استخدام المعايير
L1 (
GL1(i،j)=|F1(i،j)−F0| ) وناقص الارتباط المتبادل للمصفوفات (
GnCC(i،j)=− sumklF1،kl(i،j)F0،kl،k in[0،m]،l in[0،ن] ) كلاهما يعتبران أسرع قليلاً من
L2 ولكن لديهم خصائصهم الخاصة.
L1 غير قابل للتمييز وأقل حساسية للاختلافات الكبيرة في قيم البكسل. يمكن أن يؤدي الارتباط المتبادل إلى نتائج إيجابية خاطئة إذا كانت العينة منخفضة التباين وكانت الصورة بها مناطق فاتحة جدًا أو مظلمة جدًا.
L2 -إصدار المقياس ليس له مثل هذا العيب:
GL2= sum(F1،kl(i،j)−F0،kl)2
= sum(F1،kl(i،j))2−2F1،kl(i،j)F0،kl+(F0،kl)2
= sum(F1،kl(i،j))2− sum2F1،kl(i،j)F0،kl+ sum(F0،kl)2
=EF1(i،j)+2GnCC(i،j)+EF0
EF1(i،j) ، "طاقة" الموقع المختار في
It يعمل كعامل موازنة (
EF0 ، مجموع مربعات قيم البكسل للعينة هو نفسه لجميع مواضع النوافذ وليس له أهمية عملية هنا).
حتى هذه الخوارزمية البدائية تتكيف بشكل جيد جدًا في حالة الحركة الخطية للأشياء (على سبيل المثال ، كاميرا تطل على الناقل). ومع ذلك ، نظرًا لبساطة النموذج والتنفيذ ، فإن طريقة التتبع هذه لها عيوب عديدة:
- من النادر حدوث حركة خطية بسيطة لجسم ما بدون تغيرات في الطبيعة. كقاعدة ، يمكن أن تخضع الهيئات في مجال رؤية الكاميرا لبعض فئات التغييرات. من أجل زيادة التعقيد: الزيادة / النقصان في الحجم ، المنعطفات ، التحولات الألفة ، التحولات الإسقاطية ، التحولات غير الخطية ، التغيرات في الكائن. حتى إذا قمنا بحذف تغييرات الكائن والتحويلات غير الخطية ، فإننا نود أن تكون الخوارزمية قادرة على التعافي من التدوير البسيط نسبيًا وتغييرات الحجم. من الواضح أن الإجراء أعلاه ليس لديه هذه الخاصية. ربما F0 سيظل يعطي استجابة ملحوظة على الكائن ، ولكن سيكون من الصعب تحديد الموقع الدقيق للعينة ، وسوف يكون المسار غير متقطع.
- أظهرنا الخوارزمية عينة إيجابية واحدة فقط ، فمن الصعب تحديد الاستجابة التي ستعطيها F0 إذا دخل شيء آخر مشابه إلى النافذة. حسنًا ، إذا كان الكائن المطلوب متباينًا وله بنية نادرة ، ولكن ماذا لو أردنا مراقبة جهاز في دفق من الأجهزة الأخرى؟ يمكن للمتتبع أن يقفز بشكل غير متوقع من سيارة إلى أخرى.
- في كل إطار ، نتخلص من القصة الخلفية بأكملها. ربما يجب استخدامه بطريقة أو بأخرى.
- علاوة على ذلك ، نتعلم فقط عند نقطة واحدة في الصورة. سيكون من الأفضل أن يعطي المتتبع استجابة جيدة بالقرب من الموقع الصحيح للكائن. معاكسة إلى حد ما ، ولكن فكر: إذا كان المرشح في المكان المحدد للكائن في الصورة (x،y) يعطي أفضل قيمة ، وفي (x+1،y+1) - شيء عشوائي ، مما يعني أنه حساس للغاية للتفاصيل الصغيرة التي يمكن أن تتغير بسهولة. على العكس ، إذا كان (x،y) وفي (x+1،y+1) تقريبًا نفس القيم الجيدة ، المرشح "مدمن مخدرات" على علامات أكبر ، ونأمل ، أكثر ديمومة.
- مع التطبيق الساذج لإجراء التتبع ، لكل بكسل من الإطار نقوم بضرب النافذة بأكملها مع العنصر المحدد في الجزء المقابل من هذا الإطار. تعقيد هذه العملية O(م2n2) . في مثل هذه الحالات ، ليس من اللطيف تتبع حتى 50 إلى 50 بيكسل. يتم حل هذه المشكلة جزئيًا عن طريق تقليل حجم الفيديو ، ولكن عند تقليل الصورة إلى أقل من 240 بكسل في العرض ، يتم فقدان حتى التفاصيل الكبيرة المهمة ، مما يجعل الخوارزمية بلا معنى.
ASEF ، موس
نهج تافه ++؟
نشمر عن سواعدنا ومحاولة حل المشاكل المذكورة أعلاه.
زيادة الصورة الأصلية. نطبق عليها العديد من التحولات الأفيونية الخفيفة. يمكنك أيضًا إضافة ضوضاء أو تغيير جاما. وهكذا ، بدلا من صورة واحدة ، مجموعة البيانات الجزئية
P صور. كان هناك الكثير من الصور ، ولكن بقيت نافذة واحدة. لن نقوم الآن بقص مستطيل من الصورة فحسب ، بل نبحث عن بعض المرشحات
W والذي سيعطي استجابة جيدة للجميع
Ip . نقوم بتحويل المشكلة إلى مشكلة التقليل:
W: minW\allelFp−W\allel2،p in[1،P]
أين
الموازيFp−W\allel2 - مجموع مربعات اختلافات البكسل بين
W والقسم المقابل من الموقع الدقيق للجسم
p تلك الصورة الاصطناعية التي تم إنشاؤها من إطار يحتوي على ترميز حقيقي.
بالإضافة إلى ذلك ، يمكنك أخذ عينات من المستطيلات
بعيدًا عن موقع الكائن المتتبع
وتعظيم الفرق الموضح أعلاه.
من الصعب اقتراح أن المرشح يعطي استجابة جيدة عند نقاط بالقرب من الموقع الدقيق للكائن. نحن نعرف ذلك في
(x،y) تطبيق مرشح مع
L2 يجب أن يعطي القياس 0 ، التالي - أكثر ، أبعد - أكثر. علاوة على ذلك ، ليس لدينا أي اتجاه مفضل ، يجب أن تكون الاستجابة متماثلة مركزيًا فيما يتعلق
(x،y) . يبدو أنه يمكننا حسابًا رياضيًا للتعبير عن استجابة المرشح المطبقة على الصور المرجعية! قد يختلف المظهر الدقيق اعتمادًا على وظيفة توهين الاستجابة المحددة ، ولكن هل يحب الجميع Gaussians؟ لذلك ، نفترض ذلك
W تنطبق على
Fp من الناحية المثالية يجب أن تعطي نتيجة
Gp=1− exp frac(x−i)2+(y−j)2 sigma2 . لذلك ، تتحول مشكلة التصغير إلى:
Dp(i،j)=\allelFp(i،j)−W\allel2
W: minW موازيةDp(i،j)−Gp(i،j)\allel2،p in[1،P]
الآن نحن لا نقلل الاستجابة عند نقطة واحدة ، ولكننا نقلل من انحراف الاستجابة عن المطلوب.
انتظر لحظة ... لقد فعلناها
P مراتm مراتn معادلات مع
m مراتn المتغيرات لتقليل. يبدو أننا تجاوزناها. دعنا نعود قليلا.
الخدعة الرئيسية
من بين جميع المشاكل ، فإن الصعوبة الأكبر هي التعقيد.
O(م2n2) . هل من الممكن التوصل إلى شيء ما إلى جانب الانقسام الصعب لمربع بحث واحد إلى عدة مربعات صغيرة أو البحث في الصورة بدقة صغيرة وضبطها بدقة عالية؟
اتضح أنه يمكنك! يخبرنا Matanalysis أن طي الوظائف في الفضاء العادي هو مضاعفة لصورها فورييه. نحن قادرون على تطبيق تحويل فورييه السريع للصور ، ومضاعفة عنصر الترددات الخاصة بهم حسب العنصر ، ثم تحويل النتيجة مرة أخرى إلى مصفوفة
O(mn logmn) ، وهو أسرع بكثير من تصغير المصفوفة بصدق. فورييه! من كان يظن! في عصر tensorflow ، لا يزال بإمكانه مساعدتنا في رؤية الكمبيوتر.
(هذا ، بالمناسبة ، يوضح المبدأ الرياضي العام: إذا كنت لا تريد حل المشكلة في الفضاء
X نقله إلى الفضاء
Y ، تقرر هناك ، ونقل القرار مرة أخرى. غالبًا ما يكون الحل البديل أقصر من الحل المباشر.)
كما هو موضح أعلاه ، يمكننا استخدام الارتباط المتبادل لتوطين العينة في الصورة. لكن الارتباط المتبادل هو الالتفاف الذي ينعكس أفقياً ورأسياً
W . يقترح Matanalysis أنه في هذه الحالة سيكون من الضروري مضاعفة الترددات
F على مصفوفة مترافقة معقدة لمصفوفة تردد
W :
hatW( omega، nu)= mathcalF(W(x،y))
hatF( omega، nu)= mathcalF(F(x،y))
hatGconv( omega، nu)= mathcalF(Gconv(x،y))
Gconv=F otimesW rightarrow hatGconv= hatF odot hatW∗
أين
Gconv= exp frac(x−i)2+(y−j)2 sigma2 - وظيفة استجابة مثالية على الصورة المرجعية. يرجى ملاحظة ذلك
L2 لقد قللنا من المقياس وقمنا بتكبير مقياس الالتفاف ، لذا الآن ، كلما زادت الاستجابة ، كان ذلك أفضل.
إذا كانت لدينا صورة واحدة ، فسوف نجد مصفوفة تردد المرشح الدقيقة:
hatW∗= frac hatGconv hatF
حيث يشير الجانب الأيمن إلى تقسيم العنصر. ولكن قبل ذلك بقليل ولدنا
P صور من المصدر. يمكننا تطبيقها مع نهج فورييه. لا يوجد فلتر بمثل هذه الترددات التي من شأنها أن ترضي جميع الصور بشكل مثالي ، ولكن يمكنك الحصول على شيء جيد بما فيه الكفاية. هناك طريقتان لحل المشكلة:
- يمكنك العثور على مجموعة من الفلاتر المثالية ، ثم وضعها في المتوسط. هذه هي الطريقة التي يذهب بها مؤلفو متوسط المرشحات الدقيقة التركيبية (ASEF):
hatW∗= frac1P sumPp=1 hatW∗p= frac1P sumPp=1 frac hatGp hatFp
هنا نستخدم خاصية الخطية لصور فورييه. بإضافة الترددات ، كما هو موضح أعلاه ، يبدو أن متوسط أوزان المرشح عديدة. - يمكنك العثور على ترددات المرشح التي ترضي جميع الصور في المتوسط تقريبًا L2 :
hatW∗: min hatW∗ sumPp=1\allel hatFp odot hatW∗− hatGp\allel2
للعثور على الحد الأدنى ، تحتاج إلى أخذ مشتق عناصر التصفية: frac delta delta hatW∗ sumPp=1\allel hatFp odot hatW∗− قبعةGp\allel2=0
يمكن العثور على التقاط صادق لهذا المشتق في تتبع الكائنات المرئية باستخدام مرشحات الارتباط التكيفي ، والتي توفر الحد الأدنى من مجموع الناتج من مرشحات الخطأ التربيعي (مرشحات MOSSE). والنتيجة هي: hatW∗= frac sumPp=1 hatGp odot hatFp∗ sumPp=1 hatFp odot hatFp∗
هم ، كما لو كانت عناصر مماثلة متورطة في الصيغ. في
P=1 صيغ ASEF و MOSSE هي نفسها تمامًا.
hatW∗ لصورة واحدة يمكن أن تمثل
hatW∗= frac hatGp hatFp= frac hatGp odot hatFp∗ hatFp odot hatFp∗
استبدل في صيغة ASEF واحصل على
hatW∗= sumPp=1 frac hatGp odot hatFp∗ hatFp odot hatFp∗
أجل! الآن من الأفضل أن نرى أن ASEF و MOSSE تختلف فقط في طريقة متوسط التصفية! يقال أن MOSSE تنتج مرشحات أفضل من ASEF. يبدو منطقيًا: التكيف مع حزمة الصور بأكملها ككل أفضل من متوسط المرشحات.
بعد أن وصلنا
hatW∗ ، نحسب الاستجابة في مجال التردد
hatGconv= hatF odot hatW∗ ثم نترجمها إلى المجال المكاني ونبحث عن الحد الأقصى في المصفوفة الناتجة
G . حيث يوجد الحد الأقصى ، يوجد الموضع الجديد للكائن.
نقاط إضافية
- المصطلحات الموجودة في مقام الصيغ لها معنى مادي مثير للاهتمام. hatFp odot hatFp∗ هو طيف الطاقة مع مستطيل p تلك الصورة.
- انتبه إلى التناظر المثير للاهتمام. كان من الضروري مضاعفة ترددات المرشح في ترددات الصورة للحصول على استجابة. تحتاج الآن إلى مضاعفة ترددات الاستجابة في ترددات الصورة (والتطبيع) للحصول على ترددات المرشح.
- في الحياة الواقعية ، يمكن أن يسبب القسمة عنصريًا القسمة على صفر ، لذلك يضاف ثابت تسوية عادة إلى المقام epsilon . يقال أن هذا التنظيم يجعل المرشح يولي اهتمامًا أكبر للترددات المنخفضة ، مما يحسن القدرة العامة.
- عند معالجة فيديو حقيقي ، تحتاج عادةً إلى حفظ معلومات حول الكائن المتتبع الذي تم الحصول عليه من الإطارات السابقة. عند الانتقال إلى الإطار التالي ، لا يمكنك الحساب hatW من الصفر ، وتحديث سابقتها. صيغة التحديث ل ASEF:
hatW∗i= frac etaP sumPp=1 frac hatGp hatFp+(1− eta) hatW∗i−1
بالنسبة لـ MOSSE ، تحتاج إلى تجميع البسط والمقام بشكل منفصل:Ai= eta sumPp=1 hatGp odot hatFp∗+(1− eta)Ai−1
Bi= eta sumPp=1 hatFp odot hatFp∗+(1− eta)Bi−1
hatW∗i= fracAiBi
أين eta - سرعة التعلم. - من المهم أن نتذكر أن تحويل فورييه ليس تمامًا مثل الحساب G بصراحة ، كما هو موضح في بداية المقال. عند حساب FFT ، لا تختفي العناصر المفقودة ، ولكن يتم استبدالها على الجانب العكسي ، كما لو كانت الصورة تدور من اليمين إلى اليسار ومن الأسفل إلى الأعلى. ولكن في بداية المقال ، قررنا بالفعل تعتيم الحواف F ، لذلك لن يكون لهذه المشكلة تأثير ملحوظ.
- كما ذكر أعلاه ، فإن الارتباط المتبادل له ميزة غير سارة: بشكل عام ، يمكن لمرشح الضوء أن يعطي استجابة قوية في المناطق البيضاء من الصورة ، حتى إذا لم تتطابق في المناطق المتناقضة. لا تقتصر المشاكل على هذا. حتى البكسل المطابق ذي القيمة الإيجابية أو السلبية للغاية يمكن أن يتداخل مع المرشح إذا كانت العينة ككل منخفضة التباين. لتلطيف هذا التأثير ، يجب تضمين تحويل غير خطي لوحدات بكسل الصورة في المعالجة المسبقة ، والتي سوف "تضغط" على مناطق فاتحة جدًا ومظلمة جدًا في المنتصف. ونتيجة لذلك ، فإن تزامن هذه المناطق المتناقضة يقدم مساهمة أقوى للمقياس. تستخدم مقالات ASEF و MOSSE اللوغاريتم:
I= logI+1
أين بكسل I من 0 إلى 255. في رأيي ، هذا قاسي للغاية ، ويتجاهل مشكلة الاستجابة القوية للمرشح الداكن في المناطق السوداء . يعمل هذا المخطط بشكل أفضل:I=علامة(I−127) sqrt|I−127|
ثم يأتي التطبيع ، وتبين أن معظم العناصر تتمركز حول الصفر.
- كيف يمكن لهذه الخوارزمية تحديد اختفاء الكائن المتتبع من الإطار؟ سيساعدك هنا تحليل أكثر تفصيلاً للاستجابة الواردة من الإطار التالي. يقدم مبدعو MOSSE مؤشر PSR - نسبة الذروة إلى Sidelobe. دع gmax - العنصر الأقصى G المقابلة للموضع الجديد للكائن (x،y) . نستبعد المربع من النظر 11 ضرب11 حول هذا الحد الأقصى. نحسب المتوسط والانحراف المعياري للبكسلات المتبقية ( musl، sigmasl ) ثم
PSR= fracgmax− musl sigmasl
إذا كانت هذه القيمة أعلى من عتبة معينة ، فإن الكشف يعتبر ناجحًا. عادة ما يتم أخذ العتبة في المنطقة بين 3 و 10. للكشف عن ثقة ، عادة ما يتم الاحتفاظ PSR أعلى من 20.
(لاحظ أن PSR هنا لا يعني على الإطلاق ما يعنيه عادة في نظرية معالجة الإشارات ؛ لذا لا تستخدمه على Google ، فلن يخرج شيء جيد) - الخوارزمية بسيطة للغاية. تستغرق عملية التعقب على Core-i7 في الصور ذات 320 × 400 باستخدام تطبيق OpenCV من 0.5 إلى 2 مللي ثانية ، اعتمادًا على حجم الكائن المتتبع.
خوارزمية موس
ضع كل ذلك معًا.
الحالة العامة:مصفوفة تردد التصفية:
hatWالمصفوفات المساعدة لحساب ترددات المرشح:
A،Bمصفوفة التردد للاستجابة المثالية المطلوبة:
hatGسرعة التدريب أثناء التتبع:
etaمستطيل الموضع الحالي للكائن:
Rعدد التحولات:
Pحد الاستجابة:
PSRthrالوظيفة المساعدة:
التدريب . الإدخال: صورة
I سرعة التعلم الحالية
etacurrent- Anew:=0،Bnew:=0
- حتى حصلت عليها P التحولات:
- تطبيق تحويل أفيني عشوائي صغير يتمركز في وسط الصورة. R
- قطع من صورة مستطيلة مع كائن F
- ضع قناعًا عليه لإبطال الحواف بسلاسة
- ترجم F في مجال التردد: hatF
- Anew=Anew+ hatG odot hatF∗
- Bnew=Bnew+ hatF odot hatF∗
- إذا etacurrent geq1.0 ثم استبدلها A و B على Anew و Bnew . خلاف ذلك:
B:= etaBnew+(1− eta)B
A:= etaAnew+(1− eta)A
- احسب ترددات المرشح:
hatW∗= fracAB
التهيئة . الإدخال: صورة
I مستطيل حول موضع الكائن
Rinit- R:=Rinit
- جهز الاستجابة المطلوبة G . عادة ما تكون هذه مصفوفة صفرية تمامًا مع غوسي صغير في المركز.
- تدريب : I ، 1.0
- ترجم G في مجال التردد: hatG
التعقب : الإدخال: صورة
I- قطع المستطيل F من I للموضع السابق للكائن R
- ضع قناعًا عليه لإبطال الحواف بسلاسة
- ترجم F في مجال التردد: hatF
- hatGresponse= hatW odot hatF∗
- ترجم hatGresponse إلى المجال المكاني: Gresponse
- ابحث عن الحد الأقصى للداخل Gresponse : gmax،(x،y)
- احسب قوة الاستجابة PSR:= fracgmax− musl sigmasl
- إذا PSR<PSRthr فشل الخروج
- تحديث الموقف R . اضبط R إذا تجاوزت الصورة ، أو تقرر أن الكائن زاد / انخفض.
- تدريب : I ، eta
- العودة R
قد تختلف تفاصيل التنفيذ. على سبيل المثال
- يمكن فقط معالجة F وليس الصورة كاملة.
- G يمكن إعادة إنشائه لكل تحويل للصورة مع وظيفة مختلفة وعرض الاستجابة.
- يمكنك تدريب العديد من المرشحات المختلفة في نفس الوقت على عدة مقاييس للكائن من أجل الكشف عن الحركات في المسافة وفي المنطقة المجاورة.
كيف تبدو
بالنسبة للمبتدئين ، بعض الأمثلة على تحويل فورييه ثنائي الأبعاد.
بعض الأمثلة البسيطةدعني أذكرك بأن نتيجة التحول ذات قيمة معقدة. توضح الصور أدناه المجموعات "صورة - القيم المطلقة لمجال التردد على مقياس طبيعي - القيم المطلقة لمجال التردد على مقياس لوغاريتمي".
خطوط عمودية:



تتغير الصورة من اليسار إلى اليمين نفسه لأي موضع رأسي. علاوة على ذلك ، فإن التغيير دوري ، مع فترة واضحة ونمط واضح. لذلك ، في صور الترددات ترى الترددات فقط على طول المحور
x=0 .
القفص:



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



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



تظهر صورة الترددات عدة اتجاهات مميزة ، ولكن أصبح من الصعب بالفعل تقديم صورة عليها بشكل حدسي.
لصور العالم الحقيقي ، من الأصعب تقديم صورة في الرأس بتردداتها:



(الترددات في المركز مغلقة بحيث لا "تضيء" باقي الطيف)
لننتقل الآن إلى مثال عملي حقيقي:
مجموعة صورصورة بكائن محدد:

قطع وقطع ومعالجة مسبقة ، طيفها في المقياس المعتاد واللوغاريتمي (
F،| hatF|، log| hatF| ):



الاستجابة المطلوبة (
G ):

ترددات المرشح على مقياس منتظم ولوغاريتمي (
W،| hatW| ):


أوزان المرشح الصريحة (بدون تحويلات)
F ):

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

على الرغم من أنها ليست نظيفة مثل الاستجابة المطلوبة ، فمن السهل تحديد الحد الأقصى عليها.
نفس المثال مع استجابة مرغوبة أضيق:
مجموعة صوربالفعل:
W :

المزيد بالفعل:
W :

مع الحد الأقصى الضيق جدًا على الفلتر ، بدلاً من بقعة سوداء ، تصبح العين مرئية بوضوح.
W للحالات الثلاث السابقة
G عند استخدامها لتدريب 16 تحويل لصورة الإدخال:
حفنة أخرى من الصورالحد الأقصى الواسع:

متوسط الحد الأقصى:

الحد الأقصى الضيق:

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