KR20230148257A - 지오메트릭과 시맨틱 정보를 사용한 맨해튼 레이아웃 추정 - Google Patents

지오메트릭과 시맨틱 정보를 사용한 맨해튼 레이아웃 추정 Download PDF

Info

Publication number
KR20230148257A
KR20230148257A KR1020237033278A KR20237033278A KR20230148257A KR 20230148257 A KR20230148257 A KR 20230148257A KR 1020237033278 A KR1020237033278 A KR 1020237033278A KR 20237033278 A KR20237033278 A KR 20237033278A KR 20230148257 A KR20230148257 A KR 20230148257A
Authority
KR
South Korea
Prior art keywords
edge
layout
polygon
scene
image
Prior art date
Application number
KR1020237033278A
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 KR20230148257A publication Critical patent/KR20230148257A/ko

Links

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
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/25Fusion techniques
    • G06F18/254Fusion techniques of classification results, e.g. of results related to same input data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • G06T7/33Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/10Image acquisition
    • G06V10/16Image acquisition using multiple overlapping images; Image stitching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/70Labelling scene content, e.g. deriving syntactic or semantic representations
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/04Architectural design, interior design

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Processing Or Creating Images (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)

Abstract

장면의 복수의 2차원(2D) 이미지가 수신된다. 상기 복수의 2D 이미지 각각의 지오메트릭 정보와 시맨틱 정보가 결정된다. 상기 지오메트릭 정보는 개개의 2D 이미지 내의 검출된 선 및 참조 방향을 지시한다. 상기 시맨틱 정보는 상기 개개의 2D 이미지 내의 픽셀의 분류 정보를 포함한다. 상기 개개의 2D 이미지의 상기 지오메트릭 정보 및 상기 시맨틱 정보에 기초하여 상기 장면의 개개의 2D 이미지와 연관된 레이아웃 추정을 결정한다. 상기 장면의 복수의 2D 이미지와 연관된 복수의 상기 결정된 레이아웃 추정에 기초하여 상기 장면과 연관된 결합된 레이아웃 추정이 결정된다. 상기 결합된 레이아웃 추정에 기초하여 상기 장면과 연관된 상기 맨해튼 레이아웃이 생성된다. 상기 맨해튼 레이아웃은 서로에 대해 직교하는 벽면을 포함하는 상기 장면의 적어도 3차원(3D) 형상을 포함한다.

Description

지오메트릭과 시맨틱을 사용한 맨해튼 레이아웃 추정
참조에 의한 포함
본 출원은 2022년 2월 2일에 출원된 "A Method for Manhattan Layout Estimation from Multiple Panorama Images using Geometry and Semantic Segmentation Information(지오메트리 및 시맨틱 세그먼트화 정보를 이용한 다중 파노라마 이미지로부터의 맨해튼 레이아웃 추정 방법)"이라는 명칭의 미국 가출원 제63/306,001호에 대한 우선권 이익을 주장하여, 2022년 11월 4일에 출원된 "MANHATTAN LAYOUT ESTIMATION USING GEOMETRIC AND SEMANTIC INFORMATION(지오메트릭 및 시맨틱 정보를 이용한 맨해튼 레이아웃 추정)"이라는 명칭의 미국 특허출원 제17/981,156호에 대한 우선권 이익을 주장한다. 이들 선출원의 개시 내용은 그 전체가 참조에 의해 본 명세서에 포함된다.
본 개시는 일반적으로 이미지 코딩과 관련된 실시예를 기술한다.
여기에 제공되는 배경 설명은 일반적으로 본 개시의 맥락을 제시하기 위한 것이다. 이 배경기술 섹션에 저작물이 기술되는 있는 경우, 현재 지명된 발명자들의 저작물과 본 출원의 출원 시에 선행 기술로 인정되지 않을 수 있는 설명의 측면들은 명시적으로도 묵시적으로도 본 개시의 선행 기술로 인정되지 않는다. 세상 속의 객체, 세상 속의 환경 등과 같은 세상을 3차원(3-dimensional, 3D) 또는 형상으로 포착하여 표현하기 위해 다양한 기술들이 개발되고 있다. 세상에 대한 3D 표현은 보다 몰입적인 형태의 상호작용 및 의사소통(communication)을 가능하게 한다. 몇몇 예에서, 3D 형상이 그러한 몰입형 콘텐츠(immersive contents)에 널리 사용된다.
본 개시의 측면은 이미지 코딩(예컨대, 압축 및 압축해제)을 위한 방법 및 장치를 제공한다. 몇몇 예에서, 이미지 코딩을 위한 장치는 처리 회로를 포함한다.
본 개시의 일 측면에 따르면, 장면과 연관된 맨해튼 레이아웃(Manhattan layout)을 추정하는 방법이 제공된다. 상기 방법에서는 상기 장면의 복수의 2차원(2D) 이미지가 수신될 수 있다. 상기 복수의 2D 이미지 각각의 지오메트릭 정보(geometric information) 및 시맨틱 정보(semantic information)가 결정될 수 있다. 상기 지오메트릭 정보는 개개의 2D 이미지 내의 검출된 선 및 참조 방향을 지시할 수 있다. 상기 시맨틱 정보는 상기 개개의 2D 이미지 내의 픽셀의 분류 정보를 포함할 수 있다. 상기 개개의 2D 이미지의 상기 지오메트릭 정보 및 상기 시맨틱 정보에 기초하여 상기 장면의 개개의 2D 이미지와 연관된 레이아웃 추정이 결정될 수 있다. 상기 장면의 복수의 2D 이미지와 연관된 복수의 상기 결정된 레이아웃 추정에 기초하여 상기 장면과 연관된 결합된 레이아웃 추정이 결정될 수 있다. 상기 결합된 레이아웃 추정에 기초하여 상기 장면과 연관된 상기 맨해튼 레이아웃이 생성될 수 있다. 상기 맨해튼 레이아웃은 서로에 대해 직교하는 벽면(wall face)을 포함하는 상기 장면의 적어도 3차원(3D) 형상을 포함할 수 있다.
상기 지오메트릭 정보와 상기 시맨틱 정보를 결정하기 위해, 상기 복수의 2D 이미지 중 제1의 2D 이미지의 제1 지오메트릭 정보가 추출될 수 있다. 상기 제1 지오메트릭 정보는 검출된 선, 상기 제1의 2D 이미지의 참조 방향, 천장에서 지면까지의 제1 거리와 카메라에서 상기 지면까지의 제2 거리의 비율, 또는 상기 복수의 2D 이미지 중 상기 제1의 2D 이미지와 제2의 2D 이미지 사이의 상대적 포즈(relative pose) 중 적어도 하나를 포함할 수 있다. 상기 제1의 2D 이미지의 픽셀은 제1 시맨틱 정보를 생성하기 위해 라벨링될 수 있으며, 상기 제1 시맨틱 정보는 상기 제1의 2D 이미지의 픽셀의 제1 구조 정보를 지시할 수 있다.
상기 장면의 개개의 2D 이미지와 연관된 레이아웃 추정을 결정하기 위해, 상기 제1의 2D 이미지의 상기 제1 지오메트릭 정보 및 상기 제1 시맨틱 정보에 기초하여 상기 장면과 연관된 상기 복수의 레이아웃 추정 중 제1 레이아웃 추정이 결정될 수 있다. 상기 제1 레이아웃 추정을 결정하기 위해, 각각의 상기 검출된 선이 상기 장면 내의 벽 경계에 대응하는 경계선인지 여부가 판정될 수 있다. 상기 검출된 선의 경계선은 상기 제1의 2D 이미지의 상기 참조 방향과 정렬될 수 있다. 2D 다각형의 노이즈 제거(denoising)와 계단 제거(staircase removal) 중 하나를 사용하여 상기 정렬된 경계선에 기초하여 상기 제1 레이아웃 추정을 지시하는 제1 다각형이 생성될 수 있다.
상기 제1 다각형을 생성하기 위해, 상기 경계선 중 천장 경계선과 바닥 경계선의 조합에 기초하여 상기 복수의 불완전한 경계선을 추정하는 것; 및 상기 복수의 불완전한 경계선 중 한 쌍의 불완전한 경계선을 연결하는 것 중 하나에 기초하여, 상기 경계선 중 복수의 불완전한 경계선이 완전하게 될 수 있다. 상기 불완전한 경계선의 쌍은, (i) 상기 불완전한 경계선의 쌍이 평행한 것에 대한 응답으로 상기 불완전한 경계선의 쌍에 수직선을 추가하는 것과, (ii) 상기 불완전한 경계선의 쌍 중 적어도 하나를 연장하여 상기 불완전한 경계선의 쌍의 교차점이 상기 불완전한 경계선의 연장된 쌍에 위치하도록 하는 것 중 하나에 기초하여 연결될 수 있다.
상기 장면과 연관된 결합된 레이아웃 추정을 결정하기 위해, 다각형 합체 알고리즘(polygon union algorithm)을 통해 복수의 다각형을 결합함으로써 기본 다각형이 결정될 수 있다. 상기 복수의 다각형 각각은 상기 복수의 결정된 레이아웃 추정의 개개의 레이아웃 추정에 대응할 수 있다. 상기 기본 다각형에 기초하여 축소된 다각형(shrunk polygon)이 결정될 수 있다. 상기 축소된 다각형은 상기 기본 다각형의 에지로부터 업데이트되는 업데이트된 에지를 포함할 수 있다. 상기 2D 다각형의 노이즈 제거(denoising) 및 계단 제거(staircase removal) 중 하나를 사용하여 상기 축소된 다각형에 기초하여 최종 다각형이 결정될 수 있다. 상기 최종 다각형은 상기 장면과 연관된 상기 결합된 레이아웃 추정에 대응할 수 있다.
상기 축소된 다각형을 결정하기 위해, 상기 기본 다각형의 에지에 대해 상기 복수의 다각형으로부터 복수의 후보 에지가 결정될 수 있다. 상기 복수의 후보 에지 각각은 상기 기본 다각형의 개개의 에지에 대응할 수 있다. 상기 하나 이상의 후보 에지가 상기 기본 다각형의 대응하는 하나 이상의 에지보다 상기 복수의 이미지 내의 원래 뷰 위치에 더 가깝다는 것에 대한 응답으로, 상기 기본 다각형의 하나 이상의 에지를 대응하는 하나 이상의 후보 에지로 대체함으로써 상기 축소된 다각형의 업데이트된 에지가 생성될 수 있다.
일부 실시예에서, 상기 복수의 후보 에지 각각은 상기 기본 다각형의 대응하는 에지와 평행일 수 있다. 상기 개개의 후보 에지와 상기 기본 다각형의 대응하는 에지 사이의 돌출된 중첩 부분(projected overlapping portion)이 임계값보다 클 수 있다.
상기 장면과 연관된 결합된 레이아웃 추정을 결정하기 위해, 상기 최종 다각형의 에지를 포함하는 에지 세트가 결정될 수 있다. 상기 에지 세트에 기초하여 복수의 에지 그룹이 생성될 수 있다. 상기 최종 다각형의 복수의 내부 에지가 생성될 수 있다. 상기 복수의 내부 에지는 상기 에지 세트의 하나 이상의 에지 그룹의 복수의 평균 에지에 의해 지시될 수 있다. 상기 복수의 에지 그룹 중 하나 이상의 에지 그룹 각각은 타깃 값보다 큰 각자의 에지 수를 포함할 수 있다. 상기 복수의 평균 에지 각각은 상기 하나 이상의 에지 그룹 중의 개개의 에지 그룹의 에지를 평균함으로써 획득될 수 있다.
일부 실시예에서, 상기 복수의 에지 그룹은 제1 에지 그룹을 포함할 수 있다. 상기 제1 에지 그룹은 제1 에지와 제2 에지를 더 포함할 수 있다. 상기 제1 에지와 상기 제2 에지는 평행할 수 있다. 상기 제1 에지와 상기 제2 에지 사이의 거리는 제1 임계값보다 작을 수 있다. 상기 제1 에지와 상기 제2 에지 사이의 돌출된 중첩 영역(projected overlapping region)은 제2 임계값보다 클 수 있다.
상기 장면과 연관된 맨해튼 레이아웃을 생성하기 위해, 상기 결합된 레이아웃 추정으로부터 삼각형화된(triangulated) 삼각형 메시(triangle mesh), 상기 결합된 레이아웃 추정으로부터 사각형화된(quadrangulated) 사각형 메시(quadrilateral mesh), 상기 삼각형 메시와 상기 사각형 메시 중 하나로부터 샘플링된 샘플링 포인트, 또는 복셀화(voxelization)를 통해 상기 삼각형 메시와 상기 사각형 메시 중 하나로부터 생성되는 이산 그리드(discrete grid) 중 하나에 기초하여, 상기 장면과 연관된 상기 맨해튼 레이아웃이 생성될 수 있다.
몇몇 실시예에서, 상기 장면과 연관된 맨해튼 레이아웃은 상기 결합된 레이아웃 추정으로부터 삼각형화된 삼각형 메시에 기초하여 생성될 수 있다. 이에 따라, 상기 장면과 연관된 맨해튼 레이아웃을 생성하기 위해, 상기 결합된 레이아웃 추정을 삼각형화함으로써 상기 장면에서의 천장면과 바닥면이 생성될 수 있다. 상기 장면에서 천장 경계선과 바닥 경계선을 둘러싸는 직사각형을 삼각형화함으로써 상기 장면에서의 상기 벽면이 생성될 수 있다. 광선 캐스팅 기반 프로세스(ray-casting based process)를 통해 상기 장면과 연관된 맨해튼 레이아웃의 텍스처가 생성될 수 있다.
본 개시의 다른 측면에 따르면, 장치가 제공된다. 상기 장치는 처리 회로를 포함한다. 상기 처리 회로는 장면과 연관된 맨해튼 레이아웃을 추정하는 방법 중 어느 것을 수행하도록 구성될 수 있다.
본 개시의 측면은 또한 명령어를 저장하는, 컴퓨터로 판독 가능한 비일시적 매체를 제공하며, 상기 명령어는 컴퓨터에 의해 실행될 때, 상기 컴퓨터로 하여금 장면과 연관된 맨해튼 레이아웃을 추정하는 방법 중 어느 것을 수행하게 할 수 있다.
개시된 주제의 추가 특징, 성질 및 다양한 이점은 이하의 상세한 설명 및 첨부 도면으로부터 더욱 명백해질 것이다:
도 1은 몇몇 예에서의 통신 시스템의 블록도를 도시한다.
도 2는 몇몇 예에서의 스트리밍 시스템의 블록도를 도시한다.
도 3은 몇몇 예에서의 포인트 클라우드 프레임을 인코딩하기 위한 인코더의 블록도를 도시한다.
도 4는 몇몇 예에서의 포인트 클라우드 프레임에 대응하는 압축된 비트스트림을 디코딩하기 위한 디코더의 블록도를 도시한다.
도 5는 몇몇 예에서의 비디오 디코더의 블록도를 도시한다.
도 6은 몇몇 예에서의 비디오 인코더의 블록도를 도시한다.
도 7은 몇몇 예에서의 포인트 클라우드 프레임을 인코딩하기 위한 인코더의 블록도를 도시한다.
도 8은 몇몇 예에서의 포인트 클라우드 프레임에 대응하는 압축된 비트스트림을 디코딩하기 위한 디코더의 블록도를 도시한다.
도 9a는 몇몇 예에서의 예시적인 파노라마 이미지를 도시한다.
도 9b는 몇몇 예에서 지오메트릭 정보가 표시된 예시적인 파노라마 이미지를 도시한다.
도 9c는 몇몇 예에서 시맨틱 정보가 표시된 예시적인 파노라마 이미지를 도시한다.
도 10a는 몇몇 예에서의 예시적인 추정된 방 레이아웃을 도시한다.
도 10b는 몇몇 예에서 추정된 방 레이아웃을 나타내는 예시적인 다각형을 도시한다.
도 10c는 몇몇 예에서의 다각형에 기초하여 생성된 예시적인 3차원 메시를 도시한다.
도 11은 몇몇 예에서의 맨해튼 레이아웃을 추정하기 위한 시스템의 개요를 도시한다.
도 12는 몇몇 예에서의 이미지 처리를 위한 프레임워크의 블록도를 도시한다.
도 13은 몇몇 예에서의 장면과 연관된 맨해튼 레이아웃을 추정하는 프로세스의 개요를 설명하는 흐름도를 도시한다.
도 14는 몇몇 예에서의 컴퓨터 시스템의 개략도이다.
본 발명의 측면들은 3차원(3D) 미디어 처리 분야의 기술을 포함한다.
3차원(3D) 캡처, 3D 모델링 및 3D 렌더링 등에서의 진보와 같은, 3D 미디어 처리에서의 기술 개발은 3D 미디어 콘텐츠가 여러 플랫폼과 디바이스에 걸쳐 도처에 존재하는 것(ubiquitous presence)을 촉진하였다. 일례에서, 한 대륙에서 아기의 첫 걸음이 포착될 수 있고, 미디어 기술은 다른 대륙에서 조부모가 아기를 보고(아마도 상호작용하고) 몰입적 체험(immersive experience)을 즐길 수 있도록 해준다. 본 개시의 일 측면에 따르면, 몰입적 체험을 향상시키기 위해, 3D 모델은 점점 더 정교해지고 있으며, 3D 모델의 생성 및 소비는 데이터 스토리지, 데이터 송신 자원과 같은, 상당한 양의 데이터 자원을 차지한다.
몇몇 실시예에서, 포인트 클라우드(point cloud) 및 메시(mesh)를 3D 모델로서 사용하여 몰입형 콘텐츠(immersive contents)를 표현할 수 있다.
포인트 클라우드는 일반적으로 색상, 재료 속성, 텍스처 정보, 강도 속성, 반사 속성, 움직임 관련 속성, 양식(modality) 속성 및 기타 다양한 속성과 같은, 연관된 속성을 각각 갖는 3D 공간에서의 포인트의 세트를 의미할 수 있다. 포인트 클라우드를 사용하여 객체나 장면을 그러한 포인트의 구성으로서 재구축할 수 있다.
객체의 메시(메시 모델이라고도 함)는 객체의 표면을 설명하는 다각형을 포함할 수 있다. 각각의 다각형은 3D 공간에서 다각형의 정점들과 그러한 정점들이 다각형에 어떻게 연결되어 있는지에 대한 정보로 정의할 수 있다. 정점들이 어떻게 연결되어 있는지에 대한 정보를 연결 정보(connectivity information)라고 한다. 몇몇 예에서, 메시는 정점과 연관된 색상, 법선 등과 같은 속성을 포함할 수 있다.
몇몇 실시예에서, 포인트 클라우드 압축(point cloud compression, PCC)을 위한 몇몇 코딩 도구가 메시 압축에 사용될 수 있다. 예를 들어, 메시를 다시 메시화하는 리메싱(re-mashed)으로 새로운 메시의 정점의 연결 정보를 유추(또는 미리 정의)할 수 있는 새로운 메시를 생성할 수 있다. 새로운 메시의 정점, 및 새로운 메시의 정점과 연관된 속성은 포인트 클라우드에 있는 포인트로 간주될 수 있으며 PCC 코덱을 사용하여 압축될 수 있다.
포인트 클라우드는 객체 또는 장면을 그러한 포인트의 구성으로서 재구축하는 데 사용될 수 있다. 포인트는 다양한 설정으로 다수의 카메라, 깊이 센서 또는 Lidar를 사용하여 캡처될 수 있고 재구축된 장면이나 객체를 사실적으로 표현하기 위해 수천에서 최대 수십억 개의 포인트로 구성될 수 있다. 패치(patch)는 일반적으로 포인트 클라우드에 의해 기술되는 표면의 연속적인 서브세트를 가리킬 수 있다. 일례에서, 패치는 임계값 양보다 적게 서로로부터 벗어나는 표면 법선 벡터(with surface normal vector)를 갖는 포인트를 포함한다.
PCC는 G-PCC라고 하는 지오메트리 기반 방식, V-PCC라고 하는 비디오 코딩 기반 방식 등의 다양한 방식에 따라 수행될 수 있다. 본 개시의 몇몇 측면에 따르면, G-PCC는 3D 지오메트리를 직접 인코딩하고 비디오 코딩과 공유할 것이 많지 않은 순수하게 지오메트리 기반 접근법이며, V-PCC는 비디오 코딩에 크게 기반을 두고 있다. 예를 들어, V-PCC는 3D 클라우드의 포인트를 2D 그리드(이미지)의 픽셀로 매핑할 수 있다. V-PCC 방식은 포인트 클라우드 압축을 위해 일반 비디오 코덱을 활용할 수 있다. 본 개시에서 PCC 코덱(인코더/디코더)은 G-PCC 코덱(인코더/디코더) 또는 V-PCC 코덱일 수 있다.
본 개시의 일 측면에 따르면, V-PCC 방식은 비디오 코덱을 사용하여 포인트 클라우드의 지오메트리, 점유 및 텍스처를 3개의 개별 비디오 시퀀스로서 압축할 수 있다. 3개의 비디오 시퀀스를 해석하는 데 필요한 추가 메타데이터는 개별적으로 압축된다. 전체 비트스트림의 작은 부분이 일례에서 소프트웨어 구현을 사용하여 효율적으로 인코딩/디코딩될 수 있는 메타데이터이다. 정보의 대부분은 비디오 코덱에 의해 처리된다.
도 1은 몇몇 예에서의 통신 시스템(100)의 블록도를 도시한다. 통신 시스템(100)은, 예를 들어 네트워크(150)를 통해 서로 통신할 수 있는 복수의 단말 디바이스를 포함한다. 예를 들어, 통신 시스템(100)은 네트워크(150)를 통해 상호연결된 한 쌍의 단말 디바이스(110, 120)를 포함한다. 도 1의 예에서, 제1의 단말 디바이스 쌍(110, 120)은 포인트 클라우드 데이터의 단방향 송신을 수행할 수 있다. 예를 들어, 단말 디바이스(110)는 단말 디바이스(110)와 연결된 센서(105)에 의해 캡처되는 포인트 클라우드(예를 들어, 구조를 표현하는 포인트들)를 압축할 수 있다. 압축된 포인트 클라우드는 예를 들어 비트스트림의 형태로 네트워크(150)를 통해 다른 단말 디바이스(120)로 송신될 수 있다. 단말 디바이스(120)는 압축된 포인트 클라우드를 네트워크(150)로부터 수신하고, 비트스트림을 압축해제하여 재구축하고, 재구축된 포인트 클라우드를 적절하게 표시할 수 있다. 단방향 데이터 송신은 애플리케이션 등을 제공하는 미디어에서 일반적일 수 있다.
도 1의 예에서, 단말 디바이스(110, 120)는 서버 및 개인용 컴퓨터로 예시될 수 있지만, 본 개시의 원리는 그렇게 한정되지 않을 수 있다. 본 개시의 실시예는 랩톱 컴퓨터, 태블릿 컴퓨터, 스마트폰, 게이밍 단말기, 미디어 플레이어 및/또는 전용의 3차원(3D) 장비에 적용될 수 있다. 네트워크(150)는 단말기 디바이스(110)와 단말 디바이스(120) 사이에 압축된 포인트 클라우드를 송신하는 임의의 수의 네트워크를 나타낸다. 네트워크(150)는 예를 들어 유선(wireline, wired) 및/또는 무선 통신 네트워크를 포함할 수 있다. 네트워크(150)는 회선 교환(circuit-switched) 및/또는 패킷 교환(packet-switched) 채널에서 데이터를 교환할 수 있다. 대표적인 네트워크로는 통신망, 근거리 통신망, 광역 통신망, 인터넷 등을 포함한다.
도 2는 몇몇 예에서의 스트리밍 시스템(200)의 블록도를 도시한다. 스트리밍 시스템(200)은 포인트 클라우드의 사용 애플리케이션이다. 개시된 주제는 3D 텔레프레즌스 애플리케이션, 가상 현실 애플리케이션 등과 같은 다른 포인트 클라우드 가능형(point cloud enabled) 애플리케이션에 동등하게 적용될 수 있다.
스트리밍 시스템(200)은 캡처 서브시스템(213)을 포함할 수 있다. 캡처 서브시스템(213)은 포인트 클라우드 소스(201), 예를 들어 광검출 및 레인징(light detection and ranging, LIDAR) 시스템, 3D 카메라, 3D 스캐너, 소프트웨어로 압축되지 않은 포인트 클라우드를 생성하는 그래픽 생성 컴포넌트(graphics generation component), 압축되지 않은 포인트 클라우드(202)를 생성하는 것 등을 포함할 수 있다. 일례에서, 포인트 클라우드(202)는 3D 카메라에 의해 캡처되는 포인트를 포함한다. 포인트 클라우드(202)는 압축된 포인트 클라우드(204)(압축된 포인트 클라우드의 비트스트림)와 비교할 때 높은 데이터 볼륨을 강조하기 위해 굵은 선으로 표시된다. 압축된 포인트 클라우드(204)는 포인트 클라우드 소스(201)에 결합된 인코더(203)를 포함하는 전자 디바이스(220)에 의해 생성될 수 있다. 인코더(203)는 하드웨어, 소프트웨어 또는 이들의 조합을 포함하여 아래에서 더 자세히 설명되는 바와 같이 개시된 주제의 측면을 가능하게 하거나 구현할 수 있다. 압축된 포인트 클라우드(204)(또는 압축 포인트 클라우드(204)의 비트스트림)는 포인트 클라우드(202)의 스트림과 비교할 때 더 낮은 데이터 볼륨을 강조하기 위해 가는 선으로 표시되며, 향후 사용을 위해 스트리밍 서버(205)에 저장될 수 있다. 도 2의 클라이언트 서브시스템(206, 208)과 같은, 하나 이상의 스트리밍 클라이언트 서브시스템은 스트리밍 서버(205)에 액세스하여 압축된 포인트 클라우드(204)의 복사본(207, 209)을 검색할 수 있다. 클라이언트 서브시스템(206)은 예를 들어 전자 디바이스(230)에 디코더(210)를 포함할 수 있다. 디코더(210)는 압축된 포인트 클라우드의 인커밍 복사본(207)을 디코딩하고 렌더링 디바이스(212)에서 렌더링될 수 있는 재구축된 포인트 클라우드(211)의 아웃고잉 스트림을 생성한다.
전자 디바이스(220, 230)는 다른 컴포넌트(미도시)를 포함할 수 있음에 유의한다. 예를 들어, 전자 디바이스(220)는 디코더(미도시)를 포함할 수 있고 전자 디바이스(230)도 인코더(미도시)를 포함할 수 있다.
일부 스트리밍 시스템에서, 압축된 포인트 클라우드(204, 207, 및 209)(예컨대, 압축된 포인트 클라우드의 비트스트림)는 특정 표준에 따라 압축될 수 있다. 몇몇 예에서, 비디오 코딩 표준이 포인트 클라우드의 압축에 사용된다. 이러한 표준의 예로는 HEVC(High Efficiency Video Coding), VVC(Versatile Video Coding) 등을 포함한다.
도 3은 몇몇 실시예에 따른, 포인트 클라우드 프레임을 인코딩하기 위한 V-PCC 인코더(300)의 블록도를 도시한다. 몇몇 실시예에서, V-PCC 인코더(300)는 통신 시스템(100) 및 스트리밍 시스템(200)에서 사용될 수 있다. 예를 들어, 인코더(203)는 V-PCC 인코더(300)와 유사한 방식으로 구성되어 동작할 수 있다.
V-PCC 인코더(300)는 포인트 클라우드 프레임을 압축되지 않은 입력으로서 수신하여 압축된 포인트 클라우드 프레임에 대응하는 비트스트림을 생성한다. 몇몇 실시예에서, V-PCC 인코더(300)는 포인트 클라우드 소스(201) 등과 같은, 포인트 클라우드 소스로부터 포인트 클라우드 프레임을 수신할 수 있다.
도 3의 예에서, V-PCC 인코더(300)는 패치 생성(patch generation) 모듈(306), 패치 패킹(patch packing) 모듈(308), 지오메트리 이미지 생성(geometry image generation) 모듈(310), 텍스처 이미지 생성(texture image generation) 모듈(312), 패치 정보(patch info) 모듈(304), 점유 맵(occupancy map) 모듈(314), 평활화(smoothing) 모듈(336), 이미지 패딩(image padding) 모듈(316, 318), 그룹 확장(group dilation) 모듈(320), 비디오 압축(video compression) 모듈(322, 323, 332), 보조 패치 정보 압축(auxiliary patch info compression) 모듈(338), 엔트로피 압축(entropy compression) 모듈(334) 및 멀티플렉서(multiplexer)(324)를 포함한다.
본 개시의 일 측면에 따르면, V-PCC 인코더(300)는 3D 포인트 클라우드 프레임을, 압축된 포인트 클라우드를 변환하여 압축해제된 포인트 클라우드로 되돌리는 데 사용되는 일부 메타데이터(예컨대, 점유 맵 및 패치 정보)와 함께 이미지 기반 표현으로 변환한다. 몇몇 예에서, V-PCC 인코더(300)는 3D 포인트 클라우드 프레임을 지오메트리 이미지, 텍스처 이미지 및 점유 맵으로 변환한 다음, 비디오 코딩 기술을 사용하여 지오메트리 이미지, 텍스처 이미지 및 점유 맵을 비트스트림으로 인코딩할 수 있다. 일반적으로, 지오메트리 이미지는 픽셀에 투영된 포인트와 연관된 지오메트리 값으로 채워진 픽셀들이 있는 2D 이미지이며, 지오메트리 값으로 채워진 픽셀은 지오메트리 샘플이라고 할 수 있다. 텍스처 이미지는 픽셀에 투영된 포인트와 연관된 텍스처 값으로 채워진 픽셀이 있는 2D 이미지이며, 텍스처 값으로 채워진 픽셀은 텍스처 샘플이라고 할 수 있다. 점유 맵은 패치에 의해 점유되거나 점유되지 않음을 지시하는 값으로 채워진 픽셀이 있는 2D 이미지이다.
패치 생성 모듈(306)은 포인트 클라우드를 패치 세트(예컨대, 패치는 포인트 클라우드에 의해 기술되는 표면의 연속적인 서브세트로 정의됨)로 세그먼트화하며, 이는 중첩되거나 중첩되지 않을 수 있으므로, 각각의 패치는 2D 공간의 평면에 대한 깊이 필드로 기술될 수 있다. 일부 실시예에서, 패치 생성 모듈(306)은 포인트 클라우드를 매끄러운 경계를 갖는 최소 개수의 패치로 분해하는 동시에, 재구축 오류를 최소화하는 것을 목표로 한다.
몇몇 예에서, 패치 정보 모듈(304)은 패치의 크기와 모양을 지시하는 패치 정보를 수집할 수 있다. 몇몇 예에서, 패치 정보는 이미지 프레임으로 패킹된 다음 보조 패치 정보 압축 모듈(338)에 의해 인코딩되어 압축된 보조 패치 정보를 생성할 수 있다.
몇몇 예에서, 패치 패킹 모듈(308)은 추출된 패치를 2차원(2D) 그리드에 매핑하는 동시에 미사용 공간을 최소화하고 그리드의 모든 M×M(예컨대, 16×16) 블록이 고유한 패치와 연관됨을 보장한다. 효율적인 패치 패킹은 미사용 공간을 최소화하거나 시간적 일관성(temporal consistency)을 보장함으로써 압축 효율에 직접적으로 영향을 미칠 수 있다.
지오메트리 이미지 생성 모듈(310)은 주어진 패치 위치에서 포인트 클라우드의 지오메트리와 연관된 2D 지오메트리 이미지를 생성할 수 있다. 텍스처 이미지 생성 모듈(312)은 주어진 패치 위치에서 포인트 클라우드의 텍스처와 연관된 2D 텍스처 이미지를 생성할 수 있다. 지오메트리 이미지 생성 모듈(310)과 텍스처 이미지 생성 모듈(312)은 포인트 클라우드의 지오메트리와 텍스처를 이미지로 저장하기 위해 패킹 프로세스 동안 계산된 3D-2D 매핑을 이용한다. 다수의 포인트가 동일한 샘플에 투영되는 경우를 더 잘 처리하기 위해, 각각의 패치는 계층이라고 하는 2개의 이미지에 투영된다. 일례에서 지오메트리 이미지는 YUV420-8비트 포맷의 W×H 모노크롬 프레임으로 표현된다. 텍스처 이미지를 생성하기 위해, 텍스처 생성 프로시저는 재샘플링된 포인트와 연관될 색상을 계산하기 위해 재구축된/평활화된 지오메트리를 이용한다.
점유 맵 모듈(314)은 각 유닛의 패딩 정보를 기술하는 점유 맵을 생성할 수 있다. 예를 들어, 점유 이미지는 셀이 빈 공간(empty space)에 속하는지 포인트 클라우드에 속하는지를 그리드의 각 셀에 대해 지시하는 이진 맵을 포함한다. 일례에서, 점유 맵은 각각의 픽셀에 대해 픽셀이 패딩되었는지 여부를 기술하는 이진 정보를 사용한다. 다른 예에서, 점유 맵은 각각의 픽셀 블록에 대해 픽셀 블록이 패딩되었는지 여부를 기술하는 이진 정보를 사용한다.
점유 맵 모듈(314)에 의해 생성되는 점유 맵(314)은 무손실 코딩 또는 손실 코딩을 사용하여 압축될 수 있다. 무손실 코딩이 사용되는 경우, 엔트로피 압축 모듈(334)이 점유 맵의 압축에 사용된다. 손실 코딩이 사용되는 경우, 비디오 압축 모듈(332)이 점유 맵의 압축에 사용된다.
패치 패킹 모듈(308)은 이미지 프레임 내의 패킹된 2D 패치들 사이에 약간의 빈 공간을 남겨 둘 수 있다는 점에 유의한다. 이미지 패딩 모듈(316, 318)은 2D 비디오 및 이미지 코덱에 적합할 수 있는 이미지 프레임을 생성하기 위해 빈 공간을 채울 수 있다(패딩이라고 함). 이미지 패딩(image padding)은 미사용 공간을 중복 정보로 채울 수 있는 배경 채우기(background filling)라고도 한다. 몇몇 예에서, 우수한 배경 채우기는 패치 경계 주변에 의미 있는 코딩 왜곡을 도입하지 않으면서 비트 레이트를 최소한으로 증가시킨다.
비디오 압축 모듈(322, 323, 332)은 HEVC, VVC 등과 같은, 적합한 비디오 코딩 표준에 기초하여, 패딩된 지오메트리 이미지, 패딩된 텍스처 이미지 및 점유 맵과 같은, 2D 이미지를 인코딩할 수 있다. 일례에서, 비디오 압축 모듈(322, 323, 332)은 개별적으로 작동하는 개별 컴포넌트이다. 비디오 압축 모듈(322, 323, 332)은 다른 예에서 단일 컴포넌트로 구현될 수 있음에 유의한다.
몇몇 예에서, 평활화 모듈(336)은 재구축된 지오메트리 이미지의 평활화된 이미지를 생성하도록 구성된다. 평활화된 이미지는 텍스처 이미지 생성 모듈(312)에 제공될 수 있다. 그러면, 텍스처 이미지 생성 모듈(312)은 재구축된 지오메트리 이미지에 기초하여 텍스처 이미지의 생성을 조정할 수 있다. 예를 들어, 인코딩 및 디코딩 중에 패치 모양(예컨대, 지오메트리)이 약간 왜곡된 경우, 패치 모양의 왜곡을 수정(correct)하기 위해 텍스처 이미지를 생성할 때 왜곡을 고려할 수 있다.
일부 실시예에서, 그룹 확장 모듈(320)은 재구축된 포인트 클라우드의 시각적 품질뿐만 아니라 코딩 이득을 개선하기 위해 중복 저주파 콘텐츠(low-frequency content)로 객체 경계 주변의 픽셀을 패딩하도록 구성된다.
멀티플렉서(324)는 압축된 지오메트리 이미지, 압축된 텍스처 이미지, 압축된 점유 맵, 압축된 보조 패치 정보를 압축된 비트스트림으로 다중화할 수 있다.
도 4는 몇몇 예에서, 포인트 클라우드 프레임에 대응하는 압축된 비트스트림을 디코딩하기 위한 V-PCC 디코더(400)의 블록도를 도시한다. 몇몇 예에서, V-PCC 디코더(400)는 통신 시스템(100) 및 스트리밍 시스템(200)에서 사용될 수 있다. 예를 들어, 디코더(210)는 V-PCC 디코더(400)와 유사한 방식으로 동작하도록 구성될 수 있다. V-PCC 디코더(400)는 압축된 비트스트림을 수신하고, 압축된 비트스트림에 기초하여 재구축된 포인트 클라우드를 생성한다.
도 4의 예에서, V-PCC 디코더(400)는 디멀티플렉서(432), 비디오 압축해제 모듈(434, 436), 점유 맵 압축해제 모듈(438), 보조 패치 정보 압축해제 모듈(442), 지오메트리 재구축 모듈(444), 평활화 모듈(446), 텍스처 재구축 모듈(448) 및 색상 평활화 모듈(452)을 포함한다.
디멀티플렉서(432)는 압축된 비트스트림을 수신하여 압축된 텍스처 이미지, 압축된 지오메트리 이미지, 압축된 점유 맵 및 압축된 보조 패치 정보로 분리할 수 있다.
비디오 압축해제 모듈(434, 436)은 적합한 표준(예컨대, HEVC, VVC 등)에 따라 압축된 이미지를 디코딩하고 압축해제된 이미지를 출력할 수 있다. 예를 들어, 비디오 압축해제 모듈(434)은 압축된 텍스처 이미지를 디코딩하여 압축해제된 텍스처 이미지를 출력하고; 비디오 압축해제 모듈(436)은 압축된 지오메트리 이미지를 디코딩하여 압축해제된 지오메트리 이미지를 출력한다.
점유 맵 압축해제 모듈(438)은 적합한 표준(예컨대, HEVC, VVC 등)에 따라 압축된 점유 맵을 디코딩하여 압축해제된 점유 맵을 출력할 수 있다.
보조 패치 정보 압축해제 모듈(442)은 적합한 표준(예컨대, HEVC, VVC 등)에 따라 압축된 보조 패치 정보를 디코딩하여 압축해제된 보조 패치 정보를 출력할 수 있다.
지오메트리 재구축 모듈(444)은 압축해제된 지오메트리 이미지를 수신하고, 압축해제된 점유 맵 및 압축해제된 보조 패치 정보에 기초하여 재구축된 포인트 클라우드 지오메트리를 생성할 수 있다.
평활화 모듈(446)은 패치의 에지에서 부조화(incongruences)를 평활화할 수 있다. 평활화 프로시저는 압축 아티팩트로 인해 패치 경계에서 발생할 수 있는 잠재적 불연속성을 완화하는 것을 목표로 한다. 일부 실시예에서, 평활화 필터는 압축/압축해제에 의해 야기될 수 있는 왜곡을 완화하기 위해 패치 경계에 위치한 픽셀에 적용될 수 있다.
텍스처 재구축 모듈(448)은 압축해제된 텍스처 이미지 및 평활화 지오메트리에 기초하여 포인트 클라우드의 포인트에 대한 텍스처 정보를 결정할 수 있다.
색상 평활화 모듈(452)은 색상의 부조화를 평활화할 수 있다. 3D 공간에서 인접하지 않은 패치가 종종 2D 비디오에서 서로 옆에 패킹된다. 몇몇 예에서, 인접하지 않은 패치의 픽셀 값은 블록 기반 비디오 코덱에 의해 혼합될 수 있다. 색상 평활화의 목표는 패치 경계에 나타나는 시각적 아티팩트를 줄이는 것이다.
도 5는 몇몇 예에서의 비디오 디코더(510)의 블록도를 도시한다. 비디오 디코더(510)는 V-PCC 디코더(400)에 사용될 수 있다. 예를 들어, 비디오 압축해제 모듈(434, 436), 점유 맵 압축해제 모듈(438)은 비디오 디코더(510)와 유사하게 구성될 수 있다.
비디오 디코더(510)는 코딩된 비디오 시퀀스와 같은, 압축된 이미지로부터 심볼(521)을 재구축하는 파서(520)를 포함할 수 있다. 이러한 심볼의 카테고리는 비디오 디코더(510)의 동작을 관리하는 데 사용되는 정보를 포함된다. 파서(520)는 수신되는 코딩된 비디오 시퀀스를 파싱/엔트로피-디코딩할 수 있다. 코딩된 비디오 시퀀스의 코딩은 비디오 코딩 기술 또는 표준을 따르는 것일 수 있고, 가변 길이 코딩, 허프만 코딩, 컨텍스트 민감도가 있거나 없는 산술 코딩 등을 포함하는 다양한 원리를 따를 수 있다. 파서(520)는 그룹에 대응하는 적어도 하나의 파라미터에 기초하여, 비디오 디코더에서 픽셀의 서브그룹 중 적어도 하나에 대한 서브그룹 파라미터 세트를 코딩된 비디오 시퀀스로부터 추출할 수 있다. 서브그룹은 GOP(Group of Picture), 픽처, 타일, 슬라이스, 매크로블록, CU(Coding Unit), 블록, TU(Transform Unit), PU(Prediction Unit) 등을 포함할 수 있다. 파서(520)는 또한 코딩된 비디오 시퀀스 정보로부터, 변환 계수, 양자화 파라미터 값, 움직임 벡터 등과 같은 추출할 수 있다.
파서(520)는 버퍼 메모리로부터 수신된 비디오 시퀀스에 대해 엔트로피 디코딩/파싱 동작을 수행하여, 심볼(521)을 생성할 수 있다.
심볼(521)의 재구축은 코딩된 비디오 픽처 또는 그 일부(예: 인터 및 인트라 픽처, 인터 및 인트라 블록)의 유형 및 기타 인자에 따라 다수의 서로 다른 유닛이 관련할 수 있다. 어떤 유닛이 관련되고 어떻게 관련되는지는 파서(520)에 의해 코딩된 비디오 시퀀스로부터 파싱된 서브그룹 제어 정보에 의해 제어될 수 있다. 파서(520)와 그 아래의 다수의 유닛 사이의 그러한 서브그룹 제어 정보의 흐름은 단순함을 위해 나타내지 않았다.
이미 언급된 기능 블록을 넘어, 비디오 디코더(510)는 아래에 설명되는 바와 같이 개념적으로 다수의 기능 유닛으로 세분될 수 있다. 상업적 제약 하에서 작동하는 실제 구현에서, 이러한 기능 유닛 중 다수는 서로 밀접하게 상호작용하며, 적어도 부분적으로, 서로 통합될 수 있다. 그러나 개시된 주제를 설명하기 위해, 이하의 기능 유닛들로의 개념적 세분화가 적절하다.
제1 유닛은 스케일러/역변환 유닛(551)이다. 스케일러/역변환 유닛(551)은 파서(520)로부터의 심볼(들)(521)로서 사용할 변환, 블록 크기, 양자화 인자, 양자화 스케일링 행렬 등을 포함한, 제어 정보뿐만 아니라 양자화된 변환 계수도 수신한다. 스케일러/역변환 유닛(551)은 집성기(aggregator)(555)에 입력될 수 있는 샘플 값을 포함하는 블록을 출력할 수 있다.
경우에 따라서는, 스케일러/역변환 유닛(551)의 출력 샘플은 인트라 코딩된 블록에 관련될 수 있다, 즉, 이전에 재구축된 픽처로부터의 예측 정보를 사용하지 않지만, 현재 픽처의 이전에 재구축된 부분으로부터의 예측 정보를 사용할 수 있는 블록이다. 이러한 예측 정보는 인트라 픽처 예측 유닛(552)에 의해 제공될 수 있다. 경우에 따라서는, 인트라 픽처 예측 유닛(552)은 현재 픽처 버퍼(558)에서 인출된 이미 재구축된 주변 블록 정보를 사용하여, 재구축중인 블록과 동일한 크기 및 모양의 블록을 생성한다. 현재 픽처 버퍼(558)는, 예를 들어 부분적으로 재구축된 현재 픽처 및/또는 완전히 재구축된 현재 픽처를 버퍼링한다. 집성기(555)는, 경우에 따라서는, 인트라 예측 유닛(552)이 생성한 예측 정보를 스케일러/역변환 유닛(551)에 의해 제공되는 출력 샘플 정보에 샘플 단위로 추가될 수 있다.
다른 경우에, 스케일러/역변환 유닛(551)의 출력 샘플은 인터 코딩되고 잠재적으로 움직임 보상된 블록에 속할 수 있다. 이러한 경우, 움직임 보상 예측 유닛(553)은 인터 픽처 예측에 사용되는 샘플을 인출하기 위해 참조 픽처 메모리(557)에 액세스할 수 있다. 블록에 속하는 심볼(521)에 따라 인출된 샘플을 움직임 보상한 후, 이러한 샘플은 집성기(555)에 의해 스케일러/역변환 유닛(551)의 출력(이 경우 잔차 샘플 또는 잔차 신호로 불림)에 더해져, 출력 샘플 정보를 생성할 수 있다. 움직임 보상 예측 유닛(553)이 예측 샘플을 인출하는 참조 픽처 메모리(557) 내의 주소는 움직임 벡터에 의해 제어될 수 있으며, 예를 들어 X, Y 및 참조 픽처 성분을 가질 수 있는 심볼(321)의 형태로 움직임 보상 유닛에 사용할 수 있다. 움직임 보상은 또한 서브샘플의 정확한 움직임 벡터가 사용되고 있을 때에 참조 픽처 메모리(557)로부터 인출된 샘플 값의 보간을 포함할 수 있고, 움직임 벡터 예측 메커니즘 등도 포함할 수 있다.
집성기(555)의 출력 샘플은 루프 필터 유닛(556)에서 다양한 루프 필터링 기술의 대상이 될 수 있다. 비디오 압축 기술은 코딩된 비디오 시퀀스(코딩된 비디오 비트스트림이라고도 함)에 포함된 파라미터에 의해 제어되고 파서(520)로부터의 심볼(521)로서 루프 필터 유닛(556)에 사용 가능하게 되는 인 루프(in-loop) 필터 기술을 포함할 수 있지만, 또한 코딩된 픽처 또는 코딩된 비디오 시퀀스의 이전(디코딩 순서상) 부분을 디코딩하는 동안 획득된 메타 정보에 응답할 수 있을 뿐만 아니라 이전에 재구축되고 루프 필터링된 샘플 값에 응답할 수도 있다.
루프 필터 유닛(556)의 출력은 렌더링 디바이스(512)에 출력될 수 있을 뿐만 아니라 나중의 인터 픽처 예측에 사용하기 위해 참조 픽처 메모리(557)에 저장될 수도 있는 샘플 스트림일 수 있다.
일단 완전히 재구축된 특정 코딩된 픽처는 나중의 예측을 위한 참조 픽처로서 사용할 수 있다. 예를 들어, 현재 픽처에 대응하는 코딩된 픽처가 완전히 재구축되고 코딩된 픽처가 참조 픽처로 식별되면(예를 들어, 파서(520)에 의해), 현재 픽처 버퍼(558)는 참조 픽처 메모리(557)의 일부가 될 수 있고, 새로운 현재 픽처 버퍼는 다음 코딩된 픽처의 재구축을 시작하기 전에 재할당될 수 있다.
비디오 디코더(510)는 ITU-T Rec. H.265와 같은, 표준에서의 미리 정해진 비디오 압축 기술에 따라 디코딩 동작을 수행할 수 있다. 코딩된 비디오 시퀀스는 비디오 압축 기술 또는 표준의 신택스와 비디오 압축 기술 또는 표준의 문서화된 프로파일 모두를 준수한다는 점에서, 코딩된 비디오 시퀀스는 사용되는 비디오 압축 기술 또는 표준에 의해 지정된 신택스를 따를 수 있다. 구체적으로, 프로파일은 비디오 압축 기술 또는 표준에서 사용 가능한 모든 도구 중에서 해당 프로파일에서 사용할 수 있는 유일한 도구로서 특정 도구를 선택할 수 있다. 또한 준수를 위해 필요한 것은 코딩된 비디오 시퀀스의 복잡도가 비디오 압축 기술 또는 표준의 레벨에 의해 정의된 범위 내에 있다는 것일 수 있다. 경우에 따라서는, 레벨은 최대 픽처 크기, 최대 프레임 레이트, 최대 재구축 샘플 레이트(예를 들어, 초당 메가 샘플로 측정됨), 최대 참조 픽처 크기 등을 제한한다. 레벨에 의해 설정된 제한은, 경우에 따라서는 코딩된 비디오 시퀀스에서 시그널링된 가상 참조 디코더(Hippothetical Reference Decoder, HRD) 버퍼 관리를 위한 HRD 사양 및 메타 데이터를 통해 추가로 제한될 수 있다.
도 6은 본 개시의 일 실시예에 따른 비디오 인코더(603)의 블록도를 도시한다. 비디오 인코더(603)는 포인트 클라우드를 압축하는 V-PCC 인코더(300)에 사용될 수 있다. 일례에서, 비디오 압축 모듈(322, 323)과 비디오 압축 모듈(332)은 인코더(603)와 유사하게 구성된다.
비디오 인코더(603)는 패딩된 지오메트리 이미지, 패딩된 텍스처 이미지 등과 같은, 이미지를 수신하고 압축된 이미지를 생성할 수 있다.
일 실시예에 따르면, 비디오 인코더(603)는 소스 비디오 시퀀스의 픽처를 실시간으로 또는 애플리케이션에 의해 요구되는 임의의 다른 시간 제약하에 코딩된 비디오 시퀀스(압축된 이미지)로 코딩하고 압축할 수 있다. 적절한 코딩 속도를 강제하는 것은 제어기(650)의 한 가지 기능을 구성한다. 일부 실시예에서, 제어기(650)는 후술되는 바와 같이 다른 기능 유닛을 제어하고 다른 기능 유닛에 기능적으로 결합된다. 단순함을 위해 그 결합을 표시하지 않았다. 제어기(650)에 의해 설정되는 파라미터로는 레이트 제어 관련 파라미터(픽처 스킵, 양자화기, 레이트 왜곡 최적화 기술의 람다 값,…), 픽처 크기, 픽처 그룹(group of picture, GOP) 레이아웃, 최대 움직임 벡터 허용 검색 범위, 등을 포함할 수 있다. 제어기(650)는 특정 시스템 설계에 최적화된 비디오 인코더(603)에 속하는 다른 적절한 기능을 갖도록 구성될 수 있다.
일부 실시예에서, 비디오 인코더(603)는 코딩 루프에서 동작하도록 구성될 수 있다. 과도하게 단순화된 설명으로서, 일례에서, 코딩 루프는 소스 코더(630)(예컨대, 코딩될 입력 픽처에 기초하여 심볼 스트림과 같은 심볼 및 참조 픽처(들)의 생성을 담당), 및 비디오 인코더(603)에 내장된 (로컬) 디코더(633)를 포함할 수 있다. 디코더(633)는 (원격) 디코더도 생성할 것(심볼과 코딩된 비디오 비트 스트림 사이의 임의의 압축이 개시된 주제에서 고려되는 비디오 압축 기술에서 무손실일 수 있는 것)과 유사한 방식으로 샘플 데이터를 생성하기 위해 심볼을 재구축한다. 재구축된 샘플 스트림(샘플 데이터)은 참조 픽처 메모리(634)에 입력된다. 심볼 스트림의 디코딩은 디코더 위치(로컬 또는 원격)와 무관하게 비트가 정확한 결과(bit-exact result)로 이어지므로, 참조 픽처 메모리(634)의 내용도 로컬 인코더와 원격 인코더 사이에 비트가 정확하다(bit exact). 다시 말해, 인코더의 예측 부분은 디코딩 동안에 예측을 사용하는 경우에 디코더가 "인식하는(see)" 것과 정확히 동일한 샘플 값을 참조 픽처 샘플로서 "인식한다". 참조 픽처 동기성(reference picture synchronicity)(및 예를 들어 채널 오차로 인해 동시성이 유지될 수 없는 경우, 결과 드리프트)의 기본 원리는 일부 관련 기술에도 사용된다.
"로컬" 디코더(633)의 동작은 비디오 디코더(410)와 같은, "원격" 디코더의 동작과 동일할 수 있으며, 이는 이미 도 5와 관련하여 상세하게 설명되었다. 하지만 도 5를 또한 간략하게 참조하면, 심볼이 이용 가능하고 엔트로피 코더(645) 및 파서(520)에 의해 코딩된 비디오 시퀀스로의 심볼의 인코딩/디코딩이 무손실일 수 있으므로, 비디오 디코더(510)의 엔트로피 디코딩 부분은 파서(520)를 포함하여, 로컬 디코더(633)에 완전하게 구현되지 않을 수 있다.
동작하는 동안, 몇몇 예에서, 소스 코더(630)는 "참조 픽처"로 지정된 비디오 시퀀스로부터 하나 이상의 이전에 코딩된 픽처를 참조하여 입력 픽처를 예측적으로 코딩하는 움직임 보상된 예측 코딩을 수행할 수 있다. 이러한 방식으로, 코딩 엔진(632)은 입력 픽처에 대한 예측 참조(들)로서 선택될 수 있는 입력 픽처의 픽셀 블록과 참조 픽처(들)의 픽셀 블록 간의 차이를 코딩한다.
로컬 비디오 디코더(633)는 소스 코더(630)에 의해 생성된 심볼에 기초하여, 참조 픽처로 지정될 수 있는 픽처의 코딩된 비디오 데이터를 디코딩할 수 있다. 코딩 엔진(632)의 동작은 유리하게는 손실 프로세스일 수 있다. 코딩된 비디오 데이터가 비디오 디코더(도 6에 도시되지 않음)에서 디코딩될 수 있을 때, 재구축된 비디오 시퀀스는 일반적으로 약간의 오류(error)가 있는 소스 비디오 시퀀스의 복제본(replica)일 수 있다. 로컬 비디오 디코더(633)는 참조 픽처에 대해 비디오 디코더에 의해 수행될 수 있는 디코딩 프로세스를 복제하고, 재구축된 참조 픽처가 참조 픽처 캐시(634)에 저장되도록 할 수 있다. 이러한 방식으로, 비디오 인코더(603)는 원단(far-end) 비디오 디코더(송신 오류 없음)에 의해 획득될 재구축된 참조 픽처로서 공통 콘텐츠를 갖는 재구축된 참조 픽처의 사본을 로컬에 저장할 수 있다.
예측기(predictor)(635)는 코딩 엔진(632)에 대한 예측 검색을 수행할 수 있다. 즉, 코딩될 새로운 픽처를 위해, 예측기(635)는 참조 픽처 메모리(634)에서 새로운 픽처에 대한 적절한 예측 참조의 역할을 할 수 있는 샘플 데이터(후보 참조 픽셀 블록임), 또는 참조 픽처 움직임 벡터, 블록 모양 등과 같은 특정 메타데이터를 검색할 수 있다. 예측기(635)는 적절한 예측 참조를 찾기 위해 샘플 블록별 픽셀 블록(sample block-by-pixel block) 단위로 동작할 수 있다. 경우에 따라서는, 예측기(635)에 의해 획득된 검색 결과에 의해 결정되는 바와 같이, 입력 픽처는 참조 픽처 메모리(634)에 저장된 다수의 참조 픽처로부터 끌어낸 예측 참조를 가질 수 있다.
제어기(650)는, 예를 들어 비디오 데이터를 인코딩하기 위해 사용되는 파라미터 및 서브그룹 파라미터의 설정을 포함한, 소스 코더(630)의 코딩 동작을 관리할 수 있다.
전술한 모든 기능 유닛의 출력은 엔트로피 코더(645)에서의 엔트로피 코딩 대상일 수 있다. 엔트로피 코더(645)는 호프만(Huffman) 코딩, 가변 길이 코딩, 산술 코딩 등과 같은 기술에 따라 심볼을 무손실 압축함으로써, 다양한 기능 유닛에 의해 생성된 심볼을 코딩된 비디오 시퀀스로 변환한다.
제어기(650)는 비디오 인코더(603)의 동작을 관리할 수 있다. 코딩하는 동안, 제어기(650)는 각각의 코딩된 픽처에 특정 코딩된 픽처 유형을 할당할 수 있으며, 이는 각각의 픽처에 적용될 수 있는 코딩 기술에 영향을 미칠 수 있다. 예를 들어, 픽처는 종종 다음 픽처 유형 중 하나로서 지정될 수 있다:
인트라 픽처(Intra Picture: I 픽처)는 예측의 소스로서 시퀀스 내의 어떤 다른 픽처도 사용하지 않고 코딩 및 디코딩될 수 있는 것일 수 있다. 일부 비디오 코덱은, 예를 들어 독립 디코더 리프레시 픽처(Independent Decoder Refresh, "IDR") 픽처를 포함한, 서로 다른 유형의 인트라 픽처를 허용한다. 당업자는 I 픽처의 이러한 변형 및 각각의 적용 및 특징을 알고 있다.
예측 픽처(predictive picture: P 픽처)는 각각의 블록의 샘플 값을 예측하기 위해 최대 하나의 움직임 벡터 및 참조 색인을 사용하는 인트라 예측 또는 인터 예측을 사용하여 코딩 및 디코딩될 수 있는 것일 수 있다.
양 방향 예측 픽처(bi-directionally predictive picture: B 픽처)는 각각의 블록의 샘플 값을 예측하기 위해 최대 두 개의 움직임 벡터 및 참조 색인을 사용하는 인트라 예측 또는 인터 예측을 사용하여 코딩 및 디코딩될 수 있는 것일 수 있다. 유사하게, 다중 예측 픽처(multiple-predictive picture)는 단일 블록의 재구축을 위해 두 개보다 많은 참조 픽처 및 연관된 메타 데이터를 사용할 수 있다.
소스 픽처는 일반적으로 공간적으로 복수의 샘플 블록(예를 들어, 각각 4×4, 8×8, 4×8 또는 16×16 샘플 블록)으로 세분화되고 블록 단위로 코딩될 수 있다. 블록은 블록의 픽처 각각에 적용된 코딩 할당에 의해 결정된 대로의 다른 (이미 코딩된) 블록을 참조하여 예측적으로 코딩될 수 있다. 예를 들어, I 픽처의 블록은 비예측적으로(non-predictively) 코딩되거나, 동일한 픽처의 이미 코딩된 블록(공간 예측(spatial prediction) 또는 인트라 예측)을 참조하여 예측적으로 코딩될 수 있다. P 픽처의 픽셀 블록은 이전에 코딩된 하나의 참조 픽처를 참조하여 공간 예측을 통해 또는 시간 예측(temporal prediction)을 통해 예측적으로 코딩될 수 있다. B 픽처의 블록은 이전에 코딩된 하나 또는 두 개의 참조 픽처를 참조하여 공간 예측을 통해 또는 시간 예측을 통해 예측적으로 코딩될 수 있다.
비디오 인코더(603)는 ITU-T Rec. H.265.와 같은 미리 결정된 비디오 코딩 기술 또는 표준에 따라 코딩 동작을 수행할 수 있다. 그 동작 시에, 비디오 인코더(603)는 입력 비디오 시퀀스에서의 시간적 및 공간적 중복성을 이용하는 예측 코딩 동작을 포함한, 다양한 압축 동작을 수행할 수 있다. 따라서, 코딩된 비디오 데이터는 사용되는 비디오 코딩 기술 또는 표준에 의해 지정된 신택스를 따를 수 있다.
비디오는 시간적 시퀀스로 복수의 소스 픽처(비디오 픽처)의 형태일 수 있다. 인트라 픽처 예측(종종 인트라 예측으로 축약됨)은 주어진 픽처에서 공간적 상관관계를 이용하고, 인터 픽처 예측(inter-picture prediction)은 픽처들 사이의 (시간적 또는 기타) 상관관계를 이용한다. 일례에서, 현재 픽처라고 하는 인코딩/디코딩 중인 특정 픽처는 블록으로 파티셔닝될 수 있다. 현재 픽처 내의 블록이 이전에 코딩되고 비디오에서 여전히 버퍼링되어 있는 참조 픽처의 참조 블록과 유사한 경우, 현재 픽처 내의 블록은 움직임 벡터라고 하는 벡터에 의해 코딩될 수 있다. 움직임 벡터는 참조 픽처 내의 참조 블록을 가리키며, 다수의 참조 픽처가 사용 중인 경우, 참조 픽처를 식별하는 제3 차원을 가질 수 있다.
일부 실시예에서, 양-예측 기술(bi-prediction technique)이 인터 픽처 예측에 사용될 수 있다. 이러한 양-예측 기술에 따르면, 디코딩 순서상 비디오에서 현재 픽처에 모두 선행하는 (하지만 각각 표시 순서상 과거 또는 미래의 것일 수 있음) 제1 참조 픽처와 제2 참조 픽처와 같은, 2개의 참조 픽처가 사용된다. 현재 픽처의 블록은 제1 참조 픽처의 제1 참조 블록을 가리키는 제1 움직임 벡터 및 제2 참조 픽처의 제2 참조 블록을 가리키는 제2 움직임 벡터에 의해 코딩될 수 있다. 블록은 제1 참조 블록과 제2 참조 블록의 조합에 의해 예측될 수 있다.
또한, 인터 픽처 예측에 병합 모드 기술을 사용하여 코딩 효율을 향상시킬 수 있다.
본 개시의 일부 실시예에 따르면, 인터 픽처 예측 및 인트라 픽처 예측과 같은 예측은 블록 단위로 수행된다. 예를 들어, HEVC 표준에 따르면, 비디오 픽처의 시퀀스 내의 픽처는 압축을 위해 코딩 트리 유닛(coding tree unit, CTU)로 파티셔닝되고, 픽처 내의 CTU들은 64×64 픽셀, 32×32 픽셀 또는 16×16 픽셀과 같이, 동일한 크기를 가질 수 있다. 일반적으로, CTU는 루마 CTB 1개와 크로마 CTB 2개인, 3개의 병렬 코딩 트리 블록(coding tree block, CTB)을 포함할 수 있다. 각각의 CTU는 재귀적으로 하나 또는 다수의 코딩 유닛(CU)으로 쿼드트리 분할될 수 있다. 예를 들어 64×64 픽셀의 CTU는 64×64 픽셀의 CU 1개 또는 32×32 픽셀의 CU 4개 또는 16×16 픽셀의 CU 16개로 분할될 수 있다. 일례에서, 각각의 CU는 인터 예측 유형 또는 인트라 예측 유형과 같은, CU에 대한 예측 유형을 결정하기 위해 분석될 수 있다. CU는 시간 및/또는 공간 예측 가능성에 따라 하나 이상의 예측 유닛(prediction unit, PU)으로 분할될 수 있다. 일반적으로, 각각의 PU는 루마 예측 블록(PB)과 두 개의 크로마 PB를 포함한다. 일 실시예에서, 코딩(인코딩/디코딩)에서의 예측 동작은 예측 블록의 단위로 수행된다. 예측 블록의 예로서 루마 예측 블록을 사용하면, 예측 블록은 8×8 픽셀, 16×16 픽셀, 8×16 픽셀, 16×8 픽셀 등과 같은 픽셀에 대한 값(예컨대, 루마 값)의 행렬을 포함한다.
도 7은 몇몇 예에서의 G-PCC 인코더(700)의 블록도를 도시한다. G-PCC 인코더(700)는 포인트 클라우드 데이터를 수신하고 포인트 클라우드 데이터를 압축하여 압축된 포인트 클라우드 데이터를 실어 전달하는 비트 스트림을 생성하도록 구성될 수 있다. 일 실시예에서, G-PCC 인코더(700)는 위치 양자화(position quantization) 모듈(710), 중복 포인트 제거(duplicated points removal) 모듈(712), 옥트리 인코딩(octree encoding) 모듈(730), 속성 전송(attribute transfer) 모듈(720), 디테일 레벨(level of detail, LOD) 생성 모듈(740), 속성 예측(attribute prediction) 모듈(750), 잔차 양자화(residual quantization) 모듈(760), 산술 코딩(arithmetic coding) 모듈(770), 역 잔차 양자화(inverse residual quantization) 모듈(780), 가산(addition) 모듈(781), 재구축된 속성 값을 저장하는 메모리(790)를 포함한다.
도시된 바와 같이, 입력 포인트 클라우드(701)는 G-PCC 인코더(700)에서 수신될 수 있다. 포인트 클라우드(701)의 위치(예컨대, 3D 좌표)는 양자화 모듈(710)에 제공된다. 양자화 모듈(710)은 좌표를 양자화하여 양자화된 위치를 생성하도록 구성된다. 중복 포인트 제거(duplicated points removal module) 모듈(712)은 양자화된 위치를 수신하고 필터 프로세스를 수행하여 중복 포인트를 식별 및 제거하도록 구성된다. 옥트리 인코딩(octree encoding) 모듈(730)은 중복 포인트 제거 모듈(712)로부터 필터링된 위치를 수신하고, 옥트리 기반 인코딩 프로세스를 수행하여 복셀의 3D 그리드를 기술하는 점유 코드 시퀀스를 생성하도록 구성된다. 점유 코드는 산술 코딩 모듈(770)에 제공된다.
속성 전송 모듈(720)은 입력 포인트 클라우드의 속성을 수신하고 속성 전송 프로세스를 수행하여 복수의 속성 값이 각각의 복셀과 연관되는 경우에 각각의 복셀에 대한 속성 값을 결정하도록 구성된다. 옥트리 인코딩 모듈(730)에서 출력된 재정렬된 포인트에 대해 속성 전송 프로세스가 수행될 수 있다. 전송 동작 후의 속성은 속성 예측 모듈(750)에 제공된다. LOD 생성 모듈(740)은 옥트리 인코딩 모듈(730)에서 출력된 재정렬된 포인트에 대해 동작하고, 포인트를 상이한 LOD들로 재조직화하도록 구성된다. LOD 정보는 속성 예측 모듈(750)에 공급된다.
속성 예측 모듈(750)은 LOD 생성 모듈(740)로부터의 LOD 정보에 의해 지시되는 OD 기반 순서에 따라 포인트를 처리한다. 속성 예측 모듈(750)은 메모리(790)에 저장된 현재 포인트의 이웃 포인트의 세트의 재구축된 속성에 기초하여 현재 포인트에 대한 속성 예측을 생성한다. 속성 전송 모듈(720)로부터 수신된 원래의 속성 값 및 로컬로 생성된 속성 예측에 기초하여 예측 잔차가 후속적으로 획득될 수 있다. 각각의 속성 예측 프로세스에서 후보 인덱스를 사용하는 경우, 선택된 예측 후보에 대응하는 인덱스는 산술 코딩 모듈(770)에 제공될 수 있다.
잔차 양자화 모듈(760)은 속성 예측 모듈(750)로부터 예측 잔차를 수신하고, 양자화를 수행하여 양자화된 잔차를 생성하도록 구성된다. 양자화된 잔차는 산술 코딩 모듈(770)에 제공된다.
역 잔차 양자화 모듈(780)은 잔차 양자화 모듈(760)로부터 양자화된 잔차를 수신하고, 잔차 양자화 모듈(760)에서 수행된 양자화 동작의 역을 수행함으로써 재구축된 예측 잔차를 생성하도록 구성된다. 가산 모듈(781)은 역 잔차 양자화 모듈(780)로부터 재구축된 예측 잔차를 수신하고, 속성 예측 모듈(750)로부터 각각의 속성 예측을 수신하도록 구성된다. 재구축된 예측 잔차와 속성 예측을 결합함으로써, 재구축된 속성 값이 생성되어 메모리(790)에 저장된다.
산술 코딩 모듈(770)은 점유 코드, 후보 인덱스(사용된 경우), 양자화된 잔차(생성된 경우) 및 기타 정보를 수신하고, 엔트로피 인코딩을 수행하여 수신된 값 또는 정보를 추가로 압축하도록 구성된다. 그 결과, 압축된 정보를 실어 전달하는 압축된 비트스트림(702)이 생성될 수 있다. 비트스트림(702)은 압축된 비트스트림을 디코딩하는 디코더에 송신될 수 있거나, 그렇지 않으면 제공될 수 있거나, 저장 디바이스에 저장될 수 있다.
도 8은 일 실시예에 따른 G-PCC 디코더(800)의 블록도를 도시한다. G-PCC 디코더(800)는 압축된 비트스트림을 수신하고, 포인트 클라우드 데이터 압축해제를 수행하여 비트스트림을 압축해제하여 디코딩된 포인트 클라우드 데이터를 생성하도록 구성될 수 있다. 일 실시예에서, G-PCC 디코더(800)는 산술 디코딩 모듈(810), 역 잔차 양자화 모듈(820), 옥트리 디코딩 모듈(830), LOD 생성 모듈(840), 속성 예측 모듈(850), 및 재구축된 속성 값을 저장하는 메모리(860)를 포함할 수 있다.
도시된 바와 같이, 압축된 비트스트림(801)은 산술 디코딩 모듈(810)에서 수신될 수 있다. 산술 디코딩 모듈(810)은 압축된 비트스트림(801)을 디코딩하여 양자화된 잔차(생성된 경우) 및 포인트 클라우드의 점유 코드를 획득하도록 구성된다. 옥트리 디코딩 모듈(830)은 점유 코드에 따라 포인트 클라우드에서의 포인트의 재구축된 위치를 결정하도록 구성된다. LOD 생성 모듈(840)은 재구축된 위치에 기초하여 포인트들을 서로 다른 LOD로 재조직화하고, LOD 기반 순서를 결정하도록 구성된다. 역 잔차 양자화 모듈(820)은 산술 디코딩 모듈(810)로부터 수신된 양자화된 잔차에 기초하여 재구축된 잔차를 생성하도록 구성된다.
속성 예측 모듈(850)은 속성 예측 프로세스를 수행하여 LOD 기반 순서에 따라 포인트에 대한 속성 예측을 결정하도록 구성된다. 예를 들어, 현재 포인트의 속성 예측은 메모리(860)에 저장된 현재 포인트 주변 포인트들의 재구축된 속성 값에 기초하여 결정될 수 있다. 몇몇 예에서, 속성 예측은 각각의 재구축된 잔차와 결합되어 현재 포인트에 대한 재구축된 속성을 생성할 수 있다.
옥트리 디코딩 모듈(830)로부터 생성된 재구축된 위치와 함께 속성 예측 모듈(850)로부터 생성된 재구축된 속성의 시퀀스는 한 예로 G-PCC 디코더(800)로부터 출력되는 디코딩된 포인트 클라우드(802)에 대응한다. 또한, 재구축된 속성도 메모리(860)에 저장되어 후속 포인트에 대한 속성 예측을 도출하는 데 사용될 수 있다.
다양한 실시예에서, 인코더(300), 디코더(400), 인코더(700) 및/또는 디코더(800)는 하드웨어, 소프트웨어 또는 이들의 조합으로 구현될 수 있다. 예를 들어, 인코더(300), 디코더(400), 인코더(700) 및/또는 디코더(800)는 ASIC(Application Specific Integrated Circuit), FPGA(Field Programmable Gate Array) 등과 같은, 소프트웨어 없이 또는 소프트웨어와 함께 동작하는 하나 이상의 집적 회로(IC)와 같은 처리 회로로 구현될 수 있다. 다른 예에서, 인코더(300), 디코더(400), 인코더(700) 및/또는 디코더(800)는 컴퓨터로 판독 가능한 비휘발성(또는 비일시적) 메모리에 저장된 명령어를 포함하는 소프트웨어 또는 펌웨어로 구현될 수 있다. 명령어는 하나 이상의 프로세서와 같은 처리 회로에 의해 실행될 때, 처리 회로로 하여금 인코더(300), 디코더(400), 인코더(700) 및/또는 디코더(800)의 기능을 수행하게 한다.
여기에 개시된 속성 예측 기술을 구현하도록 구성된 속성 예측 모듈(750, 850)은 도 7 및 도 8에 도시된 것과 유사하거나 상이한 구조를 가질 수 있는 다른 디코더 또는 인코더에 포함될 수 있음에 유의한다. 또한, 다양한 예에서 인코더(700)와 디코더(800)는 동일한 디바이스 또는 별개의 디바이스에 포함될 수 있다.
본 개시는 장면의 다양한 파노라마로부터 장면의 맨해튼 레이아웃의 추정을 포함한, 맨해튼 레이아웃의 추정과 관련된 실시예를 포함한다. 실시예는 가상 여행과 같은, 가상 현실 및 증강 현실 애플리케이션을 생성하는 데 사용될 수 있다. 예를 들어, 맨해튼 레이아웃은 지오메트리와 세그먼트화 정보를 활용하여 수많은 파노라마 이미지로부터 추정될 수 있다.
로봇 공학, 가상 현실, 및 증강 현실과 같은 애플리케이션에서는 이미지를 통해 방(room)의 레이아웃을 추정하는 것이 일반적인 관행이다. 방의 레이아웃에는 특정 참조 포인트에 대한 방의 벽의 위치, 방향 및 높이가 포함될 수 있다. 예를 들어, 방의 레이아웃을 묘사하기 위해 벽의 교차점, 3D 메시 또는 포인트 클라우드가 채용될 수 있다. 방의 맨해튼 레이아웃에서는 방의 벽이 서로 수직이다. 파노라마 이미지는 파노라마 카메라와 같은, 카메라를 통해 생성될 수 있다. 파노라마 이미지를 적용하여 방의 레이아웃을 묘사할 수 있다. 그러나 다수의 파노라마 이미지를 분석하여 방의 맨해튼 레이아웃을 추정하는 것은 어려울 수 있다. 파노라마(또는 파노라마 이미지)는 장면의 360도 정보(360 degrees of information)를 캡슐화할 수 있으며, 360도 정보는 원근 이미지(perspective image)보다 훨씬 더 많은 데이터를 포함할 수 있다.
방의 맨해튼 레이아웃은 다수의 파노라마 뷰(또는 파노라마 이미지)로부터의 지오메트릭 정보와 정보(예컨대, 픽셀)의 시맨틱 세그먼트화를 사용하여 추정할 수 있다. 시맨틱 세그먼트화는 레이블이나 카테고리를 이미지의 모든 픽셀과 연관짓는 심층 학습(deep learning) 알고리즘을 사용하여 수행될 수 있다. 시맨틱 세그먼트화는 별개의 카테고리를 형성하는 픽셀의 모음(collection)을 인식하는 데 사용될 수 있다.
단일 파노라마로는 방의 레이아웃을 정확하게 표현하지 못할 수 있으므로 다수의 파노라마(또는 파노라마 이미지)를 사용하여 방의 맨해튼 레이아웃을 추정할 수 있다. 예를 들어, 방 안의 객체가 방의 벽 경계를 가릴 수 있거나, 방이 매우 커서 단일 파노라마 이미지로는 방을 완전히 포착하지 못할 수 있다. 지오메트릭 정보는 방의 맨해튼 레이아웃에 대한 2개의 주요 방향(예컨대, X 방향 및 Z 방향)과 파노라마에서 추출된 선분 정보(line segment inform)를 포함할 수 있다. 그러나, 지오메트릭 정보는 방의 지오메트릭 내용(geometric content)에 중점을 두기 때문에 지오메트릭 정보에는 시맨틱 정보가 부족할 수 있다. 따라서 시맨틱 세그먼트화(semantic segmentation)를 이용하여 파노라마의 픽셀에 대한 시맨틱 정보를 제공할 수 있다. 시맨틱 세그먼트화는 파노라마의 픽셀 각각에 대해 각자의 카테고리를 결정하기 위해 파노라마(또는 파노라마 이미지)의 라벨링을 참조할 수 있다. 예를 들어, 시맨틱 세그먼트화에 기초하여 픽셀이 방의 바닥, 벽 등 중 하나로 라벨링될 수 있다.
도 9a∼도 9c는 파노라마의 예시적인 지오메트릭 및 시맨틱 표현을 나타낸 도면이다. 도 9a에 도시된 바와 같이, 파노라마(900)가 제공되는데, 여기서 파노라마(900)는 호텔 방의 장면을 포함할 수 있다. 도 9b에서, 파노라마(900)에는 지오메트릭 선분(geometric line segment)의 정보가 표시될 수 있다. 도 9c에서, 방의 픽셀들의 시맨틱 정보는 시맨틱 세그먼트화에 기초하여 제공될 수 있다. 예를 들어, 방의 픽셀의 시맨틱 정보는 천장(902), 바닥(904), 소파(906), 벽(908) 등을 지시할 수 있다.
방의 레이아웃은 3D 메시, 경계선, 포인트 클라우드를 포함한, 다양한 방식으로 표현될 수 있다. 본 개시에서, 방의 3D 메시와 경계선을 이용하여 방의 레이아웃을 기술할 수 있다. 경계선은 하나 이상의 다각형으로 표현될 수 있으며, 다각형으로부터 방의 3D 메시가 생성될 수 있다.
도 10a∼도 10c는 방의 예시적인 다각형 표현 및 예시적인 메시 표현을 도시한다. 도 10a에 도시된 바와 같이, 추정된 방 레이아웃(1000)이 제공될 수 있다. 도 10b에서, 추정된 방 레이아웃의 다각형 표현(1002)이 제공될 수 있으며, 여기서 방 레이아웃의 코너는 0-7과 같은, 숫자로 라벨링될 수 있다. 도 10c에서, 3D 메시(1004)는 다각형(1002)으로부터 생성될 수 있다. 도 10a∼도 10c에 따르면, 방의 레이아웃(예: (1000))이 확립되면, 벽면을 바닥면에 투영하여 다각형(예컨대, (1002))을 획득할 수 있다. 다음에, 벽의 다각형 및 높이가 획득되면, 레이아웃과 3차원 메시(예컨대, (1004))를 도출할 수 있다.
본 개시에서는 장면의 지오메트릭 정보와 시맨틱 정보(예컨대, 방 레이아웃(1000))에 기초하여 다각형(예컨대, 다각형(1002))을 추정함으로써 방의 맨해튼 레이아웃을 추정할 수 있다. 다각형은 유향 그래프(directed graph) 로 표현될 수 있으며, 여기서 는 다각형의 코너의 세트이고 e는 코너를 연결하는 에지의 세트이다. 코너 이음부(corner joint) 각각의 위치는 카메라 위치를 기준으로 한 2D 공간상의 2D 좌표(x,y)로 정의될 수 있다. 각각의 에지는 각 모서리는 유향 선분()으로 표현될 수 있으며, 여기서 는 각각 에지의 시작점과 끝점이다. 각 에지의 선함수는 로 표현될 수 있으며, 여기서 을 충족하는 선의 법선이고, 는 상수 실수이다.
도 11은 장면(예컨대, 방)의 맨해튼 레이아웃을 추정하기 위한 시스템(또는 프로세스)(1100)의 개요를 나타낸다. 도 11에 도시된 바와 같이, (1110)에서 입력 이미지가 제공될 수 있다. 입력 이미지는 장면의 파노라마 모음(또는 복수의 파노라마 이미지)을 포함할 수 있다. 파노라마 모음은 다양한 보기 위치에서 장면을 캡처하여 장면을 더 정확하게 표현할 수 있다. 프로세스(1100)의 단계(1120) 및 단계(1130)에서, 각 파노라마 이미지의 지오메트릭 정보 및 각 파노라마 이미지의 시맨틱 정보를 대응하는 파노라마 이미지로부터의 시맨틱 세그먼트화에 기초하여 결정할 수 있다. 지오메트릭 정보(또는 지오메트릭 인자)는 (1) 각 파노라마 이미지에서 검출된 선, (2) 각 파노라마 이미지의 주요 방향(예컨대, X 방향 및 Z 방향), (3) 방의 천장에서 방의 지면(바닥)까지의 거리와 카메라에서 지면까지의 거리의 비율, 및 (4) 2개의 개별 파노라마 이미지 사이와 같은, 파노라마 이미지 사이의 상대적 포즈(relative pose)(예컨대, 상대 위치, 각도 또는 거리)를 포함할 수 있다. 시맨틱 정보는 시맨틱 세그먼트화를 통해 획득될 수 있다. 시맨틱 세그먼트화는 파노라마 이미지의 각 픽셀에 시맨틱 의미(예컨대, 바닥, 문 등)를 할당할 수 있다. 단계(1140)에서는 각 파노라마 이미지의 지오메트릭 정보와 시맨택 세그먼트화에 기초하여 장면의 개별 레이아웃을 추정할 수 있다. 단계(1150)에서는 각각의 파노라마 이미지(또는 파노라마 이미지)로부터 추정된 레이아웃을 결합하여 방 레이아웃의 최종 추정을 생성할 수 있다. 단계(1160)에서, 추정된 레이아웃(또는 방 레이아웃의 최종 추정)에 기초하여 방의 3D 메시(또는 맨해튼 레이아웃)가 생성될 수 있다.
도 11의 단계(1140)의 예와 같이, 각 파노라마 이미지의 지오메트릭 정보 및 시맨틱 정보에 기초하여 장면(예컨대, 방)과 관련된 레이아웃 추정을 결정하기 위해, 시맨틱 세그먼트화의 결과가 파노라마(또는 파노라마 이미지)의 선분 각각이 방의 벽 경계를 나타내는지 여부를 결정하는 데 사용될 수 있다. 파노라마 이미지에서 점 의 시퀀스로서 표현된 선 이 주어지면, 각각의 점 의 이웃 픽셀이 벽을 포함하는지 여부를 확인할 수 있다. 점 의 이웃 픽셀이 벽만 포함하거나 벽 픽셀이 없으면, 점 은 경계점으로 간주되지 않을 수 있다. 경계점의 개수가 특정 임계값을 초과하는 경우(예컨대, 점의 80%가 경계선임), 점 선(point line)(또는 선) 은 경계(또는 경계선)으로 지정될 수 있다.
경계선은 파노라마의 주요(major) 방향(또는 주된(main) 방향)에 맞춰 정렬될 수 있다. 경계선을 주요 방향으로 정렬하기 위해, 각 경계선을 수평 평면(예컨대, X-Z 평면)에 투영할 수 있다. 2개의 주된 방향(예컨대, X와 Z)이 수직이므로, 투영된 경계선과 두 주된 방향 사이의 각도를 계산할 수 있다. 투영된 경계선은 투영된 경계선의 중심을 중심으로 회전하여 투영된 경계선을 주된 방향과 평행하게 만들 수 있다.
그러나 이미지(또는 파노라마 이미지) 내의 객체가 경계선을 가릴 수 있다. 따라서, 하나 이상의 경계선이 불완전할 수 있다. 제1 접근법에서는 천장 경계선과 바닥 경계선의 조합을 사용하여 불완전한 경계선을 추정할 수 있다(또는 하나 이상의 불완전한 경계선을 완성할 수 있다). 예를 들어, 각각의 바닥선(또는 바닥 경계선)은 천장선(또는 천장 경계선)에 대응될 수 있으며, 바닥선과 천장선 사이의 거리는 장면 내에서 고정될 수 있다. 불완전한 경계선은 개별적으로 천장선과 바닥선에 투영될 수 있다. 천장과 바닥의 대응하는 투영된 경계(또는 투영된 경계선) 상의 불완전한 경계선을 이루는 점의 좌표는 다음과 같은 것일 수 있다:
천장에서 지면까지의 제1 거리와 카메라에서 지면까지의 제2 거리 사이의 비율 r에 기초하여, 다음의 식 (1)에서와 같이 천장 경계선과 바닥 경계선 상의 투영된 점들을 결합하기 위해 불완전한 경계선을 이루는 점들은 스케일링(또는 추정)될 수 있다:
제2 접근법에서는 투영된 선분(예컨대, 수평면에 투영된 경계선)을 맨해튼 레이아웃 가설을 사용하여 연결할 수 있다. 맨해튼 레이아웃 가설에 정의된 대로, 연결된 두 경계의 쌍 각각은 평행하거나 수직일 수 있다. 따라서, 투영된 경계선은 장면의 이미지 공간(예컨대, X-Y-Z 공간)에서 경계선의 원래 공간 좌표에 따라 정렬될 수 있다. 두 선(또는 경계선)이 평행한 경우, 수직선을 추가하여 두 선을 연결할 수 있다. 두 선이 수직인 경우, 두 선의 교차점이 2 개의 선분(또는 두 선) 상에 있는지 여부를 확인할 수 있다. 두 선 상에 교차점이 없는 것에 대한 응답으로, 교차점이 2개의 선분 상에 위치할 수 있도록 2개의 선분(또는 두 선)을 연장할 수 있다.
다각형은 제1 접근법과 제2 접근법 중 하나 또는 이들의 조합에 기초하여 획득될 수 있다. 몇몇 실시예에서는 2D 다각형 노이즈 제거, 계단 제거 등과 같은 지오메트릭 처리 방법을 사용하여 다각형을 다듬을 수 있다. 따라서, 파노라마 이미지에 기초하여 복수의 다각형이 획득될 수 있다. 각각의 다각형은 개개의 파노라마 이미지로부터 도출될 수 있으며 장면(예컨대, 방)의 개개의 레이아웃 추정을 나타낼 수 있다.
기존 곡선(또는 선분)의 노이즈를 제거하기 위해 다양한 접근법을 적용할 수 있다. 일례에서, 곡선(또는 선분)의 경계는 잡음이 있는 점이 있는 영역에 맞춰진 다음 영역 씨닝(region thinning)을 적용할 수 있다. 일례에서, 가우스 커널(Gaussian kernel)과 같은, 다중 스케일 분석(multi-scale analysis)이 적용될 수 있다. 다중 스케일 분석은 충격 검출기를 사용하여 날카로운 점을 보존하고 평활한 호와 코너의 모음인 곡선을 출력할 수 있다. 다른 예에서, 가우스 평활화(Gaussian smoothing)가 n = 30 이웃과 같은, 고정된 n개의 수를 사용하여 로컬 분석에 의해 추정된 노이즈에 적용될 수 있다.
계단 제거는 계단 아티팩트를 줄일 수 있다. 계단 아티팩트는 1차원 신호 잡음 제거, 2차원 이미지 잡음 제거 및 비디오 잡음 제거와 같은 많은 잡음 제거 태스크에서 관찰될 수 있는 일반적인 아티팩트일 수 있다. 이미지 노이즈 제거 기술은 이미지 신호의 하나 이상의 영역을 평탄화할 수 있으며, 이에 따라 이미지 신호에 계단 아티팩트를 생성할 수 있다. 결과적으로, 계단 아티팩트는 이미지 신호의 하나 이상의 영역에서, 원치 않는 가짜(false) 계단 또는 그 외의 평활하게 변화하는 이미지 신호에서 원치 않는 평평한 영역으로 나타날 수 있다.
도 11의 단계(1150)의 예와 같이, 각각의 파노라마 이미지로부터의 개개의 레이아웃 추정에 기초하여 장면의 레이아웃 추정하기 위해, 이전 단계(예컨대, 단계(1140))에서 도출된 다각형은 파노라마 이미지들 간의 추정된 상대 위치에 기초하여 동일한 좌표계로 변환될 수 있다. 단계(1140)로부터 변환된(또는 도출된) 다각형은 로 표시될 수 있다. 장면의 레이아웃 추정을 생성하기 위해, 윤곽 추정(contour estimation)과 내부 에지 추정(internal edge estimation)이라는 두 별개의 프로세스를 채용하여 레이아웃을 획득할 수 있다.
윤곽 추정에서는 레이아웃 추정의 윤곽을 결정할 수 있다. 윤곽 추정은 변환된 다각형 을 기준선(baseline) 다각형 로서 결합하기 위해 다각형 합체 알고리즘을 활용할 수 있다.
그런 다음 기준선 다각형 를 축소하여 축소된 다각형 를 형성할 수 있다. 기준선 다각형 를 축소하기 위해, 기준선 다각형 의 에지 각각에 대해 후보 에지 가 결정될 수 있다. 후보 에지 E는 원래 변환된 다각형 에서 선택될 수 있으며, 다음과 같은 조건 중 적어도 하나를 충족한다:
(1) 각 에지 와 평행하고,
(2) 에 대한 투영된 중첩 비율은 임계값, 예컨대, 70%보다 크다. 투영된 중첩 백분율은 에 투영한 다음, 의 선분에 대한 의 선분의 투영된 부분의 비율을 계산하여 결정될 수 있다.
모든 후보 에지 중에서, 원점 뷰 위치(예컨대, 원래 파노라마 이미지에서 에지의 위치)에 더 가까운 후보 에지 를 대체하는 데 사용될 수 있다. 따라서, 하나 이상의 후보 에지 가 원점 뷰 위치에 더 가까운 경우에 하나 이상의 에지 대응하는 하나 이상의 후보 에지 로 대체될 수 있다.
기준선 다각형 의 형성에 있어, 변환된 다각형 의 모든 에지가 기준선 다각형 다각형 에 합쳐지고, 기본 다각형의 에지 와 변환된 다각형의 에지 사이의 매칭은 고려되지 않을 수 있다. 기준 다각형 을 각각의 변환된 다각형에 투영함으로써, 하나 이상의 후보 에지 가 원점 뷰 위치에 더 가까운 경우에 하나 이상의 는 대응하는 하나 이상의 후보 에지 로 대체될 수 있다. 따라서, 기본 다각형의 에지 와 변환된 다각형의 에지는 방향, 크기, 위치 등이 매칭될 수 있다.
기준선 다각형 의 에지 각각은 그 후 대응하는 후보 에지 와 비교될 수 있다. 대응하는 후보 에지 가 원점 뷰 위치에 더 가까운지 여부에 기초하여, 개개의 에지 가 유지되거나 교체될 수 있다. 축소된 다각형 는 기준선 다각형 의 하나 이상의 에지 를 교체함으로써 형성될 수 있다.
2D 다각형 노이즈 제거, 계단 제거 등과 같은 지오메트릭 처리 방법을 사용하여 축소된 다각형에 기초하여 최종 다각형 이 추가로 획득될 수 있다.
내부 에지 추정은 최종 다각형 의 내부 에지를 복원하도록 구성될 수 있다. 내부 에지를 복원하기 위해, 최종 다각형 의 내부에 있는 변환된 다각형 의 모든 에지를 세트 E'에 넣을 수 있다. 그런 다음, 공간 기반 에지 투표 전략(space-based edge voting strategy)을 사용하여 에지를 클러스터링(또는 그룹화)할 수 있다. 예를 들어, 최종 다각형 의 두 에지가 다음 조건 중 적어도 하나를 충족하는 경우에, 그 두 에지는 그룹화될 수 있다:
(1) 두 에지가 평행하다.
(2) 두 에지 사이의 거리가 제1 임계값보다 작을 정도로, 충분히 작다.
(3) 두 에지 사이의 투영된 중첩은 제2 임계값보다 클 정도로, 충분히 크다.
또한, 에지의 그룹에 일정 개수 이상의 에지가 포함되어 있는 경우, 에지 그룹의 평균 에지를 계산하여 최종 다각형 의 복원된 내부 에지를 나타낼 수 있다. 따라서, 에지 그룹의 평균 에지는 복원된 내부 에지로서 최종 다각형 에 추가될 수 있다.
방의 3D 형상(또는 맨해튼 레이아웃)은 다양한 표현법을 사용하여 추정된 다각형(예컨대, 최종 다각형 )에 기초하여 생성될 수 있다.
일 실시예에서, 방의 3D 형상은 삼각형 메시를 사용하여 생성될 수 있다. 예를 들어, 방의 천장면과 바닥면은 최종 다각형 을 삼각형화(triangulating)하여 생성할 수 있다. 천장 경계선과 바닥 경계선으로 둘러싸인 직사각형을 삼각형화하여 방의 벽면을 생성할 수 있다. 3D 메시(또는 3D 형상)의 텍스처를 생성하기 위해, 광선 캐스팅 기반 방법(ray-casting based method)을 추가로 적용할 수 있다.
일 실시예에서, 최종 다각형 을 사각형화(quadrangulating)함으로써 방의 3D 형상을 표현하기 위해 사각형이 사용될 수 있다.
일 실시예에서, 포인트 클라우드는 삼각형 메시 또는 사각형 메시로부터 포인트를 샘플링함으로써 방의 3D 형상을 표현하는 데 사용될 수 있다. 삼각형 메시는 최종 다각형 을 삼각형화하여 획득될 수 있다. 사각형 메시는 최종 다각형 을 사각형화하여 획득될 수 있다.
일 실시예에서, 방의 3D 형상은 최종 다각형을 복셀화함으로써 생성될 수 있다. 따라서, 복셀(또는 3D 형상)은 3D 모델(예컨대, 최종 다각형 )을 볼류메트릭 데이터(예컨대, 방의 3D 형상)로 변환함으로써 생성될 수 있다.
본 개시에서는 장면(예컨대, 방)의 맨해튼 레이아웃을 추정하는 방법이 제공될 수 있다. 장면의 맨해튼 레이아웃은 장면과 연관된 지오메트릭 정보와 시맨틱 세그먼트화 정보를 사용하여 장면의 다수의 파노라마 이미지로부터 추정될 수 있다.
일 실시예에서는 다수의 파노라마 이미지 중 단일 파노라마(또는 파노라마 이미지)로부터 장면의 레이아웃을 추정하기 위해 주된 방향, 선분 및 시맨틱 세그먼트화를 함께 사용할 수 있다.
일 실시예에서는 각각의 파노라마의 레이아웃을 최종 레이아웃 추정으로 결합하기 위해 파노라마 이미지의 포즈 정보(예컨대, 각도 또는 거리)를 사용할 수 있다.
일 실시예에서, 3D 형상(또는 맨해튼 레이아웃)은 최종 다각형(예컨대, )의 삼각형화, 최종 다각형의 사각형화하고, 최종 다각형에 기초한 포인트 클라우드의 생성, 또는 모델(예컨대, 최종 레이아웃 추정 또는 최종 다각형 )의 복셀화에 의해 최종 공간 레이아웃으로부터 생성될 수 있다.
일 실시예에서, 다수의 파노라마에서의 선분은 선 검출 방법에 의해 검출될 수 있다. 예를 들어, 도 11의 단계(1140)에 도시된 바와 같이, 시맨틱 세그먼트화는 파노라마 이미지의 픽셀 각각에 시맨틱 의미(예컨대, 바닥, 문 등)를 할당할 수 있다. 시맨틱 세그먼트화의 결과는 파노라마(또는 파노라마 이미지)의 선분 각각이 방의 벽 경계를 나타내는지 여부를 결정하는 데 사용될 수 있다.
일 실시예에서는 파노라마 이미지 내의 선분의 통계 정보를 분석함으로써 파노라마 이미지의 주된 방향(예컨대, X 방향 및 Z 방향)을 획득할 수 있다.
일 실시예에서, 파노라마 이미지의 시맨틱 세그먼트화는 심층 학습 기반 시맨틱 세그먼트화 기술을 사용하여 달성될 수 있다. 예를 들어, 시맨틱 세그먼트화는 레이블이나 카테고리를 이미지(예컨대, 장면의 파노라마 이미지)의 모든 픽셀과 연관짓는 심층 학습 알고리즘일 수 있다.
일 실시예에서, 파노라마 이미지의 파노라마 포즈 추정(예컨대, 각도 또는 거리)은 이미지 정렬 기술을 사용하여 달성될 수 있다. 두 파노라마 이미지의 정렬에 기초하여, 두 파노라마 이미지 간의 상대 각도 또는 상대 거리를 결정할 수 있다.
일 실시예에서, 세그먼트화 정보를 사용하여 장면의 천장에서 지면(바닥)까지의 거리와 카메라에서 지면까지의 거리 사이의 비율을 계산할 수 있다.
도 12는 본 개시의 일부 실시예에 따른 이미지 처리를 위한 프레임워크(1200)의 도면을 도시한다. 프레임워크(1200)는 비디오 인코더(1210) 및 비디오 디코더(1250)를 포함한다. 비디오 인코더(1210)는 장면(예컨대, 방)의 복수의 파노라마 이미지와 같은, 입력(1205)을 비트스트림(1245)으로 인코딩하고, 비디오 디코더(1250)는 비트스트림(1245)을 디코딩하여 장면의 맨해튼 레이아웃과 같은, 재구축된 3D 형상(1295)을 생성한다.
비디오 인코더(1210)는 컴퓨터, 서버 컴퓨터, 데스크톱 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 스마트폰, 게이밍 디바이스, AR 디바이스, VR 디바이스 등의 임의의 적합한 디바이스일 수 있다. 비디오 디코더(1250)는 컴퓨터, 클라이언트 컴퓨터, 데스크톱 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 스마트폰, 게임 디바이스, AR 디바이스, VR 디바이스 등의 임의의 적합한 디바이스일 수 있다. 비트스트림(1245)은 임의의 적합한 통신 네트워크(도시되지 않음)를 통해 비디오 인코더(1210)로부터 비디오 디코더(1250)에 송신될 수 있다.
도 12의 예에서, 비디오 인코더(1210)는 함께 결합된 세그먼트화 모듈(1220), 인코더(1230) 및 추출 모듈(1240)을 포함한다. 세그먼트화 모듈(1220)은 장면과 연관된 파노라마 이미지의 각 픽셀에 시맨틱 의미(예: 바닥, 문 등)를 할당하도록 구성된다. 각 파노라마 이미지의 시맨틱 정보는 비트스트림(1225)을 통해 인코더(1230)로 송신될 수 있다. 추출 모듈(1240)은 각 파노라마 이미지의 지오메트릭 정보를 추출하도록 구성된다. 지오메트릭 정보는 비트스트림(1227)을 통해 인코더(1230)에 송신될 수 있다. 인코더(1230)는 각 파노라마 이미지의 지오메트릭 정보와 시맨틱 정보에 기초하여 장면의 3차원 형상(또는 맨해튼 레이아웃)을 생성하도록 구성된다. 예를 들어, 인코더(1230)는 각각의 파노라마 이미지에 기초하여 장면의 개개의 레이아웃 추정(또는 다각형)을 생성할 수 있다. 파노라마 이미지의 레이아웃 추정들은 융합되어 최종 레이아웃 추정(또는 최종 다각형)을 형성할 수 있다. 장면의 3D 형상은 최종 다각형을 삼각형화하거나, 최종 다각형을 사각형화하거나, 최종 다각형에 기초하여 포인트 클라우드를 생성하거나, 최종 다각형을 복셀화하여 생성할 수 있다.
도 12의 예에서, 비트스트림(1245)은 비디오 디코더(1250)에 제공된다. 비디오 디코더(1250)는 도 12에 도시된 바와 같이 함께 결합된 디코더(1260) 및 재구축 모듈(1290)을 포함한다. 일례에서, 디코더(1260)는 인코더(1230)에 대응하고 또한 인코더(1230)에 의해 인코딩된 비트스트림(1245)을 디코딩하여 디코딩된 정보(1265)를 생성할 수 있다. 디코딩된 정보(1265)는 재구축 모듈(1290)에 추가로 제공될 수 있다. 재구축 모듈(1290)은 디코딩된 정보(1265)에 기초하여 장면의 3D 형상(또는 맨해튼 레이아웃)(1295)을 재구축할 수 있다.
도 13은 본 개시의 일 실시예에 따른 프로세스(1300)의 개요를 설명하는 흐름도를 도시한다. 다양한 실시예에서, 프로세스(1300)는 처리 회로에 의해 실행된다. 일부 실시예에서, 프로세스(1300)는 소프트웨어 명령어로 구현되므로, 처리 회로가 소프트웨어 명령어를 실행할 때, 처리 회로는 프로세스(1300)를 수행한다. 프로세스는 (S1301)에서 시작하여 (S1310)로 진행된다.
(S1310)에서, 장면의 복수의 2차원(2D) 이미지를 수신한다.
(S1320)에서, 복수의 2D 이미지 각각의 지오메트릭 정보 및 시맨틱 정보를 결정한다. 지오메트릭 정보는 개개의 2D 이미지 내의 검출된 선 및 참조 방향을 지시한다. 시맨틱 정보는 개개의 2D 이미지 내의 픽셀의 분류 정보를 포함한다.
(S1330)에서, 개개의 2D 이미지의 지오메트릭 정보 및 시맨틱 정보에 기초하여 장면의 개개의 2D 이미지와 연관된 레이아웃 추정을 결정한다.
(S1340)에서, 장면의 복수의 2D 이미지와 연관된 복수의 결정된 레이아웃 추정에 기초하여 장면과 연관된 결합된 레이아웃 추정을 결정한다.
(S1350)에서, 결합된 레이아웃 추정에 기초하여 장면과 연관된 맨해튼 레이아웃을 생성한다. 맨해튼 레이아웃은 서로에 대해 직교하는 벽면을 포함하는 장면의 적어도 3차원(3D) 형상을 포함한다.
지오메트릭 정보와 시맨틱 정보를 결정하기 위해, 복수의 2D 이미지 중 제1의 2D 이미지의 제1 지오메트릭 정보가 추출될 수 있다. 제1 지오메트릭 정보는 검출된 선, 제1의 2D 이미지의 참조 방향, 천장에서 지면까지의 제1 거리와 카메라에서 지면까지의 제2 거리의 비율, 또는 복수의 2D 이미지 중 제1의 2D 이미지와 제2의 2D 이미지 사이의 상대적 포즈 중 적어도 하나를 포함할 수 있다. 제1의 2D 이미지의 픽셀은 제1 시맨틱 정보를 생성하기 위해 라벨링될 수 있으며, 제1 시맨틱 정보는 제1의 2D 이미지의 픽셀의 제1 구조 정보를 지시할 수 있다.
장면의 개개의 2D 이미지와 연관된 레이아웃 추정을 결정하기 위해, 제1의 2D 이미지의 제1 지오메트릭 정보 및 제1 시맨틱 정보에 기초하여 장면과 연관된 결정된 복수의 레이아웃 추정 중 제1 레이아웃 추정이 결정될 수 있다. 제1 레이아웃 추정을 결정하기 위해, 각각의 검출된 선이 장면 내의 벽 경계에 대응하는 경계선인지 여부가 판정될 수 있다. 검출된 선의 경계선은 제1의 2D 이미지의 참조 방향과 정렬될 수 있다. 2D 다각형의 노이즈 제거와 계단 제거 중 하나를 사용하여 정렬된 경계선에 기초하여 제1 레이아웃 추정을 지시하는 제1 다각형이 생성될 수 있다.
제1 다각형을 생성하기 위해, 경계선 중 천장 경계선과 바닥 경계선의 조합에 기초하여 복수의 불완전한 경계선을 추정하는 단계; 및 복수의 불완전한 경계선 중 한 쌍의 불완전한 경계선을 연결하는 단계 중 하나에 기초하여, 경계선 중 복수의 불완전한 경계선이 완전하게 될 수 있다. 불완전한 경계선의 쌍은 , (i) 불완전한 경계선의 쌍이 평행한 것에 대한 응답으로 불완전한 경계선의 쌍에 수직선을 추가하는 것과, (ii) 불완전한 경계선의 쌍 중 적어도 하나를 연장하여 불완전한 경계선의 쌍의 교차점이 불완전한 경계선의 연장된 쌍에 위치하도록 하는 것 중 하나에 기초하여 연결될 수 있다.
장면과 연관된 결합된 레이아웃 추정을 결정하기 위해, 다각형 합체 알고리즘을 통해 복수의 다각형을 결합함으로써 기본 다각형이 결정될 수 있다. 복수의 다각형 각각은 복수의 결정된 레이아웃 추정의 개개의 레이아웃 추정에 대응할 수 있다. 기본 다각형에 기초하여 축소된 다각형이 결정될 수 있다. 축소된 다각형은 기본 다각형의 에지로부터 업데이트되는 업데이트된 에지를 포함할 수 있다. 2D 다각형의 노이즈 제거 및 계단 제거 중 하나를 사용하여 축소된 다각형에 기초하여 최종 다각형이 결정될 수 있다. 최종 다각형은 장면과 연관된 결합된 레이아웃 추정에 대응할 수 있다.
축소된 다각형을 결정하기 위해, 기본 다각형의 에지에 대해 복수의 다각형으로부터 복수의 후보 에지가 결정될 수 있다. 복수의 후보 에지 각각은 기본 다각형의 개개의 에지에 대응할 수 있다. 하나 이상의 후보 에지가 기본 다각형의 대응하는 하나 이상의 에지보다 복수의 이미지 내의 원래 뷰 위치에 더 가깝다는 것에 대한 응답으로, 기본 다각형의 하나 이상의 에지를 대응하는 하나 이상의 후보 에지로 대체함으로써 축소된 다각형의 업데이트된 에지가 생성될 수 있다.
일부 실시예에서, 복수의 후보 에지 각각은 기본 다각형의 대응하는 에지와 평행일 수 있다. 개개의 후보 에지와 기본 다각형의 대응하는 에지 사이의 돌출된 중첩 부분이 임계값보다 클 수 있다.
장면과 연관된 결합된 레이아웃 추정을 결정하기 위해, 최종 다각형의 에지를 포함하는 에지 세트가 결정될 수 있다. 에지 세트에 기초하여 복수의 에지 그룹이 생성될 수 있다. 최종 다각형의 복수의 내부 에지가 생성될 수 있다. 복수의 내부 에지는 에지 세트의 하나 이상의 에지 그룹의 복수의 평균 에지에 의해 지시될 수 있다. 복수의 에지 그룹 중 하나 이상의 에지 그룹 각각은 타깃 값보다 큰 각자의 에지 수를 포함할 수 있다. 복수의 평균 에지 각각은 하나 이상의 에지 그룹 중의 개개의 에지 그룹의 에지를 평균함으로써 획득될 수 있다.
일부 실시예에서, 복수의 에지 그룹은 제1 에지 그룹을 포함할 수 있다. 제1 에지 그룹은 제1 에지와 제2 에지를 더 포함할 수 있다. 제1 에지와 제2 에지는 평행할 수 있다. 제1 에지와 제2 에지 사이의 거리는 제1 임계값보다 작을 수 있다. 제1 에지와 제2 에지 사이의 돌출된 중첩 영역은 제2 임계값보다 클 수 있다.
장면과 연관된 맨해튼 레이아웃을 생성하기 위해, 결합된 레이아웃 추정으로부터 삼각형화된 삼각형 메시, 결합된 레이아웃 추정으로부터 사각형화된 사각형 메시, 삼각형 메시와 사각형 메시 중 하나로부터 샘플링된 샘플링 포인트, 또는 복셀화를 통해 삼각형 메시와 사각형 메시 중 하나로부터 생성되는 이산 그리드 중 하나에 기초하여, 장면과 연관된 맨해튼 레이아웃이 생성될 수 있다.
몇몇 실시예에서, 장면과 연관된 맨해튼 레이아웃은 결합된 레이아웃 추정으로부터 삼각형화된 삼각형 메시에 기초하여 생성될 수 있다. 이에 따라, 장면과 연관된 맨해튼 레이아웃을 생성하기 위해, 결합된 레이아웃 추정을 삼각형화함으로써 장면에서의 천장면과 바닥면이 생성될 수 있다. 장면에서 천장 경계선과 바닥 경계선을 둘러싸는 직사각형을 삼각형화함으로써 장면에서의 벽면이 생성될 수 있다. 광선 캐스팅 기반 프로세스를 통해 장면과 연관된 맨해튼 레이아웃의 텍스처가 생성될 수 있다.
전술한 기술은 컴퓨터로 판독 가능한 명령어를 사용하고 또 하나 이상의 컴퓨터로 판독 가능한 매체에 물리적으로 저장될 수 있는 컴퓨터 소프트웨어로서 구현될 수 있다. 예를 들어, 도 14는 개시된 주제의 특정 실시예를 구현하기에 적합한 컴퓨터 시스템(1400)을 도시한다.
컴퓨터 소프트웨어는 하나 이상의 컴퓨터 중앙 처리 유닛(central processing unit, CPU), 그래픽 처리 유닛(graphics processing unit, GPU) 등에 의해, 어셈블리(assembly), 컴파일(compilation), 링킹(linking), 또는 이와 유사한 메커니즘을 거쳐 직접, 또는 해석(interpretation), 마이크로 코드 실행(micro-code execution) 등을 통해 실행될 수 있는 명령어를 포함하는 코드를 생성할 수 있는 임의의 적합한 기계어 코드 또는 컴퓨터 언어를 사용하여 코딩될 수 있다.
명령어는, 예를 들어 개인용 컴퓨터, 태블릿 컴퓨터, 서버, 스마트폰, 게이밍 디바이스, 사물 인터넷 디바이스 등을 포함한, 다양한 유형의 컴퓨터 또는 그 컴포넌트에서 실행될 수 있다.
도 14에 도시된 컴퓨터 시스템(1400)의 컴포넌트는 본질적으로 예시적인 것이며, 본 개시의 실시예를 구현하는 컴퓨터 소프트웨어의 사용 또는 기능의 범위에 대한 어떠한 한정도 시사하려는 것은 아니다. 컴포넌트의 구성은 컴퓨터 시스템(1400)의 예시적인 실시예에 나타낸 컴포넌트 중 어느 하나 또는 조합과 관련된 임의의 종속성 또는 요건을 가지는 것으로 해석되어서는 안 된다.
컴퓨터 시스템(1400)은 특정 휴먼 인터페이스(human interface) 입력 디바이스를 포함할 수 있다. 이러한 휴먼 인터페이스 입력 디바이스는 예를 들어 촉각 입력(예: 키 누름(keystroke), 스와이프(swip), 데이터 장갑 움직임), 오디오 입력(예: 음성, 박수), 시각적 입력(예: 제스처), 후각 입력(도시되지 않음)을 통한, 한 명 이상의 인간 사용자에 의한 입력에 응답할 수 있다. 휴먼 인터페이스 디바이스는 또한 오디오(예: 음성, 음악, 주변 소리), 이미지(예: 스캔된 이미지, 정지 이미지 카메라로부터 획득한 사진 이미지), 비디오(예: 2차원 비디오, 입체 비디오(stereoscopic video)를 포함한 3차원 비디오)와 같은, 사람에 의한 의식적 입력과 반드시 직접 관련이 있는 것은 아닌 특정 미디어를 캡처하는 데 사용될 수도 있다.
입력 휴먼 인터페이스 디바이스는 키보드(1401), 마우스(1402), 트랙 패드(1403), 터치 스크린(1410), 데이터 장갑, 조이스틱(1405), 마이크로폰(1406), 스캐너(1407), 카메라(1408) 중 하나 이상(각각 하나만 표시됨)을 포함할 수 있다.
컴퓨터 시스템(1400)은 특정 휴먼 인터페이스 출력 디바이스를 포함할 수 있다. 이러한 휴먼 인터페이스 출력 디바이스는 예를 들어 촉각 출력, 소리, 빛 및 냄새/맛을 통해, 한 명 이상의 인간 사용자의 감각을 자극할 수 있다. 이러한 휴먼 인터페이스 출력 디바이스는 촉각 출력 디바이스(예를 들어, 터치 스크린(1410), 데이터 장갑(도시되지 않음), 또는 조이스틱(1405)에 의한 촉각 피드백이지만, 입력 디바이스의 역할을 하지 않는 촉각 피드백 디바이스도 있을 수 있으며, 오디오 출력 디바이스(예: 스피커(1409), 헤드폰(도시되지 않음)), 시각적 출력 디바이스(예컨대 각각 터치 스크린 입력 기능이 있거나 없는, 각각 촉각 피드백 기능이 있거나 없는, CRT 스크린, LCD 스크린, 플라즈마 스크린, OLED 스크린을 포함하는 스크린(1410) - 그 일부는 스테레오그래픽 출력(stereographic), 가상 현실 안경(virtual-reality glasses)(도시되지 않음), 홀로그래픽 디스플레이(holographic display) 및 연기 탱크(smoke tank)(도시되지 않음)와 같은 수단을 통해 2차원 시각적 출력 또는 3차원 이상의 출력을 할 수 있음 -), 및 프린터(도시되지 않음)를 포함할 수 있다.
컴퓨터 시스템(1400)은 또한 CD/DVD 등의 매체(1421)를 갖는 CD/DVD ROM RW(1420)을 포함한 광학 매체, 썸 드라이브(thumb-drive)(1422), 착탈 가능한 하드 드라이브 또는 솔리드 스테이트 드라이브(1423), 테이프 및 플로피 디스크(도시되지 않음)와 같은 레거시 자기 매체, 보안 동글(security dongle)(도시되지 않음)과 같은 특수한 ROM/ASIC/PLD 기반 디바이스 등의 인간이 액세스할 수 있는 저장 디바이스 및 그 연관 매체를 포함할 수 있다.
당업자는 또한 현재 개시된 주제와 관련하여 사용된 바와 같이 "컴퓨터로 판독 가능한 매체"라는 용어가 송신 매체, 반송파(carrier wave) 또는 기타 일시적인 신호를 포함하지 않는다는 것을 이해해야 한다.
컴퓨터 시스템(1400)은 또한 하나 이상의 통신 네트워크(1455)에 대한 인터페이스(1454)를 포함할 수 있다. 네트워크는 예를 들어 무선, 유선, 광 등의 네트워크일 수 있다. 네트워크는 또한 로컬, 광역, 대도시, 차량 및 산업, 실시간, 지연 허용 등의 네트워크일 수 있다. 네트워크의 예로는 이더넷; 무선 LAN; GSM, 3G, 4G, 5G, LTE, 등을 포함하는 셀룰러 네트워크; 케이블 TV, 위성 TV, 및 지상파 방송 TV를 포함하는 TV 유선 또는 무선 광역 디지털 네트워크; CANBus를 포함하는 차량 및 산업용, 등을 포함한다. 특정 네트워크는 일반적으로 특정 범용 데이터 포트 또는 주변 버스(1449)(예: 컴퓨터 시스템(1400)의 USB 포트)에 부착된 외부 네트워크 인터페이스 어댑터)를 필요로 하며; 다른 것은 일반적으로 이하에 설명하는 바와 같이 시스템 버스에 부착함으로써 컴퓨터 시스템(1400)의 코어에 통합된다(예를 들어, PC 컴퓨터 시스템에의 이더넷 인터페이스 또는 스마트폰 컴퓨터 시스템에의 셀룰러 네트워크 인터페이스). 이러한 네트워크 중 어느 것을 사용하여, 컴퓨터 시스템(1400)은 다른 엔티티와 통신할 수 있다. 이러한 통신은 단방향, 수신 전용(예: TV 방송), 단방향 전송 전용(예: CANbus에서 특정 CANbus 디바이스로의) 또는 양방향(예: 로컬 또는 광역 디지털 네트워크를 사용하여 다른 컴퓨터 시스템으로)일 수 있다. 특정 프로토콜 및 프로토콜 스택이 전술한 바와 같은 네트워크 및 네트워크 인터페이스 각각에 사용될 수 있다.
전술한 휴먼 인터페이스 디바이스, 인간이 액세스 가능한 저장 디바이스 및 네트워크 인터페이스는 컴퓨터 시스템(1400)의 코어(1440)에 부착될 수 있다.
코어(1440)는 하나 이상의 중앙 처리 유닛(CPU)(1441), 그래픽 처리 유닛(GPU)(1442), 필드 프로그래머블 게이트 어레이(Field Programmable Gate Area, FPGA)(1443) 형태의 특화된 프로그램 가능한 처리 유닛, 특정 태스크를 위한 하드웨어 가속기(1444), 그래픽 어댑터(1450) 등을 포함할 수 있다. 판독 전용 메모리(Read-only memory, ROM)(1445), 랜덤 액세스 메모리(1446), 사용자가 액세스할 수 없는 내부 하드 드라이브, SSD 등의 내부 대용량 저장장치(1447)와 함께, 이러한 기기는 시스템 버스(1448)을 통해 연결될 수 있다. 몇몇 컴퓨터 시스템에서, 시스템 버스(1448)는 추가적인 CPU, GPU 등에 의한 확장을 가능하게 하는 하나 이상의 물리 플러그의 형태로 액세스 가능할 수 있다. 주변 디바이스는 코어의 시스템 버스(1448)에 직접 연결되거나 주변 버스(1449)를 통해 연결될 수 있다. 일례에서, 스크린(1410)이 그래픽 어댑터(1450)에 연결될 수 있다. 주변 버스를 위한 아키텍처로는 PCI, USB 등을 포함한다.
CPU(1441), GPU(1442), FPGA(1443) 및 가속기(1444)는, 조합하여, 전술한 컴퓨터 코드를 구성할 수 있는 특정 명령어를 실행할 수 있다. 해당 컴퓨터 코드는 ROM(1445) 또는 RAM(1446)에 저장될 수 있다. 이행 데이터(transitional data)는 RAM(1446)에도 저장될 수 있는 반면, 영구 데이터는 예를 들어, 내부 대용량 저장장치(1447)에 저장될 수 있다. 메모리 디바이스 중 어느 것에 대한 빠른 저장 및 검색은 하나 이상의 CPU(1441), GPU(1442), 대용량 저장장치(1447), ROM(1445), RAM(1446) 등과 밀접하게 연관될 수 있는 캐시 메모리의 사용을 통해 가능해질 수 있다.
컴퓨터로 판독 가능한 매체는 다양한 컴퓨터로 구현되는 동작(computer-implemented operation)을 수행하기 위한 컴퓨터 코드를 가질 수 있다. 매체 및 컴퓨터 코드는 본 개시의 목적을 위해 특별히 설계되고 구축된 것일 수 있거나, 컴퓨터 소프트웨어 분야의 당업자에게 잘 알려져 있고 이용 가능한 종류의 것일 수 있다.
한정이 아닌 예로서, 아키텍처(1400), 및 구체적으로 코어(1440) 갖는 컴퓨터 시스템은 하나 이상의 유형의(tangible), 컴퓨터로 판독 가능한 매체에 구현된 소프트웨어를 실행하는 프로세서(들)(CPU, GPU, FPGA, 가속기 등을 포함)의 결과로서 기능을 제공할 수 있다. 이러한 컴퓨터로 판독 가능한 매체는 위에서 소개한 바와 같이 사용자가 액세스할 수 있는 대용량 저장장치와 연관된 매체일 수 있을 뿐만 아니라, 코어 내부 대용량 저장장치(1447) 또는 ROM(1445)과 같은, 비일시적인 성질의 코어(1440)의 특정 저장장치일 수 있다. 본 개시의 다양한 실시예를 구현하는 소프트웨어는 이러한 디바이스에 저장되고 코어(1440)에 의해 실행될 수 있다. 컴퓨터로 판독 가능한 매체는 구체적인 필요에 따라, 하나 이상의 메모리 디바이스 또는 칩을 포함할 수 있다. 소프트웨어는 코어(1440)로 하여금 그리고 특히 내부의 프로세서(CPU, GPU, FPGA 등 포함)로 하여금, RAM(1446)에 저장된 데이터 구조를 정의하고 소프트웨어에 의해 정의된 프로세스에 따라 이러한 데이터 구조를 수정하는 것을 포함하여, 여기에 설명된 특정 프로세스 또는 특정 프로세스의 특정 부분을 실행하도록 할 수 있다. 추가로 또는 대안으로서, 컴퓨터 시스템은 여기에 설명된 특정 프로세스 또는 특정 프로세스의 특정 부분을 실행하기 위해 소프트웨어 대신 또는 소프트웨어와 함께 동작할 수 있는, 논리 배선(logic hardwired)의 결과로서 그렇지 않으면 회로(예: 가속기(1444))에 다른 방식으로 구현되는 기능을 제공할 수 있다. 소프트웨어에 대한 언급은 논리를 포함할 수 있으며, 적절한 경우 그 반대도 마찬가지이다. 컴퓨터로 판독 가능한 매체에 대한 언급은 실행을 위한 소프트웨어를 저장하는 회로(예: 집적 회로(IC)), 실행을 위한 논리를 구현하는 회로, 또는 적절한 경우 둘 다를 포함할 수 있다. 본 개시는 하드웨어와 소프트웨어의 임의의 적합한 조합을 포함한다.
본 개시는 여러 예시적인 실시예를 기술하였지만, 본 개시의 범위 내에 속하는 변경, 순열 및 다양한 대체 등가물이 존재한다. 따라서, 당업자는 본 명세서에 명시적으로 도시되거나 설명되지는 않았지만 본 개시의 원리를 구현하고 따라서 본 개시의 사상 및 범위 내에 있는 수많은 시스템 및 방법을 고안할 수 있음을 이해될 것이다.

Claims (20)

  1. 장면과 연관된 맨해튼 레이아웃(Manhattan layout)을 추정하는 방법으로서,
    상기 장면의 복수의 2차원(2D) 이미지를 수신하는 단계;
    상기 복수의 2D 이미지 각각의 지오메트릭 정보(geometric information) 및 시맨틱 정보(semantic information)를 결정하는 단계 - 상기 지오메트릭 정보는 개개의 2D 이미지 내의 검출된 선 및 참조 방향을 지시하고, 상기 시맨틱 정보는 상기 개개의 2D 이미지 내의 픽셀의 분류 정보를 포함함 -;
    상기 개개의 2D 이미지의 상기 지오메트릭 정보 및 상기 시맨틱 정보에 기초하여 상기 장면의 개개의 2D 이미지와 연관된 레이아웃 추정을 결정하는 단계;
    상기 장면의 복수의 2D 이미지와 연관된 복수의 상기 결정된 레이아웃 추정에 기초하여 상기 장면과 연관된 결합된 레이아웃 추정을 결정하는 단계; 및
    상기 결합된 레이아웃 추정에 기초하여 상기 장면과 연관된 상기 맨해튼 레이아웃을 생성하는 단계 - 상기 맨해튼 레이아웃은 서로에 대해 직교하는 벽면을 포함하는 상기 장면의 적어도 3차원(3D) 형상을 포함함 -
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 지오메트릭 정보와 시맨틱 정보를 결정하는 단계는,
    상기 복수의 2D 이미지 중 제1의 2D 이미지의 제1 지오메트릭 정보를 추출하는 단계 - 상기 제1 지오메트릭 정보는 검출된 선, 상기 제1의 2D 이미지의 참조 방향, 천장에서 지면까지의 제1 거리와 카메라에서 상기 지면까지의 제2 거리의 비율, 또는 상기 복수의 2D 이미지 중 상기 제1의 2D 이미지와 제2의 2D 이미지 사이의 상대적 포즈(relative pose) 중 적어도 하나를 포함함 -; 및
    상기 제1의 2D 이미지의 픽셀을 라벨링하여 제1 시맨틱 정보를 생성하는 단계 - 상기 제1 시맨틱 정보는 상기 제1의 2D 이미지의 픽셀의 제1 구조 정보를 지시함 -
    를 더 포함하는, 방법.
  3. 제2항에 있어서,
    상기 장면의 개개의 2D 이미지와 연관된 레이아웃 추정을 결정하는 단계는,
    상기 제1의 2D 이미지의 상기 제1 지오메트릭 정보 및 상기 제1 시맨틱 정보에 기초하여 상기 장면과 연관된 상기 복수의 결정된 레이아웃 추정 중 제1 레이아웃 추정을 결정하는 단계를 더 포함하고;
    상기 제1 레이아웃 추정을 결정하는 단계는,
    각각의 상기 검출된 선이 상기 장면 내의 벽 경계에 대응하는 경계선인지 판정하는 단계;
    상기 검출된 선의 경계선을 상기 제1의 2D 이미지의 상기 참조 방향과 정렬하는 단계; 및
    2D 다각형의 노이즈 제거(denoising)와 계단 제거(staircase removal) 중 하나를 사용하여 상기 정렬된 경계선에 기초하여 상기 제1 레이아웃 추정을 지시하는 제1 다각형을 생성하는 단계
    를 더 포함하는, 방법.
  4. 제3항에 있어서,
    상기 제1 다각형을 생성하는 단계는,
    상기 경계선 중 천장 경계선과 바닥 경계선의 조합에 기초하여 상기 복수의 불완전한 경계선을 추정하는 것; 및
    상기 복수의 불완전한 경계선 중 한 쌍의 불완전한 경계선을, (i) 상기 불완전한 경계선의 쌍이 평행한 것에 대한 응답으로 상기 불완전한 경계선의 쌍에 수직선을 추가하는 것과, (ii) 상기 불완전한 경계선의 쌍 중 적어도 하나를 연장하여 상기 불완전한 경계선의 쌍의 교차점이 상기 불완전한 경계선의 연장된 쌍에 위치하도록 하는 것 중 하나에 기초하여, 연결하는 것
    중 하나에 기초하여 상기 경계선 중 복수의 불완전한 경계선을 완전하게 하는 단계
    를 더 포함하는, 방법.
  5. 제3항에 있어서,
    상기 장면과 연관된 결합된 레이아웃 추정을 결정하는 단계는,
    다각형 합체 알고리즘(polygon union algorithm)을 통해 복수의 다각형을 결합함으로써 기본 다각형을 결정하는 단계 - 상기 복수의 다각형 각각은 상기 복수의 결정된 레이아웃 추정의 개개의 레이아웃 추정에 대응함 -;
    상기 기본 다각형에 기초하여 축소된 다각형(shrunk polygon)을 결정하는 단계 - 상기 축소된 다각형은 상기 기본 다각형의 에지로부터 업데이트되는 업데이트된 에지를 포함함 -; 및
    상기 2D 다각형의 노이즈 제거 및 계단 제거 중 하나를 사용하여 상기 축소된 다각형에 기초하여 최종 다각형을 결정하는 단계 - 상기 최종 다각형은 상기 장면과 연관된 상기 결합된 레이아웃 추정에 대응함 -
    를 포함하는, 방법.
  6. 제5항에 있어서,
    상기 축소된 다각형을 결정하는 단계는,
    상기 기본 다각형의 에지에 대해 상기 복수의 다각형으로부터 복수의 후보 에지를 결정하는 단계 - 상기 복수의 후보 에지 각각은 상기 기본 다각형의 개개의 에지에 대응함 -; 및
    상기 하나 이상의 후보 에지가 상기 기본 다각형의 대응하는 하나 이상의 에지보다 상기 복수의 2D 이미지 내의 원래 뷰 위치에 더 가깝다는 것에 대한 응답으로, 상기 기본 다각형의 하나 이상의 에지를 대응하는 하나 이상의 후보 에지로 대체함으로써 상기 축소된 다각형의 업데이트된 에지를 생성하는 단계
    를 더 포함하는, 방법.
  7. 제6항에 있어서,
    상기 복수의 후보 에지 각각은 상기 기본 다각형의 대응하는 에지와 평행하고,
    상기 개개의 후보 에지와 상기 기본 다각형의 대응하는 에지 사이의 돌출된 중첩 부분이 임계값보다 큰, 방법.
  8. 제5항에 있어서,
    상기 장면과 연관된 결합된 레이아웃 추정을 결정하는 단계는,
    상기 최종 다각형의 에지를 포함하는 에지 세트를 결정하는 단계;
    상기 에지 세트에 기초하여 복수의 에지 그룹을 생성하는 단계; 및
    상기 에지 세트의 하나 이상의 에지 그룹의 복수의 평균 에지에 의해 지시되는 상기 최종 다각형의 복수의 내부 에지를 생성하는 단계 - 상기 복수의 에지 그룹 중 하나 이상의 에지 그룹 각각은 타깃 값보다 큰 각자의 에지 수를 포함하고, 상기 복수의 평균 에지 각각은 상기 하나 이상의 에지 그룹 중의 개개의 에지 그룹의 에지를 평균함으로써 획득됨 -
    를 더 포함하는, 방법.
  9. 제8항에 있어서,
    상기 복수의 에지 그룹은 제1 에지 그룹을 포함하고,
    상기 제1 에지 그룹은 제1 에지와 제2 에지를 더 포함하며, 상기 제1 에지와 상기 제2 에지는 평행하고, 상기 제1 에지와 상기 제2 에지 사이의 거리는 제1 임계값보다 작으며, 상기 제1 에지와 상기 제2 에지 사이의 돌출된 중첩 영역(projected overlapping region)은 제2 임계값보다 큰, 방법.
  10. 제1항에 있어서,
    상기 장면과 연관된 맨해튼 레이아웃을 생성하는 단계는,
    상기 결합된 레이아웃 추정으로부터 삼각형화된(triangulated) 삼각형 메시, 상기 결합된 레이아웃 추정으로부터 사각형화된(quadrangulated) 사각형 메시, 상기 삼각형 메시와 상기 사각형 메시 중 하나로부터 샘플링된 샘플링 포인트, 또는 복셀화(voxelization)를 통해 상기 삼각형 메시와 상기 사각형 메시 중 하나로부터 생성되는 이산 그리드(discrete grid) 중 하나에 기초하여, 상기 장면과 연관된 상기 맨해튼 레이아웃을 생성하는 단계
    를 더 포함하는, 방법.
  11. 제10항에 있어서,
    상기 장면과 연관된 맨해튼 레이아웃은 상기 결합된 레이아웃 추정으로부터 삼각형화된 삼각형 메시에 기초하여 생성되고,
    상기 장면과 연관된 맨해튼 레이아웃을 생성하는 단계는,
    상기 결합된 레이아웃 추정을 삼각형화함으로써 상기 장면의 천장면과 바닥면을 생성하는 단계;
    상기 장면에서 천장 경계선과 바닥 경계선을 둘러싸는 직사각형을 삼각형화함으로써 상기 장면에서 상기 벽면을 생성하는 단계; 및
    광선 캐스팅 기반 프로세스(ray-casting based process)를 통해 상기 장면과 연관된 맨해튼 레이아웃의 텍스처를 생성하는 단계
    를 더 포함하는, 방법.
  12. 장면과 연관된 맨해튼 레이아웃을 추정하는 장치로서,
    처리 회로를 포함하고,
    상기 처리 회로는,
    상기 장면의 복수의 2차원(2D) 이미지를 수신하고;
    상기 복수의 2D 이미지 각각의 지오메트릭 정보 및 시맨틱 정보를 결정하고 - 상기 지오메트릭 정보는 개개의 2D 이미지 내의 검출된 선 및 참조 방향을 지시하고, 상기 시맨틱 정보는 상기 개개의 2D 이미지 내의 픽셀의 분류 정보를 포함함 -;
    상기 개개의 2D 이미지의 상기 지오메트릭 정보 및 상기 시맨틱 정보에 기초하여 상기 장면의 개개의 2D 이미지와 연관된 레이아웃 추정을 결정하고;
    상기 장면의 복수의 2D 이미지와 연관된 복수의 상기 결정된 레이아웃 추정에 기초하여 상기 장면과 연관된 결합된 레이아웃 추정을 결정하며;
    상기 결합된 레이아웃 추정에 기초하여 상기 장면과 연관된 상기 맨해튼 레이아웃을 생성하도록 - 상기 맨해튼 레이아웃은 서로 직교하는 벽면을 포함하는 상기 장면의 적어도 3차원(3D) 형상을 포함함 -
    구성되는, 장치.
  13. 제12항에 있어서,
    상기 처리 회로는,
    상기 복수의 2D 이미지 중 제1의 2D 이미지의 제1 지오메트릭 정보를 추출하고 - 상기 제1 지오메트릭 정보는 상기 제1 지오메트릭 정보는 검출된 선, 상기 제1의 2D 이미지의 참조 방향, 천장에서 지면까지의 제1 거리와 카메라에서 상기 지면까지의 제2 거리의 비율, 또는 상기 복수의 2D 이미지 중 상기 제1의 2D 이미지와 제2의 2D 이미지 사이의 상대적 포즈 중 적어도 하나를 포함함 -;
    상기 제1의 2D 이미지에서의 픽셀을 라벨링하여 제1 시맨틱 정보를 생성하도록 - 상기 제1 시맨틱 정보는 상기 제1의 2D 이미지의 픽셀의 제1 구조 정보를 지시함 -
    구성되는, 장치.
  14. 제13항에 있어서,
    상기 처리 회로는,
    상기 제1의 2D 이미지의 상기 제1 지오메트릭 정보 및 상기 제1 시맨틱 정보에 기초하여 상기 장면과 연관된 상기 복수의 결정된 레이아웃 추정 중 제1 레이아웃 추정을 결정하도록 구성되고;
    상기 제1 레이아웃 추정을 결정하기 위해, 상기 처리 회로는 추가로,
    각각의 상기 검출된 선이 상기 장면 내의 벽 경계에 대응하는 경계선인지 판정하고;
    상기 검출된 선의 경계선을 상기 제1의 2D 이미지의 상기 참조 방향과 정렬하며;
    2D 다각형의 노이즈 제거와 계단 제거 중 하나를 사용하여 상기 정렬된 경계선에 기초하여 상기 제1 레이아웃 추정을 지시하는 제1 다각형을 생성하도록
    구성되는, 장치.
  15. 제14항에 있어서,
    상기 처리 회로는,
    상기 경계선 중 천장 경계선과 바닥 경계선의 조합에 기초하여 복수의 불완전한 경계선을 추정하는 것; 및
    상기 복수의 불완전한 경계선 중 한 쌍의 불완전한 경계선을, (i) 상기 불완전한 경계선의 쌍이 평행한 것에 대한 응답으로 상기 불완전한 경계선의 쌍에 수직선을 추가하는 것과, (ii) 상기 불완전한 경계선의 쌍 중 적어도 하나를 연장하여 상기 불완전한 경계선의 쌍의 교차점이 상기 불완전한 경계선의 연장된 쌍에 위치하도록 하는 것 중 하나에 기초하여, 연결하는 것
    중 하나에 기초하여, 상기 경계선 중 복수의 불완전한 경계선을 완전하게 하도록 구성되는, 장치
  16. 제14항에 있어서,
    상기 처리 회로는,
    다각형 합체 알고리즘을 통해 복수의 다각형을 결합함으로써 기본 다각형을 결정하고 - 상기 복수의 다각형 각각은 상기 복수의 결정된 레이아웃 추정의 개개의 레이아웃 추정에 대응함 -;
    상기 기본 다각형에 기초하여 축소된 다각형을 결정하며 - 상기 축소된 다각형은 상기 기본 다각형의 에지로부터 업데이트되는 업데이트된 에지를 포함함 -;
    상기 2D 다각형의 노이즈 제거 및 계단 제거 중 하나를 사용하여 상기 축소된 다각형에 기초하여 최종 다각형을 결정하도록 - 상기 최종 다각형은 상기 장면과 연관된 상기 결합된 레이아웃 추정에 대응함 -
    구성되는, 장치.
  17. 제16항에 있어서,
    상기 처리 회로는,
    상기 기본 다각형의 에지에 대해 상기 복수의 다각형으로부터 복수의 후보 에지를 결정하고 - 상기 복수의 후보 에지 각각은 상기 기본 다각형의 개개의 에지에 대응함 -;
    상기 하나 이상의 후보 에지가 상기 기본 다각형의 대응하는 하나 이상의 에지보다 상기 복수의 2D 이미지 내의 원래 뷰 위치에 더 가깝다는 것에 대한 응답으로, 상기 기본 다각형의 하나 이상의 에지를 대응하는 하나 이상의 후보 에지로 대체함으로써 상기 축소된 다각형의 업데이트된 에지를 생성하도록
    구성되는, 장치.
  18. 제17항에 있어서,
    상기 복수의 후보 에지 각각은 상기 기본 다각형의 대응하는 에지와 평행하고,
    상기 개개의 후보 에지와 상기 기본 다각형의 대응하는 에지 사이의 돌출된 중첩 부분이 임계값보다 큰, 장치.
  19. 제16항에 있어서,
    상기 처리 회로는,
    상기 최종 다각형의 에지를 포함하는 에지 세트를 결정하고;
    상기 에지 세트에 기초하여 복수의 에지 그룹을 생성하며;
    상기 에지 세트의 하나 이상의 에지 그룹의 복수의 평균 에지에 의해 지시되는 상기 최종 다각형의 복수의 내부 에지를 생성하도록 - 상기 복수의 에지 그룹 중 하나 이상의 에지 그룹 각각은 타깃 값보다 큰 각자의 에지 수를 포함하고, 상기 복수의 평균 에지 각각은 상기 하나 이상의 에지 그룹 중의 개개의 에지 그룹의 에지를 평균함으로써 획득됨 -
    구성되는, 장치.
  20. 제19항에 있어서,
    상기 복수의 에지 그룹은 제1 에지 그룹을 포함하고,
    상기 제1 에지 그룹은 제1 에지와 제2 에지를 더 포함하며, 상기 제1 에지와 상기 제2 에지는 평행하고, 상기 제1 에지와 상기 제2 에지 사이의 거리는 제1 임계값보다 작으며, 상기 제1 에지와 상기 제2 에지 사이의 돌출된 중첩 영역은 제2 임계값보다 큰, 장치.
KR1020237033278A 2022-02-02 2022-11-08 지오메트릭과 시맨틱 정보를 사용한 맨해튼 레이아웃 추정 KR20230148257A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202263306001P 2022-02-02 2022-02-02
US63/306,001 2022-02-02
US17/981,156 2022-11-04
US17/981,156 US20230245390A1 (en) 2022-02-02 2022-11-04 Manhattan layout estimation using geometric and semantic information
PCT/US2022/079437 WO2023149969A1 (en) 2022-02-02 2022-11-08 Manhattan layout estimation using geometric and semantic

Publications (1)

Publication Number Publication Date
KR20230148257A true KR20230148257A (ko) 2023-10-24

Family

ID=87432380

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237033278A KR20230148257A (ko) 2022-02-02 2022-11-08 지오메트릭과 시맨틱 정보를 사용한 맨해튼 레이아웃 추정

Country Status (5)

Country Link
US (1) US20230245390A1 (ko)
JP (1) JP2024513815A (ko)
KR (1) KR20230148257A (ko)
CN (1) CN117242480A (ko)
WO (1) WO2023149969A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019205069A1 (en) * 2018-04-27 2019-10-31 Beijing Didi Infinity Technology And Development Co., Ltd. Systems and methods for updating 3d model of building

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6052124A (en) * 1997-02-03 2000-04-18 Yissum Research Development Company System and method for directly estimating three-dimensional structure of objects in a scene and camera motion from three two-dimensional views of the scene
US9595134B2 (en) * 2013-05-11 2017-03-14 Mitsubishi Electric Research Laboratories, Inc. Method for reconstructing 3D scenes from 2D images
US20150199573A1 (en) * 2014-01-10 2015-07-16 Mitsubishi Electric Research Laboratories, Inc. Global Scene Descriptors for Matching Manhattan Scenes using Edge Maps Associated with Vanishing Points

Also Published As

Publication number Publication date
JP2024513815A (ja) 2024-03-27
CN117242480A (zh) 2023-12-15
WO2023149969A1 (en) 2023-08-10
US20230245390A1 (en) 2023-08-03

Similar Documents

Publication Publication Date Title
JP2023552116A (ja) メッシュ解凍のための方法、処理回路構成を含む装置、並びに関連するプログラム及び記憶媒体
US20230245390A1 (en) Manhattan layout estimation using geometric and semantic information
JP7476432B2 (ja) メッシュ復元のための方法、装置及びコンピュータプログラム
US20230196663A1 (en) Checking overlapping-free property for patches in mesh compression
US20230162404A1 (en) Decoding of patch temporal alignment for mesh compression
US11967025B2 (en) Detection of boundary loops in non-manifold meshes
US11924434B2 (en) 2D atlas adaptive sampling in 3D mesh compression
US20230177738A1 (en) Dynamic mesh compression based on point cloud compression
US20230074762A1 (en) Vertex reordering for mesh compression
US20230090677A1 (en) Coding connectivity in vertex reordering methods for mesh compression
US20230014820A1 (en) Methods and apparatuses for dynamic mesh compression
JP2024509988A (ja) チャートベースのメッシュ圧縮の方法、装置およびコンピュータプログラム
JP2024512921A (ja) メッシュ圧縮のためのパッチ時間的位置合わせの符号化
CN116368523A (zh) Uv坐标编码

Legal Events

Date Code Title Description
A201 Request for examination