KR102318023B1 - 에지를 이용한 3차원 모델 생성 - Google Patents

에지를 이용한 3차원 모델 생성 Download PDF

Info

Publication number
KR102318023B1
KR102318023B1 KR1020177009097A KR20177009097A KR102318023B1 KR 102318023 B1 KR102318023 B1 KR 102318023B1 KR 1020177009097 A KR1020177009097 A KR 1020177009097A KR 20177009097 A KR20177009097 A KR 20177009097A KR 102318023 B1 KR102318023 B1 KR 102318023B1
Authority
KR
South Korea
Prior art keywords
edges
planes
determining
axis
images
Prior art date
Application number
KR1020177009097A
Other languages
English (en)
Other versions
KR20170068462A (ko
Inventor
로버트 리
타스님 브루치
사켓 패트카
Original Assignee
삼성전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자 주식회사 filed Critical 삼성전자 주식회사
Publication of KR20170068462A publication Critical patent/KR20170068462A/ko
Application granted granted Critical
Publication of KR102318023B1 publication Critical patent/KR102318023B1/ko

Links

Images

Classifications

    • 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
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • G06T7/593Depth or shape recovery from multiple images from stereo images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10004Still image; Photographic image
    • G06T2207/10012Stereo images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)

Abstract

에지들을 이용한 3차원 모델 생성 방법은, 프로세서를 이용하여 복수의 이미지들로부터 복수의 에지(edge)들을 검출할 수 있고, 상기 프로세서를 이용하여 상기 복수의 이미지들에 걸쳐 대응되는 상기 복수의 에지들로부터 에지 집합을 결정할 수 있다. 복수의 이미지들의 카메라 포즈(pose)들은 상기 프로세서를 통해 상기 에지 집합에 의존하는 비용 함수를 사용하여 결정될 수 있다.

Description

에지를 이용한 3차원 모델 생성{3-Dimensional Model Generation Using Edges}
본 개시는 에지들을 이용한 3차원 모델 생성에 관한 것이다.
3차원 모델은 장면에 대한 다수의 2차원 이미지들로부터 재구성될 수 있다. 2차원 이미지들은 다양한 카메라 포즈들(poses)을 이용하는 하나 이상의 카메라들에 의해 촬영될 수 있다. 종래의 3차원 모델 생성 기술들은 특징 점(feature point) 인식에 의존한다. 일반적으로, 2차원 이미지들은 복수의 2차원 이미지들에 걸쳐 대응되는 특징 점들을 식별하기 위해 처리된다. 특징 점들은 3차원에서 삼각형화될 수 있다. 특징 점들의 실제 위치와 3차원에서 2차원으로 재투영(re-projection)된 특징 점들의 위치 사이의 오차인 재투영 오차는 카메라 포즈 오차와 함께 최소화될 수 있다.
많은 2차원 이미지들은 질감 없는(textureless) 영역들을 포함한다. 질감 없는 영역들은 야외 장면의 2차원 이미지들에서 발생할 수 있으며 실내 장면의 2차원 이미지들에서 종종 발견된다. 질감 없는 영역은 일반적으로 2차원 이미지에 포함된 영역들 중에서, 픽셀들이 동일하거나 매우 유사한 영역을 가리키며, 상기 영역에서의 하나의 픽셀로부터 그 다음 픽셀로의 편차는 최소이거나 존재하지 않는다. 2차원 이미지에 포함된 질감 없는 영역은 일반적으로 세부적인 특징(detail)이 없는 매끄러운 표면을 나타낸다. 질감 없는 영역들의 예들은 벽이나 조리대(countertop) 등과 같이 상대적으로 일정한 색상을 가지는 영역들을 포함할 수 있지만, 이에 한정되는 것은 아니다.
종래의 3차원 모델 생성 기술은 질감이 풍부한 2차원 이미지들을 처리할 때 비교적 잘 수행되는 경향이 있다. 반면에, 2차원 이미지들이 질감 없는 영역들을 포함하는 경우에는 종래의 3차원 모델 생성 기술이 잘 수행되지 못하는 경향이 있다.
종래의 기술들은 작은 영역일지라도 이를 3차원 모델로 재구성하기 위해서는 충분한 특징 점들을 결정하기 위하여 종종 다수의 2차원 이미지들을 필요로 한다. 질감 없는 영역들은 특징 점을 거의 가지지 않거나 전혀 가지지 않기 때문에, 종래의 3차원 모델을 생성하는 기술들은 질감 없는 영역과 관련된 오류가 종종 발생할 수 있다. 더욱이, 카메라 포즈들을 추정하는 것이 부정확해지는 경향이 있다.
본 발명에 따른 방법은, 프로세서를 이용하여, 복수의 이미지들로부터 복수의 에지(edge)들을 검출하는 동작, 및 상기 프로세서를 이용하여, 상기 복수의 이미지들에 걸쳐 대응되는 상기 복수의 에지들로부터 에지 집합을 결정하는 동작을 포함할 수 있다. 또한, 상기 방법은, 상기 프로세서를 이용하여, 상기 에지 집합에 의존하는 비용 함수를 사용하여 상기 복수의 이미지들의 카메라 포즈(pose)들을 결정하는 동작을 포함할 수 있다.
본 발명에 따른 시스템은 실행 가능한 동작들을 개시하도록 프로그래밍된 프로세서를 포함할 수 있다. 상기 실행 가능한 동작들은, 복수의 이미지들로부터 복수의 에지(edge)들을 검출하는 동작 및 상기 복수의 이미지들에 걸쳐 대응되는 상기 복수의 에지들로부터 에지 집합을 결정하는 동작을 포함할 수 있다. 또한, 상기 실행 가능한 동작들은 상기 에지 집합에 의존하는 비용 함수를 사용하여 상기 복수의 이미지들의 카메라 포즈(pose)들을 결정하는 동작을 포함할 수 있다.
본 발명은 프로그램 코드가 저장된 컴퓨터 판독 가능한 저장 매체를 포함한다. 상기 프로그램 코드는 방법을 수행하기 위하여 프로세서에 의해 실행될 수 있다. 상기 방법은, 상기 프로세서를 이용하여, 복수의 이미지들로부터 복수의 에지(edge)들을 검출하는 동작과, 상기 프로세스를 이용하여, 상기 복수의 이미지들에 걸쳐 대응되는 상기 복수의 에지들로부터 에지 집합을 결정하는 동작을 포함할 수 있다. 또한, 상기 방법은, 상기 프로세서를 이용하여, 상기 에지 집합에 의존하는 비용 함수를 사용하여 상기 복수의 이미지들의 카메라 포즈(pose)들을 결정하는 동작을 포함할 수 있다.
본 과제 해결 수단 부분은 단지 개념을 소개하기 위하여 제공된 것일 뿐이며 본 발명의 기술적 사상에 대한 핵심 또는 필수 특징들을 분간하기 위하여 제공되는 것은 아니다. 본 발명의 다양한 특징들과 실시 예들은 첨부 도면으로부터 그리고 이하의 상세한 설명으로부터 명백해질 수 있다.
본 명세서에 설명된 바와 같이 에지 기반의 처리를 이용함으로써, 다른 종래 기술들의 경우보다 더 높은 정확도를 가지고 질감 없는 영역들을 3차원 모델로 렌더링할 수 있다. 질감 없는 영역들에 포함된 특징 점들의 특성 부족으로 인해, 특징 점들에만 의존하는 종래 기술들은 대개 질감 없는 영역들을 렌더링하기에 적합하지 않다. 질감 없는 영역들은 종래 기술에 따라 재구성된 3차원 모델에서 종종 불완전한 것으로 보이기도 한다.
첨부된 도면은 하나 이상의 실시 예들을 도시할 수 있다. 그러나 첨부된 도면이 본 발명을 도시된 실시 예들로 한정하는 것은 아니다.
도 1은 예시적인 데이터 처리 시스템을 도시하는 블록도이다.
도 2는 3차원 모델 생성의 예시적인 방법에 관한 순서도이다.
도 3은 평면을 생성하는 예시적인 방법에 관한 순서도이다.
도 4는 축을 결정하는 예시적인 방법에 관한 순서도이다.
도 5a, 도 5b, 도 5c 및 도 5d는 내부 장면의 서로 다른 이미지들을 나타낸 예시도이다.
도 6은 도 5a, 5b, 5c 및 5d의 장면에 대한 조밀한(dense) 포인트 클라우드(point cloud)를 나타내는 투시도이다.
도 7은 도 6의 조밀한 포인트 클라우드에 대한 평면도이다.
도 8은 생성된 평면을 도시하는 도 6의 조밀한 포인트 클라우드에 대한 다른 평면도이다.
도 9는 거짓 평면(false plane)을 제거한 후의 도 6의 조밀한 포인트 클라우드에 대한 다른 평면도이다.
본 발명은 새로운 특징들을 정의하는 청구항들로 결론지어지지만, 여기에 설명된 다양한 특징들은 도면과 함께 설명을 참작함으로써, 보다 더 잘 이해될 것이다. 본 개시에서 설명된 프로세스(들), 기계(들), 제조(들) 및 그들의 변형들은 단지 예시를 위한 목적으로 제공된다. 여기에서 설명된 어떠한 구조적, 기능적 세부 사항들도 한정적으로 해석되어서는 안 되며, 이들은 단지 청구항들을 뒷받침하기 위한 근거로서, 그리고 상세한 구조에서 설명된 특징들을 통상의 기술자가 다양하게 적절히 이용할 수 있게 하는 예시적인 근거로서 이해되어야 할 것이다. 또한, 본 개시에서 사용된 용어들과 어구들은 한정을 위한 목적으로 쓰인 것이 아니라, 설명된 특징들을 보다 더 잘 이해할 수 있도록 제공된 것이다.
본 발명은 에지(edge)를 이용한 3차원 모델 생성 방법에 관한 것이다. 본 명세서에서 설명된 발명의 해결방안에 따르면, 2차원 이미지들은 그 안에 포함된 에지들을 식별하도록 처리될 수 있다. 에지들은 서로 다른 2차원 이미지들에서 동일한 에지들을 식별할 수 있도록 처리될 수 있다. 카메라 포즈들은, 적어도 부분적으로, 에지들에 의존하는 비용 함수를 이용하여 추정될 수 있다.
3차원 모델은 추정된 카메라 포즈들을 이용하여 생성될 수 있다. 예를 들어, 3차원 모델은 3차원 방(room) 장면일 수 있다. 3차원 모델은 3차원 포인트(point), 삼각형 메시(mesh), 3차원 복셀(voxel) 등을 이용하여 생성될 수 있다. 일 실시 예에 따르면, 3차원 모델의 생성 방법은, 축들을 결정하는 동작, 에지들에 기초하여 평면들을 결정하는 동작, 거짓 평면들을 제거하는 동작, 및 3차원 공간에서 평면들을 렌더링하는 동작과 같은 하나 이상의 추가적인 동작들을 포함할 수 있다. 평면들은 질감 없는 영역들을 나타낼 수 있다.
여기에 설명된 바와 같이 에지 기반의 처리를 활용함으로써, 다른 종래 기술들의 경우보다 더 높은 정확도를 가지고 질감 없는 영역들을 3차원 모델로 렌더링할 수 있다. 질감 없는 영역들에 포함된 특징 점들의 특성 부족으로 인해, 특징 점들에만 의존하는 종래 기술들은 대개 질감 없는 영역들을 렌더링하기에 적합하지 않다. 질감 없는 영역들은 종래 기술에 의해 재구성된 3차원 모델에서 종종 불완전한 것으로 보이기도 한다. 예를 들어, 3차원 모델 내에서 표현되는, 벽과 같은 질감 없는 영역은, 많은 구멍들과 간격들을 가지는 것으로 보일 수도 있고, 또는 부분적으로 형성된 것처럼 보일 수도 있다. 또한, 특징 점들을 이용하여 추정되는 카메라 포즈들은 종종 부정확하며, 이는 부정확한 3차원 모델 생성을 초래할 수 있다.
여기에 개시된 실시 예들은 에지들의 사용에 관한 것이지만, 특징 점들은 에지 기반의 기술들과 조합하여 이용될 수 있다는 것을 이해하여야 한다. 특징 점들과 에지들은 모두, 예를 들어, 카메라 포즈들을 추정하고 평면들을 생성하는 등의 목적으로 사용될 수 있다.
여기에 설명된 발명의 해결방안들은 데이터 처리 시스템에 의해 수행되는 방법 또는 프로세스로서 구현될 수 있다. 일 실시 예에 따르면, 본 발명의 해결방안들은 예컨대 프로세서를 가지는 데이터 처리 시스템과 같은 장치로서 구현될 수 있다. 상기 프로세서는, 프로그램 코드를 실행할 때, 여기에 설명된 하나 이상의 동작들을 수행할 수 있다. 일 실시 예에 따르면, 본 발명의 해결방안들은 프로그램 코드를 저장하는 비 일시적(non-transitory) 컴퓨터 판독 가능한 저장 매체로서 구현될 수 있고, 프로그램 코드가 실행될 때 프로세서 및/또는 시스템이 방법 또는 프로세스를 수행하고/하거나 개시할 수 있다.
예시의 단순화 및 명료성의 목적을 위해, 도면들에 도시된 구성요소들은 반드시 비율에 따라 그려진 것은 아니다. 예를 들어, 일부 구성요소들의 수치들은 명확성을 위해 다른 구성요소들에 비해 과장될 수 있다. 또한, 일치하거나, 유사하거나 또는 비슷한 특징들을 나타내기 위해 참조 번호들이 도면들 사이에서 반복된다.
도 1은 예시적인 데이터 처리 시스템(100)을 도시하는 블록도이다. 도시된 바와 같이, 시스템(100)은 시스템 버스(115) 또는 그 밖의 적절한 회로를 통해 메모리 소자(110)에 연결된 적어도 하나의 프로세서(105), 예컨대 중앙 처리 장치(central processing unit, CPU)를 포함할 수 있다. 시스템(100)은 메모리 소자(110) 내에 프로그램 코드를 저장할 수 있다. 프로세서(105)는 시스템 버스(115)를 통해 메모리 소자(110)로부터 액세스된 프로그램 코드를 실행할 수 있다. 메모리 소자(110)는 예를 들어 로컬 메모리(120)와 같은 하나 이상의 물리적 메모리 장치들과 하나 이상의 벌크(bulk) 저장 장치들(125)을 포함할 수 있다. 로컬 메모리(120)는 프로그램 코드가 실제로 실행되는 동안에 일반적으로 사용되는 램(RAM: random access memory) 또는 그 밖의 비-영구적 메모리 장치(들)를 지칭할 수 있다. 벌크 저장 장치(125)는 하드 디스크 드라이브(HDD: hard disk drive), 솔리드 스테이트 드라이브(SSD: solid state drive), 또는 그 밖의 영구적 데이터 저장 장치로서 구현될 수 있다. 시스템(100)은 프로그램 코드 실행 중에 벌크 저장 장치(125)로부터 프로그램 코드가 인출(retrieve)되는 횟수를 감소시키기 위하여, 적어도 일부 프로그램 코드의 임시 저장을 제공하는 하나 이상의 캐시 메모리들(도시되지 않음)을 포함할 수 있다.
키보드(130), 디스플레이 장치(135), 및 포인팅 장치(140)와 같은 입출력(I/O) 장치들은 선택적으로 시스템(100)에 연결될 수 있다. 몇몇 경우에, 하나 이상의 입출력 장치들은 터치스크린이 디스플레이 장치(135)로 사용되는 경우에서와 같이 서로 통합될 수 있다. 이 경우, 디스플레이 장치(135)는 키보드(130) 및 포인팅 장치(140)를 구현할 수 있다.
입출력 장치들은 시스템(100)에 직접 또는 입출력 제어기들을 통해 연결될 수 있다. 하나 이상의 네트워크 어댑터(145)들은 시스템(100)이 사설 또는 공용 네트워크들을 통해 다른 시스템들, 컴퓨터 시스템들, 원격 프린터들, 및/또는 원격 저장 장치들에 연결될 수 있도록 하기 위해 시스템(100)에 연결될 수 있다. 모뎀들, 케이블 모뎀들, 이더넷 카드들, 및 무선 송수신기들과 같이, 시스템(100)와 함께 사용될 수 있는 서로 다른 유형들의 네트워크 어댑터(145)의 예시일 수 있다. 시스템(100)으로 구현되는 특정 장치에 따라, 네트워크 어댑터(또는 경우에 따라 네트워크 어댑터들)의 특정 유형은 달라질 수 있다.
도 1에 도시된 바와 같이, 메모리 소자(110)는 운영 시스템(150) 및 하나 이상의 어플리케이션(155)들을 저장할 수 있다. 일 실시 예에 따르면, 실행 가능한 프로그램 코드의 형태로 구현되는 운영 시스템(150) 및 어플리케이션(155)은 시스템(100), 특히 프로세서(105)에 의해 실행될 수 있다. 이와 같이, 운영 시스템(150) 및 어플리케이션(155)은 시스템(100)의 통합된 부분으로 간주될 수 있다. 운영 시스템(150), 어플리케이션(155), 및 시스템(100)에 의해 사용되고 생성되고 및/또는 작동되는 그 밖의 데이터 항목들은 시스템(100)에 의해 활용될 때 기능을 부여하는 기능적 데이터 구조들을 의미할 수 있다.
일 실시 예에 따르면, 시스템(100)은 프로그램 코드를 저장 및/또는 실행하기에 적합한 컴퓨터 또는 그 밖의 장치일 수 있다. 시스템(100)은 다양한 컴퓨터 시스템들 및/또는 장치들 중의 임의의 것을 나타낼 수 있으며, 이러한 컴퓨터 시스템들 및 장치들은 프로세서 및 메모리를 포함할 수 있고, 본 실시 예에서 설명된 동작들을 수행할 수 있다. 몇몇 경우들에서, 특정 컴퓨터 시스템 및/또는 장치는 설명된 것보다 더 적은 구성요소들 또는 더 많은 구성요소들을 포함할 수 있다. 시스템(100)은 도시된 바와 같이 단일 시스템으로 구현될 수 있으며, 또는 각각 시스템(100)의 구성과 동일하거나 유사한 구성을 가지는, 네트워크화되거나 상호 연결된 복수의 시스템들로 구현될 수 있다.
시스템(100)은 복수의 2차원 이미지(160)들을 수신할 수 있다. 이때, 수신된 2차원 이미지(160)들은 특정 장면에 대한 이미지일 수 있다. 2차원 이미지(160)들은 하나의 카메라 또는 서로 다른 카메라들을 사용하여 촬영된 이미지일 수 있다. 또한, 2차원 이미지(160)들은 서로 다른 적절한 위치들에서 촬영될 수 있는데, 예를 들면 상이한 카메라 포즈들을 이용하여 촬영된 이미지일 수 있다. 본 발명의 기술 분야에 잘 알려진 바와 같이, "카메라 포즈"는 이미지를 촬영할 때 카메라의 위치 및 방향을 지칭할 수 있다. 이 경우, 이미지는 2차원 이미지이다.
일 실시 예에 따르면, 시스템(100)은 2차원 이미지(160)들 내에서 복수의 에지(edge)들을 검출할 수 있다. 또한, 시스템(100)은 2차원 이미지(160)들에 걸쳐 대응되는 복수의 에지들로부터 에지 집합을 결정할 수 있다. 또한, 시스템(100)은 에지 집합에 의존하는 비용 함수를 이용하여, 2차원 이미지(160)들에 대한 카메라 포즈(165)들을 추정할 수 있다. 또한, 시스템(100)은 카메라 포즈들을 이용하여 3차원 모델(170)을 생성할 수도 있다. 일 실시 예에 따르면, 시스템(100)은 이미지(160)에 포함된 하나 이상의 질감 없는 영역들을 나타내는, 3차원 모델(170)에서의 하나 이상의 평면들을 생성할 수 있다.
도 2는 3차원 모델 생성의 예시적인 방법(200)에 관한 순서도이다. 상기 방법(200)은 도 1을 참조하여 설명된 바와 같은 시스템에 의해 구현될 수 있다.
3차원 모델 생성 방법(200)은 시스템이 이미지들을 수신할 수 있는 205 동작에서 시작할 수 있다. 상기 수신된 이미지들은 사진들과 같은 2차원 이미지들일 수 있다. 또한, 이미지들은 3차원 장면 및 디지털 형식일 수 있다. 일반적으로, 이미지들에 대한 제약은 없을 수 있다. 이미지들은 서로 다른 조명 조건에서 서로 다른 시간에 촬영될 수 있으며, 인간과 같은 비정형 물체(non-rigid object)들을 포함할 수 있다. 일 실시 예에 따르면, 이미지들은 크라우드 소싱(crowd sourcing)을 통해 획득될 수 있다. 이미지들에는 순서가 매겨지지 않을 수 있다. 이미지들은 하나 이상의 질감 없는 영역들을 포함할 수 있다. 또한, 이미지들을 촬영하기 위해 사용되는 카메라들에 대한 제약은 없을 수 있다. 예를 들어, 카메라들은 추가 센서들을 필요로 하지 않는다. 이미지들은 동일 카메라 또는 둘 이상의 서로 다른 카메라들에 의해 촬영될 수 있다.
210 동작에서, 시스템은 이미지들 내의 특징 점들을 검출할 수 있다. 시스템은 공지의 다양한 특징 점 검출 기술들을 이용하여 특징 점들을 검출할 수 있다. 215 동작에서, 시스템은 이미지들에 걸쳐 특징 점들이 대응되도록 매칭할 수 있다. 예를 들어, 시스템은 제1 이미지 내의 어떤 특징 점이 다른 이미지 내에서 발견된 특징 점과 대응되거나 동일한지 결정할 수 있다. 일 실시 예에 따르면, 시스템은 이미지들의 쌍들을 고려할 수 있고, 이러한 이미지 쌍들에 대하여 특징 점들의 대응 여부를 결정할 수 있다. 이미지들의 각 쌍은 특징 점들을 대응시키기 위해 고려될 수 있다.
특징 점 매칭은 시스템이 필터링하거나 제거할 수 있는 특이치(outlier)를 포함할 수 있다. 일 실시 예에 따르면, 예를 들어, 시스템은 특이치 매칭을 이용하여, 모든 이미지 쌍 사이의 기본적인 매트릭스(matrix)를 근사함(approximating)으로써 특이치 특징 점들을 필터링할 수 있다. 특징 점들 사이에서 대응되는 특징 점 쌍들은 트랙들(track)로 구성될 수 있다. 일 실시 예에 따르면, 각 트랙은 이미지와 특징 점 쌍들 간의 관계와 관련된 목록을 특정할 수 있으며, 이 경우 각 트랙에 포함된 각각의 특징 점은 트랙에 열거된 이미지들에 걸쳐 동일한 특징 점으로서 식별될 수 있다. 시스템은 동일한 이미지를 두 번 이상 포함하는 트랙들을 식별할 수 있다. 동일한 이미지를 두 번 이상 포함하는 트랙은 특징 점이 적어도 하나의 다른 이미지에 포함된 다른 특징 점들과 대응됨을 나타낼 수 있다. 따라서, 시스템은 트랙에 두 번 이상 나타나는 이미지를 삭제하거나 제거할 수 있다.
215 동작을 수행함에 있어서, 시스템은 이미지들에 걸쳐 대응되는 특징 점들의 집합을 결정할 수 있다. 특징 점들의 집합은 이미지들 내의 특징 점들의 전체 또는 이미지들 내에서 검출된 특징 점들의 부분집합일 수 있다.
220 동작에서, 시스템은 이미지들로부터 에지들을 검출할 수 있다. 시스템은 수신된 이미지들 내에서 하나 이상의 에지들을 검출하기 위하여 에지 검출 기술을 구현할 수 있다. 다양한 공지의 에지 검출 기술이 사용될 수 있다. 일 실시 예에 따르면, 다양한 공지의 선(line) 검출 기술이 에지들을 식별하기 위해 사용될 수 있다. 225 동작에서, 시스템은 이미지들에 걸쳐 검출된 에지들이 대응되도록 매칭시킬 수 있다. 일 실시 예에 따르면, 전자 장치는, 이미지 쌍에 기초하여, 에지들의 각 쌍이 에피폴라 제약(epipolar constraint)을 만족하는지의 여부를 결정하기 위해 각각의 적당한 에지들의 쌍을 확인할 수 있다. 에피폴라 제약을 사용하는 것은 많은 시간이 소요될 수 있고 상당한 연산 자원들이 필요할 수 있다. 일 실시 예에 따르면, 이전에 매칭된 특징 점들 및 고유한 매트릭스가 에지 매칭을 국한(localize)시키기 위해 사용될 수 있고, 그에 따라 연산 비용이 감소될 수 있다.
일 실시 예에 따르면, 시스템은 에지들에 대한 트랙들을 생성할 수 있다. 트랙은 이미지들의 하나 이상의 쌍들 및 각 이미지에 대응되는 에지를 특정할 수 있다. 예를 들어, 에지들에 대한 트랙은 이미지-에지 쌍들의 목록을 특정할 수 있으며, 이 경우 트랙에서의 각 에지는 트랙에 열거된 이미지들에 걸쳐 동일한 에지로서 식별될 수 있다. 다양한 실시 예에 따르면, 각각의 이미지에서 동일한 에지가 발견되지 않거나 또는 위치하지 않을 수 있다. 이 경우, 시스템이 에지를 거짓 에지(false edge)로 해석할 수 있으므로 트랙은 삭제될 수 있다.
225 동작을 수행함에 있어서, 시스템은 이미지들에 걸쳐 대응되는 에지들의 집합을 결정할 수 있다. 에지들의 집합은 이미지들 내에서 검출된 에지들의 전체이거나 또는 이미지들 내에서 검출된 에지들의 부분집합일 수 있다.
230 동작에서, 시스템은 번들 조정(bundle adjustment)을 수행할 수 있다. 일반적으로, 번들 조정은 이미지들을 촬영하기 위해 사용되는 카메라들의 포즈들 및 장면의 기하학적 구조(scene geometry)를 묘사하는, 3차원 좌표들이 결정되는 과정(process)을 지칭할 수 있다. 예를 들어, 서로 다른 시점들로부터 다수의 3차원 포인트들을 묘사하는 이미지들의 집합이 주어진 경우, 번들 조정은 이미지를 획득하기 위하여 사용되는 카메라(들)의 카메라 포즈들 및 장면의 기하학적 구조를 묘사하는 3차원 좌표들을 정교하게 하는(refining) 것을 포함할 수 있다. 이러한 프로세스는 최적화 기준(optimality criterion)에 따라 표시되는 다양한 파라미터들이 정교해지도록 할 수 있다. 일 실시 예에 따르면, 최적화 기준은 특징 점들의 대응하는 이미지 투영들 및/또는 에지들의 이미지 투영들을 포함할 수 있다. 예를 들어, 시스템은 점증적 번들 조정 프로세스를 수행할 수 있다. 점증적 번들 조정 프로세스의 예는 ACM Transactions on Graphics, vol.25, issue 3, pps. 835-846(2006년 7월)에 실린 스내블리(Snavely) 등의 "사진 관광: 3차원에서의 사진 컬렉션 탐구(Photo tourism: exploring photo collections in 3차원)"에 설명되어 있다.
일 실시 예에 따르면, 번들 조정은 아래의 수학식 1에 나타낸 바와 같은 최적화 기준, 예컨대 비용 함수를 이용하여 수행될 수 있다.
Figure 112017032673104-pct00001
수학식 1에서,
Figure 112017032673104-pct00002
은 선들의 개수이고;
Figure 112017032673104-pct00003
는 특징 점들의 개수이며;
Figure 112017032673104-pct00004
는 선들과 점들 사이의 가중치를 조정할 수 있다. 예를 들어,
Figure 112017032673104-pct00005
은 선에 대해서만 사용될 수 있고,
Figure 112017032673104-pct00006
은 특징 점에 대해서만 사용될 수 있다. 수학식 1은 i가 n까지인 카메라들 및 j가 m까지인 트랙들에 대하여 적용될 수 있다.
설명을 위해, 수학식 1은 하기의 수학식 2와 수학식 3에 나타낸 두 개의 하위 식들로 형성되는 것으로 이해할 수 있다. 수학식 2는 에지들에 종속되며, 수학식 3은 특징 점들에 종속된다.
Figure 112017032673104-pct00007
Figure 112017032673104-pct00008
수학식 2는,
Figure 112017032673104-pct00009
가 i번째 카메라에 대하여 j번째 선에 대한 가중치일 때, 선들 또는 에지들에 대한 재투영 오차로 간주될 수 있다. 첫 번째 부분
Figure 112017032673104-pct00010
은 에지들의 방향에 대한 오차를 정량화할 수 있다. 예를 들어, 첫 번째 부분
Figure 112017032673104-pct00011
은 이미지에서의 원래 에지와 3차원 공간에 투영된 에지 사이의 각도를 정의한다. 두 번째 부분
Figure 112017032673104-pct00012
은 에지들의 길이에 대한 오차를 정량화할 수 있다. 예를 들어, 두 번째 부분
Figure 112017032673104-pct00013
은 원래 선의 길이와 3차원 공간에 투영된 선 사이의 차이를 정의할 수 있다. 세 번째 부분
Figure 112017032673104-pct00014
은 종단점(end point)들에 대한 오차를 정량화할 수 있다. 예를 들어, 세 번째 부분
Figure 112017032673104-pct00015
은 선과 3차원 공간에 투영된 선의 종단점들에 대한 재투영 오차를 측정할 수 있다.
Figure 112017032673104-pct00016
,
Figure 112017032673104-pct00017
,
Figure 112017032673104-pct00018
값들은 각각 첫 번째 부분, 두 번째 부분, 및 세 번째 부분의 가중치를 조정할 수 있다.
이미지 i에서 선 j의 종단점으로서
Figure 112017032673104-pct00019
이 주어지고, 이미지 i에서 선 j의 3차원 좌표의 투영의 종단점으로서
Figure 112017032673104-pct00020
가 주어진 경우, 첫 번째 및 두 번째 부분들은 아래의 수학식 4 및 수학식 5에 나타낸 바와 같이 결정될 수 있다. 아래의 수학식 4에서,
Figure 112017032673104-pct00021
은 x 축이다.
Figure 112017032673104-pct00022
Figure 112017032673104-pct00023
수학식 3은 재투영 비용을 정의할 수 있으며, ACM Transactions on Graphics, vol. 25, issue 3, pps. 835-846(2006년 7월)에 실린 스내블리(Snavely) 등의 "사진 관광: 3차원에서 사진 컬렉션 탐구(Photo tourism: exploring photo collections in 3차원)"에 더 설명되어 있다. 일반적으로,
Figure 112017032673104-pct00024
는 카메라 포즈들을 포함하는 3차원에서 2차원으로의 변환을 위한 매트릭스일 수 있다. 일 실시 예에 따르면, 수학식 3의
Figure 112017032673104-pct00025
는 스내블리(Snavely) 등의 논문에 정의된 바와 같이 구현될 수 있다. 예를 들어,
Figure 112017032673104-pct00026
는 회전(3개의 파라미터들로 구성된), 카메라 중심(3개의 파라미터들로 구성된), 및 초점 길이를 포함하는 카메라 파라미터들의 벡터(또는 매트릭스)일 수 있다.
일 실시 예에 따르면, 수학식 3의
Figure 112017032673104-pct00027
는 카메라 포즈들을 비롯한 카메라 특성들을 나타내는 매트릭스일 수 있다. 예를 들어,
Figure 112017032673104-pct00028
는 내적 및 외적 카메라 파라미터들을 나타내는 매트릭스일 수 있다. 내적 카메라 파라미터들은 카메라의 투영 특성들과 관련되며, 초점 길이, 이미지 센서 포맷, 및 주요 점(principal point)에 대한 파라미터들을 포함할 수 있다. 외적 파라미터들은, 예를 들어 카메라 중심과 같은, 세계 좌표(world coordinate)에서의 카메라 변형 및 회전을 포함할 수 있다.
n개 카메라들의 집합은
Figure 112017032673104-pct00029
에 의해 파라미터화될 수 있다. m개 트랙들의 집합은
Figure 112017032673104-pct00030
에 의해 파라미터화될 수 있다.
Figure 112017032673104-pct00031
는 i번째 카메라에서 j번째 트랙의 관측된 투영을 나타낼 수 있다. 따라서
Figure 112017032673104-pct00032
는 파라미터
Figure 112017032673104-pct00033
를 가진 카메라에서 3차원 점 p를 그 점의 2차원 투영에 매핑하는 투영 방정식을 의미할 수 있다.
Figure 112017032673104-pct00034
는 카메라 i가 점 j를 관측하는 경우
Figure 112017032673104-pct00035
이고, 그렇지 않은 경우
Figure 112017032673104-pct00036
인, 지시 변수(indicator variable)로서 사용될 수 있다.
전술한 비용 함수를 최소화하는, 230 동작에 이어서, 이미지들에 대한 카메라 포즈들이 결정될 수 있다. 전술한 바와 같이, 카메라 포즈들은 카메라(들)의 위치 및 방향을 정의할 수 있다. 일 실시 예에 따르면, 결정된 카메라 포즈들을 이용하여, 3차원 모델이 생성될 수 있다.
도 3은 3차원 재구성의 다른 예시적인 방법(300)을 도시하는 흐름도이다. 이 방법(300)은 도 1을 참조하여 설명한 바와 같은 시스템에 의해 수행될 수 있다. 일 실시 예에 따르면, 이 방법(300)은 도 2 에서 전술한 방법(200)이 수행되고, 카메라 포즈들이 결정된 상태에서 시작될 수 있다.
305 동작에서, 시스템은 조밀한 재구성(dense reconstruction)을 수행할 수 있다. 조밀한 재구성은 일반적으로 카메라 포즈들을 이용하여 수집된 장면에 대한 이미지들로부터 3차원 모델, 예컨대 조밀한 포인트 클라우드(dense point cloud)를 생성하는 것을 의미할 수 있다. 조밀한 포인트 클라우드는 특징 점들의 집합 및 에지들의 집합을 포함할 수 있다. 일 실시 예에 따르면, 305 동작에서 사용되는 조밀한 재구성 기술은 IEEE 패턴분석 및 기계 인텔리전스에 관한 저널(IEEE Transactions on Pattern Analysis and Machine Intelligence), vol. 32, issue 8, pps. 1362-1376 (2010년)에 실린 후루카와(Furukawa) 등의 "정확하고, 조밀하고, 견고한 다중뷰 입체영상(Accurate, Dense, and Robust Multi-View Stereopsis)"에 설명된 것일 수 있다.
310 동작에서, 시스템은 3차원 모델에 대한 3개의 주요한 축들을 결정할 수 있다. 일 실시 예에 따르면, 3차원 모델은 예컨대 방과 같은 실내의 환경 또는 장면에 대한 것일 수 있다. 대부분의 경우, 실내 환경은 결정 가능한 세 개의 주요 축들을 포함할 수 있다. 315 동작에서, 시스템은 310 동작에서 결정된 각각의 주요 축들을 따라 최소 및 최대 꼭지점(corner)들을 결정할 수 있다.
320 동작에서, 시스템은 에지들에 대한 평면들을 결정할 수 있다. 최소 및 최대 꼭지점들이 결정되면, 시스템은 조밀한 포인트 클라우드에 포함된 에지들에 평면들을 맞출 수 있다. 예를 들어, 각 에지에 대하여, 시스템은 이전에 결정된 최소 및 최대 꼭지점들로 확장되는 평면들을 포함하는 주요 축들을 따라, 두 개의 수직 평면들을 배치함으로써 평면들을 에지에 맞추려고 시도할 수 있다. 일 실시 예에 따르면, 시스템은 이미지에 포함된 벽들이나 그 밖의 조리대나 캐비넷 등과 같은 표면들을 식별하는 것에 초점을 맞출 수 있다.
다양한 실시 예에 따르면, 시스템은 에지들의 집합으로부터 에지를 선택할 수 있다. 시스템은 선택된 에지가 정렬되는 특정 축을 결정할 수 있다. 예를 들어, 시스템은 에지가 x축에 맞춰 정렬되어 있다고 판단하는 경우, 선택된 에지에 대하여 두 개의 평면을 생성할 수 있다. 예를 들어, x축에 맞춰 정렬된 에지는 x-z 평면에 평행한 에지를 따라 제1 평면을 생성하는데 사용될 수 있고, x-y 평면에 평행한 에지를 따라 제2 평면을 생성하는데 사용될 수 있다. 시스템은, 예를 들어, y-z 평면에 평행한 평면을 생성하지 않을 수 있다.
일 실시 예에 따르면, 시스템은 서로 평행하고 가까운, 예컨대 미리 결정된 거리 내에 있는, 평면들을 더 식별할 수 있다. 시스템은 미리 결정된 거리 내에서 서로 평행한 평면들을 동일한 평면으로 판단할 수 있다. 시스템은 식별된 평면들을 단일 평면으로 병합하거나 결합할 수 있다.
다양한 실시 예에 따르면, 에지들에 대한 평면들을 결정하는 동작은, 평면들을 서로에 대하여 절단하는 동작을 포함할 수 있다. 예를 들면, 한 방향으로 연장되는 평면은, 상기 한 방향으로 연장되는 평면에 대하여 수직한 평면에 의해 교차되거나 또는 절단될 수 있다. 다른 수직 평면들에 의한 평면들의 교차 또는 절단은, 평면들에 대한 세그먼트(segment)들을 정의하는 역할을 할 수 있다. 세그먼트는, 예를 들어, 교차하는 두 개의 수직 평면들 사이의 평면의 일부이거나, 또는 최소 및 최대 꼭지점들에 의해 정의된 바와 같은 외부 에지 및 교차하는 수직 평면 사이의 평면의 일부일 수 있다.
325 동작에서, 시스템은 거짓 평면(false plane)들을 식별할 수 있다. 320 동작을 참조하면, 생성된 각각의 평면은 실제 평면(true plane)이 아닐 수 있다. 일 실시 예에 따르면, 시스템은 평면의 각 측면에 특징 점이 위치하는지 여부에 따라 실제 평면과 거짓 평면을 구별할 수 있다. 시스템은 예를 들어 평면의 일 측면에는 3차원 특징 점들이 위치하지만, 다른 측면에는 3차원 특징 점들이 위치하지 않는 평면을 실제 평면으로 결정할 수 있다. 실제 평면은, 예를 들면, 벽, 부분적인 벽, 칸막이(devider), 또는 그 밖의 질감 없는 표면일 수 있다. 또한, 실제 평면은, 예를 들면, 평면 자체에 3차원 특징 점들을 가질 수도 있다. 한편, 시스템은 평면의 양 측면에 3차원 특징 점들을 가지는 평면을 거짓 평면이라고 결정할 수 있다.
일 실시 예에 따르면, 평면이 거짓 평면인지의 여부에 대한 결정은, 평면 전체에 대하여 전체적으로 이루어질 수 있다. 시스템은, 예를 들면, 거짓 평면으로 결정된 평면을 모두 제거할 수 있다. 다양한 실시 예에 따르면, 평면이 거짓 평면인지의 여부에 대한 결정은 세그먼트 단위별로 수행될 수 있다. 이 경우, 시스템은, 전술한 기준을 이용하여, 거짓 평면으로 결정된 평면의 세그먼트들만 제거할 수 있다. 이를 통해, 평면의 일부, 예컨대 하나 이상의 세그먼트들이 실제 평면으로 남아있도록 하는 반면, 거짓 평면으로 결정된 평면의 다른 세그먼트들은 제거될 수 있다.
330 동작에서, 시스템은 거짓 평면들을 제거하거나 삭제할 수 있다. 330 동작을 수행함으로써, 시스템이 실제 평면들이라고 결정한 평면들만 남길 수 있다. 일 실시 예에 따르면, 일단 실제 평면들이 결정되고 거짓 평면들이 제거되면, 시스템은 장면에 포함된 벽들을 보다 정확하게 표현할 수 있다. 이 경우, 시스템은, 예를 들어 평면들과 조밀한 포인트 클라우드와 같은 표현들을 모두 더 잘 정렬할 수 있도록, 결정된 평면들에 대하여 포인트 클라우드를 보정하거나 또는 조정할 수 있다.
335 동작에서, 시스템은 평면들을 렌더링(rendering)할 수 있다. 시스템은, 예를 들어 최종 평면 생성의 일부로서, 3차원 모델 내의 평면들을 렌더링할 수 있고, 단단한 영역으로 완전히 형성할 수 있다. 상기 평면들은, 특징 점들에만 의존하여 생성된, 3차원 모델 내의 질감 없는 영역들에서 일반적으로 발견되는 구멍들이나 또는 그 밖의 가공물(artifact)들을 포함하지 않는다. 또한, 335 동작의 일부로서, 시스템은 질감(texture)을 평면들 상에 투영할 수 있다.
도 4는 축들을 결정하는 예시적인 방법(400)에 관한 순서도이다. 이 방법(400)은 도 1을 참조하여 설명된 바와 같은 시스템에 의해 수행될 수 있다. 일 실시 예에 따르면, 이 방법(400)은 도 3의 310 동작을 구현하기 위해 수행될 수 있다.
405 동작에서, 시스템은 이미지들로부터 결정된 에지들을 서로 다른 버킷(bucket)들로 그룹화할 수 있다. 시스템은 이미지들에 걸쳐 대응되는 에지들의 집합의 원소들인 에지들에 대하여 동작을 수행할 수 있다. 시스템은 에지의 방향에 따라 에지들을 세 개의 서로 다른 버킷들로 그룹화할 수 있다. 시스템은, 예를 들면, 같은 방향의 에지들, 및/또는 기 설정된 범위 이내의 방향을 가지는 에지들을 동일한 버킷에 배치하거나 할당할 수 있다. 본 발명에서 설명되는 용어 "버킷(bucket)"은 동일하거나 또는 유사한 방향을 가지는 에지들의 집합에 포함된 에지들의 부류(class)를 지칭한다.
410 동작에서, 시스템은 가장 많은 수의 에지들을 가지는 버킷을 제1 축으로 결정할 수 있다. 가장 많은 수의 에지들을 가지는 버킷은 가장 주요한 방향으로 간주될 수 있고 세 개의 직교하는 축들 중의 하나, 예컨대 제1 축으로 간주될 수 있다. 415 동작에서, 시스템은 두 번째로 많은 수의 에지들을 가지는 버킷을 제2 축으로 결정할 수 있다(여기에서 두 번째로 많은 수의 에지들은 첫 번째로 많은 수의 에지들보다 적다). 두 번째로 많은 수의 에지들을 가지는 버킷은 두 번째로 주요한 방향으로 간주될 수 있고 세 개의 직교하는 축들 중의 하나, 예컨대 제2 축으로 간주될 수 있다.
420 동작에서, 시스템은 제1 주요 축과 제2 주요 축 사이의 직교성(orthogonality)을 보정할 수 있다. 하나의 실시 예에서, 시스템은 제2 축이 제1 축에 직각을 이루도록 그램-슈미트 기술(Gram-Schmidt technique)을 제2 축에 적용할 수 있다. 그램-슈미트(Gram-Schmidt)와 같은 보정 조치를 적용함으로써, 시스템은 제2 축이 제1 축에 정확하게 직각을 이루도록 할 수 있다.
425 동작에서, 시스템은 제1 축 및 제2 축에 따라 제3 축을 결정할 수 있다. 시스템은 제1 축과 제2 축의 교차 곱(cross-product)을 세 번째로 가장 주요한 방향을 나타내는 제3 축으로 결정할 수 있다.
도 4를 참조하여 설명된 프로세스는 결과적으로 생성되는 축들이 서로 수직이 되도록 할 수 있다. 조밀한 점들로부터 계산된 법선(normal)들에 의존하는, 주요한 방향들을 결정하기 위한 종래 기술들은 질감 없는 영역들의 존재로 인해 부정확해지는 경향이 있다.이에 반해, 본 발명의 다양한 실시 예에 따르면, 시스템은 필요에 따라 제2 축에 보정을 적용함으로써 축들이 서로 직각을 이루도록 할 수 있고, 제1 축과 제2 축의 교차 곱(cross-product)으로 제3 축을 산출함으로써 세 개의 축 모두가 서로 수직이 되도록 할 수 있다.
도 5a, 도 5b, 도 5c, 도 5d는 장면의 이미지들을 나타낸 예시도이다. 도 5a, 도 5b, 도 5c, 도 5d에 포함된 사진들은 실내의 방을 나타낸다. 도시된 바와 같이, 도 5a, 도 5b, 도 5c, 도 5d 의 이미지들은 서로 다른 카메라 포즈들을 이용하여 촬영한 이미지들을 나타낼 수 있다.
도 6은 도 5a, 5b, 5c 및 5d의 장면에 대한 조밀한 포인트 클라우드를 나타내는 투시도이다. 도 6의 조밀한 포인트 클라우드는 복수의 이미지들에 걸쳐 대응되는 특징 점들이 검출된 것을 나타낼 수 있다. 또한, 조밀한 포인트 클라우드는, 세 개의 축들이 결정된 이후에, 이미지들에 걸쳐 대응되고 조밀한 포인트 클라우드 내에 위치하는 에지(605)들을 나타낼 수 있다.
도 7은 도 6의 조밀한 포인트 클라우드에 대한 평면도이다. 상기 평면도는 y축을 내려다보는 관점에서 조밀한 포인트 클라우드를 도시한 것으로, 여기에서 y축과 평행한 수직선들은 점들로 나타난다. 도 6에서 y축에 대하여 정렬된 에지들은 점(705)들로 나타난다. 또한, 도 7은 결정된 축들에 대한 최소 및 최대 꼭지점들을 도시할 수 있다. 이 예에서는, 평면도이므로, 최소 및 최대 꼭지점들이 x-z 평면에 대하여 그려져 있다. 최소 및 최대 코너들은 실내 방의 경계 또는 영역을 정의하기 위해 사용될 수 있다.
도 8은 생성된 평면들을 도시하는 도 6의 조밀한 포인트 클라우드에 대한 다른 평면도이다. 도 8에 도시된 바와 같이, 도 8에 포함된 평면들은 검출된 에지들에 대하여 생성된 평면일 수 있다. 도시된 바와 같이, 에지들에 대하여 생성된 평면들은 종단점(endpoint, 705)들을 통해 선들로 표현될 수 있다. 이러한 선들은 x-y 평면에 평행한 평면들을 나타내는 x축과 평행한 선들 및 y-z 평면에 평행한 평면들을 나타내는 z축과 평행한 선들일 수 있다. 에지를 나타내는 각각의 점(705)은 그 점을 지나가는 x축 방향으로의 선(평면) 및 z축 방향으로의 선(평면)을 포함할 수 있다. 도 8은 평면들의 실제 유형과 거짓 유형을 모두 포함할 수 있다. 거짓 평면들은 도 8에서 도면부호 805로 표시될 수 있다. 도시된 바와 같이, 거짓 평면(805)들은 형성된 평면의 각각의 면상에 위치하는 점들을 포함할 수 있다.
도면부호 810과 815로 표시된 평면들은 복수의 평면들이 미리 결정된 거리 내에 위치하고 단일 평면으로 병합될 수 있는 예들을 도시한 것이다. 전술한 바와 같이, 평면들은 거짓 평면들을 제거하거나 식별하기 전에 병합될 수 있다. 병합 이후에, 평면(810)들을 병합하여 얻어지는 평면은 평면들을 교차시킴으로써 5개의 세그먼트들로 분할되는 것을 볼 수 있다. 예를 들어, 평면(815)들이 병합되고, 그 밖의 평행하고 가까운 평면들 또한 병합될 수 있다. 화살표(820)들은 평면(810)들을 병합하여 얻어지는 평면의 세그먼트들을 가리킨다.
도 9는 거짓 평면(false plane)을 제거한 후의 도 6의 조밀한 포인트 클라우드에 대한 다른 평면도이다. 도시된 바와 같이, 거짓 평면들(도 8의 도면부호 805 포함)은 평면도로부터 제거될 수 있으며, 거짓 평면들이 제거된 평면도에는 실내의 벽들이나 문들로 렌더링될 수 있는 실제 평면들이 포함될 수 있다. 도 9의 예에서, 거짓 평면의 제거는 세그먼트별로 수행될 수 있다. 도시된 바와 같이, 일부 세그먼트(820)들은 거짓 평면들로 결정되어 제거되는 반면, 그 밖의 세그먼트들은 실제 평면으로 결정되어 평면도에 포함될 수 있다.
여기에 사용된 용어는 특정 실시 예들을 설명하기 위한 것일 뿐, 한정하고자 하는 것은 아니다. 그럼에도 불구하고, 본 명세서 전반에 걸쳐 적용되는 몇 가지 용어들의 정의가 제시될 수 있다.
여기에 정의되는 바와 같이, 단수 형태의 용어는 문맥이 명백히 다르게 지시하지 않는 한, 복수의 의미를 포함할 수 있다.
여기에 정의되는 바와 같이, "다른"이라는 용어는 적어도 두 번째 또는 그 이상을 의미할 수 있다.
여기에 정의되는 바와 같이, "적어도 하나", "하나 이상", "및/또는"이라는 용어는 명백히 다르게 지시하지 않는 한, 결합적인 경우나 분리적인 경우 모두에 제한을 두지 않는 표현일 수 있다. 예를 들어, "A, B 및 C 중의 적어도 하나", "A, B 또는 C 중의 적어도 하나", "A, B 및 C 중의 하나 이상", "A, B 또는 C 중의 하나 이상", "A, B 및/또는 C"의 표현들은 A 단독으로, B 단독으로, C 단독으로, A와 B 함께, A와 C 함께, B와 C 함께, 또는 A, B, C 모두를 의미할 수 있다.
여기에 정의되는 바와 같이, "자동적으로"라는 용어는 사용자의 개입이 없는 것을 의미할 수 있다.
여기에 정의되는 바와 같이, "컴퓨터 판독 가능한 저장 매체"라는 용어는 명령 실행 시스템, 장치, 또는 기구에 의하거나 또는 관련하여 사용하기 위한 프로그램 코드를 포함하거나 또는 저장하는 저장 매체를 의미할 수 있다. 여기에 정의되는 바와 같이, "컴퓨터 판독 가능한 저장 매체"는 그 자체로는 일시적인 전파 신호가 아니며, 전자 저장 장치, 자기 저장 장치, 광 저장 장치, 전자기 저장 장치, 반도체 저장 장치, 또는 이들의 임의의 적절한 조합일 수 있지만, 이에 한정되는 것은 아니다. 메모리 소자는, 여기에 설명되는 바와 같이, 컴퓨터 판독 가능한 저장 매체의 예시일 수 있다. 컴퓨터 판독 가능한 저장 매체의 구체적인 예로서, 휴대용 컴퓨터 디스켓, 하드 디스크, 램(RAM: random access memory), 롬(ROM: read-only memory), 이피롬(EPROM: erasable programmable read-only memory), 플래시 메모리, 에스램(SRAM: static random access memory), 휴대용 시디롬(CD-ROM: compact disk read-only memory), 디브이디(DVD: digital versatile disk), 메모리 스틱, 플로피 디스크, 펀치 카드(punch-card) 또는 기록된 명령을 가지는 홈 내의 융기 구조와 같은 기계적으로 인코딩된 장치, 및 이들의 임의의 적절한 조합 등이 가능하다.
여기에 정의되는 바와 같이, "연결된"이라는 용어는 다르게 명시되지 않는 한, 임의의 개입 요소 없이 직접 연결되거나 또는 하나 이상의 개입 요소를 통해 간접적으로 연결되는 것을 의미할 수 있다. 두 개의 요소들은 통신 채널, 경로, 네트워크, 또는 시스템을 통해 기계적으로, 전기적으로, 또는 통신에 의해 연결될 수 있다.
여기에 정의되는 바와 같이, "실행 가능한 동작" 또는 "동작"이라는 용어는 문맥이 다르게 지시하지 않는 한, 데이터 처리 시스템 또는 데이터 처리 시스템 내의 프로세서에 의해 수행되는 과업(task)일 수 있다. 실행 가능한 동작의 예로는 "처리(processing)", "산출(computing)", "계산(calculating)", "결정(determining)", "표시(displaying)", "비교(comparing)" 등을 포함하지만, 이들에 제한되지는 않는다. 이에 대하여, 동작은 컴퓨터 시스템 레지스터 및/또는 메모리 내의 물리적(전자적) 양으로 표현된 데이터를 컴퓨터 시스템 메모리 및/또는 레지스터 또는 그 밖의 정보 저장, 전송 또는 표시 장치 내에 물리적 양으로 유사하게 표현된 다른 데이터로 조작하고 변환하는 데이터 처리 시스템(예컨대, 컴퓨터 시스템) 또는 유사한 전자 컴퓨팅 장치의 작용 및/또는 프로세스를 의미할 수 있다.
여기에 정의되는 바와 같이, "포함하다", "구비하다", "가지다"라는 용어는 언급된 구성요소, 특징, 단계, 동작 등의 존재를 명시하는 것일 수 있지만, 언급되지 않은 그 밖의 구성요소, 특징, 단계, 동작 등의 존재나 추가 가능성을 배제하지는 않는다.
여기에 정의되는 바와 같이, "~의 경우"라는 용어는 문맥에 따라 "~한(할) 때" 또는 "~에 대응하여" 등을 의미할 수 있다. 예를 들어, "~이 결정된 경우"라는 문구는 문맥에 따라 "~이 결정될 때" 또는 "~의 결정에 대응하여"라는 의미로 해석될 수 있다. 마찬가지로, "어떤 조건이나 이벤트가 검출된 경우"라는 문구는 "어떤 조건이나 이벤트가 검출될 때" 또는 "어떤 조건이나 이벤트의 검출에 대응하여"라는 의미로 해석될 수 있다.
여기에 정의되는 바와 같이, "하나의 실시 예" 또는 "실시 예(들)"라는 용어는 실시 예와 관련하여 설명된 특정 특징, 구조, 특성 등이 본 개시 내에서 설명된 적어도 하나의 실시 예에 포함됨을 의미할 수 있다. 따라서 본 개시를 통틀어 "하나의 실시 예에서" 또는 "실시 예(들)에서"라는 문구는 모두 동일한 실시 예를 지칭하는 것일 수도 있지만, 반드시 그런 것은 아니다.
여기에 정의되는 바와 같이, "출력"이라는 용어는 장치와 같은 물리적 메모리 소자에 저장하는 것, 디스플레이 또는 그 밖의 주변 출력 장치에 기록하는 것, 다른 시스템으로 송신하거나 전송하는 것, 내보내는 것 등을 의미할 수 있다.
여기에 정의되는 바와 같이, "복수"라는 용어는 둘 또는 그 이상을 의미할 수 있다.
여기에 정의되는 바와 같이, "프로세서(processor)"라는 용어는 프로그램 코드에 포함된 명령을 수행하도록 구성된 적어도 하나의 하드웨어 회로를 의미할 수 있다. 하드웨어 회로는 집적 회로일 수 있다. 프로세서의 예로는, 중앙 처리 장치(CPU), 어레이 프로세서(array processor), 벡터 프로세서(vector processor), 디지털 신호 프로세서(DSP), FPGA(field-programmable gate array), PLA(programmable logic array), ASIC(application specific integrated circuit), 프로그램 가능 논리 회로(programmable logic circuitry), 및 제어기(controller)를 포함할 수 있다.
여기에 정의되는 바와 같이, "~에 반응하여"라는 용어는 동작이나 이벤트에 즉시 반응하거나 대응하는 것을 의미할 수 있다. 예를 들어, 제2 동작이 제1 동작에 반응하여 수행되면, 제1 동작의 발생과 제2 동작의 발생 사이에는 인과 관계가 있을 수 있다. 따라서 "~에 반응하여"라는 용어는 인과 관계를 나타낼 수 있다.
여기에 정의되는 바와 같이, 용어 "사용자"는 사람을 의미할 수 있다.
본 명세서에서는 다양한 구성요소들을 설명하기 위해 제1(또는 첫 번째), 제2(또는 두 번째)와 같은 용어를 사용할 수 있다. 달리 명시되지 않는 한, 또는 문맥상으로 명백히 다르게 해석되지 않는 한, 이러한 용어는 하나의 구성요소를 다른 구성요소와 구별하기 위한 목적으로만 사용될 수 있으므로, 이들 구성요소들은 이러한 용어에 의해 제한되지 않아야 한다.
컴퓨터 프로그램 제품은 프로세서로 하여금 본 발명의 실시 예들을 수행하게 하기 위한 컴퓨터 판독 가능한 프로그램 명령어들을 가지는 컴퓨터 판독 가능한 저장 매체(또는 매체들)을 포함할 수 있다. 여기에 설명된 컴퓨터 판독 가능한 프로그램 명령어는 컴퓨터 판독 가능한 저장 매체로부터 각각의 컴퓨팅/프로세싱 장치로, 또는 예를 들어 인터넷, LAN, WAN, 및/또는 무선 네트워크와 같은 네트워크를 통하여 외부의 컴퓨터 또는 외부의 저장 장치로 다운로드 될 수 있다. 네트워크는 동 전송 케이블, 광 전송 섬유, 무선 전송, 라우터, 방화벽, 스위치, 게이트웨이 컴퓨터 및/또는 에지 서버를 포함한 에지 장치를 포함할 수 있다. 각 컴퓨팅/프로세싱장치의 네트워크 어댑터 카드 또는 네트워크 인터페이스는 네트워크로부터 컴퓨터 판독 가능한 프로그램 명령어를 수신하고 각각의 컴퓨팅/프로세싱 장치 내의 컴퓨터 판독 가능한 저장 매체에 저장하기 위한 컴퓨터 판독 가능한 프로그램 명령어를 전송할 수 있다.
여기에 설명되는 발명의 해결방안에 대한 동작들을 수행하기 위한 컴퓨터 판독 가능한 프로그램 명령어는 어셈블러(assembler) 명령, 명령어 집합 구조(ISA: instruction-set-architecture) 명령, 기계 명령, 기계 의존 명령, 마이크로코드(microcode), 펌웨어 명령, 상태 설정 데이터(state-setting data)일 수 있거나, 또는 객체 지향 프로그래밍 언어 및/또는 절차적 프로그래밍 언어를 포함하는 하나 이상의 프로그래밍 언어의 임의의 조합으로 작성된 소스 코드(source code) 또는 오브젝트 코드(object code)일 수 있다. 컴퓨터 판독 가능한 프로그램 명령어는 사용자의 컴퓨터에서 전적으로 또는 부분적으로 단독형 소프트웨어 패키지로서 실행될 수 있고, 사용자 컴퓨터에서 부분적으로 그리고 원격 컴퓨터에서 부분적으로 실행될 수 있고, 원격 컴퓨터나 서버에서 전적으로 실행될 수 있다. 후자의 시나리오에서, 원격 컴퓨터는 LAN 또는 WAN을 포함하는 임의의 유형의 네트워크를 통해 사용자의 컴퓨터와 연결될 수 있거나 또는 외부 컴퓨터와의 연결이 만들어질 수 있다(예를 들면, 인터넷 서비스 제공자(ISP: internet service provider)를 이용하여 인터넷을 통해). 일부의 경우에, 예를 들어 프로그램 가능 논리 회로(programmable logic circuitry), FPGA, 또는 PLA와 같은, 전자 회로는 여기에 설명된 발명의 해결방안의 양태들을 수행하기 위해, 전자 회로를 개인화하기 위해 컴퓨터 판독 가능한 프로그램 명령어의 상태 정보를 이용함으로써 컴퓨터 판독 가능한 프로그램 명령어를 실행할 수 있다.
본 발명의 해결방안의 실시 예는 방법, 장치(시스템), 및 컴퓨터 제품의 흐름도 및/또는 블록도를 참조하여 설명될 수 있다. 흐름도 및/또는 블록도에서의 각각의 블록들 및 그들의 조합은, 예를 들면 프로그램 코드와 같은, 컴퓨터 판독 가능한 프로그램 명령어에 의해 구현될 수 있다는 것이 이해될 것이다.
이러한 컴퓨터 판독 가능한 프로그램 명령어는 기계를 생산하기 위해 범용 컴퓨터, 특수 목적 컴퓨터, 또는 다른 프로그램 가능한 데이터 처리 장치의 프로세서에 제공될 수 있으며, 그래서 컴퓨터 또는 다른 프로그램 가능한 데이터 처리 장치를 통해 실행하는 명령이 흐름도 및/또는 블록도 블록 또는 블록들에서 특정된 기능/동작을 구현하기 위한 수단을 생성할 수 있다. 이러한 컴퓨터 판독 가능한 프로그램 명령어는 또한 컴퓨터, 프로그램 가능한 데이터 처리 장치, 및/또는 다른 장치가 특정 방식으로 기능하도록 지시할 수 있는 컴퓨터 판독 가능한 저장 매체에 저장될 수 있으며, 그래서 그 안에 저장된 명령어를 가지는 컴퓨터 판독 가능한 저장 매체는 흐름도 및/또는 블록도 블록 또는 블록들에서 명시된 동작의 양상들을 구현하는 명령어를 포함하는 제조물품을 포함할 수 있다.
컴퓨터 판독 가능한 프로그램 명령어는 또한 컴퓨터 구현 프로세스를 만들어 내도록 일련의 동작들이 컴퓨터, 다른 프로그램 가능한 장치 또는 다른 장치 상에서 수행될 수 있게 하기 위하여 컴퓨터, 다른 프로그램 가능한 데이터 처리 장치, 또는 다른 장치 상에 로딩될 수 있으며, 그래서 컴퓨터, 다른 프로그램 가능한 장치, 또는 다른 장치 상에서 실행하는 명령어는 흐름도 및/또는 블록도 블록 또는 블록들에서 명시된 기능/동작을 구현할 수 있다.
도면에서의 흐름도 및 블록도는 본 발명의 방식의 다양한 실시 예에 따른 시스템, 방법, 및 컴퓨터 프로그램 제품의 가능한 구현의 구조, 기능, 및 동작을 포함할 수 있다. 이와 관련하여, 흐름도 또는 블록도에서의 각 블록은 명시된 동작을 구현하기 위한 하나 이상의 실행 가능한 명령어를 포함하는 모듈, 세그먼트, 또는 명령어의 일부를 나타낼 수 있다. 일부 다른 구현에서, 블록들에 기술된 동작들은 도면들에서 순서를 벗어나 발생할 수 있다. 예를 들어, 연속적으로 도시된 두 개의 블록은 주로 동시에 실행될 수 있거나, 또는 상기 블록은 때때로, 관련된 기능에 따라, 역순으로 실행될 수 있다. 블록도 및/또는 흐름도 도해의 각 블록, 및 블록도 및/또는 흐름도 도해에서의 블록의 조합은, 명시된 기능 또는 동작을 수행하거나 또는 특수 목적 하드웨어 및 컴퓨터 명령어의 조합을 수행하는 특수 목적 하드웨어 기반의 시스템에 의해 구현될 수 있다는 것에 또한 주의해야 할 것이다.
이하의 청구항들에서 기능적 표현으로 기재된 모든 구성요소들의 구조나 동작 또는 그 균등물들은 다른 구성요소들과 결합하여 기능을 수행하기 위한 어떠한 구조나 동작도 포함할 수 있다.
방법은, 프로세서를 이용하여, 복수의 이미지들로부터 복수의 에지(edge)들을 검출하는 동작, 상기 프로세서를 이용하여, 상기 복수의 이미지들에 걸쳐 대응되는 상기 복수의 에지들로부터 에지 집합을 결정하는 동작, 및 상기 프로세서를 이용하여, 상기 에지 집합에 의존하는 비용 함수를 사용하여 상기 복수의 이미지들의 카메라 포즈(pose)들을 결정하는 동작을 포함할 수 있다.
상기 방법은 상기 카메라 포즈들 및 상기 에지 집합에 따라 3차원 모델에 대한 평면들을 생성하는 동작을 더 포함할 수 있다.
상기 평면들을 생성하는 동작은 상기 에지 집합에 따라 세 개의 직교하는 축들을 결정하는 동작을 포함할 수 있다.
상기 세 개의 직교하는 축들을 결정하는 동작은, 상기 에지의 방향에 따라 상기 에지 집합의 에지들을 복수의 버킷(bucket)들로 그룹화하는 동작, 가장 많은 수의 에지들을 포함하는 버킷을 제1 축으로 결정하는 동작, 두 번째로 많은 수의 에지들을 포함하는 버킷을 제2 축으로 결정하는 동작, 및 상기 제1 축과 상기 제2 축의 교차 곱(cross-product)을 제3 축으로 결정하는 동작을 포함할 수 있다. 다양한 실시 예에 따르면, 상기 제2 축은 상기 제1 축에 직교하도록 조정될 수 있다.
상기 방법은, 상기 에지 집합의 에지들에 대한 평면들을 결정하는 동작, 상기 결정된 평면들 중에서 거짓 평면들을 확인하는 동작, 및 상기 거짓 평면들을 제거하는 단계를 포함할 수 있다.
상기 방법은 상기 평면들을 렌더링(rendering)하는 동작을 포함할 수 있다.
시스템은 실행 가능한 동작들을 개시하도록 프로그래밍된 프로세서를 포함할 수 있다. 상기 실행 가능한 동작들은, 복수의 이미지로부터 복수의 에지(edge)들을 검출하는 동작, 상기 복수의 이미지들에 걸쳐 대응되는 상기 복수의 에지들로부터 에지 집합을 결정하는 동작, 및 상기 에지 집합에 의존하는 비용 함수를 사용하여 상기 복수의 이미지들의 카메라 포즈(pose)들을 결정하는 동작을 포함할 수 있다.
상기 프로세서는 상기 카메라 포즈들 및 상기 에지 집합에 따라 3차원 모델에 대한 평면들을 생성하는 동작을 포함하는 실행 가능한 동작들을 개시하도록 프로그래밍될 수 있다.
상기 평면들을 생성하는 동작은 상기 에지 집합에 따라 세 개의 직교하는 축들을 결정하는 동작을 포함할 수 있다.
상기 세 개의 직교하는 축들을 결정하는 동작은, 상기 에지의 방향에 따라 상기 에지 집합의 에지들을 버킷(bucket)들로 그룹화하는 동작, 가장 많은 수의 에지들을 포함하는 버킷을 제1 축으로 결정하는 동작, 두 번째로 많은 수의 에지들을 포함하는 버킷을 제2 축으로 결정하는 동작, 및 상기 제1 축과 상기 제2 축의 교차 곱(cross-product)을 제3 축으로 결정하는 동작을 포함할 수 있다. 또한, 상기 프로세서는 상기 제2 축이 상기 제1 축에 직교하도록 조정하는 동작을 포함하는 실행 가능한 동작들을 개시하도록 프로그래밍될 수 있다.
다양한 실시 예에 따르면, 상기 프로세서는, 상기 에지 집합의 에지들에 대한 평면들을 결정하는 동작, 상기 결정된 평면들 중에서 거짓 평면들을 확인하는 동작, 및 상기 거짓 평면들을 제거하는 동작을 포함하는 실행 가능한 동작들을 개시하도록 프로그래밍될 수 있다.
또한, 상기 프로세서는 상기 평면들을 렌더링(rendering)하는 동작을 포함하는 실행 가능한 동작들을 개시하도록 프로그래밍될 수 있다.
컴퓨터 프로그램 제품은 프로그램 코드가 저장된 컴퓨터 판독 가능한 저장 매체를 포함할 수 있다. 상기 프로그램 코드는 방법을 수행하기 위하여 프로세서에 의해 실행될 수 있다. 상기 방법은, 상기 프로세서를 이용하여, 복수의 이미지들로부터 복수의 에지(edge)들을 검출하는 동작, 상기 프로세서를 이용하여, 상기 복수의 이미지들에 걸쳐 대응되는 상기 복수의 에지들로부터 에지 집합을 결정하는 동작, 및 상기 프로세서를 이용하여, 상기 에지 집합에 의존하는 비용 함수를 사용하여 상기 복수의 이미지들의 카메라 포즈(pose)들을 결정하는 동작을 포함할 수 있다.
상기 방법은 상기 카메라 포즈들 및 상기 에지 집합에 따라 3차원 모델에 대한 평면들을 생성하는 동작을 포함할 수 있다.
상기 평면들을 생성하는 동작은 상기 에지 집합에 따라 세 개의 직교하는 축들을 결정하는 동작을 포함할 수 있다.
상기 세 개의 직교하는 축들을 결정하는 동작은, 상기 에지의 방향에 따라 상기 에지 집합의 에지들을 복수의 버킷(bucket)들로 그룹화하는 동작, 가장 많은 수의 에지들을 포함하는 버킷을 제1 축으로 결정하는 동작, 두 번째로 많은 수의 에지들을 포함하는 버킷을 제2 축으로 결정하는 동작, 및 상기 제1 축과 상기 제2 축의 교차 곱(cross-product)을 제3 축으로 결정하는 동작을 포함할 수 있다. 또한, 상기 방법은 상기 제2 축이 상기 제1 축에 직교하도록 조정하는 동작을 포함할 수 있다.
다양한 실시 예에 따르면, 상기 방법은, 상기 에지 집합의 에지들에 대한 평면들을 결정하는 동작, 상기 결정된 평면들 중에서 거짓 평면들을 확인하는 동작, 및 상기 거짓 평면들을 제거하는 동작을 포함할 수 있다.
여기에 제공된 발명의 해결방안에 대한 설명은 단지 예시의 목적을 위한 것이며, 개시된 형태 및 예시들에 한정되거나 포괄적인 것으로 의도되지 않는다. 여기에 사용된 용어는 발명의 해결방안에 대한 원리, 시장에서 발견된 기술에 대한 실질적인 적용 또는 기술적 개선을 설명하기 위해, 및/또는 통상의 기술자가 여기에 개시된 실시 예를 이해할 수 있도록 선택된 것이다. 본 발명의 기술분야에 속하는 통상의 기술자라면 여기에 설명된 발명의 해결방안에 대한 범위 및 사상을 벗어나지 않고 수정이나 변형을 가할 수 있음은 명백하다. 따라서 본 발명의 특징과 구현의 범위는 전술한 설명을 참조하기보다 하기의 특허청구범위를 참조해야 할 것이다.

Claims (20)

  1. 프로세서를 이용하여, 복수의 이미지들로부터 복수의 에지(edge)들을 검출하는 동작;
    상기 프로세서를 이용하여, 상기 복수의 이미지들에 걸쳐 대응되는 상기 복수의 에지들로부터 에지 집합을 결정하는 동작;
    상기 프로세서를 이용하여, 상기 에지 집합에 의존하는 비용 함수를 사용하여 상기 복수의 이미지들의 카메라 포즈(pose)들을 결정하는 동작; 및
    상기 카메라 포즈들 및 상기 에지 집합에 따라 3차원 모델에 대한 평면들을 생성하는 동작을 포함하고,
    상기 평면들을 생성하는 동작은,
    상기 에지 집합에 따라 세 개의 직교하는 축들을 결정하는 동작을 포함하고,
    상기 세 개의 직교하는 축들을 결정하는 동작은,
    상기 에지의 방향에 따라, 상기 에지 집합의 에지들을 복수의 버킷(bucket)들로 그룹화하는 동작;
    가장 많은 수의 에지들을 포함하는 버킷을 제1 축으로 결정하는 동작;
    두 번째로 많은 수의 에지들을 포함하는 버킷을 제2 축으로 결정하는 동작; 및
    상기 제1 축과 상기 제2 축의 교차 곱(cross-product)을 제3 축으로 결정하는 동작을 포함하는 것을 특징으로 하는 방법.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 제1항에 있어서,
    상기 제2 축이 상기 제1 축에 직교하도록 조정하는 동작을 더 포함하는 것을 특징으로 하는 방법.
  6. 제1항에 있어서,
    상기 에지 집합의 에지들에 대한 평면들을 결정하는 동작;
    상기 결정된 평면들 중에서 거짓 평면들을 확인하는 동작; 및
    상기 거짓 평면들을 제거하는 동작을 더 포함하는 것을 특징으로 하는 방법.
  7. 제6항에 있어서,
    상기 평면들을 렌더링(rendering)하는 동작을 더 포함하는 것을 특징으로 하는 방법.
  8. 복수의 이미지들로부터 복수의 에지(edge)들을 검출하는 동작;
    상기 복수의 이미지들에 걸쳐 대응되는 상기 복수의 에지들로부터 에지 집합을 결정하는 동작; 및
    상기 에지 집합에 의존하는 비용 함수를 사용하여 상기 복수의 이미지들의 카메라 포즈(pose)들을 결정하는 동작을 포함하는 실행 가능한 동작들을 개시하도록 프로그래밍된 프로세서를 포함하고,
    상기 프로세서는,
    상기 카메라 포즈들 및 상기 에지 집합에 따라 3차원 모델에 대한 평면들을 생성하는 동작을 수행하고,
    상기 평면들을 생성하는 동작은,
    상기 에지 집합에 따라 세 개의 직교하는 축들을 결정하는 동작을 포함하고,
    상기 세 개의 직교하는 축들을 결정하는 동작은,
    상기 에지의 방향에 따라, 상기 에지 집합의 에지들을 복수의 버킷(bucket)들로 그룹화하는 동작;
    가장 많은 수의 에지들을 포함하는 버킷을 제1 축으로 결정하는 동작;
    두 번째로 많은 수의 에지들을 포함하는 버킷을 제2 축으로 결정하는 동작; 및
    상기 제1 축과 상기 제2 축의 교차 곱(cross-product)을 제3 축으로 결정하는 동작을 포함하는 시스템.
  9. 삭제
  10. 삭제
  11. 삭제
  12. 제8항에 있어서,
    상기 프로세서는,
    상기 제2 축이 상기 제1 축에 직교하도록 조정하는 동작을 포함하는 실행 가능한 동작들을 개시하도록 더 프로그래밍된 것을 특징으로 하는 시스템.
  13. 제8항에 있어서,
    상기 프로세서는,
    상기 에지 집합의 에지들에 대한 평면들을 결정하는 동작;
    상기 결정된 평면들 중에서 거짓 평면들을 확인하는 동작; 및
    상기 거짓 평면들을 제거하는 동작을 포함하는 실행 가능한 동작들을 개시하도록 더 프로그래밍된 것을 특징으로 하는 시스템.
  14. 제13항에 있어서,
    상기 프로세서는,
    상기 평면들을 렌더링(rendering)하는 동작을 포함하는 실행 가능한 동작들을 개시하도록 더 프로그래밍된 것을 특징으로 하는 시스템.
  15. 프로그램 코드가 저장된 컴퓨터 판독 가능한 저장 매체에 있어서,
    상기 프로그램 코드는 프로세서에 의해 실행 가능하고,
    상기 프로세서를 이용하여, 복수의 이미지들로부터 복수의 에지(edge)들을 검출하는 동작;
    상기 프로세서를 이용하여, 상기 복수의 이미지들에 걸쳐 대응되는 상기 복수의 에지들로부터 에지 집합을 결정하는 동작;
    상기 프로세서를 이용하여, 상기 에지 집합에 의존하는 비용 함수를 사용하여 상기 복수의 이미지들의 카메라 포즈(pose)들을 결정하는 동작; 및
    상기 카메라 포즈들 및 상기 에지 집합에 따라 3차원 모델에 대한 평면들을 생성하는 동작을 포함하고,
    상기 평면들을 생성하는 동작은,
    상기 에지 집합에 따라 세 개의 직교하는 축들을 결정하는 동작을 포함하고,
    상기 세 개의 직교하는 축들을 결정하는 동작은,
    상기 에지의 방향에 따라 상기 에지 집합의 에지들을 복수의 버킷(bucket)들로 그룹화하는 동작;
    가장 많은 수의 에지들을 포함하는 버킷을 제1 축으로 결정하는 동작;
    두 번째로 많은 수의 에지들을 포함하는 버킷을 제2 축으로 결정하는 동작; 및
    상기 제1 축과 상기 제2 축의 교차 곱(cross-product)을 제3 축으로 결정하는 동작을 포함하는 방법을 수행하는 것을 특징으로 하는 컴퓨터 판독 가능한 저장 매체.
  16. 삭제
  17. 삭제
  18. 삭제
  19. 제15항에 있어서,
    상기 방법은,
    상기 제2 축이 상기 제1 축에 직교하도록 조정하는 동작을 더 포함하는 것을 특징으로 하는 컴퓨터 판독 가능한 저장 매체.
  20. 제15항에 있어서,
    상기 방법은,
    상기 에지 집합의 에지들에 대한 평면들을 결정하는 동작;
    상기 결정된 평면들 중에서 거짓 평면들을 확인하는 동작; 및
    상기 거짓 평면들을 제거하는 동작을 더 포함하는 것을 특징으로 하는 컴퓨터 판독 가능한 저장 매체.
KR1020177009097A 2014-10-03 2015-10-05 에지를 이용한 3차원 모델 생성 KR102318023B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462059662P 2014-10-03 2014-10-03
US62/059,662 2014-10-03
US14/725,938 US9846963B2 (en) 2014-10-03 2015-05-29 3-dimensional model generation using edges
US14/725,938 2015-05-29
PCT/KR2015/010518 WO2016053067A1 (en) 2014-10-03 2015-10-05 3-dimensional model generation using edges

Publications (2)

Publication Number Publication Date
KR20170068462A KR20170068462A (ko) 2017-06-19
KR102318023B1 true KR102318023B1 (ko) 2021-10-27

Family

ID=55631008

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177009097A KR102318023B1 (ko) 2014-10-03 2015-10-05 에지를 이용한 3차원 모델 생성

Country Status (5)

Country Link
US (1) US9846963B2 (ko)
EP (1) EP3201881B1 (ko)
KR (1) KR102318023B1 (ko)
CN (1) CN107077744B (ko)
WO (1) WO2016053067A1 (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI125913B (en) * 2013-03-25 2016-04-15 Mikkelin Ammattikorkeakoulu Oy A state-defining object for computer-aided design
FR3013491B1 (fr) * 2013-11-19 2016-01-15 Commissariat Energie Atomique Determination de la carte de profondeur image d'une scene
US9846963B2 (en) 2014-10-03 2017-12-19 Samsung Electronics Co., Ltd. 3-dimensional model generation using edges
US10546385B2 (en) * 2016-02-25 2020-01-28 Technion Research & Development Foundation Limited System and method for image capture device pose estimation
JP6754992B2 (ja) * 2016-04-22 2020-09-16 パナソニックIpマネジメント株式会社 三次元再構成方法
DE102017107336A1 (de) * 2017-04-05 2018-10-11 Testo SE & Co. KGaA Messgerät und korrespondierendes Messverfahren
US10250801B2 (en) * 2017-04-13 2019-04-02 Institute For Information Industry Camera system and image-providing method
US10733755B2 (en) * 2017-07-18 2020-08-04 Qualcomm Incorporated Learning geometric differentials for matching 3D models to objects in a 2D image
US10697754B2 (en) * 2017-12-07 2020-06-30 Faro Technologies, Inc. Three-dimensional coordinates of two-dimensional edge lines obtained with a tracker camera
US10964053B2 (en) * 2018-07-02 2021-03-30 Microsoft Technology Licensing, Llc Device pose estimation using 3D line clouds
US10839556B2 (en) 2018-10-23 2020-11-17 Microsoft Technology Licensing, Llc Camera pose estimation using obfuscated features
US11890063B2 (en) * 2018-12-17 2024-02-06 The Brigham And Women's Hospital, Inc. System and methods for a trackerless navigation system
CN109760688B (zh) * 2018-12-29 2020-07-28 百度在线网络技术(北京)有限公司 路段信息确定方法、装置、车辆及计算机可读存储介质
CN109632007B (zh) * 2019-01-17 2020-12-04 北京理工大学 一种边缘点提取方法及齿轮高精度视觉测量系统
CN112116519B (zh) 2019-06-19 2022-12-27 畅想科技有限公司 图形处理系统中的粗略深度测试
US10841483B1 (en) * 2019-07-11 2020-11-17 Denso International America, Inc. System and method for calibrating at least one camera and a light detection and ranging sensor
US11403764B2 (en) * 2020-02-14 2022-08-02 Mujin, Inc. Method and computing system for processing candidate edges
CN112416950B (zh) * 2021-01-25 2021-03-26 中国人民解放军国防科技大学 一种三维sketch结构的设计方法和装置
CN116433794B (zh) * 2023-06-14 2023-09-08 广东云湃科技有限责任公司 一种cae软件中三维模型的处理方法及系统
CN117253013B (zh) * 2023-11-07 2024-02-23 中国科学院空天信息创新研究院 基于协同感知的分布式三维重建方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040227820A1 (en) * 2003-03-11 2004-11-18 David Nister Method and apparatus for determining camera pose from point correspondences
US20110123096A1 (en) * 2009-11-26 2011-05-26 Institute For Information Industry Three-dimensional image analysis system, process device, and method thereof
US20140105486A1 (en) * 2011-05-30 2014-04-17 Commissariat A L'energie Atomique Et Aux Energies Alternatives Method for locating a camera and for 3d reconstruction in a partially known environment

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10304244A (ja) 1997-05-01 1998-11-13 Sony Corp 画像処理装置およびその方法
EP0928460B1 (en) 1997-07-29 2003-01-29 Philips Electronics N.V. Method of reconstruction of tridimensional scenes and corresponding reconstruction device and decoding system
AU2001250802A1 (en) 2000-03-07 2001-09-17 Sarnoff Corporation Camera pose estimation
US6816629B2 (en) 2001-09-07 2004-11-09 Realty Mapping Llc Method and system for 3-D content creation
AU2003277240A1 (en) 2002-10-15 2004-06-07 University Of Southern California Augmented virtual environments
KR20040034221A (ko) 2002-10-21 2004-04-28 (주)맥서러씨 3차원 형상 복원 시스템 및 방법
WO2006083297A2 (en) * 2004-06-10 2006-08-10 Sarnoff Corporation Method and apparatus for aligning video to three-dimensional point clouds
KR101195942B1 (ko) 2006-03-20 2012-10-29 삼성전자주식회사 카메라 보정 방법 및 이를 이용한 3차원 물체 재구성 방법
EP2069713A4 (en) 2006-05-26 2012-12-26 Corp Spg Data3D PHOTOGRAMMETRIC SYSTEM AND TECHNIQUES FOR 3D ACQUISITION
WO2008050320A2 (en) * 2006-10-23 2008-05-02 Ben Gurion University Of The Negev, Research And Development Authority Blind restoration of images degraded by isotropic blur
KR101288971B1 (ko) * 2007-02-16 2013-07-24 삼성전자주식회사 모델링 방법 및 장치
BRPI0721462A2 (pt) 2007-03-23 2013-01-08 Thomson Licensing sistema e mÉtodo para classificaÇço de regiço de imagens em 2d para conversço de 2d para 3d
US20080310757A1 (en) 2007-06-15 2008-12-18 George Wolberg System and related methods for automatically aligning 2D images of a scene to a 3D model of the scene
US20090010507A1 (en) 2007-07-02 2009-01-08 Zheng Jason Geng System and method for generating a 3d model of anatomical structure using a plurality of 2d images
CN101903907B (zh) * 2007-12-21 2012-11-14 杜比实验室特许公司 针对边缘的图像处理
US8102427B2 (en) * 2008-02-14 2012-01-24 Sri International Camera egomotion estimation from an infra-red image sequence for night vision
WO2010088840A1 (en) 2009-02-06 2010-08-12 The Hong Kong University Of Science And Technology Generating three-dimensional models from images
CN101814192A (zh) * 2009-02-20 2010-08-25 三星电子株式会社 真实感3d人脸重建的方法
US8442305B2 (en) 2009-06-30 2013-05-14 Mitsubishi Electric Research Laboratories, Inc. Method for determining 3D poses using points and lines
KR101430121B1 (ko) * 2010-04-06 2014-08-14 삼성전자주식회사 멀티-에너지 X-ray 시스템의 영상 처리 장치 및 그 방법
US8532367B2 (en) 2010-08-17 2013-09-10 Raytheon Company System and method for 3D wireframe reconstruction from video
US8600192B2 (en) * 2010-12-08 2013-12-03 Cognex Corporation System and method for finding correspondence between cameras in a three-dimensional vision system
US9183631B2 (en) 2012-06-29 2015-11-10 Mitsubishi Electric Research Laboratories, Inc. Method for registering points and planes of 3D data in multiple coordinate systems
US9031283B2 (en) * 2012-07-12 2015-05-12 Qualcomm Incorporated Sensor-aided wide-area localization on mobile devices
GB2506338A (en) * 2012-07-30 2014-04-02 Sony Comp Entertainment Europe A method of localisation and mapping
JP5963353B2 (ja) * 2012-08-09 2016-08-03 株式会社トプコン 光学データ処理装置、光学データ処理システム、光学データ処理方法、および光学データ処理用プログラム
US9361538B2 (en) * 2012-12-26 2016-06-07 Microsoft Technology Licensing, Llc Real time photometric edge description
US9129398B2 (en) * 2013-03-15 2015-09-08 Qualcomm Incorporated Edgel sampling for edge-based tracking
US9269187B2 (en) 2013-03-20 2016-02-23 Siemens Product Lifecycle Management Software Inc. Image-based 3D panorama
US9846963B2 (en) 2014-10-03 2017-12-19 Samsung Electronics Co., Ltd. 3-dimensional model generation using edges

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040227820A1 (en) * 2003-03-11 2004-11-18 David Nister Method and apparatus for determining camera pose from point correspondences
US20110123096A1 (en) * 2009-11-26 2011-05-26 Institute For Information Industry Three-dimensional image analysis system, process device, and method thereof
US20140105486A1 (en) * 2011-05-30 2014-04-17 Commissariat A L'energie Atomique Et Aux Energies Alternatives Method for locating a camera and for 3d reconstruction in a partially known environment

Also Published As

Publication number Publication date
CN107077744B (zh) 2021-02-19
EP3201881A4 (en) 2018-04-18
WO2016053067A1 (en) 2016-04-07
CN107077744A (zh) 2017-08-18
EP3201881A1 (en) 2017-08-09
EP3201881B1 (en) 2019-05-15
US20160098858A1 (en) 2016-04-07
US9846963B2 (en) 2017-12-19
KR20170068462A (ko) 2017-06-19

Similar Documents

Publication Publication Date Title
KR102318023B1 (ko) 에지를 이용한 3차원 모델 생성
JP7181977B2 (ja) 3次元再構成において構造特徴を検出し、組み合わせるための方法およびシステム
Hamzah et al. Literature survey on stereo vision disparity map algorithms
EP2874118B1 (en) Computing camera parameters
US8711143B2 (en) System and method for interactive image-based modeling of curved surfaces using single-view and multi-view feature curves
Cabral et al. Piecewise planar and compact floorplan reconstruction from images
JP6659336B2 (ja) 3dモデル化オブジェクトのテクスチャリング
JP6261489B2 (ja) 3次元点群から平面を抽出する、方法、画像処理装置およびプログラムを記憶した非一次的なコンピュータ可読媒体
US10192345B2 (en) Systems and methods for improved surface normal estimation
Jancosek et al. Exploiting visibility information in surface reconstruction to preserve weakly supported surfaces
CN107924571A (zh) 从点云中对人耳进行三维重建
WO2015006224A1 (en) Real-time 3d computer vision processing engine for object recognition, reconstruction, and analysis
US9224368B2 (en) Merging three-dimensional models of varying resolution
Shivakumar et al. Real time dense depth estimation by fusing stereo with sparse depth measurements
Gadasin et al. Reconstruction of a Three-Dimensional Scene from its Projections in Computer Vision Systems
US9977993B2 (en) System and method for constructing a statistical shape model
Ylimäki et al. Fast and accurate multi‐view reconstruction by multi‐stage prioritised matching
Pastor et al. An agent-based paradigm for the reconstruction of conical perspectives

Legal Events

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