سؤال

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

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

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

هل هناك طريقة أفضل؟

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

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

التحديث 3:ياي التحديث النهائي.عاد إلى هذا مرة أخرى.يبدو الرمز النهائي كما يلي:

الخطوة 1:الحصول على صورة من قائمة الصور (التقطت مائة صورة من خلال نقطة التركيز)

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

الخطوه 3:احصل على HorizontalIntensityStatistics (فئة Aforge.net) لتلك الصورة التي تم اقتصاصها.

الخطوة 4:الحصول على الرسم البياني (الرمادي، في حالتي)

الخطوة 5:العثور على مشتق قيم الرسم البياني

الخطوة 6:عندما يكون المنحدر الخاص بك هو الأكبر، عندما تكون في النقطة الأكثر تركيزًا.

هل كانت مفيدة؟

المحلول

قد يكون الأمر مبسطًا بعض الشيء لاحتياجاتك ، لكنني حصلت على نتائج جيدة مع خوارزمية بسيطة تنظر إلى الفرق في وحدات البكسل المجاورة. يبدو أن مجموع الفرق بين وحدات البكسل 2-Away هو مقياس معقول لتناقض الصورة. لم أتمكن من العثور على الورقة الأصلية من قبل برينر في السبعينيات ولكن تم ذكرها في http://www2.die.upm.es/im/papers/autofocus.pdf

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

نصائح أخرى

يمكنك إلقاء نظرة على التقنية المستخدمة في ناسا فضول مارس روفر.

تم وصف هذه التقنية في هذه المقالة

Edgett ، Kenneth S. ، وآخرون. الفضول مريخ العدسة يدوية التصوير (ماهلي) التحقيق. مراجعات علوم الفضاء, 2012, 170.1-4: 259-317.

وهو متاح ك PDF هنا.

نقلاً عن المقال:

7.2.2 التركيز التلقائي

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

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

ما يلي هو الشكل 23:

Autofocus in NASA Curiosity Mars Rover

تم اقتراح هذه الفكرة أيضًا في هذه الإجابة: https://stackoverflow.com/a/2173259/15485

قد يكون هذا مفيدًا. إنه كيف يعمل نظام AF في الكاميرا فعليًا - التركيز التلقائي السلبي

قياس التباين

يتحقق قياس التباين عن طريق قياس التباين داخل حقل المستشعر ، من خلال العدسة. يزداد الفرق بين الكثافة بين وحدات البكسل المجاورة للمستشعر بشكل طبيعي مع تركيز الصورة الصحيح. وبالتالي ، يمكن ضبط النظام البصري حتى يتم اكتشاف الحد الأقصى للتباين. في هذه الطريقة ، لا تتضمن AF قياس المسافة الفعلية على الإطلاق وهي أبطأ بشكل عام من أنظمة الكشف عن الطور ، خاصة عند التشغيل تحت الضوء الخافت. نظرًا لأنه لا يستخدم مستشعرًا منفصلًا ، فقد يكون ضبط تلقائي للصناعة على التباين أكثر مرونة (حيث يتم تنفيذه في البرامج) وربما أكثر دقة. هذه طريقة شائعة في كاميرات الفيديو والكاميرات الرقمية على مستوى المستهلك تفتقر إلى مصاريع ومرايا رد الفعل. تستخدم بعض DSLRs (بما في ذلك Olympus E-420 ، Panasonic L10 ، Nikon D90 ، Nikon D5000 ، Nikon D300 في وضع ثلاثي القوائم ، Canon EOS 5D Mark II ، Canon EOS 50D) هذه الطريقة عند التركيز في أوضاع الرؤية الحية. يستخدم نظام جديد قابلة للتبديل ، وهو ثلث Micro Four ، على وجه الحصر ضبطًا تلقائيًا لقياس التباين ، ويقال إنه يوفر أداءً قابلاً للمقارنة لأنظمة اكتشاف الطور.

لم أقم ببناء واحدة بنفسي ، لكن تفكيري الأول سيكون القيام بـ DFT ثنائي الأبعاد على جزء من الصورة. عندما تكون خارج التركيز ، ستختفي الترددات العالية تلقائيًا.

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

على الرغم من أن Sobel هو خيار لائق ، فمن المحتمل أن أختار إجراء حساب حجم الحافة على الإسقاطات في اتجاهات X و Y على عدة مناطق تمثيلية صغيرة. خيارات أخرى ودية .NET تستند إلى OpenCV هي @ http://www.emgu.com/wiki/index.php/main_page.

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

قد تكون نكهة أخرى لمقياس التركيز:

الاستيلاء على العديد من الصور ومتوسطها (الحد من الضوضاء). ثم FFT الصورة المتوسطة واستخدم نسبة الطاقة عالية الترددات عالية إلى منخفضة. كلما ارتفعت هذه الحصة بشكل أفضل. يتوفر عرض MATLAB (باستثناء مرحلة المتوسط) ضمن عروض الأدوات :)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top