Top Layout Campaign banner

تغییرات اخیر

در اینجا اطلاعیه‌ها، نسخه‌ها و تغییرات جدید لیارا فهرست می‌شوند.

درک فیلترها در شبکه‌های عصبی کانولوشنی (CNN): تبدیل تصاویر به اطلاعات


۱۷ مرداد ۱۴۰۴

خلاصه کنید:

openaigeminiperplexity

تا قبل از CNNها، تحلیل تصویر بیشتر به استخراج ویژگی‌های دستی وابسته بود؛ رویکردی محدود که در مواجهه با داده‌های پیچیده تصویری عملکرد پایداری نداشت.

شبکه‌های عصبی کانولوشنی (CNN) این روند را تغییر دادند. ایده اصلی آن‌ها ساده است: به‌جای نگاه کلی به تصویر، مدل از طریق فیلترهای کوچک روی بخش‌های محلی تصویر حرکت می‌کند و الگوها را مرحله‌به‌مرحله استخراج می‌کند.

در لایه‌های ابتدایی، CNNها ویژگی‌های ساده‌تری مثل لبه‌ها و تغییرات روشنایی را یاد می‌گیرند و در لایه‌های عمیق‌تر، این اطلاعات به مفاهیم پیچیده‌تری مثل اشیا و ساختارهای معنایی تبدیل می‌شود.

برخلاف شبکه‌های کاملاً متصل (MLP)، این معماری هم کارآمدتر است و هم ساختار فضایی تصویر را حفظ می‌کند. نکته مهم‌تر این است که فیلترها از قبل تعریف نمی‌شوند، بلکه در طول آموزش و بر اساس داده‌ها یاد گرفته می‌شوند.

به همین دلیل، CNNها امروز به یکی از پایه‌های اصلی بینایی ماشین تبدیل شده‌اند؛ از تشخیص تصویر تا سیستم‌های هوشمند پیشرفته.

در این مقاله، با تمرکز بر نقش فیلترها در CNN، بررسی می‌کنیم که این فیلترها چطور با تصویر تعامل دارند و در هر لایه چه اطلاعاتی را استخراج می‌کنند. با درک بهتر عملکرد این بخش مهم از شبکه، تصویر دقیق‌تری از فرایند پردازش تصویر در CNN به‌دست می‌آورید.

در ادامه خواهید خواند:

  • پیش‌نیازها
  • شبکه‌های عصبی و استخراج ویژگی‌ها
  • تصاویر و اهمیت لبه‌ها
  • شبکه‌های عصبی کانولوشنی و بینایی انسان
  • تشخیص و استخراج لبه‌ها
  • تابع کانولوشن
  • فیلترهای پرویت
  • فیلترهای سوبل
  • فیلتر لاپلاس
  • ماسک‌های قطب‌نمای رابینسون
  • ماسک‌های جهتی کریش
  • نشانه‌گذاری فیلترها
  • کار با تابع کانولوشن
  • آدرس فایل تصویر
  • فیلتر
  • جمع بندی

پیش‌نیازها

برای درک بهتر محتوای این آموزش، آشنایی مقدماتی با زبان برنامه‌نویسی پایتون و مفاهیم پایه‌ای شبکه‌های عصبی ضروری است. این مقاله به‌طور خاص برای افرادی مناسب است که تجربه‌ی متوسط تا پیشرفته در زمینه‌ی کدنویسی دارند و با مباحث مرتبط با یادگیری عمیق و طراحی معماری‌های نوین در شبکه‌های عصبی آشنایی اولیه‌ای دارند. آشنایی قبلی با ساختار کلی مدل‌های یادگیری ماشین، به درک عمیق‌تر مطالب ارائه‌شده در این آموزش کمک خواهد کرد.

شبکه‌های عصبی و استخراج ویژگی‌ها

یکی از توانایی‌های اساسی شبکه‌های عصبی، قابلیت آن‌ها در استخراج ویژگی‌ها از داده‌ها است؛ ویژگی‌هایی که سپس برای رسیدن به اهداف خاصی مانند دسته‌بندی (Classification)، رگرسیون (Regression) و غیره مورد استفاده قرار می‌گیرند.

در شبکه‌های عصبی کلاسیک مانند MLP (شبکه‌های پرسپترون چندلایه)، این فرآیند قابل تصور است: داده‌های ورودی که معمولا شامل چند ویژگی عددی درباره یک نمونه خاص از داده هستند، با وزن‌های آموزش دیده ترکیب یا تغییر داده می‌شوند تا به ویژگی‌های ضروری‌تر و مفیدتری تبدیل شوند.

اما در شبکه‌های عصبی کانولوشنی یا CNN ها، استخراج ویژگی به این سادگی قابل تعریف نیست؛ چرا که برخلاف MLP ها، داده ورودی به صورت یک بردار ویژگی نیست، بلکه به شکل تصویر وارد می‌شود. تصویرها در واقع ماتریس‌های دوبعدی (و در صورت رنگی بودن، سه بعدی) از پیکسل‌ها هستند؛ بنابراین تعریف ویژگی در این نوع داده‌‌ها کمی پیچیده‌تر است.

برای درک بهتر، به این مثال توجه کنید: اگر با یک دیتابیس جدولی از اطلاعات خانه‌‎ها مواجه باشیم؛ ویژگی‌هایی مثل تعداد اتاق‌خواب‌ها یا متراژ سالن نشیمن به عنوان ویژگی‌های توصیف کننده‌ هر خانه شناخته می‌شوند. اما در مورد یک تصویر با کیفیت متوسط (مثلا رزولوشن 480p) از یک گربه چطور؟ تصویری با ابعاد 640*480، شامل 307,200 پیکسل است.

اینجا سوال اصلی شکل می‌گیرد: از میان این حجم از پیکسل‌ها، چه چیزی واقعاً یک ویژگی محسوب می‌شود؟ و شبکه چگونه باید تشخیص دهد کدام بخش تصویر مهم است و کدام بخش نه؟

در واقع، مفهوم ویژگی در تصاویر از قبل تعریف نشده است؛ بلکه باید از دل داده استخراج شود. همین مسئله دقیقاً جایی است که شبکه‌های کانولوشنی وارد عمل می‌شوند و به‌جای تکیه بر ورودی خام، ساختارهای معنادار را به‌صورت خودکار از تصویر یاد می‌گیرند.

با سرویس هوش مصنوعی لیارا، بدون دغدغه زیرساخت، مدل‌های AI خودت رو اجرا و مدیریت کن.
✅ پشتیبانی از GPU و CPU ✅ مناسب مدل‌های متن‌باز ✅ اجرای پایدار و سریع
خرید و راه‌اندازی سرویس هوش مصنوعی

تصاویر و اهمیت لبه‌ها

بخش قابل توجهی از اطلاعات مهم در یک تصویر، در لبه‌ها یا خطوط مرزی آن نهفته است. این یکی از دلایلی است که باعث می‌شود بتوانیم اجسام را در طرح‌های ساده کارتونی به‌راحتی تشخیص دهیم. در واقع، تحقیقات متعددی نشان می‌دهد که درک لبه‌ها یکی از نخستین فرآیندهایی است که مغز انسان هنگان دریافت محرک‌های بصری از چشم‌ها به کار می‌گیرد.

اما درک لبه‌ها، پدیده‌ای محدود به مغز انسان نیست. برخی مطالعات نشان داده‌اند که درک دقیق لبه‌ها می‌تواند یکی از دلایل اصلی توانایی شگفت‌انگیز پرندگان در پرواز با سرعت بالا در میان موانع و فرود دقیق بر روی اهداف بسیار کوچک از فاصله زیاد باشد. این ویژگی باعث شده پرندگان توانایی بصری فوق‌العاده‌ای در تشخیص محیط و واکنش به آن داشته باشند.

تصور کنید تنها چیزی که از یک تصویر در اختیار داریم، صرفاً خطوط مرزی آن باشد؛ مثلاً طرح ساده‌ای از یک توله‌سگ که فقط شامل خطوط بیرونی بدن اوست. حتی بدون وجود رنگ، بافت یا جزئیات بیشتر، باز هم بیشتر افراد می‌توانند به‌راحتی تشخیص دهند که تصویر مربوط به یک سگ است. این موضوع اهمیت بالای لبه‌ها در درک تصویری را نشان می‌دهد.

سیستم‌های چندعاملی در هوش مصنوعی چیست؟ چطور باعث افزایش بهره‌وری می‌شوند؟
سیستم‌های چندعاملی

شبکه‌های عصبی کانولوشنی و بینایی انسان

در سال‌های اخیر، بارها به این نکته اشاره شده است که شبکه‌های عصبی مصنوعی، شبکه‌های عصبی کانولوشنی (CNN)، از نحوه عملکرد مغز انسان الهام گرفته‌اند. یکی از شواهد مهم در این زمینه، شباهت میان نحوه پردازش تصاویر در مغز انسان و عملکرد اولیه این شبکه‌ها در تحلیل تصاویر است.

هنگامی که انسان به یک تصویر نگاه می‌کند، مغز ابتدا لبه‌ها و مرزهای موجود در تصویر را تشخیص می‌دهد. این مرحله اولیه به مغز کمک می‌کند تا اجسام و اشکال مختلف را از یکدیگر تفکیک کند.

به‌صورت مشابه، در شبکه‌های عصبی کانولوشنی نیز نخستین لایه‌های شبکه مسئول شناسایی لبه‌ها هستند. درواقع، لبه‌ها به‌عنوان اولین و ساده‌ترین ویژگی‌های تصویری، نقطه آغاز فرایند استخراج ویژگی‌ها توسط شبکه محسوب می‌شوند.

ابزاری که شبکه‌های عصبی برای انجام این فرآیند از آن استفاده می‌کنند، فیلترها (یا کرنل‌ها) هستند. این فیلترها پارامترهای قابل یادگیری شبکه به شمار می‌روند که در طول فرآیند آموزش تنظیم می‌شوند.

در لایه‌های ابتدایی، فیلترها به‌طور خاص برای شناسایی ویژگی‌های پایه‌ای همچون خطوط افقی، عمودی یا قطری طراحی می‌شوند. اما در لایه‌های عمیق‌تر، شبکه به‌تدریج می‌آموزد که اشکال پیچیده‌تر و حتی اجسام خاص را نیز شناسایی کند.

در این مقاله، تمرکز ما بر بررسی نحوه شناسایی لبه‌ها در لایه‌های ابتدایی شبکه است؛ زیرا این بخش از فرآیند، نه‌تنها نقش بنیادینی در درک تصویر دارد، بلکه از نظر مفهومی نیز قابل فهم‌تر و ملموس‌تر است.

Claude چیست؟ ساخت ابزارهای هوشمند با API هوش مصنوعی
Claude چیست؟

تشخیص و استخراج لبه‌ها

شبکه‌های عصبی کانولوشنی (Convolutional Neural Networks یا CNNs) از توانایی قابل‌توجهی برخوردارند: آن‌ها می‌توانند فیلترهای تخصصی تشخیص لبه را به‌صورت خودکار یاد بگیرند؛ فیلترهایی که متناسب با الگوهای آماری موجود در یک دیتاست خاص و همچنین اهداف مورد نظر شبکه طراحی می‌شوند.

هرچند این فیلترها در طی فرآیند آموزش به‌صورت خودکار ایجاد می‌شوند، فیلترهای سنتی که به‌صورت دستی طراحی شده‌اند همچنان به درک بهتر مفهوم تشخیص لبه در بینایی ماشین کمک می‌کنند. برخی از فیلترهای کلاسیک و پرکاربرد در این زمینه شامل فیلترهای Prewitt, Sobel, Laplacian, Robinson Compass و Krisch Compass هستند.

برای بررسی دقیق‌تر عملکرد این فیلترها، در ادامه از یک تابع کانولوشن دستی استفاده خواهیم کرد و این فیلترها را بر روی تصاویر اعمال می‌کنیم. این کار به ما امکان می‌دهد تا به‌صورت عملی، نحوه‌ی تاثیر هر فیلتر در استخراج لبه‌ها از تصاویر را مشاهده و تحلیل کنیم.

import numpy as np
import torch
import torch.nn.functional as F
import cv2
from tqdm import tqdm
import matplotlib.pyplot as plt


def convolve(image_filepath, filter, title=''):
    """
    This function performs convolution and
    returns both the original and convolved
    images.
    """

    #  reading image in grayscale format
    image = cv2.imread(image_filepath, cv2.IMREAD_GRAYSCALE)

    #  defining filter size
    filter_size = filter.shape[0]

    #  creating an array to store convolutions (x-m+1, y-n+1)
    convolved = np.zeros(((image.shape[0] - filter_size) + 1, 
                      (image.shape[1] - filter_size) + 1))
    
    #  performing convolution
    for i in tqdm(range(image.shape[0])):
      for j in range(image.shape[1]):
        try:
          convolved[i,j] = (image[i:(i+filter_size),
                                  j:(j+filter_size)] * filter).sum()
        except Exception:
          pass

    #  converting to tensor
    convolved = torch.tensor(convolved)
    #  applying relu activation
    convolved = F.relu(convolved)

    #  producing plots
    figure, axes = plt.subplots(1,2, dpi=120)
    plt.suptitle(title)
    axes[0].imshow(image, cmap='gray')
    axes[0].axis('off')
    axes[0].set_title('original')
    axes[1].imshow(convolved, cmap='gray')
    axes[1].axis('off')
    axes[1].set_title('convolved')
    pass
مدل هوش مصنوعی چیست؟ کاربرد و انواع AI به زبان ساده
مدل هوش مصنوعی 

تابع کانولوشن

در این بخش، تابعی تعریف کرده‌ایم که فرآیند کانولوشن را مشابه آنچه در شبکه‌های عصبی کانولوشنی (ConvNet) اتفاق می‌افتد، شبیه‌سازی می‌کند. این تابع علاوه‌بر انجام عملیات کانولوشن، شامل یک مرحله‌ی اضافی نیز هست که در آن تابع فعال‌سازی ReLU بر خروجی اعمال می‌شود؛ عملکردی که در مدل‌های رایج یادگیری عمیق نیز انتظار می‌رود.

هدف از تعریف این تابع، تشخیص لبه‌ها (Edge Detection) در یک تصویر نمونه است. برای این کار، از فیلترهایی که در بخش قبل معرفی کردیم، استفاده خواهیم کرد.

در ادامه، یک تصویر نمونه به عنوان ورودی در اختیار این تابع قرار می‌گیرد و نتیجه‌ی پردازش آن با استفاده از فیلترهای مختلف مشاهده خواهد شد.

فیلترهای پرویت

فیلترهای عمودی و افقی Prewitt

فیلتر Prewitt از دو فیلتر تشکیل شده است که به شناسایی لبه‌های عمودی و افقی کمک می‌کنند. فیلترهای افقی (در جهت محور x) به شناسایی لبه‌هایی که کمک می‌کند که به صورت محور افقی تصویر را قطع کنند، و بالعکس، فیلتر عمودی (در جهت محور y) برای تشخیص لبه‌هایی استفاده می‌شود که محور عمودی را قطع می‌کنند.

# utilizing the horizontal filter
convolve('image.jpg', horizontal)
# utilizing the vertical filter
convolve('image.jpg', vertical)

فیلترهای سوبل

فیلترهای عمودی و افقی Sobel

درست مانند عملگر Prewitt، عملگر Sobel نیز از یک فیلتر تشخیص لبه عمودی و یک فیلتر افقی تشکیل شده است. لبه‌های شناسایی شده با این فیلترها شباهت زیادی به نتایج به‌دست آمده از فیلترهای Prewitt دارند، اما با این تفاوت که شدت پیکسل در ناحیه لبه‌ها بیشتر است.

به عبارت دیگر، لبه‌هایی که توسط فیلترهای Sobel شناسایی می‌شوند، نسبت به فیلترهای Prewitt واضح‌تر هستند.

# utilizing the horizontal filter
convolve('image.jpg', horizontal)
# utilizing the vertical filter
convolve('image.jpg', vertical)

فیلتر لاپلاسین

برخلاف فیلترهای Prewitt و Sobel که شامل دو فیلتر مجزا برای تشخیص لبه‌های افقی و عمودی هستند، فیلتر لاپلاسین (Laplacian) تنها از یک فیلتر تشکیل شده که قادر است لبه‌ها را در تمام جهات شناسایی کند.

از منظر ریاضی، فیلتر لاپلاسین مشتق مرتبه دوم مقادیر پیکسل را محاسبه می‌کند، در حالی که فیلترهای Prewitt و Sobel تنها مشتق مرتبه اول را به‌دست می‌آورند. این ویژگی باعث می‌شود فیلتر لاپلاسین حساسیت بالاتری به تغییرات ناگهانی شدت روشنایی در تصویر داشته باشد.

# utilizing the filter
convolve('image.jpg', filter)

ماسک‌های قطب‌نمای رابینسون

8 ماسک Robinson Compass

ماسک‌های Robinson Compass فیلترهایی برای تشخیص لبه؛ که شامل 8 فیلتر مختلف مطابق با 8 جهت جغرافیایی قطب نما هستند؛ همان‌طور که در تصویر بالا مشاهده می‌شود. این فیلترها برای شناسایی لبه‌هایی طراحی شده‌اند که در امتداد این جهت‌ها قرار دارند.

برای اختصار، تنها از دو فیلتر برای نمایش عملکرد استفاده شده است.

# utilizing the north_west filter
convolve('image.jpg', north_west)
# utilizing the north_east filter
convolve('image.jpg', north_east)

ماسک‌های جهتی کریش

8 ماسک Krisch Compass

مشابه ماسک‌های Robinson Compass، ماسک Krisch Compass نیز شامل 8 فیلتر است که به شناسایی لبه‌ها در جهت‌های مختلف جغرافیایی کمک می‌کنند. در ادامه، از دو مورد از این فیلترها برای نمایش استفاده شده است.

# utilizing the south_west filter
convolve('image.jpg', south_west)
# utilizing the south_east filter
convolve('image.jpg', south_east)

نشانه‌گذاری فیلترها

برای درک بهتر نقش فیلترها در CNN، یک نکته کلیدی را باید دقیق‌تر ببینیم: فیلترها “لبه را مستقیم تشخیص نمی‌دهند”، بلکه به دنبال تغییرات شدت پیکسل‌ها در یک جهت مشخص هستند.

به‌طور ساده، زمانی که در تصویر یک مرز روشن بین دو ناحیه (مثلاً سفید و سیاه) وجود دارد، آنچه برای مدل اهمیت دارد خودِ رنگ‌ها نیست، بلکه تغییر ناگهانی مقدار پیکسل‌هاست.

در اینجا جهت فیلترها اهمیت پیدا می‌کند. فیلترها نسبت به تغییرات عمود بر جهت خود حساس هستند. به همین دلیل:

  • فیلترهای عمودی (حرکت در راستای y) برای تشخیص تغییرات افقی مناسب‌اند.
  • فیلترهای افقی (حرکت در راستای x) برای تشخیص تغییرات عمودی به‌کار می‌روند.

این رابطه ممکن است در ابتدا غیرمستقیم به نظر برسد، اما منطق آن ساده است: فیلترها با حرکت روی تصویر، تغییرات را در راستایی که بر آن عمود هستند بهتر آشکار می‌کنند.

در این تصویر، یک بخش همان چیزی است که چشم انسان به‌صورت مستقیم درک می‌کند، و بخش دیگر نمایش نحوه تحلیل همان تصویر توسط سیستم است. خط سفید روی زمینه تیره، یک مرز یا لبه‌ی واضح ایجاد کرده است. برای انسان، این مرز به‌راحتی به‌دلیل تفاوت شدید بین روشن و تاریک قابل تشخیص است. اما برای کامپیوتر، این تشخیص تنها از طریق تغییر مقدار پیکسل‌ها ممکن می‌شود.

در واقع، سیستم به‌جای «دیدن» تصویر، تغییرات شدت روشنایی را در سطح پیکسل‌ها بررسی می‌کند تا به وجود لبه برسد.

برای درک شهودی‌تر این موضوع، می‌توان به یک مثال ساده فکر کرد: اگر بخواهیم این مرز را با دست دنبال کنیم، باید حرکت دست را از چپ به راست انجام دهیم. همین ایده در فیلترهای پردازش تصویر نیز وجود دارد؛ یعنی برای تشخیص یک لبه عمودی، از فیلترهایی استفاده می‌شود که تغییرات را در جهت افقی بررسی می‌کنند.

در ادامه با استفاده از فیلترهای Prewitt افقی و عمودی، به شناسایی لبه‌ها در تصویر خواهیم پرداخت.

مراحل اعمال فیلتر به صورت زیر است.

  • قرار دادن فیلتر در گوشه‌ی بالا-چپ تصویر.
  • انجام ضرب عنصر به عنصر (Element-wise Multiplication).
  • محاسبه مجموع عناصر حاصل از ضرب.
  • ثبت مقدار نهایی به‌عنوان مقدار متناظر در تصویر خروجی.
  • حرکت فیلتر به اندازه یک پیکسل به سمت راست و تکرار مراحل بالا تا زمانی که فیلتر از لبه افقی تصویر خارج شود.
  • انتقال فیلتر به ردیف بعدی و تکرار مراحل فوق.
  • ادامه‌ی این روند تا فیلتر از لبه عمودی تصویر نیز خارج شود.

در پایان عملیات کانولوشن، خروجی به کمک تابع ReLU فعال‌سازی می‌شود؛ این تمامی مقادیر منفی را صفر می‌کند. در نتیجه، فیلتر افقی لبه عمودی تصویر را برجسته می‌سازد، در حالی که فیلتر عمودی تصویری کاملا سیاه (همه مقادیر صفر) باز می‌گرداند که نشان‌دهنده عدم شناسایی لبه‌ای در آن جهات است.

اگر خط موجود در تصویر به صورت افقی باشد، در آن صورت فیلتر عمودی قادر به شناسایی آن خواهد بود و فیلتر افقی تصویری تاریک بدون لبه را تولید می‌کند.

کار با تابع کانولوشن

برای افرادی که ممکن است بخواهند از توابع کانولوشن بالا روی تصویر دیگری استفاده کنند یا فیلترهای مختلفی را برای شناسایی لبه‌ها یا سایر وظایف پردازش تصویر آزمایش کنند، این بخش یک راهنمای سریع برای انجام این کار است.

این تابع سه پارامتر را دریافت می‌کند:

  • image_filepath (مسیر فایل تصویر)
  • filter (فیلتر موردنظر)
  • title (عنوان نمودار)

با تعیین این پارامترها، می‌توانید تصویر دلخواه را وارد کرده، فیلتر خاصی اعمال کنید و عنوانی برای نتیجه خروجی مشخص کنید.

آدرس فایل تصویر

این پارامتر به محل قرارگیری تصویر موردنظر شما در حافظه‌ی محلی (لوکال) یا فضای ابری اشاره دارد.

اگر تصویر در دایرکتوری جاری (محل اجرای کد) قرار داشته باشد، تنها کافی‌ست نام کامل فایل تصویر را به همراه پسوند آن وارد کنید.

اما اگر تصویر در مسیر دیگری قرار دارد، باید مسیر کامل (absolute path) را مشخص کنید؛ برای مثال: C:/Users/Username/Downloads/image_name.jpg (توجه داشته باشید که در پایتون از اسلش مایل به جلو / استفاده می‌شود.)

مدل سری زمانی چیست؟ معرفی کامل Time Series برای تحلیل‌گران داده
مدل سری زمانی

فیلتر

در واقع، فیلتر همان ماتریسی است که می‌خواهید در فرآیند کانولوشن روی تصویر اعمال کنید. ساخت فیلترها با استفاده از کتابخانه NumPy بسیار ساده است، همان‌طور که در مثال‌های زیر مشاهده می‌کنید‌. کافی است پس از تعریف فیلتر، آن را به عنوان ورودی به تابع کانولوشن بدهید.

#  creating a Prewitt horizontal filter
prewitt_x = np.array(([-1, 0, 1],
                      [-1, 0, 1],
                      [-1, 0, 1]))
                      
#  creating a laplacian filter
laplacian = np.array(([-1, -1, -1],
                      [-1, 8, -1],
                      [-1, -1, -1]))

این فیلترها نمونه‌هایی از ماتریس‌هایی هستند که برای شناسایی ویژگی‌های خاصی مثل لبه‌ها در تصاویر استفاده می‌شوند.

عامل هوش مصنوعی چیست؟ هر آنچه باید در مورد آن‌ها بدانید
AI Agent

جمع بندی

شبکه‌های عصبی کانولوشنی (CNN) به دلیل توانایی آن‌ها در استخراج خودکار ویژگی‌ها از داده‌های دوبعدی مانند پیکسل‌‌های تصاویر، جایگاه ویژه‌ای در بین مدل‌های یادگیری ماشین دارند. این شبکه‌ها با استفاده از اجزای ویژه‌ای به نام فیلتر، الگوهایی مانند لبه‌ها را در تصویر شناسایی می‌کنند.

در این مقاله با نحوه عملکرد تشخیص لبه و استخراج ویژگی در بینایی ماشین آشنا شدیم و دیدیم که چگونه می‌توان از فیلترهای از پیش‌تعریف‌شده برای این منظور استفاده کرد. البته در کاربردهای واقعی، شبکه‌های عصبی کانولوشنی از فیلترهای ثابت استفاده نمی‌کنند، بلکه طی فرآیند آموزش، بهترین فیلترها را متناسب با داده‌های موجود یاد می‌گیرند. این ویژگی باعث می‌شود CNN ها به ابزار قدرتمندی برای تحلیل داده‌های بصری و توسعه مدل‌های هوشمند تبدیل شوند.