KR102234385B1 - 상표 검색 방법 및 장치 - Google Patents

상표 검색 방법 및 장치 Download PDF

Info

Publication number
KR102234385B1
KR102234385B1 KR1020200181271A KR20200181271A KR102234385B1 KR 102234385 B1 KR102234385 B1 KR 102234385B1 KR 1020200181271 A KR1020200181271 A KR 1020200181271A KR 20200181271 A KR20200181271 A KR 20200181271A KR 102234385 B1 KR102234385 B1 KR 102234385B1
Authority
KR
South Korea
Prior art keywords
classification
model
trademark
image
classifications
Prior art date
Application number
KR1020200181271A
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 KR1020200181271A priority Critical patent/KR102234385B1/ko
Priority to KR1020210038827A priority patent/KR20220090367A/ko
Application granted granted Critical
Publication of KR102234385B1 publication Critical patent/KR102234385B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/56Information retrieval; Database structures therefor; File system structures therefor of still image data having vectorial format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/53Querying
    • G06F16/532Query formulation, e.g. graphical querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/53Querying
    • G06F16/538Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/55Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2216/00Indexing scheme relating to additional aspects of information retrieval not explicitly covered by G06F16/00 and subgroups
    • G06F2216/11Patent retrieval

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Image Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

인공 지능을 이용한 상표 검색 방법은 하나 이상의 프로세서에 의해 실행되는 제1 학습 모델이 쿼리 이미지를 수신하는 단계; 상기 제1 학습 모델이 상기 쿼리 이미지의 전체 외형에 관한 제1 특징 벡터를 추출하는 단계; 상기 하나 이상의 프로세서에 의해, 데이터베이스에 저장된 상표 이미지의 제2 특징 벡터와 상기 제1 특징 벡터의 유사도를 계산하는 단계; 상기 하나 이상의 프로세서에 의해 실행되는 제2 학습 모델이 상기 쿼리 이미지를 수신하는 단계; 상기 제2 학습 모델이 상기 쿼리 이미지의 부분 이미지에 기초하여 상기 쿼리 이미지가 해당하는 적어도 하나의 분류를 출력하는 단계; 상기 제2 특징 벡터와 상기 제1 특징 벡터의 유사도 및 상기 적어도 하나의 분류에 기초하여 상기 데이터베이스에 저장된 상표 이미지 중 상기 쿼리 이미지와 유사한 이미지를 적어도 하나 선택하는 단계; 및 상기 선택된 이미지를 제공하는 단계를 포함한다.

Description

상표 검색 방법 및 장치{METHOD OF SEARCHING TRADEMARKS AND APPARATUS FOR SEARCHING TRADEMARKS}
본 개시는 상표 검색 방법 및 장치에 관한 것으로, 보다 자세하게는 두 가지 인공 지능(Artificial Intelligence, AI) 모델을 이용한 상표 검색 방법 및 장치에 관한 것이다.
현재 상표를 검색하기 위해 많이 사용하고 있는 키프리스(kipris.or.kr)의 경우 상품분류목록, 유사군코드, 상표명, 도형상표, 출원번호, 공고번호, 등록번호, 출원인 등의 분류기준을 통해 상표를 검색할 수 있다. 또한, 유사한 발음을 가진 상표명을 검색할 수도 있다. 또한, 도형의 유사성을 분류한 비엔나 코드를 이용하여 상표를 검색할 수도 있다. 그러나, 이미지 검색의 경우, 비엔나 코드가 동일하더라도 유사하지 않은 이미지가 검색되거나, 비엔나 코드가 상이하지만 유사한 이미지는 검색하기 어려운 문제가 있다. 이를 보완하기 위해 인공 지능을 활용하여 상표 이미지를 분류하는 여러 방안이 고안되고 있으나, 실질적으로 성과를 내고 있는 경우는 찾기 어렵다.
한국특허 공개번호 제10-2017-0083453호 한국특허 공개번호 제10-2019-0030434호 한국특허 공개번호 제10-2019-0098801호
본 개시는 상표 검색에 있어서 이미지 유사도를 추정하는 모델과 분류 코드를 추정하는 모델, 두 가지 모델을 이용하여 유사한 도형 이미지를 갖는 상표를 용이하게 검색하는 상표 검색 방법 및 장치를 제공한다.
본 개시의 일 형태에 의하면, 인공 지능을 이용한 상표 검색 방법이 개시된다. 상표 검색 방법은 하나 이상의 프로세서에 의해 실행되는 제1 학습 모델이 쿼리 이미지를 수신하는 단계; 상기 제1 학습 모델이 상기 쿼리 이미지의 전체 외형에 관한 제1 특징 벡터를 추출하는 단계; 상기 하나 이상의 프로세서에 의해, 데이터베이스에 저장된 상표 이미지의 제2 특징 벡터와 상기 제1 특징 벡터의 유사도를 계산하는 단계; 상기 하나 이상의 프로세서에 의해 실행되는 제2 학습 모델이 상기 쿼리 이미지를 수신하는 단계; 상기 제2 학습 모델이 상기 쿼리 이미지의 부분 이미지에 기초하여 상기 쿼리 이미지가 해당하는 적어도 하나의 분류를 출력하는 단계; 상기 제2 특징 벡터와 상기 제1 특징 벡터의 유사도 및 상기 적어도 하나의 분류에 기초하여 상기 데이터베이스에 저장된 상표 이미지 중 상기 쿼리 이미지와 유사한 이미지를 적어도 하나 선택하는 단계; 및 상기 선택된 이미지를 제공하는 단계를 포함한다.
일 실시예에서, 상기 제2 학습 모델은 메인 모델과 서브 모델을 포함한다. 상기 제2 학습 모델이 상기 적어도 하나의 분류를 출력하는 단계는, 상기 메인 모델이 상기 쿼리 이미지에 기초하여 제1 분류를 제공 - 상기 제1 분류는 상기 적어도 하나의 분류에 포함됨 - 하는 단계; 상기 서브 모델이 상기 쿼리 이미지에 기초하여 제2 분류를 제공하는 단계; 및 상기 하나 이상의 프로세서에 의해, 상기 제1 분류와 상기 제2 분류가 상이하다고 판단하는 것에 대응하여, 상기 제1 분류를 상기 제2 분류로 대체하는 단계를 포함할 수 있다.
일 실시예에서, 상기 제2 학습 모델은 메인 모델과 서브 모델을 포함하고, 상기 메인 모델은 상기 쿼리 이미지에 포함된 도형을 N개의 분류로 분류하도록 구성되고, 상기 서브 모델은 상기 쿼리 이미지를 상기 N개의 분류 중 선택된 M개의 분류로 분류하도록 구성될 수 있다.
일 실시예에서, 상기 제2 학습 모델이 상기 적어도 하나의 분류를 출력하는 단계는, 상기 메인 모델이 상기 쿼리 이미지에 기초하여 제1 분류를 제공 - 상기 제1 분류는 상기 적어도 하나의 분류에 포함됨 - 하는 단계; 상기 하나 이상의 프로세서에 의해, 상기 제1 분류가 상기 M개의 분류에 포함되는지 판정하는 단계; 상기 제1 분류가 상기 M개의 분류에 포함된다는 판정에 대응하여, 상기 서브 모델이 상기 쿼리 이미지에 기초하여 제2 분류를 제공하는 단계; 및 상기 하나 이상의 프로세서에 의해, 상기 제1 분류와 상기 제2 분류가 상이하다고 판단하는 것에 대응하여, 상기 제1 분류를 상기 제2 분류로 대체하는 단계를 포함할 수 있다.
일 실시예에서, 상기 제2 학습 모델은 객체 탐지를 수행하는 모델을 포함하고, 상기 쿼리 이미지 내에서 픽셀값이 급변하는 지점에 기초해 복수의 오브젝트 가능성 박스를 결정하고, 상기 오브젝트 가능성 박스의 관심 영역이 겹치는 비율을 계산하여 상기 쿼리 이미지의 일부 이미지에 대한 분류를 수행하도록 구성될 수 있다.
일 실시예에서, 상기 제2 특징 벡터와 상기 제1 특징 벡터의 유사도 및 상기 적어도 하나의 분류에 기초하여 상기 데이터베이스에 저장된 상표 이미지 중 상기 쿼리 이미지와 유사한 이미지를 적어도 하나 선택하는 단계는, 상기 적어도 하나의 분류와 상기 데이터베이스에 저장된 상표 이미지의 분류를 비교하여 겹치는 분류의 개수를 판정하는 단계, 상기 적어도 하나의 분류와 상기 데이터베이스에 저장된 상표 이미지의 분류를 비교하여 겹치는 분류의 개수에 따른 가중치를 불러오는 단계, 및 상기 가중치와 상기 제2 특징 벡터와 상기 제1 특징 벡터의 유사도에 기초하여 상기 쿼리 이미지와 유사한 이미지를 적어도 하나 선택하는 단계를 포함할 수 있다.
본 개시의 일 형태에 의하면, 상표 검색 장치가 개시된다. 상표 검색 장치는, 상표 검색 모델을 저장하도록 구성된 스토리지; 및 상기 상표 검색 모델을 실행하도록 구성된 프로세서를 포함한다. 상기 상표 검색 모델은 제1 학습 모델 및 제2 학습 모델을 포함 - 상기 제1 학습 모델은 쿼리 이미지로부터 제1 특징 벡터를 추출하여 데이터베이스에 저장된 상표 이미지의 제2 특징 벡터와의 유사도를 구하도록 구성되고, 제2 학습 모델은 상기 쿼리 이미지의 부분 이미지에 기초하여 상기 쿼리 이미지가 해당하는 적어도 하나의 분류를 출력하도록 구성된다. 상기 프로세서는 상기 제2 특징 벡터와 상기 제1 특징 벡터의 유사도 및 상기 적어도 하나의 분류에 기초하여 상기 데이터베이스에 저장된 상기 상표 이미지 중 상기 쿼리 이미지와 유사한 이미지를 적어도 하나 선택하도록 구성된다.
일 실시예에서, 상기 제1 학습 모델은 도형의 유사도를 측정하도록 구성되고 학습되되, N개의 분류로 분류된 제1 학습 데이터를 사용하여 삼중 손실 함수(triplet loss function)로 학습되고, 상기 제2 학습 모델은 상표에 포함된 도형을 상기 N개의 분류로 분류하도록 구성되고 학습되되, 상기 제1 학습 데이터를 사용하여 학습될 수 있다.
일 실시예에서, 상기 제2 학습 모델은 메인 모델 및 서브 모델을 포함할 수 있다. 상기 메인 모델은 상기 쿼리 이미지를 N개의 분류로 분류하도록 구성되고, 상기 서브 모델은 상기 쿼리 이미지를 상기 N개의 분류 중 선택된 M개의 분류로 분류하도록 구성될 수 있다.
일 실시예에서, 상기 적어도 하나의 분류를 분류하는 기준 중 적어도 하나는 비엔나 코드일 수 있다. 상기 메인 모델은 상기 쿼리 이미지에 기초하여 제1 분류를 제공 - 상기 제1 분류는 상기 N개의 분류에 포함됨 - 하도록 구성되고; 상기 하나 이상의 프로세서는, 상기 제1 분류가 상기 M개의 분류에 포함되는지 판정하도록 구성되고; 상기 서브 모델은, 상기 제1 분류가 상기 M개의 분류에 포함된다는 판정에 대응하여 상기 쿼리 이미지에 기초하여 제2 분류를 제공하도록 구성되고; 및 상기 하나 이상의 프로세서는, 상기 제1 분류와 상기 제2 분류가 상이하다고 판단하는 것에 대응하여, 상기 제1 분류를 상기 제2 분류로 대체하도록 구성될 수 있다.
일 실시예에서, 상기 제2 학습 모델은 메인 모델과 서브 모델을 포함할 수 있다. 상기 메인 모델은 상기 쿼리 이미지에 기초하여 제1 분류를 제공 - 상기 제1 분류는 상기 적어도 하나의 분류에 포함됨 - 하도록 구성되고, 상기 서브 모델은 상기 쿼리 이미지에 기초하여 제2 분류를 제공하도록 구성되고, 상기 프로세서는, 상기 제1 분류와 상기 제2 분류가 상이하다고 판단하는 것에 대응하여, 상기 제1 분류를 상기 제2 분류로 대체하도록 구성될 수 있다.
일 실시예에서, 상기 제2 학습 모델은 객체 탐지를 수행하는 신경망을 포함하고, 상기 제2 상표 이미지로부터 복수의 요부를 추출하여 상기 복수의 요부 각각에 해당하는 분류를 추정하도록 구성될 수 있다.
일 실시예에서, 상기 프로세서는, 상기 적어도 하나의 분류와 상기 데이터베이스에 저장된 상표 이미지의 분류를 비교하여 겹치는 분류의 개수를 판정하고, 상기 적어도 하나의 분류와 상기 데이터베이스에 저장된 상표 이미지의 분류를 비교하여 겹치는 분류의 개수에 따른 가중치를 불러오고, 상기 가중치와 상기 제2 특징 벡터와 상기 제1 특징 벡터의 유사도에 기초하여 상기 쿼리 이미지와 유사한 이미지를 적어도 하나 선택하도록 구성될 수 있다.
상표 검색을 위해 간단히 이미지를 업로드하여 유사한 상표 이미지를 용이하게 검색할 수 있다. 또한, 두 가지 인공 지능 모델을 이용한 검색 모델을 이용하여 도형의 전체적인 외형 이미지뿐 아니라 상표 요부의 세부적 이미지의 유사함을 구분할 수 있는 상표 검색 엔진을 제공할 수 있다.
도 1은 일 실시예에 따른 상표 검색 환경의 블록도이다.
도 2는 일 실시예에 따른 단말기의 블록도이다.
도 3은 일 실시예에 따른 상표 검색 서버의 블록도이다.
도 4a는 일실시예에 따른 제1 학습 모델을 사용한 유사 이미지의 유사도 히스토그램이고 도 4b는 일실시예에 따른 제1 학습 모델을 사용한 랜덤 이미지의 유사도 히스토그램이다.
도 5a는 일실시예에 따른 제1 학습 모델 및 제2 학습 모델을 사용한 유사 이미지의 유사도 히스토그램이고 도 5b는 일실시예에 따른 제1 학습 모델 및 제2 학습 모델을 사용한 랜덤 이미지의 유사도 히스토그램이다
도 6은 일 실시예에 따른 상표 검색 모델을 도시한 블록도이다.
도 7은 일 실시예에 따른 상표 검색 방법을 도시한 순서도이다.
도 8은 일 실시예에 따른 데이터베이스 제작 방법을 도시한 순서도이다.
도 9a 내지 9c는 일 실시예에 따른 상표 이미지에서 일부 이미지에 따라 분류하는 예시도이다.
이하에서는 도면을 참조하여 본 개시에 대해 상세히 설명하도록 한다. 본 개시를 설명함에 있어서, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그에 대해 상세한 설명은 생략한다. 덧붙여, 하기 실시 예는 여러 가지 다른 형태로 변형될 수 있으며, 본 개시의 기술적 사상의 범위가 하기 실시 예에 한정되는 것은 아니다. 오히려, 이들 실시 예는 본 개시를 더욱 충실하고 완전하게 하고, 당업자에게 본 개시의 기술적 사상을 완전하게 전달하기 위하여 제공되는 것이다.
본 개시에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 개시의 실시 예의 다양한 변경(modifications), 균등물(equivalents), 및/또는 대체물(alternatives)을 포함하는 것으로 이해되어야 한다.
도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.
본 개시에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다. 본 개시에서, "A 또는 B," "A 또는/및 B 중 적어도 하나," 또는 "A 또는/및 B 중 하나 또는 그 이상"등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. 예를 들면, "A 또는 B," "A 및 B 중 적어도 하나," 또는 "A 또는 B 중 적어도 하나"는, (1) 적어도 하나의 A를 포함, (2) 적어도 하나의 B를 포함, 또는 (3) 적어도 하나의 A 및 적어도 하나의 B 모두를 포함하는 경우를 모두 지칭할 수 있다.
본 개시에서 사용된 "제1," "제2," "첫째," 또는 "둘째,"등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 다른 구성요소(예: 제3 구성요소)가 존재하지 않는 것으로 이해될 수 있다.
본 개시에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)," "~하는 능력을 가지는(having the capacity to)," "~하도록 설계된(designed to)," "~하도록 변경된(adapted to)," "~하도록 만들어진(made to)," 또는 "~를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성된(또는 설정된)"은 하드웨어적으로 "특별히 설계된(specifically designed to)" 것 만을 반드시 의미하지 않을 수 있다. 대신, 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 프로세서," A, B, 및 C를 수행하도록 구성된(또는 설정된) 모듈"은 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다.
인공 지능을 이용한 상표 이미지 검색
본 개시에서, 인공 지능을 이용한다는 것은 대량의 학습 데이터를 통해 인공 신경망(Artificial Neural Network, ANN)을 포함하는 학습 모델을 학습시켜 인공 신경망 내부의 파라미터를 최적화하고, 학습된 학습 모델을 이용한다는 것을 의미할 수 있다. 본 개시의 일 실시예에서, 특허청에서 제공하는 상표의 이미지 데이터를 수집하고 가공하여 학습 데이터를 만들고 이를 저장하는 데이터베이스를 만든다. 데이터베이스에 학습 데이터, 상표 데이터, 상표 데이터의 특징 벡터(feature vector), 상표 데이터의 분류 등을 저장시킬 수 있다.
학습 데이터는 별도의 데이터베이스에 저장될 수 있다. 학습 데이터를 이용하여 학습시킨 학습 모델에 데이터베이스에 저장되어 있는 상표 이미지들을 입력하여, 각각의 상표 이미지로부터 특징 벡터를 추출하여 저장하고, 검색하고자 하는 상표의 이미지(쿼리 이미지, (query image))가 학습 모델이 입력되면, 쿼리 이미지로부터 특징 벡터를 추출하여 저장된 특징 벡터와 비교하여 유사도를 계산한다. 또, 본 개시에 있어서, 인공 지능을 활용하여 상표 이미지에 포함된 도형의 전체적인 유사도뿐 아니라, 도형의 일부분의 유사도를 판단하여 이를 활용할 수 있다. 예를 들어, 학습 모델을 사용하여 도형 전체 및/또는 일부를 각각 분류하고 도형의 분류에 따른 도형 분류 결과값을 구한다. 그 다음, 특징 벡터의 유사도와 도형 분류 결과값을 곱하여 최종 유사도를 계산할 수 있다.
인공 신경망
인공 신경망은 생물학적 신경막에 착안된 컴퓨팅 시스템을 지칭할 수 있다. 인공 신경망은 복수의 신경망 레이어로 구성될 수 있다. 각각의 신경망 레이어는 복수의 파라미터를 갖고 있으며, 이전 레이어의 연산 결과와 복수의 파라미터들 간의 연산을 통해 신경망 연산을 수행한다. 복수의 신경망 레이어들이 갖고 있는 파라미터들은 인공 신경망의 학습 결과에 의해 최적화될 수 있다. 본 개시에 따른 인공 신경망 모델은 합성곱 신경망(Convolutional Neural Network, CNN), 심층 신경망(Deep Neural Network, DNN), 순환 신경망(Recurrent Neural Network, RNN), 제한적 볼츠만 머신(Restricted Boltzmann Machine, RBM), 심층 신뢰 신경망(Deep Belief Network, DBN), 양방향 순환 신경망(Bidirectional Recurrent Deep Neural Network, BRDNN) 또는 심층 Q-네트워크(Deep Q-Networks) 등 중 적어도 어느 하나 또는 이들의 조합이 있으나, 전술한 예에 한정되지 않는다.
일 실시예에서, 인공 신경망으로 합성곱 신경망을 이용한 모델을 사용한다. 예를 들어, 이미지 전체 외형의 유사도를 측정하기 위해 특화된 합성곱 신경망을 사용한다.
합성곱 신경망
합성곱 신경망은 이미지 인식에 일반적으로 사용되므로, 간단히 설명한다. 합성곱 신경망은 이미지의 공간 정보를 유지할 수 있어 이미지 인식에 주로 사용된다. 일반적으로 합성곱 신경망은 합성곱 계층(layer), 활성화 함수, 풀링 계층 등을 조합하여 제작될 수 있다. 합성곱 계층은, 입력 데이터에 행렬로 표현되는 필터(혹은 커널(Kernel))를 적용하여 특징 맵을 출력하는 계층이다. 필터는 학습에 의해 자동으로 생성될 수 있고, 학습 모델을 학습시켜 인공 신경망 내부의 파라미터를 최적화한다는 것은 필터를 최적화함을 의미한다.
합성곱 신경망을 포함하는 학습 모델은, 이미지로부터 복수의 필터를 이용해 특징 맵을 추출하고 풀링하는 것을 반복하고, 최종적으로 얻어지는 특징 맵을 완전 연결 계층(fully connected layer)으로 변환하여, 이를 통해 특징 벡터를 얻는다.
본 개시의 일 실시예에서 사용하는 학습 모델은 inception, VGG. LeNet, AlexNet, ZFNet, VGG, GoogLeNet, ResNet, MobileNet, EfficientNet 등의 모델 중 어느 하나를 사용하거나 일부 변형하여 사용할 수 있으나, 이에 한정되지 않는다.
데이터베이스 제작
데이터베이스의 제작은 다음과 같이 수행하였다.
본 개시에서, 상표 데이터는 키프리스 플러스(plus.kipris.or.kr)로부터 제공받았다. 키프리스 플러스는 bulk data 및/또는 open API 방식으로 특허청이 개방 중인 특허, 상표, 디자인 정보를 제공한다. 데이터베이스 제작 시에, 약 90만개의 데이터를 키프리스 플러스로부터 얻었다. 즉, 약 총 90만개의 도형 상표 및 도형과 문자의 복합 상표를 얻었다. 여기서 중복되는 상표를 제거하였다. 또한, 본 개시의 여러 목적 중 하나는 도형의 유사함을 용이하게 검색하는 것이므로 복합 상표에서 문자를 구분하여 이미지(도형) 상표로 분류된 상표만을 추출하였다.
일 실시예에서, 중복되는 상표의 제거는, 키프리스로부터 얻은 데이터에서 특허 출원인을 파싱하여 진행한다. 이를 통해, 제1 상표 데이터(중복 제거한 데이터)를 획득한다.
일 실시예에서, 제1 상표 데이터에서 도형 이미지로 사용할 상표를 분류하는 단계는 다음과 같다. 제1 상표 데이터로부터 도형이미지로 분류하기 위해서 종래에 알려진 Binary Classification model(이하, 도형 추출 모델)을 사용한다.
예를 들어, inception, VGG. LeNet, AlexNet, ZFNet, VGG, GoogLeNet, ResNet, MobileNet, EfficientNet 등의 모델 중 어느 하나를 사용하거나 일부 변형하여 사용할 수 있다. 일 실시예에서, OpenCV, PIL의 Image 모듈 중 적어도 하나와 합성곱 신경망을 이용하여 복합 상표로부터 도형과 문자를 구분한다. 일 실시예에서, 상표 데이터를 임의로 분할하거나 문자가 있다고 추정되는 영역을 합성곱 신경망으로 학습시키고 이를 이용해 도형과 문자를 구분할 수 있다.
일 실시예에 있어서, 상표 데이터에서 문자와 상표의 구분 기준은 도형이 전체 상표의 일정 크기 이상을 차지하는 경우 도형 이미지로 구분하였다. 예를 들어 상기 일정 크기는 전체 크기의 약 50%일 수 있다. 상기 일정 크기는 변경될 수 있다. 일 실시예에서, 크기 비율은 도형 및 문자의 실제 면적을 이용할 수도 있고, 바운딩 박스(bounding box)를 이용할 수도 있다. 문자가 디자인을 가진 경우, 도형 내에 문자가 포함되는 경우 도형으로 분류한다. 도형 추출 모델의 학습 데이터는 임의로 2000개를 선택하였다. 즉 2000개의 상표 이미지로 도형 추출 모델을 학습시키고, 제1 상표 데이터를 도형 추출 모델에 입력하여 도형 이미지로 사용할 제2 상표 데이터를 획득한다.
학습데이터를 이용하여 도형 추출 모델을 학습시키고, 제1 상표 데이터를 도형 추출 모델에 입력하여 제2 상표 데이터(중복 제거 및 도형으로 분류된 데이터)를 얻어 데이터베이스에 저장하였다. 즉, 키프리스 플러스로부터 얻은 상표 데이터에서 중복 상표를 제거하고 도형으로 분류된 상표인 제2 상표 데이터를 획득하였다.
학습데이터 제작
일 실시예에서, 제2 상표 데이터를 비엔나 코드에 따른 분류를 이용하여 추가적인 분류없이 그대로 사용할 수 있다. 비엔나 코드는 상표 내에 있는 도형을 여섯 자리 숫자로 표현하는 분류 코드로, 앞의 두 자리 숫자는 대분류, 중간의 두 자리 숫자는 중분류, 마지막 두 자리 숫자는 세부분류에 해당한다.
일 실시예에서 제2 상표 데이터를 비엔나 코드에 기초하여 새롭게 분류하여 사용할 수 있다. 비엔나 코드에 따른 분류에 추가적인 분류를 수행하였다. 이에 따라, 제2 상표 데이터를 N개의 분류로 분류하였다.
보다 자세히, 비엔나 코드를 이용하여 제2 상표 데이터를 분류한다. 대분류, 중분류, 세부분류를 모두 이용하여 분류하고 추가적인 분류를 수행하는 경우도 있었다. 예를 들어, 비엔나 코드에 따라 분류한 도형 이미지의 수량이 충분하고 유사한 분류로 분류되면 별도의 추가적인 분류를 하지 않았다. 즉, 이 경우 비엔나 코드에 따른 분류를 그대로 사용한다. 세부 분류를 통해 분류한 도형 이미지가 유사하지 않은 분류로 분류되면 다른 분류로 나누었다. 즉, 동일한 세부분류지만 다른 분류로 구분하였다. 이미지의 수량이 부족한 비엔나 코드 분류들이 서로 유사한 분류로 판단될 경우 두 그룹을 합병하였다. 예를 들어, 비엔나 코드가 08-07-03(마카로니, 다른 파스타), 11-01-06(젓가락), 11-03-07(사발) 인 경우, 위 세 분류는 비엔나 코드가 상이하고 이미지의 수량이 부족하지만, 그림에 “용기”, “면 음식” 이 공통으로 들어가 있어 유사한 분류로 판단되고 따라서 “면 요리” 라는 분류로 지정/합병하였다. 이러한 방식으로 241분류의 분류표를 작성하고, 각 분류당 100개의 학습데이터를 선별했다. 241분류는 임의적인 개수이며 선택적으로 조절 가능하다.
문자나 다른 분류가 최대한 섞여있지 않은 이미지를 선별했으며, 100개에 미달한 경우 구글 이미지 크롤링을 이용하여 100개를 채웠다.
이렇게 만들어진 24100개의 데이터 세트는 첫 번째 인공 지능 모델(제1 학습 모델)인 이미지 유사도 측정 모델에 사용되고, 추가로 바운딩 박스 라벨링을 진행한 뒤 두 번째 인공지능 모델(제2 학습 모델)인 분류 추정 모델에 사용되었다.
검증데이터 제작
검증 데이터는 유사한 상표 이미지 쌍과 유사하지 않은 상표 이미지 쌍으로 이루어져 있다.
유사한 상표 이미지 쌍은 특허청의 거절이유서 통지서를 파싱하여 만들었다. 거절이유서의 거절 이유가 “유사한 상표 이미지가 존재한다.” 인 경우를 프로그램으로 파싱하여 292개의 유사 쌍을 제작했다.
유사하지 않은 상표 이미지 쌍은 10만여개의 데이터베이스에서 랜덤으로 뽑아 제작했다. 유사 쌍과 개수를 맞추기 위해 292개의 비유사 쌍을 제작했다.
제1 학습 모델
제1 학습 모델은 도형 전체 외형의 유사도를 측정하는 모델을 포함한다. 제1 학습 모델은 합성공 신경망을 포함하는 모델이다 예를 들어, inception, VGG. LeNet, AlexNet, ZFNet, VGG, GoogLeNet, ResNet, MobileNet, EfficientNet 등의 모델 중 어느 하나를 사용하거나 일부 변형하여 사용할 수 있다. 이미지 사이의 유사도 학습을 위해서, 샴 네트워크, 대조 손실(contrastive loss), 트리플릿 손실(triplet loss)을 사용할 수 있다. 일 실시예에서, 기존의 이미지 유사도 측정 모델에 트리플릿 손실을 사용한 전이 학습을 사용한다. 트리플릿 손실 학습 데이터는 다음과 같이 제작하였다.
예를 들어, 241 분류의 한 분류에서 2개의 도형 이미지를 선택하여 하나는 앵커 이미지(anchor image)로, 나머지는 긍정 이미지(positive image)로, 다른 분류에서 1개의 도형 이미지를 선택하여 부정 이미지(negative image)로 하였다. 241 분류 각각에서 동일한 방식으로 학습데이터를 선택하였다.
제1 학습 모델에 데이터베이스에 저장된 제2 상표 데이터를 입력하여 마지막 계층인 완전연결계층의 특징 벡터를 얻을 수 있다. 제2 상표 데이터의 각 상표의 특징 벡터를 추출하여 데이터베이스에 저장한다. 제1 학습 모델에 검색하기 원하는 상표(쿼리 상표)를 입력하면, 쿼리 상표의 특징 벡터를 추출한 뒤, 데이터베이스에 기 저장된 특징 벡터와 코사인 유사도를 계산한다.
제2 학습 모델
제2 학습 모델은 상표를 분류하는 모델을 포함할 수 있다. 제2 학습 모델은 도형 전체의 외형의 유사성뿐 아니라, 도형의 요부의 유사성을 비교하는 모델이다. 제2 학습 모델의 학습을 위해, 상표에 포함된 도형으로부터 도형의 요부라고 판단되는 부분들을 추출한다. 일 실시예에서, 요부의 추출은 객체 탐지(object detection)를 위한 신경망 및/또는 알고리즘을 사용할 수 있다. 예를 들어, 영역 제안 신경망(Region Proposal Network, RPN)을 포함하는 모델, YOLO 모델 등을 사용할 수 있다. RPN에서는 픽셀값이 급변하는 지점을 토대로 복수의 오브젝트 가능성 박스를 잡고 박스들의 상호 관심 영역(Region of Interest, ROI) 박스가 겹치는 비율을 계산한다. 상호 ROI가 높으면 같은 요부를 나타냈다는 것을 판단하고 이를 통해 2~10개 정도의 유력후보를 남기고 제거한다. 요부의 개수는 사용자가 학습 모델을 학습시킬 때 임의로 선택할 수 있다. 하나의 도형 이미지가 복수 개의 요부를 포함하고, 각 요부는 제2 학습 모델에 의해 분류된다.
도 9a 내지 9c는 일 실시예에 따른 상표 이미지에서 일부 이미지를 분류하는 예시도이다.
예를 들어, 도 9a와 같이, 안경과 모자를 착용한 해골의 전체 이미지에서 일부 이미지를 요부로 하여 각각 분류를 수행할 수 있다. 이 경우, 도 9a에 도시된 이미지로부터 안경, 모자, 갓의 분류가 출력될 수 있다. 도 9b를 참조하면, 전체 이미지의 일부 이미지 각각으로부터 둥근 왕관, 곤충, 나비의 분류가 출력될 수 있다. 9c를 참조하면, 닻, 날개의 분류가 출력될 수 있다.
일 실시예에서, 도형은 복수의 요부를 포함할 수 있고 각 요부는 각각 다른 분류에 속할 수 있기 때문에 하나의 상표는 복수의 분류에 해당할 수 있다. 일 실시예에서, 제2 학습 모델은 다중 레이블 분류(Multi Label Classification) 모델을 포함할 수 있다. 제2 학습 모델의 학습데이터로는 241 분류의 24100개의 데이터를 사용하였다.
학습데이터로 도형 분류표에 따라 모두 분류하도록 학습하면 분류가 편향되는 경우가 생길 수 있다. 이는 241개의 분류가 너무 많기 때문일 수 있다. 또한, 편향된다는 것은 일종의 오버 피팅(Over Fitting) 문제이다. 일 실시예에서 한 검증세트(제1 세트)의 특징 벡터(Feature Vector)는 오버 피팅이 아닌 경우 해당 분류의 값이 특정 임계값보다 큰 값을 가진다. 보다 자세히, 예를 들어, N개의 분류를 사용하는 경우 특징 벡터(Feature Vector)는 (N,1)의 모양이며 N분류 각각의 확률을 갖고 있다. 여기서, 특징 벡터가 갖는 확률은 예측된 확률일 수 있다.
일 실시예에서, 241 분류를 사용하는 경우, 특징 벡터(Feature Vector)는 (241,1)의 모양이며 241 분류 각각의 확률을 담는다. 특징 벡터(Feature Vector)는 [a1, ..., a241]의 값으로 나타날 수 있으며, a1, ..., a241은 각 분류의 값에 해당한다. 오버 피팅이 아닌 경우, 제1 세트의 분류의 특징 벡터에 해당하는 값이 크게 나타난다.
그러나, 오버 피팅인 경우, 해당 분류의 값이 특정 임계값보다 작고, 다른 분류에 해당하는 값이 클 수 있다. 예를 들어, 지구에 해당하는 이미지를 입력하였지만, 태양에 해당하는 특징 벡터의 값이 크게 출력될 수 있다.
이는 태양과 지구는 '둥글다'는 동일한 특성이 있어 학습되면서 두 분류가 구분되지 않을 수 있기 때문이다. 이 경우, 태양을 태양으로 분류하지만 지구도 태양으로 분류하는 문제가 발생한다. 이러한 경우를 마지막 계층의 특징 벡터(Feature Vector)로 확인할 수 있다.
보다 자세히, 오버 피팅의 경우, '검증세트:지구'의 특징 벡터(Feature Vector) 중 대부분이 지구 분류에 해당하는 값이 낮게 나타날 수 있다. 예를 들어, 값이 낮다는 것을 0.3 정도로 잡을 수 있고, 이 값은 변경 가능하다. 오버 피팅의 경우, '검증세트:지구'의 예에서, 다른 분류, 예를 들어 태양에 해당하는 값이 특정 임계값보다 높게 나타날 수 있다.
또, 다른 검증세트(제2 세트)의 특징 벡터(Feature Vector)와 제1 검증세트의 특징 벡터를 비교하여 두 특징 벡터가 유사한 경우 두 분류의 구분이 명확하지 않다고 판단한다. 예를 들어, 검증세트:태양 의 특징 벡터들이 검증세트:지구의 특징 벡터와 유사할 경우 두 분류가 제대로 구분되지 않았다고 판단한다. 특징 벡터의 유사성은 코사인 유사도로 확인할 수 있다. 이 경우는 하나의 예시이며 다양한 경우가 존재할 수 있다.
위의 예시의 경우 지구로 분류된 상표 이미지와 태양으로 분류된 상표 이미지만을 학습데이터로 이용하여 서브 학습 모델을 만든다. 서브 학습 모델은 메인 모델과 유사한 방법으로, 다중 레이블 분류(Multi Label Classification) 모델을 사용하여 만들 수 있다.
오버 피팅은 상기와 같이 2 가지 분류(지구, 태양) 사이에 발생할 수도 있지만, 더 많은 수의 분류에서 발생할 수 있다. 일 실시예에서, 오버 피팅으로 인해 복수개의 분류(M개의 분류, M은 N보다 작음)의 특징 벡터의 값이 정확한 값을 가지지 못하는 경우가 있다.
예를 들어, '달, 지구, 태양, 원, 바퀴, 로고_1' 이 유사성을 갖는 것으로 판단될 수 있다. 이 경우, 6가지 분류에 해당하는 600개의 학습데이터로 서브 학습 모델을 학습시켜 6개의 분류를 정확히 하도록 학습시킨다. 이 경우, 특징 벡터는 (241,1)이 아닌 (6,1) 모양으로 생성된다.
일 실시예에 있어서, 도형 분류는 1개의 메인 모델과 복수개의 서브 모델을 사용할 수 있다. 예를 들어, 메인 모델에 N개의 분류로 분류된 제2 상표 데이터를 입력하여 학습한 결과, N개 분류 중 임의의 M개의 분류들이 유사성을 가져 정확히 분류되지 않으면, M개의 분류에 해당하는 상표 데이터를 이용하여 서브 모델을 학습시키는 것이다. 유사성을 가져 정확히 분류되지 않는 그룹이 복수개 있을 수 있어, 서브 모델은 복수일 수 있다. 또 일 실시예에 있어서, 서브 모델이 M개의 분류에 해당하는 상표 데이터를 이용하여 학습한 결과, M개 분류 중 임의의 K개의 분류들이 유사성을 가져 정확히 분류되지 않으면 또 다른 서브 모델(서브 모델의 서브 모델)을 이용하여 K개의 분류에 해당하는 상표 데이터를 이용하여 또 다른 서브 모델을 학습시킬 수 있다.
일 실시예에서, 메인 모델은 241분류 모두 분류하는 모델이고 서브 모델은 특정 분류들 만을 분류하는 모델이다. 메인 모델과, 서브 모델은 다중 레이블 분류(Multi Label Classification) 모델을 사용하여 만들되, 다른 학습 데이터를 이용하여 학습된 모델이다. 상술한 바와 같이, 메인 모델을 사용하여 241분류를 수행하는 도중 발생하는 오버 피팅을 해결하기 위해, 241 분류 중 구분이 명확하지 않은 분류에 해당하는 상표 데이터를 사용하여 서브 모델을 학습시킨다. 이에 따라, 서브 모델은 복수의 서브 모델을 포함할 수 있다. 각 서브 모델은 메인 모델이 정확히 분류하지 못한 분류들을 분류하기 위한 모델로, 상술한 2 가지 분류(지구, 태양) 또는 '달, 지구, 태양, 원, 바퀴, 로고_1' 가 그 예이다.
메인 모델과 서브 모델을 사용하여 상표 데이터를 분류하는 방법은 다음과 같다. 메인 모델이 입력 상표에 대해, [태양, 사람, 산]으로 예측한다고 가정한다. [태양, 사람, 산] 중 어느 하나의 분류가 서브 모델의 분류 유형에 포함되는 지 판정한다. 예를 들어, {달, 지구, 태양, 원, 바퀴, 로고_1}이 제1 서브 모델이 분류하는 분류들이라고 하면, 메인 모델이 예측한 [태양, 사람, 산]에 {달, 지구, 태양, 원, 바퀴, 로고_1}중 '태양'이 포함되었기 때문에 '태양'의 분류가 정확한지 제1 서브 모델에 상기 입력 상표를 입력하여 세부 분류를 수행한다. 제1 서브 모델의 분류 결과가 메인 모델의 분류 결과를 대체할 수 있다.
예를 들어, 제1 서브 모델의 분류 결과 [지구]가 나온 경우, 최종 분류 결과는 [태양, 사람, 산]이 아닌 [지구, 사람, 산]이 되고, 제1 서브 모델의 분류 결과 [지구, 원]이 나온 경우, 최종 분류 결과는 [태양, 사람, 산]이 아닌 [지구, 원, 사람, 산]이 되며, 제1 서브 모델의 분류 결과 [태양]이 나온 경우, 최종 분류 결과는 [태양, 사람, 산]이 유지된다.
메인 모델과 서브 모델이 예측하는 분류는 상위 N 번째로 정할 수 있다. 일 실시예에서 메인 모델은 상위 3개의 분류를 예측하고, 각 서브 모델은 상위 2개의 분류를 예측하도록 조정할 수 있다. 이 경우, 메인 모델에서 예측한 [a,b,c]가 모두 서브 모델에 포함될 경우 최대 [a1,a2,b1,b2,c1,c2] 6분류로 추정될 수 있다. 메인 모델과 서브 모델이 예측하는 상위 분류의 수는 예시적인 것으로 변경 가능하다.
따라서, 일 실시예에서, 한 이미지 당 0~6개의 분류를 추정할 수 있다. 이때 0개의 분류는 분류를 하지 못한 것이다. 제1 학습 모델과 같이, 데이터베이스에 제2 학습 데이터의 분류들을 저장한다.
상기 분류는 나중에 최종 상표의 유사도를 결정할 때 이용될 수 있다.
상표 검색
이미지 유사도 측정 모델(제1 학습 모델)과 분류 추정 모델(제2 학습 모델)의 결과를 이용하여 최종 유사도를 산출한다. 분류 추정 모델이 예측한 입력 이미지의 분류와 데이터베이스의 이미지들의 분류가 겹치는 비율을 이미지 유사도와 곱하는 방식이다
사용자가 이미지를 입력하면 최종모델이 데이터베이스의 이미지들과의 유사도를 계산하여 유사도가 높은 순서대로 정렬되어 표시된다.
상표 검색 환경
도 1은 일 실시예에 따른 상표 검색 환경의 블록도이다.
도 1을 참조하면, 상표 검색 환경은 단말기(100), 상표 검색 서버(200) 및 데이터베이스(300)를 포함할 수 있다. 단말기(100)는 상표 검색을 하고자 하는 사용자의 단말기(100)이다. 단말기(100)는 유선 또는 무선 통신을 통해 상표 검색 서버(200)에 접속하여 상표 검색을 수행할 수 있다. 단말기(100)에는, 스마트 폰(smart phone), 노트북 컴퓨터(laptop computer), 태블릿 PC(tablet PC), 울트라북(ultrabook), 웨어러블 디바이스(wearable device), 등을 포함할 수 있다. 사용자는 단말기(100)를 통해 상표를 축소, 확대 또는 상표의 일부만을 추출, 축소, 확대하는 등의 편집을 통해 검색 대상을 설정할 수 있다.
상표 검색 서버(200)는 별도의 클라우드 서버나 컴퓨팅 장치를 포함할 수 있다. 또한, 상표 검색 서버 (200)는 단말기(100)의 프로세서 또는 데이터베이스(300)의 데이터 처리부에 설치된 신경망 시스템일 수 있다. 즉, 도 1에는 데이터베이스(300)와 상표 검색 서버(200)를 별도의 장치로 도시하였으나 하나의 장치일 수도 있다.
데이터베이스(300)는 학습데이터, 상표의 특징 벡터 중 적어도 하나를 저장하도록 구성될 수 있다. 상표의 특징 벡터는 상표 검색 서버(200)를 학습시킨 이후 상표 데이터를 입력하여 얻어질 수 있다. 데이터베이스(300)는 단말기(100) 및 상표 검색 서버(200)와 통신하기 위한 통신 모듈과 데이터처리부를 포함할 수 있다.
도 2는 일 실시예에 따른 단말기(100)의 블록도이다.
도 2를 참조하면, 단말기(100)는 입력부(110), 통신부(120), 메모리(130), 디스플레이(140), 및 프로세서(150)를 포함할 수 있다.
입력부(110)를 통해 사용자는 단말기(100)의 각종 기능에 대한 설정, 실행 입력 등을 수행할 수 있다. 입력부(110)는 사용자 터치를 감지하는 터치 입력부(예를 들어, 터치 센서(touch sensor), 터치키(touch key), 물리적인 키(mechanical key) 등) 및 음성 입력을 감지하는 마이크로폰(microphone) 중 적어도 하나 이상을 포함하여, 사용자 입력을 감지할 수 있다.
단말기(100)는 통신부(120)를 통해 상표 검색 서버(200) 및 데이터베이스(300)와 통신할 수 있다. 예를 들어, 통신부(120)의 통신 방식은 GSM(Global System for Mobile communication), CDMA(Code Division Multi Access), HSDPA(High Speed Downlink Packet Access), HSUPA(High Speed Uplink Packet Access), LTE(Long Term Evolution), LTE-A(Long Term Evolution-Advanced) 등), WLAN(Wireless LAN), Wi-Fi(Wireless-Fidelity), Wi-Fi(Wireless Fidelity) Direct, DLNA(Digital Living Network Alliance), WiBro(Wireless Broadband), WiMAX(World Interoperability for Microwave Access)에 따라 구축된 네트워크를 이용할 수 있으나, 이에 한정하는 것은 아니며 향후 개발될 모든 전송 방식 표준을 포함할 수 있다.
메모리(130)는 단말기(100)에서 구동되는 다수의 응용 프로그램(application program) 또는 애플리케이션(application), 단말기(100)의 동작을 위한 데이터들, 명령어들을 저장할 수 있다. 예를 들어, 메모리(130)는 하드웨어적으로, ROM, RAM, EPROM, 플래시 드라이브, 하드 드라이브 등과 같은 다양한 저장기기 일 수 있고, 메모리(130)는 인터넷(internet)상에서 상기 메모리(130)의 저장 기능을 수행하는 웹 스토리지(web storage)일 수도 있다.
디스플레이(140)는 터치스크린, 액정 디스플레이(liquid crystal display, LCD), 박막 트랜지스터 액정 디스플레이(thin film transistor-liquid crystal display, TFT LCD), 유기 발광 다이오드(organic light-emitting diode, OLED), 플렉서블 디스플레이(flexible display), 3차원 디스플레이(3D display) 중에서 적어도 하나를 포함할 수 있다.
프로세서(150)는 단말기(100)의 각 구성요소를 제어하도록 구성된다. 예를 들어, 프로세서(150)는 ASICs(application specific integrated circuits), DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(programmable logic devices), FPGAs(field programmable gate arrays), 제어기(controllers), 마이크로 컨트롤러(micro-controllers), 마이크로 프로세서(microprocessors), 기타 기능 수행을 위한 임의의 형태의 프로세서일 수 있다.
도 3은 일 실시예에 따른 상표 검색 서버(200)의 블록도이다.
도 3을 참조하면, 상표 검색 서버(200)는 단말기(100) 및 데이터베이스(300)와 통신하는 통신부(310), 데이터를 처리하는 프로세서(330), 상표로부터 특징 벡터를 추출하는 인공 신경망을 저장하는 저장부(320)를 포함할 수 있다. 프로세서(330)는 인공 신경망을 불러와(retrieve) 실행할 수 있다. 인공 신경망은 제1 학습 모델과 제2 학습 모델을 포함할 수 있다. 일 실시예에서, 프로세서(330)는 각각의 구성을 제어하는 메인 프로세서와 신경망 구동시 필요한 연산을 수행하는 그래픽 프로세서(Graphics processing Unit, GPU)를 포함하도록 구성될 수 있다.
상표 검색 환경 검증
검증 데이터를 제작하여, 제1 학습 모델 및 제2 학습 각각에 검증 데이터를 입력하고 유사도를 측정하였다.
검증 데이터는 유사한 상표 이미지 쌍과 유사하지 않은 상표 이미지 쌍을 포함한다. 유사한 상표 이미지 쌍은 상표 거절이유 통지서를 이용하여 만들었다. 일 실시예에서, 거절이유 통지서의 거절이유를 파싱하여 거절 이유 중 “유사한 상표 이미지가 존재한다”가 존재하는 경우 유사 상표 이미지 쌍으로 분류하였다. 이에 의해 292개의 유사 이미지 쌍을 만들었다. 유사하지 않은 상표 이미지 쌍으로 제2 학습 데이터에서 랜덤하게 292개의 쌍을 추출하였다.
제1 학습 모델에 검증 데이터를 입력하여 일정 임계 유사도를 기준으로 유사/비유사를 나누는 정확도를 구했다.
도 4a는 일 실시예에 따른 제1 학습 모델을 사용한 유사 이미지의 유사도 히스토그램이고 도 4b는 일실시예에 따른 제1 학습 모델을 사용한 랜덤 이미지의 유사도 히스토그램이다. 정확도(accuracy)는 80.9%, 재현율(recall)은 85.9%, 검출정확도(precision)는 78.2%, F1 스코어는 80.8%였다.
도 5a는 일실시예에 따른 제1 학습 모델 및 제2 학습 모델을 사용한 유사 이미지의 유사도 히스토그램이고 도 5b는 일실시예에 따른 제1 학습 모델 및 제2 학습 모델을 사용한 랜덤 이미지의 유사도 히스토그램이다
제1 학습 모델 및 제2 학습 모델 각각에 검증 데이터를 입력하였다. 제2 학습 모델이 출력한 입력 이미지의 분류와 데이터베이스의 이미지들의 분류가 겹치는 비율에 따른 가중치를 제1 학습 모델의 출력인 이미지 유사도와 곱하는 방식이다. 사용자가 이미지를 입력하면 최종모델이 데이터베이스의 이미지들과의 유사도를 계산하여 유사도가 높은 순서대로 정렬되어 표시된다. 정확도(accuracy)는 83.2%, 재현율(recall)은 87.6%, 검출정확도(precision)는 80.2%, F1 스코어는 83.8%였다. 제1 학습 모델만을 사용한 것에 비해 약 3% 향상되었다.
일 실시예에 따른 상표 검색 모델
도 6은 일 실시예에 따른 상표 검색 모델(600)을 도시한 블록도이다. 상술한 명세서의 개시가 상표 검색 모델(600)에 적용된다. 도 6에 도시되지는 않았으나, 상표 검색 모델(600)을 실행하는 별도의 프로세서 및/또는 상표 검색 모델(600)을 저장하는 저장부가 있을 수 있다.
상표 검색 모델(600)에 검색 대상 상표가 입력되면, 상표 검색 모델(600)은 유사한 상표 이미지를 검색한다. 검색 대상 상표를 입력할 때, 사용자는 상표의 적어도 일부를 축소 또는 확대할 수 있다. 또는 사용자는 상표의 적어도 일부만을 검색 대상으로 선택할 수도 있다.
상표 검색 모델(600)은 제1 학습 모델(610) 및 제2 학습 모델(620)을 포함한다. 제1 학습 모델(610)은 상표에 포함된 도형의 유사도를 측정하도록 구성되고 학습되며, 인공 지능을 이용하는 신경망 모델을 포함할 수 있다. 제1 학습 모델(610)은 삼중 손실 함수로 학습되도록 구성될 수 있다. 제1 학습 모델(610)에 상표가 입력되면, 제1 학습 모델(610)은 입력된 상표(쿼리 상표 이미지)에 포함된 도형의 특징 벡터(이하 제1 특징 벡터), 및 데이터베이스에 기 저장된 상표의 특징 벡터(이하 제2 특징 벡터)와 제1 특징 벡터의 코사인 유사도 중 적어도 하나를 출력할 수 있다.
제2 학습 모델(620)은 상표에 포함된 도형을 복수의 분류, 예를 들어 N개의 분류로 분류하도록 구성되고 학습되며, 인공 지능을 이용하는 신경망 모델을 포함할 수 있다. 제2 학습 모델(620)은 제1 학습 모델과 동일한 학습 데이터를 사용하여 학습되거나 상이한 학습 데이터를 사용하여 학습될 수 있다. 일 실시예에서, 제2 학습 모델은 객체 탐지 모델, 알고리즘, 신경망 중 적어도 하나를 포함할 수 있다. 제2 학습 모델(620)은 하나의 상표를 적어도 하나의 분류로 분류할 수 있다.
제2 학습 모델(620)은 메인 모델(622) 및 적어도 하나의 서브 모델(624, 626)을 포함할 수 있다. 메인 모델(622)은 N개로 분류된 학습 데이터를 사용하여 학습되고, 제1 및 제2 서브 모델(624, 626)은 상기 N개의 분류 중 선택된 M개의 분류에 해당하는 상표 데이터를 사용하여 학습될 수 있다. 제1 및 제2 서브 모델(624, 626)은 서로 상이한 분류에 해당하는 상표 데이터를 사용하여 학습될 수 있다. 제1 및 제2 서브 모델(624, 626)은 메인 모델(622)이 명확하게 분류하지 못한 상표 데이터를 재차 분류하기 위한 모델일 수 있다. 일 실시예에서, 제1 및 제2 서브 모델(624, 626)이 분류하는 분류는 미리 정해져 있을 수 있다. 예를 들어, 메인 모델(622)은 쿼리 이미지를 제1 내지 제100 분류로 분류하고, 제1 서브 모델(624)은 쿼리 이미지를 제1 내지 제4 분류로, 제2 서브 모델(626)은 제70 내지 제75 분류로 쿼리 이미지를 분류할 수 있다. 상기 분류는 예시적인 것에 불과하다.
예를 들어, 메인 모델(622)에 쿼리 상표 이미지가 입력되면, 메인 모델(622)은 쿼리 상표 이미지를 100개의 분류로 분류하고 상위 특정 개수의 분류를 출력한다. 즉, (100, 1) 형태의 특징 벡터와 [a1, ..., a100]의 예측된 확률값을 출력하고, 여기서 예측된 확률값 상위 3개의 분류를 출력할 수 있다. 메인 모델(622)은 특정값 이상을 갖는 분류만을 선택하여 출력할 수 있다 예를 들어, 예측된 확률값이 0.3 이상인 경우만 출력할 수 있고 이에 따라, 상위 3개가 모두 출력되지 않을 수도 있다.
제1 및 제2 서브 모델(624, 626)에 쿼리 상표 이미지가 입력되면, 제1 및 제2 서브 모델(624, 626)은 상위 특정 개수의 분류를 출력한다. 즉, 상위 2개의 분류를 출력할 수 있다. 일 실시예에서, 제1 및 제2 서브 모델(624, 626)은 특정값 이상을 갖는 분류만을 선택하여 출력할 수 있다. 예를 들어, 제1 서브 모델(624)는 제1 내지 제4 분류를 (4, 1) 형태의 특징 벡터와 [a1, ..., a4]의 예측된 확률값(분류값)으로, 제2 서브 모델(626)은 제70 내지 제75 분류를 (6, 1) 형태의 특징 벡터와 [a70, ..., a75]의 예측된 확률값(분류값)으로 출력할 수 있다. 제1 및 제2 서브 모델(624, 626)은 특정값 이상을 갖는 분류만을 선택하여 출력할 수 있다 예를 들어, 예측된 확률값이 0.3 이상인 경우만 출력할 수 있고 이에 따라, 상위 2개가 모두 출력되지 않을 수도 있다.
일 실시예에서, 메인 모델(622)이 출력한 분류 중 어느 하나가 제1 및 제2 서브 모델(624, 626)이 분류하는 분류에 해당하는 경우, 제1 및 제2 서브 모델(624, 626)에 쿼리 상표 이미지가 입력되어 제1 및 제2 서브 모델(624, 626)은 쿼리 상표 이미지를 한 번 더 분류한다.
예를 들어, 메인 모델(622)이 출력한 분류가 제2 분류, 제20 분류, 제55 분류([A2, A20, A55])일 수 있다. 제2 분류가 제1 서브 모델(624)이 분류하는 분류이므로, 쿼리 상표 이미지는 제1 서브 모델(624)에 입력되고 제1 내지 제5 분류 중 적어도 하나의 분류로 분류된다. 예를 들어, 쿼리 상표 이미지는 제1 서브 모델(624)에 의해 제1 분류 및 제4 분류([A1, A4])로 분류될 수 있다. 이에 따라, 제2 분류는 제1 분류 및 제4 분류로 대체된다. (다만, 제1 분류 및 제4 분류 중 특정값 이상인 분류가 선택될 수 있다.) 따라서, 제2 학습 모델(620)은 쿼리 상표 이미지를 제1 분류, 제4 분류, 제20 분류, 제55 분류([A1, A4, A20, A55])로 분류할 수 있다.
상표 검색 모델(600)은 제1 학습 모델(610)이 출력하는 제2 특징 벡터와 제1 특징 벡터의 코사인 유사도 및 제2 학습 모델(620)이 출력하는 분류에 따른 가중치에 기초하여 최종 상표 유사도를 계산하고, 이에 따라 상표 이미지의 최종 유사도를 산출한다. 일 실시예에서 제2 학습 모델(620)이 예측한 입력 이미지의 분류와 데이터베이스의 이미지들의 분류가 겹치는 개수을 고려하여 가중치를 결정할 수 있다.
예를 들어, 제2 학습 모델(620)이 예측한 입력 이미지의 분류와 데이터베이스의 이미지들의 분류가 겹치는 개수가 3개 이상일시 1점, 2개일시 0.95점, 1개일시 0.9점, 0개일시 0.8점과 같이 가중치를 정할 수 있다. 이러한 가중치는 최종 유사 상표 선정 결과에 기초하여 변경될 수 있다. 이러한 가중치는 예시적인 것이며, 변경 가능하다.
또한, 출력된 분류(예측된 분류)의 개수를 고려하여 보정을 수행하여 가중치를 조정할 수 있다. 예를 들어, 출력된 분류가 적은 경우에 분류가 정확하게 된 것으로 판단할 수 있어 보정 상수를 가중치에 더해줄 수 있다.
예를 들어, 제1 쿼리 이미지에 대해 제2 학습 모델(620)이 출력한 분류가 제1 분류, 제2 분류, 제3 분류([A1, A2, A3])이고 데이터베이스에 저장된 상표 이미지의 분류가 제1 분류, 제2 분류, 제3 분류([A1, A2, A3]) 인 경우, 겹치는 개수는 3개이고 가중치는 1이다.
제2 쿼리 이미지에 대해 제2 학습 모델(620)이 출력한 분류가 제1 분류, 제2 분류([A1, A2])이고 데이터베이스에 저장된 상표 이미지의 분류가 제1 분류, 제2 분류([A1, A2]) 인 경우, 겹치는 개수는 2개이므로 가중치는 0.95이지만 모든 분류가 겹치므로 가중치는 위의 경우와 같이 1이 되어야한다고 판단할 수 있다. 따라서, 이때는 가중치를 보정하여 1로 조정할 수 있다.
즉, 제2 학습 모델(620)이 출력한 쿼리 이미지의 분류 개수에 따라서 겹치는 개수에 대한 가중치가 달라질 수 있다.
또, 분류가 겹치는 개수가 동일하더라도 가중치를 조정할 경우가 있을 수 있다. 예를 들어, 쿼리 이미지에 대해 제2 학습 모델(620)이 출력한 분류가 제1 분류, 제2 분류([A1, A2])이고 데이터베이스에 저장된 상표 이미지의 분류가 제1 분류, 제2 분류, 제4 분류([A1, A2, A4]) 인 경우, 겹치는 개수는 2개이고 가중치는 0.95이다. 반면 데이터베이스에 저장된 다른 상표 이미지의 분류가 제1 분류, 제2 분류([A1, A2])인 경우, 겹치는 개수는 위와 같이 동일하게 2개이지만 모든 분류가 겹치기 때문에 유사도가 더 높고 따라서 가중치는 0.95보다 크다고 판단할 수 있다. 따라서, 이때 가중치를 보정하여(보정 상수를 더해), 가중치를 1로 조정할 수 있다.
이와 같이, 가중치는 제2 학습 모델(620)이 출력한 분류의 개수 및/또는 비교대상이 되는 데이터베이스에 저장된 상표 이미지의 분류의 개수를 고려하여 보정될 수 있다
결정된 가중치를 제1 학습 모델(610)의 코사인 유사도와 곱하고 이를 이용하여 최종적인 유사도 값을 구할 수 있다. 제2 학습 모델은 제1 학습 모델을 보완하는 모델일 수 있다. 많은 요부를 갖지만 각 요부가 상표의 유사성에 큰 영향을 미치지 못하는 경우를 제외하도록 가중치 및 보정 상수를 적절히 조정할 수 있다.
일 실시예에서, 상표 검색 모델(600)이 코사인 유사도 및 최종 유사도를 산출할 수도 있지만, 제1 학습 모델(610)이 제1 특징 벡터를 출력하고 제2 학습 모델(620)은 분류만을 수행하고, 별도의 프로세서에서 코사인 유사도 및 최종 유사도를 산출할 수도 있다.
일 실시예에 따른 상표 검색 방법
도 7은 일 실시예에 따른 상표 검색 방법(700)을 도시한 순서도이다. 상표 검색 방법(700)은 상술한 상표 검색 모델(600)에 의해 수행될 수 있다.
검색 대상 상표(쿼리 이미지)를 상표 검색 모델(600)에 입력하면 이미지가 유사한 상표의 검색이 시작된다. 본 발명의 일 실시예에서, 쿼리 이미지는 제1 학습 모델(610) 및 제2 학습 모델(620)에 각각 입력된다(S705, S710). 사용자는 쿼리 이미지를 입력할 때, 전체 이미지를 입력할 수 있고, 쿼리 이미지의 적어도 일부를 축소, 확대, 선택하여 입력할 수 있다.
쿼리 이미지의 특징 벡터와 데이터베이스에 저장된 상표의 특징 벡터의 코사인 유사도를 계산한다(S720). 보다 자세히, 쿼리 이미지의 특징 벡터를 추출하고, 데이터베이스에 기 저장된 상표의 특징 벡터를 불러와, 쿼리 이미지의 특징 벡터와 데이터베이스에 저장된 상표의 특징 벡터의 코사인 유사도를 계산한다.
제2 학습 모델(620)에 입력된 쿼리 이미지는 메인 모델에 먼저 입력된다(S715). 메인 모델(622)은 입력된 쿼리 이미지를 분류하고, 메인 모델(622)이 출력한 분류가 서브 모델(624, 626) 중 적어도 하나가 분류하는 분류에 포함하는지 판정한다(S725).
메인 모델(622)이 출력한 분류 중 적어도 어느 하나가 서브 모델(624, 626)이 분류하는 분류에 포함되면, 해당 서브 모델(624, 626)에 쿼리 이미지를 입력한다(S730). 메인 모델(622)의 출력 결과와 서브 모델(624, 626)의 출력 결과에 기초하여 쿼리 이미지의 분류를 예측한다(S735). 일 실시예에서, 메인 모델(622)이 출력한 분류와 서브 모델(624, 626)이 분류하는 분류가 중첩되는 경우, 중첩된 분류는 서브 모델(624, 626)이 출력한 분류로 대체될 수 있다.
제2 학습 모델(620)이 예측한 쿼리 이미지의 분류와 데이터베이스의 이미지들의 분류를 각각 비교한다(S740). 제2 학습 모델(620)이 예측한 분류와 데이터베이스에 저장된 이미지 각각의 분류가 중첩되는 개수를 구할 수 있다.
제2 학습 모델(620)이 예측한 분류와 데이터베이스에 저장된 이미지 각각의 분류가 중첩되는 개수에 기초하여 가중치를 계산한다(S745). 일 실시예에서, 제2 학습 모델(620)이 예측한 분류의 개수 및/또는 데이터베이스에 저장된 이미지의 분류의 개수에 기초하여 상기 가중치를 보정할 수 있다.
코사인 유사도 및 S745에서 계산한 가중치에 기초하여 최종 유사도를 계산한다(S750).
최종 유사도에 기초하여 유사 상표를 디스플레이한다(S755).
일 실시예에 따른 데이터베이스 제작
도 8은 일 실시예에 따른 데이터베이스 제작 방법(800)을 도시한 순서도이다. 데이터베이스 제작 방법(800)은 상술한 상표 검색 모델(600)을 학습시키는 방법을 포함할 수 있다.
상표 검색 모델을 학습시키기 위한 학습 데이터를 제작한다(S805). 일 실시예에서, 학습 데이터는 키프리스 플러스(plus.kipris.or.kr)로부터 제공받아, 중복 상표를 제거하고, 문자만으로 이루어진 상표를 제거하고, 복합 상표에서 문자를 구분하여 이미지(도형) 상표로 분류된 상표만을 추출한다. 추출한 상표 데이터를 N개의 분류로 구분하고 랜덤으로 특정 개수의 상표를 각 분류마다 추출하여 N분류로 분류된 학습 데이터를 제작한다.
제작된 학습 데이터를 상표 검색 모델(600)에 입력한다. 즉, 제1 학습 모델(610) 및 제2 학습 모델(620)에 학습 데이터를 입력한다(S810, S815). 제1 학습 모델(610)은 삼중 손실 함수를 통해 학습된다. N개의 분류 중 제1 분류로부터 앵커 이미지(anchor image)와 긍정 이미지(positive image)를 선택하고, 상기 N개의 분류 중 상기 제1 분류와 상이한 제2 분류에서 부정 이미지(negative image)를 선택하여 제1 학습 모델을 학습시킨다.
제1 학습 모델의 학습이 완료되면, 이미지(도형) 상표로 분류된 상표 데이터를 제1 학습 모델에 입력한다(S820). 이에 따라, 각 상표의 특징 벡터를 추출할 수 있다.
제2 학습 모델(620)은 메인 모델(622) 및 적어도 하나의 서브 모델(624, 626)을 포함할 수 있다. 학습 데이터는 메인 모델(622)에 입력된다(S825). 메인 모델은 학습 데이터를 N개의 분류로 분류하는 학습을 수행한다. 적어도 하나의 프로세서가 학습 결과를 확인한다(S830).
학습결과에 기초하여 오버 피팅 여부를 확인한다(S835). 일 실시예에서, N개의 분류가 정확하게 수행되는지 확인한다. N개의 크기가 클수록 분류의 정확성이 떨어질 수 있다. 오버 피팅의 일 예로, N개의 분류 중 특정 분류들의 분류 정확성이 떨어지는 경우가 있을 수 있다.
예를 들어, N개의 분류의 특징 벡터는 (N, 1)의 모양으로 나타나고 [a1, ... aN]의 값을 가질 수 있다. 분류가 정확히 이뤄지는 경우, 해당 분류에 해당하는 값(이하 분류값)이 크게 나타난다. 예를 들어 제1 분류에 속하는 상표 이미지는 [a1, ... aN] 중 a1의 분류값이 가장 크게 나타난다. 그러나, 분류값의 차이가 특정값 이상이 아니거나, 분류가 어려울 정도로 유사하거나 다른 분류에 속하는 값이 더 클 수 있다.
예를 들어, 제1 분류에 속하는 상표 이미지는 [a1, ... aN] 중 a1의 값이 가장 크게 나타나야 하지만 다른 분류값이 크게 나타날 수 있다. 예를 들어, 제1 분류에 속한 학습 데이터의 학습 결과, a1대신 a6, a10, a20 등 다른 분류에 해당하는 값이 미리 정한 특정값보다 큰 경우 또는 a6, a10, a20값이 a1보다는 작지만 특정값 보다 큰 경우, a1, a6, a10, a20의 값이 유사하다고 판단될 수 있다. 이 경우, a1, a6, a10, a20의 값들로 제1 분류를 정확히 분류할 수 없으므로 제1 분류, 제6 분류, 제10 분류, 제20 분류에 해당하는 학습데이터를 서브 모델에 입력한다(S840). 이에 따라, 제1 분류, 제6 분류, 제10 분류, 제20 분류를 정확히 구분하는 서브 모델을 학습시킨다(S840).
제1 분류, 제6 분류, 제10 분류, 제20 분류가 구분이 안되어서, 제6 분류의 학습 결과를 검토한 결과 제6 분류의 분류값이 다른 분류의 분류값과 구분이 안될 수 있다. 예를 들어, 제6 분류의 학습 결과 a6 대신 a30이 큰 값이 나오거나 특정값 이상인 경우 제30 분류도 제1 분류, 제6 분류, 제10 분류, 제20 분류에 해당하는 학습 데이터에 추가하여 서브 모델을 학습시키기 위한 학습 데이터가 될 수 있다. 또는 제6 분류와 제30 분류를 구분하는 추가적인 서브 모델을 학습시킬 수도 있다.
오버 피팅에 따라 적어도 하나의 서브 모델을 학습시키고, 최종적으로 제2 학습 모델에 상표 데이터를 입력한다(S845). 제2 학습 모델은 상표 데이터로부터 각 상표에 해당하는 분류를 출력한다.
제1 학습 모델의 학습이 추출한 각 상표의 특징 벡터 및 제2 학습 모델이 출력한 분류를 데이터베이스가 수신하여 데이터베이스가 제작된다(S850).
이상에서 설명된 장치 및 방법은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 컨트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록매체에 저장될 수 있다.
본 개시의 설명된 실시예들은 또한 어떤 태스크들이 통신 네트워크를 통해 연결되어 있는 원격 처리 장치들에 의해 수행되는 분산 컴퓨팅 환경에서 실시될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 로컬 및 원격 메모리 저장 장치 둘 다에 위치할 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 해당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
컴퓨팅 장치는 유선 및/또는 무선 통신을 통한 원격 컴퓨터(들) 등의 하나 이상의 원격 컴퓨터로의 논리적 연결을 사용하여 네트워크화된 환경에서 동작할 수 있다. 원격 컴퓨터(들)는 워크스테이션, 서버컴퓨터, 라우터, 퍼스널 컴퓨터, 휴대용 컴퓨터, 마이크로프로세서-기반 오락 기기, 피어 장치 또는 기타 통상의 네트워크 노드일 수 있으며, 일반적으로 컴퓨팅 장치에 대해 기술된 구성요소들 중 다수 또는 그 전부를 포함한다. 도시되어 있는 논리적 연결은 근거리 통신망(LAN)(652) 및/또는 더 큰 네트워크, 예를 들어, 원거리 통신망(WAN)(654)에의 유선/무선 연결을 포함한다. 이러한 LAN 및 WAN 네트워킹 환경은 사무실 및 회사에서 일반적인 것이며, 인트라넷 등의 전사적 컴퓨터 네트워크(enterprise-wide computer network)를 용이하게 해주며, 이들 모두는 전세계 컴퓨터 네트워크, 예를 들어, 인터넷에 연결될 수 있다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
검색하고자 하는 상표와 유사한 상표를 정확도 있게 검색할 수 있는 상표 검색 모델 및 학습 방법을 제공할 수 있다.
100: 단말기 110: 입력부
120: 통신부 130: 메모리
140: 디스플레이 150: 프로세서
200: 상표 검색 서버 300: 데이터베이스
310: 통신부 320: 저장부
330: 프로세서 600: 상표 검색 모델
610: 제1 학습 모델 620: 제2 학습 모델
622: 메인 모델 624: 제1 서브 모델
626: 제2 서브 모델

Claims (13)

  1. 인공 지능을 이용한 상표 검색 방법에 있어서,
    하나 이상의 프로세서에 의해 실행되는 제1 학습 모델이 쿼리 이미지를 수신하는 단계;
    상기 제1 학습 모델이 상기 쿼리 이미지의 전체 외형에 관한 제1 특징 벡터를 추출하는 단계;
    상기 하나 이상의 프로세서에 의해, 데이터베이스에 저장된 상표 이미지의 제2 특징 벡터와 상기 제1 특징 벡터의 유사도를 계산하는 단계;
    상기 하나 이상의 프로세서에 의해 실행되는 제2 학습 모델이 상기 쿼리 이미지를 수신하는 단계;
    상기 제2 학습 모델이 상기 쿼리 이미지의 부분 이미지에 기초하여 상기 쿼리 이미지가 해당하는 적어도 하나의 분류를 출력하는 단계;
    상기 제2 특징 벡터와 상기 제1 특징 벡터의 유사도 및 상기 적어도 하나의 분류에 기초하여 상기 데이터베이스에 저장된 상표 이미지 중 상기 쿼리 이미지와 유사한 이미지를 적어도 하나 선택하는 단계; 및
    상기 선택된 이미지를 제공하는 단계를 포함하는 상표 검색 방법으로,
    상기 제2 학습 모델은 메인 모델과 서브 모델을 포함하고,
    상기 메인 모델은 상기 쿼리 이미지에 포함된 도형을 N개의 분류로 분류하도록 구성되고, 상기 서브 모델은 상기 쿼리 이미지를 상기 N개의 분류 중 선택된 M개의 분류로 분류하도록 구성되고,
    상기 제2 학습 모델이 상기 적어도 하나의 분류를 출력하는 단계는,
    상기 메인 모델이 상기 쿼리 이미지에 기초하여 제1 분류를 제공 - 상기 제1 분류는 상기 적어도 하나의 분류에 포함됨 - 하는 단계;
    상기 하나 이상의 프로세서에 의해, 상기 제1 분류가 상기 M개의 분류에 포함되는지 판정하는 단계;
    상기 제1 분류가 상기 M개의 분류에 포함된다는 판정에 대응하여, 상기 서브 모델이 상기 쿼리 이미지에 기초하여 제2 분류를 제공하는 단계; 및
    상기 하나 이상의 프로세서에 의해, 상기 제1 분류와 상기 제2 분류가 상이하다고 판단하는 것에 대응하여, 상기 제1 분류를 상기 제2 분류로 대체하는 단계를 포함하는, 상표 검색 방법.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 제1항에 있어서,
    상기 제2 학습 모델은 객체 탐지를 수행하는 모델을 포함하고, 상기 쿼리 이미지 내에서 픽셀값이 급변하는 지점에 기초해 복수의 오브젝트 가능성 박스를 결정하고, 상기 오브젝트 가능성 박스의 관심 영역이 겹치는 비율을 계산하여 상기 쿼리 이미지의 일부 이미지에 대한 분류를 수행하도록 구성된, 상표 검색 방법.
  6. 제1항에 있어서,
    상기 제2 특징 벡터와 상기 제1 특징 벡터의 유사도 및 상기 적어도 하나의 분류에 기초하여 상기 데이터베이스에 저장된 상표 이미지 중 상기 쿼리 이미지와 유사한 이미지를 적어도 하나 선택하는 단계는,
    상기 적어도 하나의 분류와 상기 데이터베이스에 저장된 상표 이미지의 분류를 비교하여 겹치는 분류의 개수를 판정하는 단계,
    상기 적어도 하나의 분류와 상기 데이터베이스에 저장된 상표 이미지의 분류를 비교하여 겹치는 분류의 개수에 따른 가중치를 불러오는 단계, 및
    상기 가중치와 상기 제2 특징 벡터와 상기 제1 특징 벡터의 유사도에 기초하여 상기 쿼리 이미지와 유사한 이미지를 적어도 하나 선택하는 단계를 포함하는, 상표 검색 방법.
  7. 상표 검색 장치에 있어서,
    상표 검색 모델을 저장하도록 구성된 스토리지; 및
    상기 상표 검색 모델을 실행하도록 구성된 프로세서를 포함하는 상표 검색 장치로,
    상기 상표 검색 모델은 제1 학습 모델 및 제2 학습 모델을 포함 - 상기 제1 학습 모델은 쿼리 이미지로부터 제1 특징 벡터를 추출하여 데이터베이스에 저장된 상표 이미지의 제2 특징 벡터와의 유사도를 구하도록 구성되고, 제2 학습 모델은 상기 쿼리 이미지의 부분 이미지에 기초하여 상기 쿼리 이미지가 해당하는 적어도 하나의 분류를 출력하도록 구성되고 - 하고,
    상기 프로세서는 상기 제2 특징 벡터와 상기 제1 특징 벡터의 유사도 및 상기 적어도 하나의 분류에 기초하여 상기 데이터베이스에 저장된 상기 상표 이미지 중 상기 쿼리 이미지와 유사한 이미지를 적어도 하나 선택하도록 구성된 상표 검색 장치로,
    상기 제2 학습 모델은 메인 모델 및 서브 모델을 포함하고,
    상기 메인 모델은 상기 쿼리 이미지를 N개의 분류로 분류하도록 구성되고, 상기 서브 모델은 상기 쿼리 이미지를 상기 N개의 분류 중 선택된 M개의 분류로 분류하도록 구성되고,
    상기 적어도 하나의 분류를 분류하는 기준 중 적어도 하나는 비엔나 코드이고,
    상기 메인 모델은 상기 쿼리 이미지에 기초하여 제1 분류를 제공 - 상기 제1 분류는 상기 N개의 분류에 포함됨 - 하도록 구성되고;
    상기 하나 이상의 프로세서는, 상기 제1 분류가 상기 M개의 분류에 포함되는지 판정하도록 구성되고;
    상기 서브 모델은, 상기 제1 분류가 상기 M개의 분류에 포함된다는 판정에 대응하여 상기 쿼리 이미지에 기초하여 제2 분류를 제공하도록 구성되고; 및
    상기 하나 이상의 프로세서는, 상기 제1 분류와 상기 제2 분류가 상이하다고 판단하는 것에 대응하여, 상기 제1 분류를 상기 제2 분류로 대체하도록 구성된, 상표 검색 장치.
  8. 제7항에 있어서,
    상기 제1 학습 모델은 도형의 유사도를 측정하도록 구성되고 학습되되, N개의 분류로 분류된 제1 학습 데이터를 사용하여 삼중 손실 함수(triplet loss function)로 학습되고,
    상기 제2 학습 모델은 상표에 포함된 도형을 상기 N개의 분류로 분류하도록 구성되고 학습되되, 상기 제1 학습 데이터를 사용하여 학습된, 상표 검색 장치.
  9. 삭제
  10. 삭제
  11. 제7항에 있어서,
    상기 제2 학습 모델은 메인 모델과 서브 모델을 포함하고,
    상기 메인 모델은 상기 쿼리 이미지에 기초하여 제1 분류를 제공 - 상기 제1 분류는 상기 적어도 하나의 분류에 포함됨 - 하도록 구성되고,
    상기 서브 모델은 상기 쿼리 이미지에 기초하여 제2 분류를 제공하도록 구성되고,
    상기 프로세서는, 상기 제1 분류와 상기 제2 분류가 상이하다고 판단하는 것에 대응하여, 상기 제1 분류를 상기 제2 분류로 대체하도록 구성된, 상표 검색 장치.
  12. 제7항에 있어서,
    상기 제2 학습 모델은 객체 탐지를 수행하는 신경망을 포함하고, 상기 상표 이미지로부터 복수의 요부를 추출하여 상기 복수의 요부 각각에 해당하는 분류를 추정하도록 구성된, 상표 검색 장치.
  13. 제7항에 있어서,
    상기 프로세서는,
    상기 적어도 하나의 분류와 상기 데이터베이스에 저장된 상표 이미지의 분류를 비교하여 겹치는 분류의 개수를 판정하고, 상기 적어도 하나의 분류와 상기 데이터베이스에 저장된 상표 이미지의 분류를 비교하여 겹치는 분류의 개수에 따른 가중치를 불러오고, 상기 가중치와 상기 제2 특징 벡터와 상기 제1 특징 벡터의 유사도에 기초하여 상기 쿼리 이미지와 유사한 이미지를 적어도 하나 선택하도록 구성된, 상표 검색 장치.
KR1020200181271A 2020-12-22 2020-12-22 상표 검색 방법 및 장치 KR102234385B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200181271A KR102234385B1 (ko) 2020-12-22 2020-12-22 상표 검색 방법 및 장치
KR1020210038827A KR20220090367A (ko) 2020-12-22 2021-03-25 상표 검색 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200181271A KR102234385B1 (ko) 2020-12-22 2020-12-22 상표 검색 방법 및 장치

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020210038827A Division KR20220090367A (ko) 2020-12-22 2021-03-25 상표 검색 방법 및 장치

Publications (1)

Publication Number Publication Date
KR102234385B1 true KR102234385B1 (ko) 2021-03-31

Family

ID=75238070

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020200181271A KR102234385B1 (ko) 2020-12-22 2020-12-22 상표 검색 방법 및 장치
KR1020210038827A KR20220090367A (ko) 2020-12-22 2021-03-25 상표 검색 방법 및 장치

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020210038827A KR20220090367A (ko) 2020-12-22 2021-03-25 상표 검색 방법 및 장치

Country Status (1)

Country Link
KR (2) KR102234385B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113903042A (zh) * 2021-09-13 2022-01-07 同盾科技有限公司 商标识别方法、装置、计算机设备和存储介质
CN114428878A (zh) * 2022-04-06 2022-05-03 广东知得失网络科技有限公司 一种商标图像检索方法及系统
KR102585925B1 (ko) * 2022-12-14 2023-10-06 주식회사 딥노이드 이미지 기반의 학습 데이터를 수집하기 위한 장치 및 이를 위한 방법

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116739846A (zh) * 2023-04-27 2023-09-12 合肥皖臻科技有限公司 基于大数据的商标风险排查方法、系统、装置及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170083453A (ko) 2016-01-08 2017-07-18 문성현 지적재산권의 검색,교환 및 거래를 원활하게 하는 사이트
WO2017134519A1 (en) * 2016-02-01 2017-08-10 See-Out Pty Ltd. Image classification and labeling
KR20190030434A (ko) 2017-09-14 2019-03-22 주식회사 세진마인드 상표 유사판단 결과에 기초하여 학습된 딥러닝 엔진을 이용한 상표 유사판단 방법, 장치 및 컴퓨터 판독가능한 기록 매체에 저장된 컴퓨터 소프트웨어
KR20190098801A (ko) 2018-01-31 2019-08-23 문경혜 머신 러닝을 활용한 상표 이미지 분류 방법
JP2020144440A (ja) * 2019-03-04 2020-09-10 公立大学法人大阪 類似画像検索装置、類似画像検索方法および類似画像検索プログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170083453A (ko) 2016-01-08 2017-07-18 문성현 지적재산권의 검색,교환 및 거래를 원활하게 하는 사이트
WO2017134519A1 (en) * 2016-02-01 2017-08-10 See-Out Pty Ltd. Image classification and labeling
KR20190030434A (ko) 2017-09-14 2019-03-22 주식회사 세진마인드 상표 유사판단 결과에 기초하여 학습된 딥러닝 엔진을 이용한 상표 유사판단 방법, 장치 및 컴퓨터 판독가능한 기록 매체에 저장된 컴퓨터 소프트웨어
KR20190098801A (ko) 2018-01-31 2019-08-23 문경혜 머신 러닝을 활용한 상표 이미지 분류 방법
JP2020144440A (ja) * 2019-03-04 2020-09-10 公立大学法人大阪 類似画像検索装置、類似画像検索方法および類似画像検索プログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113903042A (zh) * 2021-09-13 2022-01-07 同盾科技有限公司 商标识别方法、装置、计算机设备和存储介质
CN114428878A (zh) * 2022-04-06 2022-05-03 广东知得失网络科技有限公司 一种商标图像检索方法及系统
KR102585925B1 (ko) * 2022-12-14 2023-10-06 주식회사 딥노이드 이미지 기반의 학습 데이터를 수집하기 위한 장치 및 이를 위한 방법

Also Published As

Publication number Publication date
KR20220090367A (ko) 2022-06-29

Similar Documents

Publication Publication Date Title
KR102234385B1 (ko) 상표 검색 방법 및 장치
US20200285896A1 (en) Method for person re-identification based on deep model with multi-loss fusion training strategy
US11537884B2 (en) Machine learning model training method and device, and expression image classification method and device
KR102519074B1 (ko) 상표 검색 모델 및 상표 검색 모델의 학습 방법
US11379711B2 (en) Video action detection method based on convolutional neural network
US20220092351A1 (en) Image classification method, neural network training method, and apparatus
WO2021227726A1 (zh) 面部检测、图像检测神经网络训练方法、装置和设备
US10642887B2 (en) Multi-modal image ranking using neural networks
CN111079639B (zh) 垃圾图像分类模型构建的方法、装置、设备及存储介质
CN112734775B (zh) 图像标注、图像语义分割、模型训练方法及装置
CN109389037B (zh) 一种基于深度森林和迁移学习的情感分类方法
CN110348447B (zh) 一种具有丰富空间信息的多模型集成目标检测方法
US20160224903A1 (en) Hyper-parameter selection for deep convolutional networks
US11551060B2 (en) Identifying image aesthetics using region composition graphs
US20160283864A1 (en) Sequential image sampling and storage of fine-tuned features
WO2023020005A1 (zh) 神经网络模型的训练方法、图像检索方法、设备和介质
CN108921198A (zh) 基于深度学习的商品图像分类方法、服务器及系统
CN106326857A (zh) 基于人脸图像的性别识别方法及装置
US20220012530A1 (en) Attributionally robust training for weakly supervised localization and segmentation
US11803971B2 (en) Generating improved panoptic segmented digital images based on panoptic segmentation neural networks that utilize exemplar unknown object classes
CN112949647A (zh) 三维场景描述方法、装置、电子设备和存储介质
US20210073628A1 (en) Deep neural network training method and apparatus, and computer device
CN116935188B (zh) 模型训练方法、图像识别方法、装置、设备及介质
CN111275005A (zh) 绘制人脸图像识别方法、计算机可读存储介质和相关设备
US11836187B2 (en) Generating occurrence contexts for objects in digital content collections

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
A107 Divisional application of patent
GRNT Written decision to grant