🔨 fix missing files
This commit is contained in:
parent
64e0e48d29
commit
436c03c149
@ -2,11 +2,10 @@
|
||||
@ Date: 2021-01-13 18:50:31
|
||||
@ Author: Qing Shuai
|
||||
@ LastEditors: Qing Shuai
|
||||
@ LastEditTime: 2021-03-28 22:11:58
|
||||
@ FilePath: /EasyMocap/code/dataset/__init__.py
|
||||
@ LastEditTime: 2021-04-14 16:24:15
|
||||
@ FilePath: /EasyMocapRelease/easymocap/dataset/__init__.py
|
||||
'''
|
||||
from .config import CONFIG
|
||||
from .base import ImageFolder
|
||||
from .mv1pmf import MV1PMF
|
||||
from .mv1pmf_mirror import MV1PMF_Mirror
|
||||
from .mvmpmf import MVMPMF
|
||||
from .mv1pmf_mirror import MV1PMF_Mirror
|
8
easymocap/estimator/__init__.py
Normal file
8
easymocap/estimator/__init__.py
Normal file
@ -0,0 +1,8 @@
|
||||
'''
|
||||
@ Date: 2021-04-14 16:25:48
|
||||
@ Author: Qing Shuai
|
||||
@ LastEditors: Qing Shuai
|
||||
@ LastEditTime: 2021-04-14 16:25:49
|
||||
@ FilePath: /EasyMocapRelease/easymocap/estimator/__init__.py
|
||||
'''
|
||||
from .SPIN import SPIN, init_with_spin
|
15
easymocap/mytools/__init__.py
Normal file
15
easymocap/mytools/__init__.py
Normal file
@ -0,0 +1,15 @@
|
||||
'''
|
||||
@ Date: 2021-03-28 21:09:45
|
||||
@ Author: Qing Shuai
|
||||
@ LastEditors: Qing Shuai
|
||||
@ LastEditTime: 2021-04-02 21:57:11
|
||||
@ FilePath: /EasyMocap/easymocap/mytools/__init__.py
|
||||
'''
|
||||
from .vis_base import merge, colors_bar_rgb, plot_bbox, plot_keypoints, plot_line, get_rgb, plot_cross, plot_points2d
|
||||
from .file_utils import getFileList, read_json, save_json, read_annot
|
||||
from .camera_utils import read_camera, write_camera, write_extri, write_intri, read_intri
|
||||
from .camera_utils import Undistort
|
||||
from .utils import Timer
|
||||
from .reconstruction import batch_triangulate, projectN3, simple_recon_person
|
||||
from .cmd_loader import load_parser, parse_parser
|
||||
from .writer import FileWriter
|
33
easymocap/mytools/utils.py
Normal file
33
easymocap/mytools/utils.py
Normal file
@ -0,0 +1,33 @@
|
||||
'''
|
||||
@ Date: 2021-01-15 11:12:00
|
||||
@ Author: Qing Shuai
|
||||
@ LastEditors: Qing Shuai
|
||||
@ LastEditTime: 2021-03-08 21:07:48
|
||||
@ FilePath: /EasyMocap/code/mytools/utils.py
|
||||
'''
|
||||
import time
|
||||
import tabulate
|
||||
class Timer:
|
||||
records = {}
|
||||
@classmethod
|
||||
def report(cls):
|
||||
header = ['', 'Time(ms)']
|
||||
contents = []
|
||||
for key, val in cls.records.items():
|
||||
contents.append(['{:20s}'.format(key), '{:.2f}'.format(sum(val)/len(val))])
|
||||
print(tabulate.tabulate(contents, header, tablefmt='fancy_grid'))
|
||||
|
||||
def __init__(self, name, silent=False):
|
||||
self.name = name
|
||||
self.silent = silent
|
||||
if name not in Timer.records.keys():
|
||||
Timer.records[name] = []
|
||||
|
||||
def __enter__(self):
|
||||
self.start = time.time()
|
||||
|
||||
def __exit__(self, exc_type, exc_value, exc_tb):
|
||||
end = time.time()
|
||||
Timer.records[self.name].append((end-self.start)*1000)
|
||||
if not self.silent:
|
||||
print('-> [{:20s}]: {:5.1f}ms'.format(self.name, (end-self.start)*1000))
|
1
easymocap/visualize/__init__.py
Normal file
1
easymocap/visualize/__init__.py
Normal file
@ -0,0 +1 @@
|
||||
from .renderer import Renderer
|
109
easymocap/visualize/geometry.py
Normal file
109
easymocap/visualize/geometry.py
Normal file
@ -0,0 +1,109 @@
|
||||
'''
|
||||
@ Date: 2021-01-17 22:44:34
|
||||
@ Author: Qing Shuai
|
||||
@ LastEditors: Qing Shuai
|
||||
@ LastEditTime: 2021-04-03 20:00:02
|
||||
@ FilePath: /EasyMocap/code/visualize/geometry.py
|
||||
'''
|
||||
import numpy as np
|
||||
import cv2
|
||||
import numpy as np
|
||||
|
||||
def create_ground(
|
||||
center=[0, 0, 0], xdir=[1, 0, 0], ydir=[0, 1, 0], # 位置
|
||||
step=1, xrange=10, yrange=10, # 尺寸
|
||||
white=[1., 1., 1.], black=[0.,0.,0.], # 颜色
|
||||
two_sides=True
|
||||
):
|
||||
if isinstance(center, list):
|
||||
center = np.array(center)
|
||||
xdir = np.array(xdir)
|
||||
ydir = np.array(ydir)
|
||||
print(center, xdir, ydir)
|
||||
xdir = xdir * step
|
||||
ydir = ydir * step
|
||||
vertls, trils, colls = [],[],[]
|
||||
cnt = 0
|
||||
min_x = -xrange if two_sides else 0
|
||||
min_y = -yrange if two_sides else 0
|
||||
for i in range(min_x, xrange+1):
|
||||
for j in range(min_y, yrange+1):
|
||||
point0 = center + i*xdir + j*ydir
|
||||
point1 = center + (i+1)*xdir + j*ydir
|
||||
point2 = center + (i+1)*xdir + (j+1)*ydir
|
||||
point3 = center + (i)*xdir + (j+1)*ydir
|
||||
if (i%2==0 and j%2==0) or (i%2==1 and j%2==1):
|
||||
col = white
|
||||
else:
|
||||
col = black
|
||||
vert = np.stack([point0, point1, point2, point3])
|
||||
col = np.stack([col for _ in range(vert.shape[0])])
|
||||
tri = np.array([[2, 3, 0], [0, 1, 2]]) + vert.shape[0] * cnt
|
||||
cnt += 1
|
||||
vertls.append(vert)
|
||||
trils.append(tri)
|
||||
colls.append(col)
|
||||
vertls = np.vstack(vertls)
|
||||
trils = np.vstack(trils)
|
||||
colls = np.vstack(colls)
|
||||
return {'vertices': vertls, 'faces': trils, 'colors': colls, 'name': 'ground'}
|
||||
|
||||
|
||||
def get_rotation_from_two_directions(direc0, direc1):
|
||||
direc0 = direc0/np.linalg.norm(direc0)
|
||||
direc1 = direc1/np.linalg.norm(direc1)
|
||||
rotdir = np.cross(direc0, direc1)
|
||||
if np.linalg.norm(rotdir) < 1e-2:
|
||||
return np.eye(3)
|
||||
rotdir = rotdir/np.linalg.norm(rotdir)
|
||||
rotdir = rotdir * np.arccos(np.dot(direc0, direc1))
|
||||
rotmat, _ = cv2.Rodrigues(rotdir)
|
||||
return rotmat
|
||||
|
||||
PLANE_VERTICES = np.array([
|
||||
[0., 0., 0.],
|
||||
[1., 0., 0.],
|
||||
[0., 0., 1.],
|
||||
[1., 0., 1.],
|
||||
[0., 1., 0.],
|
||||
[1., 1., 0.],
|
||||
[0., 1., 1.],
|
||||
[1., 1., 1.]])
|
||||
PLANE_FACES = np.array([
|
||||
[4, 7, 5],
|
||||
[4, 6, 7],
|
||||
[0, 2, 4],
|
||||
[2, 6, 4],
|
||||
[0, 1, 2],
|
||||
[1, 3, 2],
|
||||
[1, 5, 7],
|
||||
[1, 7, 3],
|
||||
[2, 3, 7],
|
||||
[2, 7, 6],
|
||||
[0, 4, 1],
|
||||
[1, 4, 5]], dtype=np.int32)
|
||||
|
||||
def create_plane(normal, center, dx=1, dy=1, dz=0.005, color=[0.8, 0.8, 0.8]):
|
||||
vertices = PLANE_VERTICES.copy()
|
||||
vertices[:, 0] = vertices[:, 0]*dx - dx/2
|
||||
vertices[:, 1] = vertices[:, 1]*dy - dy/2
|
||||
vertices[:, 2] = vertices[:, 2]*dz - dz/2
|
||||
# 根据normal计算旋转
|
||||
rotmat = get_rotation_from_two_directions(
|
||||
np.array([0, 0, 1]), np.array(normal))
|
||||
vertices = vertices @ rotmat.T
|
||||
vertices += np.array(center).reshape(-1, 3)
|
||||
return {'vertices': vertices, 'faces': PLANE_FACES.copy(), 'name': 'plane'}
|
||||
|
||||
def create_cameras(cameras):
|
||||
vertex = np.array([[0.203982,0.061435,0.00717595],[-0.116019,0.061435,0.00717595],[-0.116019,-0.178565,0.00717595],[0.203982,-0.178565,0.00717595],[0.203982,0.061435,-0.092824],[-0.116019,0.061435,-0.092824],[-0.116019,-0.178565,-0.092824],[0.203982,-0.178565,-0.092824],[0.131154,-0.0361827,0.00717595],[0.131154,-0.0361827,0.092176],[0.122849,-0.015207,0.00717595],[0.122849,-0.015207,0.092176],[0.109589,0.00304419,0.00717595],[0.109589,0.00304419,0.092176],[0.092206,0.0174247,0.00717595],[0.092206,0.0174247,0.092176],[0.071793,0.0270302,0.00717595],[0.071793,0.0270302,0.092176],[0.0496327,0.0312577,0.00717595],[0.0496327,0.0312577,0.092176],[0.0271172,0.0298412,0.00717595],[0.0271172,0.0298412,0.092176],[0.00566135,0.0228697,0.00717595],[0.00566135,0.0228697,0.092176],[-0.0133865,0.0107812,0.00717595],[-0.0133865,0.0107812,0.092176],[-0.02883,-0.0056643,0.00717595],[-0.02883,-0.0056643,0.092176],[-0.0396985,-0.0254336,0.00717595],[-0.0396985,-0.0254336,0.092176],[-0.045309,-0.0472848,0.00717595],[-0.045309,-0.0472848,0.092176],[-0.045309,-0.069845,0.00717595],[-0.045309,-0.069845,0.092176],[-0.0396985,-0.091696,0.00717595],[-0.0396985,-0.091696,0.092176],[-0.02883,-0.111466,0.00717595],[-0.02883,-0.111466,0.092176],[-0.0133865,-0.127911,0.00717595],[-0.0133865,-0.127911,0.092176],[0.00566135,-0.14,0.00717595],[0.00566135,-0.14,0.092176],[0.0271172,-0.146971,0.00717595],[0.0271172,-0.146971,0.092176],[0.0496327,-0.148388,0.00717595],[0.0496327,-0.148388,0.092176],[0.071793,-0.14416,0.00717595],[0.071793,-0.14416,0.092176],[0.092206,-0.134554,0.00717595],[0.092206,-0.134554,0.092176],[0.109589,-0.120174,0.00717595],[0.109589,-0.120174,0.092176],[0.122849,-0.101923,0.00717595],[0.122849,-0.101923,0.092176],[0.131154,-0.080947,0.00717595],[0.131154,-0.080947,0.092176],[0.133982,-0.058565,0.00717595],[0.133982,-0.058565,0.092176],[-0.0074325,0.061435,-0.0372285],[-0.0074325,0.074435,-0.0372285],[-0.0115845,0.061435,-0.0319846],[-0.0115845,0.074435,-0.0319846],[-0.018215,0.061435,-0.0274218],[-0.018215,0.074435,-0.0274218],[-0.0269065,0.061435,-0.0238267],[-0.0269065,0.074435,-0.0238267],[-0.0371125,0.061435,-0.0214253],[-0.0371125,0.074435,-0.0214253],[-0.048193,0.061435,-0.0203685],[-0.048193,0.074435,-0.0203685],[-0.0594505,0.061435,-0.0207226],[-0.0594505,0.074435,-0.0207226],[-0.0701785,0.061435,-0.0224655],[-0.0701785,0.074435,-0.0224655],[-0.0797025,0.061435,-0.0254875],[-0.0797025,0.074435,-0.0254875],[-0.0874245,0.061435,-0.0295989],[-0.0874245,0.074435,-0.0295989],[-0.0928585,0.061435,-0.0345412],[-0.0928585,0.074435,-0.0345412],[-0.0956635,0.061435,-0.040004],[-0.0956635,0.074435,-0.040004],[-0.0956635,0.061435,-0.045644],[-0.0956635,0.074435,-0.045644],[-0.0928585,0.061435,-0.051107],[-0.0928585,0.074435,-0.051107],[-0.0874245,0.061435,-0.056049],[-0.0874245,0.074435,-0.056049],[-0.0797025,0.061435,-0.0601605],[-0.0797025,0.074435,-0.0601605],[-0.0701785,0.061435,-0.0631825],[-0.0701785,0.074435,-0.0631825],[-0.0594505,0.061435,-0.0649255],[-0.0594505,0.074435,-0.0649255],[-0.048193,0.061435,-0.0652795],[-0.048193,0.074435,-0.0652795],[-0.0371125,0.061435,-0.064223],[-0.0371125,0.074435,-0.064223],[-0.0269065,0.061435,-0.0618215],[-0.0269065,0.074435,-0.0618215],[-0.018215,0.061435,-0.0582265],[-0.018215,0.074435,-0.0582265],[-0.0115845,0.061435,-0.0536635],[-0.0115845,0.074435,-0.0536635],[-0.0074325,0.061435,-0.0484195],[-0.0074325,0.074435,-0.0484195],[-0.0060185,0.061435,-0.0428241],[-0.0060185,0.074435,-0.0428241]])*0.5
|
||||
tri = [[4,3,2],[1,4,2],[6,1,2],[6,5,1],[8,4,1],[5,8,1],[3,7,2],[7,6,2],[4,7,3],[8,7,4],[6,7,5],[7,8,5],[43,42,44],[42,43,41],[43,46,45],[46,43,44],[58,9,57],[9,58,10],[55,58,57],[56,58,55],[53,54,55],[54,56,55],[12,11,9],[12,9,10],[21,20,22],[20,21,19],[34,33,32],[32,33,31],[35,36,37],[37,36,38],[33,36,35],[36,33,34],[29,30,31],[30,32,31],[40,39,37],[40,37,38],[39,40,41],[40,42,41],[47,48,49],[49,48,50],[48,47,45],[46,48,45],[49,52,51],[52,49,50],[52,53,51],[52,54,53],[14,15,13],[15,14,16],[11,14,13],[12,14,11],[18,17,15],[18,15,16],[17,18,19],[18,20,19],[27,35,37],[17,27,15],[27,53,55],[27,49,51],[11,27,9],[27,47,49],[27,33,35],[23,27,21],[27,39,41],[27,55,57],[9,27,57],[15,27,13],[39,27,37],[47,27,45],[53,27,51],[27,11,13],[43,27,41],[27,29,31],[27,43,45],[27,17,19],[21,27,19],[33,27,31],[27,23,25],[23,24,25],[25,24,26],[24,21,22],[24,23,21],[28,36,34],[42,28,44],[28,58,56],[54,28,56],[52,28,54],[28,34,32],[28,46,44],[18,28,20],[20,28,22],[30,28,32],[40,28,42],[58,28,10],[28,48,46],[28,12,10],[28,14,12],[36,28,38],[28,24,22],[28,40,38],[48,28,50],[28,52,50],[14,28,16],[28,18,16],[24,28,26],[28,27,25],[28,25,26],[28,30,29],[27,28,29],[108,59,60],[59,108,107],[62,59,61],[59,62,60],[103,102,101],[102,103,104],[64,61,63],[64,62,61],[70,67,69],[67,70,68],[70,71,72],[71,70,69],[83,84,82],[83,82,81],[86,85,87],[86,87,88],[86,83,85],[83,86,84],[77,78,75],[75,78,76],[105,106,103],[103,106,104],[108,106,107],[106,105,107],[97,96,95],[96,97,98],[96,93,95],[93,96,94],[93,92,91],[92,93,94],[79,105,103],[59,79,61],[79,93,91],[83,79,85],[85,79,87],[61,79,63],[79,103,101],[65,79,67],[79,99,97],[89,79,91],[79,77,75],[79,59,107],[67,79,69],[79,89,87],[79,73,71],[105,79,107],[79,97,95],[79,71,69],[79,83,81],[99,79,101],[93,79,95],[79,65,63],[73,79,75],[99,100,97],[97,100,98],[102,100,101],[100,99,101],[89,90,87],[87,90,88],[90,89,91],[92,90,91],[66,67,68],[66,65,67],[66,64,63],[65,66,63],[74,75,76],[74,73,75],[71,74,72],[73,74,71],[80,106,108],[74,80,72],[86,80,84],[84,80,82],[64,80,62],[80,108,60],[80,100,102],[62,80,60],[66,80,64],[80,70,72],[80,102,104],[96,80,94],[80,90,92],[70,80,68],[80,86,88],[78,80,76],[106,80,104],[80,96,98],[80,92,94],[100,80,98],[90,80,88],[80,66,68],[80,74,76],[82,80,81],[80,79,81],[80,78,77],[79,80,77]]
|
||||
tri = [a[::-1] for a in tri]
|
||||
triangles = np.array(tri) - 1
|
||||
meshes = []
|
||||
for nv, (key, camera) in enumerate(cameras.items()):
|
||||
vertices = (camera['R'].T @ (vertex.T - camera['T'])).T
|
||||
meshes.append({
|
||||
'vertices': vertices, 'faces': triangles, 'name': 'camera_{}'.format(nv), 'vid': nv
|
||||
})
|
||||
return meshes
|
341
easymocap/visualize/renderer.py
Normal file
341
easymocap/visualize/renderer.py
Normal file
@ -0,0 +1,341 @@
|
||||
import os
|
||||
import numpy as np
|
||||
import cv2
|
||||
import pyrender
|
||||
import trimesh
|
||||
import copy
|
||||
# 这个顺序是BGR的。虽然render的使用的是RGB的,但是由于和图像拼接了,所以又变成BGR的了
|
||||
colors = [
|
||||
# (0.5, 0.2, 0.2, 1.), # Defalut BGR
|
||||
(.5, .5, .7, 1.), # Pink BGR
|
||||
(.44, .50, .98, 1.), # Red
|
||||
(.7, .7, .6, 1.), # Neutral
|
||||
(.5, .5, .7, 1.), # Blue
|
||||
(.5, .55, .3, 1.), # capsule
|
||||
(.3, .5, .55, 1.), # Yellow
|
||||
# (.6, .6, .6, 1.), # gray
|
||||
(.9, 1., 1., 1.),
|
||||
(0.95, 0.74, 0.65, 1.),
|
||||
(.9, .7, .7, 1.)
|
||||
]
|
||||
|
||||
colors_table = {
|
||||
# colorblind/print/copy safe:
|
||||
'_blue': [0.65098039, 0.74117647, 0.85882353],
|
||||
'_pink': [.9, .7, .7],
|
||||
'_mint': [ 166/255., 229/255., 204/255.],
|
||||
'_mint2': [ 202/255., 229/255., 223/255.],
|
||||
'_green': [ 153/255., 216/255., 201/255.],
|
||||
'_green2': [ 171/255., 221/255., 164/255.],
|
||||
'_red': [ 251/255., 128/255., 114/255.],
|
||||
'_orange': [ 253/255., 174/255., 97/255.],
|
||||
'_yellow': [ 250/255., 230/255., 154/255.],
|
||||
'r':[255/255,0,0],
|
||||
'g':[0,255/255,0],
|
||||
'b':[0,0,255/255],
|
||||
'k':[0,0,0],
|
||||
'y':[255/255,255/255,0],
|
||||
'purple':[128/255,0,128/255]
|
||||
}
|
||||
|
||||
def get_colors(pid):
|
||||
if isinstance(pid, int):
|
||||
return colors[pid % len(colors)]
|
||||
elif isinstance(pid, str):
|
||||
return colors_table[pid]
|
||||
|
||||
from pyrender import RenderFlags
|
||||
render_flags = {
|
||||
'flip_wireframe': False,
|
||||
'all_wireframe': False,
|
||||
'all_solid': True,
|
||||
'shadows': False, # TODO:bug exists in shadow mode
|
||||
'vertex_normals': False,
|
||||
'face_normals': False,
|
||||
'cull_faces': False, # set to False
|
||||
'point_size': 1.0,
|
||||
'rgba':True
|
||||
}
|
||||
|
||||
flags = RenderFlags.NONE
|
||||
if render_flags['flip_wireframe']:
|
||||
flags |= RenderFlags.FLIP_WIREFRAME
|
||||
elif render_flags['all_wireframe']:
|
||||
flags |= RenderFlags.ALL_WIREFRAME
|
||||
elif render_flags['all_solid']:
|
||||
flags |= RenderFlags.ALL_SOLID
|
||||
|
||||
if render_flags['shadows']:
|
||||
flags |= RenderFlags.SHADOWS_DIRECTIONAL | RenderFlags.SHADOWS_SPOT
|
||||
if render_flags['vertex_normals']:
|
||||
flags |= RenderFlags.VERTEX_NORMALS
|
||||
if render_flags['face_normals']:
|
||||
flags |= RenderFlags.FACE_NORMALS
|
||||
if not render_flags['cull_faces']:
|
||||
flags |= RenderFlags.SKIP_CULL_FACES
|
||||
if render_flags['rgba']:
|
||||
flags |= RenderFlags.RGBA
|
||||
|
||||
|
||||
class Renderer(object):
|
||||
def __init__(self, focal_length=1000, height=512, width=512, faces=None,
|
||||
bg_color=[1.0, 1.0, 1.0, 0.0], down_scale=1, # render 配置
|
||||
extra_mesh=[]
|
||||
):
|
||||
self.renderer = pyrender.OffscreenRenderer(height, width)
|
||||
self.faces = faces
|
||||
self.focal_length = focal_length
|
||||
self.bg_color = bg_color
|
||||
self.ambient_light = (0.5, 0.5, 0.5)
|
||||
self.down_scale = down_scale
|
||||
self.extra_mesh = extra_mesh
|
||||
|
||||
def add_light(self, scene):
|
||||
trans = [0, 0, 0]
|
||||
# Use 3 directional lights
|
||||
# Create light source
|
||||
light = pyrender.DirectionalLight(color=[1.0, 1.0, 1.0], intensity=3)
|
||||
light_forward = np.eye(4)
|
||||
light_forward[:3, 3] = np.array([0, 1, 1])
|
||||
scene.add(light, pose=light_forward)
|
||||
light_z = np.eye(4)
|
||||
light_z[:3, :3] = cv2.Rodrigues(np.array([-np.pi/2, 0, 0]))[0]
|
||||
scene.add(light, pose=light_z)
|
||||
|
||||
def render(self, render_data, cameras, images,
|
||||
use_white=False, add_back=True,
|
||||
ret_depth=False, ret_color=False):
|
||||
# Need to flip x-axis
|
||||
rot = trimesh.transformations.rotation_matrix(
|
||||
np.radians(180), [1, 0, 0])
|
||||
output_images, output_colors, output_depths = [], [], []
|
||||
for nv, img_ in enumerate(images):
|
||||
if use_white:
|
||||
img = np.zeros_like(img_, dtype=np.uint8) + 255
|
||||
else:
|
||||
img = img_.copy()
|
||||
K, R, T = cameras['K'][nv].copy(), cameras['R'][nv], cameras['T'][nv]
|
||||
# down scale the image to speed up rendering
|
||||
img = cv2.resize(img, None, fx=1/self.down_scale, fy=1/self.down_scale)
|
||||
K[:2, :] /= self.down_scale
|
||||
|
||||
self.renderer.viewport_height = img.shape[0]
|
||||
self.renderer.viewport_width = img.shape[1]
|
||||
scene = pyrender.Scene(bg_color=self.bg_color,
|
||||
ambient_light=self.ambient_light)
|
||||
for iextra, _mesh in enumerate(self.extra_mesh):
|
||||
if True:
|
||||
mesh = _mesh.copy()
|
||||
trans_cam = np.eye(4)
|
||||
trans_cam[:3, :3] = R
|
||||
trans_cam[:3, 3:] = T
|
||||
mesh.apply_transform(trans_cam)
|
||||
mesh.apply_transform(rot)
|
||||
# mesh.vertices = np.asarray(mesh.vertices) @ R.T + T.T
|
||||
mesh_ = pyrender.Mesh.from_trimesh(mesh)
|
||||
scene.add(mesh_, 'extra{}'.format(iextra))
|
||||
else:
|
||||
vert = np.asarray(_mesh.vertices).copy()
|
||||
faces = np.asarray(_mesh.faces)
|
||||
vert = vert @ R.T + T.T
|
||||
mesh = trimesh.Trimesh(vert, faces, process=False)
|
||||
mesh.apply_transform(rot)
|
||||
material = pyrender.MetallicRoughnessMaterial(
|
||||
metallicFactor=0.0,
|
||||
alphaMode='OPAQUE',
|
||||
baseColorFactor=(0., 0., 0., 1.))
|
||||
mesh = pyrender.Mesh.from_trimesh(
|
||||
mesh,
|
||||
material=material)
|
||||
scene.add(mesh, 'extra{}'.format(iextra))
|
||||
for trackId, data in render_data.items():
|
||||
vert = data['vertices'].copy()
|
||||
faces = data['faces']
|
||||
vert = vert @ R.T + T.T
|
||||
if 'colors' not in data.keys():
|
||||
# 如果使用了vid这个键,那么可视化的颜色使用vid的颜色
|
||||
col = get_colors(data.get('vid', trackId))
|
||||
mesh = trimesh.Trimesh(vert, faces, process=False)
|
||||
mesh.apply_transform(rot)
|
||||
material = pyrender.MetallicRoughnessMaterial(
|
||||
metallicFactor=0.0,
|
||||
alphaMode='OPAQUE',
|
||||
baseColorFactor=col)
|
||||
mesh = pyrender.Mesh.from_trimesh(
|
||||
mesh,
|
||||
material=material)
|
||||
scene.add(mesh, data['name'])
|
||||
else:
|
||||
mesh = trimesh.Trimesh(vert, faces, vertex_colors=data['colors'], process=False)
|
||||
mesh.apply_transform(rot)
|
||||
material = pyrender.MetallicRoughnessMaterial(
|
||||
metallicFactor=0.0,
|
||||
alphaMode='OPAQUE',
|
||||
baseColorFactor=(1., 1., 1.))
|
||||
mesh = pyrender.Mesh.from_trimesh(mesh, material=material)
|
||||
scene.add(mesh, data['name'])
|
||||
camera_pose = np.eye(4)
|
||||
camera = pyrender.camera.IntrinsicsCamera(fx=K[0, 0], fy=K[1, 1], cx=K[0, 2], cy=K[1, 2])
|
||||
scene.add(camera, pose=camera_pose)
|
||||
self.add_light(scene)
|
||||
# pyrender.Viewer(scene, use_raymond_lighting=True)
|
||||
# Alpha channel was not working previously need to check again
|
||||
# Until this is fixed use hack with depth image to get the opacity
|
||||
rend_rgba, rend_depth = self.renderer.render(scene, flags=flags)
|
||||
if rend_rgba.shape[2] == 3: # fail to generate transparent channel
|
||||
valid_mask = (rend_depth > 0)[:, :, None]
|
||||
rend_rgba = np.dstack((rend_rgba, (valid_mask*255).astype(np.uint8)))
|
||||
rend_rgba = rend_rgba[..., [2, 1, 0, 3]]
|
||||
if add_back:
|
||||
rend_cat = cv2.addWeighted(
|
||||
cv2.bitwise_and(img, 255 - rend_rgba[:, :, 3:4].repeat(3, 2)), 1,
|
||||
cv2.bitwise_and(rend_rgba[:, :, :3], rend_rgba[:, :, 3:4].repeat(3, 2)), 1, 0)
|
||||
else:
|
||||
rend_cat = rend_rgba
|
||||
|
||||
output_colors.append(rend_rgba)
|
||||
output_depths.append(rend_depth)
|
||||
output_images.append(rend_cat)
|
||||
if ret_depth:
|
||||
return output_images, output_depths
|
||||
elif ret_color:
|
||||
return output_colors
|
||||
else:
|
||||
return output_images
|
||||
|
||||
def _render_multiview(self, vertices, K, R, T, imglist, trackId=0, return_depth=False, return_color=False,
|
||||
bg_color=[0.0, 0.0, 0.0, 0.0], camera=None):
|
||||
# List to store rendered scenes
|
||||
output_images, output_colors, output_depths = [], [], []
|
||||
# Need to flip x-axis
|
||||
rot = trimesh.transformations.rotation_matrix(
|
||||
np.radians(180), [1, 0, 0])
|
||||
nViews = len(imglist)
|
||||
for nv in range(nViews):
|
||||
img = imglist[nv]
|
||||
self.renderer.viewport_height = img.shape[0]
|
||||
self.renderer.viewport_width = img.shape[1]
|
||||
# Create a scene for each image and render all meshes
|
||||
scene = pyrender.Scene(bg_color=bg_color,
|
||||
ambient_light=(0.3, 0.3, 0.3))
|
||||
camera_pose = np.eye(4)
|
||||
|
||||
# for every person in the scene
|
||||
if isinstance(vertices, dict):
|
||||
for trackId, data in vertices.items():
|
||||
vert = data['vertices'].copy()
|
||||
faces = data['faces']
|
||||
col = data.get('col', trackId)
|
||||
vert = vert @ R[nv].T + T[nv]
|
||||
mesh = trimesh.Trimesh(vert, faces)
|
||||
mesh.apply_transform(rot)
|
||||
trans = [0, 0, 0]
|
||||
|
||||
material = pyrender.MetallicRoughnessMaterial(
|
||||
metallicFactor=0.0,
|
||||
alphaMode='OPAQUE',
|
||||
baseColorFactor=colors[col % len(colors)])
|
||||
mesh = pyrender.Mesh.from_trimesh(
|
||||
mesh,
|
||||
material=material)
|
||||
scene.add(mesh, 'mesh')
|
||||
else:
|
||||
verts = vertices @ R[nv].T + T[nv]
|
||||
mesh = trimesh.Trimesh(verts, self.faces)
|
||||
mesh.apply_transform(rot)
|
||||
trans = [0, 0, 0]
|
||||
|
||||
material = pyrender.MetallicRoughnessMaterial(
|
||||
metallicFactor=0.0,
|
||||
alphaMode='OPAQUE',
|
||||
baseColorFactor=colors[trackId % len(colors)])
|
||||
mesh = pyrender.Mesh.from_trimesh(
|
||||
mesh,
|
||||
material=material)
|
||||
scene.add(mesh, 'mesh')
|
||||
|
||||
if camera is not None:
|
||||
light = pyrender.PointLight(color=[1.0, 1.0, 1.0], intensity=70)
|
||||
light_pose = np.eye(4)
|
||||
light_pose[:3, 3] = [0, 0, 4.5]
|
||||
scene.add(light, pose=light_pose)
|
||||
|
||||
light_pose[:3, 3] = [0, 1, 4]
|
||||
scene.add(light, pose=light_pose)
|
||||
|
||||
light_pose[:3, 3] = [0, -1, 4]
|
||||
scene.add(light, pose=light_pose)
|
||||
else:
|
||||
trans = [0, 0, 0]
|
||||
# Use 3 directional lights
|
||||
# Create light source
|
||||
light = pyrender.DirectionalLight(color=[1.0, 1.0, 1.0], intensity=1)
|
||||
light_pose = np.eye(4)
|
||||
light_pose[:3, 3] = np.array([0, -1, 1]) + trans
|
||||
scene.add(light, pose=light_pose)
|
||||
light_pose[:3, 3] = np.array([0, 1, 1]) + trans
|
||||
scene.add(light, pose=light_pose)
|
||||
light_pose[:3, 3] = np.array([1, 1, 2]) + trans
|
||||
scene.add(light, pose=light_pose)
|
||||
if camera is None:
|
||||
if K is None:
|
||||
camera_center = np.array([img.shape[1] / 2., img.shape[0] / 2.])
|
||||
camera = pyrender.camera.IntrinsicsCamera(fx=self.focal_length, fy=self.focal_length, cx=camera_center[0], cy=camera_center[1])
|
||||
else:
|
||||
camera = pyrender.camera.IntrinsicsCamera(fx=K[nv][0, 0], fy=K[nv][1, 1], cx=K[nv][0, 2], cy=K[nv][1, 2])
|
||||
scene.add(camera, pose=camera_pose)
|
||||
# Alpha channel was not working previously need to check again
|
||||
# Until this is fixed use hack with depth image to get the opacity
|
||||
color, rend_depth = self.renderer.render(scene, flags=flags)
|
||||
# color = color[::-1,::-1]
|
||||
# rend_depth = rend_depth[::-1,::-1]
|
||||
output_depths.append(rend_depth)
|
||||
color = color.astype(np.uint8)
|
||||
valid_mask = (rend_depth > 0)[:, :, None]
|
||||
if color.shape[2] == 3: # 在服务器上透明通道失败
|
||||
color = np.dstack((color, (valid_mask*255).astype(np.uint8)))
|
||||
output_colors.append(color)
|
||||
output_img = (color[:, :, :3] * valid_mask +
|
||||
(1 - valid_mask) * img)
|
||||
|
||||
output_img = output_img.astype(np.uint8)
|
||||
output_images.append(output_img)
|
||||
if return_depth:
|
||||
return output_images, output_depths
|
||||
elif return_color:
|
||||
return output_colors
|
||||
else:
|
||||
return output_images
|
||||
|
||||
def render_results(img, render_data, cam_params, outname=None, rotate=False, degree=90, axis=[1.,0.,0],
|
||||
fix_center=None):
|
||||
render_data = copy.deepcopy(render_data)
|
||||
render = Renderer(height=1024, width=1024, faces=None)
|
||||
Ks, Rs, Ts = [cam_params['K']], [cam_params['Rc']], [cam_params['Tc']]
|
||||
imgsrender = render.render_multiview(render_data, Ks, Rs, Ts, [img], return_color=True)[0]
|
||||
render0 = cv2.addWeighted(cv2.bitwise_and(img, 255 - imgsrender[:, :, 3:4].repeat(3, 2)), 1, imgsrender[:, :, :3], 1, 0.0)
|
||||
if rotate:
|
||||
# simple rotate the vertices
|
||||
if fix_center is None:
|
||||
center = np.mean(np.vstack([v['vertices'] for i, v in render_data.items()]), axis=0, keepdims=True)
|
||||
new_center = center.copy()
|
||||
new_center[:, 0:2] = 0
|
||||
else:
|
||||
center = fix_center.copy()
|
||||
new_center = fix_center.copy()
|
||||
new_center[:, 2] *= 1.5
|
||||
direc = np.array(axis)
|
||||
rot, _ = cv2.Rodrigues(direc*degree/90*np.pi/2)
|
||||
for key in render_data.keys():
|
||||
vertices = render_data[key]['vertices']
|
||||
vert = (vertices - center) @ rot.T + new_center
|
||||
render_data[key]['vertices'] = vert
|
||||
blank = np.zeros(())
|
||||
blank = np.zeros((img.shape[0], img.shape[1], 3), dtype=img.dtype) + 255
|
||||
imgsrender = render.render_multiview(render_data, Ks, Rs, Ts, [blank], return_color=True)[0]
|
||||
render1 = cv2.addWeighted(cv2.bitwise_and(blank, 255- imgsrender[:, :, 3:4].repeat(3, 2)), 1, imgsrender[:, :, :3], 1, 0.0)
|
||||
render0 = np.vstack([render0, render1])
|
||||
if outname is not None:
|
||||
os.makedirs(os.path.dirname(outname), exist_ok=True)
|
||||
cv2.imwrite(outname, render0)
|
||||
return render0
|
77
easymocap/visualize/skelmodel.py
Normal file
77
easymocap/visualize/skelmodel.py
Normal file
@ -0,0 +1,77 @@
|
||||
'''
|
||||
@ Date: 2021-01-17 21:38:19
|
||||
@ Author: Qing Shuai
|
||||
@ LastEditors: Qing Shuai
|
||||
@ LastEditTime: 2021-01-22 23:08:18
|
||||
@ FilePath: /EasyMocap/code/visualize/skelmodel.py
|
||||
'''
|
||||
import numpy as np
|
||||
import cv2
|
||||
from os.path import join
|
||||
import os
|
||||
|
||||
def calTransformation(v_i, v_j, r, adaptr=False, ratio=10):
|
||||
""" from to vertices to T
|
||||
|
||||
Arguments:
|
||||
v_i {} -- [description]
|
||||
v_j {[type]} -- [description]
|
||||
"""
|
||||
xaxis = np.array([1, 0, 0])
|
||||
v = (v_i + v_j)/2
|
||||
direc = (v_i - v_j)
|
||||
length = np.linalg.norm(direc)
|
||||
direc = direc/length
|
||||
rotdir = np.cross(xaxis, direc)
|
||||
rotdir = rotdir/np.linalg.norm(rotdir)
|
||||
rotdir = rotdir * np.arccos(np.dot(direc, xaxis))
|
||||
rotmat, _ = cv2.Rodrigues(rotdir)
|
||||
# set the minimal radius for the finger and face
|
||||
shrink = max(length/ratio, 0.005)
|
||||
eigval = np.array([[length/2/r, 0, 0], [0, shrink, 0], [0, 0, shrink]])
|
||||
T = np.eye(4)
|
||||
T[:3,:3] = rotmat @ eigval @ rotmat.T
|
||||
T[:3, 3] = v
|
||||
return T, r, length
|
||||
|
||||
class SkelModel:
|
||||
def __init__(self, nJoints, kintree) -> None:
|
||||
self.nJoints = nJoints
|
||||
self.kintree = kintree
|
||||
cur_dir = os.path.dirname(__file__)
|
||||
faces = np.loadtxt(join(cur_dir, 'sphere_faces_20.txt'), dtype=np.int)
|
||||
self.vertices = np.loadtxt(join(cur_dir, 'sphere_vertices_20.txt'))
|
||||
# compose faces
|
||||
faces_all = []
|
||||
for nj in range(nJoints):
|
||||
faces_all.append(faces + nj*self.vertices.shape[0])
|
||||
for nk in range(len(kintree)):
|
||||
faces_all.append(faces + nJoints*self.vertices.shape[0] + nk*self.vertices.shape[0])
|
||||
self.faces = np.vstack(faces_all)
|
||||
|
||||
def __call__(self, keypoints3d, id=0, return_verts=True, return_tensor=False):
|
||||
vertices_all = []
|
||||
r = 0.02
|
||||
# joints
|
||||
for nj in range(self.nJoints):
|
||||
if nj > 25:
|
||||
r_ = r * 0.4
|
||||
else:
|
||||
r_ = r
|
||||
if keypoints3d[nj, -1] < 0.01:
|
||||
vertices_all.append(self.vertices*0.001)
|
||||
continue
|
||||
vertices_all.append(self.vertices*r_ + keypoints3d[nj:nj+1, :3])
|
||||
# limb
|
||||
for nk, (i, j) in enumerate(self.kintree):
|
||||
if keypoints3d[i][-1] < 0.1 or keypoints3d[j][-1] < 0.1:
|
||||
vertices_all.append(self.vertices*0.001)
|
||||
continue
|
||||
T, _, length = calTransformation(keypoints3d[i, :3], keypoints3d[j, :3], r=1)
|
||||
if length > 2: # 超过两米的
|
||||
vertices_all.append(self.vertices*0.001)
|
||||
continue
|
||||
vertices = self.vertices @ T[:3, :3].T + T[:3, 3:].T
|
||||
vertices_all.append(vertices)
|
||||
vertices = np.vstack(vertices_all)
|
||||
return vertices[None, :, :]
|
1520
easymocap/visualize/sphere_faces_20.txt
Normal file
1520
easymocap/visualize/sphere_faces_20.txt
Normal file
File diff suppressed because it is too large
Load Diff
762
easymocap/visualize/sphere_vertices_20.txt
Normal file
762
easymocap/visualize/sphere_vertices_20.txt
Normal file
@ -0,0 +1,762 @@
|
||||
0.000 0.000 1.000
|
||||
0.000 0.000 -1.000
|
||||
0.156 0.000 0.988
|
||||
0.155 0.024 0.988
|
||||
0.149 0.048 0.988
|
||||
0.139 0.071 0.988
|
||||
0.127 0.092 0.988
|
||||
0.111 0.111 0.988
|
||||
0.092 0.127 0.988
|
||||
0.071 0.139 0.988
|
||||
0.048 0.149 0.988
|
||||
0.024 0.155 0.988
|
||||
0.000 0.156 0.988
|
||||
-0.024 0.155 0.988
|
||||
-0.048 0.149 0.988
|
||||
-0.071 0.139 0.988
|
||||
-0.092 0.127 0.988
|
||||
-0.111 0.111 0.988
|
||||
-0.127 0.092 0.988
|
||||
-0.139 0.071 0.988
|
||||
-0.149 0.048 0.988
|
||||
-0.155 0.024 0.988
|
||||
-0.156 0.000 0.988
|
||||
-0.155 -0.024 0.988
|
||||
-0.149 -0.048 0.988
|
||||
-0.139 -0.071 0.988
|
||||
-0.127 -0.092 0.988
|
||||
-0.111 -0.111 0.988
|
||||
-0.092 -0.127 0.988
|
||||
-0.071 -0.139 0.988
|
||||
-0.048 -0.149 0.988
|
||||
-0.024 -0.155 0.988
|
||||
-0.000 -0.156 0.988
|
||||
0.024 -0.155 0.988
|
||||
0.048 -0.149 0.988
|
||||
0.071 -0.139 0.988
|
||||
0.092 -0.127 0.988
|
||||
0.111 -0.111 0.988
|
||||
0.127 -0.092 0.988
|
||||
0.139 -0.071 0.988
|
||||
0.149 -0.048 0.988
|
||||
0.155 -0.024 0.988
|
||||
0.309 0.000 0.951
|
||||
0.305 0.048 0.951
|
||||
0.294 0.095 0.951
|
||||
0.275 0.140 0.951
|
||||
0.250 0.182 0.951
|
||||
0.219 0.219 0.951
|
||||
0.182 0.250 0.951
|
||||
0.140 0.275 0.951
|
||||
0.095 0.294 0.951
|
||||
0.048 0.305 0.951
|
||||
0.000 0.309 0.951
|
||||
-0.048 0.305 0.951
|
||||
-0.095 0.294 0.951
|
||||
-0.140 0.275 0.951
|
||||
-0.182 0.250 0.951
|
||||
-0.219 0.219 0.951
|
||||
-0.250 0.182 0.951
|
||||
-0.275 0.140 0.951
|
||||
-0.294 0.095 0.951
|
||||
-0.305 0.048 0.951
|
||||
-0.309 0.000 0.951
|
||||
-0.305 -0.048 0.951
|
||||
-0.294 -0.095 0.951
|
||||
-0.275 -0.140 0.951
|
||||
-0.250 -0.182 0.951
|
||||
-0.219 -0.219 0.951
|
||||
-0.182 -0.250 0.951
|
||||
-0.140 -0.275 0.951
|
||||
-0.095 -0.294 0.951
|
||||
-0.048 -0.305 0.951
|
||||
-0.000 -0.309 0.951
|
||||
0.048 -0.305 0.951
|
||||
0.095 -0.294 0.951
|
||||
0.140 -0.275 0.951
|
||||
0.182 -0.250 0.951
|
||||
0.219 -0.219 0.951
|
||||
0.250 -0.182 0.951
|
||||
0.275 -0.140 0.951
|
||||
0.294 -0.095 0.951
|
||||
0.305 -0.048 0.951
|
||||
0.454 0.000 0.891
|
||||
0.448 0.071 0.891
|
||||
0.432 0.140 0.891
|
||||
0.405 0.206 0.891
|
||||
0.367 0.267 0.891
|
||||
0.321 0.321 0.891
|
||||
0.267 0.367 0.891
|
||||
0.206 0.405 0.891
|
||||
0.140 0.432 0.891
|
||||
0.071 0.448 0.891
|
||||
0.000 0.454 0.891
|
||||
-0.071 0.448 0.891
|
||||
-0.140 0.432 0.891
|
||||
-0.206 0.405 0.891
|
||||
-0.267 0.367 0.891
|
||||
-0.321 0.321 0.891
|
||||
-0.367 0.267 0.891
|
||||
-0.405 0.206 0.891
|
||||
-0.432 0.140 0.891
|
||||
-0.448 0.071 0.891
|
||||
-0.454 0.000 0.891
|
||||
-0.448 -0.071 0.891
|
||||
-0.432 -0.140 0.891
|
||||
-0.405 -0.206 0.891
|
||||
-0.367 -0.267 0.891
|
||||
-0.321 -0.321 0.891
|
||||
-0.267 -0.367 0.891
|
||||
-0.206 -0.405 0.891
|
||||
-0.140 -0.432 0.891
|
||||
-0.071 -0.448 0.891
|
||||
-0.000 -0.454 0.891
|
||||
0.071 -0.448 0.891
|
||||
0.140 -0.432 0.891
|
||||
0.206 -0.405 0.891
|
||||
0.267 -0.367 0.891
|
||||
0.321 -0.321 0.891
|
||||
0.367 -0.267 0.891
|
||||
0.405 -0.206 0.891
|
||||
0.432 -0.140 0.891
|
||||
0.448 -0.071 0.891
|
||||
0.588 0.000 0.809
|
||||
0.581 0.092 0.809
|
||||
0.559 0.182 0.809
|
||||
0.524 0.267 0.809
|
||||
0.476 0.345 0.809
|
||||
0.416 0.416 0.809
|
||||
0.345 0.476 0.809
|
||||
0.267 0.524 0.809
|
||||
0.182 0.559 0.809
|
||||
0.092 0.581 0.809
|
||||
0.000 0.588 0.809
|
||||
-0.092 0.581 0.809
|
||||
-0.182 0.559 0.809
|
||||
-0.267 0.524 0.809
|
||||
-0.345 0.476 0.809
|
||||
-0.416 0.416 0.809
|
||||
-0.476 0.345 0.809
|
||||
-0.524 0.267 0.809
|
||||
-0.559 0.182 0.809
|
||||
-0.581 0.092 0.809
|
||||
-0.588 0.000 0.809
|
||||
-0.581 -0.092 0.809
|
||||
-0.559 -0.182 0.809
|
||||
-0.524 -0.267 0.809
|
||||
-0.476 -0.345 0.809
|
||||
-0.416 -0.416 0.809
|
||||
-0.345 -0.476 0.809
|
||||
-0.267 -0.524 0.809
|
||||
-0.182 -0.559 0.809
|
||||
-0.092 -0.581 0.809
|
||||
-0.000 -0.588 0.809
|
||||
0.092 -0.581 0.809
|
||||
0.182 -0.559 0.809
|
||||
0.267 -0.524 0.809
|
||||
0.345 -0.476 0.809
|
||||
0.416 -0.416 0.809
|
||||
0.476 -0.345 0.809
|
||||
0.524 -0.267 0.809
|
||||
0.559 -0.182 0.809
|
||||
0.581 -0.092 0.809
|
||||
0.707 0.000 0.707
|
||||
0.698 0.111 0.707
|
||||
0.672 0.219 0.707
|
||||
0.630 0.321 0.707
|
||||
0.572 0.416 0.707
|
||||
0.500 0.500 0.707
|
||||
0.416 0.572 0.707
|
||||
0.321 0.630 0.707
|
||||
0.219 0.672 0.707
|
||||
0.111 0.698 0.707
|
||||
0.000 0.707 0.707
|
||||
-0.111 0.698 0.707
|
||||
-0.219 0.672 0.707
|
||||
-0.321 0.630 0.707
|
||||
-0.416 0.572 0.707
|
||||
-0.500 0.500 0.707
|
||||
-0.572 0.416 0.707
|
||||
-0.630 0.321 0.707
|
||||
-0.672 0.219 0.707
|
||||
-0.698 0.111 0.707
|
||||
-0.707 0.000 0.707
|
||||
-0.698 -0.111 0.707
|
||||
-0.672 -0.219 0.707
|
||||
-0.630 -0.321 0.707
|
||||
-0.572 -0.416 0.707
|
||||
-0.500 -0.500 0.707
|
||||
-0.416 -0.572 0.707
|
||||
-0.321 -0.630 0.707
|
||||
-0.219 -0.672 0.707
|
||||
-0.111 -0.698 0.707
|
||||
-0.000 -0.707 0.707
|
||||
0.111 -0.698 0.707
|
||||
0.219 -0.672 0.707
|
||||
0.321 -0.630 0.707
|
||||
0.416 -0.572 0.707
|
||||
0.500 -0.500 0.707
|
||||
0.572 -0.416 0.707
|
||||
0.630 -0.321 0.707
|
||||
0.672 -0.219 0.707
|
||||
0.698 -0.111 0.707
|
||||
0.809 0.000 0.588
|
||||
0.799 0.127 0.588
|
||||
0.769 0.250 0.588
|
||||
0.721 0.367 0.588
|
||||
0.655 0.476 0.588
|
||||
0.572 0.572 0.588
|
||||
0.476 0.655 0.588
|
||||
0.367 0.721 0.588
|
||||
0.250 0.769 0.588
|
||||
0.127 0.799 0.588
|
||||
0.000 0.809 0.588
|
||||
-0.127 0.799 0.588
|
||||
-0.250 0.769 0.588
|
||||
-0.367 0.721 0.588
|
||||
-0.476 0.655 0.588
|
||||
-0.572 0.572 0.588
|
||||
-0.655 0.476 0.588
|
||||
-0.721 0.367 0.588
|
||||
-0.769 0.250 0.588
|
||||
-0.799 0.127 0.588
|
||||
-0.809 0.000 0.588
|
||||
-0.799 -0.127 0.588
|
||||
-0.769 -0.250 0.588
|
||||
-0.721 -0.367 0.588
|
||||
-0.655 -0.476 0.588
|
||||
-0.572 -0.572 0.588
|
||||
-0.476 -0.655 0.588
|
||||
-0.367 -0.721 0.588
|
||||
-0.250 -0.769 0.588
|
||||
-0.127 -0.799 0.588
|
||||
-0.000 -0.809 0.588
|
||||
0.127 -0.799 0.588
|
||||
0.250 -0.769 0.588
|
||||
0.367 -0.721 0.588
|
||||
0.476 -0.655 0.588
|
||||
0.572 -0.572 0.588
|
||||
0.655 -0.476 0.588
|
||||
0.721 -0.367 0.588
|
||||
0.769 -0.250 0.588
|
||||
0.799 -0.127 0.588
|
||||
0.891 0.000 0.454
|
||||
0.880 0.139 0.454
|
||||
0.847 0.275 0.454
|
||||
0.794 0.405 0.454
|
||||
0.721 0.524 0.454
|
||||
0.630 0.630 0.454
|
||||
0.524 0.721 0.454
|
||||
0.405 0.794 0.454
|
||||
0.275 0.847 0.454
|
||||
0.139 0.880 0.454
|
||||
0.000 0.891 0.454
|
||||
-0.139 0.880 0.454
|
||||
-0.275 0.847 0.454
|
||||
-0.405 0.794 0.454
|
||||
-0.524 0.721 0.454
|
||||
-0.630 0.630 0.454
|
||||
-0.721 0.524 0.454
|
||||
-0.794 0.405 0.454
|
||||
-0.847 0.275 0.454
|
||||
-0.880 0.139 0.454
|
||||
-0.891 0.000 0.454
|
||||
-0.880 -0.139 0.454
|
||||
-0.847 -0.275 0.454
|
||||
-0.794 -0.405 0.454
|
||||
-0.721 -0.524 0.454
|
||||
-0.630 -0.630 0.454
|
||||
-0.524 -0.721 0.454
|
||||
-0.405 -0.794 0.454
|
||||
-0.275 -0.847 0.454
|
||||
-0.139 -0.880 0.454
|
||||
-0.000 -0.891 0.454
|
||||
0.139 -0.880 0.454
|
||||
0.275 -0.847 0.454
|
||||
0.405 -0.794 0.454
|
||||
0.524 -0.721 0.454
|
||||
0.630 -0.630 0.454
|
||||
0.721 -0.524 0.454
|
||||
0.794 -0.405 0.454
|
||||
0.847 -0.275 0.454
|
||||
0.880 -0.139 0.454
|
||||
0.951 0.000 0.309
|
||||
0.939 0.149 0.309
|
||||
0.905 0.294 0.309
|
||||
0.847 0.432 0.309
|
||||
0.769 0.559 0.309
|
||||
0.672 0.672 0.309
|
||||
0.559 0.769 0.309
|
||||
0.432 0.847 0.309
|
||||
0.294 0.905 0.309
|
||||
0.149 0.939 0.309
|
||||
0.000 0.951 0.309
|
||||
-0.149 0.939 0.309
|
||||
-0.294 0.905 0.309
|
||||
-0.432 0.847 0.309
|
||||
-0.559 0.769 0.309
|
||||
-0.672 0.672 0.309
|
||||
-0.769 0.559 0.309
|
||||
-0.847 0.432 0.309
|
||||
-0.905 0.294 0.309
|
||||
-0.939 0.149 0.309
|
||||
-0.951 0.000 0.309
|
||||
-0.939 -0.149 0.309
|
||||
-0.905 -0.294 0.309
|
||||
-0.847 -0.432 0.309
|
||||
-0.769 -0.559 0.309
|
||||
-0.672 -0.672 0.309
|
||||
-0.559 -0.769 0.309
|
||||
-0.432 -0.847 0.309
|
||||
-0.294 -0.905 0.309
|
||||
-0.149 -0.939 0.309
|
||||
-0.000 -0.951 0.309
|
||||
0.149 -0.939 0.309
|
||||
0.294 -0.905 0.309
|
||||
0.432 -0.847 0.309
|
||||
0.559 -0.769 0.309
|
||||
0.672 -0.672 0.309
|
||||
0.769 -0.559 0.309
|
||||
0.847 -0.432 0.309
|
||||
0.905 -0.294 0.309
|
||||
0.939 -0.149 0.309
|
||||
0.988 0.000 0.156
|
||||
0.976 0.155 0.156
|
||||
0.939 0.305 0.156
|
||||
0.880 0.448 0.156
|
||||
0.799 0.581 0.156
|
||||
0.698 0.698 0.156
|
||||
0.581 0.799 0.156
|
||||
0.448 0.880 0.156
|
||||
0.305 0.939 0.156
|
||||
0.155 0.976 0.156
|
||||
0.000 0.988 0.156
|
||||
-0.155 0.976 0.156
|
||||
-0.305 0.939 0.156
|
||||
-0.448 0.880 0.156
|
||||
-0.581 0.799 0.156
|
||||
-0.698 0.698 0.156
|
||||
-0.799 0.581 0.156
|
||||
-0.880 0.448 0.156
|
||||
-0.939 0.305 0.156
|
||||
-0.976 0.155 0.156
|
||||
-0.988 0.000 0.156
|
||||
-0.976 -0.155 0.156
|
||||
-0.939 -0.305 0.156
|
||||
-0.880 -0.448 0.156
|
||||
-0.799 -0.581 0.156
|
||||
-0.698 -0.698 0.156
|
||||
-0.581 -0.799 0.156
|
||||
-0.448 -0.880 0.156
|
||||
-0.305 -0.939 0.156
|
||||
-0.155 -0.976 0.156
|
||||
-0.000 -0.988 0.156
|
||||
0.155 -0.976 0.156
|
||||
0.305 -0.939 0.156
|
||||
0.448 -0.880 0.156
|
||||
0.581 -0.799 0.156
|
||||
0.698 -0.698 0.156
|
||||
0.799 -0.581 0.156
|
||||
0.880 -0.448 0.156
|
||||
0.939 -0.305 0.156
|
||||
0.976 -0.155 0.156
|
||||
1.000 0.000 0.000
|
||||
0.988 0.156 0.000
|
||||
0.951 0.309 0.000
|
||||
0.891 0.454 0.000
|
||||
0.809 0.588 0.000
|
||||
0.707 0.707 0.000
|
||||
0.588 0.809 0.000
|
||||
0.454 0.891 0.000
|
||||
0.309 0.951 0.000
|
||||
0.156 0.988 0.000
|
||||
0.000 1.000 0.000
|
||||
-0.156 0.988 0.000
|
||||
-0.309 0.951 0.000
|
||||
-0.454 0.891 0.000
|
||||
-0.588 0.809 0.000
|
||||
-0.707 0.707 0.000
|
||||
-0.809 0.588 0.000
|
||||
-0.891 0.454 0.000
|
||||
-0.951 0.309 0.000
|
||||
-0.988 0.156 0.000
|
||||
-1.000 0.000 0.000
|
||||
-0.988 -0.156 0.000
|
||||
-0.951 -0.309 0.000
|
||||
-0.891 -0.454 0.000
|
||||
-0.809 -0.588 0.000
|
||||
-0.707 -0.707 0.000
|
||||
-0.588 -0.809 0.000
|
||||
-0.454 -0.891 0.000
|
||||
-0.309 -0.951 0.000
|
||||
-0.156 -0.988 0.000
|
||||
-0.000 -1.000 0.000
|
||||
0.156 -0.988 0.000
|
||||
0.309 -0.951 0.000
|
||||
0.454 -0.891 0.000
|
||||
0.588 -0.809 0.000
|
||||
0.707 -0.707 0.000
|
||||
0.809 -0.588 0.000
|
||||
0.891 -0.454 0.000
|
||||
0.951 -0.309 0.000
|
||||
0.988 -0.156 0.000
|
||||
0.988 0.000 -0.156
|
||||
0.976 0.155 -0.156
|
||||
0.939 0.305 -0.156
|
||||
0.880 0.448 -0.156
|
||||
0.799 0.581 -0.156
|
||||
0.698 0.698 -0.156
|
||||
0.581 0.799 -0.156
|
||||
0.448 0.880 -0.156
|
||||
0.305 0.939 -0.156
|
||||
0.155 0.976 -0.156
|
||||
0.000 0.988 -0.156
|
||||
-0.155 0.976 -0.156
|
||||
-0.305 0.939 -0.156
|
||||
-0.448 0.880 -0.156
|
||||
-0.581 0.799 -0.156
|
||||
-0.698 0.698 -0.156
|
||||
-0.799 0.581 -0.156
|
||||
-0.880 0.448 -0.156
|
||||
-0.939 0.305 -0.156
|
||||
-0.976 0.155 -0.156
|
||||
-0.988 0.000 -0.156
|
||||
-0.976 -0.155 -0.156
|
||||
-0.939 -0.305 -0.156
|
||||
-0.880 -0.448 -0.156
|
||||
-0.799 -0.581 -0.156
|
||||
-0.698 -0.698 -0.156
|
||||
-0.581 -0.799 -0.156
|
||||
-0.448 -0.880 -0.156
|
||||
-0.305 -0.939 -0.156
|
||||
-0.155 -0.976 -0.156
|
||||
-0.000 -0.988 -0.156
|
||||
0.155 -0.976 -0.156
|
||||
0.305 -0.939 -0.156
|
||||
0.448 -0.880 -0.156
|
||||
0.581 -0.799 -0.156
|
||||
0.698 -0.698 -0.156
|
||||
0.799 -0.581 -0.156
|
||||
0.880 -0.448 -0.156
|
||||
0.939 -0.305 -0.156
|
||||
0.976 -0.155 -0.156
|
||||
0.951 0.000 -0.309
|
||||
0.939 0.149 -0.309
|
||||
0.905 0.294 -0.309
|
||||
0.847 0.432 -0.309
|
||||
0.769 0.559 -0.309
|
||||
0.672 0.672 -0.309
|
||||
0.559 0.769 -0.309
|
||||
0.432 0.847 -0.309
|
||||
0.294 0.905 -0.309
|
||||
0.149 0.939 -0.309
|
||||
0.000 0.951 -0.309
|
||||
-0.149 0.939 -0.309
|
||||
-0.294 0.905 -0.309
|
||||
-0.432 0.847 -0.309
|
||||
-0.559 0.769 -0.309
|
||||
-0.672 0.672 -0.309
|
||||
-0.769 0.559 -0.309
|
||||
-0.847 0.432 -0.309
|
||||
-0.905 0.294 -0.309
|
||||
-0.939 0.149 -0.309
|
||||
-0.951 0.000 -0.309
|
||||
-0.939 -0.149 -0.309
|
||||
-0.905 -0.294 -0.309
|
||||
-0.847 -0.432 -0.309
|
||||
-0.769 -0.559 -0.309
|
||||
-0.672 -0.672 -0.309
|
||||
-0.559 -0.769 -0.309
|
||||
-0.432 -0.847 -0.309
|
||||
-0.294 -0.905 -0.309
|
||||
-0.149 -0.939 -0.309
|
||||
-0.000 -0.951 -0.309
|
||||
0.149 -0.939 -0.309
|
||||
0.294 -0.905 -0.309
|
||||
0.432 -0.847 -0.309
|
||||
0.559 -0.769 -0.309
|
||||
0.672 -0.672 -0.309
|
||||
0.769 -0.559 -0.309
|
||||
0.847 -0.432 -0.309
|
||||
0.905 -0.294 -0.309
|
||||
0.939 -0.149 -0.309
|
||||
0.891 0.000 -0.454
|
||||
0.880 0.139 -0.454
|
||||
0.847 0.275 -0.454
|
||||
0.794 0.405 -0.454
|
||||
0.721 0.524 -0.454
|
||||
0.630 0.630 -0.454
|
||||
0.524 0.721 -0.454
|
||||
0.405 0.794 -0.454
|
||||
0.275 0.847 -0.454
|
||||
0.139 0.880 -0.454
|
||||
0.000 0.891 -0.454
|
||||
-0.139 0.880 -0.454
|
||||
-0.275 0.847 -0.454
|
||||
-0.405 0.794 -0.454
|
||||
-0.524 0.721 -0.454
|
||||
-0.630 0.630 -0.454
|
||||
-0.721 0.524 -0.454
|
||||
-0.794 0.405 -0.454
|
||||
-0.847 0.275 -0.454
|
||||
-0.880 0.139 -0.454
|
||||
-0.891 0.000 -0.454
|
||||
-0.880 -0.139 -0.454
|
||||
-0.847 -0.275 -0.454
|
||||
-0.794 -0.405 -0.454
|
||||
-0.721 -0.524 -0.454
|
||||
-0.630 -0.630 -0.454
|
||||
-0.524 -0.721 -0.454
|
||||
-0.405 -0.794 -0.454
|
||||
-0.275 -0.847 -0.454
|
||||
-0.139 -0.880 -0.454
|
||||
-0.000 -0.891 -0.454
|
||||
0.139 -0.880 -0.454
|
||||
0.275 -0.847 -0.454
|
||||
0.405 -0.794 -0.454
|
||||
0.524 -0.721 -0.454
|
||||
0.630 -0.630 -0.454
|
||||
0.721 -0.524 -0.454
|
||||
0.794 -0.405 -0.454
|
||||
0.847 -0.275 -0.454
|
||||
0.880 -0.139 -0.454
|
||||
0.809 0.000 -0.588
|
||||
0.799 0.127 -0.588
|
||||
0.769 0.250 -0.588
|
||||
0.721 0.367 -0.588
|
||||
0.655 0.476 -0.588
|
||||
0.572 0.572 -0.588
|
||||
0.476 0.655 -0.588
|
||||
0.367 0.721 -0.588
|
||||
0.250 0.769 -0.588
|
||||
0.127 0.799 -0.588
|
||||
0.000 0.809 -0.588
|
||||
-0.127 0.799 -0.588
|
||||
-0.250 0.769 -0.588
|
||||
-0.367 0.721 -0.588
|
||||
-0.476 0.655 -0.588
|
||||
-0.572 0.572 -0.588
|
||||
-0.655 0.476 -0.588
|
||||
-0.721 0.367 -0.588
|
||||
-0.769 0.250 -0.588
|
||||
-0.799 0.127 -0.588
|
||||
-0.809 0.000 -0.588
|
||||
-0.799 -0.127 -0.588
|
||||
-0.769 -0.250 -0.588
|
||||
-0.721 -0.367 -0.588
|
||||
-0.655 -0.476 -0.588
|
||||
-0.572 -0.572 -0.588
|
||||
-0.476 -0.655 -0.588
|
||||
-0.367 -0.721 -0.588
|
||||
-0.250 -0.769 -0.588
|
||||
-0.127 -0.799 -0.588
|
||||
-0.000 -0.809 -0.588
|
||||
0.127 -0.799 -0.588
|
||||
0.250 -0.769 -0.588
|
||||
0.367 -0.721 -0.588
|
||||
0.476 -0.655 -0.588
|
||||
0.572 -0.572 -0.588
|
||||
0.655 -0.476 -0.588
|
||||
0.721 -0.367 -0.588
|
||||
0.769 -0.250 -0.588
|
||||
0.799 -0.127 -0.588
|
||||
0.707 0.000 -0.707
|
||||
0.698 0.111 -0.707
|
||||
0.672 0.219 -0.707
|
||||
0.630 0.321 -0.707
|
||||
0.572 0.416 -0.707
|
||||
0.500 0.500 -0.707
|
||||
0.416 0.572 -0.707
|
||||
0.321 0.630 -0.707
|
||||
0.219 0.672 -0.707
|
||||
0.111 0.698 -0.707
|
||||
0.000 0.707 -0.707
|
||||
-0.111 0.698 -0.707
|
||||
-0.219 0.672 -0.707
|
||||
-0.321 0.630 -0.707
|
||||
-0.416 0.572 -0.707
|
||||
-0.500 0.500 -0.707
|
||||
-0.572 0.416 -0.707
|
||||
-0.630 0.321 -0.707
|
||||
-0.672 0.219 -0.707
|
||||
-0.698 0.111 -0.707
|
||||
-0.707 0.000 -0.707
|
||||
-0.698 -0.111 -0.707
|
||||
-0.672 -0.219 -0.707
|
||||
-0.630 -0.321 -0.707
|
||||
-0.572 -0.416 -0.707
|
||||
-0.500 -0.500 -0.707
|
||||
-0.416 -0.572 -0.707
|
||||
-0.321 -0.630 -0.707
|
||||
-0.219 -0.672 -0.707
|
||||
-0.111 -0.698 -0.707
|
||||
-0.000 -0.707 -0.707
|
||||
0.111 -0.698 -0.707
|
||||
0.219 -0.672 -0.707
|
||||
0.321 -0.630 -0.707
|
||||
0.416 -0.572 -0.707
|
||||
0.500 -0.500 -0.707
|
||||
0.572 -0.416 -0.707
|
||||
0.630 -0.321 -0.707
|
||||
0.672 -0.219 -0.707
|
||||
0.698 -0.111 -0.707
|
||||
0.588 0.000 -0.809
|
||||
0.581 0.092 -0.809
|
||||
0.559 0.182 -0.809
|
||||
0.524 0.267 -0.809
|
||||
0.476 0.345 -0.809
|
||||
0.416 0.416 -0.809
|
||||
0.345 0.476 -0.809
|
||||
0.267 0.524 -0.809
|
||||
0.182 0.559 -0.809
|
||||
0.092 0.581 -0.809
|
||||
0.000 0.588 -0.809
|
||||
-0.092 0.581 -0.809
|
||||
-0.182 0.559 -0.809
|
||||
-0.267 0.524 -0.809
|
||||
-0.345 0.476 -0.809
|
||||
-0.416 0.416 -0.809
|
||||
-0.476 0.345 -0.809
|
||||
-0.524 0.267 -0.809
|
||||
-0.559 0.182 -0.809
|
||||
-0.581 0.092 -0.809
|
||||
-0.588 0.000 -0.809
|
||||
-0.581 -0.092 -0.809
|
||||
-0.559 -0.182 -0.809
|
||||
-0.524 -0.267 -0.809
|
||||
-0.476 -0.345 -0.809
|
||||
-0.416 -0.416 -0.809
|
||||
-0.345 -0.476 -0.809
|
||||
-0.267 -0.524 -0.809
|
||||
-0.182 -0.559 -0.809
|
||||
-0.092 -0.581 -0.809
|
||||
-0.000 -0.588 -0.809
|
||||
0.092 -0.581 -0.809
|
||||
0.182 -0.559 -0.809
|
||||
0.267 -0.524 -0.809
|
||||
0.345 -0.476 -0.809
|
||||
0.416 -0.416 -0.809
|
||||
0.476 -0.345 -0.809
|
||||
0.524 -0.267 -0.809
|
||||
0.559 -0.182 -0.809
|
||||
0.581 -0.092 -0.809
|
||||
0.454 0.000 -0.891
|
||||
0.448 0.071 -0.891
|
||||
0.432 0.140 -0.891
|
||||
0.405 0.206 -0.891
|
||||
0.367 0.267 -0.891
|
||||
0.321 0.321 -0.891
|
||||
0.267 0.367 -0.891
|
||||
0.206 0.405 -0.891
|
||||
0.140 0.432 -0.891
|
||||
0.071 0.448 -0.891
|
||||
0.000 0.454 -0.891
|
||||
-0.071 0.448 -0.891
|
||||
-0.140 0.432 -0.891
|
||||
-0.206 0.405 -0.891
|
||||
-0.267 0.367 -0.891
|
||||
-0.321 0.321 -0.891
|
||||
-0.367 0.267 -0.891
|
||||
-0.405 0.206 -0.891
|
||||
-0.432 0.140 -0.891
|
||||
-0.448 0.071 -0.891
|
||||
-0.454 0.000 -0.891
|
||||
-0.448 -0.071 -0.891
|
||||
-0.432 -0.140 -0.891
|
||||
-0.405 -0.206 -0.891
|
||||
-0.367 -0.267 -0.891
|
||||
-0.321 -0.321 -0.891
|
||||
-0.267 -0.367 -0.891
|
||||
-0.206 -0.405 -0.891
|
||||
-0.140 -0.432 -0.891
|
||||
-0.071 -0.448 -0.891
|
||||
-0.000 -0.454 -0.891
|
||||
0.071 -0.448 -0.891
|
||||
0.140 -0.432 -0.891
|
||||
0.206 -0.405 -0.891
|
||||
0.267 -0.367 -0.891
|
||||
0.321 -0.321 -0.891
|
||||
0.367 -0.267 -0.891
|
||||
0.405 -0.206 -0.891
|
||||
0.432 -0.140 -0.891
|
||||
0.448 -0.071 -0.891
|
||||
0.309 0.000 -0.951
|
||||
0.305 0.048 -0.951
|
||||
0.294 0.095 -0.951
|
||||
0.275 0.140 -0.951
|
||||
0.250 0.182 -0.951
|
||||
0.219 0.219 -0.951
|
||||
0.182 0.250 -0.951
|
||||
0.140 0.275 -0.951
|
||||
0.095 0.294 -0.951
|
||||
0.048 0.305 -0.951
|
||||
0.000 0.309 -0.951
|
||||
-0.048 0.305 -0.951
|
||||
-0.095 0.294 -0.951
|
||||
-0.140 0.275 -0.951
|
||||
-0.182 0.250 -0.951
|
||||
-0.219 0.219 -0.951
|
||||
-0.250 0.182 -0.951
|
||||
-0.275 0.140 -0.951
|
||||
-0.294 0.095 -0.951
|
||||
-0.305 0.048 -0.951
|
||||
-0.309 0.000 -0.951
|
||||
-0.305 -0.048 -0.951
|
||||
-0.294 -0.095 -0.951
|
||||
-0.275 -0.140 -0.951
|
||||
-0.250 -0.182 -0.951
|
||||
-0.219 -0.219 -0.951
|
||||
-0.182 -0.250 -0.951
|
||||
-0.140 -0.275 -0.951
|
||||
-0.095 -0.294 -0.951
|
||||
-0.048 -0.305 -0.951
|
||||
-0.000 -0.309 -0.951
|
||||
0.048 -0.305 -0.951
|
||||
0.095 -0.294 -0.951
|
||||
0.140 -0.275 -0.951
|
||||
0.182 -0.250 -0.951
|
||||
0.219 -0.219 -0.951
|
||||
0.250 -0.182 -0.951
|
||||
0.275 -0.140 -0.951
|
||||
0.294 -0.095 -0.951
|
||||
0.305 -0.048 -0.951
|
||||
0.156 0.000 -0.988
|
||||
0.155 0.024 -0.988
|
||||
0.149 0.048 -0.988
|
||||
0.139 0.071 -0.988
|
||||
0.127 0.092 -0.988
|
||||
0.111 0.111 -0.988
|
||||
0.092 0.127 -0.988
|
||||
0.071 0.139 -0.988
|
||||
0.048 0.149 -0.988
|
||||
0.024 0.155 -0.988
|
||||
0.000 0.156 -0.988
|
||||
-0.024 0.155 -0.988
|
||||
-0.048 0.149 -0.988
|
||||
-0.071 0.139 -0.988
|
||||
-0.092 0.127 -0.988
|
||||
-0.111 0.111 -0.988
|
||||
-0.127 0.092 -0.988
|
||||
-0.139 0.071 -0.988
|
||||
-0.149 0.048 -0.988
|
||||
-0.155 0.024 -0.988
|
||||
-0.156 0.000 -0.988
|
||||
-0.155 -0.024 -0.988
|
||||
-0.149 -0.048 -0.988
|
||||
-0.139 -0.071 -0.988
|
||||
-0.127 -0.092 -0.988
|
||||
-0.111 -0.111 -0.988
|
||||
-0.092 -0.127 -0.988
|
||||
-0.071 -0.139 -0.988
|
||||
-0.048 -0.149 -0.988
|
||||
-0.024 -0.155 -0.988
|
||||
-0.000 -0.156 -0.988
|
||||
0.024 -0.155 -0.988
|
||||
0.048 -0.149 -0.988
|
||||
0.071 -0.139 -0.988
|
||||
0.092 -0.127 -0.988
|
||||
0.111 -0.111 -0.988
|
||||
0.127 -0.092 -0.988
|
||||
0.139 -0.071 -0.988
|
||||
0.149 -0.048 -0.988
|
||||
0.155 -0.024 -0.988
|
6
setup.py
6
setup.py
@ -2,8 +2,8 @@
|
||||
@ Date: 2021-03-02 16:53:55
|
||||
@ Author: Qing Shuai
|
||||
@ LastEditors: Qing Shuai
|
||||
@ LastEditTime: 2021-04-14 15:17:28
|
||||
@ FilePath: /EasyMocapRelease/setup.py
|
||||
@ LastEditTime: 2021-04-14 16:20:10
|
||||
@ FilePath: /EasyMocap/setup.py
|
||||
'''
|
||||
from setuptools import setup
|
||||
|
||||
@ -20,7 +20,7 @@ setup(
|
||||
'easymocap.smplmodel',
|
||||
'easymocap.pyfitting',
|
||||
'easymocap.mytools',
|
||||
'easymocap.annotator'
|
||||
'easymocap.annotator',
|
||||
'easymocap.estimator'
|
||||
],
|
||||
install_requires=[],
|
||||
|
Loading…
Reference in New Issue
Block a user