Exemple #1
0
def gendata(data_path,
            out_path,
            ignored_sample_path=None,
            benchmark='xview',
            part='eval'):
    if ignored_sample_path != None:
        with open(ignored_sample_path, 'r') as f:
            ignored_samples = [
                line.strip() + '.skeleton' for line in f.readlines()
            ]
    else:
        ignored_samples = []
    sample_name = []
    sample_label = []
    for filename in os.listdir(data_path):
        if filename in ignored_samples:
            continue
        action_class = int(filename[filename.find('A') + 1:filename.find('A') +
                                    4])

        #if action_class>60: #61->12, 65->16
        #    continue

        action_class -= 49  #55->6, 56->7, 58 -> 9 action_map = {"hand_shake":"58", "pass_object":"56", "hug":"55"}

        #subject_id = int(
        #    filename[filename.find('P') + 1:filename.find('P') + 4])
        camera_id = int(filename[filename.find('C') + 1:filename.find('C') +
                                 4])

        istraining = (camera_id != 3)

        if part == 'train':
            issample = istraining
        elif part == 'val':
            issample = not (istraining)
        else:
            raise ValueError()

        if issample:
            sample_name.append(filename)
            sample_label.append(action_class - 1)

    with open('{}/{}_label.pkl'.format(out_path, part), 'wb') as f:
        pickle.dump((sample_name, list(sample_label)), f)

    fp = np.zeros((len(sample_label), 3, max_frame, num_joint, max_body_true),
                  dtype=np.float32)

    for i, s in enumerate(tqdm(sample_name)):
        data = read_xyz(os.path.join(data_path, s),
                        max_body=max_body_kinect,
                        num_joint=num_joint)
        #def read_xyz(file, max_body=4, num_joint=25):
        fp[i, :, 0:data.shape[1], :, :] = data

    fp = pre_normalization(fp)
    np.save('{}/{}_data_joint.npy'.format(out_path, part), fp)
Exemple #2
0
def gendata(data_path,
            out_path,
            ignored_sample_path=None,
            benchmark='xview',
            part='eval'):
    if ignored_sample_path != None:
        with open(ignored_sample_path, 'r') as f:
            ignored_samples = [
                line.strip() + '.skeleton' for line in f.readlines()
            ]
    else:
        ignored_samples = []
    sample_name = []
    sample_label = []
    for filename in os.listdir(data_path):
        if filename in ignored_samples:
            continue
        action_class = int(filename[filename.find('A') + 1:filename.find('A') +
                                    4])

        if (action_class != 55) and (action_class != 56) and (action_class !=
                                                              58):  #6,7,9
            continue
        action_class -= 49

        set_up = int(filename[filename.find('S') + 1:filename.find('S') + 4])
        if set_up > 1:
            continue

        sample_name.append(filename)
        sample_label.append(action_class - 1)

    with open('{}/{}_label.pkl'.format(out_path, part), 'wb') as f:  #?????
        pickle.dump((sample_name, list(sample_label)), f)

    fp = np.zeros((len(sample_label), 3, max_frame, num_joint, max_body_true),
                  dtype=np.float32)  #N,C,T,V,M

    for i, s in enumerate(tqdm(sample_name)):
        data = read_xyz(os.path.join(data_path, s),
                        max_body=max_body_kinect,
                        num_joint=num_joint)
        fp[i, :, 0:data.shape[1], :, :] = data  #50000,3,300,25,2

    fp = pre_normalization(fp)  #preprocess.py
    np.save('{}/{}_data_joint.npy'.format(out_path, part), fp)
Exemple #3
0
def gendata(data_path,
            out_path,
            ignored_sample_path=None,
            benchmark='xview',
            part='eval'):
    if ignored_sample_path != None:
        with open(ignored_sample_path, 'r') as f:
            ignored_samples = [
                line.strip() + '.skeleton' for line in f.readlines()
            ]
    else:
        ignored_samples = []
    sample_name = []
    sample_label = []
    for filename in os.listdir(data_path):

        if filename in ignored_samples:
            continue
        print(filename)
        action_class = int(filename[filename.find('A') + 1:filename.find('A') +
                                    4])
        subject_id = int(filename[filename.find('P') + 1:filename.find('P') +
                                  4])
        camera_id = int(filename[filename.find('C') + 1:filename.find('C') +
                                 4])

        ############################################################
        action_class -= 49  #50->1 #50-60->1-11   #50-65 => 1-16
        if action_class < 1:
            continue
        ############################################################

        istraining = True

        if part == 'train':
            issample = istraining
        elif part == 'val':
            issample = not (istraining)
        else:
            raise ValueError()

        if issample:
            sample_name.append(filename)
            sample_label.append(action_class - 1)

    with open('{}/{}_label.pkl'.format(out_path, part), 'wb') as f:  #?????
        pickle.dump((sample_name, list(sample_label)), f)

    fp = np.zeros((len(sample_label), 3, max_frame, num_joint, max_body_true),
                  dtype=np.float32)  #N,C,T,V,M

    for i, s in enumerate(tqdm(sample_name)):
        data = read_xyz(os.path.join(data_path, s),
                        max_body=max_body_kinect,
                        num_joint=num_joint)
        fp[i, :, 0:data.shape[1], :, :] = data  #50000,3,300,25,2
        #testplt(fp[i,:,0,:,:])
    print(fp.shape)
    fp = pre_normalization(fp)  #preprocess.py
    for i in range(fp.shape[0]):
        testplt(fp[i, :, 0, :, :])

    np.save('{}/{}_data_joint.npy'.format(out_path, part), fp)