• config设置训练参数 - image_resizer


    使用TF框架,不可避免的会使用到configs目录下的config文件。若我们想用其对自己的数据集进行训练,则对config中每个参数的设置都应有所了解。

    本文主要是对 image_resizer 参数的设置进行记录,便于以后查看。

    ../object_detection/protos目录是模型参数可配置数值声明文件的合集,找到image_resizer_pb2.py和image_resizer.proto文件,其中image_resizer_pb2.py是由后者编译生成的。在image_resizer.proto文件中声明了image_resizer的5个方法:
            1)KeepAspectRatioResizer keep_aspect_ratio_resizer=1;
            2)FixedShapeResizer fixed_shape_resizer=2;
            3)IdentityResizer identity_resizer=3;
            4)ConditionalShapeResizer conditional_shape_resizer=4;
            5)PadToMultipleResizer pad_to_multiple_resizer=5.

    在../object_detection/builders/image_resizer_builder.py文件中可以查看各个方法的实现:

    方法一:KeepAspectRatioResizer

    通过image_resizer_builder.py文件可以发现,调用的是../object_detection/core/processor.py中的resize_to_range方法。详细参数如下(冒号后面为默认值):

    a. min_dimension:600
    b. max_dimension:1024
    c. resize_method:BILINEAR
    d. pad_to_max_dimension:false
    e. convert_to_grayscale:false
    f.  per_channel_pad_value:当d设置为True时,每个通道进行填充时的值,一般设置为:(int(x), int(y), int(z)).

    详解:最终使用的是tf.image.resize_images(image, tf.stack([min_dimension, max_dimension]), method=method)方法,在保证图像尺寸比例不变的情况下,使用设定的resize_method方法,将图像范围resize到(min_dimension, max_dimension)之间。

    方法二:FixedShapedResizer

    详细参数如下(冒号后面为默认值):

    a. height:300
    b. width:300
    c. resize_method:BILINEAR
    d. convert_to_grayscale:false

    详解:使用设定的resize_method方法,将图像尺寸resize到(height, width)。

    convert_to_grayscale:是否将图像转为灰度图像,[height, width, 3]  —>  [height, width, 1] 

    方法三:IdentityResizer

            在文件中暂时没有对该方法的描述,暂不介绍及使用

    方法四:ConditionalShapeResizer

    详细参数如下(冒号后面为默认值):

    a. condition:GREATER
    b. size_threshold:300
    c. resize_method:BILINEAR
    d. convert_to_grayscale:false

    详解:condition可设置参数为:’GREATER’或’SMALLER’,size_thresghold默认设置为300,可以根据自己的实际情况进行设置。当condition设为’GREATER’时,如果图像的尺寸大于300则会对图像尺寸resize处理至300(保持图像宽高比不变);同理当condition设为‘SMALLER’时,小于300的图像也会被resize为300(保持图像宽高比不变)。

    方法五:PadToMultipleResizer

    详细参数如下(冒号后面为默认值):

    a. multiple:1
    b. convert_to_grayscale:false

    详解:将图像进行填充(用0),使之可以被设定的multiple整除。例如:输入图像尺寸为:(101, 199, 3),multiple设置为4,则被填充为(104, 200, 3)。


    备注:resize_method的可选参数,在image_resizer.proto文件中同样有做介绍,共有四种:

    1)BILINEAR:tf.image.ResizeMethod.BILINEAR,双线性插值
    2)NEAREST_NEIGHBOR:tf.image.ResizeMethod.NEAREST_NEIGHBOR,最近邻插值
    3)BICUBIC:tf.image.ResizeMethod.BICUBIC, 双三次插值
    4)AREA:tf.image.ResizeMethod.AREA,面积插值

  • 相关阅读:
    [翻译] 使用 TensorFlow 进行分布式训练
    小主机折腾记17
    马蹄集OJ赛第十三次
    PHP8中获取并删除数组中第一个元素-PHP8知识详解
    进行 XSS 攻击 和 如何防御
    第十四章 手动创建 REST 服务(二)
    跟人一样,手机太烫也会“生病”!如何给太烫的手机降温
    实验五 计数/定时器的设计【Verilog】
    武汉站--ChatGPT/GPT4科研技术应用与AI绘图及论文高效写作
    【Linux】冯诺依曼体系结构、操作系统及进程概念
  • 原文地址:https://blog.csdn.net/weixin_38739735/article/details/126387742