موضوع مقاله: آشکارساز لبه کنی | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # آشکارساز لبه کنی | مقدمه: آشکارساز لبه کنی یک عملگر لبه یابی است که از یک الگوریتم چند مرحله ای برای یافتن دامنه وسیعی از لبه در تصویر استفاده می‌کند. | ## بخش 1: آشکارساز لبه کنی | همچنین Canny یک تئوری محاسباتی لبه یابی ایجاد کرد که توضیح می‌دهد روش چگونه کار می‌کند. توسعه الگوریتم Canny آشکارکننده لبه Canny روشی است برای استخراج اطلاعات ساختاری مفید از اشیا بصری و به طرز چشمگیری میزان داده‌هایی که باید پردازش شوند را کاهش می‌دهد. Canny دریافت که لازمه‌های اعمال آشکارسازی لبه روی سیستم‌های بینایی گوناگون نسبتاً یکسان است. به این ترتیب، راهکار آشکارسازی لبه برای مشخص کردن این لازمه‌ها می‌تواند در رنج وسیعی از وضعیت‌ها پیاده‌سازی شود. معیارهای کلی برای لبه یابی شامل موارد زیر می‌شوند: آشکارسازی لبه با میزان خطای کم، بدین معنی که آشکارسازی باید تا جایی که ممکن است بیشترین لبه‌های نشان داده شده در تصویر را به درستی بدست آورد. لبه داده شده در تصویر باید یکبار مشخص شود و در صورت امکان، نویز تصویر نباید لبه‌های نادرست ایجاد کند. برای تحقق این لازمه‌ها Canny از حساب تغییرات – روشی که تابعی را برای بهینه‌سازی یک تابعی داده شده پیدا می‌کند – استفاده کرد. تابع بهینه در آشکارساز Canny به وسیله جمع ۴ مؤلفه نمایی توصیف می‌شود، اما می‌تواند با مشتق اول یک گاوسی تقریب زده شود. در بین متدهای لبه یابی توسعه یافته تا کنون، الگوریتم آشکارساز لبه Canny یکی از روش‌های تعریف شده به‌طور دقیقی است که آشکارسازی خوب و قابل اعتمادی را فراهم می‌کند. به دلیل بهینه بودن آن برای تحقق ۳ معیار لبه یابی وسادگی فرایند پیاده‌سازی، این روش یکی از محبوبترین الگوریتم‌ها برای آشکارسازی لبه است. فرایند الگوریتم آشکارسازی لبه Canny فرایند الگوریتم آشکارسازی لبه Canny می‌تواند در ۵ مرحله مختلف خلاصه شود: اعمال فیلتر گوسی برای هموار کردن تصویر جهت حذف نویز. دنبال کردن لبه‌ها با استفاده از پسماند: نهایی کردن آشکارسازی لبه با سرکوب همه لبه‌های دیگری که ضعیف هستند و به لبه‌های قوی متصل نیستند. از آنجائیکه همه نتایج آشکارسازی لبه به سادگی تحت تأثیر نویز در تصویر قرار می‌گیرند، برای جلوگیری از آشکارسازی غلط ناشی از نویز، فیلتر کردن نویزها ضروری است. این مرحله تصویر را اندکی هموار می‌کند تا آثار نویزهای واضح روی آشکارساز لبه کاهش یابد. این مثالی از یک فیلتر گوسی ۵×۵، که برای ایجاد تصویر مقابل استفاده شده‌است، با ۱٫۴ = می‌باشد. درک این امر که انتخاب اندازه کرنل گوسی روی عملکرد آشکارساز اثر می‌گذارد مهم است. به علاوه خطای محلی سازی برای آشکارکردن لبه با افزایش اندازه کرنل فیلتر گوسی اندکی افزایش پیدا می‌کند. یافتن گرادیان شدت روشنایی تصویر لبه یک تصویر ممکن است در راستاهای مختلفی باشد، در نتیجه الگوریتم Canny از 4 فیلتر برای تشخیص لبه‌های افقی، عمودی و قطری در تصویر هموار شده استفاده می‌کند. با استفاده از آن‌ها می‌توان گرادیان و راستای لبه را مشخص کرد: که G با استفاده از تابع hypot و atan2 که تابع عکس تانژات با دو آرگومان است حساب می‌شود. جهت لبه به ۴ راستای عمودی، افقی و قطری (۲ راستا) رند می‌شود (°۰، °۴۵، °۹۰ و °۱۳۵). زاویه مشخصی به جهت لبه در هر ناحیه رنگی نسبت داده می‌شود برای مثال برای θ در بازه [°۰, °۲۲٫۵] یا [°۱۵۷٫۵,°۱۸۰] به °۰ نگاشت می‌شود. پس از اعمال محاسبات گرادیان، لبه بدست آمده از مقدار گرادیان همچنان به‌طور کامل تار است. به این ترتیب سرکوب نقاط غیر بیشینه می‌تواند به سرکوب همه مقادیر گرادیان (با صفر کردن آن‌ها) به جز بیشینه‌های محلی که نشان دهنده مکان‌هایی با سریعترین تغییر در مقدار روشنایی هستند کمک کند. این الگوریتم برای هر پیکسل در تصویر گرادیان به شرح زیر است: مقایسه قدرت لبه پیکسل کنونی با قدرت لبه پیکسل در راستاهای مثبت و منفی گرادیان. اگر قدرت لبه پیکسل کنونی در مقایسه با دیگر پیکسل‌ها که در یک راستا (برای مثال یک پیکسل که جهت آن در راستای y است با پیکسل‌های بالا و پایین در محور عمودی مقایسه می‌شود) هستند بزرگترین باشد، مقدار نگه داشته می‌شود. | ## بخش 2: آشکارساز لبه کنی | در غیر اینصورت مقدار سرکوب می‌شود در برخی از پیاده‌سازی‌ها، الگوریتم جهت‌های پیوسته گرادیان را به مجموعه ای از جهت‌های گسسته دسته‌بندی می‌کند، و بعد یک فیلتر 3x3 را روی خروجی مرحله قبل (که قدرت لبه و جهت گرادیان است) حرکت می‌دهد. در هر پیکسل، این الگوریتم قدرت لبه پیکسل مرکزی را سرکوب می‌کند (با صفر کردن مقدار آن) اگر اندازه آن بزرگتر از اندازه دو همسایه آن در راستای گرادیان نباشد. برای مثال، اگر زاویه رند شده گرادیان صفر (یعنی لبه در راستای جنوبی-شمالی باشد) و اندازه گرادیان بزرگتر از اندازه پیکسل‌ها در جهت‌های شرق و غرب باشد به عنوان نقطه روی لبه در نظر گرفته می‌شود. اگر زاویه رند شده گرادیان °۹۰ (یعنی لبه در راستای شرقی-غربی باشد) و اندازه گرادیان بزرگتر از اندازه پیکسل‌ها در جهت‌های شمال و جنوب باشد به عنوان نقطه روی لبه در نظر گرفته می‌شود. اگر زاویه رند شده گرادیان °۱۳۵ (یعنی لبه در راستای شمال شرقی-جنوب غربی باشد) و اندازه گرادیان بزرگتر از اندازه پیکسل‌ها در جهت‌های شمال غرب و جنوب شرق باشد به عنوان نقطه روی لبه در نظر گرفته می‌شود. اگر زاویه رند شده گرادیان °۴۵ (یعنی لبه در راستای شمال غربی-جنوب شرقی باشد) و اندازه گرادیان بزرگتر از اندازه پیکسل‌ها در جهت‌های شمال شرق و جنوب غرب باشد به عنوان نقطه روی لبه در نظر گرفته می‌شود. در پیاده‌سازی‌های دقیقتر، از درون یابی خطی بین دو پیکسل همسایه که بین مسیر گرادیان قرار دارند استفاده می‌شود. برای مثال اگر زاویه گرادیان بین °۸۹ و °۱۸۰ باشد، درون یابی بین گرادیان‌ها در پیکسل‌های شمال و شمال شرق یک مقدار درون یابی شده و درون یابی بین پیکسل‌های جنوب و جنوب غرب یک مقدار دیگر بدست می‌دهد (با استفاده از قواعد پاراگراف آخر). اندازه گرادیان در پیکسل مرکزی باید بزرگتر از هر دو پیکسل که به عنوان لبه در نظر گرفته شده‌اند باشد. دقت شود که علامت جهت اهمیتی ندارد، یعنی شمال-جنوب با جنوب-شمال و یه همین ترتیب برابر است. آستانه گذاری دوگانه پس از اعمال سرکوب غیر بیشینه، پیکسل‌های لبه باقی مانده، ارائه دقیقتری از لبه‌های واقعی تصویر دارند. برای در نظر گرفتن این پاسخ‌های غیر واقعی، فیلتر کردن پیکسل‌های لبه با مقدار گرادیان ضعیف و نگه داشتن پیکسل‌های لبه با مقدار گرادیان زیاد ضروری است. اگر گرادیان یک پیکسل لبه کوچکتر از آستانه زیاد و بزرگتر از آستانه کم باشد پیکسل لبه ضعیف حساب می‌شود. این دو آستانه به صورت تجربی تعیین می‌شوند و تعریف آن‌ها بستگی به محتوای تصویر ورودی داده شده دارد. تا اینجا پیکسل‌های لبه قوی قطعاً باید در تصویر لبه نهایی جای بگیرند، زیرا آن‌ها از لبه‌های واقعی در تصویر بدست آمده‌اند. اگر چه بحث‌هایی در مورد پیکسل‌های لبه ضعیف وجود دارد، زیرا این پیکسل‌ها می‌تواند هم از لبه واقعی و هم از تغییرات رنگ/نویز بدست آیند. برای رسیدن به نتیجه دقیق، لبه‌های ضعیف ناشی از تغییرات رنگ یا نویز باید حذف شوند. معمولاً یک پیکسل لبه ضعیف که ناشی از لبه‌های واقعی هستند به پیکسل لبه قوی متصل است در صورتی که پاسخ‌های نویز متصل نیستند. برای دنبال کردن اتصال لبه، آنالیز blob به وسیله نگاه کردن به پیکسل لبه قوی و پیکسل‌های همسایگی ۸-اتصاله اعمال می‌شود. از آنجائیکه تنها یک پیکسل لبه قوی در blob نقش دارد، آن نقطه لبه ضعیف می‌تواند به عنوان نقطه ای که باید حفظ شود تشخیص داده شود. بهبود در لبه یابی Canny در حالیکه لبه یابی قدیمی Canny روشی نسبتاً ساده ولی دقیق برای مسئله لبه یابی فراهم می‌آورد، برای رسیدن به دقت و مقاومت بیشتر در تشخیص، الگوریتم قدیمی دیگر نمی‌تواند مسئله لبه یابی سخت را حل کند. معایب اصلی الگوریتم قدیمی به صورت زیر خلاصه می‌شود: فیلتر گوسی برای هموار کردن نویز استفاده می‌شود اما این فیلتر سبب هموار شدن لبه‌ها نیز می‌شود که به عنوان ویژگی‌های با فرکانس بالا در نظر گرفته می‌شوند. این سبب افزایش احتمال از دست دادن لبه‌های ضعیف و ظاهر شدن لبه‌های ایزوله شده در خروجی می‌شود. برای محاسبه اندازه گرادیان، روش قدیمی لبه یابی Canny از مرکز در یک پنجره همسایگی کوچک ۳×۳ برای محاسبه مقدار محدود میانگین تفاوت استفاده می‌کند تا اندازه گرادیان را بدست دهد. این روش حساس به نویز است و می‌تواند به راحتی لبه‌های غلط را تشخیص و لبه‌های واقعی را از دست دهد. | ## بخش 3: آشکارساز لبه کنی | در الگوریتم قدیمی لبه یابی Canny، دو آستانه ثابت سراسری برای فیلتر کردن لبه‌های غلط تصویر وجود دارد. اگر چه زمانی که تصویر پیچیده شود، نواحی محلی مختلف به آستانه بسیار متفاوتی برای پیدا کردن صحیح لبه‌های حقیقی نیاز دارند. به علاوه مقادیر آستانه سراسری در روش قدیمی به صورت دستی در طی آزمایش‌ها مشخص می‌شوند که سبب پیچیدگی محاسبات، زمانی که با تعداد زیادی تصاویر سر و کار داریم می‌شود. نتیجه تشخیص قدیمی نمی‌تواند منجر به یک پاسخ منفرد رضایتبخش با دقت بالا برای هر لبه شود و پاسخ‌های چند نقطه ای ظاهر می‌شوند. جایگزین کردن فیلتر گوسی از آنجائیکه لبه و نویز به عنوان سیگنال فرکانس بالا شناسایی می‌شوند، فیلتر گوسی ساده هر دو را هموار می‌کند. اگرچه برای رسیدن به تشخیص لبه واقعی با دقت بالا انتظار می‌رود که همواری بیشتر باید به نویز و همواری کمتر باید به لبه اعمال شود. هرچه ناپیوستگی بیشتر باشد، مقدار وزن کمتری برای فیلتر هموارکننده در آن نقطه در نظر گرفته می‌شود. فرایند پیاده‌سازی این فیلتر وفقی در ۵ مرحله می‌تواند خلاصه شود: k = ۱، تعداد تکرار n وضریب اندازه لبه h در نظر گرفته می‌شود. بهبود در محاسبه جهت و اندازه گرادیان اندازه و جهت گرادیان می‌تواند از طریق عملگرهای لبه یابی متفاوتی محاسبه شود و انتخاب عملگر بر کیفیت نتایج اثر می‌گذارد. روش مقاوم برای تعیین مقدار آستانه دوگانه برای برطرف کردن چالش‌هایی که در آن تشخیص آستانه دوگانه به صورت تجربی دشوار است، روش Otsu می‌تواند بر تصویر اندازه گرادیان که سرکوب غیر بیشینه شده‌است برای ایجاد آستانه زیاد اعمال شود. از آنجائیکه تصویر اندازه گرادیان مقادیر پیوسته بدون بیشینه مشخص دارد، روش Otsu باید برای استفاده از جفت‌های مقدار/تعداد به جای کل هیستگرام وفق داده شود. نازک کردن لبه با اینکه لبه یابی قدیمی Canny خروجی تشخیص خوبی را با در نظرگرفتن دو معیار اول بدست می‌دهد، اما پاسخ منفرد برای هر لبه را به‌طور دقیق برآورده نمی‌کند. Curvelets سیگنال‌ها را به مولفه‌های جداگانه مقیاس‌های متفاوت تجزیه می‌کند و کاهش مؤلفه‌های مقیاس‌های نرمتر می‌تواند نویز را کاهش دهد. فرمول بندی هندسی تفاضلی لبه یاب Canny روشی بهتر برای رسیدن به لبه‌های با دقت زیرپیکسل، استفاده از رویکرد لبه یابی تفاضلی است که سرکوب غیر بیشینه به صورت عبارات مشتق مرتبه دوم و سوم که از فضای مقیاس محاسبه می‌شوند فرمول بندی می‌شود (Lindeberg 1998). پارامترها الگوریتم Canny شامل چند پارامتر قابل تنظیم است که می‌تواند روی زمان محاسبه و کارایی الگوریتم اثر گذارد. اندازه فیلتر گوسی: فیلتر هموارسازی که در مرحله اول استفاده می‌شود مستقیماً روی نتایج الگوریتم Canny اثر می‌گذارد. فیلتر کوچکتر سبب تار شدن کمتر می‌شود و امکان آشکارسازی خطوط تیز و کوچک را فراهم می‌کند. فیلتر بزرگتر باعث تار شدن بیشتر می‌شود و مقدار یک پیکسل را در ناحیه بزرگی از تصویر پراکنده می‌کند. شعاع‌های محوسازی بزرگتر برای آشکار ساختن لبه‌های نرمتر و بزرگتر کاربردی است – برای مثال لبه‌های یک رنگین کمان. آستانه: استفاده از دو آستانه با پسماند نسبت به رویکرد تک آستانه ای انعطاف‌پذیری بیشتری دارد اما مشکلات عمومی رویکرد آستانه گذاری همچنان وجود دارند. از طرفی دیگر آستانه کم سبب تشخیص اطلاعات غلط و نامربوط (نظیر نویز) به عنوان اطلاعات مهم می‌شود. پارامترهای آن این امکان را می‌دهد که این الگوریتم برای شناسایی لبه‌های با مشخصات متفاوت بسته به نیاز خاص مناسب باشد. در مقاله اصلی Canny، مشتق فیلتر بهینه سبب ایجاد یک فیلتر با پاسخ ضربه محدود می‌شود که محاسبه در حوزه مکان را اگر میزان هموارسازی مورد نیاز مهم باشد کند می‌کند (فیلتر در این حالت معادل مکانی بزرگی دارد). | ## جمع‌بندی | در این حالت اگرچه پیاده‌سازی عادی بازگشتی اپراتور Canny تقریب خوبی از تقارن چرخشی نمی‌دهد و در نتیجه در لبه‌های افقی و عمودی بایاس داریم.