Super Kawaii Cute Cat Kaoani '분류 전체보기' 카테고리의 글 목록 (3 Page)
728x90

분류 전체보기 150

[PyTorch] tensor 확장하기: torch.expand vs torch.repeat vs torch.repeat_interleave

pytorch tensor를 사용하다보면 dimension을 늘려줘야하는 상황이 많이 발생한다. 이때 많이 사용하는 함수가 torch.expand, torch.repeat, torch.repeat_interleave이다. 상황마다 쓰기 편리한 함수들이 있는데 매번 까먹어서;; 내가 보려고 작성하는 비교 글이다. 1) torch.expand(*size) torch.expand 함수는 개수가 1인 차원에 대해서만 확장이 가능하며, desired size를 input으로 받는다. >>> x = torch.tensor([[1], [2], [3]]) >>> x.size() torch.Size([3, 1]) >>> x.expand(3, 4) tensor([[1, 1, 1, 1], [2, 2, 2, 2], [3, 3..

연구/PyTorch 2024.02.21

[Blender] matrix, matrix_basis, matrix_local, matrix_world관계

blender에서는 다양한 종류의 matrix를 사용하고 있다. Posebone.matrix, Posebone.matrix_basis, bone.matrix_local...등 다양한 종류의 matrix가 등장하는데..각각의 의미와 이들간의 관계에 대해서 알아보자. Posebone.matrix: armature space에서의 bone의 transformation을 의미한다. 만약 object가 rest pose를 취하고 있다면 Posebone.matrix의 값은 bone.matrix_local의 값과 동일하다. Posebone.matrix_basis: bone space(rest pose에 대해 표현한다는 의미)에 대한 bone의 transformation 값을 담고 있다. bone.matrix_loca..

연구/Blender 2024.02.19

[Blender] blender에서 skeleton joint orientation 구하기

1) parent joint에 대해 표현된 joint orientation obj = bpy.data.objects['원하는 오브젝트 이름'] pb = obj.pose.bones['원하는 posebone이름'] rotation_matrix = (pb.bone.matrix_local @ matrix_basis @ pb.bone.matrix_local.inv()).to_3x3() 위의 코드를 거치면 blender 상에서 joint의 orientation을 구할 수 있다. opengl 상에서의 orientation을 구하고 싶다면, def blender_to_opengl(mb): mb = np.array(mb) mo = np.array([ [mb[0, 0], mb[0, 2], -1 * mb[0, 1]], [m..

연구/Blender 2024.02.16

CharacterAnimationTools 사용후기

smpl-x에서 motion feature를 추출할 방법을 찾다가...굉장히 유용한 코드를 찾게 되었다!!!! https://github.com/KosukeFukazawa/CharacterAnimationTools#13-load-animation-from-amass GitHub - KosukeFukazawa/CharacterAnimationTools: Character Animation Tools for Python. Character Animation Tools for Python. Contribute to KosukeFukazawa/CharacterAnimationTools development by creating an account on GitHub. github.com bvh, smpl+h의 파..

SMPL-X skeleton 뜯어보기 & SMPL-X to SMPL+H

1) SMPL-X 살펴보기 SMPL-X의 JOINT는 총 55개이다. blender에 import했을 때 나타나는 hierarchy 구조로 살펴보면 아래와 같고, smpl-x 파일의 pose parameter 순서에 맞게 joint들을 나열해보면 아래와 같다. 아래의 list를 보면 알 수 있듯이 body joint는 22개, jaw에 해당하는 joint가 1개, eye에 해당하는 joint가 2개, hand에 해당하는 joint가 30개로 총 55개의 joint가 존재한다. SMPLX_JOINT_LIST = [ # body joint 'pelvis', 'left_hip', 'right_hip', 'spine1', 'left_knee', 'right_knee', 'spine2', 'left_ankle',..

[Blender] blender에서 skeleton bone position 구하기

1) armature space에서의 position global_location = bpy.data.objects['원하는 오브젝트'].bones['원하는 bone'].head 를 통해 접근하면 joint의 armature space에서의 position(bone의 head global position)를 바로 구할 수 있다. armature space가 world space와 같다면 이 값은 global joint를 의미한다. 2) global space에서의 position obj = bpy.data.objects['원하는 오브젝트'] global_location = obj.matrix_world @ obj.pose.bones['원하는 bone'].head

연구/Blender 2024.01.29

[Blender] viewport에서 시점 변경 python script로 구현하기

blender를 실행시키면 가장 먼저 나오는 화면인 viewport에서의 시점을 변경하는 법(pan, oribit 기능)을 python script로 어떻게 구현할 수 있을지 알아보자. 1) target 지점 변경: pan 현재 viewport view location이 (0, 0, 0)으로 세팅되어있다. 이 경우에는 viewport가 원점을 바라보게 된다. 이 값(viewport에서 바라보는 지점)을 변경하기 위해선 다음과 같은 코드를 사용하면 된다. # 현재 활성화된 3d viewport를 찾기 for area in bpy.context.screen.areas: if area.type == 'VIEW_3D': break # 3d viewport의 정보 가져오기 space_data = area.spac..

연구/Blender 2024.01.18

Motion-X dataset 관련 내용 정리

https://github.com/IDEA-Research/Motion-X#dataset-download 표정과 손동작까지 포함하는 데이터를 만들었다는 말 같다.) Motion-X dataset에서는 모두 같은 format(SMPL-X)을 사용하여 data를 표현하고 있다. 위의 8가지 데이터셋 + Online videos을 모두 사용하여 dataset을 구축하였다보니 확실해 Motion-X의 dataset 양이 방대한 것을 확인할 수 있다. 참고로 원본 Mocap dataset(AMASS, GRAB, EgoBody)와 원본 RGB 비디오는 제공하지 않는다. 또한 Mocap subset에 대해서는 text labels와 facial expression만 제공하며 Non-Mocap Subset에 대해서는 ..

728x90
728x90