微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 Keras 迁移学习的边界框回归的准确度为 0% Sigmoid 激活的输出层只输出 0 或 1

如何解决使用 Keras 迁移学习的边界框回归的准确度为 0% Sigmoid 激活的输出层只输出 0 或 1

我正在尝试创建一个对象定位模型来检测汽车图像中的车牌。我使用 VGG16 模型并排除顶层以添加我自己的密集层,最后一层有 4 个节点和 sigmoid 激活以获得 (xmin,ymin,xmax,ymax)。

我使用keras提供的函数读取图像,并将其调整为(224,244,3),并且还使用了preprocess_input()函数来处理输入。我还尝试通过使用填充调整大小来手动处理图像以保持比例,并通过除以 255 对输入进行归一化。

我训练时似乎没有任何效果。我得到 0% 的训练和测试准确率。下面是我为这个模型编写的代码

def get_custom(output_size,optimizer,loss):

    vgg = VGG16(weights="imagenet",include_top=False,input_tensor=Input(shape=IMG_Dims))

    vgg.trainable = False

    flatten = vgg.output
    flatten = Flatten()(flatten)

    bBoxHead = Dense(128,activation="relu")(flatten)
    bBoxHead = Dense(32,activation="relu")(bBoxHead)

    bBoxHead = Dense(output_size,activation="sigmoid")(bBoxHead)

    model = Model(inputs=vgg.input,outputs=bBoxHead)
    model.compile(loss=loss,optimizer=optimizer,metrics=['accuracy'])

    return model

X 和 y 的形状分别为 (616,224,3) 和 (616,4)。我将坐标除以各边的长度,因此 y 中的每个值都在 (0,1) 范围内。

我将在下面从 github 链接我的 python 笔记本,以便您可以查看完整代码。我正在使用 google colab 来训练模型。 https://github.com/gauthamramesh3110/image_processing_scripts/blob/main/License_Plate_Detection.ipynb

提前致谢。我真的很需要帮助。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。