diff --git a/Readme.md b/Readme.md index e78881f..aa07fb5 100644 --- a/Readme.md +++ b/Readme.md @@ -2,7 +2,7 @@ * @Date: 2021-01-13 20:32:12 * @Author: Qing Shuai * @LastEditors: Qing Shuai - * @LastEditTime: 2021-01-25 19:35:14 + * @LastEditTime: 2021-01-29 19:50:10 * @FilePath: /EasyMocapRelease/Readme.md --> # EasyMocap @@ -16,8 +16,9 @@ In this project, we provide the basic code for fitting SMPL[1]/SMPL+H[2]/SMPLX[3 > We plan to intergrate more interesting algorithms, please stay tuned! -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) +1. [[CVPR19] Multi-Person from Multiple Views](https://github.com/zju3dv/mvpose) +2. [[ECCV20] Mocap from Multiple **Uncalibrated** and **Unsynchronized** Videos](https://arxiv.org/pdf/2008.07931.pdf) +![](doc/imocap/frame_00036_036.jpg) 3. [Dense Reconstruction and View Synthesis from **Sparse Views**](https://zju3dv.github.io/neuralbody/) ## Installation diff --git a/code/mytools/utils.py b/code/mytools/utils.py index 878b68a..0de3d8a 100644 --- a/code/mytools/utils.py +++ b/code/mytools/utils.py @@ -2,7 +2,7 @@ @ Date: 2021-01-15 11:12:00 @ Author: Qing Shuai @ LastEditors: Qing Shuai - @ LastEditTime: 2021-01-15 11:19:55 + @ LastEditTime: 2021-01-25 21:36:42 @ FilePath: /EasyMocap/code/mytools/utils.py ''' import time @@ -18,4 +18,4 @@ class Timer: 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)) + print('-> [{:20s}]: {:5.1f}ms'.format(self.name, (end-self.start)*1000)) diff --git a/doc/imocap/frame_00036_036.jpg b/doc/imocap/frame_00036_036.jpg new file mode 100644 index 0000000..8031d66 Binary files /dev/null and b/doc/imocap/frame_00036_036.jpg differ diff --git a/scripts/preprocess/extract_video.py b/scripts/preprocess/extract_video.py index df80da1..d8af7a5 100644 --- a/scripts/preprocess/extract_video.py +++ b/scripts/preprocess/extract_video.py @@ -2,7 +2,7 @@ @ Date: 2021-01-13 20:38:33 @ Author: Qing Shuai @ LastEditors: Qing Shuai - @ LastEditTime: 2021-01-25 14:41:56 + @ LastEditTime: 2021-01-27 10:41:48 @ FilePath: /EasyMocap/scripts/preprocess/extract_video.py ''' import os, sys @@ -145,8 +145,8 @@ def detect_frame(detector, img, pid=0): annots.append(annot) return annots -def extract_yolo_hrnet(image_root, annot_root): - imgnames = sorted(glob(join(image_root, '*.jpg'))) +def extract_yolo_hrnet(image_root, annot_root, ext='jpg'): + imgnames = sorted(glob(join(image_root, '*.{}'.format(ext)))) import torch device = torch.device('cuda') from estimator.detector import Detector @@ -170,7 +170,7 @@ def extract_yolo_hrnet(image_root, annot_root): } detector = Detector('yolo', 'hrnet', device, config) for nf, imgname in enumerate(tqdm(imgnames)): - annotname = join(annot_root, os.path.basename(imgname).replace('.jpg', '.json')) + annotname = join(annot_root, os.path.basename(imgname).replace('.{}'.format(ext), '.json')) annot = create_annot_file(annotname, imgname) img0 = cv2.imread(imgname) annot['annots'] = detect_frame(detector, img0, 0) @@ -188,6 +188,7 @@ if __name__ == "__main__": parser = argparse.ArgumentParser() parser.add_argument('path', type=str, default=None) parser.add_argument('--mode', type=str, default='openpose', choices=['openpose', 'yolo-hrnet']) + parser.add_argument('--ext', type=str, default='jpg', choices=['jpg', 'png']) parser.add_argument('--handface', action='store_true') parser.add_argument('--openpose', type=str, default='/media/qing/Project/openpose') @@ -226,6 +227,6 @@ if __name__ == "__main__": dst=annot_root ) elif mode == 'yolo-hrnet': - extract_yolo_hrnet(image_root, annot_root) + extract_yolo_hrnet(image_root, annot_root, args.ext) else: print(args.path, ' not exists')