Ultralytics YOLO27: 대기자 명단에 등록하세요.
YOLO 라이선스 받기
Ultralytics 용어집으로 돌아가기

Neural Style Transfer

신경 스타일 전이는 CNN 특성 통계를 일치시켜 사진의 내용을 다른 이미지의 스타일로 다시 그립니다. Gatys의 방법, 빠른 모델, 활용 사례를 다룹니다.

신경망 스타일 전이 (NST)는 사전 학습된 합성곱 신경망 (CNN)의 내부 특징을 일치시켜 거리 사진과 같은 이미지의 콘텐츠를 그림과 같은 다른 이미지의 시각적 스타일로 렌더링하는 컴퓨터 비전 기법입니다. 콘텐츠는 무엇이 어디에 있는지 기록하는 심층 레이어의 특징 맵으로 포착됩니다. 스타일은 특징 채널 간 상관관계로 포착됩니다. 이 상관관계는 텍스처, 색상, 붓놀림을 기록하지만 배치는 보존하지 않습니다. 튀빙겐 대학교의 Leon Gatys, Alexander Ecker, Matthias Bethge는 2015년 8월 A Neural Algorithm of Artistic Style에서 이 방법을 소개했으며, 이듬해 Prisma 앱이 스마트폰 사용자에게 이 기술을 선보였습니다.

기존 방식의 작동 원리#

Gatys의 방식은 ImageNet으로 학습된 CNN인 VGG-19를 고정된 특징 추출기로 사용하며, 네트워크 가중치가 아닌 출력 이미지의 픽셀을 변경합니다. 두 개의 손실 함수가 결과를 결정합니다.

  • 콘텐츠 손실: 하나의 심층 레이어인 conv4_2에서 출력 이미지와 콘텐츠 사진의 특징 맵 간 제곱 차이로, 객체와 레이아웃을 알아볼 수 있도록 유지합니다.
  • 스타일 손실: conv1_1부터 conv5_1까지 다섯 개 레이어의 Gram 행렬 간 제곱 차이입니다. C개 채널이 있는 레이어의 Gram 행렬은 C x C 표이며, 각 항목 (i, j)은 이미지의 모든 위치에서 합산해 채널 i와 j가 함께 반응하는 정도를 측정합니다.

두 손실의 가중합은 L-BFGS 최적화 알고리즘으로 최소화하며, 역전파는 동결된 네트워크를 통과해 픽셀까지 그래디언트를 전달합니다.

Gram 행렬은 위치별 값을 합산하므로 이미지 레이아웃이 바뀌어도 거의 변하지 않습니다. torchvision의 ResNet-18은 VGG-19보다 작은 ImageNet CNN이며, 이를 PyTorch에서 사용해 사진의 사분면을 서로 바꾸면 이를 확인할 수 있습니다.

import torch
from skimage import data
from torchvision.models import ResNet18_Weights, resnet18

weights = ResNet18_Weights.DEFAULT
cnn = resnet18(weights=weights).eval()
early_layers = torch.nn.Sequential(cnn.conv1, cnn.bn1, cnn.relu, cnn.maxpool, cnn.layer1)
preprocess = weights.transforms()

photo = torch.tensor(data.astronaut()).permute(2, 0, 1)  # 3 x 512 x 512
rearranged = torch.roll(photo, shifts=(256, 256), dims=(1, 2))  # same pixels, quadrants swapped


def content_and_style(image):
    """Return an early CNN layer's feature map (content) and its Gram matrix (style)."""
    with torch.no_grad():
        features = early_layers(preprocess(image)[None])[0].flatten(1)  # channels x positions
    return features, features @ features.T / features.shape[1]


(content_a, style_a), (content_b, style_b) = content_and_style(photo), content_and_style(rearranged)
print(f"Content change: {(content_a - content_b).norm() / content_a.norm():.0%}")
print(f"Style change:   {(style_a - style_b).norm() / style_a.norm():.0%}")

사분면을 바꾸면 특징 맵은 96% 변하지만 Gram 행렬은 7%만 변합니다. 남은 7%는 새로 생긴 경계선과 각 이미지에서 서로 다른 부분을 유지하는 중앙 크롭에서 비롯됩니다. 따라서 스타일 손실은 그림의 각 요소가 있는 위치를 복사하지 않고 붓놀림과 팔레트를 복사합니다.

빠르고 임의의 스타일 전이#

이미지마다 최적화에 수백 번의 반복이 필요했기 때문에 후속 연구에서는 최적화를 학습 과정으로 옮겼습니다. Stanford의 Justin Johnson, Alexandre Alahi, Li Fei-Fei는 2016년 같은 손실을 사용해 스타일별 피드포워드 네트워크를 학습했고, 약 1,000배 빠른 결과를 얻었으며 동일한 지각 손실을 초해상도에 적용했습니다. Dmitry Ulyanov와 동료들은 해당 네트워크에서 배치 정규화를 인스턴스 정규화로 바꾸면 스타일화 품질이 개선된다는 사실을 발견했습니다. Xun Huang과 Serge Belongie의 적응형 인스턴스 정규화 (AdaIN, 2017)는 재학습 없이 어떤 스타일이든 처리합니다. 각 콘텐츠 특징 채널의 평균과 표준편차를 스타일 이미지의 값에 맞춰 이동한 다음 디코딩하므로 실시간으로 작동합니다.

강건한 비전 모델을 위한 스타일 전이#

Robert Geirhos와 동료들은 AdaIN을 사용해 ImageNet으로 학습된 CNN이 형태보다 텍스처에 더 의존한다는 것을 보였습니다. ResNet-50은 코끼리 피부 텍스처를 입힌 고양이 이미지에 코끼리라는 라벨을 부여하는데, 이는 지름길 학습의 한 형태입니다. 이들은 Painter by Numbers 컬렉션의 그림 79,434점 중 무작위 그림을 사용해 ImageNet 이미지를 모두 다시 스타일링하여 Stylized-ImageNet을 만들었으며, 이 데이터셋으로 학습된 ResNet-50은 형태에 더 의존했습니다. 형태 기반 네트워크를 Faster R-CNN 객체 탐지 모델의 백본으로 사용하자 Pascal VOC 2007의 mAP50은 70.7에서 75.1로, MS COCO에서는 52.3에서 55.2로 향상되었습니다.

스타일 전이는 모든 객체의 위치를 유지하므로 탐지 데이터셋의 데이터 증강에도 같은 아이디어를 적용할 수 있습니다. 라벨이 지정된 이미지의 스타일화된 복사본은 원본의 바운딩 박스를 재사용하므로, Ultralytics YOLO26 탐지 데이터셋에서는 새 이미지 이름으로 원본 라벨 파일을 복사하기만 하면 됩니다.

  • 생성적 적대 신경망 (GAN): CycleGAN은 하나의 스타일 이미지 통계를 일치시키는 대신 사진과 Monet 그림처럼 이미지 컬렉션 전체 간의 매핑을 학습합니다.
  • 전이 학습: 사전 학습된 가중치를 새로운 작업에 맞게 미세 조정합니다. NST는 네트워크 가중치를 업데이트하지 않고 손실 측정에만 사용합니다.
  • 확산 모델: 텍스트 프롬프트나 참조 이미지에 따라 이미지를 다시 생성해 스타일을 바꾸며, 이 과정에서 스타일뿐 아니라 형태와 세부 사항도 달라질 수 있습니다.

솔루션 살펴보기

스포츠 분야의 컴퓨터 비전

스포츠 분야의 컴퓨터 비전

Ultralytics YOLO가 선수 및 공 추적, 경기력 분석, 코칭 인사이트, 선수 재활을 통해 스포츠 비전을 구현하는 방법을 알아보세요.
자세히 알아보기
항공 이미지 컴퓨터 비전

항공 이미지 컴퓨터 비전

Ultralytics YOLO를 활용해 드론 및 항공 이미지를 농업, 양식업, 보전, 지리 공간 분석을 위한 실시간 인사이트로 전환하세요.
자세히 알아보기
항공우주 분야의 컴퓨터 비전

항공우주 분야의 컴퓨터 비전

Ultralytics YOLO를 활용해 항공기 검사, 활주로 FOD 감지, 공항 지상 운영, 복합재 결함 감지 등 항공우주 분야에 컴퓨터 비전을 적용하세요.
자세히 알아보기
보안 분야의 컴퓨터 비전

보안 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 모든 시설을 보호하세요. Vision AI는 경계 모니터링, 위협 감지, 번호판 인식, 작업장 안전을 지원합니다.
자세히 알아보기
로보틱스 분야의 컴퓨터 비전

로보틱스 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 더 스마트한 머신을 구현하세요. 로보틱스 분야의 Vision AI는 자율 주행, 인식, 객체 추적, 실시간 제어를 지원합니다.
자세히 알아보기
물류 분야의 컴퓨터 비전

물류 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 물류를 간소화하세요. 비전 AI는 화물 검사, 분류, 차량 추적, 실시간 창고 안전 모니터링을 지원합니다.
자세히 알아보기
리테일 분야의 컴퓨터 비전

리테일 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 리테일의 새로운 가능성을 열어 보세요. 비전 AI는 재고 추적, 선반 모니터링, 대기열 관리, 더욱 심층적인 고객 인사이트를 지원합니다.
자세히 알아보기
의료 분야의 컴퓨터 비전

의료 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 의료 솔루션을 구축하세요. 의료 분야의 비전 AI는 의료 영상 판독을 가속화하고, 진단을 개선하며, 환자 모니터링을 지원합니다.
자세히 알아보기
제조 분야의 컴퓨터 비전

제조 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 제조 공정을 최적화하세요. 비전 AI는 품질 관리, 결함 탐지, PPE 규정 준수, 조립 라인 자동화를 지원합니다.
자세히 알아보기
자동차 분야의 컴퓨터 비전

자동차 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 자동차 분야에 컴퓨터 비전을 적용하세요. 비전 AI는 도로 안전, 운전자 지원, 차량 자동화를 개선해 더 스마트한 도로를 구현합니다.
자세히 알아보기
농업 분야의 컴퓨터 비전

농업 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 스마트 농업에 비전 AI를 도입하세요. 작물 모니터링, 가축 추적, 정밀 농업을 지원하여 더 높은 수확량과 더 스마트한 농업을 실현합니다.
자세히 알아보기

함께 AI의 미래를 만들어 가세요!

머신러닝의 미래와 함께 여정을 시작하세요