NeuralBody / tools /custom /get_annots.py
pengsida
initial commit
1ba539f
import cv2
import numpy as np
import glob
import os
import json
def get_cams():
intri = cv2.FileStorage('intri.yml', cv2.FILE_STORAGE_READ)
extri = cv2.FileStorage('extri.yml', cv2.FILE_STORAGE_READ)
cams = {'K': [], 'D': [], 'R': [], 'T': []}
for i in range(23):
cams['K'].append(intri.getNode('K_Camera_B{}'.format(i + 1)).mat())
cams['D'].append(
intri.getNode('dist_Camera_B{}'.format(i + 1)).mat().T)
cams['R'].append(extri.getNode('Rot_Camera_B{}'.format(i + 1)).mat())
cams['T'].append(extri.getNode('T_Camera_B{}'.format(i + 1)).mat() * 1000)
return cams
def get_img_paths():
all_ims = []
for i in range(23):
i = i + 1
data_root = 'Camera_B{}'.format(i)
ims = glob.glob(os.path.join(data_root, '*.jpg'))
ims = np.array(sorted(ims))
all_ims.append(ims)
num_img = min([len(ims) for ims in all_ims])
all_ims = [ims[:num_img] for ims in all_ims]
all_ims = np.stack(all_ims, axis=1)
return all_ims
cams = get_cams()
img_paths = get_img_paths()
annot = {}
annot['cams'] = cams
ims = []
for img_path, kpt in zip(img_paths, kpts2d):
data = {}
data['ims'] = img_path.tolist()
ims.append(data)
annot['ims'] = ims
np.save('annots.npy', annot)
np.save('annots_python2.npy', annot, fix_imports=True)