HumanSC3D 데이터셋에서 라벨로 주어지는 3D keypoints들을 이미지에 시각화 해보자.
3D keypoints 분석
HumanSC3D는 25개의 keypoint를 쓴다.
다른 keypoint데이터셋은 17개만 쓴다.
왼쪽, 오른쪽 손과 왼쪽 오른쪽 발 각각에 대해 2개씩의 keypoint들을 더 둔다.
- 추가된 keypoint가 뭔지는 잘 모르겠다.
따라서 기존 17개의 keypoint에 8개의 keypoint가 더 들어가서 총 25개가 된다.
Keypoint마다 3차원 좌표를 가지고, 동영상의 각 프레임마다 keypoint들을 가진다.
라벨의 keypoint들을 텐서로 변환했을때 shape은 동영상의 총 프레임 개수를 F라고 하면, (F, 25, 3) 이 된다.
이걸 그대로 3차원에 찍으면 다음과 같이 나온다.
범위를 설정하지 않고 찍으면 아래와 같이 나오기 때문에 꼭 xyz축의 범위를 설정해서 출력하자.
Camera Parameter 분석
Github에 데이터셋 관련 코드가 있어서 그대로 가져다 썼다.
위 코드에서 3차원 keypoint들을 2차원으로 projection할때 camera parameter관련 내용이 사용된다.
따라서 관련 내용은 이전 포스팅을 참고하면 어느정도 이해할 수 있다.
추가적으로 왜곡과 관련된 정보도 쓰이는데 Matlab의 카메라 보정관련 내용이 가장 설명이 잘 돼있다.
데이터셋의 camera parameter를 확인해보면 크게 3가지로 나뉜다.
1. extrinsics
- Extrinsics의 R, T 행렬
2. intrinsics_w_distortion
- 왜곡이 존재할때의 intrinsics 정보
3. intrinsics_wo_distortion
- 왜곡이 존재하지 않을때의 intrinsics 정보
먼저 extrinsics를 통해 3차원 데이터를 월드 좌표계로 옮기고, 왜곡이 존재할때의 intrinsics정보로 2차원에 projection해준다.
'컴퓨터 비전' 카테고리의 다른 글
Camera calibration (0) | 2024.07.06 |
---|---|
[컴퓨터 비전] Histogram Equalization (1) | 2023.03.21 |
[컴퓨터 비전] 이미지 변환(2) - Bilinear Interpolation (0) | 2023.01.21 |
[컴퓨터 비전] 이미지 변환(1) (0) | 2022.02.04 |