KR102577135B1 - 시퀀스의 압축을 위한 스켈레톤 기반의 동적 포인트 클라우드 추정 시스템 - Google Patents

시퀀스의 압축을 위한 스켈레톤 기반의 동적 포인트 클라우드 추정 시스템 Download PDF

Info

Publication number
KR102577135B1
KR102577135B1 KR1020210062187A KR20210062187A KR102577135B1 KR 102577135 B1 KR102577135 B1 KR 102577135B1 KR 1020210062187 A KR1020210062187 A KR 1020210062187A KR 20210062187 A KR20210062187 A KR 20210062187A KR 102577135 B1 KR102577135 B1 KR 102577135B1
Authority
KR
South Korea
Prior art keywords
point cloud
skeleton
mesh
frame
estimation system
Prior art date
Application number
KR1020210062187A
Other languages
English (en)
Other versions
KR20220085694A (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 US17/332,545 priority Critical patent/US11734891B2/en
Publication of KR20220085694A publication Critical patent/KR20220085694A/ko
Application granted granted Critical
Publication of KR102577135B1 publication Critical patent/KR102577135B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • G06T7/251Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving models
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • 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
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20036Morphological image processing
    • G06T2207/20044Skeletonization; Medial axis transform

Abstract

포인트 클라우드 프레임 군에서 3차원 스켈레톤 및 그 움직임 벡터를 생성하여 다음 프레임의 포인트 클라우드를 추정하고, 추정된 포인트 클라우드와 원래의 포인트 클라우드 사이의 잔차을 구하여 포인트 클라우드 시퀀스를 압축하는, 시퀀스의 압축을 위한 스켈레톤 기반의 동적 포인트 클라우드 추정 시스템에 관한 것으로서, 스켈레톤 움직임 벡터로 포인트 클라우드를 추정하여 원래 값과의 차이를 잔차로 시퀀스를 압축함으로써, 압축기에 입력될 포인트 클라우드의 양을 현저히 축소할 수 있고, 이를 통해, 압축 효율을 향상시킬 수 있다.

Description

시퀀스의 압축을 위한 스켈레톤 기반의 동적 포인트 클라우드 추정 시스템 { A skeleton-based dynamic point cloud estimation system for sequence compression }
본 발명은 3차원 스켈레톤을 이용하여 동적 포인트 클라우드 사이의 상관 관계를 유추하고, 포인트 클라우드 프레임들에서 추출된 스켈레톤들을 비교하여 스켈레톤의 움직임 벡터를 생성하고, 움직임 벡터로 이전 프레임의 포인트 클라우드를 리깅하고 변형(deformation)하여 다음 프레임의 포인트 클라우드를 추정하는, 시퀀스의 압축을 위한 스켈레톤 기반의 동적 포인트 클라우드 추정 시스템에 관한 것이다.
또한, 본 발명은 포인트 클라우드 프레임 군에서 3차원 스켈레톤 및 그 움직임 벡터를 생성하여 다음 프레임의 포인트 클라우드를 추정하고, 추정된(estimated) 포인트 클라우드와 원래의 포인트 클라우드 사이의 잔차(residual)을 구하여 포인트 클라우드 시퀀스를 압축하는, 시퀀스의 압축을 위한 스켈레톤 기반의 동적 포인트 클라우드 추정 시스템에 관한 것이다.
최근 가상현실(Virtual Reality), 증강현실(Argumented Reality) 산업이 활성화 되면서, 여러 시점에서 실감넘치는 경험을 제공해주는 3D 비디오 콘텐츠 기술 개발 또한 활발하게 이뤄지고 있다. 3D 비디오 콘텐츠는 게임 분야부터 영상서비스, 의료분야, 교육분야 등등 여러 응용분야에 적용되고 있으며, 한 사용자가 생성한 3D 데이터가 어떤 장치를 통해 소비될 때, 데이터의 원활한 전송 및 저장을 위해 압축, 복원 관련 기술이 중요한 이슈로 부각되고 있다.
가상의 객체를 위한 대표적인 3D 데이터로 물체의 표면을 점의 형태로 표현하는 포인트클라우드(Point cloud)가 있다. 이 데이터는 각 포인트에 대한 3차원 좌표 정보와 텍스쳐 좌표 정보가 기본적으로 들어있고, 적용되는 분야에 따라 색상 정보, 법선 정보, 맵 정보 등이 추가적으로 구성된다. 이 데이터는 정보의 시각화를 위해 수십만 또는 수백만개의 포인트를 사용하기 때문에 기존의 2D 영상에 비해 훨씬 많은 비트를 요구하여 압축과 복원기술이 필수적이다[비특허문헌 1][비특허문헌 2].
기존의 동적인 포인트 클라우드 압축 관련 연구는 첫 번째로 2D 영상화하여 비디오 코덱을 이용하여 압축하는 방법이 있다[비특허문헌 3]. 3D 데이터를 2D데이터로 변환하기 위해 투영하는 과정이 필요하다. 특정 평면에 투영하기 위해 객체를 포함하는 직육면체의 박스를 설정하고 각 포인트는 공간상의 위치와 법선 벡터 정보를 이용하여 클러스터링 되어 패치로 분할한다. 각 패치는 가장 가까운 평면에 투영하고 이것은 직사각형 아틀라스에 배치한다. 한 프레임당 기하학 정보가 담긴 영상과 텍스쳐 정보가 담긴 두 개의 영상이 출력되고 이 시퀀스는 비디오 코덱을 통해 압축된다[비특허문헌 3].
다음으로는 옥트리를 사용한 포인트 클라우드 압축 방법이 있다. SVO(Sparse Voxel Octrees)는 3D 객체의 기하학표현을 위해 처음 사용되었지만, 포인트 클라우드의 옥트리 직렬화(octree serialization)를 이용하여 압축에도 사용되었다. 인트라(intra) 코딩에는 포인트 클라우드의 공간적으로 중복되는 포인트를 제거하여 데이터량을 줄이고, 인트라(intra) 코딩에서는 프레임 간의 옥트리 직렬화(octree serialization) 스트림의 XOR 연산을 통해 시간적으로 중복되는 포인트를 처리하여 압축한다.
시퀀스 압축 성능을 높이는데 중요한 역할을 하는 움직임 예측 및 보상 알고리즘도 포인트 클라우드 데이터에 적용할 수 있다. 포인트 클라우드 모션 추정 알고리즘으로는 복셀 블럭으로 포인트 클라우드를 분할하여 인트라(intra) 코딩된 프레임에서 대체할만한 복셀 블럭과의 움직임 벡터를 이용하여 움직임 추정을 한다. 또 다른 방법으로 포인트클라우드의 3D 좌표 및 색상신호를 정점 신호로 두고 그래프화 하고, 스펙트럴 그래프 웨이블릿 디스크립터(spectral graph wavelet descriptors)를 사용하여 모션 추정을 수행한다.
Pavez, Eduardo, et al. "Dynamic polygon clouds: Representation and compression for VR/AR." APSIPA Transactions on Signal and Information Processing 7 (2018). Kammerl, Julius, et al. "Real-time compression of point cloud streams." 2012 IEEE International Conference on Robotics and Automation. IEEE, 2012. Schwarz, Sebastian, et al. "Emerging MPEG standards for point cloud compression." IEEE Journal on Emerging and Selected Topics in Circuits and Systems 9.1 (2018): 133-148. Shlens, Jonathon. "A tutorial on principal component analysis." arXiv preprint arXiv:1404.1100 (2014). Cao, Zhe, et al. "OpenPose: realtime multi-person 2D pose estimation using Part Affinity Fields." arXiv preprint arXiv:1812.08008 (2018).
본 발명의 목적은 상술한 바와 같은 문제점을 해결하기 위한 것으로, 3차원 스켈레톤을 이용하여 동적 포인트 클라우드 사이의 상관 관계를 유추하고, 포인트 클라우드 프레임들에서 추출된 스켈레톤들을 비교하여 스켈레톤의 움직임 벡터를 생성하고, 움직임 벡터로 이전 프레임의 포인트 클라우드를 리깅하고 변형(deformation)하여 다음 프레임의 포인트 클라우드를 추정하는, 시퀀스의 압축을 위한 스켈레톤 기반의 동적 포인트 클라우드 추정 시스템을 제공하는 것이다.
또한, 본 발명의 목적은 포인트 클라우드 프레임 군에서 3차원 스켈레톤 및 그 움직임 벡터를 생성하여 다음 프레임의 포인트 클라우드를 추정하고, 추정된(estimated) 포인트 클라우드와 원래의 포인트 클라우드 사이의 잔차(residual)을 구하여 포인트 클라우드 시퀀스를 압축하는, 시퀀스의 압축을 위한 스켈레톤 기반의 동적 포인트 클라우드 추정 시스템을 제공하는 것이다.
상기 목적을 달성하기 위해 본 발명은 시퀀스의 압축을 위한 스켈레톤 기반의 동적 포인트 클라우드 추정 시스템에 관한 것으로서, 다시점 색상-깊이 영상의 연속된 프레임을 획득하는 프레임 획득부; 다시점 프레임으로부터 3차원 포인트 클라우드를 획득하는 점군 획득부; 3차원 포인트 클라우드로부터 3차원 스켈레톤을 추출하는 스켈레톤 추출부; 3차원 포인트 클라우드를 메쉬로 변환하는 메쉬 변환부; 프레임이 키프레임이면, 해당 프레임의 메쉬를 해당 프레임의 3차원 스켈레톤으로 리깅하는 메쉬 리깅부; 프레임이 비키프레임인 경우, 해당 프레임과 키프레임의 3차원 스켈레톤들로부터 움직임 벡터를 추출하는 움직임 추출부; 상기 움직임 벡터를 이용하여 키프레임의 메쉬를 변형하는 메쉬 변형부; 및, 비키프레임의 메쉬와 변형된 메쉬 간의 잔차를 산출하는 잔차 산출부를 포함하는 것을 특징으로 한다.
또, 본 발명은 시퀀스의 압축을 위한 스켈레톤 기반의 동적 포인트 클라우드 추정 시스템에 있어서, 상기 점군 획득부는 각 시점의 색상-깊이 영상에서 각 시점의 포인트 클라우드를 생성하고, 각 시점의 카메라 파라미터를 이용하여 각 시점의 포인트 클라우드를 정합하여 통합된 3차원 포인트 클라우드를 획득하는 것을 특징으로 한다.
또, 본 발명은 시퀀스의 압축을 위한 스켈레톤 기반의 동적 포인트 클라우드 추정 시스템에 있어서, 상기 스켈레톤 추출부는 통합된 3차원 포인트 클라우드에 대하여 다수의 방향으로 투영하여 투영 영상을 획득하고, 각 투영 영상에서 2차원 스켈레톤 영상을 획득하고, 이를 복원하여 3차원 스켈레톤을 생성하는 것을 특징으로 한다.
또, 본 발명은 시퀀스의 압축을 위한 스켈레톤 기반의 동적 포인트 클라우드 추정 시스템에 있어서, 상기 스켈레톤 추출부는 각 투영 영상을 오픈포즈(OpenPose) 라이브러리에 적용하여 2차원 스켈레톤 영상을 획득하는 것을 특징으로 한다.
또, 본 발명은 시퀀스의 압축을 위한 스켈레톤 기반의 동적 포인트 클라우드 추정 시스템에 있어서, 상기 스켈레톤 추출부는 상기 통합된 3차원 포인트 클라우드에 주성분 분석을 적용하여 정면을 찾고, 객체의 정면이 축 방향과 평행하도록 객체를 회전시키고, 상기 객체에 AABB(Axis-aligned Bounding Box) 박스를 설정하고, AABB 박스의 각 측면의 평면 상으로 투영하고, 투영 영상에서 2차원 스켈레톤 영상을 획득한 후, 2차원 스켈레톤 영상을 복원하고 복원된 영상의 각 마디(joint)로부터 중심으로 직선을 연결하여 교차지점을 형성하고, 교차지점을 평균하여 3차원 지표를 갖는 마디(joint)를 구하는 것을 특징으로 한다.
또, 본 발명은 시퀀스의 압축을 위한 스켈레톤 기반의 동적 포인트 클라우드 추정 시스템에 있어서, 상기 메쉬 변환부는 통합된 3차원 포인트 클라우드를 양자화 하고, 양자화된 포인트 클라우드를 메쉬로 변환하는 것을 특징으로 한다.
또, 본 발명은 시퀀스의 압축을 위한 스켈레톤 기반의 동적 포인트 클라우드 추정 시스템에 있어서, 상기 메쉬 변환부는 옥트리 구조를 이용하여 포인트 클라우드 양자화 하는 것을 특징으로 한다.
또, 본 발명은 시퀀스의 압축을 위한 스켈레톤 기반의 동적 포인트 클라우드 추정 시스템에 있어서, 상기 메쉬 변환부는 푸아송 표면 재구성(Poisson Surface Reconstruction) 방식을 이용하여 포인트 클라우드를 메쉬로 변환하는 것을 특징으로 한다.
또, 본 발명은 시퀀스의 압축을 위한 스켈레톤 기반의 동적 포인트 클라우드 추정 시스템에 있어서, 상기 움직임 추출부는 키 프레임의 스켈레톤의 각 조인트에서 비키 프레임의 스켈레톤의 대응되는 조인트 간의 차이 벡터를 움직임 벡터로 산출하는 것을 특징으로 한다.
또, 본 발명은 시퀀스의 압축을 위한 스켈레톤 기반의 동적 포인트 클라우드 추정 시스템에 있어서, 상기 메쉬 변형부는 스켈레톤에 대한 스키닝 웨이트를 설정하고, 좌표변환 행렬을 구하고, 상기 스키닝 웨이트와 상기 좌표변환 행렬을 이용하여 키프레임의 메쉬를 변형하는 것을 특징으로 한다.
또, 본 발명은 시퀀스의 압축을 위한 스켈레톤 기반의 동적 포인트 클라우드 추정 시스템에 있어서, 상기 스키닝 웨이트는 스켈레톤의 뼈대의 중심에 가까울수록 1값에 가까워지게 설정되고, 마디에 가까워질수록 0에 가까워지도록 설정되는 것을 특징으로 한다.
또, 본 발명은 시퀀스의 압축을 위한 스켈레톤 기반의 동적 포인트 클라우드 추정 시스템에 있어서, 상기 좌표변환 행렬은 평행이동 T와 회전행렬 R로 구성되고, 다음 수식 1에 의해 변형되는 것을 특징으로 한다.
[수식 1]
Figure 112021055598133-pat00001
단, X는 변형 이전의 포인트 클라우드에 대한 좌표이고, X'은 변형 이후의 좌표이고, W는 스키닝 웨이트이고, j2,t는 키프레임의 마디 좌표이고, j2,t+1는 비키프레임의 마디 좌표임.
상술한 바와 같이, 본 발명에 따른 시퀀스의 압축을 위한 스켈레톤 기반의 동적 포인트 클라우드 추정 시스템에 의하면, 스켈레톤 움직임 벡터로 포인트 클라우드를 추정하여 원래 값과의 차이를 잔차로 시퀀스를 압축함으로써, 압축기에 입력될 포인트 클라우드의 양을 현저히 축소할 수 있고, 이를 통해, 압축 효율을 향상시킬 수 있는 효과가 얻어진다.
도 1은 본 발명을 실시하기 위한 전체 시스템에 대한 구성도.
도 2는 본 발명의 일실시예에 따른 시퀀스의 압축을 위한 스켈레톤 기반의 동적 포인트 클라우드의 추정(estimation)과 보상(compensation) 방법을 도식화 한 도면.
도 3은 본 발명의 일실시예에 따른 마디(joint)의 움직임 추정에 의한 포인트 클라우드의 잔차 생성 방법을 도식화 한 도면.
도 4는 본 발명의 일실시예에 따른 시퀀스의 압축을 위한 스켈레톤 기반의 동적 포인트 클라우드 추정 시스템의 구성에 대한 블록도.
도 5는 본 발명의 일실시예에 따른 동적 포인트 클라우드 시퀀스의 획득 시스템에 대한 구성 예시도로서, (a) 옆면, (b) 윗면에서의 예시도.
도 6은 본 발명의 일실시예에 따른 3D 스켈레톤 추출을 설명하는 흐름도.
도 7은 본 발명의 일실시예에 따른 포인트클라우드의 왼쪽어깨의 3D 마디(joint) 추출에 대한 예시도.
도 8은 본 발명의 일실시예에 따른 옥트리를 이용한 포인트 클라우드의 공간 양자화를 도식화 한 도면.
도 9는 본 발명의 일실시예에 따른 메쉬 변형 과정을 나타낸 도면.
도 10은 본 발명의 일실시예에 따른 스켈레톤에서 마디의 계층구조를 예시한 도면.
도 11은 본 발명의 일실시예에 따른 변형에 대한 스키닝 웨이트 효과에 대한 예시도로서, (a) 키프레임 메쉬와 스켈레톤, (b) 스키닝 웨이트를 적용하지 않은 변형 결과, (c) 스키닝 웨이트를 적용한 변형 결과를 나타낸 예시도.
도 12는 본 발명의 일실시예에 따른 왼쪽 허벅지의 스키닝 결과를 나타낸 예시도.
도 13은 본 발명의 일실시예에 따른 스켈레톤 좌표변환에 대한 예시도.
도 14는 스켈레톤의 예측을 이용한 3D 포인트 클라우드의 잔차 생성 방식을 나타낸 설명도로서, (a) 단순 프레임별 잔차 계산 방식, (b) 본 발명에 따른 방식에 대한 설명도.
이하, 본 발명의 실시를 위한 구체적인 내용을 도면에 따라서 설명한다.
또한, 본 발명을 설명하는데 있어서 동일 부분은 동일 부호를 붙이고, 그 반복 설명은 생략한다.
먼저, 본 발명을 실시하기 위한 전체 시스템의 구성의 예들에 대하여 도 1을 참조하여 설명한다.
도 1에서 보는 바와 같이, 본 발명에 따른 동적 포인트 클라우드 추정 방법은 분산 카메라 시스템(20)에 의해 촬영된 다시점 깊이 및 색상(RGB 등) 이미지(60)를 입력받아 동적 포인트 클라우드를 추정하는 컴퓨터 단말(30) 상의 프로그램 시스템으로 실시될 수 있다. 즉, 동적 포인트 클라우드 추정 방법은 프로그램으로 구성되어 컴퓨터 단말(30)에 설치되어 실행될 수 있다. 컴퓨터 단말(30)에 설치된 프로그램은 하나의 프로그램 시스템(40)과 같이 동작할 수 있다.
한편, 다른 실시예로서, 3동적 포인트 클라우드 추정 방법은 프로그램으로 구성되어 범용 컴퓨터에서 동작하는 것 외에 ASIC(주문형 반도체) 등 하나의 전자회로로 구성되어 실시될 수 있다. 또는 다시점 깊이 및 색상 이미지에서 동적 포인트 클라우드를 추정하는 것만을 전용으로 처리하는 전용 컴퓨터 단말(30)로 개발될 수도 있다. 이를 동적 포인트 클라우드 추정 시스템(40)이라 부르기로 한다. 그 외 가능한 다른 형태도 실시될 수 있다.
한편, 분산 카메라 시스템(20)은 객체(10)에 대해 서로 다른 시점으로 촬영하는 다수의 색상-깊이(RGB-D) 카메라(21)로 구성된다.
또한, 각 RGB-D 카메라(21)는 색상 정보 및 깊이 정보를 측정하여 색상 및 깊이 영상(또는 RGB-D 영상)을 획득하는 카메라이다. 바람직하게는, RGB-D 카메라(21)는 키넥트(kinect) 카메라이다. RGB-D 카메라(21)를 통해, 색상 및 깊이 영상은 2차원 픽셀들로 구성되고, 각 픽셀은 색상 값 및 깊이 값을 갖는다.
RGB-D 카메라(21)에 의해 촬영된 다시점 색상-깊이 영상(60)은 컴퓨터 단말(30)에 직접 입력되어 저장되고, 동적 포인트 클라우드 추정 시스템(40)에 의해 처리된다. 또는, 다시점 색상-깊이 영상(60)은 컴퓨터 단말(30)의 저장매체에 미리 저장되고, 동적 포인트 클라우드 추정 시스템(40)에 의해 저장된 색상-깊이 영상(60)을 읽어 입력될 수도 있다.
영상은 시간상으로 연속된 프레임으로 구성된다. 예를 들어, 현재시간 t의 프레임을 현재 프레임이라고 하면, 직전시간 t-1의 프레임은 이전 프레임이라고 하고, t+1의 프레임은 다음 프레임이라고 부르기로 한다. 한편, 각 프레임은 컬러영상(또는 컬러 이미지) 및 깊이영상(또는 깊이정보)을 갖는다.
특히, RGB-D 카메라(21)의 개수만큼 객체(10)에 대해 서로 다른 시점으로 촬영하고, 특정 시간 t에서, 카메라 개수만큼의 다시점 깊이 및 색상 영상(60)이 획득된다.
한편, 색상-깊이 영상(60)은 시간상으로 연속된 프레임으로 구성된다. 하나의 프레임은 하나의 이미지를 갖는다.
다음으로, 본 발명의 대상이 되는 포인트 클라우드의 구조 및, 동적 포인트 클라우드에 대하여 설명한다.
3차원 공간 혹은 객체를 생성하고 표현하기 위해서는, 기하학적인 정보를 표현할 수 있는 체적 형태의 시각적인 데이터(volumetric visual data)가 중요하다. 이 정보에는 기하학적인 형태 정보를 비롯하여 색상 정보, 투명도, 그리고 법선 벡터와 같은 부가적인 정보가 포함될 수 있다. 이 정보가 시간적으로 표현되어야 한다면, 시간 순서에 따라서 모든 순간의 장면(individual capture instance) 혹은 동작에 대한 정보가 필요하다. 시간적인 표현 방법은 크게 매 순간에 대한 정보를 따로 저장하는 방법과 시간의 함수로써 객체의 움직임을 기록해두는 방법이 있을 수 있다. 전자는 스틸 이미지(still image)를 저장하여 비디오를 만드는 것과 유사하고, 후자는 그래픽스 모델의 애니메이팅과 같이 볼 수 있다. 일반적으로 이러한 정보를 표현하기 위해 포인트 클라우드(point cloud)를 주로 사용한다.
포인트 클라우드는 독립적인 3차원 포인트들의 집합이다. 각각의 3차원 포인트는 3차원 위치 정보, 색상 정보, 그리고 법선 정보(surface normal) 등을 포함하고 있다. 포인트 클라우드는 논 매니폴드 기하학(non-manifold geometry) 형상을 표현할 수 있어서 메쉬(polygonal mesh)에 비해 더욱 유연한 표현 방법이고, 실시간으로 처리될 수 있는 장점도 갖는다.
한편, 3차원 포인트 클라우드 데이터는 매우 다양한 분야에서 사용되고 있다. MPEG PCC 표준화(the MPEG PCC standardization activity)에서는 세 가지 범주의 포인트 클라우드 테스트 데이터를 취급하고 있다. 첫 번째는 정적 포인트 클라우드이고, 두 번째는 임시 정보(temporal information)를 갖고 있는 동적 포인트 클라우드이다. 세 번째는 동적으로 획득된 포인트 클라우드이다. MPEG PCC 표준화에서는 이러한 포인트 클라우드 데이터들을 압축하기 위한 기술을 논의하고 있다. 이들 데이터들은 (x, y, z) 좌표를 갖고 있고, 각 포인트 별로 반사도와 RGB 속성을 갖고 있다.
바람직하게는, MPEG PCC에서 두 번째 데이터 형태에 해당하는 동적 포인트 클라우드 중에서 사람을 대상으로 하는 데이터를 대상으로 한다. 2차원 정지 영상의 시간적인 시퀀스가 비디오로 정의되는 것과 같이, 포인트 클라우드의 시간적인 시퀀스로 동적인 포인트 클라우드 비디오가 정의된다.
다음으로, 본 발명에 따른 시퀀스의 압축을 위한 스켈레톤 기반의 동적 포인트 클라우드 추정 시스템에 대하여 전반적으로 설명한다.
본 발명은 증강현실(Augmented Reality, AR), 혼합현실(Mixed Reality, MR) 분야에서 컨텐츠로 사용되는 포인트 클라우드 시퀀스의 압축을 위한 동적 포인트 클라우드 추정 시스템이다.
즉, 사람에 대한 동적 포인트 클라우드를 시간적으로 예측하기 위해서, 먼저 사람의 3차원적인 움직임을 찾아내고 분석한다. 이를 위해서 3차원 스켈레톤을 이용하여, 동적 포인트 클라우드 사이의 상관관계를 유추한다. 포인트 클라우드 프레임들에서 추출된 스켈레톤들을 비교하여 스켈레톤의 움직임 벡터를 생성한다. 움직임 벡터를 이용하여 이전 프레임의 포인트 클라우드를 리깅하고 변형(deformation)함으로써 다음 프레임의 포인트 클라우드를 생성한다.
이와 같이 추정된(estimated) 포인트 클라우드와 원래의 포인트 클라우드 사이의 잔차(residual)을 구하는 기법을 통해서 압축기에 입력될 포인트 클라우드의 양을 감소시킨다.
즉, 본 발명에 따른 방법을 통해서 포인트 클라우드의 양을 상당히 축소시킬 수 있고, 바이너리 인코딩(binary encoding) 기법을 이용할 경우에 종래 기술에 비해 압축 효율을 향상시킬 수 있다.
또한 본 발명의 실험에 의하면, 복원된 포인트 클라우드와 원뼈대(bone)을 비교하면 사람을 촬영한 포인트 클라우드의 경우에 평균(mean)과 표준편차(standard deviation)가 최대 8.84mm와 6.36mm의 오차를 갖는다.
요약하면, 본 발명에서는 포인트 클라우드의 3D 스켈레톤 정보를 추출하여 포인트 클라우드 시퀀스를 압축할 수 있다. 스켈레톤은 2D 스켈레톤 추출을 위한 오픈포즈(Openpose) 등 딥러닝 모델를 기반으로 한다. 추출된 3D 스켈레톤의 퀄리티가 포인트 클라우드 압축 성능에 큰 영향을 미치기 때문에 고정밀도를 갖는 3D 스켈레톤 추출을 위한 후보정 방식을 사용한다. 후보정을 통해 고정밀도를 갖는 3D 스켈레톤이 추출되면, 포인트 클라우드 압축을 수행한다. 압축은 키프레임의 스켈레톤에서 비키프레임의 스켈레톤의 각 마디(joint)가 움직인 정도를 이용하여 키프레임 포인트 클라우드를 변형하고, 원뼈대(bone) 포인트 클라우드에 중복되는 포인트를 제거함으로써 수행된다. 포인트 클라우드 변형을 위해 키프레임 포인트 클라우드는 메쉬로 변형하여 리깅하는 과정이 필요하다. 키프레임 설정은 타겟 압축률에 따라 달라진다.
다음으로, 본 발명의 일실시예에 따른 시퀀스의 압축을 위한 스켈레톤 기반의 동적 포인트 클라우드 추정 시스템의 전반적인 포인트 클라우드 추정 방법을 도 2 및 도 3을 참조하여 설명한다.
본 발명에 따른 포인트 클라우드 추정 방법은 사람에 대한 움직임을 추정하기 위해, 사람의 스켈레톤 정보를 이용한다. 먼저 캡쳐된 동적인 포인트 클라우드 시퀀스에서, 포인트 클라우드 그룹(gropu of point cloud frame, GPCF)를 설정하고, 가장 첫 번째 프레임의 포인트 클라우드를 키 포인트 클라우드(key point cloud, KPC)라 한다. 프레임 단위로 획득된 사람의 포인트 클라우드를 공간적으로 양자화하여 양자화된 포인트 클라우드 Qt+i를 얻는다.
앞서에서 설명한 방법을 이용하여 각 포인트 클라우드로부터 3차원 스켈레톤 SKt+i을 획득한다. 다음으로 KPC와 SKt와 나머지 SKt+(i>0) 사이의 3차원 움직임 벡터(motion vector) MVt+(i>0)를 구한다. 3차원 움직임 벡터는 모든 마디(joint)에 대해서 획득한다. MVt+(i>0)와 KPC를 이용하여 모든 비(non)-KPC의 움직임 추정된 포인트 클라우드 EQt+(i>0)를 생성한다. 이 단계는 리깅(rigging)과 변형(deformation)에 해당한다. 마지막으로 움직임 추정된 포인트 클라우드 EQt+(i>0)와 양자화된 Qt+(i>0) 사이의 잔차 RDt+(i>0)를 구한다.
이 과정을 도 2에 나타내고 있다. 도 2a는 동적 포인트 클라우드 시퀀스의 추정 과정이고, 도 2b는 보상 과정에 해당한다.
한편, 스켈레톤을 이용하여 대용량의 포인트 클라우드 시퀀스 데이터 전송 및 저장을 위해 화질의 최대화와 데이터량의 최소화의 상보적인 관계를 고려한 포인트 클라우드 시퀀스의 움직임 예측 방법을 구성한다. 즉, 3차원 스켈레톤을 이용하여 포인트 클라우드로 구성된 객체의 움직임을 예측하고, 예측된 움직임에 정보를 이용하여 압축에 이용될 포인트 클라우드의 양을 감소시킨다.
특히, 본 발명에 따른 포인트 클라우드 추정 방법은, 리깅(rigging)과 변형(deformation)의 용이함을 위해서, 이 두 과정에서 포인트 클라우드를 메쉬(mesh)로 변형하여 사용한다. 이때 포인트 클라우드는 메쉬(mesh)의 정점(vertex)에 해당한다.
한편, 본 발명에 따른 포인트 클라우드 추정 방법은 스켈레톤의 마디 또는 조인트(joint) 정보를 이용하여 포인트 클라우드를 추정한다.
도 3은 스켈레톤의 마디(joint) 정보를 이용하여 포인트 클라우드를 추정하는 방식을 예시하고 있다. 도 3의 예에서, 키 프레임에 해당하는 t 프레임(Point Cloud Frame)과 비-키 프레임에 해당하는 t+1 프레임(Point Cloud Frame)의 관계를 나타내고 있다.
t 프레임과 t+1 프레임의 마디(joint)들 사이의 3차원 움직임 벡터를 계산한다. 움직임 벡터를 이용하여 t 프레임의 포인트 클라우드를 t+1 프레임의 위치로 리깅(rigging)하여 추정된 t+1 프레임의 포인트 클라우드(Estimated Frame t+1 from Frame t)를 생성한다. 움직임 벡터를 정확하게 찾았고, 올바른 리깅을 수행했다 할지라도 t 프레임의 포인트 클라우드를 이용하여 변형(deformation)한 형태는 t+1 프레임의 포인트 클라우드와 차이를 가질 수 있다. 즉, 리깅 및 변형된 정보와 원래의 정보 사이에는 오차가 존재할 수 밖에 없다. 따라서 그 오차를 잔차 프레임(Residual Frame t+1)로써 보상한다.
다음으로, 본 발명의 일실시예에 따른 시퀀스의 압축을 위한 스켈레톤 기반의 동적 포인트 클라우드 추정 시스템(30)의 구성에 대하여 도 4 내지 도 9를 참조하여 구체적으로 설명한다.
도 4에서 보는 바와 같이, 본 발명의 일실시예에 따른 동적 포인트 클라우드 추정 시스템(30)은 다시점 색상-깊이 영상의 연속된 프레임을 획득하는 프레임 획득부(41), 다시점 프레임으로부터 3차원 포인트 클라우드를 획득하는 점군 획득부(42), 3차원 포인트 클라우드로부터 3차원 스켈레톤을 추출하는 스켈레톤 추출부(43), 3차원 포인트 클라우드를 메쉬로 변환하는 메쉬 변환부(44), 프레임에 대하여 키프레임 여부를 선정하거나 판단하는 키프레임 선정부(45), 키프레임의 메쉬를 3차원 스켈레톤으로 리깅하는 메쉬 리깅부(46), 비키프레임인 경우, 움직임 벡터를 추출하는 움직임 추출부(47), 움직임 벡터를 이용하여 키프레임의 메쉬를 변형하는 메쉬 변형부(48), 및, 포인트 클라우드로부터 생성한 메쉬와 변형된 메쉬 간의 잔차를 산출하는 잔차 산출부(49)로 구성된다. 추가적으로, 3차원 포인트 클라우드의 시퀀스를 압축하여 비트스트림을 생성하는 비트스트림 생성부(50)를 더 포함하여 구성될 수 있다.
먼저, 프레임 획득부(41)에 대하여 설명한다.
프레임 획득부(41)는 다시점 색상-깊이(RGB-D) 카메라(20)에 의해 촬영한 다시점 영상을 획득한다. 즉, 다시점 색상-깊이 카메라 시스템이 객체(10)를 촬영하고, 촬영된 다시점 색상-깊이 영상을 입력받거나 가져와서 획득한다.
동적 포인트 클라우드 시퀀스를 획득하기 위해서 깊이 및 색상(RGB) 센서를 장착한 RGB-D 카메라를 사용한다. 체적형 3D 모델(volumetirc 3D model)을 생성하는 것이 목표이므로 8대 등의 RGB-D 카메라를 물체의 여러 시점에 설치한다.
3차원 모델을 생성하기에 앞서 RGB-D 카메라를 통해 촬영되는 깊이 및 RGB 이미지를 이용하여 깊이 카메라의 좌표계를 따르는 포인트 클라우드를 획득한다. 8대의 RGB-D 카메라는 스탠드 형태의 촬영 장비를 사용하여 구성한다. 물체를 모든 방향에 대해 4세트의 스탠드를 앞, 뒤, 양옆 네 방향에 배치하였다. 도 5는 도 5는 본 발명에서 사용한 분산 카메라 네트워크이다.
분산 카메라 네트워크는 일정한 공간 내에 임의의 위치에 다수 개의 카메라를 위치시키고, 객체를 스캐닝하는 시스템을 의미한다. 특히, 분산 카메라 시스템(20)은 수평 방향으로 적어도 6개의 지점(시점)에서 객체를 향하는 카메라를 설치하고, 각 지점(시점)에서 수직 방향(위아래 방향)으로 적어도 4대의 카메라를 이격되도록 설치한다. 즉, 분산 카메라 시스템(20)은 적어도 6대의 카메라가 하나의 수평층을 이루고, 적어도 4개의 수평층을 갖는다. 모든 카메라가 정확한 위치에 설치될 필요는 없고, 대략적으로 유사한 위치에 설치될 수 있다.
다음으로, 점군 획득부(42)에 대하여 설명한다.
점군 획득부(42)는 각 시점의 색상-깊이 영상(또는 프레임)에서 각 시점의 포인트 클라우드를 생성하고, 각 시점의 카메라 파라미터를 이용하여 각 시점의 포인트 클라우드를 정합(또는 통합)하여 정합된 3차원 포인트 클라우드를 획득한다. 특히, 정합된(통합된) 3차원 포인트 클라우드는 객체(10)의 3차원 포인트 클라우드 이다.
또한, 점군 획득부(42)는 각 시점의 카메라 파라미터를 사전에 획득한다. 바람직하게는, 차르코 보드(Charuco board) 등 샘플 영상으로 외부 캘리브레이션을 수행하여 각 시점의 카메라 파라미터를 획득한다.
특히, 본 발명에서 사용한 캘리브레이션 방식은 특징점을 이용하고, 특징점 사이의 오차를 최적화하는 방식을 사용한다. 바람직하게는, 더욱 빠르고 정확한 매칭점을 찾기 위해 차르코 보드(Charuco board)를 이용한다. 최적화 알고리즘으로는 경사 하강법을 사용한다.
파라미터 최적화를 위해 사용되는 좌표는 차르코 보드(Charuco board)의 내부 코너 좌표이다. 좌표변환행렬에는 x, y, z 축에 대한 회전과 평행이동에 대한 6개의 파라미터가 포함되어 있다. Xref는 기준 카메라 좌표를 나타내고 Xi는 나머지 카메라의 좌표를 나타낸다. 회전변환 행렬 Ri->ref와 평행이동 행렬 ti->ref은 초기에는 기 뼈대(bone)행렬로 구성되어 있다. 따라서 Xi에서 Xi'좌표로의 변환 관계는 수학식 1과 같다.
[수학식 1]
Figure 112021055598133-pat00002
최적화에 사용될 오차 함수는 Xref와 Xi'의 유클리드 제곱 거리(squared Euclidean distance)의 평균값이다. 이 오차 함수를 경사하강법에 의해 파라미터를 갱신해 나가는 과정을 수학식 2와 같이 나타낼 수 있다. α는 학습률에 대한 상수로, 바람직하게는, 0.1로 설정된다.
[수학식 2]
Figure 112021055598133-pat00003
전체적인 정합과정에 대한 흐름은 정합에 이용하기 위해 다중 RGB-D 카메라에서 깊이 및 RGB 이미지를 출력한다. RGB 이미지는 차르코 보드(Charuco board)를 이용한 매칭점을 찾기 위해 사용하고, 깊이 이미지는 특징점의 3차원 좌표를 획득하는 데 사용한다. 그 다음 경사하강법을 통해 획득한 좌표의 유클리드 제곱 거리가 최소가 되는 좌표변환 파라미터(카메라 파라미터, 외부 파라미터)를 얻는다.
다음으로, 스켈레톤 추출부(43)에 대해 설명한다.
스켈레톤 추출부(43)는 3차원 포인트 클라우드(통합된 포인트 클라우드)에 대하여 다수의 방향으로 투영하여 투영 영상을 획득하고, 각 투영 영상에서 2차원 스켈레톤 영상을 획득하고, 이를 복원하여 3차원 스켈레톤을 생성한다. 이를 통해, 고정밀 3D 스켈레톤을 추출한다.
구체적으로, 다시점 RGB-D 카메라 시스템을 통해 포인트 클라우드가 캡쳐되면, 3D 스켈레톤 추출을 위해 네 개의 면으로 포인트 클라우드를 투영한다. 다음으로, 오픈포즈(OpenPose) 라이브러리를 이용하여 투영된 2차원 영상의 2D 스켈레톤을 추출한다. 다음으로, 3D 스켈레톤을 얻기 위해 각 마디(joint)로부터 중심으로 직선을 연결하여 교차지점을 형성한다. 여기에서 오픈포즈(OpenPose) 등 딥러닝 방식을 사용하지만, 2D 스켈레톤을 추출하는 다른 방법을 적용할 수 있다. 다음으로, 교차지점을 평균하여 3차원 지표를 갖는 마디(joint)를 구한다. 마지막으로 고정밀 3D 스켈레톤 추출을 위한 보정 과정(refinement)이 진행된다.
도 6은 3차원 스켈레톤을 추출하는 방법을 도시하고 있다.
먼저, 주성분 분석(PCA)을 이용하여 객체의 정면을 찾고, 객체의 정면이 축 방향과 평행하도록 객체를 회전시킨다(S31).
포인트 클라우드의 투영영상을 오픈포즈(OpenPose) 네트워크에 입력하여 2D 스켈레톤을 추출할 경우에, 정면방향에서 투영한 영상으로부터 추출된 스켈레톤의 정확도가 가장 높다. 따라서 포인트클라우드 3차원 좌표의 공간상의 분포를 분석하여 객체의 정면을 찾고, 포인트 클라우드의 정면방향이 Z축 방향과 평행하게 되도록 회전시킨다.
정면방향을 찾기 위해서 주성분 분석(Principal Component Analysis, PCA)를 이용한다[비특허문헌 4]. 주성분 분석은 분포된 데이터들의 주성분을 찾기 위해 사용한다.
다음으로, AABB 박스를 설정하고, AABB 박스의 4개 측면의 2차원 평면으로 투영시켜 투영 영상을 획득한다(S32).
객체의 정면을 찾은 이후에, 되면 공간상에 투영 평면을 결정하기 위한 AABB(Axis-aligned Bounding Box)를 설정한다. AABB 박스는 공간 상의 축 방향으로 만들어지는 객체의 경계 상자이다.
3차원에서 2차원 평면으로 투영시키는 과정은 4×4행렬인 MVP(Model View Projection) 행렬(matrix)을 통해 월드 좌표계에서 투영 평면 위의 좌표로 변환한다.
다음으로, 각 투영 영상에서 2차원 스켈레톤을 추정한다(S33).
4개의 투영영상이 생성되면, 바람직하게는, 오픈포즈(OpenPose) 등 딥러닝 방식을 이용하여 2D 스켈레톤을 추출한다[비특허문헌 5].
다음으로, 각 투영 영상들 간의 조인트 교차점을 산출하여 3차원 스켈레톤을 생성한다(S34).
즉, 각 2D 스켈레톤 픽셀 좌표계에서 다시 3차원 좌표계로 복원한다. 이때, 공간 상에 위치한 4개의 투영평면 위에 추출된 조인트(joint) 좌표가 계산된다. 4개의 평면 위의 매칭되는 좌표끼리 연결시키면 공간상에 교차하는 4개의 좌표가 나온다.
이 4개의 좌표들 중 다른 좌표들과 사전에 정해진 임계거리(예를 들어, 3cm) 이상의 거리를 갖는 좌표는 에러가 포함된 좌표로 판단하여 제거한다. 제거되지 않은 후보 좌표들의 평균값을 통해 3D 스켈레톤을 획득한다.
도 7은 오른쪽 손목의 3D 마디(joint)를 추출하는 것에 대한 예시이다.
다음으로, 메쉬 변환부(44)에 대하여 설명한다.
메쉬 변환부(44)는 3차원 포인트 클라우드를 메쉬로 변환한다.
바람직하게는, 메쉬 변환부(44)는 3차원 포인트 클라우드를 양자화 하고, 양자화된 포인트 클라우드를 메쉬로 변환한다. 더욱 바람직하게는, 옥트리 구조를 이용하여 포인트 클라우드 양자화(Point Cloud Quantization) 한다.
캡쳐된 포인트 클라우드의 경우에 매우 정밀한 부동소수점 좌표값을 갖는다. 또한 다시점 카메라를 사용할 경우에는 같은 위치에 다수의 포인트 클라우드가 존재한다. 포인트 클라우드의 고정밀도와 공간적인 중복성으로 인해 리깅(rigging)된 포인트 클라우드의 좌표와 원래의 포인트 클라우드의 좌표가 일치하기 어렵다. 따라서 포인트 클라우드의 공간 좌표에 대한 양자화가 필요하다.
옥트리는 쿼드트리(quadtree)의 3차원 확장으로서 계층적 트리 구조로 부모 노드(parent node)가 여덟 개의 자식 노드(child node)와 연결된 구조이다. 포인트 클라우드의 양자화를 위해서 옥트리 알고리즘을 사용한다. 옥트리 구조를 이용하여 3차원 공간 상에 분포된 포인트 클라우드를 양자화함으로써 정밀도를 제한하고 중복성을 최대한 제거할 수 있다.
특히, 옥트리 공간을 정의하는 복셀(voxel)의 최소 단위를 1mm3으로 설정한다. 도 8은 옥트리 구조를 통해 포인트 클라우드를 양자화하는 과정을 나타낸다. 포인트 클라우드를 위한 복셀(voxel)이 나누어지면 복셀 내부의 모든 포인트 클라우드는 복셀의 중심좌표로 변환된다.
한편, 양자화된 포인트 클라우드를 메쉬로 변환한다. 바람직하게는, 푸아송 표면 재구성(Poisson Surface Reconstruction) 방식을 이용하여 포인트 클라우드를 메쉬로 변환한다.
다음으로, 키프레임 선정부(45)에 대하여 설명한다.
키프레임 선정부(45)는 일련의 연속된 프레임에 대하여 키 프레임을 선정하거나 키프레임 여부를 판단한다.
바람직하게는, 키프레임 선정부(45)는 최초 프레임에 대하여 키프레임으로 선정하고, 그 이후 프레임(또는 대상 프레임)에 대하여 일정한 규칙에 따라 키프레임을 선정한다. 선정되지 않는 대상 프레임은 비키프레임이라 부르기로 한다.
일례로서, 키프레임 선정부(45)는 키프레임을 일정한 간격으로 설정한다. 즉, 임의로 설정되거나, 일정한 간격의 프레임들을 키 프레임으로 설정될 수 있다. 이때, 비키프레임(중간 프레임)의 키프레임은 직전 키프레임을 말한다. 또 다른 예로서, 스켈레톤의 움직임의 크기에 따라 키프레임 여부를 판단할 수 있다. 즉, 스켈레톤의 움직임이 임계치 보다 많이 이동하거나, 움직임을 측정할 수 없는 경우, 현재 대상 프레임을 키프레임으로 선정한다.
대상 프레임이 키프레임인지 비키프레임인지에 따라, 대상 프레임의 메쉬 리깅, 움직임 추정, 메쉬 변형, 잔차 산출 등 작업을 달리 적용한다. 즉, 키프레임이면 해당 프레임의 스켈레톤으로 메쉬에 대해 리깅(rigging) 작업을 수행하고, 비키프레임이면 움직임 벡터를 추정하여 키프레임의 메쉬를 변형하고 해당 프레임의 메쉬와 변형된 메쉬 간의 잔차를 산출한다.
다음으로, 메쉬 리깅부(46)에 대해 설명한다.
메쉬 리깅부(46)는 키 프레임의 메쉬를 3차원 스켈레톤으로 리깅한다.
즉, 키 프레임의 메쉬에 대하여, 해당 키 프레임의 스켈레톤을 적용하여, 리깅(rigging)을 수행한다. 리깅은 통상의 방법에 의해 수행된다.
리깅은 추출한 스켈레톤을 포인트 클라우드 혹은 메쉬 모델과 결합하는 동작이다. 즉, 포인트 클라우드에 스켈레톤을 넣어서 움직일 수 있는 정보로 만드는 동작이다.
다음으로, 움직임 추출부(47)에 대해 설명한다.
움직임 추출부(47)는 비키프레임인 경우, 키 프레임의 스켈레톤과, 해당 비키 프레임의 스켈레톤으로부터 스켈레톤 움직임 벡터(또는 3차원 움직임 벡터)를 산출한다. 즉, 스켈레톤 움직임 추정(Skeleton Motion Estimation) 작업을 수행한다.
바람직하게는, 키 프레임의 스켈레톤의 각 조인트에서 비키 프레임의 스켈레톤의 대응되는 조인트 간의 차이 벡터를 움직임 벡터(3차원 움직임 벡터)로 산출한다.
구체적으로, 시점 t 프레임의 스켈레톤 또는 조인트들은 다음과 같다.
SKt = { Jt(1), Jt(2), ..., Jt(n) }
이때, 시점 t의 프레임이 키프레임이고, 시점 t+i의 프레임이 비-키프레임이라고 하면, 시점 t+i의 스켈레톤 움직임 벡터 MVt+k는 다음과 같다.
MVt+k = { MVt+k(1), MVt+k(2), ..., MVt+k(n) }, MVt+k(i) = Jt+k(i) - Jt(i)
다음으로, 메쉬 변형부(48)는 움직임 벡터를 이용하여 키프레임의 메쉬를 변형(deformation)한다.
즉, 메쉬 변형부(48)는 스켈레톤을 계층 구조로 설정하고 스키닝 웨이트를 설정하고, 또한, 좌표변환 행렬을 구하여, 스키닝 웨이트와 좌표변환 행렬로 메쉬를 변형한다. 특히, 스켈레톤을 대상으로 스키닝을 수행하는데, 바람직하게는, 하위 계층의 뼈대부터 스키닝을 수행한다.
도 9는 3D 메쉬와 스켈레톤을 이용하여 메쉬를 변형하는 메쉬 변형(Mesh Deformation) 과정을 나타낸다.
메쉬를 생성한 이후에, 스켈레톤을 이용하여 뼈대에 피부를 붙이는 작업인 스키닝(Skinning)이 수행된다. 이와 함께 마디(joint)의 움직임 벡터를 이용하여 키프레임의 마디(joint)와 뼈대(bone)가 타겟 프레임의 것들에 비해 얼마나 이동했는지를 나타내는 변환행렬(Transformation Matrix)을 계산한다. 마디(joint)들의 변환행렬과 스키닝된 객체를 이용하여 키프레임을 타겟 프레임의 형태로 변형한다.
사람이 움직일 때, 어떤 부분의 움직임이 다른 부위의 움직임에 영향을 끼칠 수도 있고, 영향을 미치지 않을 수도 있다. 예를 들어 허벅지를 위로 움직이면 종아리는 허벅지의 움직임에 영향을 받아 함께 위로 움직인다. 하지만 종아리가 움직인다고 해서 반드시 허벅지가 함께 움직이는 것은 아니다.
다양한 움직임에 대한 특징들을 반영하기 위해 3D 모델에 계층구조를 설정하여 상위노드의 움직임에 하위노드가 함께 동작하도록 한다. 도 10의 예에서, 스켈레톤 계층구조는 코어에 해당하는 골반을 최상위 노드로 두고 골반과 가까이 위치할수록 상위 노드로 구성한다. 도 10은 스켈레톤 계층구조를 예시한 그림이다.
설정한 계층 구조를 기준으로 하위계층의 뼈대부터 스키닝이 수행된다.
단순하게 메쉬를 나누고 움직임을 적용하였을 경우에 메쉬가 분리되는 경우가 생긴다. 따라서 자연스러운 움직임을 표현하기 위해 스키닝 웨이트(Skinning Weight)를 이용한다. 마디(joint)와의 거리에 비례하여 뼈대의 움직임에 피부가 영향을 받는 정도를 조절한다. 여기에서 피부가 영향을 받는 정도를 스키닝 웨이트로 조절한다.
도 11은 스키닝 웨이트를 적용하기 이전과 이후의 메쉬의 움직임을 나타낸다. 도 11(a)는 변형을 진행할 키프레임의 메쉬와 스켈레톤이고, 도 11(b)는 스키닝 웨이트를 적용하지 않고 키프레임의 메쉬를 변형한 결과이다. 도 11(c)는 스키닝 웨이트를 적용하여 키프레임의 메쉬를 변형한 결과이다. 0에서 1사이의 값을 갖는 스키닝 웨이트는 뼈대의 중심에 가까울수록 1값에 가까워지고, 마디에 가까워질수록 0에 가까워진다.
도 12는 스키닝 웨이트를 메쉬에 적용한 결과이다. 빨간색은 1에 가까운 값을 의미하고, 파란색은 0에 가까운 값을 의미한다. 도 12는 왼쪽 허벅지에 대한 결과이고, 스키닝 웨이트는 모두 0 이상의 값을 갖고 있다.
스키닝 웨이트가 0이면 움직이는 양에 따라서 포인트 클라우드가 많이 움직이고 1이면 많이 움직이지 않는다는 의미이다. 즉, 팔을 움직일 때 뼈대의 중심쪽에서의 포인트 클라우드는 거의 일정하지만, 마디 쪽으로 갈수록 옷과 인체의 구조가 많이 변화한다.
다음은 마디의 좌표변환 행렬(R|T)을 계산하는 과정을 설명한다.
t 번째 프레임으로부터 t+1 번째 프레임으로 스켈레톤이 이동하는 경우이다. 도 13에서 j1, j2, 및 j3는 각각 마디(joint)를 나타낸다. t(a->)는 t 프레임의 j2에서 j1으로 이동하기 위한 방향벡터를 나타내고, t+1(b->)는 t+1 프레임의 j2에서 j1으로 이동하기 위한 방향벡터를 나타낸다. 회전각 θ는 t(a->)와 t+1(b->)사이의 각도, u->는 회전축(axis of rotation)을 나타낸다.
좌표변환 행렬에서 평행이동(T)은 수학식 3과 같이 마디(joint)의 좌표이동 값으로 구할 수 있다.
[수학식 3]
Figure 112021055598133-pat00004
회전행렬(R)은 뼈대(bone)의 회전각과 회전축을 안다면 구할 수 있다.
도 13에서는 j2가 이동하지 않는다는 것을 가정하여 j2가 t와 t+1에서 같은 위치에 있지만, 실제로는 이동할 수 있다. 회전행렬(R)은 j2,t+1와 j2,t를 같은 위치에 놓고 계산한다. 먼저 회전축(u->)은 수학식 4와 같이 t(a->)와 t+1(b->)의 외적을 통해서 구할 수 있다.
[수학식 4]
Figure 112021055598133-pat00005
회전각은 수학식 5와 같이 t(a->)와 t+1(b->)의 내적에 아크코사인(arccosine)을 취해주어 얻을 수 있다.
[수학식 5]
Figure 112021055598133-pat00006
회전축 u->과 회전각 θ으로 구성된 수학식 6을 이용하여 최종적으로 회전행렬(R)을 구한다.
[수학식 6]
Figure 112021055598133-pat00007
여기서, ux,uy,uz는 각각 회전축 x,y,z을 나타낸다.
스키닝 웨이트와 좌표변환 파라미터를 이용하여 변형된 메쉬를 계산한다. 스키닝 웨이트를 W 라고 하면,수학식 7을 이용하여 좌표들을 변형할 수 있다. 수학식 7에서 X는 변형 이전의 포인트 클라우드에 대한 좌표이고, X'은 변형 이후의 좌표이다.
[수학식 7]
Figure 112021055598133-pat00008
다음으로, 잔차 산출부(49)에 대해 설명한다.
잔차 산출부(49)는 변형된 키프레임과 타겟 비키프레임 사이의 잔차를 산출한다. 즉, 키프레임의 메쉬를 비-키프레임의 메쉬로 변형한 이후, 변형된 키프레임과 타겟 비키프레임 사이의 잔차가 계산될 수 있다.
도 14는 움직임 예측 이전과 이후의 포인트 클라우드 잔차를 계산하는 방법을 나타낸다. 원본 키프레임과 타겟 프레임의 잔차를 계산할 경우에 도 14(a)와 같은 결과를 얻는다. 그러나 변형된 키프레임과 타겟 프레임의 잔차를 계산할 경우에, 도 14(b)와 같이 잔차는 매우 작은 포인트 클라우드만 포함한다. 도 14에는 전체적인 예측 과정과 잔차 계산 과정을 쉽게 도식적으로 나타내고 있다.
포인트 클라우드의 잔차를 계산하는 과정에서 GPCF의 크기에 따라서 전체 프레임에서 키프레임 및 비키프레임의 개수가 결정된다. 이들의 개수는 전체 압축율에 영향을 미치게 될 것이다. 이것은 키프레임과 비키프레임 사이의 거리가 멀어질수록 움직임 예측의 오차가 커질 수 있기 때문이다.
다음으로, 비트스트림 생성부(50)에 대해 설명한다.
비트스트림 생성부(50)는 3차원 포인트 클라우드의 시퀀스를 압축하여 비트스트림을 생성한다. 즉, 잔차를 구한 이후에 바이너리 인코딩(binary encoding)을 이용하여 무손실 압축을 수행한다.
이상, 본 발명자에 의해서 이루어진 발명을 상기 실시 예에 따라 구체적으로 설명하였지만, 본 발명은 상기 실시 예에 한정되는 것은 아니고, 그 요지를 이탈하지 않는 범위에서 여러 가지로 변경 가능한 것은 물론이다.
10 : 물체 20 : 카메라 시스템
30 : 컴퓨터 단말 40 : 프로그램 시스템
41 : 프레임 획득부 42 : 점군 획득부
43 : 스켈레톤 추출부 44 : 메쉬 변환부
45 : 키프레임 선정부 46 : 메쉬 리깅부
47 : 움직임 추출부 48 : 메쉬 변형부
49 : 잔차 산출부 50 : 비트스트림 생성부

Claims (12)

  1. 시퀀스의 압축을 위한 스켈레톤 기반의 동적 포인트 클라우드 추정 시스템에 있어서,
    다시점 색상-깊이 영상의 연속된 프레임을 획득하는 프레임 획득부;
    다시점 프레임으로부터 3차원 포인트 클라우드를 획득하는 점군 획득부;
    3차원 포인트 클라우드로부터 3차원 스켈레톤을 추출하는 스켈레톤 추출부;
    3차원 포인트 클라우드를 메쉬로 변환하는 메쉬 변환부;
    프레임이 키프레임이면, 해당 프레임의 메쉬를 해당 프레임의 3차원 스켈레톤으로 리깅하는 메쉬 리깅부;
    프레임이 비키프레임인 경우, 해당 프레임과 키프레임의 3차원 스켈레톤들로부터 움직임 벡터를 추출하는 움직임 추출부;
    상기 움직임 벡터를 이용하여 키프레임의 메쉬를 변형하는 메쉬 변형부; 및,
    비키프레임의 메쉬와 변형된 메쉬 간의 잔차를 산출하는 잔차 산출부를 포함하고,
    상기 스켈레톤 추출부는 통합된 3차원 포인트 클라우드에 대하여 다수의 방향으로 투영하여 투영 영상을 획득하고, 각 투영 영상에서 2차원 스켈레톤 영상을 획득하고, 이를 복원하여 3차원 스켈레톤을 생성하고,
    상기 스켈레톤 추출부는 상기 통합된 3차원 포인트 클라우드에 주성분 분석을 적용하여 정면을 찾고, 객체의 정면이 축 방향과 평행하도록 객체를 회전시키고, 상기 객체에 AABB(Axis-aligned Bounding Box) 박스를 설정하고, AABB 박스의 각 측면의 평면 상으로 투영하고, 투영 영상에서 2차원 스켈레톤 영상을 획득한 후, 2차원 스켈레톤 영상을 복원하고 복원된 영상의 각 마디(joint)로부터 중심으로 직선을 연결하여 교차지점을 형성하고, 교차지점을 평균하여 3차원 지표를 갖는 마디(joint)를 구하는 것을 특징으로 하는 시퀀스의 압축을 위한 스켈레톤 기반의 동적 포인트 클라우드 추정 시스템.
  2. 제1항에 있어서,
    상기 점군 획득부는 각 시점의 색상-깊이 영상에서 각 시점의 포인트 클라우드를 생성하고, 각 시점의 카메라 파라미터를 이용하여 각 시점의 포인트 클라우드를 정합하여 통합된 3차원 포인트 클라우드를 획득하는 것을 특징으로 하는 시퀀스의 압축을 위한 스켈레톤 기반의 동적 포인트 클라우드 추정 시스템.
  3. 삭제
  4. 제1항에 있어서,
    상기 스켈레톤 추출부는 각 투영 영상을 오픈포즈(OpenPose) 라이브러리에 적용하여 2차원 스켈레톤 영상을 획득하는 것을 특징으로 하는 시퀀스의 압축을 위한 스켈레톤 기반의 동적 포인트 클라우드 추정 시스템.
  5. 삭제
  6. 제1항에 있어서,
    상기 메쉬 변환부는 통합된 3차원 포인트 클라우드를 양자화 하고, 양자화된 포인트 클라우드를 메쉬로 변환하는 것을 특징으로 하는 시퀀스의 압축을 위한 스켈레톤 기반의 동적 포인트 클라우드 추정 시스템.
  7. 제6항에 있어서,
    상기 메쉬 변환부는 옥트리 구조를 이용하여 포인트 클라우드 양자화 하는 것을 특징으로 하는 시퀀스의 압축을 위한 스켈레톤 기반의 동적 포인트 클라우드 추정 시스템.
  8. 제6항에 있어서,
    상기 메쉬 변환부는 푸아송 표면 재구성(Poisson Surface Reconstruction) 방식을 이용하여 포인트 클라우드를 메쉬로 변환하는 것을 특징으로 하는 시퀀스의 압축을 위한 스켈레톤 기반의 동적 포인트 클라우드 추정 시스템.
  9. 제6항에 있어서,
    상기 움직임 추출부는 키 프레임의 스켈레톤의 각 조인트에서 비키 프레임의 스켈레톤의 대응되는 조인트 간의 차이 벡터를 움직임 벡터로 산출하는 것을 특징으로 하는 시퀀스의 압축을 위한 스켈레톤 기반의 동적 포인트 클라우드 추정 시스템.
  10. 제1항에 있어서,
    상기 메쉬 변형부는 스켈레톤에 대한 스키닝 웨이트를 설정하고, 좌표변환 행렬을 구하고, 상기 스키닝 웨이트와 상기 좌표변환 행렬을 이용하여 키프레임의 메쉬를 변형하는 것을 특징으로 하는 시퀀스의 압축을 위한 스켈레톤 기반의 동적 포인트 클라우드 추정 시스템.
  11. 제10항에 있어서,
    상기 스키닝 웨이트는 스켈레톤의 뼈대의 중심에 가까울수록 1값에 가까워지게 설정되고, 마디에 가까워질수록 0에 가까워지도록 설정되는 것을 특징으로 하는 시퀀스의 압축을 위한 스켈레톤 기반의 동적 포인트 클라우드 추정 시스템.
  12. 제10항에 있어서,
    상기 좌표변환 행렬은 평행이동 T와 회전행렬 R로 구성되고, 다음 수식 1에 의해 변형되는 것을 특징으로 하는 시퀀스의 압축을 위한 스켈레톤 기반의 동적 포인트 클라우드 추정 시스템.
    [수식 1]
    Figure 112021055598133-pat00009

    단, X는 변형 이전의 포인트 클라우드에 대한 좌표이고, X'은 변형 이후의 좌표이고, W는 스키닝 웨이트이고, j2,t는 키프레임의 마디 좌표이고, j2,t+1는 비키프레임의 마디 좌표임.
KR1020210062187A 2020-12-15 2021-05-13 시퀀스의 압축을 위한 스켈레톤 기반의 동적 포인트 클라우드 추정 시스템 KR102577135B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/332,545 US11734891B2 (en) 2020-12-15 2021-05-27 Skeleton-based dynamic point cloud estimation system for sequence compression

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20200174946 2020-12-15
KR1020200174946 2020-12-15

Publications (2)

Publication Number Publication Date
KR20220085694A KR20220085694A (ko) 2022-06-22
KR102577135B1 true KR102577135B1 (ko) 2023-09-12

Family

ID=82216553

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210062187A KR102577135B1 (ko) 2020-12-15 2021-05-13 시퀀스의 압축을 위한 스켈레톤 기반의 동적 포인트 클라우드 추정 시스템

Country Status (1)

Country Link
KR (1) KR102577135B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116704163B (zh) * 2023-08-03 2023-10-31 金锐同创(北京)科技股份有限公司 在终端显示虚拟现实场景的方法、装置、设备及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020154730A (ja) * 2019-03-20 2020-09-24 アースアイズ株式会社 監視装置、監視システム、及び、監視方法
KR102152432B1 (ko) * 2019-03-04 2020-10-26 광운대학교 산학협력단 동적 3차원 모델을 이용한 실사 콘텐츠 생성 시스템 및 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9208571B2 (en) * 2011-06-06 2015-12-08 Microsoft Technology Licensing, Llc Object digitization
KR102150758B1 (ko) * 2018-10-22 2020-09-02 한국과학기술원 3차원 모델 리깅을 위한 3차원 모델 표면의 스키닝 웨이트 인터페이스 방법 및 그 장치
KR102196025B1 (ko) * 2019-03-11 2020-12-29 광운대학교 산학협력단 3차원 포인트 클라우드 시퀀스의 압축 시스템 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102152432B1 (ko) * 2019-03-04 2020-10-26 광운대학교 산학협력단 동적 3차원 모델을 이용한 실사 콘텐츠 생성 시스템 및 방법
JP2020154730A (ja) * 2019-03-20 2020-09-24 アースアイズ株式会社 監視装置、監視システム、及び、監視方法

Also Published As

Publication number Publication date
KR20220085694A (ko) 2022-06-22

Similar Documents

Publication Publication Date Title
Malciu et al. A robust model-based approach for 3d head tracking in video sequences
US11734891B2 (en) Skeleton-based dynamic point cloud estimation system for sequence compression
US20170330375A1 (en) Data Processing Method and Apparatus
Malassiotis et al. Model-based joint motion and structure estimation from stereo images
WO2018162406A1 (en) Quality metric for point clouds
Vasudevan et al. Real-time stereo-vision system for 3D teleimmersive collaboration
CN113421328B (zh) 一种三维人体虚拟化重建方法及装置
CN113689539A (zh) 基于隐式光流场的动态场景实时三维重建方法与装置
Hu et al. Hvtr: Hybrid volumetric-textural rendering for human avatars
CN115951784A (zh) 一种基于双神经辐射场的穿衣人体运动捕捉和生成方法
Remondino et al. Human figure reconstruction and modeling from single image or monocular video sequence
Caliskan et al. Multi-view consistency loss for improved single-image 3d reconstruction of clothed people
Zhou et al. Constant velocity constraints for self-supervised monocular depth estimation
Huang et al. Human facial motion modeling, analysis, and synthesis for video compression
KR20230150867A (ko) 얼굴 표정, 신체 자세 형상 및 의류 퍼포먼스 캡처를 위해 암시적 구별가능 렌더러를 사용하는 멀티뷰 신경 사람 예측
KR102577135B1 (ko) 시퀀스의 압축을 위한 스켈레톤 기반의 동적 포인트 클라우드 추정 시스템
Remondino et al. 3D reconstruction of human skeleton from single images or monocular video sequences
Chao et al. Skeleton-based motion estimation for Point Cloud Compression
Perry et al. Study of subjective and objective quality evaluation of 3D point cloud data by the JPEG committee
Siv et al. 3D human face reconstruction using depth sensor of Kinect 2
Hu et al. HVTR++: Image and Pose Driven Human Avatars using Hybrid Volumetric-Textural Rendering
Caliskan et al. Temporal consistency loss for high resolution textured and clothed 3d human reconstruction from monocular video
CN111932670A (zh) 基于单个rgbd相机的三维人体自画像重建方法及系统
Tzovaras et al. Rigid 3-D motion estimation using neural networks and initially estimated 2-D motion data
Kim et al. Temporal Estimation of Non-Rigid Dynamic Point Cloud Sequence using 3D Skeleton-based Deformation for Compression

Legal Events

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