KR102662978B1 - Real-world object recognition method and device - Google Patents

Real-world object recognition method and device Download PDF

Info

Publication number
KR102662978B1
KR102662978B1 KR1020210125623A KR20210125623A KR102662978B1 KR 102662978 B1 KR102662978 B1 KR 102662978B1 KR 1020210125623 A KR1020210125623 A KR 1020210125623A KR 20210125623 A KR20210125623 A KR 20210125623A KR 102662978 B1 KR102662978 B1 KR 102662978B1
Authority
KR
South Korea
Prior art keywords
cad
real
feature information
real environment
similarity
Prior art date
Application number
KR1020210125623A
Other languages
Korean (ko)
Other versions
KR20230042868A (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 KR1020210125623A priority Critical patent/KR102662978B1/en
Priority to PCT/KR2022/008146 priority patent/WO2023048357A1/en
Publication of KR20230042868A publication Critical patent/KR20230042868A/en
Application granted granted Critical
Publication of KR102662978B1 publication Critical patent/KR102662978B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • G06V20/46Extracting features or characteristics from the video content, e.g. video fingerprints, representative shots or key frames
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • 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
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Multimedia (AREA)
  • Medical Informatics (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Geometry (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)

Abstract

본 발명은 실환경 물체 인식 방법에 관한 것이다. 실환경 물체 인식 방법은, 임의의 물체를 포함하는 실환경 이미지를 수신하는 단계, 실환경 이미지를 기초로, 임의의 물체에 대응하는 실환경 특징 정보를 추출하는 단계, 추출된 실환경 특징 정보와 복수의 타겟 물체의 각각에 대응하는 복수의 CAD 파일로부터 추출된 복수의 CAD 특징 정보 사이의 유사도를 산출하는 단계 및 산출된 유사도를 기초로 임의의 물체를 인식하는 단계를 포함한다.The present invention relates to a method for recognizing objects in a real environment. The real-environment object recognition method includes the steps of receiving a real-environment image including a random object, extracting real-environment feature information corresponding to the random object based on the real-environment image, the extracted real-environment feature information and It includes calculating a degree of similarity between a plurality of CAD feature information extracted from a plurality of CAD files corresponding to each of a plurality of target objects, and recognizing an arbitrary object based on the calculated similarity.

Description

실환경 물체 인식 방법 및 장치{REAL-WORLD OBJECT RECOGNITION METHOD AND DEVICE}Real-world object recognition method and device {REAL-WORLD OBJECT RECOGNITION METHOD AND DEVICE}

본 발명은 실환경 물체 인식 방법 및 장치에 관한 것으로, 구체적으로, CAD 파일을 이용하여 실환경에서의 물체를 인식하는 방법 및 장치에 관한 것이다.The present invention relates to a method and device for recognizing objects in a real environment, and specifically, to a method and device for recognizing objects in a real environment using a CAD file.

컴퓨터 비전(computer vision) 분야에서 자율 주행 로봇 등이 물체(object)를 정확히 인식하는 것은 중요하다. 예를 들어, 자율 주행 로봇은 특정 영역을 주행하며, 이미지 센서 등으로 주변 환경을 촬영하고, 촬영된 이미지 내에 포함된 물체의 종류, 명칭, 형상 등을 인식할 수 있다. 일반적으로, 이러한 로봇은 인공신경망 등에 의해 사전에 학습된 물체는 인식할 수 있으나, 학습되지 않은 물체는 인식할 수 없다.In the field of computer vision, it is important for self-driving robots to accurately recognize objects. For example, an autonomous robot can drive in a specific area, photograph the surrounding environment using an image sensor, and recognize the type, name, and shape of objects included in the captured image. In general, these robots can recognize objects that have been previously learned by artificial neural networks, but cannot recognize objects that have not been learned.

한편, 학습되지 않은 물체에 대해 다시 훈련을 수행하기 위해서는 많은 시간 및 자원이 소모될 수 있다. 예를 들어, 하나의 새로운 물체를 학습하는 경우에도, 인공신경망은 새로운 물체에 대한 다량의 이미지를 입력 받아 이미지 내에 포함된 물체를 인식하도록 학습되어야 한다. 따라서, 이러한 인공신경망의 경우 새로운 물체가 지속적으로 개발되는 산업 현장에서 사용되기 어렵다.Meanwhile, it may consume a lot of time and resources to re-train on objects that have not been learned. For example, even when learning a new object, the artificial neural network must receive a large number of images of the new object and be trained to recognize the objects included in the images. Therefore, it is difficult for these artificial neural networks to be used in industrial settings where new objects are continuously being developed.

본 발명은 상기와 같은 문제점을 해결하기 위한 실환경 물체 인식 방법, 기록매체에 저장된 컴퓨터 프로그램 및 장치(시스템)를 제공한다.The present invention provides a real-environment object recognition method, a computer program stored in a recording medium, and a device (system) to solve the above problems.

본 발명은 방법, 장치(시스템) 또는 판독 가능 저장 매체에 저장된 컴퓨터 프로그램을 포함한 다양한 방식으로 구현될 수 있다.The present invention may be implemented in a variety of ways, including as a method, device (system), or computer program stored in a readable storage medium.

본 발명의 일 실시예에 따르면, 적어도 하나의 프로세서에 의해 수행되는 실환경 물체 인식 방법은, 임의의 물체를 포함하는 실환경 이미지를 수신하는 단계, 실환경 이미지를 기초로, 임의의 물체에 대응하는 실환경 특징 정보를 추출하는 단계, 추출된 실환경 특징 정보와 복수의 타겟 물체의 각각에 대응하는 복수의 CAD 파일로부터 추출된 복수의 CAD 특징 정보 사이의 유사도를 산출하는 단계 및 산출된 유사도를 기초로 임의의 물체를 인식하는 단계를 포함한다.According to an embodiment of the present invention, a real-environment object recognition method performed by at least one processor includes receiving a real-environment image including an arbitrary object, and based on the real-environment image, corresponding to the arbitrary object. extracting real-world feature information, calculating a degree of similarity between the extracted real-world feature information and a plurality of CAD feature information extracted from a plurality of CAD files corresponding to each of a plurality of target objects, and calculating the calculated similarity. It includes recognizing an arbitrary object as a basis.

본 발명의 일 실시예에 따르면, 산출된 유사도를 기초로 임의의 물체를 인식하는 단계는, 실환경 이미지에서 임의의 물체에 대응하는 영역에 대한 바운딩 박스 좌표를 추출하여, 임의의 물체의 위치를 인식하는 단계를 포함한다.According to an embodiment of the present invention, the step of recognizing a random object based on the calculated similarity includes extracting the bounding box coordinates for the area corresponding to the random object from the real environment image and determining the location of the random object. Includes a recognition step.

본 발명의 일 실시예에 따르면, 임의의 물체에 대응하는 실환경 특징 정보를 추출하는 단계는, 실환경 이미지를 학습된 제3 기계학습 모델에 제공하여, 임의의 물체에 대응하는 실환경 특징 정보를 추출하는 단계를 포함한다.According to an embodiment of the present invention, the step of extracting real environment feature information corresponding to a random object includes providing a real environment image to a learned third machine learning model to obtain real environment feature information corresponding to a random object. It includes the step of extracting.

본 발명의 일 실시예에 따르면, 타겟 물체를 포함하는 CAD 파일을 이용하여 CAD 파일에 대응하는 그래프를 생성하는 단계 및 생성된 그래프를 학습된 제2 기계학습 모델에 제공하여, 타겟 물체와 연관된 CAD 특징 정보를 추출하는 단계를 더 포함한다.According to one embodiment of the present invention, generating a graph corresponding to the CAD file using a CAD file including a target object and providing the generated graph to the learned second machine learning model to generate a CAD associated with the target object. A step of extracting feature information is further included.

본 발명의 일 실시예에 따르면, CAD 파일은 복수의 독립체 및 복수의 독립체 간의 참조 관계를 포함한다. CAD 파일에 대응하는 그래프를 생성하는 단계는, CAD 파일에 포함된 복수의 독립체를 노드로 결정하고, 복수의 독립체 간의 참조 관계를 복수의 엣지로 결정하여 그래프를 생성하는 단계를 포함한다.According to one embodiment of the present invention, a CAD file includes a plurality of entities and reference relationships between the plurality of entities. The step of generating a graph corresponding to a CAD file includes determining a plurality of entities included in the CAD file as nodes and determining reference relationships between the plurality of entities as a plurality of edges to generate a graph.

본 발명의 일 실시예에 따르면, 실환경 특징 정보는 임의의 물체에 대한 특징 벡터를 포함하고, 복수의 CAD 특징 정보는 복수의 타겟 물체의 각각에 대한 특징 벡터를 포함한다. 유사도를 산출하는 단계는, 임의의 물체에 대한 특징 벡터 및 복수의 타겟 물체의 각각에 대한 특징 벡터를 학습된 제2 기계학습 모델에 제공하여, 특징 벡터들 사이의 유사도를 산출하는 단계를 포함한다.According to an embodiment of the present invention, the real-world feature information includes a feature vector for an arbitrary object, and the plurality of CAD feature information includes a feature vector for each of a plurality of target objects. The step of calculating the similarity includes providing a feature vector for an arbitrary object and a feature vector for each of a plurality of target objects to the learned second machine learning model, and calculating the similarity between the feature vectors. .

본 발명의 일 실시예에 따르면, 제3 기계학습 모델은, 트리플릿 손실 함수에 기초하여 특징 벡터들 사이의 유사도를 산출하도록 학습된다.According to one embodiment of the present invention, the third machine learning model is learned to calculate similarity between feature vectors based on a triplet loss function.

본 발명의 일 실시예에 따른 상술된 방법을 컴퓨터에서 실행하기 위해 컴퓨터 판독 가능한 기록 매체에 저장된 컴퓨터 프로그램이 제공된다.In order to execute the above-described method on a computer according to an embodiment of the present invention, a computer program stored in a computer-readable recording medium is provided.

본 발명의 다양한 실시예에서 컴퓨팅 장치는 이미지로부터 물체를 곧바로 식별할 수 있는 기계학습 모델을 이용하지 않고, CAD 파일을 이용하여 이미지에 포함된 물체를 식별함으로써, 학습되지 않은 새로운 물체가 존재하는 경우에도, 해당 물체와 연관된 CAD 파일만을 이용하여 효과적으로 실환경에서의 물체를 인식하거나 식별할 수 있다.In various embodiments of the present invention, the computing device does not use a machine learning model that can directly identify an object from an image, but uses a CAD file to identify objects included in the image, thereby detecting the presence of a new object that has not been learned. Even so, it is possible to effectively recognize or identify objects in the real environment by using only the CAD file associated with the object.

본 발명의 다양한 실시예에서 컴퓨팅 장치는 CAD 파일을 이용하여 물체를 인식함으로써, 산업 현장에 새로운 물체에 대한 작업을 추가하는 경우, 많은 시간과 비용을 단축시킬 수 있으며, 이에 따라 다품종 대량 생산을 위한 산업 현장에서 효과적으로 이용될 수 있다.In various embodiments of the present invention, a computing device recognizes an object using a CAD file, thereby reducing a lot of time and cost when adding work on a new object to an industrial site. Accordingly, it is possible to save a lot of time and money for mass production of various types. It can be used effectively in industrial settings.

본 발명의 다양한 실시예에서 3D 모델 파일이 아닌 STEP 형식의 CAD 파일을 이용함으로써, 적은 컴퓨팅 파워만으로도 간단히 CAD 파일과 연관된 그래프가 생성될 수 있으며, 생성된 그래프를 기초로 타겟 물체와 연관된 CAD 특징 정보가 추출될 수 있다.In various embodiments of the present invention, by using a STEP format CAD file rather than a 3D model file, a graph associated with the CAD file can be simply created with only a small amount of computing power, and CAD feature information associated with the target object is generated based on the generated graph. can be extracted.

본 발명의 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급되지 않은 다른 효과들은 청구범위의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자("통상의 기술자"라 함)에게 명확하게 이해될 수 있을 것이다.The effects of the present invention are not limited to the effects mentioned above, and other effects not mentioned are clear to a person skilled in the art (referred to as a “person skilled in the art”) in the technical field to which the present invention pertains from the description of the claims. It will be understandable.

본 발명의 실시예들은, 이하 설명하는 첨부 도면들을 참조하여 설명될 것이며, 여기서 유사한 참조 번호는 유사한 요소들을 나타내지만, 이에 한정되지는 않는다.
도 1은 본 발명의 일 실시예에 따른 컴퓨팅 장치가 물체 인식을 수행하는 예시를 나타내는 도면이다.
도 2는 본 발명의 일 실시예에 따른 컴퓨팅 장치의 내부 구성을 나타내는 기능적인 블록도이다.
도 3은 본 발명의 일 실시예에 따른 CAD 파일과 연관된 그래프가 생성되는 예시를 나타내는 도면이다.
도 4는 본 발명의 일 실시예에 따른 복수의 기계학습 모델이 유사도를 산출하는 예시를 나타내는 도면이다.
도 5는 본 발명의 일 실시예에 따른 실환경 물체 인식 방법의 예시를 나타내는 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 그래프 CAD 특징 정보 추출 방법의 예시를 나타내는 흐름도이다.
도 7은 본 발명의 일 실시예에 따른 컴퓨팅 장치의 내부 구성을 나타내는 블록도이다.
Embodiments of the present invention will be described with reference to the accompanying drawings described below, in which like reference numerals represent like elements, but are not limited thereto.
1 is a diagram illustrating an example of a computing device performing object recognition according to an embodiment of the present invention.
Figure 2 is a functional block diagram showing the internal configuration of a computing device according to an embodiment of the present invention.
Figure 3 is a diagram illustrating an example of generating a graph associated with a CAD file according to an embodiment of the present invention.
Figure 4 is a diagram illustrating an example of calculating similarity between a plurality of machine learning models according to an embodiment of the present invention.
Figure 5 is a flowchart illustrating an example of a method for recognizing objects in a real environment according to an embodiment of the present invention.
Figure 6 is a flowchart showing an example of a method for extracting graph CAD feature information according to an embodiment of the present invention.
Figure 7 is a block diagram showing the internal configuration of a computing device according to an embodiment of the present invention.

이하, 본 발명의 실시를 위한 구체적인 내용을 첨부된 도면을 참조하여 상세히 설명한다. 다만, 이하의 설명에서는 본 발명의 요지를 불필요하게 흐릴 우려가 있는 경우, 널리 알려진 기능이나 구성에 관한 구체적 설명은 생략하기로 한다.Hereinafter, specific details for implementing the present invention will be described in detail with reference to the attached drawings. However, in the following description, detailed descriptions of well-known functions or configurations will be omitted if there is a risk of unnecessarily obscuring the gist of the present invention.

첨부된 도면에서, 동일하거나 대응하는 구성요소에는 동일한 참조부호가 부여되어 있다. 또한, 이하의 실시예들의 설명에 있어서, 동일하거나 대응되는 구성요소를 중복하여 기술하는 것이 생략될 수 있다. 그러나, 구성요소에 관한 기술이 생략되어도, 그러한 구성요소가 어떤 실시예에 포함되지 않는 것으로 의도되지는 않는다.In the accompanying drawings, identical or corresponding components are given the same reference numerals. Additionally, in the description of the following embodiments, overlapping descriptions of identical or corresponding components may be omitted. However, even if descriptions of components are omitted, it is not intended that such components are not included in any embodiment.

개시된 실시예의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명이 완전하도록 하고, 본 발명이 통상의 기술자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것일 뿐이다.Advantages and features of the disclosed embodiments and methods for achieving them will become clear by referring to the embodiments described below in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below and may be implemented in various different forms, but the present embodiments only serve to ensure that the present invention is complete and that the scope of the present invention is conveyed to those skilled in the art. It is provided only for complete information.

본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 개시된 실시예에 대해 구체적으로 설명하기로 한다. 본 명세서에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 관련 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서, 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.Terms used in this specification will be briefly described, and the disclosed embodiments will be described in detail. The terms used in this specification are general terms that are currently widely used as much as possible while considering the function in the present invention, but this may vary depending on the intention or precedent of a technician working in the related field, the emergence of new technology, etc. In addition, in certain cases, there are terms arbitrarily selected by the applicant, and in this case, the meaning will be described in detail in the description of the relevant invention. Therefore, the terms used in the present invention should be defined based on the meaning of the term and the overall content of the present invention, rather than simply the name of the term.

본 명세서에서의 단수의 표현은 문맥상 명백하게 단수인 것으로 특정하지 않는 한, 복수의 표현을 포함한다. 또한, 복수의 표현은 문맥상 명백하게 복수인 것으로 특정하지 않는 한, 단수의 표현을 포함한다. 명세서 전체에서 어떤 부분이 어떤 구성요소를 포함한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다.In this specification, singular expressions include plural expressions, unless the context clearly specifies the singular. Additionally, plural expressions include singular expressions, unless the context clearly specifies plural expressions. When it is said that a certain part includes a certain element throughout the specification, this does not mean excluding other elements, but may further include other elements, unless specifically stated to the contrary.

본 발명에서, "포함하다", "포함하는" 등의 용어는 특징들, 단계들, 동작들, 요소들 및/또는 구성 요소들이 존재하는 것을 나타낼 수 있으나, 이러한 용어가 하나 이상의 다른 기능들, 단계들, 동작들, 요소들, 구성 요소들 및/또는 이들의 조합이 추가되는 것을 배제하지는 않는다.In the present invention, terms such as "comprise", "comprising", etc. may indicate the presence of features, steps, operations, elements and/or components, but may indicate that such terms include one or more other functions, It does not preclude the addition of steps, operations, elements, components and/or combinations thereof.

본 발명에서, 특정 구성 요소가 임의의 다른 구성 요소에 "결합", "조합", "연결" 되거나, "반응" 하는 것으로 언급된 경우, 특정 구성 요소는 다른 구성 요소에 직접 결합, 조합 및/또는 연결되거나, 반응할 수 있으나, 이에 한정되지 않는다. 예를 들어, 특정 구성 요소와 다른 구성 요소 사이에 하나 이상의 중간 구성 요소가 존재할 수 있다. 또한, 본 발명에서 "및/또는"은 열거된 하나 이상의 항목의 각각 또는 하나 이상의 항목의 적어도 일부의 조합을 포함할 수 있다.In the present invention, when a specific component is referred to as being “coupled,” “combined,” “connected,” or “reacting” with any other component, the specific component is directly bonded, combined, and/or connected to the other component. Alternatively, it may be connected or react, but is not limited thereto. For example, one or more intermediate components may exist between a particular component and another component. Additionally, in the present invention, “and/or” may include each of one or more listed items or a combination of at least a portion of one or more items.

본 발명에서, "제1", "제2" 등의 용어는 특정 구성 요소를 다른 구성 요소와 구별하기 위해 사용되는 것으로, 이러한 용어에 의해 상술된 구성 요소가 제한되진 않는다. 예를 들어, "제1" 구성 요소는 "제2" 구성 요소와 동일하거나 유사한 형태의 요소일 수 있다.In the present invention, terms such as “first” and “second” are used to distinguish specific components from other components, and the components described above are not limited by these terms. For example, the “first” component may be an element of the same or similar form as the “second” component.

도 1은 본 발명의 일 실시예에 따른 컴퓨팅 장치(100)가 물체 인식(130)을 수행하는 예시를 나타내는 도면이다. 일 실시예에 따르면, 컴퓨팅 장치(100)는 이미지 및/또는 영상에 포함된 물체를 식별하기 위한 장치일 수 있으며, 이미지 센서(예: 카메라 등)를 포함하거나, 이미지 센서와 연관된 장치일 수 있다. 예를 들어, 컴퓨팅 장치(100)는 주행 로봇(navigating robot)을 포함할 수 있으나, 이에 한정되지 않는다.FIG. 1 is a diagram illustrating an example in which the computing device 100 performs object recognition 130 according to an embodiment of the present invention. According to one embodiment, the computing device 100 may be a device for identifying images and/or objects included in a video, may include an image sensor (e.g., a camera, etc.), or may be a device associated with an image sensor. . For example, the computing device 100 may include, but is not limited to, a navigating robot.

도시된 것과 같이, 컴퓨팅 장치(100)는 실환경(real-world) 이미지(110) 및 CAD(computer aided design) 파일(120)을 이용하여 실환경 이미지(110)에 포함된 물체를 인식하거나 식별할 수 있다. 여기서, 실환경 이미지(110)는 하나 이상의 물체를 포함하는 이미지로서, 컴퓨팅 장치(100)와 연관된 이미지 센서에 의해 촬영된 이미지일 수 있다. 또한, CAD 파일(120)은 특정 물체의 특징, 모양, 형태 등에 대한 3D 모델 정보를 포함하는 파일로서, 예를 들어, STEP 형식의 파일일 수 있다. 이 경우, STEP 형식의 파일은 HEADER, DATA로 구성되며, DATA는 다수의 독립체가 서로 참조하는 형태로 구성될 수 있다. 즉, 컴퓨팅 장치(100)는 실환경 이미지(110)에 포함된 물체를 미리 정의된 각각의 CAD 파일(120)의 물체와 비교하여, 실환경 이미지(110)에 포함된 물체를 정의하거나 결정할 수 있다.As shown, the computing device 100 uses a real-world image 110 and a computer aided design (CAD) file 120 to recognize or identify an object included in the real-world image 110. can do. Here, the real-world image 110 is an image including one or more objects and may be an image captured by an image sensor associated with the computing device 100. Additionally, the CAD file 120 is a file containing 3D model information about the characteristics, shape, form, etc. of a specific object and may be, for example, a STEP format file. In this case, a STEP format file consists of HEADER and DATA, and DATA may be composed of multiple entities referencing each other. That is, the computing device 100 may define or determine the object included in the real environment image 110 by comparing the object included in the real environment image 110 with the object in each predefined CAD file 120. there is.

일 실시예에 따르면, 컴퓨팅 장치(100)는 임의의 물체를 포함하는 실환경 이미지(110)를 수신하고, 실환경 이미지(110)를 기초로, 임의의 물체에 대응하는 실환경 특징(feature) 정보를 추출할 수 있다. 이 경우, 이미지와 연관된 코너(corner), 엣지(edge), 그라디언트(gradient) 등의 특징을 추출하기 위한 임의의 알고리즘, 기계학습 모델 등이 사용될 수 있다. 예를 들어, 컴퓨팅 장치(100)는 실환경 이미지(110)를 학습된 기계학습 모델(예: CNN 모델 등)에 제공하여, 실환경 이미지(110)에 포함된 임의의 물체의 특징을 추출할 수 있다. 예를 들어, 실환경 이미지(110)에 복수의 물체가 포함된 경우, 컴퓨팅 장치(100)는 복수의 물체 각각에 대해 실환경 특징 정보를 추출할 수 있다.According to one embodiment, the computing device 100 receives a real-environment image 110 including an arbitrary object, and based on the real-environment image 110, real-environment features corresponding to the arbitrary object. Information can be extracted. In this case, any algorithm, machine learning model, etc. can be used to extract features such as corners, edges, and gradients related to the image. For example, the computing device 100 provides the real-world image 110 to a learned machine learning model (e.g., CNN model, etc.) to extract features of any object included in the real-world image 110. You can. For example, when the real environment image 110 includes a plurality of objects, the computing device 100 may extract real environment feature information for each of the plurality of objects.

일 실시예에 따르면, 컴퓨팅 장치(100)는 CAD 파일(120)을 기초로, CAD 파일(120)과 연관된 타겟 물체에 대응하는 CAD 특징 정보를 추출할 수 있다. 즉, 각각의 CAD 파일은 서로 다른 타겟 물체와 연관될 수 있으며, 컴퓨팅 장치(100)는 이러한 복수의 CAD 파일의 각각에 대해 타겟 물체와 연관된 CAD 특징 정보를 추출할 수 있다. 예를 들어, 컴퓨팅 장치(100)는 STEP 형식의 CAD 파일(120)을 이용하여 CAD 파일(120)에 포함된 타켓 물체와 대응하는 그래프(graph)를 생성할 수 있으며, 이와 같이 생성된 그래프를 학습된 기계학습 모델(예: GNN 모델 등)에 제공하여 타켓 물체와 연관된 CAD 특징 정보를 추출할 수 있다.According to one embodiment, the computing device 100 may extract CAD feature information corresponding to a target object associated with the CAD file 120 based on the CAD file 120 . That is, each CAD file may be associated with a different target object, and the computing device 100 may extract CAD feature information associated with the target object for each of the plurality of CAD files. For example, the computing device 100 may use the STEP format CAD file 120 to create a graph corresponding to the target object included in the CAD file 120, and the graph generated in this way may be CAD feature information related to the target object can be extracted by providing it to a learned machine learning model (e.g. GNN model, etc.).

그리고 나서, 컴퓨팅 장치(100)는 이와 같이 추출된 실환경 특징 정보와 복수의 타겟 물체의 각각에 대응하는 복수의 CAD 파일로부터 추출된 복수의 CAD 특징 정보 사이의 유사도를 산출할 수 있다. 예를 들어, 실환경 특징 정보는 임의의 물체에 대한 특징 벡터(feature vector)를 포함할 수 있으며, 복수의 CAD 특징 정보는 복수의 타겟 물체의 각각에 대한 특징 벡터를 포함할 수 있다. 이 경우, 컴퓨팅 장치(100)는 임의의 물체에 대한 특징 벡터 및 복수의 타겟 물체의 각각에 대한 특징 벡터를 학습된 기계학습 모델에 제공하여, 특징 벡터들 사이의 유사도를 산출할 수 있다. 이 경우, 컴퓨팅 장치(100)는 산출된 유사도를 기초로 임의의 물체를 인식하거나 식별할 수 있다. 예를 들어, 컴퓨팅 장치(100)는 CAD 파일(120)의 타겟 물체의 형상과 유사한 실환경 이미지(110)의 물체의 픽셀(pixel)을 인식할 수 있다.Then, the computing device 100 may calculate the similarity between the real environment feature information extracted in this way and the plurality of CAD feature information extracted from the plurality of CAD files corresponding to each of the plurality of target objects. For example, real-world feature information may include a feature vector for an arbitrary object, and a plurality of CAD feature information may include a feature vector for each of a plurality of target objects. In this case, the computing device 100 may provide a feature vector for an arbitrary object and a feature vector for each of a plurality of target objects to the learned machine learning model to calculate the degree of similarity between the feature vectors. In this case, the computing device 100 may recognize or identify an arbitrary object based on the calculated similarity. For example, the computing device 100 may recognize pixels of an object in the real-world image 110 that are similar to the shape of the target object in the CAD file 120.

도 1에서는 컴퓨팅 장치(100)가 CAD 파일(120)로부터 직접 CAD 특징 정보를 추출하는 것으로 상술되었으나, 이에 한정되지 않으며, 컴퓨팅 장치(100)는 임의의 외부 장치 등으로부터, CAD 파일(120)로부터 추출된 CAD 특징 정보를 수신하거나 획득할 수도 있다. 이와 같은 구성에 의해, 컴퓨팅 장치(100)는 이미지로부터 물체를 곧바로 식별할 수 있는 기계학습 모델을 이용하지 않고, CAD 파일을 이용하여 이미지에 포함된 물체를 식별함으로써, 학습되지 않은 새로운 물체가 존재하는 경우에도, 해당 물체와 연관된 CAD 파일만을 이용하여 효과적으로 실환경에서의 물체를 인식하거나 식별할 수 있다.In FIG. 1 , the computing device 100 is described in detail as extracting CAD feature information directly from the CAD file 120, but it is not limited thereto, and the computing device 100 extracts CAD feature information from any external device, etc., from the CAD file 120. Extracted CAD feature information may be received or obtained. With this configuration, the computing device 100 does not use a machine learning model that can immediately identify objects from images, but uses CAD files to identify objects included in the images, thereby detecting the existence of new, unlearned objects. Even in this case, it is possible to effectively recognize or identify an object in the real environment by using only the CAD file associated with the object.

도 2는 본 발명의 일 실시예에 따른 컴퓨팅 장치(100)의 내부 구성을 나타내는 기능적인 블록도이다. 도시된 바와 같이, 컴퓨팅 장치(100)(컴퓨팅 장치(100)에 포함된 적어도 하나의 프로세서 등)는 실환경 특징 추출부(210), CAD 특징 추출부(220), 유사도 산출부(230) 등을 포함할 수 있으나, 이에 한정되지 않는다. 컴퓨팅 장치(100)는 외부 장치 등과 통신하며, 특징 추출 등에 필요한 데이터 및/또는 정보를 주고받을 수 있다.Figure 2 is a functional block diagram showing the internal configuration of the computing device 100 according to an embodiment of the present invention. As shown, the computing device 100 (at least one processor included in the computing device 100, etc.) includes a real-world feature extraction unit 210, a CAD feature extraction unit 220, a similarity calculation unit 230, etc. It may include, but is not limited to this. The computing device 100 communicates with external devices, etc., and can exchange data and/or information necessary for feature extraction, etc.

상술된 바와 같이, 실환경 특징 추출부(210)는 임의의 물체를 포함하는 실환경 이미지를 수신하고, 실환경 이미지를 기초로, 임의의 물체에 대응하는 실환경 특징 정보를 추출할 수 있다. 여기서, 실환경 특징 정보는 임의의 물체에 대한 특징 벡터를 포함할 수 있으나, 이에 한정되지 않는다. 일 실시예에 따르면, 실환경 특징 추출부(210)는 실환경 이미지를 학습된 기계학습 모델에 제공하여, 임의의 물체에 대응하는 실환경 특징 정보를 추출할 수 있다. 예를 들어, 기계학습 모델은 이미지에 포함된 코너, 엣지 등을 기초로 특정 물체에 대한 특징 벡터를 추출하도록 학습된 CNN(convolutional neural network) 모델일 수 있다. 즉, 실환경 특징 추출부(210)는 실환경 이미지가 복수의 물체를 포함하는 경우, 복수의 물체 각각에 대응하는 특징 벡터를 추출할 수 있다.As described above, the real environment feature extractor 210 may receive a real environment image including an arbitrary object and extract real environment feature information corresponding to the arbitrary object based on the real environment image. Here, real-world feature information may include feature vectors for arbitrary objects, but is not limited thereto. According to one embodiment, the real environment feature extractor 210 may provide real environment images to a learned machine learning model to extract real environment feature information corresponding to an arbitrary object. For example, the machine learning model may be a convolutional neural network (CNN) model learned to extract feature vectors for specific objects based on corners, edges, etc. included in the image. That is, when the real environment image includes a plurality of objects, the real environment feature extractor 210 may extract feature vectors corresponding to each of the plurality of objects.

일 실시예에 따르면, CAD 특징 추출부(220)는 타겟 물체를 포함하는 CAD 파일을 이용하여 CAD 파일에 대응하는 그래프를 생성할 수 있다. 또한, CAD 특징 추출부(220)는 생성된 그래프를 학습된 기계학습 모델에 제공하여, 타겟 물체와 연관된 CAD 특징 정보를 추출할 수 있다. 예를 들어, 기계학습 모델은 그래프를 이용하여, 해당 그래프에 대응하는 특징 벡터를 추출하도록 학습된 GNN(graph neural network) 모델일 수 있다. 여기서, 실환경 이미지로부터 추출된 특징 벡터와 CAD 파일로부터 추출된 특징 벡터는 동일한 차원의 벡터로 구성될 수 있으나, 이에 한정되지 않는다.According to one embodiment, the CAD feature extractor 220 may use a CAD file including a target object to generate a graph corresponding to the CAD file. Additionally, the CAD feature extraction unit 220 may provide the generated graph to a learned machine learning model to extract CAD feature information associated with the target object. For example, the machine learning model may be a graph neural network (GNN) model trained to extract feature vectors corresponding to the graph using a graph. Here, the feature vector extracted from the real environment image and the feature vector extracted from the CAD file may be composed of vectors of the same dimension, but are not limited to this.

일 실시예에 따르면, 유사도 산출부(230)는 추출된 실환경 특징 정보와 복수의 타겟 물체의 각각에 대응하는 복수의 CAD 파일로부터 추출된 복수의 CAD 특징 정보 사이의 유사도를 산출할 수 있다. 예를 들어, 유사도 산출부(230)는 임의의 물체에 대한 특징 벡터 및 복수의 타겟 물체의 각각에 대한 특징 벡터를 학습된 기계학습 모델에 제공하여, 특징 벡터들 사이의 유사도를 산출할 수 있다. 여기서, 기계학습 모델은, 트리플릿 손실 함수(triplet loss function)에 기초하여 특징 벡터들 사이의 유사도를 산출하도록 학습된 모델일 수 있다. 여기서, 트리플릿 손실 함수는 다음의 수학식 1과 같이 결정될 수 있다.According to one embodiment, the similarity calculation unit 230 may calculate the similarity between the extracted real environment feature information and the plurality of CAD feature information extracted from the plurality of CAD files corresponding to each of the plurality of target objects. For example, the similarity calculation unit 230 may provide a feature vector for an arbitrary object and a feature vector for each of a plurality of target objects to the learned machine learning model to calculate the similarity between the feature vectors. . Here, the machine learning model may be a model learned to calculate the similarity between feature vectors based on a triplet loss function. Here, the triplet loss function can be determined as in Equation 1 below.

여기서, 는 CAD 파일로부터 추출된 특징 벡터일 수 있으며, 는 실환경 이미지로부터 추출된 특징 벡터로서, 와 유사한 물체의 특징 벡터일 수 있으며, 는 실환경 이미지로부터 추출된 특징 벡터로서, 와 상이한 물체의 특징 벡터일 수 있다. 즉, 기계학습 모델은 트리플릿 손실 함수에 의해, 유사한 특징 벡터의 차이는 줄이고, 상이한 특징 벡터의 차이는 늘리도록 학습될 수 있다.here, may be a feature vector extracted from a CAD file, is a feature vector extracted from a real environment image, It may be a feature vector of an object similar to is a feature vector extracted from a real environment image, It may be a feature vector of a different object. In other words, the machine learning model can be trained to reduce the difference between similar feature vectors and increase the difference between different feature vectors using the triplet loss function.

이와 같이, 유사도가 산출된 경우, 컴퓨팅 장치(100)는 산출된 유사도를 기초로 실환경 이미지에 포함된 임의의 물체를 인식할 수 있다. 예를 들어, 컴퓨팅 장치(100)는 실환경 이미지에서 임의의 물체에 대응하는 영역에 대한 바운딩 박스(bounding box) 좌표를 추출하여, 임의의 물체의 위치를 인식할 수 있으나, 이에 한정되지 않는다.In this way, when the similarity is calculated, the computing device 100 can recognize any object included in the real environment image based on the calculated similarity. For example, the computing device 100 may recognize the location of a random object by extracting bounding box coordinates for an area corresponding to a random object from a real environment image, but is not limited to this.

도 2에서는 컴퓨팅 장치(100)에 포함된 각각의 기능적인 구성이 구분되어 상술되었으나, 이는 발명의 이해를 돕기 위한 것일 뿐이며, 하나의 연산 장치에서 둘 이상의 기능을 수행할 수도 있다. 이와 같은 구성에 의해, 컴퓨팅 장치(100)는 CAD 파일을 이용하여 물체를 인식함으로써, 산업 현장에 새로운 물체에 대한 작업을 추가하는 경우, 많은 시간과 비용을 단축시킬 수 있으며, 이에 따라 다품종 대량 생산을 위한 산업 현장에서 효과적으로 이용될 수 있다.In FIG. 2 , each functional configuration included in the computing device 100 is separately described and described in detail, but this is only to aid understanding of the invention, and two or more functions may be performed in one computing device. With this configuration, the computing device 100 can recognize objects using CAD files, thereby reducing a lot of time and cost when adding work on new objects to industrial sites, thereby enabling mass production of a variety of products. It can be effectively used in industrial settings.

도 3은 본 발명의 일 실시예에 따른 CAD 파일(310)과 연관된 그래프(320)가 생성되는 예시를 나타내는 도면이다. 상술된 바와 같이, 타겟 물체를 포함하는 STEP 형식의 CAD 파일(310)에 대응하는 그래프(320)가 생성될 수 있으며, 생성된 그래프(320)를 기초로 타겟 물체와 연관된 CAD 특징 정보가 추출될 수 있다.FIG. 3 is a diagram illustrating an example of generating a graph 320 associated with a CAD file 310 according to an embodiment of the present invention. As described above, a graph 320 corresponding to the STEP format CAD file 310 including the target object may be generated, and CAD feature information associated with the target object may be extracted based on the generated graph 320. You can.

도시된 바와 같이, STEP 형식의 CAD 파일(310)은 타겟 물체의 3D 모델에 대한 정보를 포함하는 텍스트 데이터 등으로 구성될 수 있다. 즉, CAD 파일(310)은 HEADER 영역과 DATA 영역을 포함할 수 있으며, DATA 영역은 다수의 독립체(예: #101, #102, #103, #104, #105, #106, #107 등)가 서로 참조하는 형태로 구성될 수 있다. 이 경우, 컴퓨팅 장치(도 1의 100)는 CAD 파일(310)에 포함된 복수의 독립체를 노드(node)로 결정하고, 복수의 독립체 간의 참조 관계를 복수의 엣지(edge)로 결정하여 그래프(320)를 생성할 수 있다. 예를 들어, "#107=CLOSED_SHELL(",(#101, #102, #103, #104, #105, #106));"과 같이 참조 관계가 구성된 경우, 독립체 #107과 다른 독립체 #101, #102, #103, #104, #105 및 #106이 서로 연결되도록 그래프가 구성될 수 있다.As shown, the STEP format CAD file 310 may be composed of text data containing information about the 3D model of the target object. That is, the CAD file 310 may include a HEADER area and a DATA area, and the DATA area can contain multiple entities (e.g. #101, #102, #103, #104, #105, #106, #107, etc. ) can be configured to refer to each other. In this case, the computing device (100 in FIG. 1) determines a plurality of entities included in the CAD file 310 as nodes, and determines the reference relationships between the plurality of entities as a plurality of edges. A graph 320 can be created. For example, if a reference relationship is constructed as "#107=CLOSED_SHELL(",(#101, #102, #103, #104, #105, #106));", then entity #107 and another entity A graph can be constructed so that #101, #102, #103, #104, #105, and #106 are connected to each other.

이와 같은 구성에 의해, 3D 모델 파일이 아닌 STEP 형식의 CAD 파일(310)을 이용함으로써, 적은 컴퓨팅 파워만으로도 간단히 CAD 파일(310)과 연관된 그래프(320)가 생성될 수 있으며, 생성된 그래프(320)를 기초로 타겟 물체와 연관된 CAD 특징 정보가 추출될 수 있다.With this configuration, by using the CAD file 310 in the STEP format rather than the 3D model file, the graph 320 associated with the CAD file 310 can be easily created with only a small amount of computing power, and the generated graph 320 ) Based on this, CAD feature information associated with the target object can be extracted.

도 4는 본 발명의 일 실시예에 따른 복수의 기계학습 모델(410, 420, 430)이 유사도(432)를 산출하는 예시를 나타내는 도면이다. 도시된 바와 같이, 유사도를 산출하기 위해 3 개의 기계학습 모델(410, 420, 430)이 이용될 수 있다. 예를 들어, 제1 기계학습 모델(410)은 실환경 이미지(412)를 제공받아 특징 정보(414)를 추출하도록 학습된 모델일 수 있고, 제2 기계학습 모델(420)은 CAD 파일로부터 추출된 그래프(422)를 제공받아 특징 정보(424)를 추출하도록 학습된 모델일 수 있다. 또한, 제3 기계학습 모델(430)은 특징 정보들(414, 424)을 비교하여 실환경 이미지(412)에 포함된 물체 및 그래프(422)와 연관된 타켓 물체 사이의 유사도(432)를 산출하도록 학습된 모델일 수 있다.Figure 4 is a diagram illustrating an example of calculating similarity 432 by a plurality of machine learning models 410, 420, and 430 according to an embodiment of the present invention. As shown, three machine learning models 410, 420, and 430 can be used to calculate similarity. For example, the first machine learning model 410 may be a model learned to extract feature information 414 by receiving a real environment image 412, and the second machine learning model 420 is extracted from a CAD file. It may be a model trained to extract feature information 424 by receiving a graph 422. In addition, the third machine learning model 430 compares the feature information 414 and 424 to calculate the similarity 432 between the object included in the real environment image 412 and the target object associated with the graph 422. It may be a learned model.

일 실시예에 따르면, 기계학습 모델(410, 420, 430)은 인공신경망 모델을 포함할 수 있다. 인공신경망 모델은, 기계학습 모델의 일 예로서, 기계학습(Machine Learning) 기술과 인지과학에서, 생물학적 신경망의 구조에 기초하여 구현된 통계학적 학습 알고리즘 또는 그 알고리즘을 실행하는 구조이다.According to one embodiment, the machine learning models 410, 420, and 430 may include artificial neural network models. An artificial neural network model is an example of a machine learning model, and in machine learning technology and cognitive science, it is a statistical learning algorithm implemented based on the structure of a biological neural network or a structure for executing the algorithm.

일 실시예에 따르면, 인공신경망 모델은, 생물학적 신경망에서와 같이 시냅스의 결합으로 네트워크를 형성한 인공 뉴런인 노드(Node)들이 시냅스의 가중치를 반복적으로 조정하여, 특정 입력에 대응한 올바른 출력과 추론된 출력 사이의 오차가 감소되도록 학습함으로써, 문제 해결 능력을 가지는 기계학습 모델을 나타낼 수 있다. 예를 들어, 인공신경망 모델은 기계 학습, 딥러닝 등의 인공지능 학습법에 사용되는 임의의 확률 모델, 뉴럴 네트워크 모델 등을 포함할 수 있다.According to one embodiment, the artificial neural network model has nodes, which are artificial neurons that form a network through the combination of synapses, as in a biological neural network, repeatedly adjusting the weights of the synapses to produce the correct output and inference in response to a specific input. By learning to reduce the error between outputs, a machine learning model with problem-solving capabilities can be expressed. For example, the artificial neural network model may include random probability models, neural network models, etc. used in artificial intelligence learning methods such as machine learning and deep learning.

인공신경망 모델은 다층의 노드들과 이들 사이의 연결로 구성된 다층 퍼셉트론(MLP: multilayer perceptron)으로 구현된다. 본 실시예에 따른 인공신경망 모델은 MLP를 포함하는 다양한 인공신경망 모델 구조들 중의 하나를 이용하여 구현될 수 있다. 인공신경망 모델은, 외부로부터 입력 신호 또는 데이터를 수신하는 입력층, 입력 데이터에 대응한 출력 신호 또는 데이터를 출력하는 출력층, 입력층과 출력층 사이에 위치하며 입력층으로부터 신호를 받아 특성을 추출하여 출력층으로 전달하는 n개(여기서, n은 양의 정수)의 은닉층으로 구성된다. 여기서, 출력층은 은닉층으로부터 신호를 받아 외부로 출력한다. 인공신경망 모델의 학습 방법에는, 교사 신호(정답)의 입력에 의해서 문제의 해결에 최적화되도록 학습하는 지도 학습(Supervised Learning) 방법과, 교사 신호를 필요로 하지 않는 비지도 학습(Unsupervised Learning) 방법이 있을 수 있으나, 이에 한정되지 않는다.The artificial neural network model is implemented as a multilayer perceptron (MLP), which consists of multiple layers of nodes and connections between them. The artificial neural network model according to this embodiment can be implemented using one of various artificial neural network model structures including MLP. The artificial neural network model is located between an input layer that receives input signals or data from the outside, an output layer that outputs output signals or data corresponding to the input data, and an output layer that receives signals from the input layer and extracts characteristics. It consists of n hidden layers (where n is a positive integer) that are transmitted to . Here, the output layer receives a signal from the hidden layer and outputs it to the outside. The learning method of the artificial neural network model includes a supervised learning method that learns to optimize problem solving by inputting teacher signals (correct answers), and an unsupervised learning method that does not require teacher signals. There may be, but it is not limited to this.

도 5는 본 발명의 일 실시예에 따른 실환경 물체 인식 방법(500)의 예시를 나타내는 흐름도이다. 실환경 물체 인식 방법(500)은 프로세서(예를 들어, 컴퓨팅 장치의 적어도 하나의 프로세서)에 의해 수행될 수 있다. 도시된 바와 같이, 실환경 물체 인식 방법(500)은 프로세서가 임의의 물체를 포함하는 실환경 이미지를 수신함으로써 개시될 수 있다(S510).Figure 5 is a flowchart illustrating an example of a real-environment object recognition method 500 according to an embodiment of the present invention. The real-environment object recognition method 500 may be performed by a processor (eg, at least one processor of a computing device). As shown, the real-environment object recognition method 500 may be initiated by the processor receiving a real-environment image including an arbitrary object (S510).

프로세서는 실환경 이미지를 기초로, 임의의 물체에 대응하는 실환경 특징 정보를 추출할 수 있다(S520). 여기서, 실환경 특징 정보는 임의의 물체에 대한 특징 벡터를 포함할 수 있다. 예를 들어, 프로세서는 실환경 이미지를 학습된 제1 기계학습 모델에 제공하여, 임의의 물체에 대응하는 실환경 특징 정보를 추출할 수 있다.The processor may extract real environment feature information corresponding to an arbitrary object based on the real environment image (S520). Here, real-world feature information may include feature vectors for arbitrary objects. For example, the processor may provide a real environment image to the learned first machine learning model to extract real environment feature information corresponding to an arbitrary object.

프로세서는 추출된 실환경 특징 정보와 복수의 타겟 물체의 각각에 대응하는 복수의 CAD 파일로부터 추출된 복수의 CAD 특징 정보 사이의 유사도를 산출할 수 있다(S530). 예를 들어, 프로세서는 임의의 물체에 대한 특징 벡터 및 복수의 타겟 물체의 각각에 대한 특징 벡터를 학습된 제3 기계학습 모델에 제공하여, 특징 벡터들 사이의 유사도를 산출할 수 있다. 이 경우, 제3 기계학습 모델은, 트리플릿 손실 함수에 기초하여 특징 벡터들 사이의 유사도를 산출하도록 학습될 수 있다.The processor may calculate the similarity between the extracted real-world feature information and the plurality of CAD feature information extracted from the plurality of CAD files corresponding to each of the plurality of target objects (S530). For example, the processor may provide a feature vector for an arbitrary object and a feature vector for each of a plurality of target objects to the learned third machine learning model to calculate the degree of similarity between the feature vectors. In this case, the third machine learning model can be trained to calculate the similarity between feature vectors based on a triplet loss function.

그리고 나서, 프로세서는 산출된 유사도를 기초로 임의의 물체를 인식할 수 있다(S540). 예를 들어, 프로세서는 실환경 이미지에서 임의의 물체에 대응하는 영역에 대한 바운딩 박스 좌표를 추출하여, 임의의 물체의 위치를 인식할 수 있다. 이 경우, 이미지 내의 특정 영역의 바운딩 박스 좌표를 추출하기 위한 임의의 알고리즘 및/또는 기계학습 모델이 사용될 수 있다.Then, the processor can recognize an arbitrary object based on the calculated similarity (S540). For example, the processor can recognize the location of a random object by extracting bounding box coordinates for an area corresponding to a random object from a real environment image. In this case, any algorithm and/or machine learning model can be used to extract the bounding box coordinates of a specific area in the image.

도 6은 본 발명의 일 실시예에 따른 그래프 CAD 특징 정보 추출 방법(600)의 예시를 나타내는 흐름도이다. CAD 특징 정보 추출 방법(600)은 프로세서(예를 들어, 컴퓨팅 장치의 적어도 하나의 프로세서)에 의해 수행될 수 있다. 도시된 바와 같이, CAD 특징 정보 추출 방법(600)은 프로세서가 타겟 물체를 포함하는 CAD 파일을 이용하여 CAD 파일에 대응하는 그래프를 생성할 수 있다(S610). 예를 들어, 프로세서는 CAD 파일에 포함된 복수의 독립체를 노드(node)로 결정하고, 복수의 독립체 간의 참조 관계를 복수의 엣지(edge)로 결정하여 그래프를 생성할 수 있다.Figure 6 is a flowchart showing an example of a method 600 for extracting graph CAD feature information according to an embodiment of the present invention. The CAD feature information extraction method 600 may be performed by a processor (eg, at least one processor of a computing device). As shown, in the CAD feature information extraction method 600, a processor may use a CAD file including a target object to generate a graph corresponding to the CAD file (S610). For example, the processor may determine a plurality of entities included in a CAD file as nodes and determine reference relationships between the plurality of entities as a plurality of edges to generate a graph.

프로세서는 생성된 그래프를 학습된 제2 기계학습 모델에 제공하여, 타겟 물체와 연관된 CAD 특징 정보를 추출할 수 있다(S620). 여기서, CAD 특징 정보는 CAD 파일과 연관된 타겟 물체에 대한 특징 벡터를 포함할 수 있다. 이와 같이 생성된 CAD 특징 정보는 실환경 특징 정보와 함께 실환경 이미지에 포함된 물체를 인식하기 위해 사용될 수 있다.The processor may provide the generated graph to the learned second machine learning model to extract CAD feature information associated with the target object (S620). Here, the CAD feature information may include a feature vector for the target object associated with the CAD file. The CAD feature information generated in this way can be used together with the real environment feature information to recognize objects included in the real environment image.

도 7은 본 발명의 일 실시예에 따른 컴퓨팅 장치(700)의 내부 구성을 나타내는 블록도이다. 컴퓨팅 장치(700)는 메모리(710), 프로세서(720), 통신 모듈(730) 및 입출력 인터페이스(740)를 포함할 수 있다. 도 7에 도시된 바와 같이, 컴퓨팅 장치(700)는 통신 모듈(730)을 이용하여 네트워크를 통해 정보 및/또는 데이터를 통신할 수 있도록 구성될 수 있다.FIG. 7 is a block diagram showing the internal configuration of a computing device 700 according to an embodiment of the present invention. The computing device 700 may include a memory 710, a processor 720, a communication module 730, and an input/output interface 740. As shown in FIG. 7 , the computing device 700 may be configured to communicate information and/or data over a network using a communication module 730.

메모리(710)는 비-일시적인 임의의 컴퓨터 판독 가능한 기록매체를 포함할 수 있다. 일 실시예에 따르면, 메모리(710)는 RAM(random access memory), ROM(read only memory), 디스크 드라이브, SSD(solid state drive), 플래시 메모리(flash memory) 등과 같은 비소멸성 대용량 저장 장치(permanent mass storage device)를 포함할 수 있다. 다른 예로서, ROM, SSD, 플래시 메모리, 디스크 드라이브 등과 같은 비소멸성 대용량 저장 장치는 메모리와는 구분되는 별도의 영구 저장 장치로서 컴퓨팅 장치(700)에 포함될 수 있다. 또한, 메모리(710)에는 운영체제와 적어도 하나의 프로그램 코드가 저장될 수 있다.Memory 710 may include any non-transitory computer-readable recording medium. According to one embodiment, the memory 710 is a non-permanent mass storage device such as random access memory (RAM), read only memory (ROM), disk drive, solid state drive (SSD), flash memory, etc. mass storage device). As another example, non-perishable mass storage devices such as ROM, SSD, flash memory, disk drive, etc. may be included in the computing device 700 as a separate persistent storage device that is distinct from memory. Additionally, an operating system and at least one program code may be stored in the memory 710.

이러한 소프트웨어 구성요소들은 메모리(710)와는 별도의 컴퓨터에서 판독 가능한 기록매체로부터 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록매체는 이러한 컴퓨팅 장치(700)에 직접 연결가능한 기록 매체를 포함할 수 있는데, 예를 들어, 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록매체를 포함할 수 있다. 다른 예로서, 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록매체가 아닌 통신 모듈(730)을 통해 메모리(710)에 로딩될 수도 있다. 예를 들어, 적어도 하나의 프로그램은 개발자들 또는 어플리케이션의 설치 파일을 배포하는 파일 배포 시스템이 통신 모듈(730)을 통해 제공하는 파일들에 의해 설치되는 컴퓨터 프로그램에 기반하여 메모리(710)에 로딩될 수 있다.These software components may be loaded from a computer-readable recording medium separate from the memory 710. Recording media readable by such a separate computer may include recording media directly connectable to the computing device 700, for example, floppy drives, disks, tapes, DVD/CD-ROM drives, memory cards, etc. It may include a computer-readable recording medium. As another example, software components may be loaded into the memory 710 through the communication module 730 rather than a computer-readable recording medium. For example, at least one program may be loaded into the memory 710 based on a computer program installed by files provided through the communication module 730 by developers or a file distribution system that distributes the installation file of the application. You can.

프로세서(720)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(710) 또는 통신 모듈(730)에 의해 사용자 단말(미도시) 또는 다른 외부 시스템으로 제공될 수 있다.The processor 720 may be configured to process instructions of a computer program by performing basic arithmetic, logic, and input/output operations. Commands may be provided to a user terminal (not shown) or another external system by the memory 710 or the communication module 730.

통신 모듈(730)은 네트워크를 통해 사용자 단말(미도시)과 컴퓨팅 장치(700)가 서로 통신하기 위한 구성 또는 기능을 제공할 수 있으며, 컴퓨팅 장치(700)가 외부 시스템(일례로 별도의 클라우드 시스템 등)과 통신하기 위한 구성 또는 기능을 제공할 수 있다. 일례로, 컴퓨팅 장치(700)의 프로세서(720)의 제어에 따라 제공되는 제어 신호, 명령, 데이터 등이 통신 모듈(730)과 네트워크를 거쳐 사용자 단말 및/또는 외부 시스템의 통신 모듈을 통해 사용자 단말 및/또는 외부 시스템으로 전송될 수 있다.The communication module 730 may provide a configuration or function for a user terminal (not shown) and the computing device 700 to communicate with each other through a network, and the computing device 700 may be connected to an external system (e.g., a separate cloud system). etc.) may provide a configuration or function for communication. For example, control signals, commands, data, etc. provided under the control of the processor 720 of the computing device 700 pass through the communication module 730 and the network to the user terminal and/or the communication module of the external system. and/or transmitted to an external system.

또한, 컴퓨팅 장치(700)의 입출력 인터페이스(740)는 컴퓨팅 장치(700)와 연결되거나 컴퓨팅 장치(700)가 포함할 수 있는 입력 또는 출력을 위한 장치(미도시)와의 인터페이스를 위한 수단일 수 있다. 도 7에서는 입출력 인터페이스(740)가 프로세서(720)와 별도로 구성된 요소로서 도시되었으나, 이에 한정되지 않으며, 입출력 인터페이스(740)가 프로세서(720)에 포함되도록 구성될 수 있다. 컴퓨팅 장치(700)는 도 7의 구성요소들보다 더 많은 구성요소들을 포함할 수 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다.Additionally, the input/output interface 740 of the computing device 700 may be connected to the computing device 700 or may be a means for interfacing with a device (not shown) for input or output that the computing device 700 may include. . In FIG. 7 , the input/output interface 740 is shown as an element configured separately from the processor 720, but the present invention is not limited thereto, and the input/output interface 740 may be included in the processor 720. Computing device 700 may include more components than those of FIG. 7 . However, there is no need to clearly show most prior art components.

컴퓨팅 장치(700)의 프로세서(720)는 복수의 사용자 단말 및/또는 복수의 외부 시스템으로부터 수신된 정보 및/또는 데이터를 관리, 처리 및/또는 저장하도록 구성될 수 있다.The processor 720 of the computing device 700 may be configured to manage, process, and/or store information and/or data received from a plurality of user terminals and/or a plurality of external systems.

상술된 방법 및/또는 다양한 실시예들은, 디지털 전자 회로, 컴퓨터 하드웨어, 펌웨어, 소프트웨어 및/또는 이들의 조합으로 실현될 수 있다. 본 발명의 다양한 실시예들은 데이터 처리 장치, 예를 들어, 프로그래밍 가능한 하나 이상의 프로세서 및/또는 하나 이상의 컴퓨팅 장치에 의해 실행되거나, 컴퓨터 판독 가능한 기록 매체 및/또는 컴퓨터 판독 가능한 기록 매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다. 상술된 컴퓨터 프로그램은 컴파일된 언어 또는 해석된 언어를 포함하여 임의의 형태의 프로그래밍 언어로 작성될 수 있으며, 독립 실행형 프로그램, 모듈, 서브 루틴 등의 임의의 형태로 배포될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨팅 장치, 동일한 네트워크를 통해 연결된 복수의 컴퓨팅 장치 및/또는 복수의 상이한 네트워크를 통해 연결되도록 분산된 복수의 컴퓨팅 장치를 통해 배포될 수 있다.The above-described method and/or various embodiments may be implemented with digital electronic circuitry, computer hardware, firmware, software, and/or combinations thereof. Various embodiments of the present invention are executed by a data processing device, for example, one or more programmable processors and/or one or more computing devices, or as a computer program stored in a computer-readable recording medium and/or a computer-readable recording medium. It can be implemented. The above-described computer program may be written in any form of programming language, including compiled language or interpreted language, and may be distributed in any form such as a stand-alone program, module, or subroutine. A computer program may be distributed via a single computing device, multiple computing devices connected through the same network, and/or multiple computing devices distributed so as to connect through multiple different networks.

상술된 방법 및/또는 다양한 실시예들은, 입력 데이터를 기초로 동작하거나 출력 데이터를 생성함으로써, 임의의 기능, 함수 등을 처리, 저장 및/또는 관리하는 하나 이상의 컴퓨터 프로그램을 실행하도록 구성된 하나 이상의 프로세서에 의해 수행될 수 있다. 예를 들어, 본 발명의 방법 및/또는 다양한 실시예는 FPGA(Field Programmable Gate Array) 또는 ASIC(Application Specific Integrated Circuit)과 같은 특수 목적 논리 회로에 의해 수행될 수 있으며, 본 발명의 방법 및/또는 실시예들을 수행하기 위한 장치 및/또는 시스템은 FPGA 또는 ASIC와 같은 특수 목적 논리 회로로서 구현될 수 있다.The above-described method and/or various embodiments may include one or more processors configured to execute one or more computer programs that process, store, and/or manage certain functions, functions, etc., by operating on input data or generating output data. It can be performed by . For example, the method and/or various embodiments of the present invention may be performed by special purpose logic circuits such as a Field Programmable Gate Array (FPGA) or Application Specific Integrated Circuit (ASIC), and the method and/or various embodiments of the present invention may An apparatus and/or system for performing embodiments may be implemented as a special purpose logic circuit, such as an FPGA or ASIC.

컴퓨터 프로그램을 실행하는 하나 이상의 프로세서는, 범용 목적 또는 특수 목적의 마이크로 프로세서 및/또는 임의의 종류의 디지털 컴퓨팅 장치의 하나 이상의 프로세서를 포함할 수 있다. 프로세서는 읽기 전용 메모리, 랜덤 액세스 메모리의 각각으로부터 명령 및/또는 데이터를 수신하거나, 읽기 전용 메모리와 랜덤 액세스 메모리로부터 명령 및/또는 데이터를 수신할 수 있다. 본 발명에서, 방법 및/또는 실시예들을 수행하는 컴퓨팅 장치의 구성 요소들은 명령어들을 실행하기 위한 하나 이상의 프로세서, 명령어들 및/또는 데이터를 저장하기 위한 하나 이상의 메모리 디바이스를 포함할 수 있다.The one or more processors executing the computer program may include a general purpose or special purpose microprocessor and/or one or more processors in any type of digital computing device. The processor may receive instructions and/or data from each of read-only memory and random access memory, or may receive instructions and/or data from read-only memory and random access memory. In the present invention, components of a computing device performing methods and/or embodiments may include one or more processors for executing instructions and one or more memory devices for storing instructions and/or data.

일 실시예에 따르면, 컴퓨팅 장치는 데이터를 저장하기 위한 하나 이상의 대용량 저장 장치와 데이터를 주고받을 수 있다. 예를 들어, 컴퓨팅 장치는 자기 디스크(magnetic disc) 또는 광 디스크(optical disc)로부터 데이터를 수신하거나/수신하고, 자기 디스크 또는 광 디스크로 데이터를 전송할 수 있다. 컴퓨터 프로그램과 연관된 명령어들 및/또는 데이터를 저장하기에 적합한 컴퓨터 판독 가능한 저장 매체는, EPROM(Erasable Programmable Read-Only Memory), EEPROM(Electrically Erasable PROM), 플래시 메모리 장치 등의 반도체 메모리 장치를 포함하는 임의의 형태의 비 휘발성 메모리를 포함할 수 있으나, 이에 한정되지 않는다. 예를 들어, 컴퓨터 판독 가능한 저장 매체는 내부 하드 디스크 또는 이동식 디스크와 같은 자기 디스크, 광 자기 디스크, CD-ROM 및 DVD-ROM 디스크를 포함할 수 있다.According to one embodiment, a computing device may exchange data with one or more mass storage devices for storing data. For example, a computing device can receive/receive data from a magnetic disc or an optical disc and transmit data to the magnetic or optical disc. Computer-readable storage media suitable for storing instructions and/or data associated with a computer program include semiconductor memory devices such as EPROM (Erasable Programmable Read-Only Memory), EEPROM (Electrically Erasable PROM), and flash memory devices. It may include, but is not limited to, any form of non-volatile memory. For example, computer-readable storage media may include magnetic disks such as internal hard disks or removable disks, magneto-optical disks, CD-ROM, and DVD-ROM disks.

사용자와의 상호 작용을 제공하기 위해, 컴퓨팅 장치는 정보를 사용자에게 제공하거나 디스플레이하기 위한 디스플레이 장치(예를 들어, CRT (Cathode Ray Tube), LCD(Liquid Crystal Display) 등) 및 사용자가 컴퓨팅 장치 상에 입력 및/또는 명령 등을 제공할 수 있는 포인팅 장치(예를 들어, 키보드, 마우스, 트랙볼 등)를 포함할 수 있으나, 이에 한정되지 않는다. 즉, 컴퓨팅 장치는 사용자와의 상호 작용을 제공하기 위한 임의의 다른 종류의 장치들을 더 포함할 수 있다. 예를 들어, 컴퓨팅 장치는 사용자와의 상호 작용을 위해, 시각적 피드백, 청각 피드백 및/또는 촉각 피드백 등을 포함하는 임의의 형태의 감각 피드백을 사용자에게 제공할 수 있다. 이에 대해, 사용자는 시각, 음성, 동작 등의 다양한 제스처를 통해 컴퓨팅 장치로 입력을 제공할 수 있다.To provide interaction with a user, the computing device may include a display device (e.g., cathode ray tube (CRT), liquid crystal display (LCD), etc.) for presenting or displaying information to the user and a display device (e.g., cathode ray tube (CRT), liquid crystal display (LCD), etc.) for providing or displaying information to the user. It may include, but is not limited to, a pointing device (e.g., keyboard, mouse, trackball, etc.) capable of providing input and/or commands. That is, the computing device may further include any other types of devices for providing interaction with the user. For example, a computing device may provide any form of sensory feedback to a user for interaction with the user, including visual feedback, auditory feedback, and/or tactile feedback. In response, the user can provide input to the computing device through various gestures such as sight, voice, and movement.

본 발명에서, 다양한 실시예들은 백엔드 구성 요소(예: 데이터 서버), 미들웨어 구성 요소(예: 애플리케이션 서버) 및/또는 프론트 엔드 구성 요소를 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 이 경우, 구성 요소들은 통신 네트워크와 같은 디지털 데이터 통신의 임의의 형태 또는 매체에 의해 상호 연결될 수 있다. 예를 들어, 통신 네트워크는 LAN(Local Area Network), WAN(Wide Area Network) 등을 포함할 수 있다.In the present invention, various embodiments may be implemented in a computing system that includes a back-end component (e.g., a data server), a middleware component (e.g., an application server), and/or a front-end component. In this case, the components may be interconnected by any form or medium of digital data communication, such as a communications network. For example, a communication network may include a Local Area Network (LAN), a Wide Area Network (WAN), etc.

본 명세서에서 기술된 예시적인 실시예들에 기반한 컴퓨팅 장치는, 사용자 디바이스, 사용자 인터페이스(UI) 디바이스, 사용자 단말 또는 클라이언트 디바이스를 포함하여 사용자와 상호 작용하도록 구성된 하드웨어 및/또는 소프트웨어를 사용하여 구현될 수 있다. 예를 들어, 컴퓨팅 장치는 랩톱(laptop) 컴퓨터와 같은 휴대용 컴퓨팅 장치를 포함할 수 있다. 추가적으로 또는 대안적으로, 컴퓨팅 장치는, PDA(Personal Digital Assistants), 태블릿 PC, 게임 콘솔(game console), 웨어러블 디바이스(wearable device), IoT(internet of things) 디바이스, VR(virtual reality) 디바이스, AR(augmented reality) 디바이스 등을 포함할 수 있으나, 이에 한정되지 않는다. 컴퓨팅 장치는 사용자와 상호 작용하도록 구성된 다른 유형의 장치를 더 포함할 수 있다. 또한, 컴퓨팅 장치는 이동 통신 네트워크 등의 네트워크를 통한 무선 통신에 적합한 휴대용 통신 디바이스(예를 들어, 이동 전화, 스마트 전화, 무선 셀룰러 전화 등) 등을 포함할 수 있다. 컴퓨팅 장치는, 무선 주파수(RF; Radio Frequency), 마이크로파 주파수(MWF; Microwave Frequency) 및/또는 적외선 주파수(IRF; Infrared Ray Frequency)와 같은 무선 통신 기술들 및/또는 프로토콜들을 사용하여 네트워크 서버와 무선으로 통신하도록 구성될 수 있다.Computing devices based on example embodiments described herein may be implemented using hardware and/or software configured to interact with a user, including a user device, user interface (UI) device, user terminal, or client device. You can. For example, a computing device may include a portable computing device, such as a laptop computer. Additionally or alternatively, computing devices include personal digital assistants (PDAs), tablet PCs, game consoles, wearable devices, internet of things (IoT) devices, virtual reality (VR) devices, AR (augmented reality) devices, etc. may be included, but are not limited thereto. Computing devices may further include other types of devices configured to interact with a user. Additionally, the computing device may include a portable communication device (eg, a mobile phone, smart phone, wireless cellular phone, etc.) suitable for wireless communication over a network, such as a mobile communication network. The computing device may wirelessly connect to a network server using wireless communication technologies and/or protocols, such as radio frequency (RF), microwave frequency (MWF), and/or infrared ray frequency (IRF). It can be configured to communicate with.

본 발명에서 특정 구조적 및 기능적 세부 사항을 포함하는 다양한 실시예들은 예시적인 것이다. 따라서, 본 발명의 실시예들은 상술된 것으로 한정되지 않으며, 여러 가지 다른 형태로 구현될 수 있다. 또한, 본 발명에서 사용된 용어는 일부 실시예를 설명하기 위한 것이며 실시예를 제한하는 것으로 해석되지 않는다. 예를 들어, 단수형 단어 및 상기는 문맥상 달리 명확하게 나타내지 않는 한 복수형도 포함하는 것으로 해석될 수 있다.The various embodiments herein, including specific structural and functional details, are illustrative. Accordingly, embodiments of the present invention are not limited to those described above and may be implemented in various other forms. Additionally, the terms used in the present invention are intended to describe some embodiments and are not to be construed as limiting the embodiments. For example, the singular forms of words and the like may be construed to include the plural, unless the context clearly indicates otherwise.

본 발명에서, 달리 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함하여 본 명세서에서 사용되는 모든 용어는 이러한 개념이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다. 또한, 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 맥락에서의 의미와 일치하는 의미를 갖는 것으로 해석되어야 한다.In the present invention, unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by a person of ordinary skill in the technical field to which these concepts belong. . Additionally, commonly used terms, such as those defined in dictionaries, should be interpreted as having meanings consistent with their meaning in the context of the relevant technology.

본 명세서에서는 본 발명이 일부 실시예들과 관련하여 설명되었지만, 본 발명의 발명이 속하는 기술분야의 통상의 기술자가 이해할 수 있는 본 발명의 범위를 벗어나지 않는 범위에서 다양한 변형 및 변경이 이루어질 수 있다. 또한, 그러한 변형 및 변경은 본 명세서에 첨부된 특허청구의 범위 내에 속하는 것으로 생각되어야 한다.Although the present invention has been described in relation to some embodiments in this specification, various modifications and changes may be made without departing from the scope of the present invention as can be understood by a person skilled in the art to which the present invention pertains. Additionally, such modifications and changes should be considered to fall within the scope of the claims appended hereto.

100: 컴퓨팅 장치
110: 실환경 이미지
120: CAD 파일
130: 물체 인식
100: computing device
110: Real environment image
120: CAD file
130: Object recognition

Claims (8)

적어도 하나의 프로세서에 의해 수행되는 실환경 물체 인식 방법으로서,
임의의 물체(object)를 포함하는 실환경(real-world) 이미지를 수신하는 단계;
상기 실환경 이미지를 기초로, 상기 임의의 물체에 대응하는 실환경 특징(feature) 정보를 추출하는 단계;
상기 추출된 실환경 특징 정보와 복수의 타겟(target) 물체의 각각에 대응하는 STEP 형식의 복수의 CAD(computer aided design) 파일로부터 추출된 복수의 CAD 특징 정보 사이의 유사도를 산출하는 단계; 및
상기 산출된 유사도를 기초로 상기 임의의 물체를 인식하는 단계;
를 포함하고,
상기 추출된 실환경 특징 정보와 복수의 타겟 물체의 각각에 대응하는 STEP 형식의 복수의 CAD 파일로부터 추출된 복수의 CAD 특징 정보 사이의 유사도를 산출하는 단계는,
상기 복수의 타겟 물체의 각각에 대응하는 STEP 형식의 복수의 CAD 파일의 각각에 대응하는 복수의 그래프(graph)를 생성하는 단계; 및
상기 생성된 복수의 그래프를 학습된 제2 기계학습 모델에 제공하여, 상기 복수의 타겟 물체의 각각에 대응하는 상기 복수의 CAD 특징 정보를 추출하는 단계;
를 포함하는, 실환경 물체 인식 방법.
A real-world object recognition method performed by at least one processor, comprising:
Receiving a real-world image including an arbitrary object;
extracting real environment feature information corresponding to the arbitrary object based on the real environment image;
Calculating a degree of similarity between the extracted real-world feature information and a plurality of CAD feature information extracted from a plurality of computer aided design (CAD) files in STEP format corresponding to each of a plurality of target objects; and
recognizing the arbitrary object based on the calculated similarity;
Including,
The step of calculating the similarity between the extracted real-world feature information and a plurality of CAD feature information extracted from a plurality of CAD files in STEP format corresponding to each of the plurality of target objects,
generating a plurality of graphs corresponding to each of a plurality of CAD files in STEP format corresponding to each of the plurality of target objects; and
providing the plurality of generated graphs to a learned second machine learning model to extract the plurality of CAD feature information corresponding to each of the plurality of target objects;
A method for recognizing objects in a real environment, including:
제1항에 있어서,
상기 산출된 유사도를 기초로 상기 임의의 물체를 인식하는 단계는,
상기 실환경 이미지에서 상기 임의의 물체에 대응하는 영역에 대한 바운딩 박스(bounding box) 좌표를 추출하여, 상기 임의의 물체의 위치를 인식하는 단계;
를 포함하는, 실환경 물체 인식 방법.
According to paragraph 1,
The step of recognizing the arbitrary object based on the calculated similarity,
recognizing the location of the random object by extracting bounding box coordinates for an area corresponding to the random object from the real environment image;
A method for recognizing objects in a real environment, including:
제1항에 있어서,
상기 임의의 물체에 대응하는 실환경 특징 정보를 추출하는 단계는,
상기 실환경 이미지를 학습된 제1 기계학습 모델에 제공하여, 상기 임의의 물체에 대응하는 실환경 특징 정보를 추출하는 단계;
를 포함하는, 실환경 물체 인식 방법.
According to paragraph 1,
The step of extracting real environment feature information corresponding to the random object includes:
providing the real environment image to a learned first machine learning model to extract real environment feature information corresponding to the random object;
A method for recognizing objects in a real environment, including:
삭제delete 제1항에 있어서,
상기 CAD 파일은 복수의 독립체 및 상기 복수의 독립체 간의 참조 관계를 포함하고,
상기 CAD 파일에 대응하는 그래프를 생성하는 단계는,
상기 CAD 파일에 포함된 복수의 독립체를 노드(node)로 결정하고, 상기 복수의 독립체 간의 참조 관계를 복수의 엣지(edge)로 결정하여 상기 그래프를 생성하는 단계;
를 포함하는, 실환경 물체 인식 방법.
According to paragraph 1,
The CAD file includes a plurality of entities and reference relationships between the plurality of entities,
The step of generating a graph corresponding to the CAD file is:
generating the graph by determining a plurality of entities included in the CAD file as nodes and determining reference relationships between the plurality of entities as a plurality of edges;
A method for recognizing objects in a real environment, including:
제1항에 있어서,
상기 실환경 특징 정보는 상기 임의의 물체에 대한 특징 벡터(feature vector)를 포함하고,
상기 복수의 CAD 특징 정보는 상기 복수의 타겟 물체의 각각에 대한 특징 벡터를 포함하고,
상기 유사도를 산출하는 단계는,
상기 임의의 물체에 대한 특징 벡터 및 상기 복수의 타겟 물체의 각각에 대한 특징 벡터를 학습된 제3 기계학습 모델에 제공하여, 상기 특징 벡터들 사이의 유사도를 산출하는 단계;
를 포함하는, 실환경 물체 인식 방법.
According to paragraph 1,
The real environment feature information includes a feature vector for the arbitrary object,
The plurality of CAD feature information includes a feature vector for each of the plurality of target objects,
The step of calculating the similarity is,
providing a feature vector for the random object and a feature vector for each of the plurality of target objects to a learned third machine learning model, and calculating a degree of similarity between the feature vectors;
A method for recognizing objects in a real environment, including:
제6항에 있어서,
상기 제3 기계학습 모델은, 트리플릿 손실 함수(triplet loss function)에 기초하여 상기 특징 벡터들 사이의 유사도를 산출하도록 학습되는, 실환경 물체 인식 방법.
According to clause 6,
The third machine learning model is learned to calculate similarity between the feature vectors based on a triplet loss function.
제1항 내지 제3항 및 제5항 내지 제7항 중 어느 한 항에 따른 방법을 컴퓨터에서 실행하기 위해 컴퓨터 판독 가능한 기록 매체에 저장된 컴퓨터 프로그램.A computer program stored in a computer-readable recording medium for executing the method according to any one of claims 1 to 3 and 5 to 7 on a computer.
KR1020210125623A 2021-09-23 2021-09-23 Real-world object recognition method and device KR102662978B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020210125623A KR102662978B1 (en) 2021-09-23 2021-09-23 Real-world object recognition method and device
PCT/KR2022/008146 WO2023048357A1 (en) 2021-09-23 2022-06-09 Real-world object recognition method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210125623A KR102662978B1 (en) 2021-09-23 2021-09-23 Real-world object recognition method and device

Publications (2)

Publication Number Publication Date
KR20230042868A KR20230042868A (en) 2023-03-30
KR102662978B1 true KR102662978B1 (en) 2024-05-03

Family

ID=85719560

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210125623A KR102662978B1 (en) 2021-09-23 2021-09-23 Real-world object recognition method and device

Country Status (2)

Country Link
KR (1) KR102662978B1 (en)
WO (1) WO2023048357A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120287304A1 (en) * 2009-12-28 2012-11-15 Cyber Ai Entertainment Inc. Image recognition system
KR102210404B1 (en) * 2019-10-14 2021-02-02 국방과학연구소 Location information extraction device and method
US20210133426A1 (en) * 2017-09-21 2021-05-06 Lexset.Ai Inc. Detecting one or more objects in an image, or sequence of images, and determining a category and one or more descriptors for each of the one or more objects, generating synthetic training data, and training a neural network with the synthetic training data

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102400017B1 (en) * 2017-05-17 2022-05-19 삼성전자주식회사 Method and device for identifying an object
KR102425578B1 (en) * 2017-08-08 2022-07-26 삼성전자주식회사 Method and apparatus for recognizing an object

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120287304A1 (en) * 2009-12-28 2012-11-15 Cyber Ai Entertainment Inc. Image recognition system
US20210133426A1 (en) * 2017-09-21 2021-05-06 Lexset.Ai Inc. Detecting one or more objects in an image, or sequence of images, and determining a category and one or more descriptors for each of the one or more objects, generating synthetic training data, and training a neural network with the synthetic training data
KR102210404B1 (en) * 2019-10-14 2021-02-02 국방과학연구소 Location information extraction device and method

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
김정민,‘샴 네트워크(Siamese Network), 삼중합 손실(Triplet Loss),’ http://kau-deeperent.tistory.com/47 (2020.03.06.) 1부.*
박성호, 이규빈 공저‘STEP 파일의 그래프적 표현,’ 제어로봇시스템학회 국내학술대회 논문집, 2021, pp.707-708 (2021.06.23.) 1부.*

Also Published As

Publication number Publication date
WO2023048357A1 (en) 2023-03-30
KR20230042868A (en) 2023-03-30

Similar Documents

Publication Publication Date Title
US20210264227A1 (en) Method for locating image region, model training method, and related apparatus
Oliva et al. A multilevel thresholding algorithm using electromagnetism optimization
EP3735625B1 (en) Method and system for training the navigator of an object tracking robot
US20210406609A1 (en) Meta-learning for multi-task learning for neural networks
Tang et al. Track deformable objects from point clouds with structure preserved registration
Huang et al. Retracted: Jointly network image processing: Multi‐task image semantic segmentation of indoor scene based on CNN
US11651214B2 (en) Multimodal data learning method and device
US20190108447A1 (en) Multifunction perceptrons in machine learning environments
JP2022534337A (en) Video target tracking method and apparatus, computer apparatus, program
JP2022505775A (en) Image classification model training methods, image processing methods and their equipment, and computer programs
US10778988B2 (en) Method, an apparatus and a computer program product for object detection
US11960259B2 (en) Control system using autoencoder
CN102640168A (en) Method and apparatus for local binary pattern based facial feature localization
Ljouad et al. A hybrid mobile object tracker based on the modified Cuckoo Search algorithm and the Kalman Filter
CN114677565B (en) Training method and image processing method and device for feature extraction network
CN111652181B (en) Target tracking method and device and electronic equipment
US20230401799A1 (en) Augmented reality method and related device
WO2024083121A1 (en) Data processing method and apparatus
CN115131604A (en) Multi-label image classification method and device, electronic equipment and storage medium
Ding et al. Simultaneous body part and motion identification for human-following robots
US11430137B2 (en) Electronic device and control method therefor
Sanket et al. Ajna: Generalized deep uncertainty for minimal perception on parsimonious robots
WO2024017282A1 (en) Data processing method and device
KR102662978B1 (en) Real-world object recognition method and device
Gaia et al. Mapping the Landscape of SLAM Research: A Review

Legal Events

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