Нет, вам не нужно изменять размеры входных изображений до фиксированных форм самостоятельно. API обнаружения объекта Tensorflow имеет этап предварительной обработки, который изменяет размер всех входных изображений. Ниже приведена функция, определенная на этапе предварительной обработки, и существует image_resizer_fn
, она соответствует полю с именем image_resizer
в конфигурации файл .
def transform_input_data(tensor_dict,
model_preprocess_fn,
image_resizer_fn,
num_classes,
data_augmentation_fn=None,
merge_multiple_boxes=False,
retain_original_image=False,
use_multiclass_scores=False,
use_bfloat16=False):
"""A single function that is responsible for all input data transformations.
Data transformation functions are applied in the following order.
1. If key fields.InputDataFields.image_additional_channels is present in
tensor_dict, the additional channels will be merged into
fields.InputDataFields.image.
2. data_augmentation_fn (optional): applied on tensor_dict.
3. model_preprocess_fn: applied only on image tensor in tensor_dict.
4. image_resizer_fn: applied on original image and instance mask tensor in
tensor_dict.
5. one_hot_encoding: applied to classes tensor in tensor_dict.
6. merge_multiple_boxes (optional): when groundtruth boxes are exactly the
same they can be merged into a single box with an associated k-hot class
label.
Согласно файлу proto , вы можете выбрать один из 4-х различных размеров изображения, а именно
- keep_aspect_ratio_resizer
- fixed_shape_resizer
- identity_resizer
- conditional_shape_resizer
Здесь - это пример файла конфигурации для модели faster_rcnn_resnet101_pets
, и все изображения изменяются с min_dimension = 600 и max_dimension = 1024
model {
faster_rcnn {
num_classes: 37
image_resizer {
keep_aspect_ratio_resizer {
min_dimension: 600
max_dimension: 1024
}
}
feature_extractor {
type: 'faster_rcnn_resnet101'
first_stage_features_stride: 16
}
Фактически, форма измененных изображений имеет большое влияние на скорость обнаружения в зависимости от точности. Хотя нет особых требований к размерам входных изображений, для правильной работы сверточной операции лучше иметь все изображения с наименьшим размером, превышающим разумное значение.