KR20230098782A - 신경망을 이용하여 3d 물체를 재구성하는 시스템 및 방법 - Google Patents

신경망을 이용하여 3d 물체를 재구성하는 시스템 및 방법 Download PDF

Info

Publication number
KR20230098782A
KR20230098782A KR1020237009628A KR20237009628A KR20230098782A KR 20230098782 A KR20230098782 A KR 20230098782A KR 1020237009628 A KR1020237009628 A KR 1020237009628A KR 20237009628 A KR20237009628 A KR 20237009628A KR 20230098782 A KR20230098782 A KR 20230098782A
Authority
KR
South Korea
Prior art keywords
simulated
elements
neural network
pattern
projection
Prior art date
Application number
KR1020237009628A
Other languages
English (en)
Inventor
글레브 알렉산드로비치 구스에프
바딤 베레즈니우크
크세니야 체렌코바
일야 아르자니코프
Original Assignee
아르텍 유럽, 에스.에이.알.엘.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 아르텍 유럽, 에스.에이.알.엘. filed Critical 아르텍 유럽, 에스.에이.알.엘.
Publication of KR20230098782A publication Critical patent/KR20230098782A/ko

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B11/00Measuring arrangements characterised by the use of optical techniques
    • G01B11/24Measuring arrangements characterised by the use of optical techniques for measuring contours or curvatures
    • G01B11/25Measuring arrangements characterised by the use of optical techniques for measuring contours or curvatures by projecting a pattern, e.g. one or more lines, moiré fringes on the object
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B11/00Measuring arrangements characterised by the use of optical techniques
    • G01B11/24Measuring arrangements characterised by the use of optical techniques for measuring contours or curvatures
    • G01B11/25Measuring arrangements characterised by the use of optical techniques for measuring contours or curvatures by projecting a pattern, e.g. one or more lines, moiré fringes on the object
    • G01B11/2513Measuring arrangements characterised by the use of optical techniques for measuring contours or curvatures by projecting a pattern, e.g. one or more lines, moiré fringes on the object with several lines being projected in more than one direction, e.g. grids, patterns
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B11/00Measuring arrangements characterised by the use of optical techniques
    • G01B11/24Measuring arrangements characterised by the use of optical techniques for measuring contours or curvatures
    • G01B11/25Measuring arrangements characterised by the use of optical techniques for measuring contours or curvatures by projecting a pattern, e.g. one or more lines, moiré fringes on the object
    • G01B11/2518Projection by scanning of the object
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/521Depth or shape recovery from laser ranging, e.g. using interferometry; from the projection of structured light
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/10Image acquisition
    • G06V10/12Details of acquisition arrangements; Constructional details thereof
    • G06V10/14Optical characteristics of the device performing the acquisition or on the illumination arrangements
    • G06V10/141Control of illumination
    • 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
    • G06V10/751Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
    • 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/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects
    • 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)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Optics & Photonics (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Image Analysis (AREA)
  • Analysing Materials By The Use Of Radiation (AREA)

Abstract

일부 실시형태에 따르면, 물체의 표면에 비추는 투영 패턴과 이 투영 패턴의 이미지 사이의 대응 상태를 결정하기 위한 방법이 제공된다. 방법은 물체의 표면에 투영 패턴을 비추는 동안 물체의 이미지를 획득하는 단계를 포함한다. 방법은 신경망을 사용하여 이미지의 각각의 픽셀과 투영 패턴의 좌표 사이의 대응 상태를 출력하는 단계를 더 포함한다. 방법은 이미지의 각각의 픽셀과 투영 패턴의 좌표 간의 대응 상태를 사용하여 물체 표면의 형상을 재구성하는 단계를 더 포함한다.

Description

신경망을 이용하여 3D 물체를 재구성하는 시스템 및 방법
본 발명은 일반적으로 3차원 스캐닝 기술에 관한 것으로, 보다 상세하게는 신경망을 이용한 3차원 스캐닝 기술에 관한 것이다.
3차원(3D) 스캐닝 기술은 물리적 물체 표면의 3D 모델을 구축할 수 있다. 3차원 스캐닝은 산업 디자인 및 제조, 컴퓨터 애니메이션, 과학, 교육, 의학, 예술, 디자인 등을 포함한 많은 분야에 걸쳐 응용된다.
본 발명은 3D 스캐닝 기술에 관한 것이다. 3D 스캐닝을 위한 하나의 접근 방식은 프로젝터가 알려진 광 패턴(이하 "투영 패턴")을 물체의 표면에 투영하는 소위 "구조화된 광"을 사용하는 것이다. 예를 들어, 프로젝터의 광은 인쇄된 패턴을 갖는 슬라이드를 통과할 수 있다. 물체 표면의 형상은 카메라에 캡처된 광의 패턴의 왜곡으로부터 유추된다. 하나 이상의 카메라를 사용하여 물체에서 반사된 패턴 이미지를 획득할 수 있다. 이미지에서 패턴의 위치를 측정함으로써(예를 들어, 패턴의 왜곡을 측정함으로써), 컴퓨터 시스템은 예를 들어 삼각 측량 알고리즘과 같은 간단한 기하학적 계산을 사용하여 물체 표면에 대한 위치를 결정할 수 있다.
물체 표면의 위치를 결정하기 위해, 컴퓨터 시스템은 투영 패턴 내의 어느 지점이 이미지의 어느 지점에 대응하는지를 아는 것이 필요하다. 일부 실시형태에 따르면, 이미지 픽셀과 투영 패턴의 좌표 사이의 대응 상태(correspondence)는 훈련된 신경망을 사용하여 추론될 수 있다.
일부 실시형태에 따르면, 3D 스캐닝에 대한 구조화된 광 접근 방식에서 이미징된 요소를 명확화하기 위한 방법이 제공된다. 방법은 물체의 이미지를 획득하는 단계를 포함한다. 이미지는 이미징된 패턴의 복수의 이미징된 요소를 포함한다. 이미징된 패턴은 물체의 표면 상에 투영되는 투영 패턴에 대응하고, 투영 패턴은 복수의 투영 요소를 포함한다. 방법은 신경망을 사용하여 복수의 이미징된 요소와 복수의 투영 요소 사이의 대응 상태를 출력하는 단계를 포함한다. 방법은 복수의 이미징된 요소와 복수의 투영 요소 사이의 대응 상태를 사용하여 물체 표면의 형상을 재구성하는 단계를 더 포함한다.
일부 실시형태에 따르면, 투영 패턴과 물체의 표면에 비치는 투영 패턴의 이미지 사이의 대응 상태를 결정하기 위한 방법이 제공된다. 방법은 물체의 표면에 투영 패턴을 비추는 동안 물체의 이미지를 획득하는 단계를 포함한다. 방법은 신경망을 사용하여 이미지의 각각의 픽셀과 투영 패턴의 좌표 사이의 대응 상태를 출력하는 단계를 더 포함한다. 방법은 이미지의 각각의 픽셀과 투영 패턴의 좌표 간의 대응 상태를 사용하여 물체 표면의 형상을 재구성하는 단계를 더 포함한다.
일부 실시형태에 따르면, 신경망을 훈련하기 위한 방법이 제공된다. 신경망은 시뮬레이션된 물체의 표면 상에 투영된 투영 패턴의 복수의 시뮬레이션된 이미지를 포함하는 시뮬레이션된 데이터를 사용하여 훈련된다. 투영 패턴은 복수의 투영 요소를 포함하고, 시뮬레이션된 이미지 각각은 복수의 시뮬레이션된 요소를 포함하는 시뮬레이션된 패턴을 포함한다. 복수의 시뮬레이션된 요소는 투영 패턴의 각각의 투영 요소에 대응한다. 시뮬레이션된 데이터는 또한 각각의 시뮬레이션된 물체의 형상을 나타내는 데이터, 및 시뮬레이션된 요소와 각각의 투영 요소 사이의 대응 상태를 나타내는 데이터를 포함한다. 시뮬레이션된 데이터를 사용하여 신경망은 투영 패턴의 복수의 투영 요소와 시뮬레이션된 패턴의 복수의 시뮬레이션된 요소 사이의 대응 상태를 결정하도록 훈련된다. 훈련된 신경망은 이후 이미지를 재구성하는 데 사용하기 위해 저장된다.
일부 실시형태에 따르면, 신경망을 훈련시키기 위한 다른 방법이 제공된다. 방법은 시뮬레이션된 데이터를 생성하는 단계를 포함하고, 시뮬레이션된 데이터는, 각각의 시뮬레이션된 물체의 표면 상에 투영된 투영 패턴의 복수의 시뮬레이션된 이미지; 각각의 시뮬레이션된 물체의 형상을 나타내는 데이터; 및 시뮬레이션된 이미지의 각각의 픽셀과 투영 패턴 상의 좌표 사이의 대응 상태를 나타내는 데이터를 포함한다. 방법은 시뮬레이션된 데이터를 사용하여 이미지와 투영 패턴 사이의 대응 상태를 결정하기 위해 신경망을 훈련시키는 단계를 더 포함한다. 방법은 이후 이미지를 재구성하는 데 사용하기 위해 훈련된 신경망을 저장하는 단계를 더 포함한다.
일부 실시형태에 따르면, 컴퓨터 시스템이 제공된다. 컴퓨터 시스템은 하나 이상의 프로세서 및 본 명세서에 설명된 임의의 방법을 수행하기 위한 명령어를 저장하는 메모리를 포함한다.
일부 실시형태에 따르면, 명령어를 저장하는 비일시적 컴퓨터 판독 가능 저장 매체가 제공된다. 비일시적 컴퓨터 판독 가능 저장 매체는, 컴퓨터 시스템에 의해 실행될 때, 컴퓨터 시스템으로 하여금 본 명세서에 기술된 임의의 방법을 수행하게 하는 명령어를 포함한다.
다양한 설명된 실시형태의 더 나은 이해를 위해, 동일한 참조 부호가 도면 전체에 걸쳐 대응하는 부분을 나타내는 이하의 도면과 함께 아래의 실시형태에 대한 상세한 설명을 참조한다.
도 1a 내지 도 1b는 일부 실시형태에 따른 이미징 시스템을 도시한다.
도 1c는 일부 실시형태에 따른 투영 패턴을 도시한다.
도 1d는 일부 실시형태에 따른 이미징된 패턴을 도시한다.
도 2는 일부 실시형태에 따른 이미징 시스템의 블록도이다.
도 3은 일부 실시형태에 따른 원격 디바이스의 블록도이다.
도 4는 일부 실시형태에 따른 신경망의 입력 및 출력을 도시한다.
도 5a 내지 도 5c는 일부 실시형태에 따른 3D 재구성 방법의 흐름도를 도시한다.
도 6a 내지 도 6b는 일부 실시형태에 따른 신경망 훈련 방법의 흐름도를 도시한다.
도 7은 일부 실시형태에 따른 다른 3D 재구성 방법의 흐름도를 도시한다.
이제 예가 첨부 도면에 도시된 실시형태를 참조한다. 이하의 설명에서, 다양한 설명된 실시형태의 완전한 이해를 제공하기 위해 다수의 특정 세부사항이 제시된다. 그러나, 기술된 다양한 실시형태가 이들 특정 세부사항 없이 실시될 수 있다는 것이 당업자에게는 명백할 것이다. 다른 경우에, 잘 알려진 방법, 절차, 구성요소, 회로 및 네트워크는 실시형태의 독창적인 양태를 불필요하게 모호하게 하지 않도록 상세히 설명되지 않았다.
도 1a 내지 도 1b는 본 발명의 일 실시형태에 따른 프로젝터(110) 및 하나 이상의 카메라(112)(예를 들어, 센서)를 포함하는 3차원("3D") 이미징 환경(100)을 도시한다. 다양한 실시형태에서, 하나 초과의 프로젝터 및/또는 하나 초과의 카메라가 사용될 수 있다는 것이 주목된다. 도 1a에 도시된 바와 같이, 프로젝터(110)는 이미징될 물체(120) 상에 투영 패턴(때때로 "구조화된 조명"이라고도 함)을 투영하도록 구성된다. 그렇게 하기 위해, 일부 실시형태에서, 프로젝터로부터의 광은 인쇄된 투영 패턴을 갖는 슬라이드를 통해 투영된다. 투영 패턴은 복수의 투영 요소를 포함한다. 투영 패턴의 비제한적 예로는 일련의 대비되는 선(예를 들어, 흑색 및 백색 선), 일련의 대비되는 지그재그 선, 및 도트의 그리드 패턴을 포함한다. 투영 패턴의 추가 예는 미국 출원 번호 11/846,494(전체 내용이 본 명세서에 포함됨)에 설명되어 있다.
광선(190-1 내지 190-4) 각각은 투영 패턴의 각각의 투영 요소(예를 들어, 투영 패턴의 다른 선)에 대응한다. 예를 들어, 광선(190-1)은 프로젝터(110)로부터 물체(120)의 표면(121)으로 투영되는 투영 패턴의 제1 투영 요소를 나타내고, 광선(190-2)은 프로젝터(110)로부터 물체(120)의 표면(121)으로 투영되는 다른 투영 요소를 나타낸다. 광선(190)은 물체(120)의 표면(121)에서 (광선(190-1 내지 190-4)에 각각 대응하는 반사 광선(192-1 내지 192-4)으로서) 반사된다. 광의 적어도 일부는 하나 이상의 카메라(112)에 의해 캡처된다.
일부 실시형태에서, 카메라(들)(112)는 물체(120)의 표면(121)이 투영 패턴으로 조명되는 동안 물체(120)의 복수의 이미지를 캡처한다. 일부 실시형태에서, 투영 패턴은 물체(120)의 표면에 스트로보스코픽으로 비치고, 투영 패턴이 물체(120)의 표면에 비칠 때마다 복수의 이미지의 이미지가 캡처된다. 본 명세서에서 사용된 "스트로보스코픽으로"라는 용어는 고정된 속도(예를 들어, 초당 15개의 프레임)로 반복하는 것을 의미한다.
프로젝터(110)와 카메라(112)가 도 1a 내지 도 1b에 별도로 도시되어 있지만, 일부 실시형태에서 프로젝터(110)와 카메라(112)는 3D 스캐너(200)(도 2)로서 단일 하우징에 통합된다는 것이 주목된다. 3D 스캐너(200)의 사용자는 데이터를 수집하는 동안 물체(120)에 대해 3D 스캐너(200)를 이동시켜 물체를 스캔할 수 있다. 따라서, 일부 실시형태에서, 물체(120)의 이미지는 상이한 각도 또는 위치로부터 카메라(들)(112)에 의해 캡처된다.
복수의 이미지의 각각의 이미지는 물체(120)의 표면으로 인해 왜곡된, 투영 패턴에 대응하는 이미징된 패턴을 나타낸다. 따라서, 이미징된 패턴은 복수의 이미징된 요소를 포함하고, 이미징된 요소 각각은 투영 패턴의 각각의 투영 요소에 대응한다.
도 1b는 3D 이미징 환경(100)의 동작의 다른 예를 도시한다. 도 1b에 도시된 바와 같이, 프로젝터(110)는 도 1a에서와 동일한 투영 패턴을 물체(120)를 향해 투영한다. 이 예에서, 다른 물체(122)는 광선(190-3)의 경로에 배치되고 따라서 광선(190-3)은 물체(122)의 표면에서 반사된다. 물체(122)는 물체(120)의 일체형 부분(예를 들어, 머그잔의 손잡이) 또는 별도의 물체일 수 있다는 것이 주목된다. 카메라(들)(112)는 물체(120 및 122)의 복수의 이미지를 캡처한다. 도시된 바와 같이, 물체(122)의 존재는 광선(192-3)(광선(190-3)에 대응)이 도 1a에 도시된 것과 다른 위치에서 카메라(들)(112)에 입사하게 한다. 따라서, 카메라(들)(112)에 의해 캡처된 복수의 이미지는 이미징된 패턴의 다른 이미징된 요소에 비해 이미징된 패턴에서 상이한 위치에 있는(그리고 아마도 다른 순서로) 광선(190-3 및 192-3)에 대응하는 이미징된 요소를 보여줄 것이다.
도 1c는 프로젝터(110)로부터 방출된 투영 패턴(130)의 일례를 도시하고, 도 1d는 카메라(들)(112)에 의해 캡처된 이미징된 패턴(132)의 일례를 도시한다.
도 1c에 도시된 예에서, 투영 패턴(130)은 복수의 투영 요소(140)를 포함한다. 예를 들어, 도 1c에 도시된 투영 패턴(130)은 도 1b에 도시된 바와 같이 프로젝터(110)에 의해 물체(120 및 122) 상에 투영될 수 있다. 이 경우, 투영 요소(140)는 반복되는 라인이다. 일부 실시형태에서, 미국 출원 번호 11/846,494에 논의된 바와 같이, 라인은 두꺼운 구역과 얇은 구역을 번갈아 갖는다. 일부 실시형태에서, 번갈아 나타난 두꺼운 구역과 얇은 구역은 라인마다 다르지만 라인은 여전히 코딩되지 않은 요소로 간주된다.
도 1d는 도 1b에 도시된 바와 같이 프로젝터(110)가 물체(120 및 122)를 향해 투영 패턴(130)을 투영하는 동안 카메라(들)(112)에 의해 캡처된 이미징된 패턴(132)의 일례이다. 이미지는 복수의 이미징된 요소(142)를 포함한다. 이 경우, 이미징된 요소(142)는 왜곡된 라인이다. 각각의 이미징된 요소(142)(예를 들어, 왜곡된 라인)는 투영 패턴(130)에서 각각의 투영 요소(140)(예를 들어, 각각의 라인)에 대응한다. 이 예에서, 이미징된 패턴(132)의 이미징된 요소(142-1)는 투영 패턴(130)의 투영 요소(140-1)에 대응하고; 이미징된 패턴(132)의 이미징된 요소(142-2)는 투영 패턴(130)의 투영 요소(140-2)에 대응하고; 이미징된 패턴(132)의 이미징된 요소(142-3)는 투영 패턴(130)의 투영 요소(140-3)에 대응하고; 이미징된 패턴(132)의 이미징된 요소(142-4)는 투영 패턴(130)의 투영 요소(140-4)에 대응한다. (도 1b를 참조하여 도시된 바와 같이) 스캐닝되는 물체의 기하 형상으로 인해, 이미징된 요소는 투영 패턴(130)의 각각의 투영 요소(140)의 위치에 대해 전치될 수 있다는 것이 주목된다. 예를 들어, 이미징된 요소(142-3 및 142-4)의 상대적인 순서는 투영 요소(140-3 및 140-4)와 비교할 때 역전된다.
구조화된 광 접근 방식을 사용하여 물체 표면의 모델을 구성하기 위해 컴퓨터 시스템은 이미지와 투영 패턴 간의 대응 상태(예를 들어, 이미지의 각각의 픽셀에 대응하는 투영 패턴의 좌표 및/또는 이미징 요소와 투영 요소 사이의 대응 상태)를 아는 것이 필요하다. 이 모호성 문제를 해결하기 위해 두 가지 일반적인 접근 방식이 있는 데, 하나의 방법은 코딩된 요소가 있는 패턴을 이용하고, 다른 방법은 코딩되지 않은 요소가 있는 패턴에 의존한다. 코딩된 요소가 있는 패턴에서 패턴의 요소는 컴퓨터 시스템이 각각의 이미징된 요소를 식별할 수 있게 하는 일부 고유한 식별 특성을 갖는다. 코딩되지 않은 요소가 있는 패턴에서 패턴의 요소(예를 들어, 라인 또는 반복 요소)에는 캡처된 이미지에서 패턴의 특정 요소를 식별할 수 있게 하는 개별 고유 특성이 없다. 코딩되지 않은 요소(예를 들어, 라인)의 경우 이미지와 투영 패턴 간의 대응 상태를 결정하기 위해 일부 다른 방법이 필요하다.
일부 실시형태에서, 투영 패턴은 투영 패턴의 투영 요소가 코딩되지 않은 요소가 되도록 코딩되지 않은 광 패턴이다. 일부 실시형태에서, 아래에서 상세히 설명된 바와 같이, 투영 패턴과 투영 패턴이 비치는 물체의 이미지 사이의 대응 상태는 신경망을 사용하여 결정된다. 일부 실시형태에서, 코딩되지 않은 광 패턴은 라인 또는 다른 반복 요소와 같은 구조화된 광 패턴을 포함한다.
도 1c 및 도 1d는 투영 패턴(130)의 복수의 투영 요소(140)가 라인인 예를 도시하지만, 투영 요소(140)와 이미징된 요소(142)는 임의의 형상을 취할 수 있는 것으로 이해된다. 예를 들어, 투영 요소(140)는 막대, 지그재그 요소, 도트, 정사각형, 일련의 3개의 작은 막대 등일 수 있다. 투영 패턴으로 조명되는 물체에 의해 형성된 이미징된 패턴을 보여주는 이미지의 비제한적 예는 미국 가출원 번호 63/070,066(전체 내용이 본 명세서에 포함됨)의 부록 A의 도 A1 및 도 A2에 제공된다.
도 2는 일부 실시형태에 따른 3D 스캐너(200)의 블록도이다. 3D 스캐너(200) 또는 3D 스캐너(200)의 컴퓨터 시스템은 일반적으로 메모리(204), 하나 이상의 프로세서(들)(202), 전력 공급원(206), 사용자 입력/출력(I/O) 서브시스템(208), 하나 이상의 센서(203)(예를 들어, 카메라(들)(112) 포함, 도 1a 내지 도 1b), 프로젝터(110) 및 이들 구성요소를 상호 연결하기 위한 통신 버스(210)를 포함한다. 프로세서(들)(202)는 메모리(204)에 저장된 모듈, 프로그램 및/또는 명령어를 실행함으로써 처리 동작을 수행한다.
일부 실시형태에서, 프로세서(들)(202)는 적어도 하나의 중앙 처리 유닛을 포함한다. 일부 실시형태에서, 프로세서(들)(202)는 적어도 하나의 그래픽 처리 유닛을 포함한다. 일부 실시형태에서, 프로세서(들)(302)는 본 명세서에 기술된 신경망을 실행하기 위한 적어도 하나의 신경 처리 유닛(NPU)을 포함한다. 일부 실시형태에서, 프로세서(들)(202)는 적어도 하나의 전계 프로그래밍 가능 게이트 어레이를 포함한다.
일부 실시형태에서, 메모리(204)는 하나 이상의 프로그램(예를 들어, 명령어 세트) 및/또는 데이터 구조를 저장한다. 일부 실시형태에서, 메모리(204) 또는 메모리(204)의 비일시적 컴퓨터 판독 가능 저장 매체는 하기 프로그램, 모듈 및 데이터 구조, 또는 이들의 서브세트 또는 수퍼세트를 저장한다:
Figure pct00001
다양한 기본 시스템 서비스를 처리하고 하드웨어 종속 작업을 수행하기 위한 절차를 포함하는 운영 시스템(212);
Figure pct00002
하나 이상의 통신 네트워크(들)(250)를 통해 다른 컴퓨터 시스템(예를 들어, 원격 디바이스(236))에 3D 스캐너를 연결하기 위한 네트워크 통신 모듈(들)(218);
Figure pct00003
사용자 입력/출력(I/O) 서브시스템(208)을 통해 사용자로부터 커맨드 및/또는 입력을 수신하고, 사용자 입력/출력(I/O) 서브시스템(208) 상에 표시 및/또는 디스플레이하기 위한 출력을 제공하는 사용자 인터페이스 모듈(220);
Figure pct00004
방법(500)(도 5a 내지 도 5c) 및/또는 방법(700)(도 7)과 관련하여 설명된 동작 중 임의의 동작 또는 모든 동작을 선택적으로 수행하는 것을 포함하여 센서(203)로부터의 데이터를 처리 또는 전처리하기 위한 데이터 처리 모듈(224). 대안적으로, 다양한 실시형태에서, 데이터 처리의 일부 또는 전부는 3D 스캐너(200)가 네트워크(250)를 통해 결합되는 원격 디바이스(236)에 의해 수행될 수 있다;
Figure pct00005
카메라, 프로젝터 및 센서 판독을 제어하기 위한 데이터 수집 모듈(226); 및
Figure pct00006
3D 스캐너(200)에 의해 사용 및 생성된 데이터를 저장하는 버퍼(들), RAM, ROM, 및/또는 다른 메모리를 포함하는 저장부(230).
위에서 식별된 모듈(예를 들어, 명령어 세트를 포함하는 데이터 구조 및/또는 프로그램)은 별도의 소프트웨어 프로그램, 절차 또는 모듈로 구현될 필요가 없어서 다양한 실시형태에서 이러한 모듈의 다양한 서브세트를 결합하거나 달리 재배열할 수 있다. 일부 실시형태에서, 메모리(204)는 위에서 식별된 모듈의 서브세트를 저장한다. 또한, 메모리(204)는 위에서 설명되지 않은 추가 모듈을 저장할 수 있다. 일부 실시형태에서, 메모리(204)에 저장된 모듈, 또는 메모리(204)의 비일시적 컴퓨터 판독 가능 저장 매체는 아래 설명된 방법에서 각각의 동작을 구현하기 위한 명령어를 제공한다. 일부 실시형태에서, 이러한 모듈의 일부 또는 전부는 모듈 기능의 일부 또는 전부를 포함하는 특수 하드웨어 회로(예를 들어, FPGA)로 구현될 수 있다. 위에서 식별된 요소 중 하나 이상은 프로세서(들)(202) 중 하나 이상에 의해 실행될 수 있다.
일부 실시형태에서, 사용자 입력/출력(I/O) 서브시스템(208)은 통신 네트워크(250) 및/또는 유선 및/또는 무선 연결을 통해 하나 이상의 원격 디바이스(들)(236)와 같은 하나 이상의 디바이스에 3D 스캐너(200)를 통신 가능하게 결합한다. 일부 실시형태에서, 통신 네트워크(250)는 인터넷이다. 일부 실시형태에서, 사용자 입력/출력(I/O) 서브시스템(208)은 터치 감지 디스플레이와 같은 하나 이상의 통합 또는 주변 디바이스에 3D 스캐너(200)를 통신 가능하게 결합한다.
일부 실시형태에서, 프로젝터(110)는 하나 이상의 레이저를 포함한다. 일부 실시형태에서, 하나 이상의 레이저는 수직 공동 표면 발광 레이저(VCSEL)를 포함한다. 일부 실시형태에서, 프로젝터(110)는 또한 가시광을 생성하는 발광 다이오드(LED)의 어레이를 포함한다. 일부 실시형태에서, 레이저 대신에, 프로젝터(110)는 플래시 전구 또는 일부 다른 광원을 포함한다.
통신 버스(210)는 선택적으로 시스템 구성요소 간의 통신을 상호 연결하고 제어하는 회로부(종종 칩셋이라고 함)를 포함한다.
도 3은 일부 실시형태에 따라 네트워크(250)를 통해 3D 스캐너(200)와 결합된 원격 디바이스(236)의 블록도이다. 원격 디바이스(236)는 일반적으로 메모리(304), 하나 이상의 프로세서(들)(302), 전력 공급원(306), 사용자 입력/출력(I/O) 서브시스템(308) 및 이들 구성요소를 상호 연결하기 위한 통신 버스(310)를 포함한다. 프로세서(들)(302)는 메모리(304)에 저장된 모듈, 프로그램 및/또는 명령어를 실행하여 처리 동작을 수행한다.
일부 실시형태에서, 프로세서(들)(302)는 적어도 하나의 중앙 처리 유닛을 포함한다. 일부 실시형태에서, 프로세서(들)(302)는 적어도 하나의 그래픽 처리 유닛을 포함한다. 일부 실시형태에서, 프로세서(들)(302)는 본 명세서에 기술된 신경망을 실행하기 위한 적어도 하나의 신경 처리 유닛(NPU)을 포함한다. 일부 실시형태에서, 프로세서(들)(302)는 적어도 하나의 전계 프로그래밍 가능 게이트 어레이를 포함한다.
일부 실시형태에서, 메모리(304)는 하나 이상의 프로그램(예를 들어, 명령어 세트) 및/또는 데이터 구조를 저장한다. 일부 실시형태에서, 메모리(304) 또는 메모리(304)의 비일시적 컴퓨터 판독 가능 저장 매체는 하기 프로그램, 모듈 및 데이터 구조, 또는 이들의 서브세트 또는 수퍼세트를 저장한다:
Figure pct00007
다양한 기본 시스템 서비스를 처리하고 하드웨어 종속 작업을 수행하기 위한 절차를 포함하는 운영 시스템(312);
Figure pct00008
하나 이상의 통신 네트워크(들)(250)를 통해 원격 디바이스(236)를 다른 컴퓨터 시스템(예를 들어, 3D 스캐너(200))에 연결하기 위한 네트워크 통신 모듈(들)(318);
Figure pct00009
사용자 입력/출력(I/O) 서브시스템(308)을 통해 사용자로부터 커맨드 및/또는 입력을 수신하고, 사용자 입력/출력(I/O) 서브시스템(308)에 표시 및/또는 디스플레이를 위한 출력을 제공하는 사용자 인터페이스 모듈(320);
Figure pct00010
방법(500)(도 5a 내지 도 5c) 및/또는 방법(700)(도 7)과 관련하여 설명된 동작 중 임의의 동작 또는 모든 동작을 선택적으로 수행하는 것을 포함하여 3D 스캐너(200)로부터 데이터를 처리하기 위한 데이터 처리 모듈(324). 일부 실시형태에서, 데이터 처리 모듈(324)은 (이미지와 투영 패턴 사이의 대응 상태를 결정하기 위한) 신경망 모듈(340), 및 이 신경망 모듈(340)에 의해 결정된 대응 상태를 사용하여 물체의 공간 좌표를 결정하기 위해 삼각 측량 알고리즘을 실행하기 위한 삼각측량 모듈(344)을 포함한다. 일부 실시형태에서, 신경망 모듈(340)은 도 4를 참조하여 아래에서 설명된 신경망(340-a 및 340-b)을 실행하기 위한 명령어를 포함한다;
Figure pct00011
방법(600)(도 6a 내지 도 6b) 또는 거기에 언급된 대안적인 방법과 관련하여 설명된 동작 중 임의의 동작 또는 모든 동작을 수행하는 것을 선택적으로 포함하여, 이미징된 패턴의 이미징된 요소와 투영 패턴의 투영 요소 사이의 대응 상태를 결정하기 위해 신경망을 훈련하기 위한 신경망 훈련 모듈(328);
Figure pct00012
원격 디바이스(236)에 의해 사용 및 생성된 데이터를 저장하는 버퍼(들), RAM, ROM, 및/또는 다른 메모리를 포함하는 저장부(330).
위에서 식별된 모듈(예를 들어, 명령어 세트를 포함하는 데이터 구조 및/또는 프로그램)은 별도의 소프트웨어 프로그램, 절차 또는 모듈로 구현될 필요가 없어서 다양한 실시형태에서 이러한 모듈의 다양한 서브세트를 결합하거나 달리 재배열할 수 있다. 일부 실시형태에서, 메모리(304)는 위에서 식별된 모듈의 서브세트를 저장한다. 또한, 메모리(304)는 위에서 설명되지 않은 추가 모듈을 저장할 수 있다. 일부 실시형태에서, 메모리(304)에 저장된 모듈 또는 메모리(304)의 비일시적 컴퓨터 판독 가능 저장 매체는 아래 설명된 방법에서 각각의 동작을 구현하기 위한 명령어를 제공한다. 일부 실시형태에서, 이러한 모듈의 일부 또는 전부는 모듈 기능의 일부 또는 전부를 포함하는 특수 하드웨어 회로(예를 들어, FPGA)로 구현될 수 있다. 위에서 식별된 요소 중 하나 이상은 프로세서(들)(302) 중 하나 이상에 의해 실행될 수 있다.
일부 실시형태에서, 사용자 입력/출력(I/O) 서브시스템(308)은 통신 네트워크(250) 및/또는 유선 및/또는 무선 연결을 통해 하나 이상의 3D 스캐너(200) 또는 외부 디스플레이와 같은 하나 이상의 디바이스에 원격 디바이스(236)를 통신 가능하게 결합한다. 일부 실시형태에서, 통신 네트워크(250)는 인터넷이다. 일부 실시형태에서, 사용자 입력/출력(I/O) 서브시스템(308)은 터치 감지 디스플레이와 같은 하나 이상의 통합 또는 주변 디바이스에 원격 디바이스(236)를 통신 가능하게 결합한다.
통신 버스(310)는 선택적으로 시스템 구성요소 간의 통신을 상호 연결하고 제어하는 회로부(종종 칩셋이라고 함)를 포함한다.
도 4는 일부 실시형태에 따른 신경망(340-a)의 입력 및 출력을 도시한다. 위에서 언급한 바와 같이, 3D 스캐닝을 위해 구조화된 광 접근 방식의 맥락에서 발생하는 하나의 문제는 물체 표면에 이미징된 요소의 모호성(예를 들어, 이미지의 어느 요소가 슬라이드 상의 어느 요소에 대응하는지 알아야 할 필요성)이다. 일부 실시형태에 따르면, 이 문제는 훈련된 신경망을 사용하여 투영 요소와 물체의 표면에 이미징된 요소 사이의 대응 상태(또는 보다 일반적으로 이미지 픽셀과 투영 패턴 내의 대응하는 좌표 사이의 대응 상태)를 결정함으로써 해결된다. 이를 위해, 이미징된 패턴(132)(도 1c를 참조하여 설명됨)이 신경망(340)에 입력으로서 제공된다(이미징된 패턴(132)은 물체의 표면에 비치는 투영 패턴으로서 물체 표면의 이미지임). 일부 실시형태에서, 신경망(340)은 대응 상태(402)를 출력한다. 일부 실시형태에서, 대응 상태(402)는 이미징된 패턴(132)과 동일한 수의 픽셀을 갖는 "이미지"이다. 예를 들어, 일부 실시형태에서, 신경망(340)에 대한 입력은 투영 패턴이 비치는 동안 물체 표면의 9 메가픽셀 사진이고, 신경망의 출력은 입력 이미지에 일대일 방식으로 대응하는 각각의 픽셀을 갖는 9 메가픽셀 출력 "이미지"이다. 즉, 대응 상태(402)의 "이미지"의 각각의 픽셀은 이미징된 패턴(132)에서 이미징된 것과 투영 패턴 사이의 대응 상태를 나타내는 값이다. 예를 들어, 대응 상태(402)의 값 "4"는 이미징된 패턴(132) 내의 픽셀이 투영 패턴의 값 "4"가 있는 좌표(또는 라인)에 대응함을 나타낸다(투영 패턴의 좌표계 내 값의 범위는 임의적이고 0 내지 1, 0 내지 10의 범위이거나 일부 다른 범위를 가질 수 있음이 주목된다).
일부 실시형태에서, 신경망(340-a)은 추가 입력을 수신한다. 예를 들어, 신경망은 투영 패턴에 대한 정보를 수신한다.
일부 실시형태에서, 신경망(340-a)은 대응 상태에 대해 대략적인 값을 출력하고, 신경망(340-b)은 대응 상태에 대해 정밀한 값을 출력한다. 일부 실시형태에서, 신경망(340-b)은 신경망(340-b)이 물체 표면의 이미지 및 신경망(340-a)의 출력을 입력으로서 수신한다는 것을 제외하고는 신경망(340-a)과 유사한 방식으로 동작한다(예를 들어, 신경망(340-a)과 신경망(340-b)은 캐스케이드로 연결됨). 임의의 배열에서 임의의 수의 신경망을 사용할 수 있다는 것이 주목된다. 예를 들어, 일부 실시형태에서, 3개 또는 4개의 신경망이 사용되며, 일부는 캐스케이드 방식으로 배열되고, 일부는 독립적으로 동작하도록 배열된다.
도 5a 내지 도 5c는 일부 실시형태에 따라 3D 이미징 환경(100)으로부터 3D 재구성을 제공하기 위한 방법(500)의 흐름도를 도시한다. 방법(500)은 프로세서(들) 및 이 프로세서(들)에 의해 실행되도록 구성된 프로그램(들)을 저장하는 메모리를 갖는 컴퓨팅 디바이스에서 수행된다. 일부 실시형태에서, 방법(500)은 3D 스캐너(200)와 통신하는 컴퓨팅 디바이스에서 수행된다. 일부 실시형태에서, 방법(500)의 특정 동작은 3D 스캐너(200)와 구별되는 컴퓨팅 디바이스(예를 들어, 3D 스캐너(200)로부터 수신 및/또는 송신하는 컴퓨터 시스템)에 의해 수행된다. 일부 실시형태에서, 방법(500)의 특정 동작은 신경망(들)(340)을 저장하고 훈련된 신경망(들)(340)이 3D 스캐너(200)에 의해 캡처된 이미지에 기초하여 3D 재구성의 일부로서 사용될 수 있도록 컴퓨팅 디바이스에 의해 수행된다. 방법(500)의 일부 동작은 선택적으로 결합되고/되거나 일부 동작의 순서는 선택적으로 변경된다.
다양한 실시형태에서, 방법(500)은 후술되는 방법(700)의 특징 또는 동작이 기술된 방법(500)과 모순되지 않는 한, 임의의 특징 또는 동작을 포함할 수 있다. 간결함을 위해, 방법(700)과 관련하여 설명된 세부사항 중 일부는 본 명세서에서 반복되지 않는다.
방법(500)은 물체(예를 들어, 도 1a 및 도 1b에 도시된 물체(120))의 이미지를 획득하는 단계(510)를 포함한다. 이미지는 이미징된 패턴(132)의 복수의 이미징된 요소(142)를 포함한다. 이미징된 패턴(132)은 물체(120)의 표면 상에 투영되는 투영 패턴(130)에 대응한다. 투영 패턴(130)은 복수의 투영 요소(140)를 포함한다. 방법(500)은 신경망(예를 들어, 신경망(340-a))을 사용하여 복수의 이미징된 요소(142)와 복수의 투영 요소(140) 간의 대응 상태를 출력하는 단계(520)를 더 포함한다. 일부 실시형태에서, 신경망은 대응 상태를 직접 출력한다(예를 들어, 신경망의 출력층의 적어도 복수의 노드는 입력층의 적어도 복수의 노드와 일대일 대응 상태를 갖는다). 일부 실시형태에서, 신경망은 (예를 들어, 투영 패턴에 대한 대응 상태에 의해 입력 이미지의 각각의 픽셀을 분류하는) 분류 신경망이다.
기존의 신경망은 동일한 것의 다른 경우를 인식하도록 훈련된다는 것이 주목된다. 예를 들어, 신경망은 사람이 쓴 문자의 예를 사용하여 사람이 쓴 문자를 인식하도록 훈련될 수 있다. 이와 달리, 본 명세서에 기술된 실시형태에 따르면, 신경망은 만약 훈련 데이터가 이 물체의 다른 경우를 포함하지 않았더라도 투영 요소와 물체 표면에 이미징된 요소 사이의 대응 상태를 결정하도록 훈련될 수 있음이 밝혀졌다. 예를 들어, 다양한 특징을 가진 물체의 데이터에 대해 신경망을 훈련함으로써, 훈련 데이터가 이 종의 두개골을 포함하지 않았더라도 이전에 발견되지 않은 멸종 종의 고래 두개골을 스캔할 때 신경망을 사용하여 요소 대응 상태를 결정할 수 있다.
물체의 복잡한 기하 형상(예를 들어, 좁은 특징, 날카로운 에지, 깊은 홈 등)은 요소 대응 상태를 결정하는 어려움을 악화시킨다. 여기서, 본 발명자들은 특히 물체에 "날카로운" 특징이 있는 경우 훈련된 신경망을 사용하면 이미지 해상도와 완성도가 향상된다는 사실을 추가로 발견했다.
일부 실시형태에서, 방법(500)은 물체(120)의 이미지의 각각의 픽셀에 대한 값을 신경망(예를 들어, 신경망(304-a))의 입력층의 각자의 노드에 입력하는 단계(522)를 포함한다.
일부 실시형태에서, 물체(120)의 이미지의 각각의 개별 픽셀은 신경망의 출력층의 개별 노드에 대응한다(524). 신경망의 출력층의 각각의 노드에 대한 값은 각각의 픽셀과 투영 패턴(130)의 복수의 투영 요소(140) 간의 대응 상태를 나타낸다(예를 들어, 값은 투영 패턴 상의 좌표를 나타냄).
일부 실시형태에서, 신경망의 출력층은 물체(120)의 이미지와 동일한 크기를 갖는다(526)(예를 들어, 신경망은 도 4를 참조하여 설명된 바와 같이 입력 이미지와 동일한 수의 픽셀을 갖는 "이미지"를 출력함).
일부 실시형태에서, 신경망의 출력층은 이미지의 크기보다 작다(528). 일부 실시형태에서, 신경망의 출력층은 이미지의 크기보다 크다.
일부 실시형태에서, 방법(500)은 투영 패턴(130)에 대한 정보를 신경망의 입력층에 입력하는 단계(530)를 포함한다.
일부 실시형태에서, 물체(120)의 표면 상에 투영되는 투영 패턴(130)의 복수의 투영 요소(140)는 코딩되지 않은 요소(예를 들어, 본 명세서에 설명된 코딩되지 않은 요소가 있는 투영 패턴 중 임의의 것)를 포함한다(532). 일부 실시형태에서, 물체(12)의 표면 상에 투영된 투영 패턴(130)의 복수의 투영 요소(140)는 라인을 포함한다.
일부 실시형태에서, 신경망은 시뮬레이션된 데이터를 사용하여 훈련된다(535). 시뮬레이션된 데이터는 복수의 시뮬레이션된 이미지를 포함하고, 복수의 시뮬레이션된 이미지 각각은 복수의 시뮬레이션된 요소를 포함하는 시뮬레이션된 패턴을 포함한다. 복수의 시뮬레이션된 요소 각각은 각각의 시뮬레이션된 물체의 표면 상에 투영된 복수의 투영 요소의 각각의 투영 요소에 대응한다. 복수의 시뮬레이션된 이미지 각각은 시뮬레이션된 이미지의 복수의 시뮬레이션된 요소와 투영 패턴의 복수의 투영 요소 사이의 대응 상태를 나타내는 대응 상태 데이터를 더 포함한다.
일부 실시형태에서, 복수의 시뮬레이션된 이미지 각각은 각각의 시뮬레이션된 물체에 관한 질감 정보를 포함한다(536).
일부 실시형태에서, 각각의 시뮬레이션된 물체에 대한 질감 정보는 각각의 시뮬레이션된 물체의 자연 질감이 아닌 질감 정보이다(538).
일부 실시형태에서, 각각의 시뮬레이션된 물체에 대한 질감 정보는 투영 패턴의 복수의 투영 요소(140)와 유사한 특징을 포함한다(540).
일부 실시형태에서, 각각의 시뮬레이션된 물체에 대한 질감 정보는 텍스트를 포함한다(542).
일부 실시형태에서, 각각의 시뮬레이션된 물체에 대한 질감 정보는 라인을 포함한다(544).
동작(534 내지 544)은 방법(600)(도 6a 내지 도 6b)과 관련하여 아래에서 보다 상세히 설명된다. 즉, 일부 실시형태에서, 방법(500)에서 사용되는 신경망은 방법(600)을 사용하여 훈련된다.
일부 실시형태에서, 복수의 신경망이 사용된다. 신경망은 캐스케이드로 연결되거나 서로 독립적으로 동작할 수 있다. 캐스케이드 네트워크의 비제한적 예로서, 일부 실시형태에서, 신경망은 제1 신경망(예를 들어, 신경망(340-a))이고, 방법(500)은 제2 신경망(예를 들어, 신경망(340-b))을 사용하여 제1 신경망에 의해 결정된 복수의 이미징 요소(142)와 복수의 투영 요소(140) 사이의 대응 상태로부터의 오프셋(예를 들어, 개선)을 출력하는 단계(550)를 더 포함한다. 따라서, 일부 실시형태에서, 3D 재구성의 해상도는 2개의 신경망, (i) 투영 요소와 물체의 표면 상에 이미징된 요소 사이의 대응 상태를 식별하는 제1 신경망, 및 (2) 식별된 대응 상태에 대한 오프셋을 식별하는 제2 신경망을 사용함으로써 향상된다. 일부 실시형태에서, 제2 신경망은 오프셋을 직접 출력한다(예를 들어, 제2 신경망의 출력층의 적어도 복수의 노드는 입력 이미지의 각각의 픽셀과 일대일 대응 상태를 갖는다). 본 발명자들은 이러한 2단계 접근 방식이 결과 이미지의 해상도에 현저하고 예상치 못한 향상을 가져온다는 것을 발견했다.
도 6a 내지 도 6b는 일부 실시형태에 따라 신경망(들)(340)을 훈련하는 방법(600)의 흐름도를 도시한다. 방법(600)은 프로세서(들) 및 이 프로세서(들)에 의해 실행되도록 구성된 프로그램(들)을 저장하는 메모리를 갖는 컴퓨팅 디바이스에서 수행된다(601). 일부 실시형태에서, 방법(600)은 3D 스캐너(200)와 통신하는 컴퓨팅 디바이스에서 수행된다. 일부 실시형태에서, 방법(600)의 특정 동작은 3D 스캐너(200)와 구별되는 컴퓨팅 디바이스(예를 들어, 3D 스캐너(200)로부터 수신 및/또는 송신하는 컴퓨터 시스템)에 의해 수행된다. 일부 실시형태에서, 방법(600)의 특정 동작은 신경망(들)(340)을 훈련 및 저장하고 훈련된 신경망(들)(340)이 3D 스캐너(200)에 의해 캡처된 이미지에 기초하여 3D 재구성의 일부로서 사용될 수 있도록 컴퓨팅 디바이스에 의해 수행된다. 방법(600)의 일부 동작은 선택적으로 결합되고/되거나 일부 동작의 순서는 선택적으로 변경된다.
일부 실시형태에 따르면, 방법(600)은 프로젝터, 카메라 및 물체 간의 공간 관계가 각각의 훈련 이미지에 대해 알려져 있는 시뮬레이션된("합성"이라고도 함) 데이터를 사용한다. 투영 요소와 물체 표면에 이미징된 요소 간의 대응 상태를 결정하기 위해 신경망을 훈련하는 데 있어 어려운 점 중 하나는 훈련을 위한 "실측 정보"를 얻기 어렵다는 것이다. 물체 표면에 투영되는 요소는 종종 수십만 개가 존재한다. 라인 대응 상태를 결정하기 위한 기존의 알고리즘은 본 발명의 신경망이 해결하는 바로 그 문제를 겪는다. 그리하여, 기존 알고리즘은 이러한 신경망을 훈련하기 위한 실측 정보를 제공하는 데 사용될 수 없다. 또한 이미지 분석, 문자 인식 및 유사한 응용과 달리 사람 태깅은 3D 스캐닝/재구성 응용에서 실용적이지 않으며, 기존 알고리즘만큼 오류가 발생하기 쉽다. 이러한 문제는 시뮬레이션된 데이터를 사용하여 신경망을 훈련함으로써 해결되며, 여기서 이미지를 취득하는 정확한 대응 상태 및 기하 형상은 알려져 있다. 이러한 방식으로, 훈련 데이터는 수많은 다른 물체 형상 기하 형상 및 물체에 대한 카메라와 프로젝터의 기하 형상에 대해 생성될 수 있다.
방법(600)은 시뮬레이션된 데이터를 생성하는 단계(610)를 포함한다. 시뮬레이션된 데이터는 i) 복수의 시뮬레이션된 이미지(예를 들어, 미국 가출원 63/070,066의 부록 A의 도 A1 내지 도 A2에 도시된 바와 같음), ii) 물체 데이터(예를 들어, 미국 가출원 63/070,066의 부록 A의 도 A3 내지 도 A6에 도시된 바와 같음), 및 iii) 대응 상태 데이터를 포함한다. 복수의 시뮬레이션된 이미지는 시뮬레이션된 물체의 표면에 투영되는 알려진 투영 패턴의 이미지이다. 투영 패턴은 복수의 요소를 포함하고, 각각의 이미지는 시뮬레이션된 패턴의 이미징된 요소를 포함한다. 이미징된 요소 각각은 알려진 투영 패턴의 복수의 요소 중 각각의 요소에 대응한다. 물체 데이터는 각각의 시뮬레이션된 물체의 형상을 나타내는 데이터를 포함하고, 대응 상태 데이터는 시뮬레이션된 이미지의 이미징된 요소와 알려진 투영 패턴의 복수의 요소의 각각의 요소 사이의 대응 상태를 나타내는 데이터를 포함한다. 방법(600)은 시뮬레이션된 데이터를 사용하여 알려진 투영 패턴의 복수의 요소의 각각의 요소와 실제 물체 및/또는 등의 표면 상에 투영된 알려진 투영 패턴의 이미징된 요소(예를 들어, 이미징된 패턴(132)의 이미징된 요소(142)) 사이의 대응 상태를 결정하기 위해 신경망을 훈련하는 단계(620)를 더 포함한다. 방법(600)은 이후 이미지를 재구성하는 데 사용하기 위해 훈련된 신경망(340)을 저장하는 단계(630)를 더 포함한다(예를 들어, 도 5a 내지 도 5c의 방법(500)에서 사용).
일부 실시형태에서, 시뮬레이션된 데이터는 시뮬레이션된 물체에 관한 질감(예를 들어, 색상) 정보를 더 포함한다(611). 일부 실시형태에서, 복수의 시뮬레이션된 이미지는 각각의 시뮬레이션된 물체에 관한 질감 정보를 더 포함한다. 투영 요소와 물체 표면에 이미징된 요소 간의 대응 상태를 결정하기 위해 신경망을 훈련하는 데 있어 어려운 점 중 하나는 (예를 들어, 물체 자체의 색상이 변하거나, 조명, 그림자 등으로 인해) 물체 자체에 색상이 있고 물체의 이미지에 따라 색상이 변할 가능성이 있다는 것이다. 이는 물체 자체의 질감과 패턴을 구별하는 것을 어렵게 한다. 이 문제는 다양한 질감과 반사성을 통해 시뮬레이션된 훈련 데이터를 사용하여 해결된다(실제로 훈련 단계 동안 문제를 더 어렵게 만들어 신경망은 일단 훈련되면 보다 효과적임). 특히, 본 발명자들은 텍스트, 패턴 또는 다른 갑작스러운(고 대비) 질감 특징을 포함하도록 시뮬레이션된 물체에 질감을 부여하면 (예를 들어, 투영된 패턴과 마찬가지로 텍스트에 밝음과 어두움 사이의 높은 대비 차이가 포함되기 때문에) 신경망을 훈련하여 물체 질감과 투영 요소 간을 구별하는 데 특히 효과적임을 발견했다.
일부 실시형태에서, 각각의 시뮬레이션된 물체에 대한 질감 정보는 각각의 시뮬레이션된 물체의 자연 질감이 아닌 질감 정보이다(612).
일부 실시형태에서, 각각의 시뮬레이션된 물체에 대한 질감 정보는 알려진 투영 패턴의 복수의 요소와 유사한 특징을 포함한다(613).
일부 실시형태에서, 각각의 시뮬레이션된 물체에 대한 질감 정보는 텍스트를 포함한다(614).
일부 실시형태에서, 각각의 시뮬레이션된 물체에 대한 질감 정보는 라인을 포함한다(615).
일부 실시형태에서, 각각의 시뮬레이션된 물체는 하나 이상의 날카로운 특징을 포함한다(616).
일부 실시형태에서, 신경망을 훈련하는 대안적인 방법이 제공되고, 대안적인 방법은 시뮬레이션된 데이터를 생성하는 단계를 포함하고, 시뮬레이션된 데이터는, 각각의 시뮬레이션된 물체의 표면에 투영된 투영 패턴의 복수의 시뮬레이션된 이미지; 각각의 시뮬레이션된 물체의 형상을 나타내는 데이터; 및 시뮬레이션된 이미지의 각각의 픽셀과 투영 패턴 상의 좌표 간의 대응 상태를 나타내는 데이터를 포함한다. 대안적인 방법은 시뮬레이션된 데이터를 사용하여 이미지와 투영 패턴 간의 대응 상태를 결정하기 위해 신경망을 훈련시키는 단계를 더 포함한다. 대안적인 방법은 이후 이미지를 재구성하는 데 사용하기 위해 훈련된 신경망을 저장하는 단계를 더 포함한다. 일부 실시형태에서, 신경망을 훈련하는 대안적인 방법은 전술한 방법(600)의 특징 또는 동작이 대안적인 방법과 모순되지 않는 한, 임의의 특징 또는 동작을 공유할 수 있다는 것이 주목된다.
도 7은 일부 실시형태에 따라 3D 이미징 환경(100)으로부터 3D 재구성을 제공하기 위한 방법(700)의 흐름도를 도시한다. 방법(700)은 프로세서(들) 및 이 프로세서(들)에 의해 실행되도록 구성된 프로그램(들)을 저장하는 메모리를 갖는 컴퓨팅 디바이스에서 수행된다. 일부 실시형태에서, 방법(700)은 3D 스캐너(200)와 통신하는 컴퓨팅 디바이스에서 수행된다. 일부 실시형태에서, 방법(700)의 특정 동작은 3D 스캐너(200)와 구별되는 컴퓨팅 디바이스(예를 들어, 3D 스캐너(200)로부터 수신 및/또는 송신하는 컴퓨터 시스템)에 의해 수행된다. 일부 실시형태에서, 방법(700)의 특정 동작은 신경망(들)(340)을 저장하고 훈련된 신경망(들)(340)이 3D 스캐너(200)에 의해 캡처된 이미지에 기초하여 3D 재구성의 일부로서 사용될 수 있도록 컴퓨팅 디바이스에 의해 수행된다. 방법(700)의 일부 동작은 선택적으로 결합되고/되거나 일부 동작의 순서는 선택적으로 변경된다.
다양한 실시형태에서, 방법(700)은 전술한 방법(500)의 특징 또는 동작이 기술된 방법(700)과 모순되지 않는 한, 임의의 특징 또는 동작을 포함할 수 있다. 간결함을 위해, 방법(500)과 관련하여 설명된 세부사항 중 일부는 본 명세에서 반복되지 않는다.
방법(700)은 물체의 표면에 투영 패턴을 비추는 동안 물체의 이미지를 획득하는 단계(702)를 포함한다. 일부 실시형태에서, 투영 패턴은 광을 슬라이드로 통과시켜 생성된다. 일부 실시형태에서, 좌표계는 투영 패턴과 연관된다. 좌표계는 슬라이드 상의 투영 패턴의 각 위치의 위치를 설명한다.
방법(700)은 신경망을 사용하여 이미지의 각각의 픽셀과 (예를 들어, 좌표계와 관련하여) 투영 패턴의 좌표 간의 대응 상태를 출력하는 단계(704)를 더 포함한다. 이렇게 하기 위해, 일부 실시형태에서, 이미지는 신경망(예를 들어, 신경망(340-a))의 입력층에 제공된다. 일부 실시형태에서, 신경망의 출력층은 투영 패턴 내 각각의 픽셀의 대응 좌표(들)를 직접 생성한다. 예를 들어, 신경망은 입력 이미지와 동일한 수의 픽셀을 갖는 출력 이미지를 출력하고, 여기서 출력 이미지의 각 픽셀은 입력 이미지의 픽셀과 일대일 대응 상태를 가지며, 투영 패턴 상의 이 입력 픽셀의 좌표(들)에 대한 값을 보유한다. 이러한 방식으로, 출력 이미지는 입력 이미지와 공간적으로 상관된다.
일부 실시형태에서, 신경망은 전술한 방법(600) 또는 대안적인 방법을 사용하여 훈련된다.
일부 실시형태에서 신경망은 입력 이미지의 각 픽셀에 대해 두 개의 좌표(예를 들어, 슬라이드 패턴의 x 및 y 좌표)를 출력한다는 것이 주목된다. 대안적으로, 일부 실시형태에서, 신경망은 입력 이미지의 각 픽셀에 대한 단일 좌표만을 출력한다. 이러한 실시형태에서, 다른 좌표는 알려져 있거나, 스캐너(200)의 에피폴라 기하학(epi-polar geometry)으로부터 추론될 수 있다.
일부 실시형태에서, 복수의 신경망이 입력 이미지의 각 픽셀의 투영 패턴 좌표를 결정하는 데 사용될 수 있다. 예를 들어, 일부 실시형태에서, 제1 신경망은 대략적인 좌표를 결정하는 반면, 제2 신경망은 정밀 좌표(예를 들어, 제1 신경망 좌표의 개선)를 결정한다. 다양한 실시형태에서, 제1 신경망과 제2 신경망은 (예를 들어, 제1 신경망의 출력이 제2 신경망에 입력되도록) 캐스케이드 방식으로 배열될 수 있고, 또는 2개의 신경망이 출력이 결합된 상태로 독립적으로 동작할 수 있다. 다양한 실시형태에서, 2개 초과의 신경망(예를 들어, 4개의 신경망)이 사용될 수 있다.
일부 실시형태에서, 입력 이미지는 다중 채널 이미지이다. 비제한적인 예로서, 입력 이미지는 240×320 픽셀을 포함할 수 있지만 각 픽셀에 대해 하나 초과의 값(예를 들어, RGB 이미지의 경우 3개의 값)을 저장할 수 있다. 일부 실시형태에서, 신경망에 추가 정보를 입력하기 위해 추가 채널이 제공된다. 비제한적인 예를 계속하면 입력 이미지의 크기는 240×320×n일 수 있고, 여기서 n은 채널의 수이다. 예를 들어, 일부 실시형태에서, 투영 패턴에 대한 정보는 각각의 이미지에 대한 추가 "채널"로서 신경망에 입력된다. 일부 실시형태에서, 하나 이상의 채널은 물체의 표면에 투영 패턴을 비추지 않는 동안 획득된 정보를 포함한다. 예를 들어, 물체의 표면에 비친 투영 패턴의 그레이스케일 이미지는 그레이스케일 이미지의 시간적 근접성(예를 들어, 200 밀리초 이내)에서 획득된 RGB 이미지와 적층될 수 있고, 여기서 RGB 이미지는 투영 패턴이 물체의 표면에 비치지 않고 획득되었다(일부 실시형태에서, 물체의 표면에 투영 패턴을 스트로보스코픽으로 비춘다는 것이 상기된다).
일부 실시형태에서, 출력 이미지는 다중 채널 이미지이다. 일부 실시형태에서, 다중 채널 출력 이미지의 하나의 채널은 전술한 바와 같이 대응 상태를 제공한다. 위에서 설명한 비제한적인 예를 계속하면 출력 이미지의 각 채널은 240×320 픽셀을 포함할 수 있다. 그러면 출력의 크기는 240×320×m일 수 있고, 여기서 m은 채널의 수이다. 채널 중 하나는 대응 상태에 대한 값(예를 들어, 투영 패턴 상의 하나 이상의 좌표에 대한 값)을 저장한다. 일부 실시형태에서, 출력 이미지의 다른 채널은 각 픽셀에 대한 각 대응 상태 값에 대한 신뢰 값을 저장한다. 각 픽셀에 대한 대응 상태 값에 대한 신뢰 값은 (예를 들어, 데이터에 부여되는 가중치를 다르게 하거나, 또는 신뢰도 값이 너무 낮은 데이터를 폐기함으로써) 재구성하는 데 사용될 수 있다. 일부 실시형태에서, 출력 이미지는 물체의 곡률을 설명하는 채널, 물체의 질감을 설명하는 채널, 또는 입력 이미지와 공간적으로 상관된 임의의 다른 정보를 더 포함할 수 있다.
당업자라면 입력 및 출력 이미지가 임의의 크기일 수 있음을 이해할 수 있을 것이다. 예를 들어, 위의 비제한적인 예에서 설명된 240×320 픽셀 이미지가 아니라 일부 실시형태에서 9 메가픽셀 이미지(또는 임의의 다른 크기의 이미지)가 사용될 수 있다.
기존의 신경망은 동일한 것의 다른 경우를 인식하도록 훈련된다는 것이 주목된다. 예를 들어, 신경망은 사람이 쓴 문자의 예를 사용하여 사람이 쓴 문자를 인식하도록 훈련될 수 있다. 이와 달리, 본 명세서에 기술된 실시형태에 따르면, 훈련 데이터가 이 물체의 다른 경우를 포함하지 않았더라도 신경망이 이미지의 각각의 픽셀과 투영 패턴의 좌표 간의 대응 상태를 결정하도록 훈련될 수 있음이 밝혀졌다. 예를 들어, 다양한 특징을 가진 물체의 데이터에 대해 신경망을 훈련함으로써, 만약 훈련 데이터가 이 종의 두개골을 포함하지 않았더라도 이전에 발견되지 않은 멸종 종의 고래 두개골을 스캔할 때 신경망을 사용하여 대응 상태를 결정할 수 있다.
물체의 복잡한 기하 형상(예를 들어, 좁은 특징, 날카로운 에지, 깊은 홈 등)은 대응 상태를 결정하는 어려움을 악화시킨다. 여기서, 본 발명자들은 특히 물체에 "날카로운" 특징이 있는 경우 훈련된 신경망을 사용하면 이미지 해상도와 완성도가 향상된다는 사실을 추가로 발견했다. 종래의 방법을 사용하고 본 발명에 따라 신경망을 사용하여 3D 재구성된 이미지의 예는 미국 가출원 63/070,066의 부록 A의 도 A7 내지 A18에 제공되어 있다(도 A7 내지 도 A9는 단일 이미지 재구성인 반면, 도 A10 내지 도 A18은 다중 이미지 재구성임이 주목된다). 이들 재구성된 이미지는 이미지의 더 나은 해상도 및 완성도를 포함하여 본 발명에 따라 재구성된 상당히 더 나은 품질의 이미지를 나타낸다.
방법(700)은 이미지의 각각의 픽셀과 투영 패턴의 좌표 사이의 대응 상태를 사용하여 (예를 들어, 삼각 측량 알고리즘을 사용하여) 물체 표면의 형상을 재구성하는 단계(706)를 더 포함한다.
도 5a 내지 도 5b 및 도 6a 내지 도 6b의 동작을 설명한 특정 순서는 단지 일례일 뿐, 설명된 순서는 동작이 수행될 수 있는 유일한 순서임을 나타내려고 의도된 것이 아닌 것으로 이해된다. 당업자라면 본 명세서에 기술된 동작을 재정렬하는 다양한 방식을 인식할 수 있을 것이다.
전술한 설명은 설명을 위해 특정 실시형태를 참조하여 설명되었다. 그러나, 위의 예시적인 논의는 본 발명을 개시된 정확한 형태로 제한하거나 모든 실시형태를 제시하려고 의도된 것이 아니다. 위의 내용의 관점에서 많은 수정 및 변형이 가능하다. 실시형태는 본 발명의 원리 및 그 실제 적용을 가장 잘 설명하기 위해 선택되고 설명되었으며, 이에 의해 당업자라면 고려되는 특정 용도에 적합한 다양한 수정과 함께 본 발명 및 다양한 설명된 실시형태를 가장 잘 사용할 수 있을 것이다.
또한, 제1, 제2 등의 용어가 일부 경우에 다양한 요소를 설명하기 위해 본 명세서에 사용되지만, 이러한 요소는 이러한 용어에 의해 제한되지 않아야 하는 것으로 이해된다. 이들 용어는 하나의 요소를 다른 요소와 구별하기 위해서만 사용된다. 예를 들어, 다양한 기술된 실시형태의 범위를 벗어나지 않고 제1 신경망은 제2 신경망이라고 불릴 수 있고, 유사하게, 제2 신경망은 제1 신경망으로 불릴 수 있다. 제1 신경망과 제2 신경망은 둘 다 신경망이지만, 문맥에서 달리 명시되지 않는 한, 동일한 신경망이 아니다.
본 명세서에서 설명된 다양한 실시형태의 상세한 설명에 사용된 용어는 단지 특정 실시형태를 설명하기 위한 것일 뿐, 본 발명을 제한하려고 의도된 것이 아니다. 다양한 설명된 실시형태의 상세한 설명 및 첨부된 청구범위에서 사용된 단수형 요소와 "상기" 요소는, 문맥상 달리 명시되지 않는 한, 복수형을 포함하는 것으로 의도된다. 또한 본 명세서에 사용된 "및/또는"이라는 용어는 관련된 나열된 항목 중 하나 이상의 항목의 임의의 및 모든 가능한 조합을 의미하고 포함하는 것으로 이해된다. 나아가 "구비하고", "구비하는", "포함하고" 및/또는 "포함하는"이라는 용어는 본 명세서에서 사용될 때 언급된 특징, 정수, 단계, 동작, 요소 및/또는 구성요소의 존재를 제시하지만, 하나 이상의 다른 특징, 정수, 단계, 동작, 요소, 구성요소 및/또는 이들의 그룹의 존재 또는 추가를 배제하지 않는 것으로 이해된다.
본 명세서에서 사용된 "만약"이라는 용어는 선택적으로 문맥에 따라 "때" 또는 "시" 또는 "결정에 대한 응답으로" 또는 "검출에 대한 응답으로"를 의미하는 것으로 해석된다. 유사하게, "결정된 경우" 또는 "[언급된 조건 또는 이벤트]가 검출된 경우"라는 어구는 선택적으로 "결정 시" 또는 "결정에 대한 응답으로" 또는 "[언급된 조건 또는 이벤트] 검출 시" 또는 문맥에 따라, "[언급된 조건 또는 이벤트] 검출에 대한 응답으로"를 의미하는 것으로 해석된다.

Claims (32)

  1. 다음을 포함하는 방법:
    물체의 이미지를 획득하는 단계 - 상기 이미지는 이미징된 패턴의 복수의 이미징된 요소를 포함하고,
    상기 이미징된 패턴은 상기 물체의 표면으로 투영되는 투영 패턴에 대응하고;
    상기 투영 패턴은 복수의 투영 요소를 포함함;
    신경망을 사용하여 상기 복수의 이미징된 요소와 상기 복수의 투영 요소 사이의 대응 상태(correspondence)를 출력하는 단계; 및
    상기 복수의 이미징된 요소와 상기 복수의 투영 요소 사이의 대응 상태를 사용하여 상기 물체 표면의 형상을 재구성하는 단계.
  2. 제1항에 있어서, 상기 신경망은 제1 신경망이고;
    상기 방법은,
    제2 신경망을 사용하여 상기 제1 신경망에 의해 결정된 상기 복수의 이미징된 요소와 상기 복수의 투영 요소 사이의 대응 상태로부터 오프셋을 출력하는 단계
    를 더 포함하는, 방법.
  3. 제1항에 있어서, 상기 신경망 사용하여 상기 복수의 이미징된 요소와 상기 복수의 투영 요소 사이의 대응 상태를 출력하는 것은 상기 물체의 이미지의 각각의 픽셀에 대한 값을 상기 신경망의 입력층의 각각의 노드에 입력하는 것을 포함하는, 방법.
  4. 제1항에 있어서,
    상기 물체의 이미지의 각각의 개별 픽셀은 상기 신경망의 출력층의 개별 노드에 대응하고;
    상기 신경망의 출력층의 각각의 노드에 대한 값은 각각의 픽셀과 상기 투영 패턴의 복수의 투영 요소 사이의 대응 상태를 나타내는, 방법.
  5. 제4항에 있어서, 상기 신경망의 출력층은 상기 물체의 이미지와 동일한 크기를 갖는, 방법.
  6. 제5항에 있어서, 상기 신경망의 출력층은 상기 이미지의 크기보다 작은, 방법.
  7. 제6항에 있어서, 상기 신경망을 사용하여 상기 복수의 이미징된 요소와 상기 복수의 투영 요소 사이의 대응 상태를 출력하는 것은 상기 투영 패턴에 대한 정보를 상기 신경망의 입력층에 입력하는 것을 포함하는, 방법.
  8. 제1항에 있어서, 상기 물체의 표면에 투영되는 상기 투영 패턴의 복수의 투영 요소는 코딩되지 않은 요소를 포함하는, 방법.
  9. 제8항에 있어서, 상기 물체의 표면에 투영되는 상기 투영 패턴의 복수의 투영 요소는 라인을 포함하는, 방법.
  10. 제1항에 있어서,
    상기 신경망은 시뮬레이션된 데이터를 사용하여 훈련되고, 상기 시뮬레이션된 데이터는 복수의 시뮬레이션된 이미지를 포함하고, 상기 복수의 시뮬레이션된 이미지 각각은,
    복수의 시뮬레이션된 요소를 포함하는 시뮬레이션된 이미징된 패턴으로서, 상기 복수의 시뮬레이션된 요소 각각은 각각의 시뮬레이션된 물체의 표면 상에 투영된 상기 복수의 투영 요소의 각각의 투영 요소에 대응하는, 상기 시뮬레이션된 이미징된 패턴; 및
    상기 시뮬레이션된 이미징된 패턴의 복수의 시뮬레이션된 요소와 상기 투영 패턴의 복수의 투영 요소 간의 대응 상태를 나타내는 데이터
    를 포함하는, 방법.
  11. 제10항에 있어서, 상기 복수의 시뮬레이션된 이미지 각각에 대해 상기 각각의 시뮬레이션된 물체는 질감 정보를 포함하는, 방법.
  12. 제11항에 있어서, 상기 각각의 시뮬레이션된 물체에 대한 질감 정보는 상기 각각의 시뮬레이션된 물체의 자연 질감이 아닌 질감 정보인, 방법.
  13. 제12항에 있어서, 상기 각각의 시뮬레이션된 물체에 대한 질감 정보는 상기 투영 패턴의 복수의 투영 요소와 유사한 특징을 포함하는, 방법.
  14. 제11항에 있어서, 상기 각각의 시뮬레이션된 물체에 대한 질감 정보는 텍스트를 포함하는, 방법.
  15. 제11항에 있어서, 상기 각각의 시뮬레이션된 물체에 대한 질감 정보는 라인을 포함하는, 방법.
  16. 컴퓨터 시스템으로서, 하나 이상의 프로세서 및 제1항 내지 제15항 중 어느 한 항의 방법을 수행하기 위한 명령어를 저장하는 메모리를 포함하는, 컴퓨터 시스템.
  17. 명령어를 저장하는 비일시적 컴퓨터 판독 가능 저장 매체로서, 상기 명령어는, 컴퓨터 시스템에 의해 실행될 때, 상기 컴퓨터 시스템으로 하여금 제1항 내지 제15항 중 어느 한 항의 방법을 수행하게 하는, 비일시적 컴퓨터 판독 가능 저장 매체.
  18. 방법으로서,
    하나 이상의 프로세서 및 상기 하나 이상의 프로세서에 의해 실행되도록 구성된 하나 이상의 프로그램을 저장하는 메모리를 갖는 컴퓨팅 디바이스에서,
    물체의 표면에 투영 패턴을 비추는 동안 상기 물체의 이미지를 획득하는 단계;
    신경망을 사용하여 상기 이미지의 각각의 픽셀과 상기 투영 패턴의 좌표 사이의 대응 상태를 출력하는 단계; 및
    상기 이미지의 각각의 픽셀과 상기 투영 패턴의 좌표 간의 대응 상태를 사용하여 물체 표면의 형상을 재구성하는 단계
    를 포함하는, 방법.
  19. 컴퓨터 시스템으로서, 하나 이상의 프로세서 및 제18항의 방법을 수행하기 위한 명령어를 저장하는 메모리를 포함하는, 컴퓨터 시스템.
  20. 명령어를 저장하는 비일시적 컴퓨터 판독 가능 저장 매체로서, 상기 명령어는, 컴퓨터 시스템에 의해 실행될 때, 상기 컴퓨터 시스템으로 하여금 제18항의 방법을 수행하게 하는, 비일시적 컴퓨터 판독 가능 저장 매체.
  21. 방법으로서,
    하나 이상의 프로세서 및 상기 하나 이상의 프로세서에 의해 실행되도록 구성된 하나 이상의 프로그램을 저장하는 메모리를 갖는 컴퓨팅 디바이스에서,
    시뮬레이션된 데이터를 생성하는 단계로서,
    각각의 시뮬레이션된 물체의 표면 상에 투영된 투영 패턴의 복수의 시뮬레이션된 이미지로서,
    상기 투영 패턴은 복수의 투영 요소를 포함하고, 각각의 시뮬레이션된 이미지는 복수의 시뮬레이션된 요소를 포함하는 시뮬레이션된 패턴을 포함하고, 상기 복수의 시뮬레이션된 요소는 상기 투영 패턴의 각각의 투영 요소에 대응하는, 상기 복수의 시뮬레이션된 이미지;
    각각의 시뮬레이션된 물체의 형상을 나타내는 데이터; 및
    상기 시뮬레이션된 요소와 각각의 투영 요소 사이의 대응 상태를 나타내는 데이터
    를 포함하는, 상기 시뮬레이션된 데이터를 생성하는 단계;
    상기 시뮬레이션된 데이터를 사용하여 상기 신경망을 훈련하여 상기 투영 패턴의 복수의 투영 요소와 상기 시뮬레이션된 이미지의 복수의 시뮬레이션된 요소 사이의 대응 상태를 결정하는 단계; 및
    이후 이미지를 재구성하는 데 사용하기 위해 훈련된 신경망을 저장하는 단계
    를 포함하는, 방법.
  22. 제21항에 있어서, 상기 복수의 시뮬레이션된 이미지 각각은 각각의 시뮬레이션된 물체에 대한 질감 정보를 더 포함하는, 방법.
  23. 제22항에 있어서, 상기 각각의 시뮬레이션된 물체에 대한 질감 정보는 상기 각각의 시뮬레이션된 물체의 자연 질감이 아닌 질감 정보인, 방법.
  24. 제22항에 있어서, 상기 각각의 시뮬레이션된 물체에 대한 질감 정보는 상기 투영 패턴의 복수의 투영 요소와 유사한 특징을 포함하는, 방법.
  25. 제22항에 있어서, 상기 각각의 시뮬레이션된 물체에 대한 질감 정보는 텍스트를 포함하는, 방법.
  26. 제22항에 있어서, 상기 각각의 시뮬레이션된 물체에 대한 질감 정보는 라인을 포함하는, 방법.
  27. 제21항에 있어서, 상기 각각의 시뮬레이션된 물체는 하나 이상의 날카로운 특징을 포함하는, 방법.
  28. 컴퓨터 시스템으로서, 하나 이상의 프로세서 및 제21항 내지 제27항 중 어느 한 항의 방법을 수행하기 위한 명령어를 저장하는 메모리를 포함하는, 컴퓨터 시스템.
  29. 명령어를 저장하는 비일시적 컴퓨터 판독 가능 저장 매체로서, 상기 명령어는, 컴퓨터 시스템에 의해 실행될 때, 상기 컴퓨터 시스템으로 하여금 제21항 내지 제27항 중 어느 한 항의 방법을 수행하게 하는, 비일시적 컴퓨터 판독 가능 저장 매체.
  30. 방법으로서,
    하나 이상의 프로세서 및 상기 하나 이상의 프로세서에 의해 실행되도록 구성된 하나 이상의 프로그램을 저장하는 메모리를 갖는 컴퓨팅 디바이스에서,
    시뮬레이션된 데이터를 생성하는 단계로서,
    각각의 시뮬레이션된 물체의 표면 상에 투영된 투영 패턴의 복수의 시뮬레이션된 이미지로서,
    상기 각각의 시뮬레이션된 물체의 형상을 나타내는 데이터, 및
    상기 시뮬레이션된 이미지의 각각의 픽셀과 상기 투영 패턴 상의 좌표 사이의 대응 상태를 나타내는 데이터를 포함하는, 상기 시뮬레이션된 데이터를 생성하는 단계;
    상기 시뮬레이션된 데이터를 사용하여 이미지와 투영 패턴 간의 대응 상태를 결정하기 위해 신경망을 훈련시키는 단계; 및
    이후 이미지를 재구성하는 데 사용하기 위해 훈련된 신경망을 저장하는 단계
    를 포함하는, 방법.
  31. 컴퓨터 시스템으로서, 하나 이상의 프로세서 및 제30항의 방법을 수행하기 위한 명령어를 저장하는 메모리를 포함하는, 컴퓨터 시스템.
  32. 명령어를 저장하는 비일시적 컴퓨터 판독 가능 저장 매체로서, 상기 명령어는, 컴퓨터 시스템에 의해 실행될 때, 상기 컴퓨터 시스템으로 하여금 제30항의 방법을 수행하게 하는, 비일시적 컴퓨터 판독 가능 저장 매체.
KR1020237009628A 2020-08-25 2021-08-13 신경망을 이용하여 3d 물체를 재구성하는 시스템 및 방법 KR20230098782A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202063070066P 2020-08-25 2020-08-25
US63/070,066 2020-08-25
PCT/IB2021/000555 WO2022043746A1 (en) 2020-08-25 2021-08-13 Systems and methods of 3d object reconstruction using a neural network

Publications (1)

Publication Number Publication Date
KR20230098782A true KR20230098782A (ko) 2023-07-04

Family

ID=77801744

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237009628A KR20230098782A (ko) 2020-08-25 2021-08-13 신경망을 이용하여 3d 물체를 재구성하는 시스템 및 방법

Country Status (8)

Country Link
US (1) US20230184542A1 (ko)
EP (1) EP4204760A1 (ko)
JP (1) JP2023538580A (ko)
KR (1) KR20230098782A (ko)
CN (1) CN115885315A (ko)
AU (1) AU2021331691A1 (ko)
MX (1) MX2023001889A (ko)
WO (1) WO2022043746A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114363600B (zh) * 2022-03-15 2022-06-21 视田科技(天津)有限公司 一种基于结构光扫描的远程快速3d投影方法及系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3575742B1 (en) * 2018-05-29 2022-01-26 Global Scanning Denmark A/S A 3d object scanning using structured light
CN111043988B (zh) * 2019-12-10 2021-04-23 东南大学 一种基于图形学和深度学习的单张条纹投影测量方法
CN111523618A (zh) * 2020-06-18 2020-08-11 南京理工大学智能计算成像研究院有限公司 一种基于深度学习的相位展开方法

Also Published As

Publication number Publication date
CN115885315A (zh) 2023-03-31
JP2023538580A (ja) 2023-09-08
EP4204760A1 (en) 2023-07-05
AU2021331691A1 (en) 2023-05-18
WO2022043746A1 (en) 2022-03-03
AU2021331691A9 (en) 2024-02-08
US20230184542A1 (en) 2023-06-15
MX2023001889A (es) 2023-03-10

Similar Documents

Publication Publication Date Title
US10706571B2 (en) Imaging device, image processing device, storage medium, and imaging system
US10133171B2 (en) Augmenting physical appearance using illumination
Fechteler et al. Adaptive colour classification for structured light systems
US7986321B2 (en) System and method for generating structured light for 3-dimensional image rendering
RU2767590C2 (ru) Трехмерный сканер с обратной связью по сбору данных
US11972618B2 (en) System and method for identifying items
KR100681320B1 (ko) 헬름홀츠 교환조건으로부터 유도되는 편미분 방정식의레벨셋 풀이 방법을 이용한 물체의 3차원 형상 모델링 방법
US10973581B2 (en) Systems and methods for obtaining a structured light reconstruction of a 3D surface
EP3382645B1 (en) Method for generation of a 3d model based on structure from motion and photometric stereo of 2d sparse images
CN107592449B (zh) 三维模型建立方法、装置和移动终端
US20210065420A1 (en) Automatically Generating an Animatable Object from Various Types of User Input
US20200057778A1 (en) Depth image pose search with a bootstrapped-created database
CN110889426A (zh) 三维表达体生成系统
CN113785331A (zh) 点云数据处理装置、点云数据处理方法以及程序
US20230184542A1 (en) Systems and Methods of 3D Object Reconstruction Using a Neural Network
Ruchay et al. Accuracy analysis of 3D object reconstruction using RGB-D sensor
KR102291162B1 (ko) 인공 지능 학습용 가상 데이터 생성 장치 및 방법
CN111742352B (zh) 对三维对象进行建模的方法和电子设备
CN109690241B (zh) 三维测定装置和三维测定方法
KR20170047780A (ko) 적응적 윈도우 마스크를 이용하는 로우 코스트 계산장치 및 그 방법
EP3921597A1 (en) Generation of texture models using a moveable scanner
Jadhav et al. Design and development for generation of real object virtual 3D model using laser scanning technology
Garbat et al. Structured light camera calibration
JP7298687B2 (ja) 物体認識装置及び物体認識方法
CN116601455A (zh) 具有具备重叠视野的传感器的三维扫描仪