[Paper Review] Mobile, Egocentric Human Body Motion Reconstruction Using Only Eyeglasses-mounted Cameras and a Few Body-worn Inertial Sensors Paper Review

E0u0n·2023년 11월 10일
0

Human Pose Estimation

목록 보기
2/2
post-thumbnail

Paper : Mobile. Egocentric Human Body Motion Reconstruction Using Only Eyeglasses-mounted Cameras and a Few Body-worn Inertial Sensors

Abstract

  • 사용자들이 시공간 구애 없이 이용할 수 있는 편리한 telepresence(원격 현장) 시스템을 구상
  • 머리에 착용하는 장치에 내장된 카메라와 손목과 발목에 착용하는 IMU(관성 측정 장치)를 통해 사람의 동적 3D 캡처를 위한 독립형 실시간 시스템 제시
  • 본 논문의 프로토타입 시스템은 학습 기반 포즈 추정을 통해 착용자의 동작을 자기 중심적으로 재구성
  • 시각(visual) 및 관성(inertial) 센서의 입력을 융합 → 1) head-worn views의 일관성 없는 팔다리의 가시성 2) 희소 IMU의 모호성과 같은 문제를 극복
  • 추정된 포즈는 prescanned surface model로 지속적으로 리타겟팅되어 high-fidelity(충실도)가 높은 3D reconstruction을 초래
  • 다양한 인체 움직임을 재구성하여 시스템을 시연하고 실시간으로 실행되는 visual-inertial 학습 기반 방법이 시각 전용 및 관성 전용 접근 방식 능가
  • https://sites.google.com/site/youngwooncha/egovip

Introduction

  • telepresence는 떨어져 있는 공간에서도 원격 사회적 상호 작용을 가능하게 함

  • 지금까지의 문제

    • eyeglass-frame form의 문제 : 팔다리의 가시성 떨어짐
    • 프레임별 시각적 3D 포즈 추정 방법 : 가려진 관절에서는 신뢰할 수 없는 추정치
    • 외부 카메라 캡처 방법 : 실시간으로 높은 정확도와 성능을 달성하지만, 모든 관절이 보여야 함
    • Joint heatmap 추정 방법 : 2D heatmap 내에서 레이블을 지정할 수 없기 때문에 영상 외부에 있는 joint를 처리할 수 없음 → 경계를 패딩하여 히트맵 크기를 확장하면 와이드 FoV 또는 어안 렌즈의 왜곡이 크기 때문에 높은 3D 조인트 오류가 발생할 가능성
  • 시각-관성 융합 접근법은 10개 이상의 신체 착용 센서가 필요

  • eyeglass-frame mounted 카메라 & 손목과 발목의 IMU에 의존하는 wearable 3D acquisition system 제안

    1. visibility-aware visual 3D pose network : 가려진 관절을 억제하면서 보이는 관절 추정
    2. online IMU offset calibration method : 부착된 IMU가 있는 팔뚝과 다리 아래에 대해 시간이 지남에 따라 시각적 및 관성 뼈 방향을 정렬하여 관성 측정을 향상
    3. visual-inertial 3D pose network : IMU가 없는 위쪽 팔과 허벅지의 포즈는 이전 프레임에서의 위쪽 뼈의 시각적 감지뿐만 아니라 상응하는 아래쪽 뼈의 관성 측정을 사용하여 추정

Contribution

  • 희소 가시성과 희소 관성 센서를 모두 처리할 수 있는 최초의 자기 중심적 3D 인간 자세 추정 접근법
  • 모바일 캡처 및 실시간 신체 움직임 추정을 위한 안경 폼 팩터의 작동 중인 독립적인 개념 증명 프로토타입
  • 관성 측정뿐만 아니라 공동 가시성 정보가 있는 여러 뷰를 포함하는 최초의 자기 중심적 인간 모션 데이터 세트

RELATED WORK

Body Reconstruction

Visual Pose Estimation

Visual Egocentric Pose Estimation

  • 몸에 착용한 카메라에 찍힌 자기 중심적 데이터로 고품질 재구성 미해결 → 계측되지 않은 임의의 환경에서 작동하는 재구성 방법 필요
  • 외부 카메라 기반 인간 포즈 추정 방법은 신체의 자기 중심적 관점에 직접 적용할 수 없음
  • 신체 움직임은 몸에 착용한 카메라에서 추론
  • 신체를 직접 관찰하지 않으면 포즈 추정 정확도 제한 → 착용자의 신체 대부분을 볼 수 있는 머리 착용 하향 wide-FoV 카메라로 개선
  • 최근 단일 머리 착용 카메라 뷰 기반 방법은 자세 추정 개선을 위해 less-obtrusively 장착된 카메라를 사용 → But, 광범위하게 수용하기에는 너무 눈에 띔
  • 몸에 착용한 카메라로 아래쪽 몸에 가까운 시야를 사용하는 접근법은 self-occlusion 및 시야 밖 joint의 문제 미해결

Inertial Pose Estimation

  • 인체 자세 추정은 신체 착용 관성 측정 장치(IMU)를 사용하여 수행
  • IMU는 빠른 움직임을 포착 및 카메라 뷰에 가려지는 신체 부위를 추적 → But, 시간이 지남에 따라 측정 노이즈와 drift로 인해 어려움을 겪어 초기 자세에 대한 세심한 보정이 필요
  • 센서 착용 수용성을 높이기 위해, 연속적인 방향과 가속을 사용하여 IMU의 수를 줄임
  • IMU는 손목과 발목에만 착용하며, 사라진 위쪽 팔과 허벅지 방향은 아래쪽 뼈와 위쪽 뼈의 동작이 높은 상관 관계가 있다고 가정함으로써 추정
  • 유사한 측정으로 여러 포즈가 가능할 수 있기 때문에 포즈 모호성 → 미래 프레임 또는 전체 시퀀스와 같은 더 많은 시간적 측정을 사용하여 부분적으로 해결
  • 이 문제를 극복하기 위해 시각 및 관성 센서 융합은 IMU와 공동으로 외부 지향 카메라를 활용하여 3D 신체 자세를 계산
  • 외부 지향 카메라의 시각적 자세 추정치는 관성 센서의 가능한 3D 포즈를 제한하고 IMU 측정 노이즈를 완화하는 데 도움 → 지금까지 완전한 신체 가시성을 요구, 이는 자기 중심적 관점에서는 거의 달성할 수 없음

WEARABLE CAPTURE AND EGOCENTRIC DATASET

Eyeglasses and IMUs Prototype

목표 : 안경, 손목 밴드 및 신발과 같이 일반적으로 착용하는 품목에 센서가 내장된 완전 모바일 텔레프레즌스 시스템을 개발하는 것
프로토타입 : 안경테 카메라 & 4개 IMU(손목과 발목의 Xsens MTw Awinda)과 밉 러닝 기반 기술

Egocentric Visual+Inertial Human Pose Dataset

  • 프로토타입 헤드셋과 8개의 IMU를 착용한 사용자로 새로운 인간 포즈 데이터 세트를 수집

  • 실제 전신 3D 관절은 캡처 스튜디오에서 여러 개의 벽 장착형 카메라를 사용하여 획득

  • training : 22 sequences, evaluation : 9 sequences

  • 6 human subjects, for a total of 38k frames of visual+inertial data

    • visual data
      • real image : 11k개 실제 이미지를 균일하게 샘플링하고 전체 기록에서 수동으로 필터링
      • synthetic image : 38k개의 합성 이미지는 의류 및 배경 질감, 헤드기어 변환 등 random augmentation을 통해 실제 데이터에서 신체 포즈를 사용하여 생성
      • 각 joint visibility(label : visible, occluded, outside the FoV)는 자기 중심 이미지에 투영된 신체 모델의 z-buffer를 사용하여 추정
      • 몸통 관절(목, 어깨, 엉덩이)은 뼈 자세 추정을 위한 뿌리 관절로서 필수적인 역할을 하기 때문에 occlusion에 관계없이 눈에 보이는 것으로 표시
    • inertial data
      • 8개 센서의 관성 데이터로 시각 데이터와 동기화 및 보정
      • 38k 프레임의 실제 IMU 데이터를 정면에서 후면으로 포즈를 미러링, 측면에서 연속적으로 부드럽게 포즈 방향을 조정, 무작위 가속도 노이즈 도입을 통해 증강

EGOCENTRIC RECONSTRUCTION METHOD

  • 시각-관성 센서에서 사용할 수 있는 정보가 희소하여 전신 자세를 자체적으로 추정할 수 없음
    1. 팔다리 움직임은 신체에 의해 자주 가려지거나 카메라 시야밖에 있기 때문에 보이지 않음
    2. IMU는 팔뚝과 다리 아래쪽에만 착용하므로 팔 위쪽과 허벅지 방향이 없음

visibility-aware visual pose network and a temporally integrated visual and inertial pose network 제안

Stage1
visibility-aware 3D joint detector network는 두 개의 자기 중심적 하향 시야에서 관찰할 수 있는 joint의 3D 위치를 추정하며, 감지된 3D joint는 VSLAM을 통해 추정된 헤드셋 포즈를 사용하여 world space으로 변환
Stage2
하부 뼈(팔뚝, 아래쪽 다리)와 상부 뼈(위쪽 팔, 허벅지)의 3D 방향은 각각 visual-inertial IMU offset calibrator와 temporal visual-inertial orientation network를 사용하여 추정
Stage3
parametric body model의 모양과 포즈는 Stage2에서 추정된 전신 3D joint 위치와 방향을 사용하여 설정

VSLAM(Visual Simultaneous localization and mapping)
시각 기반의 동시적 위치추정 및 지도작성으로 주변 환경에 대하여 지도를 작성하면서 동시에 이 환경을 기준으로 카메라의 위치와 방향을 계산하는 과정

3D Body Representation

SMPL(skinned multi-person linear model) parametric body model

: 체형과 포즈를 나타내기 위한 모델

  • 3D 개체는 vertex와 triangle로 표시되고 개체가 더 세부적일수록 더 많은 vertex 필요 → 인간의 3D 메시 표현은 축이 키, 뚱뚱함, 가슴 둘레, 배 크기, 포즈 등과 같은 저차원 공간으로 압축될 수 있음
  • 두 가지 유형의 매개 변수로 인간 피험자를 인코딩
    • Shape parameter β\beta : a shape vector of 10 scalar value, 더 크거나 더 작은 방향을 따라 인간 피험자가 팽창/축소되는 양으로 해석
    • Pose parameters θ\theta : a pose vector of 24x3 scalar value, 매개 변수에 대한 관절의 상대 회전을 유지하고 각 회전은 축-각 회전 표현에서 임의의 3D 벡터로 인코딩
    • linear blend skinning을 통해 6480개의 vertice를 가진 triangular mesh M(θ,β)\mathcal{M}(\theta,\beta)을 변형

linear blend skinning
어떤 3차원 물체를 컴퓨터 그래픽으로 형상화시킬 때에 사람의 뼈 구조(skeleton structure)로부터 Mesh를 만드는 작업

Bone representation

  • ii는 두 개의 연결된 joint와 transform에 의해 정의
    • local bone rotation 집합 표현 θ\theta 대신, global transform 집합 TMR4×4T^{M}\in \mathbb{R}^{4\times 4}으로 정의된 동등한 뼈 표현 사용
    • Body Mesh spaceMM으로, Skeleton spaceSS로 표현
  • global space의 skeletal bone transformation TiSR4×4T_{i}^{S}\in \mathbb{R}^{4\times 4} 을 pose in the skeleteon으로 표현
    TiS=[RiSJp(i)01](1)T_{i}^{S}=\begin{bmatrix} R_{i}^{S} & J_{p(i)}\\ 0 & 1 \end{bmatrix} \tag{1}
    • RS=[sx,sy,sz]R3×3R^{S}=[s_{x},s_{y},s_{z}]\in \mathbb{R}^{3\times 3} : bone rotation
    • JpJ_{p} : base joint position
  • RSR^{S}의 열 벡터는 뼈의 3D 축을 형성
    • sy=R[:,2]s_{y}=R^{[:,2]} : base(parent)에서 tip(child) 까지 뼈 방향 did_{i}

      di=(JiJp(t))/(JiJp(i))d_{i}=(J_{i}-J_{p(t)})/(\Vert J_{i}-J_{p(i)}\Vert)
    • 회전으로부터 계산된 뼈의 방향

      di=d(Ri)=Ri[:,2](2)d_{i}=d(R_{i})=R_{i}^{[:,2]} \tag{2}
  • pose parameter TiMT_{i}^{M}TiST_{i}^{S}으로 직접 계산
    TiM=TiS(Ti,0S)1(3)T_{i}^{M}=T_{i}^{S}(T_{i,0}^{S})^{-1} \tag{3}
    • TiTT_{i}^{T} 은 rest pose 시 identity matrix
    • Ti,0ST_{i,0}^{S} : bind pose matrix로 좌표 프레임 매핑 FMFS\mathcal{F}^{M}\mapsto \mathcal{F}^{S}
    • Ti,0ST_{i,0}^{S} 는 joint positions in the rest pose of the body model를 사용하여 계산되며, β\beta가 변경될 때만 업데이트
    • J0J_{0} : (TM)1(J)(T^{M})^{-1}(J) rest pose의 joint 위치
    • J0J_{0}는 shaped vertice에서 joint regressor J\mathcal{J}에 의해 설명

Estimate the body shape β\beta

  • EshapeE_{shape}최소화하여 unposed된 joint J0J_{0}를 사용하여 신체 형태 β\beta를 추정
    Eshape=i=1K(TiM)1(Ji)Ji(M0+Bs(β))22+wsβ22(4)E_{shape}=\sum_{i=1}^{K}\left\Vert\left(T_{i}^{M}\right)^{-1}\left(J_{i}\right)-\mathcal{J}_{i}\left(\mathcal{M}_{0}+\mathcal{B}_{s}(\beta)\right)\right\Vert_{2}^{2}+w_{s}\Vert\beta\Vert_{2}^{2} \tag{4}
    • ws=0.001w_{s}=0.001 : weight for the regularization term
    • K=13K = 13 : number of joint
    • M0\mathcal{M}_{0} : mean shape → reshape vertices
    • Bs(β)\mathcal{B}_{s}(\beta) : linear blend shapes → reshape vertices
    • β22\Vert\beta\Vert_{2}^{2} : PCA 값을 최소화함으로써 각 주성분 간의 간극을 줄임

Visibility-Aware 3D Joint Detection Network

  • 카메라로 얻은 joint visibility 정보를 통해 신뢰할 수 없는 joint를 거부하고 관찰 가능한 관절만 추정
    • intput : m×mm\times m egocentric images (m=320m=320)
  • 머리에 착용하는 와이드 FoV 카메라 이미지에서 하체 관절은 상체 관절보다 상당히 작게 나타남

Network Structure for the 3D Joint Detector

  • 2D 인간 포즈 추정에 사용되는 Stacked Hourglass 아키텍처를 3D joint 추정 네트워크로 확장

stacked hourglass networks for human pose estimation
feature는 신체와 관련된 다양한 공간 관계를 가장 잘 포착하기 위해 모든 척도에 걸쳐 처리되고 통합된다. 해당 논문은 intermediate supervision과 함께 사용되는 반복적인 상향식 하향식 처리가 네트워크 성능 향상에 얼마나 중요한지 보여준다.

  • DSNT 회귀 모듈을 사용하여 히트맵에서 2D 좌표를 추정 → 효율성 증가

DSNT : differentiable spatial to numerical transform
입력 이미지의 관심 지점에 대한 수치 좌표를 추론하는 딥 러닝 접근법 연구로, 기존 convolutional neural network-based 솔루션은 heatmap matching 접근 방식 or fully connected output layer 좌표 조정 회귀이다. DSNT 계층은 훈련 가능한 매개 변수를 추가하지 않고 완전히 미분할 수 있으며 좋은 공간 일반화를 나타낸다. 히트맵 매칭과 달리 DSNT는 낮은 히트맵 해상도에서 잘 작동하므로 기존의 광범위한 fully convolutional architecture의 출력 레이어로 사용할 수 있다. 결과적으로 DSNT는 기존 기술에 비해 추론 속도와 예측 정확도 사이의 더 나은 균형을 제공한다.

1. Hourglass 모듈은 첫 번째 KK 채널의 heatmap HH와 마지막 KK 채널의 inverse depthmap DD 추론

  • Heatmap HR(m/4)×(m/4)×KH\in \mathbb{R}^{(m/4)\times(m/4)\times K}
    • Softmax 레이어에 의해 confidence map VV로 정규화
  • Inverse Depthmap DR(m/4)×(m/4)×KD\in \mathbb{R}^{(m/4)\times(m/4)\times K}
    • joint에 대한 정규화된 inverse depth 값을 포함하는 heatmap
    • 정규화된 inverse depth 값 : (dmaxd)/dmax(d_{max}-d)/d_{max}
      • dmax=2d_{max}=2(meter)는 최대 깊이
      • 카메라에 가까운 거리에는 더 높은 값, 더 먼 거리에는 near-zero 값 할당

2. 회귀 모듈은 HH에서 정규화된 confidence map VV로부터 2D2D 좌표 p\mathbf{p}를 출력

  • VV는 X 및 Y 좌표 행렬의 내적에 의해 2D2D 좌표 p\mathbf{p}로 변환
  • 신뢰 v~\tilde{v}와 깊이 dd는 각각 VVDD로 추정된 p=(x,y)\mathbf{p}=(x,y) 좌표에서 읽힘
  • 신뢰 v~\tilde{v}가 충분히 클 때 좌표 p\mathbf{p}가 유효하고 가시성 vv는 1로 설정, 그렇지 않으면 0으로 설정

3. 출력으로서 연결된 HHDD는 다음 스테이지의 입력으로 전파 = Intermediate Supervision

  • raw inverse depth 판독치는 다시 깊이 dd(meter)로 변환

4. 단일 입력 이미지가 주어지면, 4단계 네트워크는 3D3D joint 좌표가 계산되는 p\mathbf{p},D,VD,V를 출력

  • 3D3D joint 위치는 카메라 calibration matrix를 사용한 back-projecting(x,y,d)(x,y,d)으로 계산

Network Loss function

Ljointnet=LDSNT+LV+LD\mathscr{L}_{joint_{-}net}= \mathscr{L}_{DSNT}+\mathscr{L}_{V}+\mathscr{L}_{D}
  • ground truth binary visibility vgtv^{gt} : visible joint는 1, invisible joint는 0
  • LDSNT\mathscr{L}_{DSNT} : regression lossvgt=1v^{gt}=1
    LDSNT=i=1Kvigt[pigtpi22+D(ViN(pigt,σI2))](5)\mathscr{L}_{DSNT}=\sum_{i=1}^{K}v_{i}^{gt}\cdot[\Vert \mathbf{p}_{i}^{gt}-\mathbf{p}_{i}\Vert _{2}^{2}+\mathcal{D}(V_{i}\Vert\mathcal{N}(\mathbf{p}_{i}^{gt},\sigma I_{2}))] \tag{5}
    • N(μ,σ)\mathcal{N}(\mu,\sigma) : 2D Gaussian map drawn at μ  with standard deviation σ(σ=1  for training)
    • D()\mathcal{D}(\cdot\Vert \cdot) : HH가 2D Gaussian map과 유사하게 하기 위한 Jensen-Shannon 발산

Jensen–Shannon divergence
두 확률 분포 사이의 유사성을 측정하는 방법

  • LV\mathscr{L}_{V} : invisibility lossvgt=0v^{gt}=0
    LV=i=1(1vigt)Hi22(6)\mathscr{L}_{V}=\sum_{i=1}(1-v_{i}^{gt})\cdot\Vert H_{i}\Vert _{2}^{2} \tag{6}
    • 보이지 않는 joint에 대해 HH를 제로 히트맵으로 억제
    • VV에서 균일한 분포를 강화, 보이지 않는 관절에 대해 신뢰 값이 더 작아지도록 장려
  • .LD\mathscr{L}_{D} : depth lossvgt=1v^{gt}=1
    LD=i=1KvigtM(pigt,σI2)(DiDigt)22(7)\mathscr{L}_{D}=\sum_{i=1}^{K}v_{i}^{gt}\cdot\Vert \mathcal{M}(\mathbf{p}_{i}^{gt},\sigma I_{2})\ominus(D_{i}-D_{i}^{gt})\Vert _{2}^{2} \tag{7}
    • M(μ,σ)\mathcal{M}(\mu,\sigma) : 2D binary maskmap drawn at μ with radius σ
    • \ominus : 아다마르 곱 (Hadamard product)으로 같은 크기의 두 행렬의 각 성분을 곱하는 연산
    • 깊이 맵은 관심 joint 영역만 훈련 → 마스크 맵을 사용하지 않을 때 깊이 맵 출력이 0이 되는 과적합을 방지하기 위해 외부 영역이 변경되지 않도록 함

The network is trained in multiple stages

  • 2D2D 레이어는 MPII Human Pose Dataset에서 low-level texture features를 학습하도록 훈련 → 회귀 손실 LDSNT\mathscr{L}_{DSNT}만 훈련에 사용되고 visibility는 무시
  • 네트워크는 전체 손실 함수 Ljointnet\mathscr{L}_{joint _{-}net}intermediate supervision이 적용되어 훈련
  • 오른쪽 카메라 이미지를 뒤집어 출력 joint 좌표를 뒤로 뒤집어, 왼쪽 카메라 이미지와 동일한 네트워크를 사용하기 위해 두 개의 하향 카메라 뷰 사이의 대칭 활용 → 두 뷰 모두에 대한 교육 및 런타임에서 단일 네트워크를 사용할 수 있게 함

Temporally, Multi-view Consistent Joint Estimation

  • 3D joint는 좌우 하향 카메라 뷰에서 독립적으로 감지, camera clibration matrices를 사용하여 단일 3D 공간으로 재투영
  • 잘못된 감지로 인해 상대 joint와 일치하지 않는 joint의 결과가 multi-view-consistent와 시간적으로 일관되도록 필터링됨
    1. joint의 raw detection은 뼈 방향 did_{i}가 시간적으로 일관성이 없는 경우 걸러지며, 이는 프레임 간에 30° 이상의 변화로 정의

    2. 필터링된 측정은 가중치 합계를 최소화하여 multi-view-consistent 및 시간적으로 일관된 joint 위치 XX를 추정하는데 사용

      $$ E{proj}+w{d}E{dep}+w{l}E{len}+w{t}E_{temp} $$

    • 가중치 설정
      • wd=1,wl=0,wt=10w_{d}=1,w_{l}=0,w_{t}=10 : 목, 엉덩이 및 어깨를 포함한 몸통 joint
      • wd=2,wl=2,wt=1w_{d}= 2, w_{l}=2,w_{t}=1 : 팔 joint
      • wd=1,wl=5,wt=2w_{d}=1,w_{l}=5,w_{t}=2 : 다리 joint
    • Projection cost : Eproj=Σc=1CpcPcX2E_{proj} = \Sigma_{c=1}^{C}\Vert \mathbf{p}_{c} - P _{c}\cdot X\Vert _{2}
      • CC : number of views
      • pc\mathbf{p}_{c} : 2D location measurement in camera image c
      • PcP_{c} : camera c’s projection matrix
    • Depth cost : Edep=Σc=1CdcTc[3,:]X2E_{dep} = \Sigma_{c=1}^{C}\Vert d_{c}-T_{c}^{[3,:]}\cdot X\Vert _{2}
      • dcd_{c} : depth measurement in camera c
      • Tc[3,:]T_{c}^{[3,:]} : third row of the extrinsic matrix of camera c
    • Bone length consistency : Elen=XlXpX22E_{len} = \Vert X_{l}-\Vert X_{p}-X\Vert _{2}\Vert _{2}
      • 골격 길이는 초기화부터 새로운 검출 측정을 통해 평균화까지 시간이 지남에 따라 유지
      • 초기 골격 길이는 정지 자세 시 신체 모델에서 가져와 모델과 검출된 척추 길이 사이의 비율로 스케일링
      • XpX_{p} : parent joint’s position
      • XlX_{l} : bone length of joint XX
    • Temporal smoothness cost : Etemp=Xt1X2E_{temp} = \Vert X_{t-1}-X\Vert _{2}
      • Xt1X_{t-1} : joint position in the previous frame
  • 헤드셋 공간 3D joint 위치 XX→ VSLAM을 통해 획득한 현재 추정된 headset pose → 3D 세계 공간 joint 위치 JJ로 변환
  • 전체 프로세스는 직접적인 triangulation을 사용할 때보다 정확도 향상

Visual-Inertial Alignment

  • 사람의 자세는 해당 뼈의 방향을 추적하는 신체 착용 관성 센서(IMU)로 추정
  • IMU는 일반적으로 특정 초기 포즈를 사용하여 보정 → 약간 잘못 정렬된 신체 착용 IMU도 시각적 관성 일관된 포즈 추정을 방해하여 부정확한 결과를 초래

Coordinate frame transformations

(a) 사전 정의된 wear pose를 나타내는 스켈레톤 공간 RSIR^{SI}에 대한 관성 센서 회전
(b) 잘못 정렬된 IMU를 보정하는 데 사용되는 IMU 회전 오프셋 RWR^{W}

  • 시간에 따라 아래쪽 뼈 방향의 Visual-Inertial쌍을 사용하여 IMU 회전 오프셋 RWR^{W}를 추정함으로써 부정확성 확인

Computing the lower bone

  • 시간 단계 tt에 따른 뼈 회전 RtSR_{t}^{S}은 하부 뼈에 장착된 IMU를 통해 계산
    RtS=RWRtI(RSI)1R0S(8)R_{t}^{S}=R^{W}\cdot R_{t}^{I}\cdot(R^{SI})^{-1}\cdot R_{0}^{S} \tag{8}
    • 가시성 관계 X
    • RtIR_{t}^{I} : orientation read from the Inertial sensor at time tt
    • R0SR_{0}^{S} : rotation from T0ST_{0}^{S}
    • (RSI)1(R^{SI})^{-1} : FSFI\mathcal{F}^{S}\rightarrow \mathcal{F}^{I}로 프레임 매핑
  • Inertial lower bone direction
    dtI=RtI(RSI)1d(R0S)(9)d_{t}^{I}=R_{t}^{I}\cdot(R^{SI})^{-1}\cdot d(R_{0}^{S}) \tag{9}
    • di=d(Ri)=Ri[:,2]d_{i}=d(R_{i})=R_{i}^{[:,2]}
    • d(R0S)d(R_{0}^{S}) : bone direction in the rest pose

Estimate IMU rotation offset

  • IMU 회전 오프셋 RWR^{W}은 동일한 뼈의 시각적 검출기에서 측정을 사용할 수 있을 때마다 업데이트
    • prior bone direction d(R1S),,d(RtS)d(R_{1}^{S}), \ldots,d(R_{t}^{S}) = visual bone direction d1V,,dtVd_{1}^{V}, \ldots,d_{t}^{V}
  • 센서가 정확히 지정된 위치와 방향으로 착용된 경우 RW=I3R^{W}=I_{3}
  • RWR^{W}최소 자승법를 해결하여 일련의 Visual dVd^{V} 및 Inertial dId^{I} 방향으로부터 추정:
    minRWtdtVRWdtI22(10)\min_{R^{W}}\sum_{t}\Vert d_{t}^{V}-R^{W}\cdot d_{t}^{I}\Vert _{2}^{2} \tag{10}
    • 모든 (dI, dV)(d^{I},\ d^{V}) 쌍에 대해 위 식을 계산하는 것은 계산 집약적
    • 온라인 k-d 트리 구조를 가진 Algorithm 1에 설명된 온라인 k-평균 알고리즘을 사용하여 visual-inertial 쌍을 그룹화하고 RWR^{W}를 업데이트
      • At runtime, k-d 트리에서 고정된 k=200개의 클러스터 쌍 유지
      • 샘플링 전략은 군집 간 거리를 최대화 → 군집의 균일한 분포를 선호, 선형 표본의 수를 최소화

Temporal Visual-Inertial Orientation Network

  • 상부 뼈 방향은 하부 뼈 움직임과 높은 상관 관계 → 상부 뼈 움직임은 여러 방향 가능 → 상부 뼈의 시각적 관찰을 사용
    • 센서로 계측된 하부 뼈(i)와 계측되지 않은 상부 뼈(u) 구별
    • 보정된 아래 뼈 방향 RiSR_{\mathbf{i}}^{S}은 IMU offset matrix RiWR_{\mathbf{i}}^{W}으로 계산

Estimate upper bone

  • aiS=RiHaiIa_{\mathbf{i}}^{S}=R_{\mathbf{i}}^{H}\cdot a_{\mathbf{i}}^{I}

    • aiIa_{\mathbf{i}}^{I} : raw acceleration
    • RHR^{H} : RWR^{W}에서 계산된 위쪽 방향을 따라 회전하는 Heading reset을 나타내는 IMU acceleration offset matrix
  • 이전 RiSR_{\mathbf{i}}^{S}, 하부 뼈에 대한 aiSa_{\mathbf{i}}^{S}, 시각적인 상부 뼈 방향 duVd_{\mathbf{u}}^{V}의 가용성 → 비계측 상부 뼈 RuSR_{\mathbf{u}}^{S}를 추정

    • d(RuS)=duVd(R_{u}^{S})=d_{u}^{V}
    • 신체 방향에 불변하기 위해, RiSR_{\mathbf{i}}^{S}, aiSa_{\mathbf{i}}^{S}, duVd_{\mathbf{u}}^{V}는 시간 tt에서 root joint(엉덩이 중심) 방향 RrootSR_{root}^{S}에 대해 정규화:
      RN(t)=(RrootS(t))1RiS(t)(11)R^{N}(t)=(R_{root}^{S}(t))^{-1}\cdot R_{\mathbf{i}}^{S}(t) \tag{11}
    • aiSaNa_{\mathbf{i}}^{S}\rightarrow a^{N}duVdNd_{\mathbf{u}}^{V}\rightarrow d^{N} 비슷하게 정규화
    • N : Normalized torso space

Temporal visual-inertial orientation network architecture

  • 일련의 input features x=[xtn+1, ,xt]\mathbf{x}=[x_{t-n+1},\ \ldots,x_{t}]에서 계측되지 않은 골격 방향을 예측하는 함수 xyt\mathbf{x}\rightarrow y_{t}을 학습하는 작업

    • LSTM을 능가하는 Transformer network를 사용
    • 입력 시퀀스는 마지막 n=20n=20 프레임의 측정으로 구성
  • input feature vector

    xt=[rt,ωt,at,vtdt]T(12)x_{t}=[r_{t}, \omega_{t},a_{t},v_{t}\cdot d_{t}]^{T} \tag{12}
    • input feature vector는 회전, 속도 및 가속도로 대표되는 하부 뼈 움직임을 통합
    • rtr_{t} : 벡터화된 RiNR_{i}^{N}으로, 4개의 입력 뼈에 대해 [r1N(t), ,r4N(t)]T[r_{1}^{N}(t),\ \ldots,r_{4}^{N}(t)]^{T}를 나타냄 → ωt\omega_{t}, ata_{t}vtdtv_{t}\cdot d_{t}도 비슷하게 정의
    • ωiN(t)\omega_{i}^{N}(t) : RiN(t)R_{i}^{N}(t)RiN(t1)R_{i}^{N}(t-1) 사이의 각속도
    • 상부 뼈 ii의 joint가 시각적 검출기로 제공될 때, diNd_{i}^{N} 방향이 추가되고 visibility viv_{i}가 1로 설정
      • 제공되지 않을 때, vi=0.13v_i=0.1^{-3}diN=(1,1,1)d_{i}^{N}=(1,1,1) 을 사용하는 것이 모두 0으로 설정하는 것보다 성능이 더 우수
    • xtx_{t}의 차원은 4개의 IMU 계측 뼈(rt,ωt,at)(r_{t},\omega_{t},a_{t})와 4개의 비 계측 뼈(vtdt)(v_{t}\cdot d_{t})(9+3+3+3)4=72(9+3+3+3)\cdot 4=72
  • output vector

    • 벡터화된 비계측 골격 방향 yt=[r1o(t), ,r4o(t)]Ty_{t}=[r_{1}^{o}(t),\ \ldots,r_{4}^{o}(t)]^{T} 포함
    • rior_{i}^{o}가 출력 방향 Rio(t)R_{i}^{o}(t)로 reshape
    • yty_{t}의 차원은 4개의 위쪽 뼈에 대해 (9) 4=36\cdot 4=36
  • loss function

Lbonenet=yygt22+j=14vigtacos(d(Rio),digt)(13)\mathscr{L}_{bone_{-}net}=\Vert y-y^{gt}\Vert _{2}^{2}+\sum_{j=1}^{4}v_{i}^{gt}\cdot acos(d(R_{i}^{o}),d_{i}^{gt}) \tag{13}
  • orientation loss은 ground truth ygty^{gt}를 사용하여 측정
    • d(Ro)d(R^{o})는 계산된 출력 골격 방향을 나타냄
    • ground truth dgtd^{gt} 골격 방향에 의해 패널티가 발생하며, 이는 출력 골격 방향이 시각적 입력 골격 방향과 일치하도록 장려
    • 이 항은 vgt=1v^{gt}=1인 경우에만 계산
  • At run-time, 정규화된 몸통 공간의 추정 RoR^{o}는 식 (11)을 사용하여 세계 공간의 RuSR_{\mathrm{u}}^{S}로 변환

Deformable Body Model Fitting

  • 해당 연구의 파이프라인은 full body shape와 pose 추정 : joint positions J와 bone rotation RSR^{S}
    • 관찰되지 않은 관절 위치는 RSR^{S}forward kinematics와 해당 뼈 길이를 사용하여 복구
    • 전신 joint 위치 JJ를 이용하여 식(4)(4) 를 풀어 체형 업데이트
Eshape=i=1K(TiM)1(Ji)Ji(M0+Bs(β))22+wsβ22(4)E_{shape}=\sum_{i=1}^{K}\left\Vert\left(T_{i}^{M}\right)^{-1}\left(J_{i}\right)-\mathcal{J}_{i}\left(\mathcal{M}_{0}+\mathcal{B}_{s}(\beta)\right)\right\Vert_{2}^{2}+w_{s}\Vert\beta\Vert_{2}^{2} \tag{4}
  • bone rotation RSR^{S}는 검출된 visual direction output dVd^{V}를 사용하여 추가로 보정(사용 가능 시)
    • 추정된 RSR^{S}는 시간적 일관성이 있지만 모션 또는 가시성에 갑작스러운 변화가 발생할 경우 모션이 over-smoothed → 뼈 방향 RSR^{S}dVd^{V}에 더 가깝게 맞춰 해결 → 변화에 대한 더 빠른 반응 촉진
  • dVd^{V}를 사용할 수 있는 경우, 보정된 뼈 회전 RS\overline{R}^{S}를 추정:
    RˉS=Rv2v(d(RS), αdV+(1α)d(RS))RS(14)\bar{R}^{S}=R^{v2v}(d(R^{S}),\ \alpha\cdot d^{V}+(1-\alpha)\cdot d(R^{S}))\cdot R^{S} \tag{14}
    • Rv2v(v1,v2)R^{v2v}(v_{1},v_{2}) : V1V_{1}로부터 v2v_{2} 벡터로의 회전
    • a=0.8a=0.8
  • joint 위치 Jˉ\bar{J}RS\overline{R}^{S}를 사용하는 forward kinematics에 의해 업데이트
    • 추정된 joint Jˉ\bar{J}는 시간적으로 일관된 joint 추정을 위해 다음 프레임으로 전송
  • 포즈 파라미터 TMT^{M}은 식(1)(1)과 식(3)(3)RS\overline{R}^{S}Jˉ\bar{J}를 이용하여 추정
TiS=[RiSJp(i)01](1)T_{i}^{S}=\begin{bmatrix} R_{i}^{S} & J_{p(i)}\\ 0 & 1 \end{bmatrix} \tag{1}
[TiM=TiS(Ti,0S)1(3)[ T_{i}^{M}=T_{i}^{S}(T_{i,0}^{S})^{-1} \tag{3}

Results and Evaluation

  • 본 연구의 3D 포즈 추정 방법은 이전 방법과 직접 비교할 수 없음

    • 외부 카메라 기반 방법은 모든 joint를 볼 수 있어야 함
    • 이전의 visual+interial 융합 접근법은 10개 이상의 IMU를 필요로 함
    • 본 연구는 몸 전체를 포착하지 못하는 입력 스테레오 헤드웨어 뷰 및 손목과 발목에 장착된 관성 센서 4개만 사용
  • HG3D(stereo stacked hourglass 3D)는 식 (6)(6) 의 visibility awareness term없이 4.24.2절의 3D joint detector를 사용하는 시각적 전용 방법

    • 눈에 보이는 관절과 보이지 않는 관절을 모두 감지하고, 4.3절에 표시된 것처럼 두 개의 아래쪽 카메라 뷰에서 관절을 병합하여 전신 3D 관절 위치를 생성
    • 3D 골격 회전은 inverse kinematics 알고리즘을 사용하여 검출된 관절로부터 추정
    • 본 연구는 공개적으로 사용 가능한 자기중심적 데이터 세트에 대해 monocular stacked hourglass 3D를 별도로 평가했으며 경쟁력 있는 결과
  • DIP는 손목, 발목, 몸통 및 머리에 배치된 6개의 센서를 사용하는 IMU 기반 방법인 Deep Inertial Poser[14]

    • 본 연구는 머리 및 몸통의 방향과 가속도에 대한 실측값을 사용했고 비교에서는 사지 움직임만 포함
    • 지상 실측 모양과 사전 보정된 관성 측정을 사용
    • LSTM 아키텍처의 최상의 구성과 함께 20개의 과거 프레임과 5개의 미래 프레임을 포함
    • 대조적으로, 본 연구의 자체적 방법은 런타임에 신체 형태와 센서 보정을 추정하며, 미래 프레임을 사용하지 않음
  • Ours8은 손목, 발목, 팔뚝, 허벅지에 착용하는 8개의 IMU를 사용한 버전

    • 상부 뼈는 실제 측정이 가능하기에 4.54.5절은 건너뜀
    • 대신, 4.44.4절의 visual-inertial alignment을 시간 경과에 따라 8개의 IMU 모두에 적용

Quantitative evaluation

  • 재구성 결과의 정확성을 평가하기 위해 추정치와 실측치 사이의 3D joint 위치 및 방향 오류를 비교하여 시스템 평가
    - Ego-VIP 데이터 세트에 대한 결과

    - 모든 범주에서 본 연구의 방법이 HG3D 및 DIP를 능가
  • HG3D의 정확도는 보이는 joint에 대해서는 논문의 방법과 비슷하지만, 이외는 위치 오류가 상당히 높음

    • IK를 사용하여 계산된 방향은 관성 센서에서 획득할 때보다 훨씬 덜 정확
    • 소수의 관성 센서라도 joint 위치와 방향에서 자세 정확도를 크게 향상
  • DIP는 위치와 방향 모두에서 논문의 방법보다 훨씬 낮은 정확도와 높은 분산

    • 희소한 시각 정보도 IMU 기반 방법에 통합하면 연속적 정확도가 크게 안정화된다는 것을 보여줌
    • 보이지 않는 관절의 경우, 정확도는 여전히 DIP를 능가하면서 관성 센서에 전적으로 의존하기 때문에 크게 떨어짐
    • 논문의 트랜스포머 네트워크 기반 방향 추정은 DIP의 LSTM 기반 네트워크보다 분산이 적음

Qualitative evaluation

업로드중..

  • HG3D는 (a)에서 가려진 오른쪽 무릎과 발목을, (b)에서 외부 관절을 감지하지 못함
  • DIP는 (a)에서 왼쪽 무릎 올리기를, (b)에서 손 들기를 부족하게 감지하고, (c)에서 적은 IMU 입력의 포즈 모호성으로 인해 잘못된 하체 포즈를 출력
  • Ours8(dense-IMUs) 변형은 모든 뼈가 IMU로 계측되기 때문에 세 가지 범주 모두에서 최고의 성능
    • 그러나 IMU가 4개에 불과한 방법의 정확도는 Ours8과 비슷하며, HG3D 또는 DIP보다 훨씬 우수한 성능

FUTURE WORK

  • 사용자의 사지만 추적하기 때문에 환경과의 상호 작용을 모델링하지 않으며, 신체 모델의 표면에서 토폴로지 또는 질감 변화를 감지할 수 없음
    → 의자 이동, 넥타이 착용 등 토폴로지 변화, 다른 셔츠 착용 등 질감 변화 등 객체와의 상호작용 지원을 추가할 계획
    → 3D 환경 접촉을 추정함으로써 물리적으로 타당한 접근 방식을 확장할 계획이며, 다른 신체 모델과 함께 보다 현실적인 모양을 만들 계획
  • 관절 위치 정확도는 추정된 관절을 세계 공간으로 변환하는 데 사용되는 VSLAM 결과에 크게 좌우되며, VSLAM이 시간이 지남에 따라 불안정하거나 부정확한 경우 신체 자세 정확도 감소
    → 더 견고한 머리 포즈 추정을 위해 다중 전방 카메라를 사용하고 IMU를 헤드셋에 통합할 계획
  • 현재 파이프라인에서 3D joint 감지 네트워크의 결과는 연속 방향 네트워크에 공급되며, 3D joint가 잘못 감지되면 오류가 전체에 전파
    → 잘못된 탐지에 대한 견고성을 개선하는 것뿐만 아니라 결합된 네트워크를 조사할 계획
  • 현재 Physical Therapy (PT) 프로토타입과 달리, 미래의 애플리케이션 프로토타입은 양방향 텔레프레젠스를 보여줄 계획
profile
이세계 개발자입니다.

0개의 댓글