コード例 #1
0
ファイル: test_dataset.py プロジェクト: yangheng111/mmaction2
 def test_dataset_realpath(self):
     dataset = RawframeDataset(self.frame_ann_file, self.frame_pipeline,
                               '.')
     assert dataset.data_prefix == osp.realpath('.')
     dataset = RawframeDataset(self.frame_ann_file, self.frame_pipeline,
                               's3://good')
     assert dataset.data_prefix == 's3://good'
コード例 #2
0
    def test_dataset_realpath(self):
        dataset = RawframeDataset(self.frame_ann_file, self.frame_pipeline,
                                  '.')
        assert dataset.data_prefix == osp.realpath('.')
        dataset = RawframeDataset(self.frame_ann_file, self.frame_pipeline,
                                  's3://good')
        assert dataset.data_prefix == 's3://good'

        dataset = RawframeDataset(self.frame_ann_file, self.frame_pipeline)
        assert dataset.data_prefix is None
        assert dataset.video_infos[0]['frame_dir'] == 'imgs'
コード例 #3
0
ファイル: test_dataset.py プロジェクト: yangheng111/mmaction2
 def test_rawframe_dataset(self):
     rawframe_dataset = RawframeDataset(self.frame_ann_file,
                                        self.frame_pipeline,
                                        self.data_prefix)
     rawframe_infos = rawframe_dataset.video_infos
     frame_dir = osp.join(self.data_prefix, 'test_imgs')
     assert rawframe_infos == [
         dict(frame_dir=frame_dir, total_frames=5, label=127)
     ] * 2
コード例 #4
0
 def test_rawframe_dataset_with_offset(self):
     rawframe_dataset = RawframeDataset(self.frame_ann_file_with_offset,
                                        self.frame_pipeline,
                                        self.data_prefix,
                                        with_offset=True)
     rawframe_infos = rawframe_dataset.records
     frame_dir = osp.join(self.data_prefix, 'test_imgs')
     assert rawframe_infos == [
         dict(frame_dir=frame_dir, offset=2, total_frames=5, label=127)
     ] * 2
     assert rawframe_dataset.start_index == 1
コード例 #5
0
ファイル: test_dataset.py プロジェクト: yangheng111/mmaction2
    def test_rawframe_pipeline(self):
        target_keys = ['frame_dir', 'total_frames', 'label', 'filename_tmpl']

        # RawframeDataset not in test mode
        rawframe_dataset = RawframeDataset(self.frame_ann_file,
                                           self.frame_pipeline,
                                           self.data_prefix,
                                           test_mode=False)
        result = rawframe_dataset[0]
        assert self.check_keys_contain(result.keys(), target_keys)

        # RawframeDataset in multi-class tasks
        rawframe_dataset = RawframeDataset(self.frame_ann_file,
                                           self.frame_pipeline,
                                           self.data_prefix,
                                           multi_class=True,
                                           num_classes=400,
                                           test_mode=False)
        result = rawframe_dataset[0]
        assert self.check_keys_contain(result.keys(), target_keys)

        # RawframeDataset in test mode
        rawframe_dataset = RawframeDataset(self.frame_ann_file,
                                           self.frame_pipeline,
                                           self.data_prefix,
                                           test_mode=True)
        result = rawframe_dataset[0]
        assert self.check_keys_contain(result.keys(), target_keys)

        # RawframeDataset in multi-class tasks in test mode
        rawframe_dataset = RawframeDataset(self.frame_ann_file,
                                           self.frame_pipeline,
                                           self.data_prefix,
                                           multi_class=True,
                                           num_classes=400,
                                           test_mode=True)
        result = rawframe_dataset[0]
        assert self.check_keys_contain(result.keys(), target_keys)
コード例 #6
0
ファイル: test_dataset.py プロジェクト: suki7/mmaction_fsl_78
 def test_rawframe_dataset_multi_label(self):
     rawframe_dataset = RawframeDataset(self.frame_ann_file_multi_label,
                                        self.frame_pipeline,
                                        self.data_prefix,
                                        multi_class=True,
                                        num_classes=100)
     rawframe_infos = rawframe_dataset.video_infos
     frame_dir = osp.join(self.data_prefix, 'test_imgs')
     label0 = [1]
     label1 = [3, 5]
     labels = [label0, label1]
     for info, label in zip(rawframe_infos, labels):
         assert info['frame_dir'] == frame_dir
         assert info['total_frames'] == 5
         assert set(info['label']) == set(label)
     assert rawframe_dataset.start_index == 1
コード例 #7
0
ファイル: test_dataset.py プロジェクト: yangheng111/mmaction2
 def test_repeat_dataset(self):
     rawframe_dataset = RawframeDataset(self.frame_ann_file,
                                        self.frame_pipeline,
                                        self.data_prefix)
     repeat_dataset = RepeatDataset(rawframe_dataset, 5)
     assert len(repeat_dataset) == 10
     result_a = repeat_dataset[0]
     result_b = repeat_dataset[2]
     assert set(result_a.keys()) == set(result_b.keys())
     for key in result_a:
         if isinstance(result_a[key], np.ndarray):
             assert np.equal(result_a[key], result_b[key]).all()
         elif isinstance(result_a[key], list):
             assert all(
                 np.array_equal(a, b)
                 for (a, b) in zip(result_a[key], result_b[key]))
         else:
             assert result_a[key] == result_b[key]
コード例 #8
0
 def test_rawframe_dataset_multi_label(self):
     rawframe_dataset = RawframeDataset(self.frame_ann_file_multi_label,
                                        self.frame_pipeline,
                                        self.data_prefix,
                                        multi_class=True,
                                        num_classes=100)
     rawframe_infos = rawframe_dataset.records
     frame_dir = osp.join(self.data_prefix, 'test_imgs')
     label0 = torch.zeros(100)
     label0[[1]] = 1.0
     label1 = torch.zeros(100)
     label1[[3, 5]] = 1.0
     labels = [label0, label1]
     for info, label in zip(rawframe_infos, labels):
         assert info['frame_dir'] == frame_dir
         assert info['total_frames'] == 5
         assert torch.all(info['label'] == label)
     assert rawframe_dataset.start_index == 1
コード例 #9
0
ファイル: test_dataset.py プロジェクト: yangheng111/mmaction2
    def test_rawframe_evaluate(self):
        rawframe_dataset = RawframeDataset(self.frame_ann_file,
                                           self.frame_pipeline,
                                           self.data_prefix)

        with pytest.raises(TypeError):
            # results must be a list
            rawframe_dataset.evaluate('0.5')

        with pytest.raises(AssertionError):
            # The length of results must be equal to the dataset len
            rawframe_dataset.evaluate([0] * 5)

        with pytest.raises(TypeError):
            # topk must be int or tuple of int
            rawframe_dataset.evaluate([0] * len(rawframe_dataset), topk=1.0)

        with pytest.raises(KeyError):
            # unsupported metric
            rawframe_dataset.evaluate([0] * len(rawframe_dataset),
                                      metrics='iou')

        # evaluate top_k_accuracy and mean_class_accuracy metric
        results = [np.array([0.1, 0.5, 0.4])] * 2
        eval_result = rawframe_dataset.evaluate(
            results, metrics=['top_k_accuracy', 'mean_class_accuracy'])
        assert set(eval_result.keys()) == set(
            ['top1_acc', 'top5_acc', 'mean_class_accuracy'])
コード例 #10
0
    def test_rawframe_pipeline(self):
        target_keys = [
            'frame_dir', 'total_frames', 'label', 'filename_tmpl',
            'start_index', 'modality'
        ]

        # RawframeDataset not in test mode
        rawframe_dataset = RawframeDataset(
            self.frame_ann_file,
            self.frame_pipeline,
            self.data_prefix,
            test_mode=False)
        result = rawframe_dataset[0]
        assert assert_dict_has_keys(result, target_keys)

        # RawframeDataset in multi-class tasks
        rawframe_dataset = RawframeDataset(
            self.frame_ann_file,
            self.frame_pipeline,
            self.data_prefix,
            multi_class=True,
            num_classes=400,
            test_mode=False)
        result = rawframe_dataset[0]
        assert assert_dict_has_keys(result, target_keys)

        # RawframeDataset with offset
        rawframe_dataset = RawframeDataset(
            self.frame_ann_file_with_offset,
            self.frame_pipeline,
            self.data_prefix,
            with_offset=True,
            num_classes=400,
            test_mode=False)
        result = rawframe_dataset[0]
        assert assert_dict_has_keys(result, target_keys + ['offset'])

        # RawframeDataset in test mode
        rawframe_dataset = RawframeDataset(
            self.frame_ann_file,
            self.frame_pipeline,
            self.data_prefix,
            test_mode=True)
        result = rawframe_dataset[0]
        assert assert_dict_has_keys(result, target_keys)

        # RawframeDataset in multi-class tasks in test mode
        rawframe_dataset = RawframeDataset(
            self.frame_ann_file,
            self.frame_pipeline,
            self.data_prefix,
            multi_class=True,
            num_classes=400,
            test_mode=True)
        result = rawframe_dataset[0]
        assert assert_dict_has_keys(result, target_keys)

        # RawframeDataset with offset
        rawframe_dataset = RawframeDataset(
            self.frame_ann_file_with_offset,
            self.frame_pipeline,
            self.data_prefix,
            with_offset=True,
            num_classes=400,
            test_mode=True)
        result = rawframe_dataset[0]
        assert assert_dict_has_keys(result, target_keys + ['offset'])