KR102632640B1 - 원본 콘텐츠와 타겟 콘텐츠를 픽셀 단위로 매칭하는 방법 및 장치 - Google Patents
원본 콘텐츠와 타겟 콘텐츠를 픽셀 단위로 매칭하는 방법 및 장치 Download PDFInfo
- Publication number
- KR102632640B1 KR102632640B1 KR1020210123431A KR20210123431A KR102632640B1 KR 102632640 B1 KR102632640 B1 KR 102632640B1 KR 1020210123431 A KR1020210123431 A KR 1020210123431A KR 20210123431 A KR20210123431 A KR 20210123431A KR 102632640 B1 KR102632640 B1 KR 102632640B1
- Authority
- KR
- South Korea
- Prior art keywords
- crop
- cuts
- cut
- crop cut
- features
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 93
- 238000007781 pre-processing Methods 0.000 claims abstract description 30
- 239000011159 matrix material Substances 0.000 claims description 117
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 claims description 72
- 238000006243 chemical reaction Methods 0.000 claims description 15
- 238000013528 artificial neural network Methods 0.000 claims description 13
- 230000009466 transformation Effects 0.000 claims description 10
- 238000004422 calculation algorithm Methods 0.000 claims description 6
- 238000005070 sampling Methods 0.000 claims description 5
- 238000013519 translation Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 description 32
- 230000008569 process Effects 0.000 description 15
- 238000004891 communication Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- HDAJUGGARUFROU-JSUDGWJLSA-L MoO2-molybdopterin cofactor Chemical compound O([C@H]1NC=2N=C(NC(=O)C=2N[C@H]11)N)[C@H](COP(O)(O)=O)C2=C1S[Mo](=O)(=O)S2 HDAJUGGARUFROU-JSUDGWJLSA-L 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 241001465754 Metazoa Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000002203 pretreatment Methods 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/75—Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
- G06V10/751—Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/30—Determination of transform parameters for the alignment of images, i.e. image registration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/835—Generation of protective data, e.g. certificates
- H04N21/8352—Generation of protective data, e.g. certificates involving content or source identification data, e.g. Unique Material Identifier [UMID]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20112—Image segmentation details
- G06T2207/20132—Image cropping
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Databases & Information Systems (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Image Processing (AREA)
Abstract
복수의 컷들을 포함하는 원본 콘텐츠와 타겟 콘텐츠를 매칭하는 방법으로서, 전처리를 통해 원본 콘텐츠와 타겟 콘텐츠의 컷들에 대응하는 크롭 컷들을 생성하고, 원본 콘텐츠의 크롭 컷과 가장 유사한 타겟 콘텐츠의 크롭 컷을 페어로서 결정하고, 페어에 포함된 크롭 컷들을 픽셀 단위로 매칭시켜 원본 콘텐츠와 타겟 콘텐츠를 매칭하는 방법이 제공된다.
Description
본 개시는 원본 콘텐츠와 타겟 콘텐츠를 매칭하는 방법 및 장치에 관한 것으로, 보다 자세하게는, 복수의 컷들을 포함하는 원본 콘텐츠에 대해 원본 콘텐츠의 복제 콘텐츠에 해당하는 타겟 콘텐츠를 픽셀 단위로 매칭하는 방법 및 장치와 관련된다.
최근 만화 및 카툰과 같은 콘텐츠를 온라인으로 제공하는 소위 웹툰 콘텐츠 제공 서비스에 대한 관심이 높아지고 있다. 이러한, 웹툰 콘텐츠는 인물, 동물, 사물 등의 모습을 캐릭터로서 표현하여 나타내고, 지문이나 대사를 통해 유머나 풍자 또는 일정한 줄거리를 담음으로써 독자들에게 읽을거리를 제공한다.
이러한 웹툰 콘텐츠는 독자가 해당 웹툰 콘텐츠를 스크롤링하는 것에 의해 독자에게 읽힐 수 있다. 웹툰 콘텐츠는 복수의 컷들을 포함하며, 독자는 스크롤링을 통해 복수의 컷들을 순차적으로 확인함으로써 웹툰 콘텐츠를 열람할 수 있다.
웹툰 콘텐츠는 디지털화된 콘텐츠로서 예컨대, 이미지와 같은 형태로 제공되며, 이러한 이미지와 같은 형태의 웹툰 콘텐츠는 2차적인 복제 및 가공이 상대적으로 쉽다. 웹툰 콘텐츠에 대한 불법적인 복제 및 가공을 방지하기 위해, 웹툰 콘텐츠 내에는 소정의 식별 정보가 삽입될 수 있고, 불법적인 복제 및 가공된 웹툰 콘텐츠로부터 이러한 식별 정보를 추출함으로써 불법적인 복제 및 가공을 수행한 주체를 탐지해 낼 수 있다.
불법적인 복제 및 가공된 웹툰 콘텐츠로부터 식별 정보를 추출하거나, 불법적인 복제 및 가공된 웹툰 콘텐츠의 가공 이력(예컨대, 이미지 프로세싱 히스토리)을 분석하기 위해서는, 원본 웹툰 콘텐츠와 복제 및 가공된 웹툰 콘텐츠 간의 세밀한 매칭이 먼저 수행되어야 한다.
한편, 한국공개특허 제10-2011-0123393호(공개일 2011년 11월 15일)에는 온라인 상의 직거래를 통해 모바일 디지털 콘텐츠 형태의 만화를 제공하는 기술이 개시되어 있다.
상기에서 설명된 정보는 단지 이해를 돕기 위한 것이며, 종래 기술의 일부를 형성하지 않는 내용을 포함할 수 있으며, 종래 기술이 통상의 기술자에게 제시할 수 있는 것을 포함하지 않을 수 있다.
일 실시예는, 전처리를 통해 원본 콘텐츠와 타겟 콘텐츠의 컷들에 대응하는 크롭 컷들을 생성하고, 원본 콘텐츠의 크롭 컷과 가장 유사한 타겟 콘텐츠의 크롭 컷을 페어로서 결정하고, 페어에 포함된 크롭 컷들을 픽셀 단위로 매칭시켜 원본 콘텐츠와 타겟 콘텐츠를 매칭하는 방법을 제공할 수 있다.
일 실시예는, 원본 콘텐츠의 각 컷과 가장 유사한 타겟 콘텐츠의 컷을 결정하고, 유사 컷들 간에 1차적인 매칭(coarse matching)을 수행하고, 유사 컷들에 대해 보다 세밀한 2차적인 매칭(fine-grained matching)을 수행함으로써 원본 콘텐츠와 타켓 콘텐츠를 픽셀 단위로 매칭하는 방법을 제공할 수 있다.
일 측면에 있어서, 컴퓨터 시스템에 의해 수행되는, 복수의 제1 컷들을 포함하는 원본 콘텐츠와 복수의 제2 컷들을 포함하는 타겟 콘텐츠를 매칭하는 방법에 있어서, 상기 원본 콘텐츠와 상기 타겟 콘텐츠를 전처리함으로써, 상기 제1 컷들에 대응하는 제1 크롭 컷들과 상기 제2 컷들에 대응하는 제2 크롭 컷들을 생성하는 단계, 상기 제1 크롭 컷들의 각 제1 크롭 컷과, 상기 제2 크롭 컷들 중에서 상기 각 제1 크롭 컷과 가장 유사한 제2 크롭 컷과의 페어를 결정하는 단계 및 상기 페어에 포함된 제1 크롭 컷과 제2 크롭 컷을 픽셀 단위로 매칭시키는 단계를 포함하는, 원본 콘텐츠와 타겟 콘텐츠를 매칭하는 방법이 제공된다.
상기 원본 콘텐츠와 타겟 콘텐츠를 매칭하는 방법은, 상기 제1 크롭 컷들과 상기 제2 크롭 컷들의 픽셀 단위의 매칭 결과에 기반하여, 상기 타겟 콘텐츠로부터 상기 타겟 콘텐츠를 생성한 사용자에 대한 식별 정보를 추출하는 단계를 더 포함할 수 있다.
상기 제1 크롭 컷들은, 상기 원본 콘텐츠를 소정의 제1 크기 단위로 크롭한 것들로서, 상기 원본 콘텐츠를 소정의 제1 중복률을 갖도록 크롭한 것들을 포함하고, 상기 제2 크롭 컷들은, 상기 타겟 콘텐츠를 소정의 제2 크기 단위로 크롭한 것들로서, 상기 타겟 콘텐츠를 소정의 제2 중복률을 갖도록 크롭한 것들을 포함할 수 있다.
상기 제2 크기 단위는 상기 제1 크기 단위보다 더 크고, 상기 제1 크롭 컷들의 수는 상기 제2 크롭 컷들의 수와 동일할 수 있다.
상기 페어를 결정하는 단계는, 상기 각 제1 크롭 컷의 피쳐들을 추출하는 단계, 상기 제2 크롭 컷들의 각 제2 크롭 컷의 피쳐들을 추출하는 단계 및 상기 각 제1 크롭 컷의 피쳐들과 상기 각 제2 크롭 컷의 피쳐들 간에 결정된 코릴레이션(correlation)에 기반하여, 제1 크롭 컷과, 해당 제1 크롭 컷에 대해 위치 간의 매칭을 나타내는 키 포인트의 수가 가장 많은 제2 크롭 컷을 페어로서 결정하는 단계를 포함할 수 있다.
상기 키 포인트는 상기 페어를 이루는 제1 크롭 컷과 제2 크롭 컷 간에 대칭적으로 매칭되는 위치를 나타낼 수 있다.
상기 페어로서 결정하는 단계는, 제1 크롭 컷의 피쳐들과 제2 크롭 컷의 피쳐들 간의 코릴레이션 맵을 생성하는 단계 - 상기 코릴레이션 맵은 코릴레이션 매트릭스를 포함하고, 상기 코릴레이션 매트릭스의 행 및 열은 제1 크롭 컷 내의 위치 및 제2 크롭 컷 내의 위치를 각각 나타내고, 상기 코릴레이션 매트릭스의 각 요소는 피쳐들 간의 코릴레이션 값을 나타냄 -, 상기 코릴레이션 매트릭스의 각 행별로 코릴레이션 값이 상위인 적어도 하나의 제1 값 및 상기 제1 값의 상기 코릴레이션 매트릭스에서의 제1 위치와, 상기 코릴레이션 매트릭스의 각 열별로 코릴레이션 값이 상위인 적어도 하나의 제2 값 및 상기 제2 값의 상기 코릴레이션 매트릭스에서의 위치를 결정하는 단계, 상기 코릴레이션 매트릭스와 동일한 크기의 초기화된 행렬의 상기 제1 위치에 대응하는 위치에 상기 제1 값을 할당하여 제1 행렬을 생성하고, 상기 코릴레이션 매트릭스와 동일한 크기의 초기화된 제2 행렬의 상기 제2 위치에 위치에 대응하는 위치에 상기 제2 값을 할당하여 제2 행렬을 생성하는 단계, 상기 제1 행렬 및 상기 제2 행렬을 요소별 곱(element-wise product)하여 제3 행렬을 생성하는 단계 및 상기 제3 행렬에서 0이 아닌 요소를 키 포인트로서 결정하는 단계를 포함할 수 있다.
상기 페어로서 결정하는 단계는, 상기 제1 크롭 컷들 중 제1 순서의 제1 크롭 컷의 피쳐들과 상기 제2 크롭컷들 중 제2 순서의 제2 크롭 컷의 피쳐들과 매칭되는 것으로 결정된 때, 상기 제1 순서의 다음의 순서인 제1 크롭 컷의 피쳐들과의 코릴레이션을 결정하기 위한 서치 스페이스를 상기 제2 크롭 컷들 중에서 소정의 수의 제2 크롭 컷들의 피쳐들로 결정하는 단계 및 상기 다음의 순서인 제1 크롭 컷의 피쳐들과 상기 서치 스페이스에 포함된 제2 크롭 컷들의 피쳐들 간에 결정된 코릴레이션에 기반하여, 상기 다음의 순서인 제1 크롭 컷과, 상기 서치 스페이스에 포함된 피쳐들과 연관된 제2 크롭 컷들 중에서 상기 키 포인트의 수가 가장 많은 제2 크롭 컷을 페어로서 결정하는 단계를 포함하고, 상기 서치 스페이스로서 결정되는 소정의 수의 제2 크롭 컷들의 피쳐들은 상기 제2 순서 전후의 소정의 수의 제2 크롭 컷들의 피쳐들을 포함할 수 있다.
상기 페어로서 결정하는 단계는, 상기 제1 컷들의 순서에 따라, 상기 각 제1 크롭 컷에 대해 순차적으로 상기 각 제1 크롭 컷과 페어가 되는 제2 크롭 컷을 결정하는 단계를 포함할 수 있다.
상기 픽셀 단위로 매칭시키는 단계는, 상기 키 포인트에 기반하여 상기 페어에 포함된 제1 크롭 컷과 제2 크롭 컷에 대한 어파인 변환(affine transform)을 위한 어파인 매트릭스를 추정하는 단계를 포함할 수 있다.
상기 어파인 매트릭스는 상기 페어에 포함된 제1 크롭 컷의 제2 크롭 컷으로의 스케일 변환 및 이동(translation) 변환을 고려하되, 상기 페어에 포함된 제1 크롭 컷의 제2 크롭 컷으로의 회전 변환은 고려하지 않도록 구성될 수 있다.
추출된 상기 각 제1 크롭 컷의 피쳐들은 상기 원본 콘텐츠와 연관된 하이 레벨(high-level) 피쳐들이고, 추출된 상기 각 제2 크롭 컷의 피쳐들은 상기 타겟 콘텐츠와 연관된 하이 레벨 피쳐들일 수 있다.
상기 픽셀 단위로 매칭시키는 단계는, 상기 페어에 포함된 제1 크롭 컷과 제2 크롭 컷을 1차적으로 매칭시키는 단계 및 상기 제1 크롭 컷과, 상기 제1 크롭 컷과의 1차적인 매칭에 따라 매칭된 크롭 컷에 기반하여, 상기 페어에 포함된 제1 크롭 컷과 제2 크롭 컷을 2차적으로 매칭시키는 단계를 포함하고, 상기 2차적으로 매칭시키는 단계는, 상기 페어에 포함된 제1 크롭 컷의 로우 레벨(low-level) 피쳐들을 추출하는 단계, 매칭된 크롭 컷의 로우 레벨 피쳐들을 추출하는 단계, 상기 페어에 포함된 제1 크롭 컷의 로우 레벨 피쳐들과 상기 매칭된 크롭 컷의 로우 레벨 피쳐들 간에 결정된 코릴레이션(correlation)에 기반하여, 상기 페어에 포함된 제1 크롭 컷과 상기 매칭된 크롭 컷의 위치 간의 매칭을 나타내는 키 포인트를 결정하는 단계 및 상기 페어에 포함된 제1 크롭 컷 및 상기 매칭된 제2 크롭 컷에 대해 결정된 키 포인트에 기반하여, 상기 페어에 포함된 제1 크롭 컷과 상기 매칭된 크롭 컷에 대한 어파인 변환을 위한 어파인 매트릭스를 추정하는 단계를 포함할 수 있다.
상기 어파인 매트릭스를 추정하는 단계는, 상기 페어에 포함된 제1 크롭 컷 및 상기 매칭된 크롭 컷에 대해 결정된 키 포인트를 샘플링하는 단계 및 상기 샘플링된 키 포인트에 기반하여 상기 어파인 매트릭스를 추정하는 단계를 포함하고, 상기 어파인 매트릭스가 수렴할 때까지, 상기 키 포인트를 샘플링하는 단계 및 상기 샘플링된 키 포인트에 기반하여, 상기 어파인 매트릭스를 추정하는 단계를 반복할 수 있다.
상기 어파인 매트릭스는 RANSAC 알고리즘을 사용하여 추정될 수 있다.
상기 피쳐들은 인공신경망 기반의 모델을 사용하여 추출되고, 상기 하이 레벨 피쳐들과 상기 로우 레벨 피쳐들은 상기 인공신경망 기반의 모델에 포함된 서로 다른 레이어의 출력으로부터 각각 추출되고, 상기 하이 레벨 피쳐들은 상기 로우 레벨 피쳐들에 비해, 상기 인공신경망 기반의 모델의 출력에 더 가까운 레이어의 출력으로부터 추출된 것일 수 있다.
상기 원본 콘텐츠는 웹툰 콘텐츠이고, 상기 타겟 콘텐츠는 상기 웹툰 콘텐츠를 복제하여 가공된 콘텐츠일 수 있다.
다른 일 측면에 있어서, 복수의 제1 컷들을 포함하는 원본 콘텐츠와 복수의 제2 컷들을 포함하는 타겟 콘텐츠를 매칭하는 컴퓨터 시스템에 있어서, 상기 컴퓨터 시스템에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 상기 원본 콘텐츠와 상기 타겟 콘텐츠를 전처리함으로써, 상기 제1 컷들에 대응하는 제1 크롭 컷들과 상기 제2 컷들에 대응하는 제2 크롭 컷들을 생성하고, 상기 제1 크롭 컷들의 각 제1 크롭 컷과, 상기 제2 크롭 컷들 중에서 상기 각 제1 크롭 컷과 가장 유사한 제2 크롭 컷과의 페어를 결정하고, 상기 페어에 포함된 제1 크롭 컷과 제2 크롭 컷을 픽셀 단위로 매칭시키는, 컴퓨터 시스템이 제공된다.
웹툰 콘텐츠와 같이, 복수의 컷들을 포함하는 원본 콘텐츠에 대해 원본 콘텐츠를 복제 및 가공한 타겟 콘텐츠를 픽셀 단위로 세밀하게 매칭시킬 수 있다.
원본 콘텐츠를 복제 및 가공한 타겟 콘텐츠를 픽셀 단위로 매칭함으로써, 타겟 콘텐츠로부터 (워터마크 정보와 같은) 복제 및 가공을 수행한 주체를 식별하기 위한 식별 정보 및/또는 복제 및 가공에 대한 히스토리 정보를 추출할 수 있다.
원본 콘텐츠의 컷들과 타겟 콘텐츠의 컷들로부터 하이 레벨(high-level) 피쳐들을 추출하여 1차적인 매칭(coarse matching)을 수행하고, 1차적인 매칭의 결과와 1차적인 매칭에 따른 유사 컷들에 대해 추출된 로우 레벨(low-level) 피쳐들을 사용하여 보다 세밀한 2차적인 매칭(fine-grained matching)을 수행함으로써, 원본 콘텐츠와 타켓 콘텐츠 간에 정밀한 픽셀 단위의 매칭이 이루어질 수 있다.
도 1은 일 실시예에 따른, 원본 콘텐츠와 타겟 콘텐츠를 매칭하는 방법을 나타낸다.
도 2는 일 실시예에 따른, 원본 콘텐츠와 타겟 콘텐츠를 매칭하는 방법을 수행하는 컴퓨터 시스템을 나타낸다.
도 3은 일 실시예에 따른, 원본 콘텐츠와 타겟 콘텐츠를 매칭하는 방법을 수행하는 컴퓨터 시스템의 프로세서를 나타낸다.
도 4는 일 실시예에 따른, 원본 콘텐츠와 타겟 콘텐츠를 매칭하는 방법을 나타내는 흐름도이다.
도 5는 일 예에 따른, 원본 콘텐츠와 타겟 콘텐츠를 전처리하여 생성된 컷들 중에서 유사한 컷들의 페어를 결정하는 방법을 나타내는 흐름도이다.
도 6은 일 예에 따른, 원본 콘텐츠와 타겟 콘텐츠를 전처리하여 생성된 컷들 중에서 유사한 컷들의 페어를 결정함에 있어서, 기준이 되는 키 포인트를 결정하는 방법을 나타내는 흐름도이다.
도 7은 일 예에 따른, 서치 스페이스를 사용하여 피쳐들 간의 코릴레이션을 결정하고, 원본 콘텐츠와 타겟 콘텐츠를 전처리하여 생성된 컷들 중에서 유사한 컷들의 페어를 결정하는 방법을 나타내는 흐름도이다.
도 8은 일 예에 따른, 어파인 매트릭스를 추정하여 원본 콘텐츠와 타겟 콘텐츠를 매칭하는 방법을 나타내는 흐름도이다.
도 9 및 10은 일 예에 따른, 원본 콘텐츠와 타겟 콘텐츠 간의 파인-그레인드(fine-grained) 매칭을 수행하기 위해 어파인 매트릭스를 추정하는 방법을 나타내는 흐름도이다.
도 11은 일 예에 따른, 원본 콘텐츠와 타겟 콘텐츠를 전처리하는 방법을 나타낸다.
도 12는 일 예에 따른, 원본 콘텐츠와 타겟 콘텐츠로부터의 피쳐 추출 방법을 나타낸다.
도 13은 일 예에 따른, 원본 콘텐츠와 타겟 콘텐츠 간의 코스(coarse) 매칭의 결과와 파인-그레인드 매칭의 결과의 비교를 나타낸다.
도 2는 일 실시예에 따른, 원본 콘텐츠와 타겟 콘텐츠를 매칭하는 방법을 수행하는 컴퓨터 시스템을 나타낸다.
도 3은 일 실시예에 따른, 원본 콘텐츠와 타겟 콘텐츠를 매칭하는 방법을 수행하는 컴퓨터 시스템의 프로세서를 나타낸다.
도 4는 일 실시예에 따른, 원본 콘텐츠와 타겟 콘텐츠를 매칭하는 방법을 나타내는 흐름도이다.
도 5는 일 예에 따른, 원본 콘텐츠와 타겟 콘텐츠를 전처리하여 생성된 컷들 중에서 유사한 컷들의 페어를 결정하는 방법을 나타내는 흐름도이다.
도 6은 일 예에 따른, 원본 콘텐츠와 타겟 콘텐츠를 전처리하여 생성된 컷들 중에서 유사한 컷들의 페어를 결정함에 있어서, 기준이 되는 키 포인트를 결정하는 방법을 나타내는 흐름도이다.
도 7은 일 예에 따른, 서치 스페이스를 사용하여 피쳐들 간의 코릴레이션을 결정하고, 원본 콘텐츠와 타겟 콘텐츠를 전처리하여 생성된 컷들 중에서 유사한 컷들의 페어를 결정하는 방법을 나타내는 흐름도이다.
도 8은 일 예에 따른, 어파인 매트릭스를 추정하여 원본 콘텐츠와 타겟 콘텐츠를 매칭하는 방법을 나타내는 흐름도이다.
도 9 및 10은 일 예에 따른, 원본 콘텐츠와 타겟 콘텐츠 간의 파인-그레인드(fine-grained) 매칭을 수행하기 위해 어파인 매트릭스를 추정하는 방법을 나타내는 흐름도이다.
도 11은 일 예에 따른, 원본 콘텐츠와 타겟 콘텐츠를 전처리하는 방법을 나타낸다.
도 12는 일 예에 따른, 원본 콘텐츠와 타겟 콘텐츠로부터의 피쳐 추출 방법을 나타낸다.
도 13은 일 예에 따른, 원본 콘텐츠와 타겟 콘텐츠 간의 코스(coarse) 매칭의 결과와 파인-그레인드 매칭의 결과의 비교를 나타낸다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 일 실시예에 따른, 원본 콘텐츠와 타겟 콘텐츠를 매칭하는 방법을 나타낸다.
도 1을 참조하여, 복수의 컷들을 포함하여 구성되는, 예컨대, 웹툰 콘텐츠와 같은 원본 콘텐츠와 타겟 콘텐츠를 매칭하는 방법에 대해 설명한다.
원본 콘텐츠는 복수의 컷들(이하, 제1 컷들이라고 함)을 포함할 수 있다. 제1 컷들은, 사용자 단말과 같은 단말을 통해 원본 콘텐츠가 열람될 때, 순차적으로 노출됨으로써 의미적 연관성을 가질 수 있다. 원본 콘텐츠의 제1 컷들은 순차적으로 배열될 수 있고, 제1 컷들은 순차적으로 노출될 때 유기적으로 연결되는 스토리를 형성할 수 있다. 원본 콘텐츠를 열람하는 사용자는 이러한 원본 콘텐츠의 스토리를 이해하는 것을 통해, 원본 콘텐츠를 즐길 수 있다.
일례로, 원본 콘텐츠는 웹툰 콘텐츠로서, 유/무선 네트워크를 기반으로 인터넷을 통해 제공되는 디지털 콘텐츠 형태의 만화를 포함할 수 있다. 원본 콘텐츠의 제1 컷들은, 예컨대, 사용자가 사용자 단말의 화면을 스크롤링함에 따라 순차적으로 제공될 수 있다.
원본 콘텐츠는 콘텐츠 제공 서버를 통해 클라이언트(client)인 사용자 단말에 제공되는 것일 수 있다. 콘텐츠 제공 서버는 웹툰 콘텐츠인 원본 콘텐츠를 제공하는 서비스 플랫폼일 수 있다.
타겟 콘텐츠는 원본 콘텐츠를 복제함으로써 생성된 것일 수 있다. 예컨대, 타겟 콘텐츠는 웹툰 콘텐츠인 원본 콘텐츠를 복제하여 가공함으로써 생성된 것일 수 있다. 타겟 콘텐츠는 원본 콘텐츠의 제1 컷들에 대응하는 복수의 컷들(이하, 제2 컷들 또는 불펌 컷들이라고 함)을 포함할 수 있다.
일례로, 타겟 콘텐츠는 원본 콘텐츠를 불법으로 복제한 것일 수 있고, 원본 콘텐츠에 대해 리사이징 및/또는 이미지 처리(이미지 변환/변경 처리, 해상도 변환 처리, 색상 변경 처리 등)가 수행된 것일 수 있다. 말하자면, 타겟 콘텐츠는 게시 또는 배포되는 환경에 맞게 원본 콘텐츠가 리사이징 또는 변환되거나 포함된 언어(말풍선 등에 포함된 대사)가 변역된 것일 수 있다.
실시예에서는, 원본 콘텐츠와 타겟 콘텐츠를 픽셀 단위로 매칭시킴으로써, 타켓 콘텐츠가 포함하고 있는 워터마크 정보가 타겟 콘텐츠로부터 추출되도록 할 수 있다. 이러한 워터마크 정보는 복제 및 가공을 수행한 주체를 식별하기 위한 식별 정보 및/또는 복제 및 가공에 대한 히스토리 정보를 포함할 수 있다. 따라서, 실시예를 통해서는, 타겟 콘텐츠를 생성한 주체를 식별하여 제재할 수 있다.
도시된 예시에서는, 원본 콘텐츠가 포함하는 제1 컷(10)과 타겟 콘텐츠가 포함하는 제2 컷들 간의 매칭에 따라, 제1 컷(10)과 매칭되는(즉, 제1 컷(10)과 가장 유사도/관련도가 높은) 제2 컷(20)을 결정하고, 제1 컷(10)과 컷(30)에 대한 픽셀 단위의 매칭이 수행되는 방법이 도시되었다.
도시된 제1 컷(10)은 원본 콘텐츠가 포함하는 제1 컷이, 소정의 전처리 프로세스에 따라, 전처리된 것일 수 있다. 전술한 제2 컷은 타겟 콘텐츠가 포함하는 제2 컷이 소정의 전처리 프로세스에 따라, 전처리된 것일 수 있다. 컷(20)은 제1 컷(10)과 가장 유사도/관련도가 높은 제2 컷일 수 있다. 전처리 프로세스에 대해서는 후술될 도 3 내지 도 13을 참조하여 더 자세하게 설명한다.
제1 컷(10)에 대해, 타겟 콘텐츠가 포함하는 제2 컷들 중에서 유사도/관련도가 가장 높은 컷(20)이 매칭될 수 있다. 제1 컷(10)과 컷(20)은 유사한 컷들을 이루는 페어로서 구성될 수 있고, 제1 컷(10)과 컷(20)은 픽셀 단위로 매칭될 수 있다. 예컨대, 제1 컷(10) 및 컷(20)에 대한 어파인(affine) 매트릭스를 추정하여 제1 컷(10) 및 컷(20)을 매칭할 수 있고, 이러한 매칭의 결과가 되는 컷은 컷(30)으로서 표현될 수 있다. 매칭의 결과는 도시된 잔차(40)로서 표현될 수 있다. 잔차(40)에서 회색 부분은 매칭이 잘 된 부분을 나타낼 수 있고, 흰색 및 검은색 부분은 매칭이 잘 되지 않은 부분을 나타낼 수 있다. 매칭이 완벽하게 되면, 잔차(40)에는 회색 부분만이 표시될 수 있다.
한편, 컷(30)은 제1 컷(10)과 컷(20) 간의 1차적인 매칭(예컨대, 코스 매칭(coarse matching))의 결과로서 결정되는 컷일 수 있다. 제1 컷(10)과 컷(30)은 보다 세밀한 매칭을 위해 2차적으로 매칭(예컨대, 파인-그레인드 매칭(fine-grained matching))될 수 있다. 이와 같은 2차적인 매칭에 따라 원본 콘텐츠와 타겟 콘텐츠는 픽셀 단위로 세밀하게 매칭될 수 있다.
원본 콘텐츠와 타겟 콘텐츠가 포함하는 컷들에 대한 전처리와, 유사한 컷들의 페어 결정, 유사한 컷들 간의 픽셀 단위의 매칭은 후술될 컴퓨터 시스템에 의해 수행될 수 있다.
보다 상세한 원본 콘텐츠와 타겟 콘텐츠를 매칭하는 방법에 대해서는 도 2 내지 도 13을 참조하여 후술한다.
도 2는 일 실시예에 따른, 원본 콘텐츠와 타겟 콘텐츠를 매칭하는 방법을 수행하는 컴퓨터 시스템을 나타낸다.
도 3은 일 실시예에 따른, 원본 콘텐츠와 타겟 콘텐츠를 매칭하는 방법을 수행하는 컴퓨터 시스템의 프로세서를 나타낸다.
컴퓨터 시스템(100)은 전술한 원본 콘텐츠와 타겟 콘텐츠 간의 픽셀 단위의 매칭을 수행하는 장치일 수 있다. 컴퓨터 시스템(100)은 원본 콘텐츠와 타겟 콘텐츠를 전처리하고, 전처리된 원본 콘텐츠의 컷과 가장 유사한 타겟 콘텐츠의 컷을 페어로서 결정하고, 결정된 페어에 포함된 컷들 간의 픽셀 단위의 매칭을 수행할 수 있다.
컴퓨터 시스템(100)은 적어도 하나의 컴퓨팅 장치를 포함하도록 구성될 수 있고, 컴퓨팅 장치는 원본 콘텐츠를 관리하는 사용자나 관리자의 단말 또는 서버로 구현될 수 있다.
컴퓨터 시스템(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)는 도 3에서 도시된 것과 같은 구성들(예컨대, 310 내지 330)을 포함할 수 있다.
도 3에서 도시된 것처럼, 프로세서(120)는 전처리부(110), 제1 매칭부(320) 및 제2 매칭부(330)를 포함할 수 있다. 이러한 구성들(310 내지 310)은 전술한 프로세서(120)의 일부이거나 프로세서(120)에 의해 구현되는 기능일 수 있다. 프로세서(120)가 포함하는 이러한 구성들(310 내지 310)은, 운영체제의 코드나 적어도 하나의 컴퓨터 프로그램의 코드에 따른 제어 명령(instruction)에 따라 프로세서(120)가 수행하는 서로 다른 기능들(different functions)의 표현일 수 있다.
전처리부(310)는 제1 컷들을 포함하는 원본 콘텐츠와 제1 컷들을 포함하는 타겟 콘텐츠에 대한 전처리 프로세스를 수행하는 구성일 수 있다. 예컨대, 전처리부(310)는 원본 콘텐츠(또는, 제1 컷들) 및 타겟 콘텐츠(또는, 제2 컷들)을 크롭/리사이징함으로써, 원본 콘텐츠(또는, 제1 컷들)로부터 제1 크롭 컷들을 생성하고, 타겟 콘텐츠(또는, 제2 컷들)로부터 제2 크롭 컷들을 생성할 수 있다.
제1 매칭부(320)는 전처리에 따라 생성된 제1 크롭 컷들과 제2 크롭 컷들에 기반하여, 유사한 컷들의 페어를 결정할 수 있고, 결정된 페어에 포함된 제1 크롭 컷과 제2 크롭 컷을 1차적으로 매칭(예컨대, 코스 매칭(coarse matching))할 수 있다. 제1 매칭부(320)는 제1 크롭 컷들과 제2 크롭 컷들의 각각에 대해 피쳐들(예컨대, 하이 레벨의 피쳐들)을 추출하고, 피쳐들의 코릴레이션에 기반하여 유사한 컷들의 페어를 결정할 수 있으며, 페어에 포함된 컷들에 대해 코스 매칭을 수행할 수 있다. 제1 매칭부(320)는 코스 매칭부(coarse matcher)로도 명명될 수 있다.
제2 매칭부(330)는 제1 매칭부(320)에 의한 처리에 따라 결정된 유사한 컷들의 페어와 제1 매칭부(320)에 의한 매칭 결과에 기반하여, 페어에 포함된 제1 크롭 컷과 제2 크롭 컷을 2차적으로 매칭(예컨대, 파인-그레인드 매칭(fine-grained matching))할 수 있다. 구체적으로, 제2 매칭부(320)는 유사한 컷들의 페어에 포함된 제1 크롭 컷과, 해당 제1 크롭 컷과 제1 매칭부(320)에 의한 코스 매칭에 따라 결정된 크롭 컷(즉, 코스 매칭된 크롭 컷)의 각각에 대해 피쳐들(예컨대, 로우 레벨의 피쳐들)을 추출하고, 추출된 피쳐들의 코릴레이션에 기반하여, 페어에 포함된 컷들에 대해 파인-그레인드 매칭을 수행할 수 있다. 제2 매칭부(330)는 파인-그레인드 매칭부(fine-grained matcher)로도 명명될 수 있다.
전술한 코스 매칭 및 파인-그레인드 매칭은 모두 컷들을 픽셀 단위로 매칭하는 것일 수 있으나, 파인-그레인드 매칭은 코스 매칭에 비해 로우 레벨의 피쳐들을 고려함으로써 보다 컷들을 세밀하게 매칭하는 것일 수 있다.
프로세서(120)의 구성들(310 내지 310)에 의한, 전처리 프로세스, 1차적인 매칭 및 2차적인 매칭의 보다 상세한 내용에 대해서는 후술될 도 4 내지 도 13을 참조하여 더 자세하게 설명된다.
이상 도 1을 참조하여 전술된 기술적 특징에 대한 설명은, 도 2 및 도 3에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.
후술될 상세한 설명에서, 컴퓨터 시스템(100) 또는 프로세서(120)의 구성들(310 내지 330)에 의해 수행되는 동작은 설명의 편의상 컴퓨터 시스템(100)에 의해 수행되는 동작으로 설명될 수 있다.
도 4는 일 실시예에 따른, 원본 콘텐츠와 타겟 콘텐츠를 매칭하는 방법을 나타내는 흐름도이다.
도 4를 참조하여, 컴퓨터 시스템(100)이 제1 컷들을 포함하는 원본 콘텐츠와 복수의 제2 컷들을 포함하는 타겟 콘텐츠를 매칭하는 방법을 더 자세하게 설명한다.
단계(410)에서, 컴퓨터 시스템(100)은 제1 컷들을 포함하는 원본 콘텐츠와 제2 컷들을 포함하는 타겟 콘텐츠를 획득할 수 있다. 컴퓨터 시스템(100)의 사용자에 의한 조작에 따라, 원본 콘텐츠와 타겟 콘텐츠는 컴퓨터 시스템(100)으로 로딩될 수 있다. 전술한 것처럼, 일례로, 원본 콘텐츠는 웹툰 콘텐츠이고 타겟 콘텐츠는 해당 웹툰 콘텐츠를 복제 및 가공한 것일 수 있다. 원본 콘텐츠와 타겟 콘텐츠는 웹툰의 특정한 회차일 수 있다. 원본 콘텐츠 및 타겟 콘텐츠 중 적어도 하나는 하나의 이미지 파일로 구성될 수 있다. 말하자면, 원본 콘텐츠 및 타겟 콘텐츠 중 적어도 하나는 복수의 컷들을 포함하는 하나의 이미지 파일의 형태일 수 있다.
단계(420)에서, 컴퓨터 시스템(100)은 원본 콘텐츠와 타겟 콘텐츠를 전처리함으로써, 제1 컷들에 대응하는 제1 크롭 컷들과 제2 컷들에 대응하는 제2 크롭 컷들을 생성할 수 있다. 예컨대, 컴퓨터 시스템(100)은 원본 콘텐츠와 타겟 콘텐츠를 크롭/리사이징함으로써 제1 크롭 컷들 및 제2 크롭 컷들을 생성할 수 있다.
아래에서는, 일 예에 따른 전처리 프로세스를 통해, 제1 크롭 컷 및 제2 크롭 컷을 생성하는 방법에 대해 더 자세하게 설명한다.
관련하여, 도 11은 일 예에 따른, 원본 콘텐츠와 타겟 콘텐츠를 전처리하는 방법을 나타낸다.
컴퓨터 시스템(100)은 원본 콘텐츠를 제1 크기 단위(예컨대, 높이 단위)로 크롭함으로써 제1 크롭 컷들을 생성할 수 있다. 또한, 컴퓨터 시스템(100)은 원본 콘텐츠를 일정 크기(예컨대, 일정 높이)만큼 쉬프트하여 제1 크기 단위로 그롭함으로써 제1 크롭 컷들을 생성할 수 있다.
도 11에서 도시된 제1 크롭 컷(1010)은 생성된 제1 크롭 컷을 나타낼 수 있다. 이에 따라, 생성되는 제1 크롭 컷들은, 원본 콘텐츠를 소정의 제1 크기 단위로 크롭한 것들로서, 원본 콘텐츠를 소정의 제1 중복률을 갖도록 크롭한 것들을 포함하게 될 수 있다. 이 때, 제1 중복률은 50%일 수 있으며, 일례로, 전술한 제1 크기 단위가 1600 픽셀인 경우, 쉬프트되는 일정 크기는 800 픽셀이 될 수 있다. 컴퓨터 시스템(100)은 원본 콘텐츠를 제1 크기 단위(1600 픽셀)로 크롭하여 N개의 제1 크롭 컷들을 생성할 수 있고, 원본 콘텐츠를 일정 크기(800 픽셀)만큼 쉬프트하여 다시 제1 크기 단위(1600 픽셀)로 크롭함으로써 N개의 제1 크롭 컷들(50%의 중복률을 갖는 제1 컷들)을 생성할 수 있다. 따라서, 원본 콘텐츠에 대해서는 총 2N개의 제1 크롭 컷들이 생성될 수 있다.
한편, 타겟 콘텐츠는 원본 콘텐츠와는 상이한 사이즈를 가질 수 있다.
컴퓨터 시스템(100)은 원본 콘텐츠를 제2 크기 단위(예컨대, 높이 단위)로 크롭함으로써 제2 크롭 컷들을 생성할 수 있다. 또한, 컴퓨터 시스템(100)은 타겟 콘텐츠를 일정 크기(예컨대, 일정 높이)만큼 쉬프트하여 제2 크기 단위로 그롭함으로써 제2 크롭 컷들을 생성할 수 있다.
도 11에서 도시된 제2 크롭 컷(1020)은 생성된 제2 크롭 컷을 나타낼 수 있다. 이에 따라, 생성되는 제2 크롭 컷들은, 타겟 콘텐츠를 소정의 제2 크기 단위로 크롭한 것들로서, 원본 콘텐츠를 소정의 제2 중복률을 갖도록 크롭한 것들을 포함하게 될 수 있다. 이 때, 전술한 제1 중복률과 제2 중복률은 상이하게 설정될 수 있고, 제2 중복률은 75%일 수 있다. 제2 크기 단위는 타겟 콘텐츠의 크기(높이)(즉, 불펌 높이)에 따라 상이하게 될 수 있고, 예컨대, 타겟 콘텐츠의 높이/N*2일 수 있다. 이 때, N은 원본 콘텐츠의 컷 수 또는 전술한 원본 콘텐츠를 제1 크기 단위로 크롭한 개수 N과 같을 수 있다. 제2 크기 단위는 제1 크기 단위보다 더 클 수 있고, 예컨대, 제1 크기 단위의 2배가 될 수 있다. 컴퓨터 시스템(100)은 타겟 콘텐츠를 제2 크기 단위로 크롭하여 제2 크롭 컷들을 생성할 수 있고, 제2 크롭 컷들 간에 75%(3/4)의 중복률을 갖도록 타겟 콘텐츠를 크롭하여 제2 크롭 컷들을 생성할 수 있다. 결과적으로, 타겟 콘텐츠에 대해서는 총 2N개의 제2 크롭 컷들이 생성될 수 있다.
도시된 것처럼, 제2 크롭 컷(1020)은 제1 크롭 컷(1010)에 비해 더 크고 redundant하게 생성될 수 있다. 원본 콘텐츠의 높이가 타겟 콘텐츠와 (거의) 일치하는 경우 제2 크롭 컷(1020)의 크기는 제1 크롭 컷(1010)의 두 배가 될 수 있다. 제1 크롭 컷들의 수는 제2 크롭 컷들의 수와 동일하게 될 수 있다
예컨대, 800 픽셀만큼을 쉬프트하여 원본/타겟 콘텐츠를 크롭하는 경우에는, 일례로, 원본/타겟 콘텐츠에서 위로부터 800 픽셀만큼은 버리고, 아래 800 픽셀은 제로 패딩하여, 제1 크기 단위(N)/제2 크기 단위(타겟 콘텐츠의 높이/N*2)로 크롭이 수행될 수 있다. 이에 따라, 특정한 컷(예컨대, 도신된 '어퍼컷' 장면)에 대해 다른 위상으로 두 번 크롭된 크롭 컷들이 생성될 수 있다.
2N 개의 크롭 컷들을 생성하고, 타겟 콘텐츠에 대해서는 더 크고 redundant한 크롭 컷을 생성함으로써 결과적인 원본 콘텐츠와 타겟 콘텐츠 간의 매칭의 정확도를 높일 수 있다.
단계(430)에서, 컴퓨터 시스템(100)은 제1 크롭 컷들의 각 제1 크롭 컷과, 제2 크롭 컷들 중에서 상기 각 제1 크롭 컷과 가장 유사한 제2 크롭 컷과의 페어를 결정할 수 있다. 상기 페어는 전술한 유사한 컷들의 페어에 대응할 수 있다. 단계(430)의 페어링 프로세스는 전술한 제1 매칭부(320)에 의해 수행되는 것일 수 있다.
컴퓨터 시스템(100)은 각 제1 크롭 컷으로부터 추출된 피쳐들과 각 제2 크롭 컷으로부터 추출된 피쳐들 간의 코릴레이션에 기반하여, 제1 크롭 컷과 가장 유사한 피쳐들을 갖는 제2 크롭 컷을 해당 제1 크롭 컷과의 페어로서 결정할 수 있다.
유사한 컷들의 페어를 결정하는 방법에 대해서는, 후술될 도 5 내지 도 7을 참조하여 더 자세하게 설명된다.
단계(440)에서, 컴퓨터 시스템(100)은 결정된 컷들의 페어에 포함된 제1 크롭 컷과 제2 크롭 컷을 픽셀 단위로 매칭시킬 수 있다. 예컨대, 컴퓨터 시스템(100)은 전술한 코스 매칭을 통해 제1 크롭 컷과 제2 크롭 컷을 1차적으로 픽셀 단위로 매칭시킬 수 있다. 또한, 컴퓨터 시스템(100)은 전술한 파인-그레인드 매칭을 통해 제1 크롭 컷과 상기 코스 매칭에 따라 결정된 크롭 컷(즉, 코스 매칭된 크롭 컷)을 픽셀 단위로 매칭시킬 수 있다. 예컨대, 컴퓨터 시스템(100)은 1차적으로 제1 크롭 컷과 제2 크롭 컷들의 하이 레벨 피쳐들 간의 코릴레이션에 기반한 코스 매칭을 수행할 수 있고, 2차적으로 제1 크롭 컷과 1차적으로 매칭된(코스 매칭된) 크롭 컷들의 로우 레벨 피쳐들 간의 코릴레이션에 기반한 파인-그레인드 매칭을 수행할 수 있다.
구체적으로, 유사한 컷들의 페어가 결정되고, 컴퓨터 시스템(100)은 상기 페어가 포함하는 제1 크롭 컷과 제2 크롭 컷을 코스 매칭할 수 있다. 컴퓨터 시스템(100)은 이러한 코스 매칭의 결과로서, 제1 크롭 컷과 코스 매칭된 크롭 컷을 결정(또는 생성)할 수 있다. 코스 매칭된 크롭 컷은 예컨대, 도 1을 참조하여 전술된 컷(30)에 대응할 수 있다.
컴퓨터 시스템(100)은 상기 페어에 포함된 제1 크롭 컷과 상기 코스 매칭된 크롭 컷에 대해 파인-그레인드 매칭을 수행할 수 있다. 컴퓨터 시스템(100)은 파인-그레인드 매칭을 통해 컷들 간의 어파인 변환을 위한 어파인 매트릭스를 추정할 수 있고, 추정되는 어파인 매트릭스가 수렴하게 될 때까지 파인-그레인드 매칭을 반복할 수 있다. 즉, 컴퓨터 시스템(100)은 제1 크롭 컷과 파인-그레인드 매칭된 크롭 컷에 대해 다시 파인-그레인드 매칭을 수행하여 어파인 매트릭스의 추정을 반복할 수 있다.
추정된 어파인 매트릭스가 수렴하게 되면, 컴퓨터 시스템(100)은 상기 페어에 포함된 제2 크롭 컷에 대해 수렴한 어파인 매트릭스를 적용함으로써 최종적인 파인-그레인드 매칭의 결과를 얻을 수 있다. 이처럼, 최종적인 매칭 결과를 얻음에 있어서는, (파인-그레인드 매칭된 크롭 컷이 아닌) 페어에 포함된 제2 크롭 컷을 사용함으로써, 파인-그레인드 매칭의 누적에 의한 인터폴레이션 손실을 방지할 수 있다.
전술한 방법에 따라, 모든 원본 콘텐츠에 포함된 제1 크롭 컷들에 대해, 타겟 콘텐츠의 제2 크롭 컷들에 대한 픽셀 단위의 매칭이 이루어짐으로써, 원본 콘텐츠와 타겟 콘텐츠는 픽셀 단위로 매칭될 수 있다.
제1 크롭 컷과 제2 크롭 컷 간에의 픽셀 단위의 매칭을 수행하는 방법에 대해서는, 후술될 도 8 내지 도 10을 참조하여 더 자세하게 설명된다.
단계(450)에서, 컴퓨터 시스템(100)은 제1 크롭 컷들과 제2 크롭 컷들의 픽셀 단위의 매칭 결과에 기반하여, 타겟 콘텐츠로부터 타겟 콘텐츠를 생성한 사용자에 대한 식별 정보를 추출할 수 있다. 예컨대, 컴퓨터 시스템(100)은 원본 콘텐츠와 타겟 콘텐츠가 픽셀 단위로 매칭됨에 따라, 타겟 콘텐츠로부터 워터마크 정보를 획득할 수 있다.
식별 정보는, 예컨대, 원본 콘텐츠에 대한 콘텐츠 열람자 정보를 포함할 수 있다. 콘텐츠 열람 정보는 원본 콘텐츠를 열람한 또는 구매한(혹은, 열람 또는 구매 요청한) 사용자에 대한 정보를 포함할 수 있다. 콘텐츠 열람 정보는 해당 사용자를 식별하기 위한 정보로서, 사용자 ID 를 포함할 수 있다. 이 때, 사용자 ID 는 원본 콘텐츠를 열람하기 위해 콘텐츠 제공 서비스에 가입할 때 등록한 사용자 식별 ID 일 수 있다. 이러한 식별 ID는 원본 콘텐츠 열람 시 사용자가 로그인한 ID 일 수 있다.
식별 정보는 원본 콘텐츠의 특정 위치의 픽셀들에 부가되어 있을 수 있고, 기 설정된 표식 폼에서 정의되어 있는 색상, 위치, 형태, 또는 순서에 따라, 픽셀들에 부가될 수 있다.
한편, 컴퓨터 시스템(100)은 제1 크롭 컷들과 제2 크롭 컷들의 픽셀 단위의 매칭 결과에 기반하여, 원본 콘텐츠로부터 타겟 콘텐츠로의 프로세싱 히스토리를 분석한 분석 정보를 획득할 수 있다. 예컨대, 컴퓨터 시스템(100)은 제1 크롭 컷들과 제2 크롭 컷들의 픽셀 단위의 매칭 결과에 기반하여, 타켓 콘텐츠가 원본 콘텐츠를 어떻게 가공한 것인지를 결정할 수 있다. 말하자면, 컴퓨터 시스템(100)은 타켓 콘텐츠가 원본 콘텐츠에 대해 어떠한 처리(예컨대, i) 색상 변환, ii) 객체 추가(번역, 불펌 사이트의 워터마크 추가), iii) 해상도 변경, iv) 리사이징, v) 크롭(여백 제거 등), vi) 디노이징 처리, vii) 압축 처리(JPEG 90) 등)에 따라 생성된 것인지를 결정할 수 있다.
이에 따라 실시예에서는, 불펌 사이트와 같은 공간에 타겟 콘텐츠가 게재된 경우에, 불법적으로 원본 콘텐츠를 복제 및 가공한 사용자를 식별하여 제재할 수 있으며, 해당 사용자에 의한 원본 콘텐츠에 대한 프로세싱 히스토리를 파악할 수 있다.
이상, 도 1 내지 도 3과 도 11을 참조하여 전술된 기술적 특징에 대한 설명은, 도 4에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.
아래에서는 도 5 내지 도 7을 참조하여 유사한 컷들의 페어를 결정하는 방법에 대해 더 자세하게 설명한다. 유사한 컷들의 페어를 결정하는 페어링 프로세스는 전술한 제1 매칭부(320)에 의해 수행될 수 있다. 즉, 이러한 페어링 프로세스는 전술한 코스 매칭의 전단계로서 수행될 수 있다.
도 5는 일 예에 따른, 원본 콘텐츠와 타겟 콘텐츠를 전처리하여 생성된 컷들 중에서 유사한 컷들의 페어를 결정하는 방법을 나타내는 흐름도이다.
단계(510)에서, 컴퓨터 시스템(100)은 전처리 프로세스를 통해 생성된 각 제1 크롭 컷의 피쳐들을 추출할 수 있고, 전처리 프로세스를 통해 생성된 각 제2 크롭 컷의 피쳐들을 추출할 수 있다. 단계(510)에서 추출된 각 제1 크롭 컷의 피쳐들은 상기 원본 콘텐츠와 연관된 하이 레벨(high-level) 피쳐들일 수 있고, 추출된 각 제2 크롭 컷의 피쳐들은 타겟 콘텐츠와 연관된 하이 레벨 피쳐들일 수 있다.
제1 크롭 컷으로부터 추출된 피쳐들과 제2 크롭 컷으로부터 추출된 피쳐들은 인공신경망 기반의 모델을 사용하여 추출될 수 있다. 예컨대, 이러한 피쳐들은 ResNet을 사용하여 추출될 수 있다.
일례로, 제1 크롭 컷으로부터 추출된 피쳐들과 제2 크롭 컷으로부터 추출된 피쳐들은 ResNet50 에 기반한 모델(MOCO ResNet50 (v2) pretrained 모델)을 사용하여 추출될 수 있다. 관련하여, 도 12는 일 예에 따른, 원본 콘텐츠와 타겟 콘텐츠로부터의 피쳐 추출 방법을 나타낸다.
도 12에서 도시된 것처럼, 제1 크롭 컷 및 제2 크롭 컷으로부터 추출되는 하이 레벨 피쳐들은 ResNet50의 layer4(1210)의 출력(피쳐 맵)으로부터 추출된 것일 수 있다. 이 때, layer4는 1024개의 채널을 갖고 1/16로 출력의 차수를 줄일 수 있다. layer4는 분류(classification)를 위한 레이어의 바로 전단에 위치될 수 있다.
이에 따라, 일례로, 1600*690 픽셀 크기의 제1 크롭 컷에 대해서는 100*43*1024의 피쳐들이 추출될 수 있다. 3200*690 픽셀 크기의 제2 크롭 컷에 대해서는 200*43*1024의 피쳐들이 추출될 수 있다.
단계(520)에서, 컴퓨터 시스템(100)은 각 제1 크롭 컷의 피쳐들과 각 제2 크롭 컷의 피쳐들 간에 결정된 코릴레이션(correlation)에 기반하여, 제1 크롭 컷과, 해당 제1 크롭 컷에 대해 위치 간의 매칭을 나타내는 키 포인트의 수가 가장 많은 제2 크롭 컷을 페어로서 결정할 수 있다. 코릴레이션의 값은 제1 크롭 컷의 일 위치(일 위치의 피쳐)와 제2 크롭 컷의 일 위치(일 위치의 피쳐) 간의 상관관계 또는 연관성을 수치화한 것일 수 있고, 상관관계 또는 연관성이 높을 수록 큰 값이될 수 있다.
키 포인트는 페어를 이루는 제1 크롭 컷과 제2 크롭 컷 간에 대칭적으로 매칭되는 위치를 나타낼 수 있다. 말하자면, 키 포인트가 나타내는 제1 크롭 컷 내의 위치 및 제2 크롭 컷 내의 위치는 서로 대응하는 위치일 수 있다.
컴퓨터 시스템(100)은 각 제1 크롭 컷의 피쳐들과 각 제2 크롭 컷의 피쳐들에 대한 코릴레이션 맵을 생성할 수 있고, 생성된 코릴레이션 맵에 기반하여, 제1 크롭 컷 및 제2 크롭 컷의 서로 대응하는 위치를 나타내는 키 포인트들을 식별할 수 있다. 컴퓨터 시스템(100)은 각 제1 크롭 컷에 대해 이러한 키 포인트들의 수가 가장 많은 제2 크롭 컷을 결정하여, 제1 크롭 컷과 제2 크롭 컷을 페어링할 수 있다.
아래에서는, 전술한 키 포인트를 결정하는 방법에 대해 더 자세하게 설명한다.
관련하여, 도 6은 일 예에 따른, 원본 콘텐츠와 타겟 콘텐츠를 전처리하여 생성된 컷들 중에서 유사한 컷들의 페어를 결정함에 있어서, 기준이 되는 키 포인트를 결정하는 방법을 나타내는 흐름도이다.
단계(610)에서, 컴퓨터 시스템(100)은 제1 크롭 컷의 피쳐들과 제2 크롭 컷의 피쳐들 간의 코릴레이션 맵을 생성할 수 있다.
코릴레이션 맵은 예컨대, 아래의 수학식 1에 따라 생성될 수 있다.
상기 수학식 1에서, f ori 는 원본 콘텐츠의 제1 크롭 컷으로부터 추출된 피쳐들(예컨대, 4300*1024)을 나타낼 수 있고, f priate 는 타겟 콘텐츠의 제2 크롭 컷으로부터 추출된 피쳐들(예컨대, 8600*1024)을 나타낼 수 있다. h와 h'는 제1 크롭 컷으로부터 추출된 피쳐들의 높이와 제2 크롭 컷으로부터 추출된 피쳐들의 높이를 각각 나타낼 수 있고, w와 w'는 제1 크롭 컷으로부터 추출된 피쳐들의 폭과 제2 크롭 컷으로부터 추출된 피쳐들의 폭을 각각 나타낼 수 있다.
생성되는 코릴레이션 맵은 코릴레이션 매트릭스를 포함할 수 있다. 코릴레이션 매트릭스의 행 및 열은 제1 크롭 컷 내의 위치 및 제2 크롭 컷 내의 위치를 각각 나타낼 수 있고, 코릴레이션 매트릭스의 각 요소(element)는 피쳐들 간의 코릴레이션 값을 나타낼 수 있다.
단계(620)에서, 컴퓨터 시스템(100)은 코릴레이션 매트릭스의 각 행별로 코릴레이션 값이 상위인 적어도 하나의 제1 값 및 해당 제1 값의 상기 코릴레이션 매트릭스에서의 제1 위치(행 및 열의 위치)와, 코릴레이션 매트릭스의 각 열별로 코릴레이션 값이 상위인 적어도 하나의 제2 값 및 제2 값의 코릴레이션 매트릭스에서의 위치(행 및 열의 위치)를 결정할 수 있다. 일례로, 컴퓨터 시스템(100)은 값이 상위인 2개의 제1 값을 각 행별로 결정하고, 값이 상위인 2개의 제2 값을 각 열별로 결정할 수 있다. 이에 따라, 컴퓨터 시스템(100)은 제1 크롭 컷의 각각의 위치에 대해 연관성이 상위인 제2 크롭 컷의 위치(들)에 해당하는 제1 값을 결정할 수 있고, 제2 크롭 컷의 각각의 위치에 대해 연관성이 상위인 제1 크롭 컷의 위치(들) 에 해당하는 제2 값을 결정할 수 있다.
컴퓨터 시스템(100)은 이러한 결정된 제1 값들과 제2 값들 중에서 제1 크롭 컷과 제2 크롭 컷 간에 대칭적으로 매칭되는 위치에 해당하는 값들만을 키 포인트에 해당하는 값으로서 결정할 수 있다. 대칭적으로 매칭되는 위치란 제1 크롭 컷의 일 위치를 기준으로 거기에 매칭되는 제2 크롭 컷의 일 위치가, 제2 크롭컷의 상기 일 위치를 기준으로 제1 크롭 컷의 상기 일 위치에도 매칭되는 경우를 나타낼 수 있다.
단계(630)에서, 컴퓨터 시스템(100)은, 이러한 키 포인트를 결정하기 위해, 코릴레이션 매트릭스와 동일한 크기의 초기화된 행렬의 상기 제1 위치에 대응하는 위치에 제1 값을 할당하여 제1 행렬을 생성하고, 코릴레이션 매트릭스와 동일한 크기의 초기화된 제2 행렬의 상기 제2 위치에 위치에 대응하는 위치에 상기 제2 값을 할당하여 제2 행렬을 생성할 수 있다. 초기화된 행렬은 요소 전부가 0인 행렬을 의미하며, 따라서, 생성된 제1 행렬 및 제2 행렬은 값이 할당된 요소를 제외하고는, 나머지 요소들은 모두 0이 될 수 있다.
단계(640)에서, 컴퓨터 시스템(100)은 생성된 제1 행렬 및 제2 행렬을 요소별 곱(element-wise product)하여 제3 행렬을 생성할 수 있다. 이와 같은 연산에 따라, 제3 행렬에서는, 제1 크롭 컷과 제2 크롭 컷의 대칭적으로 매칭되는 위치에 해당하는 값을 제외하고는, 나머지 요소들이 모두 0이 될 수 있다.
단계(650)에서, 컴퓨터 시스템(100)은 이러한 제3 행렬에서 0이 아닌 요소를 키 포인트로서 결정할 수 있다. 키 포인트에 의해 제1 크롭 컷과 제2 크롭 컷 간의 관계에서 매칭되는 위치가 결정될 수 있다.
컴퓨터 시스템(100)은 제3 행렬에서 0이 아닌 요소들의 수를 카운트함으로써, 제1 크롭 컷과 제2 크롭 컷 간의 관계에서 키 포인트의 수를 결정할 수 있다.
컴퓨터 시스템(100)은 제1 크롭 컷의 피쳐들과 제2 크롭 컷들의 각각의 피쳐들(또는, 소정의 서치 스페이스에 포함되는 제2 크롭 컷들 각각의 피쳐들)에 대해 전술한 단계들(610 내지 650)을 수행함으로써, 각 제1 크롭 컷에 대해 키 포인트들의 수가 가장 많은 제2 크롭 컷을 결정하여, 제1 크롭 컷과 제2 크롭 컷을 페어링할 수 있다.
아래에서는, 도 7을 참조하여, 키 포인트를 결정함에 있어서 소정의 서치 스페이스를 사용하는 내용에 대해 더 자세하게 설명한다.
관련하여, 도 7은 일 예에 따른, 서치 스페이스를 사용하여 피쳐들 간의 코릴레이션을 결정하고, 원본 콘텐츠와 타겟 콘텐츠를 전처리하여 생성된 컷들 중에서 유사한 컷들의 페어를 결정하는 방법을 나타내는 흐름도이다.
실시예에서는, 유사한 컷들의 페어를 결정함에 있어서 불필요한 연산을 줄이고, 원본 콘텐츠 및 타겟 콘텐츠 간의 매칭의 속도를 높이기 위해 소정의 서치 스페이스를 설정하여 사용할 수 있다.
원본 콘텐츠와 타겟 콘텐츠는 제공되는 방향이 정해져 있으므로, 원본 콘텐츠와 타겟 콘텐츠에 포함된 컷들은 순서를 가질 수 있다. 따라서, 제1 크롭 컷들과 제2 크롭 컷들 역시 소정의 순서를 가질 수 있다.
서치 스페이스는 이러한 제1 크롭 컷들과 제2 크롭 컷들의 소정의 순서에 따라 결정될 수 있다.
단계(710)에서, 컴퓨터 시스템(100)은, 제1 크롭 컷과 제2 크롭 컷을 페어로서 결정함에 있어서, 제1 크롭 컷에 대한 코릴레이션 결정을 위한 제2 크롭 컷들로 구성된 서치 스페이스를 결정할 수 있다. 예컨대, 컴퓨터 시스템(100)은, 제1 크롭 컷들 중 제1 순서의 제1 크롭 컷의 피쳐들과 제2 크롭컷들 중 제2 순서의 제2 크롭 컷의 피쳐들과 매칭되는 것으로 결정된 때(말하자면, 제1 순서의 제1 크롭 컷과 제2 순서의 제2 크롭 컷이 서로 페어인 것으로 결정된 때), 제1 순서의 다음의 순서인 제1 크롭 컷의 피쳐들과의 코릴레이션을 결정하기 위한 서치 스페이스를 제2 크롭 컷들 중에서 소정의 수의 제2 크롭 컷들의 피쳐들로 결정할 수 있다. 이 때, 서치 스페이스로서 결정되는 상기 소정의 수의 제2 크롭 컷들의 피쳐들은 제2 순서 전후의 소정의 수의 제2 크롭 컷들의 피쳐들을 포함할 수 있다.
단계(720)에서, 컴퓨터 시스템(100)은, 상기 다음의 순서인 제1 크롭 컷의 피쳐들과 서치 스페이스에 포함된 제2 크롭 컷들의 피쳐들 간에 결정된 코릴레이션에 기반하여, 상기 다음의 순서인 제1 크롭 컷과, 서치 스페이스에 포함된 피쳐들과 연관된 제2 크롭 컷들 중에서 키 포인트의 수가 가장 많은 제2 크롭 컷을 페어로서 결정할 수 있다. 말하자면, 제1 크롭 컷에 대해 설정된 서치 스페이스 내에서 키 포인트의 수가 가장 많은 제2 크롭 컷이 해당 제1 크롭 컷의 페어로서 결정될 수 있다.
단계(730)에서, 컴퓨터 시스템(100)은, 제1 컷들의 순서에 따라, 각 제1 크롭 컷에 대해 순차적으로 각 제1 크롭 컷과 페어가 되는 제2 크롭 컷을 결정할 수 있다.
일례로, 서치 스페이스는 최대 10개의 제2 크롭 컷들의 피쳐들로 설정될 수 있고, 매칭된 제2 크롭 컷의 피쳐들을 기준으로 전후로 5개의 제2 크롭 컷들의 피쳐들을 포함하도록 구성될 수 있다. 가령, 첫 번째의 제1 크롭 컷에 매칭되는 제2 크롭 컷의 피쳐들을 찾기 위한 서치 스페이스는 첫 번째 내지 다섯 번째 제2 크롭 컷들의 피쳐들이 될 수 있다. 이 때, 첫 번째의 제1 크롭 컷의 피쳐들이 세 번째의 제2 크롭 컷의 피쳐들과 매칭되는 경우, 두 번째의 제1 크롭 컷에 매칭되는 제2 크롭 컷의 피쳐들을 찾기 위한 서치 스페이스는 첫 번째 내지 여덟 번째(3+5) 제2 크롭 컷들의 피쳐들이 될 수 있다. 특정한 제1 크롭 컷의 피쳐들에 대해 서치 스페이스 내에서 매칭되는 제2 크롭 컷의 피쳐들이 결정되지 않는 경우(즉, 매칭(페어링)이 실패하는 경우)에는, 컴퓨터 시스템(100)은 모든 제2 크롭 컷들의 피쳐들을 서치 스페이스로 설정할 수 있다.
도 5 내지 도 7을 참조하여 설명한 바에 따라, 실시예에서는 코스 매칭 및 파인-그레인드 매칭을 수행하기 위한 유사한 컷들의 페어가 결정될 수 있다.
이상, 도 1 내지 도 4와 도 11을 참조하여 전술된 기술적 특징에 대한 설명은, 도 5 내지 도 7과 도 12에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.
도 8 내지 도 10을 참조하여 제1 크롭 컷과 제2 크롭 컷 간에의 픽셀 단위의 매칭을 수행하는 방법에 대해 더 자세하게 설명한다.
도 8은 일 예에 따른, 어파인 매트릭스를 추정하여 원본 콘텐츠와 타겟 콘텐츠를 매칭하는 방법을 나타내는 흐름도이다. 도 8을 참조하여 아래에서 설명되는 크롭 컷들 간의 매칭을 수행하는 방법은 전술한 1차적인 매칭(즉, 코스 매칭)을 수행하는 방법에 해당할 수 있다.
단계(810)에서, 컴퓨터 시스템(100)은, 유사한 컷들의 페어에 포함된 제1 크롭 컷과 제2 크롭 컷을 픽셀 단위로 매칭함에 있어서, 도 5 내지 도 7을 참조하여 결정된 키 포인트에 기반하여 상기 페어에 포함된 제1 크롭 컷과 제2 크롭 컷에 대한 어파인 변환(affine transform)을 위한 어파인 매트릭스를 추정할 수 있다. 어파인 매트릭스는 제1 크롭 컷으로부터 제2 크롭 컷으로의, 또는, 제2 크롭 컷으로부터 제1 크롭 컷으로의 어파인 변환을 수행하기 위한 것일 수 있다.
단계(820)에서, 컴퓨터 시스템(100)은, 추정된 어파인 매트릭스를 사용하여 상기 페어에 포함된 제1 크롭 컷과 제2 크롭 컷을 픽셀 단위로 매칭할 수 있다.
추정된 어파인 매트릭스는 3*3 행렬일 수 있다. 다만, 어파인 매트릭스는 상기 페어에 포함된 제1 크롭 컷의 제2 크롭 컷으로의 스케일 변환(예컨대, 가로/세로 리사이징) 및 이동(translation)(x축 및 y축 방향으로의 이동) 변환을 고려하되, 상기 페어에 포함된 제1 크롭 컷의 제2 크롭 컷으로의 회전(rotation) 변환은 고려하지 않도록 구성될 수 있다. 말하자면, 원본 콘텐츠와 타겟 콘텐츠 간에는 회전 변환은 이루어지지 않는 것으로 가정될 수 있다.
일례로, 어파인 매트릭스는 RANSAC 알고리즘을 사용하여 추정될 수 있다. 컴퓨터 시스템(100)은 각 크롭 컷(즉, 크롭 컷들의 페어)에 대해 매칭된 키 포인트들을 대상으로 어파인 매트릭스를 추정할 수 있다. 키 포인트가 결정되면, 제1 크롭 컷과 제2 크롭 컷 간에 매칭되는 위치 정보 쌍(즉, (x,y), (x',y'))이 결정될 수 있고, 이를 사용하여 RANSAC 알고리즘을 통해 어파인 매트릭스가 추정될 수 있다.
어파인 매트릭스는 픽셀 단위의 어파인 변환을 위한 것일 수 있다.
전술한 코스 매칭을 수행함에 있어서는, 컴퓨터 시스템(100)은 전술한 페어링 프로세스를 수행하기 위해 추출한 하이 레벨 피쳐들을 간의 코릴레이션을 고려하여 결정된 키 포인트들을 사용하여 어파인 매트릭스를 추정할 수 있다.
이러한 코스 매칭의 경우 페어에 포함되는 제1 크롭 컷과 제2 크롭 컷을 픽셀 단위로 근사하게 매칭시킬 수는 있으나, 픽셀 단위로 정확하게 매칭시키지는 못할 수 있다. 페어에 포함되는 제1 크롭 컷과 제2 크롭 컷을 픽셀 단위로 보다 세밀하게 매칭시키기 위해 파인-그레인드 매칭이 수행될 수 있다.
관련하여, 도 9 및 10은 일 예에 따른, 원본 콘텐츠와 타겟 콘텐츠 간의 파인-그레인드(fine-grained) 매칭을 수행하기 위해 어파인 매트릭스를 추정하는 방법을 나타내는 흐름도이다.
컴퓨터 시스템(100)은 전술한 도 8을 참조하여 설명한 것처럼, 유사한 컷들의 페어에 포함된 제1 크롭 컷과 제2 크롭 컷을 1차적으로 매칭(코스 매칭)시킬 수 있다.
또한, 컴퓨터 시스템(100)은 유사한 컷들의 페어에 포함된 제1 크롭 컷과, 상기 제1 크롭 컷과의 1차적인 매칭에 따라 매칭된 크롭 컷에 기반하여, 상기 페어에 포함된 제1 크롭 컷과 제2 크롭 컷을 2차적으로 매칭(파인-그레인드 매칭)시킬 수 있다. 아래에서는, 도 9 및 도 10을 참조하여 이러한 2차적인 매칭을 수행하는 방법에 대해 더 자세하게 설명한다.
단계(910)에서, 컴퓨터 시스템(100)은, 도 5 내지 7을 참조하여 결정된 페어에 포함된 제1 크롭 컷의 로우 레벨(low-level) 피쳐들을 추출할 수 있고, 상기 제1 크롭 컷과의 전술한 1차적인 매칭(코스 매칭)에 따라 결정된 크롭 컷(즉, 코스 매칭된 크롭 컷)의 로우 레벨 피쳐들을 추출할 수 있다.
상기 제1 크롭 컷으로부터 추출된 로우 레벨 피쳐들과 상기 코스 매칭된 크롭 컷으로부터 추출된 로우 레벨 피쳐들은 인공신경망 기반의 모델을 사용하여 추출될 수 있다. 예컨대, 이러한 피쳐들은 ResNet을 사용하여 추출될 수 있다.
일례로, 제1 크롭 컷 및 코스 매칭된 크롭 컷으로부터 추출된 로우 레벨 피쳐들은 ResNet50 에 기반한 모델(MOCO ResNet50 (v2) pretrained 모델)을 사용하여 추출될 수 있다. 관련하여, 도 12는 일 예에 따른, 원본 콘텐츠와 타겟 콘텐츠로부터의 피쳐 추출 방법을 나타낸다.
도 12에서 도시된 것처럼, 제1 크롭 컷 및 코스 매칭된 크롭 컷으로부터 추출되는 로우 레벨 피쳐들은 ResNet50의 layer3(1220)의 출력(피쳐 맵)으로부터 추출된 것일 수 있다. 이 때, layer3은 512개의 채널을 갖고 1/8로 출력의 차수를 줄일 수 있다. layer3은 전술한 하이 레벨 피쳐들의 추출에 사용되는 layer4의 전단에 위치될 수 있다.
이에 따라, 일례로, 1600*690 픽셀 크기의 제1 크롭 컷에 대해서는 200*86*1024의 피쳐들이 추출될 수 있다. 3200*690 픽셀 크기의 코스 매칭된 크롭 컷에 대해서는 400*86*1024의 피쳐들이 추출될 수 있다.
이처럼, 각 제1 크롭 컷과 각 제2 크롭 컷(및 코스 매칭된 크롭 컷)의 하이 레벨 피쳐들 및 로우 레벨 피쳐들은, ResNet50과 같은, 인공신경망 기반의 모델을 사용하여 추출될 수 있다. 하이 레벨 피쳐들과 로우 레벨 피쳐들은 인공신경망 기반의 모델에 포함된 서로 다른 레이어의 출력(예컨대, 피쳐 맵)으로부터 각각 추출될 수 있다. 예컨대, 하이 레벨 피쳐들과 로우 레벨 피쳐들은 ResNet50의 layer4의 출력(피쳐 맵)과 layer3의 출력(피쳐 맵)으로부터 각각 추출될 수 있다.
이처럼, 하이 레벨 피쳐들은 로우 레벨 피쳐들에 비해, 인공신경망 기반의 모델의 출력(예컨대, 분류를 위한 레이어)에 더 가까운 레이어의 출력으로부터 추출된 것일 수 있다. 따라서, 도 12에서 도시된 것처럼, 로우 레벨 피쳐들은 입력에 대한 리덕션(reduction)이 하이 레벨 피쳐들보다 더 적은 것으로서, 하이 레벨 피쳐들에 비해 콘텐츠의 보다 세밀한 피쳐를 나타낼 수 있다.
단계(920)에서, 컴퓨터 시스템(100)은, 상기 페어에 포함된 제1 크롭 컷의 로우 레벨 피쳐들과 상기 제1 크롭 컷과의 전술한 1차적인 매칭(코스 매칭)에 따라 결정된 크롭 컷(즉, 코스 매칭된 크롭 컷)의 로우 레벨 피쳐들 간에 결정된 코릴레이션(correlation)에 기반하여, 상기 페어에 포함된 제1 크롭 컷과 상기 코스 매칭된 크롭 컷의 위치 간의 매칭을 나타내는 키 포인트를 결정할 수 있다. 상기 페어에 포함된 제1 크롭 컷과 코스 매칭된 크롭 컷의 위치 간의 매칭을 나타내는 키 포인트를 결정하는 방법에 대해서는 도 5 내지 7을 참조하여 전술된 키 포인트를 결정하는 방법이 유사하게 적용될 수 있다. 예컨대, 도 6을 참조하여 전술된 단계들(610 내지 650)에서 설명된 키 포인트를 결정하는 방법이 단계(920)에 대해서도 유사하게 적용될 수 있다. 따라서, 중복되는 설명은 생략한다.
단계(930)에서, 컴퓨터 시스템(100)은, 상기 페어에 포함된 제1 크롭 컷 및 상기 제1 크롭 컷과의 전술한 1차적인 매칭(코스 매칭)에 따라 결정된 크롭 컷(즉, 코스 매칭된 크롭 컷)에 대해 결정된 키 포인트에 기반하여, 상기 페어에 포함된 제1 크롭 컷과 상기 코스 매칭된 크롭 컷에 대한 어파인 변환을 위한 어파인 매트릭스를 추정할 수 있다.
어파인 매트릭스는 어파인 변환(affine transform)을 위한 것으로서, 제1 크롭 컷으로부터 상기 코스 매칭된 크롭 컷으로의, 또는, 제2 크롭 컷으로부터 제1 크롭 컷으로의 어파인 변환을 수행하기 위한 것일 수 있다.
단계(940)에서, 컴퓨터 시스템(100)은, 추정된 어파인 매트릭스를 사용하여 상기 페어에 포함된 제1 크롭 컷과 상기 제1 크롭 컷과의 전술한 1차적인 매칭(코스 매칭)에 따라 결정된 크롭 컷(즉, 코스 매칭된 크롭 컷)을 픽셀 단위로 매칭할 수 있다. 단계들(910 내지 940)에 의해, 상기 페어에 포함된 제1 크롭 컷과 상기 코스 매칭된 크롭 컷 간에 대한 픽셀 단위의 세밀한 매칭이 수행될 수 있다.
도 8을 참조하여 전술한 것처럼, 추정된 어파인 매트릭스는 3*3 행렬일 수 있다. 다만, 어파인 매트릭스는 상기 페어에 포함된 제1 크롭 컷의 상기 코스 매칭된 크롭 컷으로의 스케일 변환(예컨대, 가로/세로 리사이징) 및 이동(translation)(x축 및 y축 방향으로의 이동) 변환을 고려하되, 상기 페어에 포함된 제1 크롭 컷의 상기 코스 매칭된 크롭 컷으로의 회전(rotation) 변환은 고려하지 않도록 구성될 수 있다. 말하자면, 원본 콘텐츠와 타겟 콘텐츠 간에는 회전 변환은 이루어지지 않는 것으로 가정될 수 있다.
일례로, 어파인 매트릭스는 RANSAC 알고리즘을 사용하여 추정될 수 있다. 컴퓨터 시스템(100)은 각 크롭 컷(즉, 크롭 컷들의 페어)에 대해 매칭된 키 포인트들을 대상으로 어파인 매트릭스를 추정할 수 있다. 키 포인트가 결정되면, 제1 크롭 컷과 제2 크롭 컷 간에 매칭되는 위치 정보 쌍(즉, (x,y), (x',y'))이 결정될 수 있고, 이를 사용하여 RANSAC 알고리즘을 통해 어파인 매트릭스가 추정될 수 있다. 어파인 매트릭스는 픽셀 단위의 어파인 변환을 위한 것일 수 있다.
아래에서는, 도 10을 참조하여 파인-그레인드 매칭을 수행하기 위한 어파인 매트릭스를 추정하는 방법을 더 자세하게 설명한다.
단계(1010)에서, 컴퓨터 시스템(100)은, 상기 페어에 포함된 제1 크롭 컷 및 상기 제1 크롭 컷과의 전술한 1차적인 매칭(코스 매칭)에 따라 결정된 크롭 컷(즉, 코스 매칭된 크롭 컷)에 대해 결정된 키 포인트를 샘플링할 수 있다.
단계(1020)에서, 컴퓨터 시스템(100)은, 단계(1010)에서 샘플링된 키 포인트에 기반하여 어파인 매트릭스를 추정할 수 있다. 즉, 컴퓨터 시스템(100)은 불필요한 연산을 줄이고, 원본 콘텐츠 및 타겟 콘텐츠 간의 매칭의 속도를 높이기 위해 (모든 키 포인트가 아닌) 샘플링된 키 포인트에 기반하여 어파인 매트릭스를 추정할 수 있다.
이 때, 컴퓨터 시스템(100)은 파인-그레인드 매칭의 정확성을 보다 높이기 위해, 어파인 매트릭스가 수렴할 때까지, 상기 제1 크롭 컷과 파인-그레인드 매칭된 크롭 컷(즉, 추정된 어파인 매트릭스가 적용된 크롭 컷)을 입력으로서 사용하여, 전술한 단계(1010)의 키 포인트를 샘플링하는 단계 및 단계(1020)의 샘플링된 키 포인트에 기반하여, 상기 어파인 매트릭스를 추정하는 단계를 반복할 수 있다. 추정되는 어파인 매트릭스가 일정하게 되거나, 추정되는 어파인 매트릭스의 요소의 값 변화가 소정의 값 이내가 되면, 컴퓨터 시스템(100)은 반복을 중지할 수 있다.
컴퓨터 시스템(100)은, 수렴에 따라 최종적으로 추정된 어파인 매트릭스를 사용하여 상기 페어에 포함된 제1 크롭 컷과 제2 크롭 컷을 픽셀 단위로 매칭할 수 있다.
요컨대, 실시예에서는, 전술한 도 5 내지 도 7을 참조하여 설명한 바에 따라, 컴퓨터 시스템(100)이 유사한 제1 크롭 컷 및 제2 크롭 컷의 페어를 결정할 수 있고, 상기 페어가 포함하는 제1 크롭 컷과 제2 크롭 컷을 코스 매칭할 수 있다. 컴퓨터 시스템(100)은 이러한 코스 매칭의 결과로서, 제1 크롭 컷과 코스 매칭된 크롭 컷을 결정(또는 생성)할 수 있다.
컴퓨터 시스템(100)은 상기 페어에 포함된 제1 크롭 컷과 상기 코스 매칭된 크롭 컷에 대해 파인-그레인드 매칭을 수행할 수 있다. 컴퓨터 시스템(100)은 파인-그레인드 매칭을 통해 상기 제1 크롭 컷과 상기 코스 매칭된 크롭 컷 간의 어파인 변환을 위한 어파인 매트릭스를 추정할 수 있고, 추정되는 어파인 매트릭스가 수렴하게 될 때까지 파인-그레인드 매칭을 반복할 수 있다. 즉, 컴퓨터 시스템(100)은 제1 크롭 컷과 파인-그레인드 매칭된 크롭 컷에 대해 다시 파인-그레인드 매칭을 수행하여 어파인 매트릭스의 추정을 반복할 수 있다.
추정된 어파인 매트릭스가 수렴하게 되면, 컴퓨터 시스템(100)은 상기 페어에 포함된 제2 크롭 컷에 대해 수렴한 어파인 매트릭스를 적용함으로써 최종적인 파인-그레인드 매칭의 결과를 얻을 수 있다. 이처럼, 최종적인 매칭 결과를 얻음에 있어서는, (파인-그레인드 매칭된 크롭 컷이 아닌) 페어에 포함된 제2 크롭 컷을 사용함으로써, 파인-그레인드 매칭의 누적에 의한 인터폴레이션 손실을 방지할 수 있다.
전술한 바와 같이 2차적인 매칭을 수행함에 따라, 원본 콘텐츠와 타겟 콘텐츠 간의 보다 정확한 픽셀 단위의 매칭이 이루어질 수 있다.
이상, 도 1 내지 도 7 및 도 11을 참조하여 전술된 기술적 특징에 대한 설명은, 도 8 내지 도 10 및 도 12에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.
도 13은 일 예에 따른, 원본 콘텐츠와 타겟 콘텐츠 간의 코스(coarse) 매칭의 결과와 파인-그레인드 매칭의 결과의 비교를 나타낸다.
도 13에서는, 원본 콘텐츠에 대한 잔차로서 코스 매칭의 결과와 파인-그레인드 매칭의 결과를 도시하였다.
도시된 것처럼, 코스 매칭의 결과에 비해 파인-그레인드 매칭의 결과가 우수한 것을 확인할 수 있다.
한편, 도시되지는 않았으나, 파인-그레인드 매칭의 결과는 룰-기반(rule-based) 매칭의 결과에 비해서도 훨씬 우수한 성능을 나타낼 수 있다.
이상, 도 1 내지 도 12를 참조하여 전술된 기술적 특징에 대한 설명은, 도 13에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.
실시예를 통해서는, 고정된 피쳐 추출기가 아닌 인공 신경망에 기반한 피쳐 추출기가 사용되고, 이에 기반하여 2차례의 매칭이 수행될 수 있다.
실시예를 통해서는, 원본 콘텐츠에 대해 가해지는 다양한 공격(가공)에 강인한 콘텐츠 매칭 방법이 구현될 수 있고, 자동적인 매칭과 GPU 기반 연산을 통한 고속의 매칭이 가능한 콘텐츠 매칭 방법이 구현될 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 프로세서, 콘트롤러, 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 (19)
- 컴퓨터 시스템에 의해 수행되는, 복수의 제1 컷들을 포함하는 원본 콘텐츠와 복수의 제2 컷들을 포함하는 타겟 콘텐츠를 매칭하는 방법에 있어서,
상기 원본 콘텐츠와 상기 타겟 콘텐츠를 전처리함으로써, 상기 제1 컷들에 대응하는 제1 크롭 컷들과 상기 제2 컷들에 대응하는 제2 크롭 컷들을 생성하는 단계;
상기 제1 크롭 컷들의 각 제1 크롭 컷과, 상기 제2 크롭 컷들 중에서 상기 각 제1 크롭 컷과 가장 유사한 제2 크롭 컷과의 페어를 결정하는 단계; 및
상기 페어에 포함된 제1 크롭 컷과 제2 크롭 컷을 픽셀 단위로 매칭시키는 단계
를 포함하고,
상기 페어를 결정하는 단계는,
상기 각 제1 크롭 컷의 피쳐들을 추출하는 단계;
상기 제2 크롭 컷들의 각 제2 크롭 컷의 피쳐들을 추출하는 단계; 및
상기 각 제1 크롭 컷의 피쳐들과 상기 각 제2 크롭 컷의 피쳐들 간에 결정된 코릴레이션(correlation)에 기반하여, 제1 크롭 컷과, 해당 제1 크롭 컷에 대해 위치 간의 매칭을 나타내는 키 포인트의 수가 가장 많은 제2 크롭 컷을 페어로서 결정하는 단계
를 포함하고,
상기 키 포인트는 상기 페어를 이루는 제1 크롭 컷과 제2 크롭 컷 간에 대칭적으로 매칭되는 위치를 나타내는, 원본 콘텐츠와 타겟 콘텐츠를 매칭하는 방법. - 제1항에 있어서,
상기 제1 크롭 컷들과 상기 제2 크롭 컷들의 픽셀 단위의 매칭 결과에 기반하여, 상기 타겟 콘텐츠로부터 상기 타겟 콘텐츠를 생성한 사용자에 대한 식별 정보를 추출하는 단계
를 더 포함하는, 원본 콘텐츠와 타겟 콘텐츠를 매칭하는 방법. - 제1항에 있어서,
상기 제1 크롭 컷들은,
상기 원본 콘텐츠를 소정의 제1 크기 단위로 크롭한 것들로서, 상기 원본 콘텐츠를 소정의 제1 중복률을 갖도록 크롭한 것들을 포함하고,
상기 제2 크롭 컷들은,
상기 타겟 콘텐츠를 소정의 제2 크기 단위로 크롭한 것들로서, 상기 타겟 콘텐츠를 소정의 제2 중복률을 갖도록 크롭한 것들을 포함하는, 원본 콘텐츠와 타겟 콘텐츠를 매칭하는 방법. - 제3항에 있어서,
상기 제2 크기 단위는 상기 제1 크기 단위보다 더 크고,
상기 제1 크롭 컷들의 수는 상기 제2 크롭 컷들의 수와 동일한, 원본 콘텐츠와 타겟 콘텐츠를 매칭하는 방법. - 삭제
- 삭제
- 컴퓨터 시스템에 의해 수행되는, 복수의 제1 컷들을 포함하는 원본 콘텐츠와 복수의 제2 컷들을 포함하는 타겟 콘텐츠를 매칭하는 방법에 있어서,
상기 원본 콘텐츠와 상기 타겟 콘텐츠를 전처리함으로써, 상기 제1 컷들에 대응하는 제1 크롭 컷들과 상기 제2 컷들에 대응하는 제2 크롭 컷들을 생성하는 단계;
상기 제1 크롭 컷들의 각 제1 크롭 컷과, 상기 제2 크롭 컷들 중에서 상기 각 제1 크롭 컷과 가장 유사한 제2 크롭 컷과의 페어를 결정하는 단계; 및
상기 페어에 포함된 제1 크롭 컷과 제2 크롭 컷을 픽셀 단위로 매칭시키는 단계
를 포함하고,
상기 페어를 결정하는 단계는,
상기 각 제1 크롭 컷의 피쳐들을 추출하는 단계;
상기 제2 크롭 컷들의 각 제2 크롭 컷의 피쳐들을 추출하는 단계; 및
상기 각 제1 크롭 컷의 피쳐들과 상기 각 제2 크롭 컷의 피쳐들 간에 결정된 코릴레이션(correlation)에 기반하여, 제1 크롭 컷과, 해당 제1 크롭 컷에 대해 위치 간의 매칭을 나타내는 키 포인트의 수가 가장 많은 제2 크롭 컷을 페어로서 결정하는 단계
를 포함하고,
상기 페어로서 결정하는 단계는,
제1 크롭 컷의 피쳐들과 제2 크롭 컷의 피쳐들 간의 코릴레이션 맵을 생성하는 단계 - 상기 코릴레이션 맵은 코릴레이션 매트릭스를 포함하고, 상기 코릴레이션 매트릭스의 행 및 열은 제1 크롭 컷 내의 위치 및 제2 크롭 컷 내의 위치를 각각 나타내고, 상기 코릴레이션 매트릭스의 각 요소는 피쳐들 간의 코릴레이션 값을 나타냄 -;
상기 코릴레이션 매트릭스의 각 행별로 코릴레이션 값이 상위인 적어도 하나의 제1 값 및 상기 제1 값의 상기 코릴레이션 매트릭스에서의 제1 위치와, 상기 코릴레이션 매트릭스의 각 열별로 코릴레이션 값이 상위인 적어도 하나의 제2 값 및 상기 제2 값의 상기 코릴레이션 매트릭스에서의 제2 위치를 결정하는 단계;
상기 코릴레이션 매트릭스와 동일한 크기의 초기화된 행렬의 상기 제1 위치에 대응하는 위치에 상기 제1 값을 할당하여 제1 행렬을 생성하고, 상기 코릴레이션 매트릭스와 동일한 크기의 초기화된 제2 행렬의 상기 제2 위치에 위치에 대응하는 위치에 상기 제2 값을 할당하여 제2 행렬을 생성하는 단계;
상기 제1 행렬 및 상기 제2 행렬을 요소별 곱(element-wise product)하여 제3 행렬을 생성하는 단계; 및
상기 제3 행렬에서 0이 아닌 요소를 키 포인트로서 결정하는 단계
를 포함하는, 원본 콘텐츠와 타겟 콘텐츠를 매칭하는 방법. - 컴퓨터 시스템에 의해 수행되는, 복수의 제1 컷들을 포함하는 원본 콘텐츠와 복수의 제2 컷들을 포함하는 타겟 콘텐츠를 매칭하는 방법에 있어서,
상기 원본 콘텐츠와 상기 타겟 콘텐츠를 전처리함으로써, 상기 제1 컷들에 대응하는 제1 크롭 컷들과 상기 제2 컷들에 대응하는 제2 크롭 컷들을 생성하는 단계;
상기 제1 크롭 컷들의 각 제1 크롭 컷과, 상기 제2 크롭 컷들 중에서 상기 각 제1 크롭 컷과 가장 유사한 제2 크롭 컷과의 페어를 결정하는 단계; 및
상기 페어에 포함된 제1 크롭 컷과 제2 크롭 컷을 픽셀 단위로 매칭시키는 단계
를 포함하고,
상기 페어를 결정하는 단계는,
상기 각 제1 크롭 컷의 피쳐들을 추출하는 단계;
상기 제2 크롭 컷들의 각 제2 크롭 컷의 피쳐들을 추출하는 단계; 및
상기 각 제1 크롭 컷의 피쳐들과 상기 각 제2 크롭 컷의 피쳐들 간에 결정된 코릴레이션(correlation)에 기반하여, 제1 크롭 컷과, 해당 제1 크롭 컷에 대해 위치 간의 매칭을 나타내는 키 포인트의 수가 가장 많은 제2 크롭 컷을 페어로서 결정하는 단계
를 포함하고,
상기 페어로서 결정하는 단계는,
상기 제1 크롭 컷들 중 제1 순서의 제1 크롭 컷의 피쳐들과 상기 제2 크롭컷들 중 제2 순서의 제2 크롭 컷의 피쳐들과 매칭되는 것으로 결정된 때,
상기 제1 순서의 다음의 순서인 제1 크롭 컷의 피쳐들과의 코릴레이션을 결정하기 위한 서치 스페이스를 상기 제2 크롭 컷들 중에서 소정의 수의 제2 크롭 컷들의 피쳐들로 결정하는 단계; 및
상기 다음의 순서인 제1 크롭 컷의 피쳐들과 상기 서치 스페이스에 포함된 제2 크롭 컷들의 피쳐들 간에 결정된 코릴레이션에 기반하여, 상기 다음의 순서인 제1 크롭 컷과, 상기 서치 스페이스에 포함된 피쳐들과 연관된 제2 크롭 컷들 중에서 상기 키 포인트의 수가 가장 많은 제2 크롭 컷을 페어로서 결정하는 단계
를 포함하고,
상기 서치 스페이스로서 결정되는 소정의 수의 제2 크롭 컷들의 피쳐들은 상기 제2 순서 전후의 소정의 수의 제2 크롭 컷들의 피쳐들을 포함하는, 원본 콘텐츠와 타겟 콘텐츠를 매칭하는 방법. - 제8항에 있어서,
상기 페어로서 결정하는 단계는,
상기 제1 컷들의 순서에 따라, 상기 각 제1 크롭 컷에 대해 순차적으로 상기 각 제1 크롭 컷과 페어가 되는 제2 크롭 컷을 결정하는 단계
를 포함하는, 원본 콘텐츠와 타겟 콘텐츠를 매칭하는 방법. - 컴퓨터 시스템에 의해 수행되는, 복수의 제1 컷들을 포함하는 원본 콘텐츠와 복수의 제2 컷들을 포함하는 타겟 콘텐츠를 매칭하는 방법에 있어서,
상기 원본 콘텐츠와 상기 타겟 콘텐츠를 전처리함으로써, 상기 제1 컷들에 대응하는 제1 크롭 컷들과 상기 제2 컷들에 대응하는 제2 크롭 컷들을 생성하는 단계;
상기 제1 크롭 컷들의 각 제1 크롭 컷과, 상기 제2 크롭 컷들 중에서 상기 각 제1 크롭 컷과 가장 유사한 제2 크롭 컷과의 페어를 결정하는 단계; 및
상기 페어에 포함된 제1 크롭 컷과 제2 크롭 컷을 픽셀 단위로 매칭시키는 단계
를 포함하고,
상기 페어를 결정하는 단계는,
상기 각 제1 크롭 컷의 피쳐들을 추출하는 단계;
상기 제2 크롭 컷들의 각 제2 크롭 컷의 피쳐들을 추출하는 단계; 및
상기 각 제1 크롭 컷의 피쳐들과 상기 각 제2 크롭 컷의 피쳐들 간에 결정된 코릴레이션(correlation)에 기반하여, 제1 크롭 컷과, 해당 제1 크롭 컷에 대해 위치 간의 매칭을 나타내는 키 포인트의 수가 가장 많은 제2 크롭 컷을 페어로서 결정하는 단계
를 포함하고,
상기 픽셀 단위로 매칭시키는 단계는,
상기 키 포인트에 기반하여 상기 페어에 포함된 제1 크롭 컷과 제2 크롭 컷에 대한 어파인 변환(affine transform)을 위한 어파인 매트릭스를 추정하는 단계
를 포함하는, 원본 콘텐츠와 타겟 콘텐츠를 매칭하는 방법. - 제10항에 있어서,
상기 어파인 매트릭스는 상기 페어에 포함된 제1 크롭 컷의 제2 크롭 컷으로의 스케일 변환 및 이동(translation) 변환을 고려하되, 상기 페어에 포함된 제1 크롭 컷의 제2 크롭 컷으로의 회전 변환은 고려하지 않도록 구성되는, 원본 콘텐츠와 타겟 콘텐츠를 매칭하는 방법. - 컴퓨터 시스템에 의해 수행되는, 복수의 제1 컷들을 포함하는 원본 콘텐츠와 복수의 제2 컷들을 포함하는 타겟 콘텐츠를 매칭하는 방법에 있어서,
상기 원본 콘텐츠와 상기 타겟 콘텐츠를 전처리함으로써, 상기 제1 컷들에 대응하는 제1 크롭 컷들과 상기 제2 컷들에 대응하는 제2 크롭 컷들을 생성하는 단계;
상기 제1 크롭 컷들의 각 제1 크롭 컷과, 상기 제2 크롭 컷들 중에서 상기 각 제1 크롭 컷과 가장 유사한 제2 크롭 컷과의 페어를 결정하는 단계; 및
상기 페어에 포함된 제1 크롭 컷과 제2 크롭 컷을 픽셀 단위로 매칭시키는 단계
를 포함하고,
상기 페어를 결정하는 단계는,
상기 각 제1 크롭 컷의 피쳐들을 추출하는 단계;
상기 제2 크롭 컷들의 각 제2 크롭 컷의 피쳐들을 추출하는 단계; 및
상기 각 제1 크롭 컷의 피쳐들과 상기 각 제2 크롭 컷의 피쳐들 간에 결정된 코릴레이션(correlation)에 기반하여, 제1 크롭 컷과, 해당 제1 크롭 컷에 대해 위치 간의 매칭을 나타내는 키 포인트의 수가 가장 많은 제2 크롭 컷을 페어로서 결정하는 단계
를 포함하고,
추출된 상기 각 제1 크롭 컷의 피쳐들은 상기 원본 콘텐츠와 연관된 하이 레벨(high-level) 피쳐들이고,
추출된 상기 각 제2 크롭 컷의 피쳐들은 상기 타겟 콘텐츠와 연관된 하이 레벨 피쳐들인, 원본 콘텐츠와 타겟 콘텐츠를 매칭하는 방법. - 제12항에 있어서,
상기 픽셀 단위로 매칭시키는 단계는,
상기 페어에 포함된 제1 크롭 컷과 제2 크롭 컷을 1차적으로 매칭시키는 단계; 및
상기 제1 크롭 컷과, 상기 제1 크롭 컷과의 1차적인 매칭에 따라 매칭된 크롭 컷에 기반하여, 상기 페어에 포함된 제1 크롭 컷과 제2 크롭 컷을 2차적으로 매칭시키는 단계
를 포함하고,
상기 2차적으로 매칭시키는 단계는,
상기 페어에 포함된 제1 크롭 컷의 로우 레벨(low-level) 피쳐들을 추출하는 단계;
상기 매칭된 크롭 컷의 로우 레벨 피쳐들을 추출하는 단계;
상기 페어에 포함된 제1 크롭 컷의 로우 레벨 피쳐들과 상기 매칭된 크롭 컷의 로우 레벨 피쳐들 간에 결정된 코릴레이션(correlation)에 기반하여, 상기 페어에 포함된 제1 크롭 컷과 상기 매칭된 크롭 컷의 위치 간의 매칭을 나타내는 키 포인트를 결정하는 단계; 및
상기 페어에 포함된 제1 크롭 컷 및 상기 매칭된 크롭 컷에 대해 결정된 키 포인트에 기반하여, 상기 페어에 포함된 제1 크롭 컷과 상기 매칭된 크롭 컷에 대한 어파인 변환을 위한 어파인 매트릭스를 추정하는 단계
를 포함하는, 원본 콘텐츠와 타겟 콘텐츠를 매칭하는 방법. - 제13항에 있어서,
상기 어파인 매트릭스를 추정하는 단계는,
상기 페어에 포함된 제1 크롭 컷 및 상기 매칭된 크롭 컷에 대해 결정된 키 포인트를 샘플링하는 단계; 및
상기 샘플링된 키 포인트에 기반하여 상기 어파인 매트릭스를 추정하는 단계
를 포함하고,
상기 어파인 매트릭스가 수렴할 때까지, 상기 키 포인트를 샘플링하는 단계 및 상기 샘플링된 키 포인트에 기반하여 상기 어파인 매트릭스를 추정하는 단계를 반복하는, 원본 콘텐츠와 타겟 콘텐츠를 매칭하는 방법. - 제10항 또는 제13항에 있어서,
상기 어파인 매트릭스는 RANSAC 알고리즘을 사용하여 추정되는, 원본 콘텐츠와 타겟 콘텐츠를 매칭하는 방법. - 제13항에 있어서,
상기 피쳐들은 인공신경망 기반의 모델을 사용하여 추출되고,
상기 하이 레벨 피쳐들과 상기 로우 레벨 피쳐들은 상기 인공신경망 기반의 모델에 포함된 서로 다른 레이어의 출력으로부터 각각 추출되고,
상기 하이 레벨 피쳐들은 상기 로우 레벨 피쳐들에 비해, 상기 인공신경망 기반의 모델의 출력에 더 가까운 레이어의 출력으로부터 추출된 것인, 원본 콘텐츠와 타겟 콘텐츠를 매칭하는 방법. - 제1항에 있어서,
상기 원본 콘텐츠는 웹툰 콘텐츠이고,
상기 타겟 콘텐츠는 상기 웹툰 콘텐츠를 복제하여 가공된 콘텐츠인, 원본 콘텐츠와 타겟 콘텐츠를 매칭하는 방법. - 제1항의 방법을 상기 컴퓨터 시스템에서 실행시키기 위한 컴퓨터 판독 가능 기록매체에 기록된 프로그램.
- 복수의 제1 컷들을 포함하는 원본 콘텐츠와 복수의 제2 컷들을 포함하는 타겟 콘텐츠를 매칭하는 컴퓨터 시스템에 있어서,
상기 컴퓨터 시스템에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서
를 포함하고,
상기 적어도 하나의 프로세서는,
상기 원본 콘텐츠와 상기 타겟 콘텐츠를 전처리함으로써, 상기 제1 컷들에 대응하는 제1 크롭 컷들과 상기 제2 컷들에 대응하는 제2 크롭 컷들을 생성하고,
상기 제1 크롭 컷들의 각 제1 크롭 컷과, 상기 제2 크롭 컷들 중에서 상기 각 제1 크롭 컷과 가장 유사한 제2 크롭 컷과의 페어를 결정하고,
상기 페어에 포함된 제1 크롭 컷과 제2 크롭 컷을 픽셀 단위로 매칭시키고,
상기 적어도 하나의 프로세서는,
상기 페어를 결정함에 있어서,
상기 각 제1 크롭 컷의 피쳐들을 추출하고, 상기 제2 크롭 컷들의 각 제2 크롭 컷의 피쳐들을 추출하고, 상기 각 제1 크롭 컷의 피쳐들과 상기 각 제2 크롭 컷의 피쳐들 간에 결정된 코릴레이션(correlation)에 기반하여, 제1 크롭 컷과, 해당 제1 크롭 컷에 대해 위치 간의 매칭을 나타내는 키 포인트의 수가 가장 많은 제2 크롭 컷을 페어로서 결정하고,
상기 키 포인트는 상기 페어를 이루는 제1 크롭 컷과 제2 크롭 컷 간에 대칭적으로 매칭되는 위치를 나타내는, 컴퓨터 시스템.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210123431A KR102632640B1 (ko) | 2021-09-15 | 2021-09-15 | 원본 콘텐츠와 타겟 콘텐츠를 픽셀 단위로 매칭하는 방법 및 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210123431A KR102632640B1 (ko) | 2021-09-15 | 2021-09-15 | 원본 콘텐츠와 타겟 콘텐츠를 픽셀 단위로 매칭하는 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20230040163A KR20230040163A (ko) | 2023-03-22 |
KR102632640B1 true KR102632640B1 (ko) | 2024-02-01 |
Family
ID=86005858
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210123431A KR102632640B1 (ko) | 2021-09-15 | 2021-09-15 | 원본 콘텐츠와 타겟 콘텐츠를 픽셀 단위로 매칭하는 방법 및 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102632640B1 (ko) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008092594A (ja) * | 2003-09-30 | 2008-04-17 | Toshiba Corp | 動画像処理装置 |
JP2012023462A (ja) * | 2010-07-12 | 2012-02-02 | Canon Inc | 画像読取方法、画像読取システム、及び画像読取装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102102403B1 (ko) * | 2018-06-19 | 2020-04-21 | 한밭대학교 산학협력단 | 위조 영상 인쇄물 감식을 통한 코드인증방법과 그 응용 시스템 |
-
2021
- 2021-09-15 KR KR1020210123431A patent/KR102632640B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008092594A (ja) * | 2003-09-30 | 2008-04-17 | Toshiba Corp | 動画像処理装置 |
JP2012023462A (ja) * | 2010-07-12 | 2012-02-02 | Canon Inc | 画像読取方法、画像読取システム、及び画像読取装置 |
Also Published As
Publication number | Publication date |
---|---|
KR20230040163A (ko) | 2023-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wu et al. | Deep portrait image completion and extrapolation | |
CN107209942B (zh) | 对象检测方法和图像检索系统 | |
CN110688524A (zh) | 视频检索方法、装置、电子设备及存储介质 | |
US11568631B2 (en) | Method, system, and non-transitory computer readable record medium for extracting and providing text color and background color in image | |
CN112101386B (zh) | 文本检测方法、装置、计算机设备和存储介质 | |
CN111275784A (zh) | 生成图像的方法和装置 | |
CN111104813A (zh) | 二维码图像关键点检测方法、装置、电子设备及存储介质 | |
JP2019215647A (ja) | 情報処理装置、その制御方法及びプログラム。 | |
KR101833943B1 (ko) | 동영상의 주요 장면을 추출 및 탐색하는 방법 및 시스템 | |
CN109165654B (zh) | 一种目标定位模型的训练方法和目标定位方法及装置 | |
CN111741329B (zh) | 一种视频处理方法、装置、设备及存储介质 | |
CN110516731B (zh) | 一种基于深度学习的视觉里程计特征点检测方法及系统 | |
Kerbiche et al. | A robust video watermarking based on feature regions and crowdsourcing | |
JP7539998B2 (ja) | ズームアグノスティックウォーターマーク抽出 | |
CN114329050A (zh) | 视觉媒体数据去重处理方法、装置、设备和存储介质 | |
KR102632640B1 (ko) | 원본 콘텐츠와 타겟 콘텐츠를 픽셀 단위로 매칭하는 방법 및 장치 | |
KR20110087620A (ko) | 레이아웃 기반의 인쇄매체 페이지 인식방법 | |
US20240037995A1 (en) | Detecting wrapped attacks on face recognition | |
Chaitra et al. | Digital image forgery: taxonomy, techniques, and tools–a comprehensive study | |
US20230325961A1 (en) | Zoom agnostic watermark extraction | |
Battiato et al. | In-depth DCT coefficient distribution analysis for first quantization Estimation | |
CN114140488A (zh) | 视频目标分割方法及装置、视频目标分割模型的训练方法 | |
CN113538467A (zh) | 图像分割方法和装置及图像分割模型的训练方法和装置 | |
KR102689412B1 (ko) | 식별 정보를 삽입하기 위해 콘텐츠의 이미지로부터 복잡도가 높은 영역을 결정하는 방법 및 장치 | |
Yan et al. | MSA-Net: Multi-scale attention network for image splicing localization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |