def infer(self, input_image_path, return_image_paths=False, num_output=None):
     """Given an image, a path containing images, or a list of paths, return the outputs."""
     one_output = False
     if input_image_path:
         if isinstance(input_image_path, list) or isinstance(input_image_path, tuple):
             image_paths = input_image_path
         else:
             if os.path.isfile(input_image_path):
                 image_paths = [input_image_path]
                 one_output = True
             else:
                 image_paths = util_io.get_files_in_dir(
                     input_image_path, do_sort=True, do_random_ordering=False)
         images = [util_io.imread(image_path, dtype=np.uint8)
                   for image_path in image_paths]
     else:
         assert num_output >= 1
         images = [None for _ in range(num_output)]
         image_paths = [str(i) for i in range(num_output)]
         one_output = (num_output == 1)
     outputs = []
     for image in images:
         if image is None:
             feed_dict = None
         else:
             feed_dict = {self.images_placeholder: image}
         output = self.sess.run(self.output, feed_dict=feed_dict)
         output = output[0] * 255.0  # Batch size == 1, range = 0~1.
         outputs.append(output)
     if one_output:
         outputs = outputs[0]
         image_paths = image_paths[0]
     if return_image_paths:
         return outputs, image_paths
     return outputs
 def _find_image_files(self, data_dir, shared_info):
     file_names = util_io.get_files_in_dir(data_dir,
                                           do_sort=False,
                                           do_random_ordering=True)
     if FLAGS.exclude_affix:
         file_names = [
             file_name for file_name in file_names
             if not file_name.endswith(FLAGS.exclude_affix)
         ]
     return file_names, [None for _ in range(len(file_names))]
Exemple #3
0
 def test_get_files_in_dir_in_dir(self):
     dirpath = tempfile.mkdtemp()
     image_path = dirpath + '/image.jpg'
     f = open(image_path, 'w')
     f.close()
     subfolder = '/subfolder'
     os.makedirs(dirpath + subfolder)
     image_path2 = dirpath + subfolder + u'/骨董屋・三千世界の女主人_12746957.png'
     f = open(image_path2, 'w')
     f.close()
     actual_answer = util_io.get_files_in_dir(dirpath + '/')
     expected_answer = [image_path, image_path2.encode('utf8')]
     shutil.rmtree(dirpath)
     self.assertEqual(expected_answer, actual_answer)
Exemple #4
0
    def test_imread_and_imsave_utf8(self):
        height = 256
        width = 256

        content_folder = tempfile.mkdtemp()
        image_path = content_folder + u'/骨董屋・三千世界の女主人_12746957.png'
        current_image = np.ones((height, width, 3)) * 255.0
        current_image[0, 0, 0] = 0
        util_io.imsave(image_path, current_image)

        actual_output = util_io.imread(
            util_io.get_files_in_dir(content_folder + '/')[0])

        expected_answer = np.round(np.array(current_image))
        np.testing.assert_almost_equal(expected_answer, actual_output)
Exemple #5
0
 def _generate_shared_info(self, train_directory, validation_directory,
                           output_path):
     # Read TfExamples.
     tf_records = util_io.get_files_in_dir(train_directory,
                                           do_sort=True,
                                           do_random_ordering=False,
                                           allowed_extensions=None)
     model = AnimeFaceObjectExtractor(tf_records,
                                      do_safe_only=FLAGS.do_safe_only,
                                      do_unsafe_only=FLAGS.do_unsafe_only)
     model.main()
     base_file_names = model.ret.keys()
     ret = {
         'object_detection_result_dict': model.ret,
         'base_file_names': base_file_names
     }
     return ret