Esempio n. 1
0
def get_inplace_data_set_val(args, net_name):
    from dataset import InplaceDataset
    from create_dataset import create_pnet_data_txt_parser, landmark_dataset_txt_parser
    img_faces = create_pnet_data_txt_parser(args.class_val_data_txt_path, args.class_val_data_dir)
    img_face_landmark = landmark_dataset_txt_parser(args.landmark_data_txt_path, args.landmark_data_dir)
    if net_name == 'pnet':
        IDS = InplaceDataset(img_face_landmark, img_faces, cropsize=12)
    elif net_name == 'rnet':
        IDS = InplaceDataset(img_face_landmark, img_faces, cropsize=24, pnet=load_net(args, 'pnet').to('cpu'))
    elif net_name == 'onet':
        IDS = InplaceDataset(img_face_landmark, img_faces, cropsize=48,
                             pnet=load_net(args, 'pnet').to('cpu'), rnet=load_net(args, 'rnet').to('cpu'))
    return DataLoader(IDS,
                      batch_size=args.batch_size,
                      shuffle=True,
                      num_workers=args.num_workers,
                      pin_memory=False)
Esempio n. 2
0
        crop_img, label, offset, ldmk = self.get_crop_img_label_offset_ldmk(img, faces, ldmk, index)
        if crop_img is None: return self.__getitem__(random.randint(0, self.__len__()))
        img_tensor = transforms.ToTensor()(crop_img)
        # label = torch.tensor([1.0]) if item[1] in ['p', 'pf', 'l'] else torch.tensor([0.0])
        landmark_flag = torch.FloatTensor([1.0 if label == 'l' else 0.0])
        label = torch.FloatTensor([1.0 if label in ['p', 'pf', 'l'] else 0.0])
        offset = torch.FloatTensor(offset if 4 == len(offset) else 4 * [0.0])
        landmark = torch.FloatTensor(ldmk if 10 == len(ldmk) else 10 * [0.0])
        # print('label type:', label.type())
        # print('data_imformation:', label, offset, landmark_flag, landmark)
        return (img_tensor, label, offset, landmark_flag, landmark)

    def __len__(self):
        # self.ct += 1
        # return self.ct
        return len(self.img_faces)


if __name__ == '__main__':
    from create_dataset import create_pnet_data_txt_parser, landmark_dataset_txt_parser, dataset_config

    args = dataset_config()
    img_faces = create_pnet_data_txt_parser(args.class_data_txt_path, args.class_data_dir)
    img_face_landmark = landmark_dataset_txt_parser(args.landmark_data_txt_path, args.landmark_data_dir)
    IDS = InplaceDataset(img_face_landmark, img_faces, cropsize=48,
                         pnet=load_net(args, 'pnet'), rnet=load_net(args, 'rnet'))
    for i, (img_tensor, label, offset, landmark_flag, landmark) in enumerate(IDS):
        print(label, offset, landmark_flag, landmark)
        print(i)
        pass