تشخیص لبه (Edge Detection): هنر دیدن مرزها در دنیای دیجیتال
نویسنده: فاطمه جعفری نوبخت
اگر از یک هنرمند بخواهید پرترهای بکشد، احتمالاً اولین کاری که میکند کشیدن خطوط اصلی و دور چهره است. در دنیای کامپیوتر هم دقیقاً همینطور است. برای اینکه ماشین بتواند محتوای یک تصویر را درک کند، ابتدا باید بتواند اشیاء را از پسزمینه جدا کند و این کار با پیدا کردن “لبهها” آغاز میشود.
تشخیص لبه فرآیندی ریاضیاتی است که نقاطی از تصویر را شناسایی میکند که در آنها روشنایی (Brightness) به طور ناگهانی تغییر کرده است. این نقاط معمولاً نشاندهنده مرز اشیاء، تغییر در سطح، یا تغییر در بافت هستند.
۱. لبه از نظر ریاضی چیست؟
در یک تصویر دیجیتال (که ماتریسی از اعداد است)، لبه جایی است که تغییرات شدید در مقدار پیکسلها رخ میدهد.
فرض کنید یک تصویر سیاهوسفید داریم. اگر در یک ردیف حرکت کنیم و پیکسلها از مقدار ۱۰ (تیره) ناگهانی به ۲۰۰ (روشن) بپرند، ما با یک لبه مواجه هستیم.
برای پیدا کردن این تغییرات، ما از مشتق (Derivative) استفاده میکنیم:
- مشتق اول (گرادیان): شدت تغییرات را نشان میدهد. هر جا شیب تغییرات ماکزیمم باشد، آنجا لبه است.
- مشتق دوم (لاپلاسین): نرخ تغییرِ تغییرات را نشان میدهد. هر جا مقدار آن از مثبت به منفی (یا برعکس) عبور کند (Zero Crossing)، آنجا لبه است.
۲. فیلترها و کرنلهای کلاسیک (Classic Kernels)
در روشهای سنتی، ما یک پنجره کوچک (مثلاً ۳×۳) به نام کرنل (Kernel) یا فیلتر را روی تصویر میلغزانیم (عملگر کانولوشن) تا تغییرات را محاسبه کنیم.
الف) عملگر سوبل (Sobel Operator)
مشهورترین فیلتر ساده است. سوبل از دو فیلتر استفاده میکند: یکی برای تغییرات افقی ($G_x$) و دیگری برای تغییرات عمودی ($G_y$).
- مزیت: محاسبات سریع و ساده.
- عیب: حساسیت به نویز (نقاط ریز و بیاهمیت را هم لبه فرض میکند).
ب) عملگر پریویت (Prewitt) و رابرتز (Roberts)
نسخههای قدیمیتر و سادهتری هستند که عملکردی مشابه سوبل دارند اما در تشخیص جهت لبهها کمی متفاوت عمل میکنند.
ج) لاپلاسین گوسین (LoG – Laplacian of Gaussian)
چون مشتقگیری نویز را تقویت میکند، این روش ابتدا تصویر را با فیلتر گوسین “تار” (Blur) میکند تا نویزها حذف شوند، سپس از مشتق دوم (لاپلاسین) برای یافتن لبهها استفاده میکند. این روش لبههای بستهتر و تمیزتری تولید میکند.
۳. الگوریتم کنی (Canny): استاندارد طلایی
اگر از یک متخصص پردازش تصویر بپرسید “بهترین الگوریتم کلاسیک تشخیص لبه چیست؟”، بیدرنگ خواهد گفت: Canny.
این الگوریتم که در سال ۱۹۸۶ توسط جان کنی معرفی شد، یک فرآیند چندمرحلهای هوشمندانه است:
- کاهش نویز (Noise Reduction): اعمال فیلتر گوسین برای نرم کردن تصویر.
- محاسبه گرادیان: پیدا کردن شدت و جهت لبهها (با استفاده از چیزی شبیه سوبل).
- حذف غیر ماکزیممها (Non-Maximum Suppression): این مرحله حیاتی است. الگوریتم خطوط ضخیم لبه را بررسی میکند و فقط “قله” یا تیزترین قسمت لبه را نگه میدارد. نتیجه، خطوطی بسیار نازک (به ضخامت یک پیکسل) است.
- آستانهگذاری هیسترزیس (Hysteresis Thresholding): تصمیم نهایی. دو آستانه (پایین و بالا) تعریف میشود:
- لبههای قوی (بالاتر از آستانه بالا) حتماً پذیرفته میشوند.
- لبههای ضعیف (بین دو آستانه) تنها در صورتی پذیرفته میشوند که به یک لبه قوی متصل باشند.
این روش باعث میشود خطوطی پیوسته و تمیز داشته باشیم.
۴. عصر یادگیری عمیق: HED
با ظهور هوش مصنوعی، روشهای سنتی که فقط بر اساس اختلاف رنگ کار میکردند، به چالش کشیده شدند. الگوریتمهای سنتی فرق بین “لبه میز” و “تغییر رنگ در بافت چوب میز” را نمیفهمند.
HED (Holistically-Nested Edge Detection):
این روش از شبکههای عصبی عمیق (Deep Learning) استفاده میکند. HED نه تنها تغییرات پیکسل، بلکه مفهوم تصویر را میفهمد. این مدل میتواند تشخیص دهد که خط دورِ یک گربه مهم است، اما خطوط راه راه روی بدن گربه لبه اصلی نیستند. این روش برای تصاویر پیچیده طبیعی بسیار بهتر از Canny عمل میکند.
۵. کاربردها (با تمرکز بر علوم مکانی و مهندسی)
تشخیص لبه فقط برای نقاشی دیجیتال نیست؛ کاربردهای حیاتی دارد:
- GIS و سنجش از دور:
- استخراج خودکار جادهها از تصاویر ماهوارهای (جادهها معمولاً دو لبه موازی با کنتراست بالا نسبت به زمین اطراف هستند).
- تشخیص خط ساحلی و تغییرات مرز آبی در طول زمان.
- پزشکی:
- پیدا کردن مرز تومورها در تصاویر MRI برای محاسبه دقیق حجم آن.
- تشخیص شکستگیهای ریز در تصاویر X-Ray.
- خودروهای خودران:
- تشخیص خطوط سفید وسط جاده (Lane Detection) برای نگه داشتن خودرو در مسیر.
۶. چالشها
- نویز: دشمن اصلی تشخیص لبه. یک تصویر برفکی میتواند هزاران لبهی کاذب ایجاد کند.
- نورپردازی: سایههای تند میتوانند به عنوان لبههای قوی شناسایی شوند، در حالی که لبههای واقعی در سایه پنهان بمانند.
- پیوستگی: گاهی لبهها در واقعیت وجود دارند اما در تصویر قطع شدهاند (مثلاً ماشینی که پشت درخت رفته است). مغز ما خط را کامل میکند، اما الگوریتمهای سنتی (مثل سوبل) نمیتوانند.
7. نتیجهگیری
تشخیص لبه، دروازهی ورود به پردازش تصویر سطح بالا است. در حالی که الگوریتم Canny همچنان برای کاربردهای هندسی و دقیق (مثل بارکدخوانها یا قطعات صنعتی) بیرقیب است، روشهای مبتنی بر یادگیری عمیق برای درک تصاویر پیچیده طبیعی و پزشکی جایگزین آن شدهاند. انتخاب روش مناسب، همیشه تعادلی است بین دقت، سرعت و میزان نویز تصویر.