|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
"""Tests for builder.""" |
|
|
|
from __future__ import absolute_import |
|
from __future__ import division |
|
from __future__ import print_function |
|
|
|
from big_vision.pp import builder |
|
from big_vision.pp import ops_general |
|
from big_vision.pp import ops_image |
|
import numpy as np |
|
import tensorflow.compat.v1 as tf |
|
|
|
|
|
class BuilderTest(tf.test.TestCase): |
|
|
|
def testSingle(self): |
|
pp_fn = builder.get_preprocess_fn("resize(256)") |
|
x = np.random.randint(0, 256, [640, 480, 3]) |
|
image = pp_fn({"image": x})["image"] |
|
self.assertEqual(image.numpy().shape, (256, 256, 3)) |
|
|
|
def testEmpty(self): |
|
pp_fn = builder.get_preprocess_fn("||inception_crop|||resize(256)||") |
|
|
|
|
|
x = np.random.randint(0, 256, [640, 480, 3]) |
|
image = pp_fn({"image": x})["image"] |
|
self.assertEqual(image.numpy().shape, (256, 256, 3)) |
|
|
|
def testPreprocessingPipeline(self): |
|
pp_str = ("inception_crop|resize(256)|resize((256, 256))|" |
|
"central_crop((80, 120))|flip_lr|value_range(0,1)|" |
|
"value_range(-1,1)") |
|
pp_fn = builder.get_preprocess_fn(pp_str) |
|
|
|
|
|
x = np.random.randint(0, 256, [640, 480, 3]) |
|
image = pp_fn({"image": x})["image"] |
|
self.assertEqual(image.numpy().shape, (80, 120, 3)) |
|
self.assertLessEqual(np.max(image.numpy()), 1) |
|
self.assertGreaterEqual(np.min(image.numpy()), -1) |
|
|
|
def testNumArgsException(self): |
|
|
|
x = np.random.randint(0, 256, [640, 480, 3]) |
|
for pp_str in [ |
|
"inception_crop(1)", |
|
"resize()", |
|
"resize(1, 1, 1)" |
|
"flip_lr(1)", |
|
"central_crop()", |
|
]: |
|
with self.assertRaises(BaseException): |
|
builder.get_preprocess_fn(pp_str)(x) |
|
|
|
|
|
if __name__ == "__main__": |
|
tf.test.main() |
|
|