KR102525030B1 - 포인트 클라우드를 생성하는 방법 및 장치 - Google Patents

포인트 클라우드를 생성하는 방법 및 장치 Download PDF

Info

Publication number
KR102525030B1
KR102525030B1 KR1020180159431A KR20180159431A KR102525030B1 KR 102525030 B1 KR102525030 B1 KR 102525030B1 KR 1020180159431 A KR1020180159431 A KR 1020180159431A KR 20180159431 A KR20180159431 A KR 20180159431A KR 102525030 B1 KR102525030 B1 KR 102525030B1
Authority
KR
South Korea
Prior art keywords
depth
image
color
point cloud
color information
Prior art date
Application number
KR1020180159431A
Other languages
English (en)
Other versions
KR20200071565A (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 삼성전자주식회사
Priority to KR1020180159431A priority Critical patent/KR102525030B1/ko
Publication of KR20200071565A publication Critical patent/KR20200071565A/ko
Application granted granted Critical
Publication of KR102525030B1 publication Critical patent/KR102525030B1/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
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/001
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration using two or more images, e.g. averaging or subtraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/80Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/90Determination of colour characteristics
    • 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/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2211/00Image generation
    • G06T2211/40Computed tomography
    • G06T2211/416Exact reconstruction

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

포인트 클라우드를 생성하는 방법에 있어서, 대상체에 대한 색상 정보를 나타내는 색상 정보 영상 및 깊이 정보를 나타내는 깊이 영상을 획득하는 단계, 상기 색상 정보 영상 및 상기 깊이 영상으로부터 상기 대상체를 나타내는 영역을 검출하는 단계, 상기 검출된 영역 내에 포함되는 상기 색상 정보 영상에 기초하여, 상기 깊이 영상을보정하는 단계, 및 상기 색상 정보 영상 및 상기 보정된 깊이 영상을 재구성함으로써, 상기 대상체에 대한 포인트 클라우드를 생성하는 단계를 포함하는, 포인트 클라우드 생성 방법이 개시된다.

Description

포인트 클라우드를 생성하는 방법 및 장치 {APPARATUS AND METHOD FOR GENERATING POINT CLOUD}
본 개시는 대상체를 캡쳐하여 3차원 데이터를 생성하기 위한 방법 및 장치에 관한 것이다. 구체적으로는, 대상체로부터 색상 정보 및 깊이 정보를 획득하여 포인트 클라우드 형태의 3차원 데이터를 생성하는 방법 및 장치에 관한 것이다.
증강 현실(Augmented Reality, AR) 기술은 실제 공간에 3차원의 가상 영상(혹은, 정보)을 겹쳐서 사용자에게 보여줌으로써, 사용자가 가상 영상과 즉각적인 상호 작용을 할 수 있게 하는 기술이다. AR 기술을 구현하기 위해서는, 대상체에 대한 3차원 정보가 필요하다. 대상체에 대한 3차원 정보를 획득하는 방법으로는, 컴퓨터 그래픽을 이용하여 3차원 모델링을 통해 가상의 대상체에 대한 3차원 정보를 생성하는 방법과, 실제 대상체를 전방향에서 촬영함으로써 획득되는 정보를 재구성하여 3차원 정보를 획득하는 방법이 있다.
획득된 3차원 정보는 포인트 클라우드(point cloud) 형태로 처리, 저장 및 전송될 수 있고, 사용자는 포인트 클라우드로부터 렌더링된 영상을 제공받음으로써 자유롭게 대상체의 원하는 위치를 볼 수 있다.
3차원 데이터의 한 표현 방법인 포인트 클라우드(point cloud)는 방대한 양의 포인트의 집합을 의미하며, 대용량의 3차원 데이터는 포인트 클라우드로 표현될 수 있다. 포인트 클라우드는, 3차원 공간 내의 포인트들을 표현하기 위하여, 각 포인트의 위치 좌표와 색상 정보를 포함하는 벡터 형태를 가질 수 있다. 예를 들어, 포인트 클라우드는 (x, y, z, R, G, B)와 같이 표현될 수 있다. 무수히 많은 색상과 위치 데이터들이 모여서 공간적인 구성을 이루는 포인트 클라우드는 밀도가 높아지면 높아질 수록 점점 더 구체적인 데이터가 되면서 하나의 3D 모델로서의 의미를 가지게 된다.
본 개시는 실제 대상체를 전방향에서 촬영함으로써 획득되는 정보를 재구성하여 3차원 정보를 획득하는 방법에 관한 것이다. 대상체에 대한 전방향 컨텐츠를 얻기 위해서는, 대상체를 중심으로 배치된 다수의 카메라들이 이용될 수 있다.
예를 들어, 대상체로부터 색상 정보를 획득하는 RGB 카메라만을 이용하여 3차원 정보를 획득하기 위해서는, 적게는 20대에서 많게는 160대의 카메라가 필요하다. 또한, RGB 카메라만을 이용하여 3차원 정보를 획득하는 방법에 의하면, 대상체의 텍스쳐가 부족한 영역(또는, 색상이 일정한 영역)에 대해서는 깊이 예측이 어렵고, 픽셀 단위의 조밀한 깊이 정보를 획득하기 위해서는 프레임당 많은 연산이 필요하다는 문제점이 있다. 또한, 대상체에 대한 전방향의 3D 정보를 정교하게 획득하기 위해서는, 각 카메라에 대한 3D 좌표를 얻는 정확한 캘리브레이션 과정이 요구되므로, 대상체를 나타내는 포인트 클라우드를 획득하는데 많은 시간과 비용이 소요된다.
따라서, 포인트 클라우드 획득에 소요되는 시간과 비용을 줄일 수 있는 방법으로, 대상체의 색상 정보와 함께 깊이 정보를 획득할 수 있는 카메라(예를 들어, RGB-D 카메라)를 사용하는 방법이 제안된다. RGB-D 카메라를 사용할 경우, 상대적으로 적은수의 카메라 만으로도(예를 들어, 90도 간격으로 설치된 4 대의 카메라만으로도) 효율적으로 대상체에 대한 전방향의 3D 정보를 획득할 수 있다. 따라서, 상대적으로 적은 수의 RGB-카메라를 사용하는 환경에서, 대상체의 전방향 포인트 클라우드를 높은 정확도로 획득할 수 있는 방법이 요구된다.
본 개시에서는 복수의 카메라들로부터 대상체에 대한 색상 정보 및 깊이 정보를 획득하여, 대상체를 나타내는 포인트 클라우드를 높은 정확도로 획득할 수 있는 방법을 제안한다. 구체적으로는, 복수의 카메라들 간의 상대적인 위치 관계를 파악하기 위한 캘리브레이션을 수행하는 방법, 복수의 카메라들의 영상 캡쳐 시간을 동기화하는 방법, 및 색상 정보와 깊이 정보를 이용하여 고화질의 포인트 클라우드를 획득하는 방법이 제안된다.
본 개시의 일 실시 예에 따른 포인트 클라우드 생성 방법은, 대상체에 대한 색상 정보를 나타내는 색상 정보 영상 및 깊이 정보를 나타내는 깊이 영상을 획득하는 단계; 상기 색상 정보 영상 및 상기 깊이 영상으로부터 상기 대상체를 나타내는 영역을 검출하는 단계; 상기 검출된 영역 내에 포함되는 상기 색상 정보 영상에 기초하여, 상기 깊이 영상을보정하는 단계; 및 상기 색상 정보 영상 및 상기 보정된 깊이 영상을 재구성함으로써, 상기 대상체에 대한 포인트 클라우드를 생성하는 단계를 포함할 수 있다.
본 개시의 일 실시 예에 따른 포인트 클라우드 생성 장치는, 복수의 카메라들로부터 대상체에 대한 색상 정보를 나타내는 색상 정보 영상 및 깊이 정보를 나타내는 깊이 영상을 획득하는, 통신부; 및 상기 색상 정보 영상 및 상기 깊이 영상으로부터 상기 대상체를 나타내는 영역을 검출하고, 상기 검출된 영역 내에 포함되는 상기 색상 정보 영상에 기초하여, 상기 깊이 영상을보정하고, 상기 색상 정보 영상 및 상기 보정된 깊이 영상을 재구성함으로써, 상기 대상체에 대한 포인트 클라우드를 생성하는, 적어도 하나의 프로세서를 포함할 수 있다.
본 개시의 일 실시 예에 따른 포인트 클라우드 생성 방법을 수행하도록 하는 프로그램이 저장된 하나 이상의 컴퓨터로 읽을 수 있는 기록매체를 포함하는 컴퓨터 프로그램 제품에 있어서, 상기 포인트 클라우드 생성 방법은, 대상체에 대한 색상 정보를 나타내는 색상 정보 영상 및 깊이 정보를 나타내는 깊이 영상을 획득하는 단계; 상기 색상 정보 영상 및 상기 깊이 영상으로부터 상기 대상체를 나타내는 영역을 검출하는 단계; 상기 검출된 영역 내에 포함되는 상기 색상 정보 영상에 기초하여, 상기 깊이 영상을보정하는 단계; 및 상기 색상 정보 영상 및 상기 보정된 깊이 영상을 재구성함으로써, 상기 대상체에 대한 포인트 클라우드를 생성하는 단계를 포함할 수 있다.
본 개시에 따르면 대상체를 나타내는 포인트 클라우드를 높은 정확도로 효율적으로 획득할 수 있다. 따라서 저장 공간, 처리 시간 및 하드웨어 비용 등의 자원을 절감할 수 있다.
본 개시에서 얻을 수 있는 효과는 언급한 효과들로 제한되지 않으며, 언급하지 않은 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있다.
도 1은 복수의 카메라들로부터 대상체에 대한 색상 정보 및 깊이 정보를 획득하고 획득된 정보를 재구성하는 포인트 클라우드 획득 시스템을 설명하기 위한 도면이다.
도 2는 대상체에 대한 색상 정보를 나타내는 색상 정보 영상 및 깊이 정보를 나타내는 깊이 영상의 예를 도시한다.
도 3은 복수의 카메라들에 대한 캘리브레이션을 설명하기 위한 도면이다.
도 4a 및 4b는 실측 자료 오브젝트(ground truth object)를 이용하여 카메라들에 대한 캘리브레이션을 수행하는 방법을 설명하기 위한 도면이다.
도 5는 복수의 카메라들에 대한 동기화(synchronization)를 설명하기 위한 도면이다.
도 6은 카메라들에 의해 캡쳐되는 프레임들을 샘플링하는 방법을 설명하기 위한 도면이다.
도 7, 8, 9, 10a 및 10b는 대상체를 나타내는 전경(foreground) 영역을 결정하기 위한 방법을 설명하기 위한 도면이다.
도 11, 12 및 13은 색상 정보를 이용하여 깊이 영상을 보정하는 방법을 설명하기 위한 도면이다.
도 14 및 15는 서로 다른 시점에서 캡쳐된 대상체에 대한 깊이 영상들을 조합하는 방법을 설명하기 위한 도면이다.
도 16은 본 개시의 다양한 실시 예들에 따라 포인트 클라우드를 생성하는 방법의 흐름도를 도시한다.
도 17은 본 개시의 다양한 실시 예들에 따라 깊이 영상을 보정하는 방법의 구체화된 흐름도를 도시한다.
아래에서는 첨부한 도면을 참조하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 개시의 실시예를 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 또한, 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본 개시의 일부 실시예는 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들의 일부 또는 전부는, 특정 기능들을 실행하는 다양한 개수의 하드웨어 및/또는 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 본 개시의 기능 블록들은 하나 이상의 마이크로프로세서들에 의해 구현되거나, 소정의 기능을 위한 회로 구성들에 의해 구현될 수 있다. 또한, 예를 들어, 본 개시의 기능 블록들은 다양한 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능 블록들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 개시는 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다.
또한, 도면에 도시된 구성 요소들 간의 연결 선 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것일 뿐이다. 실제 장치에서는 대체 가능하거나 추가된 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들에 의해 구성 요소들 간의 연결이 나타내어질 수 있다.
본 명세서에서 “영상”이란, 색상 정보를 나타내는 영상, 깊이 정보를 나타내는 영상, 정지 영상, 동영상, 비디오 프레임, 및/또는 비디오 스트림을 모두 포함할 수 있으며, 2D 프레임 및 3D 프레임을 모두 포함할 수 있다. 예를 들어, “영상”은 포인트 클라우드로 표현되는 3D 프레임을 포함할 수 있다.
본 명세서 전반에 걸쳐 사용되는 "영상"이라는 용어는 "영상"이라는 용어 자체뿐만 아니라, “픽쳐”, “프레임”, “필드” 또는 “슬라이스”등 관련 분야에서 알려질 수 있는 영상 정보의 다양한 형태들을 설명하기 위한 포괄적인 용어로서 사용된다. 예를 들어, “영상”은 비디오 스트림을 구성하는 복수의 픽쳐들 또는 복수의 프레임들 중 하나를 의미할 수도 있고, 복수의 픽쳐들 또는 복수의 프레임들을 포함하는 비디오 스트림 전체를 의미할 수도 있다.
이하 첨부된 도면을 참고하여 본 개시를 상세히 설명하기로 한다.
도 1은 복수의 카메라들로부터 대상체에 대한 색상 정보 및 깊이 정보를 획득하고 획득된 정보를 재구성하는 포인트 클라우드 획득 시스템을 설명하기 위한 예시 도면이다.
도 1에 도시된 바와 같이 본 개시의 일 실시 예에 따른 포인트 클라우드 획득 시스템은, 대상체(20)를 중심으로 배치된 복수의 카메라들(10a, 10b, 10c, 10d)을 이용하여 3차원 정보를 획득할 수 있다. 도 1에서는 4대의 카메라들(10a, 10b, 10c, 10d)이 배치된 경우를 예로 들어 도시하였으나 실시 예는 이에 제한되지 않으며, 이용되는 카메라의 개수는 사용 환경에 따라 다양하게 변경 가능하다. 예를 들어, 카메라들(10a, 10b, 10c, 10d)은 RGB-D 카메라일 수 있다.
본 개시의 일 실시 예에 따른 포인트 클라우드 생성 장치(100)는, 복수의 카메라들(10a, 10b, 10c, 10d)로부터 대상체에 대한 3차원 정보를 획득할 수 있다. 대상체에 대한 3차원 정보는, 대상체에 대한 색상 정보 및 깊이 정보를 포함할 수 있다. 대상체에 대한 깊이 정보는, 카메라(또는, 소정 기준점)로부터 대상체의 표면까지의 거리 정보를 포함할 수 있다.
도 2는 대상체에 대한 색상 정보를 나타내는 색상 정보 영상(201) 및 깊이 정보를 나타내는 깊이 영상(202)의 예를 도시한다. 도 2에 도시된 바와 같이, 색상 정보 영상(201)의 각 픽셀은, 대상체의 소정 지점의 색상 정보를 포함할 수 있고, 깊이 영상(202)의 각 픽셀은, 대상체의 소정 지점의 깊이 정보를 포함할 수 있다.
본 개시의 일 실시 예에 따른 포인트 클라우드 생성 장치(100)는, 대상체에 대한 색상 정보를 나타내는 색상 정보 영상 및 깊이 정보를 나타내는 깊이 영상을 재구성함으로써, 대상체에 대한 3차원 정보를 나타내는 포인트 클라우드를 생성할 수 있다.
본 개시의 일 실시 예에 따른 포인트 클라우드 생성 장치(100)는, 사용자 단말 (UE,User Equipment)과 같은 전자 디바이스 또는 서버일 수 있다. 예를 들어, 포인트 클라우드 생성 장치(100)는, 퍼스널 컴퓨터(Personal Computer), 스마트 폰, TV, 타블렛, 노트북, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 또는 디지털 카메라와 같은 사용자 단말이거나, 사용자 단말에 포함되는 장치일 수 있다.
도 1을 참조하면, 일 실시 예에 따른 포인트 클라우드 생성 장치(100)는, 카메라들로부터 대상체에 대한 3D 정보를 수신하는 통신부(110) 및 수신된 정보에 기초하여 포인트 클라우드를 생성하는 적어도 하나의 프로세서(120)를 포함할 수 있다. 그러나 실시 예는 이에 제한되지 않으며, 도 1에 도시된 구성 요소 모두보다 많은 구성 요소에 의해 포인트 클라우드 생성 장치(100)가 구현될 수 있다. 예를 들어, 프로세서(120)에서 처리되는 프로그램, 파일 및 데이터 등을 저장하는 메모리(미도시), 처리되는 데이터를 디스플레이 하는 디스플레이 유닛(미도시), 사용자로부터 사용자 입력을 수신하는 사용자 입력부(미도시) 등을 더 포함할 수 있다.
포인트 클라우드 생성 장치(100)는, 복수의 카메라들(10a, 10b, 10c, 10d)과 유선 또는 무선으로 연결될 수 있다. 또는, 포인트 클라우드 생성 장치(100)는, 복수의 카메라들(10a, 10b, 10c, 10d) 중 하나의 카메라(예를 들어, 카메라(10a))에 포함되고 해당 카메라에 연결된 다른 카메라들(예를 들어, 카메라들(10b, 10c, 10d)) 로부터 대상체에 대한 3D 정보를 수신할 수 있다.
일 실시 예에 따른 통신부(110)는, 다른 디바이스, 서버 또는 네트워크와 유무선 통신을 수행할 수 있다. 이를 위해, 통신부(1210)는 다양한 유무선 통신 방법 중 적어도 하나를 지원하는 통신 모듈을 포함할 수 있다.
일 실시 예에 따른 프로세서(120)는, 포인트 클라우드 생성 장치(100)의 전체적인 동작을 제어하며, CPU, GPU 등과 같은 프로세서를 적어도 하나 이상 포함할 수 있다. 프로세서(120)는, 카메라들(10a, 10b, 10c, 10d)로부터 대상체에 대한 정보를 수신하고, 수신된 정보에 기초하여 포인트 클라우드를 생성하도록 포인트 클라우드 생성 장치(100)에 포함되는 다른 구성들을 제어할 수 있다.
도 1에서는, 포인트 클라우드 생성 장치(100)가 하나의 프로세서(120)를 포함하는 것으로 도시되었으나, 실시 예는 이에 제한되지 않으며, 포인트 클라우드 생성 장치(100)는 복수의 프로세서들을 포함할 수 있다. 이하, 서술되는 프로세서(120)의 동작 및 기능들의 적어도 일부는 복수의 프로세서들에 의해 수행될 수 있다.
이하, 일 실시 예에 따른 포인트 클라우드 생성 장치(100)가 카메라들로부터 수신된 3D 정보에 기초하여 포인트 클라우드를 생성하는 구체적인 방법을 설명한다.
도 1에 도시된 바와 같이 복수의 카메라들(10a, 10b, 10c, 10d)을 이용하여 포인트 클라우드를 획득하기 위해서는, 먼저 카메라들 간의 상대적인 위치 관계를 예측해야 한다. 이는, 하나의 카메라에 의해 캡쳐되는 색상 정보 영상과 깊이 영상이, 각 카메라의 중심을 기준으로 하는 좌표 값에 기초하여 획득되기 때문이다. 따라서, 복수의 카메라들을 통해서 획득된 정보를 하나의 공통 좌표계로 표현할 수 있도록, 카메라들 간의 상대적인 위치 관계를 확인해야 할 필요가 있다.
따라서, 일 실시 예에 따른 포인트 클라우드 생성 장치(100)의 프로세서(120)는, 대상체에 대한 색상 정보 영상 및 깊이 영상을 획득하는 복수의 카메라들(10a, 10b, 10c, 10d) 각각의 좌표계를 공통 좌표계로 변환하기 위한, 회전 정보(rotation information) 및 이동 정보(translation information)를 획득하는 캘리브레이션을 수행할 수 있다. 구체적인 캘리브레이션 과정에 대해서는 후에 도 3, 4a, 및 4b를 참조하여 보다 구체적으로 설명한다.
한편, 복수의 카메라들(10a, 10b, 10c, 10d)이 움직이는 대상체(20)를 촬영하는 경우, 각 카메라는 복수의 색상 정보 영상들을 포함하는 색상 정보 영상 프레임 세트 및 복수의 깊이 영상들을 포함하는 깊이 영상 프레임 세트를 획득할 수 있다. 예를 들어, 카메라는, 초당 수십 프레임의 속도로 깊이 영상 및 색상 정보 영상을 캡쳐하고, 깊이 영상 및 색상 정보 영상을 포함하도록 프레임을 구성하고, 복수의 프레임들을 포함하는 프레임 세트를 출력할 수 있다.
복수의 카메라들(10a, 10b, 10c, 10d)이 움직이는 대상체(20)를 촬영하는 경우, 각 카메라 간의 영상 캡쳐 시간의 동기화가 수행되어야 한다. 예를 들어, 복수의 카메라들(10a, 10b, 10c, 10d)이 초당 30프레임의 속도로 대상체(20)를 캡쳐하는 경우, 각 카메라 간의 영상 캡쳐 시간이 ms(millisecond) 단위로 정밀하게 동기화될 것이 요구된다. 영상 캡쳐 시간의 동기화가 선행되지 않는 경우, 하나의 포인트 클라우드 프레임을 생성하기 위해 이용되는 복수의 영상들이 서로 다른 순간의 장면을 담고 있으므로, 포인트 클라우드에 기초하여 대상체의 모습을 정확하게 재현하는데 어려움이 있을 수 있다.
따라서, 일 실시 예에 따른 포인트 클라우드 생성 장치(100)는 카메라들의 동기화를 위하여 오디오 신호를 이용할 수 있다. 일 실시 예에 따른 포인트 클라우드 생성 장치(100)의 통신부(110)는, 카메라들(10a, 10b, 10c, 10d) 각각으로부터 색상 정보 영상 프레임 세트 및 깊이 영상 프레임 세트를 획득함에 있어서, 오디오 신호를 함께 획득할 수 있다. 카메라들(10a, 10b, 10c, 10d) 각각은 색상 정보 영상 프레임 세트 및 깊이 영상 프레임 세트를 캡쳐하는 동시에 오디오 신호를 녹음할 수 있다. 또는, 각 카메라가 영상 프레임 세트를 캡쳐함과 동시에, 해당 카메라에 연결된 디바이스, 노드 또는 서버가 오디오 신호를 녹음할 수 있다. 예를 들어, 포인트 클라우드 생성 장치(100)는, 카메라의 동기화를 위해 소정 오디오 신호를 출력하고, 카메라들이 동일한 오디오 신호를 녹음하도록 할 수 있다.
일 실시 예에 따른 포인트 클라우드 생성 장치(100)의 프로세서(120)는 복수의 카메라들(10a, 10b, 10c, 10d) 에서 녹음된 오디오 신호들 간의 상관 관계(cross correlation)에 기초하여, 복수의 색상 정보 영상 프레임 세트들 및 깊이 영상 프레임 세트들을 동기화(synchronization)할 수 있다. 구체적인 동기화 과정에 대해서는 후에 도 5 및 6을 참조하여 보다 구체적으로 설명한다.
한편, 일반적으로 고화질의 해상도를 갖는 촬영 장비는 고가이므로, 고가의 촬영 장비를 이용하지 않는 일반적인 촬영 환경에서 높은 해상도의 컨텐츠를 제공하는데 어려움이 있다. 또한, 일반적인 RGB-D 카메라의 경우, 색상 정보를 담고 있는 영상에 비하여 깊이 영상의 해상도가 낮다. 그리고, 색상 정보 영상을 촬영하는 카메라와 깊이 영상을 촬영하는 카메라 간의 위상차가 존재하고, 색상 정보 영상과 깊이 정보 영상의 엣지(edge)가 일치하지 않을 수 있다. 색상 정보 영상과 깊이 정보 영상의 맞물림(occlusion)으로 인한 데이터의 공백(즉, hole)이 생기는 문제가 있을 수 있기 때문에 고화질의 3D 데이터를 획득하는데 어려움이 있다. 따라서, 이러한 문제점을 보완하기 위하여, 깊이 영상을 보정하는 과정이 필요하다.
먼저, 일 실시 예에 따른 포인트 클라우드 생성 장치(100)의 프로세서(120)는, 색상 정보 영상 및 깊이 영상으로부터 대상체를 나타내는 영역을 검출할 수 있다.
프로세서(120)는, 대상체를 나타내는 영역을 검출함에 있어서, 대상체가 없는 배경을 캡쳐한 배경 색상 영상으로부터 색상 정보 영상을 제한 색상 차 영상(color difference image)을 획득할 수 있다. 이 때, 색상 정보 영상은, 대상체와 배경을 함께 캡쳐한 영상일 수 있다. 프로세서(120)는, 대상체가 없는 배경을 캡쳐한 배경 깊이 영상으로부터 깊이 영상을 제한 깊이 차 영상(depth difference image)을 획득할 수 있다. 이 때, 깊이 영상은, 대상체와 배경을 함께 캡쳐한 영상일 수 있다. 프로세서(120)는, 색상 차 영상 및 깊이 차 영상을 조합함으로써, 대상체를 나타내는 영역을 결정할 수 있다. 구체적인 전경 검출 방법에 대해서는 후에 도 7, 8, 9, 10a 및 10b를 참조하여 보다 구체적으로 설명한다.
다음으로, 일 실시 예에 따른 포인트 클라우드 생성 장치(100)의 프로세서(120)는, 깊이 영상을 보정할 수 있다.
프로세서(120)는, 깊이 영상 내의 블록들 각각에 대응하는 로컬 평면을 재구성하고, 재구성된 로컬 평면들을 조합함으로써, 노이즈가 제거된 고해상도 깊이 영상을 획득할 수 있다.
일 예로서, 프로세서(120)는, 색상 정보 영상에 기초하여 유사한 색상을 갖는 영역들을 하나의 블록으로 설정하고, 설정된 블록에 대한 로컬 평면을 재구성할 수 있다. 프로세서(120)는, 하나의 블록에 포함되는 픽셀들의 좌표 값들의 산술 평균값을 갖는 픽셀을 해당 블록의 중심 픽셀로서 결정할 수 있다. 다른 예로서, 프로세서(120)는 각 픽셀마다 해당 픽셀을 중심으로 하는 일정한 크기의 블록을 설정하고, 해당 블록에 대한 로컬 평면을 재구성할 수 있다. 예를 들어, 프로세서(120)는 9 ⅹ 9 크기의 블록을 영상 내에 설정할 수 있다.
먼저, 프로세서(120)는, 색상 정보 영상에 포함되는 블록 내의 픽셀들의 색상 정보에 기초하여, 픽셀들에 대한 색상 기반-가중치 맵을 생성할 수 있다.
프로세서(120)는, 블록에 포함되는 중심 픽셀로부터 다른 픽셀들까지의 거리 및 중심 픽셀의 색상 값과 다른 픽셀들의 색상 값들의 차이에 기초하여, 픽셀들에 대한 색상-기반 가중치를 계산할 수 있다.
프로세서(120)는, 깊이 영상 및 색상 기반-가중치 맵에 기초하여, 블록에 대응하는 로컬 평면을 추정할 수 있다. 프로세서(120)는, 색상 기반-가중치 맵에 기초하여, 깊이 영상과의 오차를 최소화하는 이차 곡면 평면을 로컬 평면으로서 추정할 수 있다.
그리고, 프로세서(120)는, 깊이 영상 및 추정된 로컬 평면에 기초하여 깊이 기반-가중치 맵을 생성하고, 깊이 기반-가중치 맵에 기초하여, 깊이 영상과의 오차를 최소화하는 이차 곡면 평면을 로컬 평면으로서 추정할 수 있다. 프로세서(120)는, 깊이 영상 및 추정된 로컬 평면에 기초하여 깊이 기반-가중치 맵을 생성하는 동작 및 깊이 영상 및 깊이 기반-가중치 맵에 기초하여 로컬 평면을 추정하는 동작을 반복하여 수행할 수 있다. 프로세서(120)는, 깊이 영상과 추정된 로컬 평면 간의 오차가 임계 범위 내에 포함될 때까지, 깊이 기반-가중치 맵을 생성하는 동작 및 깊이 기반-가중치 맵에 기초하여 로컬 평면을 추정하는 동작을 반복할 수 있다.
프로세서(120)는, 로컬 평면을 추정하는 동작을 반복하여 수행한 결과에 기초하여 최종적으로 추정된 로컬 평면의 깊이 값들을 이용하여, 깊이 영상을 보정할 수 있다. 구체적인 깊이 영상 보정 방법에 대해서는, 후에 도 11, 12, 및 13을 참조하여 보다 구체적으로 설명한다.
일 실시 예에 따른 프로세서(120)는, 색상 정보 영상 및 보정된 깊이 영상을 재구성함으로써, 대상체에 대한 포인트 클라우드를 생성할 수 있다. 프로세서(120)는, 보정된 깊이 영상으로부터 소정 개수의 픽셀들을 선택하고, 색상 정보 영상으로부터 선택된 픽셀들에 대응하는 색상 값들을 획득할 수 있다. 프로세서(120)는, 선택된 포인트들에 대한 깊이 값들과 색상 값들을 매칭시킴으로써, 소정 개수의 포인트들을 포함하는 포인트 클라우드를 생성할 수 있다. 본 개시의 일 실시 예에 따른 포인트 클라우드 생성 장치(100)는, 추정된 로컬 평면 상에 원하는 개수의 포인트들을 배치하고, 각 포인트의 위치에 대응하는 색상을 매칭시킴으로서, 원하는 개수의 포인트들을 포함하는 포인트 클라우드를 생성할 수 있다.
도 3은 복수의 카메라들에 대한 캘리브레이션을 설명하기 위한 도면이다.
도 3에 도시된 바와 같이 복수의 카메라들(10a, 10b, 10c, 10d) 각각은 카메라 고유의 좌표계에 기초하여 색상 정보 영상과 깊이 영상을 획득할 수 있다. 따라서, 본 개시의 일 실시 예에 따른 포인트 클라우드 획득 시스템은, 복수의 카메라들(10a, 10b, 10c, 10d)을 통해서 획득된 정보를 하나의 공통 좌표계(300)로 표현할 수 있도록, 변환 정보를 획득하는 캘리브레이션을 수행할 수 있다. 변환 정보는, 회전 정보(R) 및 이동 정보(T)를 포함할 수 있다. 예를 들어, 일 실시 예에 따른 포인트 클라우드 생성 장치(100)는, 카메라(10a)를 통해서 획득된 3차원 공간의 임의의 지점(301)에 대한 좌표값을 변환 정보(305)에 기초하여 공통 좌표계 상의 좌표값으로 변환할 수 있다.
본 개시의 일 실시 예에 따른 포인트 클라우드 획득 시스템은, 캘리브레이션을 위해서 실측 자료 오브젝트(real ground truth object)와 실측 자료 오브젝트에 대응하는 3차원 절대 좌표 모델을 이용할 수 있다.
도 4a 및 4b는 실측 자료 오브젝트를 이용하여 카메라들에 대한 캘리브레이션을 수행하는 방법을 설명하기 위한 도면이다.
도 4a에 도시된 바와 같이, 실측 자료 오브젝트는 총 네 개의 박스(401a, 401b, 401c, 401d)를 z축 회전시키켜 위로 쌓은 형태로 설치될 수 있다. 각 박스의 옆면마다 2개의 마커가 부착되어 4개의 박스들 상에 총 32개의 마커가 부착될 수 있다. 도 4a에 도시된 바와 같이, 마커는, QR 코드를 포함하는 증강 현실 마커(AR marker)를 포함할 수 있다.
일 실시 예에 따른 포인트 클라우드 생성 장치(100)(또는, 포인트 클라우드 획득 시스템)은, 박스 상에 부착되는 각 마커의 위치에 대한 정보를 미리 저장할 수 있다. 따라서, 포인트 클라우드 생성 장치(100)는, 실측 자료 오브젝트를 촬영한 영상으로부터 박스 상에 부착된 마커를 추출하고, 마커의 특징점을 검출함으로써, 특징점에 대응하는 정보로서 미리 저장된 표면 정보에 기초하여 박스의 3차원 좌표를 계산할 수 있다. 따라서, 포인트 클라우드 생성 장치(100)는, 실측 자료 박스(ground truth box)와 해당 박스 상의 마커의 2D 전개도를 획득하고, 마커의 특징점들에 대한 3차원 절대 좌표를 획득할 수 있다.
캘리브레이션의 과정은, 모든 RGB-D 카메라마다 다음과 같이 동일하게 이루어질 수 있다.
먼저, 촬영하고자 하는 환경에 RGB-D 카메라들(10a, 10b, 10c, 10d)이 배치되고, 중앙에 설치된 실측 자료 박스들(401a, 401b, 401c, 401d)이 RGB-D 카메라들(10a, 10b, 10c, 10d)에 의해 촬영된다. 각 RGB-D 카메라마다 실측 자료 박스들(401a, 401b, 401c, 401d)에 대한 색상 정보 영상과 깊이 영상이 획득될 수 있다.
일 실시 예에 따른 포인트 클라우드 생성 장치(100)는, 색상 정보 영상으로부터 박스 상의 마커를 추출하고, 미리 저장된 정보와의 특징점 매칭(feature matching)을 통해 색상 정보 영상의 2D 좌표로부터 해당 좌표에 대응하는 3차원 공간 상의 절대 좌표를 획득할 수 있다. 포인트 클라우드 생성 장치(100)는, 깊이 영상으로부터 카메라의 고유의 좌표계에 기초한 상대적인 좌표를 획득할 수 있다. 3차원 공간 상의 소정 지점에 대한 상대 좌표는, 카메라의 고유의 좌표계 상의 해당 지점에 대한 좌표 값을 의미하고, 절대 좌표는, 복수의 카메라들의 공통 좌표계 상의 해당 지점에 대한 좌표 값을 의미할 수 있다.
포인트 클라우드 생성 장치(100)는, 하나의 RGB-D 카메라의 상대적인 좌표와 절대 좌표를 포함하는 일대일 대응 쌍을 획득할 수 있다. 포인트 클라우드 생성 장치(100)는, 획득된 3차원 대응쌍으로부터 다음의 수학식 1과 같은 매핑 함수를 생성할 수 있다.
[수학식 1]
Figure 112018124346160-pat00001
RGB-D 카메라의 고유의 좌표계 상의 소정 지점에 대한 상대 좌표가
Figure 112018124346160-pat00002
이고, 소정 지점에 대한 공통 좌표계 상의 절대 좌표가
Figure 112018124346160-pat00003
인 경우를 예로 들어 설명한다. 획득된 3차원 대응쌍
Figure 112018124346160-pat00004
Figure 112018124346160-pat00005
로부터,
Figure 112018124346160-pat00006
Figure 112018124346160-pat00007
의 차를 최소화하는 R과 t가 계산될 수 있다. R은 RGB-D 카메라의 상대 좌표로부터 절대 좌표로의 3x3 회전 행렬이고 t는 상대 좌표로부터 절대 좌표로의 이동 벡터이다.
Figure 112018124346160-pat00008
Figure 112018124346160-pat00009
의 차를 최소화하는 R과 t 는 다음의 수학식 2에 따라 계산될 수 있다.
[수학식 2]
Figure 112018124346160-pat00010
수학식 2에 따라 구해진 변환 정보 R, t에 의해, 각 카메라의 고유의 좌표계 상의 상대적인 좌표 값들을 공통 좌표계 상의 절대적인 좌표 값들로 통합할 수 있다.
즉, 일 실시 예에 따른 포인트 클라우드 생성 장치(100)는, 도 4b에 도시된 바와 같이 모델링에 의해 생성된 가상의 오브젝트(403)와 실측 자료 오브젝트를 캡쳐한 영상 간의 특징점 매칭을 수행함으로써, 카메라들에 대한 캘리브레이션을 수행할 수 있다. 도 4b의 가상의 오브젝트는 공통 좌표계상의 절대 좌표값으로 표현되고, 카메라에 의해 캡쳐된 영상은 카메라의 고유의 좌표계 상의 상대 좌표값을 포함할 수 있다.
다음으로, 도 5 및 6을 참조하여 카메라들의 동기화에 대하여 설명한다.
먼저, 각 카메라가 연결된 디바이스(또는, 노드, 컴퓨터, 서버 등) 간의 시스템 시간이 동기화될 수 있다. 예를 들어, 네트워크를 통해 연결된 디바이스들 간의 시스템 시간이 1차적으로 동기화될 수 있다. 그러나, 1차적으로 동기화된 후에도, 여전히 디바이스들 간의 시차가 1~2초 정도 존재할 수 있다.
따라서, 본 개시의 일 실시 예에 따르면, 복수의 카메라들에 의해 대상체가 캡쳐됨과 동시에, 오디오 신호가 녹음될 수 있다. 오디오 신호의 녹음은, 카메라에 의해 수행되거나, 각 카메라가 연결된 디바이스에 의해 수행될 수 있다. 카메라는, 시간의 흐름에 따라 대상체에 대한 복수의 프레임들을 캡쳐하고, 각 프레임이 캡쳐되었을 때의 시점(즉, 타임 스탬프(time stamp))을 기록할 수 있다. 예를 들어, 카메라는, 오디오 신호가 수신되기 시작한 시점을 0초로 하여, 각 프레임이 캡쳐되었을 때의 시점을 기록할 수 있다.
도 5에 도시된 바와 같이, 일 실시 예에 따른 포인트 클라우드 생성 장치(100)는 복수의 카메라들(또는, 카메라에 연결된 디바이스)에서 녹음된 오디오 신호들(511, 512, 513) 간의 상관 관계에 기초하여, 각 카메라에서 획득된 색상 정보 영상 프레임 세트 및 깊이 영상 프레임 세트를 동기화할 수 있다.
일 실시 예에 따른 포인트 클라우드 생성 장치(100)는 하나의 카메라(또는, 디바이스)에서 녹음된 오디오 신호(511)를 기준으로, 다른 카메라(또는, 디바이스)에서 녹음된 오디오 신호(512, 513)의 시차(time difference)(t0, t1)를 구할 수 있다. 포인트 클라우드 생성 장치(100)는, 앞서 얻은 시차에 기초하여, 각 카메라에서 영상 캡쳐 시에 기록된 타임 스탬프를 쉬프트(shift)할 수 있다. 도 5에 도시된 바와 같이, 색상 정보 영상 및 깊이 영상을 포함하는 프레임 세트(521)를 기준으로, 프레임 세트(522)가 t0만큼 쉬프트 되고, 프레임 세트(523)이 t1만큼 쉬프트될 수 있다.
한편, 도 6에 도시된 바와 같이, 각 카메라에서 연속적으로 획득되는 프레임들은 각 프레임 간의 간격이 불규칙할 수 있다. 예를 들어, 대상체에 대한 제1 시점의 카메라에 의해 획득된 프레임 세트들(610)에 포함되는 프레임들(611, 612, 613, 614)은 불규칙한 시간 간격을 포함할 수 있다.
따라서, 일 실시 예에 따른 포인트 클라우드 생성 장치(100)는, 복수의 프레임 세트들에게 공통적으로 적용되는 공통 타임 스탬프(global time stamp)(600)를 기준으로 각 프레임 세트를 동기화할 수 있다. 공통 타임 스탬프는, 프레임 간의 간격이 50ms로 동일하도록 지정될 수 있다.
예를 들어, 포인트 클라우드 생성 장치(100)는, 공통 타임 스탬프(600)를 기준으로, 가장 가까운 타임 스탬프를 가지고 있는 프레임(611), 프레임(621), 프레임(631) 및 프레임(641)의 타임 스탬프를 0s로 동기화할 수 있다. 또한, 포인트 클라우드 생성 장치(100)는, 프레임(612), 프레임(622), 프레임(632) 및 프레임(642)의 타임 스탬프를 50ms로 동기화할 수 있다. 또한, 포인트 클라우드 생성 장치(100)는, 프레임들(613, 623, 633, 643)의 타임 스탬프를 100ms로 동기화하고, 프레임들(614, 624, 634, 644)의 타임 스탬프를 150ms로 동기화 할 수 있다.
한편, 일 실시 예에 따른 포인트 클라우드 생성 장치(100)는, 대상체에 대한 3차원 정보를 획득하기 위해서, 카메라를 통해 캡쳐되는 영상으로부터 배경을 나타내는 영역과 전경을 나타내는 영역을 구분할 수 있다.
대상체를 나타내는 전경 영역을 구분하기 위하여 색상 정보 영상만을 이용하는 방법에 따르면, 배경과 유사한 색상을 가진 전경 영역을 검출하는데 어려움이 있다. 또한, 대상체의 그림자가 포함되는 배경 영역을 전경 영역으로 판단하는 오류가 발생할 수 있다. 반면에, 대상체를 나타내는 전경 영역을 구분하기 위하여 깊이 영상만을 이용하는 방법에 따르면, 바닥과 접촉하고 있는 대상체의 경계를 검출하는데 어려움이 있다.
따라서, 본 개시의 일 실시 예에 따르면 전경 영역 구분(foreground segmentation)을 위해, 색상 정보 영상과 깊이 영상을 함께 이용할 수 있다. 본 개시의 일 실시 예에 따르면 전경 영역 구분을 위해 크로마 키(chroma key) 기술이 이용될 수 있다. 본 개시의 일 실시 예에 따르면, 지면에 미리 결정된 색상의 깔개를 설치할 수 있다. 예를 들어, 지면에 녹색 또는 파란색의 깔개가 설치될 수 있다.
포인트 클라우드 생성 장치(100)는, 대상체가 없을 때 배경에 대한 색상 정보 영상 및 깊이 영상을 미리 획득하고 저장할 수 있다.
포인트 클라우드 생성 장치(100)는, 대상체가 없는 배경을 캡쳐한 배경 색상 영상을 획득하고, 대상체와 배경을 함께 캡쳐한 색상 정보 영상을 획득할 수 있다. 포인트 클라우드 생성 장치(100)는, 배경 색상 영상으로부터 색상 정보 영상을 제한 색상 차 영상(color difference image)을 획득할 수 있다.
일 실시 예에 따른, 포인트 클라우드 생성 장치(100)는 색상 정보 영상으로부터 크로마 키 영상을 획득할 수 있다. 예를 들어, 지면에 녹색 깔개가 설치된 경우, 포인트 클라우드 생성 장치(100)는, 색상 정보 영상의 각 픽셀이 갖는 R, G, B 값에 기초하여, G-(R+B)/2 값을 갖는 크로마 키 영상을 획득할수 있다.
도 7에 도시된 바와 같이, 포인트 클라우드 생성 장치(100)는, 대상체가 없는 배경을 캡쳐한 배경 크로마키 영상(701)을 획득하고, 대상체와 배경을 함께 캡쳐한 크로마키 영상(702)을 획득할 수 있다. 포인트 클라우드 생성 장치(100)는, 배경 크로마키 영상(701)으로부터 크로마키 영상(702)을 제한 크로마키 차 영상(703)을 획득할 수 있다.
다음으로, 도 8에 도시된 바와 같이, 포인트 클라우드 생성 장치(100)는 대상체가 없는 배경을 캡쳐한 배경 깊이 영상(801)을 획득하고, 대상체와 배경을 함께 캡쳐한 깊이 영상(802)을 획득할 수 있다. 포인트 클라우드 생성 장치(100)는 배경 깊이 영상(801)으로부터 깊이 영상(802)을 제한 깊이 차 영상(depth difference image)(803)을획득할 수 있다.
일 실시 예에 따른 포인트 클라우드 생성 장치(100)는, 크로마키 차 영상(703) 및 깊이 차 영상(803) 각각에 대해서 임계값 처리(thresholding)를 수행하고, 임계값 처리된 영상들을 합함으로써 도 9에 도시된 바와 같은 전경 영역을 나타내는 영상(901)을 획득할 수 있다.
또한, 일 실시 예에 따른 포인트 클라우드 생성 장치(100)는, 보다 매끄러운 경계를 얻기 위해서, 그래프 컷(Graph cut) 기술에 기초한 영상 구분(image segmentaion)을 추가로 수행할 수 있다.
포인트 클라우드 생성 장치(100)는, 1차적으로 획득된 후보 검출 영역의 경계를 기준으로, 영상 구분을 추가로 수행함으로써 보다 매끄러운 경계를 얻을 수 있다.
예를 들어, 포인트 클라우드 생성 장치(100)는, 도 10a의 영상(1001)이 나타내는 후보 검출 영역의 경계를 기준으로, 영상(1002)에 도시된 바와 같이 전경 영역(FG)으로부터의 팽창(dilation) 및 배경 영역(BG)으로부터의 침식(erosion)을 수행함으로써 보다 매끄러운 경계를 얻을 수 있다. 도 10b는, 포인트 클라우드 생성 장치(100)에 의해 최종적으로 검출되는 전경 영역을 나타내는 영상(1003)을 도시한다.
다음으로, 도 11, 12, 및 13을 참조하여 깊이 영상의 보정에 대하여 설명한다.
본 개시의 일 실시 예에 따른 포인트 클라우드 생성 장치(100)는, 깊이 영상 내의 복수의 블록들 각각에 대응하는 로컬 평면을 재구성함으로써, 깊이 영상을 보정할 수 있다. 보정된 깊이 영상은, 노이즈가 제거된 고해상도 깊이 영상일 수 있다.
일 예로서, 포인트 클라우드 생성 장치(100)는, 색상 정보 영상에 기초하여 유사한 색상을 갖는 영역들을 하나의 블록으로 설정하고, 설정된 블록에 대한 로컬 평면을 재구성할 수 있다. 포인트 클라우드 생성 장치(100)는, 하나의 블록에 포함되는 픽셀들의 좌표 값들의 산술 평균값을 갖는 픽셀을 해당 블록의 중심 픽셀로서 결정할 수 있다.
다른 예로서, 본 개시의 일 실시 예에 따른 포인트 클라우드 생성 장치(100)는, 깊이 영상의 각 픽셀마다 해당 픽셀을 중심으로 블록을 설정하고, 해당 블록에 대응하는 로컬 평면을 재구성할 수 있다. 이하에서는, 깊이 영상의 각 픽셀마다 9ⅹ9 크기의 블록을 설정하는 경우를 예로 들어 설명한다.
도 11을 참조하면, 포인트 클라우드 생성 장치(100)는, 색상 정보 영상(1110)에 포함되는 블록(1111) 내의 픽셀들의 색상 정보(1113)에 기초하여, 픽셀들에 대한 색상 기반-가중치 맵(1115)을 생성할 수 있다. 포인트 클라우드 생성 장치(100)는, 블록에 포함되는 중심 픽셀로부터 다른 픽셀들까지의 거리 및 중심 픽셀의 색상 값과 다른 픽셀들의 색상 값들의 차이에 기초하여, 픽셀들에 대한 색상-기반 가중치를 계산할 수 있다.
그리고, 포인트 클라우드 생성 장치(100)는, 대상체로부터 획득된 깊이 영상 및 색상 기반-가중치 맵에 기초하여, 블록에 대응하는 로컬 평면을 추정할 수 있다. 포인트 클라우드 생성 장치(100)는, 깊이 영상(1121)에 포함되는 블록(1120)의 깊이 맵(1123) 및 색상 기반-가중치 맵(1115)에 기초하여, 블록에 대응하는 로컬 평면(1130)을 추정할 수 있다.
로컬 평면은, 가로 9 픽셀 및 세로 9 픽셀 크기의 마스크 내의 픽셀들의 깊이 값들을 사용하여 추정될 수 있다. 로컬 평면은, 중심 픽셀과 주변 픽셀 간의 거리 및 중심 픽셀의 색상 값(예를 들어, RGB 값)과 주변 픽셀의 색상 값의 차이에 따라, 다른 가중치를 부여하는 가중 최소 제곱 근사(weighted least square fitting)을 통해 추정될 수 있다. 또한, 포인트 클라우드 생성 장치(100)는, 로컬 평면으로부터 얻어진 깊이 값과 깊이 영상 내 깊이 값을 비교하여, 픽셀들 간의 가중치를 재계산함으로써 근사(fitting)를 반복 수행하여 최종 로컬 평면을 획득할 수 있다.
대상체의 표면 상의 깊이 값들은 완만하게 변화하기 때문에, 각 픽셀을 중심으로 하는 로컬 평면이 다음의 수학식 3과 같은 이차 곡면 방정식을 통해 표현될 수 있다고 가정한다.
[수학식 3]
Figure 112018124346160-pat00011
수학식 3에서 (x, y)는 블록의 중심 픽셀을 원점으로 하였을 때의 주변 픽셀의 상대적인 좌표 값이다. 수학식 3을 이용하여, 중심 픽셀을 중심으로 9 ⅹ 9 마스크 내의 픽셀 좌표 (xi, yi-)에서의 깊이 값
Figure 112018124346160-pat00012
은 수학식 4와 같이 표현될 수 있다.
[수학식 4]
Figure 112018124346160-pat00013
수학식 4는, 행렬 연산 형태로 간단하게
Figure 112018124346160-pat00014
로 표현될 수 있다.
로컬 평면에 기초하여 예측된 깊이 값
Figure 112018124346160-pat00015
는, 대상체로부터 획득된 깊이 영상 내의 실제 깊이 값
Figure 112018124346160-pat00016
과 적은 오차를 가져야 한다. 따라서, 다음의 수학식 5와 같은 비용 함수(cost function) E(c)를 최소화하는 이차 곡면 방정식의 계수 벡터 c가 획득된다.
[수학식 5]
Figure 112018124346160-pat00017
수학식 5에서 W는 각 픽셀의 색상 기반 가중치를 고려하기 위한 대각선 행렬이이다. 중심 픽셀과의 거리가 가까울수록, 색상 값(예를 들어, RGB 값)의 차이가 적을수록 높은 가중치가 부여된다. λ는 최적화 과정에서 계수 행렬 c가 발산하는 것을 방지하기 위한 정규화 항(regularization term)이다.
[수학식 6]
Figure 112018124346160-pat00018
Figure 112018124346160-pat00019
수학식 6에서 (xc, yc)는 중심 픽셀의 좌표이고, σs는 중심 픽셀과 주변 픽셀 간의 거리에 따른 가우시안 함수의 표준 편차를 의미하고, σc는 중심 픽셀과 주변 픽셀 간의 색상 차이에 따른 가우시안 함수의 표준 편차를 의미한다. 예를 들어, σs는 2.5로 설정되고, σc는 5로 설정될 수 있다.
수학식 5의 비용 함수를 최소화 하는 최적해는 다음의 수학식 7과 같은 닫힌 형태(closed form)로 얻어질 수 있다.
[수학식 7]
Figure 112018124346160-pat00020
일 실시 예에 따른 포인트 클라우드 생성 장치(100)는, 수학식 7로부터 로컬 평면을 획득함으로써, 균일한 색상을 가진 대상체 내부 영역의 변동 아티팩트(fluctuation artifact)를 효과적으로 제거할 수 있다. 그러나, 수학식 7로부터 로컬 평면을 획득하는 방법에 따르면, 복잡한 텍스쳐를 가진 대상체의 경우 텍스쳐에 따라서 텍스쳐 아티팩트(texture artifact)가 발생할 수 있다. 예를 들어, 대상체와 배경 사이의 경계 영역에서 색상 값의 차이가 적은 경우, 경계 영역의 엣지(edge)가 블러링(blur) 될 수 있다.
따라서, 본 개시의 일 실시 예에 따른 포인트 클라우드 생성 장치(100)는, 로컬 평면을 통해 예측된 깊이 값에 기초하여 가중치를 재계산하는 방법을 이용함으로써 이러한 한계를 해결할 수 있다. 본 개시의 일 실시 예에 따른 포인트 클라우드 생성 장치(100)는, 수학식 8에 따라 가중치를 재계산할 수 있다.
[수학식 8]
Figure 112018124346160-pat00021
수학식 8에서 σd는 예측된 깊이 값
Figure 112018124346160-pat00022
와 실제 깊이 값
Figure 112018124346160-pat00023
의 차이가 클수록 적은 가중치를 두기 위한 가우시안 함수의 표준편차를 의미한다. 예를 들어, σd는 0.05로 설정될 수 있다.
도 12를 참조하면, 포인트 클라우드 생성 장치(100)는, 색상 기반-가중치 맵(1115)에 기초하여 추정된 로컬 평면(1130)에 기초하여 깊이 맵(1201)을 예측할 수 있다. 포인트 클라우드 생성 장치(100)는, 예측된 깊이 맵(1201) 및 깊이 맵(1123)에 기초하여, 깊이 기반-가중치 맵(1203)을 다시 계산할 수 있다. 포인트 클라우드 생성 장치(100)는, 깊이 기반-가중치 맵(1203)에 기초하여 가중치를 갱신하고, 갱신된 가중치에 기초하여 로컬 평면을 다시 추정할 수 있다.
따라서, 본 개시의 일 실시 예에 따른 포인트 클라우드 생성 장치(100)에 의해 최종적으로 추정되는 로컬 평면은, 색상 차이를 고려하는 대신에 예측된 깊이 값의 정확도를 고려하여 획득된 가중치가 적용된 평면일 수 있다. 따라서, 포인트 클라우드 생성 장치(100)는, 텍스쳐 아티팩트를 방지하고, 대상체와 배경 간 경계의 불연속성(discontinuity)을 유지할 수 있다.
또한, 포인트 클라우드 생성 장치(100)는, 예측된 깊이 값의 정확도를 고려하여 가중치를 획득하는 과정을 반복적으로 수행할 수 있다. 포인트 클라우드 생성 장치(100)는, 매번 근사(fitting)를 수행할 때마다 획득된 로컬 평면을 사용하여 가중치를 재계산하고, 이전 반복(iteration)에서 얻어진 이차 곡면 방정식의 계수 벡터 ci -1 와 현재 반복(iteration)에서 얻어진 이차 곡면 방정식의 계수 벡터 ci의 L2 norm 차이가 ε이하가 되면 반복 수행을 종료할 수 있다.
일 실시 예에 따른 포인트 클라우드 생성 장치(100)는, 중심 픽셀과 인접한 주변 픽셀들의 좌표값들을 보간(interpolation)함으로써, 고해상도 깊이 영상의 좌표를 획득하고, 최종 로컬 평면을 사용하여 각 좌표에서의 깊이 값을 예측할 수 있다.
도 13을 참조하면, 포인트 클라우드 생성 장치(100)는, 깊이 기반-가중치 맵(1203)에 기초하여 추정된 로컬 평면(1303)에 기초하여 깊이 맵(1301)을 예측할 수 있다. 포인트 클라우드 생성 장치(100)는, 예측된 깊이 맵(1301) 및 깊이 맵(1123)에 기초하여, 깊이 기반-가중치 맵(1305)을 계산할 수 있다. 포인트 클라우드 생성 장치(100)는, 깊이 기반-가중치 맵(1305)에 기초하여 가중치를 갱신하고, 갱신된 가중치에 기초하여 로컬 평면을 다시 추정할 수 있다. 포인트 클라우드 생성 장치(100)는, 깊이 맵(1123)과 예측된 깊이 맵 간의 오차가 임계 범위 내에 포함될 때까지, 추정된 로컬 평면으로부터 깊이 맵을 예측하고, 깊이 기반-가중치 맵을 계산하고, 로컬 평면을 추정하는 과정을 반복하여 수행할 수 있다.
한편, 본 개시는 상술한 바와 같이 각 픽셀마다 로컬 평면을 추정하는 실시 예에 제한되지 않는다. 각 픽셀마다 로컬 평면을 추정함으로써 발생하는 높은 연산 복잡도를 줄이기 위하여, 깊이 영상을 복수의 영역들로 분할하고, 각 영역마다 하나의 로컬 평면을 추정하는 방법이 이용될 수 있다. 따라서, 처리 속도가 향상될 수 있다.
대상체와 배경 간의 명확한 색상 차이가 가정되는 경우, 일 실시 예에 따른 포인트 클라우드 생성 장치(100)는, 유사한 색상을 가진 영역들로 깊이 영상을 분할할 수 있다. 예를 들어, 포인트 클라우드 생성 장치(100)는, 색상 정보 영상에 대해서 SLIC superpixels(Simple Linear Iterative Clustering superpixels) 알고리즘을 적용하여 유사한 색상을 가진 영역들로 색상 정보 영상을 분할하고, 색상 정보 영상의 분할에 대응하여 깊이 영상을 분할할 수 있다.
예를 들어, 포인트 클라우드 생성 장치(100)는, 픽셀들의 색상 차이에 기초하여, 색상 정보 영상을
Figure 112018124346160-pat00024
개의 레이블(label)로 분할할 수 있다. 포인트 클라우드 생성 장치(100)는 각 레이블에 속한 픽셀들의 좌표값들과 깊이 값들에 기초하여 로컬 평면을 추정할 수 있다. 이 때, 로컬 평면의 중심 좌표는, 레이블에 속하는 픽셀들의 좌표 값들을 산술 평균 함으로써 획득될 수 있다.
로컬 평면을 추정하기 위하여, 앞서 도 11 내지 13을 참조하여 설명한 방법이 적용될 수 있다. 중복되는 설명은 생략된다. 포인트 클라우드 생성 장치(100)는, 각 레이블에 포함되는 픽셀들의 좌표 값들을 보간함으로써 보정된 깊이 영상을 획득할 수 있다.
한편, 서로 다른 시점에서 획득된 깊이 영상들을 조합함에 있어서, 겹침(overlap) 영역에서 노이즈가 발생될 수 있다. 본 개시의 일 실시 예에 따르면, 이러한 노이즈를 줄이기 위하여 TSDF(Truncated Surface Distance Function, 절삭 표면 거리 함수) 볼륨(volume)에 대해서 가중치를 할당하는 방법이 제안된다.
도 14를 참조하면, TSDF 볼륨(1403)은 3차원 공간(1401)을 일정한 간격으로 분할하여 복셀화 한 것으로, 각 복셀은 TSDF 값을 갖는다. TSDF 값은, 각 복셀을 소정 시점의 깊이 맵 상에 프로젝션(projection) 하였을 때, 프로젝션 된 픽셀이 나타내는 깊이 값과 복셀의 실제 깊이 값의 차이를 의미한다.
소정 시점에서 촬영된 깊이 맵에 기초하여 생성된 TSDF 볼륨의 TSDF 값은, 다른 시점에서 촬영된 깊이 맵에 기초하여 업데이트 될 수 있다. 종래 기술에 따르면, 소정 복셀이 깊이 맵 상에 프로젝션될 때마다 해당 복셀에 대한 가중치가 1씩 증가되고, TSDF 값은 각 시점에서 획득된 가중치 값들의 평균에 기초하여 업데이트될 수 있다.
깊이 맵의 특성상, 대상체의 형태적 변화가 급격한 영역 또는 대상체의 경계 영역에 대한 신뢰도가 떨어지고 노이즈가 발생할 수 있다. 본 개시의 일 실시 예에 따른 포인트 클라우드 생성 장치(100)는, 복셀이 깊이 맵 상에 프로젝션될 때 어떠한 영역에 프로젝션되는지에 따라, 복셀에 대한 가중치를 적응적으로 분배할 수 있다. 따라서, 포인트 클라우드 생성 장치(100)가 TSDF 값을 업데이트함에 있어서, 보다 높은 신뢰도를 갖는 TSDF 볼륨을 획득할 수 있다.
일 예로서, 포인트 클라우드 생성 장치(100)는, 깊이 맵의 특성에 따라서 깊이 값의 변화가 큰 영역에 대해서는 낮은 가중치를 할당하고, 깊이 값의 변화가 작은 영역에 대해서는 높은 가중치를 할당할 수 있다. 깊이 값의 변화량은 깊이 그래디언트(depth gradient)를 통해 얻을 수 있다.
다른 예로서, 포인트 클라우드 생성 장치(100)는, 도 15의 맵(1501)과 같이 대상체 분할(object segmentation)을 통해 획득된 실루엣(silhouette)을 거리 변환(distance transform)한 결과(1503)를 이용하여 가중치를 할당할 수 있다. 예를 들어, 포인트 클라우드 생성 장치(100)는, 대상체의 내부에는 높은 가중치를 할당하고, 대상체의 외부에는 낮은 가중치를 할당하고, 배경 영역에 대해서는 제로 가중치(zero weight)를 할당할 수 있다.
따라서, 본 개시의 다양한 실시 예들에 따른 포인트 클라우드 생성 장치(100)는, 각 복셀에 대한 TSDF 값을 단순 평균이 아닌 가중 평균을 사용하여 업데이트 함으로써, 깊이 값 노이즈에 강인한 TSDF 볼륨을 획득할 수 있다.
이하에서는, 도 16 및 17에 도시된 흐름도를 참조하여, 일 실시 예에 따른 포인트 클라우드 생성 장치(100)의 구체적인 동작 방법을 설명한다. 이하에서 서술하는 방법의 각 단계는, 상술한 포인트 클라우드 생성 장치(100)의 각 구성들에 의해 수행될 수 있으며, 중복되는 설명은 생략한다.
도 16은 본 개시의 다양한 실시 예들에 따라 포인트 클라우드를 생성하는 방법의 흐름도를 도시한다.
단계 S1601에서 일 실시 예에 포인트 클라우드 생성 장치(100)는, 대상체에 대한 색상 정보를 나타내는 색상 정보 영상 및 깊이 정보를 나타내는 깊이 영상을 획득할 수 있다. 포인트 클라우드 생성 장치(100)는, 복수의 카메라들로부터 대상체를 서로 다른 시점에서 캡쳐한 색상 정보 영상들 및 깊이 영상들을 획득할 수 있다.
단계 S1603에서 일 실시 예에 포인트 클라우드 생성 장치(100)는, 색상 정보 영상 및 깊이 영상으로부터 대상체를 나타내는 전경 영역을 검출할 수 있다.
단계 S1605에서 일 실시 예에 포인트 클라우드 생성 장치(100)는, 검출된 전경 영역 내에 포함되는 색상 정보 영상에 기초하여, 깊이 영상을 보정할 수 있다.
일 실시 예에 포인트 클라우드 생성 장치(100)는, 깊이 영상 내에 블록을 설정하고, 설정된 블록에 대한 로컬 평면을 재구성함으로써 깊이 영상을 보정할 수 있다. 예를 들어, 포인트 클라우드 생성 장치(100)는, 색상 정보 영상에 기초하여 유사한 색상을 갖는 영역들을 하나의 블록으로 설정하고, 설정된 블록에 대한 로컬 평면을 재구성할 수 있다. 또는, 포인트 클라우드 생성 장치(100)는, 각 픽셀마다 해당 픽셀을 중심으로 하는 일정한 크기의 블록을 설정하고, 해당 블록에 대한 로컬 평면을 재구성할 수 있다.
포인트 클라우드 생성 장치(100)는, 색상 정보 영상에 포함되는 블록 내의 픽셀들의 색상 정보에 기초하여, 픽셀들에 대한 색상 기반-가중치 맵을 생성할 수 있다. 포인트 클라우드 생성 장치(100)는, 블록에 포함되는 중심 픽셀로부터 다른 픽셀들까지의 거리 및 중심 픽셀의 색상 값과 다른 픽셀들의 색상 값들의 차이에 기초하여, 픽셀들에 대한 색상 기반-가중치를 계산할 수 있다.
포인트 클라우드 생성 장치(100)는, 깊이 영상 및 색상 기반-가중치 맵에 기초하여, 블록에 대응하는 로컬 평면을 추정할 수 있다. 포인트 클라우드 생성 장치(100)는, 색상 기반-가중치 맵에 기초하여, 깊이 영상과의 오차를 최소화하는 이차 곡면 평면을 로컬 평면으로서 추정할 수 있다.
포인트 클라우드 생성 장치(100)는, 깊이 영상 및 추정된 로컬 평면에 기초하여 깊이 기반-가중치 맵을 생성하고, 깊이 영상 및 깊이 기반-가중치 맵에 기초하여 로컬 평면을 추정하는 동작을 반복하여 수행할 수 있다. 포인트 클라우드 생성 장치(100)는, 깊이 영상 및 추정된 로컬 평면에 기초하여 깊이 기반-가중치 맵을 생성하고, 깊이 기반-가중치 맵에 기초하여, 깊이 영상과의 오차를 최소화하는 이차 곡면 평면을 로컬 평면으로서 추정할 수 있다.
포인트 클라우드 생성 장치(100)는, 깊이 영상과 추정된 로컬 평면 간의 오차가 임계 범위 내에 포함될 때까지, 깊이 기반-가중치 맵을 생성하는 단계 및 깊이 기반-가중치 맵에 기초하여 로컬 평면을 추정하는 단계를 반복할 수 있다.
포인트 클라우드 생성 장치(100)는, 로컬 평면을 추정하는 동작을 반복하여 수행한 결과에 기초하여 최종적으로 추정된 로컬 평면의 깊이 값들을 이용하여, 깊이 영상을 보정할 수 있다.
단계 S1607에서 일 실시 예에 포인트 클라우드 생성 장치(100)는, 색상 정보 영상 및 보정된 깊이 영상을 재구성함으로써, 대상체에 대한 포인트 클라우드를 생성할 수 있다.
포인트 클라우드 생성 장치(100)는, 보정된 깊이 영상으로부터 소정 개수의 픽셀들을 선택하고, 선택된 픽셀들에 대응하는 색상 값들을 색상 정보 영상으로부터 획득할 수 있다. 포인트 클라우드 생성 장치(100)는, 선택된 포인트들에 대한 깊이 값들과 색상 값들을 매칭시킴으로써, 소정 개수의 포인트들을 포함하는 포인트 클라우드를 생성할 수 있다.
일 실시 예에 따른 포인트 클라우드 생성 장치(100)는, 단계 S1605에서 획득된 고해상도 깊이 영상에 기초하여 포인트 클라우드를 생성함으로써, 원하는 개수의 포인트들을 포함하는 포인트 클라우드를 생성할 수 있다.
도 17은 본 개시의 다양한 실시 예들에 따라 깊이 영상을 보정하는 방법의 구체화된 흐름도를 도시한다.
단계 S1701에서 일 실시 예에 포인트 클라우드 생성 장치(100)는, 색상 정보 영상에 포함되는 블록 내의 픽셀들의 색상 정보에 기초하여, 픽셀들에 대한 색상 기반-가중치 맵을 생성할 수 있다. 포인트 클라우드 생성 장치(100)는, 블록에 포함되는 중심 픽셀로부터 다른 픽셀들까지의 거리 및 중심 픽셀의 색상 값과 다른 픽셀들의 색상 값들의 차이에 기초하여, 픽셀들에 대한 가중치를 계산할 수 있다.
단계 S1703에서 일 실시 예에 따른 포인트 클라우드 생성 장치(100)는, 깊이 영상 및 색상 기반-가중치 맵에 기초하여, 블록에 대응하는 로컬 평면을 추정할 수 있다. 포인트 클라우드 생성 장치(100)는, 색상 기반-가중치 맵에 기초하여, 깊이 영상과의 오차를 최소화하는 이차 곡면 평면을 로컬 평면으로서 추정할 수 있다.
단계 S1705에서 일 실시 예에 따른 포인트 클라우드 생성 장치(100)는, 깊이 영상 및 추정된 로컬 평면에 기초하여 깊이 기반-가중치 맵을 생성할 수 있다. 포인트 클라우드 생성 장치(100)는, 단계 S1704에서 추정된 로컬 평면에 기초하여 깊이 맵을 예측할 수 있다. 포인트 클라우드 생성 장치(100)는, 예측된 깊이 맵 및 깊이 영상에 기초하여, 깊이 기반-가중치 맵을 생성할 수 있다.
단계 S1707에서 일 실시 예에 따른 포인트 클라우드 생성 장치(100)는, 깊이 영상 및 깊이 기반-가중치 맵에 기초하여 로컬 평면을 추정할 수 있다. 포인트 클라우드 생성 장치(100)는, 깊이 기반-가중치 맵에 기초하여, 깊이 영상과의 오차를 최소화하는 이차 곡면 평면을 로컬 평면으로서 추정할 수 있다.
단계 S1709에서 일 실시 예에 따른 포인트 클라우드 생성 장치(100)는, 깊이 영상과 추정된 로컬 평면 간의 오차가 임계 범위 내에 포함되는지 여부를 판단할 수 있다. 일 실시 예에 따른 포인트 클라우드 생성 장치(100)는, 깊이 영상과 추정된 로컬 평면 간의 오차가 임계 범위 내에 포함되지 않으면, 단계 S1705 및 S1707을 반복하여 수행한다. 깊이 영상과 추정된 로컬 평면 간의 오차가 임계 범위 내에 포함되면, 단계 S1711에서 일 실시 예에 따른 포인트 클라우드 생성 장치(100)는, 최종적으로 추정된 로컬 평면의 깊이 값들을 이용하여, 깊이 영상을 보정할 수 있다.
개시된 실시예들은 컴퓨터로 읽을 수 있는 저장 매체(computer-readable storage media)에 저장된 명령어를 포함하는 S/W 프로그램으로 구현될 수 있다.
컴퓨터는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 개시된 실시예에 따른 동작이 가능한 장치로서, 개시된 실시예들에 따른 영상 전송 장치 및 영상 수신 장치를 포함할 수 있다.
컴퓨터로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, ‘비일시적’은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
또한, 개시된 실시예들에 따른 전자 장치 또는 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다.
컴퓨터 프로그램 제품은 S/W 프로그램, S/W 프로그램이 저장된 컴퓨터로 읽을 수 있는 저장 매체를 포함할 수 있다. 예를 들어, 컴퓨터 프로그램 제품은 전자 장치의 제조사 또는 전자 마켓(예, 구글 플레이 스토어, 앱 스토어)을 통해 전자적으로 배포되는 S/W 프로그램 형태의 상품(예, 다운로더블 앱)을 포함할 수 있다. 전자적 배포를 위하여, S/W 프로그램의 적어도 일부는 저장 매체에 저장되거나, 임시적으로 생성될 수 있다. 이 경우, 저장 매체는 제조사의 서버, 전자 마켓의 서버, 또는 SW 프로그램을 임시적으로 저장하는 중계 서버의 저장매체가 될 수 있다.
컴퓨터 프로그램 제품은, 서버 및 단말(예로, 영상 획득 장치, 영상 수신 장치, 영상 전송 장치 또는 영상 처리 장치)로 구성되는 시스템에서, 서버의 저장매체 또는 단말의 저장매체를 포함할 수 있다. 또는, 서버 또는 단말과 통신 연결되는 제3 장치(예, 스마트폰)가 존재하는 경우, 컴퓨터 프로그램 제품은 제3 장치의 저장매체를 포함할 수 있다. 또는, 컴퓨터 프로그램 제품은 서버로부터 단말 또는 제3 장치로 전송되거나, 제3 장치로부터 단말로 전송되는 S/W 프로그램 자체를 포함할 수 있다.
이 경우, 서버, 단말 및 제3 장치 중 하나가 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 수행할 수 있다. 또는, 서버, 단말 및 제3 장치 중 둘 이상이 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 분산하여 실시할 수 있다.
예를 들면, 서버(예로, 클라우드 서버 또는 인공 지능 서버 등)가 서버에 저장된 컴퓨터 프로그램 제품을 실행하여, 서버와 통신 연결된 단말이 개시된 실시예들에 따른 방법을 수행하도록 제어할 수 있다.
또 다른 예로, 제3 장치가 컴퓨터 프로그램 제품을 실행하여, 제3 장치와 통신 연결된 단말이 개시된 실시예에 따른 방법을 수행하도록 제어할 수 있다. 구체적인 예로, 제3 장치는 영상 전송 장치 또는 영상 수신 장치를 원격 제어하여, 패킹 영상을 전송 하거나 수신하도록 제어할 수 있다.
제3 장치가 컴퓨터 프로그램 제품을 실행하는 경우, 제3 장치는 서버로부터 컴퓨터 프로그램 제품을 다운로드하고, 다운로드된 컴퓨터 프로그램 제품을 실행할 수 있다. 또는, 제3 장치는 프리로드된 상태로 제공된 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 수행할 수도 있다.

Claims (21)

  1. 대상체에 대한 색상 정보를 나타내는 색상 정보 영상 및 깊이 정보를 나타내는 깊이 영상을 획득하는 단계;
    상기 색상 정보 영상 및 상기 깊이 영상으로부터 상기 대상체를 나타내는 영역을 검출하는 단계;
    상기 검출된 영역 내에 포함되는 상기 색상 정보 영상에 기초하여, 상기 깊이 영상을보정하는 단계; 및
    상기 색상 정보 영상 및 상기 보정된 깊이 영상을 재구성함으로써, 상기 대상체에 대한 포인트 클라우드를 생성하는 단계를 포함하고,
    상기 깊이 영상을 보정하는 단계는,
    상기 색상 정보 영상에 포함되는 블록 내의 픽셀들의 색상 정보에 기초하여, 상기 픽셀들에 대한 색상 기반-가중치 맵을 생성하는 단계;
    상기 깊이 영상 및 상기 색상 기반-가중치 맵에 기초하여, 상기 블록에 대응하는 로컬 평면을 추정하는 단계;
    상기 깊이 영상 및 상기 추정된 로컬 평면에 기초하여 깊이 기반-가중치 맵을 생성하고, 상기 깊이 영상 및 상기 깊이 기반-가중치 맵에 기초하여 로컬 평면을 추정하는 동작을 반복하여 수행하는 단계; 및
    상기 로컬 평면을 추정하는 동작을 반복하여 수행한 결과에 기초하여 최종적으로 추정된 로컬 평면의 깊이 값들을 이용하여, 상기 깊이 영상을 보정하는 단계를 포함하는, 포인트 클라우드 생성 방법.
  2. 삭제
  3. 제1 항에 있어서,
    상기 픽셀들에 대한 색상 기반-가중치 맵을 생성하는 단계는,
    상기 블록에 포함되는 중심 픽셀로부터 다른 픽셀들까지의 거리 및 상기 중심 픽셀의 색상 값과 다른 픽셀들의 색상 값들의 차이에 기초하여, 상기 픽셀들에 대한 가중치를 계산하는 단계를 포함하는, 포인트 클라우드 생성 방법.
  4. 제1 항에 있어서,
    상기 깊이 영상 및 상기 색상 기반-가중치 맵에 기초하여, 상기 블록에 대응하는 로컬 평면을 추정하는 단계는,
    상기 색상 기반-가중치 맵에 기초하여, 상기 깊이 영상과의 오차를 최소화하는 이차 곡면 평면을 상기 로컬 평면으로서 추정하는 단계를 포함하는, 포인트 클라우드 생성 방법.
  5. 제1 항에 있어서,
    상기 깊이 기반-가중치 맵을 생성하고 상기 로컬 평면을 추정하는 동작을 반복하여 수행하는 단계는,
    상기 깊이 영상 및 상기 추정된 로컬 평면에 기초하여 상기 깊이 기반-가중치 맵을 생성하는 단계;
    상기 깊이 기반-가중치 맵에 기초하여, 상기 깊이 영상과의 오차를 최소화하는 이차 곡면 평면을 상기 로컬 평면으로서 추정하는 단계; 및
    상기 깊이 영상과 상기 추정된 로컬 평면 간의 오차가 임계 범위 내에 포함될 때까지, 상기 깊이 기반-가중치 맵을 생성하는 단계 및 상기 깊이 기반-가중치 맵에 기초하여 상기 로컬 평면을 추정하는 단계를 반복하는 단계를 포함하는, 포인트 클라우드 생성 방법.
  6. 제1 항에 있어서,
    상기 깊이 영상을 보정하는 단계는,
    상기 색상 정보 영상을 픽셀의 색상 정보에 기초하여, 복수의 블록들로 분할하는 단계; 및
    상기 복수의 블록들 중 하나인 상기 블록에 포함되는 픽셀들의 좌표 값들의 산술 평균값을 갖는 픽셀을 중심 픽셀로서 결정하는 단계를 더 포함하는, 포인트 클라우드 생성 방법.
  7. 제1 항에 있어서,
    상기 포인트 클라우드를 생성하는 단계는,
    상기 보정된 깊이 영상으로부터 소정 개수의 픽셀들을 선택하는 단계;
    상기 색상 정보 영상으로부터 상기 선택된 픽셀들에 대응하는 색상 값들을 획득하는 단계;
    상기 선택된 픽셀들에 대한 깊이 값들과 상기 색상 값들을 매칭시킴으로써, 상기 소정 개수의 픽셀들을 포함하는 상기 포인트 클라우드를 생성하는 단계를 포함하는, 포인트 클라우드 생성 방법.
  8. 제1 항에 있어서,
    상기 대상체에 대한 색상 정보 영상 및 깊이 영상을 획득하는 복수의 카메라들 각각의 좌표계를 공통 좌표계로 변환하기 위한, 회전 정보(rotation information) 및 이동 정보(translation information)를 획득하는 캘리브레이션 단계를 더 포함하는, 포인트 클라우드 생성 방법.
  9. 제1 항에 있어서,
    상기 색상 정보 영상 및 상기 깊이 영상을 획득하는 단계는,
    복수의 카메라들을 통해서 상기 대상체에 대한 복수의 색상 정보 영상 프레임 세트들 및 깊이 영상 프레임 세트들을 캡쳐하는 단계;
    상기 복수의 색상 정보 영상 프레임 세트들 및 깊이 영상 프레임 세트들을 캡쳐하는 동시에, 상기 복수의 카메라들을 통해서 오디오 신호들을 녹음하는 단계; 및
    상기 복수의 카메라들에서 녹음된 상기 오디오 신호들 간의 상관 관계(cross correlation)에 기초하여, 상기 복수의 색상 정보 영상 프레임 세트들 및 깊이 영상 프레임 세트들을 동기화(synchronization)하는 단계를 포함하는, 포인트 클라우드 생성 방법.
  10. 제1 항에 있어서,
    상기 대상체를 나타내는 영역을 검출하는 단계는,
    상기 대상체가 없는 배경을 캡쳐한 배경 색상 영상으로부터 상기 색상 정보 영상을 제한 색상 차 영상(color difference image)을 획득하는 단계;
    상기 대상체가 없는 배경을 캡쳐한 배경 깊이 영상으로부터 상기 깊이 영상을 제한 깊이 차 영상(depth difference image)을 획득하는 단계; 및
    상기 색상 차 영상 및 상기 깊이 차 영상을 조합함으로써, 상기 대상체를 나타내는 영역을 결정하는 단계를 포함하는, 포인트 클라우드 생성 방법.
  11. 복수의 카메라들로부터 대상체에 대한 색상 정보를 나타내는 색상 정보 영상 및 깊이 정보를 나타내는 깊이 영상을 획득하는, 통신부; 및
    상기 색상 정보 영상 및 상기 깊이 영상으로부터 상기 대상체를 나타내는 영역을 검출하고,
    상기 검출된 영역 내에 포함된 상기 색상 정보 영상에 포함되는 블록 내의 픽셀들의 색상 정보에 기초하여, 상기 픽셀들에 대한 색상 기반-가중치 맵을 생성하고,
    상기 깊이 영상 및 상기 색상 기반-가중치 맵에 기초하여, 상기 블록에 대응하는 로컬 평면을 추정하고,
    상기 깊이 영상 및 상기 추정된 로컬 평면에 기초하여 깊이 기반-가중치 맵을 생성하는 동작 및 상기 깊이 영상 및 상기 깊이 기반-가중치 맵에 기초하여 로컬 평면을 추정하는 동작을 반복하여 수행하고,
    상기 로컬 평면을 추정하는 동작을 반복하여 수행한 결과에 기초하여 최종적으로 추정된 로컬 평면의 깊이 값들을 이용하여, 상기 깊이 영상을 보정하고,
    상기 색상 정보 영상 및 상기 보정된 깊이 영상을 재구성함으로써, 상기 대상체에 대한 포인트 클라우드를 생성하는, 적어도 하나의 프로세서를 포함하는, 포인트 클라우드 생성 장치.
  12. 삭제
  13. 제11 항에 있어서,
    상기 적어도 하나의 프로세서는, 상기 픽셀들에 대한 색상 기반-가중치 맵을 생성함에 있어서,
    상기 블록에 포함되는 중심 픽셀로부터 다른 픽셀들까지의 거리 및 상기 중심 픽셀의 색상 값과 다른 픽셀들의 색상 값들의 차이에 기초하여, 상기 픽셀들에 대한 가중치를 계산하는 것을 특징으로 하는, 포인트 클라우드 생성 장치.
  14. 제11 항에 있어서,
    상기 적어도 하나의 프로세서는, 상기 깊이 영상 및 상기 색상 기반-가중치 맵에 기초하여 상기 블록에 대응하는 로컬 평면을 추정함에 있어서,
    상기 색상 기반-가중치 맵에 기초하여, 상기 깊이 영상과의 오차를 최소화하는 이차 곡면 평면을 상기 로컬 평면으로서 추정하는 것을 특징으로 하는, 포인트 클라우드 생성 장치.
  15. 제11 항에 있어서,
    상기 적어도 하나의 프로세서는, 상기 깊이 기반-가중치 맵을 생성하는 동작 및 상기 로컬 평면을 추정하는 동작을 반복하여 수행함에 있어서,
    상기 깊이 영상 및 상기 추정된 로컬 평면에 기초하여 상기 깊이 기반-가중치 맵을 생성하고,
    상기 깊이 기반-가중치 맵에 기초하여, 상기 깊이 영상과의 오차를 최소화하는 이차 곡면 평면을 상기 로컬 평면으로서 추정하고,
    상기 깊이 영상과 상기 추정된 로컬 평면 간의 오차가 임계 범위 내에 포함될 때까지, 상기 깊이 기반-가중치 맵을 생성하는 동작 및 상기 깊이 기반-가중치 맵에 기초하여 상기 로컬 평면을 추정하는 동작을 반복하는 것을 특징으로 하는, 포인트 클라우드 생성 장치.
  16. 제11 항에 있어서,
    상기 적어도 하나의 프로세서는, 상기 깊이 영상을 보정함에 있어서,
    상기 색상 정보 영상을 픽셀의 색상 정보에 기초하여, 복수의 블록들로 분할하고,
    상기 복수의 블록들 중 하나인 상기 블록에 포함되는 픽셀들의 좌표 값들의 산술 평균값을 갖는 픽셀을 중심 픽셀로서 결정하는 것을 특징으로 하는, 포인트 클라우드 생성 장치.
  17. 제11 항에 있어서,
    상기 적어도 하나의 프로세서는, 상기 포인트 클라우드를 생성함에 있어서,
    상기 보정된 깊이 영상으로부터 소정 개수의 픽셀들을 선택하고, 상기 색상 정보 영상으로부터 상기 선택된 픽셀들에 대응하는 색상 값들을 획득하고,
    상기 선택된 픽셀들에 대한 깊이 값들과 상기 색상 값들을 매칭시킴으로써, 상기 소정 개수의 픽셀들을 포함하는 상기 포인트 클라우드를 생성하는 것을 특징으로 하는, 포인트 클라우드 생성 장치.
  18. 제11 항에 있어서,
    상기 적어도 하나의 프로세서는, 상기 대상체에 대한 색상 정보 영상 및 깊이 영상을 획득하는 복수의 카메라들 각각의 좌표계를 공통 좌표계로 변환하기 위한, 회전 정보(rotation information) 및 이동 정보(translation information)를 획득하는 캘리브레이션을 수행하는 것을 특징으로 하는, 포인트 클라우드 생성 장치.
  19. 제11 항에 있어서,
    상기 통신부는, 상기 색상 정보 영상 및 상기 깊이 영상을 획득함에 있어서,
    복수의 카메라들을 통해서 상기 대상체에 대한 복수의 색상 정보 영상 프레임 세트들 및 깊이 영상 프레임 세트들을 캡쳐하고,
    상기 복수의 색상 정보 영상 프레임 세트들 및 깊이 영상 프레임 세트들을 캡쳐하는 동시에, 상기 복수의 카메라들을 통해서 오디오 신호들을 녹음하고,
    상기 적어도 하나의 프로세서는,
    상기 복수의 카메라들에서 녹음된 상기 오디오 신호들 간의 상관 관계(cross correlation)에 기초하여, 상기 복수의 색상 정보 영상 프레임 세트들 및 깊이 영상 프레임 세트들을 동기화(synchronization)하는 것을 특징으로 하는, 포인트 클라우드 생성 장치.
  20. 제11 항에 있어서,
    상기 적어도 하나의 프로세서는, 상기 대상체를 나타내는 영역을 검출함에 있어서,
    상기 대상체가 없는 배경을 캡쳐한 배경 색상 영상으로부터 상기 색상 정보 영상을 제한 색상 차 영상(color difference image)을 획득하고, 상기 대상체가 없는 배경을 캡쳐한 배경 깊이 영상으로부터 상기 깊이 영상을 제한 깊이 차 영상(depth difference image)을 획득하고, 상기 색상 차 영상 및 상기 깊이 차 영상을 조합함으로써, 상기 대상체를 나타내는 영역을 결정하는 것을 특징으로 하는, 포인트 클라우드 생성 장치.
  21. 제1 항 또는 3항 내지 제10 항 중 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
KR1020180159431A 2018-12-11 2018-12-11 포인트 클라우드를 생성하는 방법 및 장치 KR102525030B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180159431A KR102525030B1 (ko) 2018-12-11 2018-12-11 포인트 클라우드를 생성하는 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180159431A KR102525030B1 (ko) 2018-12-11 2018-12-11 포인트 클라우드를 생성하는 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20200071565A KR20200071565A (ko) 2020-06-19
KR102525030B1 true KR102525030B1 (ko) 2023-04-24

Family

ID=71137385

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180159431A KR102525030B1 (ko) 2018-12-11 2018-12-11 포인트 클라우드를 생성하는 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102525030B1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111784834B (zh) * 2020-06-24 2024-06-18 阿波罗智能技术(北京)有限公司 一种点云地图生成方法、装置以及电子设备
KR102665543B1 (ko) * 2021-02-22 2024-05-16 한국전자통신연구원 다시점 영상으로부터의 깊이지도 생성 장치 및 방법
KR102401831B1 (ko) * 2021-02-23 2022-05-24 한남대학교 산학협력단 Rgbd 센서를 이용한 3d 모델복원 방법
KR20230034782A (ko) * 2021-09-03 2023-03-10 삼성전자주식회사 깊이 센서를 이용하여 깊이 맵을 생성하는 증강 현실 디바이스 및 방법
KR102393345B1 (ko) * 2021-12-28 2022-05-02 주식회사 맥스트 3차원 점군 처리 시스템 및 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015029934A1 (ja) * 2013-08-30 2015-03-05 クラリオン株式会社 カメラ校正装置、カメラ校正システム、及びカメラ校正方法
KR101721085B1 (ko) * 2016-05-02 2017-03-29 고려대학교 산학협력단 촬영 장치 및 센서의 시간 동기화 장치 및 방법
US20170372479A1 (en) * 2016-06-23 2017-12-28 Intel Corporation Segmentation of objects in videos using color and depth information

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015029934A1 (ja) * 2013-08-30 2015-03-05 クラリオン株式会社 カメラ校正装置、カメラ校正システム、及びカメラ校正方法
KR101721085B1 (ko) * 2016-05-02 2017-03-29 고려대학교 산학협력단 촬영 장치 및 센서의 시간 동기화 장치 및 방법
US20170372479A1 (en) * 2016-06-23 2017-12-28 Intel Corporation Segmentation of objects in videos using color and depth information

Also Published As

Publication number Publication date
KR20200071565A (ko) 2020-06-19

Similar Documents

Publication Publication Date Title
KR102525030B1 (ko) 포인트 클라우드를 생성하는 방법 및 장치
KR102431117B1 (ko) 포인트 클라우드 맵핑
KR101554241B1 (ko) 3차원 이미지에서의 결함성 픽셀 깊이 데이터 값의 깊이 맵 품질 향상을 위한 방법
US9269003B2 (en) Diminished and mediated reality effects from reconstruction
US20200250798A1 (en) Three-dimensional model encoding device, three-dimensional model decoding device, three-dimensional model encoding method, and three-dimensional model decoding method
CN109690620B (zh) 三维模型生成装置以及三维模型生成方法
RU2426172C1 (ru) Способ и система выделения данных об изображении объекта переднего плана на основе данных о цвете и глубине
JP7003994B2 (ja) 画像処理装置および方法
KR101195942B1 (ko) 카메라 보정 방법 및 이를 이용한 3차원 물체 재구성 방법
US9189859B2 (en) 3D image generation
WO2019101061A1 (en) Three-dimensional (3d) reconstructions of dynamic scenes using reconfigurable hybrid imaging system
US11328479B2 (en) Reconstruction method, reconstruction device, and generation device
CN111480342B (zh) 编码装置、编码方法、解码装置、解码方法和存储介质
EP3633606A1 (en) Information processing device, information processing method, and program
US10346949B1 (en) Image registration
EP2800055A1 (en) Method and system for generating a 3D model
Knorr et al. Stereoscopic 3D from 2D video with super-resolution capability
CN113763544A (zh) 图像确定方法、装置、电子设备和计算机可读存储介质
JP7170230B2 (ja) 三次元再構成方法及び三次元再構成装置
US20240054667A1 (en) High dynamic range viewpoint synthesis
US20220245885A1 (en) Volumetric Imaging
CN114913287A (zh) 一种三维人体模型重建方法及***
JP2015033047A (ja) 複数カメラを用いた奥行き推定装置
KR20220085694A (ko) 시퀀스의 압축을 위한 스켈레톤 기반의 동적 포인트 클라우드 추정 시스템
US20230009413A1 (en) Analysis apparatus, communication system, non-transitory computer readable medium

Legal Events

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