Yolo 비전 선전
선전
지금 참여하기
용어집

합성곱

컴퓨터 비전과 딥 러닝에서 컨볼루션의 기본 원리를 탐구하세요. 커널과 피처 맵이 실시간 작업을 위해 Ultralytics 어떻게 구동하는지 알아보세요.

컨볼루션은 현대 컴퓨터 비전(CV)딥 러닝(DL) 시스템의 핵심 구성 요소 역할을 하는 근본적인 수학적 연산입니다. 이미지 처리 맥락에서 컨볼루션은 입력 이미지 위를 작은 필터(커널이라 불림)를 슬라이딩하여 중요한 특징의 지도를 생성하는 과정을 포함합니다. 이 과정을 통해 인공지능(AI) 모델은 인간의 개입 없이도 가장자리, 질감, 형태와 같은 패턴을 자동으로 학습하고 식별할 수 있습니다. 수동적인 특징 추출이 필요한 기존 기계 학습(ML) 과 달리, 컨볼루션은 네트워크가 단순한 선에서 시작하여 얼굴이나 차량과 같은 복잡한 객체로 발전하는 계층적 시각 데이터 이해를 구축할 수 있게 합니다.

합성곱 작동 방식

이 연산은 입력 데이터에 필터를 적용하고, 요소별 곱셈을 수행한 후 결과를 합산하여 각 위치에 대한 단일 값을 생성하는 방식으로 작동합니다. 이 출력은 특징 맵(feature map)으로 알려져 있습니다.

  • 커널: 특정 특징을 감지하는 숫자(가중치)로 구성된 작은 행렬입니다. 예를 들어, 소벨 연산자는 detect 또는 수평 에지를 detect 데 사용되는 특정 유형의 커널입니다.
  • 슬라이딩 윈도우: 커널은 "스트라이드"라고 불리는 정의된 단계 크기를 사용하여 이미지 전체를 이동합니다. 이 공간 필터링과정은 픽셀 간의 관계를 보존하며, 이는 이미지 이해에 매우 중요합니다.
  • 레이어 계층 구조: 컨볼루션 신경망(CNN)과 같은 심층 구조에서 초기 레이어는 저수준 세부 사항을 포착하는 반면, 더 깊은 레이어는 이를 결합하여 고수준 개념을 생성합니다.

컨볼루션 대 관련 개념

컨볼루션(convolution)을 완전히 이해하려면, 신경망(NN) 문헌에서 자주 접하는 유사 용어들과 구분하는 것이 도움이 됩니다:

  • 상호상관과 컨볼루션: 수학적으로 진정한 컨볼루션은 커널을 적용하기 전에 뒤집는 과정을 포함합니다. 그러나 PyTorch 포함한 대부분의 딥러닝 프레임워크는 상호상관 (뒤집지 않고 슬라이딩)을 구현하지만, 훈련 과정에서 가중치가 학습되기 때문에 뒤집기 여부가 성능에 무관하므로 이를 "컨볼루션"이라 명명합니다.
  • 컨볼루션 대 어텐션: 컨볼루션은 정보를 국소적으로(인접 픽셀) 처리하는 반면, 어텐션 메커니즘은 모델이 이미지의 먼 부분들을 동시에 연관시킬 수 있게 합니다. YOLO26과 같은 현대적 아키텍처는 실시간 추론 속도를 유지하기 위해 고도로 최적화된 컨볼루션 레이어를 자주 활용하는데, 어텐션 레이어는 계산적으로 더 무거울 수 있기 때문입니다.

실제 애플리케이션

컨볼루션의 효율성은 강력한 인지 시스템을 구동함으로써 AI가 다양한 산업에 혁신을 가져올 수 있게 했습니다:

  1. 의료 진단: 의료 분야 인공지능(AI)에서 컨볼루션은 고해상도 MRI 영상 분석을 지원합니다. 특정 이상 징후를 강조하도록 설계된 커널을 활용함으로써, 모델은 종양이나 골절의 detect 징후를 인간 전문가에 필적하는 정확도로 detect 수 있습니다.
  2. 자율 주행: 자율주행 차량은 실시간 물체 감지를 위해 컨볼루션에 의존합니다. 차량이 이동함에 따라 컨볼루션 레이어는 영상 데이터를 처리하여 보행자, 차선 표시, 교통 표지판을 즉시 식별합니다. 이는 자동차 안전을 위한 AI의 핵심 구성 요소입니다.

Ultralytics 사용한 Python

최신 모델 내의 컨볼루션 레이어를 Python 사용하여 검사할 수 있습니다. 다음 예제는 YOLO26 모델을 검증하고 초기 레이어가 표준 컨볼루션 연산을 활용하는지 확인합니다. 이는 다음을 통해 구현됩니다. torch.nn.

import torch.nn as nn
from ultralytics import YOLO

# Load the latest YOLO26 model
model = YOLO("yolo26n.pt")

# Access the first layer of the model's backbone
first_layer = model.model.model[0]

# Verify it is a Convolutional layer
if isinstance(first_layer.conv, nn.Conv2d):
    print("Success: The first layer is a standard convolution.")
    print(f"Kernel size: {first_layer.conv.kernel_size}")

엣지 AI에서 컨볼루션이 중요한 이유

컨볼루션 연산은 최적화가 용이하여 계산 자원이 제한된 에지 AI 배포에 이상적입니다. 동일한 커널이 이미지 전체에 공유되기 때문에(매개변수 공유), 기존의 완전 연결 아키텍처보다 모델이 필요로 하는 메모리가 현저히 적습니다. 이러한 효율성 덕분에 고급 모델도 스마트폰 및 IoT 기기에서 실행될 수 있습니다.

이러한 작업을 활용하여 맞춤형 데이터셋을 구축하려는 팀을 위해 Ultralytics 복잡한 인프라 관리 없이도 이미지에 주석을 달고 컨볼루션 기반 모델을 훈련할 수 있는 원활한 환경을 제공합니다. 전이 학습을 활용하면 미리 훈련된 컨볼루션 가중치를 미세 조정하여 최소한의 훈련 데이터로도 새로운 객체를 인식할 수 있습니다.

Ultralytics 커뮤니티 가입

AI의 미래에 동참하세요. 글로벌 혁신가들과 연결하고, 협력하고, 성장하세요.

지금 참여하기