From f19058750f7d0420e8bd4b04d17ac23850e017ce Mon Sep 17 00:00:00 2001 From: shuaiqing Date: Sun, 24 Jan 2021 22:33:08 +0800 Subject: [PATCH] :rocket: support SMPL+H/SMPL-X --- Readme.md | 96 ++++--- code/dataset/base.py | 338 ++++++++++++++++++++--- code/dataset/config.py | 410 ++++++++++++++++++++++++++-- code/dataset/mv1pmf.py | 18 +- code/demo_mv1pmf_skel.py | 69 +++-- code/demo_mv1pmf_smpl.py | 161 ++++++----- code/mytools/camera_utils.py | 16 ++ code/mytools/cmd_loader.py | 44 +++ code/mytools/reconstruction.py | 42 +-- code/mytools/utils.py | 21 ++ code/mytools/vis_base.py | 11 +- code/pyfitting/lossfactory.py | 81 ++++-- code/pyfitting/operation.py | 10 +- code/pyfitting/optimize_simple.py | 69 +++-- code/smplmodel/__init__.py | 5 +- code/smplmodel/body_model.py | 103 ++++++- code/smplmodel/body_param.py | 74 ++++- code/visualize/renderer.py | 55 ++-- doc/evaluation.md | 11 + doc/feng/000400.jpg | Bin 0 -> 83309 bytes doc/feng/skel.gif | Bin 0 -> 1953634 bytes doc/feng/smplx.gif | Bin 0 -> 2157636 bytes doc/log.md | 13 + doc/tutorial_new_task.md | 18 ++ scripts/preprocess/extract_video.py | 88 +++++- 25 files changed, 1460 insertions(+), 293 deletions(-) create mode 100644 code/mytools/cmd_loader.py create mode 100644 code/mytools/utils.py create mode 100644 doc/evaluation.md create mode 100644 doc/feng/000400.jpg create mode 100644 doc/feng/skel.gif create mode 100644 doc/feng/smplx.gif create mode 100644 doc/log.md create mode 100644 doc/tutorial_new_task.md diff --git a/Readme.md b/Readme.md index b2a5fb2..e2dbaa9 100644 --- a/Readme.md +++ b/Readme.md @@ -2,43 +2,56 @@ * @Date: 2021-01-13 20:32:12 * @Author: Qing Shuai * @LastEditors: Qing Shuai - * @LastEditTime: 2021-01-17 21:07:07 + * @LastEditTime: 2021-01-24 22:11:37 * @FilePath: /EasyMocapRelease/Readme.md --> # EasyMocap **EasyMocap** is an open-source toolbox for **markerless human motion capture** from RGB videos. -## Features -- [x] multi-view, single person => 3d body keypoints -- [x] multi-view, single person => SMPL parameters +In this project, we provide the basic code for fitting SMPL[1]/SMPL+H[2]/SMPLX[3] model to capture body+hand+face poses from multiple views. -|:heavy_check_mark: Skeleton|:heavy_check_mark: SMPL| -|----|----| -|![repro](doc/feng/repro_512.gif)|![smpl](doc/feng/smpl_512.gif)| +|Input|:heavy_check_mark: Skeleton|:heavy_check_mark: SMPL| +|----|----|----| +|![input](doc/feng/000400.jpg)|![repro](doc/feng/skel.gif)|![smpl](doc/feng/smplx.gif)| -> The following features are not released yet. We are now working hard on them. Please stay tuned! +> We plan to intergrate more interesting algorithms, please stay tuned! -|Input|Output| -|----|----| -|multi-view, single person | whole body 3d keypoints| -|multi-view, single person | SMPL-H/SMPLX/MANO parameters| -|sparse view, single person | dense reconstruction and view synthesis: [NeuralBody](https://zju3dv.github.io/neuralbody/).| - -|:black_square_button: Whole Body|:black_square_button: [Detailed Mesh](https://zju3dv.github.io/neuralbody/)| -|----|----| -|
mesh
|
mesh
| +1. [Multi-Person from Multiple Views](https://github.com/zju3dv/mvpose) +2. [Mocap from Multiple **Uncalibrated** and **Unsynchronized** Videos](https://arxiv.org/pdf/2008.07931.pdf) +3. [Dense Reconstruction and View Synthesis from **Sparse Views**](https://zju3dv.github.io/neuralbody/) ## Installation ### 1. Download SMPL models -To download the *SMPL* model go to [this](http://smpl.is.tue.mpg.de) (male and female models, version 1.0.0, 10 shape PCs) and [this](http://smplify.is.tue.mpg.de) (gender neutral model) project website and register to get access to the downloads section. Prepare the model as [smplx](https://github.com/vchoutas/smplx#model-loading). **Place them as following:** +This step is the same as [smplx](https://github.com/vchoutas/smplx#model-loading). + +To download the *SMPL* model go to [this](http://smpl.is.tue.mpg.de) (male and female models, version 1.0.0, 10 shape PCs) and [this](http://smplify.is.tue.mpg.de) (gender neutral model) project website and register to get access to the downloads section. + +To download the *SMPL+H* model go to [this project website](http://mano.is.tue.mpg.de) and register to get access to the downloads section. + +To download the *SMPL-X* model go to [this project website](https://smpl-x.is.tue.mpg.de) and register to get access to the downloads section. + +**Place them as following:** ```bash data └── smplx ├── J_regressor_body25.npy - └── smpl -    ├── SMPL_FEMALE.pkl -    ├── SMPL_MALE.pkl -    └── SMPL_NEUTRAL.pkl + ├── J_regressor_body25_smplh.txt + ├── J_regressor_body25_smplx.txt + ├── smpl + │   ├── SMPL_FEMALE.pkl + │   ├── SMPL_MALE.pkl + │   └── SMPL_NEUTRAL.pkl + ├── smplh + │   ├── MANO_LEFT.pkl + │   ├── MANO_RIGHT.pkl + │   ├── SMPLH_female.pkl + │   ├── SMPLH_FEMALE.pkl + │   ├── SMPLH_male.pkl + │   └── SMPLH_MALE.pkl + └── smplx + ├── SMPLX_FEMALE.pkl + ├── SMPLX_MALE.pkl + └── SMPLX_NEUTRAL.pkl ``` ### 2. Requirements @@ -47,15 +60,13 @@ data - opencv-python - [pyrender](https://pyrender.readthedocs.io/en/latest/install/index.html#python-installation): for visualization - chumpy: for loading SMPL model +- OpenPose[4]: for 2D pose Some of python libraries can be found in `requirements.txt`. You can test different version of PyTorch. - ## Quick Start -We provide an example multiview dataset[[dropbox](https://www.dropbox.com/s/24mb7r921b1g9a7/zju-ls-feng.zip?dl=0)][[BaiduDisk](https://pan.baidu.com/s/1lvAopzYGCic3nauoQXjbPw)(vg1z)]. After downloading the dataset, you can run the following example scripts. +We provide an example multiview dataset[[dropbox](https://www.dropbox.com/s/24mb7r921b1g9a7/zju-ls-feng.zip?dl=0)][[BaiduDisk](https://pan.baidu.com/s/1lvAopzYGCic3nauoQXjbPw)(vg1z)], which has 800 frames from 23 synchronized and calibrated cameras. After downloading the dataset, you can run the following example scripts. ```bash data=path/to/data out=path/to/output @@ -64,15 +75,17 @@ python3 scripts/preprocess/extract_video.py ${data} # 1. example for skeleton reconstruction python3 code/demo_mv1pmf_skel.py ${data} --out ${out} --vis_det --vis_repro --undis --sub_vis 1 7 13 19 # 2. example for SMPL reconstruction -python3 code/demo_mv1pmf_smpl.py ${data} --out ${out} --end 300 --vis_smpl --undis --sub_vis 1 7 13 19 +python3 code/demo_mv1pmf_smpl.py ${data} --out ${out} --end 300 --vis_smpl --undis --sub_vis 1 7 13 19 --gender male +# 2. example for SMPL-X reconstruction +python3 code/demo_mv1pmf_smpl.py ${data} --out ${out} --undis --body bodyhandface --sub_vis 1 7 13 19 --start 400 --model smplx --vis_smpl --gender male ``` ## Not Quick Start ### 0. Prepare Your Own Dataset ```bash zju-ls-feng -├── extri.yml ├── intri.yml +├── extri.yml └── videos ├── 1.mp4 ├── 2.mp4 @@ -88,8 +101,10 @@ Here `intri.yml` and `extri.yml` store the camera intrinsici and extrinsic param ```bash data=path/to/data out=path/to/output -python3 scripts/preprocess/extract_video.py ${data} --openpose +python3 scripts/preprocess/extract_video.py ${data} --openpose --handface ``` +- `--openpose`: specify the openpose path +- `--handface`: detect hands and face keypoints ### 2. Run the code ```bash @@ -98,12 +113,15 @@ python3 code/demo_mv1pmf_skel.py ${data} --out ${out} --vis_det --vis_repro --un # 2. example for SMPL reconstruction python3 code/demo_mv1pmf_smpl.py ${data} --out ${out} --end 300 --vis_smpl --undis --sub_vis 1 7 13 19 ``` +The input flags: +- `--undis`: use to undistort the images +- `--start, --end`: control the begin and end number of frames. + +The output flags: - `--vis_det`: visualize the detection - `--vis_repro`: visualize the reprojection -- `--undis`: use to undistort the images - `--sub_vis`: use to specify the views to visualize. If not set, the code will use all views - `--vis_smpl`: use to render the SMPL mesh to images. -- `--start, --end`: control the begin and end number of frames. ### 3. Output The results are saved in `json` format. @@ -131,14 +149,19 @@ The data in `smpl/000000.json` is also a list, each element represents the SMPL "id": , "Rh": <(1, 3)>, "Th": <(1, 3)>, - "poses": <(1, 72)>, + "poses": <(1, 72/78/87)>, + "expression": <(1, 10)>, "shapes": <(1, 10)> } ``` We set the first 3 dimensions of `poses` to zero, and add a new parameter `Rh` to represents the global oritentation, the vertices of SMPL model V = RX(theta, beta) + T. +If you use SMPL+H model, the poses contains `22x3+6+6`. We use `6` pca coefficients for each hand. `3(jaw, left eye, right eye)x3` poses of head are added for SMPL-X model. + ## Evaluation +In our code, we do not set the best weight parameters, you can adjust these according your data. If you find a set of good weights, feel free to tell me. + We will add more quantitative reports in [doc/evaluation.md](doc/evaluation.md) ## Acknowledgements @@ -174,4 +197,13 @@ Please consider citing these works if you find this repo is useful for your proj journal={arXiv preprint arXiv:2012.15838}, year={2020} } +``` + +## Reference +```bash +[1] Loper, Matthew, et al. "SMPL: A skinned multi-person linear model." ACM transactions on graphics (TOG) 34.6 (2015): 1-16. +[2] Romero, Javier, Dimitrios Tzionas, and Michael J. Black. "Embodied hands: Modeling and capturing hands and bodies together." ACM Transactions on Graphics (ToG) 36.6 (2017): 1-17. +[3] Pavlakos, Georgios, et al. "Expressive body capture: 3d hands, face, and body from a single image." Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2019. +Bogo, Federica, et al. "Keep it SMPL: Automatic estimation of 3D human pose and shape from a single image." European conference on computer vision. Springer, Cham, 2016. +[4] Cao, Z., Hidalgo, G., Simon, T., Wei, S.E., Sheikh, Y.: Openpose: real-time multi-person 2d pose estimation using part affinity fields. arXiv preprint arXiv:1812.08008 (2018) ``` \ No newline at end of file diff --git a/code/dataset/base.py b/code/dataset/base.py index 4ced246..880d877 100644 --- a/code/dataset/base.py +++ b/code/dataset/base.py @@ -2,7 +2,7 @@ @ Date: 2021-01-13 16:53:55 @ Author: Qing Shuai @ LastEditors: Qing Shuai - @ LastEditTime: 2021-01-14 19:55:58 + @ LastEditTime: 2021-01-24 22:27:01 @ FilePath: /EasyMocapRelease/code/dataset/base.py ''' import os @@ -15,7 +15,7 @@ import numpy as np code_path = join(os.path.dirname(__file__), '..') sys.path.append(code_path) -from mytools.camera_utils import read_camera, undistort, write_camera +from mytools.camera_utils import read_camera, undistort, write_camera, get_fundamental_matrix from mytools.vis_base import merge, plot_bbox, plot_keypoints def read_json(path): @@ -30,18 +30,40 @@ def save_json(file, data): json.dump(data, f, indent=4) -def read_annot(annotname, add_hand_face=False): - data = read_json(annotname)['annots'] +def read_annot(annotname, mode='body25'): + data = read_json(annotname) + if not isinstance(data, list): + data = data['annots'] for i in range(len(data)): - data[i]['id'] = data[i].pop('personID') + if 'id' not in data[i].keys(): + data[i]['id'] = data[i].pop('personID') + if 'keypoints2d' in data[i].keys() and 'keypoints' not in data[i].keys(): + data[i]['keypoints'] = data[i].pop('keypoints2d') for key in ['bbox', 'keypoints', 'handl2d', 'handr2d', 'face2d']: if key not in data[i].keys():continue data[i][key] = np.array(data[i][key]) + if key == 'face2d': + # TODO: Make parameters, 17 is the offset for the eye brows, + # etc. 51 is the total number of FLAME compatible landmarks + data[i][key] = data[i][key][17:17+51, :] + if mode == 'body25': + data[i]['keypoints'] = data[i]['keypoints'] + elif mode == 'body15': + data[i]['keypoints'] = data[i]['keypoints'][:15, :] + elif mode == 'total': + data[i]['keypoints'] = np.vstack([data[i][key] for key in ['keypoints', 'handl2d', 'handr2d', 'face2d']]) + elif mode == 'bodyhand': + data[i]['keypoints'] = np.vstack([data[i][key] for key in ['keypoints', 'handl2d', 'handr2d']]) + elif mode == 'bodyhandface': + data[i]['keypoints'] = np.vstack([data[i][key] for key in ['keypoints', 'handl2d', 'handr2d', 'face2d']]) + data.sort(key=lambda x:x['id']) return data def get_bbox_from_pose(pose_2d, img, rate = 0.1): # this function returns bounding box from the 2D pose - validIdx = pose_2d[:, 2] > 0 + # here use pose_2d[:, -1] instead of pose_2d[:, 2] + # because when vis reprojection, the result will be (x, y, depth, conf) + validIdx = pose_2d[:, -1] > 0 if validIdx.sum() == 0: return [0, 0, 100, 100, 0] y_min = int(min(pose_2d[validIdx, 1])) @@ -65,10 +87,10 @@ def correct_bbox(img, bbox): class FileWriter: def __init__(self, output_path, config=None, basenames=[], cfg=None) -> None: self.out = output_path - keys = ['keypoints3d', 'smpl', 'repro', 'keypoints'] + keys = ['keypoints3d', 'match', 'smpl', 'skel', 'repro', 'keypoints'] output_dict = {key:join(self.out, key) for key in keys} - for key, p in output_dict.items(): - os.makedirs(p, exist_ok=True) + # for key, p in output_dict.items(): + # os.makedirs(p, exist_ok=True) self.output_dict = output_dict self.basenames = basenames @@ -78,19 +100,30 @@ class FileWriter: self.config = config def write_keypoints3d(self, results, nf): + os.makedirs(self.output_dict['keypoints3d'], exist_ok=True) savename = join(self.output_dict['keypoints3d'], '{:06d}.json'.format(nf)) save_json(savename, results) def vis_detections(self, images, lDetections, nf, key='keypoints', to_img=True, vis_id=True): + os.makedirs(self.output_dict[key], exist_ok=True) images_vis = [] for nv, image in enumerate(images): img = image.copy() for det in lDetections[nv]: - keypoints = det[key] - bbox = det.pop('bbox', get_bbox_from_pose(keypoints, img)) - # bbox = det['bbox'] - plot_bbox(img, bbox, pid=det['id'], vis_id=vis_id) - plot_keypoints(img, keypoints, pid=det['id'], config=self.config, use_limb_color=False, lw=2) + if key == 'match': + pid = det['id_match'] + else: + pid = det['id'] + if key not in det.keys(): + keypoints = det['keypoints'] + else: + keypoints = det[key] + if 'bbox' not in det.keys(): + bbox = get_bbox_from_pose(keypoints, img) + else: + bbox = det['bbox'] + plot_bbox(img, bbox, pid=pid, vis_id=vis_id) + plot_keypoints(img, keypoints, pid=pid, config=self.config, use_limb_color=False, lw=2) images_vis.append(img) image_vis = merge(images_vis, resize=not self.save_origin) if to_img: @@ -99,46 +132,229 @@ class FileWriter: return image_vis def write_smpl(self, results, nf): + os.makedirs(self.output_dict['smpl'], exist_ok=True) format_out = {'float_kind':lambda x: "%.3f" % x} filename = join(self.output_dict['smpl'], '{:06d}.json'.format(nf)) with open(filename, 'w') as f: f.write('[\n') - for data in results: + for idata, data in enumerate(results): f.write(' {\n') output = {} output['id'] = data['id'] - output['Rh'] = np.array2string(data['Rh'], max_line_width=1000, separator=', ', formatter=format_out) - output['Th'] = np.array2string(data['Th'], max_line_width=1000, separator=', ', formatter=format_out) - output['poses'] = np.array2string(data['poses'], max_line_width=1000, separator=', ', formatter=format_out) - output['shapes'] = np.array2string(data['shapes'], max_line_width=1000, separator=', ', formatter=format_out) - for key in ['id', 'Rh', 'Th', 'poses', 'shapes']: - f.write(' \"{}\": {},\n'.format(key, output[key])) - f.write(' },\n') + for key in ['Rh', 'Th', 'poses', 'expression', 'shapes']: + if key not in data.keys():continue + output[key] = np.array2string(data[key], max_line_width=1000, separator=', ', formatter=format_out) + for key in output.keys(): + f.write(' \"{}\": {}'.format(key, output[key])) + if key != 'shapes': + f.write(',\n') + else: + f.write('\n') + + f.write(' }') + if idata != len(results) - 1: + f.write(',\n') + else: + f.write('\n') f.write(']\n') - def vis_smpl(self, render_data, nf, images, cameras): + def vis_smpl(self, render_data_, nf, images, cameras, mode='smpl', add_back=False): + out = join(self.out, mode) + os.makedirs(out, exist_ok=True) from visualize.renderer import Renderer render = Renderer(height=1024, width=1024, faces=None) - render_results = render.render(render_data, cameras, images) - image_vis = merge(render_results, resize=not self.save_origin) - savename = join(self.output_dict['smpl'], '{:06d}.jpg'.format(nf)) - cv2.imwrite(savename, image_vis) + if isinstance(render_data_, list): # different view have different data + for nv, render_data in enumerate(render_data_): + render_results = render.render(render_data, cameras, images) + image_vis = merge(render_results, resize=not self.save_origin) + savename = join(out, '{:06d}_{:02d}.jpg'.format(nf, nv)) + cv2.imwrite(savename, image_vis) + else: + render_results = render.render(render_data_, cameras, images, add_back=add_back) + image_vis = merge(render_results, resize=not self.save_origin) + savename = join(out, '{:06d}.jpg'.format(nf)) + cv2.imwrite(savename, image_vis) + +def readReasultsTxt(outname, isA4d=True): + res_ = [] + with open(outname, "r") as file: + lines = file.readlines() + if len(lines) < 2: + return res_ + nPerson, nJoints = int(lines[0]), int(lines[1]) + # 只包含每个人的结果 + lines = lines[1:] + # 每个人的都写了关键点数量 + line_per_person = 1 + 1 + nJoints + for i in range(nPerson): + trackId = int(lines[i*line_per_person+1]) + content = ''.join(lines[i*line_per_person+2:i*line_per_person+2+nJoints]) + pose3d = np.fromstring(content, dtype=float, sep=' ').reshape((nJoints, 4)) + if isA4d: + # association4d 的关节顺序和正常的定义不一样 + pose3d = pose3d[[4, 1, 5, 9, 13, 6, 10, 14, 0, 2, 7, 11, 3, 8, 12], :] + res_.append({'id':trackId, 'keypoints3d':np.array(pose3d)}) + return res_ + +def readResultsJson(outname): + with open(outname) as f: + data = json.load(f) + res_ = [] + for d in data: + pose3d = np.array(d['keypoints3d']) + if pose3d.shape[0] > 25: + # 对于有手的情况,把手的根节点赋值成body25上的点 + pose3d[25, :] = pose3d[7, :] + pose3d[46, :] = pose3d[4, :] + res_.append({ + 'id': d['id'] if 'id' in d.keys() else d['personID'], + 'keypoints3d': pose3d + }) + return res_ + +class VideoBase(Dataset): + """Dataset for single sequence data + """ + def __init__(self, image_root, annot_root, out=None, config={}, mode='body15', no_img=False) -> None: + self.image_root = image_root + self.annot_root = annot_root + self.mode = mode + self.no_img = no_img + self.config = config + assert out is not None + self.out = out + self.writer = FileWriter(self.out, config=config) + imgnames = sorted(os.listdir(self.image_root)) + self.imagelist = imgnames + self.annotlist = sorted(os.listdir(self.annot_root)) + self.nFrames = len(self.imagelist) + self.undis = False + self.read_camera() + + def read_camera(self): + # 读入相机参数 + annname = join(self.annot_root, self.annotlist[0]) + data = read_json(annname) + if 'K' not in data.keys(): + height, width = data['height'], data['width'] + focal = 1.2*max(height, width) + K = np.array([focal, 0., width/2, 0., focal, height/2, 0. ,0., 1.]).reshape(3, 3) + else: + K = np.array(data['K']).reshape(3, 3) + self.camera = {'K':K ,'R': np.eye(3), 'T': np.zeros((3, 1))} + + def __getitem__(self, index: int): + imgname = join(self.image_root, self.imagelist[index]) + annname = join(self.annot_root, self.annotlist[index]) + assert os.path.exists(imgname), imgname + assert os.path.exists(annname), annname + assert os.path.basename(imgname).split('.')[0] == os.path.basename(annname).split('.')[0], (imgname, annname) + if not self.no_img: + img = cv2.imread(imgname) + else: + img = None + annot = read_annot(annname, self.mode) + return img, annot + + def __len__(self) -> int: + return self.nFrames + + def write_smpl(self, peopleDict, nf): + results = [] + for pid, people in peopleDict.items(): + result = {'id': pid} + result.update(people.body_params) + results.append(result) + self.writer.write_smpl(results, nf) + + def vis_detections(self, image, detections, nf, to_img=True): + return self.writer.vis_detections([image], [detections], nf, + key='keypoints', to_img=to_img, vis_id=True) + + def vis_repro(self, peopleDict, image, annots, nf): + # 可视化重投影的关键点与输入的关键点 + detections = [] + for pid, data in peopleDict.items(): + keypoints3d = (data.keypoints3d @ self.camera['R'].T + self.camera['T'].T) @ self.camera['K'].T + keypoints3d[:, :2] /= keypoints3d[:, 2:] + keypoints3d = np.hstack([keypoints3d, data.keypoints3d[:, -1:]]) + det = { + 'id': pid, + 'repro': keypoints3d + } + detections.append(det) + return self.writer.vis_detections([image], [detections], nf, key='repro', + to_img=True, vis_id=False) + + def vis_smpl(self, peopleDict, faces, image, nf, sub_vis=[], + mode='smpl', extra_data=[], add_back=True, + axis=np.array([1., 0., 0.]), degree=0., fix_center=None): + # 为了统一接口,旋转视角的在此处实现,只在单视角的数据中使用 + # 通过修改相机参数实现 + # 相机参数的修正可以通过计算点的中心来获得 + # render the smpl to each view + render_data = {} + for pid, data in peopleDict.items(): + render_data[pid] = { + 'vertices': data.vertices, 'faces': faces, + 'vid': pid, 'name': 'human_{}_{}'.format(nf, pid)} + for iid, extra in enumerate(extra_data): + render_data[10000+iid] = { + 'vertices': extra['vertices'], + 'faces': extra['faces'], + 'colors': extra['colors'], + 'name': extra['name'] + } + camera = {} + for key in self.camera.keys(): + camera[key] = self.camera[key][None, :, :] + # render another view point + if np.abs(degree) > 1e-3: + vertices_all = np.vstack([data.vertices for data in peopleDict.values()]) + if fix_center is None: + center = np.mean(vertices_all, 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) + # If we rorate the data, it is like: + # V = Rnew @ (V0 - center) + new_center + # = Rnew @ V0 - Rnew @ center + new_center + # combine with the camera + # VV = Rc(Rnew @ V0 - Rnew @ center + new_center) + Tc + # = Rc@Rnew @ V0 + Rc @ (new_center - Rnew@center) + Tc + blank = np.zeros_like(image, dtype=np.uint8) + 255 + images = [image, blank] + Rnew = camera['R'][0] @ rot + Tnew = camera['R'][0] @ (new_center.T - rot @ center.T) + camera['T'][0] + camera['K'] = np.vstack([camera['K'], camera['K']]) + camera['R'] = np.vstack([camera['R'], Rnew[None, :, :]]) + camera['T'] = np.vstack([camera['T'], Tnew[None, :, :]]) + else: + images = [image] + self.writer.vis_smpl(render_data, nf, images, camera, mode, add_back=add_back) class MVBase(Dataset): """ Dataset for multiview data """ def __init__(self, root, cams=[], out=None, config={}, image_root='images', annot_root='annots', - add_hand_face=True, + mode='body25', undis=True, no_img=False) -> None: self.root = root self.image_root = join(root, image_root) self.annot_root = join(root, annot_root) - self.add_hand_face = add_hand_face + self.mode = mode self.undis = undis self.no_img = no_img self.config = config - + # results path + # the results store keypoints3d + self.skel_path = None if out is None: out = join(root, 'output') self.out = out @@ -146,6 +362,8 @@ class MVBase(Dataset): if len(cams) == 0: cams = sorted([i for i in os.listdir(self.image_root) if os.path.isdir(join(self.image_root, i))]) + if cams[0].isdigit(): # 对于使用数字命名的文件夹 + cams.sort(key=lambda x:int(x)) self.cams = cams self.imagelist = {} self.annotlist = {} @@ -168,6 +386,7 @@ class MVBase(Dataset): self.cameras.pop('basenames') self.cameras_for_affinity = [[cam['invK'], cam['R'], cam['T']] for cam in [self.cameras[name] for name in self.cams]] self.Pall = [self.cameras[cam]['P'] for cam in self.cams] + self.Fall = get_fundamental_matrix(self.cameras, self.cams) else: print('!!!there is no camera parameters, maybe bug', intri_name, extri_name) self.cameras = None @@ -205,7 +424,7 @@ class MVBase(Dataset): img = cv2.imread(imgname) images.append(img) # TODO:这里直接取了0 - annot = read_annot(annname, self.add_hand_face) + annot = read_annot(annname, self.mode) annots.append(annot) if self.undis: images = self.undistort(images) @@ -213,4 +432,59 @@ class MVBase(Dataset): return images, annots def __len__(self) -> int: - return self.nFrames \ No newline at end of file + return self.nFrames + + def vis_detections(self, images, lDetections, nf, to_img=True, sub_vis=[]): + if len(sub_vis) != 0: + valid_idx = [self.cams.index(i) for i in sub_vis] + images = [images[i] for i in valid_idx] + lDetections = [lDetections[i] for i in valid_idx] + return self.writer.vis_detections(images, lDetections, nf, + key='keypoints', to_img=to_img, vis_id=True) + + def vis_match(self, images, lDetections, nf, to_img=True, sub_vis=[]): + if len(sub_vis) != 0: + valid_idx = [self.cams.index(i) for i in sub_vis] + images = [images[i] for i in valid_idx] + lDetections = [lDetections[i] for i in valid_idx] + return self.writer.vis_detections(images, lDetections, nf, + key='match', to_img=to_img, vis_id=True) + + def write_keypoints3d(self, peopleDict, nf): + results = [] + for pid, people in peopleDict.items(): + result = {'id': pid, 'keypoints3d': people.keypoints3d.tolist()} + results.append(result) + self.writer.write_keypoints3d(results, nf) + + def write_smpl(self, peopleDict, nf): + results = [] + for pid, people in peopleDict.items(): + result = {'id': pid} + result.update(people.body_params) + results.append(result) + self.writer.write_smpl(results, nf) + + def read_skel(self, nf, mode='none'): + if mode == 'a4d': + outname = join(self.skel_path, '{}.txt'.format(nf)) + assert os.path.exists(outname), outname + skels = readReasultsTxt(outname) + elif mode == 'none': + outname = join(self.skel_path, '{:06d}.json'.format(nf)) + assert os.path.exists(outname), outname + skels = readResultsJson(outname) + else: + import ipdb; ipdb.set_trace() + return skels + + def read_smpl(self, nf): + outname = join(self.skel_path, '{:06d}.json'.format(nf)) + assert os.path.exists(outname), outname + datas = read_json(outname) + outputs = [] + for data in datas: + for key in ['Rh', 'Th', 'poses', 'shapes']: + data[key] = np.array(data[key]) + outputs.append(data) + return outputs \ No newline at end of file diff --git a/code/dataset/config.py b/code/dataset/config.py index 9c0c678..51d7625 100644 --- a/code/dataset/config.py +++ b/code/dataset/config.py @@ -2,14 +2,14 @@ * @ Date: 2020-09-26 16:52:55 * @ Author: Qing Shuai @ LastEditors: Qing Shuai - @ LastEditTime: 2021-01-13 14:04:46 - @ FilePath: /EasyMocap/code/dataset/config.py + @ LastEditTime: 2021-01-24 20:21:50 + @ FilePath: /EasyMocapRelease/code/dataset/config.py ''' import numpy as np CONFIG = {} -CONFIG['body25'] = {'kintree': +CONFIG['body25'] = {'nJoints': 25, 'kintree': [[ 1, 0], [ 2, 1], [ 3, 2], @@ -33,9 +33,38 @@ CONFIG['body25'] = {'kintree': [21, 14], [22, 11], [23, 22], - [24, 11]]} + [24, 11]], + 'joint_names': ["Nose", "Neck", "RShoulder", "RElbow", "RWrist", "LShoulder", "LElbow", "LWrist", "MidHip", "RHip","RKnee","RAnkle","LHip","LKnee","LAnkle","REye","LEye","REar","LEar","LBigToe","LSmallToe","LHeel","RBigToe","RSmallToe","RHeel"]} -CONFIG['body15'] = {'kintree': +CONFIG['body25']['skeleton'] = \ +{ + ( 0, 1): {'mean': 0.228, 'std': 0.046}, # Nose ->Neck + ( 1, 2): {'mean': 0.144, 'std': 0.029}, # Neck ->RShoulder + ( 2, 3): {'mean': 0.283, 'std': 0.057}, # RShoulder->RElbow + ( 3, 4): {'mean': 0.258, 'std': 0.052}, # RElbow ->RWrist + ( 1, 5): {'mean': 0.145, 'std': 0.029}, # Neck ->LShoulder + ( 5, 6): {'mean': 0.281, 'std': 0.056}, # LShoulder->LElbow + ( 6, 7): {'mean': 0.258, 'std': 0.052}, # LElbow ->LWrist + ( 1, 8): {'mean': 0.483, 'std': 0.097}, # Neck ->MidHip + ( 8, 9): {'mean': 0.106, 'std': 0.021}, # MidHip ->RHip + ( 9, 10): {'mean': 0.438, 'std': 0.088}, # RHip ->RKnee + (10, 11): {'mean': 0.406, 'std': 0.081}, # RKnee ->RAnkle + ( 8, 12): {'mean': 0.106, 'std': 0.021}, # MidHip ->LHip + (12, 13): {'mean': 0.438, 'std': 0.088}, # LHip ->LKnee + (13, 14): {'mean': 0.408, 'std': 0.082}, # LKnee ->LAnkle + ( 0, 15): {'mean': 0.043, 'std': 0.009}, # Nose ->REye + ( 0, 16): {'mean': 0.043, 'std': 0.009}, # Nose ->LEye + (15, 17): {'mean': 0.105, 'std': 0.021}, # REye ->REar + (16, 18): {'mean': 0.104, 'std': 0.021}, # LEye ->LEar + (14, 19): {'mean': 0.180, 'std': 0.036}, # LAnkle ->LBigToe + (19, 20): {'mean': 0.038, 'std': 0.008}, # LBigToe ->LSmallToe + (14, 21): {'mean': 0.044, 'std': 0.009}, # LAnkle ->LHeel + (11, 22): {'mean': 0.182, 'std': 0.036}, # RAnkle ->RBigToe + (22, 23): {'mean': 0.038, 'std': 0.008}, # RBigToe ->RSmallToe + (11, 24): {'mean': 0.044, 'std': 0.009}, # RAnkle ->RHeel +} + +CONFIG['body15'] = {'nJoints': 15, 'kintree': [[ 1, 0], [ 2, 1], [ 3, 2], @@ -50,7 +79,9 @@ CONFIG['body15'] = {'kintree': [12, 8], [13, 12], [14, 13],]} - +CONFIG['body15']['joint_names'] = CONFIG['body25']['joint_names'][:15] +CONFIG['body15']['skeleton'] = CONFIG['body25']['skeleton'] + CONFIG['hand'] = {'kintree': [[ 1, 0], [ 2, 1], @@ -99,48 +130,392 @@ CONFIG['bodyhand'] = {'kintree': [22, 11], [23, 22], [24, 11], - [26, 25], # handl + [26, 7], # handl [27, 26], [28, 27], [29, 28], - [30, 25], + [30, 7], [31, 30], [32, 31], [33, 32], - [34, 25], + [34, 7], [35, 34], [36, 35], [37, 36], - [38, 25], + [38, 7], [39, 38], [40, 39], [41, 40], - [42, 25], + [42, 7], [43, 42], [44, 43], [45, 44], - [47, 46], # handr + [47, 4], # handr [48, 47], [49, 48], [50, 49], - [51, 46], + [51, 4], [52, 51], [53, 52], [54, 53], - [55, 46], + [55, 4], [56, 55], [57, 56], [58, 57], - [59, 46], + [59, 4], [60, 59], [61, 60], [62, 61], - [63, 46], + [63, 4], [64, 63], [65, 64], [66, 65] - ] + ], + 'nJoints': 67, + 'skeleton':{ + ( 0, 1): {'mean': 0.251, 'std': 0.050}, + ( 1, 2): {'mean': 0.169, 'std': 0.034}, + ( 2, 3): {'mean': 0.292, 'std': 0.058}, + ( 3, 4): {'mean': 0.275, 'std': 0.055}, + ( 1, 5): {'mean': 0.169, 'std': 0.034}, + ( 5, 6): {'mean': 0.295, 'std': 0.059}, + ( 6, 7): {'mean': 0.278, 'std': 0.056}, + ( 1, 8): {'mean': 0.566, 'std': 0.113}, + ( 8, 9): {'mean': 0.110, 'std': 0.022}, + ( 9, 10): {'mean': 0.398, 'std': 0.080}, + (10, 11): {'mean': 0.402, 'std': 0.080}, + ( 8, 12): {'mean': 0.111, 'std': 0.022}, + (12, 13): {'mean': 0.395, 'std': 0.079}, + (13, 14): {'mean': 0.403, 'std': 0.081}, + ( 0, 15): {'mean': 0.053, 'std': 0.011}, + ( 0, 16): {'mean': 0.056, 'std': 0.011}, + (15, 17): {'mean': 0.107, 'std': 0.021}, + (16, 18): {'mean': 0.107, 'std': 0.021}, + (14, 19): {'mean': 0.180, 'std': 0.036}, + (19, 20): {'mean': 0.055, 'std': 0.011}, + (14, 21): {'mean': 0.065, 'std': 0.013}, + (11, 22): {'mean': 0.169, 'std': 0.034}, + (22, 23): {'mean': 0.052, 'std': 0.010}, + (11, 24): {'mean': 0.061, 'std': 0.012}, + ( 7, 26): {'mean': 0.045, 'std': 0.009}, + (26, 27): {'mean': 0.042, 'std': 0.008}, + (27, 28): {'mean': 0.035, 'std': 0.007}, + (28, 29): {'mean': 0.029, 'std': 0.006}, + ( 7, 30): {'mean': 0.102, 'std': 0.020}, + (30, 31): {'mean': 0.040, 'std': 0.008}, + (31, 32): {'mean': 0.026, 'std': 0.005}, + (32, 33): {'mean': 0.023, 'std': 0.005}, + ( 7, 34): {'mean': 0.101, 'std': 0.020}, + (34, 35): {'mean': 0.043, 'std': 0.009}, + (35, 36): {'mean': 0.029, 'std': 0.006}, + (36, 37): {'mean': 0.024, 'std': 0.005}, + ( 7, 38): {'mean': 0.097, 'std': 0.019}, + (38, 39): {'mean': 0.041, 'std': 0.008}, + (39, 40): {'mean': 0.027, 'std': 0.005}, + (40, 41): {'mean': 0.024, 'std': 0.005}, + ( 7, 42): {'mean': 0.095, 'std': 0.019}, + (42, 43): {'mean': 0.033, 'std': 0.007}, + (43, 44): {'mean': 0.020, 'std': 0.004}, + (44, 45): {'mean': 0.018, 'std': 0.004}, + ( 4, 47): {'mean': 0.043, 'std': 0.009}, + (47, 48): {'mean': 0.041, 'std': 0.008}, + (48, 49): {'mean': 0.034, 'std': 0.007}, + (49, 50): {'mean': 0.028, 'std': 0.006}, + ( 4, 51): {'mean': 0.101, 'std': 0.020}, + (51, 52): {'mean': 0.041, 'std': 0.008}, + (52, 53): {'mean': 0.026, 'std': 0.005}, + (53, 54): {'mean': 0.024, 'std': 0.005}, + ( 4, 55): {'mean': 0.100, 'std': 0.020}, + (55, 56): {'mean': 0.044, 'std': 0.009}, + (56, 57): {'mean': 0.029, 'std': 0.006}, + (57, 58): {'mean': 0.023, 'std': 0.005}, + ( 4, 59): {'mean': 0.096, 'std': 0.019}, + (59, 60): {'mean': 0.040, 'std': 0.008}, + (60, 61): {'mean': 0.028, 'std': 0.006}, + (61, 62): {'mean': 0.023, 'std': 0.005}, + ( 4, 63): {'mean': 0.094, 'std': 0.019}, + (63, 64): {'mean': 0.032, 'std': 0.006}, + (64, 65): {'mean': 0.020, 'std': 0.004}, + (65, 66): {'mean': 0.018, 'std': 0.004}, } +} + +CONFIG['bodyhandface'] = {'kintree': + [[ 1, 0], + [ 2, 1], + [ 3, 2], + [ 4, 3], + [ 5, 1], + [ 6, 5], + [ 7, 6], + [ 8, 1], + [ 9, 8], + [10, 9], + [11, 10], + [12, 8], + [13, 12], + [14, 13], + [15, 0], + [16, 0], + [17, 15], + [18, 16], + [19, 14], + [20, 19], + [21, 14], + [22, 11], + [23, 22], + [24, 11], + [26, 7], # handl + [27, 26], + [28, 27], + [29, 28], + [30, 7], + [31, 30], + [32, 31], + [33, 32], + [34, 7], + [35, 34], + [36, 35], + [37, 36], + [38, 7], + [39, 38], + [40, 39], + [41, 40], + [42, 7], + [43, 42], + [44, 43], + [45, 44], + [47, 4], # handr + [48, 47], + [49, 48], + [50, 49], + [51, 4], + [52, 51], + [53, 52], + [54, 53], + [55, 4], + [56, 55], + [57, 56], + [58, 57], + [59, 4], + [60, 59], + [61, 60], + [62, 61], + [63, 4], + [64, 63], + [65, 64], + [66, 65], + [ 67, 68], + [ 68, 69], + [ 69, 70], + [ 70, 71], + [ 72, 73], + [ 73, 74], + [ 74, 75], + [ 75, 76], + [ 77, 78], + [ 78, 79], + [ 79, 80], + [ 81, 82], + [ 82, 83], + [ 83, 84], + [ 84, 85], + [ 86, 87], + [ 87, 88], + [ 88, 89], + [ 89, 90], + [ 90, 91], + [ 91, 86], + [ 92, 93], + [ 93, 94], + [ 94, 95], + [ 95, 96], + [ 96, 97], + [ 97, 92], + [ 98, 99], + [ 99, 100], + [100, 101], + [101, 102], + [102, 103], + [103, 104], + [104, 105], + [105, 106], + [106, 107], + [107, 108], + [108, 109], + [109, 98], + [110, 111], + [111, 112], + [112, 113], + [113, 114], + [114, 115], + [115, 116], + [116, 117], + [117, 110] + ], + 'nJoints': 118, + 'skeleton':{ + ( 0, 1): {'mean': 0.251, 'std': 0.050}, + ( 1, 2): {'mean': 0.169, 'std': 0.034}, + ( 2, 3): {'mean': 0.292, 'std': 0.058}, + ( 3, 4): {'mean': 0.275, 'std': 0.055}, + ( 1, 5): {'mean': 0.169, 'std': 0.034}, + ( 5, 6): {'mean': 0.295, 'std': 0.059}, + ( 6, 7): {'mean': 0.278, 'std': 0.056}, + ( 1, 8): {'mean': 0.566, 'std': 0.113}, + ( 8, 9): {'mean': 0.110, 'std': 0.022}, + ( 9, 10): {'mean': 0.398, 'std': 0.080}, + (10, 11): {'mean': 0.402, 'std': 0.080}, + ( 8, 12): {'mean': 0.111, 'std': 0.022}, + (12, 13): {'mean': 0.395, 'std': 0.079}, + (13, 14): {'mean': 0.403, 'std': 0.081}, + ( 0, 15): {'mean': 0.053, 'std': 0.011}, + ( 0, 16): {'mean': 0.056, 'std': 0.011}, + (15, 17): {'mean': 0.107, 'std': 0.021}, + (16, 18): {'mean': 0.107, 'std': 0.021}, + (14, 19): {'mean': 0.180, 'std': 0.036}, + (19, 20): {'mean': 0.055, 'std': 0.011}, + (14, 21): {'mean': 0.065, 'std': 0.013}, + (11, 22): {'mean': 0.169, 'std': 0.034}, + (22, 23): {'mean': 0.052, 'std': 0.010}, + (11, 24): {'mean': 0.061, 'std': 0.012}, + ( 7, 26): {'mean': 0.045, 'std': 0.009}, + (26, 27): {'mean': 0.042, 'std': 0.008}, + (27, 28): {'mean': 0.035, 'std': 0.007}, + (28, 29): {'mean': 0.029, 'std': 0.006}, + ( 7, 30): {'mean': 0.102, 'std': 0.020}, + (30, 31): {'mean': 0.040, 'std': 0.008}, + (31, 32): {'mean': 0.026, 'std': 0.005}, + (32, 33): {'mean': 0.023, 'std': 0.005}, + ( 7, 34): {'mean': 0.101, 'std': 0.020}, + (34, 35): {'mean': 0.043, 'std': 0.009}, + (35, 36): {'mean': 0.029, 'std': 0.006}, + (36, 37): {'mean': 0.024, 'std': 0.005}, + ( 7, 38): {'mean': 0.097, 'std': 0.019}, + (38, 39): {'mean': 0.041, 'std': 0.008}, + (39, 40): {'mean': 0.027, 'std': 0.005}, + (40, 41): {'mean': 0.024, 'std': 0.005}, + ( 7, 42): {'mean': 0.095, 'std': 0.019}, + (42, 43): {'mean': 0.033, 'std': 0.007}, + (43, 44): {'mean': 0.020, 'std': 0.004}, + (44, 45): {'mean': 0.018, 'std': 0.004}, + ( 4, 47): {'mean': 0.043, 'std': 0.009}, + (47, 48): {'mean': 0.041, 'std': 0.008}, + (48, 49): {'mean': 0.034, 'std': 0.007}, + (49, 50): {'mean': 0.028, 'std': 0.006}, + ( 4, 51): {'mean': 0.101, 'std': 0.020}, + (51, 52): {'mean': 0.041, 'std': 0.008}, + (52, 53): {'mean': 0.026, 'std': 0.005}, + (53, 54): {'mean': 0.024, 'std': 0.005}, + ( 4, 55): {'mean': 0.100, 'std': 0.020}, + (55, 56): {'mean': 0.044, 'std': 0.009}, + (56, 57): {'mean': 0.029, 'std': 0.006}, + (57, 58): {'mean': 0.023, 'std': 0.005}, + ( 4, 59): {'mean': 0.096, 'std': 0.019}, + (59, 60): {'mean': 0.040, 'std': 0.008}, + (60, 61): {'mean': 0.028, 'std': 0.006}, + (61, 62): {'mean': 0.023, 'std': 0.005}, + ( 4, 63): {'mean': 0.094, 'std': 0.019}, + (63, 64): {'mean': 0.032, 'std': 0.006}, + (64, 65): {'mean': 0.020, 'std': 0.004}, + (65, 66): {'mean': 0.018, 'std': 0.004}, + (67, 68): {'mean': 0.012, 'std': 0.002}, + (68, 69): {'mean': 0.013, 'std': 0.003}, + (69, 70): {'mean': 0.014, 'std': 0.003}, + (70, 71): {'mean': 0.012, 'std': 0.002}, + (72, 73): {'mean': 0.014, 'std': 0.003}, + (73, 74): {'mean': 0.014, 'std': 0.003}, + (74, 75): {'mean': 0.015, 'std': 0.003}, + (75, 76): {'mean': 0.013, 'std': 0.003}, + (77, 78): {'mean': 0.014, 'std': 0.003}, + (78, 79): {'mean': 0.014, 'std': 0.003}, + (79, 80): {'mean': 0.015, 'std': 0.003}, + (81, 82): {'mean': 0.009, 'std': 0.002}, + (82, 83): {'mean': 0.010, 'std': 0.002}, + (83, 84): {'mean': 0.010, 'std': 0.002}, + (84, 85): {'mean': 0.010, 'std': 0.002}, + (86, 87): {'mean': 0.009, 'std': 0.002}, + (87, 88): {'mean': 0.009, 'std': 0.002}, + (88, 89): {'mean': 0.008, 'std': 0.002}, + (89, 90): {'mean': 0.008, 'std': 0.002}, + (90, 91): {'mean': 0.009, 'std': 0.002}, + (86, 91): {'mean': 0.008, 'std': 0.002}, + (92, 93): {'mean': 0.009, 'std': 0.002}, + (93, 94): {'mean': 0.009, 'std': 0.002}, + (94, 95): {'mean': 0.009, 'std': 0.002}, + (95, 96): {'mean': 0.009, 'std': 0.002}, + (96, 97): {'mean': 0.009, 'std': 0.002}, + (92, 97): {'mean': 0.009, 'std': 0.002}, + (98, 99): {'mean': 0.016, 'std': 0.003}, + (99, 100): {'mean': 0.013, 'std': 0.003}, + (100, 101): {'mean': 0.008, 'std': 0.002}, + (101, 102): {'mean': 0.008, 'std': 0.002}, + (102, 103): {'mean': 0.012, 'std': 0.002}, + (103, 104): {'mean': 0.014, 'std': 0.003}, + (104, 105): {'mean': 0.015, 'std': 0.003}, + (105, 106): {'mean': 0.012, 'std': 0.002}, + (106, 107): {'mean': 0.009, 'std': 0.002}, + (107, 108): {'mean': 0.009, 'std': 0.002}, + (108, 109): {'mean': 0.013, 'std': 0.003}, + (98, 109): {'mean': 0.016, 'std': 0.003}, + (110, 111): {'mean': 0.021, 'std': 0.004}, + (111, 112): {'mean': 0.009, 'std': 0.002}, + (112, 113): {'mean': 0.008, 'std': 0.002}, + (113, 114): {'mean': 0.019, 'std': 0.004}, + (114, 115): {'mean': 0.018, 'std': 0.004}, + (115, 116): {'mean': 0.008, 'std': 0.002}, + (116, 117): {'mean': 0.009, 'std': 0.002}, + (110, 117): {'mean': 0.020, 'std': 0.004}, +} +} + +face_kintree_without_contour = [[ 0, 1], + [ 1, 2], + [ 2, 3], + [ 3, 4], + [ 5, 6], + [ 6, 7], + [ 7, 8], + [ 8, 9], + [10, 11], + [11, 12], + [12, 13], + [14, 15], + [15, 16], + [16, 17], + [17, 18], + [19, 20], + [20, 21], + [21, 22], + [22, 23], + [23, 24], + [24, 19], + [25, 26], + [26, 27], + [27, 28], + [28, 29], + [29, 30], + [30, 25], + [31, 32], + [32, 33], + [33, 34], + [34, 35], + [35, 36], + [36, 37], + [37, 38], + [38, 39], + [39, 40], + [40, 41], + [41, 42], + [42, 31], + [43, 44], + [44, 45], + [45, 46], + [46, 47], + [47, 48], + [48, 49], + [49, 50], + [50, 43]] CONFIG['face'] = {'kintree':[ [0,1],[1,2],[2,3],[3,4],[4,5],[5,6],[6,7],[7,8],[8,9],[9,10],[10,11],[11,12],[12,13],[13,14],[14,15],[15,16], #outline (ignored) [17,18],[18,19],[19,20],[20,21], #right eyebrow @@ -176,6 +551,7 @@ def getKintree(name='total'): return kintree CONFIG['total'] = {} CONFIG['total']['kintree'] = getKintree('total') +CONFIG['total']['nJoints'] = 137 COCO17_IN_BODY25 = [0,16,15,18,17,5,2,6,3,7,4,12,9,13,10,14,11] diff --git a/code/dataset/mv1pmf.py b/code/dataset/mv1pmf.py index adc74b1..8367ba1 100644 --- a/code/dataset/mv1pmf.py +++ b/code/dataset/mv1pmf.py @@ -2,7 +2,7 @@ @ Date: 2021-01-12 17:12:50 @ Author: Qing Shuai @ LastEditors: Qing Shuai - @ LastEditTime: 2021-01-14 17:14:34 + @ LastEditTime: 2021-01-21 14:51:45 @ FilePath: /EasyMocap/code/dataset/mv1pmf.py ''' import os @@ -15,10 +15,10 @@ from .base import MVBase class MV1PMF(MVBase): def __init__(self, root, cams=[], pid=0, out=None, config={}, - image_root='images', annot_root='annots', add_hand_face=True, + image_root='images', annot_root='annots', mode='body15', undis=True, no_img=False) -> None: super().__init__(root, cams, out, config, image_root, annot_root, - add_hand_face, undis, no_img) + mode, undis, no_img) self.pid = pid def write_keypoints3d(self, keypoints3d, nf): @@ -30,20 +30,21 @@ class MV1PMF(MVBase): result.update(params) self.writer.write_smpl([result], nf) - def vis_smpl(self, vertices, faces, images, nf, sub_vis): + def vis_smpl(self, vertices, faces, images, nf, sub_vis=[], + mode='smpl', extra_data=[], add_back=True): render_data = {} if len(vertices.shape) == 3: vertices = vertices[0] pid = self.pid render_data[pid] = {'vertices': vertices, 'faces': faces, - 'vid': pid, 'name': '{}_{}'.format(nf, pid)} + 'vid': pid, 'name': 'human_{}_{}'.format(nf, pid)} cameras = {'K': [], 'R':[], 'T':[]} if len(sub_vis) == 0: sub_vis = self.cams for key in cameras.keys(): cameras[key] = [self.cameras[cam][key] for cam in sub_vis] images = [images[self.cams.index(cam)] for cam in sub_vis] - self.writer.vis_smpl(render_data, nf, images, cameras) + self.writer.vis_smpl(render_data, nf, images, cameras, mode, add_back=add_back) def vis_detections(self, images, annots, nf, to_img=True, sub_vis=[]): lDetections = [] @@ -87,7 +88,10 @@ class MV1PMF(MVBase): keypoints = data['keypoints'] else: print('not found pid {} in {}, {}'.format(self.pid, index, nv)) - keypoints = np.zeros((25, 3)) + if self.add_hand_face: + keypoints = np.zeros((137, 3)) + else: + keypoints = np.zeros((25, 3)) bbox = np.array([0, 0, 100., 100., 0.]) annots['bbox'].append(bbox) annots['keypoints'].append(keypoints) diff --git a/code/demo_mv1pmf_skel.py b/code/demo_mv1pmf_skel.py index e85a9d9..60696cb 100644 --- a/code/demo_mv1pmf_skel.py +++ b/code/demo_mv1pmf_skel.py @@ -2,15 +2,17 @@ @ Date: 2021-01-12 17:08:25 @ Author: Qing Shuai @ LastEditors: Qing Shuai - @ LastEditTime: 2021-01-14 17:08:05 - @ FilePath: /EasyMocap/code/demo_mv1pmf_skel.py + @ LastEditTime: 2021-01-24 20:57:35 + @ FilePath: /EasyMocapRelease/code/demo_mv1pmf_skel.py ''' # show skeleton and reprojection from dataset.mv1pmf import MV1PMF from dataset.config import CONFIG from mytools.reconstruction import simple_recon_person, projectN3 +# from mytools.robust_triangulate import robust_triangulate from tqdm import tqdm import numpy as np +from smplmodel import check_keypoints def smooth_skeleton(skeleton): # nFrames, nJoints, 4: [[(x, y, z, c)]] @@ -32,10 +34,37 @@ def smooth_skeleton(skeleton): skeleton[span:nFrames-span, :, :3] = skel return skeleton +def get_limb_length(config, keypoints): + skeleton = {} + for i, j_ in config['kintree']: + if j_ == 25: + j = 7 + elif j_ == 46: + j = 4 + else: + j = j_ + key = tuple(sorted([i, j])) + length, confs = 0, 0 + for nf in range(keypoints.shape[0]): + limb_length = np.linalg.norm(keypoints[nf, i, :3] - keypoints[nf, j, :3]) + conf = keypoints[nf, [i, j], -1].min() + length += limb_length * conf + confs += conf + limb_length = length/confs + skeleton[key] = {'mean': limb_length, 'std': limb_length*0.2} + print('{') + for key, val in skeleton.items(): + res = ' ({:2d}, {:2d}): {{\'mean\': {:.3f}, \'std\': {:.3f}}}, '.format(*key, val['mean'], val['std']) + if 'joint_names' in config.keys(): + res += '# {:9s}->{:9s}'.format(config['joint_names'][key[0]], config['joint_names'][key[1]]) + print(res) + print('}') + def mv1pmf_skel(path, sub, out, mode, args): - MIN_CONF_THRES = 0.5 + MIN_CONF_THRES = 0.3 no_img = not (args.vis_det or args.vis_repro) - dataset = MV1PMF(path, cams=sub, config=CONFIG[mode], add_hand_face=args.add_hand_face, + config = CONFIG[mode] + dataset = MV1PMF(path, cams=sub, config=config, mode=mode, undis=args.undis, no_img=no_img, out=out) kp3ds = [] start, end = args.start, min(args.end, len(dataset)) @@ -43,7 +72,9 @@ def mv1pmf_skel(path, sub, out, mode, args): images, annots = dataset[nf] conf = annots['keypoints'][..., -1] conf[conf < MIN_CONF_THRES] = 0 - keypoints3d, _, kpts_repro = simple_recon_person(annots['keypoints'], dataset.Pall, ret_repro=True) + annots['keypoints'] = check_keypoints(annots['keypoints'], WEIGHT_DEBUFF=1) + keypoints3d, _, kpts_repro = simple_recon_person(annots['keypoints'], dataset.Pall, config=config, ret_repro=True) + # keypoints3d, _, kpts_repro = robust_triangulate(annots['keypoints'], dataset.Pall, config=config, ret_repro=True) kp3ds.append(keypoints3d) if args.vis_det: dataset.vis_detections(images, annots, nf, sub_vis=args.sub_vis) @@ -51,32 +82,16 @@ def mv1pmf_skel(path, sub, out, mode, args): dataset.vis_repro(images, annots, kpts_repro, nf, sub_vis=args.sub_vis) # smooth the skeleton kp3ds = np.stack(kp3ds) - if args.smooth: - kp3ds = smooth_skeleton(kp3ds) + # 计算一下骨长 + # get_limb_length(config, kp3ds) + # if args.smooth: + # kp3ds = smooth_skeleton(kp3ds) for nf in tqdm(range(kp3ds.shape[0]), desc='dump'): dataset.write_keypoints3d(kp3ds[nf], nf + start) if __name__ == "__main__": - import argparse - parser = argparse.ArgumentParser('multi_view one_person multi_frame skel') - parser.add_argument('path', type=str) - parser.add_argument('--out', type=str, default=None) - parser.add_argument('--sub', type=str, nargs='+', default=[], - help='the sub folder lists when in video mode') - parser.add_argument('--start', type=int, default=0, - help='frame start') - parser.add_argument('--end', type=int, default=10000, - help='frame end') - parser.add_argument('--step', type=int, default=1, - help='frame step') - parser.add_argument('--body', type=str, default='body25', choices=['body15', 'body25', 'total']) - parser.add_argument('--undis', action='store_true') - parser.add_argument('--add_hand_face', action='store_true') - parser.add_argument('--smooth', action='store_true') - parser.add_argument('--vis_det', action='store_true') - parser.add_argument('--vis_repro', action='store_true') - parser.add_argument('--sub_vis', type=str, nargs='+', default=[], - help='the sub folder lists for visualization') + from mytools.cmd_loader import load_parser + parser = load_parser() args = parser.parse_args() mv1pmf_skel(args.path, args.sub, args.out, args.body, args) \ No newline at end of file diff --git a/code/demo_mv1pmf_smpl.py b/code/demo_mv1pmf_smpl.py index cef8db8..55d8aeb 100644 --- a/code/demo_mv1pmf_smpl.py +++ b/code/demo_mv1pmf_smpl.py @@ -2,106 +2,141 @@ @ Date: 2021-01-12 17:08:25 @ Author: Qing Shuai @ LastEditors: Qing Shuai - @ LastEditTime: 2021-01-14 20:49:25 - @ FilePath: /EasyMocap/code/demo_mv1pmf_smpl.py + @ LastEditTime: 2021-01-24 22:26:09 + @ FilePath: /EasyMocapRelease/code/demo_mv1pmf_smpl.py ''' # show skeleton and reprojection import pyrender # first import the pyrender from pyfitting.optimize_simple import optimizeShape, optimizePose from dataset.mv1pmf import MV1PMF from dataset.config import CONFIG -from mytools.reconstruction import simple_recon_person, projectN3 -from smplmodel import select_nf, init_params, Config - +from mytools.utils import Timer +from smplmodel import select_nf, init_params, Config, load_model, check_keypoints +from os.path import join from tqdm import tqdm import numpy as np -def load_model(use_cuda=True): - # prepare SMPL model - import torch - if use_cuda: - device = torch.device('cuda') - else: - device = torch.device('cpu') - from smplmodel import SMPLlayer - body_model = SMPLlayer('data/smplx/smpl', gender='neutral', device=device, - regressor_path='data/smplx/J_regressor_body25.npy') - body_model.to(device) - return body_model - def load_weight_shape(): - weight = {'s3d': 1., 'reg_shape': 5e-3} + weight = {'s3d': 1., 'reg_shapes': 5e-3} return weight -def load_weight_pose(): - weight = { - 'k3d': 1., 'reg_poses_zero': 1e-2, - 'smooth_Rh': 1e-2, 'smooth_Th': 1e-2, 'smooth_poses': 1e-2 - } +def load_weight_pose(model): + if model == 'smpl': + weight = { + 'k3d': 1., 'reg_poses_zero': 1e-2, + 'reg_expression': 1e-1, + 'smooth_joints': 1e-5 + # 'smooth_Rh': 1e-1, 'smooth_Th': 1e-1, 'smooth_poses': 1e-1, 'smooth_hands': 1e-2 + } + elif model == 'smplh': + weight = { + 'k3d': 1., 'reg_poses_zero': 1e-3, + 'smooth_body': 1e-2, 'smooth_hand': 1e-2 + } + elif model == 'smplx': + weight = { + 'k3d': 1., 'reg_poses_zero': 1e-3, + 'reg_expression': 1e-2, + 'smooth_body': 1e-2, 'smooth_hand': 1e-2 + # 'smooth_Rh': 1e-1, 'smooth_Th': 1e-1, 'smooth_poses': 1e-1, 'smooth_hands': 1e-2 + } + else: + raise NotImplementedError return weight +def print_mean_skel(mode): + with Timer('Loading {}, {}'.format(args.model, args.gender)): + body_model = load_model(args.gender, model_type=args.model) + params_init = init_params(nFrames=1, model_type=args.model) + skel = body_model(return_verts=False, return_tensor=False, **params_init)[0] + # skel: nJoints, 3 + config = CONFIG[mode] + skeleton = {} + for i, j_ in config['kintree']: + if j_ == 25: + j = 7 + elif j_ == 46: + j = 4 + else: + j = j_ + key = tuple(sorted([i, j])) + limb_length = np.linalg.norm(skel[i] - skel[j]) + skeleton[key] = {'mean': limb_length, 'std': limb_length*0.2} + print('{') + for key, val in skeleton.items(): + res = ' ({:2d}, {:2d}): {{\'mean\': {:.3f}, \'std\': {:.3f}}}, '.format(*key, val['mean'], val['std']) + if 'joint_names' in config.keys(): + res += '# {:9s}->{:9s}'.format(config['joint_names'][key[0]], config['joint_names'][key[1]]) + print(res) + print('}') + def mv1pmf_smpl(path, sub, out, mode, args): config = CONFIG[mode] - MIN_CONF_THRES = 0.5 - no_img = False - dataset = MV1PMF(path, cams=sub, config=CONFIG[mode], add_hand_face=False, + no_img = True + dataset = MV1PMF(path, cams=sub, config=CONFIG[mode], mode=args.body, undis=args.undis, no_img=no_img, out=out) + if args.skel is None: + from demo_mv1pmf_skel import mv1pmf_skel + mv1pmf_skel(path, sub, out, mode, args) + args.skel = join(out, 'keypoints3d') + dataset.skel_path = args.skel kp3ds = [] start, end = args.start, min(args.end, len(dataset)) dataset.no_img = True annots_all = [] - for nf in tqdm(range(start, end), desc='triangulation'): + for nf in tqdm(range(start, end), desc='loading'): images, annots = dataset[nf] - conf = annots['keypoints'][..., -1] - conf[conf < MIN_CONF_THRES] = 0 - keypoints3d, _, kpts_repro = simple_recon_person(annots['keypoints'], dataset.Pall, ret_repro=True) - kp3ds.append(keypoints3d) + infos = dataset.read_skel(nf) + kp3ds.append(infos[0]['keypoints3d']) annots_all.append(annots) - # smooth the skeleton kp3ds = np.stack(kp3ds) + kp3ds = check_keypoints(kp3ds, 1) # optimize the human shape - body_model = load_model() - params_init = init_params(nFrames=1) + with Timer('Loading {}, {}'.format(args.model, args.gender)): + body_model = load_model(args.gender, model_type=args.model) + params_init = init_params(nFrames=1, model_type=args.model) weight = load_weight_shape() - params_shape = optimizeShape(body_model, params_init, kp3ds, weight_loss=weight, kintree=config['kintree']) + if args.model in ['smpl', 'smplh', 'smplx']: + # when use SMPL model, optimize the shape only with first 14 limbs + params_shape = optimizeShape(body_model, params_init, kp3ds, weight_loss=weight, kintree=CONFIG['body15']['kintree']) + else: + params_shape = optimizeShape(body_model, params_init, kp3ds, weight_loss=weight, kintree=config['kintree']) # optimize 3D pose cfg = Config() - params = init_params(nFrames=kp3ds.shape[0]) + cfg.VERBOSE = args.verbose + cfg.MODEL = args.model + params = init_params(nFrames=kp3ds.shape[0], model_type=args.model) params['shapes'] = params_shape['shapes'].copy() - weight = load_weight_pose() - cfg.OPT_R = True - cfg.OPT_T = True - params = optimizePose(body_model, params, kp3ds, weight_loss=weight, kintree=config['kintree'], cfg=cfg) - cfg.OPT_POSE = True - params = optimizePose(body_model, params, kp3ds, weight_loss=weight, kintree=config['kintree'], cfg=cfg) - # optimize 2D pose - # render the mesh + weight = load_weight_pose(args.model) + with Timer('Optimize global RT'): + cfg.OPT_R = True + cfg.OPT_T = True + params = optimizePose(body_model, params, kp3ds, weight_loss=weight, kintree=config['kintree'], cfg=cfg) + with Timer('Optimize Pose/{} frames'.format(end-start)): + cfg.OPT_POSE = True + params = optimizePose(body_model, params, kp3ds, weight_loss=weight, kintree=config['kintree'], cfg=cfg) + if args.model in ['smplh', 'smplx']: + cfg.OPT_HAND = True + params = optimizePose(body_model, params, kp3ds, weight_loss=weight, kintree=config['kintree'], cfg=cfg) + if args.model == 'smplx': + cfg.OPT_EXPR = True + params = optimizePose(body_model, params, kp3ds, weight_loss=weight, kintree=config['kintree'], cfg=cfg) + # TODO:optimize 2D pose + # write out the results dataset.no_img = not args.vis_smpl for nf in tqdm(range(start, end), desc='render'): images, annots = dataset[nf] dataset.write_smpl(select_nf(params, nf-start), nf) if args.vis_smpl: vertices = body_model(return_verts=True, return_tensor=False, **select_nf(params, nf-start)) - dataset.vis_smpl(vertices=vertices, faces=body_model.faces, images=images, nf=nf, sub_vis=args.sub_vis) + dataset.vis_smpl(vertices=vertices, faces=body_model.faces, images=images, nf=nf, sub_vis=args.sub_vis, add_back=True) if __name__ == "__main__": - import argparse - parser = argparse.ArgumentParser('multi_view one_person multi_frame skel') - parser.add_argument('path', type=str) - parser.add_argument('--out', type=str, default=None) - parser.add_argument('--sub', type=str, nargs='+', default=[], - help='the sub folder lists when in video mode') - parser.add_argument('--start', type=int, default=0, - help='frame start') - parser.add_argument('--end', type=int, default=10000, - help='frame end') - parser.add_argument('--step', type=int, default=1, - help='frame step') - parser.add_argument('--body', type=str, default='body15', choices=['body15', 'body25', 'total']) - parser.add_argument('--undis', action='store_true') - parser.add_argument('--add_hand_face', action='store_true') + from mytools.cmd_loader import load_parser + parser = load_parser() + parser.add_argument('--skel', type=str, default=None, + help='path to keypoints3d') parser.add_argument('--vis_smpl', action='store_true') - parser.add_argument('--sub_vis', type=str, nargs='+', default=[], - help='the sub folder lists for visualization') args = parser.parse_args() + # print_mean_skel(args.body) mv1pmf_smpl(args.path, args.sub, args.out, args.body, args) \ No newline at end of file diff --git a/code/mytools/camera_utils.py b/code/mytools/camera_utils.py index 83e088b..838a075 100644 --- a/code/mytools/camera_utils.py +++ b/code/mytools/camera_utils.py @@ -228,3 +228,19 @@ def filterKeypoints(keypoints, thres = 0.1, min_width=40, \ add_list.append(ik) keypoints = keypoints[add_list, :, :] return keypoints, add_list + + +def get_fundamental_matrix(cameras, basenames): + skew_op = lambda x: np.array([[0, -x[2], x[1]], [x[2], 0, -x[0]], [-x[1], x[0], 0]]) + fundamental_op = lambda K_0, R_0, T_0, K_1, R_1, T_1: np.linalg.inv(K_0).T @ ( + R_0 @ R_1.T) @ K_1.T @ skew_op(K_1 @ R_1 @ R_0.T @ (T_0 - R_0 @ R_1.T @ T_1)) + fundamental_RT_op = lambda K_0, RT_0, K_1, RT_1: fundamental_op (K_0, RT_0[:, :3], RT_0[:, 3], K_1, + RT_1[:, :3], RT_1[:, 3] ) + F = np.zeros((len(basenames), len(basenames), 3, 3)) # N x N x 3 x 3 matrix + F = {(icam, jcam): np.zeros((3, 3)) for jcam in basenames for icam in basenames} + for icam in basenames: + for jcam in basenames: + F[(icam, jcam)] += fundamental_RT_op(cameras[icam]['K'], cameras[icam]['RT'], cameras[jcam]['K'], cameras[jcam]['RT']) + if F[(icam, jcam)].sum() == 0: + F[(icam, jcam)] += 1e-12 # to avoid nan + return F \ No newline at end of file diff --git a/code/mytools/cmd_loader.py b/code/mytools/cmd_loader.py new file mode 100644 index 0000000..bc93f4c --- /dev/null +++ b/code/mytools/cmd_loader.py @@ -0,0 +1,44 @@ +''' + @ Date: 2021-01-15 12:09:27 + @ Author: Qing Shuai + @ LastEditors: Qing Shuai + @ LastEditTime: 2021-01-24 20:57:22 + @ FilePath: /EasyMocapRelease/code/mytools/cmd_loader.py +''' + +import argparse + +def load_parser(): + parser = argparse.ArgumentParser('EasyMocap commond line tools') + parser.add_argument('path', type=str) + parser.add_argument('--out', type=str, default=None) + parser.add_argument('--annot', type=str, default=None) + parser.add_argument('--sub', type=str, nargs='+', default=[], + help='the sub folder lists when in video mode') + parser.add_argument('--start', type=int, default=0, + help='frame start') + parser.add_argument('--end', type=int, default=10000, + help='frame end') + parser.add_argument('--step', type=int, default=1, + help='frame step') + # + # keypoints and body model + # + parser.add_argument('--body', type=str, default='body25', choices=['body15', 'body25', 'bodyhand', 'bodyhandface', 'total']) + parser.add_argument('--model', type=str, default='smpl', choices=['smpl', 'smplh', 'smplx', 'mano']) + parser.add_argument('--gender', type=str, default='neutral', + choices=['neutral', 'male', 'female']) + # + # visualization part + # + parser.add_argument('--vis_det', action='store_true') + parser.add_argument('--vis_repro', action='store_true') + parser.add_argument('--undis', action='store_true') + parser.add_argument('--sub_vis', type=str, nargs='+', default=[], + help='the sub folder lists for visualization') + # + # debug + # + parser.add_argument('--verbose', action='store_true') + parser.add_argument('--debug', action='store_true') + return parser \ No newline at end of file diff --git a/code/mytools/reconstruction.py b/code/mytools/reconstruction.py index 7861ce1..3657a82 100644 --- a/code/mytools/reconstruction.py +++ b/code/mytools/reconstruction.py @@ -2,8 +2,8 @@ * @ Date: 2020-09-14 11:01:52 * @ Author: Qing Shuai @ LastEditors: Qing Shuai - @ LastEditTime: 2021-01-13 11:30:38 - @ FilePath: /EasyMocap/code/mytools/reconstruction.py + @ LastEditTime: 2021-01-24 22:28:09 + @ FilePath: /EasyMocapRelease/code/mytools/reconstruction.py ''' import numpy as np @@ -45,13 +45,9 @@ def simple_triangulate(kpts, Pall): A[i*2 + 1, :] = kpts[i, 2]*(kpts[i, 1]*P[2:3,:] - P[1:2,:]) result[:3] = solveZ(A) return result - # kpts_proj = projectN3(result, Pall) - # repro_error = simple_reprojection_error(kpts, kpts_proj) - # return kpts3d, conf/nViews, repro_error/nViews - # else: - # return kpts3d, conf -def simple_recon_person(keypoints_use, Puse, ret_repro=False, max_error=100): +def simple_recon_person(keypoints_use, Puse, config=None, ret_repro=False): + eps = 0.01 nJoints = keypoints_use[0].shape[0] if isinstance(keypoints_use, list): keypoints_use = np.stack(keypoints_use) @@ -61,23 +57,33 @@ def simple_recon_person(keypoints_use, Puse, ret_repro=False, max_error=100): if (keypoints[:, 2] > 0.01).sum() < 2: continue out[nj] = simple_triangulate(keypoints, Puse) + if config is not None: + # remove the false limb with the help of limb + for (i, j), mean_std in config['skeleton'].items(): + ii, jj = min(i, j), max(i, j) + if out[ii, -1] < eps: + out[jj, -1] = 0 + if out[jj, -1] < eps: + continue + length = np.linalg.norm(out[ii, :3] - out[jj, :3]) + if abs(length - mean_std['mean'])/(3*mean_std['std']) > 1: + # print((i, j), length, mean_std) + out[jj, :] = 0 # 计算重投影误差 kpts_repro = projectN3(out, Puse) square_diff = (keypoints_use[:, :, :2] - kpts_repro[:, :, :2])**2 - conf = (out[None, :, -1] > 0.01) * (keypoints_use[:, :, 2] > 0.01) + # conf = (out[None, :, -1] > 0.01) * (keypoints_use[:, :, 2] > 0.01) + conf = np.repeat(out[None, :, -1:], len(Puse), 0) + kpts_repro = np.concatenate((kpts_repro, conf), axis=2) if conf.sum() < 3: # 至少得有3个有效的关节 repro_error = 1e3 else: - repro_error_joint = np.sqrt(square_diff.sum(axis=2))*conf - num_valid_view = conf.sum(axis=0) - # 对于可见视角少的,强行设置为不可见 - repro_error_joint[:, num_valid_view==0] = max_error * 2 - num_valid_view[num_valid_view==0] = 1 - repro_error_joint_ = repro_error_joint.sum(axis=0)/num_valid_view - # print(repro_error_joint_) - not_valid = np.where(repro_error_joint_>max_error)[0] - out[not_valid, -1] = 0 + # (nViews, nJoints): reprojection error for each joint in each view + repro_error_joint = np.sqrt(square_diff.sum(axis=2, keepdims=True))*conf + # remove the not valid joints + # remove the bad views repro_error = repro_error_joint.sum()/conf.sum() + if ret_repro: return out, repro_error, kpts_repro return out, repro_error diff --git a/code/mytools/utils.py b/code/mytools/utils.py new file mode 100644 index 0000000..878b68a --- /dev/null +++ b/code/mytools/utils.py @@ -0,0 +1,21 @@ +''' + @ Date: 2021-01-15 11:12:00 + @ Author: Qing Shuai + @ LastEditors: Qing Shuai + @ LastEditTime: 2021-01-15 11:19:55 + @ FilePath: /EasyMocap/code/mytools/utils.py +''' +import time + +class Timer: + def __init__(self, name, silent=False): + self.name = name + self.silent = silent + + def __enter__(self): + self.start = time.time() + + def __exit__(self, exc_type, exc_value, exc_tb): + end = time.time() + if not self.silent: + print('-> [{}]: {:.2f}s'.format(self.name, end-self.start)) diff --git a/code/mytools/vis_base.py b/code/mytools/vis_base.py index 986da91..acfea4a 100644 --- a/code/mytools/vis_base.py +++ b/code/mytools/vis_base.py @@ -2,7 +2,7 @@ @ Date: 2020-11-28 17:23:04 @ Author: Qing Shuai @ LastEditors: Qing Shuai - @ LastEditTime: 2021-01-14 17:11:51 + @ LastEditTime: 2021-01-21 15:16:52 @ FilePath: /EasyMocap/code/mytools/vis_base.py ''' import cv2 @@ -73,12 +73,13 @@ def plot_keypoints(img, points, pid, config, vis_conf=False, use_limb_color=True col = get_rgb(config['colors'][ii]) else: col = get_rgb(pid) - if pt1[2] > 0.01 and pt2[2] > 0.01: + if pt1[-1] > 0.01 and pt2[-1] > 0.01: image = cv2.line( img, (int(pt1[0]+0.5), int(pt1[1]+0.5)), (int(pt2[0]+0.5), int(pt2[1]+0.5)), col, lw) for i in range(len(points)): - x, y, c = points[i] + x, y = points[i][0], points[i][1] + c = points[i][-1] if c > 0.01: col = get_rgb(pid) cv2.circle(img, (int(x+0.5), int(y+0.5)), lw*2, col, -1) @@ -98,9 +99,11 @@ def merge(images, row=-1, col=-1, resize=False, ret_range=False): images = [images[i] for i in [0, 1, 2, 3, 7, 6, 5, 4]] if len(images) == 7: row, col = 3, 3 + elif len(images) == 2: + row, col = 2, 1 height = images[0].shape[0] width = images[0].shape[1] - ret_img = np.zeros((height * row, width * col, 3), dtype=np.uint8) + 255 + ret_img = np.zeros((height * row, width * col, images[0].shape[2]), dtype=np.uint8) + 255 ranges = [] for i in range(row): for j in range(col): diff --git a/code/pyfitting/lossfactory.py b/code/pyfitting/lossfactory.py index 0f5ed2c..7556fd9 100644 --- a/code/pyfitting/lossfactory.py +++ b/code/pyfitting/lossfactory.py @@ -2,51 +2,86 @@ @ Date: 2020-11-19 17:46:04 @ Author: Qing Shuai @ LastEditors: Qing Shuai - @ LastEditTime: 2021-01-14 15:02:39 + @ LastEditTime: 2021-01-22 16:51:55 @ FilePath: /EasyMocap/code/pyfitting/lossfactory.py ''' import torch from .operation import projection, batch_rodrigues -def ReprojectionLoss(keypoints3d, keypoints2d, K, Rc, Tc, inv_bbox_sizes): +def ReprojectionLoss(keypoints3d, keypoints2d, K, Rc, Tc, inv_bbox_sizes, norm='l2'): img_points = projection(keypoints3d, K, Rc, Tc) - residual = (img_points - keypoints2d[:, :, :2]) * keypoints2d[:, :, 2:3] - squared_res = (residual ** 2) * inv_bbox_sizes + residual = (img_points - keypoints2d[:, :, :2]) * keypoints2d[:, :, -1:] + # squared_res: (nFrames, nJoints, 2) + if norm == 'l2': + squared_res = (residual ** 2) * inv_bbox_sizes + elif norm == 'l1': + squared_res = torch.abs(residual) * inv_bbox_sizes + else: + import ipdb; ipdb.set_trace() return torch.sum(squared_res) class SMPLAngleLoss: - def __init__(self, keypoints): - use_feet = keypoints[:, [19, 20, 21, 22, 23, 24], -1].sum() > 0.1 - use_head = keypoints[:, [15, 16, 17, 18], -1].sum() > 0.1 - SMPL_JOINT_ZERO_IDX = [3, 6, 9, 13, 14, 20, 21, 22, 23] + def __init__(self, keypoints, model_type='smpl'): + if keypoints.shape[1] <= 15: + use_feet = False + use_head = False + else: + use_feet = keypoints[:, [19, 20, 21, 22, 23, 24], -1].sum() > 0.1 + use_head = keypoints[:, [15, 16, 17, 18], -1].sum() > 0.1 + if model_type == 'smpl': + SMPL_JOINT_ZERO_IDX = [3, 6, 9, 10, 11, 13, 14, 20, 21, 22, 23] + elif model_type == 'smplh': + SMPL_JOINT_ZERO_IDX = [3, 6, 9, 10, 11, 13, 14] + elif model_type == 'smplx': + SMPL_JOINT_ZERO_IDX = [3, 6, 9, 10, 11, 13, 14] + else: + raise NotImplementedError if not use_feet: SMPL_JOINT_ZERO_IDX.extend([7, 8]) if not use_head: SMPL_JOINT_ZERO_IDX.extend([12, 15]) SMPL_POSES_ZERO_IDX = [[j for j in range(3*i, 3*i+3)] for i in SMPL_JOINT_ZERO_IDX] SMPL_POSES_ZERO_IDX = sum(SMPL_POSES_ZERO_IDX, []) + # SMPL_POSES_ZERO_IDX.extend([36, 37, 38, 45, 46, 47]) self.idx = SMPL_POSES_ZERO_IDX def loss(self, poses): return torch.sum(torch.abs(poses[:, self.idx])) -def SmoothLoss(body_params, keys, weight_loss, span=4): +def SmoothLoss(body_params, keys, weight_loss, span=4, model_type='smpl'): spans = [i for i in range(1, span)] span_weights = {i:1/i for i in range(1, span)} span_weights = {key: i/sum(span_weights) for key, i in span_weights.items()} loss_dict = {} nFrames = body_params['poses'].shape[0] - for key in ['poses', 'Th']: + nPoses = body_params['poses'].shape[1] + if model_type == 'smplh' or model_type == 'smplx': + nPoses = 66 + for key in ['poses', 'Th', 'poses_hand', 'expression']: + if key not in keys: + continue k = 'smooth_' + key if k in weight_loss.keys() and weight_loss[k] > 0.: loss_dict[k] = 0. for span in spans: - val = torch.sum((body_params[key][span:, :] - body_params[key][:nFrames-span, :])**2) + if key == 'poses_hand': + val = torch.sum((body_params['poses'][span:, 66:] - body_params['poses'][:nFrames-span, 66:])**2) + else: + val = torch.sum((body_params[key][span:, :nPoses] - body_params[key][:nFrames-span, :nPoses])**2) + loss_dict[k] += span_weights[span] * val + k = 'smooth_' + key + '_l1' + if k in weight_loss.keys() and weight_loss[k] > 0.: + loss_dict[k] = 0. + for span in spans: + if key == 'poses_hand': + val = torch.sum((body_params['poses'][span:, 66:] - body_params['poses'][:nFrames-span, 66:]).abs()) + else: + val = torch.sum((body_params[key][span:, :nPoses] - body_params[key][:nFrames-span, :nPoses]).abs()) loss_dict[k] += span_weights[span] * val # smooth rotation rot = batch_rodrigues(body_params['Rh']) key, k = 'Rh', 'smooth_Rh' - if k in weight_loss.keys() and weight_loss[k] > 0.: + if key in keys and k in weight_loss.keys() and weight_loss[k] > 0.: loss_dict[k] = 0. for span in spans: val = torch.sum((rot[span:, :] - rot[:nFrames-span, :])**2) @@ -55,10 +90,24 @@ def SmoothLoss(body_params, keys, weight_loss, span=4): def RegularizationLoss(body_params, body_params_init, weight_loss): loss_dict = {} - for key in ['poses', 'shapes', 'Th']: - if 'init_'+key in weight_loss.keys() and weight_loss['init_'+key] > 0.: + for key in ['poses', 'shapes', 'Th', 'hands', 'head', 'expression']: + if 'init_'+key in weight_loss.keys() and weight_loss['init_'+key] > 0.: + if key == 'poses': + loss_dict['init_'+key] = torch.sum((body_params[key][:, :66] - body_params_init[key][:, :66])**2) + elif key == 'hands': + loss_dict['init_'+key] = torch.sum((body_params['poses'][: , 66:66+12] - body_params_init['poses'][:, 66:66+12])**2) + elif key == 'head': + loss_dict['init_'+key] = torch.sum((body_params['poses'][: , 78:78+9] - body_params_init['poses'][:, 78:78+9])**2) + elif key in body_params.keys(): loss_dict['init_'+key] = torch.sum((body_params[key] - body_params_init[key])**2) - for key in ['poses', 'shapes']: + for key in ['poses', 'shapes', 'hands', 'head', 'expression']: if 'reg_'+key in weight_loss.keys() and weight_loss['reg_'+key] > 0.: - loss_dict['reg_'+key] = torch.sum((body_params[key])**2) + if key == 'poses': + loss_dict['reg_'+key] = torch.sum((body_params[key][:, :66])**2) + elif key == 'hands': + loss_dict['reg_'+key] = torch.sum((body_params['poses'][: , 66:66+12])**2) + elif key == 'head': + loss_dict['reg_'+key] = torch.sum((body_params['poses'][: , 78:78+9])**2) + elif key in body_params.keys(): + loss_dict['reg_'+key] = torch.sum((body_params[key])**2) return loss_dict \ No newline at end of file diff --git a/code/pyfitting/operation.py b/code/pyfitting/operation.py index 5272249..f45ea63 100644 --- a/code/pyfitting/operation.py +++ b/code/pyfitting/operation.py @@ -2,7 +2,7 @@ @ Date: 2020-11-19 11:39:45 @ Author: Qing Shuai @ LastEditors: Qing Shuai - @ LastEditTime: 2020-11-19 11:50:20 + @ LastEditTime: 2021-01-20 15:06:28 @ FilePath: /EasyMocap/code/pyfitting/operation.py ''' import torch @@ -47,12 +47,18 @@ def projection(points3d, camera_intri, R=None, T=None, distance=None): points3d {Tensor} -- (bn, N, 3) camera_intri {Tensor} -- (bn, 3, 3) distance {Tensor} -- (bn, 1, 1) + R: bn, 3, 3 + T: bn, 3, 1 Returns: points2d -- (bn, N, 2) """ if R is not None: Rt = torch.transpose(R, 1, 2) - points3d = torch.matmul(points3d, Rt) + T + if T.shape[-1] == 1: + Tt = torch.transpose(T, 1, 2) + points3d = torch.matmul(points3d, Rt) + Tt + else: + points3d = torch.matmul(points3d, Rt) + T if distance is None: img_points = torch.div(points3d[:, :, :2], diff --git a/code/pyfitting/optimize_simple.py b/code/pyfitting/optimize_simple.py index e91ffdd..0fd3a07 100644 --- a/code/pyfitting/optimize_simple.py +++ b/code/pyfitting/optimize_simple.py @@ -2,8 +2,8 @@ @ Date: 2020-11-19 10:49:26 @ Author: Qing Shuai @ LastEditors: Qing Shuai - @ LastEditTime: 2021-01-14 20:19:34 - @ FilePath: /EasyMocap/code/pyfitting/optimize_simple.py + @ LastEditTime: 2021-01-24 21:29:12 + @ FilePath: /EasyMocapRelease/code/pyfitting/optimize_simple.py ''' import numpy as np import torch @@ -213,6 +213,7 @@ def optimizeShape(body_model, body_params, keypoints3d, limb_length = torch.Tensor(limb_length).to(device) limb_conf = torch.Tensor(limb_conf).to(device) body_params = {key:torch.Tensor(val).to(device) for key, val in body_params.items()} + body_params_init = {key:val.clone() for key, val in body_params.items()} opt_params = [body_params['shapes']] grad_require(opt_params, True) optimizer = LBFGS( @@ -226,14 +227,16 @@ def optimizeShape(body_model, body_params, keypoints3d, dst = keypoints3d[:, kintree[:, 1], :3] direct_est = (dst - src).detach() direct_norm = torch.norm(direct_est, dim=2, keepdim=True) - direct_normalized = direct_est/direct_norm + direct_normalized = direct_est/(direct_norm + 1e-4) err = dst - src - direct_normalized * limb_length loss_dict = { 's3d': torch.sum(err**2*limb_conf)/nFrames, - 'reg_shape': torch.sum(body_params['shapes']**2)} + 'reg_shapes': torch.sum(body_params['shapes']**2)} + if 'init_shape' in weight_loss.keys(): + loss_dict['init_shape'] = torch.sum((body_params['shapes'] - body_params_init['shapes'])**2) # fittingLog.step(loss_dict, weight_loss) if verbose: - print(' '.join([key + ' %f'%(loss_dict[key].item()*weight_loss[key]) + print(' '.join([key + ' %.3f'%(loss_dict[key].item()*weight_loss[key]) for key in loss_dict.keys() if weight_loss[key]>0])) loss = sum([loss_dict[key]*weight_loss[key] for key in loss_dict.keys()]) @@ -255,6 +258,9 @@ def optimizeShape(body_model, body_params, keypoints3d, body_params = {key:val.detach().cpu().numpy() for key, val in body_params.items()} return body_params +N_BODY = 25 +N_HAND = 21 + def optimizePose(body_model, body_params, keypoints3d, weight_loss, kintree, cfg=None): """ simple function for optimizing model pose given 3d keypoints @@ -268,22 +274,16 @@ def optimizePose(body_model, body_params, keypoints3d, cfg (Config): Config Node controling running mode """ device = body_model.device + model_type = body_model.model_type # 计算不同的骨长 kintree = np.array(kintree, dtype=np.int) nFrames = keypoints3d.shape[0] - # limb_length: nFrames, nLimbs, 1 - limb = keypoints3d[:, kintree[:, 1], :3] - keypoints3d[:, kintree[:, 0], :3] - limb_length = np.linalg.norm(limb, axis=2, keepdims=True) - # conf: nFrames, nLimbs, 1 - limb_conf = np.minimum(keypoints3d[:, kintree[:, 1], 3:], keypoints3d[:, kintree[:, 0], 3:]) - limb_dir = limb/limb_length - + nJoints = keypoints3d.shape[1] keypoints3d = torch.Tensor(keypoints3d).to(device) - limb_dir = torch.Tensor(limb_dir).to(device).unsqueeze(2) - limb_conf = torch.Tensor(limb_conf).to(device) - angle_prior = SMPLAngleLoss(keypoints3d) + angle_prior = SMPLAngleLoss(keypoints3d, body_model.model_type) body_params = {key:torch.Tensor(val).to(device) for key, val in body_params.items()} + body_params_init = {key:val.clone() for key, val in body_params.items()} if cfg is None: opt_params = [body_params['Rh'], body_params['Th'], body_params['poses']] verbose = False @@ -297,35 +297,46 @@ def optimizePose(body_model, body_params, keypoints3d, opt_params.append(body_params['poses']) if cfg.OPT_SHAPE: opt_params.append(body_params['shapes']) + if cfg.OPT_EXPR and model_type == 'smplx': + opt_params.append(body_params['expression']) verbose = cfg.VERBOSE grad_require(opt_params, True) optimizer = LBFGS( opt_params, line_search_fn='strong_wolfe') zero_pose = torch.zeros((nFrames, 3), device=device) + if not cfg.OPT_HAND and model_type in ['smplh', 'smplx']: + zero_pose_hand = torch.zeros((nFrames, body_params['poses'].shape[1] - 66), device=device) + nJoints = N_BODY + keypoints3d = keypoints3d[:, :nJoints] + elif cfg.OPT_HAND and not cfg.OPT_EXPR and model_type == 'smplx': + zero_pose_face = torch.zeros((nFrames, body_params['poses'].shape[1] - 78), device=device) + nJoints = N_BODY + N_HAND * 2 + keypoints3d = keypoints3d[:, :nJoints] + else: + nJoints = keypoints3d.shape[1] def closure(debug=False): optimizer.zero_grad() new_params = body_params.copy() - new_params['poses'] = torch.cat([zero_pose, body_params['poses'][:, 3:]], dim=1) - kpts_est = body_model(return_verts=False, return_tensor=True, **new_params) - diff_square = (kpts_est - keypoints3d[..., :3])**2 - if False: - pass + if not cfg.OPT_HAND and cfg.MODEL in ['smplh', 'smplx']: + new_params['poses'] = torch.cat([zero_pose, body_params['poses'][:, 3:66], zero_pose_hand], dim=1) else: - conf = keypoints3d[..., 3:] + new_params['poses'] = torch.cat([zero_pose, body_params['poses'][:, 3:]], dim=1) + kpts_est = body_model(return_verts=False, return_tensor=True, **new_params)[:, :nJoints, :] + diff_square = (kpts_est[:, :nJoints, :3] - keypoints3d[..., :3])**2 + # TODO:add robust loss + conf = keypoints3d[..., 3:] loss_3d = torch.sum(conf * diff_square) - if False: - src = keypoints3d[:, kintree[:, 0], :3].detach() - dst = keypoints3d[:, kintree[:, 1], :3] - direct_est = dst - src - direct_norm = torch.norm(direct_est, dim=2, keepdim=True) - direct_normalized = direct_est/direct_norm - loss_dict = { 'k3d': loss_3d, 'reg_poses_zero': angle_prior.loss(body_params['poses']) } + # regularize + loss_dict.update(RegularizationLoss(body_params, body_params_init, weight_loss)) # smooth - loss_dict.update(SmoothLoss(body_params, ['poses', 'Th'], weight_loss)) + smooth_conf = keypoints3d[1:, ..., -1:]**2 + loss_dict['smooth_body'] = torch.sum(smooth_conf[:, :N_BODY] * torch.abs(kpts_est[:-1, :N_BODY] - kpts_est[1:, :N_BODY])) + if cfg.OPT_HAND and cfg.MODEL in ['smplh', 'smplx']: + loss_dict['smooth_hand'] = torch.sum(smooth_conf[:, N_BODY:N_BODY+N_HAND*2] * torch.abs(kpts_est[:-1, N_BODY:N_BODY+N_HAND*2] - kpts_est[1:, N_BODY:N_BODY+N_HAND*2])) for key in loss_dict.keys(): loss_dict[key] = loss_dict[key]/nFrames # fittingLog.step(loss_dict, weight_loss) diff --git a/code/smplmodel/__init__.py b/code/smplmodel/__init__.py index 4e63938..08988ac 100644 --- a/code/smplmodel/__init__.py +++ b/code/smplmodel/__init__.py @@ -2,8 +2,9 @@ @ Date: 2020-11-18 14:33:20 @ Author: Qing Shuai @ LastEditors: Qing Shuai - @ LastEditTime: 2021-01-14 20:12:26 + @ LastEditTime: 2021-01-20 16:33:02 @ FilePath: /EasyMocap/code/smplmodel/__init__.py ''' from .body_model import SMPLlayer -from .body_param import merge_params, select_nf, init_params, Config \ No newline at end of file +from .body_param import load_model +from .body_param import merge_params, select_nf, init_params, Config, check_params, check_keypoints \ No newline at end of file diff --git a/code/smplmodel/body_model.py b/code/smplmodel/body_model.py index daa5bcf..5e9a045 100644 --- a/code/smplmodel/body_model.py +++ b/code/smplmodel/body_model.py @@ -2,7 +2,7 @@ @ Date: 2020-11-18 14:04:10 @ Author: Qing Shuai @ LastEditors: Qing Shuai - @ LastEditTime: 2021-01-14 20:14:34 + @ LastEditTime: 2021-01-22 16:04:54 @ FilePath: /EasyMocap/code/smplmodel/body_model.py ''' import torch @@ -11,6 +11,7 @@ from .lbs import lbs, batch_rodrigues import os.path as osp import pickle import numpy as np +import os def to_tensor(array, dtype=torch.float32, device=torch.device('cpu')): if 'torch.tensor' not in str(type(array)): @@ -23,13 +24,29 @@ def to_np(array, dtype=np.float32): array = array.todense() return np.array(array, dtype=dtype) +def load_regressor(regressor_path): + if regressor_path.endswith('.npy'): + X_regressor = to_tensor(np.load(regressor_path)) + elif regressor_path.endswith('.txt'): + data = np.loadtxt(regressor_path) + with open(regressor_path, 'r') as f: + shape = f.readline().split()[1:] + reg = np.zeros((int(shape[0]), int(shape[1]))) + for i, j, v in data: + reg[int(i), int(j)] = v + X_regressor = to_tensor(reg) + else: + import ipdb; ipdb.set_trace() + return X_regressor + class SMPLlayer(nn.Module): - def __init__(self, model_path, gender='neutral', device=None, + def __init__(self, model_path, model_type='smpl', gender='neutral', device=None, regressor_path=None) -> None: super(SMPLlayer, self).__init__() dtype = torch.float32 self.dtype = dtype self.device = device + self.model_type = model_type # create the SMPL model if osp.isdir(model_path): model_fn = 'SMPL_{}.{ext}'.format(gender.upper(), ext='pkl') @@ -58,13 +75,18 @@ class SMPLlayer(nn.Module): parents = to_tensor(to_np(data['kintree_table'][0])).long() parents[0] = -1 self.register_buffer('parents', parents) + if self.model_type == 'smplx': + # shape + self.num_expression_coeffs = 10 + self.num_shapes = 10 + self.shapedirs = self.shapedirs[:, :, :self.num_shapes+self.num_expression_coeffs] # joints regressor if regressor_path is not None: - X_regressor = to_tensor(np.load(regressor_path)) + X_regressor = load_regressor(regressor_path) X_regressor = torch.cat((self.J_regressor, X_regressor), dim=0) - j_J_regressor = torch.zeros(24, X_regressor.shape[0], device=device) - for i in range(24): + j_J_regressor = torch.zeros(self.J_regressor.shape[0], X_regressor.shape[0], device=device) + for i in range(self.J_regressor.shape[0]): j_J_regressor[i, i] = 1 j_v_template = X_regressor @ self.v_template # @@ -79,8 +101,65 @@ class SMPLlayer(nn.Module): self.register_buffer('j_weights', j_weights) self.register_buffer('j_v_template', j_v_template) self.register_buffer('j_J_regressor', j_J_regressor) + if self.model_type == 'smplh': + # load smplh data + self.num_pca_comps = 6 + from os.path import join + for key in ['LEFT', 'RIGHT']: + left_file = join(os.path.dirname(smpl_path), 'MANO_{}.pkl'.format(key)) + with open(left_file, 'rb') as f: + data = pickle.load(f, encoding='latin1') + val = to_tensor(to_np(data['hands_mean'].reshape(1, -1)), dtype=dtype) + self.register_buffer('mHandsMean'+key[0], val) + val = to_tensor(to_np(data['hands_components'][:self.num_pca_comps, :]), dtype=dtype) + self.register_buffer('mHandsComponents'+key[0], val) + self.use_pca = True + self.use_flat_mean = True + elif self.model_type == 'smplx': + # hand pose + self.num_pca_comps = 6 + from os.path import join + for key in ['Ll', 'Rr']: + val = to_tensor(to_np(data['hands_mean'+key[1]].reshape(1, -1)), dtype=dtype) + self.register_buffer('mHandsMean'+key[0], val) + val = to_tensor(to_np(data['hands_components'+key[1]][:self.num_pca_comps, :]), dtype=dtype) + self.register_buffer('mHandsComponents'+key[0], val) + self.use_pca = True + self.use_flat_mean = True + + def extend_pose(self, poses): + if self.model_type not in ['smplh', 'smplx']: + return poses + elif self.model_type == 'smplh' and poses.shape[-1] == 156: + return poses + elif self.model_type == 'smplx' and poses.shape[-1] == 165: + return poses + + NUM_BODYJOINTS = 22 * 3 + if self.use_pca: + NUM_HANDJOINTS = self.num_pca_comps + else: + NUM_HANDJOINTS = 15 * 3 + NUM_FACEJOINTS = 3 * 3 + poses_lh = poses[:, NUM_BODYJOINTS:NUM_BODYJOINTS + NUM_HANDJOINTS] + poses_rh = poses[:, NUM_BODYJOINTS + NUM_HANDJOINTS:NUM_BODYJOINTS+NUM_HANDJOINTS*2] + if self.use_pca: + poses_lh = poses_lh @ self.mHandsComponentsL + poses_rh = poses_rh @ self.mHandsComponentsR + if self.use_flat_mean: + poses_lh = poses_lh + self.mHandsMeanL + poses_rh = poses_rh + self.mHandsMeanR + if self.model_type == 'smplh': + poses = torch.cat([poses[:, :NUM_BODYJOINTS], poses_lh, poses_rh], dim=1) + elif self.model_type == 'smplx': + # the head part have only three joints + # poses_head: (N, 9), jaw_pose, leye_pose, reye_pose respectively + poses_head = poses[:, NUM_BODYJOINTS+NUM_HANDJOINTS*2:] + # body, head, left hand, right hand + poses = torch.cat([poses[:, :NUM_BODYJOINTS], poses_head, poses_lh, poses_rh], dim=1) + return poses - def forward(self, poses, shapes, Rh=None, Th=None, return_verts=True, return_tensor=True, only_shape=False, **kwargs): + def forward(self, poses, shapes, Rh=None, Th=None, expression=None, return_verts=True, return_tensor=True, only_shape=False, **kwargs): """ Forward pass for SMPL model Args: @@ -96,13 +175,23 @@ class SMPLlayer(nn.Module): shapes = to_tensor(shapes, dtype, device) Rh = to_tensor(Rh, dtype, device) Th = to_tensor(Th, dtype, device) + if expression is not None: + expression = to_tensor(expression, dtype, device) + bn = poses.shape[0] + # process Rh, Th if Rh is None: Rh = torch.zeros(bn, 3, device=poses.device) rot = batch_rodrigues(Rh) transl = Th.unsqueeze(dim=1) + # process shapes if shapes.shape[0] < bn: shapes = shapes.expand(bn, -1) + if expression is not None and self.model_type == 'smplx': + shapes = torch.cat([shapes, expression], dim=1) + # process poses + if self.model_type == 'smplh' or self.model_type == 'smplx': + poses = self.extend_pose(poses) if return_verts: vertices, joints = lbs(shapes, poses, self.v_template, self.shapedirs, self.posedirs, @@ -113,7 +202,7 @@ class SMPLlayer(nn.Module): self.j_shapedirs, self.j_posedirs, self.j_J_regressor, self.parents, self.j_weights, pose2rot=True, dtype=self.dtype, only_shape=only_shape) - vertices = vertices[:, 24:, :] + vertices = vertices[:, self.J_regressor.shape[0]:, :] vertices = torch.matmul(vertices, rot.transpose(1, 2)) + transl if not return_tensor: vertices = vertices.detach().cpu().numpy() diff --git a/code/smplmodel/body_param.py b/code/smplmodel/body_param.py index d9363c1..0063e91 100644 --- a/code/smplmodel/body_param.py +++ b/code/smplmodel/body_param.py @@ -2,15 +2,16 @@ @ Date: 2020-11-20 13:34:54 @ Author: Qing Shuai @ LastEditors: Qing Shuai - @ LastEditTime: 2021-01-14 20:09:40 - @ FilePath: /EasyMocap/code/smplmodel/body_param.py + @ LastEditTime: 2021-01-24 18:39:45 + @ FilePath: /EasyMocapRelease/code/smplmodel/body_param.py ''' import numpy as np def merge_params(param_list, share_shape=True): output = {} - for key in ['poses', 'shapes', 'Rh', 'Th']: - output[key] = np.vstack([v[key] for v in param_list]) + for key in ['poses', 'shapes', 'Rh', 'Th', 'expression']: + if key in param_list[0].keys(): + output[key] = np.vstack([v[key] for v in param_list]) if share_shape: output['shapes'] = output['shapes'].mean(axis=0, keepdims=True) return output @@ -19,24 +20,83 @@ def select_nf(params_all, nf): output = {} for key in ['poses', 'Rh', 'Th']: output[key] = params_all[key][nf:nf+1, :] + if 'expression' in params_all.keys(): + output['expression'] = params_all['expression'][nf:nf+1, :] if params_all['shapes'].shape[0] == 1: output['shapes'] = params_all['shapes'] else: output['shapes'] = params_all['shapes'][nf:nf+1, :] return output -def init_params(nFrames=1): +NUM_POSES = {'smpl': 72, 'smplh': 78, 'smplx': 66 + 12 + 9} +NUM_EXPR = 10 + +def init_params(nFrames=1, model_type='smpl'): params = { - 'poses': np.zeros((nFrames, 72)), + 'poses': np.zeros((nFrames, NUM_POSES[model_type])), 'shapes': np.zeros((1, 10)), 'Rh': np.zeros((nFrames, 3)), 'Th': np.zeros((nFrames, 3)), } + if model_type == 'smplx': + params['expression'] = np.zeros((nFrames, NUM_EXPR)) return params +def check_params(body_params, model_type): + nFrames = body_params['poses'].shape[0] + if body_params['poses'].shape[1] != NUM_POSES[model_type]: + body_params['poses'] = np.hstack((body_params['poses'], np.zeros((nFrames, NUM_POSES[model_type] - body_params['poses'].shape[1])))) + if model_type == 'smplx' and 'expression' not in body_params.keys(): + body_params['expression'] = np.zeros((nFrames, NUM_EXPR)) + return body_params + class Config: OPT_R = False OPT_T = False OPT_POSE = False OPT_SHAPE = False - VERBOSE = False \ No newline at end of file + OPT_HAND = False + OPT_EXPR = False + VERBOSE = False + MODEL = 'smpl' + +def load_model(gender='neutral', use_cuda=True, model_type='smpl'): + # prepare SMPL model + import torch + if use_cuda: + device = torch.device('cuda') + else: + device = torch.device('cpu') + from .body_model import SMPLlayer + if model_type == 'smpl': + body_model = SMPLlayer('data/smplx/smpl', gender=gender, device=device, + regressor_path='data/smplx/J_regressor_body25.npy') + elif model_type == 'smplh': + body_model = SMPLlayer('data/smplx/smplh/SMPLH_MALE.pkl', model_type='smplh', gender=gender, device=device, + regressor_path='data/smplx/J_regressor_body25_smplh.txt') + elif model_type == 'smplx': + body_model = SMPLlayer('data/smplx/smplx/SMPLX_{}.pkl'.format(gender.upper()), model_type='smplx', gender=gender, device=device, + regressor_path='data/smplx/J_regressor_body25_smplx.txt') + else: + body_model = None + body_model.to(device) + return body_model + +def check_keypoints(keypoints2d, WEIGHT_DEBUFF=1.2): + # keypoints2d: nFrames, nJoints, 3 + # + # wrong feet + # if keypoints2d.shape[-2] > 25 + 42: + # keypoints2d[..., 0, 2] = 0 + # keypoints2d[..., [15, 16, 17, 18], -1] = 0 + # keypoints2d[..., [19, 20, 21, 22, 23, 24], -1] /= 2 + if keypoints2d.shape[-2] > 25: + # set the hand keypoints + keypoints2d[..., 25, :] = keypoints2d[..., 7, :] + keypoints2d[..., 46, :] = keypoints2d[..., 4, :] + keypoints2d[..., 25:, -1] *= WEIGHT_DEBUFF + # reduce the confidence of hand and face + MIN_CONF = 0.3 + conf = keypoints2d[..., -1] + conf[conf 0)[:, :, None] rend_rgba = np.dstack((rend_rgba, (valid_mask*255).astype(np.uint8))) - rend_cat = cv2.addWeighted(cv2.bitwise_and(img, 255 - rend_rgba[:, :, 3:4].repeat(3, 2)), 1, rend_rgba[:, :, :3], 1, 0) + 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) diff --git a/doc/evaluation.md b/doc/evaluation.md new file mode 100644 index 0000000..8a59ea7 --- /dev/null +++ b/doc/evaluation.md @@ -0,0 +1,11 @@ + +# Evaluation + +## Evaluation of fitting SMPL +### Human3.6M \ No newline at end of file diff --git a/doc/feng/000400.jpg b/doc/feng/000400.jpg new file mode 100644 index 0000000000000000000000000000000000000000..10fa72daedd1bd9361de7c290768ab57fd3ae659 GIT binary patch literal 83309 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∓oR78m(cjhnn=1xffg?s`TH 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 literal 0 HcmV?d00001 diff --git a/doc/feng/skel.gif b/doc/feng/skel.gif new file mode 100644 index 0000000000000000000000000000000000000000..39ff0277c7b274d06f19705bf52b17446cff2182 GIT binary patch literal 1953634 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 z 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