def test_should_return_batches_equivalent_to_number_of_frames_2(self): video_loader = OpenCVReader(file_url='dummy.avi', batch_size=-1) batches = list(video_loader.read()) expected = list(self.create_dummy_frames()) self.assertEqual(len(batches), NUM_FRAMES) actual = [batch.frames.to_dict('records')[0] for batch in batches] self.assertTrue(custom_list_of_dicts_equal(actual, expected))
def test_should_return_batches_equivalent_to_number_of_frames(self): video_info = DataFrameMetadata("dataset_1", 'dummy.avi') video_loader = VideoLoader(video_info) batches = list(video_loader.load()) dummy_frames = list(self.create_dummy_frames()) self.assertEqual(len(batches), NUM_FRAMES) expected = [batch.frames.to_dict('records')[0] for batch in batches] self.assertTrue(custom_list_of_dicts_equal(dummy_frames, expected))
def test_should_start_frame_number_from_two(self): video_loader = OpenCVReader( file_url='dummy.avi', batch_size=NUM_FRAMES, start_frame_id=2) batches = list(video_loader.read()) expected = list(self.create_dummy_frames( filters=[i for i in range(0, NUM_FRAMES)], start_id=2)) self.assertEqual(1, len(batches)) actual = [batch.frames.to_dict('records')[0] for batch in batches] self.assertTrue(custom_list_of_dicts_equal(actual, expected))
def test_should_return_only_few_frames_when_limit_is_specified(self): video_info = DataFrameMetadata("dataset_1", 'dummy.avi') limit = 4 video_loader = VideoLoader(video_info, limit=limit) dummy_frames = list( self.create_dummy_frames(filters=[i for i in range(limit)])) batches = list(video_loader.load()) self.assertEqual(limit, len(batches)) expected = [batch.frames.to_dict('records')[0] for batch in batches] self.assertTrue(custom_list_of_dicts_equal(dummy_frames, expected))
def test_should_skip_first_two_frames_with_offset_two(self): video_info = DataFrameMetadata("dataset_1", 'dummy.avi') video_loader = VideoLoader(video_info, offset=2) dummy_frames = list( self.create_dummy_frames( filters=[i for i in range(2, NUM_FRAMES)])) batches = list(video_loader.load()) self.assertEqual(NUM_FRAMES - 2, len(batches)) expected = [batch.frames.to_dict('records')[0] for batch in batches] self.assertTrue(custom_list_of_dicts_equal(dummy_frames, expected))
def test_should_return_half_then_number_of_batches_with_skip_of_two(self): video_info = DataFrameMetadata("dataset_1", 'dummy.avi') video_loader = VideoLoader(video_info, skip_frames=2) batches = list(video_loader.load()) dummy_frames = list( self.create_dummy_frames( filters=[i * 2 for i in range(NUM_FRAMES // 2)])) self.assertEqual(len(batches), NUM_FRAMES / 2) expected = [batch.frames.to_dict('records')[0] for batch in batches] self.assertTrue(custom_list_of_dicts_equal(dummy_frames, expected))
def test_should_return_single_batch_if_batch_size_equal_to_no_of_frames( self): video_info = DataFrameMetadata("dataset_1", 'dummy.avi') video_loader = VideoLoader(video_info, batch_size=NUM_FRAMES) dummy_frames = list( self.create_dummy_frames(filters=[i for i in range(NUM_FRAMES)])) batches = list(video_loader.load()) self.assertEqual(1, len(batches)) expected = batches[0].frames.to_dict('records') self.assertTrue(custom_list_of_dicts_equal(dummy_frames, expected))
def test_should_skip_first_two_frames_and_batch_size_equal_to_no_of_frames( self): video_loader = OpenCVReader( file_url='dummy.avi', batch_size=NUM_FRAMES, offset=2) batches = list(video_loader.read()) expected = list(self.create_dummy_frames( filters=[i for i in range(2, NUM_FRAMES)])) self.assertEqual(1, len(batches)) actual = [batch.frames.to_dict('records')[0] for batch in batches] self.assertTrue(custom_list_of_dicts_equal(actual, expected))
def test_load_frame_load_frames_using_petastorm(self, mock): dummy_values = map(lambda i: self.DummyRow(i, np.ones((2, 2, 3)) * i), range(3)) mock.return_value = self.DummyReader(dummy_values) video_info = DataFrameMetadata("dataset_1", 'dummy.avi') video_loader = PetastormLoader(video_info, curr_shard=3, total_shards=3) actual = list(video_loader._load_frames()) expected = [value._asdict() for value in dummy_values] self.assertTrue(custom_list_of_dicts_equal(expected, actual))