def test_dataMeanDoesNotConsiderTestSet(self): train = [ self.makeImage([10, 20, 40, 80]), self.makeImage([20, 40, 40, 60]) ] valid = [ self.makeImage([10, 20, 40, 80]), self.makeImage([20, 40, 40, 60]) ] test = [ self.makeImage([1000, 2000, 4000, 8000]), self.makeImage([2000, 4000, 4000, 6000]) ] dataset = (train, valid, test) classesNames = ['myname'] classes = [0] expected = {} expected['num_vis'] = 4 expected['data_shape'] = self.data_shape expected['data_in_rows'] = True expected['label_names'] = classesNames expected['data_mean'] = arrayEqualsTo( numpy.asarray([15, 30, 40, 70]).reshape(-1, 1)) self.assertEqual(expected, self.target.build(dataset, classes, classesNames))
def test_ReadImageSwapBGR_to_RGB(self): #openCV uses BGR order instead of RGB mockCv = Mock() imageFactory = Mock() fileSystem = Mock() fileSystem.joinPath.return_value = 'somefolder/somefile.jpg' original = numpy.zeros((2, 2, 3)) original[:, :, 2] = [[0, 1], [2, 3]] original[:, :, 1] = [[4, 5], [6, 7]] original[:, :, 0] = [[8, 9], [10, 11]] expected = numpy.zeros((2, 2, 3)) expected[:, :, 0] = [[0, 1], [2, 3]] expected[:, :, 1] = [[4, 5], [6, 7]] expected[:, :, 2] = [[8, 9], [10, 11]] mockCv.imread = Mock() mockCv.imread.return_value = original target = OpenCVImgReader(imageFactory=imageFactory, fileSystem=fileSystem, openCV=mockCv) target.read('somefolder', 'somefile.jpg') fileSystem.joinPath.assert_called_with('somefolder', 'somefile.jpg') mockCv.imread.assert_called_with('somefolder/somefile.jpg') imageFactory.create.assert_called_with(arrayEqualsTo(expected), 'somefile.jpg')
def test_singleImage(self): image = self.makeImage(numpy.arange(12), 0, 'file.jpg') classes = [0] expected = {} expected['data'] = arrayEqualsTo(numpy.arange(12).reshape(-1,1)) expected['labels'] = [0] expected['filenames'] = ['file.jpg'] target = SingleBatchBuilder() self.assertEqual(expected,target.build([image], classes))
def test_multipleLabels(self): image1 = self.makeImage(numpy.ones(12)*1, 0, 'file1.jpg') image2 = self.makeImage(numpy.ones(12)*2, 3, 'file2.jpg') image3 = self.makeImage(numpy.ones(12)*3, 5, 'file3.jpg') classes = [0,3,5] expected = {} data = numpy.asarray([numpy.ones(12), numpy.ones(12)*2, numpy.ones(12)*3]).T expected['data'] = arrayEqualsTo(data) expected['labels'] = [0,1,2] expected['filenames'] = ['file1.jpg','file2.jpg','file3.jpg'] target = SingleBatchBuilder() result = target.build([image1, image2, image3], classes) self.assertEqual(expected,result)
def test_OnlySelectedClassesAreStored(self): train = self.makeZeroedImages(qty=2, size=4) valid = self.makeZeroedImages(qty=2, size=4) test = self.makeZeroedImages(qty=2, size=4) dataset = (train, valid, test) classesNames = ['class0', 'class1', 'class2', 'class3'] classes = [2,1] expected = {} expected['num_vis'] = 4 expected['data_in_rows'] = True expected['data_shape'] = self.data_shape expected['label_names'] = ['class2', 'class1'] expected['data_mean'] = arrayEqualsTo(numpy.zeros(4).reshape(-1,1)) self.assertEqual(expected, self.target.build(dataset, classes, classesNames))
def test_OnlySelectedClassesAreStored(self): train = self.makeZeroedImages(qty=2, size=4) valid = self.makeZeroedImages(qty=2, size=4) test = self.makeZeroedImages(qty=2, size=4) dataset = (train, valid, test) classesNames = ['class0', 'class1', 'class2', 'class3'] classes = [2, 1] expected = {} expected['num_vis'] = 4 expected['data_in_rows'] = True expected['data_shape'] = self.data_shape expected['label_names'] = ['class2', 'class1'] expected['data_mean'] = arrayEqualsTo(numpy.zeros(4).reshape(-1, 1)) self.assertEqual(expected, self.target.build(dataset, classes, classesNames))
def test_dataMeanDoesNotConsiderTestSet(self): train = [self.makeImage([10, 20, 40, 80]), self.makeImage([20, 40, 40, 60])] valid = [self.makeImage([10, 20, 40, 80]), self.makeImage([20, 40, 40, 60])] test = [self.makeImage([1000, 2000, 4000, 8000]), self.makeImage([2000, 4000, 4000, 6000])] dataset = (train, valid, test) classesNames = ['myname'] classes = [0] expected = {} expected['num_vis'] = 4 expected['data_shape'] = self.data_shape expected['data_in_rows'] = True expected['label_names'] = classesNames expected['data_mean'] = arrayEqualsTo(numpy.asarray([15, 30, 40, 70]).reshape(-1,1)) self.assertEqual(expected, self.target.build(dataset, classes, classesNames))