KR20200070287A - 객체 인식 방법 - Google Patents

객체 인식 방법 Download PDF

Info

Publication number
KR20200070287A
KR20200070287A KR1020207012839A KR20207012839A KR20200070287A KR 20200070287 A KR20200070287 A KR 20200070287A KR 1020207012839 A KR1020207012839 A KR 1020207012839A KR 20207012839 A KR20207012839 A KR 20207012839A KR 20200070287 A KR20200070287 A KR 20200070287A
Authority
KR
South Korea
Prior art keywords
point cloud
database
reconstruction
pictures
points
Prior art date
Application number
KR1020207012839A
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 KR20200070287A publication Critical patent/KR20200070287A/ko

Links

Images

Classifications

    • G06K9/00208
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06K9/4671
    • G06K9/6211
    • 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/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • 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
    • G06V10/46Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
    • G06V10/462Salient features, e.g. scale invariant feature transforms [SIFT]
    • 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/757Matching configurations of points or features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects
    • G06V20/647Three-dimensional objects by matching two-dimensional images to three-dimensional objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • 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/20072Graph-based image processing
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/56Particle system, point based geometry or rendering

Landscapes

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

Abstract

본 발명은 3D 포인트 클라우드의 재구성 방법을 이용하는 식별될 객체의 컴퓨터로 구현되는 객체 인식 방법을 제안한다. 방법은, 모바일 장치에 의해, 객체의 복수의 사진을 획득하는 단계와, 획득된 사진을 클라우드 서버에 전송하는 단계와, 클라우드 서버에 의해, 객체의 3D 포인트 클라우드 재구성(3D points cloud reconstruction)을 재구성하는 단계와, 객체를 식별하기 위하여, 3D 포인트 클라우드 재구성을 이용하여 3D 데이터베이스에서 3D 매치 검색(match search)을 수행하는 단계를 포함하고, 3D 매치 검색은 3D 데이터베이스에 저장된 알려진 객체의 3D 포인트 클라우드와의 객체의 3D 포인트 클라우드 재구성의 비교를 포함한다.

Description

객체 인식 방법
[관련 출원에 대한 교차 참조]
없음
[연방 정부 후원 연구 또는 개발에 관한 선언]
없음
객체(object)를 검색하고, 식별하고, 네트워크에 연결하는 것은 앞으로 몇 년의 주요 이슈 중 하나이다. 월드 와이드 웹(World Wide Web)이 점점 더 모바일화되고 있는 것을 볼 수 있기 때문에, 이러한 인식 프로세스 및 기술은 모바일 사용자 및 이에 따른 모바일 장치에 맞게 수정될 필요가 있다. 2D 사진 분석, 광학적 문자 인식(optical character recognition(O.C.R.)), QR 코드나 바코드, 지오로케이션(geolocation), 컬러 인식과 같은 여러 기술들이 그렇게 하도록 개발되어 왔다. 이것들은 서적을 위한 O.C.R, 건축물에 대한 지오로케이션 또는 QR 코드와 같이(있는 경우에), 특정 경우에 매우 유용하고 효율적인 것으로 증명되었지만, 대부분의 경우에는 효율성이 부족하다. 사실, 오늘날의 생활에서의 객체들은 주로 3D로 정의되고, 이들을 인식하기 위하여 3D 파라미터들이 고려되어야 한다. 이러한 파라미터들은 피크, 상단, 에지, 형상, 양각(relief)을 포함한다.
본 발명의 목적은, 객체를 3D로 스캐닝하지 않으면서, 3D 파라미터를 이용하여 객체를 인식하는 방법을 제안하는 것이다. 다른 말로 하면, 본 발명의 목적은 3D 스캐너를 개발하는 것이 아니고, 객체를 인식하기 위하여 3차원 파라미터를 이용하는 것이다.
따라서, 본 발명은 식별될 객체의 컴퓨터로 구현되는 객체 인식 방법을 제공하고, 방법은, 모바일 장치에 의해, 상기 객체의 복수의 사진을 획득하는 단계와, 획득된 사진을 클라우드 서버에 전송하는 단계와, 클라우드 서버에 의해, 객체의 3D 포인트 클라우드 재구성(3D points cloud reconstruction)을 재구성하는 단계와, 객체를 식별하기 위하여, 3D 포인트 클라우드 재구성을 이용하여 3D 데이터베이스에서 3D 매치 검색(match search)를 수행하는 단계를 포함하고, 3D 매치 검색은 3D 데이터베이스에 저장된 알려진 객체의 3D 포인트 클라우드와의 객체의 3D 포인트 클라우드 재구성의 비교를 포함한다. 3D 포인트 클라우드는 데이터 세트이고, 따라서 방법은 재구성된 3D 데이터 세트(3D 포인트 클라우드 재구성)을 알려진 객체의 알려진 3D 데이터 세트와 비교하는 단계를 포함한다.
일 양태에서, 3D 데이터베이스에 저장된 알려진 객체의 3D 포인트 클라우드와의 객체의 3D 포인트 클라우드 재구성의 비교는, 기계 학습 또는 3D 기하학적 비교 중 적어도 하나를 포함한다. 따라서, 이 양태에서, 본 발명은 다음의 2개의 주목할 만한 방법으로 3D 포인트 클라우드를 이용하는 인식 방법을 제안한다: 기하학적 매칭/한편으로는 딥 매칭, 다른 한편으로는 3D 매칭 학습. 이 목표를 성취하기 위하여 객체의 3D 재구성이 필요하다. 이러한 3D 재구성 모델은 분석되어, 추가 인식을 위하여 사용되는 특정 파라미터를 추출할 수 있다. 이러한 3D "서브 파라미터(sub-parameter)"는 이의 2가지 분야(기하학적 및 기계 학습)에서 인식 파이프라인을 공급한다.
일 양태에서, 기계 학습은, 3D 포인트 클라우드 재구성을 복수의 3D 디스크립터(descriptor)로 분할하는 단계를 포함하고, 3D 디스크립터는 평면, 구(sphere), 원통, 원뿔, 큐브(cube) 및 원환체(torus) 중 하나 이상을 포함하고, 3D 디스크립터는 3D 디스크립터에 연관된 복수의 3D 프리미티브(primitive)로 분할되고, 복수의 3D 프리미티브는 객체를 형성하는 이들의 공간적 연결성을 기술하는 연결 그래프를 통해 공간적으로 연결된다. 3D 검색 매치는 추출된 복수의 프리미티브 및 연관된 연결 그래프를 이용하여 수행될 수 있다. 3D 재구성 모델로부터의 3D 디스크립터와 기하학적 "프리미티브"가 얻어질 수 있고, 이에 의해 디스크립터는 평면, 구, 원통, 원뿔, 큐브 또는 원환체와 같은 "프리미티브"라고도 불리는 "간단한 객체"이다. 반대 프로세스에서, 임의의 3D 객체는 이러한 기본 형상의 집합체에서 분리될 수 있다. 그 다음, 이러한 기본 형상은 전체 객체를 형성하기 위한 이들의 공간적 연결을 설명하는 그래프를 통해 서로 공간적으로 연결된다. 연결 그래프를 갖는 작은 객체(프리미티브)를 매칭시키는 것의 조합은 효율적인 매칭을 위한 도구이다.
또 다른 양태에서, 방법은 알려진 객체가 알려진 객체와 연관된 알려진 메타데이터와 함께 저장되는 제1 데이터베이스에서 제1 검색 매치를 수행하는 단계를 포함하고, 제1 검색 매치는 광학적 문자 인식(Optical Character Recognition), SIFT 기반 이미징, 컬러 경사 분석을 포함하는 2D 인식 기술을 이용하여 수행되고, 그리고/또는 제1 검색 매치는 메타데이터에 수행된다.
객체가 제1 데이터베이스 또는 3D 데이터베이스의 적어도 하나에서 식별될 때까지, 방법의 단계들은 동시에 수행되고, 특히, 객체가 획득되지 않는 한 또는 타임 아웃(time out)에 도달할 때까지 사진이 획득되며, 3D 데이터베이스 또는 제1 데이터베이스에 저장된 알려진 객체가 제거될 때마다, 특히, 식별될 객체의 치수를 나타내는 경계 박스 또는 메타데이터를 이용하여, 3D 데이터베이스 및/또는 제1 데이터베이스의 데이터베이스 색인(indexation)이 업데이트된다.
일 양태에서, 복수의 사진을 획득하는 단계는, 비디오 시퀀스로부터 상기 -사진을 추출하는 단계를 포함하고, 방법은, 3D 포인트 클라우드 재구성에 따라 획득 파라미터를 동적으로 조정하는 단계를 포함하고, 비디오 시퀀스로부터의 사진은 매 <<n>> 프레임마다 저장되고, <<n>>은 동적으로 또는 사용자에 의해 조정되며, 특히, n에는 방법의 시작에서 더 높은 값이 주어지고 재구성이 더욱 정확하게 됨에 따라 n은 감소한다.
다른 양태에서, 객체의 3D 포인트 클라우드 재구성을 재구성하는 단계는, 객체의 상기 복수의 사진에서 상관될 수 있는 복수의 키 포인트를 추출하는 단계 - 복수의 사진의 적어도 2개의 사진은 객체의 적어도 2개의 상이한 시점을 나타냄 -, 키 포인트를 객체에 배치하는 단계, 객체의 복수의 정점(vertex)을 정의하는 단계 - 정점은 3D에서 객체의 적어도 3개의 사진에서 식별된 특정 포인트에 대응함 -, 및 객체의 재구성된 3D 포인트 클라우드를 구축하여 객체의 3D 포인트 클라우드 재구성을 얻도록 3D 정점을 추가하는 단계를 포함한다.
이 양태에서, 본 발명은 3D 재구성으로부터 추출된 필수 3D 파라미터를 피크, 상단, 에지, 형상, 양각(relief)과, 이의 텍스처, 컬러, 재료 ...와 같은 객체의 키 포인트로서 식별하고 취급하도록 맞추어진다.
3D 재구성은 3D 포인트 클라우드 재구성의 노이즈를 제거하는 단계를 포함할 수 있고, 노이즈를 제거하는 단계는, 복수의 가상 복셀(voxel)로 3D 재구성 공간을 샘플링하는 단계, 가상 복셀 내에 포함된 정점의 개수를 카운팅하는 단계 및 가상 복셀 내의 상기 정점의 개수가 정점 임계값 미만일 때 가상 복셀 내에 포함된 상기 정점을 제거하는 단계를 포함한다. 가상 복셀의 크기와 정점 임계값은 동적으로 조정 가능할 수 있다.
또 다른 양태에서, 객체의 3D 포인트 클라우드 재구성을 재구성하는 단계는, 객체의 상기 복수의 사진에서 상관될 수 있는 복수의 키 포인트를 추출하는 단계 - 복수의 사진의 적어도 2개의 사진은 객체의 적어도 2개의 상이한 시점을 나타냄 -, 키 포인트를 객체에 배치하는 단계, 객체의 복수의 3D 슬라이스를 정의하는 단계 - 3D 슬라이스는 적어도 하나의 키 포인트를 포함함 -, 및 객체의 재구성된 3D 포인트 클라우드를 구축하여 객체의 3D 포인트 클라우드 재구성을 얻도록 3D 슬라이스를 추가하는 단계를 포함한다.
방법은 상대 측정 시스템을 얻기 위하여 기준 프레임에서 캘리브레이션 매트릭스를 계산하는 단계를 포함할 수 있고, 3D 슬라이스는 획득된 상대 측정 시스템에 추가된다.
일 양태에서, 방법은 복수의 사진 중 제1 사진에서 검색 가능한 포인트의 초기 세트를 정의하는 단계 및 복수의 사진 중 나머지 사진에서 검색 가능한 포인트의 일부를 식별하여 키 포인트를 추출하는 단계를 포함한다.
모바일 장치에 방법에 관한 정보를 실시간으로 디스플레이하는 단계가 수행될 수 있고, 모바일 장치는 사용자가 식별될 객체에 관한 입력 데이터를 입력할 수 있게 하는 입력 장치를 포함할 수 있고, 제1 매치 검색 또는 3D 매치 검색은 입력 데이터에 따라 맞추어진다.
본 개시 내용은 추가 인식을 위하여 특정 특징을 추출하도록 3D에서 객체를 재구성할 필요를 가지며, 본 발명자로 하여금 2D 트래킹의 기술을 3D 재구성과 결합하고 연결시키게 하였다. SFM 알고리즘이 중심 픽셀 주위로의 반지름에 의해 정의되는 영역에서의 수 많은 이웃 픽셀에 작용함에 따라, 서브 픽셀 스케일로 작용하고 있는 "딥 매칭(deep matching)"의 기술이 픽셀 레벨에서 2D 사진 사이의 2D 상관 관계를 찾는데 사용된다.
본 개시 내용의 객체에 대한 방법의 일반적인 동작은 가능한 한 많은 각도로부터 장치를 이용하여 객체를 관찰하는 것이다. 장치에 의해 획득된 정보는 원격에서 컴퓨팅되어 객체 데이터베이스에 포함된 정보에 비교된다. 매치가 발견되면, 데이터베이스로부터의 객체가 디스플레이된다. 인식되었을 때 추가로 사용되는 객체는 데이터베이스로부터의 객체이며 캡처된 것이 아니라는 것을 주목하는 것은 중요하다.
본 개시 내용의 3D 접근 방식은 객체의 모든 시야각에서 2D 인식 기술을 사용할 기회를 제공하며, 따라서 모든 측에서 객체를 보고 분석하여, 객체를 인식하는데 도움을 줄 모든 상세 내용을 획득할 수 있게 한다. 캡처된 객체(3D 스캐닝, 안면 인식, 인쇄 가능한 3D 객체 및 포맷)를 완전하고 밀도 있게 재구성하는 것을 목표로 하고 있는 대부분의 접근 방식과는 다르게, 본 출원은 계산된 3D 파라미터를 객체에 대한 고유 서명으로서 사용한다. 이것은 캡처된 객체의 빠르고(수초 내) 효율적인 3D 표현을 허용하고 또한 기존의 3D 데이터베이스와의 정확한 비교를 허용하는 포인트 클라우드 기술을 이용하여 성취된다. 오픈 소스인 "PCL(Point Clouds Libraries)" 및 더욱 최근의 "Geometry Factory Librairies"가 소프트웨어를 개발하기 위하여 사용될 수 있다.
객체가 기존의 3D 표현을 가진다면, 이 표현은 객체의 3D 상호 작용 표현을 갖기 위하여 사용자에게 디스플레이될 수 있다; 이러한 3D로 사전 모델링된 객체가 사용 가능하다면, 3D 프린터를 통해 인쇄될 수 있고, ...
본 출원에서, "객체(object)"라는 용어는 장치에 의해 캡처될 수 있는 것을 나타내기 위하여 사용된다. 이것은 다음의 임의의 객체일 수 있다; 상기 객체를 나타내기 위하여 사진/비디오가 촬영될 수 있는 한, 자연물, 인공물, 연계물(articulated), 연질(soft), 경질(hard) ...
본 발명의 또 다른 양태, 특징 및 이점은, 단순히 바람직한 실시예들 및 구현예들을 예시함으로써, 이어지는 상세한 설명으로부터 쉽게 명백하게 된다. 또한, 본 발명은 다른 상이한 실시예들을 가능하게 하며, 이의 여러 상세는 본 발명의 사상 및 범위를 벗어나지 않으면서 다양하고 명백한 점에서 수정될 수 있다. 따라서, 도면과 설명은 제한적인 것이 아니라 본질적으로 예시적인 것으로 간주되어야 한다. 본 발명의 추가적인 과제 및 이점은 부분적으로는 이어지는 설명에서 설명될 이고, 부분적으로는 설명으로부터 명백하게 될 것이거나, 또는 본 발명의 실시에 의해 학습될 수 있다.
도 1은 본 개시 내용의 하나의 양태에서의 객체 인식 시스템의 개요를 도시한다.
도 2는 본 개시 내용의 하나의 양태에 따른 객체 인식 방법의 개요를 도시한다.
도 3a 내지 3e는 도 1의 방법의 상이한 단계들에서의 사진 데이터의 예들이다.
도 4는 도 1의 방법에서 사용된 사진의 입력 개수에 따른 3D 상세의 레벨을 도시한다.
도 5는 본 개시 내용의 하나의 양태에 따른 객체 및 이의 3D 재구성의 예를 도시한다.
도 6은 본 개시 내용의 하나의 양태에 따른 객체 인식을 위하여 사용되는 2D 사진 매칭을 위한 랜덤 사진 생성 방법의 개요이다.
도 7은 본 개시 내용의 하나의 양태에 따른 객체 인식 방법에 사용될 수 있는 공간에 대한 표현을 도시한다.
도 8은 본 개시 내용의 하나의 양태에 따른 객체 인식 방법에 사용될 수 있는 세그먼테이션 방법을 도시한다.
도 9는 본 개시 내용의 하나의 양태에 따른 방법에서 사용 가능한 압축의 일례를 도시한다.
도 10 및 11은 본 개시 내용의 다른 양태에서의 객체 인식 방법의 개요이다.
도 12는 본 개시 내용의 하나의 양태에 따른 객체 인식 시스템의 개요이다.
도 13a 내지 13e는 도 1의 방법의 상이한 단계들에서의 사진 데이터의 예들이다.
도 14는 당업계에서 알려진 SFM 매칭 기술의 일례이다
도 15는 당업계에서 알려진 딥 매칭 기술의 일례이다
도 16은 본 개시 내용의 일 양태에서의 SFM 매칭 기술 및 딥 매칭 기술을 조합하는 방법의 개요이다.
도 17은 본 개시 내용의 하나의 양태에서의 부피 계산의 일례이다.
도 18은 본 개시 내용의 하나의 양태에서 객체 인식을 하는 데이터베이스의 데시메이션(decimation)의 일례를 제공한다.
도 19a 내지 19e는 본 개시 내용의 하나의 양태에서의 객체 인식 방법의 상이한 단계들의 일례이다.
도 20a 내지 20c는 본 개시 내용의 일 양태에서 도 19a 내지 19e의 방법에 사용 가능한 노이즈 제거 및 클리닝을 도시한다.
도 21 및 22는 본 발명에 따른 방법에서 사용될 수 있는 디스크립터와 프리미티브를 도시한다.
도 2는 객체(50)에 대한 객체 인식을 위한 시스템(1)의 개요이다. 시스템(1)은 최종 사용자에 의해 사용되는 장치(10)를 포함한다. 장치(10)는, 바람직하게는, 디스플레이 스크린과, 카메라 및 비디오 카메라와, 내장된 CPU와, 저장 용량(storage capacity)과, 네트워크에 대한 연결을 포함한다. 장치(10)는 M-커머스, 3D 프린팅, CRM, 소셜 네트워크와 같은 기존 플랫폼(2)에 연결될 수 있다.
예를 들어, 장치(10)는 스마트폰, 태플릿, 웹 캠을 갖는 랩톱, 컴퓨터 등일 수 있다. 통상의 기술자에 의해 이해되는 바와 같이, 스마트폰과 태플릿은 본 발명의 방법을 위한 가장 효율적인 장치이다.
장치(10)는 클라우드 서버(20)에 연결된다. 클라우드 서버(20)는 원격 CPU 또는 GPU 설비를 포함한다. 클라우드 서버(20)는, 제공자가 효율성, 보안 및 세계적인 접근성을 제공하는 한, 애저(Azure)(마이크로소프트), AWS(아마존), 시스코, 구글, HP 또는 더 전문화된 클라우드 컴퓨팅 제공자와 같은 영역에서의 알려진 관계자에 의해 주로 제공될 수 있다. 본 개시 내용의 하나의 양태에서, 클라우드 서버(20)의 능력과 효율성은 처리될 계산의 양에 맞추어질 수 있다.
클라우드 서버(20)는 스토리지 서버(30)에 연결되어 있다. 스토리지 서버(30)는, 본 개시 내용에서 설명되는 바와 같이, 객체 및 사용자 데이터 모두를 포함하는 관한 원격 스토리지이다. 스토리지 서버(30)는 제1 데이터베이스(35)와 제2 데이터베이스(38)를 포함한다. 제1 데이터베이스(35)는 2D 차원으로 저장된 이미지를 포함한다. 제2 데이터베이스(38)는 이미지의 저장된 3D 파일을 포함한다.
도 2는 본 발명의 하나의 양태에 따른 객체(50) 인식 방법의 개요이고, 도 1에 도시된 시스템에 관련되어 설명된다.
방법은 객체(50)의 복수의 사진(1000)을 획득하는 단계를 포함한다(노드 1.3). 본 발명의 하나의 양태에서, 사진은 장치(10)에 의해 획득되거나 캡처될 수 있다. 다음의 2개의 상이한 획득 방법이 사용될 수 있다: 비디오로부터의 추출 또는 버스트 모드(burst mode). 버스트 모드에서, 사진이 장치(10)가 허용하는 만큼 빠르게 사진 모드에서 얻어진다. 통상의 기술자는 비디오로부터의 추출을 이용한 사진의 획득이 더 자동적이지만, 더 많은 공간과 CPU가 소비된다는 것을 이해할 것이다. 사용자의 장치의 비디오 카메라에 의해 촬영된 비디오 시퀀스로부터의 사진들은 매 <<n>> 프레임마다 저장될 수 있고, <<n>>은 동적으로 또는 사용자에 의해 조정되며, 3D 스캐닝의 <<품질>>을 어떻게든 나타낸다. 예를 들어, n < 10 프레임이면, 품질은 더 낫지만 프로세스는 더 느려진다. 한편, n > 50 프레임이면, 스캐닝은 더 낮은 품질을 가지지만, 프로세스는 더 빨라진다. 본 개시 내용의 일 양태에서, <<n>>은 동적으로 조정되어, 높은 값(+/- 50 프레임)에서 시작하고 재구성이 더욱 정확해질수록 감소한다(+/- 10 프레임).
버스트 모드는 더 "영리하고(clever)", "적절한(proper)" 프레임, 즉 더욱 정확한 3D "클라우드 포인트" 재구성을 위하여 유용한 프레임을 선택하기 위하여 어느 정도의 미세한 계산을 필요로 하여야 한다. 사진(1000)의 예들은 도 3a에 도시된다.
객체가 바람직하게는 다양한 각도로부터 촬영되었어야 한다는 것이 주목되어야 한다. 큰 객체 또는 건축물과 같은 방향을 바꿀 수 없는 객체의 경우에, 단지 특정 각도만이 사용될 수 있다. 객체(50)에 대한 상이한 사진(1000)은, 상이한 시점에서의 객체로부터의 상이한 뷰를 나타낸다.
사진(1000)은 완전한 사진 세트가 획득될 때가지 획득된다.
사진 세트는 소정의 획득 시간 후에 완성되는 것으로 고려될 수 있다. 예를 들어, 10 내지 15초로 추산되는 획득 시간은 충분할 수 있을 것이다. 바람직하게는, 전체 시간은 프로세스에서, 프로세스에서 무한 루프를 방지하도록 전체 타임 아웃(time out)이 설정될 수 있다.
본 개시 내용의 하나의 양태에서, 획득 시간의 길이는 동적이고, 노드 2.3 내지 2.9를 참조하여 본 개시 내용에서 이후에 설명되는 바와 같이, 3D 포인트 클라우드 재구성에 따라 조정될 수 있다.
장치(10)는 획득된 복수의 사진(1000)을 클라우드 컴퓨팅을 위하여 클라우드 서버(20)로 전송한다(노드 2.1). 다음에서 설명되는 바와 같이, 데이터베이스(35)에서의 제1 2D 검색 매치(search match) 및/또는 3D 클라우드 재구성과 이어지는 제2 3D 검색 매치가 수행된다.
클라우드 서버(20)는 복수의 사진(1000)을 스토리지 서버(30)에 전달한다.
데이터베이스(35)에서의 제1 검색 매치는 획득된 사진을 제1 데이터베이스(35)에 저장된 알려진 이미지(1005)와 매칭시키기 위하여 수행될 수 있다(노드 3.1).
제1 검색 매치는 2D 이미지 인식 기술에 기초한다. 이러한 2D 인식 기술은 매칭 알고리즘에서 구현된다. 오픈 소스 기술과 같은 상이한 2D 인식 기술이 구현될 수 있다. 2D 인식 기술은, OCR(노드 3.1.1), SIFT(Scale Invariant Feature Transform) 기반 이미지 매칭(즉, 사진에서의 키 요소(key element)의 자동 인식)(노드 3.1.2), 객체(50)의 정밀한 컬러 맵을 제공하는 컬러 경사 분석(노드 3.1.3) 중 적어도 하나를 포함한다. 지오로케이션(geolocation) 정보(노드 3.1.4)가 또한 사용될 수 있다.
데이터베이스(35)에 저장된 비피팅(non-fitting) 객체가 이 기술들 중 하나에 의해 제거될 때마다, 전체 프로세스를 용이하게 하기 위하여 데이터베이스 색인(indexation)이 업데이트된다.
노드 3.1.5 및 도 6은 ""3D 객체로부터의 2D 역투영(reverse projection)"이라 하는 원래 접근 방식을 설명한다. 데이터베이스(35)에서의 객체의 저장된 3D 모델 또는 이미지의 3D 파일에는 객체를 기술하는 완전한 메타데이터가 제공된다. 예를 들어, 메타데이터는 다음의 식별 데이터를 포함한다: 이름, 상표, 설명, 크기, 2D 파라미터(컬러 경사 또는 맵, o.c.r. 데이터, 히스토그램, 푸리에 변환, 샘플링, ...), 3D 파라미터(포인트 클라우드 표현, 삼각측량(triangulation), 텍스처(texture), 재료, 크기, 고유 치수(intrinsic dimension) ...). 이 파라미터들 중에서, 객체의 3D 표현은, 객체에 대하여, 수 많은 "랜덤" 2D 사진을 생성한다고 가정된다. 가능한 한 많은 사용자의 캡처를 시뮬레이션하기 위하여, 이러한 "인하우스(in house)" 코드 피스는 저장된 3D 모델로부터 렌더링된 복수의 2D 사진(2000)을 생성한다. 이것은 상이한 랜덤 조명, 상이한 랜덤 시점, 상이한 랜덤 노출 ...을 포함하고, 따라서, 사용자의 캡처를 시뮬레이션한다. 이러한 2D 사진 생성은, 예를 들어, 하우스도르프(Hausdorff) 거리 또는 쿨백-라이블러(Kullback-Leibler) 거리를 통한 비교를, 2D 사진에서, 돌려준다.
따라서, 3D 객체로부터의 2D 역투영은 사용자에 의한 객체(50)의 캡처를 시뮬레이션하고, 사용자에 의해 전송된 객체(50)의 사진 세트(1000)에 비교하기 위하여 가능한 한 많은 "인공(artificial)" 사진(2000)을 제시하도록 맞추어진다. 인공 사진(2000) 및 획득된 사진(1000)의 2D 비교는 최종 매칭을 위하여 다른 기술과 함께 처리된다.
제1 검색 매치가 성공적이라면, 스토리지 서버(30)는 알려진 이미지(1005)에 속하는 관련 정보의 항목(1010)을 클라우드 서버(20)로 되돌려주고, 클라우드 서버(20)는 디스플레이를 위하여 상기 항목(1010)을 장치(10)로 전달한다.
항목(1010)은 객체의 식별 정보, 객체의 사진, 객체의 로컬화(localization) 정보 등을 포함할 수 있다.
제1 검색 매치가 성공적이지 않다면, 스토리지 서버(30)는 제1 검색 매치가 성공적이지 않았다는 정보를 클라우드 서버(20)에 리턴한다(노드 3.12). 클라우드 서버(20)는 2D 사진 세트로부터 3D 포인트의 클라우드를 획득하기 위하여 3D 재구성 프로세스를 시작하고, 3D 검색 매치가 이어진다.
클라우드 서버(20)에 의해 수행되는 이 3D 재구성 프로세스는 노드 2.3 내지 2.9에 도시된다. 아래에서 상세히 설명되는 바와 같이, 3D 재구성 프로세스는 2D 사진 세트의 식별, 사진에서의 2D 트래킹, 3D 포인트 세트 배치 및 3D 포인트 클라우드 재구성을 포함한다. openMVG 라이브러리 또는 통상의 기술자에게 알려진 임의의 라이브러리가 사용될 수 있다.
사진(1000)을 식별하고, 획득 모드, 프레임 획득 길이, 3D 클라우드 재구성을 위한 프레임의 식별과 같은 사진 세트에 관한 식별 정보를 추출하기 위하여, 노드 2.3에서 사진(1000)이 분석된다.
키 포인트(1030)를 추출하기 위하여, 이 식별 정보를 이용하여, 키 포인트 추출 프로세스가 사진(1000)에 런칭된다. 키 포인트는 가능한 한 많은 사진에서 상관될 수 있는 포인트로 정의된다.
키 포인트(1030)는 사진 세트의 모든 사진(1000) 전반에 걸친 2D 트래킹 프로세스에 의해 식별되며, 여기에서 사진으로부터의 각각의 포인트가 다른 사진에서 식별된다. 사진이 비디오를 통해 획득되었다면, 사진은 비디오의 프레임에 대응한다. 다른 말로 하면, 검색 가능한 포인트(1032)의 초기 세트가 제1 사진에서 정의되고, 2D 트래킹 프로세스는 키 포인트(1030)를 추출하기 위하여 세트의 다른 사진에서 검색 가능한 포인트(1032)를 식별하려고 한다. 이것은 도 3b 및 3c에 도시된다.
검색 가능한 포인트는 프로세스 전반에 걸쳐 정제된다. 포인트가 추가되고, 다른 것은 억제된다. 키 포인트 추출 프로세스 동안, 키 포인트 세트는 검색 가능한 포인트의 초기 세트에 비교된다. 키 포인트의 개수가 너무 적다면, 다시 트래킹되도록, 다른 검색 가능한 포인트가 검색 가능한 포인트의 초기 세트에 추가될 필요가 있을 것이다. 트래킹될 키 포인트의 개수에서의 실제 최소는 없지만, 3D 재구성 및 이어지는 비교 프로세스는, 사진의 입력 개수에 따른 3D 상세의 레벨을 도시하는 도 4에 도시된 바와 같이, 수 십 개의 포인트이면 더욱 효율적이다.
통상의 기술자는, 성공적인 키 포인트 추출 프로세스를 가능하게 하도록, 캡처되는 동안 객체(50)가 움직이지 않는 것이 중요하다는 것을 추가로 이해할 것이다.
3D 포인트 클라우드를 재구성하기 위하여, 바람직하게는, 상대 측정 시스템을 획득하도록 "가상 세계"가 캘리브레이션된다. 사실, 적어도 하나의 사진에서 거리 기준, 즉 크기/치수가 알려진 객체(50)가 있지 않다면, 시스템은 일반적으로 사진 세트로부터 절대 치수를 계산할 수 없을 것이다. 대부분의 경우, 그렇지 않다. 그러나, 객체(50)는 정확한 크기와 비율을 가지지 않더라도, 일관된 치수(coherent dimension)를 가질 것이다. 예를 들어, 최종 사용자가 머그를 스캔한다면, 시스템은 객체(50)가 머그인 것을 인식할 것이지만, 이것이 보통의 머그인지 광고 상징물로서 상점 앞에 노출될 수 있는 거대한 형태의 동일한 머그인지 판단할 수 없을 것이다. 그럼에도 불구하고, 시스템은 머그가 발견되고, 구매되고, 공유될 수 있는 보통의 머그라고 간주하면서 사용자에게 "OK"를 되돌려 줄 것이다.
이 캘리브레이션이 삼각 측량 알고리즘을 이용하여 이루어진다. 포지셔닝이 공간에서 잘 알려진 2 이상의 카메라가 특정 포인트를 본다면, 기본 삼각 측량 수식에 기초한 삼각 측량은 공간에서의(즉, 3차원에서의) 이 특정 포인트의 정확한 위치를 판단할 수 있다. 반대 프로세스에서, 하나의 트래킹된 포인트가 상이한 시점으로부터 보인다면(이 상이한 시점이 이동하는 하나의 단일 장치에 의해 제공되더라도), 이러한 상이한 시점은 트래킹된 포인트 및 이에 따른 캡처된 객체에 상대적으로 3D 공간에서 위치 설정될 수 있다.
이 캘리브레이션은 노드 2.5에서 수행되며, 여기에서, 카메라 캘리브레이션은 아래에서 설명되는 바와 같이 2D 포인트를 매칭시키는 것을 이용하여 수행된다.
사진 세트로부터 3D 포인트 클라우드를 재구성하기 위하여, 다음의 질문에 대한 답변을 제공함으로써, 2D 사진이 3D 환경에서 대체되어야 한다: 사진이 촬영된 공간 내의 위치, 2D의 트래킹된 포인트가 위치되는 공간 내의 위치.
캡처 시의 기하학적 시스템은 도 6에 나타낼 수 있다.
장치(10)는 이의 광학적 중심(O)과 이의 초점면("이미지 평면")을 통해 여기에 표시된다. 객체(50)의 이미지는 다수의 포인트 P(X, Y, Z)로 이루어진다. 카메라 "C"와 객체 "P" 사이의 대응 관계는 다음의 수식으로 주어진다: Pc = CP. 여기에서, Pc는 이미지 평면 상의 P의 투영이고, C는 완전한 카메라 캘리브레이션 매트릭스이다. 캘리브레이션 매트릭스 C는 장치(10)에 관련되고, 전체 캡처 세션에 대하여 동일함을 유지한다. 예를 들어, C는 3x4 매트릭스이다(12개의 미지수).
따라서, 재구성 방법은 기준 프레임에서 캘리브레이션 매트릭스 C를 계산하고(카메라를 캘리브레이션), 그 다음, 공간 내에 가능한 한 많은 P 포인트를 위치 설정하기 위하여 변환을 다른 프레임에 적용하는 것이다. 객체(P)가 3개의 좌표를 가지며, 따라서 3D 공간 내에 위치 설정된다는 것이 주목되어야 한다.
캘리브레이션 매트릭스 C는 3D 포인트와 카메라 이미지 평면 상의 이의 2D 투영 사이의 약간의 대응 관계를 알고 계산된다. 2D 투영 좌표는 이미지 평면에서 알려져 있고, 3D 좌표도 임의의 3D 공간에서 알려져 있다(즉, P는 예를 들어 3D 세계의 중심으로 간주될 수 있다). Pc = CP는 12개의 미지수를 포함하는 2개의 방정식을 제공하여, C를 풀기 위하여는 적어도 6개의 상관 관계가 알려져야 한다는 것을 의미한다. 이러한 상관 관계는 기점(fiducial) 기반 이미지 처리 방법을 이용하여 결정된다.
캘리브레이션 매트릭스 C가 알려져 있다면, 역 방정식 Q = C-1Qc를 통해 공간 내의 포인트 Q를 알 수 있고, 여기에서, C와 Qc는 알려져 있다. Q는 3개의 미지수인 3개의 좌표를 가진다. 따라서, 이는 시스템을 풀고 Q를 3D 공간에 위치 설정하기 위하여 동일한 카메라를 이용한 다른 시점을 필요로 한다.
이 계산들은 공간 내의 실제 치수의 어떠한 표시 없이 이루어진다. 재구성된 객체는 올바른 기하학적 구조를 가지지만, 치수가 잘 알려져 있는 다른 객체가 카메라 시야 내에 없다면 이의 크기에 관한 어떠한 표시도 없다. 그러나, 이것은 본 개시 내용에 대한 전제 조건은 아니다.
기하학 및 삼각법에 대한 계산 도구는 2000년 6월 이후에 오픈 소스에서 사용 가능한 라이브러리인 오픈 소스 라이브러리(예를 들어, openCV)에서 발견될 수 있다. 이러한 라이브러리는 자동 3D 카메라 캘리브레이션 매트릭스 계산(calibrateCamera, calibrationMatrixValues ...) 또는 상이한 2D 사진으로부터의 3D 삼각 측량(triangulatePoints)과 같은 디지털 사진 분석에서의 다양한 도구를 제공한다.
캘리브레이션이 수행되면, 키 포인트 추출 단계에서 식별된 키 포인트(1030)가 객체(50) 상에 배치된다. 이것은 도 3d에 도시된다. 그 후, 3D 포인트 클라우드 재구성은, 노드 2.7 및 2.8에서, 획득된 상대 측정 시스템에서의 "3D 슬라이스(slice)"에 의해 "3D 슬라이스"된다. 이러한 3D 슬라이스는 함께 추가되어, 도 3e에 보이는 바와 같이, 재구성된 3D 포인트 클라우드(1050)를 구축한다.
3D 슬라이스는 특정 평면에 대하여 시진(1000)으로부터 식별된 키 포인트를 포함한다.
통상의 기술자는 이 슬라이드별 3D 클라우드 재구성 프로세스가 보통의 잉크젯 프린터를 이용할 때 라인 순으로 인쇄되는 보통의 2D 문서를 인쇄하는 프로세스에 실제로 비교될 수 있다는 것을 이해할 것이다. 또한, 이는, 프린터 버스가 이전 슬라이스 위로 통과하고 있을 때마다 인쇄된 객체(50)를 지탱하는 트레이가 아래로 내려가고 있는 동안, 3D 객체(50)를 "슬라이스 별로(slice by slice)" 인쇄할 때와 정확히 동일한 프로세스이다.
3D 포인트 클라우드 재구성의 결과는 재구성된 3D 포인트 클라우드(1050)를 포함하는 3D 소프트웨어가 이해할 수 있는 포맷의 파일이다. 표준 파일 포맷은 3D 파일을 위한 보통의 파일 포맷인 .ply 파일이다. 대부분의 3D 소프트웨어는 이 포맷을 이해하고, 모든 다른 3D 포맷(obj, stl, 3DS max, ma, mb ...)으로부터 이 포맷을 생성하고, 이 포맷을 모든 다른 3D 포맷으로 생성한다. 또한, ply 포맷은 매우 효율적으로 압축 가능하고(비파괴적), 네트워크를 통해 전송 가능하지만, 3D 포인트 클라우드 재구성과 3D 포인트 클라우드 비교가 모두 서버 측에서 계산되기 때문에, 이는 실제로 여기에서는 문제가 아니다. 성공적으로 재구성된 ply 파일의 예는 객체(50)의 예 및 연관된 재구성된 포인트 클라우드(1050)를 도시하는 도 5a 내지 5c에 주어진다.
재구성된 3D 포인트 클라우드(1050)는 3D 매치 검색을 위하여 스토리지 서버(30)로 전달된다. 3D 매치 검색은 ply 파일을 이용하여 이루어지는 3D 포인트 클라우드 비교로 수행된다. 비교는 사용자가 생성한 ply 파일(1050)을 3D 데이터베이스(38)에 저장된 알려진 ply 파일(1052)과 비교한다. ply 파일이 대부분의 보통의 파일 포맷으로부터 쉽고 자동으로 생성될 수 있기 때문에, 데이터베이스에 저장된 각각의 알려진 객체와 연관된 데이터베이스 ply 파일(1052)은 이의 원래 포맷과 관계 없이 이의 3D 모델로부터 자동으로 생성된다는 것이 주목되어야 한다. 어느 정도의 3D 포인트가 식별되기만 하면, 3D 검색 매치 프로세스가 시작한다는 것이 주목되어야 한다. 그 다음, 인식 프로세스가 진행되고 있는 한(즉, 어떠한 매치도 발견되지 않음), 3D 검색 매치는 새로운 재구성된 3D 포인트로 보강되어, 인식의 3D 부분에 대한 더욱 더 많은 정밀도와 가중치를 제공한다.
다음의 2개의 주요 방법이 비교를 수행하는데 사용될 수 있다: 3D 기하학적 비교 또는 기계 학습. 통상의 기술자는 3D 기하학적 비교가 신속하게 효율적인 것을 알고 있다. 대안적으로, 해결 방안은 포인트 소스 광선 투영법, 고유 공간 투영에서의 주요 성분 분석 또는 로컬 민감도 해싱과 같은 루트 알고리즘을 포함하는 "포인트 클라우드 라이브러리(Points Cloud Libraries)" 또는 "기하학적 구조 팩토리(Geometry Factory)" 라이브러리와 같은 기존 라이브러리를 사용하여 선택될 수 있다. 이러한 라이브러리와 루트 기술은 ply 파일을 비교하고 매치를 찾기 위하여 적용될 수 있지만, 또한 거의 매칭 프로세스에서만큼 중요한 식별 프로세스로부터 비피팅 데이터베이스 객체를 효율적으로 제거하는데에도 적용될 수 있다.
기계 학습도 매우 효율적이지만, 이는 양호한 결과를 제공하기 위하여 출력과 연관된 많은 양의 입력을 필요로 한다. 다행스럽게도, 본 개시 내용의 방법은, 데이터베이스 객체(50)가 3D 표현을 포함하기 때문에, 이러한 많은 양의 데이터를 가능하게 한다. 임의의 상세 레벨의 많은 양의 ply 파일을 무작위로 생성하고 이를 알려진 원래 객체(50)와 매칭시키는 것이 가능하다. 이 기계 학습 접근 방식은 HOG(Histogram of Oriented Gradient) 선형 또는 Haar 특징의 케스케이드 분류기와 같은 AI 알고리즘에 의존한다. 이러한 신경망 기반의 기술이 계산의 측면에서 지수적이기 때문에, 이는 분명히 중요한 계산력을 필요로 하지만, 이 프로세스는 독립적으로 인식 프로세스 상류에서 처리될 수 있다.
도 5에 도시된 바와 같은 사진으로부터 획득된 3D 포인트 클라우드 재구성은 재구성된 객체 상에 "세그먼테이션(segmentation)"을 하기 위한 3D 엔벨로프(envelope)의 사용을 허용한다. 다른 말로 하면, 3D 객체는 사진에서 객체를 분리하기 위하여 3D 재구성의 일부였던 각각에 사진에서 사용된다. 이것은 도 9에 도시된다. 3D 데이터베이스(38)로부터의 3D 객체를 매칭시키는 것은 관련 정보를 분리하고 세그먼트화된 사진의 히스토그램(2010)을 획득하는데 사용된다. 세그먼트화된 사진의 히스토그램(2010)은 데이터베이스(38)에서의 객체의 히스토그램(2020)과 비교되고, 비교의 기준이 될 수 있다.
이 세그먼테이션은 예를 들어, O.C.R(문자 인식) - 관련 문자만이 분석에서 유지됨 -, 또는 컬러 분석에서와 같이, 본 개시 내용에서 설명된 매칭 알고리즘에 더 나은 성능을 제공하여, 도 8에서 설명되는 바와 같은 훨씬 더 정확한 히스토그램을 제공한다. 통상의 기술자는 인식 방법이 진행 중인 프로세스인 것을 이해할 것이다. 이는, 사진 데이터의 캡처 동안, 사진이 계산을 위하여 전송된다(노드 1.3 및 2.1)는 것을 의미한다. 따라서, 식별될 동일한 객체(50)에 대하여 추가 사진 데이터가 획득되고 있는 동안, 처음 사진들의 처음 처리가 계산되어 계산된 객체(50)를 획득한다. 사실, 통상의 기술자는 사진이 필요한 만큼(객체(50)가 식별될 수 없는 한) 길게 촬영되는 것을 이해할 수 있다(그러나, 위에서 설명된 바와 같이, 전체 타임 아웃이 설정될 수 있다). 따라서, 위에서 언급된 바와 같이, 획득 시간의 길이는 동적이고, 동적 사진 세트로부터 이루진 3D 포인트 클라우드 재구성에 따라 조정될 수 있다. 따라서, 계산된 포인트 클라우드가 포인트의 개수 측면에서 충분하지 않다면, 프레임 획득의 길이는 연장된다. 또한, 장치에서 사용 가능하다면, 자이로스코프/가속도계가 2D 사진으로 빈 영역을 채우는데 사용될 수 있다. 예를 들어, 최소 20개의 사진이 필요하다고 지금까지 설정되었을 수 있다. 2개의 사진 사이의 각도가 대략 1도 정도로 상당히 작은 경우에 최상의 결과가 획득되고, 따라서 20 내지 30개의 사진이 20 내지 30도 획득을 위하여 필요하다. 프로세스에서의 무한 루프를 방지하기 위하여 전체적인 타임아웃이 설정될 수 있다.
하나의 양태에서, 사진 정규 압축 알고리즘(pictures regular compression algorithm)이 이 사진 계산 단계를 가속하기 위하여 사용된다. 프레임별 처리를 최적화하기 위하여 이러한 알고리즘은 비파괴적이다. 예를 들어, 비파괴적 이미지 압축이 "png", "tiff", "gif", "jpeg2000"과 같은 이미지 포맷에서 사용된다. 사진 정규 압축은 엔트로피 코딩 또는 사전 기반 압축 알고리즘과 같은 오픈 소스 알고리즘으로부터 조정된다. 또한, 이 항목은 "클라우드 서버" <> "클라우드 스토리지" 사이의 서버 측 통신을 포함한다: 노드 2.1.
엔트로피 코딩은 특정 정보에 특정 코드를 제공하는 무손실 데이터 압축 방법이며, 이 코드는 원래 코딩보다 전송하기 더 쉽다.
예를 들어, 10M 적색 픽셀을 갖는 12M 픽셀을 포함하는 차에 대한 사진을 가정하면, 엔트로피 코딩은 (255, 0, 0)의 "보통의" 컬러 부호화(codification) 대신에 적색 컬러에 값 "1"을 취할 것이다. 쉽게 구현될 수 있는 유용하고 효율적인 알고리즘은 "허프만(Huffman) 코딩" 및 허프만 코딩의 최적화된 형태인 "샤논-파노(Shannon-Fano) 코딩"이다.
다른 압축 방법은 LZW 알고리즘(Lempel-Ziv-Welch-Algorithm)일 수 있다. 이 압축 방법은 코딩할 항목이 임의의 디지털 신호의 정의인 문자 체인(character chain)으로서 사용 가능하다고 가정한다. LZW 알고리즘은, 도 9의 표에 도시된 바와 같이, 읽어진 시퀀스로부터 "문자 사전" 내에 새로운 문자를 생성함으로써 문자 시퀀스를 인코딩한다.
사전은 다음의 2개의 문자로 시작한다: 0과 1. 제1 문자 "1"을 읽는 동안, 이는 원래 체인의 처음 2개의 문자로 이루어진 새로운 문자 "10"를 발견할 것이고, 이를 사전에 추가할 것이다(문자 #2). 두 번째의 "0"을 읽는 동안, 이는 새로운 문자 "00"을 사전에 추가할 것이다(문자 #3). 체인의 제3 문자를 읽는 동안,이는 사전에 "01"을 추가할 것이다(문자 #4). 제4 문자를 읽는 동안, 이는 "11"(문자 #5)을 사전에 추가할 것이다. 제5 및 제6 문자는 "1" 및 "1"이며, 사전의 문자 #5이다. 한편, "110"이 문자 #6으로서 사전에 추가된다. 압축은 동일한 방식으로 더 계속된다. 마지막에, 15개 항목의 원래 체인은 8개의 항목의 체인으로 코딩된다.
하나의 실시예에서, 서버 측 계산은 객체 데이터베이스(35, 38)로부터 비피팅 객체를 제거하기 위하여 동시에 처리되는 많은 기술을 포함한다. 비피팅 객체가 제거될 때마다, 이 비피팅 객체를 제거하는데 사용되는 기술은 기억되고, 따라서 식별될 이 객체(50)를 위한 이 기술의 효율에 가중치가 부여된다. 그 다음, 이 가중치는 프로세스를 우선화하고 가속하는데 사용된다. 또한, 가중치는 추가 통계를 위하여 저장된다. 예를 들어, 객체(50)가 그 상에 문자를 가진다면, 문자가 없는 데이터베이스에 저장된 모든 알려진 객체는 즉시 제거된다; 적색 컬러가 객체(50)에서 식별되면, 데이터베이스에 저장된 적색이 없는 모든 알려진 객체가 제거될 것이다.
다른 예는 QR 코드 또는 바코드이다: 객체(50)가 이들 중 하나를 가진다면, 매칭이 즉시 발견되어 디스플레이될 것이다. 이러한 특정 실시예가 본 개시 내용의 목적이 아니지만, 인식 프로세스의 일례로서 제공된다.
본 시스템 및 방법이 객체(50)의 밀도 있는 3D 재구성을 획득하려고 의도되지 않는다는 것을 이해하는 것이 중요하다. 그러나, 3D 포인트 클라우드 재구성은 객체(50)의 여러 뷰로부터 효율적이고 정확하게 계산될 수 있다. 이것은 정확성과 자원 사이의 트레이드 오프이다; 더 많은 뷰가 있을수록, 포인트 클라우드에 더 많은 정확성이 있지만, 계산할 더 많은 계산이 있다.
제1 데이터베이스(35) 또는 3D 데이터베이스(38) 중 하나에서의 매치 검색 후에 객체(50)가 식별되면, 다음의 많은 형태 중 적어도 하나의 형태 하에서 장치(10)에서의 디스플레이 및/또는 추가 동작을 위하여 정보가 장치(10)에 리턴된다: 모든 장치와 호환되는 3D 상호 작용 표현, 사용 가능한 메타데이터, 3D 프린트 가능한 호환 가능한 내보내기 .... 또한, 텍스트 메타데이터에 객체(50)가 임베디드되기 때문에, 이는 모든 소셜 네트워크 공유 및 통상적인 검색 엔진을 포함한다.
바람직하게는, 인식 방법은 사용자 친화 인터페이스를 통해 사용자에게 실시간으로 보여진다. 주요 파라미터는 데이터베이스로부터 여전히 매칭하는 객체의 수이다. 단지 하나의 객체(50)가 발견될 때 프로세스는 "OK"로 끝나고, 전술된 바와 같이 매치가 발견되지 않거나 타임 아웃될 때 "KO"로 끝난다. 그럼에도 불구하고, 사용자는 간단한 "MCQ(Multiple Choice Questions) 질문을 통해 매칭 프로세스가 인식을 용이하게 하는 것을 돕도록 요청될 수 있다(노드 4.2). 이러한 질문/답변은 다음과 같이 매우 간단할 수 있다: 크기/치수, 재료, 상표, 객체(50)의 분류(음식, 액세서리, 자동차, ...), 2D 캡처의 정확성.... 이러한 질문은 진행 중인 프로세스, 객체 데이터베이스에서의 이전 데시메이션(decimation) 및 남아 있는 객체 메타데이터 중 적어도 하나에 따라 요청될 수 있다.
도 10 및 11은 본 개시 내용의 다른 양태에서의 인식 방법의 도면이고, 도 12는 객체(50)의 객체 인식을 위한 시스템(201)의 개요이다.
시스템(201)은 최종 사용자에 의해 사용되는 장치(210)를 포함한다. 장치(210)는, 바람직하게는, 디스플레이 스크린과, 카메라 및 비디오 카메라와, 내장된 CPU와, 저장 용량(storage capacity)과, 네트워크에 대한 연결을 포함한다. 장치(210)는 M-커머스, 3D 프린팅, CRM, 소셜 네트워크와 같은 기존 플랫폼(2)에 연결될 수 있다.
예를 들어, 장치(210)는 스마트폰, 태플릿, 웹 캠을 갖는 랩톱, 컴퓨터 등일 수 있다. 통상의 기술자에 의해 이해되는 바와 같이, 스마트폰과 태플릿은 본 발명의 방법을 위한 가장 효율적인 장치이다.
장치(210)는 클라우드 서버(220)에 연결된다. 클라우드 서버(220)는 제공될 수 있고 본 발명의 성능의 개선에 유용할 수 있는 원격 CPU, GPU 또는 이른바 "가상 기계" 설비를 포함한다. 이것은, 예를 들어, 구글 TPU(Tensor Process Unit)와 같은 기계 학습에 전용인 새로운 세대의 처리 유닛을 포함한다. 클라우드 서버(220)는, 제공자가 효율성, 보안 및 세계적인 접근성을 제공하는 한, 애저(마이크로소프트), AWS(아마존), 시스코, 구글, HP 또는 더 전문화된 클라우드 컴퓨팅 제공자와 같은 영역에서의 알려진 관계자에 의해 주로 제공될 수 있다. 본 개시 내용의 하나의 양태에서, 클라우드 서버(220)의 능력과 효율성은 처리될 계산의 양에 맞추어질 수 있다.
클라우드 서버(220)는 스토리지 서버(230)에 연결되어 있다. 스토리지 서버(230)는, 본 개시 내용에서 설명되는 바와 같이, 객체 및 사용자 데이터 모두를 포함하는 관한 원격 스토리지이다. 스토리지 서버(230)는 제1 데이터베이스(235)와 제2 데이터베이스(238)를 포함한다. 제1 데이터베이스(235)는 2D 차원으로 저장된 이미지를 포함한다. 제2 데이터베이스(238)는 이미지의 저장된 3D 파일을 포함한다.
이제 도 11의 순서도를 참조하여 객체 인식 방법이 설명될 것이다. 객체 인식 방법은 객체(50)의 복수의 사진(5000)을 획득하는 단계를 포함한다(노드 21.3). 본 발명의 하나의 양태에서, 사진은 장치(210)에 의해 획득되거나 캡처될 수 있다. 다음의 2개의 상이한 획득 방법이 사용될 수 있다: 비디오로부터의 추출 또는 버스트 모드. 버스트 모드에서, 사진이 장치(210)가 허용하는 만큼 빠르게 사진 모드에서 얻어진다. 통상의 기술자는 비디오로부터의 추출을 이용한 사진의 획득이 더 자동적이지만, 더 많은 공간과 CPU가 소비된다는 것을 이해할 것이다. 사용자의 장치의 비디오 카메라에 의해 촬영된 비디오 시퀀스로부터의 사진들은 매 <<n>> 프레임마다 저장될 수 있고, <<n>>은 동적으로 또는 사용자에 의해 조정되며, 3D 스캐닝의 <<품질>>을 어떻게든 나타낸다. 예를 들어, n < 10 프레임이면, 품질은 더 낫지만 프로세스는 더 느려진다. 한편, n > 50 프레임이면, 스캐닝은 더 낮은 품질을 가지지만, 프로세스는 더 빨라진다. 본 개시 내용의 일 양태에서, <<n>>은 동적으로 조정되어, 높은 값(+/- 50 프레임)에서 시작하고 재구성이 더욱 정확해질수록 감소한다(+/- 10 프레임).
버스트 모드는 더 "영리하고", "적절한" 프레임, 즉 더욱 정확한 3D "클라우드 포인트" 재구성을 위하여 유용한 프레임을 선택하기 위하여 어느 정도의 미세한 계산을 필요로 하여야 한다.
객체가 바람직하게는 다양한 각도로부터 촬영되었어야 한다는 것이 주목되어야 한다. 큰 객체 또는 건축물과 같은 방향을 바꿀 수 없는 객체의 경우에, 단지 특정 각도만이 사용될 수 있다.
객체(50)에 대한 상이한 사진(5000)은, 상이한 시점에서의 객체로부터의 상이한 뷰를 나타낸다.
사진(5000)은 완전한 사진 세트가 획득될 때가지 획득된다.
사진 세트는 소정의 획득 시간 후에 완성되는 것으로 고려될 수 있다. 예를 들어, 10 내지 15초로 추산되는 획득 시간은 충분할 수 있을 것이다. 바람직하게는, 전체 시간은 프로세스에서, 전체 타임 아웃이 프로세스에서 무한 루프를 방지하도록 설정될 수 있다.
본 개시 내용의 하나의 양태에서, 획득 시간의 길이는 동적이고, 노드 22.3 내지 22.9를 참조하여 본 개시 내용에서 이후에 설명되는 바와 같이, 3D 포인트 클라우드 재구성에 따라 조정될 수 있다.
장치(210)는 획득된 복수의 사진(2000)을 클라우드 컴퓨팅을 위하여 클라우드 서버(220)로 전송한다(노드 22.1). 다음에서 설명되는 바와 같이, 데이터베이스(35)에서의 제1 2D 검색 매치 및/또는 3D 클라우드 재구성과 이어지는 제2 3D 검색 매치가 수행된다.
2D 검색은 사진이 시스템에 의해 수신되자 마자 수행될 수 있다. 3D 검색은 재구성된 3D 포인트가 적절한 양으로 사용 가능하자 마자 시작할 수 있다. 이 시점에서, 이러한 2개의 종류의 검색은 동시에 수행될 것이다.
클라우드 서버(220)는 복수의 사진(5000)을 스토리지 서버(230)에 전달한다.
데이터베이스(235)에서의 제1 검색 매치는 획득된 사진을, 인식에 유용할 수 있는 모든 정보를 포함하는, 제1 데이터베이스(235)에 저장된 알려진 이미지(5005)와 매칭시키기 위하여 수행될 수 있다(노드 23.1).
제1 검색 매치는 2D 이미지 인식 기술에 기초한다. 이러한 2D 인식 기술은 매칭 알고리즘에서 구현된다. 오픈 소스 기술과 같은 상이한 2D 인식 기술이 구현될 수 있다. 2D 인식 기술은, OCR(노드 23.1.1), SIFT(Scale Invariant Feature Transform) 기반 이미지 매칭(즉, 사진에서의 키 요소의 자동 인식)(노드 23.1.2), 객체(50)의 정밀한 컬러 맵을 제공하는 컬러 경사 분석(노드 23.1.3) 중 적어도 하나를 포함한다. 지오로케이션(geolocation) 정보(노드 23.1.4)가 또한 사용될 수 있다.
하나의 양태에서, 데이터베이스 내의 객체 메타데이터에서의 다양한 매치 검색이 수행될 수 있다. 데이터베이스에서의 각각의 객체와 연관된 메타데이터는, 관련되고 그리고/또는 사용 가능하다면, 지오로케이션, 객체에 나타나는 텍스트, QR 코드 또는 바코드, 객체의 컬러 히스토그램, 객체의 이름/모델/설명, 객체의 치수, 공개 링크, 가격, 시리얼 번호, 재판매자 정보, 관련된 회사 정보 ...를 포함한다.
데이터베이스(235)에 저장된 비피팅(non-fitting) 객체가 이 기술들 중 하나에 의해 제거될 때마다, 전체 프로세스를 용이하게 하기 위하여 데이터베이스 색인이 업데이트된다.
노드 23.1.5는 제1 실시예를 참조하여 도 6에서 설명되는 "3D 객체로부터의 2D 역투영"이라 하는 원래 접근 방식을 설명한다. 데이터베이스(235)에서의 객체의 저장된 3D 모델 또는 이미지의 3D 파일에는 객체를 기술하는 완전한 메타데이터가 제공된다. 예를 들어, 메타데이터는 다음의 식별 데이터를 포함한다: 이름, 상표, 설명, 크기, 2D 파라미터(컬러 경사 또는 맵, o.c.r. 데이터, 히스토그램, 푸리에 변환, 샘플링, ...), 3D 파라미터(포인트 클라우드 표현, 삼각측량(triangulation), 텍스처(texture), 재료, 크기, 고유 치수(intrinsic dimension) ...). 이 파라미터들 중에서, 객체의 3D 표현은, 객체에 대하여, 수 많은 "랜덤" 2D 사진을 생성한다고 가정된다. 가능한 한 많은 사용자의 캡처를 시뮬레이션하기 위하여, 저장된 3D 모델로부터 렌더링된 복수의 2D 사진(6000)이 생성된다. 이것은 상이한 랜덤 조명, 상이한 랜덤 시점, 상이한 랜덤 노출 ...을 포함하고, 따라서, 사용자의 캡처를 시뮬레이션한다. 이러한 2D 사진 생성은, 예를 들어, 하우스도르프(Hausdorff) 거리 또는 쿨백-라이블러(Kullback-Leibler) 거리를 통한 비교를, 2D 사진에서, 돌려준다.
데이터베이스 내의 3D 모델과 랜덤 사진의 자동 생성은 2D 기계 학습 훈련을 위하여 사용될 수 있다는 것이 주목되어야 한다. 기계 학습 알고리즘은 훈련/학습을 위한 상당한 양의 데이터를 필요로 하고, 3D 모델은 대량으로 실질적으로 이를 제공할 수 있다. 알고리즘이 백그라운드 내의 객체가 아닌 포그라운드 내의 객체를 학습하는 것이 중요하기 때문에, 이러한 CGI를 위한 랜덤 백그라운드를 이용하는 것이 또한 구현될 수 있다. 따라서, 수 천장의 사진이 다양한 조건에서 쉽게 생성되어 기계 학습 훈련을 위한 매우 가치 있고 정확한 입력을 구성할 수 있다.
따라서, 3D 객체로부터의 2D 역투영은 사용자에 의한 객체(50)의 캡처를 시뮬레이션하고, 사용자에 의해 전송된 객체(50)의 사진 세트(1000)에 비교하기 위하여 가능한 한 많은 "인공(artificial)" 사진(2000)을 제시하도록 맞추어진다. 인공 사진(2000) 및 획득된 사진(1000)의 2D 비교는 최종 매칭을 위한 다른 기술과 함께 처리된다. 또한 이 사진들을 사용자의 캡처 세션으로부터 발행된 실제 사진과 혼합하는 것은 2D 기계 학습 알고리즘을 훈련시키는 강력한 방법이다.
데이터베이스(235)에서의 제1 검색 및/또는 메타데이터 매치를 수행하는 단계로 돌아가서, 제1 검색 매치 및/또는 메타데이터에서의 검색이 성공적이라면, 스토리지 서버(230)는 알려진 이미지(5005)에 속하는 관련 정보의 항목(52010)을 클라우드 서버(220)로 되돌려주고, 클라우드 서버(220)는 디스플레이를 위하여 상기 항목(5010)을 장치(210)로 전달한다.
항목(5010)은 객체의 식별 정보, 객체의 사진, 객체의 로컬화 정보 등을 포함할 수 있다. 다른 객체 메타데이터는, 관련되고 그리고/또는 사용 가능하다면, 지오로케이션, 객체에 나타나는 텍스트, QR 코드 또는 바코드, 객체의 컬러 히스토그램, 객체의 이름/모델/설명, 객체의 치수, 공개 링크, 가격, 시리얼 번호, 재판매자 정보, 관련된 회사 정보 ...를 포함할 수 있다.
제1 검색 매치가 성공적이지 않다면, 스토리지 서버(230)는 제1 검색 매치가 성공적이지 않았다는 정보를 클라우드 서버(20)에 리턴한다(노드 23.12). 클라우드 서버(220)는 2D 사진 세트로부터 3D 포인트의 클라우드를 획득하기 위하여 3D 재구성 프로세스를 시작하고, 3D 검색 매치가 이어진다. 충분한 3D 포인트 클라우드가 2D 사진으로부터 재구성될 수 있을 때마다 3D 프로세스가 혼자 시작할 것이라는 점이 주목되어야 한다. 객체의 크기에 관한 신뢰성 있는 정보를 가지기 위하여, 포인트 클라우드에서의 최소 5000개의 정점(vertex)이 고려되어야 한다.
클라우드 서버(220)에 의해 수행되는 이 3D 재구성 프로세스는 노드 22.3 내지 22.9에 도시된다. 아래에서 상세히 설명되는 바와 같이, 3D 재구성 프로세스는 2D 사진 세트의 식별, 사진에서의 2D 트래킹, 3D 포인트 세트 배치 및 3D 포인트 클라우드 재구성을 포함한다. openMVG 라이브러리 또는 통상의 기술자에게 알려진 임의의 라이브러리가 사용될 수 있다. 방법은 복수의 사진 중 제1 사진에서 검색 가능한 포인트의 초기 세트를 정의하고, 복수의 사진 중 나머지 사진에서 검색 가능한 포인트 중 일부를 식별하여, 키 포인트를 추출하고 이를 전체 사진 세트 전체에 걸쳐 매칭시키는 것을 포함한다. 이러한 "키 포인트 기반의" 알고리즘에 더하여, 프레임 세트를 통해 "픽셀별(pixel by pixel) 매칭이 수행된다("딥 매칭(deep matching)". 이 방법의 결과로서, 매칭 파일이 생성되어, 사진 쌍들에서에의 픽셀 사이의 대응 관계를 제공한다. 본 발명은 딥 매칭의 정확한 기술을 키 포인트의 식별을 위한 SFM(Structure From Motion) 연구에 기초한 빠르고 효율적인 재구성 알고리즘과 조합하는 것을 제시한다.
사진(5000)을 식별하고, 획득 모드, 프레임 획득 길이, 3D 클라우드 재구성을 위한 프레임의 식별과 같은 사진 세트에 관한 식별 정보를 추출하기 위하여, 노드 22.3에서 사진(5000)이 처리된다.
키 포인트(5030)를 추출하기 위하여, 이 식별 정보를 이용하여, 키 포인트 추출 프로세스가 런칭된다. 키 포인트는 가능한 한 많은 사진에서 상관될 수 있는 포인트로 정의된다.
"키 포인트" 기반의 3D 재구성을 수행하기 위한 성능 기준에 맞는 알려진 알고리즘은 "SFM(Structure From Motion)" 기술로부터 알려진다. 그럼에도 불구하고, 이러한 알고리즘은 다음의 특정 제약을 준수하여야 하는 2D 사진을 요구한다: 객체 상의 다양한 텍스처(texture), 조명 파라미터, 사진에서의 차이(사진 사이의 너무 많은 중첩은, 너무 많은 차이가 불량한 2D 매칭으로 이어질 것이기 때문에, 3D 가상 재구성된 카메라의 재구성된 움직임에서 바이어스를 유발한다).
당업계에서 알려진 바와 같이, SFM는 한 프레임으로부터 다른 프레임으로 점무늬 픽셀의 정적 및 동적 환경을 설명하는 SIFT(scale invariant feature transform)의 완전한 리스트를 입력으로서 필요로 한다. 단지 관련된 픽셀들만 트래킹되고 쌍을 이룬 사진에서의 대응하는 것과 연관되기 때문에, SFM 매칭은 특징 설명을 포함한다. 더욱 상세하게는, 픽셀은, 다른 것들 중에서도, 이의 즉각적인 환경에 의해 설명되고, 데이터는 주변 픽셀을 설명하는 128개의 특징으로서 추출된다.
도 14는 9개의 픽셀을 갖는 제1 사진(상부) 및 제2 사진을 도시하고, 상부 사진에 대한 사진 사이의 매칭 파일을 위한 SFM 포맷의 구조를 설명한다. 이 예에서, 2개의 사진 사이에 단지 하나의 매칭 픽셀만이 발견된다. 상부 사진에서의 픽셀 5는 제2 픽셀에서의 픽셀 5에 대응한다. 예를 들어, 제2 사진에서의 3 및 9로 번호가 매겨진 픽셀을 설명하는 이웃을 포함하는 특징이 제1 사진(상부 사진)에서의 3 및 9로 번호가 매겨진 픽셀을 설명하는 특징과 너무 다르기 때문에, 이것은 이의 유일한 매치이다.
픽셀 레벨에서 작용하는 딥 매칭은 상이한 프레임에서 매칭 픽셀 (xi,n; yi,n) 및 (xj,p; yj,p)의 원시 리스트를 제공하고, 여기에서 n과 p는 2개의 상이한 프레임 i 및 j에서의 2개의 픽셀의 인덱스이다. 모든 픽셀이 트래킹되고 쌍을 이룬 사진에서 대응하는 사진과 연관되기 때문에, 딥 매칭은 특징 설명을 포함하지 않는다. 딥 매칭은 사진들 사이의 매칭 파일을 생성한다.
도 15는 각각 9개의 픽셀을 갖는 제1 및 제2 사진과, 딥 매칭 결과의 구조를 설명한다. 도 15의 예에서, 4개의 매치가 발견되고, 특히, 상부 사진에서 3으로 번호가 매겨진 픽셀은 제2 사진에서 2로 번호가 매겨진 픽셀에 매칭하고, 상부 사진에서 5로 번호가 매겨진 픽셀은 제2 사진에서 4로 번호가 매겨진 픽셀에 매칭하고, 상부 사진에서 6으로 번호가 매겨진 픽셀은 제2 사진에서 5로 번호가 매겨진 픽셀에 매칭하고, 상부 사진에서 9로 번호가 매겨진 픽셀은 제2 사진에서 8로 번호가 매겨진 픽셀에 매칭한다.
따라서, 딥 매칭은 더 많은 매칭 픽셀을 식별하고, 이는 추가로 재구성된 3D 포인트 클라우드에서 훨씬 더 많은 정보를 제공한다. 그러나, 딥 매칭은 3D 재구성에 사용 가능한 정보를 직접적으로 출력하지 않는다. 더욱 정확하게는, 딥 매칭 트래킹의 출력은 SFM 재구성의 입력과 호환되지 않으며, 본 발명자들은 완전하고 효율적인 파이프라인을 구축하기 위하여 이러한 2개의 접근 방식 사이에 가교(bridge)를 제안하였다.
따라서, 본 발명은, 3D 인식에서 사용 가능한 파일을 획득하기 위하여, 딥 매칭 기술과 SFM 기술의 조합을 제안한다. 특히, 본 발명은 SFM 파일과 호환되도록 딥 매칭 파일을 변환하는 것을 제안한다. 본 개시 내용에 따른 인식 방법을 위하여 사용 가능한 3D 재구성을 갖기 위하여, 이러한 2개의 포맷은 완전하고 자동적으로 호환 가능하게 될 필요가 있고, 이는 본 발명의 일부이다.
이 변환은 도 16에 도시되고, 다음의 단계들을 포함한다: 1 - 딥 매칭 SIFT 파일 및 매칭 파일의 생성/2 - 동일한 사진 세트에 대한 SFM sift 파일의 생성. 도 14 및 15를 참조하여 전술된 바와 같이, 딥 매칭은 더 많은 매칭 픽셀, 즉 SFM에 의해 식별되지 않은 추가 매칭 픽셀을 식별한다. 따라서, 제3 단계에서, SFM SIFT파일은 클라우드에 더 많은 포인트를 추가하기 위하여 딥 매칭이 트래킹한 추가 매칭 픽셀로 증강된다. 이 제3 단계 후에, 이러한 추가된 추가 매칭 픽셀은 재구성 알고리즘에 의해 아직 사용 가능하지 않다. 따라서, 변환의 마지막 단계는 증강된 파일을 위한 호환 가능한 특징의 계산, 즉 SFM에 의해 식별되지 않은 픽셀의 식별 및 적합화(conformation)를 포함하며, 이러한 픽셀은 이제 대응하는 복셀(voxel)의 3D 재구성을 위하여, 즉 3D 포인트 클라우드를 재구성하기 위하여 사용 가능하다.
키 포인트(5030)는 사진 세트의 모든 사진(5000) 전반에 걸친 2D 트래킹 프로세스에 의해 식별되며, 여기에서 사진으로부터의 각각의 포인트가 다른 사진에서 식별된다. 사진이 비디오를 통해 획득되었다면, 사진은 비디오의 프레임에 대응한다. 다른 말로 하면, 검색 가능한 포인트(5032)의 초기 세트가 제1 사진에서 정의되고, 2D 트래킹 프로세스는 키 포인트(5030)를 추출하기 위하여 세트의 다른 사진에서 검색 가능한 포인트(5032)를 식별하려고 한다. 이것은 도 13b 및 13c에 도시된다.
검색 가능한 포인트는 프로세스 전반에 걸쳐 정제된다. 포인트가 추가되고, 다른 것은 억제된다. 키 포인트 추출 프로세스 동안, 키 포인트 세트는 검색 가능한 포인트의 초기 세트에 비교된다. 키 포인트의 개수가 너무 적다면, 다시 트래킹되도록, 다른 검색 가능한 포인트가 검색 가능한 포인트의 초기 세트에 추가될 필요가 있을 것이다. 트래킹될 키 포인트의 개수에서의 실제 최소는 없지만, 3D 재구성 및 이어지는 비교 프로세스는 수 십 개의 포인트이면 더욱 효율적이다. 이 프로세스가 각각의 사진에서의 모든 픽셀에 적용된다는 것이 주목되어야 한다. 3D 포인트 클라우드를 정제하는 것은 매칭 사진의 범위를 동적으로 확장시키는 것에 의해 수행된다. 사실, 사진은 입력 비디오/프레임 시퀀스에서 "그에 가장 가까운" 다른 것, 즉 이전 또는 다음 사진에 픽셀별로 비교된다. 모델이 3D 포인트의 부족으로 인하여 정제되어야 한다면, 사진은 "p"개의 이전/이후 사진과 비교될 것이고, p는 시스템이 매칭 픽셀을 검색하는 2D 픽셀의 범위를 확장시키기 위하여 동적으로 조정된다.
통상의 기술자는, 성공적인 키 포인트 추출 프로세스를 가능하게 하도록, 캡처되는 동안 객체(50)가 움직이지 않는 것이 중요하다는 것을 추가로 이해할 것이다.
3D 포인트 클라우드를 재구성하기 위하여, 바람직하게는, 상대 측정 시스템을 획득하도록 "가상 세계"가 캘리브레이션된다. 사실, 적어도 하나의 사진에서 거리 기준, 즉 크기/치수가 알려진 객체(50)가 있지 않다면, 시스템은 일반적으로 사진 세트로부터 절대 치수를 계산할 수 없을 것이다. 대부분의 경우, 그렇지 않다. 그러나, 객체(50)는 정확한 크기와 비율을 가지지 않더라도, 일관된 치수(coherent dimension)를 가질 것이다. 예를 들어, 최종 사용자가 머그를 스캔한다면, 시스템은 객체(50)가 머그인 것을 인식할 것이지만, 이것이 보통의 머그인지 광고 상징물로서 상점 앞에 노출될 수 있는 거대한 형태의 동일한 머그인지 판단할 수 없을 것이다. 그럼에도 불구하고, 시스템은 머그가 발견되고, 구매되고, 공유될 수 있는 보통의 머그라고 간주하면서 사용자에게 "OK"를 되돌려 줄 것이다.
이 캘리브레이션이 삼각 측량 알고리즘을 이용하여 이루어진다. 포지셔닝이 공간에서 잘 알려진 2 이상의 카메라가 특정 포인트를 본다면, 기본 삼각 측량 수식에 기초한 삼각 측량은 공간에서의(즉, 3차원에서의) 이 특정 포인트의 정확한 위치를 판단할 수 있다. 반대 프로세스에서, 하나의 트래킹된 포인트가 상이한 시점으로부터 보인다면(이 상이한 시점이 이동하는 하나의 단일 장치에 의해 제공되더라도), 이러한 상이한 시점은 트래킹된 포인트 및 이에 따른 캡처된 객체에 상대적으로 3D 공간에서 위치 설정될 수 있다.
이 캘리브레이션은 노드 22.5에서 수행되며, 여기에서, 카메라 캘리브레이션은 아래에서 설명되는 바와 같이 2D 포인트를 매칭시키는 것을 이용하여 수행된다.
사진 세트로부터 3D 포인트 클라우드를 재구성하기 위하여, 다음의 질문에 대한 답변을 제공함으로써, 2D 사진이 3D 환경에서 대체되어야 한다: 사진이 촬영된 공간 내의 위치, 2D의 트래킹된 포인트가 위치되는 공간 내의 위치.
캡처 시의 기하학적 시스템은 도 2의 시스템을 참조하여, 도 6에 나타낼 수 있다. 장치(10)는 이의 광학적 중심(O)과 이의 초점면("이미지 평면")을 통해 여기에 표시된다. 객체(50)의 이미지는 다수의 포인트 P(X, Y, Z)로 이루어진다. 카메라 "C"와 객체 "P" 사이의 대응 관계는 다음의 수식으로 주어진다: Pc = CP. 여기에서, Pc는 이미지 평면 상의 P의 투영이고, C는 완전한 카메라 캘리브레이션 매트릭스이다. 캘리브레이션 매트릭스 C는 장치(10)에 관련되고, 전체 캡처 세션에 대하여 동일함을 유지한다. 예를 들어, C는 3x4 매트릭스이다(12개의 미지수).
따라서, 재구성 방법은 기준 프레임에서 캘리브레이션 매트릭스 C를 계산하고(카메라를 캘리브레이션), 그 다음, 공간 내에 가능한 한 많은 P 포인트를 위치 설정하기 위하여 변환을 다른 프레임에 적용하는 것이다. 객체(P)가 3개의 좌표를 가지며, 따라서 3D 공간 내에 위치 설정된다는 것이 주목되어야 한다.
캘리브레이션 매트릭스 C는 3D 포인트와 카메라 이미지 평면 상의 이의 2D 투영 사이의 약간의 대응 관계를 알고 계산된다. 2D 투영 좌표는 이미지 평면에서 알려져 있고, 3D 좌표도 임의의 3D 공간에서 알려져 있다(즉, P는 예를 들어 3D 세계의 중심으로 간주될 수 있다). Pc = CP는 12개의 미지수를 포함하는 2개의 방정식을 제공하여, C를 풀기 위하여는 적어도 6개의 상관 관계가 알려져야 한다는 것을 의미한다. 이러한 상관 관계는 기점 기반 이미지 처리 방법을 이용하여 결정된다.
캘리브레이션 매트릭스 C가 알려져 있다면, 역 방정식 Q = C-1Qc를 통해 공간 내의 포인트 Q를 알 수 있고, 여기에서, C와 Qc는 알려져 있다. Q는 3개의 미지수인 3개의 좌표를 가진다. 따라서, 이는 시스템을 풀고 Q를 3D 공간에 위치 설정하기 위하여 동일한 카메라를 이용한 다른 시점을 필요로 한다.
이 계산들은 공간 내의 실제 치수의 어떠한 표시 없이 이루어진다. 재구성된 객체는 올바른 기하학적 구조를 가지지만, 치수가 잘 알려져 있는 다른 객체가 카메라 시야 내에 없다면 이의 크기에 관한 어떠한 표시도 없다. 그러나, 이것은 본 개시 내용에 대한 전제 조건은 아니다. 기하학 및 삼각법에 대한 계산 도구는 2000년 6월 이후에 오픈 소스에서 사용 가능한 라이브러리인 오픈 소스 라이브러리(예를 들어, openCV)에서 발견될 수 있다. 이러한 라이브러리는 자동 3D 카메라 캘리브레이션 매트릭스 계산(calibrateCamera, calibrationMatrixValues ...) 또는 상이한 2D 사진으로부터의 3D 삼각 측량(triangulatePoints)과 같은 디지털 사진 분석에서의 다양한 도구를 제공한다.
캘리브레이션이 수행되면, 키 포인트 추출 단계에서 식별된 키 포인트(5030)가 객체(50) 상에 배치된다. 이것은 도 13d에 도시된다.
그 후, 3D 포인트 클라우드 재구성은, 노드 22.7 및 22.8에서, 3D 정점(즉, 3D 포인트)가 획득된 상대 측정 시스템에 추가되는 진행 중인 프로세스로서 이루어진다. 이러한 3D 정점은 함께 추가되어, 도 13e에 도시된 바와 같이, 재구성된 3D 포인트 클라우드(5050)를 구축한다.
3D 정점은 사진(5000)으로부터 식별된 키 포인트(5030)로부터 허용된 재구성의 결과이다.
3D 포인트 클라우드 재구성의 결과는 재구성된 3D 포인트 클라우드(5050)를 포함하는 3D 소프트웨어가 이해할 수 있는 포맷의 파일이다.
표준 파일 포맷은 3D 파일을 위한 보통의 파일 포맷인 .ply 파일이다. 대부분의 3D 소프트웨어는 이 포맷을 이해하고, 모든 다른 3D 포맷(obj, stl, 3DS max, ma, mb ...)으로부터 이 포맷을 생성하고, 이 포맷을 모든 다른 3D 포맷으로 생성한다. 또한, ply 포맷은 매우 효율적으로 압축 가능하고(비파괴적), 네트워크를 통해 전송 가능하지만, 3D 포인트 클라우드 재구성과 3D 포인트 클라우드 비교가 모두 서버 측에서 계산되기 때문에, 이는 실제로 여기에서는 문제가 아니다.
촬영되는 장면에서 측정 기준을 갖는 것 외에, 절대 측정 기준을 계산하기 위한 방법은, 장치(210)가 자이로스코프 및 가속도계를 가지는 경우에, 이들을 사용하는 것이다. 이제는 대부분의 휴대용 장치에 내장된 자이로스코프/가속도계에 의해 제공된 조합된 데이터를 이용하여, 2D 사진에서 어떠한 측정 정보 없이 3D 재구성 객체의 크기 및 정도(2D 및 3D)를 매우 정확하게 계산하는 것이 가능하다. 절대 2D 치수에는 사용자의 시야로부터 사용 가능한 5% 미만의 에러를 갖는 만족스러운 정밀도가 제공될 수 있다. 3D 부피는, 도 17을 참조하여 상술되는 바와 같이, 단지 하나의 2D 측정 정보(길이, 높이, 깊이, 폭, ...)를 이용하여 자체 제작할 수 있는 간단한 알고리즘으로 계산될 수 있다.
먼저, 평면 표면이 3D 재구성 클라우드(5050)에서 식별되어야 한다. 이것은 표면의 에지 상에 있거나, 단지 객체의 일부일 뿐이다; 가상 그리드(5061)가 이 표면에 적용되어, 그리드를 정사각형으로 분할하고, 전체 부피를 정사각형 기반의 평행 육면체로 분할한다. 3D 재구성된 부피는 밑면이 그리드의 단위 정사각형이고 높이가 포인트 클라우드에 의해 범위가 정해지는 평행 육면체(5062)로 자동으로 채워진다. 각각의 평행 육면체 "p"의 부피 는 l2xhp이고, 여기에서 l은 평행 육면체의 밑면의 정사각형의 길이이고, hp는 평행 육면체 "p"의 높이이고, 각각의 hp는 평행 육면체를 한정하는 3D 재구성 포인트 클라우드의 표면에 의해 결정된다. 전체 포인트 클라우드의 부피는 모든 평행 육면체의 부피의 합이다. 높이는 절대값으로 주어져, 정점이 그리드의 평면에 의해 범위가 정해지는 반공간(half space) 상에 위치된다면, 계산은 여전히 정확하다.
정밀도/계산 부하를 최적화하기 위하여 조정될 수 있는 파라미터는 그리드의 정사각형의 크기이다: 이것이 더 작을수록, 부피는 더 정확하다.
따라서, 데이터베이스 매칭을 위한 기준 중 하나로서 2D 또는 3D 측정(길이, 치수, 둘레, 표면, 부피 ...)을 이용하려고 의도된다. 인식된 모델의 모든 사용 가능한 크기를 디스플레이하기 위하여 글로벌 스케일 불변 인식을 갖는 것이 유용할 수 있지만, 이것은 데이터베이스를 데시메이션하는데 매우 유용하다. 따라서, 스캐닝된 객체의 측정은 이의 크기로부터 동일한 객체를 구분(신발, 옷, 이 차가 모델인가 아니면 실제 자동차인가? ...)하기 위한 미세 튜닝 파라미터로서만 고려되어야 한다.
글로벌 측정은 도 18에 도시된 바와 같은 3D 객체 경계 박스(5065)의 비를 고려하는 구분 기준으로서 사용될 수 있다. 경계 박스의 길이/높이 또는 깊이/높이와 같은 비는 스케일에 불변인 1차원 비율이며, 이것이 상이한 경우에 상이한 객체의 증거가 된다.
재구성된 3D 포인트 클라우드(5050)는 3D 매치 검색을 위하여 스토리지 서버(230)로 전달된다(노드 22.9 및 노드 23.23). 3D 매치 검색은 ply 파일을 이용하여 이루어지는 3D 포인트 클라우드 비교로 수행된다. 비교는 사용자가 생성한 ply 파일(5050)을 3D 데이터베이스(238)에 저장된 알려진 ply 파일(2052)과 비교한다. ply 파일이 대부분의 보통의 파일 포맷으로부터 쉽고 자동으로 생성될 수 있기 때문에, 데이터베이스에 저장된 각각의 알려진 객체와 연관된 데이터베이스 ply 파일(5052)은 이의 원래 포맷과 관계 없이 이의 3D 모델로부터 자동으로 생성된다는 것이 주목되어야 한다. 어느 정도의 3D 포인트가 식별되기만 하면, 3D 검색 매치 프로세스가 시작한다는 것이 주목되어야 한다. 그 다음, 인식 프로세스가 진행되고 있는 한(즉, 어떠한 매치도 발견되지 않음), 3D 검색 매치는 새로운 재구성된 3D 포인트로 보강되어, 인식의 3D 부분에 대한 더욱 더 많은 정밀도와 가중치를 제공한다.
다음의 2개의 주요 방법이 비교를 수행하는데 사용될 수 있다: 3D 기하학적 비교 또는 기계 학습. 통상의 기술자는 3D 기하학적 비교가 신속하게 효율적인 것을 알고 있다. 대안적으로, 해결 방안은 포인트 소스 광선 투영법, 고유 공간 투영에서의 주요 성분 분석 또는 로컬 민감도 해싱과 같은 루트 알고리즘을 포함하는 "포인트 클라우드 라이브러리(Points Cloud Libraries)" 또는 "기하학적 구조 팩토리(Geometry Factory)" 라이브러리와 같은 기존 라이브러리를 사용하여 선택될 수 있다. 이러한 라이브러리와 루트 기술은 ply 파일을 비교하고 매치를 찾기 위하여 적용될 수 있지만, 또한 거의 매칭 프로세스에서만큼 중요한 식별 프로세스로부터 비피팅 데이터베이스 객체를 효율적으로 제거하는데에도 적용될 수 있다.
"순전히 기하학적인(purely geometrical)" 매칭(3D 기하학적 비교)과 관련하여, ICP(Iterative Closest Points) 알고리즘은 스케일에 불변인 인자들을 이용하여 3D 재구성 객체를 데이터베이스 중 하나와 용이하게 매칭할 수 있고, 이에 따라 도 19a 및 19b에 도시된 바와 같이 배향(orientation) 및 위치 매칭을 제공한다. 정렬 단계가 수행되고, 여기에서, 데이터베이스 모델은 평행 이동/회전으로 재구성된 포인트 클라우드(5050)와 정렬된다. 이것은 도 19c에 도시된다.
포인트 클라우드의 노이즈 제거는 도 19d에 도시 된 바와 같이 수행된다. 노이즈 제거 단계는 보통의 기술인 "조건부 제거(Conditional Removal)", "ROR(Radius Outlier Removal)", "SOR(Statistic Outlier Removal)"을 통해 수행되며, 이들은 반복적이다. 세그먼테이션(segmentation)이 수행될 수 있고, 세그먼테이션은 모든 캡처된 사진에 존재하지 않을 수 있는 포인트들을 제거하고, 2D 사진을 "세그먼트화"하고 재구성을 위하여 조금 더 많은 관련 키 포인트를 찾도록 진행 중인 3D 재구성을 사용하는 것으로 구성될 수 있다.
그러나, 3D 재구성에서 상이한 객체가 여전히 남아있는 도 20a에 도시된 바와 같이 세그먼테이션이 불충분하거나 불완전하다면, 본 발명은 "클러스터링 (clustering)"이라고 하는 진보된 세그먼테이션 단계를 더 추가하는 것을 제안한다. 세그먼테이션과 클러스터링의 차이점은 주로 세그먼테이션은 재구성 중에 처리되는 반면, 클러스터링은 재구성된 포인트 클라우드에 적용된다는 것이다. 클러스터링의 목표는 3D 재구성 포인트 클라우드(5050)에서 2D 사진 세트에서 보이는 상이한 객체로부터 유래하는 상이한 재구성된 3D 모델을 분리하는 것이다. 이것은 3D 포인트의 상이한 클러스터에서 상이한 3D 객체를 분리할 수 있게 하고, 이에 따라 완전한 인식 프로세스를 위하여 이들 각각에 매칭 알고리즘을 수행할 수 있게 한다. 예를 들어, 도 20은 함께 연결된 2개의 클러스터를 도시한다.
이 클러스터링 프로세스는 도 20b에서 설명된다. 3D 재구성 포인트 클라우드(5050)의 결과인 3D 재구성 공간은 가상 복셀(5095), 즉 3D 큐브(cube)로 완전히 샘플링되고, 이 큐브의 각각에 포함된 재구성된 정점(5051)의 개수가 카운트된다. 큐브가 미리 결정된 임계값 미만의 "적은(few)" 정점을 포함할 때, 이 정점은 재구성된 포인트 클라우드(5050)에서 제거된다. 이는 남아 있는 노이즈를 제거할 수 있게 하며, 이에 따라 서로로부터 별도의 3D 모델로서 고려될 수 있는 상이한 정점(5051) 그룹(3D 클러스터)를 분리할 수 있게 한다. 결과에 따른 분리는 2개의 개별 클러스터를 도시하는 도 20c에 도시된다.
이러한 가상 박스(5095)의 크기 및 정점의 개수가 그 아래에 있을 때 "너무 작은" 것으로 간주되는 임계값은 코드의 노이즈 제거 부분의 변수들이고, 전체 재구성의 정점의 개수 또는 재구축된 포인트 클라우드에서의 2개의 정점 사이의 최소 거리와 같은 다른 파라미터들로부터 동적으로 조정될 수 있다는 것이 주목되어야 한다.
그 후, 도 18 및 19e를 참조하여 도시되는 스케일링 단계가 수행된다. 순환 반복(recurrent iteration)이 경계 박스(5065)에 수행되어, 이러한 경계 상자 스케일을 매칭시킨다. 이 동작은 계산 부하의 측면에서 매우 저렴한 동작이다. 따라서, 재구성된 포인트 클라우드(5050) 및 데이터베이스 포인트 클라우드(6050)는 3 개의 특징 위치/회전/스케일 모두에 적합할 것이고 포인트 클라우드 사이의 거리의 계산이 계산될 수 있다. 최소 거리에 대한 검색은 도 19e에 도시된 바와 같이 데이터베이스에서 최상의 매치를 제공할 것이다.
기하학적 매칭에 기초한 전술한 3D 기하학적 비교는 객체 인식을 위한 하나의 도구이다.
기계 학습도 매우 효율적이지만, 이는 양호한 결과를 제공하기 위하여 출력과 연관된 많은 양의 입력을 필요로 한다. 다행스럽게도, 본 개시 내용의 방법은, 데이터베이스 객체(50)가 3D 표현을 포함하기 때문에, 이러한 많은 양의 데이터를 가능하게 한다. 임의의 상세 레벨의 많은 양의 ply 파일을 무작위로 생성하고 이를 알려진 원래 객체(50)와 매칭시키는 것이 가능하다. 이 기계 학습 접근 방식은 HOG(Histogram of Oriented Gradient) 선형 또는 Haar 특징의 케스케이드 분류기와 같은 AI 알고리즘에 의존한다. 이러한 신경망 기반의 기술이 계산의 측면에서 지수적이기 때문에, 이는 분명히 중요한 계산력을 필요로 하지만, 이 프로세스는 독립적으로 인식 프로세스 상류에서 처리될 수 있다.
본 개시 내용에서의 기계 학습/딥 러닝 프로세스는 모두 2D 기계 학습과 3D 기계 학습을 포함한다; 이 마지막 포인트는, 아래에서 상술되는 바와 같이, 재구성된 객체 및 이의 하위 부분(subpart)의 3D 파라미터에 수행된다.
본 발명은 적절한 3D 재구성으로부터 추출된 필수 3D 파라미터를 피크, 상단, 에지, 형상, 양각(relief)과, 이의 텍스처, 컬러, 재료 ...와 같은 객체의 키 포인트로서 식별하고 취급하는 것을 제안한다. 특히, 기계 학습 프로세스의 제1 단계는 알려진 객체(5060)의 3D 재구성 모델로부터 그리고 3D 재구성 포인트 클라우드(5050)로부터 3D 디스크립터(descriptor)(6012)와 기하학적 "프리미티브(primitive)"(6013)를 추출하는 것이다.
사실, 임의의 3D 객체는 평면, 구, 원통, 원뿔 또는 원환체(torus)와 같은, "프리미티브"라 하는, 3D 단순 객체로부터 얻어질 수 있다. 반대 프로세스에서, 임의의 3D 객체는, 도 21에 도시된 바와 같이, 이러한 기본 형상들의 집합체에서 분리될 수 있다. 그 다음, 이러한 기본 형상들은 도 22에 도시된 바와 같이 전체 객체를 형성하기 위한 이들의 공간적 연결을 설명하는 그래프를 통해 서로 공간적으로 연결된다.
이러한 기하학적 프리미티브(6013)는 객체 인식을 위하여 사용될 수 있는 이른바 "피처 가방(bag of features)"으로 간주될 수 잇다.
본 개시 내용에 제안된 기계 학습 모델은 데이터의 사전 엔지니어링 및 전처리와 함께 신경망을 포함하고, 관련되고 효율적인 3D 특징 벡터의 설정을 신경망으로의 입력으로서 갖는다. 다른 말로 하면, 본 발명은 기계 학습/딥 러닝을 위하여 사용 가능할 수 있을 3D 객체를 기술하는 새로운 방법을 포함한다. 이 목적으로, 전체 재구성된 포인트 클라우드(5050, 6050)를 학습하거나 매칭시키는 대신에, 로컬 디스크립터(6012, 6013)가 객체(50)에 관련된다.
이러한 디스크립터(6012, 6013)는 식별될 객체의 재구성된 3D 포인트 클라우드(5050)의 복수의 정점(5051) 중 식별된 정점(5051)에 관련되고, 알려진 객체 모델의 알려진 재구성된 3D 포인트 클라우드(6050)와 비교된다. 객체 인식을 위하여 관련 있는 것으로 식별된 정점은 이의 바로 근처에서 고려된다: 정규 분석(normal analysis), 곡률 반경, 에지 추출, 코너, 정상(submit), 평면, 로컬 표면, 로컬 대칭 ...
추가 레벨에서, 도 21 및 22에 도시된 바와 같이, 임의의 3D 객체가 서로 연관된 서브 객체들로 분할될 수 있기 때문에, 방법은 또한 3D 프리미티브를 디스크립터(6012, 6013)로서 사용한다. 이러한 로컬 디스크립터 또는 프리미티브는 전체 3D 모델보다 기술하기 훨씬 더 편리하다. 예를 들어, 데이터베이스(훈련/학습) 및 재구성된 객체(매칭/인식) 모두에 대하여 3D 특징 벡터로 인코딩될 수 있는 2D 법선 벡터(normal vector)가 사용된다. 법선 벡터 구조의 일례는 도 22에 주어진다.
따라서, 임의의 로컬 디스크립터는 전체 3D 객체에 비하여 더 적은 파라미터로 분석될 수 있다. 신경망에서 입력으로서 사용되는 3D 특징 벡터는 이 구조, 즉 공간적 연결을 기술하는 그래프와 함께 연결된 로컬의 단순화된 정보에 의해 형성된 매트릭스에 따라 구축된다.
또한, 본 발명은 모든 프로세스의 자동화를 포함하여, 솔루션이 "온라인 학습"을 고려할 수 있게 하게 하고, 이는 기준 데이터베이스를 증강시키기 위한 사용자에 의해 획득된 3D 데이터의 의미 있는 사용을 의미한다. 사실, 개발된 알고리즘은 임의의 3D 객체를 자체가 훈련/학습 프로세스의 일부일 3D 특징 벡터로 변환할 수 있다.
본 발명을 위하여 개발된 인식 알고리즘이 또한 완전한 3D 재구성 객체에 사용될 수 있지만, 완전한 분석은 더 많은 자원과 시간을 소모하여 더 작고 더 많은 식별된 객체에서의 사용과 비교하여 불량한 결과를 제공한다는 것이 주목된다. 연결 그래프를 갖는 작은 객체(프리미티브)를 매칭시키는 것의 조합은 효율적인 매칭의 키이다.
도 5 또는 도 13에 도시된 바와 같은 사진으로부터 획득된 3D 포인트 클라우드 재구성은, 본 개시 내용에서 이전에 언급된 바와 같이, 재구성된 객체 상에 "세그먼테이션"을 하기 위한 3D 엔벨로프(envelope)의 사용을 허용한다. 다른 말로 하면, 3D 객체는 사진에서 객체를 분리하기 위하여 3D 재구성의 일부였던 각각에 사진에서 사용된다. 이것은 도 7에 도시된다. 3D 데이터베이스(38)로부터의 3D 객체를 매칭시키는 것은 관련 정보를 분리하고 세그먼트화된 사진의 히스토그램(2010)을 획득하는데 사용된다. 이것은 세그먼테이션이다. 세그먼테이션은 포인트 클라우드가 (클러스터링 단계가 드러낼) 여러 객체를 포함하는 경우에 재구성된 포인트 클라우드에서의 3D 객체의 추가 클러스터링에 더하여 또는 이와 조합하여 사용된다. 세그먼트화된 사진의 히스토그램(2010)은 데이터베이스(38)에서의 객체의 히스토그램(2020)과 비교되고, 비교의 기준이 될 수 있다.
이 세그먼테이션은 예를 들어, O.C.R(문자 인식) - 관련 문자만이 분석에서 유지됨 -, 또는 컬러 분석에서와 같이, 본 개시 내용에서 설명된 매칭 알고리즘에 더 나은 성능을 제공하여, 도 8에서 설명되는 바와 같은 훨씬 더 정확한 히스토그램을 제공한다. 통상의 기술자는 인식 방법이 진행 중인 프로세스인 것을 이해할 것이다. 이는, 사진 데이터의 캡처 동안, 사진이 계산을 위하여 전송된다(노드 21.3 및 22.1)는 것을 의미한다. 따라서, 식별될 동일한 객체(50)에 대하여 추가 사진 데이터가 획득되고 있는 동안, 처음 사진들의 처음 처리가 계산되어 계산된 객체(50)를 획득한다. 사실, 통상의 기술자는 사진이 필요한 만큼(객체(50)가 식별될 수 없는 한) 길게 촬영되는 것을 이해할 수 있다(그러나, 위에서 설명된 바와 같이, 전체 타임 아웃이 설정될 수 있다). 따라서, 위에서 언급된 바와 같이, 획득 시간의 길이는 동적이고, 동적 사진 세트로부터 이루진 3D 포인트 클라우드 재구성에 따라 조정될 수 있다. 따라서, 계산된 포인트 클라우드가 포인트의 개수 측면에서 충분하지 않다면, 프레임 획득의 길이는 연장된다. 또한, 장치에서 사용 가능하다면, 자이로스코프/가속도계가 2D 사진으로 빈 영역을 채우는데 사용될 수 있다. 예를 들어, 최소 20개의 사진이 필요하다고 지금까지 설정되었을 수 있다. 2개의 사진 사이의 각도가 대략 1도 정도로 상당히 작은 경우에 최상의 결과가 획득되고, 따라서 20 내지 30개의 사진이 20 내지 30도 획득을 위하여 필요하다. 프로세스에서의 무한 루프를 방지하기 위하여 전체적인 타임아웃이 설정될 수 있다. 인식에 있어서 유념해야 할 중요한 점은 "데이터베이스의 데시메이션(decimation)"즉, 기준이 이를 허용하는 한의 모든 비매칭 객체의 제거이다. 이 "데시메이션" 프로세스는 아래의 [0081]에서 설명되는 바와 같이 프로세스가 진행 중인 동안 모든 잠재적 솔루션에 할당된 가중치를 낮추는 것과 함께 제공된다.
하나의 양태에서, 사진 정규 압축 알고리즘(pictures regular compression algorithm)이 이 사진 계산 단계를 가속하기 위하여 사용된다. 프레임별 처리를 최적화하기 위하여 이러한 알고리즘은 비파괴적이다. 예를 들어, 비파괴적 이미지 압축이 "png", "tiff", "gif", "jpeg2000"과 같은 이미지 포맷에서 사용된다. 사진 정규 압축은 엔트로피 코딩 또는 사전 기반 압축 알고리즘과 같은 오픈 소스 알고리즘으로부터 조정된다. 또한, 이 항목은 "클라우드 서버" <> "클라우드 스토리지" 사이의 서버 측 통신을 포함한다: 노드 2.1.
엔트로피 코딩은 특정 정보에 특정 코드를 제공하는 무손실 데이터 압축 방법이며, 이 코드는 원래 코딩보다 전송하기 더 쉽다.
예를 들어, 10M 적색 픽셀을 갖는 12M 픽셀을 포함하는 차에 대한 사진을 가정하면, 엔트로피 코딩은 (255, 0, 0)의 "보통의" 컬러 부호화 대신에 적색 컬러에 값 "1"을 취할 것이다. 쉽게 구현될 수 있는 유용하고 효율적인 알고리즘은 "허프만(Huffman) 코딩" 및 허프만 코딩의 최적화된 형태인 "샤논-파노(Shannon-Fano) 코딩"이다.
다른 압축 방법은 LZW 알고리즘(Lempel-Ziv-Welch-Algorithm)일 수 있다. 이 압축 방법은 코딩할 항목이 임의의 디지털 신호의 정의인 문자 체인(character chain)으로서 사용 가능하다고 가정한다. LZW 알고리즘은, 도 9의 표에 도시된 바와 같이, 읽어진 시퀀스로부터 "문자 사전" 내에 새로운 문자를 생성함으로써 문자 시퀀스를 인코딩한다.
사전은 다음의 2개의 문자로 시작한다: 0과 1. 제1 문자 "1"을 읽는 동안, 이는 원래 체인의 처음 2개의 문자로 이루어진 새로운 문자 "10"를 발견할 것이고, 이를 사전에 추가할 것이다(문자 #2). 두 번째의 "0"을 읽는 동안, 이는 새로운 문자 "00"을 사전에 추가할 것이다(문자 #3). 체인의 제3 문자를 읽는 동안, 이는 사전에 "01"을 추가할 것이다(문자 #4). 제4 문자를 읽는 동안, 아는 "11"(문자 #5)을 사전에 추가할 것이다. 제5 및 제6 문자는 "1" 및 "1"이며, 사전의 문자 #5이다. 한편, "110"이 문자 #6으로서 사전에 추가된다. 압축은 동일한 방식으로 더 계속된다. 마지막에, 15개 항목의 원래 체인은 8개의 항목의 체인으로 코딩된다.
하나의 실시예에서, 서버 측 계산은 객체 데이터베이스(35, 38)로부터 비피팅 객체를 제거하기 위하여 동시에 처리되는 많은 기술을 포함한다. 비피팅 객체가 제거될 때마다, 이 비피팅 객체를 제거하는데 사용되는 기술은 기억되고, 따라서 식별될 이 객체(50)를 위한 이 기술의 효율에 가중치가 부여된다. 그 다음, 이 가중치는 프로세스를 우선화하고 가속하는데 사용된다. 또한, 가중치는 추가 통계를 위하여 저장된다. 예를 들어, 객체(50)가 그 상에 문자를 가진다면, 문자가 없는 데이터베이스에 저장된 모든 알려진 객체는 즉시 제거된다; 적색 컬러가 객체(50)에서 식별되면, 데이터베이스에 저장된 적색이 없는 모든 알려진 객체가 제거될 것이다.
다른 예는 QR 코드 또는 바코드이다: 객체(50)가 이들 중 하나를 가진다면, 매칭이 즉시 발견되어 디스플레이될 것이다. 이러한 특정 실시예가 본 개시 내용의 목적이 아니지만, 인식 프로세스의 일례로서 제공된다.
본 시스템 및 방법이 객체(50)의 밀도 있는 3D 재구성을 획득하려고 의도되지 않는다는 것을 이해하는 것이 중요하다. 그러나, 3D 포인트 클라우드 재구성은 객체(50)의 여러 뷰로부터 효율적이고 정확하게 계산될 수 있다. 이것은 정확성과 자원 사이의 트레이드 오프이다; 더 많은 뷰가 있을수록, 포인트 클라우드에 더 많은 정확성이 있지만, 계산할 더 많은 계산이 있다.
제1 데이터베이스(35) 또는 3D 데이터베이스(38) 중 하나에서의 매치 검색 후에 객체(50)가 식별되면, 다음의 많은 형태 중 적어도 하나의 형태 하에서 장치(10)에서의 디스플레이 및/또는 추가 동작을 위하여 정보가 장치(10)에 리턴된다: 모든 장치와 호환되는 3D 상호 작용 표현, 사용 가능한 메타데이터, 3D 프린트 가능한 호환 가능한 내보내기 .... 또한, 텍스트 메타데이터에 객체(50)가 임베디드되기 때문에, 이는 모든 소셜 네트워크 공유 및 통상적인 검색 엔진을 포함한다. 본 발명의 일부가 아니더라도, 객체의 디스플레이는 기술적 진화 및 이러한 영역에서 알려지거나 유행하는 모든 현대 기술에 가깝게 유지될 것이라는 것이 주목되어야 한다. 일례로서, 증강 현실(Augmented Reality(A.R.)) 또는 가상 현실(Virtual Reality(V.R.))과 같은 분야에서의 발전은 매우 인기가 있고 고려되어야 한다.
바람직하게는, 인식 방법은 사용자 친화 인터페이스를 통해 사용자에게 실시간으로 보여진다. 주요 파라미터는 데이터베이스로부터 여전히 매칭하는 객체의 수이다. 단지 하나의 객체(50)가 발견될 때 프로세스는 "OK"로 끝나고, 전술된 바와 같이 매치가 발견되지 않거나 타임 아웃될 때 "KO"로 끝난다. 그럼에도 불구하고, 사용자는 간단한 "MCQ(Multiple Choice Questions) 질문을 통해 매칭 프로세스가 인식을 용이하게 하는 것을 돕도록 요청될 수 있다(노드 4.2). 이러한 질문/답변은 다음과 같이 매우 간단할 수 있다: 크기/치수, 재료, 상표, 객체(50)의 분류(음식, 액세서리, 자동차, ...), 2D 캡처의 정확성.... 이러한 질문은 진행 중인 프로세스, 객체 데이터베이스에서의 이전 데시메이션(decimation) 및 남아 있는 객체 메타데이터 중 적어도 하나에 따라 요청될 수 있다. 이 모든 경우에, 매칭 모델에는 매칭 프로세스에서의 이의 "점수"를 계산하는 가중치가 함께 있고, "최상의" 점수가 선택을 허용할 사용자 친화 인터페이스에 디스플레이될 수 있다. 특정 머그 또는 신발이 다른 머그 또는 신발에 근접할 것이라는 것과 같이 객체가 때때로 근접할 것이라는 것이 예측 가능하다. 그 다음, "근접하는 결과"가 디스플레이 되어, 사용자에게 유용한 정보를 제공할 것이다.
본 발명의 바람직한 실시예에 대한 전술한 설명은 예시와 설명의 목적을 위하여 제공되었다. 본 발명을 개시된 특정 형대로 한정시키거나 소진적이게 하려고 의도되지 않고, 수정 및 변경이 전술한 개시 내용에 비추어 가능하거나, 본 발명의 범위로부터 획득될 수 있다. 실시예들은 당업계에서의 통상의 기술자가 고려되는 특정 사용에 적합한 다양한 실시예에서 본 발명을 활용할 수 있게 하도록 본 발명의 원리 및 이의 실제적인 적용예를 설명하기 위하여 선택되고 설명되었다. 본 발명의 범위는 본 명세서에 첨부된 청구범위와 이의 균등물에 의해 정의되도록 의도된다.

Claims (16)

  1. 식별될 객체의 컴퓨터로 구현되는 객체 인식 방법에 있어서,
    모바일 장치에 의해, 상기 객체의 복수의 사진을 획득하는 단계와,
    획득된 상기 사진을 클라우드 서버에 전송하는 단계와,
    상기 클라우드 서버에 의해, 상기 객체의 3D 포인트 클라우드 재구성(3D points cloud reconstruction)을 재구성하는 단계와,
    상기 객체를 식별하기 위하여, 상기 3D 포인트 클라우드 재구성을 이용하여 3D 데이터베이스에서 3D 매치 검색(match search)를 수행하는 단계
    를 포함하고,
    상기 3D 매치 검색은 상기 3D 데이터베이스에 저장된 알려진 객체의 3D 포인트 클라우드와의 상기 객체의 상기 3D 포인트 클라우드 재구성의 비교를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 3D 데이터베이스에 저장된 알려진 객체의 3D 포인트 클라우드와의 상기 객체의 상기 3D 포인트 클라우드 재구성의 비교는, 기계 학습 또는 3D 기하학적 비교 중 적어도 하나를 포함하는, 방법.
  3. 제2항에 있어서,
    상기 기계 학습은, 상기 3D 포인트 클라우드 재구성을 복수의 3D 디스크립터(descriptor)로 분할하는 단계를 포함하고, 상기 3D 디스크립터는 평면, 구(sphere), 원통, 큐브(cube) 및 원환체(torus) 중 하나 이상을 포함하고, 상기 3D 디스크립터는 상기 3D 디스크립터에 연관된 복수의 3D 프리미티브(primitive)로 분할되고, 상기 복수의 3D 프리미티브는 상기 객체를 형성하는 공간적 연결성을 기술하는 연결 그래프를 통해 공간적으로 연결되는, 방법.
  4. 제1항 내지 제3항에 있어서,
    상기 3D 검색 매치는 추출된 상기 복수의 프리미티브 및 연관된 연결 그래프를 이용하여 수행되는, 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    알려진 객체가 상기 알려진 객체와 연관된 알려진 메타데이터와 함께 저장되는 제1 데이터베이스에서 제1 검색 매치를 수행하는 단계를 포함하고, 상기 제1 검색 매치는 광학적 문자 인식(Optical Character Recognition), SIFT 기반 이미징, 컬러 경사 분석을 포함하는 2D 인식 기술을 이용하여 수행되고, 그리고/또는 상기 제1 검색 매치는 상기 메타데이터에 수행되는, 방법.
  6. 제5항에 있어서,
    상기 객체가 상기 제1 데이터베이스 또는 상기 3D 데이터베이스의 적어도 하나에서 식별될 때까지, 상기 방법의 단계들은 동시에 수행되고, 특히, 상기 객체가 획득되지 않는 한 또는 타임 아웃(time out)에 도달할 때까지 사진이 획득되며, 상기 3D 데이터베이스 또는 상기 제1 데이터베이스에 저장된 알려진 객체가 제거될 때마다, 특히, 식별될 상기 객체의 치수를 나타내는 경계 박스 또는 메타데이터를 이용하여, 상기 3D 데이터베이스 및/또는 상기 제1 데이터베이스의 데이터베이스 색인(indexation)이 업데이트되는, 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 복수의 사진을 획득하는 단계는, 비디오 시퀀스로부터 상기 사진을 추출하는 단계를 포함하고, 상기 방법은, 상기 3D 포인트 클라우드 재구성에 따라 획득 파라미터를 동적으로 조정하는 단계를 포함하고, 상기 비디오 시퀀스로부터의 사진은 매 <<n>> 프레임마다 저장되고, <<n>>은 동적으로 또는 사용자에 의해 조정되며, 특히, n에는 상기 방법의 시작에서 더 높은 값이 주어지고 재구성이 더욱 정확하게 됨에 따라 n은 감소하는, 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 객체의 3D 포인트 클라우드 재구성을 재구성하는 단계는, 상기 객체의 상기 복수의 사진에서 상관될 수 있는 복수의 키 포인트를 추출하는 단계 - 상기 복수의 사진의 적어도 2개의 사진은 상기 객체의 적어도 2개의 상이한 시점을 나타냄 -, 상기 키 포인트를 상기 객체에 배치하는 단계, 상기 객체의 복수의 정점(vertex)을 정의하는 단계 - 정점은 3D에서 상기 객체의 적어도 3개의 사진에서 식별된 특정 포인트에 대응함 -, 및 상기 객체의 재구성된 3D 포인트 클라우드를 구축하여 상기 객체의 상기 3D 포인트 클라우드 재구성을 얻도록 상기 3D 정점을 추가하는 단계를 포함하는, 방법.
  9. 제8항에 있어서,
    상기 3D 재구성은 상기 3D 포인트 클라우드 재구성의 노이즈를 제거하는 단계를 포함하고, 상기 노이즈를 제거하는 단계는, 복수의 가상 복셀(voxel)로 상기 3D 재구성 공간을 샘플링하는 단계, 가상 복셀 내에 포함된 정점의 개수를 카운팅하는 단계 및 상기 가상 복셀 내의 상기 정점의 개수가 정점 임계값 미만일 때 상기 가상 복셀 내에 포함된 상기 정점을 제거하는 단계를 포함하는, 방법.
  10. 제9항에 있어서,
    상기 가상 복셀의 크기와 상기 정점 임계값은 동적으로 조정 가능한, 방법.
  11. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 객체의 3D 포인트 클라우드 재구성을 재구성하는 단계는, 상기 객체의 상기 복수의 사진에서 상관될 수 있는 복수의 키 포인트를 추출하는 단계 - 상기 복수의 사진의 적어도 2개의 사진은 상기 객체의 적어도 2개의 상이한 시점을 나타냄 -, 상기 키 포인트를 상기 객체에 배치하는 단계, 상기 객체의 복수의 3D 슬라이스를 정의하는 단계 - 3D 슬라이스는 적어도 하나의 키 포인트를 포함함 -, 및 상기 객체의 재구성된 3D 포인트 클라우드를 구축하여 상기 객체의 상기 3D 포인트 클라우드 재구성을 얻도록 상기 3D 슬라이스를 추가하는 단계를 포함하는, 방법.
  12. 제12항에 있어서,
    상대 측정 시스템을 얻기 위하여 기준 프레임에서 캘리브레이션 매트릭스를 계산하는 단계를 포함하고, 상기 3D 슬라이스는 획득된 상기 상대 측정 시스템에 추가되는, 방법.
  13. 제8항 내지 제12항 중 어느 한 항에 있어서,
    상기 복수의 사진 중 제1 사진에서 검색 가능한 포인트의 초기 세트를 정의하는 단계 및 상기 복수의 진 중 나머지 사진에서 상기 검색 가능한 포인트의 일부를 식별하여 상기 키 포인트를 추출하는 단계를 포함하는, 방법.
  14. 제8항 내지 제13항 중 어느 한 항에 있어서,
    상기 복수의 키 포인트를 추출하는 단계는,
    적어도 하나의 딥 매칭 트래킹된 픽셀을 얻기 위한 상기 복수의 사진의 세트에 대하여 딥 매칭 SFIT 파일 및 매칭 파일의 생성,
    적어도 하나의 SFM 트래킹된 픽셀을 식별하기 위한 상기 복수의 사진의 세트에 대한 SFM SIFT 파일의 생성,
    상기 적어도 하나의 SFM 트래킹된 픽셀과 상이한 추가 딥 매칭 트래킹된 픽셀로의 상기 SFM SIFT 파일의 증강, 및
    SFM 호환 가능한 SIFT 파일을 얻기 위한 상기 딥 매칭 추가 트래킹된 픽셀의 적합화(conformation)
    를 포함하는, 방법.
  15. 제5항 또는 제5항을 인용할 때의 제3항 내지 제14항 중 어느 한 항에 있어서, 상기 모바일 장치에 상기 방법에 관한 정보를 실시간으로 디스플레이하는 단계를 포함하고, 상기 모바일 장치는 사용자가 식별될 상기 객체에 관한 입력 데이터를 입력할 수 있게 하는 입력 장치를 포함하고, 상기 제1 매치 검색 또는 상기 3D 매치 검색은 상기 입력 데이터에 따라 맞추어지는, 방법.
  16. 컴퓨터가 제1항 내지 제15항 중 어느 한 항에 따른 객체 인식 방법의 단계들을 수행하게 하도록 내부에 저장된 비일시적 컴퓨터 매체를 포함하는 컴퓨터 프로그램 제품.
KR1020207012839A 2017-10-05 2018-10-05 객체 인식 방법 KR20200070287A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
LULU100465 2017-10-05
LU100465A LU100465B1 (en) 2017-10-05 2017-10-05 System and method for object recognition
PCT/CA2018/000186 WO2019068167A1 (en) 2017-10-05 2018-10-05 OBJECT RECOGNITION METHOD

Publications (1)

Publication Number Publication Date
KR20200070287A true KR20200070287A (ko) 2020-06-17

Family

ID=60269895

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207012839A KR20200070287A (ko) 2017-10-05 2018-10-05 객체 인식 방법

Country Status (7)

Country Link
US (3) US10922526B2 (ko)
EP (1) EP3692471A4 (ko)
KR (1) KR20200070287A (ko)
CN (1) CN111316293A (ko)
CA (1) CA3078140A1 (ko)
LU (1) LU100465B1 (ko)
WO (1) WO2019068167A1 (ko)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102168223B1 (ko) * 2020-07-20 2020-10-21 어상규 기초 구조물에 3차원 입체 디자인을 합성한 이미지를 포함하는 건축 정보를 제공하는 방법 및 그 시스템
KR20210106703A (ko) * 2020-02-21 2021-08-31 전남대학교산학협력단 3차원 공간의 의미적 분할 시스템 및 이를 이용한 3차원 공간의 의미적 분할 방법
KR102343053B1 (ko) * 2021-06-17 2021-12-24 주식회사 인피닉 라이다 점군의 3d 바운딩 박스 생성 방법 및 이를 실행하기 위하여 기록매체에 기록된 컴퓨터 프로그램
KR102343048B1 (ko) * 2021-06-17 2021-12-24 주식회사 인피닉 3d 점군 데이터 전처리 방법
KR20220017697A (ko) * 2020-08-05 2022-02-14 한국기술교육대학교 산학협력단 복수의 센서간 캘리브레이션 방법 및 장치
KR102378892B1 (ko) * 2021-06-17 2022-03-28 주식회사 인피닉 3d 점군 데이터 일괄 처리 방법
KR20220048417A (ko) 2020-10-12 2022-04-19 한국전자통신연구원 특성 기반 분할을 활용한 객체 기반의 포인트 클라우드 압축 방법 및 이를 이용한 장치
KR20220048426A (ko) 2020-10-12 2022-04-19 한국전자통신연구원 전역 움직임 예측 및 보상 기반의 점구름 압축 방법 및 이를 위한 장치
KR20220098572A (ko) * 2021-01-04 2022-07-12 광운대학교 산학협력단 3차원 그래프 뉴럴 네트워크 검출을 이용하여 증강현실 서비스를 제공하고 재생하는 장치 및 방법
KR102451797B1 (ko) * 2021-06-01 2022-10-12 씨드로닉스(주) 타겟 객체를 모델링하는 모델링 방법, 모델링 장치 및 모델링 시스템
KR20230095141A (ko) * 2021-12-21 2023-06-29 세메스 주식회사 제조 공장에서 물품을 반송하는 모바일 로봇의 동작 방법
KR20230096612A (ko) 2021-12-23 2023-06-30 한국전자기술연구원 3차원 포인트 클라우드를 이용한 3차원 객체 인식 장치 및 방법

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
LU100465B1 (en) * 2017-10-05 2019-04-09 Applications Mobiles Overview Inc System and method for object recognition
US10823562B1 (en) 2019-01-10 2020-11-03 State Farm Mutual Automobile Insurance Company Systems and methods for enhanced base map generation
CN111708903A (zh) * 2020-06-17 2020-09-25 广东小天才科技有限公司 图片搜题耗时优化的方法、装置、电子设备和存储介质
US20220245510A1 (en) * 2021-02-03 2022-08-04 Accenture Global Solutions Limited Multi-dimensional model shape transfer
CA3220180A1 (en) 2021-05-25 2022-12-01 Lionel LE CARLUER System and method for providing personalized transactions based on 3d representations of user physical characteristics
CN113810736B (zh) * 2021-08-26 2022-11-01 北京邮电大学 一种ai驱动的实时点云视频传输方法及系统
CN113689471B (zh) * 2021-09-09 2023-08-18 中国联合网络通信集团有限公司 目标跟踪方法、装置、计算机设备及存储介质
CN115213896A (zh) * 2022-05-10 2022-10-21 浙江西图盟数字科技有限公司 基于机械臂的物体抓取方法、系统、设备及存储介质
WO2023248091A1 (en) * 2022-06-20 2023-12-28 Applications Mobiles Overview Inc. System and method for recognition based on ontological components
CN115797675B (zh) * 2023-02-09 2023-06-09 青岛图达互联信息科技有限公司 一种人工智能图像处理方法及系统
CN115937907B (zh) * 2023-03-15 2023-05-30 深圳市亲邻科技有限公司 社区宠物识别方法、装置、介质及设备

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6424745B1 (en) 1998-05-19 2002-07-23 Lucent Technologies Inc. Method and apparatus for object recognition
US9910497B2 (en) * 2006-02-08 2018-03-06 Oblong Industries, Inc. Gestural control of autonomous and semi-autonomous systems
US8531396B2 (en) * 2006-02-08 2013-09-10 Oblong Industries, Inc. Control system for navigating a principal dimension of a data space
US9740293B2 (en) * 2009-04-02 2017-08-22 Oblong Industries, Inc. Operating environment with gestural control and multiple client devices, displays, and users
EP2385483B1 (en) * 2010-05-07 2012-11-21 MVTec Software GmbH Recognition and pose determination of 3D objects in 3D scenes using geometric point pair descriptors and the generalized Hough Transform
EP2606472A2 (en) * 2010-06-11 2013-06-26 Estill, James A. System and method for manipulating data having spatial coordinates
CN101908231B (zh) * 2010-07-27 2012-05-30 清华大学 处理含有主平面场景的三维点云重建方法和系统
KR101791590B1 (ko) 2010-11-05 2017-10-30 삼성전자주식회사 물체 자세 인식장치 및 이를 이용한 물체 자세 인식방법
US9235928B2 (en) 2012-01-24 2016-01-12 University Of Southern California 3D body modeling, from a single or multiple 3D cameras, in the presence of motion
US8929602B2 (en) 2013-01-31 2015-01-06 Seiko Epson Corporation Component based correspondence matching for reconstructing cables
US20140267776A1 (en) 2013-03-15 2014-09-18 MJK Holding. LLC Tracking system using image recognition
US9349180B1 (en) 2013-05-17 2016-05-24 Amazon Technologies, Inc. Viewpoint invariant object recognition
US9424461B1 (en) * 2013-06-27 2016-08-23 Amazon Technologies, Inc. Object recognition for three-dimensional bodies
KR101438011B1 (ko) 2013-11-08 2014-09-04 수원대학교산학협력단 3차원 스캐너를 이용한 얼굴 인식 시스템
US9916398B2 (en) 2013-12-10 2018-03-13 Dassault Systemes Laser scan re-engineering of 3D CAD models
WO2015087308A2 (fr) 2013-12-15 2015-06-18 7893159 Canada Inc. Methode et systeme de comparaison de modeles 3d
US9286538B1 (en) 2014-05-01 2016-03-15 Hrl Laboratories, Llc Adaptive 3D to 2D projection for different height slices and extraction of robust morphological features for 3D object recognition
US10163257B2 (en) * 2014-06-06 2018-12-25 Tata Consultancy Services Limited Constructing a 3D structure
CN107209853B (zh) * 2015-01-27 2020-12-08 诺基亚技术有限公司 定位和地图构建方法
US9424610B1 (en) * 2015-03-03 2016-08-23 Mastercard International Incorporated Method and apparatus for performing transaction item identification
US20160284122A1 (en) 2015-03-26 2016-09-29 Intel Corporation 3d model recognition apparatus and method
JP6906304B2 (ja) 2015-12-30 2021-07-21 ダッソー システムズDassault Systemes 埋め込まれた周波数ベースの探索および3dグラフィカルデータ処理
US10977481B2 (en) 2016-06-24 2021-04-13 Skusub LLC System and method for object matching using 3D imaging
GB2554633B (en) * 2016-06-24 2020-01-22 Imperial College Sci Tech & Medicine Detecting objects in video data
US10410043B2 (en) 2016-06-24 2019-09-10 Skusub LLC System and method for part identification using 3D imaging
CN106600686B (zh) * 2016-12-06 2020-05-22 西安电子科技大学 一种基于多幅未标定图像的三维点云重建方法
US10438406B2 (en) * 2016-12-16 2019-10-08 University Of Manitoba Medial axis extraction for complex 3D objects
SE542438C2 (en) 2016-12-21 2020-05-05 Itab Scanflow Ab An automatic in-store registration system
US20180190377A1 (en) * 2016-12-30 2018-07-05 Dirk Schneemann, LLC Modeling and learning character traits and medical condition based on 3d facial features
US10176589B2 (en) 2017-01-31 2019-01-08 Mitsubishi Electric Research Labroatories, Inc. Method and system for completing point clouds using planar segments
US10650278B1 (en) * 2017-07-21 2020-05-12 Apple Inc. Semantic labeling of point clouds using images
US10373372B2 (en) * 2017-10-05 2019-08-06 Applications Mobiles Overview Inc. System and method for object recognition
LU100465B1 (en) * 2017-10-05 2019-04-09 Applications Mobiles Overview Inc System and method for object recognition
US11100659B2 (en) 2018-07-13 2021-08-24 Apple Inc. Object detection using multiple three dimensional scans
US10839530B1 (en) * 2018-09-04 2020-11-17 Apple Inc. Moving point detection
CN109816704B (zh) 2019-01-28 2021-08-03 北京百度网讯科技有限公司 物体的三维信息获取方法和装置
US11132845B2 (en) 2019-05-22 2021-09-28 Microsoft Technology Licensing, Llc Real-world object recognition for computing device

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210106703A (ko) * 2020-02-21 2021-08-31 전남대학교산학협력단 3차원 공간의 의미적 분할 시스템 및 이를 이용한 3차원 공간의 의미적 분할 방법
KR102168223B1 (ko) * 2020-07-20 2020-10-21 어상규 기초 구조물에 3차원 입체 디자인을 합성한 이미지를 포함하는 건축 정보를 제공하는 방법 및 그 시스템
KR20220017697A (ko) * 2020-08-05 2022-02-14 한국기술교육대학교 산학협력단 복수의 센서간 캘리브레이션 방법 및 장치
KR20220048417A (ko) 2020-10-12 2022-04-19 한국전자통신연구원 특성 기반 분할을 활용한 객체 기반의 포인트 클라우드 압축 방법 및 이를 이용한 장치
KR20220048426A (ko) 2020-10-12 2022-04-19 한국전자통신연구원 전역 움직임 예측 및 보상 기반의 점구름 압축 방법 및 이를 위한 장치
KR20220098572A (ko) * 2021-01-04 2022-07-12 광운대학교 산학협력단 3차원 그래프 뉴럴 네트워크 검출을 이용하여 증강현실 서비스를 제공하고 재생하는 장치 및 방법
KR102451797B1 (ko) * 2021-06-01 2022-10-12 씨드로닉스(주) 타겟 객체를 모델링하는 모델링 방법, 모델링 장치 및 모델링 시스템
WO2022255777A1 (ko) * 2021-06-01 2022-12-08 씨드로닉스㈜ 타겟 객체를 모델링하는 모델링 방법, 모델링 장치 및 모델링 시스템
KR20220163306A (ko) * 2021-06-01 2022-12-09 씨드로닉스(주) 타겟 객체를 모델링하는 모델링 방법, 모델링 장치 및 모델링 시스템
KR102378892B1 (ko) * 2021-06-17 2022-03-28 주식회사 인피닉 3d 점군 데이터 일괄 처리 방법
KR102343048B1 (ko) * 2021-06-17 2021-12-24 주식회사 인피닉 3d 점군 데이터 전처리 방법
KR102343053B1 (ko) * 2021-06-17 2021-12-24 주식회사 인피닉 라이다 점군의 3d 바운딩 박스 생성 방법 및 이를 실행하기 위하여 기록매체에 기록된 컴퓨터 프로그램
KR20230095141A (ko) * 2021-12-21 2023-06-29 세메스 주식회사 제조 공장에서 물품을 반송하는 모바일 로봇의 동작 방법
KR20230096612A (ko) 2021-12-23 2023-06-30 한국전자기술연구원 3차원 포인트 클라우드를 이용한 3차원 객체 인식 장치 및 방법

Also Published As

Publication number Publication date
EP3692471A1 (en) 2020-08-12
CA3078140A1 (en) 2019-04-11
US20230063306A1 (en) 2023-03-02
CN111316293A (zh) 2020-06-19
EP3692471A4 (en) 2021-11-10
LU100465B1 (en) 2019-04-09
US20200242330A1 (en) 2020-07-30
US10922526B2 (en) 2021-02-16
WO2019068167A1 (en) 2019-04-11
US20210158017A1 (en) 2021-05-27
US11462031B2 (en) 2022-10-04

Similar Documents

Publication Publication Date Title
US11462031B2 (en) Systems and methods for performing a 3D match search in a 3D database based on 3D primitives and a connectivity graph
CN112052839B (zh) 图像数据处理方法、装置、设备以及介质
US10373372B2 (en) System and method for object recognition
US11810326B2 (en) Determining camera parameters from a single digital image
Barazzetti et al. Orientation and 3D modelling from markerless terrestrial images: combining accuracy with automation
Choi et al. Depth analogy: Data-driven approach for single image depth estimation using gradient samples
US20070185946A1 (en) Method and apparatus for matching portions of input images
CN113012293A (zh) 石刻模型构建方法、装置、设备及存储介质
CN110910437B (zh) 一种复杂室内场景的深度预测方法
US20200057778A1 (en) Depth image pose search with a bootstrapped-created database
US11887341B2 (en) Systems and methods for hue based encoding of a digital image
Triess et al. CNN-based synthesis of realistic high-resolution LiDAR data
Jaffe et al. Remote sensor design for visual recognition with convolutional neural networks
US20210390772A1 (en) System and method to reconstruct a surface from partially oriented 3-d points
CN114463503A (zh) 三维模型和地理信息系统的融合方法及装置
JP6863634B6 (ja) モデル生成装置、学習器生成装置、モデル生成方法、及び、学習器生成方法
Proenca et al. SHREC’15 Track: Retrieval of Oobjects captured with kinect one camera
KR102129060B1 (ko) 단일 깊이 영상을 이용한 내용기반 3차원 모델 검색 방법, 이를 수행하는 3차원 모델 검색 서버 및 컴퓨터로 판독 가능한 기록매체
CN116883770A (zh) 深度估计模型的训练方法、装置、电子设备及存储介质
JP3910811B2 (ja) テクスチャマッピング方法、テクスチャマッピング処理プログラム及びそのプログラムを記録したコンピュータ読取り可能な記録媒体
CN118474421B (en) WebGL-based three-dimensional video fusion method and system
Soontranon et al. 3d modeling from multi-views images for cultural heritage in wat-pho, thailand
Feng et al. Learning Photometric Feature Transform for Free-form Object Scan
Trujillo Scene Representation and Matching for Visual Localization in Hybrid Camera Scenarios
Larsen et al. 3D Reconstruction of Buildings From Images with Automatic Façade Refinement

Legal Events

Date Code Title Description
A201 Request for examination