استخراج ویژگی harris در مقابل sift - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

استخراج ویژگی harris در مقابل sift

+1 امتیاز
سلام. من اگر از تصویر ورودی با harris corner ویژگی استخراج می کنم خیلی سرعتش خوبه چه دلیلی داره از استخراج ویژگی surf استفاده کنم این روش خیلی کنده چرا اینقدر روش های استخراج ویژگی متنوعه؟

 

موفق باشید
سوال شده دی 27, 1392  بوسیله ی rastegar (امتیاز 24)   2 3 6
دوباره تگ گذاری شد بهمن 22, 1392 بوسیله ی BlueBlade
سلام، من جوابهای شما و توضیحات رو خوندم سوالی مشابه ایشون داشتم که متوجه شدم افاین سیف مشکلم رو حل میکنه . کد مربوط به این الگوریتم رو از کجا میتونم دانلود کنم؟

1 پاسخ

+3 امتیاز
 
بهترین پاسخ
harris ویژگی هایی را که استخراج می کنه نسبت به تبدیلات چرخش و scale و تبدیلات خطی invariant هستند به مجموعه این تبدیلات affine گفته میشه به طور مثال شما از یک جسم با یک دوربین در حال تصویر گرفتن هستید حالا دوربین را بدون تغییر مرکز ثقل می چرخوند و یا اینکه zoom دوربین را تغییر می دید یا به عبارت دیگر عقب و جلو میرد اگر از این تصاویر با harris ویژگی استخراج کنید نسبت به تبدیل affine ثابت هستند. حالا اگر در زوایای مختلف تصویر بگیرید احتمال اینکه بتونید ویژگی تصویر جدید با تصویر قبلی که توسط روش harris بدست آمده ممکنه هیچ کدومشون به هم شباهت داشته باشند علتش اینه که تصاویر جدید نسبت به تصاویر قبلی از طریق تبدیل perspective بدست میان به همین خاطر بایستی روشی را برای استخراج ویژگی انتخاب کنید نسبت به تبدیل perspective ثابت باشه که یکی از این روش های sift هستش البته روش surf هم دارای همچین ویژگی هستش.
پاسخ داده شده دی 27, 1392 بوسیله ی مصطفی ساتکی (امتیاز 21,998)   24 34 75
انتخاب شد دی 27, 1392 بوسیله ی rastegar
چند نکته هست که باید بگم چون تو حوزه کاری من هستش. اول اینکه هریس یک روش یافتن نقاط گوشه است اما روشهایی مانند sift و surf نه تنها نقاط برجسته و کلیدی را پیدا میکنند بلکه آنها را توصیف نیز می کنند. یعنی برای هر نقطه  استخراجی، توصیفگر مربوطه را ایجاد میکنند که برای مقایسه و شناسایی نقاط و تشخیص نقاط متناظر در تصاویر مختلف لازم است توصیفگرهای آنها را با هم مقایسه کنیم.
ثانیا برای هر مساله ای 100 ها روش وجود دارد و این طور باشد یک مقاله 40 سال پیش که در مورد حل موضوعی پیشنهادی داده کافیست و دیگر بقیه نباید تحقیق و پژوهش کنند!!
این شما هستید که بسته به کارتان سعی میکنید یکی از آنها را انتخاب کنید . مقالاتی آمده اند و این روشها را با یکدیگر مقایسه کرده اند از نظر مقیاس پذیری، تکرارپذیری، چرخش، نویز و .... شما میتونید ببینین که در مواردی یک روش بهتر از دیگری است و برعکس

چند نگته دیگر هم است که باید گفته شود. اول اینکه روش هریس مستقل از مقیاس نیست که دوستمون گفتن. روشی که با استفاده از مفهوم لاپلاسین این کارو میکنه و باعث میشه این روش مستقل از مقیاس بشه Harris Laplace است. روش مشابه اون روش Hessian Laplace هست. روشی که توسط Mikolajczyk توسعه داده شده با نام Harris affine باعث شد به صورت تکراری تصویر مستقل از تبدیل افاین بشه که اون هم کاملا مستقل نیس و کند هست.
پس باید sift یا surf با اینها مقایسه بشند که بسیار سریعتر از روشهای Harris laplace هستند. در ضمن روشهای sift , surf نیز مستقل از افاین نیستند و فقط مستقل از مقیاس و چرخش هستند.
توسعه هایی برای این روشها پیشنهاد شده تا مستقل از افاین نیز شوند مانند Affine Sift , ...
هریس را اگر به صورت pyramid استفاده کنید میشه مستقل از scale مشکلش این هست که یک corner تو یک scale کرنر دیده میشه ولی تو scale بزرگتر نه پس میشه این مشکل را با روش pyramid حلش کرد. در واقع sift  و surf همین کارو انجا میدن.sift یا surf مستقل از affine هستند ولی نه به صورت کامل .اگر به صورت کامل باشه بایستی کلیه keyPoint نظیر به نظیر match بشه ولی به صورت partial عملیات match صورت میگیره.
بله دقیقا میشه با ایجاد هرم مشکلو حل کرد اما اون دیگه روش هریس معروف نیست و توسعه روش هریسه مثل harris laplace یا hessian laplace ,...
sift , surf هم مستقل از افاین نیستند و برای این مورد ساخته نشده اند . در روششون اصلا تکنیکی برای حل مشکل زاویه دید وجود نداره. حالا شاید تو تغییرات زاویه دید کم مثل 5 تا 10 درجه تطبیقهایی صورت بگیره که این ملاک مستقل از افاین بودن نیست.!
...