tf.contrib.image.sparse_image_warp
Деформация изображения с использованием соответствий между разреженными опорными точками.
tf.contrib.image.sparse_image_warp(
image, source_control_point_locations, dest_control_point_locations,
interpolation_order=2, regularization_weight=0.0, num_boundary_points=0,
name='sparse_image_warp'
)
Применяет нелинейную деформацию изображения, где деформация задаётся исходными и конечными координатами (возможно, небольшого числа) опорных точек. Сначала, мы используем сплайн полигармонического типа (tf.contrib.image.interpolate_spline) для интерполяции смещений между соответствующими опорными точками в плотное поле потока. Затем, мы деформируем изображение, используя это плотное поле потока (tf.contrib.image.dense_image_warp).
Пусть t индексирует наши опорные точки. При regularization_weight=0, у нас есть: warped_image[b, dest_control_point_locations[b, t, 0], dest_control_point_locations[b, t, 1], :] = image[b, source_control_point_locations[b, t, 0], source_control_point_locations[b, t, 1], :].
При regularization_weight > 0, это условие выполняется приблизительно, так как регулируемая интерполяция балансирует плавность интерполянта и восстановление интерполянта в опорных точках. Смотрите tf.contrib.image.interpolate_spline для дополнительной документации по аргументам interpolation_order и regularization_weight.
| Аргументы | |
|---|---|
image | [batch, height, width, channels] float Tensor |
source_control_point_locations | [batch, num_control_points, 2] float Tensor |
dest_control_point_locations | [batch, num_control_points, 2] float Tensor |
interpolation_order | порядок полинома, используемый при интерполяции сплайном |
regularization_weight | вес регуляризатора гладкости при интерполяции |
num_boundary_points | Количество нулевых точек потока, которые необходимо добавить на каждом краю изображения. Использование: num_boundary_points=0: не добавлять нулевые точки num_boundary_points=1: 4 угла изображения num_boundary_points=2: 4 угла и одна посередине каждой стороны (8 точек в сумме) num_boundary_points=n: 4 угла и n-1 по каждой стороне |
name | Имя операции (необязательно). Обратите внимание, что изображение и смещения могут быть типа tf.half, tf.float32 или tf.float64 и не обязательно должны быть одного типа. |
| Возвращаемые значения | |
|---|---|
warped_image | [batch, height, width, channels] float Tensor того же типа, что и входное изображение. |
flow_field | [batch, height, width, 2] float Tensor содержащее плотное поле потока, полученное в результате интерполяции. |
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/contrib/image/sparse_image_warp