KR20230168523A - 이미지의 전경 및 배경을 분리하는 방법 및 장치 - Google Patents

이미지의 전경 및 배경을 분리하는 방법 및 장치 Download PDF

Info

Publication number
KR20230168523A
KR20230168523A KR1020220069095A KR20220069095A KR20230168523A KR 20230168523 A KR20230168523 A KR 20230168523A KR 1020220069095 A KR1020220069095 A KR 1020220069095A KR 20220069095 A KR20220069095 A KR 20220069095A KR 20230168523 A KR20230168523 A KR 20230168523A
Authority
KR
South Korea
Prior art keywords
image
mask
foreground
background
trimap
Prior art date
Application number
KR1020220069095A
Other languages
English (en)
Inventor
박규태
손성준
김세호
이상국
Original Assignee
네이버웹툰 유한회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 네이버웹툰 유한회사 filed Critical 네이버웹툰 유한회사
Priority to KR1020220069095A priority Critical patent/KR20230168523A/ko
Publication of KR20230168523A publication Critical patent/KR20230168523A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/194Segmentation; Edge detection involving foreground-background segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration using local operators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/136Segmentation; Edge detection involving thresholding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Processing Or Creating Images (AREA)

Abstract

이미지에 대한 제1 사용자 인터랙션에 기반하여 이미지의 전경과 배경을 구분함으로써, 이미지의 전경과 배경을 1차적으로 구분하는 제1 마스크를 생성하고, 제1 마스크에 기반하여 이미지에 대응하는 트라이맵(trimap)을 생성하고 트라이맵에 기반하여 보다 정교하게 이미지의 전경과 배경을 구분하는 제2 마스크를 생성하고, 제2 마스크에 기반하여 벡터 경로를 포함하는 벡터 이미지 마스크를 생성하는, 이미지의 전경과 배경을 분리하는 방법이 제공된다.

Description

이미지의 전경 및 배경을 분리하는 방법 및 장치{APPARATUS AND METHOD FOR SEPARATING FOREGROUND AND BACKGROUND FROM OF IMAGE}
본 개시는 이미지의 전경 및 배경을 분리하는 방법 및 장치에 관한 것으로 이미지에 대한 사용자로부터의 사용자 인터랙션과 자동적으로 생성되는 이미지에 대한 트라이맵(trimap)에 기반하여 이미지로부터 전경과 배경을 분리하는 방법 및 장치와 관련된다.
만화, 카툰 또는 웹툰 서비스와 같이 이미지 형태의 콘텐츠를 온라인으로 제공하는 서비스에 대한 관심이 높아지고 있다. 이미지를 편집 또는 가공하여 사용하는 사용자나 콘텐츠 제작자는 콘텐츠의 이미지가 포함하는 오브젝트(예컨대, 캐릭터 등)를 그 밖의 배경과 분리하는 작업을 수행하여, 이미지에 대한 활용성을 높일 수 있다. 이러한 이미지로부터 배경을 제거하거나, 전경과 배경을 분리하는 작업을 "누끼따기"라고 명명한다.
이미지에 대해 누끼따기를 수행하기 위해서는, 사용자가 이미지의 전경과 배경의 경계에 해당하는 영역을 직접 선택할 것이 요구된다. 이와 같은 방식의 누끼따기는 사용자의 과도한 작업을 필요로 하며, 특히, 복잡한 이미지의 전경과 배경을 분리해야 할 경우 누끼따기의 정확도를 담보하기가 어렵다.
따라서, 이미지에 대해 누끼따기를 수행함에 있어서, 사용자로부터 최소한의 입력만을 요구하되 높은 품질의 결과물을 얻을 수 있고, 활용도가 높은 형태의 결과물을 얻을 수 있도록 하는 이미지의 전경 및 배경의 분리 방법이 요구된다.
한편, 한국공개특허 제10-2009-0111939호(공개일 2009년 10월 28일)에는 영상을 전경과 배경으로 분리하는 방법 및 장치, 영상을 전경과 배경으로 분리하여 배경을 대체하는 방법 및 장치, 그리고 상기 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체가 개시되어 있다.
상기에서 설명된 정보는 단지 이해를 돕기 위한 것이며, 종래 기술의 일부를 형성하지 않는 내용을 포함할 수 있으며, 종래 기술이 통상의 기술자에게 제시할 수 있는 것을 포함하지 않을 수 있다.
일 실시예는, 이미지에 대한 제1 사용자 인터랙션에 기반하여 이미지의 전경과 배경을 구분함으로써, 이미지의 전경과 배경을 1차적으로 구분하는 제1 마스크를 생성하고, 제1 마스크에 기반하여 이미지에 대응하는 트라이맵(trimap)을 생성하고 트라이맵에 기반하여 보다 정교하게 이미지의 전경과 배경을 구분하는 제2 마스크를 생성하고, 제2 마스크에 기반하여 벡터 경로를 포함하는 벡터 이미지 마스크를 생성하는, 이미지의 전경과 배경을 분리하는 방법을 제공할 수 있다.
일 측면에 있어서, 컴퓨터 시스템에 의해 수행되는, 이미지의 전경과 배경을 분리하는 방법에 있어서, 상기 이미지에 대한 제1 사용자 인터랙션에 기반하여 상기 이미지의 전경과 배경을 구분함으로써, 상기 이미지의 전경과 배경을 1차적으로 구분하는 제1 마스크를 생성하는 단계, 생성된 상기 제1 마스크에 기반하여, 상기 이미지에 대응하는 트라이맵(trimap)을 생성하는 단계, 생성된 상기 트라이맵에 기반하여, 상기 이미지의 전경과 배경을 구분하는 제2 마스크를 생성하는 단계 및 상기 제2 마스크에 기반하여 벡터 이미지 마스크를 생성하는 단계를 포함하는, 이미지의 전경과 배경을 분리하는 방법이 제공된다.
상기 제1 마스크를 생성하는 단계는, 상기 제1 사용자 인터랙션으로서 상기 이미지 상에서, 상기 이미지에서 전경을 선택하기 위한 포지티브 사용자 인터랙션을 수신하는 단계, 상기 포지티브 사용자 인터랙션이 수신된 위치에 기반하여 상기 이미지의 전경을 결정하는 단계, 상기 제1 사용자 인터랙션으로서 상기 이미지 상에서, 상기 이미지에서 배경을 선택하기 위한 네거티브 사용자 인터랙션을 수신하는 단계 및 상기 네거티브 사용자 인터랙션이 수신된 위치에 기반하여 상기 이미지의 배경을 결정하는 단계를 포함할 수 있다.
상기 포지티브 사용자 인터랙션 및 상기 네거티브 사용자 인터랙션은, 서로 구분되는 사용자 인터랙션으로서, 상기 이미지에 대한 클릭, 터치 또는 탭 인터랙션이거나 혹은, 상기 이미지에 대한 스크리블(scribble) 인터랙션일 수 있다.
상기 제1 마스크는 상기 포지티브 사용자 인터랙션이 수신된 위치에 기반하여 상기 이미지의 전경을 결정하고, 상기 네거티브 사용자 인터랙션이 수신된 위치에 기반하여 상기 이미지의 배경을 결정하도록 미리 훈련된 모델을 사용하여 생성되고, 상기 제1 마스크는 상기 이미지의 전경과 배경을 구분하는 바이너리 마스크일 수 있다.
상기 트라이맵을 생성하는 단계는, 사용자 인터랙션 없이, 상기 제1 마스크를 자동으로 상기 트라이맵으로 변환하는 단계를 포함할 수 있다.
상기 트라이맵으로 변환하는 단계는, 상기 제1 마스크로부터 상기 이미지의 전경과 배경의 경계(contour)를 추출하는 단계, 상기 경계를 확장하여 모호(unknown) 영역을 획득하는 단계 및 상기 이미지의 전경에 해당하는 영역 및 배경에 해당하는 영역과, 상기 모호 영역을 구분하여 나타내는 상기 트라이맵을 생성하는 단계를 포함할 수 있다.
상기 트라이맵을 생성하는 단계는, 상기 제1 마스크로부터 자동으로 변환된 상기 트라이맵에 대해 상기 트라이맵을 수정하기 위한 제2 사용자 인터랙션을 수신하는 단계 및 수신된 상기 제2 사용자 인터랙션에 기반하여 상기 트라이맵으로부터 최종 트라이맵을 생성하는 단계를 포함하고, 상기 제2 마스크를 생성하는 단계는, 생성된 상기 최종 트라이맵에 기반하여, 상기 제2 마스크를 생성할 수 있다.
상기 제2 마스크를 생성하는 단계는, 상기 이미지와 상기 트라이맵에 기반하여 상기 이미지의 전경과 배경을 구분하도록 미리 훈련된 모델을 사용하여 상기 제2 마스크를 생성하고, 상기 제2 마스크는 상기 이미지의 전경과 배경의 경계 부근에서 상기 이미지의 전경에 해당하는 픽셀값과 상기 이미지의 배경에 해당하는 픽셀값의 사이에 값을 적어도 하나 갖도록 구성될 수 있다.
상기 제2 마스크를 생성하는 단계는, 상기 미리 훈련된 모델이, 상기 트라이맵의 상기 전경과 배경의 경계(contour)를 포함하는 모호(unknown) 영역이 상기 이미지의 전경인지 또는 상기 이미지의 배경인지 여부를 판별함으로써, 상기 제2 마스크를 생성할 수 있다.
상기 제2 마스크는 레스터(raster) 이미지 마스크이고, 상기 벡터 이미지 마스크는 PSD 포맷 또는 SVG 포맷일 수 있다
상기 벡터 이미지 마스크를 생성하는 단계는, 상기 제2 마스크를 이진화(binarize)하여 이진화된 마스크를 생성하는 단계 및 이진화된 마스크에 대해 이미지 트레이싱을 수행하여 벡터 경로(vector path)들을 포함하는 소정의 포맷의 벡터 이미지 마스크로 변환하는 단계를 포함할 수 있다.
상기 이미지의 전경과 배경을 분리하는 방법은, 상기 이미지를 로드하는 단계, 로드된 상기 이미지를 사용자 단말의 화면의 제1 영역에서 표시하는 단계, 상기 제1 영역에서 상기 이미지에 대해 상기 제1 사용자 인터랙션이 입력됨에 따라, 상기 이미지 상에서 상기 이미지의 전경과 배경을 구분하여 표시하는 단계 및 상기 트라이맵을 생성하기 위한 요청이 수신됨에 따라, 상기 화면의 제2 영역에서 상기 트라이맵을 표시하는 단계를 더 포함할 수 있다.
상기 트라이맵을 표시하는 단계는, 상기 제2 영역에서 상기 트라이맵에 대해 상기 트라이맵을 수정하기 위한 제2 사용자 인터랙션이 입력됨에 따라, 상기 제2 영역에서 수정된 상기 트라이맵을 표시하는 단계를 포함하고, 상기 이미지의 전경과 배경을 분리하는 방법은, 수정된 상기 트라이맵을 반영하여, 상기 제1 영역에서 상기 이미지의 전경과 배경을 상기 이미지 상에서 구분하여 표시하는 단계를 더 포함할 수 있다.
상기 벡터 이미지 마스크는, 상기 이미지로부터 분리된 전경을 포함하는 이미지이고, 상기 전경의 경계는 복수의 포인트들로 구성된 벡터 경로들을 포함하고, 상기 포인트들의 각각은 사용자에 의해 편집 가능하게 구성될 수 있다.
다른 일 측면에 있어서, 이미지의 전경과 배경을 분리하는 컴퓨터 시스템에 있어서, 상기 컴퓨터 시스템에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 상기 이미지에 대한 제1 사용자 인터랙션에 기반하여 상기 이미지의 전경과 배경을 구분함으로써, 상기 이미지의 전경과 배경을 1차적으로 구분하는 제1 마스크를 생성하고, 생성된 상기 제1 마스크에 기반하여, 상기 이미지에 대응하는 트라이맵(trimap)을 생성하고, 생성된 상기 트라이맵에 기반하여, 상기 이미지의 전경과 배경을 구분하는 제2 마스크를 생성하고, 상기 제2 마스크에 기반하여 벡터 이미지 마스크를 생성하는, 컴퓨터 시스템이 제공된다.
이미지에 대한 최소한의 사용자 인터랙션(제1 사용자 인터랙션)에 기반하여 이미지의 전경과 배경을 1차적으로 구분하는 제1 마스크를 생성하고 이미지에 대응하는 트라이맵을 자동으로 생성함으로써, 사용자의 과도한 수고 없이 이미지의 전경과 배경을 분리하기 위한 트라이맵을 생성할 수 있다.
생성된 트라이맵의 잘못 분류된 영역을, 추가적인 사용자 인터랙션(제2 사용자 인터랙션)을 통해 직관적으로 수정할 수 있도록 함으로써, 최종적인 트라이맵과 트라이맵에 기반하여 생성되는 마스크의 배경 및 전경 분리의 정확도를 높일 수 있다.
이미지의 배경 및 전경을 구분하도록 생성된 마스크에 기반하여 벡터 경로를 포함하는 벡터 이미지 마스크를 자동으로 생성함으로써 배경 및 전경 분리의 결과물로서의 결과물 이미지에 대한 활용성을 높일 수 있다.
포토샵의 펜툴 등을 사용하여 이미지로부터 전경을 분리하는 것에 비해, 클릭, 스크리빙, 브러시 등의 간단한 사용자 인터랙션을 통해 벡터 이미지인 전경 분리의 결과물을 얻을 수 있다.
도 1은 일 실시예에 따른, 이미지의 전경과 배경을 분리하는 방법을 나타낸다.
도 2는 일 실시예에 따른, 이미지의 전경과 배경을 분리하는 방법을 수행하는 컴퓨터 시스템을 나타낸다.
도 3은 일 실시예에 따른, 이미지의 전경과 배경을 분리하는 방법을 나타내는 흐름도이다.
도 4는 일 예에 따른, 이미지의 전경과 배경을 1차적으로 구분하는 제1 마스크를 생성하는 방법을 나타내는 흐름도이다.
도 5 및 도 6은 일 예에 따른, 제1 마스크에 기반하여 이미지에 대응하는 트라이맵을 생성하는 방법을 나타내는 흐름도이다.
도 7은 일 예에 따른, 제2 마스크에 기반하여 벡터 이미지 마스크를 생성하는 방법을 나타내는 흐름도이다.
도 8은 일 예에 따른, 이미지를 로드하여 이미지의 전경과 배경을 분리하는 방법을 나타내는 흐름도이다.
도 9는 일 예에 따른, 이미지의 전경과 배경을 분리하는 방법으로서, 원본 이미지로부터 벡터 이미지 마스크를 생성하는 방법을 나타낸다.
도 10은 일 예에 따른, 미리 훈련된 모델을 사용하여 이미지의 전경과 배경을 1차적으로 구분하는 제1 마스크를 생성하는 방법을 나타낸다.
도 11은 일 예에 따른, 미리 훈련된 모델을 사용하여 이미지의 전경과 배경을 보다 정교하게 구분하는 제2 마스크를 생성하는 방법을 나타낸다.
도 12 및 도 13은 일 예에 따른, 제1 사용자 인터랙션에 기반하여 원본 이미지로부터 제1 마스크를 생성하는 방법을 나타낸다.
도 14는 일 예에 따른, 이미지에 대응하는 트라이맵을 나타낸다.
도 15는 일 예에 따른, 트라이맵에 기반하여 생성된 제2 마스크를 나타낸다.
도 16은 일 예에 따른, 제2 마스크에 기반하여 생성된 벡터 이미지 마스크를 나타낸다.
도 17은 일 예에 따른, 이미지의 전경과 배경을 분리하는 방법을 수행하기 위한 사용자 인터페이스를 나타내고, 도 18은 일 예에 따른, 사용자 인터페이스가 적용된 사용자 단말의 화면을 나타낸다.
도 19는 일 예에 따른, 원본 이미지에 대응하는 트라이맵을 나타낸다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 일 실시예에 따른, 이미지의 전경과 배경을 분리하는 방법을 나타낸다.
전경과 배경의 분리의 대상이 되는 이미지는 배경과 오브젝트(예컨대, 사물, 캐릭터, 인물 등)를 포함하는 것일 수 있다. 예컨대, 이미지는 사진 또는 그림과 같은 이미지이거나, 카툰 또는 웹툰 콘텐츠의 일부일 수 있다.
일례로, 이미지는 웹툰 콘텐츠의 하나의 컷을 나타낼 수 있다. 이러한 예시에 따를 때, 실시예의 이미지의 전경과 배경을 분리하는 방법은 웹툰 콘텐츠의 컷에서 캐릭터와 해당 캐릭터를 제외한 배경을 분리하기 위해 수행될 수 있다.
도시된 예시에서처럼, 컴퓨터 시스템(100)은 원본 이미지(10)에 대해 이미지의 전경과 배경을 분리하는 작업을 수행함으로써 결과물 이미지(50)(벡터 이미지 마스크(50))를 생성할 수 있다.
원본 이미지(10)는 설명의 편의상 이미지(10)로 명명될 수 있다.
이미지(10)는 전경(20) 및 배경(30)을 포함할 수 있다. 전경(20)은 이미지가 포함하는 오브젝트로서 예컨대, 도시된 것처럼 캐릭터일 수 있다. 배경(30)은 이미지(10)의 전경(20)외 영역으로서, 예컨대, 이미지(10)에서 캐릭터를 제외한 배경 영역일 수 있다.
실시예에서, 컴퓨터 시스템(100)은 이미지(10)의 전경(20) 및 배경(30)을 구분할 수 있고, 전경(20) 및 배경(30)이 구분된 마스크를 해당 마스크를 벡터 이미지로 변환할 수 있다. 컴퓨터 시스템(100)은 전경(20) 및 배경(30)이 구분된 마스크에 대해 벡터 경로 변환 작업을 수행함으로써 도시된 벡터 이미지 마스크(50)를 생성할 수 있다. 벡터 이미지 마스크(50)는 레스터(raster) 이미지와는 구분되는 벡터 이미지일 수 있다. 벡터 경로 변환 작업은 레스터 이미지인 마스크를 벡터 이미지인 벡터 이미지 마스크(50)로 변환하는 작업일 수 있다. 컴퓨터 시스템(100)에 의해 생성되는 벡터 이미지 마스크(50)는 도시된 것처럼, 전경(20)의 경계 부분에서 벡터 경로들과 해당 벡터 경로들을 구성하는 포인트들을 포함할 수 있다. 벡터 이미지 마스크(50)를 활용하는 사용자는 이러한 포인트와 벡터 경로를 조정하는 것을 통해 이미지(10)의 전경(20)에 해당하는 영역을 손쉽게 편집 및 가공할 수 있다.
실시예에서, 컴퓨터 시스템(100)은 수신된 사용자 인터랙션에 기반하여 이미지(10)로부터 전경(20) 및 배경(30)을 1차적으로 구분하여, 제1 마스크를 생성할 수 있고, 생성된 제1 마스크에 기반하여 자동으로 이미지(10)에 대응하는 트라이맵(trimap)을 생성할 수 있다. 컴퓨터 시스템(100)은 생성된 트라이맵에 기반하여 이미지(10)로부터 전경(20) 및 배경(30)을 보다 정교하게 구분하는 제2 마스크를 생성할 수 있고, 생성된 제2 마스크에 기반하여 벡터 이미지 마스크(50)를 생성할 수 있다.
실시예를 통해서는, 이미지(10)로부터 전경(20) 및 배경(30)을 정확하게 구분하기 위한 작업에 있어서 사용자로부터의 사용자 인터랙션의 입력이 최소화될 수 있고, 전경(20) 및 배경(30)이 구분된 결과물이 활용성이 높은 벡터 이미지의 포맷인 벡터 이미지 마스크(50)로서 제공될 수 있다.
컴퓨터 시스템(100)이 이미지(10)로부터 전경(20) 및 배경(30)을 분리하는 구체적인 방법과, 이미지(10)로부터 벡터 이미지 마스크(50)를 생성하는 구체적인 방법에 대해서는 후술될 도 2 내지 도 18을 참조하여 더 자세하게 설명된다.
도 2는 일 실시예에 따른, 이미지의 전경과 배경을 분리하는 방법을 수행하는 컴퓨터 시스템을 나타낸다.
컴퓨터 시스템(100)은 전술한 이미지(10)로부터 전경(20) 및 배경(30)을 분리하는 작업을 수행하고, 벡터 이미지 마스크(50)를 생성하는 작업을 수행하는 컴퓨팅 장치일 수 있다.
컴퓨터 시스템(100)은 적어도 하나의 컴퓨팅 장치를 포함하도록 구성될 수 있다. 컴퓨터 시스템(100)는 이미지(10)를 로드하여 표시하고, 사용자로부터 사용자 인터랙션을 수신하여 로드된 이미지(10)에 대해 전경(20) 및 배경(30)을 분리하는 작업을 수행하고, 벡터 이미지 마스크(50)를 생성하는 작업을 수행하는 사용자 단말 또는 사용자 단말의 일부일 수 있다. 사용자 단말은, 스마트 폰과 같은 스마트 기기이거나, PC(personal computer), 노트북 컴퓨터(laptop computer), 랩탑 컴퓨터(laptop computer), 태블릿(tablet), 사물 인터넷(Internet Of Things) 기기, 또는 웨어러블 컴퓨터(wearable computer) 등일 수 있다.
또는, 컴퓨터 시스템(100)는 이미지(10)를 로드하여 표시하는 사용자 단말과는 구분되는 컴퓨팅 장치로서, 사용자 단말과 통신하는 서버일 수 있다. 이러한 서버인 컴퓨터 시스템(100)은 사용자 단말을 통해 수신되는 사용자로부터의 사용자 인터랙션에 따라 이미지(10)에 대해 전경(20) 및 배경(30)을 분리하는 작업을 수행하고, 벡터 이미지 마스크(50)를 생성하는 작업을 수행할 수 있다.
컴퓨터 시스템(100)은 도시된 것처럼, 메모리(130), 프로세서(120), 통신부(110) 및 입출력 인터페이스(140)를 포함할 수 있다.
메모리(130)는 컴퓨터에서 판독 가능한 기록매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치(permanent mass storage device)를 포함할 수 있다. 여기서 ROM과 비소멸성 대용량 기록장치는 메모리(130)와 분리되어 별도의 영구 저장 장치로서 포함될 수도 있다. 또한, 메모리(130)에는 운영체제와 적어도 하나의 프로그램 코드가 저장될 수 있다. 이러한 소프트웨어 구성요소들은 메모리(130)와는 별도의 컴퓨터에서 판독 가능한 기록매체로부터 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록매체를 포함할 수 있다. 다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록매체가 아닌 통신부(110)를 통해 메모리(130)에 로딩될 수도 있다.
프로세서(120)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(130) 또는 통신부(110)에 의해 프로세서(120)로 제공될 수 있다. 예를 들어, 프로세서(120)는 메모리(130)에 로딩된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다.
통신부(110)는 컴퓨터 시스템(100)이 다른 장치(사용자 단말 또는 다른 서버 등)와 통신하기 위한 구성일 수 있다. 말하자면, 통신부(110)는 다른 장치에 대해 데이터 및/또는 정보를 전송/수신하는, 컴퓨터 시스템(100)의 안테나, 데이터 버스, 네트워크 인터페이스 카드, 네트워크 인터페이스 칩 및 네트워킹 인터페이스 포트 등과 같은 하드웨어 모듈 또는 네트워크 디바이스 드라이버(driver) 또는 네트워킹 프로그램과 같은 소프트웨어 모듈일 수 있다.
입출력 인터페이스(140)는 키보드 또는 마우스 등과 같은 입력 장치 및 디스플레이나 스피커와 같은 출력 장치와의 인터페이스를 위한 수단일 수 있다.
프로세서(120)는 컴퓨터 시스템(100)의 구성 요소들을 관리할 수 있고, 전술한 전처리, 유사 컷들의 페어 결정 및 매칭을 수행하기 위한 프로그램 또는 어플리케이션을 실행할 수 있고, 상기 프로그램 또는 어플리케이션의 실행 및 데이터의 처리 등에 필요한 연산을 처리할 수 있다. 프로세서(120)는 컴퓨터 시스템(100)의 적어도 하나의 프로세서(CPU 또는 GPU 등) 또는 프로세서 내의 적어도 하나의 코어(core)일 수 있다.
또한, 실시예들에서 컴퓨터 시스템(100) 및 프로세서(120)는 도시된 구성요소들보다 더 많은 구성요소들을 포함할 수도 있다. 예컨대, 프로세서(120)는 후술될 이미지(10)의 전경(20)과 배경(30)을 분리하는 방법을 수행하기 위한 기능들을 수행하는 구성들을 포함할 수 있다. 이러한 프로세서(120)의 구성들은 프로세서(120)의 일부이거나 프로세서(120)에 의해 구현되는 기능일 수 있다. 프로세서(120)가 포함하는 구성들은, 운영체제의 코드나 적어도 하나의 컴퓨터 프로그램의 코드에 따른 제어 명령(instruction)에 따라 프로세서(120)가 수행하는 서로 다른 기능들(different functions)의 표현일 수 있다.
컴퓨터 시스템(100)이 수행하는 이미지(10)의 전경(20)과 배경(30)을 분리하는 방법의 구체적인 내용에 대해서는 후술될 도 3 내지 도 18을 참조하여 더 자세하게 설명된다.
이상 도 1을 참조하여 전술된 기술적 특징에 대한 설명은, 도 2에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.
후술될 상세한 설명에서, 컴퓨터 시스템(100) 또는 프로세서(120)나 이들의구성들에 의해 수행되는 동작은 설명의 편의상 컴퓨터 시스템(100)에 의해 수행되는 동작으로 설명될 수 있다.
도 3은 일 실시예에 따른, 이미지의 전경과 배경을 분리하는 방법을 나타내는 흐름도이다.
도 3을 참조하여, 이미지(10)로부터 전경(20)과 배경(30)을 분리하고, 결과물로서 벡터 이미지 마스크(50)를 생성하는 구체적인 방법에 대해 더 자세하게 설명한다.
단계(310)에서, 컴퓨터 시스템(100)은 이미지(10)에 대한 제1 사용자 인터랙션에 기반하여 이미지(10)의 전경(20)과 배경(30)을 구분함으로써, 이미지(10)의 전경(20)과 배경(30)을 1차적으로 구분하는 제1 마스크를 생성할 수 있다. 예컨대, 컴퓨터 시스템(100)은, 컴퓨터 시스템(100)과 동일하거나 컴퓨터 시스템(100)과 유선 또는 무선으로 통신하도록 구성되는 사용자 단말을 통해, 이미지(10)에 대한 제1 사용자 인터랙션을 수신할 수 있다. 컴퓨터 시스템(100)은 수신된 제1 사용자 인터랙션에 따라 이미지(10)의 전경(20)과 배경(30)을 1차적으로 구분할 수 있다.
관련하여, 도 4를 참조하여 제1 사용자 인터랙션에 기반하여 이미지(10)의 전경(20)과 배경(30)을 1차적으로 구분하는 제1 마스크를 생성하는 방법에 대해 더 자세하게 설명한다.
도 4는 일 예에 따른, 이미지의 전경과 배경을 1차적으로 구분하는 제1 마스크를 생성하는 방법을 나타내는 흐름도이다.
제1 사용자 인터랙션은 이미지(10)에 대해 사용자에 의해 입력되는 클릭, 터치 또는 탭 인터랙션이거나, 또는 이미지(10)에 대한 스크리블(scribble) 인터랙션일 수 있다. 제1 사용자 인터랙션은 전경(20)을 선택하기 위한 포지티브 사용자 인터랙션과, 배경(30)을 선택하기 위한 네거티브 사용자 인터랙션을 포함할 수 있다.
단계(410)에서, 컴퓨터 시스템(100)은 제1 사용자 인터랙션으로서 이미지(10) 상에서, 이미지(10)에서 전경(20)을 선택하기 위한 포지티브 사용자 인터랙션을 수신하거나, 또는/추가적으로, 제1 사용자 인터랙션으로서 이미지(10) 상에서, 이미지(10)에서 배경(30)을 선택하기 위한 네거티브 사용자 인터랙션을 수신할 수 있다.
포지티브 사용자 인터랙션 및 네거티브 사용자 인터랙션은, 서로 구분되는 사용자 인터랙션으로서, 이미지(10)에 대한 클릭, 터치 또는 탭 인터랙션이거나, 혹은, 이미지(10)에 대한 스크리블(scribble) 인터랙션일 수 있다. 일례로, 포지티브 사용자 인터랙션 및 네거티브 사용자 인터랙션이 "클릭"인 경우, 포지티브 사용자 인터랙션은 마우스의 좌클릭일 수 있고, 네거티브 사용자 인터랙션은 마우스의 우클릭일 수 있다. 또는, 포지티브 사용자 인터랙션 및 네거티브 사용자 인터랙션은 사용자 단말에서 선택된 UI에 따라 구분될 수 있다. 예컨대, 사용자 단말에서 포지티브 사용자 인터랙션 입력 모드가 선택된 상태에서 이미지(10)에 대해 클릭, 터치, 탭 또는 스크리블 인터랙션이 이루어지면, 컴퓨터 시스템(100)은 해당 사용자 인터랙션은 포지티브 사용자 인터랙션으로 인식할 수 있다. 또는, 사용자 단말에서 네거티브 사용자 인터랙션 입력 모드가 선택된 상태에서 이미지(10)에 대해 클릭, 터치, 탭 또는 스크리블 인터랙션이 이루어지면, 컴퓨터 시스템(100)은 해당 사용자 인터랙션은 네거티브 사용자 인터랙션으로 인식할 수 있다.
단계(420)에서, 컴퓨터 시스템(100)은 포지티브 사용자 인터랙션이 이미지(10)에 대해 입력된 경우, 포지티브 사용자 인터랙션이 수신된 위치에 기반하여 이미지(10)의 전경(20)을 결정할 수 있다. 또한, 컴퓨터 시스템(100)은 네거티브 사용자 인터랙션이 이미지(10)에 대해 입력된 경우, 네거티브 사용자 인터랙션이 수신된 위치에 기반하여 이미지(10)의 배경(30)을 결정할 수 있다. 단계(420)에서의 결정은 이미지(10)의 전경(20)과 배경(30)을 보다 정교한 구분에 앞서서 1차적으로 구분하기 위한 것일 수 있다.
단계(430)에서, 컴퓨터 시스템(100)은 단계(420)에서의 결정에 기반하여 이미지(10)의 전경(20)과 배경(30)을 구분하는 바이너리 마스크를 생성할 수 있다. 바이너리 마스크는 이미지(10)의 전경(20)과 배경(30)을 보다 정교한 구분에 앞서서 1차적으로 구분하는 제1 마스크일 수 있다. 바이너리 마스크는 제1 마스크는 전경(20)과 배경(30)을 0 또는 1로 구분할 수 있다. 바이너리 마스크인 제1 마스크는 전경(20)과 배경(30)을 픽셀값으로 구분할 수 있다. 예컨대, 바이너리 마스크는 전경(20)에 해당하는 영역을 픽셀값 255(흰색)으로 나타내고, 배경(30)에 해당하는 영역을 픽셀값 0(검정색)으로 나타낼 수 있다.
이러한 제1 마스크는 제1 사용자 인터랙션으로서 포지티브 사용자 인터랙션이 수신된 위치에 기반하여 이미지(10)의 전경(20)을 결정하고, 제1 사용자 인터랙션으로서 네거티브 사용자 인터랙션이 수신된 위치에 기반하여 이미지(10)의 배경(30)을 결정하도록 미리 훈련된 모델을 사용하여 생성될 수 있다. 제1 사용자 인터랙션이 수신됨에 따라, 미리 훈련된 모델을 사용하여, 제1 마스크를 생성하는 보다 구체적인 방법은 후술될 도 9, 도 10, 도 12 및 도 13을 참조하여 더 자세하게 설명된다.
단계(320)에서, 컴퓨터 시스템(100)은 단계(310)에 따라 생성된 제1 마스크에 기반하여, 이미지(10)에 대응하는 트라이맵(trimap)을 생성할 수 있다. 이러한 트라이맵은 제1 마스크로부터 자동으로 생성되는 것일 수 있다. 말하자면, 전술한 제1 사용자 인터랙션 외에는, 트라이맵을 그리기 위한 별도의 사용자 인터랙션이 없더라도 이미지(10)에 대응하는 트라이맵은 자동으로 생성될 수 있다.
이처럼, 실시예에서는 이미지(10)에 대해 상대적으로 간단한 제1 사용자 인터랙션이 입력되는 것만으로, 트라이맵을 생성하기 위한 전경(20)과 배경(30)의 경계를 구분하기 위한 사용자 인터랙션이 직접적으로 입력되지 않더라도, 컴퓨터 시스템(100)이 자동으로 트라이맵을 생성할 수 있다.
트라이맵은 이미지(10)에서 배경(30)을 나타내는 배경 영역과, 전경(20)을 나타내는 전경 영역과, 배경(30)과 전경(20)의 경계 부근의 영역을 나타내는 모호(unknown) 영역을 포함할 수 있다.
제1 마스크에 기반하여 이미지에 대응하는 트라이맵을 생성하는 보다 구체적인 방법에 대해서는 후술될 도 5, 도 6, 도 9 및 도 14를 참조하여 더 자세하게 설명된다.
단계(330)에서, 컴퓨터 시스템(100)은 단계(320)에 따라 생성된 트라이맵에 기반하여, 이미지(10)의 전경(20)과 배경(30)을 구분하는 제2 마스크를 생성할 수 있다. 제2 마스크는 제1 마스크에 비해 이미지(10)의 전경(20)과 배경(30)을 보다 정교하게 구분할 수 있다.
제2 마스크는 전술한 바이너리 마스크인 제1 마스크와는 달리 이미지(10)의 전경(20)과 배경(30)의 경계 부근(즉, 경계를 포함하는 부분)에서 이미지(10)의 전경(20)에 해당하는 픽셀값과 이미지(30)의 배경(30)에 해당하는 픽셀값의 사이에 값을 적어도 하나 갖도록 구성될 수 있다. 전경(20)에 해당하는 픽셀값이란 마스크 이미지의 전경에 해당하는 픽셀값을 의미하고, 배경(30)에 해당하는 픽셀값이란 마스크 이미지의 배경에 해당하는 픽셀 값일 수 있다. 말하자면, 전경(20)과 배경(30)이 단순히 바이너리(0 또는 1, 혹은 0 또는 255)로 구분되는 제1 마스크에 비해, 제2 마스크는 경계 부근에서 적어도 하나의 중간값(0과 255 사이의 값)을 가지거나 경계 부근에서 중간값들로 구성되는 연속된 값을 가질 수 있다. 이에 따라, 제2 마스크는 제1 마스크에 비해 전경(20)과 배경(30)의 경계를 보다 연속적으로(continuous) 표현할 수 있다.
즉, 전경(20)과 배경(30)의 경계에서 계단 현상이 발생하는 제1 마스크에 비해, 제2 마스크는 이러한 계단 현상의 발생이 현저하게 감소될 수 있으며, 따라서, 제1 마스크에 비해 보다 정교하게 전경(20)과 배경(30)을 구분할 수 있다.
컴퓨터 시스템(100)은, 이미지(10)와 단계(320)에서 생성된 트라이맵에 기반하여 이미지(10)의 전경(20)과 배경(30)을 구분하도록 미리 훈련된 모델을 사용하여 제2 마스크를 생성할 수 있다.
컴퓨터 시스템(100)은, 이러한 미리 훈련된 모델이, 트라이맵의 전경(20)과 배경(30)의 경계(contour)를 포함하는 모호(unknown) 영역이 이미지(10)의 전경(20)인지 또는 이미지(10)의 배경(30)인지 여부를 판별함으로써, 제2 마스크를 생성할 수 있다.
제2 마스크를 생성하는 보다 구체적인 방법에 대해서는, 후술될 도 9, 도 11 및 도 15를 참조하여 더 자세하게 설명된다.
단계(340)에서, 컴퓨터 시스템(100)은 단계(330)에 따라 생성된 제2 마스크에 기반하여, 벡터 이미지 마스크(50)를 생성할 수 있다.
컴퓨터 시스템(100)은 전경(20) 및 배경(30)이 구분된 제2 마스크에 대해 벡터 경로 변환 작업을 수행함으로써 벡터 이미지 마스크(50)를 생성할 수 있다. 벡터 이미지 마스크(50)는 레스터(raster) 이미지와는 구분되는 벡터 이미지일 수 있다. 벡터 경로 변환 작업은 레스터 이미지인 마스크를 벡터 이미지인 벡터 이미지 마스크(50)로 변환하는 작업일 수 있다. 벡터 이미지 마스크(50)는 도 1에서 도시된 것처럼 이미지(10)의 분리된 전경(20)을 포함하는 이미지를 나타낼 수 있다.
제2 마스크는 레스터 이미지 마스크일 수 있다. 예컨대, 제2 마스크는 비트맵 포맷의 이미지이거나, PNG 포맷 또는 JPG 포맷의 이미지일 수 있다. 한편, 벡터 이미지인 벡터 이미지 마스크(50)는 SVG 포맷 또는 PSD 포맷의 이미지일 수 있다. 즉, 컴퓨터 시스템(100)은 비트맵, PNG 포맷 또는 JPG 포맷의 이미지인 제2 마스크를 SVG 포맷 또는 PSD 포맷의 벡터 이미지인 벡터 이미지 마스크(50)으로 변환할 수 있다.
도 1에서 도시된 것처럼 벡터 이미지 마스크(50)는 전경(20)의 경계에서 복수의 포인트들로 구성된 벡터 경로들을 포함할 수 있다. 이러한 포인트들의 각각 및/또는 벡터 경로들의 각각은 사용자에 의해 편집 가능하게 구성될 수 있다. 예컨대, 전경(20)이 분리되어 생성된 벡터 이미지 마스크(50)를 편집 및 가공하고자 하는 사용자는 포토샵과 같은 툴을 사용하여 상기 포인트 및/또는 벡터 경로의 위치를 조절하는 것을 통해 벡터 이미지 마스크(50)를 편집 및 가공할 수 있다. 따라서, 실시예에서는 이미지(10)의 전경(20) 및 배경(30) 분리에 따른 결과물로서 벡터 이미지 마스크(50)가 제공됨으로써, 상기 결과물에 대한 활용도와 편의성이 향상될 수 있다.
컴퓨터 시스템(100)이 벡터 이미지 마스크(50)를 생성하는 보다 구체적인 방법에 대해서는 후술될 도 7, 도 9 및 도 16을 참조하여 더 자세하게 설명된다.
이상 도 1 및 도 2를 참조하여 전술된 기술적 특징에 대한 설명은, 도 3 및 도 4에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.
아래에서는, 먼저 도 10, 도 12 및 도 13을 참조하여 컴퓨터 시스템(100)이 제1 사용자 인터랙션에 기반하여 제1 마스크를 생성하는 방법에 대해 더 자세하게 설명한다.
도 10은 일 예에 따른, 미리 훈련된 모델을 사용하여 이미지의 전경과 배경을 1차적으로 구분하는 제1 마스크를 생성하는 방법을 나타낸다.
이미지(905)는 원본 이미지로서 전술한 이미지(10)에 대응할 수 있다.
컴퓨터 시스템(100)은, 제1 사용자 인터랙션에 따라 이미지(905)의 전경(20) 및 배경(30)을 결정(즉, 구분)하도록 미리 훈련된 모델(1000)을 사용하여 제1 마스크(1010)를 생성할 수 있다.
미리 훈련된 모델(1000)은 유저-인터랙티브 세그멘테이션(user-interactive segmentation) 모델로 명명될 수 있다. 모델(1000)은 이미지와 이미지에 대한 제1 사용자 인터랙션 및 가우시안 맵을 입력으로 수신하여 제1 마스크를 생성하도록 훈련된 것일 수 있다.
즉, 모델(1000)은 이미지(905)와 이미지(905)에 대한 제1 사용자 인터랙션으로서의 네거티브 입력과 포지티브 입력, 및 이미지(905)에 대응하는 가우시안 맵을 입력으로 수신하여 제1 마스크(1010)를 생성할 수 있다. 모델(1000)은 딥러닝(DNN) 기반의 모델일 수 있다. 또는, 모델(1000)은 기타 인공 신경망(CNN, ANN, RNN 등) 기반의 모델일 수 있다
모델(1000)은 제1 사용자 인터랙션으로서 포지티브 사용자 인터랙션이 수신된 이미지(905) 상의 위치에 기반하여 이미지(905)의 전경(20)을 결정하고, 제1 사용자 인터랙션으로서 네거티브 사용자 인터랙션이 수신된 이미지(905) 상의 위치에 기반하여 이미지(905)의 배경(30)을 결정할 수 있고, 이에 따라, 전경(20)과 배경(30)을 구분하는 제1 마스크(1010)를 생성할 수 있다.
모델(1000)은 제1 마스크(1010)를 생성함에 따라 추가로 학습될 수 있고, 보다 정확하게 전경(20)과 배경(30)을 구분하도록 업데이트될 수 있다.
모델(1000)은 컴퓨터 시스템(100) 내부에서 구현되어 있을 수 있고, 또는, 컴퓨터 시스템(100)의 외부에서 구현되어 있는 것일 수도 있다.
모델(1000)은 입력에 따라 바이너리 마스크인 제1 마스크(1010)를 생성할 수 있고, 이러한 제1 마스크(1010)는 후술될 트라이맵을 생성하기 위한 중간 결과물이 될 수 있다.
도 12 및 도 13은 일 예에 따른, 제1 사용자 인터랙션에 기반하여 원본 이미지로부터 제1 마스크를 생성하는 방법을 나타낸다.
도 12에서 도시된 이미지(915)는 이미지(905)에 대해 제1 사용자 인터랙션이 수신됨에 따라, 배경(30)과 전경(20)이 구분하여 표시된 이미지를 나타낼 수 있다. 컴퓨터 시스템(100)은 이미지(905)에 대해 입력되는 포지티브 사용자 인터랙션(1210)에 따라 이미지(915) 상에서 전경(20)에 해당하는 영역을 표시할 수 있고, 이미지(905)에 대해 입력되는 네거티브 사용자 인터랙션(1220)에 따라 이미지(915) 상에서 배경(30)에 해당하는 영역을 표시할 수 있다. 도 12에서는, 포지티브 사용자 인터랙션(1210)과 네거티브 사용자 인터랙션(1220)은 서로 구분되는 클릭(예컨대, 마우스의 좌 또는 우 클릭) 인터랙션이거나, UI를 통해 선택된 모드를 통해 구분되는 터치 또는 탭 인터랙션인 것으로 예시되었다.
모델(1000)은 포지티브 사용자 인터랙션(1210) 또는 네거티브 사용자 인터랙션(1220)인 제1 사용자 인터랙션이 수신될 때마다, 제1 사용자 인터랙션이 수신된(입력된) 이미지(915, 905) 상의 위치에 기반하여 해당 위치를 포함하는 영역이 배경(30)인지 또는 전경(20)인지 여부를 판정할 수 있다. 컴퓨터 시스템(100)은 모델(1000)에 의한 판정에 따라 배경(30)과 전경(20)을 구분하는 이미지(915)를 표시할 수 있다. 이미지(915)에는 입력된 포지티브 사용자 인터랙션(1210) 또는 네거티브 사용자 인터랙션(1220)가 함께 표시될 수 있다.
더 많은 수의 제1 사용자 인터랙션이 입력될수록 이미지(915) 상에서 보다 정교하게 배경(30)과 전경(20)이 구분될 수 있다.
모델(1000) 전술한 제1 사용자 인터랙션에 기반한 판정에 따라 이미지(915)에 대응하여 제1 마스크(1010)를 생성할 수 있다. 생성된 제1 마스크(1010)는 사용자 단말에서는 표시되지 않을 수 있다. 다만, 실시예에 따라서는 제1 마스크(1010)가 사용자 단말에서 표시될 수도 있다.
도 13에서 도시된 이미지(1300)는 이미지(905)에 대해 제1 사용자 인터랙션이 수신됨에 따라, 배경(30)과 전경(20)이 구분하여 표시된 이미지를 나타낼 수 있다. 도 13에서는, 포지티브 사용자 인터랙션(1310)과 네거티브 사용자 인터랙션(1320)은 서로 구분되는 스크리블(scribble) 인터랙션인 것으로 예시되었다. 포지티브 사용자 인터랙션(1310)과 네거티브 사용자 인터랙션(1320)에 해당하는 스크리블 인터랙션은 UI를 통해 선택된 모드를 통해 구분될 수 있다.
도 12를 참조하여 설명한 것과 유사하게 모델(1000)은 포지티브 사용자 인터랙션(1310) 또는 네거티브 사용자 인터랙션(1320)인 제1 사용자 인터랙션이 수신될 때마다, 제1 사용자 인터랙션이 수신된(입력된) 이미지(915, 905) 상의 위치에 기반하여 해당 위치를 포함하는 영역이 배경(30)인지 또는 전경(20)인지 여부를 판정할 수 있다.
모델(1000) 이러한 제1 사용자 인터랙션에 기반한 판정에 따라 이미지(915)에 대응하여 제1 마스크(1010)를 생성할 수 있다.
제1 마스크(1010)는 예컨대, 비트맵 포맷, PNG 포맷 또는 JPG 포맷의 이미지일 수 있다.
모델(1000)에 의해 생성된 제1 마스크(1010)는 후술될 트라이맵을 생성하기 위한 중간 결과물이 될 수 있다. 실시예에서는, 제1 마스크(1010)에 기반하여 트라이맵이 추가적인 사용자 인터랙션 없이 자동으로 생성될 수 있다.
따라서, 실시예에서는, 전경(20)과 배경(30)을 구분하기 위한 직접적인 사용자 인터랙션이 입력될 필요 없이, 전술한 간단한 제1 사용자 인터랙션이 입력되는 것만으로도 트라이맵이 생성될 수 있다.
한편, 제1 사용자 인터랙션은 모델(1000)에 대해 배경(30) 및 전경(20)에 대한 힌트를 제공하기 위한 사용자 인터랙션일 수 있다는 점에서, 모델(1000)에 의한 배경(30) 및 전경(20)의 구분은 힌트-기반 세그먼테이션(hint-based segmentation)일 수 있다.
이상 도 1 내지 도 4를 참조하여 전술된 기술적 특징에 대한 설명은, 도 10, 도 12 및 도 13에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.
다음으로, 도 5 및 도 6을 참조하여, 제1 마스크(1010)에 기반하여 이미지에 대응하는 트라이맵을 생성하는 방법에 대해 더 자세하게 설명한다.
도 5 및 도 6은 일 예에 따른, 제1 마스크에 기반하여 이미지에 대응하는 트라이맵을 생성하는 방법을 나타내는 흐름도이다.
단계(510)에서, 컴퓨터 시스템(100)은 사용자 인터랙션 없이, 제1 마스크(1010)를 자동으로 트라이맵으로 변환할 수 있다. 말하자면, 실시예에서는 트라이맵을 생성하기 위해 전경(20)과 배경(30)의 경계를 구분하기 위한 사용자 인터랙션이 특별히 요구되지 않을 수 있다.
컴퓨터 시스템(100)은 룰-기반(rule-based) 방식 또는 함수 기반의 방식에 따른 연산을 제1 마스크(1010)에 적용함으로써 제1 마스크(1010)를 트라이맵으로 변환할 수 있다.
구체적으로, 단계(610)에서, 컴퓨터 시스템(100)은 제1 마스크(1010)로부터 이미지(10)의 전경(20)과 배경(30)의 경계(contour)를 추출할 수 있다.
단계(620)에서, 컴퓨터 시스템(100)은 추출된 경계를 확장(dilation)하여 모호(unknown) 영역을 획득할 수 있다. 모호 영역은 전경(20)인지 배경(30)인지 여부가 명확하지 않은 영역으로서, 전경(20) 또는 배경(30)으로의 구분을 위해 미리 훈련된 모델에 의한 판별이 요구되는 영역일 수 있다.
경계로부터 확장되는 모호 영역의 범위는 미리 설정되어 있을 수 있다. 컴퓨터 시스템(100)은 이미지(10 또는 905)에 따라 경계로부터 확장되는 모호 영역의 범위를 자동으로 설정할 수 있다. 또는, 컴퓨터 시스템(100)은 사용자 단말을 통해 제공되는 UI를 통해 사용자에 의해 선택되는 값에 따라 모호 영역의 범위를 설정할 수 있다.
단계(630)에서, 컴퓨터 시스템(100)은 이미지(10)의 전경(20)에 해당하는 영역 및 배경(30)에 해당하는 영역과, 모호 영역을 구분하여 나타내는 트라이맵을 생성할 수 있다.
단계들(610 내지 630)에 따라, 제1 마스크(1010)는 자동으로 트라이맵으로 변환될 수 있다. 따라서, 제1 사용자 인터랙션에 따라 러프(rough)하게 생성된 바이너리 마스크인 제1 마스크(1010)로부터 사용자의 비용(cost)을 최소화하여 트라이맵을 자동으로 생성할 수 있다.
한편, 생성된 트라이맵은 추가적인 사용자 인터랙션에 기반하여 업데이트될 수 있다.
단계(520)에서, 컴퓨터 시스템(100)은 제1 마스크(1010)로부터 자동으로 변환된 트라이맵에 대해 트라이맵을 수정하기 위한 제2 사용자 인터랙션을 수신할 수 있다. 제2 사용자 인터랙션은 단계(510)에서 생성된 트라이맵을 보다 정교하게 수정하기 위한 사용자 인터랙션일 수 있다. 예컨대, 제2 사용자 인터랙션은 트라이맵의 수정을 위한 터치 입력일 수 있다. 이러한 제2 사용자 인터랙션은 i) 전경(20)에 해당하는 영역을 선택하기 위한 사용자 인터랙션, ii) 배경(30)에 해당하는 영역을 선택하기 위한 사용자 인터랙션, 또는 iii) 모호 영역에 해당하는 영역을 선택하기 위한 사용자 인터랙션으로 구분될 수 있다. i) 내지 iii)의 사용자 인터랙션은 사용자 단말에서 선택된 UI에 따라 구분될 수 있다. 예컨대, 사용자 단말에서 전경(20)에 해당하는 영역을 선택하기 위한 입력 모드가 선택된 상태에서 트라이맵에 대해 사용자 인터랙션이 이루어지면, 컴퓨터 시스템(100)은 해당 사용자 인터랙션을 i)로 인식할 수 있고; 사용자 단말에서 배경(30)에 해당하는 영역을 선택하기 위한 입력 모드가 선택된 상태에서 트라이맵에 대해 사용자 인터랙션이 이루어지면, 컴퓨터 시스템(100)은 해당 사용자 인터랙션을 ii)로 인식할 수 있고; 사용자 단말에서 모호 영역에 해당하는 영역을 선택하기 위한 입력 모드가 선택된 상태에서 트라이맵에 대해 사용자 인터랙션이 이루어지면, 컴퓨터 시스템(100)은 해당 사용자 인터랙션을 iii)으로 인식할 수 있다.
단계(530)에서, 컴퓨터 시스템(100)은 수신된 제2 사용자 인터랙션에 기반하여 트라이맵으로부터 최종 트라이맵을 생성할 수 있다. 컴퓨터 시스템(100)은 입력된 제2 사용자 인터랙션에 의한 수정에 따라 트라이맵을 업데이트하여 최종 트라이맵을 생성할 수 있다.
일례로, 제2 사용자 인터랙션은 브러시 입력일 수 있고, 사용자는 이러한 브러시 입력을 통해 트라이맵을 보고 배경(30)에 해당하는 영역으로 잘못 분류된 부분(예컨대, 캐릭터의 머리카락 부분 등)을 전경(20)에 해당하는 영역이나 모호 영역으로 수정할 수 있다.
이처럼 실시예에서는, 컴퓨터 시스템(100)은 제2 사용자 인터랙션을 통해, 자동으로 생성된 트라이맵을 보다 정교하게 수정할 수 있고, 따라서, 보다 정교한 제2 마스크를 생성할 수 있다.
전술한 단계(330)에서, 컴퓨터 시스템(100)은 생성된 최종 트라이맵에 기반하여, 제2 마스크를 생성할 수 있다. 컴퓨터 시스템(100)은 제2 마스크가 생성된 후에라도 트라이맵을 더 수정하기 위한 제2 사용자 인터랙션이 입력되는 경우 다시 트라이맵을 수정할 수 있고, 추가 수정된 트라이맵에 기반하여 제2 마스크를 생성할 수 있다. 이러한 트라이맵의 반복적인 수정을 통해 보다 정교한 제2 마스크가 생성될 수 있다.
관련하여, 도 14는 일 예에 따른, 이미지에 대응하는 트라이맵을 나타낸다.
도시된 트라이맵(925)은 전술한 제1 마스크(1010)에 기반하여 자동으로 생성된 것이거나, 자동으로 생성된 트라이맵이 제2 사용자 인터랙션에 따라 수정된 것일 수 있다.
트라이맵(925)은 배경(30)에 해당하는 영역(1410), 전경(20)에 해당하는 영역(1420) 및 모호 영역(1430)을 포함할 수 있다. 모호 영역(1430)은 배경(30)과 전경(20)의 경계로부터 확장되어 있음을 확인할 수 있다. 모호 영역(1430)은 전경(20)(예컨대, 캐릭터)의 경계 주변의 영역으로서, 전경(20)의 내부의 일부 및/또는 배경(30)의 일부를 적어도 포함할 수 있다. 말하자면, 모호 영역(1430)은 캐릭터의 경계 주변의 영역으로서 캐릭터의 내부의 영역의 일부 및/또는 캐릭터의 외부의 영역의 일부를 적어도 포함할 수 있다.
배경(30)에 해당하는 영역(1410)은 제1 마스크(1010)의 배경(30)에 해당하는 부분으로 검은색으로, 전경(20)에 해당하는 영역(1420)은 제1 마스크(1010)의 전경(20)에 해당하는 부분으로 흰색으로 표현될 수 있고, 모호 영역(1430)은 그 중간색(예컨대 회색)으로 표현될 수 있다.
이상 도 1 내지 도 4, 도 10, 도 12 및 도 13을 참조하여 전술된 기술적 특징에 대한 설명은, 도 5, 도 6 및 도 14에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.
한편, 도 19는 일 예에 따른, 원본 이미지에 대응하는 트라이맵을 나타낸다. 도시된 트라이맵에서 검정색 영역이 배경(30)에 해당하는 영역(1410)에, 흰색 영역이 전경(20)에 해당하는 영역(1420)에, 회색 영역이 모호 영역(1430)에 대응할 수 있다.
아래에서는, 다음으로, 도 11 및 도 15를 참조하여 컴퓨터 시스템(100)이 트라이맵에 기반하여 제2 마스크를 생성하는 방법에 대해 더 자세하게 설명한다.
도 11은 일 예에 따른, 미리 훈련된 모델을 사용하여 이미지의 전경과 배경을 보다 정교하게 구분하는 제2 마스크를 생성하는 방법을 나타낸다.
이미지(905)는 원본 이미지로서 전술한 이미지(10)에 대응할 수 있다. 트라이맵(925)은 전술한 제1 마스크(1010)에 기반하여 생성된 것으로, 제1 마스크(1010)로부터 자동으로 생성된 것이거나, 제1 마스크(1010)로부터 자동적으로 생성된 것이 제2 사용자 인터랙션에 따라 수정됨으로써 생성된 최종 트라이맵일 수 있다.
컴퓨터 시스템(100)은, 이미지(905)와 트라이맵(925)에 기반하여 이미지(905)의 전경(20)과 배경(30)을 구분하도록 미리 훈련된 모델(1100)을 사용하여 제2 마스크(935)를 생성할 수 있다.
미리 훈련된 모델(1100)은 트라이맵(925)의 전경(20)과 배경(30)의 경계(contour)를 포함하는 모호(unknown) 영역(1430)이 이미지(10)의 전경(20)인지 또는 이미지(10)의 배경(30)인지 여부를 판별함으로써, 제2 마스크(935)를 생성할 수 있다. 말하자면, 도 14를 참조하여 전술된, 트라이맵(925)의 영역(1410)과 영역(1420)에 대해서는 제2 마스크(935)에도 그대로 반영되며, 모델(1100)은 영역(1430)에 대해서만 판단을 내릴 수 있다. 영역(1430)이 모델(1100)에 의해 실시예의 자동적인 누끼따기가 수행되는 영역일 수 있다.
모델(1100)은 매팅(matting) 모델로 명명될 수 있다. 모델(1100)은 이미지와 이미지에 대응하는 트라이맵을 입력으로 수신하여 제2 마스크를 생성하도록 훈련된 것일 수 있다.
즉, 모델(1100)은 이미지(905)와 트라이맵(925)을 입력으로 수신하여 제2 마스크(935)를 생성할 수 있다. 모델(1100)은 딥러닝(DNN) 기반의 모델일 수 있다. 또는, 모델(1100)은 기타 인공 신경망(CNN, ANN, RNN 등) 기반의 모델일 수 있다.
모델(1100)은 제2 마스크(935)를 생성함에 따라 추가로 학습될 수 있고, 보다 정확하게 전경(20)과 배경(30)을 구분하도록 업데이트될 수 있다.
모델(1100)은 컴퓨터 시스템(100) 내부에서 구현되어 있을 수 있고, 또는, 컴퓨터 시스템(100)의 외부에서 구현되어 있는 것일 수도 있다.
제2 마스크(935)는, 예컨대, 비트맵 포맷, PNG 포맷 또는 JPG 포맷의 이미지일 수 있고, 최종적인 결과물인 벡터 이미지 마스크(50)를 생성하기 위해 사용될 수 있다.
도 15는 일 예에 따른, 트라이맵에 기반하여 생성된 제2 마스크를 나타낸다.
제2 마스크(935)는 배경(30)에 해당하는 영역(1510) 및 전경(20)에 해당하는 영역(1520)을 포함할 수 있다. 영역(1510)은 검은색으로 영역(1520)은 흰색으로 표현될 수 있다. 즉, 영역(1510)은 0의 픽셀값으로 영역(1520)은 255의 픽셀값으로 표현될 수 있다.
제2 마스크(935)는 전술한 바이너리 마스크인 제1 마스크(1010)와는 달리 전경(20)과 배경(30)의 경계를 포함하는 부분으로서, 영역(1510)과 영역(1520)의 경계 부분에서 영역(1510)에 해당하는 픽셀값과 영역(1520)에 해당하는 픽셀값의 사이에 값을 적어도 하나 갖도록 구성될 수 있다. 말하자면, 전경(20)과 배경(30)이 단순히 바이너리(0 또는 1, 혹은 0 또는 255)로 구분되는 제1 마스크(1010)에 비해, 제2 마스크(935)는 전경(20)과 배경(30)의 경계 부근에서 적어도 하나의 중간값(0과 255 사이의 값)을 가지거나 경계 부근에서 중간값들로 구성되는 연속된 값을 가질 수 있다. 이에 따라, 제2 마스크(935)는 제1 마스크(1010)에 비해 전경(20)과 배경(30)의 경계를 보다 연속적으로(continuous) 표현하는 정교한 마스크가 될 수 있다.
도시되지는 않았으나, 전경(20)과 배경(30)의 경계에서 제1 마스크(1010)와 제2 마스크(935)를 확대하여 살펴보면, 제2 마스크(935)에서 계단 현상이 현저하게 감소됨을 확인할 수 있다.
이상 도 1 내지 도 6, 도 10, 도 12 내지 도 14를 참조하여 전술된 기술적 특징에 대한 설명은, 도 11 및 도 15에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.
아래에서는, 다음으로, 도 7 및 도 15을 참조하여 컴퓨터 시스템(100)이 제2 마스크(935)에 기반하여 최종 결과물인 벡터 이미지 마스크(50)를 생성하는 방법에 대해 더 자세하게 설명한다.
도 7은 일 예에 따른, 제2 마스크에 기반하여 벡터 이미지 마스크를 생성하는 방법을 나타내는 흐름도이다. 도 16은 일 예에 따른, 제2 마스크에 기반하여 생성된 벡터 이미지 마스크를 나타낸다.
벡터 이미지 마스크(50)는, 도 1 및 도 16에서 도시된 것과 같은, 이미지(10, 905)의 분리된 전경(20)을 포함하는 이미지(945, 이하, 벡터 이미지 마스크(945))를 나타낼 수 있다.
컴퓨터 시스템(100)은 제2 마스크(935)에 대해 벡터 경로 변환 작업을 수행함으로써 벡터 이미지 마스크(945)를 생성할 수 있다. 벡터 이미지 마스크(945)는 벡터 이미지일 수 있다. 벡터 경로 변환 작업은 레스터 이미지인 제2 마스크(935)를 벡터 이미지인 벡터 이미지 마스크(945)로 변환하는 작업일 수 있다. 예컨대, 벡터 이미지인 벡터 이미지 마스크(945)는 SVG 포맷 또는 PSD 포맷의 이미지일 수 있다. 컴퓨터 시스템(100)은 비트맵, PNG 포맷 또는 JPG 포맷의 이미지인 제2 마스크(935)를 SVG 포맷 또는 PSD 포맷의 벡터 이미지인 벡터 이미지 마스크(945)으로 변환하는 작업을 수행할 수 있다.
구체적으로, 단계(710)에서, 컴퓨터 시스템(100)은 제2 마스크(935)를 이진화(binarize)하여 이진화된 마스크를 생성할 수 있다. 말하자면, 컴퓨터 시스템(100)은 제2 마스크(935)를 바이너리 마스크로 변환할 수 있다. 이 때, 전술한 중간값들을 갖는 전경(20)과 배경(30)의 경계 부분의 픽셀값들이 전경(20) 또는 배경(30)에 해당하는 픽셀값들로 변경될 수 있다.
단계(720)에서, 컴퓨터 시스템(100)은 이진화된 마스크에 대해 이미지 트레이싱을 수행하여 해당 마스크를 벡터 경로(vector path)들을 포함하는 소정의 포맷의 벡터 이미지 마스크로 변환할 수 있다. 소정의 포맷은 SVG 포맷(또는 PSD 포맷)일 수 있다.
생성된 벡터 이미지 마스크는 예컨대, 도 16에서 도시된 벡터 이미지 마스크(945)와 같이 구성될 수 있다. 벡터 이미지 마스크(945)는 벡터 이미지일 수 있다. 벡터 이미지 마스크(945)는 도시된 것처럼, 경계 부분에서 복수의 포인트들(1610)과, 포인트들(1610) 간을 연결하는 벡터 경로들(1620)을 포함할 수 있다.
최종적인 벡터 이미지 마스크(945)는 전술한 제2 마스크(935)와 비교하여서도 경계에서의 계단 현상이 더욱 감소될 수 있다.
벡터 이미지인 벡터 이미지 마스크(945)가 생성됨으로써, 이를 편집 및 가공하고자 하는 사용자는 포토샵과 같은 툴을 사용하여 벡터 이미지 마스크(945)의 벡터 경로(1620) 및/또는 포인트(1610)의 위치를 조절하는 것을 통해 벡터 이미지 마스크(945)를 손쉽게 편집 및 가공할 수 있다. 벡터 경로(1620)는 포인트(1610) 간을 연결하는 벡터일 수 있다.
이상 도 1 내지 도 6 및 도 10 내지 도 15를 참조하여 전술된 기술적 특징에 대한 설명은, 도 7 및 도 16에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.
아래에서는, 도 9를 참조하여, 원본 이미지인 이미지(905)로부터 최종 결과물인 벡터 이미지 마스크(945)를 생성하는 방법에 대해 설명한다.
도 9는 일 예에 따른, 이미지의 전경과 배경을 분리하는 방법으로서, 원본 이미지로부터 벡터 이미지 마스크를 생성하는 방법을 나타낸다.
도 9에서는 이미지(905)로부터 벡터 이미지 마스크(945)가 생성되는 방법이 도식화되었다.
도시된 것처럼, 이미지(905)에 대해 제1 사용자 인터랙션이 수신되면(단계(910)), 제1 사용자 인터랙션이 수신된(또는 입력된) 이미지(915) 상에의 위치에 따라 이미지(915)에서 배경(30)과 전경(20)이 구분하여 표시될 수 있다. 이미지(915)에는 입력된 제1 사용자 인터랙션이 네거티브 사용자 인터랙션과 포지티브 사용자 인터랙션으로 구분되어 표시될 수 있다. 전술한 모델(1000)에 의해 제1 사용자 인터랙션이 입력된 위치를 포함하는 영역이 배경(30)인지 또는 전경(20)인지 여부가 판정될 수 있다. 제1 사용자 인터랙션의 입력에 따라 이미지(915) 상에 배경(30)과 전경(20)이 구분됨으로써, 이미지(905, 915)에 대응하는 트라이맵(925)이 생성될 수 있다(단계(920)). 트라이맵(925)은 도 9에서는 도시되지 않은 제1 마스크(1010)에 기반하여 자동으로 생성된 것일 수 있다. 트라이맵(925)은 제2 사용자 인터랙션이 수신됨에 따라 보다 정교하게 수정될 수 있다. 최종적인 트라이맵(925)에 기반하여 제2 마스크(935)가 생성될 수 있다(단계(930)). 제2 마스크(935)에 대해 벡터 경로 변환 작업이 수행됨으로써 최종적인 결과물인 벡터 이미지 마스크(945)가 생성될 수 있다(단계(940)). 벡터 이미지 마스크(945)는 PSD 포맷일 수 있고, 따라서, 포토샵과 같은 툴을 통해, 예컨대, 펜툴 기능을 사용하여, 벡터 이미지 마스크(945)의 벡터 경로 및 벡터 경로를 구성하는 포인트는 용이하게 편집될 수 있다.
제1 사용자 인터랙션은 도 12 및 도 13을 참조하여 설명한 것처럼 클릭, 터치, 탭 또는 스크리블 인터랙션일 수 있고, 제2 사용자 인터랙션은 브러시 입력일 수 있다. 제1 사용자 인터랙션은 제1 마스크(1010)의 품질을 향상시키기 위한 사용자의 입력일 수 있고, 제2 사용자 인터랙션은 제2 마스크(935)의 품질을 향상시키기 위한 사용자의 입력일 수 있다. 제2 사용자 인터랙션에 따라 최종적인 결과물인 벡터 이미지 마스크(945)의 품질 역시 향상될 수 있다.
이상 도 1 내지 도 7 및 도 10 내지 도 16을 참조하여 전술된 기술적 특징에 대한 설명은, 도 9에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.
아래에서는, 도 8과, 도 17 및 도 18을 참조하여, 실시예의 이미지(905)로부터 전경(20)과 배경(30)을 분리하는 방법을 사용자 단말에서 수행하는 방법에 대해 설명한다.
도 8은 일 예에 따른, 이미지를 로드하여 이미지의 전경과 배경을 분리하는 방법을 나타내는 흐름도이다.
도 17은 일 예에 따른, 이미지의 전경과 배경을 분리하는 방법을 수행하기 위한 사용자 인터페이스를 나타내고, 도 18은 일 예에 따른, 사용자 인터페이스가 적용된 사용자 단말의 화면을 나타낸다.
사용자 단말은 사용자가 제1 사용자 인터랙션 및 제2 사용자 인터랙션을 입력하고, 이미지(915)와 결과물인 벡터 이미지 마스크(945)를 표시하는 장치일 수 있다. 전술한 것처럼, 사용자 단말은 컴퓨터 시스템(100)과 동일하거나 컴퓨터 시스템(100)과 유선 또는 무선으로 통신하도록 구성되는 것일 수 있다.
단계(810)에서, 사용자 단말은 이미지(10, 905)를 로드할 수 있다. 예컨대, 사용자는 실시예의 누끼따기를 수행할 이미지(905)를 선택함으로써 사용자 단말에 이미지(10, 905)를 로드할 수 있다.
사용자 단말은 로드된 이미지(905)를 사용자 단말의 화면(1800)의 제1 영역(1810)에서 표시할 수 있다. 화면(1800)은 실시예의 누끼따기를 수행하기 위한 프로그램 또는 어플리케이션의 실행 화면일 수 있다. 제1 영역(1810)은 로드된 이미지(905)를 표시하기 위한 영역일 수 있다.
단계(820)에서, 사용자 단말은 제1 영역(1810)에서 이미지(905)에 대해 제1 사용자 인터랙션이 입력됨에 따라, 이미지(915) 상에서 이미지(915)의 전경(20)과 배경(30)을 구분하여 표시할 수 있다. 제1 영역(1810)에서 이미지(915) 상에는 전경(20)에 해당하는 영역과 배경(30)에 해당하는 영역이 상이한 패턴 또는 색상으로 표시될 수 있다. 또한, 이미지(915) 상에는 제1 사용자 인터랙션이 네거티브 사용자 인터랙션인지 포지티브 사용자 인터랙션인지에 따라 구분되어 각 제1 사용자 인터랙션이 입력된 위치에서 표시될 수 있다. 사용자는 이미지(915)에서 직관적으로 전경(20)과 배경(30)을 인식하여 도 12 및 도 13에서 설명된 것과 같은 제1 사용자 인터랙션을 이미지(915)에 대해 입력할 수 있다.
제1 사용자 인터랙션은 사용자 인터페이스(1700)의 제1 사용자 인터페이스(1710)를 통해 입력될 수 있다. 예컨대, 도시된 Input에서 Point 버튼이 선택되면 도 12에서 도시된 바와 같이 포인트에 기반한 제1 사용자 인터랙션의 입력을 위한 모드가 실행될 수 있다. 한편, 도시된 Input에서 Scribble 버튼이 선택되면 도 13에서 도시된 바와 같이 스크리블에 기반한 제1 사용자 인터랙션의 입력을 위한 모드가 실행될 수 있다. Pos/neg 버튼은 포지티브 사용자 인터랙션의 입력을 위한 모드와, 네거티브 사용자 인터랙션의 입력을 위한 모드 간의 전환을 위한 UI일 수 있다. Undo는 뒤로가기 버튼(예컨대, 최근 입력된 제1 사용자 인터랙션의 취소 버튼), Reset은 입력된 제1 사용자 인터랙션을 초기화하기 위한 버튼일 수 있다. Done은 제1 사용자 인터랙션의 입력을 완료하는 버튼일 수 있다. 이에 따라, 트라이맵(1925)의 생성이 요청될 수 있다. 제1 마스크(1010)는 화면(1800)에서 따로 표시되지 않을 수 있다.
단계(830)에서, 사용자 단말은 트라이맵(925)을 생성하기 위한 요청이 수신됨에 따라, 화면(1800)의 제2 영역(1820)에서 트라이맵(925)을 표시할 수 있다.
트라이맵(925)의 편집과 트라이맵(925)에 기반한 제2 마스크(935)의 생성은 사용자 인터페이스(1700)의 제2 사용자 인터페이스(1720)을 통해 이루어질 수 있다. 예컨대, 도시된 Generate trimap은 단계(820) 후 트라이맵(925)을 생성하기 위한 버튼일 수 있다. Fg/bg/uk는 트라이맵(925)을 수정하기 위한 UI로서, 전경(20)에 해당하는 영역/배경(30)에 해당하는 영역/모호 영역(1430)을 선택하기 위한 제2 사용자 인터랙션의 입력 모드 간의 전환을 위한 UI일 수 있다. Do matting은 트라이맵(925)에 대한 매팅을 통해 제2 마스크(935)를 생성하기 위한 버튼일 수 있다. Done은 최종적인 제2 마스크(935)의 생성을 완료하기 위한 버튼일 수 있다.
예컨대, 단계(840)에서, 사용자 단말은 제2 영역(1820)에서 트라이맵(925)에 대해 트라이맵(925)을 수정하기 위한 제2 사용자 인터랙션이 입력됨에 따라, 제2 영역(1820)에서 수정된 트라이맵(925)을 표시할 수 있다. 제2 사용자 인터랙션은 브러시 입력일 수 있고, 이러한 브러시 입력에 따라 트라이맵(925)이 수정되면 제2 영역(1820)은 실시간으로 수정된 트라이맵(925)을 표시할 수 있다. 따라서, 사용자는 제2 영역(1820)을 통해 트라이맵(925)을 직관적으로 수정할 수 있고 업데이트된 트라이맵(925)을 실시간으로 확인할 수 있다.
단계(850)에서, 사용자 단말은 수정된 트라이맵(925)을 반영하여, 제1 영역(1810)에서 이미지(915)의 전경(20)과 배경(30)을 이미지(915) 상에서 구분하여 표시할 수 있다. 말하자면, 트라이맵(925)의 수정에 따라 업데이트된 트라이맵(925)을 반영하여 이미지(915)에서의 전경(20)과 배경(30)의 구분 역시 업데이트될 수 있다.
제2 사용자 인터페이스(1720)에서 Do matting이 선택되면 트라이맵(925)에 기반한 제2 마스크(935)가 생성될 수 있다. 제2 마스크(935)는 별도의 창에서 표시되거나, 또는, 화면(1800)의 도시되지 않은 제3 영역에서 표시될 수도 있다. 사용자는 트라이맵(925)을 수정할 때마다 Do matting을 선택하여 제2 마스크(935)를 업데이트할 수 있다. 따라서, 보다 정교한 제2 마스크(935)가 생성될 수 있다.
사용자 인터페이스(1700)의 제3 사용자 인터페이스(1730)는 제2 마스크(935)로부터 벡터 이미지 마스크(945)를 생성하기 위한 것일 수 있다. 예컨대, Optimize 버튼이 선택되면 제2 마스크(935)에 기반한 벡터 이미지 마스크(945)가 생성될 수 있고, Save 버튼이 선택되면 생성된 벡터 이미지 마스크(945)가 사용자 단말에 저장될 수 있다. 벡터 이미지 마스크(945)는 별도의 창에서 표시되거나, 또는, 화면(1800)의 도시되지 않은 상기 제3 영역 또는 제4 영역에서 표시될 수도 있다.
도 17의 사용자 인터페이스(1700)는 화면(1800)의 일 영역에서 표시될 수 있다.
이상 도 1 내지 도 7 및 도 9 내지 도 16을 참조하여 전술된 기술적 특징에 대한 설명은, 도 8, 도 17 및 도 18에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에서 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 이때, 매체는 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수개 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 애플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (16)

  1. 컴퓨터 시스템에 의해 수행되는, 이미지의 전경과 배경을 분리하는 방법에 있어서,
    상기 이미지에 대한 제1 사용자 인터랙션에 기반하여 상기 이미지의 전경과 배경을 구분함으로써, 상기 이미지의 전경과 배경을 1차적으로 구분하는 제1 마스크를 생성하는 단계;
    생성된 상기 제1 마스크에 기반하여, 상기 이미지에 대응하는 트라이맵(trimap)을 생성하는 단계;
    생성된 상기 트라이맵에 기반하여, 상기 이미지의 전경과 배경을 구분하는 제2 마스크를 생성하는 단계; 및
    상기 제2 마스크에 기반하여 벡터 이미지 마스크를 생성하는 단계
    를 포함하는, 이미지의 전경과 배경을 분리하는 방법.
  2. 제1항에 있어서,
    상기 제1 마스크를 생성하는 단계는,
    상기 제1 사용자 인터랙션으로서 상기 이미지 상에서, 상기 이미지에서 전경을 선택하기 위한 포지티브 사용자 인터랙션을 수신하는 단계;
    상기 포지티브 사용자 인터랙션이 수신된 위치에 기반하여 상기 이미지의 전경을 결정하는 단계;
    상기 제1 사용자 인터랙션으로서 상기 이미지 상에서, 상기 이미지에서 배경을 선택하기 위한 네거티브 사용자 인터랙션을 수신하는 단계; 및
    상기 네거티브 사용자 인터랙션이 수신된 위치에 기반하여 상기 이미지의 배경을 결정하는 단계
    를 포함하는, 이미지의 전경과 배경을 분리하는 방법.
  3. 제2항에 있어서,
    상기 포지티브 사용자 인터랙션 및 상기 네거티브 사용자 인터랙션은, 서로 구분되는 사용자 인터랙션으로서,
    상기 이미지에 대한 클릭, 터치 또는 탭 인터랙션이거나; 혹은,
    상기 이미지에 대한 스크리블(scribble) 인터랙션인, 이미지의 전경과 배경을 분리하는 방법.
  4. 제2항에 있어서,
    상기 제1 마스크는 상기 포지티브 사용자 인터랙션이 수신된 위치에 기반하여 상기 이미지의 전경을 결정하고, 상기 네거티브 사용자 인터랙션이 수신된 위치에 기반하여 상기 이미지의 배경을 결정하도록 미리 훈련된 모델을 사용하여 생성되고,
    상기 제1 마스크는 상기 이미지의 전경과 배경을 구분하는 바이너리 마스크인, 이미지의 전경과 배경을 분리하는 방법.
  5. 제1항에 있어서,
    상기 트라이맵을 생성하는 단계는,
    사용자 인터랙션 없이, 상기 제1 마스크를 자동으로 상기 트라이맵으로 변환하는 단계
    를 포함하는,
    고, 이미지의 전경과 배경을 분리하는 방법.
  6. 제5항에 있어서,
    상기 트라이맵으로 변환하는 단계는,
    상기 제1 마스크로부터 상기 이미지의 전경과 배경의 경계(contour)를 추출하는 단계;
    상기 경계를 확장하여 모호(unknown) 영역을 획득하는 단계; 및
    상기 이미지의 전경에 해당하는 영역 및 배경에 해당하는 영역과, 상기 모호 영역을 구분하여 나타내는 상기 트라이맵을 생성하는 단계
    를 포함하는, 이미지의 전경과 배경을 분리하는 방법.
  7. 제5항에 있어서,
    상기 트라이맵을 생성하는 단계는,
    상기 제1 마스크로부터 자동으로 변환된 상기 트라이맵에 대해 상기 트라이맵을 수정하기 위한 제2 사용자 인터랙션을 수신하는 단계; 및
    수신된 상기 제2 사용자 인터랙션에 기반하여 상기 트라이맵으로부터 최종 트라이맵을 생성하는 단계
    를 포함하고,
    상기 제2 마스크를 생성하는 단계는, 생성된 상기 최종 트라이맵에 기반하여, 상기 제2 마스크를 생성하는, 이미지의 전경과 배경을 분리하는 방법.
  8. 제1항에 있어서,
    상기 제2 마스크를 생성하는 단계는, 상기 이미지와 상기 트라이맵에 기반하여 상기 이미지의 전경과 배경을 구분하도록 미리 훈련된 모델을 사용하여 상기 제2 마스크를 생성하고,
    상기 제2 마스크는 상기 이미지의 전경과 배경의 경계 부근에서 상기 이미지의 전경에 해당하는 픽셀값과 상기 이미지의 배경에 해당하는 픽셀값의 사이에 값을 적어도 하나 갖도록 구성되는, 이미지의 전경과 배경을 분리하는 방법.
  9. 제8항에 있어서,
    상기 제2 마스크를 생성하는 단계는, 상기 미리 훈련된 모델이, 상기 트라이맵의 상기 전경과 배경의 경계(contour)를 포함하는 모호(unknown) 영역이 상기 이미지의 전경인지 또는 상기 이미지의 배경인지 여부를 판별함으로써, 상기 제2 마스크를 생성하는, 이미지의 전경과 배경을 분리하는 방법.
  10. 제1항에 있어서,
    상기 제2 마스크는 레스터(raster) 이미지 마스크이고,
    상기 벡터 이미지 마스크는 PSD 포맷 또는 SVG 포맷인, 이미지의 전경과 배경을 분리하는 방법.
  11. 제1항에 있어서,
    상기 벡터 이미지 마스크를 생성하는 단계는,
    상기 제2 마스크를 이진화(binarize)하여 이진화된 마스크를 생성하는 단계; 및
    이진화된 마스크에 대해 이미지 트레이싱을 수행하여 벡터 경로(vector path)들을 포함하는 소정의 포맷의 벡터 이미지 마스크로 변환하는 단계
    를 포함하는, 이미지의 전경과 배경을 분리하는 방법.
  12. 제1항에 있어서,
    상기 이미지를 로드하는 단계;
    로드된 상기 이미지를 사용자 단말의 화면의 제1 영역에서 표시하는 단계;
    상기 제1 영역에서 상기 이미지에 대해 상기 제1 사용자 인터랙션이 입력됨에 따라, 상기 이미지 상에서 상기 이미지의 전경과 배경을 구분하여 표시하는 단계; 및
    상기 트라이맵을 생성하기 위한 요청이 수신됨에 따라, 상기 화면의 제2 영역에서 상기 트라이맵을 표시하는 단계
    를 더 포함하는, 이미지의 전경과 배경을 분리하는 방법.
  13. 제12항에 있어서,
    상기 트라이맵을 표시하는 단계는,
    상기 제2 영역에서 상기 트라이맵에 대해 상기 트라이맵을 수정하기 위한 제2 사용자 인터랙션이 입력됨에 따라, 상기 제2 영역에서 수정된 상기 트라이맵을 표시하는 단계
    를 포함하고,
    수정된 상기 트라이맵을 반영하여, 상기 제1 영역에서 상기 이미지의 전경과 배경을 상기 이미지 상에서 구분하여 표시하는 단계
    를 더 포함하는, 이미지의 전경과 배경을 분리하는 방법.
  14. 제1항에 있어서,
    상기 벡터 이미지 마스크는, 상기 이미지로부터 분리된 전경을 포함하는 이미지이고,
    상기 전경의 경계는 복수의 포인트들로 구성된 벡터 경로들을 포함하고,
    상기 포인트들의 각각은 사용자에 의해 편집 가능하게 구성되는, 이미지의 전경과 배경을 분리하는 방법.
  15. 제1항의 방법을 상기 컴퓨터 시스템에서 실행시키기 위한 컴퓨터 판독 가능 기록매체에 기록된 프로그램.
  16. 이미지의 전경과 배경을 분리하는 컴퓨터 시스템에 있어서,
    상기 컴퓨터 시스템에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서
    를 포함하고,
    상기 적어도 하나의 프로세서는,
    상기 이미지에 대한 제1 사용자 인터랙션에 기반하여 상기 이미지의 전경과 배경을 구분함으로써, 상기 이미지의 전경과 배경을 1차적으로 구분하는 제1 마스크를 생성하고,
    생성된 상기 제1 마스크에 기반하여, 상기 이미지에 대응하는 트라이맵(trimap)을 생성하고,
    생성된 상기 트라이맵에 기반하여, 상기 이미지의 전경과 배경을 구분하는 제2 마스크를 생성하고,
    상기 제2 마스크에 기반하여 벡터 이미지 마스크를 생성하는, 컴퓨터 시스템.
KR1020220069095A 2022-06-07 2022-06-07 이미지의 전경 및 배경을 분리하는 방법 및 장치 KR20230168523A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220069095A KR20230168523A (ko) 2022-06-07 2022-06-07 이미지의 전경 및 배경을 분리하는 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220069095A KR20230168523A (ko) 2022-06-07 2022-06-07 이미지의 전경 및 배경을 분리하는 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20230168523A true KR20230168523A (ko) 2023-12-14

Family

ID=89166968

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220069095A KR20230168523A (ko) 2022-06-07 2022-06-07 이미지의 전경 및 배경을 분리하는 방법 및 장치

Country Status (1)

Country Link
KR (1) KR20230168523A (ko)

Similar Documents

Publication Publication Date Title
US10657652B2 (en) Image matting using deep learning
US10360473B2 (en) User interface creation from screenshots
KR101644731B1 (ko) 이미지 처리 장치, 이미지 처리 방법, 및 컴퓨터 판독가능한 기록 매체
US9244607B2 (en) System and method for image processing using multi-touch gestures
US8406482B1 (en) System and method for automatic skin tone detection in images
AU2019202799A1 (en) A method to automatically predict handle locations for skinningtransformations using deep learning
JP5340441B2 (ja) 編集可能な文書生成のための形状のパラメータ化
CN113379775A (zh) 利用彩色化神经网络基于交互式颜色边缘生成彩色化图像
JP6102122B2 (ja) 画像処理装置および方法、並びにプログラム
US11216998B2 (en) Jointly editing related objects in a digital image
US10536164B2 (en) Adapting image vectorization operations using machine learning
US10846889B2 (en) Color handle generation for digital image color gradients using machine learning
CN117058271A (zh) 用于生成商品主图背景的方法及计算设备
CN106447756B (zh) 用于生成用户定制的计算机生成动画的方法和系统
JP2022168167A (ja) 画像処理方法、装置、電子機器及び記憶媒体
US20220028149A1 (en) System and method for automatically generating an avatar with pronounced features
KR20230168523A (ko) 이미지의 전경 및 배경을 분리하는 방법 및 장치
CN112150347A (zh) 从有限的修改后图像集合中学习的图像修改样式
KR20140099183A (ko) 이미지 처리 장치, 이미지 처리 방법, 컴퓨터 판독가능 기록매체 및 화상형성장치
US11301125B2 (en) Vector object interaction
CN113506354A (zh) 一种文字渲染方法、装置及电子设备
US20230045077A1 (en) Theme Icon Generation Method and Apparatus, and Computer Device
US20230244368A1 (en) Generating and Applying Editing Presets
US20230005195A1 (en) Free Form Radius Editing
US20240095982A1 (en) Automated Digital Tool Identification from a Rasterized Image