AI 모델 및 플랫폼

EditGAN을 사용한 고정밀 의미론적 이미지 편집

Kunal Kejriwal
Unite.AI를 Google의 선호 소스에 추가
핵심 포인트EditGAN은 GAN 잠재 공간에서 분할 마스크를 수정함으로써 픽셀 수준의 이미지 편집을 가능하게 합니다.
더 보기
  • EditGAN은 GAN 잠재 공간에서 분할 마스크를 수정함으로써 픽셀 수준의 이미지 편집을 가능하게 합니다.
  • 이 모델은 최소한의 레이블 데이터로부터 재사용 가능한 편집 벡터를 학습하여 빠른 실시간 적용이 가능합니다.
  • 바퀴 살 모양 변경이나 동공 확장과 같은 작업에서 전례 없는 정밀도를 달성합니다.

생성적 적대 신경망 또는 GAN은 이미지 편집 산업에서 새로운 응용 분야에서 활용되고 있습니다. 지난 몇 개월 동안, EditGAN은 고정밀, 고품질 의미론적 이미지 편집을 위한 새로운 방법으로 인공지능/기계 학습 산업에서 인기를 얻고 있습니다.

우리는 EditGAN 모델에 대해 자세히 이야기하고, 왜 그것이 의미론적 이미지 편집 산업에서 중요한 이정표가 될 수 있는지 알려드리겠습니다.

그러면 시작하겠습니다. 그러나 EditGAN이 무엇인지 알기 전에, EditGAN의 중요성과 왜 그것이 중요한 발전인지 이해하는 것이 중요합니다.

왜 EditGAN?

전통적인 GAN 아키텍처는 인공지능 기반 이미지 편집 산업을 크게 발전시켰지만, GAN 아키텍처를 처음부터 구축하는 데 몇 가지 주요 문제가 있습니다.

  1. 훈련 단계에서, GAN 아키텍처는 의미론적 분할 주석이 있는 많은 레이블된 데이터를 필요로 합니다.
  2. 세부적인 제어보다는 상위 수준의 제어만 제공할 수 있습니다.
  3. 그리고 종종, 그들은 단지 이미지 사이를 양방향으로 보간할 뿐입니다.

관찰할 수 있듯이, 전통적인 GAN 아키텍처는 작업을 수행하지만, 광범위한 배포에 효과적이지 않습니다. 전통적인 GAN 아키텍처의 낮은 효율성은 EditGAN이 2022년에 NVIDIA (NVDA ) 에 의해 도입된 이유입니다.

EditGAN은 고정밀, 고품질 의미론적 이미지 편집을 위한 효과적인 방법으로 제안되었습니다. 그것은 사용자가 이미지의 세분화된 마스크를 변경하여 이미지 편집을 허용하는 기능을 제공합니다. EditGAN이 이미지 편집 작업에 대해 확장 가능한 방법인 이유 중 하나는 그 아키텍처 때문입니다.

EditGAN 모델은 GAN 프레임워크에 기반하여 이미지와 의미론적 분할을 공동으로 모델링하며, 레이블이나 주석이 달린 훈련 데이터가 소량만 필요합니다. EditGAN의 개발자들은 이미지의 세분화된 마스크를 변경하여 이미지 편집을 수행하는 조건부 잠재 코드 최적화를 수행하기 위해 GAN의 잠재 공간에 이미지를 삽입하려고 시도했습니다. 또한, 최적화를 절약하기 위해, 모델은 잠재 공간에서 “편집 벡터”를 찾으려고 시도합니다.

EditGAN 프레임워크의 아키텍처는 모델이 임의의 수의 편집 벡터를 학습할 수 있도록 허용하며, 학습한 벡터는 다른 이미지에 빠르고 효율적으로 직접 적용할 수 있습니다. 또한, 실험 결과는 EditGAN이 이미지 품질을 최대화하면서 이전에 본 적 없는 수준의 세부 편집을 수행할 수 있음을 나타냅니다.

EditGAN이 필요한 이유를 요약하면, 그것은 고정밀 편집, 소량의 레이블된 데이터만 필요함, 실시간 시나리오에서 효과적으로 배포될 수 있음, 여러 편집을 동시에 수행할 수 있음, GAN 생성 이미지, 실제 이미지, 및 도메인 외부 이미지에서 작동할 수 있는 첫 번째 GAN 기반 이미지 편집 프레임워크입니다.

  1. 매우 높은 정밀도 편집.
  2. 소량의 레이블된 데이터만 필요합니다.
  3. 실시간 시나리오에서 효과적으로 배포될 수 있습니다.
  4. 여러 편집을 동시에 수행할 수 있습니다.
  5. GAN 생성 이미지, 잠재 공간에 임베딩한 실제 이미지, 도메인 외부 이미지에서 작동할 수 있습니다.

EditGAN을 활용한 고정밀 의미론적 이미지 편집

최신 이미지 합성 GAN 프레임워크인 StyleGAN2는 EditGAN의 주요 이미지 생성 구성 요소입니다. StyleGAN2 프레임워크는 다변량 정규 분포에서 추출된 잠재 코드를 실제 이미지로 매핑합니다.

StyleGAN2는 가능한 한 높은 품질의 이미지 합성을 위해 훈련된 심층 생성 모델입니다. 또한, 모델링된 이미지에 대한 의미론적 이해를 얻습니다.

분할 훈련 및 추론

EditGAN은 최적화와 인코더를 이용해 이미지를 GAN의 잠재 공간에 임베딩하여 새 이미지를 분할하고 분할 분기를 훈련합니다. EditGAN 프레임워크는 이전 작업을 기반으로 구축되며, 인코더를 훈련하여 이미지들을 잠재 공간에 삽입합니다. 주요 목표는 GAN 샘플과 실제 훈련 데이터에 표준 픽셀별 L2 및 LPIPS 재구성 손실을 적용하여 인코더를 훈련하는 것입니다. 또한, 모델은 GAN 샘플을 처리할 때 해당 잠재 코드를 이용하여 인코더를 명시적으로 정규화합니다.

결과적으로, 모델은 데이터셋에서 레이블된 이미지들을 잠재 공간에 삽입하고, 분할 브랜치를 훈련하기 위해 교차 엔트로피 손실을 사용합니다.

분할 편집을 통해 잠재 공간에서 의미 찾기

EditGAN의 주요 목적은 의미론적 분할과 이미지의 결합 분포를 고정밀 이미지 편집에 활용하는 것입니다. 편집할 이미지 x가 있으면 이를 EditGAN의 잠재 공간에 임베딩하거나 모델이 생성한 샘플 이미지를 사용합니다. RGB 이미지와 분할은 동일한 잠재 코드 w를 공유하므로, 분할 분기는 이에 대응하는 분할 y를 생성합니다. 개발자는 레이블링 또는 디지털 페인팅 도구로 필요에 맞게 분할을 직접 수정할 수 있습니다.

추론 중 편집의 다른 방법

최적화를 사용하여 얻은 잠재 공간 편집 벡터는 의미론적으로 유의미하며, 종종 다른 속성과 분리됩니다. 따라서, 새로운 이미지를 편집하려면 모델은 이미지를 잠재 공간에 삽입하고, 이전에 학습한 동일한 편집 작업을 직접 수행할 수 있습니다. 모델이 학습한 편집 벡터는 초기 이미지 편집에 필요한 최적화를 절약합니다.

속성의 완전한 분리는 아직 해결되지 않았으므로 편집 벡터를 다른 이미지에 적용하면 최상의 결과를 얻지 못할 수 있습니다. 다만 테스트 시점에 최적화 단계를 몇 차례 더 수행해 이미지의 다른 부분에 생긴 편집 아티팩트를 제거하면 이를 보완할 수 있습니다.

현재까지의 학습에 따르면, EditGAN 프레임워크는 세 가지 다른 모드로 이미지를 편집할 수 있습니다.

  • 편집 벡터를 사용한 실시간 편집

편집이 국소적이고 다른 속성과 분리된 경우, 모델은 사전에 학습한 편집 벡터를 여러 강도로 적용하여 상호작용이 가능한 속도로 이미지를 조작합니다.

  • 벡터 기반 편집을 위한 자기지도 정제

다른 부분과 완전히 분리되지 않은 국소 편집의 경우, 학습한 편집 벡터로 편집을 초기화한 뒤 테스트 시점에 몇 차례 추가 최적화를 수행하여 아티팩트를 제거합니다.

  • 최적화 기반 편집

대규모이면서 특정 이미지에 맞춘 편집을 수행하려면, 모델은 처음부터 최적화를 수행합니다. 편집 벡터를 사용하여 이러한 종류의 전송을 다른 이미지에 수행할 수 없습니다.

구현

EditGAN 프레임워크는 네 가지 다른 카테고리(자동차, 새, 고양이, 얼굴)의 이미지에서 평가됩니다. 모델의 분할 브랜치는 자동차·새·고양이·얼굴에 대해 각각 16, 30, 30, 16개의 이미지-마스크 쌍을 레이블된 훈련 데이터로 사용합니다. 이미지 편집을 최적화만으로 수행하거나 모델이 편집 벡터를 학습하려고 할 때, 모델은 Adam 옵티마이저로 100회의 최적화 단계를 수행합니다.

고양이, 자동차, 얼굴 데이터셋의 경우, 모델은 GAN 훈련에 사용되지 않은 DatasetGAN 테스트 세트의 실제 이미지로 편집을 수행합니다. 이 이미지는 최적화와 인코딩을 통해 EditGAN의 잠재 공간에 직접 임베딩됩니다. 새 카테고리의 경우, 편집은 GAN 생성 이미지에서 수행됩니다.

결과

질적 결과

도메인 내 결과

위의 이미지는 모델이 이전에 학습한 편집 벡터를 새로운 이미지에 적용하고, 30개의 최적화 단계를 사용하여 이미지를 정제하는 경우의 EditGAN 프레임워크의 성능을 보여줍니다. EditGAN 프레임워크가 수행하는 편집 작업은 모든 클래스에서 분리되며, 이미지의 전반적인 품질을 유지합니다. 다른 프레임워크와의 비교 결과, EditGAN 프레임워크는 높은 정밀도 및 복잡한 편집을 수행하는 동시에 대상 고유의 정체성과 이미지 품질을 유지하는 데 다른 방법보다 우수함을 나타냅니다.

놀라운 것은 EditGAN 프레임워크가 매우 높은 정밀도의 편집을 수행할 수 있다는 것입니다. 예를 들어, 동공을 확대하거나 자동차의 바퀴의 스포크를 편집할 수 있습니다. 또한, EditGAN은 몇 픽셀에 불과한 객체의 의미론적 부분을 편집하거나 대규모 수정을 수행할 수 있습니다. EditGAN 프레임워크의 여러 편집 작업은 GAN 훈련 데이터에 나타나지 않는 조작된 이미지를 생성할 수 있습니다.

도메인 외부 결과

EditGAN의 도메인 외부 성능을 평가하기 위해, 프레임워크는 MetFaces 데이터셋에서 테스트되었습니다. EditGAN 모델은 도메인 내 실제 얼굴을 사용하여 편집 벡터를 생성합니다. 모델은 MetFaces 초상화를 100개의 최적화 단계를 사용하여 삽입하고, 30개의 자기지도 정제 단계를 사용하여 편집 벡터를 적용합니다. 결과는 다음 이미지를 참조하십시오.

양적 결과

EditGAN의 이미지 편집 능력을 양적으로 측정하기 위해, 모델은 MaskGAN에서 처음 도입된 미소 편집 벤치마크를 사용합니다. 무표정한 얼굴을 미소가 있는 얼굴로 대체하고, 세 가지 매개변수에 대해 성능을 측정합니다.

  • 의미론적 올바름

사전 훈련된 미소 속성 분류기를 사용하여 편집 후 이미지가 미소가 있는지 여부를 측정합니다.

  • 분포 수준 이미지 품질

Kernel Inception Distance(KID) 및 Frechet Inception Distance(FID)를 계산하여 CelebA 테스트 데이터셋과 400개의 편집된 테스트 이미지를 비교합니다.

  • 정체성 보존

편집 시 대상의 정체성을 보존하는 모델의 능력을 측정하기 위해 사전 훈련된 ArcFace 특징 추출 네트워크를 사용합니다.

위의 표는 EditGAN 프레임워크와 다른 기준 모델의 성능을 미소 편집 벤치마크에서 비교합니다. EditGAN 프레임워크가 이러한 높은 결과를 달성하는 방법은 세 가지 다른 기준과 비교합니다.

  • MaskGAN

MaskGAN은 웃지 않는 이미지, 해당 이미지의 분할 마스크, 목표로 하는 웃는 얼굴의 분할 마스크를 입력으로 받습니다. EditGAN과 비교할 때, MaskGAN은 대량의 주석이 달린 데이터를 필요로 합니다.

  • 로컬 편집

EditGAN은 로컬 편집과 비교합니다. 로컬 편집은 편집을 구현하기 위해 GAN 특징을 클러스터링하는 방법으로, 참조 이미지를 의존합니다.

  • InterFaceGAN

InterFaceGAN은 EditGAN과 마찬가지로 잠재 공간에서 편집 벡터를 찾으려고 시도합니다. 그러나 EditGAN과 달리 InterFaceGAN은 대량의 주석 데이터와 보조 속성 분류기가 필요하며 세밀한 편집 정밀도는 갖추지 못했습니다.

  • StyleGAN2Distillation

이 방법은 실제 이미지 삽입이 필요하지 않은 대체 접근 방식을 생성합니다. 대신, 편집 벡터 모델을 사용하여 훈련 데이터셋을 생성합니다.

제한

EditGAN은 GAN 프레임워크에 기반하므로, 다른 GAN 모델과 동일한 제한이 있습니다. 즉, GAN이 모델링할 수 있는 이미지만으로 작동할 수 있습니다. EditGAN이 다른 시나리오에서 작동하기 어렵게 만드는 주요 이유는 GAN 모델링된 이미지로만 작동할 수 있다는 것입니다. 그러나, EditGAN의 고정밀 편집은 편집 벡터를 사용하여 다른 이미지로 쉽게 전달될 수 있습니다.

결론

GAN이 이미지 편집 분야에서 산업 표준이 아닌 주요 이유는 제한된 실용성 때문입니다. GAN 프레임워크는 일반적으로 대량의 주석이 달린 훈련 데이터를 필요로하며, 효율성과 정확도가 높은 성능을 반환하지 않습니다.

EditGAN은 전통적인 GAN 프레임워크가 제시하는 문제를 해결하려고 시도합니다. 또한, 고품질, 고정밀 의미론적 이미지 편집을 위한 효과적인 방법으로 작용하려고 시도합니다. 지금까지의 결과는 EditGAN이 주장하는 바를 제공하며, 이미 일부 현재 산업 표준 관행 및 모델보다 더 잘 수행하고 있음을 나타냅니다.

Kunal Kejriwal은 Python, PostgreSQL, Redis 및 GCP와 AWS의 클라우드 인프라를 전문으로 하는 백엔드 엔지니어입니다. 3년간 실서비스 운영 시스템을 구축하고 확장한 경험을 바탕으로 AI 인프라, 분산 시스템, 그리고 머신러닝 워크로드 배포의 아키텍처에 대해 글을 씁니다.