KR20230032536A - Methods for automatically identifying a match between a product image and a reference drawing based on artificial intelligence - Google Patents

Methods for automatically identifying a match between a product image and a reference drawing based on artificial intelligence Download PDF

Info

Publication number
KR20230032536A
KR20230032536A KR1020210115490A KR20210115490A KR20230032536A KR 20230032536 A KR20230032536 A KR 20230032536A KR 1020210115490 A KR1020210115490 A KR 1020210115490A KR 20210115490 A KR20210115490 A KR 20210115490A KR 20230032536 A KR20230032536 A KR 20230032536A
Authority
KR
South Korea
Prior art keywords
product
image
similarity
images
training
Prior art date
Application number
KR1020210115490A
Other languages
Korean (ko)
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 KR1020210115490A priority Critical patent/KR20230032536A/en
Publication of KR20230032536A publication Critical patent/KR20230032536A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0004Industrial image inspection
    • G06T7/001Industrial image inspection using an image reference approach
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Biophysics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • Multimedia (AREA)
  • Image Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

A method for evaluating similarity between a product image and a reference drawing comprises the steps of: acquiring one or more feature vectors corresponding to one or more images of a product; searching for a plurality of training models constructed to determine the similarity of each reference product; and applying each of the training models to a feature vector among the one or more feature vectors corresponding to the one or more images of the product to determine similarity between one image among the one or more images of the product and the image of each reference product for each training model among the plurality of training models, which have been constructed to determine similarity between the product and each reference product; and providing the similarity between the product and each reference product. Provided is also a method for constructing the model.

Description

인공 지능에 기초한 제품 이미지와 참조 이미지 간 정합 자동 식별 방법{METHODS FOR AUTOMATICALLY IDENTIFYING A MATCH BETWEEN A PRODUCT IMAGE AND A REFERENCE DRAWING BASED ON ARTIFICIAL INTELLIGENCE}Matching automatic identification method between product image and reference image based on artificial intelligence

본 개시는 일반적으로 제품 이미지와 참조 이미지를 정합하기 위한 방법에 관한 것으로, 보다 상세하게 제품 이미지와 특허 도면을 정합하기 위한 시스템 및 방법에 관한 것이다.The present disclosure relates generally to methods for registering product images and reference images, and more particularly to systems and methods for registering product images and patent drawings.

두 개의 이미지 간 정합을 결정하는 것은 이미지 처리 기술에서 중요한 일이다. 특히, 유사한 이미지를 식별할 수 있는 전자 장치는 다수의 잠재적 어플리케이션을 갖는다. Determining the registration between two images is an important task in image processing technology. In particular, electronic devices capable of identifying similar images have many potential applications.

이미지 정합 기법에 발전이 있었다 할지라도, 이러한 기법은 엔지니어링 도면(예를 들어, 컴퓨터 지원 설계 도면) 또는 특허 도면 등 특정 도면으로는 잘 동작하지 않는다. Although there have been advances in image registration techniques, these techniques do not work well with specific drawings, such as engineering drawings (eg computer aided design drawings) or patent drawings.

따라서, 제품 이미지와 이런 참조 도면들 간 정합을 정확하게 결정할 수 있는 도구가 필요하다. 여기에 설명된 방법 및 장치들을 이용해 필요성을 해결한다. 이러한 방법 및 장치들은 종래의 방법 및 장치들을 대체할 수 있다. 또는, 이러한 방법 및 장치들은 종래의 방법 및 장치들을 보완할 수 있다.Accordingly, a need exists for a tool that can accurately determine the registration between a product image and these reference drawings. The methods and devices described herein address this need. These methods and devices may replace conventional methods and devices. Alternatively, these methods and devices may complement conventional methods and devices.

일부 실시예에 따라, 제품 이미지와 참조 도면 간 유사성을 평가하는 방법은 하나 이상의 프로세서를 갖는 컴퓨터 장치 및 하나 이상의 프로세서에 의한 실행을 위해 설정된 하나 이상의 프로그램을 저장하는 메모리에서 수행된다. 상기 방법은 제품의 하나 이상의 이미지에 해당하는 하나 이상의 특징 벡터를 획득하는 단계; 각각의 참조 제품의 각각의 유사성을 결정하도록 구축된 복수의 훈련 모델을 검색하는 단계; 제품과 각각의 참조 제품 간의 각각의 유사성을 결정하도록 구축된, 복수의 훈련 모델의, 각각의 훈련 모델에 대해서, 제품의 하나 이상의 이미지 중의 하나의 이미지와 각각의 참조 제품의 이미지 간의 유사성을 결정하기 위해서 제품의 하나 이상의 이미지에 해당하는 하나 이상의 특징 벡터의 특징 벡터에 각각의 훈련 모델을 적용하는 단계; 및 제품과 각각의 참조 제품 간의 각각의 유사성을 제공하는 단계를 포함한다.According to some embodiments, a method of evaluating similarity between a product image and a reference drawing is performed in a computer device having one or more processors and a memory storing one or more programs configured for execution by the one or more processors. The method includes obtaining one or more feature vectors corresponding to one or more images of a product; retrieving a plurality of training models built to determine each similarity of each reference product; Determining a similarity between one of the one or more images of a product and an image of each reference product, for each training model, of the plurality of training models built to determine respective similarities between the product and each reference product applying each training model to feature vectors of one or more feature vectors corresponding to one or more images of the product; and providing respective similarities between the product and each reference product.

일부 실시예에 따라, 컴퓨터 판독가능 저장 매체는 하나 이상의 프로세서 및 메모리를 갖는 컴퓨터 시스템에 의한 실행을 위해 하나 이상의 프로그램을 저장한다. 하나 이상의 프로그램은 제품의 하나 이상의 이미지에 해당하는 하나 이상의 특징 벡터를 획득하고; 각각의 참조 제품의 각각의 유사성을 결정하도록 구축된 복수의 훈련 모델을 검색하고; 제품과 각각의 참조 제품 간의 각각의 유사성을 결정하도록 구축된, 복수의 훈련 모델의, 각각의 훈련 모델에 대해서, 제품의 하나 이상의 이미지 중의 하나의 이미지와 각각의 참조 제품의 이미지 간의 유사성을 결정하기 위해서 제품의 하나 이상의 이미지에 해당하는 하나 이상의 특징 벡터의 특징 벡터에 각각의 훈련 모델을 적용하며; 그리고 제품과 각각의 참조 제품 간의 각각의 유사성을 제공하기 위한 지시들을 포함한다.According to some embodiments, a computer readable storage medium stores one or more programs for execution by a computer system having one or more processors and memory. The one or more programs obtain one or more feature vectors corresponding to one or more images of the product; retrieve a plurality of training models built to determine each similarity of each reference product; Determining a similarity between one of the one or more images of a product and an image of each reference product, for each training model, of the plurality of training models built to determine respective similarities between the product and each reference product apply each training model to feature vectors of one or more feature vectors corresponding to one or more images of the product; and instructions for providing respective similarities between the product and each reference product.

일부 실시예에 따라, 컴퓨터 시스템은 하나 이상의 프로세서 및 메모리를 포함한다. 메모리는 하나 이상의 프로세서에 의해 실행될 경우, 하나 이상의 프로세서가 제품의 하나 이상의 이미지에 해당하는 하나 이상의 특징 벡터를 획득하고; 각각의 참조 제품의 각각의 유사성을 결정하도록 구축된 복수의 훈련 모델을 검색하고; 제품과 각각의 참조 제품 간의 각각의 유사성을 결정하도록 구축된, 복수의 훈련 모델의, 각각의 훈련 모델에 대해서, 제품의 하나 이상의 이미지 중의 하나의 이미지와 각각의 참조 제품의 이미지 간의 유사성을 결정하기 위해서 제품의 하나 이상의 이미지에 해당하는 하나 이상의 특징 벡터의 특징 벡터에 각각의 훈련 모델을 적용하며; 그리고 제품과 각각의 참조 제품 간의 각각의 유사성을 제공하도록 하는 지시들을 포함하는 하나 이상의 프로그램을 저장한다.According to some embodiments, a computer system includes one or more processors and memory. When the memory is executed by one or more processors, the one or more processors obtain one or more feature vectors corresponding to one or more images of the product; retrieve a plurality of training models built to determine each similarity of each reference product; Determining a similarity between one of the one or more images of a product and an image of each reference product, for each training model, of the plurality of training models built to determine respective similarities between the product and each reference product apply each training model to feature vectors of one or more feature vectors corresponding to one or more images of the product; and stores one or more programs containing instructions to provide respective similarities between the product and each reference product.

일부 실시예에 따라, 제품 이미지와 참조 도면 간 유사성 평가를 위한 모델을 구축하는 방법은 하나 이상의 프로세서를 갖는 컴퓨터 장치 및 하나 이상의 프로세서에 의한 실행을 위해 설정된 하나 이상의 프로그램을 저장하는 메모리에서 수행된다. 상기 방법은, 복수의 참조 제품의 각각의 참조 제품에 대하여, 각각의 참조 제품의 이미지들을 검색하는 단계; 및 각각의 참조 제품의 검색된 이미지들의 각각의 이미지에 대한 각각의 특징 벡터를 구성하는 단계를 포함한다. 상기 방법은 또한 특징 벡터들의 적어도 부분집합을 이용해 모델을 훈련시켜 각각의 참조 제품의 유사성을 결정하는 단계; 및 각각의 참조 제품의 유사성을 결정함에 있어서의 후속 사용을 위해 데이터베이스에 훈련 모델을 저장하는 단계를 포함한다.According to some embodiments, a method of building a model for evaluating similarity between a product image and a reference drawing is performed in a computer device having one or more processors and a memory storing one or more programs configured for execution by the one or more processors. The method includes, for each reference product of a plurality of reference products, retrieving images of each reference product; and constructing each feature vector for each image of the retrieved images of each reference product. The method also includes training a model using at least a subset of feature vectors to determine similarity of each reference product; and storing the trained model in a database for subsequent use in determining the similarity of each reference product.

일부 실시예에 따라, 컴퓨터 판독가능 저장 매체는 하나 이상의 프로세서 및 메모리를 갖는 컴퓨터 시스템에 의한 실행을 위해 하나 이상의 프로그램을 저장한다. 하나 이상의 프로그램은 복수의 참조 제품의 각각의 참조 제품에 대하여, 각각의 참조 제품의 이미지들을 검색하고; 그리고 각각의 참조 제품의 검색된 이미지들의 각각의 이미지에 대한 각각의 특징 벡터를 구성하기 위한 지시들을 포함한다. 하나 이상의 프로그램은 또한 특징 벡터들의 적어도 부분집합을 이용해 모델을 훈련시켜 각각의 참조 제품의 유사성을 결정하고; 그리고 각각의 참조 제품의 유사성을 결정함에 있어서의 후속 사용을 위해 데이터베이스에 훈련 모델을 저장하기 위한 지시들을 포함한다.According to some embodiments, a computer readable storage medium stores one or more programs for execution by a computer system having one or more processors and memory. The one or more programs retrieve, for each reference product of the plurality of reference products, images of each reference product; and instructions for constructing each feature vector for each image of the retrieved images of each reference product. The one or more programs also train a model using at least a subset of the feature vectors to determine similarity of each reference product; and instructions for storing the training model in a database for subsequent use in determining the similarity of each reference product.

일부 실시예에 따라, 컴퓨터 시스템은 하나 이상의 프로세서 및 메모리를 포함한다. 메모리는 하나 이상의 프로세서에 의해 실행될 경우, 하나 이상의 프로세서가, 복수의 참조 제품의 각각의 참조 제품에 대하여, 각각의 참조 제품의 이미지를 검색하고; 그리고 각각의 참조 제품의 검색된 이미지들의 각각의 이미지에 대한 각각의 특징 벡터를 구성하도록 하는 지시들을 포함하는 하나 이상의 프로그램을 저장한다. 하나 이상의 프로그램은 또한 하나 이상의 프로세서에 의해 실행될 경우, 하나 이상의 프로세서가 특징 벡터들의 적어도 부분집합을 이용해 모델을 훈련시켜 각각의 참조 제품의 유사성을 결정하고; 그리고 각각의 참조 제품의 유사성을 결정함에 있어서의 후속 사용을 위해 데이터베이스에 훈련 모델을 저장하도록 하는 지시들을 포함한다.According to some embodiments, a computer system includes one or more processors and memory. When the memory is executed by one or more processors, the one or more processors, for each reference product of the plurality of reference products, retrieves an image of each reference product; and stores one or more programs including instructions for constructing each feature vector for each image of the retrieved images of each reference product. The one or more programs, when executed by the one or more processors, also cause the one or more processors to train a model using at least a subset of the feature vectors to determine similarity of each reference product; and instructions for storing the training model in a database for subsequent use in determining the similarity of each reference product.

따라서, 제품 이미지와 참조 도면 간 유사성 결정을 위한 모델들을 구축(예를 들어, 훈련)하고 제품 이미지와 참조 도면 간 유사성 결정을 위한 훈련 모델들을 이용하는 방법 및 시스템들을 개시한다. 이러한 방법 및 시스템들은 제3자의 지적재산권(예를 들어, 디자인 특허, 트레이드 드레스 등)을 침해할 가능성이 있는 제품들을 자동적으로 식별하는 등 참조 도면들과 유사하게 보일 수 있는 하나 이상의 제품 식별을 용이하게 하기 위하여 이용될 수 있다.Accordingly, methods and systems for building (eg, training) models for similarity determination between a product image and a reference figure and using the training models for similarity determination between a product image and a reference figure are disclosed. Such methods and systems facilitate identification of one or more products that may appear similar to referenced drawings, including automatically identifying products that may infringe third party intellectual property rights (eg, design patents, trade dress, etc.) can be used to do

전술한 일반 설명과 이하의 상세 설명 모두 예시적이고 설명적이며, 청구한 본 개시에 대한 추가 설명을 제공하고자 한다.Both the foregoing general description and the following detailed description are illustrative and explanatory, and are intended to provide further explanation of the claimed disclosure.

도면과 연관되는 보여주는 추가 시스템, 방법 및 그래픽 사용자 인터페이스 뿐만 아니라 이러한 시스템, 방법 및 그래픽 사용자 인터페이스를 더 잘 이해하기 위하여, 이하의 도면과 함께 하기 구현에 대한 설명을 참조하고, 여기서 유사한 참조 번호는 도면 전체에서 해당하는 부분을 의미한다.
도 1a는 일부 구현에 따른 하나 이상의 모델 훈련을 예시한다.
도 1b는 일부 구현에 따른 하나 이상의 모델 사용을 예시한다.
도 2a는 일부 구현에 따른 컴퓨터 장치를 예시하는 구성도이다.
도 2b는 일부 구현에 따른 서버를 예시하는 구성도이다.
도 3a 내지 3b는 일부 구현에 따른 모델 훈련 방법을 예시한다.
도 4a 내지 4b는 일부 구현에 따른 제품 이미지와 참조 도면들 간 유사성 평가를 위한 방법에 대한 흐름도를 제공한다.
도 5a 내지 5b는 일부 구현에 따른 제품 이미지와 참조 도면들 간 유사성 평가를 위한 모델 구축 방법에 대한 흐름도를 제공한다.
도 6는 일부 구현에 따른 정합 식별에 관련된 두 가지 동작을 예시하는 계통도이다.
구현을 참조하고, 그 예들은 첨부된 도면에서 예시된다. 이하의 설명에서, 본 개시를 완전한 이해할 수 있도록 많은 구체적인 세부사항을 명시한다. 그러나, 본 개시가 이러한 구체적인 세부사항을 요구하지 않고도 실행될 수 있음이 당해 기술 분야의 통상의 지식을 가진 자에게는 명확할 것이다.
For a better understanding of such systems, methods and graphical user interfaces, as well as additional systems, methods and graphical user interfaces shown in association with the drawings, reference is made to the following description of implementations in conjunction with the drawings, where like reference numbers refer to the drawings. It means the corresponding part of the whole.
1A illustrates training one or more models in accordance with some implementations.
1B illustrates the use of one or more models according to some implementations.
2A is a schematic diagram illustrating a computer device in accordance with some implementations.
2B is a block diagram illustrating a server according to some implementations.
3A-3B illustrate a model training method according to some implementations.
4A-4B provide a flow diagram of a method for similarity assessment between a product image and reference drawings, in accordance with some implementations.
5A-5B provide a flow diagram of a method of building a model for similarity assessment between a product image and reference drawings, according to some implementations.
6 is a schematic diagram illustrating two operations involved in matching identification in accordance with some implementations.
Reference is made to implementations, examples of which are illustrated in the accompanying drawings. In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present disclosure. However, it will be apparent to those skilled in the art that the present disclosure may be practiced without requiring these specific details.

도 1a는 복수의 도면(110)(예를 들어, 엔지니어링 도면 또는 특허 도면과 같은 참조 도면들)에서 도면 데이터(120)를 이용해 하나 이상의 모델(들)(132)을 훈련하는 것을 예시한다. 도면 데이터(120)는 복수의 도면(110)중 하나 이상의 도면과의 유사성 결정을 위해 하나 이상의 모델(132)을 훈련(예를 들어, 생산, 생성)시키도록 설정된 머신 러닝 엔진(machine learning engine)(130)에 입력된다.1A illustrates training one or more model(s) 132 using drawing data 120 from a plurality of drawings 110 (eg, reference drawings such as engineering drawings or patent drawings). The drawing data 120 is a machine learning engine configured to train (eg, produce, generate) one or more models 132 to determine similarity with one or more of the plurality of drawings 110. (130) is entered.

일부 실시예에서, 복수의 도면은 동일한 타입의 도면(110)을 포함한다. 예를 들어, 복수의 도면은 모두 흑백 도면인 도면(110)을 포함할 수 있다. 또 다른 예에서, 복수의 도면은 모두 컬러 도면인 도면(110)을 포함할 수 있다. 복수의 도면에서 도면의 타입은 하나 이상의 모델(들)(132)이 유사성(similarity) 값(들)을 제공하도록 훈련되는 타입을 결정한다. 예를 들어, 복수의 도면이 흑백 도면인 도면을 포함할 경우, 복수의 도면(110)(예를 들어, 복수의 흑백 도면)에 해당하는 도면 데이터(120)를 이용해 훈련된 하나 이상의 모델(들)(132)은 특정 흑백 도면의 유사성 값(들)을 제공하도록 훈련된다. 일부 구현에서, 도면의 타입은 도면이 윤곽도인지 사진인지 여부 및/또는 도면이 셰이딩(shading)을 포함하는지 여부를 식별하기도 한다.In some embodiments, multiple drawings include drawings 110 of the same type. For example, the plurality of drawings may include drawing 110 which is all a black and white drawing. In another example, the plurality of drawings may include drawing 110, which is all a color drawing. The type of drawing in the plurality of figures determines the type on which one or more model(s) 132 are trained to provide similarity value(s). For example, when the plurality of drawings include black-and-white drawings, one or more model(s) trained using drawing data 120 corresponding to the plurality of drawings 110 (eg, the plurality of black-and-white drawings). ) 132 is trained to give the similarity value(s) of a particular black and white drawing. In some implementations, the type of drawing also identifies whether the drawing is a schematic or photographic and/or whether the drawing includes shading.

복수의 도면에서 각 도면에 대한 도면 데이터(120)가 획득된다. 도면 데이터(120)는 이미지 데이터(122) 및 이미지 타입(124)를 포함한다. 일부 구현에서, 도면 데이터(120)는 다른 데이터(126)를 포함하기도 한다. 예를 들어, 제 1 도면 데이터(120-1)(예를 들어, 의료 데이터 또는 의료 정보)는 제 1 도면(110-1)에 대해 획득된다. 도면 데이터(120-1)는 이미지 데이터(122-1), 이미지 타입(124-1) 및 선택적으로, 제 1 도면(110-1)에 해당하는 다른 데이터(126-1)를 포함한다.Drawing data 120 for each drawing in a plurality of drawings is obtained. Drawing data 120 includes image data 122 and image type 124 . In some implementations, drawing data 120 also includes other data 126 . For example, the first drawing data 120-1 (eg, medical data or medical information) is obtained for the first drawing 110-1. Drawing data 120-1 includes image data 122-1, image type 124-1 and, optionally, other data 126-1 corresponding to the first drawing 110-1.

이미지 데이터(122)는 연관된 도면의 그래픽 요소를 나타내는 정보를 포함한다. 예를 들어, 이미지 데이터(122)는 복수의 픽셀에 대한 컬러(또는 흑백)을 지시하는 정보를 포함할 수 있다. 일부 구현에서, 이미지 데이터(122)는 압축된다. 일부 구현에서, 이미지 데이터(122)는 압축되지 않는다. 이미지 타입(124)은 도면의 타입을 포함한다. 예를 들어, 이미지 타입은 흑백 또는 컬러, 윤곽도 또는 채워진 도면, 셰이딩이 있는 도면 또는 셰이딩이 없는 도면 등의 정보를 포함할 수 있다. 다른 데이터(126)는 연관된 제품 또는 연관된 특허 정보(예를 들어, 도면을 획득한 특허의 등록 번호)를 식별하는 정보를 포함한다.Image data 122 includes information representing graphic elements of an associated figure. For example, the image data 122 may include information indicating color (or black and white) of a plurality of pixels. In some implementations, image data 122 is compressed. In some implementations, image data 122 is uncompressed. Image types 124 include types of drawings. For example, the image type may include information such as black-and-white or color, a contour diagram or a filled drawing, a drawing with shading, or a drawing without shading. Other data 126 includes information identifying the associated product or associated patent information (eg, the license number of the patent from which the drawing was obtained).

머신 러닝 엔진(130)은 이미지 데이터(122) 및 선택적으로, 각각의 도면에 해당하는 이미지 타입(124)을 이용해 복수의 도면의 각각의 도면에 대한 특징 벡터를 구성한다. 그 후 머신 러닝 엔진(130)은 모델(132)이 하나 이상의 도면과의 유사성을 결정할 수 있도록 하나 이상의 모델(132)을 훈련하기 위하여 특징 벡터를 사용한다.Machine learning engine 130 uses image data 122 and, optionally, image type 124 corresponding to each figure to construct a feature vector for each figure in the plurality of figures. Machine learning engine 130 then uses the feature vectors to train one or more models 132 so that model 132 can determine similarity to one or more figures.

일부 구현에서, 하나 이상의 모델(132)은 복수의 모델(예를 들어, 제 1 모델 및 제 2 모델)을 포함하고 하나 이상의 모델(132)의 각 모델은 제품 이미지에 대한 유사성 값을 제공하도록 훈련된다. 예를 들어, 제 1 모델은 제 1 이미지 타입의 제품 이미지에 대한 유사성 값을 제공하도록 훈련될 수 있고 제 2 모델은 제 1 이미지 타입과 다른 제 2 이미지 타입의 제품 이미지에 대한 유사성 값을 제공하도록 훈련될 수 있다. 예를 들어, 제 1 이미지 타입은 흑백 평면도를 포함할 수 있고 제 2 이미지 타입은 흑백 사시도를 포함할 수 있다. In some implementations, the one or more models 132 include a plurality of models (eg, a first model and a second model) and each model of the one or more models 132 is trained to provide similarity values for product images. do. For example, a first model can be trained to provide similarity values for product images of a first image type and a second model can be trained to provide similarity values for product images of a second image type different from the first image type. can be trained For example, a first image type may include a black and white floor plan and a second image type may include a black and white perspective view.

일부 구현에서, 제 1 모델은 복수의 제 1 도면을 이용해 훈련되고 제 2 모델은 복수의 제 1 도면과 다른 복수의 제 2 도면을 이용해 훈련된다. 예를 들어, 복수의 제 1 도면은 적어도 하나의 도면 만큼 복수의 제 2 도면과 상이하다. 일부 구현에서, 복수의 제 1 도면은 복수의 제 2 도면과 공통인 하나 이상의 도면을 포함한다.In some implementations, the first model is trained using a plurality of first figures and the second model is trained using a plurality of second figures different from the first plurality of figures. For example, the first plurality of figures differs from the second plurality of figures by at least one figure. In some implementations, the first plurality of figures includes one or more figures in common with the second plurality of figures.

하나 이상의 모델(132) 훈련과 관련된 추가 사항은 도 3a와 관련하여 제공된다.Additional details regarding training one or more models 132 are provided with respect to FIG. 3A.

도 1b는 유사성 값(들)을 결정하도록 훈련된 하나 이상의 훈련 모델(132)을 사용하는 것을 예시한다. 새로운 도면(140)에 해당하는 새로운 도면 데이터(141)를 모델(들)(132)에게 제공한다. 새로운 도면 데이터(141)는 새로운 도면(140)에 해당하는 이미지 타입(144)및 이미지 데이터(142)를 포함한다. 일부 구현에서, 새로운 도면 데이터(141)는 새로운 도면(140)에 해당하는 다른 데이터(146)를 포함하기도 한다. 새로운 도면 데이터(141)는 하나 이상의 훈련 모델(132)에 대한 입력으로 제공되며, 하나 이상의 훈련 모델(132)은 하나 이상의 다른 참조 도면에 대한 결과(151)를 출력한다. 하나 이상의 훈련 모델(132)은 복수의 유사성 값(152)을 출력한다.1B illustrates using one or more training models 132 trained to determine similarity value(s). New drawing data 141 corresponding to the new drawing 140 is provided to the model(s) 132 . The new drawing data 141 includes an image type 144 and image data 142 corresponding to the new drawing 140 . In some implementations, the new drawing data 141 also includes other data 146 corresponding to the new drawing 140 . New drawing data 141 is provided as input to one or more training models 132, which output results 151 for one or more other reference drawings. One or more training models 132 output a plurality of similarity values 152 .

도 2a는 일부 구현에 따라 모델(들)(132)을 훈련 및/또는 실행시킬 수 있는 컴퓨터 시스템에 해당하는 컴퓨터 장치(200)를 예시하는 구성도이다. 컴퓨터 장치(200)의 다양한 예에는 모델(들)(132)을 훈련 및/또는 작동시킬 수 있는 프로세서를 지닌 데스크탑 컴퓨터, 랩탑 컴퓨터, 태블릿 컴퓨터, 서버 컴퓨터, 서버 시스템, 스마트 워치 등 웨어러블 기기, 및 기타 컴퓨터 장치가 포함된다. 컴퓨터 장치(200)는 하나 이상의 데이터베이스, 모델 또는 모듈을 호스팅하는 데이터 서버일 수 있고, 또는 다양한 실행 가능한 어플리케이션이나 모듈을 제공할 수 있다. 컴퓨터 장치(200)는 일반적으로 하나 이상의 처리 장치(프로세서 또는 코어)(202) 하나 이상의 네트워크 또는 기타 통신 인터페이스(204), 메모리(206), 및 이러한 구성 요소들을 상호 연결하기 위한 하나 이상의 통신 버스(208)를 포함한다. 통신 버스(208)는 시스템 구성 요소 간 통신을 상호 연결하고 제어하는 회로(칩셋이라고 칭할 때도 있음)를 선택적으로 포함한다. 컴퓨터 장치(200)는 일반적으로 사용자 인터페이스(210)를 포함한다. 사용자 인터페이스(210)는 일반적으로 디스플레이 장치(212)(예를 들어, 스크린 또는 모니터)를 포함한다. 일부 구현에서, 컴퓨터 장치(200)는 키보드, 마우스 및/또는 기타 입력 버튼(216)과 같은 입력 장치를 포함한다. 또는 혹은 또한, 일부 구현에서, 디스플레이 장치(212)는 접촉-감응식 표면(touch-sensitive surface)(214)을 포함하고, 여기서 디스플레이 장치(212)는 접촉-감응식 디스플레이다. 일부 구현에서, 접촉-감응식 표면(214)은 다양한 스와이프(swipe) 제스쳐(예를 들어, 수직 및/또는 수평 방향의 연속 제스쳐) 및/또는 기타 제스쳐(예를 들어, 싱글/더블 탭)를 감지하도록 설정된다. 접촉-감응식 표면(214)을 지닌 컴퓨터 장치의 경우, 물리적 키보드는 선택사항이다(예를 들어, 키보드 입력이 필요할 경우, 소프트 키보드가 디스플레이 될 수 있음). 사용자 인터페이스(210)는 스피커 또는 스피커, 이어폰 또는 헤드폰과 연결되는 오디오 출력 연결 장치 등 오디오 출력 장치(218) 또한 포함한다. 더불어, 일부 컴퓨터 장치(200)는 키보드를 보완 또는 대체하기 위하여 음성 인식 소프트웨어 및 마이크와 같은 오디오 입력 장치(220)를 이용한다. 오디오 입력 장치(220)(예를 들어, 마이크)는 오디오(예를 들어, 사용자의 말)를 캡쳐한다. FIG. 2A is a block diagram illustrating a computer device 200 , which is a computer system capable of training and/or running model(s) 132 in accordance with some implementations. Various examples of computer device 200 include desktop computers, laptop computers, tablet computers, server computers, server systems, wearable devices such as smart watches, and desktop computers having processors capable of training and/or operating model(s) 132 . Other computer devices are included. Computer device 200 may be a data server hosting one or more databases, models or modules, or may provide various executable applications or modules. Computer device 200 generally includes one or more processing units (processors or cores) 202, one or more network or other communication interfaces 204, memory 206, and one or more communication buses (or 208). Communication bus 208 optionally includes circuitry (sometimes referred to as a chipset) that interconnects and controls communications between system components. Computer device 200 generally includes a user interface 210 . User interface 210 generally includes a display device 212 (eg, a screen or monitor). In some implementations, computer device 200 includes input devices such as a keyboard, mouse, and/or other input buttons 216 . Alternatively, or also, in some implementations, display device 212 includes a touch-sensitive surface 214, where display device 212 is a touch-sensitive display. In some implementations, the contact-sensitive surface 214 responds to various swipe gestures (eg, vertical and/or horizontal continuous gestures) and/or other gestures (eg, single/double taps). is set to detect For computing devices having a touch-sensitive surface 214, a physical keyboard is optional (eg, a soft keyboard may be displayed when keyboard input is required). The user interface 210 also includes an audio output device 218, such as a speaker or an audio output connection device connected to a speaker, earphone, or headphone. In addition, some computer devices 200 use voice recognition software and audio input devices 220, such as microphones, to supplement or replace keyboards. An audio input device 220 (eg, a microphone) captures audio (eg, a user's speech).

메모리(206)는 DRAM, SRAM, DDR RAM 또는 기타 반도체를 이용한 랜덤-액세스 솔리드-스테이트 메모리 장치(random-access solid-state memory device)와 같은 고속 랜덤-액세스 메모리 장치(high-speed random-access memory)를 포함하고; 하나 이상의 자기 디스크 기억 장치, 광 디스크 기억 장치, 플래시 기억 장치, 또는 기타 반도체를 이용한 비휘발성 솔리드-스테이트 기억 장치 등 비휘발성 기억 장치를 포함할 수 있다. 일부 구현에서, 메모리(206)는 프로세서(202)에서 원격으로 위치된 하나 이상의 기억 장치를 포함한다. 메모리(206) 또는 혹은, 메모리(206) 내의 비휘발성 기억 장치는 비일시적 컴퓨터 판독 가능 저장 매체를 포함한다. 일부 구현에서, 메모리(206) 또는 메모리(206)의 컴퓨터 판독 가능 저장 매체는 이하의 프로그램, 모듈, 및 데이터 구조, 또는 그 부분집합 또는 초집합을 저장한다:Memory 206 may be a high-speed random-access memory device such as DRAM, SRAM, DDR RAM, or random-access solid-state memory device using other semiconductors. ); It may include non-volatile storage devices such as one or more magnetic disk storage devices, optical disk storage devices, flash storage devices, or non-volatile solid-state storage devices using other semiconductors. In some implementations, memory 206 includes one or more storage devices located remotely from processor 202 . Memory 206 or, non-volatile storage device within memory 206 includes non-transitory computer-readable storage media. In some implementations, memory 206 or a computer readable storage medium of memory 206 stores the following programs, modules, and data structures, or a subset or superset thereof:

- 다양한 기본 시스템 서비스를 처리하고 하드웨어 종속 태스크를 수행하는 절차를 포함하는 운영 체제(222);- operating system 222, which includes procedures for handling various basic system services and performing hardware dependent tasks;

- 인터넷, 기타 광역 통신망, 근거리 통신망, 대도시 통신망 등 하나 이상의 통신 네트워크 인터페이스(204)(유선 또는 무선)를 통해 컴퓨터 장치(200)를 기타 컴퓨터 및 장치에 연결하기 위하여 사용되는 통신 모듈(224);- a communication module 224 used to connect the computer device 200 to other computers and devices via one or more communication network interfaces 204 (wired or wireless), such as the Internet, other wide area networks, local area networks, metro networks;

- 사용자가 네트워크를 통해 원격 컴퓨터 또는 장치와 통신할 수 있도록 하는 웹 브라우저(226) (또는 웹 페이지를 디스플레이 할 수 있는 기타 어플리케이션);- a web browser 226 (or other application capable of displaying web pages) that allows users to communicate with remote computers or devices over a network;

- 오디오 입력 장치(220)에 의해 캡처된 오디오를 처리하는 오디오 입력 모듈(228) (예를 들어, 마이크 모듈). 캡쳐된 오디오는 원격 서버에 송신되고 그리고/또는 컴퓨터 장치(200)(예를 들어, 모델링 어플리케이션(230))에서 실행되는 어플리케이션에 의해 처리될 수 있다;- an audio input module 228 (e.g. a microphone module) that processes the audio captured by the audio input device 220; The captured audio may be transmitted to a remote server and/or processed by an application running on computer device 200 (eg, modeling application 230);

- 이미지 데이터(122), 이미지 타입(124) 및 기타 데이터(126)를 포함하는 도면 데이터(120)에 대한 접근 및 편집 그리고/또는 이미지 데이터(142), 이미지 타입(144) 및 기타 데이터(146)를 포함하는 새로운 도면 데이터(141)에 대한 접근 및 편집 등 사용자가 모델링 어플리케이션(230)을 탐색하도록 하는 그래픽 사용자 인터페이스(100)를 포함하는 모델링 어플리케이션(230). 예를 들어, 하나 이상의 사용자는 참조 도면의 부분집합을 선택하기 위해 모델링 어플리케이션(230)의 그래픽 사용자 인터페이스(100)를 사용할 수 있다. 그 후 도면 데이터(120)는 모델(들)(132)을 훈련하도록 머신 러닝 엔진(130)을 통해 컴파일 된다. 모델링 어플리케이션(230)은 새로운 도면 데이터(141)를 모델(들)(132)에 입력하고 모델(들)(132)을 활용해 유사성 값을 결정할 수도 있다. 모델(들)(132)은 유사성 값 생성 시 도면 데이터(이미지 데이터(142), 이미지 타입(144) 및 기타 데이터(146) 포함)를 고려한다;- access and edit drawing data 120 including image data 122, image type 124 and other data 126 and/or image data 142, image type 144 and other data 146 A modeling application 230 including a graphical user interface 100 that allows a user to navigate the modeling application 230, such as accessing and editing new drawing data 141 including ). For example, one or more users may use graphical user interface 100 of modeling application 230 to select a subset of reference figures. Drawing data 120 is then compiled via machine learning engine 130 to train model(s) 132 . The modeling application 230 may input new drawing data 141 into the model(s) 132 and utilize the model(s) 132 to determine a similarity value. Model(s) 132 takes drawing data (including image data 142, image type 144, and other data 146) into account when generating similarity values;

- 원(raw) 정보를 도면 데이터(120) 또는 새로운 도면 데이터(141)에 대한 정확한 데이터 타입으로 변환하기 위하여 필요한 전처리(preprocessing) 단계를 수행하도록 설정된 데이터 처리 모듈(232). 예를 들어, 데이터 처리 모듈(232)은 컬러 도면을 흑백 도면으로 변환하거나 도면의 시점(view)을 변환하는 영상 처리를 수행하도록 설정될 수 있다. 데이터 처리 모듈(232)은 도면 데이터(120) 또는 새로운 도면 데이터(141)에 대한 데이터 값을 생성하기 위해, 수신된 원 데이터를 기반으로 하나 이상의 계산을 수행하도록 설정될 수도 있다. 데이터 처리 모듈(232)은 도면 데이터(120) 또는 새로운 도면 데이터(141)에서 결측값(missing value)을 대체하기 위해 대용(imputed)(예를 들어, 추론된(inferred)) 데이터를 생성하도록 설정될 수도 있다. 데이터 처리 모듈(232)은 서로 다른 다양한 방법을 활용해 대용 데이터를 생성(예를 들어, 결정 또는 계산)할 수 있다. 일부 구현에서, 대용 데이터 생성을 위해 데이터 처리 모듈(232)이 사용한 대용(imputation) 또는 추론(inference) 방법은 적어도 부분적으로 결측된 데이터 타입을 기반으로 한다;- a data processing module 232 configured to perform the necessary preprocessing steps to convert the raw information into the correct data type for drawing data 120 or new drawing data 141; For example, the data processing module 232 may be set to perform image processing for converting a color drawing into a black and white drawing or converting a view of the drawing. Data processing module 232 may be configured to perform one or more calculations based on the received raw data to generate data values for drawing data 120 or new drawing data 141 . The data processing module 232 is set to generate imputed (eg, inferred) data to replace missing values in the drawing data 120 or the new drawing data 141. It could be. The data processing module 232 may generate (eg, determine or calculate) surrogate data using a variety of different methods. In some implementations, the imputation or inference method used by data processing module 232 to generate surrogate data is based at least in part on missing data types;

- 모델(들)(132) 훈련을 위한 입력으로 도면 데이터(120)(이미지 데이터(122), 이미지 타입(124) 및 기타 데이터(126) 포함)를 사용해 모델(들)(132)을 훈련하도록 설정된 머신 러닝 엔진(130);- to train model(s) 132 using drawing data 120 (including image data 122, image type 124 and other data 126) as inputs for training model(s) 132; established machine learning engine 130;

- 유사성 값(152)을 포함해 결과(151)를 제공하도록 머신 러닝 엔진(130)에 의해 훈련된 하나 이상의 모델(132);- one or more models 132 trained by the machine learning engine 130 to give a result 151 comprising a similarity value 152;

- 도면 데이터(120), 새로운 도면 데이터(141), 결과(151)(예를 들어, 유사성 값(152)) 등의 정보를 저장하는 데이터 베이스(240). 도면 데이터(120)는 이미지 데이터(122), 이미지 타입(124) 및 기타 데이터(126)를 포함한다. 새로운 도면 데이터(141)는 이미지 데이터(142), 이미지 타입(144) 및 기타 데이터(146)를 포함한다. - A database 240 that stores information such as drawing data 120, new drawing data 141, result 151 (eg similarity value 152). Drawing data 120 includes image data 122 , image type 124 and other data 126 . New drawing data 141 includes image data 142 , image type 144 and other data 146 .

일부 구현에서, 메모리(206)는 하나 이상의 모델(132)에 의해 결정된 계측값(metrics) 및/또는 점수(scores)를 저장한다. 또한, 메모리(206)는 머신 러닝 엔진(130) 및/또는 모델(들)(132)에 의해 결정된 계측값 및/또는 점수와 비교되는 임계값(thresholds) 및 기타 기준(criteria)을 저장할 수 있다. 예를 들어, 모델(들)(132)은 임계 유사성 값을 만족시키는 (예를 들어, 초과하는) 유사성 값을 선택하기 위하여 유사성 값과 임계 유사성 값을 비교(예를 들어, 계산)할 수 있다. In some implementations, memory 206 stores metrics and/or scores determined by one or more models 132 . Memory 206 may also store thresholds and other criteria against which metrics and/or scores determined by machine learning engine 130 and/or model(s) 132 are compared. . For example, model(s) 132 may compare (eg, calculate) a similarity value to a threshold similarity value to select a similarity value that satisfies (eg, exceeds) the threshold similarity value. .

전술한 식별된 실행 가능한 모듈, 어플리케이션 또는 절차의 세트 각각은 전술한 기억 장치 중 하나 이상에 저장될 수 있고, 상기 설명된 기능을 수행하기 위한 지시들의 세트에 해당한다. 전술한 식별된 모듈 또는 프로그램(즉, 지시들의 세트)은 별개의 소프트웨어 프로그램, 절차 또는 모듈로 구현될 필요가 없고, 따라서 이러한 모듈의 다양한 부분집합은 결합되거나 그렇지 않으면 다양한 구현을 통해 재배열될 수 있다. 일부 구현에서, 메모리(206)는 전술한 식별된 데이터 구조 및 모듈의 부분집합을 저장한다. 뿐만 아니라, 메모리(206)는 상기 설명되지 않은 추가 모듈 또는 데이터 구조를 저장할 수 있다.Each of the set of identified executable modules, applications or procedures described above may be stored in one or more of the above described storage devices and correspond to a set of instructions for performing the functions described above. The foregoing identified modules or programs (ie, sets of instructions) need not be implemented as separate software programs, procedures, or modules, and thus various subsets of such modules may be combined or otherwise rearranged across various implementations. there is. In some implementations, memory 206 stores a subset of the identified data structures and modules described above. In addition, memory 206 may store additional modules or data structures not described above.

도 2a가 컴퓨터 장치(200)를 도시한다 해도, 도 2a는 본 개시에 설명된 구현의 구조적 회로도보다 존재할 수 있는 다양한 특징에 대한 기능적 설명을 의도로 한다. 실질적으로, 그리고 당해 기술분야의 통상의 지식을 가진 자가 인식한 대로, 별도로 도시된 항목은 결합될 수 있고 일부 항목은 분리될 수 있다.Although FIG. 2A illustrates a computer device 200, FIG. 2A is intended to be a functional description of various features that may be present rather than an architectural circuit diagram of an implementation described in this disclosure. Indeed, and as will be appreciated by those skilled in the art, items shown separately may be combined and some items may be separated.

도 2b는 일부 구현에 따른 서버(250)의 구성도이다. 서버(250)는 하나 이상의 데이터베이스(290)를 호스트 할 수 있고 또는 다양한 실행 가능한 어플리케이션 또는 모듈을 제공할 수 있다. 서버(250)는 일반적으로 하나 이상의 처리 장치/코어(CPUs)(252), 하나 이상의 네트워크 인터페이스(262), 메모리(264), 및 이러한 구성 요소를 상호 연결하는 하나 이상의 통신 버스(254)를 포함한다. 일부 구현에서, 서버(250)는 디스플레이(258) 및 키보드와 마우스 등 하나 이상의 입력 장치(260)를 포함하는 사용자 인터페이스(256)를 포함한다. 일부 구현에서, 통신 버스(254)는 시스템 구성 요소 간 통신을 상호 연결하고 제어하는 회로(칩셋이라고 칭할 때도 있음)를 포함한다. 2B is a schematic diagram of a server 250 according to some implementations. Server 250 may host one or more databases 290 or may provide various executable applications or modules. Server 250 generally includes one or more processing units/cores (CPUs) 252, one or more network interfaces 262, memory 264, and one or more communication buses 254 interconnecting these components. do. In some implementations, server 250 includes a user interface 256 that includes a display 258 and one or more input devices 260 such as a keyboard and mouse. In some implementations, communication bus 254 includes circuitry (sometimes referred to as a chipset) that interconnects and controls communications between system components.

일부 구현에서, 메모리(264)는 DRAM, SRAM, DDR RAM 또는 기타 반도체를 이용한 랜덤-액세스 솔리드-스테이트 메모리 장치와 같은 고속 랜덤-액세스 메모리 장치를 포함하고, 하나 이상의 자기 디스크 기억 장치, 광 디스크 기억 장치, 플래시 기억 장치, 또는 기타 반도체를 이용한 비휘발성 솔리드-스테이트 기억 장치 등의 비휘발성 기억 장치를 포함할 수 있다. 일부 구현에서, 메모리(264)는 CPU(들)(252)에서 원격으로 위치된 하나 이상의 기억 장치를 포함한다. 메모리(264) 또는 혹은, 메모리(264) 내 비휘발성 기억 장치는 비일시적 컴퓨터 판독 가능 저장 매체를 포함한다.In some implementations, memory 264 includes high-speed random-access memory devices, such as DRAM, SRAM, DDR RAM, or other semiconductor-based random-access solid-state memory devices, one or more magnetic disk storage devices, optical disk storage devices. devices, flash storage devices, or non-volatile solid-state storage devices using other semiconductors. In some implementations, memory 264 includes one or more storage devices located remotely from CPU(s) 252 . Memory 264 or, non-volatile storage device within memory 264 includes non-transitory computer-readable storage media.

일부 구현에서, 메모리(264) 또는 메모리(264)의 컴퓨터 판독 가능 저장 매체는 이하의 프로그램, 모듈, 및 데이터 구조, 또는 그 부분집합을 저장한다:In some implementations, memory 264 or a computer readable storage medium of memory 264 stores the following programs, modules, and data structures, or a subset thereof:

- 다양한 기본 시스템 서비스를 처리하고 하드웨어 종속 태스크를 수행하는 절차를 포함하는 운영 체제(222);- operating system 222, which includes procedures for handling various basic system services and performing hardware dependent tasks;

- 인터넷, 기타 광역 통신망, 근거리 통신망, 대도시 통신망 등 하나 이상의 통신망 및 하나 이상의 통신 네트워크 인터페이스(유선 또는 무선)를 통해 서버(250)를 기타 컴퓨터에 연결하기 위하여 사용되는 네트워크 통신 모듈(272);- a network communication module 272 used to connect the server 250 to other computers via one or more communication networks such as the Internet, other wide area networks, local area networks, metropolitan networks, etc. and one or more communication network interfaces (wired or wireless);

- 사용자에게서 웹 요청을 수신하고 반응형(responsive) 웹 페이지 또는 기타 리소스를 제공해 응답하는 웹 서버(274)(HTTP 서버 등);- a web server 274 (such as an HTTP server) that receives web requests from users and responds by providing responsive web pages or other resources;

- 사용자의 컴퓨터 장치(200) 상 웹 브라우저(226)에 의해 다운로드 및 실행될 수 있는 모델링 어플리케이션 또는 모델링 웹 어플리케이션(280). 일반적으로, 모델링 웹 어플리테이션(280)은 데스크탑 모델링 어플리케이션(230)과 동일한 기능을 갖지만, 네트워크가 연결된 위치에 있는 장치로부터 액세스 할 수 있는 유연성을 제공하고, 설치 및 유지보수가 필요하지 않다. 일부 구현에서, 모델링 웹 어플리케이션(280)은 특정 태스크를 수행하기 위해 다양한 소프트웨어 모듈을 포함한다. 일부 구현에서, 모델링 웹 어플리케이션(280)은 모델링 웹 어플리케이션(280)의 모든 양상에 대해 사용자 인터페이스를 제공하는 그래픽 사용자 인터페이스 모듈(282)을 포함한다. 일부 구현에서, 모델링 웹 어플리케이션(280)은 컴퓨터 장치(200)에 대하여 상기 설명한 대로 도면 데이터(120) 및 새로운 도면 데이터(141)를 포함한다;- a modeling application or modeling web application 280 that can be downloaded and executed by the web browser 226 on the computer device 200 of the user. In general, the modeling web application 280 has the same functionality as the desktop modeling application 230, but provides the flexibility to access from devices located in networked locations, and requires no installation and maintenance. In some implementations, modeling web application 280 includes various software modules to perform specific tasks. In some implementations, modeling web application 280 includes a graphical user interface module 282 that provides a user interface for all aspects of modeling web application 280 . In some implementations, modeling web application 280 includes drawing data 120 and new drawing data 141 as described above with respect to computer device 200;

- 원 정보를 도면 데이터(120) 또는 새로운 도면 데이터(141)에 대한 정확한 데이터 타입으로 변환하기 위하여 요구되는 전처리 단계를 수행하고, 도면 데이터(120) 또는 새로운 도면 데이터(141)에 대한 데이터 값을 생성하고 그리고/또는 상기 설명한 대로 도면 데이터(120) 또는 새로운 도면 데이터(141) 내 결측값을 대체하기 위하여 대용 (예를 들어, 추론된) 데이터를 생성하도록 수신된 원 데이터를 기반으로 하나 이상의 계산을 수행하기 위한 데이터 처리 모듈(232);- perform the pre-processing steps required to convert the original information into the correct data type for the drawing data 120 or the new drawing data 141, and convert the data values for the drawing data 120 or the new drawing data 141 One or more calculations based on the received raw data to generate and/or generate surrogate (e.g., inferred) data to replace missing values in drawing data 120 or new drawing data 141 as described above. Data processing module 232 for performing;

- 상기 설명한 대로 모델(들)(132)을 훈련시키기 위한 머신 러닝 엔진(130);- a machine learning engine 130 for training the model(s) 132 as described above;

- 상기 설명한 대로 결과(151)를 제공하도록 훈련된 하나 이상의 모델 (132);- one or more models 132 trained to give results 151 as described above;

- 모델링 웹 어플리케이션(280) 또는 모델링 어플리케이션(230)에 의해 사용되거나 창출된(created) 데이터를 저장하는 하나 이상의 데이터베이스(290). 데이터베이스(290)는 상기 설명한 대로 도면 데이터(120), 새로운 도면 데이터(141), 결과(151)(유사성 값(들)(152) 포함) 및 하나 이상의 모델(132)을 저장할 수 있다.- one or more databases 290 that store data used or created by the modeling web application 280 or the modeling application 230; Database 290 may store drawing data 120, new drawing data 141, results 151 (including similarity value(s) 152) and one or more models 132 as described above.

전술한 식별된 실행 가능한 모듈, 어플리케이션 또는 절차들의 세트 각각은 전술한 기억 장치 중 하나 이상에 저장될 수 있고, 상기 설명된 기능을 수행하기 위한 지시들의 세트에 해당한다. 전술한 식별된 모듈 또는 프로그램(즉, 지시들의 세트)은 별개의 소프트웨어 프로그램, 절차 또는 모듈로 구현될 필요가 없고, 따라서 이러한 모듈의 다양한 부분집합은 결합되거나 그렇지 않으면 다양한 구현을 통해 재배열될 수 있다. 일부 구현에서, 메모리(264)는 전술한 식별된 데이터 구조 및 모듈의 부분집합을 저장한다. 일부 구현에서, 메모리(264)는 상기 설명되지 않은 추가 모듈 또는 데이터 구조를 저장한다.Each of the aforementioned identified executable modules, applications, or sets of procedures may be stored in one or more of the aforementioned storage devices and correspond to a set of instructions for performing the functions described above. The foregoing identified modules or programs (ie, sets of instructions) need not be implemented as separate software programs, procedures, or modules, and thus various subsets of such modules may be combined or otherwise rearranged across various implementations. there is. In some implementations, memory 264 stores a subset of the identified data structures and modules described above. In some implementations, memory 264 stores additional modules or data structures not described above.

도 2b가 서버(250)를 도시한다 해도, 도 2b는 본 개시에 설명된 구현의 구조적 개요도보다 존재할 수 있는 다양한 특징에 대한 기능적 설명을 의도로 한다. 실질적으로, 그리고 당해 기술분야의 통상의 지식을 가진 자가 인식한 대로, 별도로 도시된 항목은 결합될 수 있고 일부 항목은 분리될 수 있다. 또한, 서버(250)와 관련하여 상기 도시된 프로그램, 기능, 절차 또는 데이터의 일부는 컴퓨터 장치(200) 상에서 저장되거나 실행될 수 있다. 일부 구현에서, 기능성 및/또는 데이터는 컴퓨터 장치(200)와 하나 이상의 서버(250) 간에 할당될 수 있다. 뿐만 아니라, 당해 기술 분야의 통상의 지식을 가진 자는 도 2b는 단일의 물리적 장치를 나타낼 필요가 없음을 인식한다. 일부 구현에서, 서버 기능성은 서버 시스템을 포함하는 다수의 물리적 장치에 걸쳐 할당된다. 여기서 사용되는 바와 같이, "서버"에 대한 참조에는 기술된 기능성을 제공하는 서버들의 다양한 그룹, 컬렉션 또는 어레이를 포함하고, 물리적 서버는 물리적으로 공존(collocate)할 필요가 없다(예를 들어, 개별적인 물리적 장치는 미국 또는 전세계에 분산될 수 있다).Although FIG. 2B illustrates server 250 , FIG. 2B is intended to be a functional description of the various features that may be present rather than an architectural overview of an implementation described in this disclosure. Indeed, and as will be appreciated by those skilled in the art, items shown separately may be combined and some items may be separated. Additionally, some of the programs, functions, procedures or data shown above in relation to server 250 may be stored on or executed on computer device 200 . In some implementations, functionality and/or data may be allocated between computer device 200 and one or more servers 250. Furthermore, those skilled in the art will recognize that FIG. 2B need not represent a single physical device. In some implementations, server functionality is allocated across multiple physical devices comprising the server system. As used herein, reference to "server" includes a diverse group, collection, or array of servers that provide the described functionality, and physical servers need not physically collocate (e.g., separate Physical devices may be distributed in the United States or worldwide).

도 3a 내지 3b는 일부 구현에 따라 복수의 모델(132)의 모델(예를 들어, 제 1 모델)을 훈련시키는 방법을 예시한다. 복수의 모델(132)의 모델을 훈련하기 위하여, 머신 러닝 엔진(130)은 복수의 도면(예를 들어, n개의 도면, 도면 110-1 내지 도면 110-n)에 대한 도면 데이터(120)(예를 들어, 훈련 데이터)를 수신한다. 복수의 도면(110)의 각각의 도면에 대한 도면 데이터(120)는 이미지 데이터(122), 이미지 타입(124) 및 선택적으로, 기타 데이터(126)를 포함한다. 머신 러닝 엔진(130)은 도면 데이터(120)를 훈련 데이터(310)로 사용될 도면 데이터(120)의 제 1 부분집합과 시험 데이터(312)로 사용될 도면 데이터(120)의 제 2 부분집합으로 나눈다. 예를 들어, 도 3a에 도시된 바와 같이, 도면 데이터(예를 들어, 훈련 데이터(310), 도면 데이터 120-1 내지 120-p, 여기서 p < n) 의 제 1 부분집합은 도면(예를 들어, 도면 110-1 내지 110-p)의 제 1 부분집합에 해당하는 정보를 포함하고, 도면 데이터(예를 들어, 시험 데이터(312), 도면 데이터 120-(p+1) 내지 120-n)의 제 2 부분집합은 도면(예를 들어, 도면 110-(p+1) 내지 110-n)의 제 2 부분집합에 해당하는 정보를 포함한다. 일부 구현에서, 훈련 데이터(310)(예를 들어, 도면 데이터의 제 1 부분집합)는 복수의 도면 데이터(120)의 적어도 50%, 60%, 70%, 80%, 또는 90%를 포함한다. 예를 들어, 훈련 데이터(310)(예를 들어, 복수의 도면 데이터의 제 1 부분집합)는 복수의 도면 데이터(120)의 70%를 포함할 수 있고, 시험 데이터(312)(예를 들어, 복수의 도면 데이터의 제 2 부분집합)는 복수의 도면 데이터(120)의 30%를 포함한다.3A-3B illustrate a method of training a model (eg, a first model) of the plurality of models 132 in accordance with some implementations. To train the model of the plurality of models 132, the machine learning engine 130 uses drawing data 120 (for example, n drawings, 110-1 to 110-n). For example, training data) is received. Drawing data 120 for each drawing of plurality of drawings 110 includes image data 122 , image type 124 and, optionally, other data 126 . Machine learning engine 130 divides drawing data 120 into a first subset of drawing data 120 to be used as training data 310 and a second subset of drawing data 120 to be used as test data 312. For example, as shown in FIG. 3A , a first subset of drawing data (e.g., training data 310, drawing data 120-1 to 120-p, where p < n) is a drawing (e.g., For example, including information corresponding to the first subset of drawings 110-1 to 110-p), drawing data (eg, test data 312, drawing data 120-(p+1) to 120-n The second subset of ) includes information corresponding to the second subset of drawings (eg, drawings 110-(p+1) to 110-n). In some implementations, training data 310 (eg, a first subset of drawing data) includes at least 50%, 60%, 70%, 80%, or 90% of plurality of drawing data 120 . . For example, training data 310 (eg, a first subset of plurality of drawing data) may include 70% of plurality of drawing data 120 , and test data 312 (eg, , the second subset of the plurality of drawing data) includes 30% of the plurality of drawing data 120 .

도 3b를 참조하여, 머신 러닝 엔진(130)은 복수의 모델(132)의 모델을 훈련시키기 위해 훈련 데이터(310) 및 시험 데이터(312)를 이용한다. 머신 러닝 엔진(130)은 모델 132-m을 생성(예를 들어, 훈련)하도록 훈련 데이터(310)를 이용해 훈련 중(in-training) 모델(320)을 훈련(예를 들어, 생성)하고 시험 데이터(312)를 이용해 훈련 중 모델(320)을 시험 및 개선(refine)한다. 일단 모델 132-m이 훈련되면, 모델 132-m은 특정 이미지 타입과의 도면의 유사성을 결정하기 위해서 사용될 수 있다. Referring to FIG. 3B , machine learning engine 130 uses training data 310 and test data 312 to train a model of plurality of models 132 . Machine learning engine 130 trains (eg, generates) and tests in-training model 320 using training data 310 to create (eg, train) model 132-m. Data 312 is used to test and refine model 320 during training. Once model 132-m is trained, model 132-m can be used to determine the similarity of a drawing to a particular image type.

본 과정은 복수의 모델(132)에 대하여 반복될 수 있고, 여기서 각 모델(132)을 훈련시키기 위해 입력으로 사용된 도면 데이터(120) 및 복수의 도면(110)은 각각 다른 (예를 들어, 별개의) 모델에 대하여 상이하다.This process may be repeated for a plurality of models 132, where the drawing data 120 used as input to train each model 132 and the plurality of drawings 110 are different (e.g., separate) model.

도 4a 내지 4b는 일부 구현에 따른 제품 이미지와 참조 도면 간 유사성 평가를 위한 방법(400)의 흐름도를 제공한다. 방법(400)의 동작은 컴퓨터 장치(200) 또는 서버(250)에 해당하는 컴퓨터 시스템을 통해 수행될 수 있다. 일부 구현에서, 컴퓨터 시스템은 하나 이상의 프로세서 및 메모리를 포함한다. 도 4a 내지 4b는 컴퓨터 메모리 또는 컴퓨터 판독가능 저장 매체(예를 들어, 컴퓨터 장치(200)의 메모리(206))에 저장된 지시에 해당한다. 메모리는 하나 이상의 프로세서에 의한 실행을 위해 설정된 하나 이상의 프로그램을 저장한다. 예를 들어, 방법(400)의 동작은, 적어도 부분적으로, 머신 러닝 엔진(130)에 의해 수행된다.4A-4B provide a flow diagram of a method 400 for similarity assessment between a product image and a reference drawing, in accordance with some implementations. The operation of the method 400 may be performed through a computer system corresponding to the computer device 200 or the server 250 . In some implementations, a computer system includes one or more processors and memory. 4A-4B correspond to instructions stored in a computer memory or computer readable storage medium (eg, memory 206 of computer device 200). The memory stores one or more programs configured for execution by one or more processors. For example, the operations of method 400 are performed, at least in part, by machine learning engine 130 .

일부 구현에 따라, 컴퓨터 시스템(예를 들어, 컴퓨터 장치(200), 서버(250) 등)은 제품의 하나 이상의 이미지에 해당하는 하나 이상의 특징 벡터를 획득한다(410). 특징 벡터는 특정 물체를 나타내는 수치적 특징 그룹이다. 예를 들어, 컴퓨터 시스템은 제품의 이미지 2개를 (예를 들어, 사시도 및 평면도) 획득할 수 있고, 각 이미지는 각각의 특징 벡터에 의해 나타날 수 있다(예를 들어, 제품의 제 1 이미지는 제 1 특징 벡터에 의해 나타나고 제품의 제 2 이미지는 제 2 특징 벡터에 의해 나타난다). 일부 구현에서, 컴퓨터 시스템은 원 이미지 파일을 수신하는 대신 특징 벡터를 수신한다. According to some implementations, a computer system (eg, computer device 200, server 250, etc.) obtains (410) one or more feature vectors corresponding to one or more images of a product. A feature vector is a group of numerical features representing a particular object. For example, a computer system may acquire two images of a product (eg, a perspective view and a top view), and each image may be represented by a respective feature vector (eg, a first image of a product is represented by the first feature vector and the second image of the product represented by the second feature vector). In some implementations, the computer system receives feature vectors instead of receiving raw image files.

일부 구현에서, 컴퓨터 시스템은, 하나 이상의 특징 벡터 획득 전에, 제품의 하나 이상의 이미지를 획득하고(402); 그리고 하나 이상의 특징 벡터를 제품의 하나 이상의 이미지로부터 추출한다. 예를 들어, 일부 구현에서, 컴퓨터 시스템은 원 이미지를 수신하고 하나 이상의 특징 벡터를 추출한다. 일부 구현에서, 컴퓨터 시스템은 두 개의 이미지를 수신하고 제 1 이미지에 대한 제 1 특징 벡터 및 제 2 이미지에 대한 제 2 특징 벡터를 추출한다. 일부 구현에서, 컴퓨터 시스템은 카메라를 포함하거나 또는 카메라와 통신한다(예를 들어, 컴퓨터 시스템은 카메라가 내장되어 있는 휴대폰이다). 카메라는 제품의 이미지를 수집하기 위하여 사용되는데, 이는 후속하여 하나 이상의 특징 벡터 추출을 위해 처리된다.In some implementations, the computer system acquires ( 402 ) one or more images of the product prior to obtaining the one or more feature vectors; And extract one or more feature vectors from one or more images of the product. For example, in some implementations, a computer system receives raw images and extracts one or more feature vectors. In some implementations, a computer system receives two images and extracts a first feature vector for a first image and a second feature vector for a second image. In some implementations, the computer system includes or communicates with a camera (eg, the computer system is a cell phone with a built-in camera). A camera is used to collect images of the product, which are subsequently processed to extract one or more feature vectors.

컴퓨터 시스템은 각각의 참조 제품과의 각각의 유사성 결정을 위해 구축된 복수의 훈련 모델을 검색(retrieve)한다(420). 일부 구현에서, 각각의 모델은 각각의 참조 제품(또는 참조 제품의 각각의 도면)에 관한 유사성 값 결정을 위해 설정된다. 제품의 이미지를 다수의 참조 제품과 비교하기 위하여, 일부 구현에서, 다수의 모델이 사용된다.The computer system retrieves 420 the plurality of training models built for each determination of similarity to each reference product. In some implementations, each model is set up for similarity value determination for each reference product (or each drawing of a reference product). To compare an image of a product to multiple reference products, in some implementations multiple models are used.

일부 구현에서, 복수의 훈련 모델의 적어도 제 1 부분집합은 각각의 이미지 타입(예를 들어, 컬러 사진, 흑백 사진, 렌더링(rendering), 도면 등)과 연관된다. 컴퓨터 시스템은 제품의 하나 이상의 이미지 중 특정 이미지의 이미지 타입에 해당하는 각각의 이미지 타입과 연관된 복수의 훈련 모델의 적어도 제 1 부분집합의 하나 이상의 훈련 모델을 선택한다(422). 예를 들어, 수신된 제품 이미지가 렌더링된 이미지일 경우, 컴퓨터 시스템은 렌더링된 이미지와 함께 사용되도록 설정된 모델을 선택한다. 다른 예에서, 수신된 제품 이미지가 엔지니어링 도면일 경우, 컴퓨터 시스템은 엔지니어링 도면과 함께 사용되도록 설정된 모델을 선택한다.In some implementations, at least a first subset of the plurality of trained models is associated with each image type (eg, color photograph, black and white photograph, rendering, drawing, etc.). The computer system selects ( 422 ) one or more training models of at least a first subset of a plurality of training models associated with each image type corresponding to an image type of a particular image of the one or more images of the product. For example, if the received product image is a rendered image, the computer system selects a model set to be used with the rendered image. In another example, if the received product image is an engineering drawing, the computer system selects a model set to be used with the engineering drawing.

일부 구현에서, 복수의 훈련 모델의 적어도 제 2 부분집합은 특정 이미지 타입과 연관되지 않는다(424). 예를 들어, 심층 신경망 엔진(deep neural network engine) 또는 개방 크로스-도메인시각 탐색 알고리즘(open cross-domain visual search algorithm)은 다른 이미지 타입의 이미지를 비교하기 위하여 사용될 수 있다.In some implementations, at least a second subset of the plurality of training models is not associated with a particular image type (424). For example, a deep neural network engine or open cross-domain visual search algorithm may be used to compare images of different image types.

일부 구현에서, 각각의 훈련 모델은 복수의 제품에 대한 데이터에 따라 훈련되었다(426). 복수의 제품의 제 1 부분집합은 각각의 참조 제품과 유사한 제품을 포함한다. 복수의 제품의 제 2 부분집합은 각각의 참조 제품과 유사하지 않은 제품을 포함한다. 예를 들어, 각각의 훈련 모델은 포지티브(positive) 및 네거티브(negative)한 참조 모두와 함께 훈련된다.In some implementations, each training model has been trained according to data for a plurality of products (426). The first subset of the plurality of products includes products similar to each reference product. A second subset of the plurality of products includes products that are dissimilar to each reference product. For example, each training model is trained with both positive and negative references.

제품과 각각의 참조 제품 간 각각의 유사성 결정을 위해 구축된, 복수의 훈련 모델의, 각각의 훈련 모델에 대한, 컴퓨터 시스템은 각각의 훈련 모델을 제품의 하나 이상의 이미지 중 하나의 이미지와 각각의 참조 제품의 이미지 간 유사성 결정을 위한 제품의 하나 이상의 이미지에 해당하는 하나 이상의 특징 벡터 중의 하나의 특징 벡터에 적용한다(430, 도 4b). 예를 들어, 도 1b와 관련하여 설명한 바와 같이, 유사성 값은 각각의 훈련 모델을 특징 벡터에 적용함으로써 획득된다. 일부 구현에서, SphereFace, CosFace, AcrFace 등의 소프트웨어 도구는 유사성 결정을 위해 사용될 수 있다.For each training model of the plurality of training models, built for each similarity determination between a product and each reference product, the computer system associates each training model with one image of one or more images of the product and each reference product. It is applied to one feature vector among one or more feature vectors corresponding to one or more images of a product for determining similarity between images of a product (430, FIG. 4B). For example, as described with respect to FIG. 1B, similarity values are obtained by applying each training model to a feature vector. In some implementations, software tools such as SphereFace, CosFace, AcrFace, etc. may be used for similarity determination.

일부 구현에서, 복수의 훈련 모델의 적어도 제 1 부분집합은 각각의 이미지 타입과 연관된다. 각각의 훈련 모델에 대하여, 컴퓨터 시스템은 제품의 하나 이상의 이미지를 각각의 훈련 모델과 연관된 각각의 이미지 타입의 각각의 이미지로 변환한다(432). 예를 들어, 도 6 및 7에 관련하여 설명한 바와 같이, 제 1 이미지 타입의 이미지는 제 1 이미지 타입과 다른 제 2 이미지 타입의 이미지로 변환될 수 있다. 다른 이미지 타입 간 이미지의 변환을 위해, Domain Transfer Network, Pix2Pix 등과 같은 소프트웨어 도구를 사용할 수 있다. In some implementations, at least a first subset of the plurality of training models is associated with each image type. For each training model, the computer system converts one or more images of the product into a respective image of a respective image type associated with each training model (432). For example, as described with reference to FIGS. 6 and 7 , an image of a first image type may be converted into an image of a second image type different from the first image type. For conversion of images between different image types, you can use software tools such as Domain Transfer Network, Pix2Pix, etc.

일부 구현에서, 컴퓨터 시스템은 제품과 각각의 참조 제품 간 유사성 결정을 위해 구축된 둘 이상의 훈련 모델을 적용하는 것을 기반으로 제품과 각각의 참조 제품간 각각의 유사성을 결정한다(434). 둘 이상의 훈련 모델은 둘 이상의 이미지 타입과 연관된다.In some implementations, the computer system determines 434 each similarity between the product and each reference product based on applying two or more training models built to determine the similarity between the product and each reference product. Two or more training models are associated with two or more image types.

일부 구현에서, 각각의 훈련 모델을 하나 이상의 특징 벡터의 특징 벡터에 적용하는 것은 제품의 하나 이상의 이미지에 해당하는 하나 이상의 특징 벡터의 특징 벡터와 각각의 참조 제품의 이미지에서 추출한 특징 벡터 간 거리를 결정하는 것을 포함한다(436). 일부 구현에서, 유클리드(Euclidean) 거리 또는 코사인(Cosine) 거리를 계산할 수 있다. In some implementations, applying each training model to feature vectors of the one or more feature vectors determines a distance between feature vectors of the one or more feature vectors corresponding to one or more images of the product and feature vectors extracted from images of each reference product. It includes doing (436). In some implementations, a Euclidean distance or a Cosine distance may be computed.

일부 구현에서, 각각의 참조 제품의 이미지는 특허 도면을 포함한다(438). In some implementations, each image of the reference product includes a patent drawing (438).

컴퓨터 시스템은 제품과 각각의 참조 제품 간 각각의 유사성을 제공한다(440).The computer system provides 440 each similarity between the product and each reference product.

도 5a 내지 5b는 일부 구현에 따른 제품 이미지와 참조 도면 간 유사성 평가를 위한 모델 구축 방법(500)의 흐름도를 제공한다. 방법(500)의 단계는 컴퓨터 장치(200) 또는 서버(250)에 해당하는 컴퓨터 시스템에 의해 수행될 수 있다. 일부 구현에서, 컴퓨터 시스템은 하나 이상의 프로세서 및 메모리를 포함한다. 도 5a 내지 5b는 컴퓨터 메모리 또는 컴퓨터 판독가능 저장 매체(예를 들어, 컴퓨터 장치(200)의 메모리(206))에 저장된 지시에 해당한다. 메모리는 하나 이상의 프로세서에 의한 실행을 위해 설정된 하나 이상의 프로그램을 저장한다. 5A-5B provide a flow diagram of a model building method 500 for similarity assessment between a product image and a reference drawing, according to some implementations. The steps of method 500 may be performed by a computer system corresponding to computer device 200 or server 250 . In some implementations, a computer system includes one or more processors and memory. 5A-5B correspond to instructions stored in a computer memory or computer readable storage medium (eg, memory 206 of computer device 200). The memory stores one or more programs configured for execution by one or more processors.

일부 구현에 따라, 복수의 참조 제품의 각각의 참조 제품에 대하여, 컴퓨터 시스템(예를 들어, 컴퓨터 장치(200), 서버(250) 등)은 각각의 참조 제품의 이미지를 검색한다(510).According to some implementations, for each reference product of the plurality of reference products, a computer system (eg, computer device 200, server 250, etc.) retrieves an image of each reference product (510).

일부 구현에서, 각각의 참조 제품의 이미지는 각각의 이미지 타입과 연관된다. 컴퓨터 시스템은 각각의 이미지 타입의 특정 이미지 타입에 해당하는 각각의 참조 제품의 이미지 중 하나 이상의 이미지를 선택한다(512). 예를 들어, 선택된 하나 이상의 이미지는 사진, 렌더링된 이미지, 엔지니어링 도면 또는 특허 도면 등 특정 이미지 타입에 해당된다.In some implementations, an image of each reference product is associated with a respective image type. The computer system selects 512 one or more of the images of each reference product corresponding to the particular image type of each image type. For example, the one or more selected images correspond to a specific image type, such as a photograph, a rendered image, an engineering drawing, or a patent drawing.

일부 구현에서, 각각의 참조 제품의 이미지는 각각의 이미지 타입과 연관된다. 컴퓨터 시스템은 각각의 참조 제품의 이미지를 각각의 이미지 타입의 특정 이미지 타입으로 변환한다(514). 예를 들어, 다른 이미지 타입의 이미지는 사진, 렌더링된 이미지, 엔지니어링 도면 또는 특허 도면 등 동일한 이미지 타입으로 변환된다. In some implementations, an image of each reference product is associated with a respective image type. The computer system converts the image of each reference product into a specific image type of each image type (514). For example, images of different image types are converted to the same image type, such as photos, rendered images, engineering drawings, or patent drawings.

각각의 참조 제품에 대하여, 컴퓨터 시스템은 각각의 참조 제품의 검색된 이미지의 각각의 이미지에 대한 각각의 특징 벡터를 구성한다(예를 들어, 컴퓨터 시스템은 각각의 이미지에서 특징 벡터를 추출한다)(520). For each reference product, the computer system constructs each feature vector for each image of the retrieved images of each reference product (e.g., the computer system extracts the feature vector from each image) (520). ).

컴퓨터 시스템은 특징 벡터들의 적어도 부분집합을 이용해 모델을 훈련시켜 각각의 참조 제품의 유사성을 결정한다(530). The computer system determines the similarity of each reference product by training a model using at least a subset of the feature vectors (530).

일부 구현에서, 컴퓨터 시스템은 둘 이상의 이미지 타입과 연관된 특징 벡터를 이용해 모델을 훈련시킨다(532).In some implementations, the computer system trains the model using feature vectors associated with two or more image types (532).

일부 구현에서, 컴퓨터 시스템은 제품과 각각의 참조 제품 간 각각의 유사성을 결정한다(534). In some implementations, the computer system determines 534 a respective similarity between the product and each reference product.

일부 구현에서, 각각의 유사성 결정은 각각의 특징 벡터까지의 거리 결정을 포함한다(536). In some implementations, each similarity determination includes a distance determination to each feature vector (536).

일부 구현에서, 컴퓨터 시스템은 특징 벡터의 하나 이상의 클러스터(cluster)를 식별하고(538), 각각의 유사성 결정은 하나 이상의 클러스터의 각각의 클러스터까지의 거리를 결정하는 것을 포함한다.In some implementations, the computer system identifies 538 one or more clusters of feature vectors, and each similarity determination includes determining a distance to each cluster of the one or more clusters.

컴퓨터 시스템은 각각의 참조 제품과의 유사성을 결정함에 있어서의 후속 사용을 위하여 데이터베이스에 훈련 모델을 저장한다(540).The computer system stores the training model in a database for subsequent use in determining similarity to each reference product (540).

도 6은 일부 구현에 따른 정합 식별에 관련된 두 개의 동작을 예시하는 계통도이다.6 is a schematic diagram illustrating two operations involved in identifying matches in accordance with some implementations.

제 1 동작은 수신된 이미지(610)(예를 들어, 사진)를 처리하여 처리된 이미지(620)를 획득하는 것을 포함한다. 일부 구현에서, 전술한 처리는 물체 감지 동작을 감지하는 것을 포함한다. 물체 감지 동작은 Faster Region-based Convolutional Neural Network-Region Proposal Network, Yolo 등과 같은 소프트웨어 도구를 이용해 수행될 수 있다. 일부 구현에서, 전술한 처리는 수신된 이미지(또는 적어도 부분적으로 처리된 이미지, 또는 그 일부)를 정렬하는 것을 포함한다. 일부 구현에서, 전술한 처리는 수신된 이미지(610)를 다른 타입의 이미지(예를 들어, 라인 드로잉에 맞춘 사진)로 변환시키는 것을 포함한다. 변환 동작은 Domain Transfer Network 또는 Pix2Pix 과 같은 알고리즘을 이용해 수행될 수 있다.A first operation includes processing a received image 610 (eg, a photograph) to obtain a processed image 620 . In some implementations, the processing described above includes sensing an object sensing action. The object detection operation may be performed using software tools such as Faster Region-based Convolutional Neural Network-Region Proposal Network, Yolo, and the like. In some implementations, the processing described above includes aligning the received images (or at least partially processed images, or portions thereof). In some implementations, the processing described above includes converting the received image 610 to another type of image (eg, a photograph fit to a line drawing). The conversion operation can be performed using an algorithm such as Domain Transfer Network or Pix2Pix.

제 2 동작은 도 1b와 관련해 설명한 것처럼 유사성 값을 결정하기 위해 처리된 이미지(620)와 참조 도면(630)을 비교하는 것을 포함한다.The second operation includes comparing the processed image 620 with the reference drawing 630 to determine a similarity value as described with respect to FIG. 1B.

본 개시의 설명에 사용된 용어는 특정 구현을 설명하기 위한 것일 뿐이고 본 개시를 제한할 의도는 아니다. 본 개시 및 첨부된 청구항 설명에서 사용한 바와 같이, 단수형 "하나," "한," 및 "그" 은 문맥상 달리 분명하게 지시하지 않는 한 복수형 또한 포함하고자 한다. 여기서 사용된 용어 "및/또는" 은 연관된 열거 항목 중 하나 이상의 모든 가능한 조합을 의미하고 포함하는 것으로 이해될 것이다. 또한 본 명세서에서 사용될 경우 용어 "포함하다(comprises)" 및/또는 "포함하는(comprising)"은 명시된 특징, 단계, 동작, 구성요소 및/또는 성분의 존재를 명시하나, 그것의 하나 이상의 기타 특징, 단계, 동작, 구성요소, 성분 및/또는 그룹의 존재 또는 추가를 배제하지 않는 것으로 이해될 것이다.The terminology used in the description of this disclosure is only for describing a particular implementation and is not intended to limit the disclosure. As used in this disclosure and the appended claims, the singular forms “a,” “an,” and “the” are intended to include the plural as well, unless the context clearly dictates otherwise. As used herein, the term “and/or” will be understood to mean and include all possible combinations of one or more of the associated enumerated items. Also when used herein, the terms "comprises" and/or "comprising" specify the presence of specified features, steps, operations, elements and/or ingredients, but specify one or more other characteristics thereof. However, it will be understood that this does not exclude the presence or addition of steps, operations, components, components and/or groups.

전술한 설명의 경우, 설명을 목적으로, 특정 구현을 참조하여 설명되었다. 그러나, 전술한 예시적 논의는 모든 것을 망라하거나 또는 개시된 정확한 형식에 본 개시를 제한하고자 하지 않는다. 전술한 교시를 고려하여 다수의 수정 및 변경이 가능하다. 구현은 본 개시의 원리 및 그의 실질적인 적용사례를 가장 잘 설명할 수 있도록 선택 및 설명되었고, 이에 따라 당해 기술분야의 통상의 지식을 가진 자는 고려된 특정 용도에 맞는 다양한 변경사항이 있는 다양한 구현 및 본 개시를 가장 잘 활용할 수 있다.[0021] [0011] [0010] [0011] [0010] [0011] [0010] [0011] [0011] [0010] [0011] [0011] In the foregoing description, for explanatory purposes, reference has been made to specific implementations. However, the foregoing illustrative discussion is not intended to be exhaustive or to limit the disclosure to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. The implementations were selected and described to best explain the principles of the present disclosure and its practical applications, and accordingly, those skilled in the art can find various implementations and the present Initiation can be best used.

본 작업물은 한국 정부(과학기술정보통신부, MSIT) (A0222-21-1001)에 의해 지원되는 정보통신산업진흥원(National IT Industry Promotion Agency, NIPA) 및 서울 시청 정부에 의해 지원되는 서울 산업 진흥원(Seoul Business Agency, SBA)을 통한 서울 사업화 연계기술개발(R&BD) 프로그램(CY200002, “자료 지문”의 스펙트럼 분석을 통한 가짜 제품 경고 서비스(Fake Product Warning Service through the Spectrum Analysis of the "Material Fingerprints"))의 지원을 받았다. This work is supported by the National IT Industry Promotion Agency (NIPA) supported by the Korean government (Ministry of Science and ICT, MSIT) (A0222-21-1001) and the Seoul Business Agency (supported by the Seoul City Hall government). Seoul Commercialization Linked Technology Development (R&BD) Program (CY200002, Fake Product Warning Service through the Spectrum Analysis of the "Material Fingerprints") through Seoul Business Agency, SBA) received support from

Claims (20)

하나 이상의 프로세서 및 상기 하나 이상의 프로세서에 의한 실행을 위해 설정된 하나 이상의 프로그램을 저장하는 메모리를 갖는 컴퓨팅 장치에서 수행되는, 제품 이미지와 참조 도면 간 유사성을 평가하는 방법에 있어, 상기 방법은:
제품의 하나 이상의 이미지에 해당하는 하나 이상의 특징 벡터를 획득하는 단계;
각각의 참조 제품의 각각의 유사성을 결정하도록 구축된 복수의 훈련 모델을 검색하는 단계;
상기 제품과 상기 각각의 참조 제품 간의 각각의 유사성을 결정하도록 구축된, 상기 복수의 훈련 모델의, 각각의 훈련 모델에 대해서, 상기 제품의 상기 하나 이상의 이미지 중 하나의 이미지와 상기 각각의 참조 제품의 이미지 간의 유사성을 결정하기 위해서 상기 제품의 상기 하나 이상의 이미지에 해당하는 상기 하나 이상의 특징 벡터 중의 특징 벡터에 상기 각각의 훈련 모델을 적용하는 단계; 및
상기 제품과 상기 각각의 참조 제품 간의 상기 각각의 유사성을 제공하는 단계를 포함하는, 방법.
A method of evaluating similarity between a product image and a reference drawing, performed in a computing device having one or more processors and a memory storing one or more programs configured for execution by the one or more processors, the method comprising:
obtaining one or more feature vectors corresponding to one or more images of the product;
retrieving a plurality of training models built to determine each similarity of each reference product;
of the plurality of training models, for each training model, of an image of one of the one or more images of the product and the respective reference product, built to determine a respective similarity between the product and the respective reference product. applying each training model to a feature vector among the one or more feature vectors corresponding to the one or more images of the product to determine a similarity between images; and
providing the respective similarity between the product and the respective reference product.
제1항에 있어서,
상기 복수의 훈련 모델의 적어도 제 1 부분집합은 각각의 이미지 타입과 연관되고;
상기 방법은, 상기 제품의 상기 하나 이상의 이미지 중 특정 이미지의 이미지 타입에 해당하는 각각의 이미지 타입과 연관된 상기 복수의 훈련 모델의 상기 적어도 제 1 부분집합의 하나 이상의 훈련 모델을 선택하는 단계를 더 포함하는, 방법.
According to claim 1,
at least a first subset of the plurality of training models is associated with each image type;
The method further comprises selecting one or more training models of the at least a first subset of the plurality of training models associated with each image type corresponding to an image type of a particular image among the one or more images of the product. How to.
제1항에 있어서,
상기 복수의 훈련 모델의 적어도 제 1 부분집합은 각각의 이미지 타입과 연관되고;
상기 방법은, 상기 각각의 훈련 모델에 대하여, 상기 제품의 상기 하나 이상의 이미지를 상기 각각의 훈련 모델과 연관된 각각의 이미지 타입의 각각의 이미지로 변환시키는 단계를 더 포함하는, 방법.
According to claim 1,
at least a first subset of the plurality of training models is associated with each image type;
The method further comprises, for each training model, transforming the one or more images of the product into a respective image of a respective image type associated with the respective training model.
제1항에 있어서,
상기 복수의 훈련 모델의 적어도 제 2 부분집합은 특정 이미지 타입과 연관되지 않는, 방법.
According to claim 1,
wherein at least a second subset of the plurality of training models is not associated with a specific image type.
내지 제4항 중 어느 한 항에 있어서,
상기 각각의 훈련 모델은 복수의 제품에 대한 데이터에 따라 훈련되었고;
상기 복수의 제품의 제 1 부분집합은 상기 각각의 참조 제품과 유사한 제품을 포함하고;
상기 복수의 제품의 제 2 부분집합은 상기 각각의 참조 제품과 유사하지 않은 제품을 포함하는, 방법.
According to any one of claims to 4,
Each of the above training models has been trained according to data for a plurality of products;
the first subset of the plurality of products includes products similar to each of the reference products;
wherein the second subset of the plurality of products includes products that are dissimilar to the respective reference product.
내지 제5항 중 어느 한 항에 있어서, 상기 방법은:
상기 제품과 상기 각각의 참조 제품 간 각각의 유사성을 결정하도록 구축된 둘 이상의 훈련 모델을 적용하는 것에 기반하여 상기 제품과 상기 각각의 참조 제품 간 상기 각각의 유사성을 결정하는 단계를 더 포함하고,
상기 둘 이상의 훈련 모델은 둘 이상의 이미지 타입과 연관되는, 방법.
6. The method according to any one of claims to 5, wherein the method:
determining a respective similarity between the product and the respective reference product based on applying two or more training models constructed to determine a respective similarity between the product and the respective reference product;
wherein the two or more training models are associated with two or more image types.
내지 제6항 중 어느 한 항에 있어서, 상기 방법은:
상기 제품의 상기 하나 이상의 이미지를 획득하는 단계; 및
상기 제품의 상기 하나 이상의 이미지로부터 상기 하나 이상의 특징 벡터를 추출하는 단계를 더 포함하는, 방법.
7. The method according to any one of claims to 6, wherein the method:
acquiring the one or more images of the product; and
and extracting the one or more feature vectors from the one or more images of the product.
내지 제7항 중 어느 한 항에 있어서,
상기 각각의 훈련 모델을 상기 하나 이상의 특징 벡터 중의 특징 벡터에 적용하는 단계는, 상기 제품의 상기 하나 이상의 이미지에 해당하는 상기 하나 이상의 특징 벡터 중의 상기 특징 벡터와 상기 각각의 참조 제품의 상기 이미지에서 추출한 특징 벡터 사이의 거리를 결정하는 단계를 포함하는, 방법.
According to any one of claims to 7,
The step of applying each training model to a feature vector of the one or more feature vectors may include extracting from the feature vector of the one or more feature vectors corresponding to the one or more images of the product and the image of each reference product. A method comprising determining a distance between feature vectors.
내지 제8항 중 어느 한 항에 있어서,
상기 각각의 참조 제품의 상기 이미지는 특허 도면을 포함하는, 방법.
According to any one of claims to 8,
wherein the image of each reference product comprises a patent drawing.
하나 이상의 프로세서 및 메모리를 가진 컴퓨터 시스템에 의한 실행을 위해 설정된 하나 이상의 프로그램을 저장하는 비일시적 컴퓨터 판독가능 저장 매체에 있어서,
상기 하나 이상의 프로그램이 제1항 내지 제9항의 방법들 중 어느 하나의 방법을 수행하기 위한 지시를 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
A non-transitory computer-readable storage medium storing one or more programs configured for execution by a computer system having one or more processors and memory,
A non-transitory computer-readable storage medium, wherein the one or more programs include instructions for performing any one of the methods of claims 1 to 9.
컴퓨터 시스템으로서:
하나 이상의 프로세서;
메모리; 및
상기 메모리에 저장되고 상기 하나 이상의 프로세서에 의한 실행을 위해 설정된 하나 이상의 프로그램을 포함하고,
상기 하나 이상의 프로그램은 제1항 내지 제9항의 방법들 중 어느 하나의 방법을 수행하기 위한 지시를 포함하는, 컴퓨터 시스템.
As a computer system:
one or more processors;
Memory; and
one or more programs stored in the memory and configured for execution by the one or more processors;
A computer system, wherein the one or more programs include instructions for performing any one of the methods of claims 1 to 9.
하나 이상의 프로세서 및 상기 하나 이상의 프로세서에 의한 실행을 위해 설정된 하나 이상의 프로그램을 저장하는 메모리를 갖는 컴퓨팅 장치에서 수행되는, 제품 이미지와 참조 도면 간 유사성을 평가하는 모델을 구축하는 방법에 있어, 상기 방법은:
복수의 참조 제품의 각각의 참조 제품에 대하여:
상기 각각의 참조 제품의 이미지를 검색하는 단계;
상기 각각의 참조 제품의 상기 검색된 이미지의 각각의 이미지에 대한 각각의 특징 벡터를 구성하는 단계;
상기 각각의 참조 제품의 유사성을 결정하는 모델을 훈련시키기 위해 특징 벡터의 적어도 부분집합을 이용하는 단계; 및
상기 각각의 참조 제품의 유사성을 결정함에 있어서의 후속 사용을 위해 데이터베이스에 상기 훈련 모델을 저장하는 단계를 포함하는, 방법.
A method of building a model for evaluating similarity between a product image and a reference drawing, performed in a computing device having one or more processors and a memory storing one or more programs configured for execution by the one or more processors, the method comprising: :
For each reference product in the plurality of reference products:
Retrieving an image of each reference product;
constructing each feature vector for each image of the retrieved image of each reference product;
using at least a subset of feature vectors to train a model that determines the similarity of each reference product; and
storing the trained model in a database for subsequent use in determining the similarity of each reference product.
제12항에 있어서,
상기 각각의 참조 제품의 상기 이미지는 각각의 이미지 타입과 연관되고;
상기 방법은, 상기 각각의 이미지 타입의 특정 이미지 타입에 해당하는 상기 각각의 참조 제품의 이미지 중 하나 이상의 이미지를 선택하는 단계를 더 포함하는, 방법.
According to claim 12,
the image of each reference product is associated with a respective image type;
The method further comprises selecting one or more images of the images of each reference product corresponding to a particular image type of the respective image type.
제12항에 있어서,
상기 각각의 참조 제품의 상기 이미지는 각각의 이미지 타입과 연관되고;
상기 방법은, 상기 각각의 참조 제품의 상기 이미지를 상기 각각의 이미지 타입의 특정 이미지 타입의 이미지로 변환하는 단계를 더 포함하는, 방법.
According to claim 12,
the image of each reference product is associated with a respective image type;
The method further comprises converting the image of the respective reference product into an image of a specific image type of the respective image type.
제12항에 있어서,
둘 이상의 이미지 타입과 연관된 특징 벡터를 이용해 상기 모델을 훈련시키는 단계를 포함하는, 방법.
According to claim 12,
training the model using feature vectors associated with two or more image types.
제12항 내지 제15항 중 어느 한 항에 있어서,
제품과 상기 각각의 참조 제품 간 각각의 유사성을 결정하는 단계를 더 포함하는, 방법.
According to any one of claims 12 to 15,
determining a respective similarity between a product and the respective reference product.
제16항에 있어서,
상기 각각의 유사성을 결정하는 단계는, 상기 각각의 특징 벡터까지의 거리를 결정하는 단계를 포함하는, 방법.
According to claim 16,
Wherein determining each similarity comprises determining a distance to each feature vector.
제16항 혹은 제17항에 있어서,
상기 특징 벡터의 하나 이상의 클러스터를 식별하는 단계를 더 포함하고;
상기 각각의 유사성을 결정하는 단계는, 상기 하나 이상의 클러스터의 각각의 클러스터까지의 거리를 결정하는 단계를 포함하는, 방법.
The method of claim 16 or 17,
further comprising identifying one or more clusters of the feature vectors;
wherein determining each similarity comprises determining a distance to each cluster of the one or more clusters.
하나 이상의 프로세서 및 메모리를 가진 컴퓨터 시스템에 의한 실행을 위해 설정된 하나 이상의 프로그램을 저장하는 비일시적 컴퓨터 판독가능 저장 매체에 있어서,
상기 하나 이상의 프로그램이 제12항 내지 제18항의 방법들 중 어느 하나의 방법을 수행하기 위한 지시를 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
A non-transitory computer-readable storage medium storing one or more programs configured for execution by a computer system having one or more processors and memory,
A non-transitory computer-readable storage medium, wherein the one or more programs include instructions for performing any one of the methods of claims 12-18.
컴퓨터 시스템으로서:
하나 이상의 프로세서;
메모리; 및
상기 메모리에 저장되고 상기 하나 이상의 프로세서에 의한 실행을 위해 설정된 하나 이상의 프로그램을 포함하고;
상기 하나 이상의 프로그램은 제12항 내지 제18항의 방법들 중 어느 하나의 방법을 수행하기 위한 지시를 포함하는, 컴퓨터 시스템.
As a computer system:
one or more processors;
Memory; and
one or more programs stored in the memory and configured for execution by the one or more processors;
A computer system, wherein the one or more programs include instructions for performing any one of the methods of claims 12 to 18.
KR1020210115490A 2021-08-31 2021-08-31 Methods for automatically identifying a match between a product image and a reference drawing based on artificial intelligence KR20230032536A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210115490A KR20230032536A (en) 2021-08-31 2021-08-31 Methods for automatically identifying a match between a product image and a reference drawing based on artificial intelligence

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210115490A KR20230032536A (en) 2021-08-31 2021-08-31 Methods for automatically identifying a match between a product image and a reference drawing based on artificial intelligence

Publications (1)

Publication Number Publication Date
KR20230032536A true KR20230032536A (en) 2023-03-07

Family

ID=85513117

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210115490A KR20230032536A (en) 2021-08-31 2021-08-31 Methods for automatically identifying a match between a product image and a reference drawing based on artificial intelligence

Country Status (1)

Country Link
KR (1) KR20230032536A (en)

Similar Documents

Publication Publication Date Title
RU2770752C1 (en) Method and device for training a face recognition model and a device for determining the key point of the face
US20210256320A1 (en) Machine learning artificialintelligence system for identifying vehicles
US11348249B2 (en) Training method for image semantic segmentation model and server
CN112990054B (en) Compact linguistics-free facial expression embedding and novel triple training scheme
CN111062871B (en) Image processing method and device, computer equipment and readable storage medium
WO2021036059A1 (en) Image conversion model training method, heterogeneous face recognition method, device and apparatus
WO2021208601A1 (en) Artificial-intelligence-based image processing method and apparatus, and device and storage medium
CN111652974B (en) Method, device, equipment and storage medium for constructing three-dimensional face model
CN110765882B (en) Video tag determination method, device, server and storage medium
WO2021129466A1 (en) Watermark detection method, device, terminal and storage medium
US20240153240A1 (en) Image processing method, apparatus, computing device, and medium
CN112132776A (en) Visual inspection method and system based on federal learning, storage medium and equipment
CN111598899A (en) Image processing method, image processing apparatus, and computer-readable storage medium
CN111127668A (en) Role model generation method and device, electronic equipment and storage medium
WO2019128735A1 (en) Imaging processing method and device
CN111832581A (en) Lung feature recognition method and device, computer equipment and storage medium
JP2022185143A (en) Text detection method, and text recognition method and device
CN113821296B (en) Visual interface generation method, electronic equipment and storage medium
WO2021104274A1 (en) Image and text joint representation search method and system, and server and storage medium
US10991085B2 (en) Classifying panoramic images
KR20230032536A (en) Methods for automatically identifying a match between a product image and a reference drawing based on artificial intelligence
CN116957036A (en) Training method, training device and computing equipment for fake multimedia detection model
CN111091198B (en) Data processing method and device
CN116415020A (en) Image retrieval method, device, electronic equipment and storage medium
WO2023231159A1 (en) Image retrieval method and apparatus for realizing achieving ia by combining rpa and ai, and electronic device